diff --git a/.agent/skills/electron b/.agent/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.agent/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.agents/skills/electron/LICENSE.txt b/.agents/skills/electron/LICENSE.txt new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/.agents/skills/electron/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.agents/skills/electron/SKILL.md b/.agents/skills/electron/SKILL.md new file mode 100644 index 000000000000..46c08602eaf9 --- /dev/null +++ b/.agents/skills/electron/SKILL.md @@ -0,0 +1,152 @@ +--- +name: electron +description: Provides comprehensive guidance for Electron framework including main process, renderer process, IPC communication, window management, and desktop app development. Use when the user asks about Electron, needs to create desktop applications, implement Electron features, or build cross-platform desktop apps. +license: Complete terms in LICENSE.txt +--- + +## When to use this skill + +Use this skill whenever the user wants to: +- Build cross-platform desktop applications with Electron +- Understand Electron architecture (main process, renderer process, preload) +- Implement IPC (Inter-Process Communication) between processes +- Create and manage BrowserWindow instances +- Implement menus, tray icons, and native features +- Package and distribute Electron applications +- Use Electron Forge for project scaffolding and building +- Debug and test Electron applications +- Implement security best practices +- Use Electron APIs (app, BrowserWindow, ipcMain, ipcRenderer, etc.) + +## How to use this skill + +This skill is organized to match the Electron official documentation structure (https://www.electronjs.org/zh/docs/latest/, https://www.electronjs.org/zh/docs/latest/api/app). When working with Electron: + +1. **Identify the topic** from the user's request: + - Getting started/快速开始 → `examples/getting-started/installation.md` or `examples/getting-started/quick-start.md` + - Main process/主进程 → `examples/processes/main-process.md` + - Renderer process/渲染进程 → `examples/processes/renderer-process.md` + - IPC communication/IPC 通信 → `examples/processes/ipc-communication.md` + - BrowserWindow/窗口 → `examples/api/browser-window.md` + - Menu/菜单 → `examples/api/menu.md` + - Packaging/打包 → `examples/advanced/packaging.md` + - Security/安全 → `examples/advanced/security.md` + +2. **Load the appropriate example file** from the `examples/` directory: + + **Getting Started (快速开始) - `examples/getting-started/`**: + - `examples/getting-started/installation.md` - Installing Electron and basic setup + - `examples/getting-started/quick-start.md` - Quick start tutorial + + **Processes (进程) - `examples/processes/`**: + - `examples/processes/main-process.md` - Main process concepts and usage + - `examples/processes/renderer-process.md` - Renderer process concepts + - `examples/processes/preload-scripts.md` - Preload scripts usage + - `examples/processes/ipc-communication.md` - IPC communication patterns + + **API Examples (API 示例) - `examples/api/`**: + - `examples/api/browser-window.md` - BrowserWindow usage + - `examples/api/menu.md` - Menu and context menu + - `examples/api/tray.md` - System tray + - `examples/api/dialog.md` - File dialogs + - `examples/api/ipc-main.md` - ipcMain usage + - `examples/api/ipc-renderer.md` - ipcRenderer usage + + **Advanced (高级) - `examples/advanced/`**: + - `examples/advanced/packaging.md` - Application packaging + - `examples/advanced/security.md` - Security best practices + - `examples/advanced/auto-updater.md` - Auto updater + - `examples/advanced/native-modules.md` - Native modules + + **Tools (工具) - `examples/tools/`**: + - `examples/tools/electron-forge.md` - Electron Forge usage + - `examples/tools/electron-fiddle.md` - Electron Fiddle usage + +3. **Follow the specific instructions** in that example file for syntax, structure, and best practices + + **Important Notes**: + - All examples follow Electron latest API + - Examples use both CommonJS (require) and ES modules (import) + - Each example file includes key concepts, code examples, and key points + - Always check the example file for best practices and common patterns + - Electron supports Windows, macOS, and Linux + +4. **Reference API documentation** in the `api/` directory when needed: + - `api/app.md` - app module API + - `api/browser-window.md` - BrowserWindow API + - `api/ipc-main.md` - ipcMain API + - `api/ipc-renderer.md` - ipcRenderer API + - `api/menu.md` - Menu API + - `api/tray.md` - Tray API + +5. **Use templates** from the `templates/` directory: + - `templates/main-process.md` - Main process template + - `templates/preload-script.md` - Preload script template + - `templates/renderer-process.md` - Renderer process template + - `templates/package-json.md` - package.json template + + +### Doc mapping (one-to-one with official documentation) + +- `examples/` → https://www.electronjs.org/zh/docs/latest/ +- `api/` → https://www.electronjs.org/zh/docs/latest/api/app + +## Examples and Templates + +This skill includes detailed examples organized to match the official documentation structure. All examples are in the `examples/` directory (see mapping above). + +**To use examples:** +- Identify the topic from the user's request +- Load the appropriate example file from the mapping above +- Follow the instructions, syntax, and best practices in that file +- Adapt the code examples to your specific use case + +**To use templates:** +- Reference templates in `templates/` directory for common scaffolding +- Adapt templates to your specific needs and coding style + +## API Reference + +Detailed API documentation is available in the `api/` directory, organized to match the official Electron API documentation structure: + +### Core APIs (`api/`) +- `api/app.md` - app module API +- `api/browser-window.md` - BrowserWindow API +- `api/ipc-main.md` - ipcMain API +- `api/ipc-renderer.md` - ipcRenderer API +- `api/menu.md` - Menu API +- `api/tray.md` - Tray API +- `api/dialog.md` - Dialog API + +**To use API reference:** +1. Identify the API you need help with +2. Load the corresponding API file from the `api/` directory +3. Find the API signature, parameters, return type, and examples +4. Reference the linked example files for detailed usage patterns +5. All API files include links to relevant example files in the `examples/` directory + +## Best Practices + +1. **Security**: Never enable nodeIntegration in renderer process, use preload scripts +2. **Process separation**: Keep main and renderer processes separate +3. **IPC communication**: Use IPC for safe communication between processes +4. **Resource management**: Properly clean up resources (windows, listeners) +5. **Error handling**: Implement proper error handling and crash reporting +6. **Performance**: Optimize for performance, use webContents for debugging +7. **Packaging**: Use Electron Forge or electron-builder for packaging +8. **Auto updates**: Implement auto-updater for production apps +9. **Native modules**: Handle native module compatibility +10. **Cross-platform**: Test on all target platforms + +## Resources + +- **Official Website**: https://www.electronjs.org/zh/ +- **Documentation**: https://www.electronjs.org/zh/docs/latest/ +- **API Reference**: https://www.electronjs.org/zh/docs/latest/api/app +- **Electron Forge**: https://www.electronforge.io +- **Electron Fiddle**: https://www.electronjs.org/zh/fiddle +- **GitHub Repository**: https://github.com/electron/electron + +## Keywords + +Electron, desktop app, main process, renderer process, preload, IPC, BrowserWindow, Menu, Tray, Dialog, packaging, electron-builder, electron-forge, electron-fiddle, cross-platform, 桌面应用, 主进程, 渲染进程, IPC 通信, 窗口, 菜单, 托盘, 打包 diff --git a/.agents/skills/electron/api/app.md b/.agents/skills/electron/api/app.md new file mode 100644 index 000000000000..59d8452f94a9 --- /dev/null +++ b/.agents/skills/electron/api/app.md @@ -0,0 +1,83 @@ +# app Module API | app 模块 API + +## API Reference + +Electron app module API for application lifecycle management. + +### app Methods + +**Lifecycle:** +- `app.whenReady()` - Returns Promise when app is ready +- `app.quit()` - Quit the application +- `app.exit(exitCode)` - Exit immediately +- `app.relaunch([options])` - Relaunch the app + +**Window Management:** +- `app.getPath(name)` - Get system path +- `app.setPath(name, path)` - Set system path +- `app.getVersion()` - Get app version +- `app.getName()` - Get app name +- `app.setName(name)` - Set app name + +**Platform:** +- `app.getLocale()` - Get locale +- `app.getLocaleCountryCode()` - Get country code +- `app.isReady()` - Check if app is ready +- `app.isPackaged` - Check if app is packaged + +### app Events + +- `ready` - Emitted when Electron has finished initializing +- `window-all-closed` - Emitted when all windows are closed +- `before-quit` - Emitted before app quits +- `will-quit` - Emitted when app will quit +- `quit` - Emitted when app quits +- `activate` - Emitted when app is activated (macOS) +- `second-instance` - Emitted when second instance is launched + +### Example: Basic Usage + +```javascript +const { app, BrowserWindow } = require('electron') + +app.whenReady().then(() => { + createWindow() +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } +}) +``` + +### Example: Single Instance + +```javascript +const { app } = require('electron') + +const gotTheLock = app.requestSingleInstanceLock() + +if (!gotTheLock) { + app.quit() +} else { + app.on('second-instance', () => { + // Focus existing window + }) +} +``` + +### Key Points + +- Use app.whenReady() before creating windows +- Handle window-all-closed for proper quit +- macOS requires activate event handling +- Use requestSingleInstanceLock() for single instance +- app has full Node.js access +- Get system paths with app.getPath() diff --git a/.agents/skills/electron/api/browser-window.md b/.agents/skills/electron/api/browser-window.md new file mode 100644 index 000000000000..4d8dc754c6e0 --- /dev/null +++ b/.agents/skills/electron/api/browser-window.md @@ -0,0 +1,84 @@ +# BrowserWindow API | BrowserWindow API + +## API Reference + +BrowserWindow API for creating and controlling application windows. + +### Constructor Options + +**Basic:** +- `width`, `height` - Window size +- `minWidth`, `minHeight` - Minimum size +- `maxWidth`, `maxHeight` - Maximum size +- `resizable` - Whether window is resizable +- `movable` - Whether window is movable + +**Display:** +- `show` - Show window when created +- `frame` - Show window frame +- `titleBarStyle` - Title bar style (macOS) +- `backgroundColor` - Background color +- `opacity` - Window opacity + +**Behavior:** +- `alwaysOnTop` - Keep window on top +- `fullscreen` - Start fullscreen +- `skipTaskbar` - Skip taskbar (Linux/Windows) +- `kiosk` - Kiosk mode + +**webPreferences:** +- `preload` - Preload script path +- `nodeIntegration` - Enable Node.js (not recommended) +- `contextIsolation` - Enable context isolation (recommended) +- `sandbox` - Enable sandbox + +### Instance Methods + +**Content:** +- `loadURL(url[, options])` - Load URL +- `loadFile(filePath[, options])` - Load local file +- `reload()` - Reload window + +**Window Control:** +- `show()` - Show window +- `hide()` - Hide window +- `close()` - Close window +- `focus()` - Focus window +- `blur()` - Remove focus + +**Size/Position:** +- `setSize(width, height)` - Set size +- `getSize()` - Get size +- `setPosition(x, y)` - Set position +- `getPosition()` - Get position +- `center()` - Center window + +**State:** +- `minimize()` - Minimize +- `maximize()` - Maximize +- `restore()` - Restore +- `setFullScreen(flag)` - Set fullscreen + +**DevTools:** +- `webContents.openDevTools()` - Open DevTools +- `webContents.closeDevTools()` - Close DevTools + +### Instance Events + +- `ready-to-show` - Emitted when window is ready +- `closed` - Emitted when window is closed +- `focus` - Emitted when window gains focus +- `blur` - Emitted when window loses focus +- `maximize` - Emitted when maximized +- `unmaximize` - Emitted when unmaximized +- `minimize` - Emitted when minimized +- `restore` - Emitted when restored + +### Key Points + +- Always set contextIsolation: true +- Never set nodeIntegration: true +- Use preload script for IPC +- Handle ready-to-show for smooth loading +- Clean up window references on closed +- Use webContents for DevTools access diff --git a/.agents/skills/electron/examples/advanced/packaging.md b/.agents/skills/electron/examples/advanced/packaging.md new file mode 100644 index 000000000000..bb7a6161d615 --- /dev/null +++ b/.agents/skills/electron/examples/advanced/packaging.md @@ -0,0 +1,140 @@ +# Packaging | 打包 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates how to package Electron applications for distribution. + +### Key Concepts + +- Using Electron Forge +- Using electron-builder +- Platform-specific builds +- Code signing +- Auto-updater integration + +### Example: Electron Forge Setup + +```bash +# Initialize with Electron Forge +npm create electron-app@latest my-app + +# Or add to existing project +npx @electron-forge/cli import +``` + +### Example: Electron Forge Configuration + +```json +// package.json +{ + "name": "my-app", + "version": "1.0.0", + "main": ".vite/build/main.js", + "scripts": { + "start": "electron-forge start", + "package": "electron-forge package", + "make": "electron-forge make", + "publish": "electron-forge publish" + }, + "config": { + "forge": { + "packagerConfig": { + "name": "My App", + "icon": "./assets/icon" + }, + "makers": [ + { + "name": "@electron-forge/maker-squirrel", + "config": { + "name": "my_app" + } + }, + { + "name": "@electron-forge/maker-zip", + "platforms": ["darwin"] + }, + { + "name": "@electron-forge/maker-deb", + "config": {} + }, + { + "name": "@electron-forge/maker-rpm", + "config": {} + } + ] + } + } +} +``` + +### Example: electron-builder Setup + +```json +// package.json +{ + "name": "my-app", + "version": "1.0.0", + "main": "main.js", + "scripts": { + "build": "electron-builder", + "build:win": "electron-builder --win", + "build:mac": "electron-builder --mac", + "build:linux": "electron-builder --linux" + }, + "build": { + "appId": "com.example.myapp", + "productName": "My App", + "directories": { + "output": "dist" + }, + "files": [ + "main.js", + "preload.js", + "renderer/**/*", + "package.json" + ], + "win": { + "target": "nsis", + "icon": "build/icon.ico" + }, + "mac": { + "target": "dmg", + "icon": "build/icon.icns", + "category": "public.app-category.utilities" + }, + "linux": { + "target": "AppImage", + "icon": "build/icon.png" + } + } +} +``` + +### Example: Build Commands + +```bash +# Build for current platform +npm run build + +# Build for specific platform +npm run build:win +npm run build:mac +npm run build:linux + +# Build all platforms +npm run build -- --win --mac --linux +``` + +### Key Points + +- Electron Forge is recommended for new projects +- electron-builder is popular and flexible +- Configure platform-specific settings +- Include only necessary files in build +- Set proper app ID and product name +- Use icons for each platform +- Code signing required for distribution +- Test builds on target platforms diff --git a/.agents/skills/electron/examples/api/browser-window.md b/.agents/skills/electron/examples/api/browser-window.md new file mode 100644 index 000000000000..1709e8bb923b --- /dev/null +++ b/.agents/skills/electron/examples/api/browser-window.md @@ -0,0 +1,182 @@ +# BrowserWindow | 窗口 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates how to use BrowserWindow to create and manage application windows. + +### Key Concepts + +- Creating windows +- Window options +- Loading content +- Window events +- Window methods + +### Example: Basic Window + +```javascript +const { BrowserWindow } = require('electron') +const path = require('path') + +function createWindow() { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + contextIsolation: true, + nodeIntegration: false + } + }) + + win.loadFile('index.html') +} + +createWindow() +``` + +### Example: Window Options + +```javascript +const win = new BrowserWindow({ + width: 1200, + height: 800, + minWidth: 400, + minHeight: 300, + maxWidth: 1920, + maxHeight: 1080, + resizable: true, + movable: true, + minimizable: true, + maximizable: true, + closable: true, + focusable: true, + alwaysOnTop: false, + fullscreen: false, + fullscreenable: true, + simpleFullscreen: false, + skipTaskbar: false, + kiosk: false, + title: 'My App', + icon: path.join(__dirname, 'icon.png'), + show: false, // Don't show until ready + frame: true, + titleBarStyle: 'default', + backgroundColor: '#ffffff', + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + contextIsolation: true, + nodeIntegration: false + } +}) + +// Show when ready +win.once('ready-to-show', () => { + win.show() +}) +``` + +### Example: Loading Content + +```javascript +const win = new BrowserWindow({ width: 800, height: 600 }) + +// Load local file +win.loadFile('index.html') + +// Load URL +win.loadURL('https://example.com') + +// Load with options +win.loadFile('index.html', { + query: { key: 'value' }, + hash: 'section' +}) +``` + +### Example: Window Events + +```javascript +const win = new BrowserWindow({ width: 800, height: 600 }) + +win.on('ready-to-show', () => { + win.show() +}) + +win.on('closed', () => { + win = null +}) + +win.on('focus', () => { + console.log('Window focused') +}) + +win.on('blur', () => { + console.log('Window blurred') +}) + +win.on('maximize', () => { + console.log('Window maximized') +}) + +win.on('unmaximize', () => { + console.log('Window unmaximized') +}) + +win.on('minimize', () => { + console.log('Window minimized') +}) + +win.on('restore', () => { + console.log('Window restored') +}) +``` + +### Example: Window Methods + +```javascript +const win = new BrowserWindow({ width: 800, height: 600 }) + +// Show/Hide +win.show() +win.hide() + +// Minimize/Maximize/Restore +win.minimize() +win.maximize() +win.restore() + +// Close +win.close() + +// Focus +win.focus() +win.blur() + +// Position +win.setPosition(100, 100) +const [x, y] = win.getPosition() + +// Size +win.setSize(1200, 800) +const [width, height] = win.getSize() + +// Center +win.center() + +// DevTools +win.webContents.openDevTools() +win.webContents.closeDevTools() +``` + +### Key Points + +- BrowserWindow creates application windows +- Use show: false and ready-to-show event for smooth loading +- webPreferences should have contextIsolation: true +- Never set nodeIntegration: true in renderer +- Use loadFile() for local files, loadURL() for remote +- Handle closed event to clean up references diff --git a/.agents/skills/electron/examples/api/menu.md b/.agents/skills/electron/examples/api/menu.md new file mode 100644 index 000000000000..c698a4a21ec7 --- /dev/null +++ b/.agents/skills/electron/examples/api/menu.md @@ -0,0 +1,187 @@ +# Menu | 菜单 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates how to use Menu to create application menus and context menus. + +### Key Concepts + +- Application menu +- Context menu +- Menu items +- Menu roles +- Menu accelerators + +### Example: Application Menu + +```javascript +const { app, Menu } = require('electron') + +const template = [ + { + label: 'File', + submenu: [ + { + label: 'New', + accelerator: 'CmdOrCtrl+N', + click: () => { + console.log('New file') + } + }, + { + label: 'Open', + accelerator: 'CmdOrCtrl+O', + click: () => { + console.log('Open file') + } + }, + { type: 'separator' }, + { + label: 'Exit', + accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q', + click: () => { + app.quit() + } + } + ] + }, + { + label: 'Edit', + submenu: [ + { role: 'undo', label: 'Undo' }, + { role: 'redo', label: 'Redo' }, + { type: 'separator' }, + { role: 'cut', label: 'Cut' }, + { role: 'copy', label: 'Copy' }, + { role: 'paste', label: 'Paste' } + ] + }, + { + label: 'View', + submenu: [ + { role: 'reload', label: 'Reload' }, + { role: 'forceReload', label: 'Force Reload' }, + { role: 'toggleDevTools', label: 'Toggle Developer Tools' }, + { type: 'separator' }, + { role: 'resetZoom', label: 'Actual Size' }, + { role: 'zoomIn', label: 'Zoom In' }, + { role: 'zoomOut', label: 'Zoom Out' }, + { type: 'separator' }, + { role: 'togglefullscreen', label: 'Toggle Fullscreen' } + ] + }, + { + label: 'Window', + submenu: [ + { role: 'minimize', label: 'Minimize' }, + { role: 'close', label: 'Close' } + ] + } +] + +// macOS: Add app menu +if (process.platform === 'darwin') { + template.unshift({ + label: app.getName(), + submenu: [ + { role: 'about', label: 'About' }, + { type: 'separator' }, + { role: 'services', label: 'Services' }, + { type: 'separator' }, + { role: 'hide', label: 'Hide' }, + { role: 'hideOthers', label: 'Hide Others' }, + { role: 'unhide', label: 'Show All' }, + { type: 'separator' }, + { role: 'quit', label: 'Quit' } + ] + }) +} + +const menu = Menu.buildFromTemplate(template) +Menu.setApplicationMenu(menu) +``` + +### Example: Context Menu + +```javascript +const { Menu, MenuItem } = require('electron') + +// In preload.js +const { contextBridge } = require('electron') + +contextBridge.exposeInMainWorld('electronAPI', { + showContextMenu: () => { + const menu = new Menu() + + menu.append(new MenuItem({ + label: 'Copy', + role: 'copy' + })) + + menu.append(new MenuItem({ + label: 'Paste', + role: 'paste' + })) + + menu.append(new MenuItem({ + type: 'separator' + })) + + menu.append(new MenuItem({ + label: 'Custom Action', + click: () => { + console.log('Custom action clicked') + } + })) + + menu.popup() + } +}) +``` + +### Example: Dynamic Menu + +```javascript +const { Menu } = require('electron') + +function updateMenu(hasFile) { + const template = [ + { + label: 'File', + submenu: [ + { + label: 'New', + enabled: true, + click: () => createNewFile() + }, + { + label: 'Open', + enabled: true, + click: () => openFile() + }, + { + label: 'Save', + enabled: hasFile, + click: () => saveFile() + } + ] + } + ] + + const menu = Menu.buildFromTemplate(template) + Menu.setApplicationMenu(menu) +} +``` + +### Key Points + +- Use Menu.buildFromTemplate() to create menus +- Use Menu.setApplicationMenu() for app menu +- Use menu.popup() for context menus +- Use role property for standard menu items +- Use accelerator for keyboard shortcuts +- macOS requires special app menu structure +- Context menus should be created in preload or main process diff --git a/.agents/skills/electron/examples/getting-started/installation.md b/.agents/skills/electron/examples/getting-started/installation.md new file mode 100644 index 000000000000..ea756ec72d7a --- /dev/null +++ b/.agents/skills/electron/examples/getting-started/installation.md @@ -0,0 +1,88 @@ +# Installation | 安装 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates how to install Electron and set up a basic project. + +### Key Concepts + +- Installing Electron +- Project structure +- package.json configuration +- Running Electron app + +### Example: Installation + +```bash +# Using npm +npm install electron --save-dev + +# Using yarn +yarn add electron --dev + +# Using pnpm +pnpm add electron --save-dev +``` + +### Example: Basic package.json + +```json +{ + "name": "my-electron-app", + "version": "1.0.0", + "description": "My Electron app", + "main": "main.js", + "scripts": { + "start": "electron .", + "dev": "electron ." + }, + "devDependencies": { + "electron": "^latest" + } +} +``` + +### Example: Project Structure + +``` +my-electron-app/ +├── main.js # Main process entry point +├── preload.js # Preload script (optional) +├── renderer/ +│ ├── index.html # Renderer HTML +│ └── renderer.js # Renderer script +├── package.json +└── README.md +``` + +### Example: Running the App + +```bash +# Start the app +npm start + +# Or directly +npx electron . +``` + +### Example: Using Electron Forge + +```bash +# Create new project with Electron Forge +npm create electron-app@latest my-app + +# Or add to existing project +npx @electron-forge/cli import +``` + +### Key Points + +- Install Electron as dev dependency +- Set `main` field in package.json to main process file +- Use `electron .` to run the app +- Main process file (main.js) is required +- Electron Forge can scaffold projects automatically +- Works on Windows, macOS, and Linux diff --git a/.agents/skills/electron/examples/getting-started/quick-start.md b/.agents/skills/electron/examples/getting-started/quick-start.md new file mode 100644 index 000000000000..7da614e49a69 --- /dev/null +++ b/.agents/skills/electron/examples/getting-started/quick-start.md @@ -0,0 +1,104 @@ +# Quick Start | 快速开始 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates how to create a basic Electron application. + +### Key Concepts + +- Main process setup +- Creating BrowserWindow +- Loading HTML content +- App lifecycle + +### Example: Basic main.js + +```javascript +// main.js +const { app, BrowserWindow } = require('electron') +const path = require('path') + +function createWindow() { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js') + } + }) + + win.loadFile('index.html') +} + +app.whenReady().then(() => { + createWindow() + + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } + }) +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) +``` + +### Example: Basic index.html + +```html + + + + + Hello Electron + + +

Hello Electron!

+

Welcome to Electron

+ + + +``` + +### Example: Basic preload.js + +```javascript +// preload.js +const { contextBridge, ipcRenderer } = require('electron') + +// Expose protected methods that allow the renderer process to use +// the ipcRenderer without exposing the entire object +contextBridge.exposeInMainWorld('electronAPI', { + openFile: () => ipcRenderer.invoke('dialog:openFile') +}) +``` + +### Example: Basic renderer.js + +```javascript +// renderer.js +document.addEventListener('DOMContentLoaded', () => { + console.log('Renderer process loaded') + + // Use exposed API from preload + window.electronAPI.openFile().then(result => { + console.log('File selected:', result) + }) +}) +``` + +### Key Points + +- Main process (main.js) controls app lifecycle +- BrowserWindow creates application windows +- loadFile() loads local HTML files +- Preload scripts bridge main and renderer safely +- Renderer process runs web content +- Use contextBridge for secure IPC exposure diff --git a/.agents/skills/electron/examples/processes/ipc-communication.md b/.agents/skills/electron/examples/processes/ipc-communication.md new file mode 100644 index 000000000000..a20c0df0ed47 --- /dev/null +++ b/.agents/skills/electron/examples/processes/ipc-communication.md @@ -0,0 +1,140 @@ +# IPC Communication | IPC 通信 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates IPC (Inter-Process Communication) between main and renderer processes. + +### Key Concepts + +- ipcMain in main process +- ipcRenderer in renderer process +- contextBridge for secure exposure +- Two-way communication + +### Example: Basic IPC Setup + +```javascript +// main.js +const { app, BrowserWindow, ipcMain } = require('electron') +const path = require('path') + +let mainWindow + +function createWindow() { + mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + contextIsolation: true, + nodeIntegration: false + } + }) + + mainWindow.loadFile('index.html') +} + +// Handle IPC from renderer +ipcMain.handle('get-app-version', () => { + return app.getVersion() +}) + +ipcMain.on('window-minimize', () => { + mainWindow.minimize() +}) + +app.whenReady().then(() => { + createWindow() +}) +``` + +### Example: Preload Script + +```javascript +// preload.js +const { contextBridge, ipcRenderer } = require('electron') + +// Expose safe API to renderer +contextBridge.exposeInMainWorld('electronAPI', { + getVersion: () => ipcRenderer.invoke('get-app-version'), + minimizeWindow: () => ipcRenderer.send('window-minimize'), + + // Two-way communication + openFile: () => ipcRenderer.invoke('dialog:openFile'), + + // Listen to main process + onUpdateAvailable: (callback) => { + ipcRenderer.on('update-available', (event, data) => callback(data)) + } +}) +``` + +### Example: Renderer Process + +```javascript +// renderer.js +document.addEventListener('DOMContentLoaded', () => { + // Get app version + window.electronAPI.getVersion().then(version => { + console.log('App version:', version) + }) + + // Minimize window + document.getElementById('minimize-btn').addEventListener('click', () => { + window.electronAPI.minimizeWindow() + }) + + // Open file dialog + document.getElementById('open-file-btn').addEventListener('click', async () => { + const result = await window.electronAPI.openFile() + console.log('Selected file:', result) + }) + + // Listen for updates + window.electronAPI.onUpdateAvailable((data) => { + console.log('Update available:', data) + }) +}) +``` + +### Example: Advanced IPC Patterns + +```javascript +// main.js +const { ipcMain, dialog } = require('electron') + +// Handle with async response +ipcMain.handle('dialog:openFile', async () => { + const { canceled, filePaths } = await dialog.showOpenDialog({ + properties: ['openFile'] + }) + + if (!canceled) { + return filePaths[0] + } + return null +}) + +// Send to renderer +ipcMain.on('check-updates', () => { + // Simulate update check + setTimeout(() => { + mainWindow.webContents.send('update-available', { + version: '1.0.1', + url: 'https://example.com/update' + }) + }, 2000) +}) +``` + +### Key Points + +- Use ipcMain.handle() for request-response pattern +- Use ipcMain.on() for one-way communication +- Use contextBridge.exposeInMainWorld() for secure API exposure +- Never expose ipcRenderer directly to renderer +- Use contextIsolation: true and nodeIntegration: false +- IPC enables safe communication between processes diff --git a/.agents/skills/electron/examples/processes/main-process.md b/.agents/skills/electron/examples/processes/main-process.md new file mode 100644 index 000000000000..2f7237e9883d --- /dev/null +++ b/.agents/skills/electron/examples/processes/main-process.md @@ -0,0 +1,121 @@ +# Main Process | 主进程 + +**官方文档**: https://www.electronjs.org/zh/docs/latest/, + + +## Instructions + +This example demonstrates main process concepts and usage in Electron. + +### Key Concepts + +- Main process role +- App lifecycle events +- Creating windows +- Managing application state + +### Example: App Lifecycle + +```javascript +// main.js +const { app, BrowserWindow } = require('electron') + +let mainWindow + +function createWindow() { + mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + nodeIntegration: false, + contextIsolation: true, + preload: path.join(__dirname, 'preload.js') + } + }) + + mainWindow.loadFile('index.html') + + mainWindow.on('closed', () => { + mainWindow = null + }) +} + +// App ready +app.whenReady().then(() => { + createWindow() +}) + +// macOS: Re-open window when dock icon is clicked +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } +}) + +// Quit when all windows are closed (except macOS) +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) +``` + +### Example: App Events + +```javascript +const { app } = require('electron') + +// Before app quits +app.on('before-quit', (event) => { + console.log('App is about to quit') +}) + +// Will quit +app.on('will-quit', (event) => { + console.log('App will quit') +}) + +// Quit +app.on('quit', () => { + console.log('App quit') +}) + +// Second instance +app.on('second-instance', () => { + // Focus existing window + if (mainWindow) { + if (mainWindow.isMinimized()) mainWindow.restore() + mainWindow.focus() + } +}) +``` + +### Example: Single Instance App + +```javascript +const { app } = require('electron') + +const gotTheLock = app.requestSingleInstanceLock() + +if (!gotTheLock) { + app.quit() +} else { + app.on('second-instance', () => { + // Handle second instance + }) + + // Continue with app initialization + app.whenReady().then(() => { + createWindow() + }) +} +``` + +### Key Points + +- Main process manages app lifecycle +- Use app.whenReady() before creating windows +- Handle window-all-closed for proper quit behavior +- macOS requires special handling for dock icon +- Use requestSingleInstanceLock() for single instance apps +- Main process has full Node.js access diff --git a/.agents/skills/electron/templates/main-process.md b/.agents/skills/electron/templates/main-process.md new file mode 100644 index 000000000000..94672eec4ee3 --- /dev/null +++ b/.agents/skills/electron/templates/main-process.md @@ -0,0 +1,105 @@ +# Main Process Template | 主进程模板 + +## Basic Main Process Template + +```javascript +// main.js +const { app, BrowserWindow } = require('electron') +const path = require('path') + +let mainWindow + +function createWindow() { + mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + contextIsolation: true, + nodeIntegration: false + } + }) + + mainWindow.loadFile('index.html') + + // Open DevTools in development + if (process.env.NODE_ENV === 'development') { + mainWindow.webContents.openDevTools() + } + + mainWindow.on('closed', () => { + mainWindow = null + }) +} + +app.whenReady().then(() => { + createWindow() + + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } + }) +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) +``` + +## With IPC Setup + +```javascript +// main.js +const { app, BrowserWindow, ipcMain } = require('electron') +const path = require('path') + +let mainWindow + +function createWindow() { + mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + contextIsolation: true, + nodeIntegration: false + } + }) + + mainWindow.loadFile('index.html') + + mainWindow.on('closed', () => { + mainWindow = null + }) +} + +// IPC Handlers +ipcMain.handle('get-app-version', () => { + return app.getVersion() +}) + +ipcMain.on('window-minimize', () => { + if (mainWindow) { + mainWindow.minimize() + } +}) + +app.whenReady().then(() => { + createWindow() +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } +}) +``` diff --git a/.agents/skills/electron/templates/preload-script.md b/.agents/skills/electron/templates/preload-script.md new file mode 100644 index 000000000000..e0106e76e730 --- /dev/null +++ b/.agents/skills/electron/templates/preload-script.md @@ -0,0 +1,84 @@ +# Preload Script Template | Preload 脚本模板 + +## Basic Preload Script + +```javascript +// preload.js +const { contextBridge, ipcRenderer } = require('electron') + +// Expose protected methods to renderer +contextBridge.exposeInMainWorld('electronAPI', { + // Get app version + getVersion: () => ipcRenderer.invoke('get-app-version'), + + // Window controls + minimize: () => ipcRenderer.send('window-minimize'), + maximize: () => ipcRenderer.send('window-maximize'), + close: () => ipcRenderer.send('window-close'), + + // File operations + openFile: () => ipcRenderer.invoke('dialog:openFile'), + saveFile: (data) => ipcRenderer.invoke('dialog:saveFile', data), + + // Listen to main process + onUpdateAvailable: (callback) => { + ipcRenderer.on('update-available', (event, data) => callback(data)) + }, + + // Remove listeners + removeAllListeners: (channel) => { + ipcRenderer.removeAllListeners(channel) + } +}) +``` + +## Advanced Preload Script + +```javascript +// preload.js +const { contextBridge, ipcRenderer } = require('electron') + +// Expose API with error handling +contextBridge.exposeInMainWorld('electronAPI', { + // Safe IPC invoke + invoke: async (channel, ...args) => { + const validChannels = [ + 'get-app-version', + 'dialog:openFile', + 'dialog:saveFile' + ] + + if (validChannels.includes(channel)) { + return await ipcRenderer.invoke(channel, ...args) + } + throw new Error(`Invalid channel: ${channel}`) + }, + + // Safe IPC send + send: (channel, ...args) => { + const validChannels = [ + 'window-minimize', + 'window-maximize', + 'window-close' + ] + + if (validChannels.includes(channel)) { + ipcRenderer.send(channel, ...args) + } + }, + + // Safe event listener + on: (channel, callback) => { + const validChannels = ['update-available', 'app-version'] + + if (validChannels.includes(channel)) { + ipcRenderer.on(channel, (event, ...args) => callback(...args)) + } + }, + + // Remove listener + removeListener: (channel, callback) => { + ipcRenderer.removeListener(channel, callback) + } +}) +``` diff --git a/.augment/skills/electron b/.augment/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.augment/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.claude/skills/electron b/.claude/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.claude/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.cline/skills/electron b/.cline/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.cline/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.continue/skills/electron b/.continue/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.continue/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.crush/skills/electron b/.crush/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.crush/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.cursor/skills/electron b/.cursor/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.cursor/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json index fdd03c400cc0..cbcde9bb1093 100644 --- a/.devcontainer/devcontainer-lock.json +++ b/.devcontainer/devcontainer-lock.json @@ -4,11 +4,6 @@ "version": "1.0.8", "resolved": "ghcr.io/devcontainers/features/desktop-lite@sha256:e7dc4d37ab9e3d6e7ebb221bac741f5bfe07dae47025399d038b17af2ed8ddb7", "integrity": "sha256:e7dc4d37ab9e3d6e7ebb221bac741f5bfe07dae47025399d038b17af2ed8ddb7" - }, - "ghcr.io/devcontainers/features/rust:1": { - "version": "1.1.3", - "resolved": "ghcr.io/devcontainers/features/rust@sha256:aba6f47303b197976902bf544c786b5efecc03c238ff593583e5e74dfa9c7ccb", - "integrity": "sha256:aba6f47303b197976902bf544c786b5efecc03c238ff593583e5e74dfa9c7ccb" } } } \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 75076a0f8b65..ae90f48d741a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,11 +1,12 @@ { "name": "Code - OSS", + "remoteUser": "node", + "updateRemoteUserUID": true, "build": { "dockerfile": "Dockerfile" }, "features": { - "ghcr.io/devcontainers/features/desktop-lite:1": {}, - "ghcr.io/devcontainers/features/rust:1": {} + "ghcr.io/devcontainers/features/desktop-lite:1": {} }, "containerEnv": { "DISPLAY": "" // Allow the Dev Containers extension to set DISPLAY, post-create.sh will add it back in ~/.bashrc and ~/.zshrc if not set. diff --git a/.junie/skills/electron b/.junie/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.junie/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.kilocode/skills/electron b/.kilocode/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.kilocode/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.npmrc b/.npmrc index 71d98e6c5834..192a8dd0b1bd 100644 --- a/.npmrc +++ b/.npmrc @@ -5,3 +5,4 @@ runtime="electron" build_from_source="true" legacy-peer-deps="true" timeout=180000 +node_gyp_cflags=-std=c++20 diff --git a/.qwen/skills/electron b/.qwen/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.qwen/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.roo/skills/electron b/.roo/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.roo/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.trae/skills/electron b/.trae/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.trae/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/.windsurf/skills/electron b/.windsurf/skills/electron new file mode 120000 index 000000000000..d04d1cd05cfd --- /dev/null +++ b/.windsurf/skills/electron @@ -0,0 +1 @@ +../../.agents/skills/electron \ No newline at end of file diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt index 6be514a4572f..29f49e7348b6 100644 --- a/ThirdPartyNotices.txt +++ b/ThirdPartyNotices.txt @@ -4,6 +4,34 @@ This repository incorporates material as listed below or described in the code. +--------------------------------------------------------- + +castrogusttavo/symbols 0.0.18 - MIT +https://open-vsx.org/extension/castrogusttavo/symbols +https://github.com/miguelsolorio/vscode-symbols + +MIT License + +Copyright (c) 2021 Miguel Solorio + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + --------------------------------------------------------- @fig/autocomplete-shared 1.1.2 diff --git a/extensions/continue/LICENSE.txt b/extensions/continue/LICENSE.txt new file mode 100644 index 000000000000..a12f2a758059 --- /dev/null +++ b/extensions/continue/LICENSE.txt @@ -0,0 +1,13 @@ +Copyright 2023 Continue + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/extensions/continue/README.md b/extensions/continue/README.md new file mode 100644 index 000000000000..1060646e053e --- /dev/null +++ b/extensions/continue/README.md @@ -0,0 +1,54 @@ +
+ +![Continue logo](https://github.com/continuedev/continue/raw/HEAD/media/readme.png) + +
+ + + + + + + + +

+ +
+ +

Continue

+ +
+ +**[Source-controlled AI checks, enforceable in CI](https://docs.continue.dev)** + +
+ +## VS Code Agent + +[Agent](https://docs.continue.dev/features/agent/quick-start) to work on development tasks together with AI + +![agent](https://github.com/continuedev/continue/raw/HEAD/docs/images/agent.gif) + +## VS Code Chat + +[Chat](https://docs.continue.dev/features/chat/quick-start) to ask general questions and clarify code sections + +![chat](https://github.com/continuedev/continue/raw/HEAD/docs/images/chat.gif) + +## VS Code Edit + +[Edit](https://docs.continue.dev/features/edit/quick-start) to modify a code section without leaving your current file + +![edit](https://github.com/continuedev/continue/raw/HEAD/docs/images/edit.gif) + +## VS Code Autocomplete + +[Autocomplete](https://docs.continue.dev/features/autocomplete/quick-start) to receive inline code suggestions as you type + +![autocomplete](https://github.com/continuedev/continue/raw/HEAD/docs/images/autocomplete.gif) + +
+ +## License + +[Apache 2.0 © 2023-2025 Continue Dev, Inc.](https://github.com/continuedev/continue/blob/HEAD/LICENSE) diff --git a/extensions/continue/bin/napi-v3/darwin/arm64/libonnxruntime.1.14.0.dylib b/extensions/continue/bin/napi-v3/darwin/arm64/libonnxruntime.1.14.0.dylib new file mode 100644 index 000000000000..e336bb590692 Binary files /dev/null and b/extensions/continue/bin/napi-v3/darwin/arm64/libonnxruntime.1.14.0.dylib differ diff --git a/extensions/continue/bin/napi-v3/darwin/arm64/onnxruntime_binding.node b/extensions/continue/bin/napi-v3/darwin/arm64/onnxruntime_binding.node new file mode 100644 index 000000000000..3a5e7f0c72d4 Binary files /dev/null and b/extensions/continue/bin/napi-v3/darwin/arm64/onnxruntime_binding.node differ diff --git a/extensions/continue/bin/napi-v3/darwin/x64/libonnxruntime.1.14.0.dylib b/extensions/continue/bin/napi-v3/darwin/x64/libonnxruntime.1.14.0.dylib new file mode 100644 index 000000000000..f5b8c258e563 Binary files /dev/null and b/extensions/continue/bin/napi-v3/darwin/x64/libonnxruntime.1.14.0.dylib differ diff --git a/extensions/continue/bin/napi-v3/darwin/x64/onnxruntime_binding.node b/extensions/continue/bin/napi-v3/darwin/x64/onnxruntime_binding.node new file mode 100644 index 000000000000..0de4d353abac Binary files /dev/null and b/extensions/continue/bin/napi-v3/darwin/x64/onnxruntime_binding.node differ diff --git a/extensions/continue/config-yaml-schema.json b/extensions/continue/config-yaml-schema.json new file mode 100644 index 000000000000..1e9ff268a38f --- /dev/null +++ b/extensions/continue/config-yaml-schema.json @@ -0,0 +1,2636 @@ +{ + "$ref": "#/definitions/ConfigYaml", + "definitions": { + "ConfigYaml": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "schema": { + "type": "string" + }, + "metadata": { + "allOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "type": "object", + "properties": { + "tags": { + "type": "string" + }, + "sourceCodeUrl": { + "type": "string" + }, + "description": { + "type": "string" + }, + "author": { + "type": "string" + }, + "license": { + "type": "string" + }, + "iconUrl": { + "type": "string" + } + } + } + ] + }, + "env": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "number", + "boolean" + ] + } + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "models": { + "type": "array", + "items": { + "anyOf": [ + { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "maxStopWords": { + "type": "number" + }, + "roles": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "chat", + "autocomplete", + "embed", + "rerank", + "edit", + "apply", + "summarize", + "subagent" + ] + } + }, + "capabilities": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "const": "tool_use" + }, + { + "type": "string", + "const": "image_input" + }, + { + "type": "string", + "const": "next_edit" + }, + { + "type": "string" + } + ] + } + }, + "defaultCompletionOptions": { + "type": "object", + "properties": { + "contextLength": { + "type": "number" + }, + "maxTokens": { + "type": "number" + }, + "temperature": { + "type": "number" + }, + "topP": { + "type": "number" + }, + "topK": { + "type": "number" + }, + "minP": { + "type": "number" + }, + "presencePenalty": { + "type": "number" + }, + "frequencyPenalty": { + "type": "number" + }, + "stop": { + "type": "array", + "items": { + "type": "string" + } + }, + "n": { + "type": "number" + }, + "reasoning": { + "type": "boolean" + }, + "reasoningBudgetTokens": { + "type": "number" + }, + "promptCaching": { + "type": "boolean" + }, + "stream": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "cacheBehavior": { + "type": "object", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "embedOptions": { + "type": "object", + "properties": { + "maxChunkSize": { + "type": "number" + }, + "maxBatchSize": { + "type": "number" + }, + "embeddingPrefixes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "chatOptions": { + "type": "object", + "properties": { + "baseSystemMessage": { + "type": "string" + }, + "baseAgentSystemMessage": { + "type": "string" + }, + "basePlanSystemMessage": { + "type": "string" + }, + "toolOverrides": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayTitle": { + "type": "string" + }, + "wouldLikeTo": { + "type": "string" + }, + "isCurrently": { + "type": "string" + }, + "hasAlready": { + "type": "string" + }, + "systemMessageDescription": { + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "exampleArgs": { + "type": "array", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": [ + { + "type": "string" + }, + { + "type": [ + "string", + "number" + ] + } + ] + } + } + }, + "additionalProperties": false + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "promptTemplates": { + "type": "object", + "properties": { + "apply": { + "type": "string" + }, + "chat": { + "type": "string", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "openchat", + "deepseek", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "granite", + "llama3", + "codestral" + ] + }, + "edit": { + "type": "string" + }, + "autocomplete": { + "type": "string" + } + }, + "additionalProperties": false + }, + "useLegacyCompletionsEndpoint": { + "type": "boolean" + }, + "env": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "boolean", + "number" + ] + } + }, + "autocompleteOptions": { + "type": "object", + "properties": { + "disable": { + "type": "boolean" + }, + "maxPromptTokens": { + "type": "number" + }, + "debounceDelay": { + "type": "number" + }, + "modelTimeout": { + "type": "number" + }, + "maxSuffixPercentage": { + "type": "number" + }, + "prefixPercentage": { + "type": "number" + }, + "transform": { + "type": "boolean" + }, + "template": { + "type": "string" + }, + "onlyMyCode": { + "type": "boolean" + }, + "useCache": { + "type": "boolean" + }, + "useImports": { + "type": "boolean" + }, + "useRecentlyEdited": { + "type": "boolean" + }, + "useRecentlyOpened": { + "type": "boolean" + }, + "experimental_includeClipboard": { + "type": "boolean" + }, + "experimental_includeRecentlyVisitedRanges": { + "type": "boolean" + }, + "experimental_includeRecentlyEditedRanges": { + "type": "boolean" + }, + "experimental_includeDiff": { + "type": "boolean" + }, + "experimental_enableStaticContextualization": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "provider": { + "type": "string", + "const": "continue-proxy" + }, + "apiKeyLocation": { + "type": "string" + }, + "envSecretLocations": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "orgScopeId": { + "type": [ + "string", + "null" + ] + }, + "onPremProxyUrl": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "model", + "provider", + "orgScopeId", + "onPremProxyUrl" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "maxStopWords": { + "type": "number" + }, + "roles": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "chat", + "autocomplete", + "embed", + "rerank", + "edit", + "apply", + "summarize", + "subagent" + ] + } + }, + "capabilities": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "const": "tool_use" + }, + { + "type": "string", + "const": "image_input" + }, + { + "type": "string", + "const": "next_edit" + }, + { + "type": "string" + } + ] + } + }, + "defaultCompletionOptions": { + "type": "object", + "properties": { + "contextLength": { + "type": "number" + }, + "maxTokens": { + "type": "number" + }, + "temperature": { + "type": "number" + }, + "topP": { + "type": "number" + }, + "topK": { + "type": "number" + }, + "minP": { + "type": "number" + }, + "presencePenalty": { + "type": "number" + }, + "frequencyPenalty": { + "type": "number" + }, + "stop": { + "type": "array", + "items": { + "type": "string" + } + }, + "n": { + "type": "number" + }, + "reasoning": { + "type": "boolean" + }, + "reasoningBudgetTokens": { + "type": "number" + }, + "promptCaching": { + "type": "boolean" + }, + "stream": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "cacheBehavior": { + "type": "object", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "embedOptions": { + "type": "object", + "properties": { + "maxChunkSize": { + "type": "number" + }, + "maxBatchSize": { + "type": "number" + }, + "embeddingPrefixes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "chatOptions": { + "type": "object", + "properties": { + "baseSystemMessage": { + "type": "string" + }, + "baseAgentSystemMessage": { + "type": "string" + }, + "basePlanSystemMessage": { + "type": "string" + }, + "toolOverrides": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayTitle": { + "type": "string" + }, + "wouldLikeTo": { + "type": "string" + }, + "isCurrently": { + "type": "string" + }, + "hasAlready": { + "type": "string" + }, + "systemMessageDescription": { + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "exampleArgs": { + "type": "array", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": [ + { + "type": "string" + }, + { + "type": [ + "string", + "number" + ] + } + ] + } + } + }, + "additionalProperties": false + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "promptTemplates": { + "type": "object", + "properties": { + "apply": { + "type": "string" + }, + "chat": { + "type": "string", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "openchat", + "deepseek", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "granite", + "llama3", + "codestral" + ] + }, + "edit": { + "type": "string" + }, + "autocomplete": { + "type": "string" + } + }, + "additionalProperties": false + }, + "useLegacyCompletionsEndpoint": { + "type": "boolean" + }, + "env": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "boolean", + "number" + ] + } + }, + "autocompleteOptions": { + "type": "object", + "properties": { + "disable": { + "type": "boolean" + }, + "maxPromptTokens": { + "type": "number" + }, + "debounceDelay": { + "type": "number" + }, + "modelTimeout": { + "type": "number" + }, + "maxSuffixPercentage": { + "type": "number" + }, + "prefixPercentage": { + "type": "number" + }, + "transform": { + "type": "boolean" + }, + "template": { + "type": "string" + }, + "onlyMyCode": { + "type": "boolean" + }, + "useCache": { + "type": "boolean" + }, + "useImports": { + "type": "boolean" + }, + "useRecentlyEdited": { + "type": "boolean" + }, + "useRecentlyOpened": { + "type": "boolean" + }, + "experimental_includeClipboard": { + "type": "boolean" + }, + "experimental_includeRecentlyVisitedRanges": { + "type": "boolean" + }, + "experimental_includeRecentlyEditedRanges": { + "type": "boolean" + }, + "experimental_includeDiff": { + "type": "boolean" + }, + "experimental_enableStaticContextualization": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "provider": { + "type": "string" + }, + "sourceFile": { + "type": "string" + } + }, + "required": [ + "name", + "model", + "provider" + ], + "additionalProperties": false + } + ] + }, + { + "type": "object", + "properties": { + "uses": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "anthropic/claude-sonnet-4", + "togetherai/llama-4-maverick-instruct-17bx128e", + "google/gemini-2.5-pro", + "mistral/codestral", + "voyageai/voyage-code-3", + "anthropic/claude-sonnet-4-5", + "relace/instant-apply", + "xai/grok-2", + "openai/gpt-4o", + "togetherai/llama-4-scout-instruct-17bx16e", + "anthropic/claude-haiku-4-5", + "google/gemini-2.0-flash", + "voyageai/rerank-2", + "anthropic/claude-opus-4-1", + "ollama/deepseek-r1", + "morphllm/morph-v0", + "lmstudio/deepseek-r1", + "openai/o3-mini", + "voyageai/voyage-code-2", + "ollama/qwen2.5-coder-1.5b", + "openai/gpt-4o-mini", + "openai/o1", + "mistral/mistral-embed", + "ollama/nomic-embed-text-latest", + "lmstudio/deepseek-r1-8b", + "mistral/mistral-large", + "lmstudio/qwen2.5-coder-1.5b", + "ollama/deepseek-r1-8b", + "openai/text-embedding-3-large" + ] + } + ] + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "maxStopWords": { + "type": "number" + }, + "roles": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "chat", + "autocomplete", + "embed", + "rerank", + "edit", + "apply", + "summarize", + "subagent" + ] + } + }, + "capabilities": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "const": "tool_use" + }, + { + "type": "string", + "const": "image_input" + }, + { + "type": "string", + "const": "next_edit" + }, + { + "type": "string" + } + ] + } + }, + "defaultCompletionOptions": { + "type": "object", + "properties": { + "contextLength": { + "type": "number" + }, + "maxTokens": { + "type": "number" + }, + "temperature": { + "type": "number" + }, + "topP": { + "type": "number" + }, + "topK": { + "type": "number" + }, + "minP": { + "type": "number" + }, + "presencePenalty": { + "type": "number" + }, + "frequencyPenalty": { + "type": "number" + }, + "stop": { + "type": "array", + "items": { + "type": "string" + } + }, + "n": { + "type": "number" + }, + "reasoning": { + "type": "boolean" + }, + "reasoningBudgetTokens": { + "type": "number" + }, + "promptCaching": { + "type": "boolean" + }, + "stream": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "cacheBehavior": { + "type": "object", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "embedOptions": { + "type": "object", + "properties": { + "maxChunkSize": { + "type": "number" + }, + "maxBatchSize": { + "type": "number" + }, + "embeddingPrefixes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "chatOptions": { + "type": "object", + "properties": { + "baseSystemMessage": { + "type": "string" + }, + "baseAgentSystemMessage": { + "type": "string" + }, + "basePlanSystemMessage": { + "type": "string" + }, + "toolOverrides": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayTitle": { + "type": "string" + }, + "wouldLikeTo": { + "type": "string" + }, + "isCurrently": { + "type": "string" + }, + "hasAlready": { + "type": "string" + }, + "systemMessageDescription": { + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "exampleArgs": { + "type": "array", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": [ + { + "type": "string" + }, + { + "type": [ + "string", + "number" + ] + } + ] + } + } + }, + "additionalProperties": false + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "promptTemplates": { + "type": "object", + "properties": { + "apply": { + "type": "string" + }, + "chat": { + "type": "string", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "openchat", + "deepseek", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "granite", + "llama3", + "codestral" + ] + }, + "edit": { + "type": "string" + }, + "autocomplete": { + "type": "string" + } + }, + "additionalProperties": false + }, + "useLegacyCompletionsEndpoint": { + "type": "boolean" + }, + "env": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "boolean", + "number" + ] + } + }, + "autocompleteOptions": { + "type": "object", + "properties": { + "disable": { + "type": "boolean" + }, + "maxPromptTokens": { + "type": "number" + }, + "debounceDelay": { + "type": "number" + }, + "modelTimeout": { + "type": "number" + }, + "maxSuffixPercentage": { + "type": "number" + }, + "prefixPercentage": { + "type": "number" + }, + "transform": { + "type": "boolean" + }, + "template": { + "type": "string" + }, + "onlyMyCode": { + "type": "boolean" + }, + "useCache": { + "type": "boolean" + }, + "useImports": { + "type": "boolean" + }, + "useRecentlyEdited": { + "type": "boolean" + }, + "useRecentlyOpened": { + "type": "boolean" + }, + "experimental_includeClipboard": { + "type": "boolean" + }, + "experimental_includeRecentlyVisitedRanges": { + "type": "boolean" + }, + "experimental_includeRecentlyEditedRanges": { + "type": "boolean" + }, + "experimental_includeDiff": { + "type": "boolean" + }, + "experimental_enableStaticContextualization": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "provider": { + "type": "string", + "const": "continue-proxy" + }, + "apiKeyLocation": { + "type": "string" + }, + "envSecretLocations": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "maxStopWords": { + "type": "number" + }, + "roles": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "chat", + "autocomplete", + "embed", + "rerank", + "edit", + "apply", + "summarize", + "subagent" + ] + } + }, + "capabilities": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "const": "tool_use" + }, + { + "type": "string", + "const": "image_input" + }, + { + "type": "string", + "const": "next_edit" + }, + { + "type": "string" + } + ] + } + }, + "defaultCompletionOptions": { + "type": "object", + "properties": { + "contextLength": { + "type": "number" + }, + "maxTokens": { + "type": "number" + }, + "temperature": { + "type": "number" + }, + "topP": { + "type": "number" + }, + "topK": { + "type": "number" + }, + "minP": { + "type": "number" + }, + "presencePenalty": { + "type": "number" + }, + "frequencyPenalty": { + "type": "number" + }, + "stop": { + "type": "array", + "items": { + "type": "string" + } + }, + "n": { + "type": "number" + }, + "reasoning": { + "type": "boolean" + }, + "reasoningBudgetTokens": { + "type": "number" + }, + "promptCaching": { + "type": "boolean" + }, + "stream": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "cacheBehavior": { + "type": "object", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "embedOptions": { + "type": "object", + "properties": { + "maxChunkSize": { + "type": "number" + }, + "maxBatchSize": { + "type": "number" + }, + "embeddingPrefixes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "chatOptions": { + "type": "object", + "properties": { + "baseSystemMessage": { + "type": "string" + }, + "baseAgentSystemMessage": { + "type": "string" + }, + "basePlanSystemMessage": { + "type": "string" + }, + "toolOverrides": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "displayTitle": { + "type": "string" + }, + "wouldLikeTo": { + "type": "string" + }, + "isCurrently": { + "type": "string" + }, + "hasAlready": { + "type": "string" + }, + "systemMessageDescription": { + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "exampleArgs": { + "type": "array", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": [ + { + "type": "string" + }, + { + "type": [ + "string", + "number" + ] + } + ] + } + } + }, + "additionalProperties": false + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + } + } + }, + "additionalProperties": false + }, + "promptTemplates": { + "type": "object", + "properties": { + "apply": { + "type": "string" + }, + "chat": { + "type": "string", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "openchat", + "deepseek", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "granite", + "llama3", + "codestral" + ] + }, + "edit": { + "type": "string" + }, + "autocomplete": { + "type": "string" + } + }, + "additionalProperties": false + }, + "useLegacyCompletionsEndpoint": { + "type": "boolean" + }, + "env": { + "type": "object", + "additionalProperties": { + "type": [ + "string", + "boolean", + "number" + ] + } + }, + "autocompleteOptions": { + "type": "object", + "properties": { + "disable": { + "type": "boolean" + }, + "maxPromptTokens": { + "type": "number" + }, + "debounceDelay": { + "type": "number" + }, + "modelTimeout": { + "type": "number" + }, + "maxSuffixPercentage": { + "type": "number" + }, + "prefixPercentage": { + "type": "number" + }, + "transform": { + "type": "boolean" + }, + "template": { + "type": "string" + }, + "onlyMyCode": { + "type": "boolean" + }, + "useCache": { + "type": "boolean" + }, + "useImports": { + "type": "boolean" + }, + "useRecentlyEdited": { + "type": "boolean" + }, + "useRecentlyOpened": { + "type": "boolean" + }, + "experimental_includeClipboard": { + "type": "boolean" + }, + "experimental_includeRecentlyVisitedRanges": { + "type": "boolean" + }, + "experimental_includeRecentlyEditedRanges": { + "type": "boolean" + }, + "experimental_includeDiff": { + "type": "boolean" + }, + "experimental_enableStaticContextualization": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false + } + ] + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "context": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "params": {} + }, + "required": [ + "provider" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "params": {} + }, + "additionalProperties": false + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "data": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "schema": { + "type": "string", + "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\\+([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$" + }, + "level": { + "type": "string", + "enum": [ + "all", + "noCode" + ] + }, + "events": { + "type": "array", + "items": { + "type": "string" + } + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "name", + "destination", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "schema": { + "type": "string", + "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\\+([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$" + }, + "level": { + "type": "string", + "enum": [ + "all", + "noCode" + ] + }, + "events": { + "type": "array", + "items": { + "type": "string" + } + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "apiKey": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "mcpServers": { + "type": "array", + "items": { + "anyOf": [ + { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "serverName": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "sourceFile": { + "type": "string" + }, + "sourceSlug": { + "type": "string" + }, + "connectionTimeout": { + "type": "number", + "exclusiveMinimum": 0 + }, + "command": { + "type": "string" + }, + "type": { + "type": "string", + "const": "stdio" + }, + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "cwd": { + "type": "string" + } + }, + "required": [ + "name", + "command" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "serverName": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "sourceFile": { + "type": "string" + }, + "sourceSlug": { + "type": "string" + }, + "connectionTimeout": { + "type": "number", + "exclusiveMinimum": 0 + }, + "url": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sse", + "streamable-http" + ] + }, + "apiKey": { + "type": "string" + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "required": [ + "name", + "url" + ], + "additionalProperties": false + } + ] + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "serverName": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "sourceFile": { + "type": "string" + }, + "sourceSlug": { + "type": "string" + }, + "connectionTimeout": { + "type": "number", + "exclusiveMinimum": 0 + }, + "command": { + "type": "string" + }, + "type": { + "type": "string", + "const": "stdio" + }, + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "cwd": { + "type": "string" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "serverName": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "sourceFile": { + "type": "string" + }, + "sourceSlug": { + "type": "string" + }, + "connectionTimeout": { + "type": "number", + "exclusiveMinimum": 0 + }, + "url": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sse", + "streamable-http" + ] + }, + "apiKey": { + "type": "string" + }, + "requestOptions": { + "type": "object", + "properties": { + "timeout": { + "type": "number" + }, + "verifySsl": { + "type": "boolean" + }, + "caBundlePath": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "type": "string" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "type": "object", + "additionalProperties": {} + }, + "noProxy": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "type": "object", + "properties": { + "cert": { + "type": "string" + }, + "key": { + "type": "string" + }, + "passphrase": { + "type": "string" + } + }, + "required": [ + "cert", + "key" + ], + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + ] + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "rules": { + "type": "array", + "items": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "rule": { + "type": "string" + }, + "description": { + "type": "string" + }, + "globs": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "regex": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "alwaysApply": { + "type": "boolean" + }, + "invokable": { + "type": "boolean" + }, + "sourceFile": { + "type": "string" + } + }, + "required": [ + "name", + "rule" + ], + "additionalProperties": false + } + ] + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "prompts": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "prompt": { + "type": "string" + }, + "sourceFile": { + "type": "string" + } + }, + "required": [ + "name", + "prompt" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "prompt": { + "type": "string" + }, + "sourceFile": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + }, + "docs": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "startUrl": { + "type": "string" + }, + "rootUrl": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "useLocalCrawling": { + "type": "boolean" + }, + "sourceFile": { + "type": "string" + } + }, + "required": [ + "name", + "startUrl" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "uses": { + "type": "string" + }, + "with": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "override": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "startUrl": { + "type": "string" + }, + "rootUrl": { + "type": "string" + }, + "faviconUrl": { + "type": "string" + }, + "useLocalCrawling": { + "type": "boolean" + }, + "sourceFile": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": [ + "uses" + ], + "additionalProperties": false + } + ] + } + } + }, + "required": [ + "name", + "version" + ], + "additionalProperties": false + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" +} \ No newline at end of file diff --git a/extensions/continue/config_schema.json b/extensions/continue/config_schema.json new file mode 100644 index 000000000000..160c994214fa --- /dev/null +++ b/extensions/continue/config_schema.json @@ -0,0 +1,3547 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "config.json", + "$ref": "#/$defs/SerializedContinueConfig", + "$defs": { + "BaseCompletionOptions": { + "title": "BaseCompletionOptions", + "type": "object", + "properties": { + "stream": { + "title": "Stream", + "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", + "type": "boolean", + "default": true + }, + "temperature": { + "title": "Temperature", + "description": "The temperature of the completion.", + "type": "number" + }, + "topP": { + "title": "Top P", + "description": "The topP of the completion.", + "type": "number" + }, + "topK": { + "title": "Top K", + "description": "The topK of the completion.", + "type": "integer" + }, + "presencePenalty": { + "title": "Presence Penalty", + "description": "The presence penalty Aof the completion.", + "type": "number" + }, + "frequencyPenalty": { + "title": "Frequency Penalty", + "description": "The frequency penalty of the completion.", + "type": "number" + }, + "mirostat": { + "title": "Mirostat", + "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", + "type": "number" + }, + "stop": { + "title": "Stop", + "description": "The stop tokens of the completion.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxTokens": { + "title": "Max Tokens", + "description": "The maximum number of tokens to generate.", + "default": 600, + "type": "integer" + }, + "numThreads": { + "title": "Number of threads", + "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", + "type": "integer" + }, + "useMmap": { + "title": "Use Memory Map", + "description": "Allows the model to be mapped into memory. If disabled can enhance response time on low end devices. Only available for Ollama (this is the use_mmap parameter)", + "type": "boolean" + }, + "keepAlive": { + "title": "Ollama keep_alive", + "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", + "type": "integer" + }, + "numGpu": { + "title": "Ollama num_gpu", + "description": "Override the number of gpu layers used when loading the model" + }, + "reasoning": { + "title": "Reasoning", + "description": "Enable thinking/reasoning for Anthropic Claude 3.7+ and some Ollama models", + "type": "boolean" + }, + "reasoningBudgetTokens": { + "title": "Reasoning Budget Tokens", + "description": "Set budget tokens for thinking/reasoning in Anthropic Claude 3.7+ models", + "type": "integer" + } + } + }, + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", + "properties": { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", + "type": "string" + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", + "type": "string" + } + }, + "required": ["cert", "key"] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", + "default": 7200, + "type": "integer" + }, + "verifySsl": { + "title": "Verify Ssl", + "description": "Whether to verify SSL certificates for requests.", + "type": "boolean" + }, + "caBundlePath": { + "title": "Ca Bundle Path", + "description": "Path to a custom CA bundle to use when making the HTTP request", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "title": "Proxy", + "description": "Proxy URL to use when making the HTTP request", + "type": "string" + }, + "headers": { + "title": "Headers", + "description": "Headers to use when making the HTTP request", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "title": "Extra Body Properties", + "description": "This object will be merged with the body when making the HTTP requests", + "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/$defs/ClientCertificateOptions" + } + } + }, + "ModelDescription": { + "title": "ModelDescription", + "type": "object", + "properties": { + "title": { + "title": "Title", + "description": "The title you wish to give your model.", + "type": "string" + }, + "provider": { + "title": "Provider", + "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", + "enum": [ + "openai", + "anthropic", + "anthropic-vertexai", + "cohere", + "bedrock", + "bedrockimport", + "sagemaker", + "together", + "novita", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "replicate", + "gemini", + "gemini-vertexai", + "lmstudio", + "llamafile", + "mistral", + "mistral-vertexai", + "deepinfra", + "groq", + "fireworks", + "ncompass", + "cloudflare", + "deepseek", + "azure", + "msty", + "watsonx", + "openrouter", + "sambanova", + "nvidia", + "vllm", + "cerebras", + "askSage", + "nebius", + "vertexai", + "xAI", + "kindo", + "moonshot", + "siliconflow", + "function-network", + "scaleway", + "relace", + "morph", + "ovhcloud", + "venice", + "inception", + "tars" + ], + "markdownEnumDescriptions": [ + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Anthropic Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", + "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock)", + "### Bedrock Imported Models\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock)", + "### Sagemaker\nSagemaker is AWS' machine learning platform.", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Novita AI\n[Novita AI](https://novita.ai?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link) offers an affordable, reliable, and simple inference platform with scalable [LLM APIs](https://novita.ai/docs/model-api/reference/introduction.html), empowering developers to build AI applications. To get started with Novita AI:\n1. Obtain an API key from [here](https://novita.ai/settings/key-management?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/novita)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### Gemini API on Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", + "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", + "### Mistral API on Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Ncompass\nnCompass is an extremely fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://app.ncompass.tech/api-settings).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)", + "### IBM watsonx\nwatsonx, developed by IBM, offers a variety of pre-trained AI foundation models that can be used for natural language processing (NLP), computer vision, and speech recognition tasks.", + "### OpenRouter\nOpenRouter offers a single API to access almost any language model. To get started, obtain an API key from [their console](https://openrouter.ai/settings/keys).", + "### SambaNova\n SambaNova provides fast inference of open-source language models with zero data retention. To get started, obtain an API key in [SambaNova Cloud](https://cloud.sambanova.ai/apis?utm_source=continue&utm_medium=external&utm_campaign=cloud_signup ).", + "### NVIDIA NIMs\nNVIDIA offers a single API to access almost any language model. To find out more, visit the [LLM APIs Documentation](https://docs.api.nvidia.com/nim/reference/llm-apis).\nFor information specific to getting a key, please check out the [docs here](https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html#option-1-from-api-catalog)", + "### vLLM\nvLLM is a highly performant way of hosting LLMs for a team. To get started, follow their [quickstart](https://docs.vllm.ai/en/latest/getting_started/quickstart.html) to set up your server.", + "### Cerebras\nCerebras Inference uses specialized silicon to provides superfast inference. To get started, get your API keys from [their console](https://cloud.cerebras.ai/).", + "### Ask Sage\nAsk Sage is an agnostic hosted service that provides language models. To get started with Ask Sage:\n1. Obtain an API key from your account. For more information, visit [Ask Sage](https://docs.asksage.ai/).\n2. Paste the API key below.\n3. Select a model preset.\n> [Reference](https://docs.asksage.ai/)", + "### Nebius\nNebius AI platform is a cloud service for machine learning model inference and training. To get started, obtain an API key from the [Nebius console](https://console.nebius.ai/).", + "### Vertex AI\nVertex AI provides access to Google's foundation models and ML tools. To get started, enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### xAI offers a world class developer tool set to build scalable applications powered by Grok. To get started, obtain an API key from [the x Console](https://console.x.ai/), and see the [docs](https://docs.x.ai/docs/)", + "### Secure AI management software that helps enterprises adopt and manage AI across their workforce. To get started, obtain an API key from [the Kindo console](https://app.kindo.ai/settings/api), and see the [website](https://app.kindo.ai//)", + "### Moonshot\nTo get started with Moonshot AI, obtain your API key from [Moonshot AI](https://platform.moonshot.cn/). Moonshot AI provides high-quality large language models with competitive pricing.\n> [Reference](https://platform.moonshot.cn/docs/api)", + "### SiliconFlow\nTo get started with SiliconFlow, obtain your API key from [SiliconCloud](https://cloud.siliconflow.cn/account/ak). SiliconCloud provides cost-effective GenAI services based on excellent open source basic models.\n> [Models](https://siliconflow.cn/zh-cn/models)", + "### Function Network offers private, affordable user-owned AI\nTo get started with Function Network, obtain your API key from [Function Network](https://www.function.network/join-waitlist). Function Network provides a variety of models for chat, completion, and embeddings.", + "### Scaleway\n Generative APIs are serverless endpoints for the most popular AI models.\nHosted in European data centers and priced competitively per million tokens used, models served by Scaleway are ideal for users requiring low latency, full data privacy, and 100% compliance with EU AI Act. To get access to the Scaleway Generative APIs, read the [Quickstart guide](https://www.scaleway.com/en/docs/ai-data/generative-apis/quickstart/) and get a [valid API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/).", + "### Relace\n Relace provides a fast apply model. To get started, obtain an API key from [here](https://app.relace.ai/settings/api-keys).", + "### Morph\nMorph provides a fast apply model. To get started, obtain an API key from [here](https://morphllm.com/dashboard).", + "### OVHcloud AI Endpoints is a serverless inference API that provides access to a curated selection of models (e.g., Llama, Mistral, Qwen, Deepseek). It is designed with security and data privacy in mind and is compliant with GDPR. To get started, create an API key on the OVHcloud [AI Endpoints website](https://endpoints.ai.cloud.ovh.net/). For more information, including pricing, visit the OVHcloud [AI Endpoints product page](https://www.ovhcloud.com/en/public-cloud/ai-endpoints/).", + "### Venice\n Venice.AI is a privacy-focused generative AI platform, allowing users to interact with open-source LLMs without storing any private user data.\nHosted models support the OpenAI API standard, providing seamless integration for users seeking privacy and flexibility.\nTo get started with the Venice API, either purchase a pro account, stake $VVV for daily inference allotments, or fund your account with USD.\nVisit the [API settings page](https://venice.ai/settings/api) or learn more at the [Venice API documentation](https://venice.ai/api).", + "### Inception\n Inception Labs offer a new generation of diffusion-based LLMs.\nVisit the [API settings page](https://platform.inceptionlabs.ai/) or learn more at the [Inception docs](https://platform.inceptionlabs.ai/docs).", + "### TARS\nTARS is an OpenAI-compatible proxy router. To get started, obtain an API key and configure the provider in your config.json." + ], + "type": "string" + }, + "model": { + "title": "Model", + "description": "The name of the model. Used to autodetect prompt template.", + "type": "string" + }, + "apiKey": { + "title": "Api Key", + "description": "OpenAI, Anthropic, Cohere, Together, Novita AI, nCompass, or other API key", + "type": "string" + }, + "apiBase": { + "title": "Api Base", + "description": "The base URL of the LLM API.", + "type": "string" + }, + "region": { + "title": "Region", + "description": "The region where the model is hosted", + "anyOf": [ + { + "enum": [ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-southeast-1", + "ap-northeast-1", + "ap-south-1", + "us-central1", + "us-east1", + "us-east4", + "us-east5", + "us-west1", + "us-west4", + "us-south1", + "northamerica-northeast1", + "southamerica-east1", + "europe-central2", + "europe-north1", + "europe-west1", + "europe-west2", + "europe-west3", + "europe-west4", + "europe-west6", + "europe-west8", + "europe-west9", + "europe-southwest1", + "asia-east1", + "asia-east2", + "asia-south1", + "asia-northeast1", + "asia-northeast3", + "asia-southeast1", + "australia-southeast1", + "me-central1", + "me-central2", + "me-west1" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "profile": { + "title": "Profile", + "description": "The AWS security profile to use", + "type": "string" + }, + "accessKeyId": { + "title": "Access Key ID", + "description": "AWS access key id (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "secretAccessKey": { + "title": "Secret Access Key", + "description": "AWS secret access key (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "modelArn": { + "title": "Model ARN", + "description": "The AWS arn for the imported model", + "type": "string" + }, + "contextLength": { + "title": "Context Length", + "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", + "default": 2048, + "type": "integer" + }, + "maxStopWords": { + "title": "Max Stop Words", + "description": "The maximum number of stop words that the API will accept. You can set this if you are receiving an error about the number of stop words, but otherwise should leave it undefined.", + "type": "integer" + }, + "template": { + "title": "Template", + "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "deepseek", + "openchat", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3" + ], + "type": "string" + }, + "promptTemplates": { + "title": "Prompt Templates", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "x-intellij-html-description": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See here for an example.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "completionOptions": { + "title": "Completion Options", + "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 2048 + }, + "allOf": [ + { + "$ref": "#/$defs/BaseCompletionOptions" + } + ] + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTP request to the LLM.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + }, + "apiType": { + "title": "Api Type", + "markdownDescription": "OpenAI API type, either `openai` or `azure`", + "x-intellij-html-description": "OpenAI API type, either openai or azure", + "enum": ["openai", "azure"] + }, + "apiVersion": { + "title": "Api Version", + "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", + "type": "string" + }, + "deployment": { + "title": "Deployment", + "description": "Azure OpenAI deployment", + "type": "string" + }, + "capabilities": { + "type": "object", + "description": "We will attempt to automatically detect the capabilities of the model based on its title and provider, but this may not always be accurate. You can override the model's capabilities here.", + "properties": { + "uploadImage": { + "type": "boolean", + "description": "Indicates whether the model can upload images." + }, + "tools": { + "type": "boolean", + "description": "Indicates whether the model can use tools" + } + } + } + }, + "required": ["title", "provider", "model"], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "type": "str" + } + }, + "not": { + "required": ["provider"] + } + }, + "then": { + "properties": { + "model": { + "description": "Choose a provider first, then model options will be shown here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai", + "anthropic", + "cohere", + "gemini", + "huggingface-inference-api", + "replicate", + "together", + "ncompass", + "novita", + "cloudflare", + "sambanova", + "nebius", + "xAI", + "kindo", + "scaleway", + "ovhcloud", + "venice" + ] + } + }, + "required": ["provider"] + }, + "then": { + "required": ["apiKey"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["bedrockimport"] + } + }, + "required": ["provider"] + }, + "then": { + "required": ["modelArn"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["huggingface-tgi", "huggingface-inference-api"] + } + } + }, + "then": { + "required": ["apiBase"] + }, + "required": ["provider"] + }, + { + "if": { + "properties": { + "provider": { + "enum": ["openai"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "deployment": { + "type": "string" + }, + "apiType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["cloudflare"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["openai"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-0125-preview", + "gpt-4-turbo", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["xAI"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": ["grok-beta", "AUTODETECT"] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["replicate"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "llama2-7b", + "llama2-13b" + ] + }, + { + "type": "string" + } + ] + }, + "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model ID from Replicate here." + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["openai"] + }, + "apiType": { + "not": { + "const": "azure" + } + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["anthropic"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "claude-sonnet-4", + "claude-sonnet-4-5", + "claude-opus-4-1", + "claude-haiku-4-5" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["cohere"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": [ + "c4ai-aya-expanse-8b", + "c4ai-aya-expanse-32b", + "c4ai-aya-vision-8b", + "c4ai-aya-vision-32b", + "command-r", + "command-r-plus", + "command-r-03-2024", + "command-r-plus-04-2024", + "command-r-08-2024", + "command-r-plus-08-2024", + "command-r7b-12-2024", + "command-r7b-arabic-02-2025", + "command-a-03-2025", + "command-a-vision-07-2025", + "command-a-reasoning-08-2025", + "command-a-translate-08-2025" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["bedrock"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["sagemaker"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "description": "SageMaker endpoint name" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["gemini"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + } + } + }, + "model": { + "enum": [ + "chat-bison-001", + "gemini-pro", + "gemini-2.0-flash-exp", + "gemini-2.0-flash", + "gemini-2.0-flash-thinking-exp-01-21", + "gemini-2.0-pro-exp-02-05", + "gemini-2.0-flash-lite-preview-02-05", + "gemini-2.0-flash-lite", + "gemini-2.0-flash-exp-image-generation", + "gemini-2.5-pro-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["together"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "phind-codellama-34b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model string from Together AI here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["novita"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "deepseek-r1", + "deepseek_v3", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "llama3.2-1b", + "llama3.2-3b", + "llama3.2-11b", + "llama3.3-70b", + "mistral-nemo", + "mistral-7b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Novita AI [here](https://novita.ai/llm-api?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model string from Novita AI here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["deepinfra"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation).", + "x-intellij-html-description": "Find the model name you want to use from DeepInfra here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "text-gen-webui", + "llamafile" + ] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["ollama"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phi-2", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model tag for an Ollama model here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["mistral"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": [ + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["vertexai"] + } + }, + "required": ["provider"] + }, + "then": { + "required": ["projectId", "region"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["moonshot"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "moonshot-v1-8k", + "moonshot-v1-32k", + "moonshot-v1-128k", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["deepseek"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + } + }, + "model": { + "enum": ["deepseek-chat", "deepseek-coder"] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["groq"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama2-70b", + "mistral-8x7b", + "gemma", + "gemma2", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["siliconflow"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": [ + "Qwen/QwQ-32B-Preview", + "Qwen/Qwen2.5-Coder-32B-Instruct", + "Qwen/Qwen2.5-Coder-7B-Instruct", + "Pro/Qwen/Qwen2.5-Coder-7B-Instruct", + "Tencent/Hunyuan-A52B-Instruct", + "nvidia/Llama-3.1-Nemotron-70B-Instruct", + "Qwen/Qwen2-VL-72B-Instruct", + "TeleAI/TeleMM", + "deepseek-ai/DeepSeek-V2.5", + "deepseek-ai/deepseek-vl2", + "deepseek-ai/Janus-Pro-7B", + "deepseek-ai/DeepSeek-V3", + "deepseek-ai/DeepSeek-R1", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "deepseek-ai/DeepSeek-R1-Distill-Llama-8B" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["scaleway"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama-3.1-8b-instruct", + "llama-3.1-70b-instruct", + "mistral-nemo-instruct-2407", + "qwen2.5-coder-32b-instruct", + "pixtral-12b-2409" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model string from Scaleway [here](https://www.scaleway.com/en/docs/ai-data/generative-apis/reference-content/supported-models/).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model string from Scaleway here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["ovhcloud"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama3.3-70b", + "qwen2.5-coder-32b", + "qwen3-32b", + "qwen3-coder-30b-a3b", + "qwen2.5-vl-72b", + "codestral-mamba-latest", + "mistral-7b", + "mistral-8x7b", + "mistral-nemo", + "mistral-small-3.2-24b", + "gpt-oss-20b", + "gpt-oss-120b", + "DeepSeek-R1-Distill-Llama-70B" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model string from OVHcloud [AI Endpoints catalog](https://endpoints.ai.cloud.ovh.net/catalog).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model string from OVHcloud AI Endpoints catalog." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["fireworks"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": ["starcoder-7b"] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["ncompass"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": ["qwen2.5-coder-32b", "qwen2.5-72b", "llama3.3-70b"] + } + } + } + }, + { + "if": { + "properties": { + "apiType": { + "const": "azure" + } + }, + "required": ["apiType"] + }, + "then": { + "required": ["deployment", "apiBase"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["openai"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "useLegacyCompletionsEndpoint": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["cerebras"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama-4-scout-17b-16e-instruct" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["flowise"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", + "default": 5000, + "type": "integer" + }, + "additionalHeaders": { + "description": "A list of additional headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Header key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Header value", + "type": "string" + } + }, + "required": ["key", "value"] + } + }, + "additionalFlowiseConfiguration": { + "description": "A list of additional properties to be sent along `overrideConfig`", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Configuration Property key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Configuration Property value" + } + }, + "required": ["key", "value"] + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "claude-sonnet-4", + "claude-sonnet-4-5", + "claude-opus-4-1", + "claude-haiku-4-5", + "command-r", + "command-r-plus", + "chat-bison-001", + "gemini-2.5-pro", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["watsonx"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "projectId": { + "type": "string" + }, + "deploymentId": { + "type": "string" + }, + "model": { + "enum": [ + "ibm/granite-13b-chat-v2", + "ibm/granite-3b-code-instruct", + "ibm/granite-8b-code-instruct", + "ibm/granite-20b-code-instruct", + "ibm/granite-3b-code-instruct", + "ibm/granite-8b-code-instruct", + "ibm/granite-34b-code-instruct", + "ibm/granite-3-8b-instruct", + "ibm/granite-3-2b-instruct", + "mistralai/mistral-large", + "meta-llama/llama-3-8b-instruct", + "meta-llama/llama-3-70b-instruct" + ] + } + }, + "required": ["apiBase", "apiKey", "apiVersion"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["sambanova"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "Llama-4-Scout-17B-16E-Instruct", + "Llama-4-Maverick-17B-128E-Instruct", + "Meta-Llama-3.3-70B-Instruct", + "Meta-Llama-3.1-8B-Instruct", + "Meta-Llama-3.1-405B-Instruct", + "Meta-Llama-3.2-1B-Instruct", + "Meta-Llama-3.2-3B-Instruct", + "QwQ-32B", + "DeepSeek-R1-Distill-Llama-70B", + "DeepSeek-R1", + "DeepSeek-V3-0324" + ] + }, + { + "type": "string" + } + ], + "description": "Select a pre-defined option." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["ask-sage"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-4o", + "gpt-4o-mini", + "gpt-4gov", + "gpt-4ogov", + "claude-3.5-sonnet", + "claude-3-opus", + "mistral-large", + "llama-3-chat", + "gemini-pro", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["venice"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": ["AUTODETECT"] + }, + { + "type": "string" + } + ] + } + } + } + } + ] + }, + "SlashCommand": { + "title": "SlashCommand", + "type": "object", + "properties": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "issue", + "share", + "cmd", + "edit", + "comment", + "http", + "commit", + "review" + ], + "type": "string", + "markdownEnumDescriptions": [ + "Generate a link to a drafted GitHub issue", + "Export the current chat session to markdown", + "Generate a terminal command and paste it into the terminal", + "Edit the highlighted code with given instructions", + "Add comments to the highlighted code", + "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Generate a commit message for the current changes", + "Review code and give feedback" + ] + }, + { + "type": "string" + } + ] + }, + "description": { + "title": "Description", + "type": "string" + }, + "step": { + "title": "Step", + "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", + "type": "string" + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": ["issue"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "repositoryUrl": { + "type": "string", + "description": "Enter the URL of the GitHub repository for which you want to generate the issue." + } + }, + "required": ["repositoryUrl"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["edit"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "recap": { + "type": "boolean", + "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit.", + "x-intellij-html-description": "If recap is set to true, Continue will generate a summary of the changes after making the edit." + }, + "tokenLimit": { + "type": "integer", + "description": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["share"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory.", + "x-intellij-html-description": "If outputDir is set to . or begins with ./ or .\\, file will be saved to the current workspace or a subdirectory thereof, respectively. ~ can similarly be used to specify the user's home directory." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["commit"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeUnstaged": { + "type": "boolean", + "markdownDescription": "If set to `true`, then unstaged changes are also included in the prompt, otherwise only staged changes are included. Default is `false`.", + "x-intellij-html-description": "If set to true, then unstaged changes are also included in the prompt, otherwise only staged changes are included. Default is false." + } + } + } + } + } + } + ], + "required": ["name", "description"] + }, + "CustomCommand": { + "title": "CustomCommand", + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "prompt": { + "title": "Prompt", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } + }, + "required": ["name", "prompt", "description"] + }, + "ContextProviderWithParams": { + "title": "ContextProviderWithParams", + "type": "object", + "properties": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "diff", + "terminal", + "debugger", + "open", + "google", + "search", + "http", + "codebase", + "problems", + "folder", + "issue", + "docs", + "tree", + "highlights", + "outline", + "postgres", + "code", + "currentFile", + "url", + "database", + "os", + "repo-map", + "greptile", + "web", + "gitlab-mr", + "discord", + "jira", + "commit", + "clipboard" + ], + "markdownEnumDescriptions": [ + "Reference the contents of the current changes as given by `git diff`", + "Reference the last terminal command", + "Reference the contents of the local variables in the debugger with top n level (defaulting to 3) of call stack for that thread", + "Reference the contents of all open or pinned files.", + "Enter a search phrase and include the Google search results as context", + "Reference the results of a ripgrep search in your codebase", + "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Use embeddings to automatically find relevant files from throughout the codebase", + "Reference all linting errors and warnings in the currently open file", + "Include important files from a folder in the prompt, as determined by similarity search", + "Reference GitHub issues from a repository", + "Retrieve important pages from a documentation website, as determined by similarity search", + "Display a file tree of the current workspace", + "Include important highlighted sections from your code", + "Include a repo map showing important code objects", + "References Postgres table schema and sample rows", + "Reference specific functions and classes from throughout your codebase", + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information", + "Map of files in the repository with important code highlights", + "Query your greptile index of the current repo", + "Search the web for sources related to your question", + "Reference changes and metadata from previous git commits", + "Reference the contents of the clipboard" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": ["discord"] + } + } + }, + "then": { + "allOf": [ + { + "properties": { + "params": { + "properties": { + "discordKey": { + "type": "string", + "description": "Your Discord bot token to access the Discord API. Required to fetch messages from servers." + }, + "guildId": { + "type": "string", + "description": "The ID of the guild (server) from which to fetch channels and messages." + }, + "channels": { + "type": "array", + "description": "A list of channel objects to search for messages", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the channel" + }, + "name": { + "type": "string", + "description": "The name of the channel" + } + }, + "required": ["id"] + } + } + }, + "required": ["discordKey"] + } + } + }, + { + "oneOf": [ + { + "properties": { + "params": { + "required": ["guildId"] + } + } + }, + { + "properties": { + "params": { + "required": ["channels"] + } + } + } + ] + } + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["google"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "serperApiKey": { + "type": "string", + "description": "Your API key for https://serper.dev in order to get Google search results" + } + }, + "required": ["serperApiKey"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["web"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "n": { + "title": "N", + "description": "The number of results to return", + "default": 6, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["search"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "maxResults": { + "title": "Max Results", + "description": "The maximum number of results to return", + "default": 200, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["open"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "onlyPinned": { + "type": "boolean", + "description": "If set to true, only 'pinned' files will be included.", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["repo-map"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeSignatures": { + "type": "boolean", + "description": "Include message signatures from repo-map", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["debugger"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "stackDepth": { + "title": "Stack Depth", + "description": "Stack trace depth to include in context", + "default": 3, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["diff"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeUnstaged": { + "type": "boolean", + "description": "Include diff from unstaged files", + "default": true + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["issue"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "githubToken": { + "type": "string", + "description": "Your GitHub token to access the GitHub API. Required for private repositories." + }, + "repos": { + "type": "array", + "description": "A list of repositories to search for issues", + "items": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the repository" + }, + "repo": { + "type": "string", + "description": "The name of the repository" + }, + "type": { + "type": "string", + "description": "The type of issues to search for", + "enum": ["open", "closed", "all"] + } + }, + "required": ["owner", "repo"] + } + } + }, + "required": ["repos"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["database"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": ["postgres", "mysql", "sqlite", "mssql"] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } + }, + "required": ["name", "connection_type", "connection"] + } + } + }, + "required": ["connections"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["gitlab-mr"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your GitLab domain, will default to gitlab.com" + }, + "token": { + "type": "string", + "description": "Your private access token." + }, + "filterComments": { + "type": "boolean", + "description": "If you have code selected, filters out comments that aren't related to the selection." + } + }, + "required": ["token"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["jira"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your Jira domain, for example company.atlassian.net." + }, + "email": { + "type": "string", + "description": "The email that you log into Jira with" + }, + "token": { + "type": "string", + "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" + }, + "issueQuery": { + "type": "string", + "description": "Customize the query used to find Jira issues" + }, + "maxResults": { + "type": "string", + "description": "The maximum number of issues that will be returned. Defaults to 50." + }, + "apiVersion": { + "type": "integer", + "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property.", + "x-intellij-html-description": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the apiVersion property." + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTPS request to Jira.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + } + }, + "required": ["domain", "token"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["http"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "url": { + "type": "string", + "description": "The HTTP endpoint of your context provider server." + }, + "options": { + "title": "Custom Options", + "description": "Additional options to pass to your custom HTTP server.", + "type": "object" + } + }, + "required": ["url"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["codebase", "folder"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of results to use after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["docs"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of docs results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of docs results to include after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + }, + "githubToken": { + "type": "string", + "title": "Github Token", + "description": "Include to crawl Github repositories for documentation" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["postgres"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "host": { + "title": "Host", + "description": "Database host", + "default": "localhost", + "type": "string" + }, + "port": { + "title": "Port", + "description": "Database port", + "default": 5432, + "type": "integer" + }, + "user": { + "title": "User", + "description": "Database user", + "default": "postgres", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Database password", + "type": "string" + }, + "database": { + "title": "Database", + "description": "Database name", + "default": "postgres", + "type": "string" + }, + "schema": { + "title": "Schema", + "description": "Database schema", + "default": "public", + "type": "string" + }, + "sampleRows": { + "title": "Sample Rows", + "description": "Number of rows to sample from the database", + "default": 3, + "type": "integer" + } + }, + "required": ["host", "port", "user", "password", "database"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["greptile"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "GithubToken": { + "title": "GithubToken", + "description": "Your github access token", + "default": "", + "type": "string" + }, + "GreptileToken": { + "title": "GreptileToken", + "description": "Your greptile access token", + "default": "", + "type": "string" + } + }, + "required": ["GreptileToken", "GithubToken"] + } + }, + "required": ["params"] + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["commit"] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "Depth": { + "title": "depth", + "description": "How many previous commits should be loaded", + "default": 50, + "type": "number" + }, + "LastXCommitsDepth": { + "title": "LastXCommitsDepth", + "description": "how many commits should be included when querying all recent commits", + "default": 10, + "type": "number" + } + } + } + }, + "required": ["params"] + } + } + ], + "required": ["name"] + }, + "SerializedContinueConfig": { + "title": "config.json", + "type": "object", + "properties": { + "docs": { + "title": "Docs", + "description": "A list of documentation sites to be indexed", + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the documentation site" + }, + "startUrl": { + "type": "string", + "description": "The starting URL for indexing the documentation" + }, + "maxDepth": { + "type": "integer", + "description": "The maximum link depth when crawling the documentation site" + }, + "faviconUrl": { + "type": "string", + "description": "The URL path to a favicon for the site - by default, it will be `/favicon.ico` path from the Start URL" + }, + "useLocalCrawling": { + "type": "boolean", + "description": "Only use local crawling for this documentation site" + } + }, + "required": ["title", "startUrl"] + } + }, + "allowAnonymousTelemetry": { + "title": "Allow Anonymous Telemetry", + "markdownDescription": "If this field is set to `true`, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", + "x-intellij-html-description": "If this field is set to `true`, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in the docs.", + "default": true, + "type": "boolean" + }, + "models": { + "title": "Models", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", + "x-intellij-html-description": "Learn about setting up models in the documentation.", + "default": [ + { + "title": "Claude 3.7 Sonnet", + "provider": "anthropic", + "model": "claude-3-7-sonnet-latest", + "apiKey": "sk_..." + } + ], + "type": "array", + "items": { + "$ref": "#/$defs/ModelDescription" + } + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM for Chat and Edit requests", + "type": "string" + }, + "completionOptions": { + "title": "Completion Options", + "description": "Default options for completion. These will be overriden by any options set for a specific model.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/$defs/BaseCompletionOptions" + } + ] + }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + }, + "slashCommands": { + "title": "Slash Commands", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", + "x-intellij-html-description": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the documentation.", + "default": [], + "type": "array", + "items": { + "$ref": "#/$defs/SlashCommand" + } + }, + "customCommands": { + "title": "Custom Commands", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter `/` in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", + "x-intellij-html-description": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the documentation.", + "default": [ + { + "name": "test", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" + } + ], + "type": "array", + "items": { + "$ref": "#/$defs/CustomCommand" + } + }, + "contextProviders": { + "title": "Context Providers", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", + "x-intellij-html-description": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in the documentation.", + "default": [], + "type": "array", + "items": { + "$ref": "#/$defs/ContextProviderWithParams" + } + }, + "userToken": { + "title": "User Token", + "description": "An optional token to identify the user.", + "type": "string" + }, + "disableIndexing": { + "title": "Disable Indexing", + "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", + "x-intellij-html-description": "If set to true, Continue will not index the codebase. This is mainly used for debugging purposes.", + "default": false, + "type": "boolean" + }, + "disableSessionTitles": { + "title": "Disable Session Titles", + "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "x-intellij-html-description": "If set to true, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "default": false, + "type": "boolean" + }, + "embeddingsProvider": { + "title": "Embeddings Provider", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is `transformers.js`, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/features/codebase-embeddings#embeddings-providers).", + "x-intellij-html-description": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options here.

Note: transformers.js currently cannot be used in JetBrains.", + "type": "object", + "properties": { + "provider": { + "enum": [ + "huggingface-tei", + "transformers.js", + "ollama", + "openai", + "cohere", + "continue-proxy", + "gemini", + "voyage", + "nvidia", + "bedrock", + "sagemaker", + "nebius", + "vertexai", + "deepinfra", + "mistral", + "watsonx", + "lmstudio", + "siliconflow", + "function-network", + "scaleway", + "ovhcloud" + ] + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/$defs/RequestOptions" + }, + "maxEmbeddingChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 + }, + "maxEmbeddingBatchSize": { + "title": "Maximum Batch Size", + "description": "The maximum number of chunks that can be sent to the embeddings provider in a single request", + "type": "integer", + "minimum": 1, + "exclusiveMaximum": 2147483647 + }, + "region": { + "title": "Region", + "description": "The region where the model is hosted", + "$ref": "#/$defs/ModelDescription/properties/region" + }, + "profile": { + "title": "Profile", + "description": "The AWS security profile to use", + "type": "string" + }, + "accessKeyId": { + "title": "Access Key ID", + "description": "AWS access key id (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "secretAccessKey": { + "title": "Secret Access Key", + "description": "AWS secret access key (can be used together with secretAccessKey in place of profile)", + "type": "string" + } + }, + "required": ["provider"], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere", + "voyage", + "nvidia", + "gemini", + "siliconflow" + ] + } + }, + "required": ["provider"] + }, + "then": { + "required": ["apiKey"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["sagemaker"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "model": { + "description": "SageMaker endpoint name" + } + }, + "required": ["model"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["vertexai"] + } + }, + "required": ["provider"] + }, + "then": { + "properties": { + "projectId": { + "description": "The name of your VertexAI project" + }, + "region": { + "description": "The region your VertexAI model is hosted in - typically us-central1", + "default": "us-central1" + }, + "model": { + "default": "text-embedding-005" + } + }, + "required": ["projectId", "model", "region"] + } + } + ] + }, + "reranker": { + "title": "Reranker", + "description": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", + "type": "object", + "properties": { + "name": { + "enum": [ + "bedrock", + "cohere", + "voyage", + "watsonx", + "llm", + "huggingface-tei", + "siliconflow" + ] + }, + "params": { + "type": "object" + } + }, + "required": ["name"], + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": ["cohere"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0", + "rerank-v3.5" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": ["apiKey"] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["llm"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "modelTitle": { + "type": "string" + } + }, + "required": ["modelTitle"] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["voyage"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "model": { + "enum": [ + "rerank-lite-1", + "rerank-1", + "rerank-2", + "rerank-2-lite" + ] + } + }, + "required": ["apiKey"] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["bedrock"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": ["cohere.rerank-v3-5:0", "amazon.rerank-v1:0"] + } + }, + "required": ["model"] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["huggingface-tei"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiBase": { + "type": "string", + "default": "http://localhost:8080" + }, + "apiKey": { + "type": "string" + }, + "truncate": { + "type": "boolean", + "description": "Whether to truncate long sequences to the maximum allowed context length.", + "default": false + }, + "truncation_direction": { + "enum": ["Right", "Left"], + "description": "Whether to truncate sequences from the left or right.", + "default": "Right" + } + }, + "required": ["apiBase"] + } + }, + "if": { + "properties": { + "truncate": { + "const": true + } + } + }, + "then": { + "required": ["truncation_direction"] + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": ["siliconflow"] + } + }, + "required": ["name"] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "BAAI/bge-reranker-v2-m3", + "netease-youdao/bce-reranker-base_v1", + "Pro/BAAI/bge-reranker-v2-m3" + ], + "default": "BAAI/bge-reranker-v2-m3" + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": ["apiKey"] + } + } + } + } + ] + }, + "tabAutocompleteModel": { + "title": "Tab Autocomplete Model", + "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using qwen2.5-coder:1.5b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "x-intellij-html-description": "The model used for tab autocompletion. If undefined, Continue will default to using qwen2.5-coder:1.5b on a local Ollama instance.

IMPORTANT:

If you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "default": { + "title": "Tab Autocomplete Model", + "provider": "ollama", + "model": "qwen2.5-coder:1.5b-base" + }, + "oneOf": [ + { + "$ref": "#/$defs/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/$defs/ModelDescription" + } + } + ] + }, + "tabAutocompleteOptions": { + "title": "TabAutocompleteOptions", + "type": "object", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/features/tab-autocomplete#configuration-options).", + "x-intellij-html-description": "These options let you customize your tab-autocomplete experience. Read about all options in the docs.", + "properties": { + "disable": { + "type": "boolean", + "description": "Disable tab autocomplete. This can also be done from the IDE settings.", + "default": false + }, + "maxPromptTokens": { + "type": "number", + "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." + }, + "debounceDelay": { + "type": "number", + "description": "The delay in milliseconds before triggering autocomplete after a keystroke." + }, + "maxSuffixPercentage": { + "type": "number", + "description": "The maximum percentage of the prompt that can be dedicated to the suffix." + }, + "prefixPercentage": { + "type": "number", + "description": "The percentage of the input that should be dedicated to the prefix." + }, + "transform": { + "type": "boolean", + "description": "Whether LLM output should be transformed to correct common model pitfalls." + }, + "template": { + "type": "string", + "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." + }, + "multilineCompletions": { + "enum": ["always", "never", "auto"], + "description": "If set to true, Continue will only complete a single line at a time." + }, + "useCache": { + "type": "boolean", + "description": "Whether to cache completions" + }, + "onlyMyCode": { + "type": "boolean", + "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [] + }, + "ui": { + "type": "object", + "properties": { + "codeBlockToolbarPosition": { + "enum": ["top", "bottom"], + "default": "top", + "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false + }, + "showChatScrollbar": { + "title": "Show Chat Scrollbar", + "markdownDescription": "If set to `true`, a scrollbar will be displayed in the chat window to navigate through messages.", + "x-intellij-html-description": "If set to true, a scrollbar will be displayed in the chat window to navigate through messages.", + "default": false, + "type": "boolean" + }, + "codeWrap": { + "type": "boolean", + "description": "If set to true, code in pre blocks will wrap.", + "default": false + } + } + }, + "analytics": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": ["posthog", "logstash"], + "description": "The 3rd party analytics provider to use.", + "default": "posthog", + "markdownEnumDescriptions": [ + "### Posthog\nTo use Posthog, set up an account, obtain your client key, and enter it in the client key field." + ] + }, + "url": { + "type": "string", + "description": "The URL to which analytics will be sent" + }, + "clientKey": { + "type": "string", + "description": "The client key to use for analytics" + } + }, + "required": ["provider"], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": ["posthog"] + } + } + }, + "then": { + "required": ["clientKey"] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": ["logstash"] + } + } + }, + "then": { + "required": ["url"] + } + } + ] + }, + "experimental": { + "type": "object", + "title": "Experimental", + "description": "Experimental properties are subject to change.", + "properties": { + "defaultContext": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/$defs/ContextProviderWithParams" + }, + { + "properties": { + "query": { + "type": "string", + "description": "Required for certain context providers, like 'url' in order to specify the input, or which of the dropdown items to select." + } + } + } + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "description": "The 'title' property of the model you wish to use for inline edits", + "type": "string" + }, + "applyCodeBlock": { + "description": "The 'title' property of the model you wish to use for applying code blocks", + "type": "string" + }, + "repoMapFileSelection": { + "description": "The 'title' property of the model you wish to use for repo map file selections", + "type": "string" + } + } + }, + "readResponseTTS": { + "type": "boolean", + "default": true, + "description": "Automatically read LLM chat responses aloud using system TTS models" + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": ["prompt", "title"] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, + "contextMenuPrompts": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "default": "Write comments for this code. Do not change anything about the code itself." + }, + "docstring": { + "type": "string", + "default": "Write a docstring for this code. Do not change anything about the code itself." + }, + "fix": { + "type": "string", + "default": "Fix this code" + }, + "optimize": { + "type": "string", + "default": "Optimize this code" + }, + "fixGrammar": { + "type": "string", + "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + } + } + }, + "useChromiumForDocsCrawling": { + "type": "boolean", + "description": "Use Chromium to crawl docs locally. Useful if the default Cheerio crawler fails on sites that require JavaScript rendering. Downloads and installs Chromium to `~/.continue/.utils`.", + "default": false + }, + "modelContextProtocolServers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "transport": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["stdio"] + }, + "command": { + "type": "string" + }, + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables to pass to the command" + } + }, + "required": ["type", "command", "args"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["websocket"] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": ["type", "url"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["sse"] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": ["type", "url"] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["streamable-http"] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": ["type", "url"] + } + ] + } + }, + "required": ["transport"] + } + } + } + } + } + } + } +} diff --git a/extensions/continue/continue_rc_schema.json b/extensions/continue/continue_rc_schema.json new file mode 100644 index 000000000000..fb3a760bc90a --- /dev/null +++ b/extensions/continue/continue_rc_schema.json @@ -0,0 +1,3986 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "config.json", + "$ref": "#/$defs/SerializedContinueConfig", + "$defs": { + "BaseCompletionOptions": { + "title": "BaseCompletionOptions", + "type": "object", + "properties": { + "stream": { + "title": "Stream", + "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", + "type": "boolean", + "default": true + }, + "temperature": { + "title": "Temperature", + "description": "The temperature of the completion.", + "type": "number" + }, + "topP": { + "title": "Top P", + "description": "The topP of the completion.", + "type": "number" + }, + "topK": { + "title": "Top K", + "description": "The topK of the completion.", + "type": "integer" + }, + "presencePenalty": { + "title": "Presence Penalty", + "description": "The presence penalty Aof the completion.", + "type": "number" + }, + "frequencyPenalty": { + "title": "Frequency Penalty", + "description": "The frequency penalty of the completion.", + "type": "number" + }, + "mirostat": { + "title": "Mirostat", + "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", + "type": "number" + }, + "stop": { + "title": "Stop", + "description": "The stop tokens of the completion.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxTokens": { + "title": "Max Tokens", + "description": "The maximum number of tokens to generate.", + "default": 600, + "type": "integer" + }, + "numThreads": { + "title": "Number of threads", + "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", + "type": "integer" + }, + "useMmap": { + "title": "Use Memory Map", + "description": "Allows the model to be mapped into memory. If disabled can enhance response time on low end devices. Only available for Ollama (this is the use_mmap parameter)", + "type": "boolean" + }, + "keepAlive": { + "title": "Ollama keep_alive", + "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", + "type": "integer" + }, + "numGpu": { + "title": "Ollama num_gpu", + "description": "Override the number of gpu layers used when loading the model" + }, + "reasoning": { + "title": "Reasoning", + "description": "Enable thinking/reasoning for Anthropic Claude 3.7+ and some Ollama models", + "type": "boolean" + }, + "reasoningBudgetTokens": { + "title": "Reasoning Budget Tokens", + "description": "Set budget tokens for thinking/reasoning in Anthropic Claude 3.7+ models", + "type": "integer" + } + } + }, + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", + "properties": { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", + "type": "string" + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", + "type": "string" + } + }, + "required": [ + "cert", + "key" + ] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", + "default": 7200, + "type": "integer" + }, + "verifySsl": { + "title": "Verify Ssl", + "description": "Whether to verify SSL certificates for requests.", + "type": "boolean" + }, + "caBundlePath": { + "title": "Ca Bundle Path", + "description": "Path to a custom CA bundle to use when making the HTTP request", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "proxy": { + "title": "Proxy", + "description": "Proxy URL to use when making the HTTP request", + "type": "string" + }, + "headers": { + "title": "Headers", + "description": "Headers to use when making the HTTP request", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "title": "Extra Body Properties", + "description": "This object will be merged with the body when making the HTTP requests", + "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/$defs/ClientCertificateOptions" + } + } + }, + "ModelDescription": { + "title": "ModelDescription", + "type": "object", + "properties": { + "title": { + "title": "Title", + "description": "The title you wish to give your model.", + "type": "string" + }, + "provider": { + "title": "Provider", + "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", + "enum": [ + "openai", + "anthropic", + "anthropic-vertexai", + "cohere", + "bedrock", + "bedrockimport", + "sagemaker", + "together", + "novita", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "replicate", + "gemini", + "gemini-vertexai", + "lmstudio", + "llamafile", + "mistral", + "mistral-vertexai", + "deepinfra", + "groq", + "fireworks", + "ncompass", + "cloudflare", + "deepseek", + "azure", + "msty", + "watsonx", + "openrouter", + "sambanova", + "nvidia", + "vllm", + "cerebras", + "askSage", + "nebius", + "vertexai", + "xAI", + "kindo", + "moonshot", + "siliconflow", + "function-network", + "scaleway", + "relace", + "morph", + "ovhcloud", + "venice", + "inception", + "tars" + ], + "markdownEnumDescriptions": [ + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Anthropic Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", + "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock)", + "### Bedrock Imported Models\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock)", + "### Sagemaker\nSagemaker is AWS' machine learning platform.", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Novita AI\n[Novita AI](https://novita.ai?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link) offers an affordable, reliable, and simple inference platform with scalable [LLM APIs](https://novita.ai/docs/model-api/reference/introduction.html), empowering developers to build AI applications. To get started with Novita AI:\n1. Obtain an API key from [here](https://novita.ai/settings/key-management?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/novita)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### Gemini API on Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", + "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", + "### Mistral API on Vertex AI\nTo get started you need to enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up the [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Ncompass\nnCompass is an extremely fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://app.ncompass.tech/api-settings).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)", + "### IBM watsonx\nwatsonx, developed by IBM, offers a variety of pre-trained AI foundation models that can be used for natural language processing (NLP), computer vision, and speech recognition tasks.", + "### OpenRouter\nOpenRouter offers a single API to access almost any language model. To get started, obtain an API key from [their console](https://openrouter.ai/settings/keys).", + "### SambaNova\n SambaNova provides fast inference of open-source language models with zero data retention. To get started, obtain an API key in [SambaNova Cloud](https://cloud.sambanova.ai/apis?utm_source=continue&utm_medium=external&utm_campaign=cloud_signup ).", + "### NVIDIA NIMs\nNVIDIA offers a single API to access almost any language model. To find out more, visit the [LLM APIs Documentation](https://docs.api.nvidia.com/nim/reference/llm-apis).\nFor information specific to getting a key, please check out the [docs here](https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html#option-1-from-api-catalog)", + "### vLLM\nvLLM is a highly performant way of hosting LLMs for a team. To get started, follow their [quickstart](https://docs.vllm.ai/en/latest/getting_started/quickstart.html) to set up your server.", + "### Cerebras\nCerebras Inference uses specialized silicon to provides superfast inference. To get started, get your API keys from [their console](https://cloud.cerebras.ai/).", + "### Ask Sage\nAsk Sage is an agnostic hosted service that provides language models. To get started with Ask Sage:\n1. Obtain an API key from your account. For more information, visit [Ask Sage](https://docs.asksage.ai/).\n2. Paste the API key below.\n3. Select a model preset.\n> [Reference](https://docs.asksage.ai/)", + "### Nebius\nNebius AI platform is a cloud service for machine learning model inference and training. To get started, obtain an API key from the [Nebius console](https://console.nebius.ai/).", + "### Vertex AI\nVertex AI provides access to Google's foundation models and ML tools. To get started, enable the [Vertex AI API](https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com) and set up [Google Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc).", + "### xAI offers a world class developer tool set to build scalable applications powered by Grok. To get started, obtain an API key from [the x Console](https://console.x.ai/), and see the [docs](https://docs.x.ai/docs/)", + "### Secure AI management software that helps enterprises adopt and manage AI across their workforce. To get started, obtain an API key from [the Kindo console](https://app.kindo.ai/settings/api), and see the [website](https://app.kindo.ai//)", + "### Moonshot\nTo get started with Moonshot AI, obtain your API key from [Moonshot AI](https://platform.moonshot.cn/). Moonshot AI provides high-quality large language models with competitive pricing.\n> [Reference](https://platform.moonshot.cn/docs/api)", + "### SiliconFlow\nTo get started with SiliconFlow, obtain your API key from [SiliconCloud](https://cloud.siliconflow.cn/account/ak). SiliconCloud provides cost-effective GenAI services based on excellent open source basic models.\n> [Models](https://siliconflow.cn/zh-cn/models)", + "### Function Network offers private, affordable user-owned AI\nTo get started with Function Network, obtain your API key from [Function Network](https://www.function.network/join-waitlist). Function Network provides a variety of models for chat, completion, and embeddings.", + "### Scaleway\n Generative APIs are serverless endpoints for the most popular AI models.\nHosted in European data centers and priced competitively per million tokens used, models served by Scaleway are ideal for users requiring low latency, full data privacy, and 100% compliance with EU AI Act. To get access to the Scaleway Generative APIs, read the [Quickstart guide](https://www.scaleway.com/en/docs/ai-data/generative-apis/quickstart/) and get a [valid API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/).", + "### Relace\n Relace provides a fast apply model. To get started, obtain an API key from [here](https://app.relace.ai/settings/api-keys).", + "### Morph\nMorph provides a fast apply model. To get started, obtain an API key from [here](https://morphllm.com/dashboard).", + "### OVHcloud AI Endpoints is a serverless inference API that provides access to a curated selection of models (e.g., Llama, Mistral, Qwen, Deepseek). It is designed with security and data privacy in mind and is compliant with GDPR. To get started, create an API key on the OVHcloud [AI Endpoints website](https://endpoints.ai.cloud.ovh.net/). For more information, including pricing, visit the OVHcloud [AI Endpoints product page](https://www.ovhcloud.com/en/public-cloud/ai-endpoints/).", + "### Venice\n Venice.AI is a privacy-focused generative AI platform, allowing users to interact with open-source LLMs without storing any private user data.\nHosted models support the OpenAI API standard, providing seamless integration for users seeking privacy and flexibility.\nTo get started with the Venice API, either purchase a pro account, stake $VVV for daily inference allotments, or fund your account with USD.\nVisit the [API settings page](https://venice.ai/settings/api) or learn more at the [Venice API documentation](https://venice.ai/api).", + "### Inception\n Inception Labs offer a new generation of diffusion-based LLMs.\nVisit the [API settings page](https://platform.inceptionlabs.ai/) or learn more at the [Inception docs](https://platform.inceptionlabs.ai/docs).", + "### TARS\nTARS is an OpenAI-compatible proxy router. To get started, obtain an API key and configure the provider in your config.json." + ], + "type": "string" + }, + "model": { + "title": "Model", + "description": "The name of the model. Used to autodetect prompt template.", + "type": "string" + }, + "apiKey": { + "title": "Api Key", + "description": "OpenAI, Anthropic, Cohere, Together, Novita AI, nCompass, or other API key", + "type": "string" + }, + "apiBase": { + "title": "Api Base", + "description": "The base URL of the LLM API.", + "type": "string" + }, + "region": { + "title": "Region", + "description": "The region where the model is hosted", + "anyOf": [ + { + "enum": [ + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + "eu-west-1", + "eu-central-1", + "ap-southeast-1", + "ap-northeast-1", + "ap-south-1", + "us-central1", + "us-east1", + "us-east4", + "us-east5", + "us-west1", + "us-west4", + "us-south1", + "northamerica-northeast1", + "southamerica-east1", + "europe-central2", + "europe-north1", + "europe-west1", + "europe-west2", + "europe-west3", + "europe-west4", + "europe-west6", + "europe-west8", + "europe-west9", + "europe-southwest1", + "asia-east1", + "asia-east2", + "asia-south1", + "asia-northeast1", + "asia-northeast3", + "asia-southeast1", + "australia-southeast1", + "me-central1", + "me-central2", + "me-west1" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "profile": { + "title": "Profile", + "description": "The AWS security profile to use", + "type": "string" + }, + "accessKeyId": { + "title": "Access Key ID", + "description": "AWS access key id (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "secretAccessKey": { + "title": "Secret Access Key", + "description": "AWS secret access key (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "modelArn": { + "title": "Model ARN", + "description": "The AWS arn for the imported model", + "type": "string" + }, + "contextLength": { + "title": "Context Length", + "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", + "default": 2048, + "type": "integer" + }, + "maxStopWords": { + "title": "Max Stop Words", + "description": "The maximum number of stop words that the API will accept. You can set this if you are receiving an error about the number of stop words, but otherwise should leave it undefined.", + "type": "integer" + }, + "template": { + "title": "Template", + "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", + "enum": [ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "deepseek", + "openchat", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3" + ], + "type": "string" + }, + "promptTemplates": { + "title": "Prompt Templates", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "x-intellij-html-description": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See here for an example.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "completionOptions": { + "title": "Completion Options", + "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 2048 + }, + "allOf": [ + { + "$ref": "#/$defs/BaseCompletionOptions" + } + ] + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTP request to the LLM.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + }, + "apiType": { + "title": "Api Type", + "markdownDescription": "OpenAI API type, either `openai` or `azure`", + "x-intellij-html-description": "OpenAI API type, either openai or azure", + "enum": [ + "openai", + "azure" + ] + }, + "apiVersion": { + "title": "Api Version", + "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", + "type": "string" + }, + "deployment": { + "title": "Deployment", + "description": "Azure OpenAI deployment", + "type": "string" + }, + "capabilities": { + "type": "object", + "description": "We will attempt to automatically detect the capabilities of the model based on its title and provider, but this may not always be accurate. You can override the model's capabilities here.", + "properties": { + "uploadImage": { + "type": "boolean", + "description": "Indicates whether the model can upload images." + }, + "tools": { + "type": "boolean", + "description": "Indicates whether the model can use tools" + } + } + } + }, + "required": [ + "title", + "provider", + "model" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "type": "str" + } + }, + "not": { + "required": [ + "provider" + ] + } + }, + "then": { + "properties": { + "model": { + "description": "Choose a provider first, then model options will be shown here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai", + "anthropic", + "cohere", + "gemini", + "huggingface-inference-api", + "replicate", + "together", + "ncompass", + "novita", + "cloudflare", + "sambanova", + "nebius", + "xAI", + "kindo", + "scaleway", + "ovhcloud", + "venice" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "bedrockimport" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "modelArn" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api" + ] + } + } + }, + "then": { + "required": [ + "apiBase" + ] + }, + "required": [ + "provider" + ] + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "deployment": { + "type": "string" + }, + "apiType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-0125-preview", + "gpt-4-turbo", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "xAI" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "grok-beta", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "replicate" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "llama2-7b", + "llama2-13b" + ] + }, + { + "type": "string" + } + ] + }, + "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model ID from Replicate here." + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + }, + "apiType": { + "not": { + "const": "azure" + } + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "anthropic" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "claude-sonnet-4", + "claude-sonnet-4-5", + "claude-opus-4-1", + "claude-haiku-4-5" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "c4ai-aya-expanse-8b", + "c4ai-aya-expanse-32b", + "c4ai-aya-vision-8b", + "c4ai-aya-vision-32b", + "command-r", + "command-r-plus", + "command-r-03-2024", + "command-r-plus-04-2024", + "command-r-08-2024", + "command-r-plus-08-2024", + "command-r7b-12-2024", + "command-r7b-arabic-02-2025", + "command-a-03-2025", + "command-a-vision-07-2025", + "command-a-reasoning-08-2025", + "command-a-translate-08-2025" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "bedrock" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "sagemaker" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "description": "SageMaker endpoint name" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + } + } + }, + "model": { + "enum": [ + "chat-bison-001", + "gemini-pro", + "gemini-2.0-flash-exp", + "gemini-2.0-flash", + "gemini-2.0-flash-thinking-exp-01-21", + "gemini-2.0-pro-exp-02-05", + "gemini-2.0-flash-lite-preview-02-05", + "gemini-2.0-flash-lite", + "gemini-2.0-flash-exp-image-generation", + "gemini-2.5-pro-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "together" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "phind-codellama-34b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model string from Together AI here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "novita" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "deepseek-r1", + "deepseek_v3", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "llama3.2-1b", + "llama3.2-3b", + "llama3.2-11b", + "llama3.3-70b", + "mistral-nemo", + "mistral-7b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Novita AI [here](https://novita.ai/llm-api?utm_source=github_continuedev&utm_medium=github_readme&utm_campaign=github_link).", + "x-intellij-html-description": "Select a pre-defined option, or find an exact model string from Novita AI here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepinfra" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation).", + "x-intellij-html-description": "Find the model name you want to use from DeepInfra here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "text-gen-webui", + "llamafile" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ollama" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phi-2", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model tag for an Ollama model here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "mistral" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "vertexai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "projectId", + "region" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "moonshot" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "moonshot-v1-8k", + "moonshot-v1-32k", + "moonshot-v1-128k", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepseek" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "cacheBehavior": { + "title": "Caching Behavior", + "description": "Options for the prompt caching", + "properties": { + "cacheSystemMessage": { + "type": "boolean" + }, + "cacheConversation": { + "type": "boolean" + } + } + }, + "model": { + "enum": [ + "deepseek-chat", + "deepseek-coder" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "groq" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama2-70b", + "mistral-8x7b", + "gemma", + "gemma2", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "siliconflow" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "Qwen/QwQ-32B-Preview", + "Qwen/Qwen2.5-Coder-32B-Instruct", + "Qwen/Qwen2.5-Coder-7B-Instruct", + "Pro/Qwen/Qwen2.5-Coder-7B-Instruct", + "Tencent/Hunyuan-A52B-Instruct", + "nvidia/Llama-3.1-Nemotron-70B-Instruct", + "Qwen/Qwen2-VL-72B-Instruct", + "TeleAI/TeleMM", + "deepseek-ai/DeepSeek-V2.5", + "deepseek-ai/deepseek-vl2", + "deepseek-ai/Janus-Pro-7B", + "deepseek-ai/DeepSeek-V3", + "deepseek-ai/DeepSeek-R1", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", + "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "deepseek-ai/DeepSeek-R1-Distill-Llama-8B" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "scaleway" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama-3.1-8b-instruct", + "llama-3.1-70b-instruct", + "mistral-nemo-instruct-2407", + "qwen2.5-coder-32b-instruct", + "pixtral-12b-2409" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model string from Scaleway [here](https://www.scaleway.com/en/docs/ai-data/generative-apis/reference-content/supported-models/).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model string from Scaleway here." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ovhcloud" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama3.3-70b", + "qwen2.5-coder-32b", + "qwen3-32b", + "qwen3-coder-30b-a3b", + "qwen2.5-vl-72b", + "codestral-mamba-latest", + "mistral-7b", + "mistral-8x7b", + "mistral-nemo", + "mistral-small-3.2-24b", + "gpt-oss-20b", + "gpt-oss-120b", + "DeepSeek-R1-Distill-Llama-70B" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model string from OVHcloud [AI Endpoints catalog](https://endpoints.ai.cloud.ovh.net/catalog).", + "x-intellij-html-description": "Select a pre-defined option, or find the exact model string from OVHcloud AI Endpoints catalog." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "fireworks" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "starcoder-7b" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ncompass" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "qwen2.5-coder-32b", + "qwen2.5-72b", + "llama3.3-70b" + ] + } + } + } + }, + { + "if": { + "properties": { + "apiType": { + "const": "azure" + } + }, + "required": [ + "apiType" + ] + }, + "then": { + "required": [ + "deployment", + "apiBase" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "useLegacyCompletionsEndpoint": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cerebras" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama3.1-8b", + "llama3.1-70b", + "llama-4-scout-17b-16e-instruct" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "flowise" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", + "default": 5000, + "type": "integer" + }, + "additionalHeaders": { + "description": "A list of additional headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Header key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Header value", + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "additionalFlowiseConfiguration": { + "description": "A list of additional properties to be sent along `overrideConfig`", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Configuration Property key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Configuration Property value" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4o-mini", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "llama3.1-8b", + "llama3.1-70b", + "llama3.1-405b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "claude-sonnet-4", + "claude-sonnet-4-5", + "claude-opus-4-1", + "claude-haiku-4-5", + "command-r", + "command-r-plus", + "chat-bison-001", + "gemini-2.5-pro", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "qwen2.5-coder:1.5b", + "qwen2.5-coder:3b", + "qwen2.5-coder:7b", + "qwen2.5-coder:14b", + "qwen2.5-coder:32b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "watsonx" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "projectId": { + "type": "string" + }, + "deploymentId": { + "type": "string" + }, + "model": { + "enum": [ + "ibm/granite-13b-chat-v2", + "ibm/granite-3b-code-instruct", + "ibm/granite-8b-code-instruct", + "ibm/granite-20b-code-instruct", + "ibm/granite-3b-code-instruct", + "ibm/granite-8b-code-instruct", + "ibm/granite-34b-code-instruct", + "ibm/granite-3-8b-instruct", + "ibm/granite-3-2b-instruct", + "mistralai/mistral-large", + "meta-llama/llama-3-8b-instruct", + "meta-llama/llama-3-70b-instruct" + ] + } + }, + "required": [ + "apiBase", + "apiKey", + "apiVersion" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "sambanova" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "Llama-4-Scout-17B-16E-Instruct", + "Llama-4-Maverick-17B-128E-Instruct", + "Meta-Llama-3.3-70B-Instruct", + "Meta-Llama-3.1-8B-Instruct", + "Meta-Llama-3.1-405B-Instruct", + "Meta-Llama-3.2-1B-Instruct", + "Meta-Llama-3.2-3B-Instruct", + "QwQ-32B", + "DeepSeek-R1-Distill-Llama-70B", + "DeepSeek-R1", + "DeepSeek-V3-0324" + ] + }, + { + "type": "string" + } + ], + "description": "Select a pre-defined option." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ask-sage" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-4o", + "gpt-4o-mini", + "gpt-4gov", + "gpt-4ogov", + "claude-3.5-sonnet", + "claude-3-opus", + "mistral-large", + "llama-3-chat", + "gemini-pro", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "venice" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + } + ] + }, + "SlashCommand": { + "title": "SlashCommand", + "type": "object", + "properties": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "issue", + "share", + "cmd", + "edit", + "comment", + "http", + "commit", + "review" + ], + "type": "string", + "markdownEnumDescriptions": [ + "Generate a link to a drafted GitHub issue", + "Export the current chat session to markdown", + "Generate a terminal command and paste it into the terminal", + "Edit the highlighted code with given instructions", + "Add comments to the highlighted code", + "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Generate a commit message for the current changes", + "Review code and give feedback" + ] + }, + { + "type": "string" + } + ] + }, + "description": { + "title": "Description", + "type": "string" + }, + "step": { + "title": "Step", + "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", + "type": "string" + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "repositoryUrl": { + "type": "string", + "description": "Enter the URL of the GitHub repository for which you want to generate the issue." + } + }, + "required": [ + "repositoryUrl" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "edit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "recap": { + "type": "boolean", + "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit.", + "x-intellij-html-description": "If recap is set to true, Continue will generate a summary of the changes after making the edit." + }, + "tokenLimit": { + "type": "integer", + "description": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "share" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory.", + "x-intellij-html-description": "If outputDir is set to . or begins with ./ or .\\, file will be saved to the current workspace or a subdirectory thereof, respectively. ~ can similarly be used to specify the user's home directory." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "commit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeUnstaged": { + "type": "boolean", + "markdownDescription": "If set to `true`, then unstaged changes are also included in the prompt, otherwise only staged changes are included. Default is `false`.", + "x-intellij-html-description": "If set to true, then unstaged changes are also included in the prompt, otherwise only staged changes are included. Default is false." + } + } + } + } + } + } + ], + "required": [ + "name", + "description" + ] + }, + "CustomCommand": { + "title": "CustomCommand", + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "prompt": { + "title": "Prompt", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } + }, + "required": [ + "name", + "prompt", + "description" + ] + }, + "ContextProviderWithParams": { + "title": "ContextProviderWithParams", + "type": "object", + "properties": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "diff", + "terminal", + "debugger", + "open", + "google", + "search", + "http", + "codebase", + "problems", + "folder", + "issue", + "docs", + "tree", + "highlights", + "outline", + "postgres", + "code", + "currentFile", + "url", + "database", + "os", + "repo-map", + "greptile", + "web", + "gitlab-mr", + "discord", + "jira", + "commit", + "clipboard" + ], + "markdownEnumDescriptions": [ + "Reference the contents of the current changes as given by `git diff`", + "Reference the last terminal command", + "Reference the contents of the local variables in the debugger with top n level (defaulting to 3) of call stack for that thread", + "Reference the contents of all open or pinned files.", + "Enter a search phrase and include the Google search results as context", + "Reference the results of a ripgrep search in your codebase", + "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Use embeddings to automatically find relevant files from throughout the codebase", + "Reference all linting errors and warnings in the currently open file", + "Include important files from a folder in the prompt, as determined by similarity search", + "Reference GitHub issues from a repository", + "Retrieve important pages from a documentation website, as determined by similarity search", + "Display a file tree of the current workspace", + "Include important highlighted sections from your code", + "Include a repo map showing important code objects", + "References Postgres table schema and sample rows", + "Reference specific functions and classes from throughout your codebase", + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information", + "Map of files in the repository with important code highlights", + "Query your greptile index of the current repo", + "Search the web for sources related to your question", + "Reference changes and metadata from previous git commits", + "Reference the contents of the clipboard" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "discord" + ] + } + } + }, + "then": { + "allOf": [ + { + "properties": { + "params": { + "properties": { + "discordKey": { + "type": "string", + "description": "Your Discord bot token to access the Discord API. Required to fetch messages from servers." + }, + "guildId": { + "type": "string", + "description": "The ID of the guild (server) from which to fetch channels and messages." + }, + "channels": { + "type": "array", + "description": "A list of channel objects to search for messages", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the channel" + }, + "name": { + "type": "string", + "description": "The name of the channel" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "discordKey" + ] + } + } + }, + { + "oneOf": [ + { + "properties": { + "params": { + "required": [ + "guildId" + ] + } + } + }, + { + "properties": { + "params": { + "required": [ + "channels" + ] + } + } + } + ] + } + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "google" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "serperApiKey": { + "type": "string", + "description": "Your API key for https://serper.dev in order to get Google search results" + } + }, + "required": [ + "serperApiKey" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "web" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "n": { + "title": "N", + "description": "The number of results to return", + "default": 6, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "search" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "maxResults": { + "title": "Max Results", + "description": "The maximum number of results to return", + "default": 200, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "open" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "onlyPinned": { + "type": "boolean", + "description": "If set to true, only 'pinned' files will be included.", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "repo-map" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeSignatures": { + "type": "boolean", + "description": "Include message signatures from repo-map", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "debugger" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "stackDepth": { + "title": "Stack Depth", + "description": "Stack trace depth to include in context", + "default": 3, + "type": "integer" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "diff" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "includeUnstaged": { + "type": "boolean", + "description": "Include diff from unstaged files", + "default": true + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "githubToken": { + "type": "string", + "description": "Your GitHub token to access the GitHub API. Required for private repositories." + }, + "repos": { + "type": "array", + "description": "A list of repositories to search for issues", + "items": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the repository" + }, + "repo": { + "type": "string", + "description": "The name of the repository" + }, + "type": { + "type": "string", + "description": "The type of issues to search for", + "enum": [ + "open", + "closed", + "all" + ] + } + }, + "required": [ + "owner", + "repo" + ] + } + } + }, + "required": [ + "repos" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "database" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": [ + "postgres", + "mysql", + "sqlite", + "mssql" + ] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } + }, + "required": [ + "name", + "connection_type", + "connection" + ] + } + } + }, + "required": [ + "connections" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "gitlab-mr" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your GitLab domain, will default to gitlab.com" + }, + "token": { + "type": "string", + "description": "Your private access token." + }, + "filterComments": { + "type": "boolean", + "description": "If you have code selected, filters out comments that aren't related to the selection." + } + }, + "required": [ + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "jira" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your Jira domain, for example company.atlassian.net." + }, + "email": { + "type": "string", + "description": "The email that you log into Jira with" + }, + "token": { + "type": "string", + "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" + }, + "issueQuery": { + "type": "string", + "description": "Customize the query used to find Jira issues" + }, + "maxResults": { + "type": "string", + "description": "The maximum number of issues that will be returned. Defaults to 50." + }, + "apiVersion": { + "type": "integer", + "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property.", + "x-intellij-html-description": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the apiVersion property." + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTPS request to Jira.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + } + }, + "required": [ + "domain", + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "http" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "url": { + "type": "string", + "description": "The HTTP endpoint of your context provider server." + }, + "options": { + "title": "Custom Options", + "description": "Additional options to pass to your custom HTTP server.", + "type": "object" + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "codebase", + "folder" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of results to use after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "docs" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of docs results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of docs results to include after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + }, + "githubToken": { + "type": "string", + "title": "Github Token", + "description": "Include to crawl Github repositories for documentation" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "postgres" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "host": { + "title": "Host", + "description": "Database host", + "default": "localhost", + "type": "string" + }, + "port": { + "title": "Port", + "description": "Database port", + "default": 5432, + "type": "integer" + }, + "user": { + "title": "User", + "description": "Database user", + "default": "postgres", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Database password", + "type": "string" + }, + "database": { + "title": "Database", + "description": "Database name", + "default": "postgres", + "type": "string" + }, + "schema": { + "title": "Schema", + "description": "Database schema", + "default": "public", + "type": "string" + }, + "sampleRows": { + "title": "Sample Rows", + "description": "Number of rows to sample from the database", + "default": 3, + "type": "integer" + } + }, + "required": [ + "host", + "port", + "user", + "password", + "database" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "greptile" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "GithubToken": { + "title": "GithubToken", + "description": "Your github access token", + "default": "", + "type": "string" + }, + "GreptileToken": { + "title": "GreptileToken", + "description": "Your greptile access token", + "default": "", + "type": "string" + } + }, + "required": [ + "GreptileToken", + "GithubToken" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "commit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "Depth": { + "title": "depth", + "description": "How many previous commits should be loaded", + "default": 50, + "type": "number" + }, + "LastXCommitsDepth": { + "title": "LastXCommitsDepth", + "description": "how many commits should be included when querying all recent commits", + "default": 10, + "type": "number" + } + } + } + }, + "required": [ + "params" + ] + } + } + ], + "required": [ + "name" + ] + }, + "SerializedContinueConfig": { + "title": "config.json", + "type": "object", + "properties": { + "docs": { + "title": "Docs", + "description": "A list of documentation sites to be indexed", + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the documentation site" + }, + "startUrl": { + "type": "string", + "description": "The starting URL for indexing the documentation" + }, + "maxDepth": { + "type": "integer", + "description": "The maximum link depth when crawling the documentation site" + }, + "faviconUrl": { + "type": "string", + "description": "The URL path to a favicon for the site - by default, it will be `/favicon.ico` path from the Start URL" + }, + "useLocalCrawling": { + "type": "boolean", + "description": "Only use local crawling for this documentation site" + } + }, + "required": [ + "title", + "startUrl" + ] + } + }, + "allowAnonymousTelemetry": { + "title": "Allow Anonymous Telemetry", + "markdownDescription": "If this field is set to `true`, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", + "x-intellij-html-description": "If this field is set to `true`, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in the docs.", + "default": true, + "type": "boolean" + }, + "models": { + "title": "Models", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", + "x-intellij-html-description": "Learn about setting up models in the documentation.", + "default": [ + { + "title": "Claude 3.7 Sonnet", + "provider": "anthropic", + "model": "claude-3-7-sonnet-latest", + "apiKey": "sk_..." + } + ], + "type": "array", + "items": { + "$ref": "#/$defs/ModelDescription" + } + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM for Chat and Edit requests", + "type": "string" + }, + "completionOptions": { + "title": "Completion Options", + "description": "Default options for completion. These will be overriden by any options set for a specific model.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/$defs/BaseCompletionOptions" + } + ] + }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/$defs/RequestOptions" + } + ] + }, + "slashCommands": { + "title": "Slash Commands", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", + "x-intellij-html-description": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the documentation.", + "default": [], + "type": "array", + "items": { + "$ref": "#/$defs/SlashCommand" + } + }, + "customCommands": { + "title": "Custom Commands", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter `/` in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", + "x-intellij-html-description": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the documentation.", + "default": [ + { + "name": "test", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" + } + ], + "type": "array", + "items": { + "$ref": "#/$defs/CustomCommand" + } + }, + "contextProviders": { + "title": "Context Providers", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", + "x-intellij-html-description": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in the documentation.", + "default": [], + "type": "array", + "items": { + "$ref": "#/$defs/ContextProviderWithParams" + } + }, + "userToken": { + "title": "User Token", + "description": "An optional token to identify the user.", + "type": "string" + }, + "disableIndexing": { + "title": "Disable Indexing", + "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", + "x-intellij-html-description": "If set to true, Continue will not index the codebase. This is mainly used for debugging purposes.", + "default": false, + "type": "boolean" + }, + "disableSessionTitles": { + "title": "Disable Session Titles", + "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "x-intellij-html-description": "If set to true, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "default": false, + "type": "boolean" + }, + "embeddingsProvider": { + "title": "Embeddings Provider", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is `transformers.js`, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/features/codebase-embeddings#embeddings-providers).", + "x-intellij-html-description": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options here.

Note: transformers.js currently cannot be used in JetBrains.", + "type": "object", + "properties": { + "provider": { + "enum": [ + "huggingface-tei", + "transformers.js", + "ollama", + "openai", + "cohere", + "continue-proxy", + "gemini", + "voyage", + "nvidia", + "bedrock", + "sagemaker", + "nebius", + "vertexai", + "deepinfra", + "mistral", + "watsonx", + "lmstudio", + "siliconflow", + "function-network", + "scaleway", + "ovhcloud" + ] + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/$defs/RequestOptions" + }, + "maxEmbeddingChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 + }, + "maxEmbeddingBatchSize": { + "title": "Maximum Batch Size", + "description": "The maximum number of chunks that can be sent to the embeddings provider in a single request", + "type": "integer", + "minimum": 1, + "exclusiveMaximum": 2147483647 + }, + "region": { + "title": "Region", + "description": "The region where the model is hosted", + "$ref": "#/$defs/ModelDescription/properties/region" + }, + "profile": { + "title": "Profile", + "description": "The AWS security profile to use", + "type": "string" + }, + "accessKeyId": { + "title": "Access Key ID", + "description": "AWS access key id (can be used together with secretAccessKey in place of profile)", + "type": "string" + }, + "secretAccessKey": { + "title": "Secret Access Key", + "description": "AWS secret access key (can be used together with secretAccessKey in place of profile)", + "type": "string" + } + }, + "required": [ + "provider" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere", + "voyage", + "nvidia", + "gemini", + "siliconflow" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "sagemaker" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "description": "SageMaker endpoint name" + } + }, + "required": [ + "model" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "vertexai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "projectId": { + "description": "The name of your VertexAI project" + }, + "region": { + "description": "The region your VertexAI model is hosted in - typically us-central1", + "default": "us-central1" + }, + "model": { + "default": "text-embedding-005" + } + }, + "required": [ + "projectId", + "model", + "region" + ] + } + } + ] + }, + "reranker": { + "title": "Reranker", + "description": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", + "type": "object", + "properties": { + "name": { + "enum": [ + "bedrock", + "cohere", + "voyage", + "watsonx", + "llm", + "huggingface-tei", + "siliconflow" + ] + }, + "params": { + "type": "object" + } + }, + "required": [ + "name" + ], + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0", + "rerank-v3.5" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "llm" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "modelTitle": { + "type": "string" + } + }, + "required": [ + "modelTitle" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "voyage" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "model": { + "enum": [ + "rerank-lite-1", + "rerank-1", + "rerank-2", + "rerank-2-lite" + ] + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "bedrock" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "cohere.rerank-v3-5:0", + "amazon.rerank-v1:0" + ] + } + }, + "required": [ + "model" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "huggingface-tei" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiBase": { + "type": "string", + "default": "http://localhost:8080" + }, + "apiKey": { + "type": "string" + }, + "truncate": { + "type": "boolean", + "description": "Whether to truncate long sequences to the maximum allowed context length.", + "default": false + }, + "truncation_direction": { + "enum": [ + "Right", + "Left" + ], + "description": "Whether to truncate sequences from the left or right.", + "default": "Right" + } + }, + "required": [ + "apiBase" + ] + } + }, + "if": { + "properties": { + "truncate": { + "const": true + } + } + }, + "then": { + "required": [ + "truncation_direction" + ] + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "siliconflow" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "BAAI/bge-reranker-v2-m3", + "netease-youdao/bce-reranker-base_v1", + "Pro/BAAI/bge-reranker-v2-m3" + ], + "default": "BAAI/bge-reranker-v2-m3" + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + } + ] + }, + "tabAutocompleteModel": { + "title": "Tab Autocomplete Model", + "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using qwen2.5-coder:1.5b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "x-intellij-html-description": "The model used for tab autocompletion. If undefined, Continue will default to using qwen2.5-coder:1.5b on a local Ollama instance.

IMPORTANT:

If you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "default": { + "title": "Tab Autocomplete Model", + "provider": "ollama", + "model": "qwen2.5-coder:1.5b-base" + }, + "oneOf": [ + { + "$ref": "#/$defs/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/$defs/ModelDescription" + } + } + ] + }, + "tabAutocompleteOptions": { + "title": "TabAutocompleteOptions", + "type": "object", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/features/tab-autocomplete#configuration-options).", + "x-intellij-html-description": "These options let you customize your tab-autocomplete experience. Read about all options in the docs.", + "properties": { + "disable": { + "type": "boolean", + "description": "Disable tab autocomplete. This can also be done from the IDE settings.", + "default": false + }, + "maxPromptTokens": { + "type": "number", + "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." + }, + "debounceDelay": { + "type": "number", + "description": "The delay in milliseconds before triggering autocomplete after a keystroke." + }, + "maxSuffixPercentage": { + "type": "number", + "description": "The maximum percentage of the prompt that can be dedicated to the suffix." + }, + "prefixPercentage": { + "type": "number", + "description": "The percentage of the input that should be dedicated to the prefix." + }, + "transform": { + "type": "boolean", + "description": "Whether LLM output should be transformed to correct common model pitfalls." + }, + "template": { + "type": "string", + "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." + }, + "multilineCompletions": { + "enum": [ + "always", + "never", + "auto" + ], + "description": "If set to true, Continue will only complete a single line at a time." + }, + "useCache": { + "type": "boolean", + "description": "Whether to cache completions" + }, + "onlyMyCode": { + "type": "boolean", + "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [] + }, + "ui": { + "type": "object", + "properties": { + "codeBlockToolbarPosition": { + "enum": [ + "top", + "bottom" + ], + "default": "top", + "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false + }, + "showChatScrollbar": { + "title": "Show Chat Scrollbar", + "markdownDescription": "If set to `true`, a scrollbar will be displayed in the chat window to navigate through messages.", + "x-intellij-html-description": "If set to true, a scrollbar will be displayed in the chat window to navigate through messages.", + "default": false, + "type": "boolean" + }, + "codeWrap": { + "type": "boolean", + "description": "If set to true, code in pre blocks will wrap.", + "default": false + } + } + }, + "analytics": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "enum": [ + "posthog", + "logstash" + ], + "description": "The 3rd party analytics provider to use.", + "default": "posthog", + "markdownEnumDescriptions": [ + "### Posthog\nTo use Posthog, set up an account, obtain your client key, and enter it in the client key field." + ] + }, + "url": { + "type": "string", + "description": "The URL to which analytics will be sent" + }, + "clientKey": { + "type": "string", + "description": "The client key to use for analytics" + } + }, + "required": [ + "provider" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "posthog" + ] + } + } + }, + "then": { + "required": [ + "clientKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "logstash" + ] + } + } + }, + "then": { + "required": [ + "url" + ] + } + } + ] + }, + "experimental": { + "type": "object", + "title": "Experimental", + "description": "Experimental properties are subject to change.", + "properties": { + "defaultContext": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/$defs/ContextProviderWithParams" + }, + { + "properties": { + "query": { + "type": "string", + "description": "Required for certain context providers, like 'url' in order to specify the input, or which of the dropdown items to select." + } + } + } + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "description": "The 'title' property of the model you wish to use for inline edits", + "type": "string" + }, + "applyCodeBlock": { + "description": "The 'title' property of the model you wish to use for applying code blocks", + "type": "string" + }, + "repoMapFileSelection": { + "description": "The 'title' property of the model you wish to use for repo map file selections", + "type": "string" + } + } + }, + "readResponseTTS": { + "type": "boolean", + "default": true, + "description": "Automatically read LLM chat responses aloud using system TTS models" + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": [ + "prompt", + "title" + ] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, + "contextMenuPrompts": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "default": "Write comments for this code. Do not change anything about the code itself." + }, + "docstring": { + "type": "string", + "default": "Write a docstring for this code. Do not change anything about the code itself." + }, + "fix": { + "type": "string", + "default": "Fix this code" + }, + "optimize": { + "type": "string", + "default": "Optimize this code" + }, + "fixGrammar": { + "type": "string", + "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + } + } + }, + "useChromiumForDocsCrawling": { + "type": "boolean", + "description": "Use Chromium to crawl docs locally. Useful if the default Cheerio crawler fails on sites that require JavaScript rendering. Downloads and installs Chromium to `~/.continue/.utils`.", + "default": false + }, + "modelContextProtocolServers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "transport": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stdio" + ] + }, + "command": { + "type": "string" + }, + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables to pass to the command" + } + }, + "required": [ + "type", + "command", + "args" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "websocket" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "type", + "url" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "sse" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "type", + "url" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "streamable-http" + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "type", + "url" + ] + } + ] + } + }, + "required": [ + "transport" + ] + } + } + } + }, + "mergeBehavior": { + "type": "string", + "enum": [ + "merge", + "overwrite" + ], + "default": "merge", + "title": "Merge behavior", + "markdownDescription": "If set to 'merge', .continuerc.json will be applied on top of config.json (arrays and objects are merged). If set to 'overwrite', then every top-level property of .continuerc.json will overwrite that property from config.json.", + "x-intellij-html-description": "

If set to merge, .continuerc.json will be applied on top of config.json (arrays and objects are merged). If set to overwrite, then every top-level property of .continuerc.json will overwrite that property from config.json.

" + } + } + } + } +} \ No newline at end of file diff --git a/extensions/continue/continue_tutorial.py b/extensions/continue/continue_tutorial.py new file mode 100644 index 000000000000..ef0bbc717b42 --- /dev/null +++ b/extensions/continue/continue_tutorial.py @@ -0,0 +1,52 @@ +""" _________ _____ _____ + __ ____/______ _______ __ /____(_)_______ ____ _______ + _ / _ __ \__ __ \_ __/__ / __ __ \_ / / /_ _ \ + / /___ / /_/ /_ / / // /_ _ / _ / / // /_/ / / __/ + \____/ \____/ /_/ /_/ \__/ /_/ /_/ /_/ \__,_/ \___/ + + Autocomplete, Edit, Chat, and Agent tutorial +""" + + +# ————————————————————————————————————————————— Autocomplete —————————————————————————————————————————————— # +# Autocomplete provides inline code suggestions as you type. + +# 1. Place cursor after `sorting_algorithm:` below and press [Enter] +# 2. Press [Tab] to accept the Autocomplete suggestion + +# Basic assertion for sorting_algorithm: + +# ————————————————————————————————————————————————— Edit ————————————————————————————————————————————————— # +# Edit is a convenient way to make quick changes to specific code and files. + +# 1. Highlight the code below +# 2. Press [Cmd/Ctrl + I] to Edit +# 3. Try asking Continue to "make this more readable" +def sorting_algorithm(x): + for i in range(len(x)): + for j in range(len(x) - 1): + if x[j] > x[j + 1]: + x[j], x[j + 1] = x[j + 1], x[j] + return x + +# ————————————————————————————————————————————————— Chat ————————————————————————————————————————————————— # +# Chat makes it easy to ask for help from an LLM without needing to leave the IDE. + +# 1. Highlight the code below +# 2. Press [Cmd/Ctrl + L] to add to Chat +# 3. Try asking Continue "what sorting algorithm is this?" +def sorting_algorithm2(x): + for i in range(len(x)): + for j in range(len(x) - 1): + if x[j] > x[j + 1]: + x[j], x[j + 1] = x[j + 1], x[j] + return x + +# ————————————————————————————————————————————————— Agent ————————————————————————————————————————————————— # +# Agent equips the Chat model with the tools needed to handle a wide range of coding tasks, allowing +# the model to make decisions and save you the work of manually finding context and performing actions. + +# 1. Switch from "Chat" to "Agent" mode using the dropdown in the bottom left of the input box +# 2. Use the "/init" slash command to generate a CONTINUE.md file + + # —————————————————— Learn more at https://docs.continue.dev ——————————————————— # diff --git a/extensions/continue/entitlements.plist b/extensions/continue/entitlements.plist new file mode 100644 index 000000000000..700586ea1556 --- /dev/null +++ b/extensions/continue/entitlements.plist @@ -0,0 +1,16 @@ + + + + + com.apple.security.cs.disable-library-validation + + com.apple.security.files.user-selected.read-write + + com.apple.security.files.downloads.read-write + + com.apple.security.files.documents.read-write + + com.apple.security.automation.apple-events + + + \ No newline at end of file diff --git a/extensions/continue/gui/assets/XCircleIcon.js b/extensions/continue/gui/assets/XCircleIcon.js new file mode 100644 index 000000000000..bdc239db64cf --- /dev/null +++ b/extensions/continue/gui/assets/XCircleIcon.js @@ -0,0 +1,41 @@ +(function(){try{var h=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};h.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var h=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},S=new h.Error().stack;S&&(h._sentryDebugIds=h._sentryDebugIds||{},h._sentryDebugIds[S]="17b053bc-a10a-4598-94a1-7d5f283ee787",h._sentryDebugIdIdentifier="sentry-dbid-17b053bc-a10a-4598-94a1-7d5f283ee787")})()}catch{}function Df(h,S){for(var m=0;mD[M]})}}}return Object.freeze(Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}))}(function(){const S=document.createElement("link").relList;if(S&&S.supports&&S.supports("modulepreload"))return;for(const M of document.querySelectorAll('link[rel="modulepreload"]'))D(M);new MutationObserver(M=>{for(const H of M)if(H.type==="childList")for(const de of H.addedNodes)de.tagName==="LINK"&&de.rel==="modulepreload"&&D(de)}).observe(document,{childList:!0,subtree:!0});function m(M){const H={};return M.integrity&&(H.integrity=M.integrity),M.referrerPolicy&&(H.referrerPolicy=M.referrerPolicy),M.crossOrigin==="use-credentials"?H.credentials="include":M.crossOrigin==="anonymous"?H.credentials="omit":H.credentials="same-origin",H}function D(M){if(M.ep)return;M.ep=!0;const H=m(M);fetch(M.href,H)}})();var ed=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ja(h){return h&&h.__esModule&&Object.prototype.hasOwnProperty.call(h,"default")?h.default:h}function td(h){if(Object.prototype.hasOwnProperty.call(h,"__esModule"))return h;var S=h.default;if(typeof S=="function"){var m=function D(){return this instanceof D?Reflect.construct(S,arguments,this.constructor):S.apply(this,arguments)};m.prototype=S.prototype}else m={};return Object.defineProperty(m,"__esModule",{value:!0}),Object.keys(h).forEach(function(D){var M=Object.getOwnPropertyDescriptor(h,D);Object.defineProperty(m,D,M.get?M:{enumerable:!0,get:function(){return h[D]}})}),m}var xo={exports:{}},gr={},Po={exports:{}},I={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var xa;function Mf(){if(xa)return I;xa=1;var h=Symbol.for("react.element"),S=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),H=Symbol.for("react.provider"),de=Symbol.for("react.context"),pe=Symbol.for("react.forward_ref"),Q=Symbol.for("react.suspense"),Pe=Symbol.for("react.memo"),ke=Symbol.for("react.lazy"),ne=Symbol.iterator;function q(c){return c===null||typeof c!="object"?null:(c=ne&&c[ne]||c["@@iterator"],typeof c=="function"?c:null)}var $e={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Qe=Object.assign,b={};function K(c,y,j){this.props=c,this.context=y,this.refs=b,this.updater=j||$e}K.prototype.isReactComponent={},K.prototype.setState=function(c,y){if(typeof c!="object"&&typeof c!="function"&&c!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,c,y,"setState")},K.prototype.forceUpdate=function(c){this.updater.enqueueForceUpdate(this,c,"forceUpdate")};function yt(){}yt.prototype=K.prototype;function at(c,y,j){this.props=c,this.context=y,this.refs=b,this.updater=j||$e}var be=at.prototype=new yt;be.constructor=at,Qe(be,K.prototype),be.isPureReactComponent=!0;var Se=Array.isArray,et=Object.prototype.hasOwnProperty,Ne={current:null},Re={key:!0,ref:!0,__self:!0,__source:!0};function Ke(c,y,j){var F,A={},V=null,X=null;if(y!=null)for(F in y.ref!==void 0&&(X=y.ref),y.key!==void 0&&(V=""+y.key),y)et.call(y,F)&&!Re.hasOwnProperty(F)&&(A[F]=y[F]);var W=arguments.length-2;if(W===1)A.children=j;else if(1>>1,y=E[c];if(0>>1;cM(A,x))VM(X,A)?(E[c]=X,E[V]=x,c=V):(E[c]=A,E[F]=x,c=F);else if(VM(X,x))E[c]=X,E[V]=x,c=V;else break e}}return T}function M(E,T){var x=E.sortIndex-T.sortIndex;return x!==0?x:E.id-T.id}if(typeof performance=="object"&&typeof performance.now=="function"){var H=performance;h.unstable_now=function(){return H.now()}}else{var de=Date,pe=de.now();h.unstable_now=function(){return de.now()-pe}}var Q=[],Pe=[],ke=1,ne=null,q=3,$e=!1,Qe=!1,b=!1,K=typeof setTimeout=="function"?setTimeout:null,yt=typeof clearTimeout=="function"?clearTimeout:null,at=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function be(E){for(var T=m(Pe);T!==null;){if(T.callback===null)D(Pe);else if(T.startTime<=E)D(Pe),T.sortIndex=T.expirationTime,S(Q,T);else break;T=m(Pe)}}function Se(E){if(b=!1,be(E),!Qe)if(m(Q)!==null)Qe=!0,Te(et);else{var T=m(Pe);T!==null&&ue(Se,T.startTime-E)}}function et(E,T){Qe=!1,b&&(b=!1,yt(Ke),Ke=-1),$e=!0;var x=q;try{for(be(T),ne=m(Q);ne!==null&&(!(ne.expirationTime>T)||E&&!Yt());){var c=ne.callback;if(typeof c=="function"){ne.callback=null,q=ne.priorityLevel;var y=c(ne.expirationTime<=T);T=h.unstable_now(),typeof y=="function"?ne.callback=y:ne===m(Q)&&D(Q),be(T)}else D(Q);ne=m(Q)}if(ne!==null)var j=!0;else{var F=m(Pe);F!==null&&ue(Se,F.startTime-T),j=!1}return j}finally{ne=null,q=x,$e=!1}}var Ne=!1,Re=null,Ke=-1,Nt=5,gt=-1;function Yt(){return!(h.unstable_now()-gtE||125c?(E.sortIndex=x,S(Pe,E),m(Q)===null&&E===m(Pe)&&(b?(yt(Ke),Ke=-1):b=!0,ue(Se,x-c))):(E.sortIndex=y,S(Q,E),Qe||$e||(Qe=!0,Te(et))),E},h.unstable_shouldYield=Yt,h.unstable_wrapCallback=function(E){var T=q;return function(){var x=q;q=T;try{return E.apply(this,arguments)}finally{q=x}}}})(Lo)),Lo}var Ra;function Af(){return Ra||(Ra=1,zo.exports=Uf()),zo.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ta;function Vf(){if(Ta)return Fe;Ta=1;var h=Ro(),S=Af();function m(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Q=Object.prototype.hasOwnProperty,Pe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ke={},ne={};function q(e){return Q.call(ne,e)?!0:Q.call(ke,e)?!1:Pe.test(e)?ne[e]=!0:(ke[e]=!0,!1)}function $e(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Qe(e,t,n,r){if(t===null||typeof t>"u"||$e(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function b(e,t,n,r,l,u,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=o}var K={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){K[e]=new b(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];K[t]=new b(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){K[e]=new b(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){K[e]=new b(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){K[e]=new b(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){K[e]=new b(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){K[e]=new b(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){K[e]=new b(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){K[e]=new b(e,5,!1,e.toLowerCase(),null,!1,!1)});var yt=/[\-:]([a-z])/g;function at(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(yt,at);K[t]=new b(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yt,at);K[t]=new b(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yt,at);K[t]=new b(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){K[e]=new b(e,1,!1,e.toLowerCase(),null,!1,!1)}),K.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){K[e]=new b(e,1,!1,e.toLowerCase(),null,!0,!0)});function be(e,t,n,r){var l=K.hasOwnProperty(t)?K[t]:null;(l!==null?l.type!==0:r||!(2i||l[o]!==u[i]){var s=` +`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=i);break}}}finally{j=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?y(e):""}function A(e){switch(e.tag){case 5:return y(e.type);case 16:return y("Lazy");case 13:return y("Suspense");case 19:return y("SuspenseList");case 0:case 2:case 15:return e=F(e.type,!1),e;case 11:return e=F(e.type.render,!1),e;case 1:return e=F(e.type,!0),e;default:return""}}function V(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Re:return"Fragment";case Ne:return"Portal";case Nt:return"Profiler";case Ke:return"StrictMode";case Ue:return"Suspense";case tt:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Yt:return(e.displayName||"Context")+".Consumer";case gt:return(e._context.displayName||"Context")+".Provider";case ct:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ft:return t=e.displayName||null,t!==null?t:V(e.type)||"Memo";case Te:t=e._payload,e=e._init;try{return V(e(t))}catch{}}return null}function X(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return V(t);case 8:return t===Ke?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ee(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ae(e){var t=ee(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,u.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function wr(e){e._valueTracker||(e._valueTracker=Ae(e))}function To(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ee(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function kr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Tl(e,t){var n=t.checked;return x({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Oo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=W(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Do(e,t){t=t.checked,t!=null&&be(e,"checked",t,!1)}function Ol(e,t){Do(e,t);var n=W(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Dl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Dl(e,t.type,W(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Mo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Dl(e,t,n){(t!=="number"||kr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Dn=Array.isArray;function sn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Sr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Mn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var jn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ia=["Webkit","ms","Moz","O"];Object.keys(jn).forEach(function(e){Ia.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),jn[t]=jn[e]})});function Vo(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||jn.hasOwnProperty(e)&&jn[e]?(""+t).trim():t+"px"}function Bo(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Vo(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Fa=x({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Il(e,t){if(t){if(Fa[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(m(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(m(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(m(61))}if(t.style!=null&&typeof t.style!="object")throw Error(m(62))}}function Fl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ul=null;function Al(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Vl=null,an=null,cn=null;function Ho(e){if(e=rr(e)){if(typeof Vl!="function")throw Error(m(280));var t=e.stateNode;t&&(t=$r(t),Vl(e.stateNode,e.type,t))}}function Wo(e){an?cn?cn.push(e):cn=[e]:an=e}function $o(){if(an){var e=an,t=cn;if(cn=an=null,Ho(e),t)for(e=0;e>>=0,e===0?32:31-(Xa(e)/Ga|0)|0}var Pr=64,Nr=4194304;function An(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function zr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,o=n&268435455;if(o!==0){var i=o&~l;i!==0?r=An(i):(u&=o,u!==0&&(r=An(u)))}else o=n&~l,o!==0?r=An(o):u!==0&&(r=An(u));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Vn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-nt(t),e[t]=n}function ba(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Xn),gi=" ",wi=!1;function ki(e,t){switch(e){case"keyup":return Nc.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Si(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pn=!1;function Lc(e,t){switch(e){case"compositionend":return Si(t);case"keypress":return t.which!==32?null:(wi=!0,gi);case"textInput":return e=t.data,e===gi&&wi?null:e;default:return null}}function Rc(e,t){if(pn)return e==="compositionend"||!lu&&ki(e,t)?(e=di(),Dr=ql=Ot=null,pn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=zi(n)}}function Ri(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ri(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ti(){for(var e=window,t=kr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=kr(e.document)}return t}function iu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ac(e){var t=Ti(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ri(n.ownerDocument.documentElement,n)){if(r!==null&&iu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=Li(n,u);var o=Li(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,mn=null,su=null,qn=null,au=!1;function Oi(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;au||mn==null||mn!==kr(r)||(r=mn,"selectionStart"in r&&iu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),qn&&Jn(qn,r)||(qn=r,r=Br(su,"onSelect"),0wn||(e.current=Su[wn],Su[wn]=null,wn--)}function G(e,t){wn++,Su[wn]=e.current,e.current=t}var It={},Ee=jt(It),Oe=jt(!1),Zt=It;function kn(e,t){var n=e.type.contextTypes;if(!n)return It;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function De(e){return e=e.childContextTypes,e!=null}function Qr(){J(Oe),J(Ee)}function Yi(e,t,n){if(Ee.current!==It)throw Error(m(168));G(Ee,t),G(Oe,n)}function Xi(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(m(108,X(e)||"Unknown",l));return x({},n,r)}function Kr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||It,Zt=Ee.current,G(Ee,e),G(Oe,Oe.current),!0}function Gi(e,t,n){var r=e.stateNode;if(!r)throw Error(m(169));n?(e=Xi(e,t,Zt),r.__reactInternalMemoizedMergedChildContext=e,J(Oe),J(Ee),G(Ee,e)):J(Oe),G(Oe,n)}var kt=null,Yr=!1,Eu=!1;function Zi(e){kt===null?kt=[e]:kt.push(e)}function Jc(e){Yr=!0,Zi(e)}function Ft(){if(!Eu&&kt!==null){Eu=!0;var e=0,t=$;try{var n=kt;for($=1;e>=o,l-=o,St=1<<32-nt(t)+l|n<O?(ve=R,R=null):ve=R.sibling;var B=v(f,R,d[O],k);if(B===null){R===null&&(R=ve);break}e&&R&&B.alternate===null&&t(f,R),a=u(B,a,O),L===null?z=B:L.sibling=B,L=B,R=ve}if(O===d.length)return n(f,R),te&&qt(f,O),z;if(R===null){for(;OO?(ve=R,R=null):ve=R.sibling;var Kt=v(f,R,B.value,k);if(Kt===null){R===null&&(R=ve);break}e&&R&&Kt.alternate===null&&t(f,R),a=u(Kt,a,O),L===null?z=Kt:L.sibling=Kt,L=Kt,R=ve}if(B.done)return n(f,R),te&&qt(f,O),z;if(R===null){for(;!B.done;O++,B=d.next())B=w(f,B.value,k),B!==null&&(a=u(B,a,O),L===null?z=B:L.sibling=B,L=B);return te&&qt(f,O),z}for(R=r(f,R);!B.done;O++,B=d.next())B=_(R,f,O,B.value,k),B!==null&&(e&&B.alternate!==null&&R.delete(B.key===null?O:B.key),a=u(B,a,O),L===null?z=B:L.sibling=B,L=B);return e&&R.forEach(function(Of){return t(f,Of)}),te&&qt(f,O),z}function se(f,a,d,k){if(typeof d=="object"&&d!==null&&d.type===Re&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case et:e:{for(var z=d.key,L=a;L!==null;){if(L.key===z){if(z=d.type,z===Re){if(L.tag===7){n(f,L.sibling),a=l(L,d.props.children),a.return=f,f=a;break e}}else if(L.elementType===z||typeof z=="object"&&z!==null&&z.$$typeof===Te&&ns(z)===L.type){n(f,L.sibling),a=l(L,d.props),a.ref=lr(f,L,d),a.return=f,f=a;break e}n(f,L);break}else t(f,L);L=L.sibling}d.type===Re?(a=on(d.props.children,f.mode,k,d.key),a.return=f,f=a):(k=Sl(d.type,d.key,d.props,null,f.mode,k),k.ref=lr(f,a,d),k.return=f,f=k)}return o(f);case Ne:e:{for(L=d.key;a!==null;){if(a.key===L)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=ko(d,f.mode,k),a.return=f,f=a}return o(f);case Te:return L=d._init,se(f,a,L(d._payload),k)}if(Dn(d))return P(f,a,d,k);if(T(d))return N(f,a,d,k);Jr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=wo(d,f.mode,k),a.return=f,f=a),o(f)):n(f,a)}return se}var Cn=rs(!0),ls=rs(!1),qr=jt(null),br=null,xn=null,zu=null;function Lu(){zu=xn=br=null}function Ru(e){var t=qr.current;J(qr),e._currentValue=t}function Tu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Pn(e,t){br=e,zu=xn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Me=!0),e.firstContext=null)}function Ge(e){var t=e._currentValue;if(zu!==e)if(e={context:e,memoizedValue:t,next:null},xn===null){if(br===null)throw Error(m(308));xn=e,br.dependencies={lanes:0,firstContext:e}}else xn=xn.next=e;return t}var bt=null;function Ou(e){bt===null?bt=[e]:bt.push(e)}function us(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Ou(t)):(n.next=l.next,l.next=n),t.interleaved=n,_t(e,r)}function _t(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ut=!1;function Du(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function os(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ct(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function At(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(U&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,_t(e,n)}return l=r.interleaved,l===null?(t.next=t,Ou(r)):(t.next=l.next,l.next=t),r.interleaved=t,_t(e,n)}function el(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Yl(e,n)}}function is(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=o:u=u.next=o,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function tl(e,t,n,r){var l=e.updateQueue;Ut=!1;var u=l.firstBaseUpdate,o=l.lastBaseUpdate,i=l.shared.pending;if(i!==null){l.shared.pending=null;var s=i,p=s.next;s.next=null,o===null?u=p:o.next=p,o=s;var g=e.alternate;g!==null&&(g=g.updateQueue,i=g.lastBaseUpdate,i!==o&&(i===null?g.firstBaseUpdate=p:i.next=p,g.lastBaseUpdate=s))}if(u!==null){var w=l.baseState;o=0,g=p=s=null,i=u;do{var v=i.lane,_=i.eventTime;if((r&v)===v){g!==null&&(g=g.next={eventTime:_,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var P=e,N=i;switch(v=t,_=n,N.tag){case 1:if(P=N.payload,typeof P=="function"){w=P.call(_,w,v);break e}w=P;break e;case 3:P.flags=P.flags&-65537|128;case 0:if(P=N.payload,v=typeof P=="function"?P.call(_,w,v):P,v==null)break e;w=x({},w,v);break e;case 2:Ut=!0}}i.callback!==null&&i.lane!==0&&(e.flags|=64,v=l.effects,v===null?l.effects=[i]:v.push(i))}else _={eventTime:_,lane:v,tag:i.tag,payload:i.payload,callback:i.callback,next:null},g===null?(p=g=_,s=w):g=g.next=_,o|=v;if(i=i.next,i===null){if(i=l.shared.pending,i===null)break;v=i,i=v.next,v.next=null,l.lastBaseUpdate=v,l.shared.pending=null}}while(!0);if(g===null&&(s=w),l.baseState=s,l.firstBaseUpdate=p,l.lastBaseUpdate=g,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);nn|=o,e.lanes=o,e.memoizedState=w}}function ss(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Uu.transition;Uu.transition={};try{e(!1),t()}finally{$=n,Uu.transition=r}}function Ns(){return Ze().memoizedState}function tf(e,t,n){var r=Wt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},zs(e))Ls(t,n);else if(n=us(e,t,n,r),n!==null){var l=Le();st(n,e,r,l),Rs(n,t,r)}}function nf(e,t,n){var r=Wt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(zs(e))Ls(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var o=t.lastRenderedState,i=u(o,n);if(l.hasEagerState=!0,l.eagerState=i,rt(i,o)){var s=t.interleaved;s===null?(l.next=l,Ou(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=us(e,t,l,r),n!==null&&(l=Le(),st(n,e,r,l),Rs(n,t,r))}}function zs(e){var t=e.alternate;return e===le||t!==null&&t===le}function Ls(e,t){sr=ll=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rs(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Yl(e,n)}}var il={readContext:Ge,useCallback:_e,useContext:_e,useEffect:_e,useImperativeHandle:_e,useInsertionEffect:_e,useLayoutEffect:_e,useMemo:_e,useReducer:_e,useRef:_e,useState:_e,useDebugValue:_e,useDeferredValue:_e,useTransition:_e,useMutableSource:_e,useSyncExternalStore:_e,useId:_e,unstable_isNewReconciler:!1},rf={readContext:Ge,useCallback:function(e,t){return ht().memoizedState=[e,t===void 0?null:t],e},useContext:Ge,useEffect:ws,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ul(4194308,4,Es.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ul(4194308,4,e,t)},useInsertionEffect:function(e,t){return ul(4,2,e,t)},useMemo:function(e,t){var n=ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tf.bind(null,le,e),[r.memoizedState,e]},useRef:function(e){var t=ht();return e={current:e},t.memoizedState=e},useState:ys,useDebugValue:Qu,useDeferredValue:function(e){return ht().memoizedState=e},useTransition:function(){var e=ys(!1),t=e[0];return e=ef.bind(null,e[1]),ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=le,l=ht();if(te){if(n===void 0)throw Error(m(407));n=n()}else{if(n=t(),he===null)throw Error(m(349));(tn&30)!==0||ds(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,ws(ms.bind(null,r,u,e),[e]),r.flags|=2048,fr(9,ps.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=ht(),t=he.identifierPrefix;if(te){var n=Et,r=St;n=(r&~(1<<32-nt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ar++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[pt]=t,e[nr]=r,Zs(e,t,!1,!1),t.stateNode=e;e:{switch(o=Fl(n,r),n){case"dialog":Z("cancel",e),Z("close",e),l=r;break;case"iframe":case"object":case"embed":Z("load",e),l=r;break;case"video":case"audio":for(l=0;lTn&&(t.flags|=128,r=!0,dr(u,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),dr(u,!0),u.tail===null&&u.tailMode==="hidden"&&!o.alternate&&!te)return Ce(t),null}else 2*ie()-u.renderingStartTime>Tn&&n!==1073741824&&(t.flags|=128,r=!0,dr(u,!1),t.lanes=4194304);u.isBackwards?(o.sibling=t.child,t.child=o):(n=u.last,n!==null?n.sibling=o:t.child=o,u.last=o)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=ie(),t.sibling=null,n=re.current,G(re,r?n&1|2:n&1),t):(Ce(t),null);case 22:case 23:return vo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(We&1073741824)!==0&&(Ce(t),t.subtreeFlags&6&&(t.flags|=8192)):Ce(t),null;case 24:return null;case 25:return null}throw Error(m(156,t.tag))}function df(e,t){switch(Cu(t),t.tag){case 1:return De(t.type)&&Qr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Nn(),J(Oe),J(Ee),Fu(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ju(t),null;case 13:if(J(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(m(340));_n()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return J(re),null;case 4:return Nn(),null;case 10:return Ru(t.type._context),null;case 22:case 23:return vo(),null;case 24:return null;default:return null}}var fl=!1,xe=!1,pf=typeof WeakSet=="function"?WeakSet:Set,C=null;function Ln(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){oe(e,t,r)}else n.current=null}function ro(e,t,n){try{n()}catch(r){oe(e,t,r)}}var bs=!1;function mf(e,t){if(hu=Tr,e=Ti(),iu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var o=0,i=-1,s=-1,p=0,g=0,w=e,v=null;t:for(;;){for(var _;w!==n||l!==0&&w.nodeType!==3||(i=o+l),w!==u||r!==0&&w.nodeType!==3||(s=o+r),w.nodeType===3&&(o+=w.nodeValue.length),(_=w.firstChild)!==null;)v=w,w=_;for(;;){if(w===e)break t;if(v===n&&++p===l&&(i=o),v===u&&++g===r&&(s=o),(_=w.nextSibling)!==null)break;w=v,v=w.parentNode}w=_}n=i===-1||s===-1?null:{start:i,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(vu={focusedElem:e,selectionRange:n},Tr=!1,C=t;C!==null;)if(t=C,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,C=e;else for(;C!==null;){t=C;try{var P=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(P!==null){var N=P.memoizedProps,se=P.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?N:ut(t.type,N),se);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(m(163))}}catch(k){oe(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,C=e;break}C=t.return}return P=bs,bs=!1,P}function pr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&ro(t,n,u)}l=l.next}while(l!==r)}}function dl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function lo(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ea(e){var t=e.alternate;t!==null&&(e.alternate=null,ea(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[pt],delete t[nr],delete t[ku],delete t[Gc],delete t[Zc])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ta(e){return e.tag===5||e.tag===3||e.tag===4}function na(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ta(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function uo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Wr));else if(r!==4&&(e=e.child,e!==null))for(uo(e,t,n),e=e.sibling;e!==null;)uo(e,t,n),e=e.sibling}function oo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(oo(e,t,n),e=e.sibling;e!==null;)oo(e,t,n),e=e.sibling}var ye=null,ot=!1;function Vt(e,t,n){for(n=n.child;n!==null;)ra(e,t,n),n=n.sibling}function ra(e,t,n){if(dt&&typeof dt.onCommitFiberUnmount=="function")try{dt.onCommitFiberUnmount(xr,n)}catch{}switch(n.tag){case 5:xe||Ln(n,t);case 6:var r=ye,l=ot;ye=null,Vt(e,t,n),ye=r,ot=l,ye!==null&&(ot?(e=ye,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ye.removeChild(n.stateNode));break;case 18:ye!==null&&(ot?(e=ye,n=n.stateNode,e.nodeType===8?wu(e.parentNode,n):e.nodeType===1&&wu(e,n),Qn(e)):wu(ye,n.stateNode));break;case 4:r=ye,l=ot,ye=n.stateNode.containerInfo,ot=!0,Vt(e,t,n),ye=r,ot=l;break;case 0:case 11:case 14:case 15:if(!xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,o=u.destroy;u=u.tag,o!==void 0&&((u&2)!==0||(u&4)!==0)&&ro(n,t,o),l=l.next}while(l!==r)}Vt(e,t,n);break;case 1:if(!xe&&(Ln(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){oe(n,t,i)}Vt(e,t,n);break;case 21:Vt(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,Vt(e,t,n),xe=r):Vt(e,t,n);break;default:Vt(e,t,n)}}function la(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new pf),t.forEach(function(r){var l=_f.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function it(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~u}if(r=l,r=ie()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vf(r/1960))-r,10e?16:e,Ht===null)var r=!1;else{if(e=Ht,Ht=null,yl=0,(U&6)!==0)throw Error(m(331));var l=U;for(U|=4,C=e.current;C!==null;){var u=C,o=u.child;if((C.flags&16)!==0){var i=u.deletions;if(i!==null){for(var s=0;sie()-ao?ln(e,0):so|=n),Ie(e,t)}function ya(e,t){t===0&&((e.mode&1)===0?t=1:(t=Nr,Nr<<=1,(Nr&130023424)===0&&(Nr=4194304)));var n=Le();e=_t(e,t),e!==null&&(Vn(e,t,n),Ie(e,n))}function Ef(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ya(e,n)}function _f(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(m(314))}r!==null&&r.delete(t),ya(e,n)}var ga;ga=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Oe.current)Me=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Me=!1,cf(e,t,n);Me=(e.flags&131072)!==0}else Me=!1,te&&(t.flags&1048576)!==0&&Ji(t,Gr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;cl(e,t),e=t.pendingProps;var l=kn(t,Ee.current);Pn(t,n),l=Vu(null,t,r,e,l,n);var u=Bu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,De(r)?(u=!0,Kr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Du(t),l.updater=sl,t.stateNode=l,l._reactInternals=t,Yu(t,r,e,n),t=Ju(null,t,r,!0,u,n)):(t.tag=0,te&&u&&_u(t),ze(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(cl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=xf(r),e=ut(r,e),l){case 0:t=Zu(null,t,r,e,n);break e;case 1:t=$s(null,t,r,e,n);break e;case 11:t=As(null,t,r,e,n);break e;case 14:t=Vs(null,t,r,ut(r.type,e),n);break e}throw Error(m(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ut(r,l),Zu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ut(r,l),$s(e,t,r,l,n);case 3:e:{if(Qs(t),e===null)throw Error(m(387));r=t.pendingProps,u=t.memoizedState,l=u.element,os(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=zn(Error(m(423)),t),t=Ks(e,t,r,n,l);break e}else if(r!==l){l=zn(Error(m(424)),t),t=Ks(e,t,r,n,l);break e}else for(He=Mt(t.stateNode.containerInfo.firstChild),Be=t,te=!0,lt=null,n=ls(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(_n(),r===l){t=xt(e,t,n);break e}ze(e,t,r,n)}t=t.child}return t;case 5:return as(t),e===null&&Pu(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,o=l.children,yu(r,l)?o=null:u!==null&&yu(r,u)&&(t.flags|=32),Ws(e,t),ze(e,t,o,n),t.child;case 6:return e===null&&Pu(t),null;case 13:return Ys(e,t,n);case 4:return Mu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):ze(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ut(r,l),As(e,t,r,l,n);case 7:return ze(e,t,t.pendingProps,n),t.child;case 8:return ze(e,t,t.pendingProps.children,n),t.child;case 12:return ze(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,o=l.value,G(qr,r._currentValue),r._currentValue=o,u!==null)if(rt(u.value,o)){if(u.children===l.children&&!Oe.current){t=xt(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var i=u.dependencies;if(i!==null){o=u.child;for(var s=i.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=Ct(-1,n&-n),s.tag=2;var p=u.updateQueue;if(p!==null){p=p.shared;var g=p.pending;g===null?s.next=s:(s.next=g.next,g.next=s),p.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),Tu(u.return,n,t),i.lanes|=n;break}s=s.next}}else if(u.tag===10)o=u.type===t.type?null:u.child;else if(u.tag===18){if(o=u.return,o===null)throw Error(m(341));o.lanes|=n,i=o.alternate,i!==null&&(i.lanes|=n),Tu(o,n,t),o=u.sibling}else o=u.child;if(o!==null)o.return=u;else for(o=u;o!==null;){if(o===t){o=null;break}if(u=o.sibling,u!==null){u.return=o.return,o=u;break}o=o.return}u=o}ze(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Pn(t,n),l=Ge(l),r=r(l),t.flags|=1,ze(e,t,r,n),t.child;case 14:return r=t.type,l=ut(r,t.pendingProps),l=ut(r.type,l),Vs(e,t,r,l,n);case 15:return Bs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ut(r,l),cl(e,t),t.tag=1,De(r)?(e=!0,Kr(t)):e=!1,Pn(t,n),Os(t,r,l),Yu(t,r,l,n),Ju(null,t,r,!0,e,n);case 19:return Gs(e,t,n);case 22:return Hs(e,t,n)}throw Error(m(156,t.tag))};function wa(e,t){return qo(e,t)}function Cf(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function qe(e,t,n,r){return new Cf(e,t,n,r)}function go(e){return e=e.prototype,!(!e||!e.isReactComponent)}function xf(e){if(typeof e=="function")return go(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ct)return 11;if(e===ft)return 14}return 2}function Qt(e,t){var n=e.alternate;return n===null?(n=qe(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sl(e,t,n,r,l,u){var o=2;if(r=e,typeof e=="function")go(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Re:return on(n.children,l,u,t);case Ke:o=8,l|=8;break;case Nt:return e=qe(12,n,t,l|2),e.elementType=Nt,e.lanes=u,e;case Ue:return e=qe(13,n,t,l),e.elementType=Ue,e.lanes=u,e;case tt:return e=qe(19,n,t,l),e.elementType=tt,e.lanes=u,e;case ue:return El(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case gt:o=10;break e;case Yt:o=9;break e;case ct:o=11;break e;case ft:o=14;break e;case Te:o=16,r=null;break e}throw Error(m(130,e==null?e:typeof e,""))}return t=qe(o,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function on(e,t,n,r){return e=qe(7,e,r,t),e.lanes=n,e}function El(e,t,n,r){return e=qe(22,e,r,t),e.elementType=ue,e.lanes=n,e.stateNode={isHidden:!1},e}function wo(e,t,n){return e=qe(6,e,null,t),e.lanes=n,e}function ko(e,t,n){return t=qe(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Pf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Kl(0),this.expirationTimes=Kl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Kl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function So(e,t,n,r,l,u,o,i,s){return e=new Pf(e,t,n,i,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=qe(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Du(u),e}function Nf(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(h)}catch(S){console.error(S)}}return h(),No.exports=Vf(),No.exports}var Da;function Hf(){if(Da)return Ll;Da=1;var h=Bf();return Ll.createRoot=h.createRoot,Ll.hydrateRoot=h.hydrateRoot,Ll}var Wf=Hf();const ld=ja(Wf);let Rl;const $f=new Uint8Array(16);function Qf(){if(!Rl&&(Rl=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Rl))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Rl($f)}const we=[];for(let h=0;h<256;++h)we.push((h+256).toString(16).slice(1));function Kf(h,S=0){return we[h[S+0]]+we[h[S+1]]+we[h[S+2]]+we[h[S+3]]+"-"+we[h[S+4]]+we[h[S+5]]+"-"+we[h[S+6]]+we[h[S+7]]+"-"+we[h[S+8]]+we[h[S+9]]+"-"+we[h[S+10]]+we[h[S+11]]+we[h[S+12]]+we[h[S+13]]+we[h[S+14]]+we[h[S+15]]}const Yf=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Ma={randomUUID:Yf};function ud(h,S,m){if(Ma.randomUUID&&!h)return Ma.randomUUID();h=h||{};const D=h.random||(h.rng||Qf)();return D[6]=D[6]&15|64,D[8]=D[8]&63|128,Kf(D)}function Xf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const od=Y.forwardRef(Xf);function Gf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const id=Y.forwardRef(Gf);function Zf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m8.25 4.5 7.5 7.5-7.5 7.5"}))}const sd=Y.forwardRef(Zf);function Jf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z"}))}const ad=Y.forwardRef(Jf);function qf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 0 1 9 14.437V9.564Z"}))}const cd=Y.forwardRef(qf);function bf({title:h,titleId:S,...m},D){return Y.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:D,"aria-labelledby":S},m),h?Y.createElement("title",{id:S},h):null,Y.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const fd=Y.forwardRef(bf);export{id as F,ld as R,sd as a,fd as b,cd as c,od as d,ad as e,Ff as f,ja as g,Ro as h,Bf as i,nd as j,ed as k,td as l,Y as r,rd as t,ud as v}; +//# sourceMappingURL=XCircleIcon.js.map diff --git a/extensions/continue/gui/assets/XCircleIcon.js.map b/extensions/continue/gui/assets/XCircleIcon.js.map new file mode 100644 index 000000000000..ffcfec46f379 --- /dev/null +++ b/extensions/continue/gui/assets/XCircleIcon.js.map @@ -0,0 +1 @@ +{"version":3,"file":"XCircleIcon.js","sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/native.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/@heroicons/react/24/outline/esm/CheckIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EllipsisHorizontalIcon.js","../../node_modules/@heroicons/react/24/outline/esm/StopCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/XCircleIcon.js"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;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 Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=32?e[2]:void 0;for(t&&A(e[0],e[1],t)&&(i=1);++r-1?t[s?e[a]:a]:void 0}}var J=Math.max;function Z(n,e,r){var i=n==null?0:n.length;if(!i)return-1;var t=r==null?0:K(r);return t<0&&(t=J(i+t,0)),x(n,l(e),t)}var on=U(Z);function V(n,e){var r=-1,i=v(n)?Array(n.length):[];return w(n,function(t,s,a){i[++r]=e(t,s,a)}),i}function hn(n,e){var r=F(n)?O:V;return r(n,l(e))}var k=Object.prototype,j=k.hasOwnProperty;function nn(n,e){return n!=null&&j.call(n,e)}function ln(n,e){return n!=null&&E(n,e,nn)}function en(n,e){return n 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n"],"names":["reWhitespace","trimmedEndIndex","string","index","reTrimStart","baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","isSymbol","isObject","other","isBinary","INFINITY","MAX_INTEGER","toFinite","sign","toInteger","result","remainder","flatten","array","length","baseFlatten","objectProto","hasOwnProperty","defaults","baseRest","object","sources","guard","isIterateeCall","source","props","keysIn","propsIndex","propsLength","key","eq","last","createFind","findIndexFunc","collection","predicate","fromIndex","iterable","isArrayLike","iteratee","baseIteratee","keys","nativeMax","findIndex","baseFindIndex","find","baseMap","baseEach","map","func","isArray","arrayMap","baseHas","has","path","hasPath","baseLt","baseExtremum","comparator","current","computed","min","identity","baseSet","customizer","castPath","lastIndex","nested","toKey","newValue","objValue","isIndex","assignValue","basePickBy","paths","baseGet"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/_baseUniq.js b/extensions/continue/gui/assets/_baseUniq.js new file mode 100644 index 000000000000..f114ae6d7d2c --- /dev/null +++ b/extensions/continue/gui/assets/_baseUniq.js @@ -0,0 +1,2 @@ +import{bd as E,be as Rn,aV as T,bf as w,bg as xn,bh as mn,aU as sn,bi as Mn,bj as un,bk as x,aS as U,bl as Cn,bm as on,bn as Fn,bo as I,bb as gn,bp as R,aQ as ln,bq as Dn,br as D,bs as Gn,bt as Un,bu as $,aY as Nn,bv as Bn,aT as Kn,bw as X,bx as jn,by as Hn,aX as Yn,aW as cn,b9 as qn,bz as M}from"./index.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="c2eafbc5-91b6-4d60-9ade-bb375b1a1769",n._sentryDebugIdIdentifier="sentry-dbid-c2eafbc5-91b6-4d60-9ade-bb375b1a1769")})()}catch{}var Zn="[object Symbol]";function N(n){return typeof n=="symbol"||E(n)&&Rn(n)==Zn}function bn(n,e){for(var r=-1,t=n==null?0:n.length,f=Array(t);++r-1}function O(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/;function B(n,e){if(T(n))return!1;var r=typeof n;return r=="number"||r=="symbol"||r=="boolean"||n==null||N(n)?!0:ne.test(n)||!kn.test(n)||e!=null&&n in Object(e)}var ee=500;function re(n){var e=Mn(n,function(t){return r.size===ee&&r.clear(),t}),r=e.cache;return e}var te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/\\(\\)?/g,fe=re(function(n){var e=[];return n.charCodeAt(0)===46&&e.push(""),n.replace(te,function(r,t,f,i){e.push(f?i.replace(ie,"$1"):t||r)}),e});function ae(n){return n==null?"":dn(n)}function pn(n,e){return T(n)?n:B(n,e)?[n]:fe(ae(n))}function m(n){if(typeof n=="string"||N(n))return n;var e=n+"";return e=="0"&&1/n==-1/0?"-0":e}function An(n,e){e=pn(e,n);for(var r=0,t=e.length;n!=null&&rs))return!1;var b=i.get(n),l=i.get(e);if(b&&l)return b==e&&l==n;var o=-1,c=!0,h=r&vr?new S:void 0;for(i.set(n,e),i.set(e,n);++o=ht){var b=e?null:Tt(n);if(b)return H(b);a=!1,f=In,u=new S}else u=e?[]:s;n:for(;++t true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n"],"names":["symbolTag","isSymbol","value","isObjectLike","baseGetTag","arrayMap","array","iteratee","index","length","result","symbolProto","Symbol","symbolToString","baseToString","isArray","noop","arrayEach","baseFindIndex","predicate","fromIndex","fromRight","baseIsNaN","strictIndexOf","baseIndexOf","arrayIncludes","keys","object","isArrayLike","arrayLikeKeys","baseKeys","reIsDeepProp","reIsPlainProp","isKey","type","MAX_MEMOIZE_SIZE","memoizeCapped","func","memoize","key","cache","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","toString","castPath","toKey","baseGet","path","get","defaultValue","arrayPush","values","offset","spreadableSymbol","isFlattenable","isArguments","baseFlatten","depth","isStrict","arrayReduce","accumulator","initAccum","baseAssign","source","copyObject","baseAssignIn","keysIn","arrayFilter","resIndex","stubArray","objectProto","propertyIsEnumerable","nativeGetSymbols","getSymbols","symbol","copySymbols","getSymbolsIn","getPrototype","copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","hasOwnProperty","initCloneArray","cloneDataView","dataView","isDeep","buffer","cloneArrayBuffer","reFlags","cloneRegExp","regexp","symbolValueOf","cloneSymbol","boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","initCloneByTag","tag","Ctor","cloneTypedArray","baseIsMap","getTag","nodeIsMap","nodeUtil","isMap","baseUnary","baseIsSet","nodeIsSet","isSet","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","errorTag","funcTag","genTag","objectTag","weakMapTag","cloneableTags","baseClone","bitmask","customizer","stack","isFlat","isFull","isObject","isArr","copyArray","isFunc","isBuffer","cloneBuffer","initCloneObject","Stack","stacked","subValue","props","assignValue","HASH_UNDEFINED","setCacheAdd","setCacheHas","SetCache","MapCache","arraySome","cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","other","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","map","setToArray","set","equalByTag","Uint8Array","eq","convert","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","isTypedArray","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","baseIsMatch","matchData","data","srcValue","isStrictComparable","getMatchData","matchesStrictComparable","baseMatches","baseHasIn","hasPath","hasFunc","isLength","isIndex","hasIn","baseMatchesProperty","baseProperty","basePropertyDeep","property","baseIteratee","identity","baseForOwn","baseFor","createBaseEach","eachFunc","collection","iterable","baseEach","castFunction","forEach","baseFilter","filter","baseValues","isUndefined","baseReduce","reduce","INFINITY","createSet","Set","LARGE_ARRAY_SIZE","baseUniq","comparator","includes","isCommon","outer","computed","seenIndex"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/arc.js b/extensions/continue/gui/assets/arc.js new file mode 100644 index 000000000000..99465de870e7 --- /dev/null +++ b/extensions/continue/gui/assets/arc.js @@ -0,0 +1,2 @@ +import{a0 as fn,a1 as an,a2 as y,a3 as ln,a4 as z,a5 as E,a6 as _,a7 as un,a8 as O,a9 as rn,aa as F,ab as o,ac as sn,ad as on,ae as tn}from"./index.js";(function(){try{var u=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};u.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var u=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new u.Error().stack;t&&(u._sentryDebugIds=u._sentryDebugIds||{},u._sentryDebugIds[t]="c3a85544-aad0-44bd-8148-f6ad0f7d4912",u._sentryDebugIdIdentifier="sentry-dbid-c3a85544-aad0-44bd-8148-f6ad0f7d4912")})()}catch{}function dn(u){return u.innerRadius}function cn(u){return u.outerRadius}function yn(u){return u.startAngle}function gn(u){return u.endAngle}function pn(u){return u&&u.padAngle}function hn(u,t,P,I,v,b,Y,a){var S=P-u,s=I-t,n=Y-v,p=a-b,i=p*S-n*s;if(!(i*ir*r+k*k&&(L=w,N=m),{cx:L,cy:N,x01:-n,y01:-p,x11:L*(v/T-1),y11:N*(v/T-1)}}function xn(){var u=dn,t=cn,P=O(0),I=null,v=yn,b=gn,Y=pn,a=null,S=fn(s);function s(){var n,p,i=+u.apply(this,arguments),f=+t.apply(this,arguments),d=v.apply(this,arguments)-an,c=b.apply(this,arguments)-an,j=un(c-d),l=c>d;if(a||(a=n=S()),fy))a.moveTo(0,0);else if(j>ln-y)a.moveTo(f*z(d),f*E(d)),a.arc(0,0,f,d,c,!l),i>y&&(a.moveTo(i*z(c),i*E(c)),a.arc(0,0,i,c,d,l));else{var h=d,g=c,R=d,T=c,A=j,q=j,L=Y.apply(this,arguments)/2,N=L>y&&(I?+I.apply(this,arguments):F(i*i+f*f)),w=_(un(f-i)/2,+P.apply(this,arguments)),m=w,x=w,e,r;if(N>y){var k=sn(N/i*E(L)),G=sn(N/f*E(L));(A-=k*2)>y?(k*=l?1:-1,R+=k,T-=k):(A=0,R=T=(d+c)/2),(q-=G*2)>y?(G*=l?1:-1,h+=G,g-=G):(q=0,h=g=(d+c)/2)}var B=f*z(h),C=f*E(h),H=i*z(T),J=i*E(T);if(w>y){var K=f*z(g),M=f*E(g),U=i*z(R),V=i*E(R),D;if(jy?x>y?(e=Q(U,V,B,C,f,x,l),r=Q(K,M,H,J,f,x,l),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(A>y)?a.lineTo(H,J):m>y?(e=Q(H,J,K,M,i,-m,l),r=Q(B,C,U,V,i,-m,l),a.lineTo(e.cx+e.x01,e.cy+e.y01),m dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js b/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js new file mode 100644 index 000000000000..2c03d2711acd --- /dev/null +++ b/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js @@ -0,0 +1,37 @@ +import{_ as dt,H as ke,V as Ze,l as Se,b as qe,a as Qe,p as Je,q as Ke,g as je,s as _e,y as tr,D as er,E as rr,F as ir,c as Ee,ak as me,aI as pe,i as ar,d as nr,aJ as or,aK as sr}from"./index.js";import{p as hr}from"./chunk-4BX2VUAB.js";import{p as lr}from"./treemap-75Q7IDZK.js";import{c as Fe}from"./cytoscape.esm.js";import{g as fr}from"./XCircleIcon.js";import"./_baseUniq.js";import"./_basePickBy.js";import"./clone.js";(function(){try{var D=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};D.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var D=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},x=new D.Error().stack;x&&(D._sentryDebugIds=D._sentryDebugIds||{},D._sentryDebugIds[x]="8105410b-562e-4c11-ad1f-259cd04ec383",D._sentryDebugIdIdentifier="sentry-dbid-8105410b-562e-4c11-ad1f-259cd04ec383")})()}catch{}var he={exports:{}},le={exports:{}},fe={exports:{}},cr=fe.exports,Me;function gr(){return Me||(Me=1,(function(D,x){(function(P,N){D.exports=N()})(cr,function(){return(function(A){var P={};function N(u){if(P[u])return P[u].exports;var l=P[u]={i:u,l:!1,exports:{}};return A[u].call(l.exports,l,l.exports,N),l.l=!0,l.exports}return N.m=A,N.c=P,N.i=function(u){return u},N.d=function(u,l,a){N.o(u,l)||Object.defineProperty(u,l,{configurable:!1,enumerable:!0,get:a})},N.n=function(u){var l=u&&u.__esModule?function(){return u.default}:function(){return u};return N.d(l,"a",l),l},N.o=function(u,l){return Object.prototype.hasOwnProperty.call(u,l)},N.p="",N(N.s=28)})([(function(A,P,N){function u(){}u.QUALITY=1,u.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,u.DEFAULT_INCREMENTAL=!1,u.DEFAULT_ANIMATION_ON_LAYOUT=!0,u.DEFAULT_ANIMATION_DURING_LAYOUT=!1,u.DEFAULT_ANIMATION_PERIOD=50,u.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,u.DEFAULT_GRAPH_MARGIN=15,u.NODE_DIMENSIONS_INCLUDE_LABELS=!1,u.SIMPLE_NODE_SIZE=40,u.SIMPLE_NODE_HALF_SIZE=u.SIMPLE_NODE_SIZE/2,u.EMPTY_COMPOUND_NODE_SIZE=40,u.MIN_EDGE_LENGTH=1,u.WORLD_BOUNDARY=1e6,u.INITIAL_WORLD_BOUNDARY=u.WORLD_BOUNDARY/1e3,u.WORLD_CENTER_X=1200,u.WORLD_CENTER_Y=900,A.exports=u}),(function(A,P,N){var u=N(2),l=N(8),a=N(9);function e(f,i,g){u.call(this,g),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=g,this.bendpoints=[],this.source=f,this.target=i}e.prototype=Object.create(u.prototype);for(var r in u)e[r]=u[r];e.prototype.getSource=function(){return this.source},e.prototype.getTarget=function(){return this.target},e.prototype.isInterGraph=function(){return this.isInterGraph},e.prototype.getLength=function(){return this.length},e.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},e.prototype.getBendpoints=function(){return this.bendpoints},e.prototype.getLca=function(){return this.lca},e.prototype.getSourceInLca=function(){return this.sourceInLca},e.prototype.getTargetInLca=function(){return this.targetInLca},e.prototype.getOtherEnd=function(f){if(this.source===f)return this.target;if(this.target===f)return this.source;throw"Node is not incident with this edge"},e.prototype.getOtherEndInGraph=function(f,i){for(var g=this.getOtherEnd(f),t=i.getGraphManager().getRoot();;){if(g.getOwner()==i)return g;if(g.getOwner()==t)break;g=g.getOwner().getParent()}return null},e.prototype.updateLength=function(){var f=new Array(4);this.isOverlapingSourceAndTarget=l.getIntersection(this.target.getRect(),this.source.getRect(),f),this.isOverlapingSourceAndTarget||(this.lengthX=f[0]-f[2],this.lengthY=f[1]-f[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},e.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},A.exports=e}),(function(A,P,N){function u(l){this.vGraphObject=l}A.exports=u}),(function(A,P,N){var u=N(2),l=N(10),a=N(13),e=N(0),r=N(16),f=N(5);function i(t,s,o,c){o==null&&c==null&&(c=s),u.call(this,c),t.graphManager!=null&&(t=t.graphManager),this.estimatedSize=l.MIN_VALUE,this.inclusionTreeDepth=l.MAX_VALUE,this.vGraphObject=c,this.edges=[],this.graphManager=t,o!=null&&s!=null?this.rect=new a(s.x,s.y,o.width,o.height):this.rect=new a}i.prototype=Object.create(u.prototype);for(var g in u)i[g]=u[g];i.prototype.getEdges=function(){return this.edges},i.prototype.getChild=function(){return this.child},i.prototype.getOwner=function(){return this.owner},i.prototype.getWidth=function(){return this.rect.width},i.prototype.setWidth=function(t){this.rect.width=t},i.prototype.getHeight=function(){return this.rect.height},i.prototype.setHeight=function(t){this.rect.height=t},i.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},i.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},i.prototype.getCenter=function(){return new f(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},i.prototype.getLocation=function(){return new f(this.rect.x,this.rect.y)},i.prototype.getRect=function(){return this.rect},i.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},i.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},i.prototype.setRect=function(t,s){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=s.width,this.rect.height=s.height},i.prototype.setCenter=function(t,s){this.rect.x=t-this.rect.width/2,this.rect.y=s-this.rect.height/2},i.prototype.setLocation=function(t,s){this.rect.x=t,this.rect.y=s},i.prototype.moveBy=function(t,s){this.rect.x+=t,this.rect.y+=s},i.prototype.getEdgeListToNode=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(c.target==t){if(c.source!=o)throw"Incorrect edge source!";s.push(c)}}),s},i.prototype.getEdgesBetween=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(!(c.source==o||c.target==o))throw"Incorrect edge source and/or target";(c.target==t||c.source==t)&&s.push(c)}),s},i.prototype.getNeighborsList=function(){var t=new Set,s=this;return s.edges.forEach(function(o){if(o.source==s)t.add(o.target);else{if(o.target!=s)throw"Incorrect incidency!";t.add(o.source)}}),t},i.prototype.withChildren=function(){var t=new Set,s,o;if(t.add(this),this.child!=null)for(var c=this.child.getNodes(),h=0;hs?(this.rect.x-=(this.labelWidth-s)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(s+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(o+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>o?(this.rect.y-=(this.labelHeight-o)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(o+this.labelHeight))}}},i.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==l.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},i.prototype.transform=function(t){var s=this.rect.x;s>e.WORLD_BOUNDARY?s=e.WORLD_BOUNDARY:s<-e.WORLD_BOUNDARY&&(s=-e.WORLD_BOUNDARY);var o=this.rect.y;o>e.WORLD_BOUNDARY?o=e.WORLD_BOUNDARY:o<-e.WORLD_BOUNDARY&&(o=-e.WORLD_BOUNDARY);var c=new f(s,o),h=t.inverseTransformPoint(c);this.setLocation(h.x,h.y)},i.prototype.getLeft=function(){return this.rect.x},i.prototype.getRight=function(){return this.rect.x+this.rect.width},i.prototype.getTop=function(){return this.rect.y},i.prototype.getBottom=function(){return this.rect.y+this.rect.height},i.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},A.exports=i}),(function(A,P,N){var u=N(0);function l(){}for(var a in u)l[a]=u[a];l.MAX_ITERATIONS=2500,l.DEFAULT_EDGE_LENGTH=50,l.DEFAULT_SPRING_STRENGTH=.45,l.DEFAULT_REPULSION_STRENGTH=4500,l.DEFAULT_GRAVITY_STRENGTH=.4,l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,l.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,l.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,l.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,l.COOLING_ADAPTATION_FACTOR=.33,l.ADAPTATION_LOWER_NODE_LIMIT=1e3,l.ADAPTATION_UPPER_NODE_LIMIT=5e3,l.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,l.MAX_NODE_DISPLACEMENT=l.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,l.CONVERGENCE_CHECK_PERIOD=100,l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,l.MIN_EDGE_LENGTH=1,l.GRID_CALCULATION_CHECK_PERIOD=10,A.exports=l}),(function(A,P,N){function u(l,a){l==null&&a==null?(this.x=0,this.y=0):(this.x=l,this.y=a)}u.prototype.getX=function(){return this.x},u.prototype.getY=function(){return this.y},u.prototype.setX=function(l){this.x=l},u.prototype.setY=function(l){this.y=l},u.prototype.getDifference=function(l){return new DimensionD(this.x-l.x,this.y-l.y)},u.prototype.getCopy=function(){return new u(this.x,this.y)},u.prototype.translate=function(l){return this.x+=l.width,this.y+=l.height,this},A.exports=u}),(function(A,P,N){var u=N(2),l=N(10),a=N(0),e=N(7),r=N(3),f=N(1),i=N(13),g=N(12),t=N(11);function s(c,h,T){u.call(this,T),this.estimatedSize=l.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,h!=null&&h instanceof e?this.graphManager=h:h!=null&&h instanceof Layout&&(this.graphManager=h.graphManager)}s.prototype=Object.create(u.prototype);for(var o in u)s[o]=u[o];s.prototype.getNodes=function(){return this.nodes},s.prototype.getEdges=function(){return this.edges},s.prototype.getGraphManager=function(){return this.graphManager},s.prototype.getParent=function(){return this.parent},s.prototype.getLeft=function(){return this.left},s.prototype.getRight=function(){return this.right},s.prototype.getTop=function(){return this.top},s.prototype.getBottom=function(){return this.bottom},s.prototype.isConnected=function(){return this.isConnected},s.prototype.add=function(c,h,T){if(h==null&&T==null){var d=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(d)>-1)throw"Node already in graph!";return d.owner=this,this.getNodes().push(d),d}else{var v=c;if(!(this.getNodes().indexOf(h)>-1&&this.getNodes().indexOf(T)>-1))throw"Source or target not in graph!";if(!(h.owner==T.owner&&h.owner==this))throw"Both owners must be this graph!";return h.owner!=T.owner?null:(v.source=h,v.target=T,v.isInterGraph=!1,this.getEdges().push(v),h.edges.push(v),T!=h&&T.edges.push(v),v)}},s.prototype.remove=function(c){var h=c;if(c instanceof r){if(h==null)throw"Node is null!";if(!(h.owner!=null&&h.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var T=h.edges.slice(),d,v=T.length,L=0;L-1&&G>-1))throw"Source and/or target doesn't know this edge!";d.source.edges.splice(C,1),d.target!=d.source&&d.target.edges.splice(G,1);var S=d.source.owner.getEdges().indexOf(d);if(S==-1)throw"Not in owner's edge list!";d.source.owner.getEdges().splice(S,1)}},s.prototype.updateLeftTop=function(){for(var c=l.MAX_VALUE,h=l.MAX_VALUE,T,d,v,L=this.getNodes(),S=L.length,C=0;CT&&(c=T),h>d&&(h=d)}return c==l.MAX_VALUE?null:(L[0].getParent().paddingLeft!=null?v=L[0].getParent().paddingLeft:v=this.margin,this.left=h-v,this.top=c-v,new g(this.left,this.top))},s.prototype.updateBounds=function(c){for(var h=l.MAX_VALUE,T=-l.MAX_VALUE,d=l.MAX_VALUE,v=-l.MAX_VALUE,L,S,C,G,K,X=this.nodes,Q=X.length,O=0;OL&&(h=L),TC&&(d=C),vL&&(h=L),TC&&(d=C),v=this.nodes.length){var Q=0;T.forEach(function(O){O.owner==c&&Q++}),Q==this.nodes.length&&(this.isConnected=!0)}},A.exports=s}),(function(A,P,N){var u,l=N(1);function a(e){u=N(6),this.layout=e,this.graphs=[],this.edges=[]}a.prototype.addRoot=function(){var e=this.layout.newGraph(),r=this.layout.newNode(null),f=this.add(e,r);return this.setRootGraph(f),this.rootGraph},a.prototype.add=function(e,r,f,i,g){if(f==null&&i==null&&g==null){if(e==null)throw"Graph is null!";if(r==null)throw"Parent node is null!";if(this.graphs.indexOf(e)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(e),e.parent!=null)throw"Already has a parent!";if(r.child!=null)throw"Already has a child!";return e.parent=r,r.child=e,e}else{g=f,i=r,f=e;var t=i.getOwner(),s=g.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(s!=null&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==s)return f.isInterGraph=!1,t.add(f,i,g);if(f.isInterGraph=!0,f.source=i,f.target=g,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},a.prototype.remove=function(e){if(e instanceof u){var r=e;if(r.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(r==this.rootGraph||r.parent!=null&&r.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(r.getEdges());for(var i,g=f.length,t=0;t=e.getRight()?r[0]+=Math.min(e.getX()-a.getX(),a.getRight()-e.getRight()):e.getX()<=a.getX()&&e.getRight()>=a.getRight()&&(r[0]+=Math.min(a.getX()-e.getX(),e.getRight()-a.getRight())),a.getY()<=e.getY()&&a.getBottom()>=e.getBottom()?r[1]+=Math.min(e.getY()-a.getY(),a.getBottom()-e.getBottom()):e.getY()<=a.getY()&&e.getBottom()>=a.getBottom()&&(r[1]+=Math.min(a.getY()-e.getY(),e.getBottom()-a.getBottom()));var g=Math.abs((e.getCenterY()-a.getCenterY())/(e.getCenterX()-a.getCenterX()));e.getCenterY()===a.getCenterY()&&e.getCenterX()===a.getCenterX()&&(g=1);var t=g*r[0],s=r[1]/g;r[0]t)return r[0]=f,r[1]=o,r[2]=g,r[3]=X,!1;if(ig)return r[0]=s,r[1]=i,r[2]=G,r[3]=t,!1;if(fg?(r[0]=h,r[1]=T,n=!0):(r[0]=c,r[1]=o,n=!0):p===y&&(f>g?(r[0]=s,r[1]=o,n=!0):(r[0]=d,r[1]=T,n=!0)),-E===y?g>f?(r[2]=K,r[3]=X,m=!0):(r[2]=G,r[3]=C,m=!0):E===y&&(g>f?(r[2]=S,r[3]=C,m=!0):(r[2]=Q,r[3]=X,m=!0)),n&&m)return!1;if(f>g?i>t?(R=this.getCardinalDirection(p,y,4),w=this.getCardinalDirection(E,y,2)):(R=this.getCardinalDirection(-p,y,3),w=this.getCardinalDirection(-E,y,1)):i>t?(R=this.getCardinalDirection(-p,y,1),w=this.getCardinalDirection(-E,y,3)):(R=this.getCardinalDirection(p,y,2),w=this.getCardinalDirection(E,y,4)),!n)switch(R){case 1:W=o,F=f+-L/y,r[0]=F,r[1]=W;break;case 2:F=d,W=i+v*y,r[0]=F,r[1]=W;break;case 3:W=T,F=f+L/y,r[0]=F,r[1]=W;break;case 4:F=h,W=i+-v*y,r[0]=F,r[1]=W;break}if(!m)switch(w){case 1:Z=C,I=g+-rt/y,r[2]=I,r[3]=Z;break;case 2:I=Q,Z=t+O*y,r[2]=I,r[3]=Z;break;case 3:Z=X,I=g+rt/y,r[2]=I,r[3]=Z;break;case 4:I=K,Z=t+-O*y,r[2]=I,r[3]=Z;break}}return!1},l.getCardinalDirection=function(a,e,r){return a>e?r:1+r%4},l.getIntersection=function(a,e,r,f){if(f==null)return this.getIntersection2(a,e,r);var i=a.x,g=a.y,t=e.x,s=e.y,o=r.x,c=r.y,h=f.x,T=f.y,d=void 0,v=void 0,L=void 0,S=void 0,C=void 0,G=void 0,K=void 0,X=void 0,Q=void 0;return L=s-g,C=i-t,K=t*g-i*s,S=T-c,G=o-h,X=h*c-o*T,Q=L*G-S*C,Q===0?null:(d=(C*X-G*K)/Q,v=(S*K-L*X)/Q,new u(d,v))},l.angleOfVector=function(a,e,r,f){var i=void 0;return a!==r?(i=Math.atan((f-e)/(r-a)),r=0){var T=(-o+Math.sqrt(o*o-4*s*c))/(2*s),d=(-o-Math.sqrt(o*o-4*s*c))/(2*s),v=null;return T>=0&&T<=1?[T]:d>=0&&d<=1?[d]:v}else return null},l.HALF_PI=.5*Math.PI,l.ONE_AND_HALF_PI=1.5*Math.PI,l.TWO_PI=2*Math.PI,l.THREE_PI=3*Math.PI,A.exports=l}),(function(A,P,N){function u(){}u.sign=function(l){return l>0?1:l<0?-1:0},u.floor=function(l){return l<0?Math.ceil(l):Math.floor(l)},u.ceil=function(l){return l<0?Math.floor(l):Math.ceil(l)},A.exports=u}),(function(A,P,N){function u(){}u.MAX_VALUE=2147483647,u.MIN_VALUE=-2147483648,A.exports=u}),(function(A,P,N){var u=(function(){function i(g,t){for(var s=0;s"u"?"undefined":u(a);return a==null||e!="object"&&e!="function"},A.exports=l}),(function(A,P,N){function u(o){if(Array.isArray(o)){for(var c=0,h=Array(o.length);c0&&c;){for(L.push(C[0]);L.length>0&&c;){var G=L[0];L.splice(0,1),v.add(G);for(var K=G.getEdges(),d=0;d-1&&C.splice(rt,1)}v=new Set,S=new Map}}return o},s.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],h=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),d=0;d0){for(var T=this.edgeToDummyNodes.get(h),d=0;d=0&&c.splice(X,1);var Q=S.getNeighborsList();Q.forEach(function(n){if(h.indexOf(n)<0){var m=T.get(n),p=m-1;p==1&&G.push(n),T.set(n,p)}})}h=h.concat(G),(c.length==1||c.length==2)&&(d=!0,v=c[0])}return v},s.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=s}),(function(A,P,N){function u(){}u.seed=1,u.x=0,u.nextDouble=function(){return u.x=Math.sin(u.seed++)*1e4,u.x-Math.floor(u.x)},A.exports=u}),(function(A,P,N){var u=N(5);function l(a,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}l.prototype.getWorldOrgX=function(){return this.lworldOrgX},l.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},l.prototype.getWorldOrgY=function(){return this.lworldOrgY},l.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},l.prototype.getWorldExtX=function(){return this.lworldExtX},l.prototype.setWorldExtX=function(a){this.lworldExtX=a},l.prototype.getWorldExtY=function(){return this.lworldExtY},l.prototype.setWorldExtY=function(a){this.lworldExtY=a},l.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},l.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},l.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},l.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},l.prototype.getDeviceExtX=function(){return this.ldeviceExtX},l.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},l.prototype.getDeviceExtY=function(){return this.ldeviceExtY},l.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},l.prototype.transformX=function(a){var e=0,r=this.lworldExtX;return r!=0&&(e=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/r),e},l.prototype.transformY=function(a){var e=0,r=this.lworldExtY;return r!=0&&(e=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/r),e},l.prototype.inverseTransformX=function(a){var e=0,r=this.ldeviceExtX;return r!=0&&(e=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/r),e},l.prototype.inverseTransformY=function(a){var e=0,r=this.ldeviceExtY;return r!=0&&(e=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/r),e},l.prototype.inverseTransformPoint=function(a){var e=new u(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return e},A.exports=l}),(function(A,P,N){function u(t){if(Array.isArray(t)){for(var s=0,o=Array(t.length);sa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(t-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},i.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),s,o=0;o0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,h,T,d=this.getAllNodes(),v;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),v=new Set,o=0;oL||v>L)&&(t.gravitationForceX=-this.gravityConstant*h,t.gravitationForceY=-this.gravityConstant*T)):(L=s.getEstimatedSize()*this.compoundGravityRangeFactor,(d>L||v>L)&&(t.gravitationForceX=-this.gravityConstant*h*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},i.prototype.isConverged=function(){var t,s=!1;return this.totalIterations>this.maxIterations/3&&(s=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=d.length||L>=d[0].length)){for(var S=0;Si}}]),r})();A.exports=e}),(function(A,P,N){function u(){}u.svd=function(l){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=l.length,this.n=l[0].length;var a=Math.min(this.m,this.n);this.s=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(Math.min(this.m+1,this.n)),this.U=(function(Tt){var Ct=function Bt(bt){if(bt.length==0)return 0;for(var zt=[],St=0;St0;)Ct.push(0);return Ct})(this.n),r=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(this.m),f=!0,i=Math.min(this.m-1,this.n),g=Math.max(0,Math.min(this.n-2,this.m)),t=0;t=0;E--)if(this.s[E]!==0){for(var y=E+1;y=0;V--){if((function(Tt,Ct){return Tt&&Ct})(V0;){var q=void 0,It=void 0;for(q=n-2;q>=-1&&q!==-1;q--)if(Math.abs(e[q])<=ht+_*(Math.abs(this.s[q])+Math.abs(this.s[q+1]))){e[q]=0;break}if(q===n-2)It=4;else{var Nt=void 0;for(Nt=n-1;Nt>=q&&Nt!==q;Nt--){var vt=(Nt!==n?Math.abs(e[Nt]):0)+(Nt!==q+1?Math.abs(e[Nt-1]):0);if(Math.abs(this.s[Nt])<=ht+_*vt){this.s[Nt]=0;break}}Nt===q?It=3:Nt===n-1?It=1:(It=2,q=Nt)}switch(q++,It){case 1:{var it=e[n-2];e[n-2]=0;for(var gt=n-2;gt>=q;gt--){var mt=u.hypot(this.s[gt],it),At=this.s[gt]/mt,Ot=it/mt;this.s[gt]=mt,gt!==q&&(it=-Ot*e[gt-1],e[gt-1]=At*e[gt-1]);for(var Et=0;Et=this.s[q+1]);){var Lt=this.s[q];if(this.s[q]=this.s[q+1],this.s[q+1]=Lt,qMath.abs(a)?(e=a/l,e=Math.abs(l)*Math.sqrt(1+e*e)):a!=0?(e=l/a,e=Math.abs(a)*Math.sqrt(1+e*e)):e=0,e},A.exports=u}),(function(A,P,N){var u=(function(){function e(r,f){for(var i=0;i2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;l(this,e),this.sequence1=r,this.sequence2=f,this.match_score=i,this.mismatch_penalty=g,this.gap_penalty=t,this.iMax=r.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;r--){var f=this.listeners[r];f.event===a&&f.callback===e&&this.listeners.splice(r,1)}},l.emit=function(a,e){for(var r=0;r{var P={45:((a,e,r)=>{var f={};f.layoutBase=r(551),f.CoSEConstants=r(806),f.CoSEEdge=r(767),f.CoSEGraph=r(880),f.CoSEGraphManager=r(578),f.CoSELayout=r(765),f.CoSENode=r(991),f.ConstraintHandler=r(902),a.exports=f}),806:((a,e,r)=>{var f=r(551).FDLayoutConstants;function i(){}for(var g in f)i[g]=f[g];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,i.ENFORCE_CONSTRAINTS=!0,i.APPLY_LAYOUT=!0,i.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,i.TREE_REDUCTION_ON_INCREMENTAL=!0,i.PURE_INCREMENTAL=i.DEFAULT_INCREMENTAL,a.exports=i}),767:((a,e,r)=>{var f=r(551).FDLayoutEdge;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];a.exports=i}),880:((a,e,r)=>{var f=r(551).LGraph;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];a.exports=i}),578:((a,e,r)=>{var f=r(551).LGraphManager;function i(t){f.call(this,t)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];a.exports=i}),765:((a,e,r)=>{var f=r(551).FDLayout,i=r(578),g=r(880),t=r(991),s=r(767),o=r(806),c=r(902),h=r(551).FDLayoutConstants,T=r(551).LayoutConstants,d=r(551).Point,v=r(551).PointD,L=r(551).DimensionD,S=r(551).Layout,C=r(551).Integer,G=r(551).IGeometry,K=r(551).LGraph,X=r(551).Transform,Q=r(551).LinkedList;function O(){f.call(this),this.toBeTiled={},this.constraints={}}O.prototype=Object.create(f.prototype);for(var rt in f)O[rt]=f[rt];O.prototype.newGraphManager=function(){var n=new i(this);return this.graphManager=n,n},O.prototype.newGraph=function(n){return new g(null,this.graphManager,n)},O.prototype.newNode=function(n){return new t(this.graphManager,n)},O.prototype.newEdge=function(n){return new s(null,null,n)},O.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=h.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=h.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=h.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},O.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/h.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},O.prototype.layout=function(){var n=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return n&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},O.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(R){return m.has(R)});this.graphManager.setAllNodesToApplyGravitation(p)}}else{var n=this.getFlatForest();if(n.length>0)this.positionNodesRadially(n);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(E){return m.has(E)});this.graphManager.setAllNodesToApplyGravitation(p),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},O.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%h.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var n=new Set(this.getAllNodes()),m=this.nodesWithGravity.filter(function(y){return n.has(y)});this.graphManager.setAllNodesToApplyGravitation(m),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var p=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(p,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},O.prototype.getPositionsData=function(){for(var n=this.graphManager.getAllNodes(),m={},p=0;p0&&this.updateDisplacements();for(var p=0;p0&&(E.fixedNodeWeight=R)}}if(this.constraints.relativePlacementConstraint){var w=new Map,F=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(M){n.fixedNodesOnHorizontal.add(M),n.fixedNodesOnVertical.add(M)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var W=this.constraints.alignmentConstraint.vertical,p=0;p=2*M.length/3;_--)H=Math.floor(Math.random()*(_+1)),B=M[_],M[_]=M[H],M[H]=B;return M},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(M){if(M.left){var H=w.has(M.left)?w.get(M.left):M.left,B=w.has(M.right)?w.get(M.right):M.right;n.nodesInRelativeHorizontal.includes(H)||(n.nodesInRelativeHorizontal.push(H),n.nodeToRelativeConstraintMapHorizontal.set(H,[]),n.dummyToNodeForVerticalAlignment.has(H)?n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(H).getCenterX())),n.nodesInRelativeHorizontal.includes(B)||(n.nodesInRelativeHorizontal.push(B),n.nodeToRelativeConstraintMapHorizontal.set(B,[]),n.dummyToNodeForVerticalAlignment.has(B)?n.nodeToTempPositionMapHorizontal.set(B,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(B)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(B,n.idToNodeMap.get(B).getCenterX())),n.nodeToRelativeConstraintMapHorizontal.get(H).push({right:B,gap:M.gap}),n.nodeToRelativeConstraintMapHorizontal.get(B).push({left:H,gap:M.gap})}else{var _=F.has(M.top)?F.get(M.top):M.top,ht=F.has(M.bottom)?F.get(M.bottom):M.bottom;n.nodesInRelativeVertical.includes(_)||(n.nodesInRelativeVertical.push(_),n.nodeToRelativeConstraintMapVertical.set(_,[]),n.dummyToNodeForHorizontalAlignment.has(_)?n.nodeToTempPositionMapVertical.set(_,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(_)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(_,n.idToNodeMap.get(_).getCenterY())),n.nodesInRelativeVertical.includes(ht)||(n.nodesInRelativeVertical.push(ht),n.nodeToRelativeConstraintMapVertical.set(ht,[]),n.dummyToNodeForHorizontalAlignment.has(ht)?n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(ht)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(ht).getCenterY())),n.nodeToRelativeConstraintMapVertical.get(_).push({bottom:ht,gap:M.gap}),n.nodeToRelativeConstraintMapVertical.get(ht).push({top:_,gap:M.gap})}});else{var Z=new Map,V=new Map;this.constraints.relativePlacementConstraint.forEach(function(M){if(M.left){var H=w.has(M.left)?w.get(M.left):M.left,B=w.has(M.right)?w.get(M.right):M.right;Z.has(H)?Z.get(H).push(B):Z.set(H,[B]),Z.has(B)?Z.get(B).push(H):Z.set(B,[H])}else{var _=F.has(M.top)?F.get(M.top):M.top,ht=F.has(M.bottom)?F.get(M.bottom):M.bottom;V.has(_)?V.get(_).push(ht):V.set(_,[ht]),V.has(ht)?V.get(ht).push(_):V.set(ht,[_])}});var Y=function(H,B){var _=[],ht=[],q=new Q,It=new Set,Nt=0;return H.forEach(function(vt,it){if(!It.has(it)){_[Nt]=[],ht[Nt]=!1;var gt=it;for(q.push(gt),It.add(gt),_[Nt].push(gt);q.length!=0;){gt=q.shift(),B.has(gt)&&(ht[Nt]=!0);var mt=H.get(gt);mt.forEach(function(At){It.has(At)||(q.push(At),It.add(At),_[Nt].push(At))})}Nt++}}),{components:_,isFixed:ht}},et=Y(Z,n.fixedNodesOnHorizontal);this.componentsOnHorizontal=et.components,this.fixedComponentsOnHorizontal=et.isFixed;var z=Y(V,n.fixedNodesOnVertical);this.componentsOnVertical=z.components,this.fixedComponentsOnVertical=z.isFixed}}},O.prototype.updateDisplacements=function(){var n=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(z){var M=n.idToNodeMap.get(z.nodeId);M.displacementX=0,M.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var m=this.constraints.alignmentConstraint.vertical,p=0;p1){var F;for(F=0;FE&&(E=Math.floor(w.y)),R=Math.floor(w.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new v(T.WORLD_CENTER_X-w.x/2,T.WORLD_CENTER_Y-w.y/2))},O.radialLayout=function(n,m,p){var E=Math.max(this.maxDiagonalInTree(n),o.DEFAULT_RADIAL_SEPARATION);O.branchRadialLayout(m,null,0,359,0,E);var y=K.calculateBounds(n),R=new X;R.setDeviceOrgX(y.getMinX()),R.setDeviceOrgY(y.getMinY()),R.setWorldOrgX(p.x),R.setWorldOrgY(p.y);for(var w=0;w1;){var B=H[0];H.splice(0,1);var _=V.indexOf(B);_>=0&&V.splice(_,1),z--,Y--}m!=null?M=(V.indexOf(H[0])+1)%z:M=0;for(var ht=Math.abs(E-p)/Y,q=M;et!=Y;q=++q%z){var It=V[q].getOtherEnd(n);if(It!=m){var Nt=(p+et*ht)%360,vt=(Nt+ht)%360;O.branchRadialLayout(It,n,Nt,vt,y+R,R),et++}}},O.maxDiagonalInTree=function(n){for(var m=C.MIN_VALUE,p=0;pm&&(m=y)}return m},O.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},O.prototype.groupZeroDegreeMembers=function(){var n=this,m={};this.memberGroups={},this.idToDummyNode={};for(var p=[],E=this.graphManager.getAllNodes(),y=0;y"u"&&(m[F]=[]),m[F]=m[F].concat(R)}Object.keys(m).forEach(function(W){if(m[W].length>1){var I="DummyCompound_"+W;n.memberGroups[I]=m[W];var Z=m[W][0].getParent(),V=new t(n.graphManager);V.id=I,V.paddingLeft=Z.paddingLeft||0,V.paddingRight=Z.paddingRight||0,V.paddingBottom=Z.paddingBottom||0,V.paddingTop=Z.paddingTop||0,n.idToDummyNode[I]=V;var Y=n.getGraphManager().add(n.newGraph(),V),et=Z.getChild();et.add(V);for(var z=0;zy?(E.rect.x-=(E.labelWidth-y)/2,E.setWidth(E.labelWidth),E.labelMarginLeft=(E.labelWidth-y)/2):E.labelPosHorizontal=="right"&&E.setWidth(y+E.labelWidth)),E.labelHeight&&(E.labelPosVertical=="top"?(E.rect.y-=E.labelHeight,E.setHeight(R+E.labelHeight),E.labelMarginTop=E.labelHeight):E.labelPosVertical=="center"&&E.labelHeight>R?(E.rect.y-=(E.labelHeight-R)/2,E.setHeight(E.labelHeight),E.labelMarginTop=(E.labelHeight-R)/2):E.labelPosVertical=="bottom"&&E.setHeight(R+E.labelHeight))}})},O.prototype.repopulateCompounds=function(){for(var n=this.compoundOrder.length-1;n>=0;n--){var m=this.compoundOrder[n],p=m.id,E=m.paddingLeft,y=m.paddingTop,R=m.labelMarginLeft,w=m.labelMarginTop;this.adjustLocations(this.tiledMemberPack[p],m.rect.x,m.rect.y,E,y,R,w)}},O.prototype.repopulateZeroDegreeMembers=function(){var n=this,m=this.tiledZeroDegreePack;Object.keys(m).forEach(function(p){var E=n.idToDummyNode[p],y=E.paddingLeft,R=E.paddingTop,w=E.labelMarginLeft,F=E.labelMarginTop;n.adjustLocations(m[p],E.rect.x,E.rect.y,y,R,w,F)})},O.prototype.getToBeTiled=function(n){var m=n.id;if(this.toBeTiled[m]!=null)return this.toBeTiled[m];var p=n.getChild();if(p==null)return this.toBeTiled[m]=!1,!1;for(var E=p.getNodes(),y=0;y0)return this.toBeTiled[m]=!1,!1;if(R.getChild()==null){this.toBeTiled[R.id]=!1;continue}if(!this.getToBeTiled(R))return this.toBeTiled[m]=!1,!1}return this.toBeTiled[m]=!0,!0},O.prototype.getNodeDegree=function(n){n.id;for(var m=n.getEdges(),p=0,E=0;EZ&&(Z=Y.rect.height)}p+=Z+n.verticalPadding}},O.prototype.tileCompoundMembers=function(n,m){var p=this;this.tiledMemberPack=[],Object.keys(n).forEach(function(E){var y=m[E];if(p.tiledMemberPack[E]=p.tileNodes(n[E],y.paddingLeft+y.paddingRight),y.rect.width=p.tiledMemberPack[E].width,y.rect.height=p.tiledMemberPack[E].height,y.setCenter(p.tiledMemberPack[E].centerX,p.tiledMemberPack[E].centerY),y.labelMarginLeft=0,y.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var R=y.rect.width,w=y.rect.height;y.labelWidth&&(y.labelPosHorizontal=="left"?(y.rect.x-=y.labelWidth,y.setWidth(R+y.labelWidth),y.labelMarginLeft=y.labelWidth):y.labelPosHorizontal=="center"&&y.labelWidth>R?(y.rect.x-=(y.labelWidth-R)/2,y.setWidth(y.labelWidth),y.labelMarginLeft=(y.labelWidth-R)/2):y.labelPosHorizontal=="right"&&y.setWidth(R+y.labelWidth)),y.labelHeight&&(y.labelPosVertical=="top"?(y.rect.y-=y.labelHeight,y.setHeight(w+y.labelHeight),y.labelMarginTop=y.labelHeight):y.labelPosVertical=="center"&&y.labelHeight>w?(y.rect.y-=(y.labelHeight-w)/2,y.setHeight(y.labelHeight),y.labelMarginTop=(y.labelHeight-w)/2):y.labelPosVertical=="bottom"&&y.setHeight(w+y.labelHeight))}})},O.prototype.tileNodes=function(n,m){var p=this.tileNodesByFavoringDim(n,m,!0),E=this.tileNodesByFavoringDim(n,m,!1),y=this.getOrgRatio(p),R=this.getOrgRatio(E),w;return RF&&(F=z.getWidth())});var W=R/y,I=w/y,Z=Math.pow(p-E,2)+4*(W+E)*(I+p)*y,V=(E-p+Math.sqrt(Z))/(2*(W+E)),Y;m?(Y=Math.ceil(V),Y==V&&Y++):Y=Math.floor(V);var et=Y*(W+E)-E;return F>et&&(et=F),et+=E*2,et},O.prototype.tileNodesByFavoringDim=function(n,m,p){var E=o.TILING_PADDING_VERTICAL,y=o.TILING_PADDING_HORIZONTAL,R=o.TILING_COMPARE_BY,w={rows:[],rowWidth:[],rowHeight:[],width:0,height:m,verticalPadding:E,horizontalPadding:y,centerX:0,centerY:0};R&&(w.idealRowWidth=this.calcIdealRowWidth(n,p));var F=function(M){return M.rect.width*M.rect.height},W=function(M,H){return F(H)-F(M)};n.sort(function(z,M){var H=W;return w.idealRowWidth?(H=R,H(z.id,M.id)):H(z,M)});for(var I=0,Z=0,V=0;V0&&(w+=n.horizontalPadding),n.rowWidth[p]=w,n.width0&&(F+=n.verticalPadding);var W=0;F>n.rowHeight[p]&&(W=n.rowHeight[p],n.rowHeight[p]=F,W=n.rowHeight[p]-W),n.height+=W,n.rows[p].push(m)},O.prototype.getShortestRowIndex=function(n){for(var m=-1,p=Number.MAX_VALUE,E=0;Ep&&(m=E,p=n.rowWidth[E]);return m},O.prototype.canAddHorizontal=function(n,m,p){if(n.idealRowWidth){var E=n.rows.length-1,y=n.rowWidth[E];return y+m+n.horizontalPadding<=n.idealRowWidth}var R=this.getShortestRowIndex(n);if(R<0)return!0;var w=n.rowWidth[R];if(w+n.horizontalPadding+m<=n.width)return!0;var F=0;n.rowHeight[R]0&&(F=p+n.verticalPadding-n.rowHeight[R]);var W;n.width-w>=m+n.horizontalPadding?W=(n.height+F)/(w+m+n.horizontalPadding):W=(n.height+F)/n.width,F=p+n.verticalPadding;var I;return n.widthR&&m!=p){E.splice(-1,1),n.rows[p].push(y),n.rowWidth[m]=n.rowWidth[m]-R,n.rowWidth[p]=n.rowWidth[p]+R,n.width=n.rowWidth[instance.getLongestRowIndex(n)];for(var w=Number.MIN_VALUE,F=0;Fw&&(w=E[F].height);m>0&&(w+=n.verticalPadding);var W=n.rowHeight[m]+n.rowHeight[p];n.rowHeight[m]=w,n.rowHeight[p]0)for(var et=y;et<=R;et++)Y[0]+=this.grid[et][w-1].length+this.grid[et][w].length-1;if(R0)for(var et=w;et<=F;et++)Y[3]+=this.grid[y-1][et].length+this.grid[y][et].length-1;for(var z=C.MAX_VALUE,M,H,B=0;B{var f=r(551).FDLayoutNode,i=r(551).IMath;function g(s,o,c,h){f.call(this,s,o,c,h)}g.prototype=Object.create(f.prototype);for(var t in f)g[t]=f[t];g.prototype.calculateDisplacement=function(){var s=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementX=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementY=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},g.prototype.propogateDisplacementToChildren=function(s,o){for(var c=this.getChild().getNodes(),h,T=0;T{function f(c){if(Array.isArray(c)){for(var h=0,T=Array(c.length);h0){var Lt=0;ot.forEach(function(st){$=="horizontal"?(tt.set(st,d.has(st)?v[d.get(st)]:k.get(st)),Lt+=tt.get(st)):(tt.set(st,d.has(st)?L[d.get(st)]:k.get(st)),Lt+=tt.get(st))}),Lt=Lt/ot.length,lt.forEach(function(st){J.has(st)||tt.set(st,Lt)})}else{var ft=0;lt.forEach(function(st){$=="horizontal"?ft+=d.has(st)?v[d.get(st)]:k.get(st):ft+=d.has(st)?L[d.get(st)]:k.get(st)}),ft=ft/lt.length,lt.forEach(function(st){tt.set(st,ft)})}});for(var wt=function(){var ot=ut.shift(),Lt=U.get(ot);Lt.forEach(function(ft){if(tt.get(ft.id)st&&(st=kt),KtXt&&(Xt=Kt)}}catch(ee){Ct=!0,Bt=ee}finally{try{!Tt&&bt.return&&bt.return()}finally{if(Ct)throw Bt}}var ce=(Lt+st)/2-(ft+Xt)/2,Qt=!0,jt=!1,_t=void 0;try{for(var Jt=lt[Symbol.iterator](),oe;!(Qt=(oe=Jt.next()).done);Qt=!0){var te=oe.value;tt.set(te,tt.get(te)+ce)}}catch(ee){jt=!0,_t=ee}finally{try{!Qt&&Jt.return&&Jt.return()}finally{if(jt)throw _t}}})}return tt},rt=function(U){var $=0,J=0,k=0,at=0;if(U.forEach(function(j){j.left?v[d.get(j.left)]-v[d.get(j.right)]>=0?$++:J++:L[d.get(j.top)]-L[d.get(j.bottom)]>=0?k++:at++}),$>J&&k>at)for(var ct=0;ctJ)for(var nt=0;ntat)for(var tt=0;tt1)h.fixedNodeConstraint.forEach(function(b,U){E[U]=[b.position.x,b.position.y],y[U]=[v[d.get(b.nodeId)],L[d.get(b.nodeId)]]}),R=!0;else if(h.alignmentConstraint)(function(){var b=0;if(h.alignmentConstraint.vertical){for(var U=h.alignmentConstraint.vertical,$=function(tt){var j=new Set;U[tt].forEach(function(pt){j.add(pt)});var ut=new Set([].concat(f(j)).filter(function(pt){return F.has(pt)})),wt=void 0;ut.size>0?wt=v[d.get(ut.values().next().value)]:wt=Q(j).x,U[tt].forEach(function(pt){E[b]=[wt,L[d.get(pt)]],y[b]=[v[d.get(pt)],L[d.get(pt)]],b++})},J=0;J0?wt=v[d.get(ut.values().next().value)]:wt=Q(j).y,k[tt].forEach(function(pt){E[b]=[v[d.get(pt)],wt],y[b]=[v[d.get(pt)],L[d.get(pt)]],b++})},ct=0;ctV&&(V=Z[et].length,Y=et);if(V0){var Et={x:0,y:0};h.fixedNodeConstraint.forEach(function(b,U){var $={x:v[d.get(b.nodeId)],y:L[d.get(b.nodeId)]},J=b.position,k=X(J,$);Et.x+=k.x,Et.y+=k.y}),Et.x/=h.fixedNodeConstraint.length,Et.y/=h.fixedNodeConstraint.length,v.forEach(function(b,U){v[U]+=Et.x}),L.forEach(function(b,U){L[U]+=Et.y}),h.fixedNodeConstraint.forEach(function(b){v[d.get(b.nodeId)]=b.position.x,L[d.get(b.nodeId)]=b.position.y})}if(h.alignmentConstraint){if(h.alignmentConstraint.vertical)for(var Dt=h.alignmentConstraint.vertical,Rt=function(U){var $=new Set;Dt[U].forEach(function(at){$.add(at)});var J=new Set([].concat(f($)).filter(function(at){return F.has(at)})),k=void 0;J.size>0?k=v[d.get(J.values().next().value)]:k=Q($).x,$.forEach(function(at){F.has(at)||(v[d.get(at)]=k)})},Ht=0;Ht0?k=L[d.get(J.values().next().value)]:k=Q($).y,$.forEach(function(at){F.has(at)||(L[d.get(at)]=k)})},Ft=0;Ft{a.exports=A})},N={};function u(a){var e=N[a];if(e!==void 0)return e.exports;var r=N[a]={exports:{}};return P[a](r,r.exports,u),r.exports}var l=u(45);return l})()})})(le)),le.exports}var vr=he.exports,De;function pr(){return De||(De=1,(function(D,x){(function(P,N){D.exports=N(dr())})(vr,function(A){return(()=>{var P={658:(a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(e){for(var r=arguments.length,f=Array(r>1?r-1:0),i=1;i{var f=(function(){function t(s,o){var c=[],h=!0,T=!1,d=void 0;try{for(var v=s[Symbol.iterator](),L;!(h=(L=v.next()).done)&&(c.push(L.value),!(o&&c.length===o));h=!0);}catch(S){T=!0,d=S}finally{try{!h&&v.return&&v.return()}finally{if(T)throw d}}return c}return function(s,o){if(Array.isArray(s))return s;if(Symbol.iterator in Object(s))return t(s,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),i=r(140).layoutBase.LinkedList,g={};g.getTopMostNodes=function(t){for(var s={},o=0;o0&&R.merge(I)});for(var w=0;w1){L=d[0],S=L.connectedEdges().length,d.forEach(function(y){y.connectedEdges().length0&&c.set("dummy"+(c.size+1),K),X},g.relocateComponent=function(t,s,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var v=!0,L=!1,S=void 0;try{for(var C=s.nodeIndexes[Symbol.iterator](),G;!(v=(G=C.next()).done);v=!0){var K=G.value,X=f(K,2),Q=X[0],O=X[1],rt=o.cy.getElementById(Q);if(rt){var n=rt.boundingBox(),m=s.xCoords[O]-n.w/2,p=s.xCoords[O]+n.w/2,E=s.yCoords[O]-n.h/2,y=s.yCoords[O]+n.h/2;mh&&(h=p),Ed&&(d=y)}}}catch(I){L=!0,S=I}finally{try{!v&&C.return&&C.return()}finally{if(L)throw S}}var R=t.x-(h+c)/2,w=t.y-(d+T)/2;s.xCoords=s.xCoords.map(function(I){return I+R}),s.yCoords=s.yCoords.map(function(I){return I+w})}else{Object.keys(s).forEach(function(I){var Z=s[I],V=Z.getRect().x,Y=Z.getRect().x+Z.getRect().width,et=Z.getRect().y,z=Z.getRect().y+Z.getRect().height;Vh&&(h=Y),etd&&(d=z)});var F=t.x-(h+c)/2,W=t.y-(d+T)/2;Object.keys(s).forEach(function(I){var Z=s[I];Z.setCenter(Z.getCenterX()+F,Z.getCenterY()+W)})}}},g.calcBoundingBox=function(t,s,o,c){for(var h=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,d=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,L=void 0,S=void 0,C=void 0,G=void 0,K=t.descendants().not(":parent"),X=K.length,Q=0;QL&&(h=L),TC&&(d=C),v{var f=r(548),i=r(140).CoSELayout,g=r(140).CoSENode,t=r(140).layoutBase.PointD,s=r(140).layoutBase.DimensionD,o=r(140).layoutBase.LayoutConstants,c=r(140).layoutBase.FDLayoutConstants,h=r(140).CoSEConstants,T=function(v,L){var S=v.cy,C=v.eles,G=C.nodes(),K=C.edges(),X=void 0,Q=void 0,O=void 0,rt={};v.randomize&&(X=L.nodeIndexes,Q=L.xCoords,O=L.yCoords);var n=function(I){return typeof I=="function"},m=function(I,Z){return n(I)?I(Z):I},p=f.calcParentsWithoutChildren(S,C),E=function W(I,Z,V,Y){for(var et=Z.length,z=0;z0){var q=void 0;q=V.getGraphManager().add(V.newGraph(),B),W(q,H,V,Y)}}},y=function(I,Z,V){for(var Y=0,et=0,z=0;z0?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=Y/et:n(v.idealEdgeLength)?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=v.idealEdgeLength,h.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,h.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},R=function(I,Z){Z.fixedNodeConstraint&&(I.constraints.fixedNodeConstraint=Z.fixedNodeConstraint),Z.alignmentConstraint&&(I.constraints.alignmentConstraint=Z.alignmentConstraint),Z.relativePlacementConstraint&&(I.constraints.relativePlacementConstraint=Z.relativePlacementConstraint)};v.nestingFactor!=null&&(h.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=v.nestingFactor),v.gravity!=null&&(h.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=v.gravity),v.numIter!=null&&(h.MAX_ITERATIONS=c.MAX_ITERATIONS=v.numIter),v.gravityRange!=null&&(h.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=v.gravityRange),v.gravityCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=v.gravityCompound),v.gravityRangeCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=v.gravityRangeCompound),v.initialEnergyOnIncremental!=null&&(h.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=v.initialEnergyOnIncremental),v.tilingCompareBy!=null&&(h.TILING_COMPARE_BY=v.tilingCompareBy),v.quality=="proof"?o.QUALITY=2:o.QUALITY=0,h.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=v.nodeDimensionsIncludeLabels,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!v.randomize,h.ANIMATE=c.ANIMATE=o.ANIMATE=v.animate,h.TILE=v.tile,h.TILING_PADDING_VERTICAL=typeof v.tilingPaddingVertical=="function"?v.tilingPaddingVertical.call():v.tilingPaddingVertical,h.TILING_PADDING_HORIZONTAL=typeof v.tilingPaddingHorizontal=="function"?v.tilingPaddingHorizontal.call():v.tilingPaddingHorizontal,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,h.PURE_INCREMENTAL=!v.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=v.uniformNodeDimensions,v.step=="transformed"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!1),v.step=="enforced"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!1),v.step=="cose"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!0),v.step=="all"&&(v.randomize?h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0),v.fixedNodeConstraint||v.alignmentConstraint||v.relativePlacementConstraint?h.TREE_REDUCTION_ON_INCREMENTAL=!1:h.TREE_REDUCTION_ON_INCREMENTAL=!0;var w=new i,F=w.newGraphManager();return E(F.addRoot(),f.getTopMostNodes(G),w,v),y(w,F,K),R(w,v),w.runLayout(),rt};a.exports={coseLayout:T}}),212:((a,e,r)=>{var f=(function(){function v(L,S){for(var C=0;C0)if(p){var R=t.getTopMostNodes(C.eles.nodes());if(O=t.connectComponents(G,C.eles,R),O.forEach(function(vt){var it=vt.boundingBox();rt.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),C.randomize&&O.forEach(function(vt){C.eles=vt,X.push(o(C))}),C.quality=="default"||C.quality=="proof"){var w=G.collection();if(C.tile){var F=new Map,W=[],I=[],Z=0,V={nodeIndexes:F,xCoords:W,yCoords:I},Y=[];if(O.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(gt,mt){w.merge(vt.nodes()[mt]),gt.isParent()||(V.nodeIndexes.set(vt.nodes()[mt].id(),Z++),V.xCoords.push(vt.nodes()[0].position().x),V.yCoords.push(vt.nodes()[0].position().y))}),Y.push(it))}),w.length>1){var et=w.boundingBox();rt.push({x:et.x1+et.w/2,y:et.y1+et.h/2}),O.push(w),X.push(V);for(var z=Y.length-1;z>=0;z--)O.splice(Y[z],1),X.splice(Y[z],1),rt.splice(Y[z],1)}}O.forEach(function(vt,it){C.eles=vt,Q.push(h(C,X[it])),t.relocateComponent(rt[it],Q[it],C)})}else O.forEach(function(vt,it){t.relocateComponent(rt[it],X[it],C)});var M=new Set;if(O.length>1){var H=[],B=K.filter(function(vt){return vt.css("display")=="none"});O.forEach(function(vt,it){var gt=void 0;if(C.quality=="draft"&&(gt=X[it].nodeIndexes),vt.nodes().not(B).length>0){var mt={};mt.edges=[],mt.nodes=[];var At=void 0;vt.nodes().not(B).forEach(function(Ot){if(C.quality=="draft")if(!Ot.isParent())At=gt.get(Ot.id()),mt.nodes.push({x:X[it].xCoords[At]-Ot.boundingbox().w/2,y:X[it].yCoords[At]-Ot.boundingbox().h/2,width:Ot.boundingbox().w,height:Ot.boundingbox().h});else{var Et=t.calcBoundingBox(Ot,X[it].xCoords,X[it].yCoords,gt);mt.nodes.push({x:Et.topLeftX,y:Et.topLeftY,width:Et.width,height:Et.height})}else Q[it][Ot.id()]&&mt.nodes.push({x:Q[it][Ot.id()].getLeft(),y:Q[it][Ot.id()].getTop(),width:Q[it][Ot.id()].getWidth(),height:Q[it][Ot.id()].getHeight()})}),vt.edges().forEach(function(Ot){var Et=Ot.source(),Dt=Ot.target();if(Et.css("display")!="none"&&Dt.css("display")!="none")if(C.quality=="draft"){var Rt=gt.get(Et.id()),Ht=gt.get(Dt.id()),Ut=[],Pt=[];if(Et.isParent()){var Ft=t.calcBoundingBox(Et,X[it].xCoords,X[it].yCoords,gt);Ut.push(Ft.topLeftX+Ft.width/2),Ut.push(Ft.topLeftY+Ft.height/2)}else Ut.push(X[it].xCoords[Rt]),Ut.push(X[it].yCoords[Rt]);if(Dt.isParent()){var Yt=t.calcBoundingBox(Dt,X[it].xCoords,X[it].yCoords,gt);Pt.push(Yt.topLeftX+Yt.width/2),Pt.push(Yt.topLeftY+Yt.height/2)}else Pt.push(X[it].xCoords[Ht]),Pt.push(X[it].yCoords[Ht]);mt.edges.push({startX:Ut[0],startY:Ut[1],endX:Pt[0],endY:Pt[1]})}else Q[it][Et.id()]&&Q[it][Dt.id()]&&mt.edges.push({startX:Q[it][Et.id()].getCenterX(),startY:Q[it][Et.id()].getCenterY(),endX:Q[it][Dt.id()].getCenterX(),endY:Q[it][Dt.id()].getCenterY()})}),mt.nodes.length>0&&(H.push(mt),M.add(it))}});var _=m.packComponents(H,C.randomize).shifts;if(C.quality=="draft")X.forEach(function(vt,it){var gt=vt.xCoords.map(function(At){return At+_[it].dx}),mt=vt.yCoords.map(function(At){return At+_[it].dy});vt.xCoords=gt,vt.yCoords=mt});else{var ht=0;M.forEach(function(vt){Object.keys(Q[vt]).forEach(function(it){var gt=Q[vt][it];gt.setCenter(gt.getCenterX()+_[ht].dx,gt.getCenterY()+_[ht].dy)}),ht++})}}}else{var E=C.eles.boundingBox();if(rt.push({x:E.x1+E.w/2,y:E.y1+E.h/2}),C.randomize){var y=o(C);X.push(y)}C.quality=="default"||C.quality=="proof"?(Q.push(h(C,X[0])),t.relocateComponent(rt[0],Q[0],C)):t.relocateComponent(rt[0],X[0],C)}var q=function(it,gt){if(C.quality=="default"||C.quality=="proof"){typeof it=="number"&&(it=gt);var mt=void 0,At=void 0,Ot=it.data("id");return Q.forEach(function(Dt){Ot in Dt&&(mt={x:Dt[Ot].getRect().getCenterX(),y:Dt[Ot].getRect().getCenterY()},At=Dt[Ot])}),C.nodeDimensionsIncludeLabels&&(At.labelWidth&&(At.labelPosHorizontal=="left"?mt.x+=At.labelWidth/2:At.labelPosHorizontal=="right"&&(mt.x-=At.labelWidth/2)),At.labelHeight&&(At.labelPosVertical=="top"?mt.y+=At.labelHeight/2:At.labelPosVertical=="bottom"&&(mt.y-=At.labelHeight/2))),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}else{var Et=void 0;return X.forEach(function(Dt){var Rt=Dt.nodeIndexes.get(it.id());Rt!=null&&(Et={x:Dt.xCoords[Rt],y:Dt.yCoords[Rt]})}),Et==null&&(Et={x:it.position("x"),y:it.position("y")}),{x:Et.x,y:Et.y}}};if(C.quality=="default"||C.quality=="proof"||C.randomize){var It=t.calcParentsWithoutChildren(G,K),Nt=K.filter(function(vt){return vt.css("display")=="none"});C.eles=K.not(Nt),K.nodes().not(":parent").not(Nt).layoutPositions(S,C,q),It.length>0&&It.forEach(function(vt){vt.position(q(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),v})();a.exports=d}),657:((a,e,r)=>{var f=r(548),i=r(140).layoutBase.Matrix,g=r(140).layoutBase.SVD,t=function(o){var c=o.cy,h=o.eles,T=h.nodes(),d=h.nodes(":parent"),v=new Map,L=new Map,S=new Map,C=[],G=[],K=[],X=[],Q=[],O=[],rt=[],n=[],m=void 0,p=1e8,E=1e-9,y=o.piTol,R=o.samplingType,w=o.nodeSeparation,F=void 0,W=function(){for(var U=0,$=0,J=!1;$=at;){nt=k[at++];for(var xt=C[nt],lt=0;ltut&&(ut=Q[Lt],wt=Lt)}return wt},Z=function(U){var $=void 0;if(U){$=Math.floor(Math.random()*m);for(var k=0;k=1)break;j=tt}for(var pt=0;pt=1)break;j=tt}for(var lt=0;lt0&&($.isParent()?C[U].push(S.get($.id())):C[U].push($.id()))})});var Nt=function(U){var $=L.get(U),J=void 0;v.get(U).forEach(function(k){c.getElementById(k).isParent()?J=S.get(k):J=k,C[$].push(J),C[L.get(J)].push(U)})},vt=!0,it=!1,gt=void 0;try{for(var mt=v.keys()[Symbol.iterator](),At;!(vt=(At=mt.next()).done);vt=!0){var Ot=At.value;Nt(Ot)}}catch(b){it=!0,gt=b}finally{try{!vt&&mt.return&&mt.return()}finally{if(it)throw gt}}m=L.size;var Et=void 0;if(m>2){F=m{var f=r(212),i=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&i(cytoscape),a.exports=i}),140:(a=>{a.exports=A})},N={};function u(a){var e=N[a];if(e!==void 0)return e.exports;var r=N[a]={exports:{}};return P[a](r,r.exports,u),r.exports}var l=u(579);return l})()})})(he)),he.exports}var yr=pr();const Er=fr(yr);var xe={L:"left",R:"right",T:"top",B:"bottom"},Ie={L:dt(D=>`${D},${D/2} 0,${D} 0,0`,"L"),R:dt(D=>`0,${D/2} ${D},0 ${D},${D}`,"R"),T:dt(D=>`0,0 ${D},0 ${D/2},${D}`,"T"),B:dt(D=>`${D/2},0 ${D},${D} 0,${D}`,"B")},se={L:dt((D,x)=>D-x+2,"L"),R:dt((D,x)=>D-2,"R"),T:dt((D,x)=>D-x+2,"T"),B:dt((D,x)=>D-2,"B")},mr=dt(function(D){return Wt(D)?D==="L"?"R":"L":D==="T"?"B":"T"},"getOppositeArchitectureDirection"),Re=dt(function(D){const x=D;return x==="L"||x==="R"||x==="T"||x==="B"},"isArchitectureDirection"),Wt=dt(function(D){const x=D;return x==="L"||x==="R"},"isArchitectureDirectionX"),qt=dt(function(D){const x=D;return x==="T"||x==="B"},"isArchitectureDirectionY"),Te=dt(function(D,x){const A=Wt(D)&&qt(x),P=qt(D)&&Wt(x);return A||P},"isArchitectureDirectionXY"),Tr=dt(function(D){const x=D[0],A=D[1],P=Wt(x)&&qt(A),N=qt(x)&&Wt(A);return P||N},"isArchitecturePairXY"),Nr=dt(function(D){return D!=="LL"&&D!=="RR"&&D!=="TT"&&D!=="BB"},"isValidArchitectureDirectionPair"),ye=dt(function(D,x){const A=`${D}${x}`;return Nr(A)?A:void 0},"getArchitectureDirectionPair"),Lr=dt(function([D,x],A){const P=A[0],N=A[1];return Wt(P)?qt(N)?[D+(P==="L"?-1:1),x+(N==="T"?1:-1)]:[D+(P==="L"?-1:1),x]:Wt(N)?[D+(N==="L"?1:-1),x+(P==="T"?1:-1)]:[D,x+(P==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Cr=dt(function(D){return D==="LT"||D==="TL"?[1,1]:D==="BL"||D==="LB"?[1,-1]:D==="BR"||D==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Ar=dt(function(D,x){return Te(D,x)?"bend":Wt(D)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),wr=dt(function(D){return D.type==="service"},"isArchitectureService"),Mr=dt(function(D){return D.type==="junction"},"isArchitectureJunction"),be=dt(D=>D.data(),"edgeData"),ie=dt(D=>D.data(),"nodeData"),Or=ir.architecture,ae,Pe=(ae=class{constructor(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.elements={},this.setAccTitle=qe,this.getAccTitle=Qe,this.setDiagramTitle=Je,this.getDiagramTitle=Ke,this.getAccDescription=je,this.setAccDescription=_e,this.clear()}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},tr()}addService({id:x,icon:A,in:P,title:N,iconText:u}){if(this.registeredIds[x]!==void 0)throw new Error(`The service id [${x}] is already in use by another ${this.registeredIds[x]}`);if(P!==void 0){if(x===P)throw new Error(`The service [${x}] cannot be placed within itself`);if(this.registeredIds[P]===void 0)throw new Error(`The service [${x}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[P]==="node")throw new Error(`The service [${x}]'s parent is not a group`)}this.registeredIds[x]="node",this.nodes[x]={id:x,type:"service",icon:A,iconText:u,title:N,edges:[],in:P}}getServices(){return Object.values(this.nodes).filter(wr)}addJunction({id:x,in:A}){this.registeredIds[x]="node",this.nodes[x]={id:x,type:"junction",edges:[],in:A}}getJunctions(){return Object.values(this.nodes).filter(Mr)}getNodes(){return Object.values(this.nodes)}getNode(x){return this.nodes[x]??null}addGroup({id:x,icon:A,in:P,title:N}){var u,l,a;if(((u=this.registeredIds)==null?void 0:u[x])!==void 0)throw new Error(`The group id [${x}] is already in use by another ${this.registeredIds[x]}`);if(P!==void 0){if(x===P)throw new Error(`The group [${x}] cannot be placed within itself`);if(((l=this.registeredIds)==null?void 0:l[P])===void 0)throw new Error(`The group [${x}]'s parent does not exist. Please make sure the parent is created before this group`);if(((a=this.registeredIds)==null?void 0:a[P])==="node")throw new Error(`The group [${x}]'s parent is not a group`)}this.registeredIds[x]="group",this.groups[x]={id:x,icon:A,title:N,in:P}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:x,rhsId:A,lhsDir:P,rhsDir:N,lhsInto:u,rhsInto:l,lhsGroup:a,rhsGroup:e,title:r}){if(!Re(P))throw new Error(`Invalid direction given for left hand side of edge ${x}--${A}. Expected (L,R,T,B) got ${String(P)}`);if(!Re(N))throw new Error(`Invalid direction given for right hand side of edge ${x}--${A}. Expected (L,R,T,B) got ${String(N)}`);if(this.nodes[x]===void 0&&this.groups[x]===void 0)throw new Error(`The left-hand id [${x}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[A]===void 0&&this.groups[A]===void 0)throw new Error(`The right-hand id [${A}] does not yet exist. Please create the service/group before declaring an edge to it.`);const f=this.nodes[x].in,i=this.nodes[A].in;if(a&&f&&i&&f==i)throw new Error(`The left-hand id [${x}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(e&&f&&i&&f==i)throw new Error(`The right-hand id [${A}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const g={lhsId:x,lhsDir:P,lhsInto:u,lhsGroup:a,rhsId:A,rhsDir:N,rhsInto:l,rhsGroup:e,title:r};this.edges.push(g),this.nodes[x]&&this.nodes[A]&&(this.nodes[x].edges.push(this.edges[this.edges.length-1]),this.nodes[A].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){const x={},A=Object.entries(this.nodes).reduce((e,[r,f])=>(e[r]=f.edges.reduce((i,g)=>{var o,c;const t=(o=this.getNode(g.lhsId))==null?void 0:o.in,s=(c=this.getNode(g.rhsId))==null?void 0:c.in;if(t&&s&&t!==s){const h=Ar(g.lhsDir,g.rhsDir);h!=="bend"&&(x[t]??(x[t]={}),x[t][s]=h,x[s]??(x[s]={}),x[s][t]=h)}if(g.lhsId===r){const h=ye(g.lhsDir,g.rhsDir);h&&(i[h]=g.rhsId)}else{const h=ye(g.rhsDir,g.lhsDir);h&&(i[h]=g.lhsId)}return i},{}),e),{}),P=Object.keys(A)[0],N={[P]:1},u=Object.keys(A).reduce((e,r)=>r===P?e:{...e,[r]:1},{}),l=dt(e=>{const r={[e]:[0,0]},f=[e];for(;f.length>0;){const i=f.shift();if(i){N[i]=1,delete u[i];const g=A[i],[t,s]=r[i];Object.entries(g).forEach(([o,c])=>{N[c]||(r[c]=Lr([t,s],o),f.push(c))})}}return r},"BFS"),a=[l(P)];for(;Object.keys(u).length>0;)a.push(l(Object.keys(u)[0]));this.dataStructures={adjList:A,spatialMaps:a,groupAlignments:x}}return this.dataStructures}setElementForId(x,A){this.elements[x]=A}getElementById(x){return this.elements[x]}getConfig(){return er({...Or,...rr().architecture})}getConfigField(x){return this.getConfig()[x]}},dt(ae,"ArchitectureDB"),ae),Dr=dt((D,x)=>{hr(D,x),D.groups.map(A=>x.addGroup(A)),D.services.map(A=>x.addService({...A,type:"service"})),D.junctions.map(A=>x.addJunction({...A,type:"junction"})),D.edges.map(A=>x.addEdge(A))},"populateDb"),Ge={parser:{yy:void 0},parse:dt(async D=>{var P;const x=await lr("architecture",D);Se.debug(x);const A=(P=Ge.parser)==null?void 0:P.yy;if(!(A instanceof Pe))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Dr(x,A)},"parse")},xr=dt(D=>` + .edge { + stroke-width: ${D.archEdgeWidth}; + stroke: ${D.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${D.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${D.archGroupBorderColor}; + stroke-width: ${D.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),Ir=xr,re=dt(D=>`${D}`,"wrapIcon"),ne={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:re('')},server:{body:re('')},disk:{body:re('')},internet:{body:re('')},cloud:{body:re('')},unknown:sr,blank:{body:re("")}}},Rr=dt(async function(D,x,A){const P=A.getConfigField("padding"),N=A.getConfigField("iconSize"),u=N/2,l=N/6,a=l/2;await Promise.all(x.edges().map(async e=>{var K,X;const{source:r,sourceDir:f,sourceArrow:i,sourceGroup:g,target:t,targetDir:s,targetArrow:o,targetGroup:c,label:h}=be(e);let{x:T,y:d}=e[0].sourceEndpoint();const{x:v,y:L}=e[0].midpoint();let{x:S,y:C}=e[0].targetEndpoint();const G=P+4;if(g&&(Wt(f)?T+=f==="L"?-G:G:d+=f==="T"?-G:G+18),c&&(Wt(s)?S+=s==="L"?-G:G:C+=s==="T"?-G:G+18),!g&&((K=A.getNode(r))==null?void 0:K.type)==="junction"&&(Wt(f)?T+=f==="L"?u:-u:d+=f==="T"?u:-u),!c&&((X=A.getNode(t))==null?void 0:X.type)==="junction"&&(Wt(s)?S+=s==="L"?u:-u:C+=s==="T"?u:-u),e[0]._private.rscratch){const Q=D.insert("g");if(Q.insert("path").attr("d",`M ${T},${d} L ${v},${L} L${S},${C} `).attr("class","edge"),i){const O=Wt(f)?se[f](T,l):T-a,rt=qt(f)?se[f](d,l):d-a;Q.insert("polygon").attr("points",Ie[f](l)).attr("transform",`translate(${O},${rt})`).attr("class","arrow")}if(o){const O=Wt(s)?se[s](S,l):S-a,rt=qt(s)?se[s](C,l):C-a;Q.insert("polygon").attr("points",Ie[s](l)).attr("transform",`translate(${O},${rt})`).attr("class","arrow")}if(h){const O=Te(f,s)?"XY":Wt(f)?"X":"Y";let rt=0;O==="X"?rt=Math.abs(T-S):O==="Y"?rt=Math.abs(d-C)/1.5:rt=Math.abs(T-S)/2;const n=Q.append("g");if(await me(n,h,{useHtmlLabels:!1,width:rt,classes:"architecture-service-label"},Ee()),n.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),O==="X")n.attr("transform","translate("+v+", "+L+")");else if(O==="Y")n.attr("transform","translate("+v+", "+L+") rotate(-90)");else if(O==="XY"){const m=ye(f,s);if(m&&Tr(m)){const p=n.node().getBoundingClientRect(),[E,y]=Cr(m);n.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*E*y*45})`);const R=n.node().getBoundingClientRect();n.attr("transform",` + translate(${v}, ${L-p.height/2}) + translate(${E*R.width/2}, ${y*R.height/2}) + rotate(${-1*E*y*45}, 0, ${p.height/2}) + `)}}}}}))},"drawEdges"),Sr=dt(async function(D,x,A){const N=A.getConfigField("padding")*.75,u=A.getConfigField("fontSize"),a=A.getConfigField("iconSize")/2;await Promise.all(x.nodes().map(async e=>{const r=ie(e);if(r.type==="group"){const{h:f,w:i,x1:g,y1:t}=e.boundingBox();D.append("rect").attr("x",g+a).attr("y",t+a).attr("width",i).attr("height",f).attr("class","node-bkg");const s=D.append("g");let o=g,c=t;if(r.icon){const h=s.append("g");h.html(`${await pe(r.icon,{height:N,width:N,fallbackPrefix:ne.prefix})}`),h.attr("transform","translate("+(o+a+1)+", "+(c+a+1)+")"),o+=N,c+=u/2-1-2}if(r.label){const h=s.append("g");await me(h,r.label,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},Ee()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),h.attr("transform","translate("+(o+a+4)+", "+(c+a+2)+")")}}}))},"drawGroups"),Fr=dt(async function(D,x,A){const P=Ee();for(const N of A){const u=x.append("g"),l=D.getConfigField("iconSize");if(N.title){const f=u.append("g");await me(f,N.title,{useHtmlLabels:!1,width:l*1.5,classes:"architecture-service-label"},P),f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),f.attr("transform","translate("+l/2+", "+l+")")}const a=u.append("g");if(N.icon)a.html(`${await pe(N.icon,{height:l,width:l,fallbackPrefix:ne.prefix})}`);else if(N.iconText){a.html(`${await pe("blank",{height:l,width:l,fallbackPrefix:ne.prefix})}`);const g=a.append("g").append("foreignObject").attr("width",l).attr("height",l).append("div").attr("class","node-icon-text").attr("style",`height: ${l}px;`).append("div").html(ar(N.iconText,P)),t=parseInt(window.getComputedStyle(g.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;g.attr("style",`-webkit-line-clamp: ${Math.floor((l-2)/t)};`)}else a.append("path").attr("class","node-bkg").attr("id","node-"+N.id).attr("d",`M0 ${l} v${-l} q0,-5 5,-5 h${l} q5,0 5,5 v${l} H0 Z`);u.attr("class","architecture-service");const{width:e,height:r}=u._groups[0][0].getBBox();N.width=e,N.height=r,D.setElementForId(N.id,u)}return 0},"drawServices"),br=dt(function(D,x,A){A.forEach(P=>{const N=x.append("g"),u=D.getConfigField("iconSize");N.append("g").append("rect").attr("id","node-"+P.id).attr("fill-opacity","0").attr("width",u).attr("height",u),N.attr("class","architecture-junction");const{width:a,height:e}=N._groups[0][0].getBBox();N.width=a,N.height=e,D.setElementForId(P.id,N)})},"drawJunctions");or([{name:ne.prefix,icons:ne}]);Fe.use(Er);function Ue(D,x,A){D.forEach(P=>{x.add({group:"nodes",data:{type:"service",id:P.id,icon:P.icon,label:P.title,parent:P.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-service"})})}dt(Ue,"addServices");function Ye(D,x,A){D.forEach(P=>{x.add({group:"nodes",data:{type:"junction",id:P.id,parent:P.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-junction"})})}dt(Ye,"addJunctions");function Xe(D,x){x.nodes().map(A=>{const P=ie(A);if(P.type==="group")return;P.x=A.position().x,P.y=A.position().y,D.getElementById(P.id).attr("transform","translate("+(P.x||0)+","+(P.y||0)+")")})}dt(Xe,"positionNodes");function He(D,x){D.forEach(A=>{x.add({group:"nodes",data:{type:"group",id:A.id,icon:A.icon,label:A.title,parent:A.in},classes:"node-group"})})}dt(He,"addGroups");function We(D,x){D.forEach(A=>{const{lhsId:P,rhsId:N,lhsInto:u,lhsGroup:l,rhsInto:a,lhsDir:e,rhsDir:r,rhsGroup:f,title:i}=A,g=Te(A.lhsDir,A.rhsDir)?"segments":"straight",t={id:`${P}-${N}`,label:i,source:P,sourceDir:e,sourceArrow:u,sourceGroup:l,sourceEndpoint:e==="L"?"0 50%":e==="R"?"100% 50%":e==="T"?"50% 0":"50% 100%",target:N,targetDir:r,targetArrow:a,targetGroup:f,targetEndpoint:r==="L"?"0 50%":r==="R"?"100% 50%":r==="T"?"50% 0":"50% 100%"};x.add({group:"edges",data:t,classes:g})})}dt(We,"addEdges");function Ve(D,x,A){const P=dt((a,e)=>Object.entries(a).reduce((r,[f,i])=>{var s;let g=0;const t=Object.entries(i);if(t.length===1)return r[f]=t[0][1],r;for(let o=0;o{const e={},r={};return Object.entries(a).forEach(([f,[i,g]])=>{var s,o,c;const t=((s=D.getNode(f))==null?void 0:s.in)??"default";e[g]??(e[g]={}),(o=e[g])[t]??(o[t]=[]),e[g][t].push(f),r[i]??(r[i]={}),(c=r[i])[t]??(c[t]=[]),r[i][t].push(f)}),{horiz:Object.values(P(e,"horizontal")).filter(f=>f.length>1),vert:Object.values(P(r,"vertical")).filter(f=>f.length>1)}}),[u,l]=N.reduce(([a,e],{horiz:r,vert:f})=>[[...a,...r],[...e,...f]],[[],[]]);return{horizontal:u,vertical:l}}dt(Ve,"getAlignments");function ze(D,x){const A=[],P=dt(u=>`${u[0]},${u[1]}`,"posToStr"),N=dt(u=>u.split(",").map(l=>parseInt(l)),"strToPos");return D.forEach(u=>{const l=Object.fromEntries(Object.entries(u).map(([f,i])=>[P(i),f])),a=[P([0,0])],e={},r={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;a.length>0;){const f=a.shift();if(f){e[f]=1;const i=l[f];if(i){const g=N(f);Object.entries(r).forEach(([t,s])=>{const o=P([g[0]+s[0],g[1]+s[1]]),c=l[o];c&&!e[o]&&(a.push(o),A.push({[xe[t]]:c,[xe[mr(t)]]:i,gap:1.5*x.getConfigField("iconSize")}))})}}}}),A}dt(ze,"getRelativeConstraints");function Be(D,x,A,P,N,{spatialMaps:u,groupAlignments:l}){return new Promise(a=>{const e=nr("body").append("div").attr("id","cy").attr("style","display:none"),r=Fe({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${N.getConfigField("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${N.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});e.remove(),He(A,r),Ue(D,r,N),Ye(x,r,N),We(P,r);const f=Ve(N,u,l),i=ze(u,N),g=r.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){const[s,o]=t.connectedNodes(),{parent:c}=ie(s),{parent:h}=ie(o);return c===h?1.5*N.getConfigField("iconSize"):.5*N.getConfigField("iconSize")},edgeElasticity(t){const[s,o]=t.connectedNodes(),{parent:c}=ie(s),{parent:h}=ie(o);return c===h?.45:.001},alignmentConstraint:f,relativePlacementConstraint:i});g.one("layoutstop",()=>{var s;function t(o,c,h,T){let d,v;const{x:L,y:S}=o,{x:C,y:G}=c;v=(T-S+(L-h)*(S-G)/(L-C))/Math.sqrt(1+Math.pow((S-G)/(L-C),2)),d=Math.sqrt(Math.pow(T-S,2)+Math.pow(h-L,2)-Math.pow(v,2));const K=Math.sqrt(Math.pow(C-L,2)+Math.pow(G-S,2));d=d/K;let X=(C-L)*(T-S)-(G-S)*(h-L);switch(!0){case X>=0:X=1;break;case X<0:X=-1;break}let Q=(C-L)*(h-L)+(G-S)*(T-S);switch(!0){case Q>=0:Q=1;break;case Q<0:Q=-1;break}return v=Math.abs(v)*X,d=d*Q,{distances:v,weights:d}}dt(t,"getSegmentWeights"),r.startBatch();for(const o of Object.values(r.edges()))if((s=o.data)!=null&&s.call(o)){const{x:c,y:h}=o.source().position(),{x:T,y:d}=o.target().position();if(c!==T&&h!==d){const v=o.sourceEndpoint(),L=o.targetEndpoint(),{sourceDir:S}=be(o),[C,G]=qt(S)?[v.x,L.y]:[L.x,v.y],{weights:K,distances:X}=t(v,L,C,G);o.style("segment-distances",X),o.style("segment-weights",K)}}r.endBatch(),g.run()}),g.run(),r.ready(t=>{Se.info("Ready",t),a(r)})})}dt(Be,"layoutArchitecture");var Pr=dt(async(D,x,A,P)=>{const N=P.db,u=N.getServices(),l=N.getJunctions(),a=N.getGroups(),e=N.getEdges(),r=N.getDataStructures(),f=ke(x),i=f.append("g");i.attr("class","architecture-edges");const g=f.append("g");g.attr("class","architecture-services");const t=f.append("g");t.attr("class","architecture-groups"),await Fr(N,g,u),br(N,g,l);const s=await Be(u,l,a,e,N,r);await Rr(i,s,N),await Sr(t,s,N),Xe(N,s),Ze(void 0,f,N.getConfigField("padding"),N.getConfigField("useMaxWidth"))},"draw"),Gr={draw:Pr},$r={parser:Ge,get db(){return new Pe},renderer:Gr,styles:Ir};export{$r as diagram}; +//# sourceMappingURL=architectureDiagram-W76B3OCA.js.map diff --git a/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js.map b/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js.map new file mode 100644 index 000000000000..c4e98f24f1af --- /dev/null +++ b/extensions/continue/gui/assets/architectureDiagram-W76B3OCA.js.map @@ -0,0 +1 @@ +{"version":3,"file":"architectureDiagram-W76B3OCA.js","sources":["../../node_modules/cytoscape-fcose/node_modules/layout-base/layout-base.js","../../node_modules/cytoscape-fcose/node_modules/cose-base/cose-base.js","../../node_modules/cytoscape-fcose/cytoscape-fcose.js","../../node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-W76B3OCA.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"layoutBase\"] = factory();\n\telse\n\t\troot[\"layoutBase\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 28);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LayoutConstants() {}\n\n/**\r\n * Layout Quality: 0:draft, 1:default, 2:proof\r\n */\nLayoutConstants.QUALITY = 1;\n\n/**\r\n * Default parameters\r\n */\nLayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;\nLayoutConstants.DEFAULT_INCREMENTAL = false;\nLayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;\nLayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;\nLayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;\nLayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;\n\n// -----------------------------------------------------------------------------\n// Section: General other constants\n// -----------------------------------------------------------------------------\n/*\r\n * Margins of a graph to be applied on bouding rectangle of its contents. We\r\n * assume margins on all four sides to be uniform.\r\n */\nLayoutConstants.DEFAULT_GRAPH_MARGIN = 15;\n\n/*\r\n * Whether to consider labels in node dimensions or not\r\n */\nLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_SIZE = 40;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;\n\n/*\r\n * Empty compound node size. When a compound node is empty, its both\r\n * dimensions should be of this value.\r\n */\nLayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;\n\n/*\r\n * Minimum length that an edge should take during layout\r\n */\nLayoutConstants.MIN_EDGE_LENGTH = 1;\n\n/*\r\n * World boundaries that layout operates on\r\n */\nLayoutConstants.WORLD_BOUNDARY = 1000000;\n\n/*\r\n * World boundaries that random positioning can be performed with\r\n */\nLayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000;\n\n/*\r\n * Coordinates of the world center\r\n */\nLayoutConstants.WORLD_CENTER_X = 1200;\nLayoutConstants.WORLD_CENTER_Y = 900;\n\nmodule.exports = LayoutConstants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction LEdge(source, target, vEdge) {\n LGraphObject.call(this, vEdge);\n\n this.isOverlapingSourceAndTarget = false;\n this.vGraphObject = vEdge;\n this.bendpoints = [];\n this.source = source;\n this.target = target;\n}\n\nLEdge.prototype = Object.create(LGraphObject.prototype);\n\nfor (var prop in LGraphObject) {\n LEdge[prop] = LGraphObject[prop];\n}\n\nLEdge.prototype.getSource = function () {\n return this.source;\n};\n\nLEdge.prototype.getTarget = function () {\n return this.target;\n};\n\nLEdge.prototype.isInterGraph = function () {\n return this.isInterGraph;\n};\n\nLEdge.prototype.getLength = function () {\n return this.length;\n};\n\nLEdge.prototype.isOverlapingSourceAndTarget = function () {\n return this.isOverlapingSourceAndTarget;\n};\n\nLEdge.prototype.getBendpoints = function () {\n return this.bendpoints;\n};\n\nLEdge.prototype.getLca = function () {\n return this.lca;\n};\n\nLEdge.prototype.getSourceInLca = function () {\n return this.sourceInLca;\n};\n\nLEdge.prototype.getTargetInLca = function () {\n return this.targetInLca;\n};\n\nLEdge.prototype.getOtherEnd = function (node) {\n if (this.source === node) {\n return this.target;\n } else if (this.target === node) {\n return this.source;\n } else {\n throw \"Node is not incident with this edge\";\n }\n};\n\nLEdge.prototype.getOtherEndInGraph = function (node, graph) {\n var otherEnd = this.getOtherEnd(node);\n var root = graph.getGraphManager().getRoot();\n\n while (true) {\n if (otherEnd.getOwner() == graph) {\n return otherEnd;\n }\n\n if (otherEnd.getOwner() == root) {\n break;\n }\n\n otherEnd = otherEnd.getOwner().getParent();\n }\n\n return null;\n};\n\nLEdge.prototype.updateLength = function () {\n var clipPointCoordinates = new Array(4);\n\n this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);\n\n if (!this.isOverlapingSourceAndTarget) {\n this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];\n this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n }\n};\n\nLEdge.prototype.updateLengthSimple = function () {\n this.lengthX = this.target.getCenterX() - this.source.getCenterX();\n this.lengthY = this.target.getCenterY() - this.source.getCenterY();\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n};\n\nmodule.exports = LEdge;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LGraphObject(vGraphObject) {\n this.vGraphObject = vGraphObject;\n}\n\nmodule.exports = LGraphObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar RectangleD = __webpack_require__(13);\nvar LayoutConstants = __webpack_require__(0);\nvar RandomSeed = __webpack_require__(16);\nvar PointD = __webpack_require__(5);\n\nfunction LNode(gm, loc, size, vNode) {\n //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode)\n if (size == null && vNode == null) {\n vNode = loc;\n }\n\n LGraphObject.call(this, vNode);\n\n //Alternative constructor 2 : LNode(Layout layout, Object vNode)\n if (gm.graphManager != null) gm = gm.graphManager;\n\n this.estimatedSize = Integer.MIN_VALUE;\n this.inclusionTreeDepth = Integer.MAX_VALUE;\n this.vGraphObject = vNode;\n this.edges = [];\n this.graphManager = gm;\n\n if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD();\n}\n\nLNode.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LNode[prop] = LGraphObject[prop];\n}\n\nLNode.prototype.getEdges = function () {\n return this.edges;\n};\n\nLNode.prototype.getChild = function () {\n return this.child;\n};\n\nLNode.prototype.getOwner = function () {\n // if (this.owner != null) {\n // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) {\n // throw \"assert failed\";\n // }\n // }\n\n return this.owner;\n};\n\nLNode.prototype.getWidth = function () {\n return this.rect.width;\n};\n\nLNode.prototype.setWidth = function (width) {\n this.rect.width = width;\n};\n\nLNode.prototype.getHeight = function () {\n return this.rect.height;\n};\n\nLNode.prototype.setHeight = function (height) {\n this.rect.height = height;\n};\n\nLNode.prototype.getCenterX = function () {\n return this.rect.x + this.rect.width / 2;\n};\n\nLNode.prototype.getCenterY = function () {\n return this.rect.y + this.rect.height / 2;\n};\n\nLNode.prototype.getCenter = function () {\n return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);\n};\n\nLNode.prototype.getLocation = function () {\n return new PointD(this.rect.x, this.rect.y);\n};\n\nLNode.prototype.getRect = function () {\n return this.rect;\n};\n\nLNode.prototype.getDiagonal = function () {\n return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);\n};\n\n/**\n * This method returns half the diagonal length of this node.\n */\nLNode.prototype.getHalfTheDiagonal = function () {\n return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;\n};\n\nLNode.prototype.setRect = function (upperLeft, dimension) {\n this.rect.x = upperLeft.x;\n this.rect.y = upperLeft.y;\n this.rect.width = dimension.width;\n this.rect.height = dimension.height;\n};\n\nLNode.prototype.setCenter = function (cx, cy) {\n this.rect.x = cx - this.rect.width / 2;\n this.rect.y = cy - this.rect.height / 2;\n};\n\nLNode.prototype.setLocation = function (x, y) {\n this.rect.x = x;\n this.rect.y = y;\n};\n\nLNode.prototype.moveBy = function (dx, dy) {\n this.rect.x += dx;\n this.rect.y += dy;\n};\n\nLNode.prototype.getEdgeListToNode = function (to) {\n var edgeList = [];\n var edge;\n var self = this;\n\n self.edges.forEach(function (edge) {\n\n if (edge.target == to) {\n if (edge.source != self) throw \"Incorrect edge source!\";\n\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getEdgesBetween = function (other) {\n var edgeList = [];\n var edge;\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (!(edge.source == self || edge.target == self)) throw \"Incorrect edge source and/or target\";\n\n if (edge.target == other || edge.source == other) {\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getNeighborsList = function () {\n var neighbors = new Set();\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (edge.source == self) {\n neighbors.add(edge.target);\n } else {\n if (edge.target != self) {\n throw \"Incorrect incidency!\";\n }\n\n neighbors.add(edge.source);\n }\n });\n\n return neighbors;\n};\n\nLNode.prototype.withChildren = function () {\n var withNeighborsList = new Set();\n var childNode;\n var children;\n\n withNeighborsList.add(this);\n\n if (this.child != null) {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n children = childNode.withChildren();\n children.forEach(function (node) {\n withNeighborsList.add(node);\n });\n }\n }\n\n return withNeighborsList;\n};\n\nLNode.prototype.getNoOfChildren = function () {\n var noOfChildren = 0;\n var childNode;\n\n if (this.child == null) {\n noOfChildren = 1;\n } else {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n\n noOfChildren += childNode.getNoOfChildren();\n }\n }\n\n if (noOfChildren == 0) {\n noOfChildren = 1;\n }\n return noOfChildren;\n};\n\nLNode.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLNode.prototype.calcEstimatedSize = function () {\n if (this.child == null) {\n return this.estimatedSize = (this.rect.width + this.rect.height) / 2;\n } else {\n this.estimatedSize = this.child.calcEstimatedSize();\n this.rect.width = this.estimatedSize;\n this.rect.height = this.estimatedSize;\n\n return this.estimatedSize;\n }\n};\n\nLNode.prototype.scatter = function () {\n var randomCenterX;\n var randomCenterY;\n\n var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;\n\n var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;\n\n this.rect.x = randomCenterX;\n this.rect.y = randomCenterY;\n};\n\nLNode.prototype.updateBounds = function () {\n if (this.getChild() == null) {\n throw \"assert failed\";\n }\n if (this.getChild().getNodes().length != 0) {\n // wrap the children nodes by re-arranging the boundaries\n var childGraph = this.getChild();\n childGraph.updateBounds(true);\n\n this.rect.x = childGraph.getLeft();\n this.rect.y = childGraph.getTop();\n\n this.setWidth(childGraph.getRight() - childGraph.getLeft());\n this.setHeight(childGraph.getBottom() - childGraph.getTop());\n\n // Update compound bounds considering its label properties \n if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = childGraph.getRight() - childGraph.getLeft();\n var height = childGraph.getBottom() - childGraph.getTop();\n\n if (this.labelWidth) {\n if (this.labelPosHorizontal == \"left\") {\n this.rect.x -= this.labelWidth;\n this.setWidth(width + this.labelWidth);\n } else if (this.labelPosHorizontal == \"center\" && this.labelWidth > width) {\n this.rect.x -= (this.labelWidth - width) / 2;\n this.setWidth(this.labelWidth);\n } else if (this.labelPosHorizontal == \"right\") {\n this.setWidth(width + this.labelWidth);\n }\n }\n\n if (this.labelHeight) {\n if (this.labelPosVertical == \"top\") {\n this.rect.y -= this.labelHeight;\n this.setHeight(height + this.labelHeight);\n } else if (this.labelPosVertical == \"center\" && this.labelHeight > height) {\n this.rect.y -= (this.labelHeight - height) / 2;\n this.setHeight(this.labelHeight);\n } else if (this.labelPosVertical == \"bottom\") {\n this.setHeight(height + this.labelHeight);\n }\n }\n }\n }\n};\n\nLNode.prototype.getInclusionTreeDepth = function () {\n if (this.inclusionTreeDepth == Integer.MAX_VALUE) {\n throw \"assert failed\";\n }\n return this.inclusionTreeDepth;\n};\n\nLNode.prototype.transform = function (trans) {\n var left = this.rect.x;\n\n if (left > LayoutConstants.WORLD_BOUNDARY) {\n left = LayoutConstants.WORLD_BOUNDARY;\n } else if (left < -LayoutConstants.WORLD_BOUNDARY) {\n left = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var top = this.rect.y;\n\n if (top > LayoutConstants.WORLD_BOUNDARY) {\n top = LayoutConstants.WORLD_BOUNDARY;\n } else if (top < -LayoutConstants.WORLD_BOUNDARY) {\n top = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var leftTop = new PointD(left, top);\n var vLeftTop = trans.inverseTransformPoint(leftTop);\n\n this.setLocation(vLeftTop.x, vLeftTop.y);\n};\n\nLNode.prototype.getLeft = function () {\n return this.rect.x;\n};\n\nLNode.prototype.getRight = function () {\n return this.rect.x + this.rect.width;\n};\n\nLNode.prototype.getTop = function () {\n return this.rect.y;\n};\n\nLNode.prototype.getBottom = function () {\n return this.rect.y + this.rect.height;\n};\n\nLNode.prototype.getParent = function () {\n if (this.owner == null) {\n return null;\n }\n\n return this.owner.getParent();\n};\n\nmodule.exports = LNode;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0);\n\nfunction FDLayoutConstants() {}\n\n//FDLayoutConstants inherits static props in LayoutConstants\nfor (var prop in LayoutConstants) {\n FDLayoutConstants[prop] = LayoutConstants[prop];\n}\n\nFDLayoutConstants.MAX_ITERATIONS = 2500;\n\nFDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\nFDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;\nFDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0;\nFDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0;\nFDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;\nFDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;\nFDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;\nFDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;\nFDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;\nFDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000;\nFDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;\nFDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\nFDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;\nFDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;\nFDLayoutConstants.MIN_EDGE_LENGTH = 1;\nFDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;\n\nmodule.exports = FDLayoutConstants;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction PointD(x, y) {\n if (x == null && y == null) {\n this.x = 0;\n this.y = 0;\n } else {\n this.x = x;\n this.y = y;\n }\n}\n\nPointD.prototype.getX = function () {\n return this.x;\n};\n\nPointD.prototype.getY = function () {\n return this.y;\n};\n\nPointD.prototype.setX = function (x) {\n this.x = x;\n};\n\nPointD.prototype.setY = function (y) {\n this.y = y;\n};\n\nPointD.prototype.getDifference = function (pt) {\n return new DimensionD(this.x - pt.x, this.y - pt.y);\n};\n\nPointD.prototype.getCopy = function () {\n return new PointD(this.x, this.y);\n};\n\nPointD.prototype.translate = function (dim) {\n this.x += dim.width;\n this.y += dim.height;\n return this;\n};\n\nmodule.exports = PointD;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(7);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar RectangleD = __webpack_require__(13);\nvar Point = __webpack_require__(12);\nvar LinkedList = __webpack_require__(11);\n\nfunction LGraph(parent, obj2, vGraph) {\n LGraphObject.call(this, vGraph);\n this.estimatedSize = Integer.MIN_VALUE;\n this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;\n this.edges = [];\n this.nodes = [];\n this.isConnected = false;\n this.parent = parent;\n\n if (obj2 != null && obj2 instanceof LGraphManager) {\n this.graphManager = obj2;\n } else if (obj2 != null && obj2 instanceof Layout) {\n this.graphManager = obj2.graphManager;\n }\n}\n\nLGraph.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LGraph[prop] = LGraphObject[prop];\n}\n\nLGraph.prototype.getNodes = function () {\n return this.nodes;\n};\n\nLGraph.prototype.getEdges = function () {\n return this.edges;\n};\n\nLGraph.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLGraph.prototype.getParent = function () {\n return this.parent;\n};\n\nLGraph.prototype.getLeft = function () {\n return this.left;\n};\n\nLGraph.prototype.getRight = function () {\n return this.right;\n};\n\nLGraph.prototype.getTop = function () {\n return this.top;\n};\n\nLGraph.prototype.getBottom = function () {\n return this.bottom;\n};\n\nLGraph.prototype.isConnected = function () {\n return this.isConnected;\n};\n\nLGraph.prototype.add = function (obj1, sourceNode, targetNode) {\n if (sourceNode == null && targetNode == null) {\n var newNode = obj1;\n if (this.graphManager == null) {\n throw \"Graph has no graph mgr!\";\n }\n if (this.getNodes().indexOf(newNode) > -1) {\n throw \"Node already in graph!\";\n }\n newNode.owner = this;\n this.getNodes().push(newNode);\n\n return newNode;\n } else {\n var newEdge = obj1;\n if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {\n throw \"Source or target not in graph!\";\n }\n\n if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {\n throw \"Both owners must be this graph!\";\n }\n\n if (sourceNode.owner != targetNode.owner) {\n return null;\n }\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // set as intra-graph edge\n newEdge.isInterGraph = false;\n\n // add to graph edge list\n this.getEdges().push(newEdge);\n\n // add to incidency lists\n sourceNode.edges.push(newEdge);\n\n if (targetNode != sourceNode) {\n targetNode.edges.push(newEdge);\n }\n\n return newEdge;\n }\n};\n\nLGraph.prototype.remove = function (obj) {\n var node = obj;\n if (obj instanceof LNode) {\n if (node == null) {\n throw \"Node is null!\";\n }\n if (!(node.owner != null && node.owner == this)) {\n throw \"Owner graph is invalid!\";\n }\n if (this.graphManager == null) {\n throw \"Owner graph manager is invalid!\";\n }\n // remove incident edges first (make a copy to do it safely)\n var edgesToBeRemoved = node.edges.slice();\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n\n if (edge.isInterGraph) {\n this.graphManager.remove(edge);\n } else {\n edge.source.owner.remove(edge);\n }\n }\n\n // now the node itself\n var index = this.nodes.indexOf(node);\n if (index == -1) {\n throw \"Node not in owner node list!\";\n }\n\n this.nodes.splice(index, 1);\n } else if (obj instanceof LEdge) {\n var edge = obj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {\n throw \"Source and/or target owner is invalid!\";\n }\n\n var sourceIndex = edge.source.edges.indexOf(edge);\n var targetIndex = edge.target.edges.indexOf(edge);\n if (!(sourceIndex > -1 && targetIndex > -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n edge.source.edges.splice(sourceIndex, 1);\n\n if (edge.target != edge.source) {\n edge.target.edges.splice(targetIndex, 1);\n }\n\n var index = edge.source.owner.getEdges().indexOf(edge);\n if (index == -1) {\n throw \"Not in owner's edge list!\";\n }\n\n edge.source.owner.getEdges().splice(index, 1);\n }\n};\n\nLGraph.prototype.updateLeftTop = function () {\n var top = Integer.MAX_VALUE;\n var left = Integer.MAX_VALUE;\n var nodeTop;\n var nodeLeft;\n var margin;\n\n var nodes = this.getNodes();\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeTop = lNode.getTop();\n nodeLeft = lNode.getLeft();\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n }\n\n // Do we have any nodes in this graph?\n if (top == Integer.MAX_VALUE) {\n return null;\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = left - margin;\n this.top = top - margin;\n\n // Apply the margins and return the result\n return new Point(this.left, this.top);\n};\n\nLGraph.prototype.updateBounds = function (recursive) {\n // calculate bounds\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n var margin;\n\n var nodes = this.nodes;\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n\n if (recursive && lNode.child != null) {\n lNode.updateBounds();\n }\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n if (left == Integer.MAX_VALUE) {\n this.left = this.parent.getLeft();\n this.right = this.parent.getRight();\n this.top = this.parent.getTop();\n this.bottom = this.parent.getBottom();\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = boundingRect.x - margin;\n this.right = boundingRect.x + boundingRect.width + margin;\n this.top = boundingRect.y - margin;\n this.bottom = boundingRect.y + boundingRect.height + margin;\n};\n\nLGraph.calculateBounds = function (nodes) {\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n\n return boundingRect;\n};\n\nLGraph.prototype.getInclusionTreeDepth = function () {\n if (this == this.graphManager.getRoot()) {\n return 1;\n } else {\n return this.parent.getInclusionTreeDepth();\n }\n};\n\nLGraph.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLGraph.prototype.calcEstimatedSize = function () {\n var size = 0;\n var nodes = this.nodes;\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n size += lNode.calcEstimatedSize();\n }\n\n if (size == 0) {\n this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;\n } else {\n this.estimatedSize = size / Math.sqrt(this.nodes.length);\n }\n\n return this.estimatedSize;\n};\n\nLGraph.prototype.updateConnected = function () {\n var self = this;\n if (this.nodes.length == 0) {\n this.isConnected = true;\n return;\n }\n\n var queue = new LinkedList();\n var visited = new Set();\n var currentNode = this.nodes[0];\n var neighborEdges;\n var currentNeighbor;\n var childrenOfNode = currentNode.withChildren();\n childrenOfNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n\n while (queue.length !== 0) {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n neighborEdges = currentNode.getEdges();\n var size = neighborEdges.length;\n for (var i = 0; i < size; i++) {\n var neighborEdge = neighborEdges[i];\n currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);\n\n // Add unvisited neighbors to the list to visit\n if (currentNeighbor != null && !visited.has(currentNeighbor)) {\n var childrenOfNeighbor = currentNeighbor.withChildren();\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n }\n }\n }\n\n this.isConnected = false;\n\n if (visited.size >= this.nodes.length) {\n var noOfVisitedInThisGraph = 0;\n\n visited.forEach(function (visitedNode) {\n if (visitedNode.owner == self) {\n noOfVisitedInThisGraph++;\n }\n });\n\n if (noOfVisitedInThisGraph == this.nodes.length) {\n this.isConnected = true;\n }\n }\n};\n\nmodule.exports = LGraph;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph;\nvar LEdge = __webpack_require__(1);\n\nfunction LGraphManager(layout) {\n LGraph = __webpack_require__(6); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now.\n this.layout = layout;\n\n this.graphs = [];\n this.edges = [];\n}\n\nLGraphManager.prototype.addRoot = function () {\n var ngraph = this.layout.newGraph();\n var nnode = this.layout.newNode(null);\n var root = this.add(ngraph, nnode);\n this.setRootGraph(root);\n return this.rootGraph;\n};\n\nLGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) {\n //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge\n if (newEdge == null && sourceNode == null && targetNode == null) {\n if (newGraph == null) {\n throw \"Graph is null!\";\n }\n if (parentNode == null) {\n throw \"Parent node is null!\";\n }\n if (this.graphs.indexOf(newGraph) > -1) {\n throw \"Graph already in this graph mgr!\";\n }\n\n this.graphs.push(newGraph);\n\n if (newGraph.parent != null) {\n throw \"Already has a parent!\";\n }\n if (parentNode.child != null) {\n throw \"Already has a child!\";\n }\n\n newGraph.parent = parentNode;\n parentNode.child = newGraph;\n\n return newGraph;\n } else {\n //change the order of the parameters\n targetNode = newEdge;\n sourceNode = parentNode;\n newEdge = newGraph;\n var sourceGraph = sourceNode.getOwner();\n var targetGraph = targetNode.getOwner();\n\n if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {\n throw \"Source not in this graph mgr!\";\n }\n if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {\n throw \"Target not in this graph mgr!\";\n }\n\n if (sourceGraph == targetGraph) {\n newEdge.isInterGraph = false;\n return sourceGraph.add(newEdge, sourceNode, targetNode);\n } else {\n newEdge.isInterGraph = true;\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // add edge to inter-graph edge list\n if (this.edges.indexOf(newEdge) > -1) {\n throw \"Edge already in inter-graph edge list!\";\n }\n\n this.edges.push(newEdge);\n\n // add edge to source and target incidency lists\n if (!(newEdge.source != null && newEdge.target != null)) {\n throw \"Edge source and/or target is null!\";\n }\n\n if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {\n throw \"Edge already in source and/or target incidency list!\";\n }\n\n newEdge.source.edges.push(newEdge);\n newEdge.target.edges.push(newEdge);\n\n return newEdge;\n }\n }\n};\n\nLGraphManager.prototype.remove = function (lObj) {\n if (lObj instanceof LGraph) {\n var graph = lObj;\n if (graph.getGraphManager() != this) {\n throw \"Graph not in this graph mgr\";\n }\n if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {\n throw \"Invalid parent node!\";\n }\n\n // first the edges (make a copy to do it safely)\n var edgesToBeRemoved = [];\n\n edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());\n\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n graph.remove(edge);\n }\n\n // then the nodes (make a copy to do it safely)\n var nodesToBeRemoved = [];\n\n nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());\n\n var node;\n s = nodesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n node = nodesToBeRemoved[i];\n graph.remove(node);\n }\n\n // check if graph is the root\n if (graph == this.rootGraph) {\n this.setRootGraph(null);\n }\n\n // now remove the graph itself\n var index = this.graphs.indexOf(graph);\n this.graphs.splice(index, 1);\n\n // also reset the parent of the graph\n graph.parent = null;\n } else if (lObj instanceof LEdge) {\n edge = lObj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!edge.isInterGraph) {\n throw \"Not an inter-graph edge!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n\n // remove edge from source and target nodes' incidency lists\n\n if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n var index = edge.source.edges.indexOf(edge);\n edge.source.edges.splice(index, 1);\n index = edge.target.edges.indexOf(edge);\n edge.target.edges.splice(index, 1);\n\n // remove edge from owner graph manager's inter-graph edge list\n\n if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {\n throw \"Edge owner graph or owner graph manager is null!\";\n }\n if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {\n throw \"Not in owner graph manager's edge list!\";\n }\n\n var index = edge.source.owner.getGraphManager().edges.indexOf(edge);\n edge.source.owner.getGraphManager().edges.splice(index, 1);\n }\n};\n\nLGraphManager.prototype.updateBounds = function () {\n this.rootGraph.updateBounds(true);\n};\n\nLGraphManager.prototype.getGraphs = function () {\n return this.graphs;\n};\n\nLGraphManager.prototype.getAllNodes = function () {\n if (this.allNodes == null) {\n var nodeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < s; i++) {\n nodeList = nodeList.concat(graphs[i].getNodes());\n }\n this.allNodes = nodeList;\n }\n return this.allNodes;\n};\n\nLGraphManager.prototype.resetAllNodes = function () {\n this.allNodes = null;\n};\n\nLGraphManager.prototype.resetAllEdges = function () {\n this.allEdges = null;\n};\n\nLGraphManager.prototype.resetAllNodesToApplyGravitation = function () {\n this.allNodesToApplyGravitation = null;\n};\n\nLGraphManager.prototype.getAllEdges = function () {\n if (this.allEdges == null) {\n var edgeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < graphs.length; i++) {\n edgeList = edgeList.concat(graphs[i].getEdges());\n }\n\n edgeList = edgeList.concat(this.edges);\n\n this.allEdges = edgeList;\n }\n return this.allEdges;\n};\n\nLGraphManager.prototype.getAllNodesToApplyGravitation = function () {\n return this.allNodesToApplyGravitation;\n};\n\nLGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) {\n if (this.allNodesToApplyGravitation != null) {\n throw \"assert failed\";\n }\n\n this.allNodesToApplyGravitation = nodeList;\n};\n\nLGraphManager.prototype.getRoot = function () {\n return this.rootGraph;\n};\n\nLGraphManager.prototype.setRootGraph = function (graph) {\n if (graph.getGraphManager() != this) {\n throw \"Root not in this graph mgr!\";\n }\n\n this.rootGraph = graph;\n // root graph must have a root node associated with it for convenience\n if (graph.parent == null) {\n graph.parent = this.layout.newNode(\"Root node\");\n }\n};\n\nLGraphManager.prototype.getLayout = function () {\n return this.layout;\n};\n\nLGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) {\n if (!(firstNode != null && secondNode != null)) {\n throw \"assert failed\";\n }\n\n if (firstNode == secondNode) {\n return true;\n }\n // Is second node an ancestor of the first one?\n var ownerGraph = firstNode.getOwner();\n var parentNode;\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == secondNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n // Is first node an ancestor of the second one?\n ownerGraph = secondNode.getOwner();\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == firstNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n\n return false;\n};\n\nLGraphManager.prototype.calcLowestCommonAncestors = function () {\n var edge;\n var sourceNode;\n var targetNode;\n var sourceAncestorGraph;\n var targetAncestorGraph;\n\n var edges = this.getAllEdges();\n var s = edges.length;\n for (var i = 0; i < s; i++) {\n edge = edges[i];\n\n sourceNode = edge.source;\n targetNode = edge.target;\n edge.lca = null;\n edge.sourceInLca = sourceNode;\n edge.targetInLca = targetNode;\n\n if (sourceNode == targetNode) {\n edge.lca = sourceNode.getOwner();\n continue;\n }\n\n sourceAncestorGraph = sourceNode.getOwner();\n\n while (edge.lca == null) {\n edge.targetInLca = targetNode;\n targetAncestorGraph = targetNode.getOwner();\n\n while (edge.lca == null) {\n if (targetAncestorGraph == sourceAncestorGraph) {\n edge.lca = targetAncestorGraph;\n break;\n }\n\n if (targetAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca != null) {\n throw \"assert failed\";\n }\n edge.targetInLca = targetAncestorGraph.getParent();\n targetAncestorGraph = edge.targetInLca.getOwner();\n }\n\n if (sourceAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca == null) {\n edge.sourceInLca = sourceAncestorGraph.getParent();\n sourceAncestorGraph = edge.sourceInLca.getOwner();\n }\n }\n\n if (edge.lca == null) {\n throw \"assert failed\";\n }\n }\n};\n\nLGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) {\n if (firstNode == secondNode) {\n return firstNode.getOwner();\n }\n var firstOwnerGraph = firstNode.getOwner();\n\n do {\n if (firstOwnerGraph == null) {\n break;\n }\n var secondOwnerGraph = secondNode.getOwner();\n\n do {\n if (secondOwnerGraph == null) {\n break;\n }\n\n if (secondOwnerGraph == firstOwnerGraph) {\n return secondOwnerGraph;\n }\n secondOwnerGraph = secondOwnerGraph.getParent().getOwner();\n } while (true);\n\n firstOwnerGraph = firstOwnerGraph.getParent().getOwner();\n } while (true);\n\n return firstOwnerGraph;\n};\n\nLGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) {\n if (graph == null && depth == null) {\n graph = this.rootGraph;\n depth = 1;\n }\n var node;\n\n var nodes = graph.getNodes();\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n node = nodes[i];\n node.inclusionTreeDepth = depth;\n\n if (node.child != null) {\n this.calcInclusionTreeDepths(node.child, depth + 1);\n }\n }\n};\n\nLGraphManager.prototype.includesInvalidEdge = function () {\n var edge;\n var edgesToRemove = [];\n\n var s = this.edges.length;\n for (var i = 0; i < s; i++) {\n edge = this.edges[i];\n\n if (this.isOneAncestorOfOther(edge.source, edge.target)) {\n edgesToRemove.push(edge);\n }\n }\n\n // Remove invalid edges from graph manager\n for (var i = 0; i < edgesToRemove.length; i++) {\n this.remove(edgesToRemove[i]);\n }\n\n // Invalid edges are cleared, so return false\n return false;\n};\n\nmodule.exports = LGraphManager;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This class maintains a list of static geometry related utility methods.\n *\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar Point = __webpack_require__(12);\n\nfunction IGeometry() {}\n\n/**\n * This method calculates *half* the amount in x and y directions of the two\n * input rectangles needed to separate them keeping their respective\n * positioning, and returns the result in the input array. An input\n * separation buffer added to the amount in both directions. We assume that\n * the two rectangles do intersect.\n */\nIGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) {\n if (!rectA.intersects(rectB)) {\n throw \"assert failed\";\n }\n\n var directions = new Array(2);\n\n this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);\n\n overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);\n overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);\n\n // update the overlapping amounts for the following cases:\n if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {\n /* Case x.1:\n *\n * rectA\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectB\n */\n overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());\n } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {\n /* Case x.2:\n *\n * rectB\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectA\n */\n overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());\n }\n if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {\n /* Case y.1:\n * ________ rectA\n * |\n * |\n * ______|____ rectB\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());\n } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {\n /* Case y.2:\n * ________ rectB\n * |\n * |\n * ______|____ rectA\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());\n }\n\n // find slope of the line passes two centers\n var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));\n // if centers are overlapped\n if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {\n // assume the slope is 1 (45 degree)\n slope = 1.0;\n }\n\n var moveByY = slope * overlapAmount[0];\n var moveByX = overlapAmount[1] / slope;\n if (overlapAmount[0] < moveByX) {\n moveByX = overlapAmount[0];\n } else {\n moveByY = overlapAmount[1];\n }\n // return half the amount so that if each rectangle is moved by these\n // amounts in opposite directions, overlap will be resolved\n overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);\n overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);\n};\n\n/**\n * This method decides the separation direction of overlapping nodes\n *\n * if directions[0] = -1, then rectA goes left\n * if directions[0] = 1, then rectA goes right\n * if directions[1] = -1, then rectA goes up\n * if directions[1] = 1, then rectA goes down\n */\nIGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) {\n if (rectA.getCenterX() < rectB.getCenterX()) {\n directions[0] = -1;\n } else {\n directions[0] = 1;\n }\n\n if (rectA.getCenterY() < rectB.getCenterY()) {\n directions[1] = -1;\n } else {\n directions[1] = 1;\n }\n};\n\n/**\n * This method calculates the intersection (clipping) points of the two\n * input rectangles with line segment defined by the centers of these two\n * rectangles. The clipping points are saved in the input double array and\n * whether or not the two rectangles overlap is returned.\n */\nIGeometry.getIntersection2 = function (rectA, rectB, result) {\n //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB\n var p1x = rectA.getCenterX();\n var p1y = rectA.getCenterY();\n var p2x = rectB.getCenterX();\n var p2y = rectB.getCenterY();\n\n //if two rectangles intersect, then clipping points are centers\n if (rectA.intersects(rectB)) {\n result[0] = p1x;\n result[1] = p1y;\n result[2] = p2x;\n result[3] = p2y;\n return true;\n }\n //variables for rectA\n var topLeftAx = rectA.getX();\n var topLeftAy = rectA.getY();\n var topRightAx = rectA.getRight();\n var bottomLeftAx = rectA.getX();\n var bottomLeftAy = rectA.getBottom();\n var bottomRightAx = rectA.getRight();\n var halfWidthA = rectA.getWidthHalf();\n var halfHeightA = rectA.getHeightHalf();\n //variables for rectB\n var topLeftBx = rectB.getX();\n var topLeftBy = rectB.getY();\n var topRightBx = rectB.getRight();\n var bottomLeftBx = rectB.getX();\n var bottomLeftBy = rectB.getBottom();\n var bottomRightBx = rectB.getRight();\n var halfWidthB = rectB.getWidthHalf();\n var halfHeightB = rectB.getHeightHalf();\n\n //flag whether clipping points are found\n var clipPointAFound = false;\n var clipPointBFound = false;\n\n // line is vertical\n if (p1x === p2x) {\n if (p1y > p2y) {\n result[0] = p1x;\n result[1] = topLeftAy;\n result[2] = p2x;\n result[3] = bottomLeftBy;\n return false;\n } else if (p1y < p2y) {\n result[0] = p1x;\n result[1] = bottomLeftAy;\n result[2] = p2x;\n result[3] = topLeftBy;\n return false;\n } else {\n //not line, return null;\n }\n }\n // line is horizontal\n else if (p1y === p2y) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = p1y;\n result[2] = topRightBx;\n result[3] = p2y;\n return false;\n } else if (p1x < p2x) {\n result[0] = topRightAx;\n result[1] = p1y;\n result[2] = topLeftBx;\n result[3] = p2y;\n return false;\n } else {\n //not valid line, return null;\n }\n } else {\n //slopes of rectA's and rectB's diagonals\n var slopeA = rectA.height / rectA.width;\n var slopeB = rectB.height / rectB.width;\n\n //slope of line between center of rectA and center of rectB\n var slopePrime = (p2y - p1y) / (p2x - p1x);\n var cardinalDirectionA = void 0;\n var cardinalDirectionB = void 0;\n var tempPointAx = void 0;\n var tempPointAy = void 0;\n var tempPointBx = void 0;\n var tempPointBy = void 0;\n\n //determine whether clipping point is the corner of nodeA\n if (-slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = bottomLeftAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = topRightAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n }\n } else if (slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = bottomRightAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n }\n }\n\n //determine whether clipping point is the corner of nodeB\n if (-slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = bottomLeftBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = topRightBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n }\n } else if (slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = topLeftBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = bottomRightBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n }\n }\n\n //if both clipping points are corners\n if (clipPointAFound && clipPointBFound) {\n return false;\n }\n\n //determine Cardinal Direction of rectangles\n if (p1x > p2x) {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);\n } else {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);\n }\n } else {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);\n } else {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);\n }\n }\n //calculate clipping Point if it is not found before\n if (!clipPointAFound) {\n switch (cardinalDirectionA) {\n case 1:\n tempPointAy = topLeftAy;\n tempPointAx = p1x + -halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 2:\n tempPointAx = bottomRightAx;\n tempPointAy = p1y + halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 3:\n tempPointAy = bottomLeftAy;\n tempPointAx = p1x + halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 4:\n tempPointAx = bottomLeftAx;\n tempPointAy = p1y + -halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n }\n }\n if (!clipPointBFound) {\n switch (cardinalDirectionB) {\n case 1:\n tempPointBy = topLeftBy;\n tempPointBx = p2x + -halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 2:\n tempPointBx = bottomRightBx;\n tempPointBy = p2y + halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 3:\n tempPointBy = bottomLeftBy;\n tempPointBx = p2x + halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 4:\n tempPointBx = bottomLeftBx;\n tempPointBy = p2y + -halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n }\n }\n }\n return false;\n};\n\n/**\n * This method returns in which cardinal direction does input point stays\n * 1: North\n * 2: East\n * 3: South\n * 4: West\n */\nIGeometry.getCardinalDirection = function (slope, slopePrime, line) {\n if (slope > slopePrime) {\n return line;\n } else {\n return 1 + line % 4;\n }\n};\n\n/**\n * This method calculates the intersection of the two lines defined by\n * point pairs (s1,s2) and (f1,f2).\n */\nIGeometry.getIntersection = function (s1, s2, f1, f2) {\n if (f2 == null) {\n return this.getIntersection2(s1, s2, f1);\n }\n\n var x1 = s1.x;\n var y1 = s1.y;\n var x2 = s2.x;\n var y2 = s2.y;\n var x3 = f1.x;\n var y3 = f1.y;\n var x4 = f2.x;\n var y4 = f2.y;\n var x = void 0,\n y = void 0; // intersection point\n var a1 = void 0,\n a2 = void 0,\n b1 = void 0,\n b2 = void 0,\n c1 = void 0,\n c2 = void 0; // coefficients of line eqns.\n var denom = void 0;\n\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 }\n\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 }\n\n denom = a1 * b2 - a2 * b1;\n\n if (denom === 0) {\n return null;\n }\n\n x = (b1 * c2 - b2 * c1) / denom;\n y = (a2 * c1 - a1 * c2) / denom;\n\n return new Point(x, y);\n};\n\n/**\n * This method finds and returns the angle of the vector from the + x-axis\n * in clockwise direction (compatible w/ Java coordinate system!).\n */\nIGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) {\n var C_angle = void 0;\n\n if (Cx !== Nx) {\n C_angle = Math.atan((Ny - Cy) / (Nx - Cx));\n\n if (Nx < Cx) {\n C_angle += Math.PI;\n } else if (Ny < Cy) {\n C_angle += this.TWO_PI;\n }\n } else if (Ny < Cy) {\n C_angle = this.ONE_AND_HALF_PI; // 270 degrees\n } else {\n C_angle = this.HALF_PI; // 90 degrees\n }\n\n return C_angle;\n};\n\n/**\n * This method checks whether the given two line segments (one with point\n * p1 and p2, the other with point p3 and p4) intersect at a point other\n * than these points.\n */\nIGeometry.doIntersect = function (p1, p2, p3, p4) {\n var a = p1.x;\n var b = p1.y;\n var c = p2.x;\n var d = p2.y;\n var p = p3.x;\n var q = p3.y;\n var r = p4.x;\n var s = p4.y;\n var det = (c - a) * (s - q) - (r - p) * (d - b);\n\n if (det === 0) {\n return false;\n } else {\n var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;\n var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;\n return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;\n }\n};\n\n/**\n * This method checks and calculates the intersection of \n * a line segment and a circle.\n */\nIGeometry.findCircleLineIntersections = function (Ex, Ey, Lx, Ly, Cx, Cy, r) {\n\n // E is the starting point of the ray,\n // L is the end point of the ray,\n // C is the center of sphere you're testing against\n // r is the radius of that sphere\n\n // Compute:\n // d = L - E ( Direction vector of ray, from start to end )\n // f = E - C ( Vector from center sphere to ray start )\n\n // Then the intersection is found by..\n // P = E + t * d\n // This is a parametric equation:\n // Px = Ex + tdx\n // Py = Ey + tdy\n\n // get a, b, c values\n var a = (Lx - Ex) * (Lx - Ex) + (Ly - Ey) * (Ly - Ey);\n var b = 2 * ((Ex - Cx) * (Lx - Ex) + (Ey - Cy) * (Ly - Ey));\n var c = (Ex - Cx) * (Ex - Cx) + (Ey - Cy) * (Ey - Cy) - r * r;\n\n // get discriminant\n var disc = b * b - 4 * a * c;\n if (disc >= 0) {\n // insert into quadratic formula\n var t1 = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n var t2 = (-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n var intersections = null;\n if (t1 >= 0 && t1 <= 1) {\n // t1 is the intersection, and it's closer than t2\n // (since t1 uses -b - discriminant)\n // Impale, Poke\n return [t1];\n }\n\n // here t1 didn't intersect so we are either started\n // inside the sphere or completely past it\n if (t2 >= 0 && t2 <= 1) {\n // ExitWound\n return [t2];\n }\n\n return intersections;\n } else return null;\n};\n\n// -----------------------------------------------------------------------------\n// Section: Class Constants\n// -----------------------------------------------------------------------------\n/**\n * Some useful pre-calculated constants\n */\nIGeometry.HALF_PI = 0.5 * Math.PI;\nIGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;\nIGeometry.TWO_PI = 2.0 * Math.PI;\nIGeometry.THREE_PI = 3.0 * Math.PI;\n\nmodule.exports = IGeometry;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction IMath() {}\n\n/**\n * This method returns the sign of the input value.\n */\nIMath.sign = function (value) {\n if (value > 0) {\n return 1;\n } else if (value < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\nIMath.floor = function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n};\n\nIMath.ceil = function (value) {\n return value < 0 ? Math.floor(value) : Math.ceil(value);\n};\n\nmodule.exports = IMath;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Integer() {}\n\nInteger.MAX_VALUE = 2147483647;\nInteger.MIN_VALUE = -2147483648;\n\nmodule.exports = Integer;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar nodeFrom = function nodeFrom(value) {\n return { value: value, next: null, prev: null };\n};\n\nvar add = function add(prev, node, next, list) {\n if (prev !== null) {\n prev.next = node;\n } else {\n list.head = node;\n }\n\n if (next !== null) {\n next.prev = node;\n } else {\n list.tail = node;\n }\n\n node.prev = prev;\n node.next = next;\n\n list.length++;\n\n return node;\n};\n\nvar _remove = function _remove(node, list) {\n var prev = node.prev,\n next = node.next;\n\n\n if (prev !== null) {\n prev.next = next;\n } else {\n list.head = next;\n }\n\n if (next !== null) {\n next.prev = prev;\n } else {\n list.tail = prev;\n }\n\n node.prev = node.next = null;\n\n list.length--;\n\n return node;\n};\n\nvar LinkedList = function () {\n function LinkedList(vals) {\n var _this = this;\n\n _classCallCheck(this, LinkedList);\n\n this.length = 0;\n this.head = null;\n this.tail = null;\n\n if (vals != null) {\n vals.forEach(function (v) {\n return _this.push(v);\n });\n }\n }\n\n _createClass(LinkedList, [{\n key: \"size\",\n value: function size() {\n return this.length;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(val, otherNode) {\n return add(otherNode.prev, nodeFrom(val), otherNode, this);\n }\n }, {\n key: \"insertAfter\",\n value: function insertAfter(val, otherNode) {\n return add(otherNode, nodeFrom(val), otherNode.next, this);\n }\n }, {\n key: \"insertNodeBefore\",\n value: function insertNodeBefore(newNode, otherNode) {\n return add(otherNode.prev, newNode, otherNode, this);\n }\n }, {\n key: \"insertNodeAfter\",\n value: function insertNodeAfter(newNode, otherNode) {\n return add(otherNode, newNode, otherNode.next, this);\n }\n }, {\n key: \"push\",\n value: function push(val) {\n return add(this.tail, nodeFrom(val), null, this);\n }\n }, {\n key: \"unshift\",\n value: function unshift(val) {\n return add(null, nodeFrom(val), this.head, this);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _remove(node, this);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n return _remove(this.tail, this).value;\n }\n }, {\n key: \"popNode\",\n value: function popNode() {\n return _remove(this.tail, this);\n }\n }, {\n key: \"shift\",\n value: function shift() {\n return _remove(this.head, this).value;\n }\n }, {\n key: \"shiftNode\",\n value: function shiftNode() {\n return _remove(this.head, this);\n }\n }, {\n key: \"get_object_at\",\n value: function get_object_at(index) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n return current.value;\n }\n }\n }, {\n key: \"set_object_at\",\n value: function set_object_at(index, value) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n current.value = value;\n }\n }\n }]);\n\n return LinkedList;\n}();\n\nmodule.exports = LinkedList;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\r\n *This class is the javascript implementation of the Point.java class in jdk\r\n */\nfunction Point(x, y, p) {\n this.x = null;\n this.y = null;\n if (x == null && y == null && p == null) {\n this.x = 0;\n this.y = 0;\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n this.x = x;\n this.y = y;\n } else if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.x = p.x;\n this.y = p.y;\n }\n}\n\nPoint.prototype.getX = function () {\n return this.x;\n};\n\nPoint.prototype.getY = function () {\n return this.y;\n};\n\nPoint.prototype.getLocation = function () {\n return new Point(this.x, this.y);\n};\n\nPoint.prototype.setLocation = function (x, y, p) {\n if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.setLocation(p.x, p.y);\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n //if both parameters are integer just move (x,y) location\n if (parseInt(x) == x && parseInt(y) == y) {\n this.move(x, y);\n } else {\n this.x = Math.floor(x + 0.5);\n this.y = Math.floor(y + 0.5);\n }\n }\n};\n\nPoint.prototype.move = function (x, y) {\n this.x = x;\n this.y = y;\n};\n\nPoint.prototype.translate = function (dx, dy) {\n this.x += dx;\n this.y += dy;\n};\n\nPoint.prototype.equals = function (obj) {\n if (obj.constructor.name == \"Point\") {\n var pt = obj;\n return this.x == pt.x && this.y == pt.y;\n }\n return this == obj;\n};\n\nPoint.prototype.toString = function () {\n return new Point().constructor.name + \"[x=\" + this.x + \",y=\" + this.y + \"]\";\n};\n\nmodule.exports = Point;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RectangleD(x, y, width, height) {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n\n if (x != null && y != null && width != null && height != null) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n}\n\nRectangleD.prototype.getX = function () {\n return this.x;\n};\n\nRectangleD.prototype.setX = function (x) {\n this.x = x;\n};\n\nRectangleD.prototype.getY = function () {\n return this.y;\n};\n\nRectangleD.prototype.setY = function (y) {\n this.y = y;\n};\n\nRectangleD.prototype.getWidth = function () {\n return this.width;\n};\n\nRectangleD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nRectangleD.prototype.getHeight = function () {\n return this.height;\n};\n\nRectangleD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nRectangleD.prototype.getRight = function () {\n return this.x + this.width;\n};\n\nRectangleD.prototype.getBottom = function () {\n return this.y + this.height;\n};\n\nRectangleD.prototype.intersects = function (a) {\n if (this.getRight() < a.x) {\n return false;\n }\n\n if (this.getBottom() < a.y) {\n return false;\n }\n\n if (a.getRight() < this.x) {\n return false;\n }\n\n if (a.getBottom() < this.y) {\n return false;\n }\n\n return true;\n};\n\nRectangleD.prototype.getCenterX = function () {\n return this.x + this.width / 2;\n};\n\nRectangleD.prototype.getMinX = function () {\n return this.getX();\n};\n\nRectangleD.prototype.getMaxX = function () {\n return this.getX() + this.width;\n};\n\nRectangleD.prototype.getCenterY = function () {\n return this.y + this.height / 2;\n};\n\nRectangleD.prototype.getMinY = function () {\n return this.getY();\n};\n\nRectangleD.prototype.getMaxY = function () {\n return this.getY() + this.height;\n};\n\nRectangleD.prototype.getWidthHalf = function () {\n return this.width / 2;\n};\n\nRectangleD.prototype.getHeightHalf = function () {\n return this.height / 2;\n};\n\nmodule.exports = RectangleD;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction UniqueIDGeneretor() {}\n\nUniqueIDGeneretor.lastID = 0;\n\nUniqueIDGeneretor.createID = function (obj) {\n if (UniqueIDGeneretor.isPrimitive(obj)) {\n return obj;\n }\n if (obj.uniqueID != null) {\n return obj.uniqueID;\n }\n obj.uniqueID = UniqueIDGeneretor.getString();\n UniqueIDGeneretor.lastID++;\n return obj.uniqueID;\n};\n\nUniqueIDGeneretor.getString = function (id) {\n if (id == null) id = UniqueIDGeneretor.lastID;\n return \"Object#\" + id + \"\";\n};\n\nUniqueIDGeneretor.isPrimitive = function (arg) {\n var type = typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg);\n return arg == null || type != \"object\" && type != \"function\";\n};\n\nmodule.exports = UniqueIDGeneretor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(7);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar LGraph = __webpack_require__(6);\nvar PointD = __webpack_require__(5);\nvar Transform = __webpack_require__(17);\nvar Emitter = __webpack_require__(29);\n\nfunction Layout(isRemoteUse) {\n Emitter.call(this);\n\n //Layout Quality: 0:draft, 1:default, 2:proof\n this.layoutQuality = LayoutConstants.QUALITY;\n //Whether layout should create bendpoints as needed or not\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n //Whether layout should be incremental or not\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n //Whether we animate from before to after layout node positions\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n //Whether we animate the layout process or not\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n //Number iterations that should be done between two successive animations\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n /**\r\n * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When\r\n * they are, both spring and repulsion forces between two leaf nodes can be\r\n * calculated without the expensive clipping point calculations, resulting\r\n * in major speed-up.\r\n */\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n /**\r\n * This is used for creation of bendpoints by using dummy nodes and edges.\r\n * Maps an LEdge to its dummy bendpoint path.\r\n */\n this.edgeToDummyNodes = new Map();\n this.graphManager = new LGraphManager(this);\n this.isLayoutFinished = false;\n this.isSubLayout = false;\n this.isRemoteUse = false;\n\n if (isRemoteUse != null) {\n this.isRemoteUse = isRemoteUse;\n }\n}\n\nLayout.RANDOM_SEED = 1;\n\nLayout.prototype = Object.create(Emitter.prototype);\n\nLayout.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLayout.prototype.getAllNodes = function () {\n return this.graphManager.getAllNodes();\n};\n\nLayout.prototype.getAllEdges = function () {\n return this.graphManager.getAllEdges();\n};\n\nLayout.prototype.getAllNodesToApplyGravitation = function () {\n return this.graphManager.getAllNodesToApplyGravitation();\n};\n\nLayout.prototype.newGraphManager = function () {\n var gm = new LGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nLayout.prototype.newGraph = function (vGraph) {\n return new LGraph(null, this.graphManager, vGraph);\n};\n\nLayout.prototype.newNode = function (vNode) {\n return new LNode(this.graphManager, vNode);\n};\n\nLayout.prototype.newEdge = function (vEdge) {\n return new LEdge(null, null, vEdge);\n};\n\nLayout.prototype.checkLayoutSuccess = function () {\n return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();\n};\n\nLayout.prototype.runLayout = function () {\n this.isLayoutFinished = false;\n\n if (this.tilingPreLayout) {\n this.tilingPreLayout();\n }\n\n this.initParameters();\n var isLayoutSuccessfull;\n\n if (this.checkLayoutSuccess()) {\n isLayoutSuccessfull = false;\n } else {\n isLayoutSuccessfull = this.layout();\n }\n\n if (LayoutConstants.ANIMATE === 'during') {\n // If this is a 'during' layout animation. Layout is not finished yet. \n // We need to perform these in index.js when layout is really finished.\n return false;\n }\n\n if (isLayoutSuccessfull) {\n if (!this.isSubLayout) {\n this.doPostLayout();\n }\n }\n\n if (this.tilingPostLayout) {\n this.tilingPostLayout();\n }\n\n this.isLayoutFinished = true;\n\n return isLayoutSuccessfull;\n};\n\n/**\r\n * This method performs the operations required after layout.\r\n */\nLayout.prototype.doPostLayout = function () {\n //assert !isSubLayout : \"Should not be called on sub-layout!\";\n // Propagate geometric changes to v-level objects\n if (!this.incremental) {\n this.transform();\n }\n this.update();\n};\n\n/**\r\n * This method updates the geometry of the target graph according to\r\n * calculated layout.\r\n */\nLayout.prototype.update2 = function () {\n // update bend points\n if (this.createBendsAsNeeded) {\n this.createBendpointsFromDummyNodes();\n\n // reset all edges, since the topology has changed\n this.graphManager.resetAllEdges();\n }\n\n // perform edge, node and root updates if layout is not called\n // remotely\n if (!this.isRemoteUse) {\n // update all edges\n var edge;\n var allEdges = this.graphManager.getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n // this.update(edge);\n }\n\n // recursively update nodes\n var node;\n var nodes = this.graphManager.getRoot().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n // this.update(node);\n }\n\n // update root graph\n this.update(this.graphManager.getRoot());\n }\n};\n\nLayout.prototype.update = function (obj) {\n if (obj == null) {\n this.update2();\n } else if (obj instanceof LNode) {\n var node = obj;\n if (node.getChild() != null) {\n // since node is compound, recursively update child nodes\n var nodes = node.getChild().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n update(nodes[i]);\n }\n }\n\n // if the l-level node is associated with a v-level graph object,\n // then it is assumed that the v-level node implements the\n // interface Updatable.\n if (node.vGraphObject != null) {\n // cast to Updatable without any type check\n var vNode = node.vGraphObject;\n\n // call the update method of the interface\n vNode.update(node);\n }\n } else if (obj instanceof LEdge) {\n var edge = obj;\n // if the l-level edge is associated with a v-level graph object,\n // then it is assumed that the v-level edge implements the\n // interface Updatable.\n\n if (edge.vGraphObject != null) {\n // cast to Updatable without any type check\n var vEdge = edge.vGraphObject;\n\n // call the update method of the interface\n vEdge.update(edge);\n }\n } else if (obj instanceof LGraph) {\n var graph = obj;\n // if the l-level graph is associated with a v-level graph object,\n // then it is assumed that the v-level object implements the\n // interface Updatable.\n\n if (graph.vGraphObject != null) {\n // cast to Updatable without any type check\n var vGraph = graph.vGraphObject;\n\n // call the update method of the interface\n vGraph.update(graph);\n }\n }\n};\n\n/**\r\n * This method is used to set all layout parameters to default values\r\n * determined at compile time.\r\n */\nLayout.prototype.initParameters = function () {\n if (!this.isSubLayout) {\n this.layoutQuality = LayoutConstants.QUALITY;\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n }\n\n if (this.animationDuringLayout) {\n this.animationOnLayout = false;\n }\n};\n\nLayout.prototype.transform = function (newLeftTop) {\n if (newLeftTop == undefined) {\n this.transform(new PointD(0, 0));\n } else {\n // create a transformation object (from Eclipse to layout). When an\n // inverse transform is applied, we get upper-left coordinate of the\n // drawing or the root graph at given input coordinate (some margins\n // already included in calculation of left-top).\n\n var trans = new Transform();\n var leftTop = this.graphManager.getRoot().updateLeftTop();\n\n if (leftTop != null) {\n trans.setWorldOrgX(newLeftTop.x);\n trans.setWorldOrgY(newLeftTop.y);\n\n trans.setDeviceOrgX(leftTop.x);\n trans.setDeviceOrgY(leftTop.y);\n\n var nodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n node.transform(trans);\n }\n }\n }\n};\n\nLayout.prototype.positionNodesRandomly = function (graph) {\n\n if (graph == undefined) {\n //assert !this.incremental;\n this.positionNodesRandomly(this.getGraphManager().getRoot());\n this.getGraphManager().getRoot().updateBounds(true);\n } else {\n var lNode;\n var childGraph;\n\n var nodes = graph.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n lNode = nodes[i];\n childGraph = lNode.getChild();\n\n if (childGraph == null) {\n lNode.scatter();\n } else if (childGraph.getNodes().length == 0) {\n lNode.scatter();\n } else {\n this.positionNodesRandomly(childGraph);\n lNode.updateBounds();\n }\n }\n }\n};\n\n/**\r\n * This method returns a list of trees where each tree is represented as a\r\n * list of l-nodes. The method returns a list of size 0 when:\r\n * - The graph is not flat or\r\n * - One of the component(s) of the graph is not a tree.\r\n */\nLayout.prototype.getFlatForest = function () {\n var flatForest = [];\n var isForest = true;\n\n // Quick reference for all nodes in the graph manager associated with\n // this layout. The list should not be changed.\n var allNodes = this.graphManager.getRoot().getNodes();\n\n // First be sure that the graph is flat\n var isFlat = true;\n\n for (var i = 0; i < allNodes.length; i++) {\n if (allNodes[i].getChild() != null) {\n isFlat = false;\n }\n }\n\n // Return empty forest if the graph is not flat.\n if (!isFlat) {\n return flatForest;\n }\n\n // Run BFS for each component of the graph.\n\n var visited = new Set();\n var toBeVisited = [];\n var parents = new Map();\n var unProcessedNodes = [];\n\n unProcessedNodes = unProcessedNodes.concat(allNodes);\n\n // Each iteration of this loop finds a component of the graph and\n // decides whether it is a tree or not. If it is a tree, adds it to the\n // forest and continued with the next component.\n\n while (unProcessedNodes.length > 0 && isForest) {\n toBeVisited.push(unProcessedNodes[0]);\n\n // Start the BFS. Each iteration of this loop visits a node in a\n // BFS manner.\n while (toBeVisited.length > 0 && isForest) {\n //pool operation\n var currentNode = toBeVisited[0];\n toBeVisited.splice(0, 1);\n visited.add(currentNode);\n\n // Traverse all neighbors of this node\n var neighborEdges = currentNode.getEdges();\n\n for (var i = 0; i < neighborEdges.length; i++) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);\n\n // If BFS is not growing from this neighbor.\n if (parents.get(currentNode) != currentNeighbor) {\n // We haven't previously visited this neighbor.\n if (!visited.has(currentNeighbor)) {\n toBeVisited.push(currentNeighbor);\n parents.set(currentNeighbor, currentNode);\n }\n // Since we have previously visited this neighbor and\n // this neighbor is not parent of currentNode, given\n // graph contains a component that is not tree, hence\n // it is not a forest.\n else {\n isForest = false;\n break;\n }\n }\n }\n }\n\n // The graph contains a component that is not a tree. Empty\n // previously found trees. The method will end.\n if (!isForest) {\n flatForest = [];\n }\n // Save currently visited nodes as a tree in our forest. Reset\n // visited and parents lists. Continue with the next component of\n // the graph, if any.\n else {\n var temp = [].concat(_toConsumableArray(visited));\n flatForest.push(temp);\n //flatForest = flatForest.concat(temp);\n //unProcessedNodes.removeAll(visited);\n for (var i = 0; i < temp.length; i++) {\n var value = temp[i];\n var index = unProcessedNodes.indexOf(value);\n if (index > -1) {\n unProcessedNodes.splice(index, 1);\n }\n }\n visited = new Set();\n parents = new Map();\n }\n }\n\n return flatForest;\n};\n\n/**\r\n * This method creates dummy nodes (an l-level node with minimal dimensions)\r\n * for the given edge (one per bendpoint). The existing l-level structure\r\n * is updated accordingly.\r\n */\nLayout.prototype.createDummyNodesForBendpoints = function (edge) {\n var dummyNodes = [];\n var prev = edge.source;\n\n var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);\n\n for (var i = 0; i < edge.bendpoints.length; i++) {\n // create new dummy node\n var dummyNode = this.newNode(null);\n dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));\n\n graph.add(dummyNode);\n\n // create new dummy edge between prev and dummy node\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, dummyNode);\n\n dummyNodes.add(dummyNode);\n prev = dummyNode;\n }\n\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, edge.target);\n\n this.edgeToDummyNodes.set(edge, dummyNodes);\n\n // remove real edge from graph manager if it is inter-graph\n if (edge.isInterGraph()) {\n this.graphManager.remove(edge);\n }\n // else, remove the edge from the current graph\n else {\n graph.remove(edge);\n }\n\n return dummyNodes;\n};\n\n/**\r\n * This method creates bendpoints for edges from the dummy nodes\r\n * at l-level.\r\n */\nLayout.prototype.createBendpointsFromDummyNodes = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);\n\n for (var k = 0; k < edges.length; k++) {\n var lEdge = edges[k];\n\n if (lEdge.bendpoints.length > 0) {\n var path = this.edgeToDummyNodes.get(lEdge);\n\n for (var i = 0; i < path.length; i++) {\n var dummyNode = path[i];\n var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());\n\n // update bendpoint's location according to dummy node\n var ebp = lEdge.bendpoints.get(i);\n ebp.x = p.x;\n ebp.y = p.y;\n\n // remove the dummy node, dummy edges incident with this\n // dummy node is also removed (within the remove method)\n dummyNode.getOwner().remove(dummyNode);\n }\n\n // add the real edge to graph\n this.graphManager.add(lEdge, lEdge.source, lEdge.target);\n }\n }\n};\n\nLayout.transform = function (sliderValue, defaultValue, minDiv, maxMul) {\n if (minDiv != undefined && maxMul != undefined) {\n var value = defaultValue;\n\n if (sliderValue <= 50) {\n var minValue = defaultValue / minDiv;\n value -= (defaultValue - minValue) / 50 * (50 - sliderValue);\n } else {\n var maxValue = defaultValue * maxMul;\n value += (maxValue - defaultValue) / 50 * (sliderValue - 50);\n }\n\n return value;\n } else {\n var a, b;\n\n if (sliderValue <= 50) {\n a = 9.0 * defaultValue / 500.0;\n b = defaultValue / 10.0;\n } else {\n a = 9.0 * defaultValue / 50.0;\n b = -8 * defaultValue;\n }\n\n return a * sliderValue + b;\n }\n};\n\n/**\r\n * This method finds and returns the center of the given nodes, assuming\r\n * that the given nodes form a tree in themselves.\r\n */\nLayout.findCenterOfTree = function (nodes) {\n var list = [];\n list = list.concat(nodes);\n\n var removedNodes = [];\n var remainingDegrees = new Map();\n var foundCenter = false;\n var centerNode = null;\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n var degree = node.getNeighborsList().size;\n remainingDegrees.set(node, node.getNeighborsList().size);\n\n if (degree == 1) {\n removedNodes.push(node);\n }\n }\n\n var tempList = [];\n tempList = tempList.concat(removedNodes);\n\n while (!foundCenter) {\n var tempList2 = [];\n tempList2 = tempList2.concat(tempList);\n tempList = [];\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n\n var index = list.indexOf(node);\n if (index >= 0) {\n list.splice(index, 1);\n }\n\n var neighbours = node.getNeighborsList();\n\n neighbours.forEach(function (neighbour) {\n if (removedNodes.indexOf(neighbour) < 0) {\n var otherDegree = remainingDegrees.get(neighbour);\n var newDegree = otherDegree - 1;\n\n if (newDegree == 1) {\n tempList.push(neighbour);\n }\n\n remainingDegrees.set(neighbour, newDegree);\n }\n });\n }\n\n removedNodes = removedNodes.concat(tempList);\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n }\n\n return centerNode;\n};\n\n/**\r\n * During the coarsening process, this layout may be referenced by two graph managers\r\n * this setter function grants access to change the currently being used graph manager\r\n */\nLayout.prototype.setGraphManager = function (gm) {\n this.graphManager = gm;\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RandomSeed() {}\n// adapted from: https://stackoverflow.com/a/19303725\nRandomSeed.seed = 1;\nRandomSeed.x = 0;\n\nRandomSeed.nextDouble = function () {\n RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000;\n return RandomSeed.x - Math.floor(RandomSeed.x);\n};\n\nmodule.exports = RandomSeed;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PointD = __webpack_require__(5);\n\nfunction Transform(x, y) {\n this.lworldOrgX = 0.0;\n this.lworldOrgY = 0.0;\n this.ldeviceOrgX = 0.0;\n this.ldeviceOrgY = 0.0;\n this.lworldExtX = 1.0;\n this.lworldExtY = 1.0;\n this.ldeviceExtX = 1.0;\n this.ldeviceExtY = 1.0;\n}\n\nTransform.prototype.getWorldOrgX = function () {\n return this.lworldOrgX;\n};\n\nTransform.prototype.setWorldOrgX = function (wox) {\n this.lworldOrgX = wox;\n};\n\nTransform.prototype.getWorldOrgY = function () {\n return this.lworldOrgY;\n};\n\nTransform.prototype.setWorldOrgY = function (woy) {\n this.lworldOrgY = woy;\n};\n\nTransform.prototype.getWorldExtX = function () {\n return this.lworldExtX;\n};\n\nTransform.prototype.setWorldExtX = function (wex) {\n this.lworldExtX = wex;\n};\n\nTransform.prototype.getWorldExtY = function () {\n return this.lworldExtY;\n};\n\nTransform.prototype.setWorldExtY = function (wey) {\n this.lworldExtY = wey;\n};\n\n/* Device related */\n\nTransform.prototype.getDeviceOrgX = function () {\n return this.ldeviceOrgX;\n};\n\nTransform.prototype.setDeviceOrgX = function (dox) {\n this.ldeviceOrgX = dox;\n};\n\nTransform.prototype.getDeviceOrgY = function () {\n return this.ldeviceOrgY;\n};\n\nTransform.prototype.setDeviceOrgY = function (doy) {\n this.ldeviceOrgY = doy;\n};\n\nTransform.prototype.getDeviceExtX = function () {\n return this.ldeviceExtX;\n};\n\nTransform.prototype.setDeviceExtX = function (dex) {\n this.ldeviceExtX = dex;\n};\n\nTransform.prototype.getDeviceExtY = function () {\n return this.ldeviceExtY;\n};\n\nTransform.prototype.setDeviceExtY = function (dey) {\n this.ldeviceExtY = dey;\n};\n\nTransform.prototype.transformX = function (x) {\n var xDevice = 0.0;\n var worldExtX = this.lworldExtX;\n if (worldExtX != 0.0) {\n xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;\n }\n\n return xDevice;\n};\n\nTransform.prototype.transformY = function (y) {\n var yDevice = 0.0;\n var worldExtY = this.lworldExtY;\n if (worldExtY != 0.0) {\n yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;\n }\n\n return yDevice;\n};\n\nTransform.prototype.inverseTransformX = function (x) {\n var xWorld = 0.0;\n var deviceExtX = this.ldeviceExtX;\n if (deviceExtX != 0.0) {\n xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;\n }\n\n return xWorld;\n};\n\nTransform.prototype.inverseTransformY = function (y) {\n var yWorld = 0.0;\n var deviceExtY = this.ldeviceExtY;\n if (deviceExtY != 0.0) {\n yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;\n }\n return yWorld;\n};\n\nTransform.prototype.inverseTransformPoint = function (inPoint) {\n var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));\n return outPoint;\n};\n\nmodule.exports = Transform;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar Layout = __webpack_require__(15);\nvar FDLayoutConstants = __webpack_require__(4);\nvar LayoutConstants = __webpack_require__(0);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction FDLayout() {\n Layout.call(this);\n\n this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.totalDisplacement = 0.0;\n this.oldTotalDisplacement = 0.0;\n this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;\n}\n\nFDLayout.prototype = Object.create(Layout.prototype);\n\nfor (var prop in Layout) {\n FDLayout[prop] = Layout[prop];\n}\n\nFDLayout.prototype.initParameters = function () {\n Layout.prototype.initParameters.call(this, arguments);\n\n this.totalIterations = 0;\n this.notAnimatedIterations = 0;\n\n this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;\n\n this.grid = [];\n};\n\nFDLayout.prototype.calcIdealEdgeLengths = function () {\n var edge;\n var originalIdealLength;\n var lcaDepth;\n var source;\n var target;\n var sizeOfSourceInLca;\n var sizeOfTargetInLca;\n\n var allEdges = this.getGraphManager().getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n\n originalIdealLength = edge.idealLength;\n\n if (edge.isInterGraph) {\n source = edge.getSource();\n target = edge.getTarget();\n\n sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();\n sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();\n\n if (this.useSmartIdealEdgeLengthCalculation) {\n edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;\n }\n\n lcaDepth = edge.getLca().getInclusionTreeDepth();\n\n edge.idealLength += originalIdealLength * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);\n }\n }\n};\n\nFDLayout.prototype.initSpringEmbedder = function () {\n\n var s = this.getAllNodes().length;\n if (this.incremental) {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n }\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;\n } else {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n } else {\n this.coolingFactor = 1.0;\n }\n this.initialCoolingFactor = this.coolingFactor;\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;\n }\n\n this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);\n\n // Reassign this attribute by using new constant value\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;\n\n this.repulsionRange = this.calcRepulsionRange();\n};\n\nFDLayout.prototype.calcSpringForces = function () {\n var lEdges = this.getAllEdges();\n var edge;\n\n for (var i = 0; i < lEdges.length; i++) {\n edge = lEdges[i];\n\n this.calcSpringForce(edge, edge.idealLength);\n }\n};\n\nFDLayout.prototype.calcRepulsionForces = function () {\n var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var i, j;\n var nodeA, nodeB;\n var lNodes = this.getAllNodes();\n var processedNodeSet;\n\n if (this.useFRGridVariant) {\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {\n this.updateGrid();\n }\n\n processedNodeSet = new Set();\n\n // calculate repulsion forces between each nodes and its surrounding\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);\n processedNodeSet.add(nodeA);\n }\n } else {\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n\n for (j = i + 1; j < lNodes.length; j++) {\n nodeB = lNodes[j];\n\n // If both nodes are not members of the same graph, skip.\n if (nodeA.getOwner() != nodeB.getOwner()) {\n continue;\n }\n\n this.calcRepulsionForce(nodeA, nodeB);\n }\n }\n }\n};\n\nFDLayout.prototype.calcGravitationalForces = function () {\n var node;\n var lNodes = this.getAllNodesToApplyGravitation();\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n this.calcGravitationalForce(node);\n }\n};\n\nFDLayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\nFDLayout.prototype.calcSpringForce = function (edge, idealLength) {\n var sourceNode = edge.getSource();\n var targetNode = edge.getTarget();\n\n var length;\n var springForce;\n var springForceX;\n var springForceY;\n\n // Update edge length\n if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {\n edge.updateLengthSimple();\n } else {\n edge.updateLength();\n\n if (edge.isOverlapingSourceAndTarget) {\n return;\n }\n }\n\n length = edge.getLength();\n\n if (length == 0) return;\n\n // Calculate spring forces\n springForce = edge.edgeElasticity * (length - idealLength);\n\n // Project force onto x and y axes\n springForceX = springForce * (edge.lengthX / length);\n springForceY = springForce * (edge.lengthY / length);\n\n // Apply forces on the end nodes\n sourceNode.springForceX += springForceX;\n sourceNode.springForceY += springForceY;\n targetNode.springForceX -= springForceX;\n targetNode.springForceY -= springForceY;\n};\n\nFDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) {\n var rectA = nodeA.getRect();\n var rectB = nodeB.getRect();\n var overlapAmount = new Array(2);\n var clipPoints = new Array(4);\n var distanceX;\n var distanceY;\n var distanceSquared;\n var distance;\n var repulsionForce;\n var repulsionForceX;\n var repulsionForceY;\n\n if (rectA.intersects(rectB)) // two nodes overlap\n {\n // calculate separation amount in x and y directions\n IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0);\n\n repulsionForceX = 2 * overlapAmount[0];\n repulsionForceY = 2 * overlapAmount[1];\n\n var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);\n\n // Apply forces on the two nodes\n nodeA.repulsionForceX -= childrenConstant * repulsionForceX;\n nodeA.repulsionForceY -= childrenConstant * repulsionForceY;\n nodeB.repulsionForceX += childrenConstant * repulsionForceX;\n nodeB.repulsionForceY += childrenConstant * repulsionForceY;\n } else // no overlap\n {\n // calculate distance\n\n if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers\n {\n distanceX = rectB.getCenterX() - rectA.getCenterX();\n distanceY = rectB.getCenterY() - rectA.getCenterY();\n } else // use clipping points\n {\n IGeometry.getIntersection(rectA, rectB, clipPoints);\n\n distanceX = clipPoints[2] - clipPoints[0];\n distanceY = clipPoints[3] - clipPoints[1];\n }\n\n // No repulsion range. FR grid variant should take care of this.\n if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n distanceSquared = distanceX * distanceX + distanceY * distanceY;\n distance = Math.sqrt(distanceSquared);\n\n // Here we use half of the nodes' repulsion values for backward compatibility\n repulsionForce = (nodeA.nodeRepulsion / 2 + nodeB.nodeRepulsion / 2) * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;\n\n // Project force onto x and y axes\n repulsionForceX = repulsionForce * distanceX / distance;\n repulsionForceY = repulsionForce * distanceY / distance;\n\n // Apply forces on the two nodes \n nodeA.repulsionForceX -= repulsionForceX;\n nodeA.repulsionForceY -= repulsionForceY;\n nodeB.repulsionForceX += repulsionForceX;\n nodeB.repulsionForceY += repulsionForceY;\n }\n};\n\nFDLayout.prototype.calcGravitationalForce = function (node) {\n var ownerGraph;\n var ownerCenterX;\n var ownerCenterY;\n var distanceX;\n var distanceY;\n var absDistanceX;\n var absDistanceY;\n var estimatedSize;\n ownerGraph = node.getOwner();\n\n ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;\n ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;\n distanceX = node.getCenterX() - ownerCenterX;\n distanceY = node.getCenterY() - ownerCenterY;\n absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;\n absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;\n\n if (node.getOwner() == this.graphManager.getRoot()) // in the root graph\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX;\n node.gravitationForceY = -this.gravityConstant * distanceY;\n }\n } else // inside a compound\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;\n node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;\n }\n }\n};\n\nFDLayout.prototype.isConverged = function () {\n var converged;\n var oscilating = false;\n\n if (this.totalIterations > this.maxIterations / 3) {\n oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;\n }\n\n converged = this.totalDisplacement < this.totalDisplacementThreshold;\n\n this.oldTotalDisplacement = this.totalDisplacement;\n\n return converged || oscilating;\n};\n\nFDLayout.prototype.animate = function () {\n if (this.animationDuringLayout && !this.isSubLayout) {\n if (this.notAnimatedIterations == this.animationPeriod) {\n this.update();\n this.notAnimatedIterations = 0;\n } else {\n this.notAnimatedIterations++;\n }\n }\n};\n\n//This method calculates the number of children (weight) for all nodes\nFDLayout.prototype.calcNoOfChildrenForAllNodes = function () {\n var node;\n var allNodes = this.graphManager.getAllNodes();\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n node.noOfChildren = node.getNoOfChildren();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: FR-Grid Variant Repulsion Force Calculation\n// -----------------------------------------------------------------------------\n\nFDLayout.prototype.calcGrid = function (graph) {\n\n var sizeX = 0;\n var sizeY = 0;\n\n sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));\n sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));\n\n var grid = new Array(sizeX);\n\n for (var i = 0; i < sizeX; i++) {\n grid[i] = new Array(sizeY);\n }\n\n for (var i = 0; i < sizeX; i++) {\n for (var j = 0; j < sizeY; j++) {\n grid[i][j] = new Array();\n }\n }\n\n return grid;\n};\n\nFDLayout.prototype.addNodeToGrid = function (v, left, top) {\n\n var startX = 0;\n var finishX = 0;\n var startY = 0;\n var finishY = 0;\n\n startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));\n finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));\n startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));\n finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));\n\n for (var i = startX; i <= finishX; i++) {\n for (var j = startY; j <= finishY; j++) {\n this.grid[i][j].push(v);\n v.setGridCoordinates(startX, finishX, startY, finishY);\n }\n }\n};\n\nFDLayout.prototype.updateGrid = function () {\n var i;\n var nodeA;\n var lNodes = this.getAllNodes();\n\n this.grid = this.calcGrid(this.graphManager.getRoot());\n\n // put all nodes to proper grid cells\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());\n }\n};\n\nFDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {\n\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {\n var surrounding = new Set();\n nodeA.surrounding = new Array();\n var nodeB;\n var grid = this.grid;\n\n for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {\n for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {\n if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {\n for (var k = 0; k < grid[i][j].length; k++) {\n nodeB = grid[i][j][k];\n\n // If both nodes are not members of the same graph, \n // or both nodes are the same, skip.\n if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {\n continue;\n }\n\n // check if the repulsion force between\n // nodeA and nodeB has already been calculated\n if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {\n var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);\n var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);\n\n // if the distance between nodeA and nodeB \n // is less then calculation range\n if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {\n //then add nodeB to surrounding of nodeA\n surrounding.add(nodeB);\n }\n }\n }\n }\n }\n }\n\n nodeA.surrounding = [].concat(_toConsumableArray(surrounding));\n }\n for (i = 0; i < nodeA.surrounding.length; i++) {\n this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);\n }\n};\n\nFDLayout.prototype.calcRepulsionRange = function () {\n return 0.0;\n};\n\nmodule.exports = FDLayout;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEdge = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(4);\n\nfunction FDLayoutEdge(source, target, vEdge) {\n LEdge.call(this, source, target, vEdge);\n\n // Ideal length and elasticity value for this edge\n this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n this.edgeElasticity = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n}\n\nFDLayoutEdge.prototype = Object.create(LEdge.prototype);\n\nfor (var prop in LEdge) {\n FDLayoutEdge[prop] = LEdge[prop];\n}\n\nmodule.exports = FDLayoutEdge;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LNode = __webpack_require__(3);\nvar FDLayoutConstants = __webpack_require__(4);\n\nfunction FDLayoutNode(gm, loc, size, vNode) {\n // alternative constructor is handled inside LNode\n LNode.call(this, gm, loc, size, vNode);\n\n // Repulsion value of this node\n this.nodeRepulsion = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n\n //Spring, repulsion and gravitational forces acting on this node\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n //Amount by which this node is to be moved in this iteration\n this.displacementX = 0;\n this.displacementY = 0;\n\n //Start and finish grid coordinates that this node is fallen into\n this.startX = 0;\n this.finishX = 0;\n this.startY = 0;\n this.finishY = 0;\n\n //Geometric neighbors of this node\n this.surrounding = [];\n}\n\nFDLayoutNode.prototype = Object.create(LNode.prototype);\n\nfor (var prop in LNode) {\n FDLayoutNode[prop] = LNode[prop];\n}\n\nFDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) {\n this.startX = _startX;\n this.finishX = _finishX;\n this.startY = _startY;\n this.finishY = _finishY;\n};\n\nmodule.exports = FDLayoutNode;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction DimensionD(width, height) {\n this.width = 0;\n this.height = 0;\n if (width !== null && height !== null) {\n this.height = height;\n this.width = width;\n }\n}\n\nDimensionD.prototype.getWidth = function () {\n return this.width;\n};\n\nDimensionD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nDimensionD.prototype.getHeight = function () {\n return this.height;\n};\n\nDimensionD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nmodule.exports = DimensionD;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashMap() {\n this.map = {};\n this.keys = [];\n}\n\nHashMap.prototype.put = function (key, value) {\n var theId = UniqueIDGeneretor.createID(key);\n if (!this.contains(theId)) {\n this.map[theId] = value;\n this.keys.push(key);\n }\n};\n\nHashMap.prototype.contains = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[key] != null;\n};\n\nHashMap.prototype.get = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[theId];\n};\n\nHashMap.prototype.keySet = function () {\n return this.keys;\n};\n\nmodule.exports = HashMap;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashSet() {\n this.set = {};\n}\n;\n\nHashSet.prototype.add = function (obj) {\n var theId = UniqueIDGeneretor.createID(obj);\n if (!this.contains(theId)) this.set[theId] = obj;\n};\n\nHashSet.prototype.remove = function (obj) {\n delete this.set[UniqueIDGeneretor.createID(obj)];\n};\n\nHashSet.prototype.clear = function () {\n this.set = {};\n};\n\nHashSet.prototype.contains = function (obj) {\n return this.set[UniqueIDGeneretor.createID(obj)] == obj;\n};\n\nHashSet.prototype.isEmpty = function () {\n return this.size() === 0;\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\n//concats this.set to the given list\nHashSet.prototype.addAllTo = function (list) {\n var keys = Object.keys(this.set);\n var length = keys.length;\n for (var i = 0; i < length; i++) {\n list.push(this.set[keys[i]]);\n }\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\nHashSet.prototype.addAll = function (list) {\n var s = list.length;\n for (var i = 0; i < s; i++) {\n var v = list[i];\n this.add(v);\n }\n};\n\nmodule.exports = HashSet;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Some matrix (1d and 2d array) operations\nfunction Matrix() {}\n\n/**\n * matrix multiplication\n * array1, array2 and result are 2d arrays\n */\nMatrix.multMat = function (array1, array2) {\n var result = [];\n\n for (var i = 0; i < array1.length; i++) {\n result[i] = [];\n for (var j = 0; j < array2[0].length; j++) {\n result[i][j] = 0;\n for (var k = 0; k < array1[0].length; k++) {\n result[i][j] += array1[i][k] * array2[k][j];\n }\n }\n }\n return result;\n};\n\n/**\n * matrix transpose\n * array and result are 2d arrays\n */\nMatrix.transpose = function (array) {\n var result = [];\n\n for (var i = 0; i < array[0].length; i++) {\n result[i] = [];\n for (var j = 0; j < array.length; j++) {\n result[i][j] = array[j][i];\n }\n }\n\n return result;\n};\n\n/**\n * multiply array with constant\n * array and result are 1d arrays\n */\nMatrix.multCons = function (array, constant) {\n var result = [];\n\n for (var i = 0; i < array.length; i++) {\n result[i] = array[i] * constant;\n }\n\n return result;\n};\n\n/**\n * substract two arrays\n * array1, array2 and result are 1d arrays\n */\nMatrix.minusOp = function (array1, array2) {\n var result = [];\n\n for (var i = 0; i < array1.length; i++) {\n result[i] = array1[i] - array2[i];\n }\n\n return result;\n};\n\n/**\n * dot product of two arrays with same size\n * array1 and array2 are 1d arrays\n */\nMatrix.dotProduct = function (array1, array2) {\n var product = 0;\n\n for (var i = 0; i < array1.length; i++) {\n product += array1[i] * array2[i];\n }\n\n return product;\n};\n\n/**\n * magnitude of an array\n * array is 1d array\n */\nMatrix.mag = function (array) {\n return Math.sqrt(this.dotProduct(array, array));\n};\n\n/**\n * normalization of an array\n * array and result are 1d array\n */\nMatrix.normalize = function (array) {\n var result = [];\n var magnitude = this.mag(array);\n\n for (var i = 0; i < array.length; i++) {\n result[i] = array[i] / magnitude;\n }\n\n return result;\n};\n\n/**\n * multiply an array with centering matrix\n * array and result are 1d array\n */\nMatrix.multGamma = function (array) {\n var result = [];\n var sum = 0;\n\n for (var i = 0; i < array.length; i++) {\n sum += array[i];\n }\n\n sum *= -1 / array.length;\n\n for (var _i = 0; _i < array.length; _i++) {\n result[_i] = sum + array[_i];\n }\n return result;\n};\n\n/**\n * a special matrix multiplication\n * result = 0.5 * C * INV * C^T * array\n * array and result are 1d, C and INV are 2d arrays\n */\nMatrix.multL = function (array, C, INV) {\n var result = [];\n var temp1 = [];\n var temp2 = [];\n\n // multiply by C^T\n for (var i = 0; i < C[0].length; i++) {\n var sum = 0;\n for (var j = 0; j < C.length; j++) {\n sum += -0.5 * C[j][i] * array[j];\n }\n temp1[i] = sum;\n }\n // multiply the result by INV\n for (var _i2 = 0; _i2 < INV.length; _i2++) {\n var _sum = 0;\n for (var _j = 0; _j < INV.length; _j++) {\n _sum += INV[_i2][_j] * temp1[_j];\n }\n temp2[_i2] = _sum;\n }\n // multiply the result by C\n for (var _i3 = 0; _i3 < C.length; _i3++) {\n var _sum2 = 0;\n for (var _j2 = 0; _j2 < C[0].length; _j2++) {\n _sum2 += C[_i3][_j2] * temp2[_j2];\n }\n result[_i3] = _sum2;\n }\n\n return result;\n};\n\nmodule.exports = Matrix;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A classic Quicksort algorithm with Hoare's partition\n * - Works also on LinkedList objects\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar LinkedList = __webpack_require__(11);\n\nvar Quicksort = function () {\n function Quicksort(A, compareFunction) {\n _classCallCheck(this, Quicksort);\n\n if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction;\n\n var length = void 0;\n if (A instanceof LinkedList) length = A.size();else length = A.length;\n\n this._quicksort(A, 0, length - 1);\n }\n\n _createClass(Quicksort, [{\n key: '_quicksort',\n value: function _quicksort(A, p, r) {\n if (p < r) {\n var q = this._partition(A, p, r);\n this._quicksort(A, p, q);\n this._quicksort(A, q + 1, r);\n }\n }\n }, {\n key: '_partition',\n value: function _partition(A, p, r) {\n var x = this._get(A, p);\n var i = p;\n var j = r;\n while (true) {\n while (this.compareFunction(x, this._get(A, j))) {\n j--;\n }while (this.compareFunction(this._get(A, i), x)) {\n i++;\n }if (i < j) {\n this._swap(A, i, j);\n i++;\n j--;\n } else return j;\n }\n }\n }, {\n key: '_get',\n value: function _get(object, index) {\n if (object instanceof LinkedList) return object.get_object_at(index);else return object[index];\n }\n }, {\n key: '_set',\n value: function _set(object, index, value) {\n if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value;\n }\n }, {\n key: '_swap',\n value: function _swap(A, i, j) {\n var temp = this._get(A, i);\n this._set(A, i, this._get(A, j));\n this._set(A, j, temp);\n }\n }, {\n key: '_defaultCompareFunction',\n value: function _defaultCompareFunction(a, b) {\n return b > a;\n }\n }]);\n\n return Quicksort;\n}();\n\nmodule.exports = Quicksort;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Singular Value Decomposition implementation\nfunction SVD() {};\n\n/* Below singular value decomposition (svd) code including hypot function is adopted from https://github.com/dragonfly-ai/JamaJS\n Some changes are applied to make the code compatible with the fcose code and to make it independent from Jama.\n Input matrix is changed to a 2D array instead of Jama matrix. Matrix dimensions are taken according to 2D array instead of using Jama functions.\n An object that includes singular value components is created for return. \n The types of input parameters of the hypot function are removed. \n let is used instead of var for the variable initialization.\n*/\n/*\n Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright {yyyy} {name of copyright owner}\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nSVD.svd = function (A) {\n this.U = null;\n this.V = null;\n this.s = null;\n this.m = 0;\n this.n = 0;\n this.m = A.length;\n this.n = A[0].length;\n var nu = Math.min(this.m, this.n);\n this.s = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(Math.min(this.m + 1, this.n));\n this.U = function (dims) {\n var allocate = function allocate(dims) {\n if (dims.length == 0) {\n return 0;\n } else {\n var array = [];\n for (var i = 0; i < dims[0]; i++) {\n array.push(allocate(dims.slice(1)));\n }\n return array;\n }\n };\n return allocate(dims);\n }([this.m, nu]);\n this.V = function (dims) {\n var allocate = function allocate(dims) {\n if (dims.length == 0) {\n return 0;\n } else {\n var array = [];\n for (var i = 0; i < dims[0]; i++) {\n array.push(allocate(dims.slice(1)));\n }\n return array;\n }\n };\n return allocate(dims);\n }([this.n, this.n]);\n var e = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(this.n);\n var work = function (s) {\n var a = [];\n while (s-- > 0) {\n a.push(0);\n }return a;\n }(this.m);\n var wantu = true;\n var wantv = true;\n var nct = Math.min(this.m - 1, this.n);\n var nrt = Math.max(0, Math.min(this.n - 2, this.m));\n for (var k = 0; k < Math.max(nct, nrt); k++) {\n if (k < nct) {\n this.s[k] = 0;\n for (var i = k; i < this.m; i++) {\n this.s[k] = SVD.hypot(this.s[k], A[i][k]);\n }\n ;\n if (this.s[k] !== 0.0) {\n if (A[k][k] < 0.0) {\n this.s[k] = -this.s[k];\n }\n for (var _i = k; _i < this.m; _i++) {\n A[_i][k] /= this.s[k];\n }\n ;\n A[k][k] += 1.0;\n }\n this.s[k] = -this.s[k];\n }\n for (var j = k + 1; j < this.n; j++) {\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(k < nct, this.s[k] !== 0.0)) {\n var t = 0;\n for (var _i2 = k; _i2 < this.m; _i2++) {\n t += A[_i2][k] * A[_i2][j];\n }\n ;\n t = -t / A[k][k];\n for (var _i3 = k; _i3 < this.m; _i3++) {\n A[_i3][j] += t * A[_i3][k];\n }\n ;\n }\n e[j] = A[k][j];\n }\n ;\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(wantu, k < nct)) {\n for (var _i4 = k; _i4 < this.m; _i4++) {\n this.U[_i4][k] = A[_i4][k];\n }\n ;\n }\n if (k < nrt) {\n e[k] = 0;\n for (var _i5 = k + 1; _i5 < this.n; _i5++) {\n e[k] = SVD.hypot(e[k], e[_i5]);\n }\n ;\n if (e[k] !== 0.0) {\n if (e[k + 1] < 0.0) {\n e[k] = -e[k];\n }\n for (var _i6 = k + 1; _i6 < this.n; _i6++) {\n e[_i6] /= e[k];\n }\n ;\n e[k + 1] += 1.0;\n }\n e[k] = -e[k];\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(k + 1 < this.m, e[k] !== 0.0)) {\n for (var _i7 = k + 1; _i7 < this.m; _i7++) {\n work[_i7] = 0.0;\n }\n ;\n for (var _j = k + 1; _j < this.n; _j++) {\n for (var _i8 = k + 1; _i8 < this.m; _i8++) {\n work[_i8] += e[_j] * A[_i8][_j];\n }\n ;\n }\n ;\n for (var _j2 = k + 1; _j2 < this.n; _j2++) {\n var _t = -e[_j2] / e[k + 1];\n for (var _i9 = k + 1; _i9 < this.m; _i9++) {\n A[_i9][_j2] += _t * work[_i9];\n }\n ;\n }\n ;\n }\n if (wantv) {\n for (var _i10 = k + 1; _i10 < this.n; _i10++) {\n this.V[_i10][k] = e[_i10];\n };\n }\n }\n };\n var p = Math.min(this.n, this.m + 1);\n if (nct < this.n) {\n this.s[nct] = A[nct][nct];\n }\n if (this.m < p) {\n this.s[p - 1] = 0.0;\n }\n if (nrt + 1 < p) {\n e[nrt] = A[nrt][p - 1];\n }\n e[p - 1] = 0.0;\n if (wantu) {\n for (var _j3 = nct; _j3 < nu; _j3++) {\n for (var _i11 = 0; _i11 < this.m; _i11++) {\n this.U[_i11][_j3] = 0.0;\n }\n ;\n this.U[_j3][_j3] = 1.0;\n };\n for (var _k = nct - 1; _k >= 0; _k--) {\n if (this.s[_k] !== 0.0) {\n for (var _j4 = _k + 1; _j4 < nu; _j4++) {\n var _t2 = 0;\n for (var _i12 = _k; _i12 < this.m; _i12++) {\n _t2 += this.U[_i12][_k] * this.U[_i12][_j4];\n };\n _t2 = -_t2 / this.U[_k][_k];\n for (var _i13 = _k; _i13 < this.m; _i13++) {\n this.U[_i13][_j4] += _t2 * this.U[_i13][_k];\n };\n };\n for (var _i14 = _k; _i14 < this.m; _i14++) {\n this.U[_i14][_k] = -this.U[_i14][_k];\n };\n this.U[_k][_k] = 1.0 + this.U[_k][_k];\n for (var _i15 = 0; _i15 < _k - 1; _i15++) {\n this.U[_i15][_k] = 0.0;\n };\n } else {\n for (var _i16 = 0; _i16 < this.m; _i16++) {\n this.U[_i16][_k] = 0.0;\n };\n this.U[_k][_k] = 1.0;\n }\n };\n }\n if (wantv) {\n for (var _k2 = this.n - 1; _k2 >= 0; _k2--) {\n if (function (lhs, rhs) {\n return lhs && rhs;\n }(_k2 < nrt, e[_k2] !== 0.0)) {\n for (var _j5 = _k2 + 1; _j5 < nu; _j5++) {\n var _t3 = 0;\n for (var _i17 = _k2 + 1; _i17 < this.n; _i17++) {\n _t3 += this.V[_i17][_k2] * this.V[_i17][_j5];\n };\n _t3 = -_t3 / this.V[_k2 + 1][_k2];\n for (var _i18 = _k2 + 1; _i18 < this.n; _i18++) {\n this.V[_i18][_j5] += _t3 * this.V[_i18][_k2];\n };\n };\n }\n for (var _i19 = 0; _i19 < this.n; _i19++) {\n this.V[_i19][_k2] = 0.0;\n };\n this.V[_k2][_k2] = 1.0;\n };\n }\n var pp = p - 1;\n var iter = 0;\n var eps = Math.pow(2.0, -52.0);\n var tiny = Math.pow(2.0, -966.0);\n while (p > 0) {\n var _k3 = void 0;\n var kase = void 0;\n for (_k3 = p - 2; _k3 >= -1; _k3--) {\n if (_k3 === -1) {\n break;\n }\n if (Math.abs(e[_k3]) <= tiny + eps * (Math.abs(this.s[_k3]) + Math.abs(this.s[_k3 + 1]))) {\n e[_k3] = 0.0;\n break;\n }\n };\n if (_k3 === p - 2) {\n kase = 4;\n } else {\n var ks = void 0;\n for (ks = p - 1; ks >= _k3; ks--) {\n if (ks === _k3) {\n break;\n }\n var _t4 = (ks !== p ? Math.abs(e[ks]) : 0.0) + (ks !== _k3 + 1 ? Math.abs(e[ks - 1]) : 0.0);\n if (Math.abs(this.s[ks]) <= tiny + eps * _t4) {\n this.s[ks] = 0.0;\n break;\n }\n };\n if (ks === _k3) {\n kase = 3;\n } else if (ks === p - 1) {\n kase = 1;\n } else {\n kase = 2;\n _k3 = ks;\n }\n }\n _k3++;\n switch (kase) {\n case 1:\n {\n var f = e[p - 2];\n e[p - 2] = 0.0;\n for (var _j6 = p - 2; _j6 >= _k3; _j6--) {\n var _t5 = SVD.hypot(this.s[_j6], f);\n var cs = this.s[_j6] / _t5;\n var sn = f / _t5;\n this.s[_j6] = _t5;\n if (_j6 !== _k3) {\n f = -sn * e[_j6 - 1];\n e[_j6 - 1] = cs * e[_j6 - 1];\n }\n if (wantv) {\n for (var _i20 = 0; _i20 < this.n; _i20++) {\n _t5 = cs * this.V[_i20][_j6] + sn * this.V[_i20][p - 1];\n this.V[_i20][p - 1] = -sn * this.V[_i20][_j6] + cs * this.V[_i20][p - 1];\n this.V[_i20][_j6] = _t5;\n };\n }\n };\n };\n break;\n case 2:\n {\n var _f = e[_k3 - 1];\n e[_k3 - 1] = 0.0;\n for (var _j7 = _k3; _j7 < p; _j7++) {\n var _t6 = SVD.hypot(this.s[_j7], _f);\n var _cs = this.s[_j7] / _t6;\n var _sn = _f / _t6;\n this.s[_j7] = _t6;\n _f = -_sn * e[_j7];\n e[_j7] = _cs * e[_j7];\n if (wantu) {\n for (var _i21 = 0; _i21 < this.m; _i21++) {\n _t6 = _cs * this.U[_i21][_j7] + _sn * this.U[_i21][_k3 - 1];\n this.U[_i21][_k3 - 1] = -_sn * this.U[_i21][_j7] + _cs * this.U[_i21][_k3 - 1];\n this.U[_i21][_j7] = _t6;\n };\n }\n };\n };\n break;\n case 3:\n {\n var scale = Math.max(Math.max(Math.max(Math.max(Math.abs(this.s[p - 1]), Math.abs(this.s[p - 2])), Math.abs(e[p - 2])), Math.abs(this.s[_k3])), Math.abs(e[_k3]));\n var sp = this.s[p - 1] / scale;\n var spm1 = this.s[p - 2] / scale;\n var epm1 = e[p - 2] / scale;\n var sk = this.s[_k3] / scale;\n var ek = e[_k3] / scale;\n var b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2.0;\n var c = sp * epm1 * (sp * epm1);\n var shift = 0.0;\n if (function (lhs, rhs) {\n return lhs || rhs;\n }(b !== 0.0, c !== 0.0)) {\n shift = Math.sqrt(b * b + c);\n if (b < 0.0) {\n shift = -shift;\n }\n shift = c / (b + shift);\n }\n var _f2 = (sk + sp) * (sk - sp) + shift;\n var g = sk * ek;\n for (var _j8 = _k3; _j8 < p - 1; _j8++) {\n var _t7 = SVD.hypot(_f2, g);\n var _cs2 = _f2 / _t7;\n var _sn2 = g / _t7;\n if (_j8 !== _k3) {\n e[_j8 - 1] = _t7;\n }\n _f2 = _cs2 * this.s[_j8] + _sn2 * e[_j8];\n e[_j8] = _cs2 * e[_j8] - _sn2 * this.s[_j8];\n g = _sn2 * this.s[_j8 + 1];\n this.s[_j8 + 1] = _cs2 * this.s[_j8 + 1];\n if (wantv) {\n for (var _i22 = 0; _i22 < this.n; _i22++) {\n _t7 = _cs2 * this.V[_i22][_j8] + _sn2 * this.V[_i22][_j8 + 1];\n this.V[_i22][_j8 + 1] = -_sn2 * this.V[_i22][_j8] + _cs2 * this.V[_i22][_j8 + 1];\n this.V[_i22][_j8] = _t7;\n };\n }\n _t7 = SVD.hypot(_f2, g);\n _cs2 = _f2 / _t7;\n _sn2 = g / _t7;\n this.s[_j8] = _t7;\n _f2 = _cs2 * e[_j8] + _sn2 * this.s[_j8 + 1];\n this.s[_j8 + 1] = -_sn2 * e[_j8] + _cs2 * this.s[_j8 + 1];\n g = _sn2 * e[_j8 + 1];\n e[_j8 + 1] = _cs2 * e[_j8 + 1];\n if (wantu && _j8 < this.m - 1) {\n for (var _i23 = 0; _i23 < this.m; _i23++) {\n _t7 = _cs2 * this.U[_i23][_j8] + _sn2 * this.U[_i23][_j8 + 1];\n this.U[_i23][_j8 + 1] = -_sn2 * this.U[_i23][_j8] + _cs2 * this.U[_i23][_j8 + 1];\n this.U[_i23][_j8] = _t7;\n };\n }\n };\n e[p - 2] = _f2;\n iter = iter + 1;\n };\n break;\n case 4:\n {\n if (this.s[_k3] <= 0.0) {\n this.s[_k3] = this.s[_k3] < 0.0 ? -this.s[_k3] : 0.0;\n if (wantv) {\n for (var _i24 = 0; _i24 <= pp; _i24++) {\n this.V[_i24][_k3] = -this.V[_i24][_k3];\n };\n }\n }\n while (_k3 < pp) {\n if (this.s[_k3] >= this.s[_k3 + 1]) {\n break;\n }\n var _t8 = this.s[_k3];\n this.s[_k3] = this.s[_k3 + 1];\n this.s[_k3 + 1] = _t8;\n if (wantv && _k3 < this.n - 1) {\n for (var _i25 = 0; _i25 < this.n; _i25++) {\n _t8 = this.V[_i25][_k3 + 1];\n this.V[_i25][_k3 + 1] = this.V[_i25][_k3];\n this.V[_i25][_k3] = _t8;\n };\n }\n if (wantu && _k3 < this.m - 1) {\n for (var _i26 = 0; _i26 < this.m; _i26++) {\n _t8 = this.U[_i26][_k3 + 1];\n this.U[_i26][_k3 + 1] = this.U[_i26][_k3];\n this.U[_i26][_k3] = _t8;\n };\n }\n _k3++;\n };\n iter = 0;\n p--;\n };\n break;\n }\n };\n var result = { U: this.U, V: this.V, S: this.s };\n return result;\n};\n\n// sqrt(a^2 + b^2) without under/overflow.\nSVD.hypot = function (a, b) {\n var r = void 0;\n if (Math.abs(a) > Math.abs(b)) {\n r = b / a;\n r = Math.abs(a) * Math.sqrt(1 + r * r);\n } else if (b != 0) {\n r = a / b;\n r = Math.abs(b) * Math.sqrt(1 + r * r);\n } else {\n r = 0.0;\n }\n return r;\n};\n\nmodule.exports = SVD;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string\n * sequences by S.B.Needleman and C.D.Wunsch (1970).\n *\n * Aside from the inputs, you can assign the scores for,\n * - Match: The two characters at the current index are same.\n * - Mismatch: The two characters at the current index are different.\n * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string.\n */\n\nvar NeedlemanWunsch = function () {\n function NeedlemanWunsch(sequence1, sequence2) {\n var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n\n _classCallCheck(this, NeedlemanWunsch);\n\n this.sequence1 = sequence1;\n this.sequence2 = sequence2;\n this.match_score = match_score;\n this.mismatch_penalty = mismatch_penalty;\n this.gap_penalty = gap_penalty;\n\n // Just the remove redundancy\n this.iMax = sequence1.length + 1;\n this.jMax = sequence2.length + 1;\n\n // Grid matrix of scores\n this.grid = new Array(this.iMax);\n for (var i = 0; i < this.iMax; i++) {\n this.grid[i] = new Array(this.jMax);\n\n for (var j = 0; j < this.jMax; j++) {\n this.grid[i][j] = 0;\n }\n }\n\n // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions)\n this.tracebackGrid = new Array(this.iMax);\n for (var _i = 0; _i < this.iMax; _i++) {\n this.tracebackGrid[_i] = new Array(this.jMax);\n\n for (var _j = 0; _j < this.jMax; _j++) {\n this.tracebackGrid[_i][_j] = [null, null, null];\n }\n }\n\n // The aligned sequences (return multiple possibilities)\n this.alignments = [];\n\n // Final alignment score\n this.score = -1;\n\n // Calculate scores and tracebacks\n this.computeGrids();\n }\n\n _createClass(NeedlemanWunsch, [{\n key: \"getScore\",\n value: function getScore() {\n return this.score;\n }\n }, {\n key: \"getAlignments\",\n value: function getAlignments() {\n return this.alignments;\n }\n\n // Main dynamic programming procedure\n\n }, {\n key: \"computeGrids\",\n value: function computeGrids() {\n // Fill in the first row\n for (var j = 1; j < this.jMax; j++) {\n this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;\n this.tracebackGrid[0][j] = [false, false, true];\n }\n\n // Fill in the first column\n for (var i = 1; i < this.iMax; i++) {\n this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;\n this.tracebackGrid[i][0] = [false, true, false];\n }\n\n // Fill the rest of the grid\n for (var _i2 = 1; _i2 < this.iMax; _i2++) {\n for (var _j2 = 1; _j2 < this.jMax; _j2++) {\n // Find the max score(s) among [`Diag`, `Up`, `Left`]\n var diag = void 0;\n if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;\n\n var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;\n var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;\n\n // If there exists multiple max values, capture them for multiple paths\n var maxOf = [diag, up, left];\n var indices = this.arrayAllMaxIndexes(maxOf);\n\n // Update Grids\n this.grid[_i2][_j2] = maxOf[indices[0]];\n this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];\n }\n }\n\n // Update alignment score\n this.score = this.grid[this.iMax - 1][this.jMax - 1];\n }\n\n // Gets all possible valid sequence combinations\n\n }, {\n key: \"alignmentTraceback\",\n value: function alignmentTraceback() {\n var inProcessAlignments = [];\n\n inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length],\n seq1: \"\",\n seq2: \"\"\n });\n\n while (inProcessAlignments[0]) {\n var current = inProcessAlignments[0];\n var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];\n\n if (directions[0]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n if (directions[1]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: '-' + current.seq2\n });\n }\n if (directions[2]) {\n inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1],\n seq1: '-' + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n\n if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1,\n sequence2: current.seq2\n });\n\n inProcessAlignments.shift();\n }\n\n return this.alignments;\n }\n\n // Helper Functions\n\n }, {\n key: \"getAllIndexes\",\n value: function getAllIndexes(arr, val) {\n var indexes = [],\n i = -1;\n while ((i = arr.indexOf(val, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n }\n }, {\n key: \"arrayAllMaxIndexes\",\n value: function arrayAllMaxIndexes(array) {\n return this.getAllIndexes(array, Math.max.apply(null, array));\n }\n }]);\n\n return NeedlemanWunsch;\n}();\n\nmodule.exports = NeedlemanWunsch;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar layoutBase = function layoutBase() {\n return;\n};\n\nlayoutBase.FDLayout = __webpack_require__(18);\nlayoutBase.FDLayoutConstants = __webpack_require__(4);\nlayoutBase.FDLayoutEdge = __webpack_require__(19);\nlayoutBase.FDLayoutNode = __webpack_require__(20);\nlayoutBase.DimensionD = __webpack_require__(21);\nlayoutBase.HashMap = __webpack_require__(22);\nlayoutBase.HashSet = __webpack_require__(23);\nlayoutBase.IGeometry = __webpack_require__(8);\nlayoutBase.IMath = __webpack_require__(9);\nlayoutBase.Integer = __webpack_require__(10);\nlayoutBase.Point = __webpack_require__(12);\nlayoutBase.PointD = __webpack_require__(5);\nlayoutBase.RandomSeed = __webpack_require__(16);\nlayoutBase.RectangleD = __webpack_require__(13);\nlayoutBase.Transform = __webpack_require__(17);\nlayoutBase.UniqueIDGeneretor = __webpack_require__(14);\nlayoutBase.Quicksort = __webpack_require__(25);\nlayoutBase.LinkedList = __webpack_require__(11);\nlayoutBase.LGraphObject = __webpack_require__(2);\nlayoutBase.LGraph = __webpack_require__(6);\nlayoutBase.LEdge = __webpack_require__(1);\nlayoutBase.LGraphManager = __webpack_require__(7);\nlayoutBase.LNode = __webpack_require__(3);\nlayoutBase.Layout = __webpack_require__(15);\nlayoutBase.LayoutConstants = __webpack_require__(0);\nlayoutBase.NeedlemanWunsch = __webpack_require__(27);\nlayoutBase.Matrix = __webpack_require__(24);\nlayoutBase.SVD = __webpack_require__(26);\n\nmodule.exports = layoutBase;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Emitter() {\n this.listeners = [];\n}\n\nvar p = Emitter.prototype;\n\np.addListener = function (event, callback) {\n this.listeners.push({\n event: event,\n callback: callback\n });\n};\n\np.removeListener = function (event, callback) {\n for (var i = this.listeners.length; i >= 0; i--) {\n var l = this.listeners[i];\n\n if (l.event === event && l.callback === callback) {\n this.listeners.splice(i, 1);\n }\n }\n};\n\np.emit = function (event, data) {\n for (var i = 0; i < this.listeners.length; i++) {\n var l = this.listeners[i];\n\n if (event === l.event) {\n l.callback(data);\n }\n }\n};\n\nmodule.exports = Emitter;\n\n/***/ })\n/******/ ]);\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__551__) {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 45:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(551);\ncoseBase.CoSEConstants = __webpack_require__(806);\ncoseBase.CoSEEdge = __webpack_require__(767);\ncoseBase.CoSEGraph = __webpack_require__(880);\ncoseBase.CoSEGraphManager = __webpack_require__(578);\ncoseBase.CoSELayout = __webpack_require__(765);\ncoseBase.CoSENode = __webpack_require__(991);\ncoseBase.ConstraintHandler = __webpack_require__(902);\n\nmodule.exports = coseBase;\n\n/***/ }),\n\n/***/ 806:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutConstants = __webpack_require__(551).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;\nCoSEConstants.ENFORCE_CONSTRAINTS = true;\nCoSEConstants.APPLY_LAYOUT = true;\nCoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS = true;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true; // this should be set to false if there will be a constraint\n// This constant is for differentiating whether actual layout algorithm that uses cose-base wants to apply only incremental layout or \n// an incremental layout on top of a randomized layout. If it is only incremental layout, then this constant should be true.\nCoSEConstants.PURE_INCREMENTAL = CoSEConstants.DEFAULT_INCREMENTAL;\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n\n/***/ 767:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutEdge = __webpack_require__(551).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n\n/***/ 880:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar LGraph = __webpack_require__(551).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n\n/***/ 578:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar LGraphManager = __webpack_require__(551).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n\n/***/ 765:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayout = __webpack_require__(551).FDLayout;\nvar CoSEGraphManager = __webpack_require__(578);\nvar CoSEGraph = __webpack_require__(880);\nvar CoSENode = __webpack_require__(991);\nvar CoSEEdge = __webpack_require__(767);\nvar CoSEConstants = __webpack_require__(806);\nvar ConstraintHandler = __webpack_require__(902);\nvar FDLayoutConstants = __webpack_require__(551).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(551).LayoutConstants;\nvar Point = __webpack_require__(551).Point;\nvar PointD = __webpack_require__(551).PointD;\nvar DimensionD = __webpack_require__(551).DimensionD;\nvar Layout = __webpack_require__(551).Layout;\nvar Integer = __webpack_require__(551).Integer;\nvar IGeometry = __webpack_require__(551).IGeometry;\nvar LGraph = __webpack_require__(551).LGraph;\nvar Transform = __webpack_require__(551).Transform;\nvar LinkedList = __webpack_require__(551).LinkedList;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n this.constraints = {}; // keep layout constraints\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n }\n};\n\n// This method is used to set CoSE related parameters used by spring embedder.\nCoSELayout.prototype.initSpringEmbedder = function () {\n FDLayout.prototype.initSpringEmbedder.call(this);\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = 0.04;\n this.coolingAdjuster = 1;\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n if (Object.keys(this.constraints).length > 0) {\n ConstraintHandler.handleConstraints(this);\n this.initConstraintVariables();\n }\n\n this.initSpringEmbedder();\n if (CoSEConstants.APPLY_LAYOUT) {\n this.runSpringEmbedder();\n }\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2;else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n if (CoSEConstants.PURE_INCREMENTAL) this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL / 2 * ((100 - this.afterGrowthIterations) / 100);else this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\n// overrides moveNodes method in FDLayout\nCoSELayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n // calculate displacement for each node \n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.calculateDisplacement();\n }\n\n if (Object.keys(this.constraints).length > 0) {\n this.updateDisplacements();\n }\n\n // move each node\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\n// constraint related methods: initConstraintVariables and updateDisplacements\n\n// initialize constraint related variables\nCoSELayout.prototype.initConstraintVariables = function () {\n var self = this;\n this.idToNodeMap = new Map();\n this.fixedNodeSet = new Set();\n\n var allNodes = this.graphManager.getAllNodes();\n\n // fill idToNodeMap\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n this.idToNodeMap.set(node.id, node);\n }\n\n // calculate fixed node weight for given compound node\n var calculateCompoundWeight = function calculateCompoundWeight(compoundNode) {\n var nodes = compoundNode.getChild().getNodes();\n var node;\n var fixedNodeWeight = 0;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n if (self.fixedNodeSet.has(node.id)) {\n fixedNodeWeight += 100;\n }\n } else {\n fixedNodeWeight += calculateCompoundWeight(node);\n }\n }\n return fixedNodeWeight;\n };\n\n if (this.constraints.fixedNodeConstraint) {\n // fill fixedNodeSet\n this.constraints.fixedNodeConstraint.forEach(function (nodeData) {\n self.fixedNodeSet.add(nodeData.nodeId);\n });\n\n // assign fixed node weights to compounds if they contain fixed nodes\n var allNodes = this.graphManager.getAllNodes();\n var node;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getChild() != null) {\n var fixedNodeWeight = calculateCompoundWeight(node);\n if (fixedNodeWeight > 0) {\n node.fixedNodeWeight = fixedNodeWeight;\n }\n }\n }\n }\n\n if (this.constraints.relativePlacementConstraint) {\n var nodeToDummyForVerticalAlignment = new Map();\n var nodeToDummyForHorizontalAlignment = new Map();\n this.dummyToNodeForVerticalAlignment = new Map();\n this.dummyToNodeForHorizontalAlignment = new Map();\n this.fixedNodesOnHorizontal = new Set();\n this.fixedNodesOnVertical = new Set();\n\n // fill maps and sets\n this.fixedNodeSet.forEach(function (nodeId) {\n self.fixedNodesOnHorizontal.add(nodeId);\n self.fixedNodesOnVertical.add(nodeId);\n });\n\n if (this.constraints.alignmentConstraint) {\n if (this.constraints.alignmentConstraint.vertical) {\n var verticalAlignment = this.constraints.alignmentConstraint.vertical;\n for (var i = 0; i < verticalAlignment.length; i++) {\n this.dummyToNodeForVerticalAlignment.set(\"dummy\" + i, []);\n verticalAlignment[i].forEach(function (nodeId) {\n nodeToDummyForVerticalAlignment.set(nodeId, \"dummy\" + i);\n self.dummyToNodeForVerticalAlignment.get(\"dummy\" + i).push(nodeId);\n if (self.fixedNodeSet.has(nodeId)) {\n self.fixedNodesOnHorizontal.add(\"dummy\" + i);\n }\n });\n }\n }\n if (this.constraints.alignmentConstraint.horizontal) {\n var horizontalAlignment = this.constraints.alignmentConstraint.horizontal;\n for (var i = 0; i < horizontalAlignment.length; i++) {\n this.dummyToNodeForHorizontalAlignment.set(\"dummy\" + i, []);\n horizontalAlignment[i].forEach(function (nodeId) {\n nodeToDummyForHorizontalAlignment.set(nodeId, \"dummy\" + i);\n self.dummyToNodeForHorizontalAlignment.get(\"dummy\" + i).push(nodeId);\n if (self.fixedNodeSet.has(nodeId)) {\n self.fixedNodesOnVertical.add(\"dummy\" + i);\n }\n });\n }\n }\n }\n\n if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {\n\n this.shuffle = function (array) {\n var j, x, i;\n for (i = array.length - 1; i >= 2 * array.length / 3; i--) {\n j = Math.floor(Math.random() * (i + 1));\n x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n };\n\n this.nodesInRelativeHorizontal = [];\n this.nodesInRelativeVertical = [];\n this.nodeToRelativeConstraintMapHorizontal = new Map();\n this.nodeToRelativeConstraintMapVertical = new Map();\n this.nodeToTempPositionMapHorizontal = new Map();\n this.nodeToTempPositionMapVertical = new Map();\n\n // fill arrays and maps\n this.constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n var nodeIdLeft = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;\n var nodeIdRight = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;\n\n if (!self.nodesInRelativeHorizontal.includes(nodeIdLeft)) {\n self.nodesInRelativeHorizontal.push(nodeIdLeft);\n self.nodeToRelativeConstraintMapHorizontal.set(nodeIdLeft, []);\n if (self.dummyToNodeForVerticalAlignment.has(nodeIdLeft)) {\n self.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeIdLeft)[0]).getCenterX());\n } else {\n self.nodeToTempPositionMapHorizontal.set(nodeIdLeft, self.idToNodeMap.get(nodeIdLeft).getCenterX());\n }\n }\n if (!self.nodesInRelativeHorizontal.includes(nodeIdRight)) {\n self.nodesInRelativeHorizontal.push(nodeIdRight);\n self.nodeToRelativeConstraintMapHorizontal.set(nodeIdRight, []);\n if (self.dummyToNodeForVerticalAlignment.has(nodeIdRight)) {\n self.nodeToTempPositionMapHorizontal.set(nodeIdRight, self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeIdRight)[0]).getCenterX());\n } else {\n self.nodeToTempPositionMapHorizontal.set(nodeIdRight, self.idToNodeMap.get(nodeIdRight).getCenterX());\n }\n }\n\n self.nodeToRelativeConstraintMapHorizontal.get(nodeIdLeft).push({ right: nodeIdRight, gap: constraint.gap });\n self.nodeToRelativeConstraintMapHorizontal.get(nodeIdRight).push({ left: nodeIdLeft, gap: constraint.gap });\n } else {\n var nodeIdTop = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;\n var nodeIdBottom = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;\n\n if (!self.nodesInRelativeVertical.includes(nodeIdTop)) {\n self.nodesInRelativeVertical.push(nodeIdTop);\n self.nodeToRelativeConstraintMapVertical.set(nodeIdTop, []);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeIdTop)) {\n self.nodeToTempPositionMapVertical.set(nodeIdTop, self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeIdTop)[0]).getCenterY());\n } else {\n self.nodeToTempPositionMapVertical.set(nodeIdTop, self.idToNodeMap.get(nodeIdTop).getCenterY());\n }\n }\n if (!self.nodesInRelativeVertical.includes(nodeIdBottom)) {\n self.nodesInRelativeVertical.push(nodeIdBottom);\n self.nodeToRelativeConstraintMapVertical.set(nodeIdBottom, []);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeIdBottom)) {\n self.nodeToTempPositionMapVertical.set(nodeIdBottom, self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeIdBottom)[0]).getCenterY());\n } else {\n self.nodeToTempPositionMapVertical.set(nodeIdBottom, self.idToNodeMap.get(nodeIdBottom).getCenterY());\n }\n }\n self.nodeToRelativeConstraintMapVertical.get(nodeIdTop).push({ bottom: nodeIdBottom, gap: constraint.gap });\n self.nodeToRelativeConstraintMapVertical.get(nodeIdBottom).push({ top: nodeIdTop, gap: constraint.gap });\n }\n });\n } else {\n var subGraphOnHorizontal = new Map(); // subgraph from vertical RP constraints\n var subGraphOnVertical = new Map(); // subgraph from vertical RP constraints\n\n // construct subgraphs from relative placement constraints \n this.constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n var left = nodeToDummyForVerticalAlignment.has(constraint.left) ? nodeToDummyForVerticalAlignment.get(constraint.left) : constraint.left;\n var right = nodeToDummyForVerticalAlignment.has(constraint.right) ? nodeToDummyForVerticalAlignment.get(constraint.right) : constraint.right;\n if (subGraphOnHorizontal.has(left)) {\n subGraphOnHorizontal.get(left).push(right);\n } else {\n subGraphOnHorizontal.set(left, [right]);\n }\n if (subGraphOnHorizontal.has(right)) {\n subGraphOnHorizontal.get(right).push(left);\n } else {\n subGraphOnHorizontal.set(right, [left]);\n }\n } else {\n var top = nodeToDummyForHorizontalAlignment.has(constraint.top) ? nodeToDummyForHorizontalAlignment.get(constraint.top) : constraint.top;\n var bottom = nodeToDummyForHorizontalAlignment.has(constraint.bottom) ? nodeToDummyForHorizontalAlignment.get(constraint.bottom) : constraint.bottom;\n if (subGraphOnVertical.has(top)) {\n subGraphOnVertical.get(top).push(bottom);\n } else {\n subGraphOnVertical.set(top, [bottom]);\n }\n if (subGraphOnVertical.has(bottom)) {\n subGraphOnVertical.get(bottom).push(top);\n } else {\n subGraphOnVertical.set(bottom, [top]);\n }\n }\n });\n\n // function to construct components from a given graph \n // also returns an array that keeps whether each component contains fixed node\n var constructComponents = function constructComponents(graph, fixedNodes) {\n var components = [];\n var isFixed = [];\n var queue = new LinkedList();\n var visited = new Set();\n var count = 0;\n\n graph.forEach(function (value, key) {\n if (!visited.has(key)) {\n components[count] = [];\n isFixed[count] = false;\n var currentNode = key;\n queue.push(currentNode);\n visited.add(currentNode);\n components[count].push(currentNode);\n\n while (queue.length != 0) {\n currentNode = queue.shift();\n if (fixedNodes.has(currentNode)) {\n isFixed[count] = true;\n }\n var neighbors = graph.get(currentNode);\n neighbors.forEach(function (neighbor) {\n if (!visited.has(neighbor)) {\n queue.push(neighbor);\n visited.add(neighbor);\n components[count].push(neighbor);\n }\n });\n }\n count++;\n }\n });\n\n return { components: components, isFixed: isFixed };\n };\n\n var resultOnHorizontal = constructComponents(subGraphOnHorizontal, self.fixedNodesOnHorizontal);\n this.componentsOnHorizontal = resultOnHorizontal.components;\n this.fixedComponentsOnHorizontal = resultOnHorizontal.isFixed;\n var resultOnVertical = constructComponents(subGraphOnVertical, self.fixedNodesOnVertical);\n this.componentsOnVertical = resultOnVertical.components;\n this.fixedComponentsOnVertical = resultOnVertical.isFixed;\n }\n }\n};\n\n// updates node displacements based on constraints\nCoSELayout.prototype.updateDisplacements = function () {\n var self = this;\n if (this.constraints.fixedNodeConstraint) {\n this.constraints.fixedNodeConstraint.forEach(function (nodeData) {\n var fixedNode = self.idToNodeMap.get(nodeData.nodeId);\n fixedNode.displacementX = 0;\n fixedNode.displacementY = 0;\n });\n }\n\n if (this.constraints.alignmentConstraint) {\n if (this.constraints.alignmentConstraint.vertical) {\n var allVerticalAlignments = this.constraints.alignmentConstraint.vertical;\n for (var i = 0; i < allVerticalAlignments.length; i++) {\n var totalDisplacementX = 0;\n for (var j = 0; j < allVerticalAlignments[i].length; j++) {\n if (this.fixedNodeSet.has(allVerticalAlignments[i][j])) {\n totalDisplacementX = 0;\n break;\n }\n totalDisplacementX += this.idToNodeMap.get(allVerticalAlignments[i][j]).displacementX;\n }\n var averageDisplacementX = totalDisplacementX / allVerticalAlignments[i].length;\n for (var j = 0; j < allVerticalAlignments[i].length; j++) {\n this.idToNodeMap.get(allVerticalAlignments[i][j]).displacementX = averageDisplacementX;\n }\n }\n }\n if (this.constraints.alignmentConstraint.horizontal) {\n var allHorizontalAlignments = this.constraints.alignmentConstraint.horizontal;\n for (var i = 0; i < allHorizontalAlignments.length; i++) {\n var totalDisplacementY = 0;\n for (var j = 0; j < allHorizontalAlignments[i].length; j++) {\n if (this.fixedNodeSet.has(allHorizontalAlignments[i][j])) {\n totalDisplacementY = 0;\n break;\n }\n totalDisplacementY += this.idToNodeMap.get(allHorizontalAlignments[i][j]).displacementY;\n }\n var averageDisplacementY = totalDisplacementY / allHorizontalAlignments[i].length;\n for (var j = 0; j < allHorizontalAlignments[i].length; j++) {\n this.idToNodeMap.get(allHorizontalAlignments[i][j]).displacementY = averageDisplacementY;\n }\n }\n }\n }\n\n if (this.constraints.relativePlacementConstraint) {\n\n if (CoSEConstants.RELAX_MOVEMENT_ON_CONSTRAINTS) {\n // shuffle array to randomize node processing order\n if (this.totalIterations % 10 == 0) {\n this.shuffle(this.nodesInRelativeHorizontal);\n this.shuffle(this.nodesInRelativeVertical);\n }\n\n this.nodesInRelativeHorizontal.forEach(function (nodeId) {\n if (!self.fixedNodesOnHorizontal.has(nodeId)) {\n var displacement = 0;\n if (self.dummyToNodeForVerticalAlignment.has(nodeId)) {\n displacement = self.idToNodeMap.get(self.dummyToNodeForVerticalAlignment.get(nodeId)[0]).displacementX;\n } else {\n displacement = self.idToNodeMap.get(nodeId).displacementX;\n }\n self.nodeToRelativeConstraintMapHorizontal.get(nodeId).forEach(function (constraint) {\n if (constraint.right) {\n var diff = self.nodeToTempPositionMapHorizontal.get(constraint.right) - self.nodeToTempPositionMapHorizontal.get(nodeId) - displacement;\n if (diff < constraint.gap) {\n displacement -= constraint.gap - diff;\n }\n } else {\n var diff = self.nodeToTempPositionMapHorizontal.get(nodeId) - self.nodeToTempPositionMapHorizontal.get(constraint.left) + displacement;\n if (diff < constraint.gap) {\n displacement += constraint.gap - diff;\n }\n }\n });\n self.nodeToTempPositionMapHorizontal.set(nodeId, self.nodeToTempPositionMapHorizontal.get(nodeId) + displacement);\n if (self.dummyToNodeForVerticalAlignment.has(nodeId)) {\n self.dummyToNodeForVerticalAlignment.get(nodeId).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = displacement;\n });\n } else {\n self.idToNodeMap.get(nodeId).displacementX = displacement;\n }\n }\n });\n\n this.nodesInRelativeVertical.forEach(function (nodeId) {\n if (!self.fixedNodesOnHorizontal.has(nodeId)) {\n var displacement = 0;\n if (self.dummyToNodeForHorizontalAlignment.has(nodeId)) {\n displacement = self.idToNodeMap.get(self.dummyToNodeForHorizontalAlignment.get(nodeId)[0]).displacementY;\n } else {\n displacement = self.idToNodeMap.get(nodeId).displacementY;\n }\n self.nodeToRelativeConstraintMapVertical.get(nodeId).forEach(function (constraint) {\n if (constraint.bottom) {\n var diff = self.nodeToTempPositionMapVertical.get(constraint.bottom) - self.nodeToTempPositionMapVertical.get(nodeId) - displacement;\n if (diff < constraint.gap) {\n displacement -= constraint.gap - diff;\n }\n } else {\n var diff = self.nodeToTempPositionMapVertical.get(nodeId) - self.nodeToTempPositionMapVertical.get(constraint.top) + displacement;\n if (diff < constraint.gap) {\n displacement += constraint.gap - diff;\n }\n }\n });\n self.nodeToTempPositionMapVertical.set(nodeId, self.nodeToTempPositionMapVertical.get(nodeId) + displacement);\n if (self.dummyToNodeForHorizontalAlignment.has(nodeId)) {\n self.dummyToNodeForHorizontalAlignment.get(nodeId).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = displacement;\n });\n } else {\n self.idToNodeMap.get(nodeId).displacementY = displacement;\n }\n }\n });\n } else {\n for (var i = 0; i < this.componentsOnHorizontal.length; i++) {\n var component = this.componentsOnHorizontal[i];\n if (this.fixedComponentsOnHorizontal[i]) {\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n this.dummyToNodeForVerticalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = 0;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementX = 0;\n }\n }\n } else {\n var sum = 0;\n var count = 0;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n var actualNodes = this.dummyToNodeForVerticalAlignment.get(component[j]);\n sum += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementX;\n count += actualNodes.length;\n } else {\n sum += this.idToNodeMap.get(component[j]).displacementX;\n count++;\n }\n }\n var averageDisplacement = sum / count;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForVerticalAlignment.has(component[j])) {\n this.dummyToNodeForVerticalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementX = averageDisplacement;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementX = averageDisplacement;\n }\n }\n }\n }\n\n for (var i = 0; i < this.componentsOnVertical.length; i++) {\n var component = this.componentsOnVertical[i];\n if (this.fixedComponentsOnVertical[i]) {\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n this.dummyToNodeForHorizontalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = 0;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementY = 0;\n }\n }\n } else {\n var sum = 0;\n var count = 0;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n var actualNodes = this.dummyToNodeForHorizontalAlignment.get(component[j]);\n sum += actualNodes.length * this.idToNodeMap.get(actualNodes[0]).displacementY;\n count += actualNodes.length;\n } else {\n sum += this.idToNodeMap.get(component[j]).displacementY;\n count++;\n }\n }\n var averageDisplacement = sum / count;\n for (var j = 0; j < component.length; j++) {\n if (this.dummyToNodeForHorizontalAlignment.has(component[j])) {\n this.dummyToNodeForHorizontalAlignment.get(component[j]).forEach(function (nodeId) {\n self.idToNodeMap.get(nodeId).displacementY = averageDisplacement;\n });\n } else {\n this.idToNodeMap.get(component[j]).displacementY = averageDisplacement;\n }\n }\n }\n }\n }\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n compoundNode.setCenter(tiledZeroDegreePack[id].centerX, tiledZeroDegreePack[id].centerY);\n\n // compound left and top margings for labels\n // when node labels are included, these values may be set to different values below and are used in tilingPostLayout,\n // otherwise they stay as zero\n compoundNode.labelMarginLeft = 0;\n compoundNode.labelMarginTop = 0;\n\n // Update compound bounds considering its label properties and set label margins for left and top\n if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = compoundNode.rect.width;\n var height = compoundNode.rect.height;\n\n if (compoundNode.labelWidth) {\n if (compoundNode.labelPosHorizontal == \"left\") {\n compoundNode.rect.x -= compoundNode.labelWidth;\n compoundNode.setWidth(width + compoundNode.labelWidth);\n compoundNode.labelMarginLeft = compoundNode.labelWidth;\n } else if (compoundNode.labelPosHorizontal == \"center\" && compoundNode.labelWidth > width) {\n compoundNode.rect.x -= (compoundNode.labelWidth - width) / 2;\n compoundNode.setWidth(compoundNode.labelWidth);\n compoundNode.labelMarginLeft = (compoundNode.labelWidth - width) / 2;\n } else if (compoundNode.labelPosHorizontal == \"right\") {\n compoundNode.setWidth(width + compoundNode.labelWidth);\n }\n }\n\n if (compoundNode.labelHeight) {\n if (compoundNode.labelPosVertical == \"top\") {\n compoundNode.rect.y -= compoundNode.labelHeight;\n compoundNode.setHeight(height + compoundNode.labelHeight);\n compoundNode.labelMarginTop = compoundNode.labelHeight;\n } else if (compoundNode.labelPosVertical == \"center\" && compoundNode.labelHeight > height) {\n compoundNode.rect.y -= (compoundNode.labelHeight - height) / 2;\n compoundNode.setHeight(compoundNode.labelHeight);\n compoundNode.labelMarginTop = (compoundNode.labelHeight - height) / 2;\n } else if (compoundNode.labelPosVertical == \"bottom\") {\n compoundNode.setHeight(height + compoundNode.labelHeight);\n }\n }\n }\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n var labelMarginLeft = lCompoundNode.labelMarginLeft;\n var labelMarginTop = lCompoundNode.labelMarginTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n var labelMarginLeft = compoundNode.labelMarginLeft;\n var labelMarginTop = compoundNode.labelMarginTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin, labelMarginLeft, labelMarginTop);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin, compoundLabelMarginLeft, compoundLabelMarginTop) {\n x += compoundHorizontalMargin + compoundLabelMarginLeft;\n y += compoundVerticalMargin + compoundLabelMarginTop;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n compoundNode.setCenter(self.tiledMemberPack[id].centerX, self.tiledMemberPack[id].centerY);\n\n // compound left and top margings for labels\n // when node labels are included, these values may be set to different values below and are used in tilingPostLayout,\n // otherwise they stay as zero\n compoundNode.labelMarginLeft = 0;\n compoundNode.labelMarginTop = 0;\n\n // Update compound bounds considering its label properties and set label margins for left and top\n if (CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = compoundNode.rect.width;\n var height = compoundNode.rect.height;\n\n if (compoundNode.labelWidth) {\n if (compoundNode.labelPosHorizontal == \"left\") {\n compoundNode.rect.x -= compoundNode.labelWidth;\n compoundNode.setWidth(width + compoundNode.labelWidth);\n compoundNode.labelMarginLeft = compoundNode.labelWidth;\n } else if (compoundNode.labelPosHorizontal == \"center\" && compoundNode.labelWidth > width) {\n compoundNode.rect.x -= (compoundNode.labelWidth - width) / 2;\n compoundNode.setWidth(compoundNode.labelWidth);\n compoundNode.labelMarginLeft = (compoundNode.labelWidth - width) / 2;\n } else if (compoundNode.labelPosHorizontal == \"right\") {\n compoundNode.setWidth(width + compoundNode.labelWidth);\n }\n }\n\n if (compoundNode.labelHeight) {\n if (compoundNode.labelPosVertical == \"top\") {\n compoundNode.rect.y -= compoundNode.labelHeight;\n compoundNode.setHeight(height + compoundNode.labelHeight);\n compoundNode.labelMarginTop = compoundNode.labelHeight;\n } else if (compoundNode.labelPosVertical == \"center\" && compoundNode.labelHeight > height) {\n compoundNode.rect.y -= (compoundNode.labelHeight - height) / 2;\n compoundNode.setHeight(compoundNode.labelHeight);\n compoundNode.labelMarginTop = (compoundNode.labelHeight - height) / 2;\n } else if (compoundNode.labelPosVertical == \"bottom\") {\n compoundNode.setHeight(height + compoundNode.labelHeight);\n }\n }\n }\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var horizontalOrg = this.tileNodesByFavoringDim(nodes, minWidth, true);\n var verticalOrg = this.tileNodesByFavoringDim(nodes, minWidth, false);\n\n var horizontalRatio = this.getOrgRatio(horizontalOrg);\n var verticalRatio = this.getOrgRatio(verticalOrg);\n var bestOrg;\n\n // the best ratio is the one that is closer to 1 since the ratios are already normalized\n // and the best organization is the one that has the best ratio\n if (verticalRatio < horizontalRatio) {\n bestOrg = verticalOrg;\n } else {\n bestOrg = horizontalOrg;\n }\n\n return bestOrg;\n};\n\n// get the width/height ratio of the organization that is normalized so that it will not be less than 1\nCoSELayout.prototype.getOrgRatio = function (organization) {\n // get dimensions and calculate the initial ratio\n var width = organization.width;\n var height = organization.height;\n var ratio = width / height;\n\n // if the initial ratio is less then 1 then inverse it\n if (ratio < 1) {\n ratio = 1 / ratio;\n }\n\n // return the normalized ratio\n return ratio;\n};\n\n/*\n * Calculates the ideal width for the rows. This method assumes that\n * each node has the same sizes and calculates the ideal row width that\n * approximates a square shaped complex accordingly. However, since nodes would\n * have different sizes some rows would have different sizes and the resulting\n * shape would not be an exact square.\n */\nCoSELayout.prototype.calcIdealRowWidth = function (members, favorHorizontalDim) {\n // To approximate a square shaped complex we need to make complex width equal to complex height.\n // To achieve this we need to solve the following equation system for hc:\n // (x + bx) * hc - bx = (y + by) * vc - by, hc * vc = n\n // where x is the avarage width of the nodes, y is the avarage height of nodes\n // bx and by are the buffer sizes in horizontal and vertical dimensions accordingly,\n // hc and vc are the number of rows in horizontal and vertical dimensions\n // n is number of members.\n\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n\n // number of members\n var membersSize = members.length;\n\n // sum of the width of all members\n var totalWidth = 0;\n\n // sum of the height of all members\n var totalHeight = 0;\n\n var maxWidth = 0;\n\n // traverse all members to calculate total width and total height and get the maximum members width\n members.forEach(function (node) {\n totalWidth += node.getWidth();\n totalHeight += node.getHeight();\n\n if (node.getWidth() > maxWidth) {\n maxWidth = node.getWidth();\n }\n });\n\n // average width of the members\n var averageWidth = totalWidth / membersSize;\n\n // average height of the members\n var averageHeight = totalHeight / membersSize;\n\n // solving the initial equation system for the hc yields the following second degree equation:\n // hc^2 * (x+bx) + hc * (by - bx) - n * (y + by) = 0\n\n // the delta value to solve the equation above for hc\n var delta = Math.pow(verticalPadding - horizontalPadding, 2) + 4 * (averageWidth + horizontalPadding) * (averageHeight + verticalPadding) * membersSize;\n\n // solve the equation using delta value to calculate the horizontal count\n // that represents the number of nodes in an ideal row\n var horizontalCountDouble = (horizontalPadding - verticalPadding + Math.sqrt(delta)) / (2 * (averageWidth + horizontalPadding));\n // round the calculated horizontal count up or down according to the favored dimension\n var horizontalCount;\n\n if (favorHorizontalDim) {\n horizontalCount = Math.ceil(horizontalCountDouble);\n // if horizontalCount count is not a float value then both of rounding to floor and ceil\n // will yield the same values. Instead of repeating the same calculation try going up\n // while favoring horizontal dimension in such cases\n if (horizontalCount == horizontalCountDouble) {\n horizontalCount++;\n }\n } else {\n horizontalCount = Math.floor(horizontalCountDouble);\n }\n\n // ideal width to be calculated\n var idealWidth = horizontalCount * (averageWidth + horizontalPadding) - horizontalPadding;\n\n // if max width is bigger than calculated ideal width reset ideal width to it\n if (maxWidth > idealWidth) {\n idealWidth = maxWidth;\n }\n\n // add the left-right margins to the ideal row width\n idealWidth += horizontalPadding * 2;\n\n // return the ideal row width1\n return idealWidth;\n};\n\nCoSELayout.prototype.tileNodesByFavoringDim = function (nodes, minWidth, favorHorizontalDim) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var tilingCompareBy = CoSEConstants.TILING_COMPARE_BY;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding,\n centerX: 0,\n centerY: 0\n };\n\n if (tilingCompareBy) {\n organization.idealRowWidth = this.calcIdealRowWidth(nodes, favorHorizontalDim);\n }\n\n var getNodeArea = function getNodeArea(n) {\n return n.rect.width * n.rect.height;\n };\n\n var areaCompareFcn = function areaCompareFcn(n1, n2) {\n return getNodeArea(n2) - getNodeArea(n1);\n };\n\n // Sort the nodes in descending order of their areas\n nodes.sort(function (n1, n2) {\n var cmpBy = areaCompareFcn;\n if (organization.idealRowWidth) {\n cmpBy = tilingCompareBy;\n return cmpBy(n1.id, n2.id);\n }\n return cmpBy(n1, n2);\n });\n\n // Create the organization -> calculate compound center\n var sumCenterX = 0;\n var sumCenterY = 0;\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n sumCenterX += lNode.getCenterX();\n sumCenterY += lNode.getCenterY();\n }\n\n organization.centerX = sumCenterX / nodes.length;\n organization.centerY = sumCenterY / nodes.length;\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n var rowIndex = organization.rows.length - 1;\n if (!organization.idealRowWidth) {\n rowIndex = this.getShortestRowIndex(organization);\n }\n this.insertNodeToRow(organization, lNode, rowIndex, minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n // if there is an ideal row width specified use it instead of checking the aspect ratio\n if (organization.idealRowWidth) {\n var lastRowIndex = organization.rows.length - 1;\n var lastRowWidth = organization.rowWidth[lastRowIndex];\n\n // check and return if ideal row width will be exceed if the node is added to the row\n return lastRowWidth + extraWidth + organization.horizontalPadding <= organization.idealRowWidth;\n }\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n if (CoSEConstants.PURE_INCREMENTAL) {\n var otherEnd = node.getEdges()[0].getOtherEnd(node);\n var relativePosition = new DimensionD(node.getCenterX() - otherEnd.getCenterX(), node.getCenterY() - otherEnd.getCenterY());\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner(), relativePosition]);\n } else {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n }\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n\n if (CoSEConstants.PURE_INCREMENTAL) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeData[3].getWidth(), nodeToConnect.getCenterY() + nodeData[3].getHeight());\n } else {\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n\n/***/ 991:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar FDLayoutNode = __webpack_require__(551).FDLayoutNode;\nvar IMath = __webpack_require__(551).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.calculateDisplacement = function () {\n var layout = this.graphManager.getLayout();\n // this check is for compound nodes that contain fixed nodes\n if (this.getChild() != null && this.fixedNodeWeight) {\n this.displacementX += layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.fixedNodeWeight;\n this.displacementY += layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.fixedNodeWeight;\n } else {\n this.displacementX += layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY += layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n }\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // non-empty compound node, propogate movement to children as well\n if (this.child && this.child.getNodes().length > 0) {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n\n // a simple node or an empty compound node, move it\n if (this.child == null || this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n }\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n\n/***/ 902:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar CoSEConstants = __webpack_require__(806);\nvar LinkedList = __webpack_require__(551).LinkedList;\nvar Matrix = __webpack_require__(551).Matrix;\nvar SVD = __webpack_require__(551).SVD;\n\nfunction ConstraintHandler() {}\n\nConstraintHandler.handleConstraints = function (layout) {\n // let layout = this.graphManager.getLayout();\n\n // get constraints from layout\n var constraints = {};\n constraints.fixedNodeConstraint = layout.constraints.fixedNodeConstraint;\n constraints.alignmentConstraint = layout.constraints.alignmentConstraint;\n constraints.relativePlacementConstraint = layout.constraints.relativePlacementConstraint;\n\n var idToNodeMap = new Map();\n var nodeIndexes = new Map();\n var xCoords = [];\n var yCoords = [];\n\n var allNodes = layout.getAllNodes();\n var index = 0;\n // fill index map and coordinates\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n if (node.getChild() == null) {\n nodeIndexes.set(node.id, index++);\n xCoords.push(node.getCenterX());\n yCoords.push(node.getCenterY());\n idToNodeMap.set(node.id, node);\n }\n }\n\n // if there exists relative placement constraint without gap value, set it to default \n if (constraints.relativePlacementConstraint) {\n constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (!constraint.gap && constraint.gap != 0) {\n if (constraint.left) {\n constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.left).getWidth() / 2 + idToNodeMap.get(constraint.right).getWidth() / 2;\n } else {\n constraint.gap = CoSEConstants.DEFAULT_EDGE_LENGTH + idToNodeMap.get(constraint.top).getHeight() / 2 + idToNodeMap.get(constraint.bottom).getHeight() / 2;\n }\n }\n });\n }\n\n /* auxiliary functions */\n\n // calculate difference between two position objects\n var calculatePositionDiff = function calculatePositionDiff(pos1, pos2) {\n return { x: pos1.x - pos2.x, y: pos1.y - pos2.y };\n };\n\n // calculate average position of the nodes\n var calculateAvgPosition = function calculateAvgPosition(nodeIdSet) {\n var xPosSum = 0;\n var yPosSum = 0;\n nodeIdSet.forEach(function (nodeId) {\n xPosSum += xCoords[nodeIndexes.get(nodeId)];\n yPosSum += yCoords[nodeIndexes.get(nodeId)];\n });\n\n return { x: xPosSum / nodeIdSet.size, y: yPosSum / nodeIdSet.size };\n };\n\n // find an appropriate positioning for the nodes in a given graph according to relative placement constraints\n // this function also takes the fixed nodes and alignment constraints into account\n // graph: dag to be evaluated, direction: \"horizontal\" or \"vertical\", \n // fixedNodes: set of fixed nodes to consider during evaluation, dummyPositions: appropriate coordinates of the dummy nodes \n var findAppropriatePositionForRelativePlacement = function findAppropriatePositionForRelativePlacement(graph, direction, fixedNodes, dummyPositions, componentSources) {\n\n // find union of two sets\n function setUnion(setA, setB) {\n var union = new Set(setA);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = setB[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var elem = _step.value;\n\n union.add(elem);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return union;\n }\n\n // find indegree count for each node\n var inDegrees = new Map();\n\n graph.forEach(function (value, key) {\n inDegrees.set(key, 0);\n });\n graph.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n inDegrees.set(adjacent.id, inDegrees.get(adjacent.id) + 1);\n });\n });\n\n var positionMap = new Map(); // keeps the position for each node\n var pastMap = new Map(); // keeps the predecessors(past) of a node\n var queue = new LinkedList();\n inDegrees.forEach(function (value, key) {\n if (value == 0) {\n queue.push(key);\n if (!fixedNodes) {\n if (direction == \"horizontal\") {\n positionMap.set(key, nodeIndexes.has(key) ? xCoords[nodeIndexes.get(key)] : dummyPositions.get(key));\n } else {\n positionMap.set(key, nodeIndexes.has(key) ? yCoords[nodeIndexes.get(key)] : dummyPositions.get(key));\n }\n }\n } else {\n positionMap.set(key, Number.NEGATIVE_INFINITY);\n }\n if (fixedNodes) {\n pastMap.set(key, new Set([key]));\n }\n });\n\n // align sources of each component in enforcement phase\n if (fixedNodes) {\n componentSources.forEach(function (component) {\n var fixedIds = [];\n component.forEach(function (nodeId) {\n if (fixedNodes.has(nodeId)) {\n fixedIds.push(nodeId);\n }\n });\n if (fixedIds.length > 0) {\n var position = 0;\n fixedIds.forEach(function (fixedId) {\n if (direction == \"horizontal\") {\n positionMap.set(fixedId, nodeIndexes.has(fixedId) ? xCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));\n position += positionMap.get(fixedId);\n } else {\n positionMap.set(fixedId, nodeIndexes.has(fixedId) ? yCoords[nodeIndexes.get(fixedId)] : dummyPositions.get(fixedId));\n position += positionMap.get(fixedId);\n }\n });\n position = position / fixedIds.length;\n component.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) {\n positionMap.set(nodeId, position);\n }\n });\n } else {\n var _position = 0;\n component.forEach(function (nodeId) {\n if (direction == \"horizontal\") {\n _position += nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n } else {\n _position += nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n }\n });\n _position = _position / component.length;\n component.forEach(function (nodeId) {\n positionMap.set(nodeId, _position);\n });\n }\n });\n }\n\n // calculate positions of the nodes\n\n var _loop = function _loop() {\n var currentNode = queue.shift();\n var neighbors = graph.get(currentNode);\n neighbors.forEach(function (neighbor) {\n if (positionMap.get(neighbor.id) < positionMap.get(currentNode) + neighbor.gap) {\n if (fixedNodes && fixedNodes.has(neighbor.id)) {\n var fixedPosition = void 0;\n if (direction == \"horizontal\") {\n fixedPosition = nodeIndexes.has(neighbor.id) ? xCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);\n } else {\n fixedPosition = nodeIndexes.has(neighbor.id) ? yCoords[nodeIndexes.get(neighbor.id)] : dummyPositions.get(neighbor.id);\n }\n positionMap.set(neighbor.id, fixedPosition); // TODO: may do unnecessary work\n if (fixedPosition < positionMap.get(currentNode) + neighbor.gap) {\n var diff = positionMap.get(currentNode) + neighbor.gap - fixedPosition;\n pastMap.get(currentNode).forEach(function (nodeId) {\n positionMap.set(nodeId, positionMap.get(nodeId) - diff);\n });\n }\n } else {\n positionMap.set(neighbor.id, positionMap.get(currentNode) + neighbor.gap);\n }\n }\n inDegrees.set(neighbor.id, inDegrees.get(neighbor.id) - 1);\n if (inDegrees.get(neighbor.id) == 0) {\n queue.push(neighbor.id);\n }\n if (fixedNodes) {\n pastMap.set(neighbor.id, setUnion(pastMap.get(currentNode), pastMap.get(neighbor.id)));\n }\n });\n };\n\n while (queue.length != 0) {\n _loop();\n }\n\n // readjust position of the nodes after enforcement\n if (fixedNodes) {\n // find indegree count for each node\n var sinkNodes = new Set();\n\n graph.forEach(function (value, key) {\n if (value.length == 0) {\n sinkNodes.add(key);\n }\n });\n\n var _components = [];\n pastMap.forEach(function (value, key) {\n if (sinkNodes.has(key)) {\n var isFixedComponent = false;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = value[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var nodeId = _step2.value;\n\n if (fixedNodes.has(nodeId)) {\n isFixedComponent = true;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n if (!isFixedComponent) {\n var isExist = false;\n var existAt = void 0;\n _components.forEach(function (component, index) {\n if (component.has([].concat(_toConsumableArray(value))[0])) {\n isExist = true;\n existAt = index;\n }\n });\n if (!isExist) {\n _components.push(new Set(value));\n } else {\n value.forEach(function (ele) {\n _components[existAt].add(ele);\n });\n }\n }\n }\n });\n\n _components.forEach(function (component, index) {\n var minBefore = Number.POSITIVE_INFINITY;\n var minAfter = Number.POSITIVE_INFINITY;\n var maxBefore = Number.NEGATIVE_INFINITY;\n var maxAfter = Number.NEGATIVE_INFINITY;\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = component[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nodeId = _step3.value;\n\n var posBefore = void 0;\n if (direction == \"horizontal\") {\n posBefore = nodeIndexes.has(nodeId) ? xCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n } else {\n posBefore = nodeIndexes.has(nodeId) ? yCoords[nodeIndexes.get(nodeId)] : dummyPositions.get(nodeId);\n }\n var posAfter = positionMap.get(nodeId);\n if (posBefore < minBefore) {\n minBefore = posBefore;\n }\n if (posBefore > maxBefore) {\n maxBefore = posBefore;\n }\n if (posAfter < minAfter) {\n minAfter = posAfter;\n }\n if (posAfter > maxAfter) {\n maxAfter = posAfter;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var diff = (minBefore + maxBefore) / 2 - (minAfter + maxAfter) / 2;\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = component[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _nodeId = _step4.value;\n\n positionMap.set(_nodeId, positionMap.get(_nodeId) + diff);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n });\n }\n\n return positionMap;\n };\n\n // find transformation based on rel. placement constraints if there are both alignment and rel. placement constraints\n // or if there are only rel. placement contraints where the largest component isn't sufficiently large\n var applyReflectionForRelativePlacement = function applyReflectionForRelativePlacement(relativePlacementConstraints) {\n // variables to count votes\n var reflectOnY = 0,\n notReflectOnY = 0;\n var reflectOnX = 0,\n notReflectOnX = 0;\n\n relativePlacementConstraints.forEach(function (constraint) {\n if (constraint.left) {\n xCoords[nodeIndexes.get(constraint.left)] - xCoords[nodeIndexes.get(constraint.right)] >= 0 ? reflectOnY++ : notReflectOnY++;\n } else {\n yCoords[nodeIndexes.get(constraint.top)] - yCoords[nodeIndexes.get(constraint.bottom)] >= 0 ? reflectOnX++ : notReflectOnX++;\n }\n });\n\n if (reflectOnY > notReflectOnY && reflectOnX > notReflectOnX) {\n for (var _i = 0; _i < nodeIndexes.size; _i++) {\n xCoords[_i] = -1 * xCoords[_i];\n yCoords[_i] = -1 * yCoords[_i];\n }\n } else if (reflectOnY > notReflectOnY) {\n for (var _i2 = 0; _i2 < nodeIndexes.size; _i2++) {\n xCoords[_i2] = -1 * xCoords[_i2];\n }\n } else if (reflectOnX > notReflectOnX) {\n for (var _i3 = 0; _i3 < nodeIndexes.size; _i3++) {\n yCoords[_i3] = -1 * yCoords[_i3];\n }\n }\n };\n\n // find weakly connected components in undirected graph\n var findComponents = function findComponents(graph) {\n // find weakly connected components in dag\n var components = [];\n var queue = new LinkedList();\n var visited = new Set();\n var count = 0;\n\n graph.forEach(function (value, key) {\n if (!visited.has(key)) {\n components[count] = [];\n var _currentNode = key;\n queue.push(_currentNode);\n visited.add(_currentNode);\n components[count].push(_currentNode);\n\n while (queue.length != 0) {\n _currentNode = queue.shift();\n var neighbors = graph.get(_currentNode);\n neighbors.forEach(function (neighbor) {\n if (!visited.has(neighbor.id)) {\n queue.push(neighbor.id);\n visited.add(neighbor.id);\n components[count].push(neighbor.id);\n }\n });\n }\n count++;\n }\n });\n return components;\n };\n\n // return undirected version of given dag\n var dagToUndirected = function dagToUndirected(dag) {\n var undirected = new Map();\n\n dag.forEach(function (value, key) {\n undirected.set(key, []);\n });\n\n dag.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n undirected.get(key).push(adjacent);\n undirected.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });\n });\n });\n\n return undirected;\n };\n\n // return reversed (directions inverted) version of given dag\n var dagToReversed = function dagToReversed(dag) {\n var reversed = new Map();\n\n dag.forEach(function (value, key) {\n reversed.set(key, []);\n });\n\n dag.forEach(function (value, key) {\n value.forEach(function (adjacent) {\n reversed.get(adjacent.id).push({ id: key, gap: adjacent.gap, direction: adjacent.direction });\n });\n });\n\n return reversed;\n };\n\n /**** apply transformation to the initial draft layout to better align with constrained nodes ****/\n // solve the Orthogonal Procrustean Problem to rotate and/or reflect initial draft layout\n // here we follow the solution in Chapter 20.2 of Borg, I. & Groenen, P. (2005) Modern Multidimensional Scaling: Theory and Applications \n\n /* construct source and target configurations */\n\n var targetMatrix = []; // A - target configuration\n var sourceMatrix = []; // B - source configuration \n var standardTransformation = false; // false for no transformation, true for standart (Procrustes) transformation (rotation and/or reflection)\n var reflectionType = false; // false/true for reflection check, 'reflectOnX', 'reflectOnY' or 'reflectOnBoth' for reflection type if necessary\n var fixedNodes = new Set();\n var dag = new Map(); // adjacency list to keep directed acyclic graph (dag) that consists of relative placement constraints\n var dagUndirected = new Map(); // undirected version of the dag\n var components = []; // weakly connected components\n\n // fill fixedNodes collection to use later\n if (constraints.fixedNodeConstraint) {\n constraints.fixedNodeConstraint.forEach(function (nodeData) {\n fixedNodes.add(nodeData.nodeId);\n });\n }\n\n // construct dag from relative placement constraints \n if (constraints.relativePlacementConstraint) {\n // construct both directed and undirected version of the dag\n constraints.relativePlacementConstraint.forEach(function (constraint) {\n if (constraint.left) {\n if (dag.has(constraint.left)) {\n dag.get(constraint.left).push({ id: constraint.right, gap: constraint.gap, direction: \"horizontal\" });\n } else {\n dag.set(constraint.left, [{ id: constraint.right, gap: constraint.gap, direction: \"horizontal\" }]);\n }\n if (!dag.has(constraint.right)) {\n dag.set(constraint.right, []);\n }\n } else {\n if (dag.has(constraint.top)) {\n dag.get(constraint.top).push({ id: constraint.bottom, gap: constraint.gap, direction: \"vertical\" });\n } else {\n dag.set(constraint.top, [{ id: constraint.bottom, gap: constraint.gap, direction: \"vertical\" }]);\n }\n if (!dag.has(constraint.bottom)) {\n dag.set(constraint.bottom, []);\n }\n }\n });\n\n dagUndirected = dagToUndirected(dag);\n components = findComponents(dagUndirected);\n }\n\n if (CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING) {\n // first check fixed node constraint\n if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 1) {\n constraints.fixedNodeConstraint.forEach(function (nodeData, i) {\n targetMatrix[i] = [nodeData.position.x, nodeData.position.y];\n sourceMatrix[i] = [xCoords[nodeIndexes.get(nodeData.nodeId)], yCoords[nodeIndexes.get(nodeData.nodeId)]];\n });\n standardTransformation = true;\n } else if (constraints.alignmentConstraint) {\n (function () {\n // then check alignment constraint\n var count = 0;\n if (constraints.alignmentConstraint.vertical) {\n var verticalAlign = constraints.alignmentConstraint.vertical;\n\n var _loop2 = function _loop2(_i4) {\n var alignmentSet = new Set();\n verticalAlign[_i4].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var xPos = void 0;\n if (intersection.size > 0) xPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else xPos = calculateAvgPosition(alignmentSet).x;\n\n verticalAlign[_i4].forEach(function (nodeId) {\n targetMatrix[count] = [xPos, yCoords[nodeIndexes.get(nodeId)]];\n sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n count++;\n });\n };\n\n for (var _i4 = 0; _i4 < verticalAlign.length; _i4++) {\n _loop2(_i4);\n }\n standardTransformation = true;\n }\n if (constraints.alignmentConstraint.horizontal) {\n var horizontalAlign = constraints.alignmentConstraint.horizontal;\n\n var _loop3 = function _loop3(_i5) {\n var alignmentSet = new Set();\n horizontalAlign[_i5].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var yPos = void 0;\n if (intersection.size > 0) yPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else yPos = calculateAvgPosition(alignmentSet).y;\n\n horizontalAlign[_i5].forEach(function (nodeId) {\n targetMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yPos];\n sourceMatrix[count] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n count++;\n });\n };\n\n for (var _i5 = 0; _i5 < horizontalAlign.length; _i5++) {\n _loop3(_i5);\n }\n standardTransformation = true;\n }\n if (constraints.relativePlacementConstraint) {\n reflectionType = true;\n }\n })();\n } else if (constraints.relativePlacementConstraint) {\n // finally check relative placement constraint\n // find largest component in dag\n var largestComponentSize = 0;\n var largestComponentIndex = 0;\n for (var _i6 = 0; _i6 < components.length; _i6++) {\n if (components[_i6].length > largestComponentSize) {\n largestComponentSize = components[_i6].length;\n largestComponentIndex = _i6;\n }\n }\n // if largest component isn't dominant, then take the votes for reflection\n if (largestComponentSize < dagUndirected.size / 2) {\n applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);\n standardTransformation = false;\n reflectionType = false;\n } else {\n // use largest component for transformation\n // construct horizontal and vertical subgraphs in the largest component\n var subGraphOnHorizontal = new Map();\n var subGraphOnVertical = new Map();\n var constraintsInlargestComponent = [];\n\n components[largestComponentIndex].forEach(function (nodeId) {\n dag.get(nodeId).forEach(function (adjacent) {\n if (adjacent.direction == \"horizontal\") {\n if (subGraphOnHorizontal.has(nodeId)) {\n subGraphOnHorizontal.get(nodeId).push(adjacent);\n } else {\n subGraphOnHorizontal.set(nodeId, [adjacent]);\n }\n if (!subGraphOnHorizontal.has(adjacent.id)) {\n subGraphOnHorizontal.set(adjacent.id, []);\n }\n constraintsInlargestComponent.push({ left: nodeId, right: adjacent.id });\n } else {\n if (subGraphOnVertical.has(nodeId)) {\n subGraphOnVertical.get(nodeId).push(adjacent);\n } else {\n subGraphOnVertical.set(nodeId, [adjacent]);\n }\n if (!subGraphOnVertical.has(adjacent.id)) {\n subGraphOnVertical.set(adjacent.id, []);\n }\n constraintsInlargestComponent.push({ top: nodeId, bottom: adjacent.id });\n }\n });\n });\n\n applyReflectionForRelativePlacement(constraintsInlargestComponent);\n reflectionType = false;\n\n // calculate appropriate positioning for subgraphs\n var positionMapHorizontal = findAppropriatePositionForRelativePlacement(subGraphOnHorizontal, \"horizontal\");\n var positionMapVertical = findAppropriatePositionForRelativePlacement(subGraphOnVertical, \"vertical\");\n\n // construct source and target configuration\n components[largestComponentIndex].forEach(function (nodeId, i) {\n sourceMatrix[i] = [xCoords[nodeIndexes.get(nodeId)], yCoords[nodeIndexes.get(nodeId)]];\n targetMatrix[i] = [];\n if (positionMapHorizontal.has(nodeId)) {\n targetMatrix[i][0] = positionMapHorizontal.get(nodeId);\n } else {\n targetMatrix[i][0] = xCoords[nodeIndexes.get(nodeId)];\n }\n if (positionMapVertical.has(nodeId)) {\n targetMatrix[i][1] = positionMapVertical.get(nodeId);\n } else {\n targetMatrix[i][1] = yCoords[nodeIndexes.get(nodeId)];\n }\n });\n\n standardTransformation = true;\n }\n }\n\n // if transformation is required, then calculate and apply transformation matrix\n if (standardTransformation) {\n /* calculate transformation matrix */\n var transformationMatrix = void 0;\n var targetMatrixTranspose = Matrix.transpose(targetMatrix); // A'\n var sourceMatrixTranspose = Matrix.transpose(sourceMatrix); // B'\n\n // centralize transpose matrices\n for (var _i7 = 0; _i7 < targetMatrixTranspose.length; _i7++) {\n targetMatrixTranspose[_i7] = Matrix.multGamma(targetMatrixTranspose[_i7]);\n sourceMatrixTranspose[_i7] = Matrix.multGamma(sourceMatrixTranspose[_i7]);\n }\n\n // do actual calculation for transformation matrix\n var tempMatrix = Matrix.multMat(targetMatrixTranspose, Matrix.transpose(sourceMatrixTranspose)); // tempMatrix = A'B\n var SVDResult = SVD.svd(tempMatrix); // SVD(A'B) = USV', svd function returns U, S and V \n transformationMatrix = Matrix.multMat(SVDResult.V, Matrix.transpose(SVDResult.U)); // transformationMatrix = T = VU'\n\n /* apply found transformation matrix to obtain final draft layout */\n for (var _i8 = 0; _i8 < nodeIndexes.size; _i8++) {\n var temp1 = [xCoords[_i8], yCoords[_i8]];\n var temp2 = [transformationMatrix[0][0], transformationMatrix[1][0]];\n var temp3 = [transformationMatrix[0][1], transformationMatrix[1][1]];\n xCoords[_i8] = Matrix.dotProduct(temp1, temp2);\n yCoords[_i8] = Matrix.dotProduct(temp1, temp3);\n }\n\n // applied only both alignment and rel. placement constraints exist\n if (reflectionType) {\n applyReflectionForRelativePlacement(constraints.relativePlacementConstraint);\n }\n }\n }\n\n if (CoSEConstants.ENFORCE_CONSTRAINTS) {\n /**** enforce constraints on the transformed draft layout ****/\n\n /* first enforce fixed node constraint */\n\n if (constraints.fixedNodeConstraint && constraints.fixedNodeConstraint.length > 0) {\n var translationAmount = { x: 0, y: 0 };\n constraints.fixedNodeConstraint.forEach(function (nodeData, i) {\n var posInTheory = { x: xCoords[nodeIndexes.get(nodeData.nodeId)], y: yCoords[nodeIndexes.get(nodeData.nodeId)] };\n var posDesired = nodeData.position;\n var posDiff = calculatePositionDiff(posDesired, posInTheory);\n translationAmount.x += posDiff.x;\n translationAmount.y += posDiff.y;\n });\n translationAmount.x /= constraints.fixedNodeConstraint.length;\n translationAmount.y /= constraints.fixedNodeConstraint.length;\n\n xCoords.forEach(function (value, i) {\n xCoords[i] += translationAmount.x;\n });\n\n yCoords.forEach(function (value, i) {\n yCoords[i] += translationAmount.y;\n });\n\n constraints.fixedNodeConstraint.forEach(function (nodeData) {\n xCoords[nodeIndexes.get(nodeData.nodeId)] = nodeData.position.x;\n yCoords[nodeIndexes.get(nodeData.nodeId)] = nodeData.position.y;\n });\n }\n\n /* then enforce alignment constraint */\n\n if (constraints.alignmentConstraint) {\n if (constraints.alignmentConstraint.vertical) {\n var xAlign = constraints.alignmentConstraint.vertical;\n\n var _loop4 = function _loop4(_i9) {\n var alignmentSet = new Set();\n xAlign[_i9].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var xPos = void 0;\n if (intersection.size > 0) xPos = xCoords[nodeIndexes.get(intersection.values().next().value)];else xPos = calculateAvgPosition(alignmentSet).x;\n\n alignmentSet.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) xCoords[nodeIndexes.get(nodeId)] = xPos;\n });\n };\n\n for (var _i9 = 0; _i9 < xAlign.length; _i9++) {\n _loop4(_i9);\n }\n }\n if (constraints.alignmentConstraint.horizontal) {\n var yAlign = constraints.alignmentConstraint.horizontal;\n\n var _loop5 = function _loop5(_i10) {\n var alignmentSet = new Set();\n yAlign[_i10].forEach(function (nodeId) {\n alignmentSet.add(nodeId);\n });\n var intersection = new Set([].concat(_toConsumableArray(alignmentSet)).filter(function (x) {\n return fixedNodes.has(x);\n }));\n var yPos = void 0;\n if (intersection.size > 0) yPos = yCoords[nodeIndexes.get(intersection.values().next().value)];else yPos = calculateAvgPosition(alignmentSet).y;\n\n alignmentSet.forEach(function (nodeId) {\n if (!fixedNodes.has(nodeId)) yCoords[nodeIndexes.get(nodeId)] = yPos;\n });\n };\n\n for (var _i10 = 0; _i10 < yAlign.length; _i10++) {\n _loop5(_i10);\n }\n }\n }\n\n /* finally enforce relative placement constraint */\n\n if (constraints.relativePlacementConstraint) {\n (function () {\n var nodeToDummyForVerticalAlignment = new Map();\n var nodeToDummyForHorizontalAlignment = new Map();\n var dummyToNodeForVerticalAlignment = new Map();\n var dummyToNodeForHorizontalAlignment = new Map();\n var dummyPositionsForVerticalAlignment = new Map();\n var dummyPositionsForHorizontalAlignment = new Map();\n var fixedNodesOnHorizontal = new Set();\n var fixedNodesOnVertical = new Set();\n\n // fill maps and sets \n fixedNodes.forEach(function (nodeId) {\n fixedNodesOnHorizontal.add(nodeId);\n fixedNodesOnVertical.add(nodeId);\n });\n\n if (constraints.alignmentConstraint) {\n if (constraints.alignmentConstraint.vertical) {\n var verticalAlignment = constraints.alignmentConstraint.vertical;\n\n var _loop6 = function _loop6(_i11) {\n dummyToNodeForVerticalAlignment.set(\"dummy\" + _i11, []);\n verticalAlignment[_i11].forEach(function (nodeId) {\n nodeToDummyForVerticalAlignment.set(nodeId, \"dummy\" + _i11);\n dummyToNodeForVerticalAlignment.get(\"dummy\" + _i11).push(nodeId);\n if (fixedNodes.has(nodeId)) {\n fixedNodesOnHorizontal.add(\"dummy\" + _i11);\n }\n });\n dummyPositionsForVerticalAlignment.set(\"dummy\" + _i11, xCoords[nodeIndexes.get(verticalAlignment[_i11][0])]);\n };\n\n for (var _i11 = 0; _i11 < verticalAlignment.length; _i11++) {\n _loop6(_i11);\n }\n }\n if (constraints.alignmentConstraint.horizontal) {\n var horizontalAlignment = constraints.alignmentConstraint.horizontal;\n\n var _loop7 = function _loop7(_i12) {\n dummyToNodeForHorizontalAlignment.set(\"dummy\" + _i12, []);\n horizontalAlignment[_i12].forEach(function (nodeId) {\n nodeToDummyForHorizontalAlignment.set(nodeId, \"dummy\" + _i12);\n dummyToNodeForHorizontalAlignment.get(\"dummy\" + _i12).push(nodeId);\n if (fixedNodes.has(nodeId)) {\n fixedNodesOnVertical.add(\"dummy\" + _i12);\n }\n });\n dummyPositionsForHorizontalAlignment.set(\"dummy\" + _i12, yCoords[nodeIndexes.get(horizontalAlignment[_i12][0])]);\n };\n\n for (var _i12 = 0; _i12 < horizontalAlignment.length; _i12++) {\n _loop7(_i12);\n }\n }\n }\n\n // construct horizontal and vertical dags (subgraphs) from overall dag\n var dagOnHorizontal = new Map();\n var dagOnVertical = new Map();\n\n var _loop8 = function _loop8(nodeId) {\n dag.get(nodeId).forEach(function (adjacent) {\n var sourceId = void 0;\n var targetNode = void 0;\n if (adjacent[\"direction\"] == \"horizontal\") {\n sourceId = nodeToDummyForVerticalAlignment.get(nodeId) ? nodeToDummyForVerticalAlignment.get(nodeId) : nodeId;\n if (nodeToDummyForVerticalAlignment.get(adjacent.id)) {\n targetNode = { id: nodeToDummyForVerticalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };\n } else {\n targetNode = adjacent;\n }\n if (dagOnHorizontal.has(sourceId)) {\n dagOnHorizontal.get(sourceId).push(targetNode);\n } else {\n dagOnHorizontal.set(sourceId, [targetNode]);\n }\n if (!dagOnHorizontal.has(targetNode.id)) {\n dagOnHorizontal.set(targetNode.id, []);\n }\n } else {\n sourceId = nodeToDummyForHorizontalAlignment.get(nodeId) ? nodeToDummyForHorizontalAlignment.get(nodeId) : nodeId;\n if (nodeToDummyForHorizontalAlignment.get(adjacent.id)) {\n targetNode = { id: nodeToDummyForHorizontalAlignment.get(adjacent.id), gap: adjacent.gap, direction: adjacent.direction };\n } else {\n targetNode = adjacent;\n }\n if (dagOnVertical.has(sourceId)) {\n dagOnVertical.get(sourceId).push(targetNode);\n } else {\n dagOnVertical.set(sourceId, [targetNode]);\n }\n if (!dagOnVertical.has(targetNode.id)) {\n dagOnVertical.set(targetNode.id, []);\n }\n }\n });\n };\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = dag.keys()[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var nodeId = _step5.value;\n\n _loop8(nodeId);\n }\n\n // find source nodes of each component in horizontal and vertical dags\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n var undirectedOnHorizontal = dagToUndirected(dagOnHorizontal);\n var undirectedOnVertical = dagToUndirected(dagOnVertical);\n var componentsOnHorizontal = findComponents(undirectedOnHorizontal);\n var componentsOnVertical = findComponents(undirectedOnVertical);\n var reversedDagOnHorizontal = dagToReversed(dagOnHorizontal);\n var reversedDagOnVertical = dagToReversed(dagOnVertical);\n var componentSourcesOnHorizontal = [];\n var componentSourcesOnVertical = [];\n\n componentsOnHorizontal.forEach(function (component, index) {\n componentSourcesOnHorizontal[index] = [];\n component.forEach(function (nodeId) {\n if (reversedDagOnHorizontal.get(nodeId).length == 0) {\n componentSourcesOnHorizontal[index].push(nodeId);\n }\n });\n });\n\n componentsOnVertical.forEach(function (component, index) {\n componentSourcesOnVertical[index] = [];\n component.forEach(function (nodeId) {\n if (reversedDagOnVertical.get(nodeId).length == 0) {\n componentSourcesOnVertical[index].push(nodeId);\n }\n });\n });\n\n // calculate appropriate positioning for subgraphs\n var positionMapHorizontal = findAppropriatePositionForRelativePlacement(dagOnHorizontal, \"horizontal\", fixedNodesOnHorizontal, dummyPositionsForVerticalAlignment, componentSourcesOnHorizontal);\n var positionMapVertical = findAppropriatePositionForRelativePlacement(dagOnVertical, \"vertical\", fixedNodesOnVertical, dummyPositionsForHorizontalAlignment, componentSourcesOnVertical);\n\n // update positions of the nodes based on relative placement constraints\n\n var _loop9 = function _loop9(key) {\n if (dummyToNodeForVerticalAlignment.get(key)) {\n dummyToNodeForVerticalAlignment.get(key).forEach(function (nodeId) {\n xCoords[nodeIndexes.get(nodeId)] = positionMapHorizontal.get(key);\n });\n } else {\n xCoords[nodeIndexes.get(key)] = positionMapHorizontal.get(key);\n }\n };\n\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = positionMapHorizontal.keys()[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var key = _step6.value;\n\n _loop9(key);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n var _loop10 = function _loop10(key) {\n if (dummyToNodeForHorizontalAlignment.get(key)) {\n dummyToNodeForHorizontalAlignment.get(key).forEach(function (nodeId) {\n yCoords[nodeIndexes.get(nodeId)] = positionMapVertical.get(key);\n });\n } else {\n yCoords[nodeIndexes.get(key)] = positionMapVertical.get(key);\n }\n };\n\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = positionMapVertical.keys()[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var key = _step7.value;\n\n _loop10(key);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n })();\n }\n }\n\n // assign new coordinates to nodes after constraint handling\n for (var _i13 = 0; _i13 < allNodes.length; _i13++) {\n var _node = allNodes[_i13];\n if (_node.getChild() == null) {\n _node.setCenter(xCoords[nodeIndexes.get(_node.id)], yCoords[nodeIndexes.get(_node.id)]);\n }\n }\n};\n\nmodule.exports = ConstraintHandler;\n\n/***/ }),\n\n/***/ 551:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__551__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(45);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cose-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cose-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeFcose\"] = factory(require(\"cose-base\"));\n\telse\n\t\troot[\"cytoscapeFcose\"] = factory(root[\"coseBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__140__) {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 658:\n/***/ ((module) => {\n\n\n\n// Simple, internal Object.assign() polyfill for options objects etc.\n\nmodule.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n srcs[_key - 1] = arguments[_key];\n }\n\n srcs.forEach(function (src) {\n Object.keys(src).forEach(function (k) {\n return tgt[k] = src[k];\n });\n });\n\n return tgt;\n};\n\n/***/ }),\n\n/***/ 548:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n/*\n * Auxiliary functions\n */\n\nvar LinkedList = __webpack_require__(140).layoutBase.LinkedList;\n\nvar auxiliary = {};\n\n// get the top most nodes\nauxiliary.getTopMostNodes = function (nodes) {\n var nodesMap = {};\n for (var i = 0; i < nodes.length; i++) {\n nodesMap[nodes[i].id()] = true;\n }\n var roots = nodes.filter(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var parent = ele.parent()[0];\n while (parent != null) {\n if (nodesMap[parent.id()]) {\n return false;\n }\n parent = parent.parent()[0];\n }\n return true;\n });\n\n return roots;\n};\n\n// find disconnected components and create dummy nodes that connect them\nauxiliary.connectComponents = function (cy, eles, topMostNodes, dummyNodes) {\n var queue = new LinkedList();\n var visited = new Set();\n var visitedTopMostNodes = [];\n var currentNeighbor = void 0;\n var minDegreeNode = void 0;\n var minDegree = void 0;\n\n var isConnected = false;\n var count = 1;\n var nodesConnectedToDummy = [];\n var components = [];\n\n var _loop = function _loop() {\n var cmpt = cy.collection();\n components.push(cmpt);\n\n var currentNode = topMostNodes[0];\n var childrenOfCurrentNode = cy.collection();\n childrenOfCurrentNode.merge(currentNode).merge(currentNode.descendants().intersection(eles));\n visitedTopMostNodes.push(currentNode);\n\n childrenOfCurrentNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n cmpt.merge(node);\n });\n\n var _loop2 = function _loop2() {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n var neighborNodes = cy.collection();\n currentNode.neighborhood().nodes().forEach(function (node) {\n if (eles.intersection(currentNode.edgesWith(node)).length > 0) {\n neighborNodes.merge(node);\n }\n });\n\n for (var i = 0; i < neighborNodes.length; i++) {\n var neighborNode = neighborNodes[i];\n currentNeighbor = topMostNodes.intersection(neighborNode.union(neighborNode.ancestors()));\n if (currentNeighbor != null && !visited.has(currentNeighbor[0])) {\n var childrenOfNeighbor = currentNeighbor.union(currentNeighbor.descendants());\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n cmpt.merge(node);\n if (topMostNodes.has(node)) {\n visitedTopMostNodes.push(node);\n }\n });\n }\n }\n };\n\n while (queue.length != 0) {\n _loop2();\n }\n\n cmpt.forEach(function (node) {\n eles.intersection(node.connectedEdges()).forEach(function (e) {\n // connectedEdges() usually cached\n if (cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e);\n }\n });\n });\n\n if (visitedTopMostNodes.length == topMostNodes.length) {\n isConnected = true;\n }\n\n if (!isConnected || isConnected && count > 1) {\n minDegreeNode = visitedTopMostNodes[0];\n minDegree = minDegreeNode.connectedEdges().length;\n visitedTopMostNodes.forEach(function (node) {\n if (node.connectedEdges().length < minDegree) {\n minDegree = node.connectedEdges().length;\n minDegreeNode = node;\n }\n });\n nodesConnectedToDummy.push(minDegreeNode.id());\n // TO DO: Check efficiency of this part\n var temp = cy.collection();\n temp.merge(visitedTopMostNodes[0]);\n visitedTopMostNodes.forEach(function (node) {\n temp.merge(node);\n });\n visitedTopMostNodes = [];\n topMostNodes = topMostNodes.difference(temp);\n count++;\n }\n };\n\n do {\n _loop();\n } while (!isConnected);\n\n if (dummyNodes) {\n if (nodesConnectedToDummy.length > 0) {\n dummyNodes.set('dummy' + (dummyNodes.size + 1), nodesConnectedToDummy);\n }\n }\n return components;\n};\n\n// relocates componentResult to originalCenter if there is no fixedNodeConstraint\nauxiliary.relocateComponent = function (originalCenter, componentResult, options) {\n if (!options.fixedNodeConstraint) {\n var minXCoord = Number.POSITIVE_INFINITY;\n var maxXCoord = Number.NEGATIVE_INFINITY;\n var minYCoord = Number.POSITIVE_INFINITY;\n var maxYCoord = Number.NEGATIVE_INFINITY;\n if (options.quality == \"draft\") {\n // calculate current bounding box\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = componentResult.nodeIndexes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref = _step.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var key = _ref2[0];\n var value = _ref2[1];\n\n var cyNode = options.cy.getElementById(key);\n if (cyNode) {\n var nodeBB = cyNode.boundingBox();\n var leftX = componentResult.xCoords[value] - nodeBB.w / 2;\n var rightX = componentResult.xCoords[value] + nodeBB.w / 2;\n var topY = componentResult.yCoords[value] - nodeBB.h / 2;\n var bottomY = componentResult.yCoords[value] + nodeBB.h / 2;\n\n if (leftX < minXCoord) minXCoord = leftX;\n if (rightX > maxXCoord) maxXCoord = rightX;\n if (topY < minYCoord) minYCoord = topY;\n if (bottomY > maxYCoord) maxYCoord = bottomY;\n }\n }\n // find difference between current and original center\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;\n var diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;\n // move component to original center\n componentResult.xCoords = componentResult.xCoords.map(function (x) {\n return x + diffOnX;\n });\n componentResult.yCoords = componentResult.yCoords.map(function (y) {\n return y + diffOnY;\n });\n } else {\n // calculate current bounding box\n Object.keys(componentResult).forEach(function (item) {\n var node = componentResult[item];\n var leftX = node.getRect().x;\n var rightX = node.getRect().x + node.getRect().width;\n var topY = node.getRect().y;\n var bottomY = node.getRect().y + node.getRect().height;\n\n if (leftX < minXCoord) minXCoord = leftX;\n if (rightX > maxXCoord) maxXCoord = rightX;\n if (topY < minYCoord) minYCoord = topY;\n if (bottomY > maxYCoord) maxYCoord = bottomY;\n });\n // find difference between current and original center\n var _diffOnX = originalCenter.x - (maxXCoord + minXCoord) / 2;\n var _diffOnY = originalCenter.y - (maxYCoord + minYCoord) / 2;\n // move component to original center\n Object.keys(componentResult).forEach(function (item) {\n var node = componentResult[item];\n node.setCenter(node.getCenterX() + _diffOnX, node.getCenterY() + _diffOnY);\n });\n }\n }\n};\n\nauxiliary.calcBoundingBox = function (parentNode, xCoords, yCoords, nodeIndexes) {\n // calculate bounds\n var left = Number.MAX_SAFE_INTEGER;\n var right = Number.MIN_SAFE_INTEGER;\n var top = Number.MAX_SAFE_INTEGER;\n var bottom = Number.MIN_SAFE_INTEGER;\n var nodeLeft = void 0;\n var nodeRight = void 0;\n var nodeTop = void 0;\n var nodeBottom = void 0;\n\n var nodes = parentNode.descendants().not(\":parent\");\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var node = nodes[i];\n\n nodeLeft = xCoords[nodeIndexes.get(node.id())] - node.width() / 2;\n nodeRight = xCoords[nodeIndexes.get(node.id())] + node.width() / 2;\n nodeTop = yCoords[nodeIndexes.get(node.id())] - node.height() / 2;\n nodeBottom = yCoords[nodeIndexes.get(node.id())] + node.height() / 2;\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingBox = {};\n boundingBox.topLeftX = left;\n boundingBox.topLeftY = top;\n boundingBox.width = right - left;\n boundingBox.height = bottom - top;\n return boundingBox;\n};\n\n// This function finds and returns parent nodes whose all children are hidden\nauxiliary.calcParentsWithoutChildren = function (cy, eles) {\n var parentsWithoutChildren = cy.collection();\n eles.nodes(':parent').forEach(function (parent) {\n var check = false;\n parent.children().forEach(function (child) {\n if (child.css('display') != 'none') {\n check = true;\n }\n });\n if (!check) {\n parentsWithoutChildren.merge(parent);\n }\n });\n\n return parentsWithoutChildren;\n};\n\nmodule.exports = auxiliary;\n\n/***/ }),\n\n/***/ 816:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\n/**\n The implementation of the postprocessing part that applies CoSE layout over the spectral layout\n*/\n\nvar aux = __webpack_require__(548);\nvar CoSELayout = __webpack_require__(140).CoSELayout;\nvar CoSENode = __webpack_require__(140).CoSENode;\nvar PointD = __webpack_require__(140).layoutBase.PointD;\nvar DimensionD = __webpack_require__(140).layoutBase.DimensionD;\nvar LayoutConstants = __webpack_require__(140).layoutBase.LayoutConstants;\nvar FDLayoutConstants = __webpack_require__(140).layoutBase.FDLayoutConstants;\nvar CoSEConstants = __webpack_require__(140).CoSEConstants;\n\n// main function that cose layout is processed\nvar coseLayout = function coseLayout(options, spectralResult) {\n\n var cy = options.cy;\n var eles = options.eles;\n var nodes = eles.nodes();\n var edges = eles.edges();\n\n var nodeIndexes = void 0;\n var xCoords = void 0;\n var yCoords = void 0;\n var idToLNode = {};\n\n if (options.randomize) {\n nodeIndexes = spectralResult[\"nodeIndexes\"];\n xCoords = spectralResult[\"xCoords\"];\n yCoords = spectralResult[\"yCoords\"];\n }\n\n var isFn = function isFn(fn) {\n return typeof fn === 'function';\n };\n\n var optFn = function optFn(opt, ele) {\n if (isFn(opt)) {\n return opt(ele);\n } else {\n return opt;\n }\n };\n\n /**** Postprocessing functions ****/\n\n var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);\n\n // transfer cytoscape nodes to cose nodes\n var processChildrenList = function processChildrenList(parent, children, layout, options) {\n var size = children.length;\n for (var i = 0; i < size; i++) {\n var theChild = children[i];\n var children_of_children = null;\n if (theChild.intersection(parentsWithoutChildren).length == 0) {\n children_of_children = theChild.children();\n }\n var theNode = void 0;\n\n var dimensions = theChild.layoutDimensions({\n nodeDimensionsIncludeLabels: options.nodeDimensionsIncludeLabels\n });\n\n if (theChild.outerWidth() != null && theChild.outerHeight() != null) {\n if (options.randomize) {\n if (!theChild.isParent()) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(xCoords[nodeIndexes.get(theChild.id())] - dimensions.w / 2, yCoords[nodeIndexes.get(theChild.id())] - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n } else {\n var parentInfo = aux.calcBoundingBox(theChild, xCoords, yCoords, nodeIndexes);\n if (theChild.intersection(parentsWithoutChildren).length == 0) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD(parentInfo.width, parentInfo.height)));\n } else {\n // for the parentsWithoutChildren\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(parentInfo.topLeftX, parentInfo.topLeftY), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n }\n }\n } else {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n }\n } else {\n theNode = parent.add(new CoSENode(this.graphManager));\n }\n // Attach id to the layout node and repulsion value\n theNode.id = theChild.data(\"id\");\n theNode.nodeRepulsion = optFn(options.nodeRepulsion, theChild);\n // Attach the paddings of cy node to layout node\n theNode.paddingLeft = parseInt(theChild.css('padding'));\n theNode.paddingTop = parseInt(theChild.css('padding'));\n theNode.paddingRight = parseInt(theChild.css('padding'));\n theNode.paddingBottom = parseInt(theChild.css('padding'));\n\n //Attach the label properties to both compound and simple nodes if labels will be included in node dimensions\n //These properties will be used while updating bounds of compounds during iterations or tiling\n //and will be used for simple nodes while transferring final positions to cytoscape\n if (options.nodeDimensionsIncludeLabels) {\n theNode.labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).w;\n theNode.labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false, includeOverlays: false }).h;\n theNode.labelPosVertical = theChild.css(\"text-valign\");\n theNode.labelPosHorizontal = theChild.css(\"text-halign\");\n }\n\n // Map the layout node\n idToLNode[theChild.data(\"id\")] = theNode;\n\n if (isNaN(theNode.rect.x)) {\n theNode.rect.x = 0;\n }\n\n if (isNaN(theNode.rect.y)) {\n theNode.rect.y = 0;\n }\n\n if (children_of_children != null && children_of_children.length > 0) {\n var theNewGraph = void 0;\n theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);\n processChildrenList(theNewGraph, children_of_children, layout, options);\n }\n }\n };\n\n // transfer cytoscape edges to cose edges\n var processEdges = function processEdges(layout, gm, edges) {\n var idealLengthTotal = 0;\n var edgeCount = 0;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var sourceNode = idToLNode[edge.data(\"source\")];\n var targetNode = idToLNode[edge.data(\"target\")];\n if (sourceNode && targetNode && sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {\n var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);\n e1.id = edge.id();\n e1.idealLength = optFn(options.idealEdgeLength, edge);\n e1.edgeElasticity = optFn(options.edgeElasticity, edge);\n idealLengthTotal += e1.idealLength;\n edgeCount++;\n }\n }\n // we need to update the ideal edge length constant with the avg. ideal length value after processing edges\n // in case there is no edge, use other options\n if (options.idealEdgeLength != null) {\n if (edgeCount > 0) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = idealLengthTotal / edgeCount;else if (!isFn(options.idealEdgeLength)) // in case there is no edge, but option gives a value to use\n CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;else // in case there is no edge and we cannot get a value from option (because it's a function)\n CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\n // we need to update these constant values based on the ideal edge length constant\n CoSEConstants.MIN_REPULSION_DIST = FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\n CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n }\n };\n\n // transfer cytoscape constraints to cose layout\n var processConstraints = function processConstraints(layout, options) {\n // get nodes to be fixed\n if (options.fixedNodeConstraint) {\n layout.constraints[\"fixedNodeConstraint\"] = options.fixedNodeConstraint;\n }\n // get nodes to be aligned\n if (options.alignmentConstraint) {\n layout.constraints[\"alignmentConstraint\"] = options.alignmentConstraint;\n }\n // get nodes to be relatively placed\n if (options.relativePlacementConstraint) {\n layout.constraints[\"relativePlacementConstraint\"] = options.relativePlacementConstraint;\n }\n };\n\n /**** Apply postprocessing ****/\n if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;\n if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;\n if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;\n if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;\n if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;\n if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;\n if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;\n\n if (options.tilingCompareBy != null) CoSEConstants.TILING_COMPARE_BY = options.tilingCompareBy;\n\n if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 0;\n\n CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;\n CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;\n CoSEConstants.TILE = options.tile;\n CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;\n CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;\n\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = true;\n CoSEConstants.PURE_INCREMENTAL = !options.randomize;\n LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = options.uniformNodeDimensions;\n\n // This part is for debug/demo purpose\n if (options.step == \"transformed\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;\n CoSEConstants.ENFORCE_CONSTRAINTS = false;\n CoSEConstants.APPLY_LAYOUT = false;\n }\n if (options.step == \"enforced\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = true;\n CoSEConstants.APPLY_LAYOUT = false;\n }\n if (options.step == \"cose\") {\n CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = false;\n CoSEConstants.APPLY_LAYOUT = true;\n }\n if (options.step == \"all\") {\n if (options.randomize) CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = true;else CoSEConstants.TRANSFORM_ON_CONSTRAINT_HANDLING = false;\n CoSEConstants.ENFORCE_CONSTRAINTS = true;\n CoSEConstants.APPLY_LAYOUT = true;\n }\n\n if (options.fixedNodeConstraint || options.alignmentConstraint || options.relativePlacementConstraint) {\n CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;\n } else {\n CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = true;\n }\n\n var coseLayout = new CoSELayout();\n var gm = coseLayout.newGraphManager();\n\n processChildrenList(gm.addRoot(), aux.getTopMostNodes(nodes), coseLayout, options);\n processEdges(coseLayout, gm, edges);\n processConstraints(coseLayout, options);\n\n coseLayout.runLayout();\n\n return idToLNode;\n};\n\nmodule.exports = { coseLayout: coseLayout };\n\n/***/ }),\n\n/***/ 212:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n The implementation of the fcose layout algorithm\n*/\n\nvar assign = __webpack_require__(658);\nvar aux = __webpack_require__(548);\n\nvar _require = __webpack_require__(657),\n spectralLayout = _require.spectralLayout;\n\nvar _require2 = __webpack_require__(816),\n coseLayout = _require2.coseLayout;\n\nvar defaults = Object.freeze({\n\n // 'draft', 'default' or 'proof' \n // - 'draft' only applies spectral layout \n // - 'default' improves the quality with subsequent CoSE layout (fast cooling rate)\n // - 'proof' improves the quality with subsequent CoSE layout (slow cooling rate) \n quality: \"default\",\n // Use random node positions at beginning of layout\n // if this is set to false, then quality option must be \"proof\"\n randomize: true,\n // Whether or not to animate the layout\n animate: true,\n // Duration of animation in ms, if enabled\n animationDuration: 1000,\n // Easing of animation, if enabled\n animationEasing: undefined,\n // Fit the viewport to the repositioned nodes\n fit: true,\n // Padding around layout\n padding: 30,\n // Whether to include labels in node dimensions. Valid in \"proof\" quality\n nodeDimensionsIncludeLabels: false,\n // Whether or not simple nodes (non-compound nodes) are of uniform dimensions\n uniformNodeDimensions: false,\n // Whether to pack disconnected components - valid only if randomize: true\n packComponents: true,\n // Layout step - all, transformed, enforced, cose - for debug purpose only\n step: \"all\",\n\n /* spectral layout options */\n\n // False for random, true for greedy\n samplingType: true,\n // Sample size to construct distance matrix\n sampleSize: 25,\n // Separation amount between nodes\n nodeSeparation: 75,\n // Power iteration tolerance\n piTol: 0.0000001,\n\n /* CoSE layout options */\n\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 4500;\n },\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 50;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 0.45;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 0.1,\n // Gravity force (constant)\n gravity: 0.25,\n // Maximum number of iterations to perform\n numIter: 2500,\n // For enabling tiling\n tile: true,\n // The function that specifies the criteria for comparing nodes while sorting them during tiling operation.\n // Takes the node id as a parameter and the default tiling operation is perfomed when this option is not set.\n tilingCompareBy: undefined,\n // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingVertical: 10,\n // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingHorizontal: 10,\n // Gravity range (constant) for compounds\n gravityRangeCompound: 1.5,\n // Gravity force (constant) for compounds\n gravityCompound: 1.0,\n // Gravity range (constant)\n gravityRange: 3.8,\n // Initial cooling factor for incremental layout \n initialEnergyOnIncremental: 0.3,\n\n /* constraint options */\n\n // Fix required nodes to predefined positions\n // [{nodeId: 'n1', position: {x: 100, y: 200}, {...}]\n fixedNodeConstraint: undefined,\n // Align required nodes in vertical/horizontal direction\n // {vertical: [['n1', 'n2')], ['n3', 'n4']], horizontal: ['n2', 'n4']}\n alignmentConstraint: undefined,\n // Place two nodes relatively in vertical/horizontal direction \n // [{top: 'n1', bottom: 'n2', gap: 100}, {left: 'n3', right: 'n4', gap: 75}]\n relativePlacementConstraint: undefined,\n\n /* layout event callbacks */\n ready: function ready() {}, // on layoutready\n stop: function stop() {} // on layoutstop\n});\n\nvar Layout = function () {\n function Layout(options) {\n _classCallCheck(this, Layout);\n\n this.options = assign({}, defaults, options);\n }\n\n _createClass(Layout, [{\n key: 'run',\n value: function run() {\n var layout = this;\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n\n var spectralResult = [];\n var xCoords = void 0;\n var yCoords = void 0;\n var coseResult = [];\n var components = void 0;\n var componentCenters = [];\n\n // basic validity check for constraint inputs \n if (options.fixedNodeConstraint && (!Array.isArray(options.fixedNodeConstraint) || options.fixedNodeConstraint.length == 0)) {\n options.fixedNodeConstraint = undefined;\n }\n\n if (options.alignmentConstraint) {\n if (options.alignmentConstraint.vertical && (!Array.isArray(options.alignmentConstraint.vertical) || options.alignmentConstraint.vertical.length == 0)) {\n options.alignmentConstraint.vertical = undefined;\n }\n if (options.alignmentConstraint.horizontal && (!Array.isArray(options.alignmentConstraint.horizontal) || options.alignmentConstraint.horizontal.length == 0)) {\n options.alignmentConstraint.horizontal = undefined;\n }\n }\n\n if (options.relativePlacementConstraint && (!Array.isArray(options.relativePlacementConstraint) || options.relativePlacementConstraint.length == 0)) {\n options.relativePlacementConstraint = undefined;\n }\n\n // if any constraint exists, set some options\n var constraintExist = options.fixedNodeConstraint || options.alignmentConstraint || options.relativePlacementConstraint;\n if (constraintExist) {\n // constraints work with these options\n options.tile = false;\n options.packComponents = false;\n }\n\n // decide component packing is enabled or not\n var layUtil = void 0;\n var packingEnabled = false;\n if (cy.layoutUtilities && options.packComponents) {\n layUtil = cy.layoutUtilities(\"get\");\n if (!layUtil) layUtil = cy.layoutUtilities();\n packingEnabled = true;\n }\n\n if (eles.nodes().length > 0) {\n // if packing is not enabled, perform layout on the whole graph\n if (!packingEnabled) {\n // store component center\n var boundingBox = options.eles.boundingBox();\n componentCenters.push({ x: boundingBox.x1 + boundingBox.w / 2, y: boundingBox.y1 + boundingBox.h / 2 });\n // apply spectral layout\n if (options.randomize) {\n var result = spectralLayout(options);\n spectralResult.push(result);\n }\n // apply cose layout as postprocessing\n if (options.quality == \"default\" || options.quality == \"proof\") {\n coseResult.push(coseLayout(options, spectralResult[0]));\n aux.relocateComponent(componentCenters[0], coseResult[0], options); // relocate center to original position\n } else {\n aux.relocateComponent(componentCenters[0], spectralResult[0], options); // relocate center to original position\n }\n } else {\n // packing is enabled\n var topMostNodes = aux.getTopMostNodes(options.eles.nodes());\n components = aux.connectComponents(cy, options.eles, topMostNodes);\n // store component centers\n components.forEach(function (component) {\n var boundingBox = component.boundingBox();\n componentCenters.push({ x: boundingBox.x1 + boundingBox.w / 2, y: boundingBox.y1 + boundingBox.h / 2 });\n });\n\n //send each component to spectral layout if randomized\n if (options.randomize) {\n components.forEach(function (component) {\n options.eles = component;\n spectralResult.push(spectralLayout(options));\n });\n }\n\n if (options.quality == \"default\" || options.quality == \"proof\") {\n var toBeTiledNodes = cy.collection();\n if (options.tile) {\n // behave nodes to be tiled as one component\n var nodeIndexes = new Map();\n var _xCoords = [];\n var _yCoords = [];\n var count = 0;\n var tempSpectralResult = { nodeIndexes: nodeIndexes, xCoords: _xCoords, yCoords: _yCoords };\n var indexesToBeDeleted = [];\n components.forEach(function (component, index) {\n if (component.edges().length == 0) {\n component.nodes().forEach(function (node, i) {\n toBeTiledNodes.merge(component.nodes()[i]);\n if (!node.isParent()) {\n tempSpectralResult.nodeIndexes.set(component.nodes()[i].id(), count++);\n tempSpectralResult.xCoords.push(component.nodes()[0].position().x);\n tempSpectralResult.yCoords.push(component.nodes()[0].position().y);\n }\n });\n indexesToBeDeleted.push(index);\n }\n });\n if (toBeTiledNodes.length > 1) {\n var _boundingBox = toBeTiledNodes.boundingBox();\n componentCenters.push({ x: _boundingBox.x1 + _boundingBox.w / 2, y: _boundingBox.y1 + _boundingBox.h / 2 });\n components.push(toBeTiledNodes);\n spectralResult.push(tempSpectralResult);\n for (var i = indexesToBeDeleted.length - 1; i >= 0; i--) {\n components.splice(indexesToBeDeleted[i], 1);\n spectralResult.splice(indexesToBeDeleted[i], 1);\n componentCenters.splice(indexesToBeDeleted[i], 1);\n };\n }\n }\n components.forEach(function (component, index) {\n // send each component to cose layout\n options.eles = component;\n coseResult.push(coseLayout(options, spectralResult[index]));\n aux.relocateComponent(componentCenters[index], coseResult[index], options); // relocate center to original position\n });\n } else {\n components.forEach(function (component, index) {\n aux.relocateComponent(componentCenters[index], spectralResult[index], options); // relocate center to original position\n });\n }\n\n // packing\n var componentsEvaluated = new Set();\n if (components.length > 1) {\n var subgraphs = [];\n var hiddenEles = eles.filter(function (ele) {\n return ele.css('display') == 'none';\n });\n components.forEach(function (component, index) {\n var nodeIndexes = void 0;\n if (options.quality == \"draft\") {\n nodeIndexes = spectralResult[index].nodeIndexes;\n }\n\n if (component.nodes().not(hiddenEles).length > 0) {\n var subgraph = {};\n subgraph.edges = [];\n subgraph.nodes = [];\n var nodeIndex = void 0;\n component.nodes().not(hiddenEles).forEach(function (node) {\n if (options.quality == \"draft\") {\n if (!node.isParent()) {\n nodeIndex = nodeIndexes.get(node.id());\n subgraph.nodes.push({ x: spectralResult[index].xCoords[nodeIndex] - node.boundingbox().w / 2, y: spectralResult[index].yCoords[nodeIndex] - node.boundingbox().h / 2, width: node.boundingbox().w, height: node.boundingbox().h });\n } else {\n var parentInfo = aux.calcBoundingBox(node, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n subgraph.nodes.push({ x: parentInfo.topLeftX, y: parentInfo.topLeftY, width: parentInfo.width, height: parentInfo.height });\n }\n } else {\n if (coseResult[index][node.id()]) {\n subgraph.nodes.push({ x: coseResult[index][node.id()].getLeft(), y: coseResult[index][node.id()].getTop(), width: coseResult[index][node.id()].getWidth(), height: coseResult[index][node.id()].getHeight() });\n }\n }\n });\n component.edges().forEach(function (edge) {\n var source = edge.source();\n var target = edge.target();\n if (source.css(\"display\") != \"none\" && target.css(\"display\") != \"none\") {\n if (options.quality == \"draft\") {\n var sourceNodeIndex = nodeIndexes.get(source.id());\n var targetNodeIndex = nodeIndexes.get(target.id());\n var sourceCenter = [];\n var targetCenter = [];\n if (source.isParent()) {\n var parentInfo = aux.calcBoundingBox(source, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n sourceCenter.push(parentInfo.topLeftX + parentInfo.width / 2);\n sourceCenter.push(parentInfo.topLeftY + parentInfo.height / 2);\n } else {\n sourceCenter.push(spectralResult[index].xCoords[sourceNodeIndex]);\n sourceCenter.push(spectralResult[index].yCoords[sourceNodeIndex]);\n }\n if (target.isParent()) {\n var _parentInfo = aux.calcBoundingBox(target, spectralResult[index].xCoords, spectralResult[index].yCoords, nodeIndexes);\n targetCenter.push(_parentInfo.topLeftX + _parentInfo.width / 2);\n targetCenter.push(_parentInfo.topLeftY + _parentInfo.height / 2);\n } else {\n targetCenter.push(spectralResult[index].xCoords[targetNodeIndex]);\n targetCenter.push(spectralResult[index].yCoords[targetNodeIndex]);\n }\n subgraph.edges.push({ startX: sourceCenter[0], startY: sourceCenter[1], endX: targetCenter[0], endY: targetCenter[1] });\n } else {\n if (coseResult[index][source.id()] && coseResult[index][target.id()]) {\n subgraph.edges.push({ startX: coseResult[index][source.id()].getCenterX(), startY: coseResult[index][source.id()].getCenterY(), endX: coseResult[index][target.id()].getCenterX(), endY: coseResult[index][target.id()].getCenterY() });\n }\n }\n }\n });\n if (subgraph.nodes.length > 0) {\n subgraphs.push(subgraph);\n componentsEvaluated.add(index);\n }\n }\n });\n var shiftResult = layUtil.packComponents(subgraphs, options.randomize).shifts;\n if (options.quality == \"draft\") {\n spectralResult.forEach(function (result, index) {\n var newXCoords = result.xCoords.map(function (x) {\n return x + shiftResult[index].dx;\n });\n var newYCoords = result.yCoords.map(function (y) {\n return y + shiftResult[index].dy;\n });\n result.xCoords = newXCoords;\n result.yCoords = newYCoords;\n });\n } else {\n var _count = 0;\n componentsEvaluated.forEach(function (index) {\n Object.keys(coseResult[index]).forEach(function (item) {\n var nodeRectangle = coseResult[index][item];\n nodeRectangle.setCenter(nodeRectangle.getCenterX() + shiftResult[_count].dx, nodeRectangle.getCenterY() + shiftResult[_count].dy);\n });\n _count++;\n });\n }\n }\n }\n }\n\n // get each element's calculated position\n var getPositions = function getPositions(ele, i) {\n if (options.quality == \"default\" || options.quality == \"proof\") {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var pos = void 0;\n var node = void 0;\n var theId = ele.data('id');\n coseResult.forEach(function (result) {\n if (theId in result) {\n pos = { x: result[theId].getRect().getCenterX(), y: result[theId].getRect().getCenterY() };\n node = result[theId];\n }\n });\n if (options.nodeDimensionsIncludeLabels) {\n if (node.labelWidth) {\n if (node.labelPosHorizontal == \"left\") {\n pos.x += node.labelWidth / 2;\n } else if (node.labelPosHorizontal == \"right\") {\n pos.x -= node.labelWidth / 2;\n }\n }\n if (node.labelHeight) {\n if (node.labelPosVertical == \"top\") {\n pos.y += node.labelHeight / 2;\n } else if (node.labelPosVertical == \"bottom\") {\n pos.y -= node.labelHeight / 2;\n }\n }\n }\n if (pos == undefined) pos = { x: ele.position(\"x\"), y: ele.position(\"y\") };\n return {\n x: pos.x,\n y: pos.y\n };\n } else {\n var _pos = void 0;\n spectralResult.forEach(function (result) {\n var index = result.nodeIndexes.get(ele.id());\n if (index != undefined) {\n _pos = { x: result.xCoords[index], y: result.yCoords[index] };\n }\n });\n if (_pos == undefined) _pos = { x: ele.position(\"x\"), y: ele.position(\"y\") };\n return {\n x: _pos.x,\n y: _pos.y\n };\n }\n };\n\n // quality = \"draft\" and randomize = false are contradictive so in that case positions don't change\n if (options.quality == \"default\" || options.quality == \"proof\" || options.randomize) {\n // transfer calculated positions to nodes (positions of only simple nodes are evaluated, compounds are positioned automatically)\n var parentsWithoutChildren = aux.calcParentsWithoutChildren(cy, eles);\n var _hiddenEles = eles.filter(function (ele) {\n return ele.css('display') == 'none';\n });\n options.eles = eles.not(_hiddenEles);\n\n eles.nodes().not(\":parent\").not(_hiddenEles).layoutPositions(layout, options, getPositions);\n\n if (parentsWithoutChildren.length > 0) {\n parentsWithoutChildren.forEach(function (ele) {\n ele.position(getPositions(ele));\n });\n }\n } else {\n console.log(\"If randomize option is set to false, then quality option must be 'default' or 'proof'.\");\n }\n }\n }]);\n\n return Layout;\n}();\n\nmodule.exports = Layout;\n\n/***/ }),\n\n/***/ 657:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\n/**\n The implementation of the spectral layout that is the first part of the fcose layout algorithm\n*/\n\nvar aux = __webpack_require__(548);\nvar Matrix = __webpack_require__(140).layoutBase.Matrix;\nvar SVD = __webpack_require__(140).layoutBase.SVD;\n\n// main function that spectral layout is processed\nvar spectralLayout = function spectralLayout(options) {\n\n var cy = options.cy;\n var eles = options.eles;\n var nodes = eles.nodes();\n var parentNodes = eles.nodes(\":parent\");\n\n var dummyNodes = new Map(); // map to keep dummy nodes and their neighbors\n var nodeIndexes = new Map(); // map to keep indexes to nodes\n var parentChildMap = new Map(); // mapping btw. compound and its representative node \n var allNodesNeighborhood = []; // array to keep neighborhood of all nodes\n var xCoords = [];\n var yCoords = [];\n\n var samplesColumn = []; // sampled vertices\n var minDistancesColumn = [];\n var C = []; // column sampling matrix\n var PHI = []; // intersection of column and row sampling matrices \n var INV = []; // inverse of PHI \n\n var firstSample = void 0; // the first sampled node\n var nodeSize = void 0;\n\n var infinity = 100000000;\n var small = 0.000000001;\n\n var piTol = options.piTol;\n var samplingType = options.samplingType; // false for random, true for greedy\n var nodeSeparation = options.nodeSeparation;\n var sampleSize = void 0;\n\n /**** Spectral-preprocessing functions ****/\n\n /**** Spectral layout functions ****/\n\n // determine which columns to be sampled\n var randomSampleCR = function randomSampleCR() {\n var sample = 0;\n var count = 0;\n var flag = false;\n\n while (count < sampleSize) {\n sample = Math.floor(Math.random() * nodeSize);\n\n flag = false;\n for (var i = 0; i < count; i++) {\n if (samplesColumn[i] == sample) {\n flag = true;\n break;\n }\n }\n\n if (!flag) {\n samplesColumn[count] = sample;\n count++;\n } else {\n continue;\n }\n }\n };\n\n // takes the index of the node(pivot) to initiate BFS as a parameter\n var BFS = function BFS(pivot, index, samplingMethod) {\n var path = []; // the front of the path\n var front = 0; // the back of the path\n var back = 0;\n var current = 0;\n var temp = void 0;\n var distance = [];\n\n var max_dist = 0; // the furthest node to be returned\n var max_ind = 1;\n\n for (var i = 0; i < nodeSize; i++) {\n distance[i] = infinity;\n }\n\n path[back] = pivot;\n distance[pivot] = 0;\n\n while (back >= front) {\n current = path[front++];\n var neighbors = allNodesNeighborhood[current];\n for (var _i = 0; _i < neighbors.length; _i++) {\n temp = nodeIndexes.get(neighbors[_i]);\n if (distance[temp] == infinity) {\n distance[temp] = distance[current] + 1;\n path[++back] = temp;\n }\n }\n C[current][index] = distance[current] * nodeSeparation;\n }\n\n if (samplingMethod) {\n for (var _i2 = 0; _i2 < nodeSize; _i2++) {\n if (C[_i2][index] < minDistancesColumn[_i2]) minDistancesColumn[_i2] = C[_i2][index];\n }\n\n for (var _i3 = 0; _i3 < nodeSize; _i3++) {\n if (minDistancesColumn[_i3] > max_dist) {\n max_dist = minDistancesColumn[_i3];\n max_ind = _i3;\n }\n }\n }\n return max_ind;\n };\n\n // apply BFS to all nodes or selected samples\n var allBFS = function allBFS(samplingMethod) {\n\n var sample = void 0;\n\n if (!samplingMethod) {\n randomSampleCR();\n\n // call BFS\n for (var i = 0; i < sampleSize; i++) {\n BFS(samplesColumn[i], i, samplingMethod, false);\n }\n } else {\n sample = Math.floor(Math.random() * nodeSize);\n firstSample = sample;\n\n for (var _i4 = 0; _i4 < nodeSize; _i4++) {\n minDistancesColumn[_i4] = infinity;\n }\n\n for (var _i5 = 0; _i5 < sampleSize; _i5++) {\n samplesColumn[_i5] = sample;\n sample = BFS(sample, _i5, samplingMethod);\n }\n }\n\n // form the squared distances for C\n for (var _i6 = 0; _i6 < nodeSize; _i6++) {\n for (var j = 0; j < sampleSize; j++) {\n C[_i6][j] *= C[_i6][j];\n }\n }\n\n // form PHI\n for (var _i7 = 0; _i7 < sampleSize; _i7++) {\n PHI[_i7] = [];\n }\n\n for (var _i8 = 0; _i8 < sampleSize; _i8++) {\n for (var _j = 0; _j < sampleSize; _j++) {\n PHI[_i8][_j] = C[samplesColumn[_j]][_i8];\n }\n }\n };\n\n // perform the SVD algorithm and apply a regularization step\n var sample = function sample() {\n\n var SVDResult = SVD.svd(PHI);\n\n var a_q = SVDResult.S;\n var a_u = SVDResult.U;\n var a_v = SVDResult.V;\n\n var max_s = a_q[0] * a_q[0] * a_q[0];\n\n var a_Sig = [];\n\n // regularization\n for (var i = 0; i < sampleSize; i++) {\n a_Sig[i] = [];\n for (var j = 0; j < sampleSize; j++) {\n a_Sig[i][j] = 0;\n if (i == j) {\n a_Sig[i][j] = a_q[i] / (a_q[i] * a_q[i] + max_s / (a_q[i] * a_q[i]));\n }\n }\n }\n\n INV = Matrix.multMat(Matrix.multMat(a_v, a_Sig), Matrix.transpose(a_u));\n };\n\n // calculate final coordinates \n var powerIteration = function powerIteration() {\n // two largest eigenvalues\n var theta1 = void 0;\n var theta2 = void 0;\n\n // initial guesses for eigenvectors\n var Y1 = [];\n var Y2 = [];\n\n var V1 = [];\n var V2 = [];\n\n for (var i = 0; i < nodeSize; i++) {\n Y1[i] = Math.random();\n Y2[i] = Math.random();\n }\n\n Y1 = Matrix.normalize(Y1);\n Y2 = Matrix.normalize(Y2);\n\n var count = 0;\n // to keep track of the improvement ratio in power iteration\n var current = small;\n var previous = small;\n\n var temp = void 0;\n\n while (true) {\n count++;\n\n for (var _i9 = 0; _i9 < nodeSize; _i9++) {\n V1[_i9] = Y1[_i9];\n }\n\n Y1 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V1), C, INV));\n theta1 = Matrix.dotProduct(V1, Y1);\n Y1 = Matrix.normalize(Y1);\n\n current = Matrix.dotProduct(V1, Y1);\n\n temp = Math.abs(current / previous);\n\n if (temp <= 1 + piTol && temp >= 1) {\n break;\n }\n\n previous = current;\n }\n\n for (var _i10 = 0; _i10 < nodeSize; _i10++) {\n V1[_i10] = Y1[_i10];\n }\n\n count = 0;\n previous = small;\n while (true) {\n count++;\n\n for (var _i11 = 0; _i11 < nodeSize; _i11++) {\n V2[_i11] = Y2[_i11];\n }\n\n V2 = Matrix.minusOp(V2, Matrix.multCons(V1, Matrix.dotProduct(V1, V2)));\n Y2 = Matrix.multGamma(Matrix.multL(Matrix.multGamma(V2), C, INV));\n theta2 = Matrix.dotProduct(V2, Y2);\n Y2 = Matrix.normalize(Y2);\n\n current = Matrix.dotProduct(V2, Y2);\n\n temp = Math.abs(current / previous);\n\n if (temp <= 1 + piTol && temp >= 1) {\n break;\n }\n\n previous = current;\n }\n\n for (var _i12 = 0; _i12 < nodeSize; _i12++) {\n V2[_i12] = Y2[_i12];\n }\n\n // theta1 now contains dominant eigenvalue\n // theta2 now contains the second-largest eigenvalue\n // V1 now contains theta1's eigenvector\n // V2 now contains theta2's eigenvector\n\n //populate the two vectors\n xCoords = Matrix.multCons(V1, Math.sqrt(Math.abs(theta1)));\n yCoords = Matrix.multCons(V2, Math.sqrt(Math.abs(theta2)));\n };\n\n /**** Preparation for spectral layout (Preprocessing) ****/\n\n // connect disconnected components (first top level, then inside of each compound node)\n aux.connectComponents(cy, eles, aux.getTopMostNodes(nodes), dummyNodes);\n\n parentNodes.forEach(function (ele) {\n aux.connectComponents(cy, eles, aux.getTopMostNodes(ele.descendants().intersection(eles)), dummyNodes);\n });\n\n // assign indexes to nodes (first real, then dummy nodes)\n var index = 0;\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[i].isParent()) {\n nodeIndexes.set(nodes[i].id(), index++);\n }\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = dummyNodes.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n nodeIndexes.set(key, index++);\n }\n\n // instantiate the neighborhood matrix\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n for (var _i13 = 0; _i13 < nodeIndexes.size; _i13++) {\n allNodesNeighborhood[_i13] = [];\n }\n\n // form a parent-child map to keep representative node of each compound node \n parentNodes.forEach(function (ele) {\n var children = ele.children().intersection(eles);\n\n // let random = 0;\n while (children.nodes(\":childless\").length == 0) {\n // random = Math.floor(Math.random() * children.nodes().length); // if all children are compound then proceed randomly\n children = children.nodes()[0].children().intersection(eles);\n }\n // select the representative node - we can apply different methods here\n // random = Math.floor(Math.random() * children.nodes(\":childless\").length);\n var index = 0;\n var min = children.nodes(\":childless\")[0].connectedEdges().length;\n children.nodes(\":childless\").forEach(function (ele2, i) {\n if (ele2.connectedEdges().length < min) {\n min = ele2.connectedEdges().length;\n index = i;\n }\n });\n parentChildMap.set(ele.id(), children.nodes(\":childless\")[index].id());\n });\n\n // add neighborhood relations (first real, then dummy nodes)\n nodes.forEach(function (ele) {\n var eleIndex = void 0;\n\n if (ele.isParent()) eleIndex = nodeIndexes.get(parentChildMap.get(ele.id()));else eleIndex = nodeIndexes.get(ele.id());\n\n ele.neighborhood().nodes().forEach(function (node) {\n if (eles.intersection(ele.edgesWith(node)).length > 0) {\n if (node.isParent()) allNodesNeighborhood[eleIndex].push(parentChildMap.get(node.id()));else allNodesNeighborhood[eleIndex].push(node.id());\n }\n });\n });\n\n var _loop = function _loop(_key) {\n var eleIndex = nodeIndexes.get(_key);\n var disconnectedId = void 0;\n dummyNodes.get(_key).forEach(function (id) {\n if (cy.getElementById(id).isParent()) disconnectedId = parentChildMap.get(id);else disconnectedId = id;\n\n allNodesNeighborhood[eleIndex].push(disconnectedId);\n allNodesNeighborhood[nodeIndexes.get(disconnectedId)].push(_key);\n });\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = dummyNodes.keys()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _key = _step2.value;\n\n _loop(_key);\n }\n\n // nodeSize now only considers the size of transformed graph\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n nodeSize = nodeIndexes.size;\n\n var spectralResult = void 0;\n\n // If number of nodes in transformed graph is 1 or 2, either SVD or powerIteration causes problem\n // So skip spectral and layout the graph with cose\n if (nodeSize > 2) {\n // if # of nodes in transformed graph is smaller than sample size,\n // then use # of nodes as sample size\n sampleSize = nodeSize < options.sampleSize ? nodeSize : options.sampleSize;\n\n // instantiates the partial matrices that will be used in spectral layout\n for (var _i14 = 0; _i14 < nodeSize; _i14++) {\n C[_i14] = [];\n }\n for (var _i15 = 0; _i15 < sampleSize; _i15++) {\n INV[_i15] = [];\n }\n\n /**** Apply spectral layout ****/\n\n if (options.quality == \"draft\" || options.step == \"all\") {\n allBFS(samplingType);\n sample();\n powerIteration();\n\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n } else {\n nodeIndexes.forEach(function (value, key) {\n xCoords.push(cy.getElementById(key).position(\"x\"));\n yCoords.push(cy.getElementById(key).position(\"y\"));\n });\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n }\n return spectralResult;\n } else {\n var iterator = nodeIndexes.keys();\n var firstNode = cy.getElementById(iterator.next().value);\n var firstNodePos = firstNode.position();\n var firstNodeWidth = firstNode.outerWidth();\n xCoords.push(firstNodePos.x);\n yCoords.push(firstNodePos.y);\n if (nodeSize == 2) {\n var secondNode = cy.getElementById(iterator.next().value);\n var secondNodeWidth = secondNode.outerWidth();\n xCoords.push(firstNodePos.x + firstNodeWidth / 2 + secondNodeWidth / 2 + options.idealEdgeLength);\n yCoords.push(firstNodePos.y);\n }\n\n spectralResult = { nodeIndexes: nodeIndexes, xCoords: xCoords, yCoords: yCoords };\n return spectralResult;\n }\n};\n\nmodule.exports = { spectralLayout: spectralLayout };\n\n/***/ }),\n\n/***/ 579:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\nvar impl = __webpack_require__(212);\n\n// registers the extension on a cytoscape lib ref\nvar register = function register(cytoscape) {\n if (!cytoscape) {\n return;\n } // can't register if cytoscape unspecified\n\n cytoscape('layout', 'fcose', impl); // register with cytoscape.js\n};\n\nif (typeof cytoscape !== 'undefined') {\n // expose to global cytoscape (i.e. window.cytoscape)\n register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ }),\n\n/***/ 140:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__140__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(579);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n createText,\n getIconSVG,\n registerIconPacks,\n unknownIcon\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/architecture/architectureParser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/architecture/architectureTypes.ts\nvar ArchitectureDirectionName = {\n L: \"left\",\n R: \"right\",\n T: \"top\",\n B: \"bottom\"\n};\nvar ArchitectureDirectionArrow = {\n L: /* @__PURE__ */ __name((scale) => `${scale},${scale / 2} 0,${scale} 0,0`, \"L\"),\n R: /* @__PURE__ */ __name((scale) => `0,${scale / 2} ${scale},0 ${scale},${scale}`, \"R\"),\n T: /* @__PURE__ */ __name((scale) => `0,0 ${scale},0 ${scale / 2},${scale}`, \"T\"),\n B: /* @__PURE__ */ __name((scale) => `${scale / 2},0 ${scale},${scale} 0,${scale}`, \"B\")\n};\nvar ArchitectureDirectionArrowShift = {\n L: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, \"L\"),\n R: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, \"R\"),\n T: /* @__PURE__ */ __name((orig, arrowSize) => orig - arrowSize + 2, \"T\"),\n B: /* @__PURE__ */ __name((orig, _arrowSize) => orig - 2, \"B\")\n};\nvar getOppositeArchitectureDirection = /* @__PURE__ */ __name(function(x) {\n if (isArchitectureDirectionX(x)) {\n return x === \"L\" ? \"R\" : \"L\";\n } else {\n return x === \"T\" ? \"B\" : \"T\";\n }\n}, \"getOppositeArchitectureDirection\");\nvar isArchitectureDirection = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"L\" || temp === \"R\" || temp === \"T\" || temp === \"B\";\n}, \"isArchitectureDirection\");\nvar isArchitectureDirectionX = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"L\" || temp === \"R\";\n}, \"isArchitectureDirectionX\");\nvar isArchitectureDirectionY = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp === \"T\" || temp === \"B\";\n}, \"isArchitectureDirectionY\");\nvar isArchitectureDirectionXY = /* @__PURE__ */ __name(function(a, b) {\n const aX_bY = isArchitectureDirectionX(a) && isArchitectureDirectionY(b);\n const aY_bX = isArchitectureDirectionY(a) && isArchitectureDirectionX(b);\n return aX_bY || aY_bX;\n}, \"isArchitectureDirectionXY\");\nvar isArchitecturePairXY = /* @__PURE__ */ __name(function(pair) {\n const lhs = pair[0];\n const rhs = pair[1];\n const aX_bY = isArchitectureDirectionX(lhs) && isArchitectureDirectionY(rhs);\n const aY_bX = isArchitectureDirectionY(lhs) && isArchitectureDirectionX(rhs);\n return aX_bY || aY_bX;\n}, \"isArchitecturePairXY\");\nvar isValidArchitectureDirectionPair = /* @__PURE__ */ __name(function(x) {\n return x !== \"LL\" && x !== \"RR\" && x !== \"TT\" && x !== \"BB\";\n}, \"isValidArchitectureDirectionPair\");\nvar getArchitectureDirectionPair = /* @__PURE__ */ __name(function(sourceDir, targetDir) {\n const pair = `${sourceDir}${targetDir}`;\n return isValidArchitectureDirectionPair(pair) ? pair : void 0;\n}, \"getArchitectureDirectionPair\");\nvar shiftPositionByArchitectureDirectionPair = /* @__PURE__ */ __name(function([x, y], pair) {\n const lhs = pair[0];\n const rhs = pair[1];\n if (isArchitectureDirectionX(lhs)) {\n if (isArchitectureDirectionY(rhs)) {\n return [x + (lhs === \"L\" ? -1 : 1), y + (rhs === \"T\" ? 1 : -1)];\n } else {\n return [x + (lhs === \"L\" ? -1 : 1), y];\n }\n } else {\n if (isArchitectureDirectionX(rhs)) {\n return [x + (rhs === \"L\" ? 1 : -1), y + (lhs === \"T\" ? 1 : -1)];\n } else {\n return [x, y + (lhs === \"T\" ? 1 : -1)];\n }\n }\n}, \"shiftPositionByArchitectureDirectionPair\");\nvar getArchitectureDirectionXYFactors = /* @__PURE__ */ __name(function(pair) {\n if (pair === \"LT\" || pair === \"TL\") {\n return [1, 1];\n } else if (pair === \"BL\" || pair === \"LB\") {\n return [1, -1];\n } else if (pair === \"BR\" || pair === \"RB\") {\n return [-1, -1];\n } else {\n return [-1, 1];\n }\n}, \"getArchitectureDirectionXYFactors\");\nvar getArchitectureDirectionAlignment = /* @__PURE__ */ __name(function(a, b) {\n if (isArchitectureDirectionXY(a, b)) {\n return \"bend\";\n } else if (isArchitectureDirectionX(a)) {\n return \"horizontal\";\n }\n return \"vertical\";\n}, \"getArchitectureDirectionAlignment\");\nvar isArchitectureService = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp.type === \"service\";\n}, \"isArchitectureService\");\nvar isArchitectureJunction = /* @__PURE__ */ __name(function(x) {\n const temp = x;\n return temp.type === \"junction\";\n}, \"isArchitectureJunction\");\nvar edgeData = /* @__PURE__ */ __name((edge) => {\n return edge.data();\n}, \"edgeData\");\nvar nodeData = /* @__PURE__ */ __name((node) => {\n return node.data();\n}, \"nodeData\");\n\n// src/diagrams/architecture/architectureDb.ts\nvar DEFAULT_ARCHITECTURE_CONFIG = defaultConfig_default.architecture;\nvar ArchitectureDB = class {\n constructor() {\n this.nodes = {};\n this.groups = {};\n this.edges = [];\n this.registeredIds = {};\n this.elements = {};\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n this.clear();\n }\n static {\n __name(this, \"ArchitectureDB\");\n }\n clear() {\n this.nodes = {};\n this.groups = {};\n this.edges = [];\n this.registeredIds = {};\n this.dataStructures = void 0;\n this.elements = {};\n clear();\n }\n addService({\n id,\n icon,\n in: parent,\n title,\n iconText\n }) {\n if (this.registeredIds[id] !== void 0) {\n throw new Error(\n `The service id [${id}] is already in use by another ${this.registeredIds[id]}`\n );\n }\n if (parent !== void 0) {\n if (id === parent) {\n throw new Error(`The service [${id}] cannot be placed within itself`);\n }\n if (this.registeredIds[parent] === void 0) {\n throw new Error(\n `The service [${id}]'s parent does not exist. Please make sure the parent is created before this service`\n );\n }\n if (this.registeredIds[parent] === \"node\") {\n throw new Error(`The service [${id}]'s parent is not a group`);\n }\n }\n this.registeredIds[id] = \"node\";\n this.nodes[id] = {\n id,\n type: \"service\",\n icon,\n iconText,\n title,\n edges: [],\n in: parent\n };\n }\n getServices() {\n return Object.values(this.nodes).filter(isArchitectureService);\n }\n addJunction({ id, in: parent }) {\n this.registeredIds[id] = \"node\";\n this.nodes[id] = {\n id,\n type: \"junction\",\n edges: [],\n in: parent\n };\n }\n getJunctions() {\n return Object.values(this.nodes).filter(isArchitectureJunction);\n }\n getNodes() {\n return Object.values(this.nodes);\n }\n getNode(id) {\n return this.nodes[id] ?? null;\n }\n addGroup({ id, icon, in: parent, title }) {\n if (this.registeredIds?.[id] !== void 0) {\n throw new Error(\n `The group id [${id}] is already in use by another ${this.registeredIds[id]}`\n );\n }\n if (parent !== void 0) {\n if (id === parent) {\n throw new Error(`The group [${id}] cannot be placed within itself`);\n }\n if (this.registeredIds?.[parent] === void 0) {\n throw new Error(\n `The group [${id}]'s parent does not exist. Please make sure the parent is created before this group`\n );\n }\n if (this.registeredIds?.[parent] === \"node\") {\n throw new Error(`The group [${id}]'s parent is not a group`);\n }\n }\n this.registeredIds[id] = \"group\";\n this.groups[id] = {\n id,\n icon,\n title,\n in: parent\n };\n }\n getGroups() {\n return Object.values(this.groups);\n }\n addEdge({\n lhsId,\n rhsId,\n lhsDir,\n rhsDir,\n lhsInto,\n rhsInto,\n lhsGroup,\n rhsGroup,\n title\n }) {\n if (!isArchitectureDirection(lhsDir)) {\n throw new Error(\n `Invalid direction given for left hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${String(lhsDir)}`\n );\n }\n if (!isArchitectureDirection(rhsDir)) {\n throw new Error(\n `Invalid direction given for right hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${String(rhsDir)}`\n );\n }\n if (this.nodes[lhsId] === void 0 && this.groups[lhsId] === void 0) {\n throw new Error(\n `The left-hand id [${lhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`\n );\n }\n if (this.nodes[rhsId] === void 0 && this.groups[rhsId] === void 0) {\n throw new Error(\n `The right-hand id [${rhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`\n );\n }\n const lhsGroupId = this.nodes[lhsId].in;\n const rhsGroupId = this.nodes[rhsId].in;\n if (lhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {\n throw new Error(\n `The left-hand id [${lhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`\n );\n }\n if (rhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {\n throw new Error(\n `The right-hand id [${rhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`\n );\n }\n const edge = {\n lhsId,\n lhsDir,\n lhsInto,\n lhsGroup,\n rhsId,\n rhsDir,\n rhsInto,\n rhsGroup,\n title\n };\n this.edges.push(edge);\n if (this.nodes[lhsId] && this.nodes[rhsId]) {\n this.nodes[lhsId].edges.push(this.edges[this.edges.length - 1]);\n this.nodes[rhsId].edges.push(this.edges[this.edges.length - 1]);\n }\n }\n getEdges() {\n return this.edges;\n }\n /**\n * Returns the current diagram's adjacency list, spatial map, & group alignments.\n * If they have not been created, run the algorithms to generate them.\n * @returns\n */\n getDataStructures() {\n if (this.dataStructures === void 0) {\n const groupAlignments = {};\n const adjList = Object.entries(this.nodes).reduce((prevOuter, [id, service]) => {\n prevOuter[id] = service.edges.reduce((prevInner, edge) => {\n const lhsGroupId = this.getNode(edge.lhsId)?.in;\n const rhsGroupId = this.getNode(edge.rhsId)?.in;\n if (lhsGroupId && rhsGroupId && lhsGroupId !== rhsGroupId) {\n const alignment = getArchitectureDirectionAlignment(edge.lhsDir, edge.rhsDir);\n if (alignment !== \"bend\") {\n groupAlignments[lhsGroupId] ??= {};\n groupAlignments[lhsGroupId][rhsGroupId] = alignment;\n groupAlignments[rhsGroupId] ??= {};\n groupAlignments[rhsGroupId][lhsGroupId] = alignment;\n }\n }\n if (edge.lhsId === id) {\n const pair = getArchitectureDirectionPair(edge.lhsDir, edge.rhsDir);\n if (pair) {\n prevInner[pair] = edge.rhsId;\n }\n } else {\n const pair = getArchitectureDirectionPair(edge.rhsDir, edge.lhsDir);\n if (pair) {\n prevInner[pair] = edge.lhsId;\n }\n }\n return prevInner;\n }, {});\n return prevOuter;\n }, {});\n const firstId = Object.keys(adjList)[0];\n const visited = { [firstId]: 1 };\n const notVisited = Object.keys(adjList).reduce(\n (prev, id) => id === firstId ? prev : { ...prev, [id]: 1 },\n {}\n );\n const BFS = /* @__PURE__ */ __name((startingId) => {\n const spatialMap = { [startingId]: [0, 0] };\n const queue = [startingId];\n while (queue.length > 0) {\n const id = queue.shift();\n if (id) {\n visited[id] = 1;\n delete notVisited[id];\n const adj = adjList[id];\n const [posX, posY] = spatialMap[id];\n Object.entries(adj).forEach(([dir, rhsId]) => {\n if (!visited[rhsId]) {\n spatialMap[rhsId] = shiftPositionByArchitectureDirectionPair(\n [posX, posY],\n dir\n );\n queue.push(rhsId);\n }\n });\n }\n }\n return spatialMap;\n }, \"BFS\");\n const spatialMaps = [BFS(firstId)];\n while (Object.keys(notVisited).length > 0) {\n spatialMaps.push(BFS(Object.keys(notVisited)[0]));\n }\n this.dataStructures = {\n adjList,\n spatialMaps,\n groupAlignments\n };\n }\n return this.dataStructures;\n }\n setElementForId(id, element) {\n this.elements[id] = element;\n }\n getElementById(id) {\n return this.elements[id];\n }\n getConfig() {\n return cleanAndMerge({\n ...DEFAULT_ARCHITECTURE_CONFIG,\n ...getConfig().architecture\n });\n }\n getConfigField(field) {\n return this.getConfig()[field];\n }\n};\n\n// src/diagrams/architecture/architectureParser.ts\nvar populateDb = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n ast.groups.map((group) => db.addGroup(group));\n ast.services.map((service) => db.addService({ ...service, type: \"service\" }));\n ast.junctions.map((service) => db.addJunction({ ...service, type: \"junction\" }));\n ast.edges.map((edge) => db.addEdge(edge));\n}, \"populateDb\");\nvar parser = {\n parser: {\n // @ts-expect-error - ArchitectureDB is not assignable to DiagramDB\n yy: void 0\n },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"architecture\", input);\n log.debug(ast);\n const db = parser.parser?.yy;\n if (!(db instanceof ArchitectureDB)) {\n throw new Error(\n \"parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/architecture/architectureStyles.ts\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .edge {\n stroke-width: ${options.archEdgeWidth};\n stroke: ${options.archEdgeColor};\n fill: none;\n }\n\n .arrow {\n fill: ${options.archEdgeArrowColor};\n }\n\n .node-bkg {\n fill: none;\n stroke: ${options.archGroupBorderColor};\n stroke-width: ${options.archGroupBorderWidth};\n stroke-dasharray: 8;\n }\n .node-icon-text {\n display: flex; \n align-items: center;\n }\n \n .node-icon-text > div {\n color: #fff;\n margin: 1px;\n height: fit-content;\n text-align: center;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n }\n`, \"getStyles\");\nvar architectureStyles_default = getStyles;\n\n// src/diagrams/architecture/architectureRenderer.ts\nimport cytoscape from \"cytoscape\";\nimport fcose from \"cytoscape-fcose\";\nimport { select } from \"d3\";\n\n// src/diagrams/architecture/architectureIcons.ts\nvar wrapIcon = /* @__PURE__ */ __name((icon) => {\n return `${icon}`;\n}, \"wrapIcon\");\nvar architectureIcons = {\n prefix: \"mermaid-architecture\",\n height: 80,\n width: 80,\n icons: {\n database: {\n body: wrapIcon(\n ''\n )\n },\n server: {\n body: wrapIcon(\n ''\n )\n },\n disk: {\n body: wrapIcon(\n ''\n )\n },\n internet: {\n body: wrapIcon(\n ''\n )\n },\n cloud: {\n body: wrapIcon(\n ''\n )\n },\n unknown: unknownIcon,\n blank: {\n body: wrapIcon(\"\")\n }\n }\n};\n\n// src/diagrams/architecture/svgDraw.ts\nvar drawEdges = /* @__PURE__ */ __name(async function(edgesEl, cy, db) {\n const padding = db.getConfigField(\"padding\");\n const iconSize = db.getConfigField(\"iconSize\");\n const halfIconSize = iconSize / 2;\n const arrowSize = iconSize / 6;\n const halfArrowSize = arrowSize / 2;\n await Promise.all(\n cy.edges().map(async (edge) => {\n const {\n source,\n sourceDir,\n sourceArrow,\n sourceGroup,\n target,\n targetDir,\n targetArrow,\n targetGroup,\n label\n } = edgeData(edge);\n let { x: startX, y: startY } = edge[0].sourceEndpoint();\n const { x: midX, y: midY } = edge[0].midpoint();\n let { x: endX, y: endY } = edge[0].targetEndpoint();\n const groupEdgeShift = padding + 4;\n if (sourceGroup) {\n if (isArchitectureDirectionX(sourceDir)) {\n startX += sourceDir === \"L\" ? -groupEdgeShift : groupEdgeShift;\n } else {\n startY += sourceDir === \"T\" ? -groupEdgeShift : groupEdgeShift + 18;\n }\n }\n if (targetGroup) {\n if (isArchitectureDirectionX(targetDir)) {\n endX += targetDir === \"L\" ? -groupEdgeShift : groupEdgeShift;\n } else {\n endY += targetDir === \"T\" ? -groupEdgeShift : groupEdgeShift + 18;\n }\n }\n if (!sourceGroup && db.getNode(source)?.type === \"junction\") {\n if (isArchitectureDirectionX(sourceDir)) {\n startX += sourceDir === \"L\" ? halfIconSize : -halfIconSize;\n } else {\n startY += sourceDir === \"T\" ? halfIconSize : -halfIconSize;\n }\n }\n if (!targetGroup && db.getNode(target)?.type === \"junction\") {\n if (isArchitectureDirectionX(targetDir)) {\n endX += targetDir === \"L\" ? halfIconSize : -halfIconSize;\n } else {\n endY += targetDir === \"T\" ? halfIconSize : -halfIconSize;\n }\n }\n if (edge[0]._private.rscratch) {\n const g = edgesEl.insert(\"g\");\n g.insert(\"path\").attr(\"d\", `M ${startX},${startY} L ${midX},${midY} L${endX},${endY} `).attr(\"class\", \"edge\");\n if (sourceArrow) {\n const xShift = isArchitectureDirectionX(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startX, arrowSize) : startX - halfArrowSize;\n const yShift = isArchitectureDirectionY(sourceDir) ? ArchitectureDirectionArrowShift[sourceDir](startY, arrowSize) : startY - halfArrowSize;\n g.insert(\"polygon\").attr(\"points\", ArchitectureDirectionArrow[sourceDir](arrowSize)).attr(\"transform\", `translate(${xShift},${yShift})`).attr(\"class\", \"arrow\");\n }\n if (targetArrow) {\n const xShift = isArchitectureDirectionX(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endX, arrowSize) : endX - halfArrowSize;\n const yShift = isArchitectureDirectionY(targetDir) ? ArchitectureDirectionArrowShift[targetDir](endY, arrowSize) : endY - halfArrowSize;\n g.insert(\"polygon\").attr(\"points\", ArchitectureDirectionArrow[targetDir](arrowSize)).attr(\"transform\", `translate(${xShift},${yShift})`).attr(\"class\", \"arrow\");\n }\n if (label) {\n const axis = !isArchitectureDirectionXY(sourceDir, targetDir) ? isArchitectureDirectionX(sourceDir) ? \"X\" : \"Y\" : \"XY\";\n let width = 0;\n if (axis === \"X\") {\n width = Math.abs(startX - endX);\n } else if (axis === \"Y\") {\n width = Math.abs(startY - endY) / 1.5;\n } else {\n width = Math.abs(startX - endX) / 2;\n }\n const textElem = g.append(\"g\");\n await createText(\n textElem,\n label,\n {\n useHtmlLabels: false,\n width,\n classes: \"architecture-service-label\"\n },\n getConfig2()\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n if (axis === \"X\") {\n textElem.attr(\"transform\", \"translate(\" + midX + \", \" + midY + \")\");\n } else if (axis === \"Y\") {\n textElem.attr(\"transform\", \"translate(\" + midX + \", \" + midY + \") rotate(-90)\");\n } else if (axis === \"XY\") {\n const pair = getArchitectureDirectionPair(sourceDir, targetDir);\n if (pair && isArchitecturePairXY(pair)) {\n const bboxOrig = textElem.node().getBoundingClientRect();\n const [x, y] = getArchitectureDirectionXYFactors(pair);\n textElem.attr(\"dominant-baseline\", \"auto\").attr(\"transform\", `rotate(${-1 * x * y * 45})`);\n const bboxNew = textElem.node().getBoundingClientRect();\n textElem.attr(\n \"transform\",\n `\n translate(${midX}, ${midY - bboxOrig.height / 2})\n translate(${x * bboxNew.width / 2}, ${y * bboxNew.height / 2})\n rotate(${-1 * x * y * 45}, 0, ${bboxOrig.height / 2})\n `\n );\n }\n }\n }\n }\n })\n );\n}, \"drawEdges\");\nvar drawGroups = /* @__PURE__ */ __name(async function(groupsEl, cy, db) {\n const padding = db.getConfigField(\"padding\");\n const groupIconSize = padding * 0.75;\n const fontSize = db.getConfigField(\"fontSize\");\n const iconSize = db.getConfigField(\"iconSize\");\n const halfIconSize = iconSize / 2;\n await Promise.all(\n cy.nodes().map(async (node) => {\n const data = nodeData(node);\n if (data.type === \"group\") {\n const { h, w, x1, y1 } = node.boundingBox();\n groupsEl.append(\"rect\").attr(\"x\", x1 + halfIconSize).attr(\"y\", y1 + halfIconSize).attr(\"width\", w).attr(\"height\", h).attr(\"class\", \"node-bkg\");\n const groupLabelContainer = groupsEl.append(\"g\");\n let shiftedX1 = x1;\n let shiftedY1 = y1;\n if (data.icon) {\n const bkgElem = groupLabelContainer.append(\"g\");\n bkgElem.html(\n `${await getIconSVG(data.icon, { height: groupIconSize, width: groupIconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n bkgElem.attr(\n \"transform\",\n \"translate(\" + (shiftedX1 + halfIconSize + 1) + \", \" + (shiftedY1 + halfIconSize + 1) + \")\"\n );\n shiftedX1 += groupIconSize;\n shiftedY1 += fontSize / 2 - 1 - 2;\n }\n if (data.label) {\n const textElem = groupLabelContainer.append(\"g\");\n await createText(\n textElem,\n data.label,\n {\n useHtmlLabels: false,\n width: w,\n classes: \"architecture-service-label\"\n },\n getConfig2()\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"start\").attr(\"text-anchor\", \"start\");\n textElem.attr(\n \"transform\",\n \"translate(\" + (shiftedX1 + halfIconSize + 4) + \", \" + (shiftedY1 + halfIconSize + 2) + \")\"\n );\n }\n }\n })\n );\n}, \"drawGroups\");\nvar drawServices = /* @__PURE__ */ __name(async function(db, elem, services) {\n const config = getConfig2();\n for (const service of services) {\n const serviceElem = elem.append(\"g\");\n const iconSize = db.getConfigField(\"iconSize\");\n if (service.title) {\n const textElem = serviceElem.append(\"g\");\n await createText(\n textElem,\n service.title,\n {\n useHtmlLabels: false,\n width: iconSize * 1.5,\n classes: \"architecture-service-label\"\n },\n config\n );\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n textElem.attr(\"transform\", \"translate(\" + iconSize / 2 + \", \" + iconSize + \")\");\n }\n const bkgElem = serviceElem.append(\"g\");\n if (service.icon) {\n bkgElem.html(\n `${await getIconSVG(service.icon, { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n } else if (service.iconText) {\n bkgElem.html(\n `${await getIconSVG(\"blank\", { height: iconSize, width: iconSize, fallbackPrefix: architectureIcons.prefix })}`\n );\n const textElemContainer = bkgElem.append(\"g\");\n const fo = textElemContainer.append(\"foreignObject\").attr(\"width\", iconSize).attr(\"height\", iconSize);\n const divElem = fo.append(\"div\").attr(\"class\", \"node-icon-text\").attr(\"style\", `height: ${iconSize}px;`).append(\"div\").html(sanitizeText(service.iconText, config));\n const fontSize = parseInt(\n window.getComputedStyle(divElem.node(), null).getPropertyValue(\"font-size\").replace(/\\D/g, \"\")\n ) ?? 16;\n divElem.attr(\"style\", `-webkit-line-clamp: ${Math.floor((iconSize - 2) / fontSize)};`);\n } else {\n bkgElem.append(\"path\").attr(\"class\", \"node-bkg\").attr(\"id\", \"node-\" + service.id).attr(\n \"d\",\n `M0 ${iconSize} v${-iconSize} q0,-5 5,-5 h${iconSize} q5,0 5,5 v${iconSize} H0 Z`\n );\n }\n serviceElem.attr(\"class\", \"architecture-service\");\n const { width, height } = serviceElem._groups[0][0].getBBox();\n service.width = width;\n service.height = height;\n db.setElementForId(service.id, serviceElem);\n }\n return 0;\n}, \"drawServices\");\nvar drawJunctions = /* @__PURE__ */ __name(function(db, elem, junctions) {\n junctions.forEach((junction) => {\n const junctionElem = elem.append(\"g\");\n const iconSize = db.getConfigField(\"iconSize\");\n const bkgElem = junctionElem.append(\"g\");\n bkgElem.append(\"rect\").attr(\"id\", \"node-\" + junction.id).attr(\"fill-opacity\", \"0\").attr(\"width\", iconSize).attr(\"height\", iconSize);\n junctionElem.attr(\"class\", \"architecture-junction\");\n const { width, height } = junctionElem._groups[0][0].getBBox();\n junctionElem.width = width;\n junctionElem.height = height;\n db.setElementForId(junction.id, junctionElem);\n });\n}, \"drawJunctions\");\n\n// src/diagrams/architecture/architectureRenderer.ts\nregisterIconPacks([\n {\n name: architectureIcons.prefix,\n icons: architectureIcons\n }\n]);\ncytoscape.use(fcose);\nfunction addServices(services, cy, db) {\n services.forEach((service) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"service\",\n id: service.id,\n icon: service.icon,\n label: service.title,\n parent: service.in,\n width: db.getConfigField(\"iconSize\"),\n height: db.getConfigField(\"iconSize\")\n },\n classes: \"node-service\"\n });\n });\n}\n__name(addServices, \"addServices\");\nfunction addJunctions(junctions, cy, db) {\n junctions.forEach((junction) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"junction\",\n id: junction.id,\n parent: junction.in,\n width: db.getConfigField(\"iconSize\"),\n height: db.getConfigField(\"iconSize\")\n },\n classes: \"node-junction\"\n });\n });\n}\n__name(addJunctions, \"addJunctions\");\nfunction positionNodes(db, cy) {\n cy.nodes().map((node) => {\n const data = nodeData(node);\n if (data.type === \"group\") {\n return;\n }\n data.x = node.position().x;\n data.y = node.position().y;\n const nodeElem = db.getElementById(data.id);\n nodeElem.attr(\"transform\", \"translate(\" + (data.x || 0) + \",\" + (data.y || 0) + \")\");\n });\n}\n__name(positionNodes, \"positionNodes\");\nfunction addGroups(groups, cy) {\n groups.forEach((group) => {\n cy.add({\n group: \"nodes\",\n data: {\n type: \"group\",\n id: group.id,\n icon: group.icon,\n label: group.title,\n parent: group.in\n },\n classes: \"node-group\"\n });\n });\n}\n__name(addGroups, \"addGroups\");\nfunction addEdges(edges, cy) {\n edges.forEach((parsedEdge) => {\n const { lhsId, rhsId, lhsInto, lhsGroup, rhsInto, lhsDir, rhsDir, rhsGroup, title } = parsedEdge;\n const edgeType = isArchitectureDirectionXY(parsedEdge.lhsDir, parsedEdge.rhsDir) ? \"segments\" : \"straight\";\n const edge = {\n id: `${lhsId}-${rhsId}`,\n label: title,\n source: lhsId,\n sourceDir: lhsDir,\n sourceArrow: lhsInto,\n sourceGroup: lhsGroup,\n sourceEndpoint: lhsDir === \"L\" ? \"0 50%\" : lhsDir === \"R\" ? \"100% 50%\" : lhsDir === \"T\" ? \"50% 0\" : \"50% 100%\",\n target: rhsId,\n targetDir: rhsDir,\n targetArrow: rhsInto,\n targetGroup: rhsGroup,\n targetEndpoint: rhsDir === \"L\" ? \"0 50%\" : rhsDir === \"R\" ? \"100% 50%\" : rhsDir === \"T\" ? \"50% 0\" : \"50% 100%\"\n };\n cy.add({\n group: \"edges\",\n data: edge,\n classes: edgeType\n });\n });\n}\n__name(addEdges, \"addEdges\");\nfunction getAlignments(db, spatialMaps, groupAlignments) {\n const flattenAlignments = /* @__PURE__ */ __name((alignmentObj, alignmentDir) => {\n return Object.entries(alignmentObj).reduce(\n (prev, [dir, alignments2]) => {\n let cnt = 0;\n const arr = Object.entries(alignments2);\n if (arr.length === 1) {\n prev[dir] = arr[0][1];\n return prev;\n }\n for (let i = 0; i < arr.length - 1; i++) {\n for (let j = i + 1; j < arr.length; j++) {\n const [aGroupId, aNodeIds] = arr[i];\n const [bGroupId, bNodeIds] = arr[j];\n const alignment = groupAlignments[aGroupId]?.[bGroupId];\n if (alignment === alignmentDir) {\n prev[dir] ??= [];\n prev[dir] = [...prev[dir], ...aNodeIds, ...bNodeIds];\n } else if (aGroupId === \"default\" || bGroupId === \"default\") {\n prev[dir] ??= [];\n prev[dir] = [...prev[dir], ...aNodeIds, ...bNodeIds];\n } else {\n const keyA = `${dir}-${cnt++}`;\n prev[keyA] = aNodeIds;\n const keyB = `${dir}-${cnt++}`;\n prev[keyB] = bNodeIds;\n }\n }\n }\n return prev;\n },\n {}\n );\n }, \"flattenAlignments\");\n const alignments = spatialMaps.map((spatialMap) => {\n const horizontalAlignments = {};\n const verticalAlignments = {};\n Object.entries(spatialMap).forEach(([id, [x, y]]) => {\n const nodeGroup = db.getNode(id)?.in ?? \"default\";\n horizontalAlignments[y] ??= {};\n horizontalAlignments[y][nodeGroup] ??= [];\n horizontalAlignments[y][nodeGroup].push(id);\n verticalAlignments[x] ??= {};\n verticalAlignments[x][nodeGroup] ??= [];\n verticalAlignments[x][nodeGroup].push(id);\n });\n return {\n horiz: Object.values(flattenAlignments(horizontalAlignments, \"horizontal\")).filter(\n (arr) => arr.length > 1\n ),\n vert: Object.values(flattenAlignments(verticalAlignments, \"vertical\")).filter(\n (arr) => arr.length > 1\n )\n };\n });\n const [horizontal, vertical] = alignments.reduce(\n ([prevHoriz, prevVert], { horiz, vert }) => {\n return [\n [...prevHoriz, ...horiz],\n [...prevVert, ...vert]\n ];\n },\n [[], []]\n );\n return {\n horizontal,\n vertical\n };\n}\n__name(getAlignments, \"getAlignments\");\nfunction getRelativeConstraints(spatialMaps, db) {\n const relativeConstraints = [];\n const posToStr = /* @__PURE__ */ __name((pos) => `${pos[0]},${pos[1]}`, \"posToStr\");\n const strToPos = /* @__PURE__ */ __name((pos) => pos.split(\",\").map((p) => parseInt(p)), \"strToPos\");\n spatialMaps.forEach((spatialMap) => {\n const invSpatialMap = Object.fromEntries(\n Object.entries(spatialMap).map(([id, pos]) => [posToStr(pos), id])\n );\n const queue = [posToStr([0, 0])];\n const visited = {};\n const directions = {\n L: [-1, 0],\n R: [1, 0],\n T: [0, 1],\n B: [0, -1]\n };\n while (queue.length > 0) {\n const curr = queue.shift();\n if (curr) {\n visited[curr] = 1;\n const currId = invSpatialMap[curr];\n if (currId) {\n const currPos = strToPos(curr);\n Object.entries(directions).forEach(([dir, shift]) => {\n const newPos = posToStr([currPos[0] + shift[0], currPos[1] + shift[1]]);\n const newId = invSpatialMap[newPos];\n if (newId && !visited[newPos]) {\n queue.push(newPos);\n relativeConstraints.push({\n [ArchitectureDirectionName[dir]]: newId,\n [ArchitectureDirectionName[getOppositeArchitectureDirection(dir)]]: currId,\n gap: 1.5 * db.getConfigField(\"iconSize\")\n });\n }\n });\n }\n }\n }\n });\n return relativeConstraints;\n}\n__name(getRelativeConstraints, \"getRelativeConstraints\");\nfunction layoutArchitecture(services, junctions, groups, edges, db, { spatialMaps, groupAlignments }) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"straight\",\n label: \"data(label)\",\n \"source-endpoint\": \"data(sourceEndpoint)\",\n \"target-endpoint\": \"data(targetEndpoint)\"\n }\n },\n {\n selector: \"edge.segments\",\n style: {\n \"curve-style\": \"segments\",\n \"segment-weights\": \"0\",\n \"segment-distances\": [0.5],\n // @ts-ignore Incorrect library types\n \"edge-distances\": \"endpoints\",\n \"source-endpoint\": \"data(sourceEndpoint)\",\n \"target-endpoint\": \"data(targetEndpoint)\"\n }\n },\n {\n selector: \"node\",\n style: {\n // @ts-ignore Incorrect library types\n \"compound-sizing-wrt-labels\": \"include\"\n }\n },\n {\n selector: \"node[label]\",\n style: {\n \"text-valign\": \"bottom\",\n \"text-halign\": \"center\",\n \"font-size\": `${db.getConfigField(\"fontSize\")}px`\n }\n },\n {\n selector: \".node-service\",\n style: {\n label: \"data(label)\",\n width: \"data(width)\",\n height: \"data(height)\"\n }\n },\n {\n selector: \".node-junction\",\n style: {\n width: \"data(width)\",\n height: \"data(height)\"\n }\n },\n {\n selector: \".node-group\",\n style: {\n // @ts-ignore Incorrect library types\n padding: `${db.getConfigField(\"padding\")}px`\n }\n }\n ],\n layout: {\n name: \"grid\",\n boundingBox: {\n x1: 0,\n x2: 100,\n y1: 0,\n y2: 100\n }\n }\n });\n renderEl.remove();\n addGroups(groups, cy);\n addServices(services, cy, db);\n addJunctions(junctions, cy, db);\n addEdges(edges, cy);\n const alignmentConstraint = getAlignments(db, spatialMaps, groupAlignments);\n const relativePlacementConstraint = getRelativeConstraints(spatialMaps, db);\n const layout = cy.layout({\n name: \"fcose\",\n quality: \"proof\",\n styleEnabled: false,\n animate: false,\n nodeDimensionsIncludeLabels: false,\n // Adjust the edge parameters if it passes through the border of a group\n // Hacky fix for: https://github.com/iVis-at-Bilkent/cytoscape.js-fcose/issues/67\n idealEdgeLength(edge) {\n const [nodeA, nodeB] = edge.connectedNodes();\n const { parent: parentA } = nodeData(nodeA);\n const { parent: parentB } = nodeData(nodeB);\n const elasticity = parentA === parentB ? 1.5 * db.getConfigField(\"iconSize\") : 0.5 * db.getConfigField(\"iconSize\");\n return elasticity;\n },\n edgeElasticity(edge) {\n const [nodeA, nodeB] = edge.connectedNodes();\n const { parent: parentA } = nodeData(nodeA);\n const { parent: parentB } = nodeData(nodeB);\n const elasticity = parentA === parentB ? 0.45 : 1e-3;\n return elasticity;\n },\n alignmentConstraint,\n relativePlacementConstraint\n });\n layout.one(\"layoutstop\", () => {\n function getSegmentWeights(source, target, pointX, pointY) {\n let W, D;\n const { x: sX, y: sY } = source;\n const { x: tX, y: tY } = target;\n D = (pointY - sY + (sX - pointX) * (sY - tY) / (sX - tX)) / Math.sqrt(1 + Math.pow((sY - tY) / (sX - tX), 2));\n W = Math.sqrt(Math.pow(pointY - sY, 2) + Math.pow(pointX - sX, 2) - Math.pow(D, 2));\n const distAB = Math.sqrt(Math.pow(tX - sX, 2) + Math.pow(tY - sY, 2));\n W = W / distAB;\n let delta1 = (tX - sX) * (pointY - sY) - (tY - sY) * (pointX - sX);\n switch (true) {\n case delta1 >= 0:\n delta1 = 1;\n break;\n case delta1 < 0:\n delta1 = -1;\n break;\n }\n let delta2 = (tX - sX) * (pointX - sX) + (tY - sY) * (pointY - sY);\n switch (true) {\n case delta2 >= 0:\n delta2 = 1;\n break;\n case delta2 < 0:\n delta2 = -1;\n break;\n }\n D = Math.abs(D) * delta1;\n W = W * delta2;\n return {\n distances: D,\n weights: W\n };\n }\n __name(getSegmentWeights, \"getSegmentWeights\");\n cy.startBatch();\n for (const edge of Object.values(cy.edges())) {\n if (edge.data?.()) {\n const { x: sX, y: sY } = edge.source().position();\n const { x: tX, y: tY } = edge.target().position();\n if (sX !== tX && sY !== tY) {\n const sEP = edge.sourceEndpoint();\n const tEP = edge.targetEndpoint();\n const { sourceDir } = edgeData(edge);\n const [pointX, pointY] = isArchitectureDirectionY(sourceDir) ? [sEP.x, tEP.y] : [tEP.x, sEP.y];\n const { weights, distances } = getSegmentWeights(sEP, tEP, pointX, pointY);\n edge.style(\"segment-distances\", distances);\n edge.style(\"segment-weights\", weights);\n }\n }\n }\n cy.endBatch();\n layout.run();\n });\n layout.run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\n__name(layoutArchitecture, \"layoutArchitecture\");\nvar draw = /* @__PURE__ */ __name(async (text, id, _version, diagObj) => {\n const db = diagObj.db;\n const services = db.getServices();\n const junctions = db.getJunctions();\n const groups = db.getGroups();\n const edges = db.getEdges();\n const ds = db.getDataStructures();\n const svg = selectSvgElement(id);\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"architecture-edges\");\n const servicesElem = svg.append(\"g\");\n servicesElem.attr(\"class\", \"architecture-services\");\n const groupElem = svg.append(\"g\");\n groupElem.attr(\"class\", \"architecture-groups\");\n await drawServices(db, servicesElem, services);\n drawJunctions(db, servicesElem, junctions);\n const cy = await layoutArchitecture(services, junctions, groups, edges, db, ds);\n await drawEdges(edgesElem, cy, db);\n await drawGroups(groupElem, cy, db);\n positionNodes(db, cy);\n setupGraphViewbox(void 0, svg, db.getConfigField(\"padding\"), db.getConfigField(\"useMaxWidth\"));\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/architecture/architectureDiagram.ts\nvar diagram = {\n parser,\n get db() {\n return new ArchitectureDB();\n },\n renderer,\n styles: architectureStyles_default\n};\nexport {\n diagram\n};\n"],"names":["root","factory","module","this","modules","installedModules","__webpack_require__","moduleId","value","exports","name","getter","object","property","LayoutConstants","LGraphObject","IGeometry","IMath","LEdge","source","target","vEdge","prop","node","graph","otherEnd","clipPointCoordinates","vGraphObject","Integer","RectangleD","RandomSeed","PointD","LNode","gm","loc","size","vNode","width","height","upperLeft","dimension","cx","cy","x","y","dx","dy","to","edgeList","self","edge","other","neighbors","withNeighborsList","childNode","children","nodes","i","noOfChildren","randomCenterX","randomCenterY","minX","maxX","minY","maxY","childGraph","trans","left","top","leftTop","vLeftTop","FDLayoutConstants","pt","dim","LGraphManager","Point","LinkedList","LGraph","parent","obj2","vGraph","obj1","sourceNode","targetNode","newNode","newEdge","obj","edgesToBeRemoved","s","index","sourceIndex","targetIndex","nodeTop","nodeLeft","margin","lNode","recursive","right","bottom","nodeRight","nodeBottom","boundingRect","queue","visited","currentNode","neighborEdges","currentNeighbor","childrenOfNode","neighborEdge","childrenOfNeighbor","noOfVisitedInThisGraph","visitedNode","layout","ngraph","nnode","newGraph","parentNode","sourceGraph","targetGraph","lObj","nodesToBeRemoved","nodeList","graphs","firstNode","secondNode","ownerGraph","sourceAncestorGraph","targetAncestorGraph","edges","firstOwnerGraph","secondOwnerGraph","depth","edgesToRemove","rectA","rectB","overlapAmount","separationBuffer","directions","slope","moveByY","moveByX","result","p1x","p1y","p2x","p2y","topLeftAx","topLeftAy","topRightAx","bottomLeftAx","bottomLeftAy","bottomRightAx","halfWidthA","halfHeightA","topLeftBx","topLeftBy","topRightBx","bottomLeftBx","bottomLeftBy","bottomRightBx","halfWidthB","halfHeightB","clipPointAFound","clipPointBFound","slopeA","slopeB","slopePrime","cardinalDirectionA","cardinalDirectionB","tempPointAx","tempPointAy","tempPointBx","tempPointBy","line","s1","s2","f1","f2","x1","y1","x2","y2","x3","y3","x4","y4","a1","a2","b1","b2","c1","c2","denom","Cx","Cy","Nx","Ny","C_angle","p1","p2","p3","p4","a","b","c","d","p","q","r","det","lambda","gamma","Ex","Ey","Lx","Ly","disc","t1","t2","intersections","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","nodeFrom","add","prev","next","list","_remove","vals","_this","v","val","otherNode","current","_typeof","UniqueIDGeneretor","id","arg","type","_toConsumableArray","arr","arr2","Transform","Emitter","Layout","isRemoteUse","isLayoutSuccessfull","allEdges","newLeftTop","flatForest","isForest","allNodes","isFlat","toBeVisited","parents","unProcessedNodes","temp","dummyNodes","dummyNode","dummyEdge","k","lEdge","path","ebp","sliderValue","defaultValue","minDiv","maxMul","minValue","maxValue","removedNodes","remainingDegrees","foundCenter","centerNode","degree","tempList","tempList2","neighbours","neighbour","otherDegree","newDegree","wox","woy","wex","wey","dox","doy","dex","dey","xDevice","worldExtX","yDevice","worldExtY","xWorld","deviceExtX","yWorld","deviceExtY","inPoint","outPoint","FDLayout","originalIdealLength","lcaDepth","sizeOfSourceInLca","sizeOfTargetInLca","lEdges","gridUpdateAllowed","forceToNodeSurroundingUpdate","j","nodeA","nodeB","lNodes","processedNodeSet","idealLength","length","springForce","springForceX","springForceY","clipPoints","distanceX","distanceY","distanceSquared","distance","repulsionForce","repulsionForceX","repulsionForceY","childrenConstant","ownerCenterX","ownerCenterY","absDistanceX","absDistanceY","estimatedSize","converged","oscilating","sizeX","sizeY","grid","startX","finishX","startY","finishY","surrounding","FDLayoutEdge","FDLayoutNode","_startX","_finishX","_startY","_finishY","DimensionD","HashMap","key","theId","HashSet","keys","Matrix","array1","array2","array","constant","product","magnitude","sum","_i","C","INV","temp1","temp2","_i2","_sum","_j","_i3","_sum2","_j2","Quicksort","A","compareFunction","SVD","nu","dims","allocate","work","wantu","nct","nrt","lhs","rhs","t","_i4","_i5","_i6","_i7","_i8","_t","_i9","_i10","_j3","_i11","_k","_j4","_t2","_i12","_i13","_i14","_i15","_i16","_k2","_j5","_t3","_i17","_i18","_i19","pp","eps","tiny","_k3","kase","ks","_t4","f","_j6","_t5","cs","sn","_i20","_f","_j7","_t6","_cs","_sn","_i21","scale","sp","spm1","epm1","sk","ek","shift","_f2","g","_j8","_t7","_cs2","_sn2","_i22","_i23","_i24","_t8","_i25","_i26","NeedlemanWunsch","sequence1","sequence2","match_score","mismatch_penalty","gap_penalty","diag","up","maxOf","indices","inProcessAlignments","indexes","layoutBase","event","callback","l","data","require$$0","__WEBPACK_EXTERNAL_MODULE__551__","__webpack_modules__","__unused_webpack_exports","coseBase","CoSEConstants","CoSEEdge","CoSEGraph","graphMgr","CoSEGraphManager","CoSENode","ConstraintHandler","CoSELayout","createBendsAsNeeded","intersection","forest","pData","rect","layoutEnded","calculateCompoundWeight","compoundNode","fixedNodeWeight","nodeData","nodeToDummyForVerticalAlignment","nodeToDummyForHorizontalAlignment","nodeId","verticalAlignment","horizontalAlignment","constraint","nodeIdLeft","nodeIdRight","nodeIdTop","nodeIdBottom","subGraphOnHorizontal","subGraphOnVertical","constructComponents","fixedNodes","components","isFixed","count","neighbor","resultOnHorizontal","resultOnVertical","fixedNode","allVerticalAlignments","totalDisplacementX","averageDisplacementX","allHorizontalAlignments","totalDisplacementY","averageDisplacementY","displacement","diff","component","actualNodes","averageDisplacement","multiEdge","currentStartingPoint","numberOfColumns","currentY","currentX","point","tree","startingPoint","radialSep","bounds","transform","bottomRight","parentOfNode","startAngle","endAngle","radialSeparation","halfInterval","nodeAngle","teta","x_","y_","childCount","branchCount","incEdgesCount","startIndex","stepAngle","childStartAngle","childEndAngle","maxDiagonal","diagonal","tempMemberGroups","zeroDegree","p_id","dummyCompoundId","dummyCompound","dummyParentGraph","parentGraph","childGraphMap","idToNode","tiledZeroDegreePack","lCompoundNode","horizontalMargin","verticalMargin","labelMarginLeft","labelMarginTop","tiledPack","theChild","child","organization","compoundHorizontalMargin","compoundVerticalMargin","compoundLabelMarginLeft","compoundLabelMarginTop","row","maxHeight","lnode","minWidth","horizontalOrg","verticalOrg","horizontalRatio","verticalRatio","bestOrg","ratio","members","favorHorizontalDim","verticalPadding","horizontalPadding","membersSize","totalWidth","totalHeight","maxWidth","averageWidth","averageHeight","delta","horizontalCountDouble","horizontalCount","idealWidth","tilingCompareBy","getNodeArea","n","areaCompareFcn","n1","n2","cmpBy","sumCenterX","sumCenterY","rowIndex","minCompoundSize","secondDimension","h","extraHeight","min","max","extraWidth","lastRowIndex","lastRowWidth","sri","hDiff","add_to_row_ratio","add_new_row_ratio","longest","last","prevTotal","finalTotal","prunedNodesAll","containsLeaf","prunedNodesInStepTemp","relativePosition","prunedNodesInStep","lengthOfPrunedNodesInStep","gridForPrunedNode","nodeToConnect","prunedNode","startGridX","finishGridX","startGridY","finishGridY","upNodeCount","downNodeCount","rightNodeCount","leftNodeCount","controlRegions","minCount","minIndex","random","dX","dY","pred1","processed","constraints","idToNodeMap","nodeIndexes","xCoords","yCoords","calculatePositionDiff","pos1","pos2","calculateAvgPosition","nodeIdSet","xPosSum","yPosSum","findAppropriatePositionForRelativePlacement","direction","dummyPositions","componentSources","setUnion","setA","setB","union","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","elem","err","inDegrees","adjacent","positionMap","pastMap","fixedIds","position","fixedId","_position","_loop","fixedPosition","sinkNodes","_components","isFixedComponent","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","isExist","existAt","ele","minBefore","minAfter","maxBefore","maxAfter","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","posBefore","posAfter","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","_nodeId","applyReflectionForRelativePlacement","relativePlacementConstraints","reflectOnY","notReflectOnY","reflectOnX","notReflectOnX","findComponents","_currentNode","dagToUndirected","dag","undirected","dagToReversed","reversed","targetMatrix","sourceMatrix","standardTransformation","reflectionType","dagUndirected","verticalAlign","_loop2","alignmentSet","xPos","horizontalAlign","_loop3","yPos","largestComponentSize","largestComponentIndex","constraintsInlargestComponent","positionMapHorizontal","positionMapVertical","transformationMatrix","targetMatrixTranspose","sourceMatrixTranspose","tempMatrix","SVDResult","temp3","translationAmount","posInTheory","posDesired","posDiff","xAlign","_loop4","yAlign","_loop5","dummyToNodeForVerticalAlignment","dummyToNodeForHorizontalAlignment","dummyPositionsForVerticalAlignment","dummyPositionsForHorizontalAlignment","fixedNodesOnHorizontal","fixedNodesOnVertical","_loop6","_loop7","dagOnHorizontal","dagOnVertical","_loop8","sourceId","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_iterator5","_step5","undirectedOnHorizontal","undirectedOnVertical","componentsOnHorizontal","componentsOnVertical","reversedDagOnHorizontal","reversedDagOnVertical","componentSourcesOnHorizontal","componentSourcesOnVertical","_loop9","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_iterator6","_step6","_loop10","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_iterator7","_step7","_node","__webpack_module_cache__","cachedModule","__webpack_exports__","__WEBPACK_EXTERNAL_MODULE__140__","tgt","_len","srcs","_key","src","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","auxiliary","nodesMap","roots","eles","topMostNodes","visitedTopMostNodes","minDegreeNode","minDegree","isConnected","nodesConnectedToDummy","cmpt","childrenOfCurrentNode","neighborNodes","neighborNode","e","originalCenter","componentResult","options","minXCoord","maxXCoord","minYCoord","maxYCoord","_ref","_ref2","cyNode","nodeBB","leftX","rightX","topY","bottomY","diffOnX","diffOnY","item","_diffOnX","_diffOnY","boundingBox","parentsWithoutChildren","check","aux","coseLayout","spectralResult","idToLNode","isFn","fn","optFn","opt","processChildrenList","children_of_children","theNode","dimensions","parentInfo","theNewGraph","processEdges","idealLengthTotal","edgeCount","e1","processConstraints","assign","_require","spectralLayout","_require2","defaults","coseResult","componentCenters","constraintExist","layUtil","packingEnabled","toBeTiledNodes","_xCoords","_yCoords","tempSpectralResult","indexesToBeDeleted","_boundingBox","componentsEvaluated","subgraphs","hiddenEles","subgraph","nodeIndex","sourceNodeIndex","targetNodeIndex","sourceCenter","targetCenter","_parentInfo","shiftResult","newXCoords","newYCoords","_count","nodeRectangle","getPositions","pos","_pos","_hiddenEles","parentNodes","parentChildMap","allNodesNeighborhood","samplesColumn","minDistancesColumn","PHI","nodeSize","infinity","small","piTol","samplingType","nodeSeparation","sampleSize","randomSampleCR","sample","flag","BFS","pivot","samplingMethod","front","back","max_dist","max_ind","allBFS","a_q","a_u","a_v","max_s","a_Sig","powerIteration","theta1","theta2","Y1","Y2","V1","V2","previous","ele2","eleIndex","disconnectedId","iterator","firstNodePos","firstNodeWidth","secondNodeWidth","impl","register","cytoscape","ArchitectureDirectionName","ArchitectureDirectionArrow","__name","ArchitectureDirectionArrowShift","orig","arrowSize","_arrowSize","getOppositeArchitectureDirection","isArchitectureDirectionX","isArchitectureDirection","isArchitectureDirectionY","isArchitectureDirectionXY","aX_bY","aY_bX","isArchitecturePairXY","pair","isValidArchitectureDirectionPair","getArchitectureDirectionPair","sourceDir","targetDir","shiftPositionByArchitectureDirectionPair","getArchitectureDirectionXYFactors","getArchitectureDirectionAlignment","isArchitectureService","isArchitectureJunction","edgeData","DEFAULT_ARCHITECTURE_CONFIG","defaultConfig_default","ArchitectureDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","clear","icon","title","iconText","_b","_c","lhsId","rhsId","lhsDir","rhsDir","lhsInto","rhsInto","lhsGroup","rhsGroup","lhsGroupId","rhsGroupId","groupAlignments","adjList","prevOuter","service","prevInner","alignment","firstId","notVisited","startingId","spatialMap","adj","posX","posY","dir","spatialMaps","element","cleanAndMerge","getConfig","field","populateDb","ast","db","populateCommonDb","group","parser","input","parse","log","getStyles","architectureStyles_default","wrapIcon","architectureIcons","unknownIcon","drawEdges","edgesEl","padding","iconSize","halfIconSize","halfArrowSize","sourceArrow","sourceGroup","targetArrow","targetGroup","label","midX","midY","endX","endY","groupEdgeShift","xShift","yShift","axis","textElem","createText","getConfig2","bboxOrig","bboxNew","drawGroups","groupsEl","groupIconSize","fontSize","w","groupLabelContainer","shiftedX1","shiftedY1","bkgElem","getIconSVG","drawServices","services","config","serviceElem","divElem","sanitizeText","drawJunctions","junctions","junction","junctionElem","registerIconPacks","fcose","addServices","addJunctions","positionNodes","addGroups","groups","addEdges","parsedEdge","edgeType","getAlignments","flattenAlignments","alignmentObj","alignmentDir","alignments2","cnt","aGroupId","aNodeIds","bGroupId","bNodeIds","keyA","keyB","alignments","horizontalAlignments","verticalAlignments","nodeGroup","horizontal","vertical","prevHoriz","prevVert","horiz","vert","getRelativeConstraints","relativeConstraints","posToStr","strToPos","invSpatialMap","curr","currId","currPos","newPos","newId","layoutArchitecture","resolve","renderEl","select","alignmentConstraint","relativePlacementConstraint","parentA","parentB","getSegmentWeights","pointX","pointY","W","D","sX","sY","tX","tY","distAB","delta1","delta2","sEP","tEP","weights","distances","draw","text","_version","diagObj","ds","svg","selectSvgElement","edgesElem","servicesElem","groupElem","setupGraphViewbox","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js b/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js new file mode 100644 index 000000000000..b4f8c206c063 --- /dev/null +++ b/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js @@ -0,0 +1,123 @@ +import{g as de}from"./chunk-FMBD7UC4.js";import{_ as d,E as st,d as R,e as ge,l as m,y as ue,A as pe,c as z,ai as fe,R as xe,S as ye,O as be,aj as Z,ak as Ht,al as we,u as et,k as me,am as Le,an as yt,i as bt,ao as Se}from"./index.js";import{c as ve}from"./clone.js";import{G as Ee}from"./graph.js";import{c as _e}from"./channel.js";import"./XCircleIcon.js";import"./_baseUniq.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="36a2d86f-949e-4bec-9aba-99a009d0dc5d",e._sentryDebugIdIdentifier="sentry-dbid-36a2d86f-949e-4bec-9aba-99a009d0dc5d")})()}catch{}var wt=(function(){var e=d(function(T,x,g,p){for(g=g||{},p=T.length;p--;g[T[p]]=x);return g},"o"),t=[1,15],a=[1,7],i=[1,13],l=[1,14],s=[1,19],r=[1,16],n=[1,17],o=[1,18],u=[8,30],h=[8,10,21,28,29,30,31,39,43,46],y=[1,23],b=[1,24],L=[8,10,15,16,21,28,29,30,31,39,43,46],E=[8,10,15,16,21,27,28,29,30,31,39,43,46],D=[1,49],v={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:d(function(x,g,p,w,S,c,_){var f=c.length-1;switch(S){case 4:w.getLogger().debug("Rule: separator (NL) ");break;case 5:w.getLogger().debug("Rule: separator (Space) ");break;case 6:w.getLogger().debug("Rule: separator (EOF) ");break;case 7:w.getLogger().debug("Rule: hierarchy: ",c[f-1]),w.setHierarchy(c[f-1]);break;case 8:w.getLogger().debug("Stop NL ");break;case 9:w.getLogger().debug("Stop EOF ");break;case 10:w.getLogger().debug("Stop NL2 ");break;case 11:w.getLogger().debug("Stop EOF2 ");break;case 12:w.getLogger().debug("Rule: statement: ",c[f]),typeof c[f].length=="number"?this.$=c[f]:this.$=[c[f]];break;case 13:w.getLogger().debug("Rule: statement #2: ",c[f-1]),this.$=[c[f-1]].concat(c[f]);break;case 14:w.getLogger().debug("Rule: link: ",c[f],x),this.$={edgeTypeStr:c[f],label:""};break;case 15:w.getLogger().debug("Rule: LABEL link: ",c[f-3],c[f-1],c[f]),this.$={edgeTypeStr:c[f],label:c[f-1]};break;case 18:const A=parseInt(c[f]),O=w.generateId();this.$={id:O,type:"space",label:"",width:A,children:[]};break;case 23:w.getLogger().debug("Rule: (nodeStatement link node) ",c[f-2],c[f-1],c[f]," typestr: ",c[f-1].edgeTypeStr);const X=w.edgeStrToEdgeData(c[f-1].edgeTypeStr);this.$=[{id:c[f-2].id,label:c[f-2].label,type:c[f-2].type,directions:c[f-2].directions},{id:c[f-2].id+"-"+c[f].id,start:c[f-2].id,end:c[f].id,label:c[f-1].label,type:"edge",directions:c[f].directions,arrowTypeEnd:X,arrowTypeStart:"arrow_open"},{id:c[f].id,label:c[f].label,type:w.typeStr2Type(c[f].typeStr),directions:c[f].directions}];break;case 24:w.getLogger().debug("Rule: nodeStatement (abc88 node size) ",c[f-1],c[f]),this.$={id:c[f-1].id,label:c[f-1].label,type:w.typeStr2Type(c[f-1].typeStr),directions:c[f-1].directions,widthInColumns:parseInt(c[f],10)};break;case 25:w.getLogger().debug("Rule: nodeStatement (node) ",c[f]),this.$={id:c[f].id,label:c[f].label,type:w.typeStr2Type(c[f].typeStr),directions:c[f].directions,widthInColumns:1};break;case 26:w.getLogger().debug("APA123",this?this:"na"),w.getLogger().debug("COLUMNS: ",c[f]),this.$={type:"column-setting",columns:c[f]==="auto"?-1:parseInt(c[f])};break;case 27:w.getLogger().debug("Rule: id-block statement : ",c[f-2],c[f-1]),w.generateId(),this.$={...c[f-2],type:"composite",children:c[f-1]};break;case 28:w.getLogger().debug("Rule: blockStatement : ",c[f-2],c[f-1],c[f]);const P=w.generateId();this.$={id:P,type:"composite",label:"",children:c[f-1]};break;case 29:w.getLogger().debug("Rule: node (NODE_ID separator): ",c[f]),this.$={id:c[f]};break;case 30:w.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",c[f-1],c[f]),this.$={id:c[f-1],label:c[f].label,typeStr:c[f].typeStr,directions:c[f].directions};break;case 31:w.getLogger().debug("Rule: dirList: ",c[f]),this.$=[c[f]];break;case 32:w.getLogger().debug("Rule: dirList: ",c[f-1],c[f]),this.$=[c[f-1]].concat(c[f]);break;case 33:w.getLogger().debug("Rule: nodeShapeNLabel: ",c[f-2],c[f-1],c[f]),this.$={typeStr:c[f-2]+c[f],label:c[f-1]};break;case 34:w.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",c[f-3],c[f-2]," #3:",c[f-1],c[f]),this.$={typeStr:c[f-3]+c[f],label:c[f-2],directions:c[f-1]};break;case 35:case 36:this.$={type:"classDef",id:c[f-1].trim(),css:c[f].trim()};break;case 37:this.$={type:"applyClass",id:c[f-1].trim(),styleClass:c[f].trim()};break;case 38:this.$={type:"applyStyles",id:c[f-1].trim(),stylesStr:c[f].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:o},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:a,28:i,29:l,31:s,39:r,43:n,46:o}),e(h,[2,16],{14:22,15:y,16:b}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(L,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,31:s},{10:t,11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:o},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(E,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,31:s},{31:[2,14]},{17:[1,36]},e(L,[2,24]),{10:t,11:37,13:4,14:22,15:y,16:b,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:o},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(E,[2,30]),{18:[1,43]},{18:[1,44]},e(L,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{36:[1,47]},{33:48,34:D},{15:[1,50]},e(h,[2,27]),e(E,[2,33]),{38:[1,51]},{33:52,34:D,38:[2,31]},{31:[2,15]},e(E,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:d(function(x,g){if(g.recoverable)this.trace(x);else{var p=new Error(x);throw p.hash=g,p}},"parseError"),parse:d(function(x){var g=this,p=[0],w=[],S=[null],c=[],_=this.table,f="",A=0,O=0,X=2,P=1,J=c.slice.call(arguments,1),M=Object.create(this.lexer),Q={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(Q.yy[ut]=this.yy[ut]);M.setInput(x,Q.yy),Q.yy.lexer=M,Q.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var pt=M.yylloc;c.push(pt);var oe=M.options&&M.options.ranges;typeof Q.yy.parseError=="function"?this.parseError=Q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(H){p.length=p.length-2*H,S.length=S.length-H,c.length=c.length-H}d(he,"popStack");function Nt(){var H;return H=w.pop()||M.lex()||P,typeof H!="number"&&(H instanceof Array&&(w=H,H=w.pop()),H=g.symbols_[H]||H),H}d(Nt,"lex");for(var Y,$,U,ft,tt={},it,q,Ct,nt;;){if($=p[p.length-1],this.defaultActions[$]?U=this.defaultActions[$]:((Y===null||typeof Y>"u")&&(Y=Nt()),U=_[$]&&_[$][Y]),typeof U>"u"||!U.length||!U[0]){var xt="";nt=[];for(it in _[$])this.terminals_[it]&&it>X&&nt.push("'"+this.terminals_[it]+"'");M.showPosition?xt="Parse error on line "+(A+1)+`: +`+M.showPosition()+` +Expecting `+nt.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":xt="Parse error on line "+(A+1)+": Unexpected "+(Y==P?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(xt,{text:M.match,token:this.terminals_[Y]||Y,line:M.yylineno,loc:pt,expected:nt})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+Y);switch(U[0]){case 1:p.push(Y),S.push(M.yytext),c.push(M.yylloc),p.push(U[1]),Y=null,O=M.yyleng,f=M.yytext,A=M.yylineno,pt=M.yylloc;break;case 2:if(q=this.productions_[U[1]][1],tt.$=S[S.length-q],tt._$={first_line:c[c.length-(q||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(q||1)].first_column,last_column:c[c.length-1].last_column},oe&&(tt._$.range=[c[c.length-(q||1)].range[0],c[c.length-1].range[1]]),ft=this.performAction.apply(tt,[f,O,A,Q.yy,U[1],S,c].concat(J)),typeof ft<"u")return ft;q&&(p=p.slice(0,-1*q*2),S=S.slice(0,-1*q),c=c.slice(0,-1*q)),p.push(this.productions_[U[1]][0]),S.push(tt.$),c.push(tt._$),Ct=_[p[p.length-2]][p[p.length-1]],p.push(Ct);break;case 3:return!0}}return!0},"parse")},N=(function(){var T={EOF:1,parseError:d(function(g,p){if(this.yy.parser)this.yy.parser.parseError(g,p);else throw new Error(g)},"parseError"),setInput:d(function(x,g){return this.yy=g||this.yy||{},this._input=x,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:d(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var g=x.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:d(function(x){var g=x.length,p=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),p.length-1&&(this.yylineno-=p.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:p?(p.length===w.length?this.yylloc.first_column:0)+w[w.length-p.length].length-p[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(x){this.unput(this.match.slice(x))},"less"),pastInput:d(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var x=this.pastInput(),g=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:d(function(x,g){var p,w,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),w=x[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(x[0].length),this.matched+=x[0],p=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var c in S)this[c]=S[c];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,g,p,w;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),c=0;cg[0].length)){if(g=p,w=c,this.options.backtrack_lexer){if(x=this.test_match(p,S[c]),x!==!1)return x;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(x=this.test_match(g,S[w]),x!==!1?x:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(g,p,w,S){switch(w){case 0:return g.getLogger().debug("Found block-beta"),10;case 1:return g.getLogger().debug("Found id-block"),29;case 2:return g.getLogger().debug("Found block"),10;case 3:g.getLogger().debug(".",p.yytext);break;case 4:g.getLogger().debug("_",p.yytext);break;case 5:return 5;case 6:return p.yytext=-1,28;case 7:return p.yytext=p.yytext.replace(/columns\s+/,""),g.getLogger().debug("COLUMNS (LEX)",p.yytext),28;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:g.getLogger().debug("LEX: POPPING STR:",p.yytext),this.popState();break;case 13:return g.getLogger().debug("LEX: STR end:",p.yytext),"STR";case 14:return p.yytext=p.yytext.replace(/space\:/,""),g.getLogger().debug("SPACE NUM (LEX)",p.yytext),21;case 15:return p.yytext="1",g.getLogger().debug("COLUMNS (LEX)",p.yytext),21;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 21:return this.popState(),this.pushState("CLASSDEFID"),40;case 22:return this.popState(),41;case 23:return this.pushState("CLASS"),43;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;case 25:return this.popState(),45;case 26:return this.pushState("STYLE_STMNT"),46;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;case 28:return this.popState(),48;case 29:return this.pushState("acc_title"),"acc_title";case 30:return this.popState(),"acc_title_value";case 31:return this.pushState("acc_descr"),"acc_descr";case 32:return this.popState(),"acc_descr_value";case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 38:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),g.getLogger().debug("Lex: ))"),"NODE_DEND";case 40:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 41:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),g.getLogger().debug("Lex: (-"),"NODE_DEND";case 43:return this.popState(),g.getLogger().debug("Lex: -)"),"NODE_DEND";case 44:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 45:return this.popState(),g.getLogger().debug("Lex: ]]"),"NODE_DEND";case 46:return this.popState(),g.getLogger().debug("Lex: ("),"NODE_DEND";case 47:return this.popState(),g.getLogger().debug("Lex: ])"),"NODE_DEND";case 48:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 49:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),g.getLogger().debug("Lex: )]"),"NODE_DEND";case 51:return this.popState(),g.getLogger().debug("Lex: )"),"NODE_DEND";case 52:return this.popState(),g.getLogger().debug("Lex: ]>"),"NODE_DEND";case 53:return this.popState(),g.getLogger().debug("Lex: ]"),"NODE_DEND";case 54:return g.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;case 55:return g.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;case 56:return g.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;case 57:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 58:return g.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;case 59:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 60:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 61:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 62:return g.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;case 63:return g.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;case 64:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 65:return this.pushState("NODE"),35;case 66:return this.pushState("NODE"),35;case 67:return this.pushState("NODE"),35;case 68:return this.pushState("NODE"),35;case 69:return this.pushState("NODE"),35;case 70:return this.pushState("NODE"),35;case 71:return this.pushState("NODE"),35;case 72:return g.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;case 73:return this.pushState("BLOCK_ARROW"),g.getLogger().debug("LEX ARR START"),37;case 74:return g.getLogger().debug("Lex: NODE_ID",p.yytext),31;case 75:return g.getLogger().debug("Lex: EOF",p.yytext),8;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:g.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:g.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return g.getLogger().debug("LEX: NODE_DESCR:",p.yytext),"NODE_DESCR";case 83:g.getLogger().debug("LEX POPPING"),this.popState();break;case 84:g.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (right): dir:",p.yytext),"DIR";case 86:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (left):",p.yytext),"DIR";case 87:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (x):",p.yytext),"DIR";case 88:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (y):",p.yytext),"DIR";case 89:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (up):",p.yytext),"DIR";case 90:return p.yytext=p.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (down):",p.yytext),"DIR";case 91:return p.yytext="]>",g.getLogger().debug("Lex (ARROW_DIR end):",p.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 92:return g.getLogger().debug("Lex: LINK","#"+p.yytext+"#"),15;case 93:return g.getLogger().debug("Lex: LINK",p.yytext),15;case 94:return g.getLogger().debug("Lex: LINK",p.yytext),15;case 95:return g.getLogger().debug("Lex: LINK",p.yytext),15;case 96:return g.getLogger().debug("Lex: START_LINK",p.yytext),this.pushState("LLABEL"),16;case 97:return g.getLogger().debug("Lex: START_LINK",p.yytext),this.pushState("LLABEL"),16;case 98:return g.getLogger().debug("Lex: START_LINK",p.yytext),this.pushState("LLABEL"),16;case 99:this.pushState("md_string");break;case 100:return g.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 101:return this.popState(),g.getLogger().debug("Lex: LINK","#"+p.yytext+"#"),15;case 102:return this.popState(),g.getLogger().debug("Lex: LINK",p.yytext),15;case 103:return this.popState(),g.getLogger().debug("Lex: LINK",p.yytext),15;case 104:return g.getLogger().debug("Lex: COLON",p.yytext),p.yytext=p.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return T})();v.lexer=N;function k(){this.yy={}}return d(k,"Parser"),k.prototype=v,v.Parser=k,new k})();wt.parser=wt;var ke=wt,V=new Map,Et=[],mt=new Map,It="color",Bt="fill",De="bgFill",Kt=",",Te=z(),ot=new Map,Ne=d(e=>me.sanitizeText(e,Te),"sanitizeText"),Ce=d(function(e,t=""){let a=ot.get(e);a||(a={id:e,styles:[],textStyles:[]},ot.set(e,a)),t!=null&&t.split(Kt).forEach(i=>{const l=i.replace(/([^;]*);/,"$1").trim();if(RegExp(It).exec(i)){const r=l.replace(Bt,De).replace(It,Bt);a.textStyles.push(r)}a.styles.push(l)})},"addStyleClass"),Ie=d(function(e,t=""){const a=V.get(e);t!=null&&(a.styles=t.split(Kt))},"addStyle2Node"),Be=d(function(e,t){e.split(",").forEach(function(a){let i=V.get(a);if(i===void 0){const l=a.trim();i={id:l,type:"na",children:[]},V.set(l,i)}i.classes||(i.classes=[]),i.classes.push(t)})},"setCssClass"),Xt=d((e,t)=>{const a=e.flat(),i=[],l=a.find(r=>(r==null?void 0:r.type)==="column-setting"),s=(l==null?void 0:l.columns)??-1;for(const r of a){if(typeof s=="number"&&s>0&&r.type!=="column-setting"&&typeof r.widthInColumns=="number"&&r.widthInColumns>s&&m.warn(`Block ${r.id} width ${r.widthInColumns} exceeds configured column width ${s}`),r.label&&(r.label=Ne(r.label)),r.type==="classDef"){Ce(r.id,r.css);continue}if(r.type==="applyClass"){Be(r.id,(r==null?void 0:r.styleClass)??"");continue}if(r.type==="applyStyles"){r!=null&&r.stylesStr&&Ie(r.id,r==null?void 0:r.stylesStr);continue}if(r.type==="column-setting")t.columns=r.columns??-1;else if(r.type==="edge"){const n=(mt.get(r.id)??0)+1;mt.set(r.id,n),r.id=n+"-"+r.id,Et.push(r)}else{r.label||(r.type==="composite"?r.label="":r.label=r.id);const n=V.get(r.id);if(n===void 0?V.set(r.id,r):(r.type!=="na"&&(n.type=r.type),r.label!==r.id&&(n.label=r.label)),r.children&&Xt(r.children,r),r.type==="space"){const o=r.width??1;for(let u=0;u{m.debug("Clear called"),ue(),at={id:"root",type:"composite",children:[],columns:-1},V=new Map([["root",at]]),_t=[],ot=new Map,Et=[],mt=new Map},"clear");function Ut(e){switch(m.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return m.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}d(Ut,"typeStr2Type");function jt(e){switch(m.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}d(jt,"edgeTypeStr2Type");function Vt(e){switch(e.replace(/^[\s-]+|[\s-]+$/g,"")){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}d(Vt,"edgeStrToEdgeData");var Ot=0,Re=d(()=>(Ot++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Ot),"generateId"),ze=d(e=>{at.children=e,Xt(e,at),_t=at.children},"setHierarchy"),Ae=d(e=>{const t=V.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),Me=d(()=>[...V.values()],"getBlocksFlat"),Fe=d(()=>_t||[],"getBlocks"),We=d(()=>Et,"getEdges"),Pe=d(e=>V.get(e),"getBlock"),Ye=d(e=>{V.set(e.id,e)},"setBlock"),He=d(()=>m,"getLogger"),Ke=d(function(){return ot},"getClasses"),Xe={getConfig:d(()=>st().block,"getConfig"),typeStr2Type:Ut,edgeTypeStr2Type:jt,edgeStrToEdgeData:Vt,getLogger:He,getBlocksFlat:Me,getBlocks:Fe,getEdges:We,setHierarchy:ze,getBlock:Pe,setBlock:Ye,getColumns:Ae,getClasses:Ke,clear:Oe,generateId:Re},Ue=Xe,lt=d((e,t)=>{const a=_e,i=a(e,"r"),l=a(e,"g"),s=a(e,"b");return pe(i,l,s,t)},"fade"),je=d(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${lt(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${lt(e.mainBkg,.5)}; + fill: ${lt(e.clusterBkg,.5)}; + stroke: ${lt(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + ${de()} +`,"getStyles"),Ve=je,Ge=d((e,t,a,i)=>{t.forEach(l=>{sr[l](e,a,i)})},"insertMarkers"),Ze=d((e,t,a)=>{m.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),qe=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Je=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),Qe=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),$e=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),tr=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),er=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),rr=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),ar=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),sr={extension:Ze,composition:qe,aggregation:Je,dependency:Qe,lollipop:$e,point:tr,circle:er,cross:rr,barb:ar},ir=Ge,Pt,Yt,B=((Yt=(Pt=z())==null?void 0:Pt.block)==null?void 0:Yt.padding)??8;function Gt(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};const a=t%e,i=Math.floor(t/e);return{px:a,py:i}}d(Gt,"calculateBlockPosition");var nr=d(e=>{let t=0,a=0;for(const i of e.children){const{width:l,height:s,x:r,y:n}=i.size??{width:0,height:0,x:0,y:0};m.debug("getMaxChildSize abc95 child:",i.id,"width:",l,"height:",s,"x:",r,"y:",n,i.type),i.type!=="space"&&(l>t&&(t=l/(e.widthInColumns??1)),s>a&&(a=s))}return{width:t,height:a}},"getMaxChildSize");function ht(e,t,a=0,i=0){var r,n,o,u,h,y,b,L,E,D,v;m.debug("setBlockSizes abc95 (start)",e.id,(r=e==null?void 0:e.size)==null?void 0:r.x,"block width =",e==null?void 0:e.size,"siblingWidth",a),(n=e==null?void 0:e.size)!=null&&n.width||(e.size={width:a,height:i,x:0,y:0});let l=0,s=0;if(((o=e.children)==null?void 0:o.length)>0){for(const S of e.children)ht(S,t);const N=nr(e);l=N.width,s=N.height,m.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",l,s);for(const S of e.children)S.size&&(m.debug(`abc95 Setting size of children of ${e.id} id=${S.id} ${l} ${s} ${JSON.stringify(S.size)}`),S.size.width=l*(S.widthInColumns??1)+B*((S.widthInColumns??1)-1),S.size.height=s,S.size.x=0,S.size.y=0,m.debug(`abc95 updating size of ${e.id} children child:${S.id} maxWidth:${l} maxHeight:${s}`));for(const S of e.children)ht(S,t,l,s);const k=e.columns??-1;let T=0;for(const S of e.children)T+=S.widthInColumns??1;let x=e.children.length;k>0&&k0?Math.min(e.children.length,k):e.children.length;if(S>0){const c=(p-S*B-B)/S;m.debug("abc95 (growing to fit) width",e.id,p,(b=e.size)==null?void 0:b.width,c);for(const _ of e.children)_.size&&(_.size.width=c)}}e.size={width:p,height:w,x:0,y:0}}m.debug("setBlockSizes abc94 (done)",e.id,(L=e==null?void 0:e.size)==null?void 0:L.x,(E=e==null?void 0:e.size)==null?void 0:E.width,(D=e==null?void 0:e.size)==null?void 0:D.y,(v=e==null?void 0:e.size)==null?void 0:v.height)}d(ht,"setBlockSizes");function kt(e,t){var i,l,s,r,n,o,u,h,y,b,L,E,D,v,N,k,T;m.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(i=e==null?void 0:e.size)==null?void 0:i.x} y: ${(l=e==null?void 0:e.size)==null?void 0:l.y} width: ${(s=e==null?void 0:e.size)==null?void 0:s.width}`);const a=e.columns??-1;if(m.debug("layoutBlocks columns abc95",e.id,"=>",a,e),e.children&&e.children.length>0){const x=((n=(r=e==null?void 0:e.children[0])==null?void 0:r.size)==null?void 0:n.width)??0,g=e.children.length*x+(e.children.length-1)*B;m.debug("widthOfChildren 88",g,"posX");let p=0;m.debug("abc91 block?.size?.x",e.id,(o=e==null?void 0:e.size)==null?void 0:o.x);let w=(u=e==null?void 0:e.size)!=null&&u.x?((h=e==null?void 0:e.size)==null?void 0:h.x)+(-((y=e==null?void 0:e.size)==null?void 0:y.width)/2||0):-B,S=0;for(const c of e.children){const _=e;if(!c.size)continue;const{width:f,height:A}=c.size,{px:O,py:X}=Gt(a,p);if(X!=S&&(S=X,w=(b=e==null?void 0:e.size)!=null&&b.x?((L=e==null?void 0:e.size)==null?void 0:L.x)+(-((E=e==null?void 0:e.size)==null?void 0:E.width)/2||0):-B,m.debug("New row in layout for block",e.id," and child ",c.id,S)),m.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${p} (px, py) ${O},${X} (${(D=_==null?void 0:_.size)==null?void 0:D.x},${(v=_==null?void 0:_.size)==null?void 0:v.y}) parent: ${_.id} width: ${f}${B}`),_.size){const J=f/2;c.size.x=w+B+J,m.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${w} new startingPosX${c.size.x} ${J} padding=${B} width=${f} halfWidth=${J} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${f*((c==null?void 0:c.widthInColumns)??1)/2}`),w=c.size.x+J,c.size.y=_.size.y-_.size.height/2+X*(A+B)+A/2+B,m.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${w}${B}${J}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${f*((c==null?void 0:c.widthInColumns)??1)/2}`)}c.children&&kt(c);let P=(c==null?void 0:c.widthInColumns)??1;a>0&&(P=Math.min(P,a-p%a)),p+=P,m.debug("abc88 columnsPos",c,p)}}m.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(N=e==null?void 0:e.size)==null?void 0:N.x} y: ${(k=e==null?void 0:e.size)==null?void 0:k.y} width: ${(T=e==null?void 0:e.size)==null?void 0:T.width}`)}d(kt,"layoutBlocks");function Dt(e,{minX:t,minY:a,maxX:i,maxY:l}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:s,y:r,width:n,height:o}=e.size;s-n/2i&&(i=s+n/2),r+o/2>l&&(l=r+o/2)}if(e.children)for(const s of e.children)({minX:t,minY:a,maxX:i,maxY:l}=Dt(s,{minX:t,minY:a,maxX:i,maxY:l}));return{minX:t,minY:a,maxX:i,maxY:l}}d(Dt,"findBounds");function Zt(e){const t=e.getBlock("root");if(!t)return;ht(t,e,0,0),kt(t),m.debug("getBlocks",JSON.stringify(t,null,2));const{minX:a,minY:i,maxX:l,maxY:s}=Dt(t),r=s-i,n=l-a;return{x:a,y:i,width:n,height:r}}d(Zt,"layout");function Lt(e,t){t&&e.attr("style",t)}d(Lt,"applyStyle");function qt(e,t){const a=R(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),i=a.append("xhtml:div"),l=e.label,s=e.isNode?"nodeLabel":"edgeLabel",r=i.append("span");return r.html(bt(l,t)),Lt(r,e.labelStyle),r.attr("class",s),Lt(i,e.labelStyle),i.style("display","inline-block"),i.style("white-space","nowrap"),i.attr("xmlns","http://www.w3.org/1999/xhtml"),a.node()}d(qt,"addHtmlLabel");var lr=d(async(e,t,a,i)=>{let l=e||"";typeof l=="object"&&(l=l[0]);const s=z();if(Z(s.flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),m.debug("vertexText"+l);const r=await Le(yt(l)),n={isNode:i,label:r,labelStyle:t.replace("fill:","color:")};return qt(n,s)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let n=[];typeof l=="string"?n=l.split(/\\n|\n|/gi):Array.isArray(l)?n=l:n=[];for(const o of n){const u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),a?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=o.trim(),r.appendChild(u)}return r}},"createLabel"),j=lr,cr=d((e,t,a,i,l)=>{t.arrowTypeStart&&Rt(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&Rt(e,"end",t.arrowTypeEnd,a,i,l)},"addEdgeMarkers"),or={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Rt=d((e,t,a,i,l,s)=>{const r=or[a];if(!r){m.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${s}-${r}${n})`)},"addEdgeMarker"),St={},W={},hr=d(async(e,t)=>{const a=z(),i=Z(a.flowchart.htmlLabels),l=t.labelType==="markdown"?Ht(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:!0},a):await j(t.label,t.labelStyle),s=e.insert("g").attr("class","edgeLabel"),r=s.insert("g").attr("class","label");r.node().appendChild(l);let n=l.getBBox();if(i){const u=l.children[0],h=R(l);n=u.getBoundingClientRect(),h.attr("width",n.width),h.attr("height",n.height)}r.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),St[t.id]=s,t.width=n.width,t.height=n.height;let o;if(t.startLabelLeft){const u=await j(t.startLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(u);const b=u.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),W[t.id]||(W[t.id]={}),W[t.id].startLeft=h,rt(o,t.startLabelLeft)}if(t.startLabelRight){const u=await j(t.startLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=h.node().appendChild(u),y.node().appendChild(u);const b=u.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),W[t.id]||(W[t.id]={}),W[t.id].startRight=h,rt(o,t.startLabelRight)}if(t.endLabelLeft){const u=await j(t.endLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(u);const b=u.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),h.node().appendChild(u),W[t.id]||(W[t.id]={}),W[t.id].endLeft=h,rt(o,t.endLabelLeft)}if(t.endLabelRight){const u=await j(t.endLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(u);const b=u.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),h.node().appendChild(u),W[t.id]||(W[t.id]={}),W[t.id].endRight=h,rt(o,t.endLabelRight)}return l},"insertEdgeLabel");function rt(e,t){z().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}d(rt,"setTerminalWidth");var dr=d((e,t)=>{m.debug("Moving label abc88 ",e.id,e.label,St[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=z(),{subGraphTitleTotalMargin:l}=we(i);if(e.label){const s=St[e.id];let r=e.x,n=e.y;if(a){const o=et.calcLabelPosition(a);m.debug("Moving label "+e.label+" from (",r,",",n,") to (",o.x,",",o.y,") abc88"),t.updatedPath&&(r=o.x,n=o.y)}s.attr("transform",`translate(${r}, ${n+l/2})`)}if(e.startLabelLeft){const s=W[e.id].startLeft;let r=e.x,n=e.y;if(a){const o=et.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);r=o.x,n=o.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.startLabelRight){const s=W[e.id].startRight;let r=e.x,n=e.y;if(a){const o=et.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);r=o.x,n=o.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelLeft){const s=W[e.id].endLeft;let r=e.x,n=e.y;if(a){const o=et.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);r=o.x,n=o.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelRight){const s=W[e.id].endRight;let r=e.x,n=e.y;if(a){const o=et.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);r=o.x,n=o.y}s.attr("transform",`translate(${r}, ${n})`)}},"positionEdgeLabel"),gr=d((e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),s=Math.abs(t.y-i),r=e.width/2,n=e.height/2;return l>=r||s>=n},"outsideNode"),ur=d((e,t,a)=>{m.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,s=Math.abs(i-a.x),r=e.width/2;let n=a.xMath.abs(i-t.x)*o){let y=a.y{m.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(s=>{if(!gr(t,s)&&!l){const r=ur(t,i,s);let n=!1;a.forEach(o=>{n=n||o.x===r.x&&o.y===r.y}),a.some(o=>o.x===r.x&&o.y===r.y)||a.push(r),l=!0}else i=s,l||a.push(s)}),a},"cutPathAtIntersect"),pr=d(function(e,t,a,i,l,s,r){let n=a.points;m.debug("abc88 InsertEdge: edge=",a,"e=",t);let o=!1;const u=s.node(t.v);var h=s.node(t.w);h!=null&&h.intersect&&(u!=null&&u.intersect)&&(n=n.slice(1,a.points.length-1),n.unshift(u.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(m.debug("to cluster abc88",i[a.toCluster]),n=zt(a.points,i[a.toCluster].node),o=!0),a.fromCluster&&(m.debug("from cluster abc88",i[a.fromCluster]),n=zt(n.reverse(),i[a.fromCluster].node).reverse(),o=!0);const y=n.filter(x=>!Number.isNaN(x.y));let b=ye;a.curve&&(l==="graph"||l==="flowchart")&&(b=a.curve);const{x:L,y:E}=fe(a),D=xe().x(L).y(E).curve(b);let v;switch(a.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(a.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}const N=e.append("path").attr("d",D(y)).attr("id",a.id).attr("class"," "+v+(a.classes?" "+a.classes:"")).attr("style",a.style);let k="";(z().flowchart.arrowMarkerAbsolute||z().state.arrowMarkerAbsolute)&&(k=be(!0)),cr(N,a,k,r,l);let T={};return o&&(T.updatedPath=n),T.originalPath=a.points,T},"insertEdge"),fr=d(e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},"expandAndDeduplicateDirections"),xr=d((e,t,a)=>{const i=fr(e),l=2,s=t.height+2*a.padding,r=s/l,n=t.width+2*r+a.padding,o=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:r,y:0},{x:n/2,y:2*o},{x:n-r,y:0},{x:n,y:0},{x:n,y:-s/3},{x:n+2*o,y:-s/2},{x:n,y:-2*s/3},{x:n,y:-s},{x:n-r,y:-s},{x:n/2,y:-s-2*o},{x:r,y:-s},{x:0,y:-s},{x:0,y:-2*s/3},{x:-2*o,y:-s/2},{x:0,y:-s/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:r,y:0},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:r,y:-s},{x:0,y:-s/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:r,y:-s},{x:n-r,y:-s},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-r},{x:n,y:-s+r},{x:0,y:-s}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-r},{x:0,y:-s+r},{x:n,y:-s}]:i.has("right")&&i.has("left")?[{x:r,y:0},{x:r,y:-o},{x:n-r,y:-o},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+o},{x:r,y:-s+o},{x:r,y:-s},{x:0,y:-s/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:r,y:-o},{x:r,y:-s+o},{x:0,y:-s+o},{x:n/2,y:-s},{x:n,y:-s+o},{x:n-r,y:-s+o},{x:n-r,y:-o},{x:n,y:-o}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-r},{x:0,y:-s}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-s}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-r},{x:n,y:-s}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-s}]:i.has("right")?[{x:r,y:-o},{x:r,y:-o},{x:n-r,y:-o},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+o},{x:r,y:-s+o},{x:r,y:-s+o}]:i.has("left")?[{x:r,y:0},{x:r,y:-o},{x:n-r,y:-o},{x:n-r,y:-s+o},{x:r,y:-s+o},{x:r,y:-s},{x:0,y:-s/2}]:i.has("up")?[{x:r,y:-o},{x:r,y:-s+o},{x:0,y:-s+o},{x:n/2,y:-s},{x:n,y:-s+o},{x:n-r,y:-s+o},{x:n-r,y:-o}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-o},{x:r,y:-o},{x:r,y:-s+o},{x:n-r,y:-s+o},{x:n-r,y:-o},{x:n,y:-o}]:[{x:0,y:0}]},"getArrowPoints");function Jt(e,t){return e.intersect(t)}d(Jt,"intersectNode");var yr=Jt;function Qt(e,t,a,i){var l=e.x,s=e.y,r=l-i.x,n=s-i.y,o=Math.sqrt(t*t*n*n+a*a*r*r),u=Math.abs(t*a*r/o);i.x0}d(vt,"sameSign");var wr=ee,mr=re;function re(e,t,a){var i=e.x,l=e.y,s=[],r=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(E){r=Math.min(r,E.x),n=Math.min(n,E.y)}):(r=Math.min(r,t.x),n=Math.min(n,t.y));for(var o=i-e.width/2-r,u=l-e.height/2-n,h=0;h1&&s.sort(function(E,D){var v=E.x-a.x,N=E.y-a.y,k=Math.sqrt(v*v+N*N),T=D.x-a.x,x=D.y-a.y,g=Math.sqrt(T*T+x*x);return k{var a=e.x,i=e.y,l=t.x-a,s=t.y-i,r=e.width/2,n=e.height/2,o,u;return Math.abs(s)*r>Math.abs(l)*n?(s<0&&(n=-n),o=s===0?0:n*l/s,u=n):(l<0&&(r=-r),o=r,u=l===0?0:r*s/l),{x:a+o,y:i+u}},"intersectRect"),Sr=Lr,C={node:yr,circle:br,ellipse:$t,polygon:mr,rect:Sr},F=d(async(e,t,a,i)=>{const l=z();let s;const r=t.useHtmlLabels||Z(l.flowchart.htmlLabels);a?s=a:s="node default";const n=e.insert("g").attr("class",s).attr("id",t.domId||t.id),o=n.insert("g").attr("class","label").attr("style",t.labelStyle);let u;t.labelText===void 0?u="":u=typeof t.labelText=="string"?t.labelText:t.labelText[0];const h=o.node();let y;t.labelType==="markdown"?y=Ht(o,bt(yt(u),l),{useHtmlLabels:r,width:t.width||l.flowchart.wrappingWidth,classes:"markdown-node-label"},l):y=h.appendChild(await j(bt(yt(u),l),t.labelStyle,!1,i));let b=y.getBBox();const L=t.padding/2;if(Z(l.flowchart.htmlLabels)){const E=y.children[0],D=R(y),v=E.getElementsByTagName("img");if(v){const N=u.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(k=>new Promise(T=>{function x(){if(k.style.display="flex",k.style.flexDirection="column",N){const g=l.fontSize?l.fontSize:window.getComputedStyle(document.body).fontSize,w=parseInt(g,10)*5+"px";k.style.minWidth=w,k.style.maxWidth=w}else k.style.width="100%";T(k)}d(x,"setupImage"),setTimeout(()=>{k.complete&&x()}),k.addEventListener("error",x),k.addEventListener("load",x)})))}b=E.getBoundingClientRect(),D.attr("width",b.width),D.attr("height",b.height)}return r?o.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"):o.attr("transform","translate(0, "+-b.height/2+")"),t.centerLabel&&o.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:n,bbox:b,halfPadding:L,label:o}},"labelHelper"),I=d((e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height},"updateNodeBounds");function G(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}d(G,"insertPolygonShape");var vr=d(async(e,t)=>{t.useHtmlLabels||z().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:s}=await F(e,t,"node "+t.classes,!0);m.info("Classes = ",t.classes);const r=i.insert("rect",":first-child");return r.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-s).attr("y",-l.height/2-s).attr("width",l.width+t.padding).attr("height",l.height+t.padding),I(t,r),t.intersect=function(n){return C.rect(t,n)},i},"note"),Er=vr,At=d(e=>e?" "+e:"","formatClass"),K=d((e,t)=>`${t||"node default"}${At(e.classes)} ${At(e.class)}`,"getClassesFromNode"),Mt=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=l+s,n=[{x:r/2,y:0},{x:r,y:-r/2},{x:r/2,y:-r},{x:0,y:-r/2}];m.info("Question main (Circle)");const o=G(a,r,r,n);return o.attr("style",t.style),I(t,o),t.intersect=function(u){return m.warn("Intersect called"),C.polygon(t,n,u)},a},"question"),_r=d((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(r){return r.x+","+r.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(r){return C.circle(t,14,r)},a},"choice"),kr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=4,s=i.height+t.padding,r=s/l,n=i.width+2*r+t.padding,o=[{x:r,y:0},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:r,y:-s},{x:0,y:-s/2}],u=G(a,n,s,o);return u.attr("style",t.style),I(t,u),t.intersect=function(h){return C.polygon(t,o,h)},a},"hexagon"),Dr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,void 0,!0),l=2,s=i.height+2*t.padding,r=s/l,n=i.width+2*r+t.padding,o=xr(t.directions,i,t),u=G(a,n,s,o);return u.attr("style",t.style),I(t,u),t.intersect=function(h){return C.polygon(t,o,h)},a},"block_arrow"),Tr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-s/2,y:0},{x:l,y:0},{x:l,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return G(a,l,s,r).attr("style",t.style),t.width=l+s,t.height=s,t.intersect=function(o){return C.polygon(t,r,o)},a},"rect_left_inv_arrow"),Nr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-2*s/6,y:0},{x:l-s/6,y:0},{x:l+2*s/6,y:-s},{x:s/6,y:-s}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"lean_right"),Cr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:2*s/6,y:0},{x:l+s/6,y:0},{x:l-2*s/6,y:-s},{x:-s/6,y:-s}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"lean_left"),Ir=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-2*s/6,y:0},{x:l+2*s/6,y:0},{x:l-s/6,y:-s},{x:s/6,y:-s}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"trapezoid"),Br=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:s/6,y:0},{x:l-s/6,y:0},{x:l+2*s/6,y:-s},{x:-2*s/6,y:-s}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"inv_trapezoid"),Or=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:0,y:0},{x:l+s/2,y:0},{x:l,y:-s/2},{x:l+s/2,y:-s},{x:0,y:-s}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"rect_right_inv_arrow"),Rr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=l/2,r=s/(2.5+l/50),n=i.height+r+t.padding,o="M 0,"+r+" a "+s+","+r+" 0,0,0 "+l+" 0 a "+s+","+r+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+s+","+r+" 0,0,0 "+l+" 0 l 0,"+-n,u=a.attr("label-offset-y",r).insert("path",":first-child").attr("style",t.style).attr("d",o).attr("transform","translate("+-l/2+","+-(n/2+r)+")");return I(t,u),t.intersect=function(h){const y=C.rect(t,h),b=y.x-t.x;if(s!=0&&(Math.abs(b)t.height/2-r)){let L=r*r*(1-b*b/(s*s));L!=0&&(L=Math.sqrt(L)),L=r-L,h.y-t.y>0&&(L=-L),y.y+=L}return y},a},"cylinder"),zr=d(async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await F(e,t,"node "+t.classes+" "+t.class,!0),s=a.insert("rect",":first-child"),r=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,o=t.positioned?-r/2:-i.width/2-l,u=t.positioned?-n/2:-i.height/2-l;if(s.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",o).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(dt(s,t.props.borders,r,n),h.delete("borders")),h.forEach(y=>{m.warn(`Unknown node property ${y}`)})}return I(t,s),t.intersect=function(h){return C.rect(t,h)},a},"rect"),Ar=d(async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await F(e,t,"node "+t.classes,!0),s=a.insert("rect",":first-child"),r=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,o=t.positioned?-r/2:-i.width/2-l,u=t.positioned?-n/2:-i.height/2-l;if(s.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",o).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(dt(s,t.props.borders,r,n),h.delete("borders")),h.forEach(y=>{m.warn(`Unknown node property ${y}`)})}return I(t,s),t.intersect=function(h){return C.rect(t,h)},a},"composite"),Mr=d(async(e,t)=>{const{shapeSvg:a}=await F(e,t,"label",!0);m.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,s=0;if(i.attr("width",l).attr("height",s),a.attr("class","label edgeLabel"),t.props){const r=new Set(Object.keys(t.props));t.props.borders&&(dt(i,t.props.borders,l,s),r.delete("borders")),r.forEach(n=>{m.warn(`Unknown node property ${n}`)})}return I(t,i),t.intersect=function(r){return C.rect(t,r)},a},"labelRect");function dt(e,t,a,i){const l=[],s=d(n=>{l.push(n,0)},"addBorder"),r=d(n=>{l.push(0,n)},"skipBorder");t.includes("t")?(m.debug("add top border"),s(a)):r(a),t.includes("r")?(m.debug("add right border"),s(i)):r(i),t.includes("b")?(m.debug("add bottom border"),s(a)):r(a),t.includes("l")?(m.debug("add left border"),s(i)):r(i),e.attr("stroke-dasharray",l.join(" "))}d(dt,"applyNodePropertyBorders");var Fr=d(async(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),s=i.insert("line"),r=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let o="";typeof n=="object"?o=n[0]:o=n,m.info("Label text abc79",o,n,typeof n=="object");const u=r.node().appendChild(await j(o,t.labelStyle,!0,!0));let h={width:0,height:0};if(Z(z().flowchart.htmlLabels)){const D=u.children[0],v=R(u);h=D.getBoundingClientRect(),v.attr("width",h.width),v.attr("height",h.height)}m.info("Text 2",n);const y=n.slice(1,n.length);let b=u.getBBox();const L=r.node().appendChild(await j(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(Z(z().flowchart.htmlLabels)){const D=L.children[0],v=R(L);h=D.getBoundingClientRect(),v.attr("width",h.width),v.attr("height",h.height)}const E=t.padding/2;return R(L).attr("transform","translate( "+(h.width>b.width?0:(b.width-h.width)/2)+", "+(b.height+E+5)+")"),R(u).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.height+t.padding,s=i.width+l/4+t.padding,r=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-s/2).attr("y",-l/2).attr("width",s).attr("height",l);return I(t,r),t.intersect=function(n){return C.rect(t,n)},a},"stadium"),Pr=d(async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await F(e,t,K(t,void 0),!0),s=a.insert("circle",":first-child");return s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),m.info("Circle main"),I(t,s),t.intersect=function(r){return m.info("Circle intersect",t,i.width/2+l,r),C.circle(t,i.width/2+l,r)},a},"circle"),Yr=d(async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await F(e,t,K(t,void 0),!0),s=5,r=a.insert("g",":first-child"),n=r.insert("circle"),o=r.insert("circle");return r.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+s).attr("width",i.width+t.padding+s*2).attr("height",i.height+t.padding+s*2),o.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),m.info("DoubleCircle main"),I(t,n),t.intersect=function(u){return m.info("DoubleCircle intersect",t,i.width/2+l+s,u),C.circle(t,i.width/2+l+s,u)},a},"doublecircle"),Hr=d(async(e,t)=>{const{shapeSvg:a,bbox:i}=await F(e,t,K(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:0,y:0},{x:l,y:0},{x:l,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],n=G(a,l,s,r);return n.attr("style",t.style),I(t,n),t.intersect=function(o){return C.polygon(t,r,o)},a},"subroutine"),Kr=d((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),I(t,i),t.intersect=function(l){return C.circle(t,7,l)},a},"start"),Ft=d((e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,s=10;a==="LR"&&(l=10,s=70);const r=i.append("rect").attr("x",-1*l/2).attr("y",-1*s/2).attr("width",l).attr("height",s).attr("class","fork-join");return I(t,r),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return C.rect(t,n)},i},"forkJoin"),Xr=d((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),I(t,l),t.intersect=function(s){return C.circle(t,7,s)},a},"end"),Ur=d(async(e,t)=>{var S;const a=t.padding/2,i=4,l=8;let s;t.classes?s="node "+t.classes:s="node default";const r=e.insert("g").attr("class",s).attr("id",t.domId||t.id),n=r.insert("rect",":first-child"),o=r.insert("line"),u=r.insert("line");let h=0,y=i;const b=r.insert("g").attr("class","label");let L=0;const E=(S=t.classData.annotations)==null?void 0:S[0],D=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",v=b.node().appendChild(await j(D,t.labelStyle,!0,!0));let N=v.getBBox();if(Z(z().flowchart.htmlLabels)){const c=v.children[0],_=R(v);N=c.getBoundingClientRect(),_.attr("width",N.width),_.attr("height",N.height)}t.classData.annotations[0]&&(y+=N.height+i,h+=N.width);let k=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(z().flowchart.htmlLabels?k+="<"+t.classData.type+">":k+="<"+t.classData.type+">");const T=b.node().appendChild(await j(k,t.labelStyle,!0,!0));R(T).attr("class","classTitle");let x=T.getBBox();if(Z(z().flowchart.htmlLabels)){const c=T.children[0],_=R(T);x=c.getBoundingClientRect(),_.attr("width",x.width),_.attr("height",x.height)}y+=x.height+i,x.width>h&&(h=x.width);const g=[];t.classData.members.forEach(async c=>{const _=c.getDisplayDetails();let f=_.displayText;z().flowchart.htmlLabels&&(f=f.replace(//g,">"));const A=b.node().appendChild(await j(f,_.cssStyle?_.cssStyle:t.labelStyle,!0,!0));let O=A.getBBox();if(Z(z().flowchart.htmlLabels)){const X=A.children[0],P=R(A);O=X.getBoundingClientRect(),P.attr("width",O.width),P.attr("height",O.height)}O.width>h&&(h=O.width),y+=O.height+i,g.push(A)}),y+=l;const p=[];if(t.classData.methods.forEach(async c=>{const _=c.getDisplayDetails();let f=_.displayText;z().flowchart.htmlLabels&&(f=f.replace(//g,">"));const A=b.node().appendChild(await j(f,_.cssStyle?_.cssStyle:t.labelStyle,!0,!0));let O=A.getBBox();if(Z(z().flowchart.htmlLabels)){const X=A.children[0],P=R(A);O=X.getBoundingClientRect(),P.attr("width",O.width),P.attr("height",O.height)}O.width>h&&(h=O.width),y+=O.height+i,p.push(A)}),y+=l,E){let c=(h-N.width)/2;R(v).attr("transform","translate( "+(-1*h/2+c)+", "+-1*y/2+")"),L=N.height+i}let w=(h-x.width)/2;return R(T).attr("transform","translate( "+(-1*h/2+w)+", "+(-1*y/2+L)+")"),L+=x.height+i,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+L).attr("y2",-y/2-a+l+L),L+=l,g.forEach(c=>{R(c).attr("transform","translate( "+-h/2+", "+(-1*y/2+L+l/2)+")");const _=c==null?void 0:c.getBBox();L+=((_==null?void 0:_.height)??0)+i}),L+=l,u.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+L).attr("y2",-y/2-a+l+L),L+=l,p.forEach(c=>{R(c).attr("transform","translate( "+-h/2+", "+(-1*y/2+L)+")");const _=c==null?void 0:c.getBBox();L+=((_==null?void 0:_.height)??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),I(t,n),t.intersect=function(c){return C.rect(t,c)},r},"class_box"),Wt={rhombus:Mt,composite:Ar,question:Mt,rect:zr,labelRect:Mr,rectWithTitle:Fr,choice:_r,circle:Pr,doublecircle:Yr,stadium:Wr,hexagon:kr,block_arrow:Dr,rect_left_inv_arrow:Tr,lean_right:Nr,lean_left:Cr,trapezoid:Ir,inv_trapezoid:Br,rect_right_inv_arrow:Or,cylinder:Rr,start:Kr,end:Xr,note:Er,subroutine:Hr,fork:Ft,join:Ft,class_box:Ur},ct={},ae=d(async(e,t,a)=>{let i,l;if(t.link){let s;z().securityLevel==="sandbox"?s="_top":t.linkTarget&&(s=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",s),l=await Wt[t.shape](i,t,a)}else l=await Wt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),ct[t.id]=i,t.haveCallback&&ct[t.id].attr("class",ct[t.id].attr("class")+" clickable"),i},"insertNode"),jr=d(e=>{const t=ct[e.id];m.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},"positionNode");function Tt(e,t,a=!1){var b,L,E;const i=e;let l="default";(((b=i==null?void 0:i.classes)==null?void 0:b.length)||0)>0&&(l=((i==null?void 0:i.classes)??[]).join(" ")),l=l+" flowchart-label";let s=0,r="",n;switch(i.type){case"round":s=5,r="rect";break;case"composite":s=0,r="composite",n=0;break;case"square":r="rect";break;case"diamond":r="question";break;case"hexagon":r="hexagon";break;case"block_arrow":r="block_arrow";break;case"odd":r="rect_left_inv_arrow";break;case"lean_right":r="lean_right";break;case"lean_left":r="lean_left";break;case"trapezoid":r="trapezoid";break;case"inv_trapezoid":r="inv_trapezoid";break;case"rect_left_inv_arrow":r="rect_left_inv_arrow";break;case"circle":r="circle";break;case"ellipse":r="ellipse";break;case"stadium":r="stadium";break;case"subroutine":r="subroutine";break;case"cylinder":r="cylinder";break;case"group":r="rect";break;case"doublecircle":r="doublecircle";break;default:r="rect"}const o=Se((i==null?void 0:i.styles)??[]),u=i.label,h=i.size??{width:0,height:0,x:0,y:0};return{labelStyle:o.labelStyle,shape:r,labelText:u,rx:s,ry:s,class:l,style:o.style,id:i.id,directions:i.directions,width:h.width,height:h.height,x:h.x,y:h.y,positioned:a,intersect:void 0,type:i.type,padding:n??((E=(L=st())==null?void 0:L.block)==null?void 0:E.padding)??0}}d(Tt,"getNodeFromBlock");async function se(e,t,a){const i=Tt(t,a,!1);if(i.type==="group")return;const l=st(),s=await ae(e,i,{config:l}),r=s.node().getBBox(),n=a.getBlock(i.id);n.size={width:r.width,height:r.height,x:0,y:0,node:s},a.setBlock(n),s.remove()}d(se,"calculateBlockSize");async function ie(e,t,a){const i=Tt(t,a,!0);if(a.getBlock(i.id).type!=="space"){const s=st();await ae(e,i,{config:s}),t.intersect=i==null?void 0:i.intersect,jr(i)}}d(ie,"insertBlockPositioned");async function gt(e,t,a,i){for(const l of t)await i(e,l,a),l.children&&await gt(e,l.children,a,i)}d(gt,"performOperations");async function ne(e,t,a){await gt(e,t,a,se)}d(ne,"calculateBlockSizes");async function le(e,t,a){await gt(e,t,a,ie)}d(le,"insertBlocks");async function ce(e,t,a,i,l){const s=new Ee({multigraph:!0,compound:!0});s.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const r of a)r.size&&s.setNode(r.id,{width:r.size.width,height:r.size.height,intersect:r.intersect});for(const r of t)if(r.start&&r.end){const n=i.getBlock(r.start),o=i.getBlock(r.end);if(n!=null&&n.size&&(o!=null&&o.size)){const u=n.size,h=o.size,y=[{x:u.x,y:u.y},{x:u.x+(h.x-u.x)/2,y:u.y+(h.y-u.y)/2},{x:h.x,y:h.y}];pr(e,{v:r.start,w:r.end,name:r.id},{...r,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",s,l),r.label&&(await hr(e,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),dr({...r,x:y[1].x,y:y[1].y},{originalPath:y}))}}}d(ce,"insertEdges");var Vr=d(function(e,t){return t.db.getClasses()},"getClasses"),Gr=d(async function(e,t,a,i){const{securityLevel:l,block:s}=st(),r=i.db;let n;l==="sandbox"&&(n=R("#i"+t));const o=l==="sandbox"?R(n.nodes()[0].contentDocument.body):R("body"),u=l==="sandbox"?o.select(`[id="${t}"]`):R(`[id="${t}"]`);ir(u,["point","circle","cross"],i.type,t);const y=r.getBlocks(),b=r.getBlocksFlat(),L=r.getEdges(),E=u.insert("g").attr("class","block");await ne(E,y,r);const D=Zt(r);if(await le(E,y,r),await ce(E,L,b,r,t),D){const v=D,N=Math.max(1,Math.round(.125*(v.width/v.height))),k=v.height+N+10,T=v.width+10,{useMaxWidth:x}=s;ge(u,k,T,!!x),m.debug("Here Bounds",D,v),u.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),Zr={draw:Gr,getClasses:Vr},aa={parser:ke,db:Ue,renderer:Zr,styles:Ve};export{aa as diagram}; +//# sourceMappingURL=blockDiagram-QIGZ2CNN.js.map diff --git a/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js.map b/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js.map new file mode 100644 index 000000000000..108c19d9bf44 --- /dev/null +++ b/extensions/continue/gui/assets/blockDiagram-QIGZ2CNN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"blockDiagram-QIGZ2CNN.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-QIGZ2CNN.mjs"],"sourcesContent":["import {\n getIconStyles\n} from \"./chunk-FMBD7UC4.mjs\";\nimport {\n getLineFunctionsWithOffset\n} from \"./chunk-7GE3RBXV.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n createText,\n replaceIconSubstring\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n decodeEntities,\n getStylesFromArray,\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n common_default,\n configureSvgSize,\n evaluate,\n getConfig,\n getConfig2,\n getUrl,\n sanitizeText\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/block/parser/block.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 15], $V1 = [1, 7], $V2 = [1, 13], $V3 = [1, 14], $V4 = [1, 19], $V5 = [1, 16], $V6 = [1, 17], $V7 = [1, 18], $V8 = [8, 30], $V9 = [8, 10, 21, 28, 29, 30, 31, 39, 43, 46], $Va = [1, 23], $Vb = [1, 24], $Vc = [8, 10, 15, 16, 21, 28, 29, 30, 31, 39, 43, 46], $Vd = [8, 10, 15, 16, 21, 27, 28, 29, 30, 31, 39, 43, 46], $Ve = [1, 49];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"spaceLines\": 3, \"SPACELINE\": 4, \"NL\": 5, \"separator\": 6, \"SPACE\": 7, \"EOF\": 8, \"start\": 9, \"BLOCK_DIAGRAM_KEY\": 10, \"document\": 11, \"stop\": 12, \"statement\": 13, \"link\": 14, \"LINK\": 15, \"START_LINK\": 16, \"LINK_LABEL\": 17, \"STR\": 18, \"nodeStatement\": 19, \"columnsStatement\": 20, \"SPACE_BLOCK\": 21, \"blockStatement\": 22, \"classDefStatement\": 23, \"cssClassStatement\": 24, \"styleStatement\": 25, \"node\": 26, \"SIZE\": 27, \"COLUMNS\": 28, \"id-block\": 29, \"end\": 30, \"NODE_ID\": 31, \"nodeShapeNLabel\": 32, \"dirList\": 33, \"DIR\": 34, \"NODE_DSTART\": 35, \"NODE_DEND\": 36, \"BLOCK_ARROW_START\": 37, \"BLOCK_ARROW_END\": 38, \"classDef\": 39, \"CLASSDEF_ID\": 40, \"CLASSDEF_STYLEOPTS\": 41, \"DEFAULT\": 42, \"class\": 43, \"CLASSENTITY_IDS\": 44, \"STYLECLASS\": 45, \"style\": 46, \"STYLE_ENTITY_IDS\": 47, \"STYLE_DEFINITION_DATA\": 48, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACELINE\", 5: \"NL\", 7: \"SPACE\", 8: \"EOF\", 10: \"BLOCK_DIAGRAM_KEY\", 15: \"LINK\", 16: \"START_LINK\", 17: \"LINK_LABEL\", 18: \"STR\", 21: \"SPACE_BLOCK\", 27: \"SIZE\", 28: \"COLUMNS\", 29: \"id-block\", 30: \"end\", 31: \"NODE_ID\", 34: \"DIR\", 35: \"NODE_DSTART\", 36: \"NODE_DEND\", 37: \"BLOCK_ARROW_START\", 38: \"BLOCK_ARROW_END\", 39: \"classDef\", 40: \"CLASSDEF_ID\", 41: \"CLASSDEF_STYLEOPTS\", 42: \"DEFAULT\", 43: \"class\", 44: \"CLASSENTITY_IDS\", 45: \"STYLECLASS\", 46: \"style\", 47: \"STYLE_ENTITY_IDS\", 48: \"STYLE_DEFINITION_DATA\" },\n productions_: [0, [3, 1], [3, 2], [3, 2], [6, 1], [6, 1], [6, 1], [9, 3], [12, 1], [12, 1], [12, 2], [12, 2], [11, 1], [11, 2], [14, 1], [14, 4], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [19, 3], [19, 2], [19, 1], [20, 1], [22, 4], [22, 3], [26, 1], [26, 2], [33, 1], [33, 2], [32, 3], [32, 4], [23, 3], [23, 3], [24, 3], [25, 3]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n yy.getLogger().debug(\"Rule: separator (NL) \");\n break;\n case 5:\n yy.getLogger().debug(\"Rule: separator (Space) \");\n break;\n case 6:\n yy.getLogger().debug(\"Rule: separator (EOF) \");\n break;\n case 7:\n yy.getLogger().debug(\"Rule: hierarchy: \", $$[$0 - 1]);\n yy.setHierarchy($$[$0 - 1]);\n break;\n case 8:\n yy.getLogger().debug(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().debug(\"Stop EOF \");\n break;\n case 10:\n yy.getLogger().debug(\"Stop NL2 \");\n break;\n case 11:\n yy.getLogger().debug(\"Stop EOF2 \");\n break;\n case 12:\n yy.getLogger().debug(\"Rule: statement: \", $$[$0]);\n typeof $$[$0].length === \"number\" ? this.$ = $$[$0] : this.$ = [$$[$0]];\n break;\n case 13:\n yy.getLogger().debug(\"Rule: statement #2: \", $$[$0 - 1]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 14:\n yy.getLogger().debug(\"Rule: link: \", $$[$0], yytext);\n this.$ = { edgeTypeStr: $$[$0], label: \"\" };\n break;\n case 15:\n yy.getLogger().debug(\"Rule: LABEL link: \", $$[$0 - 3], $$[$0 - 1], $$[$0]);\n this.$ = { edgeTypeStr: $$[$0], label: $$[$0 - 1] };\n break;\n case 18:\n const num = parseInt($$[$0]);\n const spaceId = yy.generateId();\n this.$ = { id: spaceId, type: \"space\", label: \"\", width: num, children: [] };\n break;\n case 23:\n yy.getLogger().debug(\"Rule: (nodeStatement link node) \", $$[$0 - 2], $$[$0 - 1], $$[$0], \" typestr: \", $$[$0 - 1].edgeTypeStr);\n const edgeData = yy.edgeStrToEdgeData($$[$0 - 1].edgeTypeStr);\n this.$ = [\n { id: $$[$0 - 2].id, label: $$[$0 - 2].label, type: $$[$0 - 2].type, directions: $$[$0 - 2].directions },\n { id: $$[$0 - 2].id + \"-\" + $$[$0].id, start: $$[$0 - 2].id, end: $$[$0].id, label: $$[$0 - 1].label, type: \"edge\", directions: $$[$0].directions, arrowTypeEnd: edgeData, arrowTypeStart: \"arrow_open\" },\n { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions }\n ];\n break;\n case 24:\n yy.getLogger().debug(\"Rule: nodeStatement (abc88 node size) \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1].id, label: $$[$0 - 1].label, type: yy.typeStr2Type($$[$0 - 1].typeStr), directions: $$[$0 - 1].directions, widthInColumns: parseInt($$[$0], 10) };\n break;\n case 25:\n yy.getLogger().debug(\"Rule: nodeStatement (node) \", $$[$0]);\n this.$ = { id: $$[$0].id, label: $$[$0].label, type: yy.typeStr2Type($$[$0].typeStr), directions: $$[$0].directions, widthInColumns: 1 };\n break;\n case 26:\n yy.getLogger().debug(\"APA123\", this ? this : \"na\");\n yy.getLogger().debug(\"COLUMNS: \", $$[$0]);\n this.$ = { type: \"column-setting\", columns: $$[$0] === \"auto\" ? -1 : parseInt($$[$0]) };\n break;\n case 27:\n yy.getLogger().debug(\"Rule: id-block statement : \", $$[$0 - 2], $$[$0 - 1]);\n const id2 = yy.generateId();\n this.$ = { ...$$[$0 - 2], type: \"composite\", children: $$[$0 - 1] };\n break;\n case 28:\n yy.getLogger().debug(\"Rule: blockStatement : \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n const id = yy.generateId();\n this.$ = { id, type: \"composite\", label: \"\", children: $$[$0 - 1] };\n break;\n case 29:\n yy.getLogger().debug(\"Rule: node (NODE_ID separator): \", $$[$0]);\n this.$ = { id: $$[$0] };\n break;\n case 30:\n yy.getLogger().debug(\"Rule: node (NODE_ID nodeShapeNLabel separator): \", $$[$0 - 1], $$[$0]);\n this.$ = { id: $$[$0 - 1], label: $$[$0].label, typeStr: $$[$0].typeStr, directions: $$[$0].directions };\n break;\n case 31:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0]);\n this.$ = [$$[$0]];\n break;\n case 32:\n yy.getLogger().debug(\"Rule: dirList: \", $$[$0 - 1], $$[$0]);\n this.$ = [$$[$0 - 1]].concat($$[$0]);\n break;\n case 33:\n yy.getLogger().debug(\"Rule: nodeShapeNLabel: \", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 2] + $$[$0], label: $$[$0 - 1] };\n break;\n case 34:\n yy.getLogger().debug(\"Rule: BLOCK_ARROW nodeShapeNLabel: \", $$[$0 - 3], $$[$0 - 2], \" #3:\", $$[$0 - 1], $$[$0]);\n this.$ = { typeStr: $$[$0 - 3] + $$[$0], label: $$[$0 - 2], directions: $$[$0 - 1] };\n break;\n case 35:\n case 36:\n this.$ = { type: \"classDef\", id: $$[$0 - 1].trim(), css: $$[$0].trim() };\n break;\n case 37:\n this.$ = { type: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n this.$ = { type: \"applyStyles\", id: $$[$0 - 1].trim(), stylesStr: $$[$0].trim() };\n break;\n }\n }, \"anonymous\"),\n table: [{ 9: 1, 10: [1, 2] }, { 1: [3] }, { 10: $V0, 11: 3, 13: 4, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 8: [1, 20] }, o($V8, [2, 12], { 13: 4, 19: 5, 20: 6, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 11: 21, 10: $V0, 21: $V1, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }), o($V9, [2, 16], { 14: 22, 15: $Va, 16: $Vb }), o($V9, [2, 17]), o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), o($V9, [2, 21]), o($V9, [2, 22]), o($Vc, [2, 25], { 27: [1, 25] }), o($V9, [2, 26]), { 19: 26, 26: 12, 31: $V4 }, { 10: $V0, 11: 27, 13: 4, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 40: [1, 28], 42: [1, 29] }, { 44: [1, 30] }, { 47: [1, 31] }, o($Vd, [2, 29], { 32: 32, 35: [1, 33], 37: [1, 34] }), { 1: [2, 7] }, o($V8, [2, 13]), { 26: 35, 31: $V4 }, { 31: [2, 14] }, { 17: [1, 36] }, o($Vc, [2, 24]), { 10: $V0, 11: 37, 13: 4, 14: 22, 15: $Va, 16: $Vb, 19: 5, 20: 6, 21: $V1, 22: 8, 23: 9, 24: 10, 25: 11, 26: 12, 28: $V2, 29: $V3, 31: $V4, 39: $V5, 43: $V6, 46: $V7 }, { 30: [1, 38] }, { 41: [1, 39] }, { 41: [1, 40] }, { 45: [1, 41] }, { 48: [1, 42] }, o($Vd, [2, 30]), { 18: [1, 43] }, { 18: [1, 44] }, o($Vc, [2, 23]), { 18: [1, 45] }, { 30: [1, 46] }, o($V9, [2, 28]), o($V9, [2, 35]), o($V9, [2, 36]), o($V9, [2, 37]), o($V9, [2, 38]), { 36: [1, 47] }, { 33: 48, 34: $Ve }, { 15: [1, 50] }, o($V9, [2, 27]), o($Vd, [2, 33]), { 38: [1, 51] }, { 33: 52, 34: $Ve, 38: [2, 31] }, { 31: [2, 15] }, o($Vd, [2, 34]), { 38: [2, 32] }],\n defaultActions: { 20: [2, 7], 23: [2, 14], 50: [2, 15], 52: [2, 32] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n yy.getLogger().debug(\"Found block-beta\");\n return 10;\n break;\n case 1:\n yy.getLogger().debug(\"Found id-block\");\n return 29;\n break;\n case 2:\n yy.getLogger().debug(\"Found block\");\n return 10;\n break;\n case 3:\n yy.getLogger().debug(\".\", yy_.yytext);\n break;\n case 4:\n yy.getLogger().debug(\"_\", yy_.yytext);\n break;\n case 5:\n return 5;\n break;\n case 6:\n yy_.yytext = -1;\n return 28;\n break;\n case 7:\n yy_.yytext = yy_.yytext.replace(/columns\\s+/, \"\");\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 28;\n break;\n case 8:\n this.pushState(\"md_string\");\n break;\n case 9:\n return \"MD_STR\";\n break;\n case 10:\n this.popState();\n break;\n case 11:\n this.pushState(\"string\");\n break;\n case 12:\n yy.getLogger().debug(\"LEX: POPPING STR:\", yy_.yytext);\n this.popState();\n break;\n case 13:\n yy.getLogger().debug(\"LEX: STR end:\", yy_.yytext);\n return \"STR\";\n break;\n case 14:\n yy_.yytext = yy_.yytext.replace(/space\\:/, \"\");\n yy.getLogger().debug(\"SPACE NUM (LEX)\", yy_.yytext);\n return 21;\n break;\n case 15:\n yy_.yytext = \"1\";\n yy.getLogger().debug(\"COLUMNS (LEX)\", yy_.yytext);\n return 21;\n break;\n case 16:\n return 42;\n break;\n case 17:\n return \"LINKSTYLE\";\n break;\n case 18:\n return \"INTERPOLATE\";\n break;\n case 19:\n this.pushState(\"CLASSDEF\");\n return 39;\n break;\n case 20:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 21:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 40;\n break;\n case 22:\n this.popState();\n return 41;\n break;\n case 23:\n this.pushState(\"CLASS\");\n return 43;\n break;\n case 24:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 44;\n break;\n case 25:\n this.popState();\n return 45;\n break;\n case 26:\n this.pushState(\"STYLE_STMNT\");\n return 46;\n break;\n case 27:\n this.popState();\n this.pushState(\"STYLE_DEFINITION\");\n return 47;\n break;\n case 28:\n this.popState();\n return 48;\n break;\n case 29:\n this.pushState(\"acc_title\");\n return \"acc_title\";\n break;\n case 30:\n this.popState();\n return \"acc_title_value\";\n break;\n case 31:\n this.pushState(\"acc_descr\");\n return \"acc_descr\";\n break;\n case 32:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 33:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 34:\n this.popState();\n break;\n case 35:\n return \"acc_descr_multiline_value\";\n break;\n case 36:\n return 30;\n break;\n case 37:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 38:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 39:\n this.popState();\n yy.getLogger().debug(\"Lex: ))\");\n return \"NODE_DEND\";\n break;\n case 40:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 41:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 42:\n this.popState();\n yy.getLogger().debug(\"Lex: (-\");\n return \"NODE_DEND\";\n break;\n case 43:\n this.popState();\n yy.getLogger().debug(\"Lex: -)\");\n return \"NODE_DEND\";\n break;\n case 44:\n this.popState();\n yy.getLogger().debug(\"Lex: ((\");\n return \"NODE_DEND\";\n break;\n case 45:\n this.popState();\n yy.getLogger().debug(\"Lex: ]]\");\n return \"NODE_DEND\";\n break;\n case 46:\n this.popState();\n yy.getLogger().debug(\"Lex: (\");\n return \"NODE_DEND\";\n break;\n case 47:\n this.popState();\n yy.getLogger().debug(\"Lex: ])\");\n return \"NODE_DEND\";\n break;\n case 48:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 49:\n this.popState();\n yy.getLogger().debug(\"Lex: /]\");\n return \"NODE_DEND\";\n break;\n case 50:\n this.popState();\n yy.getLogger().debug(\"Lex: )]\");\n return \"NODE_DEND\";\n break;\n case 51:\n this.popState();\n yy.getLogger().debug(\"Lex: )\");\n return \"NODE_DEND\";\n break;\n case 52:\n this.popState();\n yy.getLogger().debug(\"Lex: ]>\");\n return \"NODE_DEND\";\n break;\n case 53:\n this.popState();\n yy.getLogger().debug(\"Lex: ]\");\n return \"NODE_DEND\";\n break;\n case 54:\n yy.getLogger().debug(\"Lexa: -)\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 55:\n yy.getLogger().debug(\"Lexa: (-\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 56:\n yy.getLogger().debug(\"Lexa: ))\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 57:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 58:\n yy.getLogger().debug(\"Lex: (((\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 59:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 60:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 61:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 62:\n yy.getLogger().debug(\"Lexc: >\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 63:\n yy.getLogger().debug(\"Lexa: ([\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 64:\n yy.getLogger().debug(\"Lexa: )\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 65:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 66:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 67:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 68:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 69:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 70:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 71:\n this.pushState(\"NODE\");\n return 35;\n break;\n case 72:\n yy.getLogger().debug(\"Lexa: [\");\n this.pushState(\"NODE\");\n return 35;\n break;\n case 73:\n this.pushState(\"BLOCK_ARROW\");\n yy.getLogger().debug(\"LEX ARR START\");\n return 37;\n break;\n case 74:\n yy.getLogger().debug(\"Lex: NODE_ID\", yy_.yytext);\n return 31;\n break;\n case 75:\n yy.getLogger().debug(\"Lex: EOF\", yy_.yytext);\n return 8;\n break;\n case 76:\n this.pushState(\"md_string\");\n break;\n case 77:\n this.pushState(\"md_string\");\n break;\n case 78:\n return \"NODE_DESCR\";\n break;\n case 79:\n this.popState();\n break;\n case 80:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n break;\n case 81:\n yy.getLogger().debug(\"LEX ARR: Starting string\");\n this.pushState(\"string\");\n break;\n case 82:\n yy.getLogger().debug(\"LEX: NODE_DESCR:\", yy_.yytext);\n return \"NODE_DESCR\";\n break;\n case 83:\n yy.getLogger().debug(\"LEX POPPING\");\n this.popState();\n break;\n case 84:\n yy.getLogger().debug(\"Lex: =>BAE\");\n this.pushState(\"ARROW_DIR\");\n break;\n case 85:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (right): dir:\", yy_.yytext);\n return \"DIR\";\n break;\n case 86:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (left):\", yy_.yytext);\n return \"DIR\";\n break;\n case 87:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (x):\", yy_.yytext);\n return \"DIR\";\n break;\n case 88:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (y):\", yy_.yytext);\n return \"DIR\";\n break;\n case 89:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (up):\", yy_.yytext);\n return \"DIR\";\n break;\n case 90:\n yy_.yytext = yy_.yytext.replace(/^,\\s*/, \"\");\n yy.getLogger().debug(\"Lex (down):\", yy_.yytext);\n return \"DIR\";\n break;\n case 91:\n yy_.yytext = \"]>\";\n yy.getLogger().debug(\"Lex (ARROW_DIR end):\", yy_.yytext);\n this.popState();\n this.popState();\n return \"BLOCK_ARROW_END\";\n break;\n case 92:\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 93:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 94:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 95:\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 96:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 97:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 98:\n yy.getLogger().debug(\"Lex: START_LINK\", yy_.yytext);\n this.pushState(\"LLABEL\");\n return 16;\n break;\n case 99:\n this.pushState(\"md_string\");\n break;\n case 100:\n yy.getLogger().debug(\"Lex: Starting string\");\n this.pushState(\"string\");\n return \"LINK_LABEL\";\n break;\n case 101:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", \"#\" + yy_.yytext + \"#\");\n return 15;\n break;\n case 102:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 103:\n this.popState();\n yy.getLogger().debug(\"Lex: LINK\", yy_.yytext);\n return 15;\n break;\n case 104:\n yy.getLogger().debug(\"Lex: COLON\", yy_.yytext);\n yy_.yytext = yy_.yytext.slice(1);\n return 27;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:block-beta\\b)/, /^(?:block:)/, /^(?:block\\b)/, /^(?:[\\s]+)/, /^(?:[\\n]+)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:columns\\s+auto\\b)/, /^(?:columns\\s+[\\d]+)/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:space[:]\\d+)/, /^(?:space\\b)/, /^(?:default\\b)/, /^(?:linkStyle\\b)/, /^(?:interpolate\\b)/, /^(?:classDef\\s+)/, /^(?:DEFAULT\\s+)/, /^(?:\\w+\\s+)/, /^(?:[^\\n]*)/, /^(?:class\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:style\\s+)/, /^(?:(\\w+)+((,\\s*\\w+)*))/, /^(?:[^\\n]*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:end\\b\\s*)/, /^(?:\\(\\(\\()/, /^(?:\\)\\)\\))/, /^(?:[\\)]\\))/, /^(?:\\}\\})/, /^(?:\\})/, /^(?:\\(-)/, /^(?:-\\))/, /^(?:\\(\\()/, /^(?:\\]\\])/, /^(?:\\()/, /^(?:\\]\\))/, /^(?:\\\\\\])/, /^(?:\\/\\])/, /^(?:\\)\\])/, /^(?:[\\)])/, /^(?:\\]>)/, /^(?:[\\]])/, /^(?:-\\))/, /^(?:\\(-)/, /^(?:\\)\\))/, /^(?:\\))/, /^(?:\\(\\(\\()/, /^(?:\\(\\()/, /^(?:\\{\\{)/, /^(?:\\{)/, /^(?:>)/, /^(?:\\(\\[)/, /^(?:\\()/, /^(?:\\[\\[)/, /^(?:\\[\\|)/, /^(?:\\[\\()/, /^(?:\\)\\)\\))/, /^(?:\\[\\\\)/, /^(?:\\[\\/)/, /^(?:\\[\\\\)/, /^(?:\\[)/, /^(?:<\\[)/, /^(?:[^\\(\\[\\n\\-\\)\\{\\}\\s\\<\\>:]+)/, /^(?:$)/, /^(?:[\"][`])/, /^(?:[\"][`])/, /^(?:[^`\"]+)/, /^(?:[`][\"])/, /^(?:[\"])/, /^(?:[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:\\]>\\s*\\()/, /^(?:,?\\s*right\\s*)/, /^(?:,?\\s*left\\s*)/, /^(?:,?\\s*x\\s*)/, /^(?:,?\\s*y\\s*)/, /^(?:,?\\s*up\\s*)/, /^(?:,?\\s*down\\s*)/, /^(?:\\)\\s*)/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?:\\s*~~[\\~]+\\s*)/, /^(?:\\s*[xo<]?--\\s*)/, /^(?:\\s*[xo<]?==\\s*)/, /^(?:\\s*[xo<]?-\\.\\s*)/, /^(?:[\"][`])/, /^(?:[\"])/, /^(?:\\s*[xo<]?--+[-xo>]\\s*)/, /^(?:\\s*[xo<]?==+[=xo>]\\s*)/, /^(?:\\s*[xo<]?-?\\.+-[xo>]?\\s*)/, /^(?::\\d+)/],\n conditions: { \"STYLE_DEFINITION\": { \"rules\": [28], \"inclusive\": false }, \"STYLE_STMNT\": { \"rules\": [27], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [22], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [20, 21], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [25], \"inclusive\": false }, \"CLASS\": { \"rules\": [24], \"inclusive\": false }, \"LLABEL\": { \"rules\": [99, 100, 101, 102, 103], \"inclusive\": false }, \"ARROW_DIR\": { \"rules\": [85, 86, 87, 88, 89, 90, 91], \"inclusive\": false }, \"BLOCK_ARROW\": { \"rules\": [76, 81, 84], \"inclusive\": false }, \"NODE\": { \"rules\": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 77, 80], \"inclusive\": false }, \"md_string\": { \"rules\": [9, 10, 78, 79], \"inclusive\": false }, \"space\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [12, 13, 82, 83], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [34, 35], \"inclusive\": false }, \"acc_descr\": { \"rules\": [32], \"inclusive\": false }, \"acc_title\": { \"rules\": [30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 14, 15, 16, 17, 18, 19, 23, 26, 29, 31, 33, 36, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 92, 93, 94, 95, 96, 97, 98, 104], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar block_default = parser;\n\n// src/diagrams/block/blockDB.ts\nimport clone from \"lodash-es/clone.js\";\nvar blockDatabase = /* @__PURE__ */ new Map();\nvar edgeList = [];\nvar edgeCount = /* @__PURE__ */ new Map();\nvar COLOR_KEYWORD = \"color\";\nvar FILL_KEYWORD = \"fill\";\nvar BG_FILL = \"bgFill\";\nvar STYLECLASS_SEP = \",\";\nvar config = getConfig2();\nvar classes = /* @__PURE__ */ new Map();\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, config), \"sanitizeText\");\nvar addStyleClass = /* @__PURE__ */ __name(function(id, styleAttributes = \"\") {\n let foundClass = classes.get(id);\n if (!foundClass) {\n foundClass = { id, styles: [], textStyles: [] };\n classes.set(id, foundClass);\n }\n if (styleAttributes !== void 0 && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n}, \"addStyleClass\");\nvar addStyle2Node = /* @__PURE__ */ __name(function(id, styles = \"\") {\n const foundBlock = blockDatabase.get(id);\n if (styles !== void 0 && styles !== null) {\n foundBlock.styles = styles.split(STYLECLASS_SEP);\n }\n}, \"addStyle2Node\");\nvar setCssClass = /* @__PURE__ */ __name(function(itemIds, cssClassName) {\n itemIds.split(\",\").forEach(function(id) {\n let foundBlock = blockDatabase.get(id);\n if (foundBlock === void 0) {\n const trimmedId = id.trim();\n foundBlock = { id: trimmedId, type: \"na\", children: [] };\n blockDatabase.set(trimmedId, foundBlock);\n }\n if (!foundBlock.classes) {\n foundBlock.classes = [];\n }\n foundBlock.classes.push(cssClassName);\n });\n}, \"setCssClass\");\nvar populateBlockDatabase = /* @__PURE__ */ __name((_blockList, parent) => {\n const blockList = _blockList.flat();\n const children = [];\n const columnSettingBlock = blockList.find((b) => b?.type === \"column-setting\");\n const column = columnSettingBlock?.columns ?? -1;\n for (const block of blockList) {\n if (typeof column === \"number\" && column > 0 && block.type !== \"column-setting\" && typeof block.widthInColumns === \"number\" && block.widthInColumns > column) {\n log.warn(\n `Block ${block.id} width ${block.widthInColumns} exceeds configured column width ${column}`\n );\n }\n if (block.label) {\n block.label = sanitizeText2(block.label);\n }\n if (block.type === \"classDef\") {\n addStyleClass(block.id, block.css);\n continue;\n }\n if (block.type === \"applyClass\") {\n setCssClass(block.id, block?.styleClass ?? \"\");\n continue;\n }\n if (block.type === \"applyStyles\") {\n if (block?.stylesStr) {\n addStyle2Node(block.id, block?.stylesStr);\n }\n continue;\n }\n if (block.type === \"column-setting\") {\n parent.columns = block.columns ?? -1;\n } else if (block.type === \"edge\") {\n const count = (edgeCount.get(block.id) ?? 0) + 1;\n edgeCount.set(block.id, count);\n block.id = count + \"-\" + block.id;\n edgeList.push(block);\n } else {\n if (!block.label) {\n if (block.type === \"composite\") {\n block.label = \"\";\n } else {\n block.label = block.id;\n }\n }\n const existingBlock = blockDatabase.get(block.id);\n if (existingBlock === void 0) {\n blockDatabase.set(block.id, block);\n } else {\n if (block.type !== \"na\") {\n existingBlock.type = block.type;\n }\n if (block.label !== block.id) {\n existingBlock.label = block.label;\n }\n }\n if (block.children) {\n populateBlockDatabase(block.children, block);\n }\n if (block.type === \"space\") {\n const w = block.width ?? 1;\n for (let j = 0; j < w; j++) {\n const newBlock = clone(block);\n newBlock.id = newBlock.id + \"-\" + j;\n blockDatabase.set(newBlock.id, newBlock);\n children.push(newBlock);\n }\n } else if (existingBlock === void 0) {\n children.push(block);\n }\n }\n }\n parent.children = children;\n}, \"populateBlockDatabase\");\nvar blocks = [];\nvar rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\nvar clear2 = /* @__PURE__ */ __name(() => {\n log.debug(\"Clear called\");\n clear();\n rootBlock = { id: \"root\", type: \"composite\", children: [], columns: -1 };\n blockDatabase = /* @__PURE__ */ new Map([[\"root\", rootBlock]]);\n blocks = [];\n classes = /* @__PURE__ */ new Map();\n edgeList = [];\n edgeCount = /* @__PURE__ */ new Map();\n}, \"clear\");\nfunction typeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"[]\":\n return \"square\";\n case \"()\":\n log.debug(\"we have a round\");\n return \"round\";\n case \"(())\":\n return \"circle\";\n case \">]\":\n return \"rect_left_inv_arrow\";\n case \"{}\":\n return \"diamond\";\n case \"{{}}\":\n return \"hexagon\";\n case \"([])\":\n return \"stadium\";\n case \"[[]]\":\n return \"subroutine\";\n case \"[()]\":\n return \"cylinder\";\n case \"((()))\":\n return \"doublecircle\";\n case \"[//]\":\n return \"lean_right\";\n case \"[\\\\\\\\]\":\n return \"lean_left\";\n case \"[/\\\\]\":\n return \"trapezoid\";\n case \"[\\\\/]\":\n return \"inv_trapezoid\";\n case \"<[]>\":\n return \"block_arrow\";\n default:\n return \"na\";\n }\n}\n__name(typeStr2Type, \"typeStr2Type\");\nfunction edgeTypeStr2Type(typeStr) {\n log.debug(\"typeStr2Type\", typeStr);\n switch (typeStr) {\n case \"==\":\n return \"thick\";\n default:\n return \"normal\";\n }\n}\n__name(edgeTypeStr2Type, \"edgeTypeStr2Type\");\nfunction edgeStrToEdgeData(typeStr) {\n switch (typeStr.replace(/^[\\s-]+|[\\s-]+$/g, \"\")) {\n case \"x\":\n return \"arrow_cross\";\n case \"o\":\n return \"arrow_circle\";\n case \">\":\n return \"arrow_point\";\n default:\n return \"\";\n }\n}\n__name(edgeStrToEdgeData, \"edgeStrToEdgeData\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nvar setHierarchy = /* @__PURE__ */ __name((block) => {\n rootBlock.children = block;\n populateBlockDatabase(block, rootBlock);\n blocks = rootBlock.children;\n}, \"setHierarchy\");\nvar getColumns = /* @__PURE__ */ __name((blockId) => {\n const block = blockDatabase.get(blockId);\n if (!block) {\n return -1;\n }\n if (block.columns) {\n return block.columns;\n }\n if (!block.children) {\n return -1;\n }\n return block.children.length;\n}, \"getColumns\");\nvar getBlocksFlat = /* @__PURE__ */ __name(() => {\n return [...blockDatabase.values()];\n}, \"getBlocksFlat\");\nvar getBlocks = /* @__PURE__ */ __name(() => {\n return blocks || [];\n}, \"getBlocks\");\nvar getEdges = /* @__PURE__ */ __name(() => {\n return edgeList;\n}, \"getEdges\");\nvar getBlock = /* @__PURE__ */ __name((id) => {\n return blockDatabase.get(id);\n}, \"getBlock\");\nvar setBlock = /* @__PURE__ */ __name((block) => {\n blockDatabase.set(block.id, block);\n}, \"setBlock\");\nvar getLogger = /* @__PURE__ */ __name(() => log, \"getLogger\");\nvar getClasses = /* @__PURE__ */ __name(function() {\n return classes;\n}, \"getClasses\");\nvar db = {\n getConfig: /* @__PURE__ */ __name(() => getConfig().block, \"getConfig\"),\n typeStr2Type,\n edgeTypeStr2Type,\n edgeStrToEdgeData,\n getLogger,\n getBlocksFlat,\n getBlocks,\n getEdges,\n setHierarchy,\n getBlock,\n setBlock,\n getColumns,\n getClasses,\n clear: clear2,\n generateId\n};\nvar blockDB_default = db;\n\n// src/diagrams/block/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n const channel2 = khroma.channel;\n const r = channel2(color, \"r\");\n const g = channel2(color, \"g\");\n const b = channel2(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span,p {\n color: ${options.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${fade(options.edgeLabelBackground, 0.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${fade(options.mainBkg, 0.5)};\n fill: ${fade(options.clusterBkg, 0.5)};\n stroke: ${fade(options.clusterBorder, 0.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span,p {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n ${getIconStyles()}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/block/blockRenderer.ts\nimport { select as d3select } from \"d3\";\n\n// src/dagre-wrapper/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 6).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"strokeWidth\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb\n};\nvar markers_default = insertMarkers;\n\n// src/diagrams/block/layout.ts\nvar padding = getConfig2()?.block?.padding ?? 8;\nfunction calculateBlockPosition(columns, position) {\n if (columns === 0 || !Number.isInteger(columns)) {\n throw new Error(\"Columns must be an integer !== 0.\");\n }\n if (position < 0 || !Number.isInteger(position)) {\n throw new Error(\"Position must be a non-negative integer.\" + position);\n }\n if (columns < 0) {\n return { px: position, py: 0 };\n }\n if (columns === 1) {\n return { px: 0, py: position };\n }\n const px = position % columns;\n const py = Math.floor(position / columns);\n return { px, py };\n}\n__name(calculateBlockPosition, \"calculateBlockPosition\");\nvar getMaxChildSize = /* @__PURE__ */ __name((block) => {\n let maxWidth = 0;\n let maxHeight = 0;\n for (const child of block.children) {\n const { width, height, x, y } = child.size ?? { width: 0, height: 0, x: 0, y: 0 };\n log.debug(\n \"getMaxChildSize abc95 child:\",\n child.id,\n \"width:\",\n width,\n \"height:\",\n height,\n \"x:\",\n x,\n \"y:\",\n y,\n child.type\n );\n if (child.type === \"space\") {\n continue;\n }\n if (width > maxWidth) {\n maxWidth = width / (block.widthInColumns ?? 1);\n }\n if (height > maxHeight) {\n maxHeight = height;\n }\n }\n return { width: maxWidth, height: maxHeight };\n}, \"getMaxChildSize\");\nfunction setBlockSizes(block, db2, siblingWidth = 0, siblingHeight = 0) {\n log.debug(\n \"setBlockSizes abc95 (start)\",\n block.id,\n block?.size?.x,\n \"block width =\",\n block?.size,\n \"siblingWidth\",\n siblingWidth\n );\n if (!block?.size?.width) {\n block.size = {\n width: siblingWidth,\n height: siblingHeight,\n x: 0,\n y: 0\n };\n }\n let maxWidth = 0;\n let maxHeight = 0;\n if (block.children?.length > 0) {\n for (const child of block.children) {\n setBlockSizes(child, db2);\n }\n const childSize = getMaxChildSize(block);\n maxWidth = childSize.width;\n maxHeight = childSize.height;\n log.debug(\"setBlockSizes abc95 maxWidth of\", block.id, \":s children is \", maxWidth, maxHeight);\n for (const child of block.children) {\n if (child.size) {\n log.debug(\n `abc95 Setting size of children of ${block.id} id=${child.id} ${maxWidth} ${maxHeight} ${JSON.stringify(child.size)}`\n );\n child.size.width = maxWidth * (child.widthInColumns ?? 1) + padding * ((child.widthInColumns ?? 1) - 1);\n child.size.height = maxHeight;\n child.size.x = 0;\n child.size.y = 0;\n log.debug(\n `abc95 updating size of ${block.id} children child:${child.id} maxWidth:${maxWidth} maxHeight:${maxHeight}`\n );\n }\n }\n for (const child of block.children) {\n setBlockSizes(child, db2, maxWidth, maxHeight);\n }\n const columns = block.columns ?? -1;\n let numItems = 0;\n for (const child of block.children) {\n numItems += child.widthInColumns ?? 1;\n }\n let xSize = block.children.length;\n if (columns > 0 && columns < numItems) {\n xSize = columns;\n }\n const ySize = Math.ceil(numItems / xSize);\n let width = xSize * (maxWidth + padding) + padding;\n let height = ySize * (maxHeight + padding) + padding;\n if (width < siblingWidth) {\n log.debug(\n `Detected to small sibling: abc95 ${block.id} siblingWidth ${siblingWidth} siblingHeight ${siblingHeight} width ${width}`\n );\n width = siblingWidth;\n height = siblingHeight;\n const childWidth = (siblingWidth - xSize * padding - padding) / xSize;\n const childHeight = (siblingHeight - ySize * padding - padding) / ySize;\n log.debug(\"Size indata abc88\", block.id, \"childWidth\", childWidth, \"maxWidth\", maxWidth);\n log.debug(\"Size indata abc88\", block.id, \"childHeight\", childHeight, \"maxHeight\", maxHeight);\n log.debug(\"Size indata abc88 xSize\", xSize, \"padding\", padding);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n child.size.height = childHeight;\n child.size.x = 0;\n child.size.y = 0;\n }\n }\n }\n log.debug(\n `abc95 (finale calc) ${block.id} xSize ${xSize} ySize ${ySize} columns ${columns}${block.children.length} width=${Math.max(width, block.size?.width || 0)}`\n );\n if (width < (block?.size?.width || 0)) {\n width = block?.size?.width || 0;\n const num = columns > 0 ? Math.min(block.children.length, columns) : block.children.length;\n if (num > 0) {\n const childWidth = (width - num * padding - padding) / num;\n log.debug(\"abc95 (growing to fit) width\", block.id, width, block.size?.width, childWidth);\n for (const child of block.children) {\n if (child.size) {\n child.size.width = childWidth;\n }\n }\n }\n }\n block.size = {\n width,\n height,\n x: 0,\n y: 0\n };\n }\n log.debug(\n \"setBlockSizes abc94 (done)\",\n block.id,\n block?.size?.x,\n block?.size?.width,\n block?.size?.y,\n block?.size?.height\n );\n}\n__name(setBlockSizes, \"setBlockSizes\");\nfunction layoutBlocks(block, db2) {\n log.debug(\n `abc85 layout blocks (=>layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n const columns = block.columns ?? -1;\n log.debug(\"layoutBlocks columns abc95\", block.id, \"=>\", columns, block);\n if (block.children && // find max width of children\n block.children.length > 0) {\n const width = block?.children[0]?.size?.width ?? 0;\n const widthOfChildren = block.children.length * width + (block.children.length - 1) * padding;\n log.debug(\"widthOfChildren 88\", widthOfChildren, \"posX\");\n let columnPos = 0;\n log.debug(\"abc91 block?.size?.x\", block.id, block?.size?.x);\n let startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n let rowPos = 0;\n for (const child of block.children) {\n const parent = block;\n if (!child.size) {\n continue;\n }\n const { width: width2, height } = child.size;\n const { px, py } = calculateBlockPosition(columns, columnPos);\n if (py != rowPos) {\n rowPos = py;\n startingPosX = block?.size?.x ? block?.size?.x + (-block?.size?.width / 2 || 0) : -padding;\n log.debug(\"New row in layout for block\", block.id, \" and child \", child.id, rowPos);\n }\n log.debug(\n `abc89 layout blocks (child) id: ${child.id} Pos: ${columnPos} (px, py) ${px},${py} (${parent?.size?.x},${parent?.size?.y}) parent: ${parent.id} width: ${width2}${padding}`\n );\n if (parent.size) {\n const halfWidth = width2 / 2;\n child.size.x = startingPosX + padding + halfWidth;\n log.debug(\n `abc91 layout blocks (calc) px, pyid:${child.id} startingPos=X${startingPosX} new startingPosX${child.size.x} ${halfWidth} padding=${padding} width=${width2} halfWidth=${halfWidth} => x:${child.size.x} y:${child.size.y} ${child.widthInColumns} (width * (child?.w || 1)) / 2 ${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n startingPosX = child.size.x + halfWidth;\n child.size.y = parent.size.y - parent.size.height / 2 + py * (height + padding) + height / 2 + padding;\n log.debug(\n `abc88 layout blocks (calc) px, pyid:${child.id}startingPosX${startingPosX}${padding}${halfWidth}=>x:${child.size.x}y:${child.size.y}${child.widthInColumns}(width * (child?.w || 1)) / 2${width2 * (child?.widthInColumns ?? 1) / 2}`\n );\n }\n if (child.children) {\n layoutBlocks(child, db2);\n }\n let columnsFilled = child?.widthInColumns ?? 1;\n if (columns > 0) {\n columnsFilled = Math.min(columnsFilled, columns - columnPos % columns);\n }\n columnPos += columnsFilled;\n log.debug(\"abc88 columnsPos\", child, columnPos);\n }\n }\n log.debug(\n `layout blocks (<==layoutBlocks) ${block.id} x: ${block?.size?.x} y: ${block?.size?.y} width: ${block?.size?.width}`\n );\n}\n__name(layoutBlocks, \"layoutBlocks\");\nfunction findBounds(block, { minX, minY, maxX, maxY } = { minX: 0, minY: 0, maxX: 0, maxY: 0 }) {\n if (block.size && block.id !== \"root\") {\n const { x, y, width, height } = block.size;\n if (x - width / 2 < minX) {\n minX = x - width / 2;\n }\n if (y - height / 2 < minY) {\n minY = y - height / 2;\n }\n if (x + width / 2 > maxX) {\n maxX = x + width / 2;\n }\n if (y + height / 2 > maxY) {\n maxY = y + height / 2;\n }\n }\n if (block.children) {\n for (const child of block.children) {\n ({ minX, minY, maxX, maxY } = findBounds(child, { minX, minY, maxX, maxY }));\n }\n }\n return { minX, minY, maxX, maxY };\n}\n__name(findBounds, \"findBounds\");\nfunction layout(db2) {\n const root = db2.getBlock(\"root\");\n if (!root) {\n return;\n }\n setBlockSizes(root, db2, 0, 0);\n layoutBlocks(root, db2);\n log.debug(\"getBlocks\", JSON.stringify(root, null, 2));\n const { minX, minY, maxX, maxY } = findBounds(root);\n const height = maxY - minY;\n const width = maxX - minX;\n return { x: minX, y: minY, width, height };\n}\n__name(layout, \"layout\");\n\n// src/diagrams/block/renderHelpers.ts\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/dagre-wrapper/createLabel.js\nimport { select } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nfunction addHtmlLabel(node, config2) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const span = div.append(\"span\");\n span.html(sanitizeText(label, config2));\n applyStyle(span, node.labelStyle);\n span.attr(\"class\", labelClass);\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n const config2 = getConfig2();\n if (evaluate(config2.flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
\");\n log.debug(\"vertexText\" + vertexText);\n const label = await replaceIconSubstring(decodeEntities(vertexText));\n const node = {\n isNode,\n label,\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node, config2);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/dagre-wrapper/edges.js\nimport { line, curveBasis, select as select2 } from \"d3\";\n\n// src/dagre-wrapper/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: \"cross\",\n arrow_point: \"point\",\n arrow_barb: \"barb\",\n arrow_circle: \"circle\",\n aggregation: \"aggregation\",\n extension: \"extension\",\n composition: \"composition\",\n dependency: \"dependency\",\n lollipop: \"lollipop\"\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType) => {\n const endMarkerType = arrowTypesMap[arrowType];\n if (!endMarkerType) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n svgPath.attr(`marker-${position}`, `url(${url}#${id}_${diagramType}-${endMarkerType}${suffix})`);\n}, \"addEdgeMarker\");\n\n// src/dagre-wrapper/edges.js\nvar edgeLabels = {};\nvar terminalLabels = {};\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n const config2 = getConfig2();\n const useHtmlLabels = evaluate(config2.flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(\n elem,\n edge.label,\n {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n },\n config2\n ) : await createLabel_default(edge.label, edge.labelStyle);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select2(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig2().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels[edge.id], paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig2();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.debug(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n }\n isInside = true;\n } else {\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n return points;\n}, \"cutPathAtIntersect\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, e, edge, clusterDb, diagramType, graph, id) {\n let points = edge.points;\n log.debug(\"abc88 InsertEdge: edge=\", edge, \"e=\", e);\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n if (head?.intersect && tail?.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.debug(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve = curveBasis;\n if (edge.curve && (diagramType === \"graph\" || diagramType === \"flowchart\")) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n addEdgeMarkers(svgPath, edge, url, id, diagramType);\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\n\n// src/dagre-wrapper/nodes.js\nimport { select as select4 } from \"d3\";\n\n// src/dagre-wrapper/blockArrowHelper.ts\nvar expandAndDeduplicateDirections = /* @__PURE__ */ __name((directions) => {\n const uniqueDirections = /* @__PURE__ */ new Set();\n for (const direction of directions) {\n switch (direction) {\n case \"x\":\n uniqueDirections.add(\"right\");\n uniqueDirections.add(\"left\");\n break;\n case \"y\":\n uniqueDirections.add(\"up\");\n uniqueDirections.add(\"down\");\n break;\n default:\n uniqueDirections.add(direction);\n break;\n }\n }\n return uniqueDirections;\n}, \"expandAndDeduplicateDirections\");\nvar getArrowPoints = /* @__PURE__ */ __name((duplicatedDirections, bbox, node) => {\n const directions = expandAndDeduplicateDirections(duplicatedDirections);\n const f = 2;\n const height = bbox.height + 2 * node.padding;\n const midpoint = height / f;\n const width = bbox.width + 2 * midpoint + node.padding;\n const padding2 = node.padding / 2;\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom\n { x: 0, y: 0 },\n { x: midpoint, y: 0 },\n { x: width / 2, y: 2 * padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: 0 },\n // Right\n { x: width, y: -height / 3 },\n { x: width + 2 * padding2, y: -height / 2 },\n { x: width, y: -2 * height / 3 },\n { x: width, y: -height },\n // Top\n { x: width - midpoint, y: -height },\n { x: width / 2, y: -height - 2 * padding2 },\n { x: midpoint, y: -height },\n // Left\n { x: 0, y: -height },\n { x: 0, y: -2 * height / 3 },\n { x: -2 * padding2, y: -height / 2 },\n { x: 0, y: -height / 3 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: midpoint, y: 0 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: midpoint, y: -height },\n { x: width - midpoint, y: -height },\n { x: width, y: 0 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: width, y: -height + midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: 0, y: -height + midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\") && directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding2 },\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: 0, y: -height + padding2 },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding2 },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width, y: -padding2 }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"up\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: -midpoint },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"right\") && directions.has(\"down\")) {\n return [\n { x: 0, y: 0 },\n { x: width, y: 0 },\n { x: 0, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"up\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: -midpoint },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"left\") && directions.has(\"down\")) {\n return [\n { x: width, y: 0 },\n { x: 0, y: 0 },\n { x: width, y: -height }\n ];\n }\n if (directions.has(\"right\")) {\n return [\n { x: midpoint, y: -padding2 },\n { x: midpoint, y: -padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: 0 },\n { x: width, y: -height / 2 },\n { x: width - midpoint, y: -height },\n { x: width - midpoint, y: -height + padding2 },\n // top left corner of arrow\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 }\n ];\n }\n if (directions.has(\"left\")) {\n return [\n { x: midpoint, y: 0 },\n { x: midpoint, y: -padding2 },\n // Two points, the right corners\n { x: width - midpoint, y: -padding2 },\n { x: width - midpoint, y: -height + padding2 },\n { x: midpoint, y: -height + padding2 },\n { x: midpoint, y: -height },\n { x: 0, y: -height / 2 }\n ];\n }\n if (directions.has(\"up\")) {\n return [\n // Bottom center\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: 0, y: -height + padding2 },\n // Top of arrow\n { x: width / 2, y: -height },\n { x: width, y: -height + padding2 },\n // Top of right vertical bar\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 }\n ];\n }\n if (directions.has(\"down\")) {\n return [\n // Bottom center\n { x: width / 2, y: 0 },\n // Left pont of bottom arrow\n { x: 0, y: -padding2 },\n { x: midpoint, y: -padding2 },\n // Left top over vertical section\n { x: midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -height + padding2 },\n { x: width - midpoint, y: -padding2 },\n { x: width, y: -padding2 }\n ];\n }\n return [{ x: 0, y: 0 }];\n}, \"getArrowPoints\");\n\n// src/dagre-wrapper/intersect/intersect-node.js\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/dagre-wrapper/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/dagre-wrapper/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point2) {\n return intersect_ellipse_default(node, rx, rx, point2);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/dagre-wrapper/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/dagre-wrapper/intersect/intersect-polygon.js\nvar intersect_polygon_default = intersectPolygon;\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersect_line_default(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\n\n// src/dagre-wrapper/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/dagre-wrapper/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/dagre-wrapper/shapes/util.js\nimport { select as select3 } from \"d3\";\nvar labelHelper = /* @__PURE__ */ __name(async (parent, node, _classes, isNode) => {\n const config2 = getConfig2();\n let classes2;\n const useHtmlLabels = node.useHtmlLabels || evaluate(config2.flowchart.htmlLabels);\n if (!_classes) {\n classes2 = \"node default\";\n } else {\n classes2 = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(\n label,\n sanitizeText(decodeEntities(labelText), config2),\n {\n useHtmlLabels,\n width: node.width || config2.flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n },\n config2\n );\n } else {\n text = textNode.appendChild(\n await createLabel_default(\n sanitizeText(decodeEntities(labelText), config2),\n node.labelStyle,\n false,\n isNode\n )\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(config2.flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select3(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config2.fontSize ? config2.fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n}, \"labelHelper\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/dagre-wrapper/shapes/note.js\nvar note = /* @__PURE__ */ __name(async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig2().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"note\");\nvar note_default = note;\n\n// src/dagre-wrapper/nodes.js\nvar formatClass = /* @__PURE__ */ __name((str) => {\n if (str) {\n return \" \" + str;\n }\n return \"\";\n}, \"formatClass\");\nvar getClassesFromNode = /* @__PURE__ */ __name((node, otherClasses) => {\n return `${otherClasses ? otherClasses : \"node default\"}${formatClass(node.classes)} ${formatClass(\n node.class\n )}`;\n}, \"getClassesFromNode\");\nvar question = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"question\");\nvar choice = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect_default.circle(node, 14, point2);\n };\n return shapeSvg;\n}, \"choice\");\nvar hexagon = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"hexagon\");\nvar block_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, void 0, true);\n const f = 2;\n const h = bbox.height + 2 * node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = getArrowPoints(node.directions, bbox, node);\n const blockArrow = insertPolygonShape(shapeSvg, w, h, points);\n blockArrow.attr(\"style\", node.style);\n updateNodeBounds(node, blockArrow);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"block_arrow\");\nvar rect_left_inv_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"rect_left_inv_arrow\");\nvar lean_right = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"lean_right\");\nvar lean_left = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"lean_left\");\nvar trapezoid = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"trapezoid\");\nvar inv_trapezoid = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"inv_trapezoid\");\nvar rect_right_inv_arrow = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"rect_right_inv_arrow\");\nvar cylinder = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect_default.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}, \"cylinder\");\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes + \" \" + node.class,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"rect\");\nvar composite = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = node.positioned ? node.width : bbox.width + node.padding;\n const totalHeight = node.positioned ? node.height : bbox.height + node.padding;\n const x = node.positioned ? -totalWidth / 2 : -bbox.width / 2 - halfPadding;\n const y = node.positioned ? -totalHeight / 2 : -bbox.height / 2 - halfPadding;\n rect2.attr(\"class\", \"basic cluster composite label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"composite\");\nvar labelRect = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.class);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"labelRect\");\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = /* @__PURE__ */ __name((length) => {\n strokeDashArray.push(length, 0);\n }, \"addBorder\");\n const skipBorder = /* @__PURE__ */ __name((length) => {\n strokeDashArray.push(0, length);\n }, \"skipBorder\");\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\n__name(applyNodePropertyBorders, \"applyNodePropertyBorders\");\nvar rectWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n let classes2;\n if (!node.classes) {\n classes2 = \"node default\";\n } else {\n classes2 = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select4(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"
\") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"rectWithTitle\");\nvar stadium = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"stadium\");\nvar circle2 = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect_default.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n}, \"circle\");\nvar doublecircle = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", node.class);\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect_default.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n}, \"doublecircle\");\nvar subroutine = /* @__PURE__ */ __name(async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect_default.polygon(node, points, point2);\n };\n return shapeSvg;\n}, \"subroutine\");\nvar start = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n return intersect_default.circle(node, 7, point2);\n };\n return shapeSvg;\n}, \"start\");\nvar forkJoin = /* @__PURE__ */ __name((parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"forkJoin\");\nvar end = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle3 = shapeSvg.insert(\"circle\", \":first-child\");\n circle3.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle3);\n node.intersect = function(point2) {\n return intersect_default.circle(node, 7, point2);\n };\n return shapeSvg;\n}, \"end\");\nvar class_box = /* @__PURE__ */ __name(async (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes2;\n if (!node.classes) {\n classes2 = \"node default\";\n } else {\n classes2 = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes2).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations?.[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"\\xAB\" + node.classData.annotations[0] + \"\\xBB\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(await createLabel_default(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select4(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig2().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(await createLabel_default(classTitleString, node.labelStyle, true, true));\n select4(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select4(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach(async (member) => {\n const parsedInfo = member.getDisplayDetails();\n let parsedText = parsedInfo.displayText;\n if (getConfig2().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n await createLabel_default(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select4(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach(async (member) => {\n const parsedInfo = member.getDisplayDetails();\n let displayText = parsedInfo.displayText;\n if (getConfig2().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n await createLabel_default(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select4(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select4(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select4(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select4(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n const memberBBox = lbl?.getBBox();\n verticalPos += (memberBBox?.height ?? 0) + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select4(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n const memberBBox = lbl?.getBBox();\n verticalPos += (memberBBox?.height ?? 0) + rowPadding;\n });\n rect2.attr(\"style\", node.style).attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect_default.rect(node, point2);\n };\n return shapeSvg;\n}, \"class_box\");\nvar shapes = {\n rhombus: question,\n composite,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle: circle2,\n doublecircle,\n stadium,\n hexagon,\n block_arrow,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note_default,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nvar nodeElems = {};\nvar insertNode = /* @__PURE__ */ __name(async (elem, node, renderOptions) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig2().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, renderOptions);\n } else {\n el = await shapes[node.shape](elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n}, \"insertNode\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding2 = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding2) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\n// src/diagrams/block/renderHelpers.ts\nfunction getNodeFromBlock(block, db2, positioned = false) {\n const vertex = block;\n let classStr = \"default\";\n if ((vertex?.classes?.length || 0) > 0) {\n classStr = (vertex?.classes ?? []).join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n let radius = 0;\n let shape = \"\";\n let padding2;\n switch (vertex.type) {\n case \"round\":\n radius = 5;\n shape = \"rect\";\n break;\n case \"composite\":\n radius = 0;\n shape = \"composite\";\n padding2 = 0;\n break;\n case \"square\":\n shape = \"rect\";\n break;\n case \"diamond\":\n shape = \"question\";\n break;\n case \"hexagon\":\n shape = \"hexagon\";\n break;\n case \"block_arrow\":\n shape = \"block_arrow\";\n break;\n case \"odd\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n shape = \"lean_right\";\n break;\n case \"lean_left\":\n shape = \"lean_left\";\n break;\n case \"trapezoid\":\n shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n shape = \"inv_trapezoid\";\n break;\n case \"rect_left_inv_arrow\":\n shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n shape = \"circle\";\n break;\n case \"ellipse\":\n shape = \"ellipse\";\n break;\n case \"stadium\":\n shape = \"stadium\";\n break;\n case \"subroutine\":\n shape = \"subroutine\";\n break;\n case \"cylinder\":\n shape = \"cylinder\";\n break;\n case \"group\":\n shape = \"rect\";\n break;\n case \"doublecircle\":\n shape = \"doublecircle\";\n break;\n default:\n shape = \"rect\";\n }\n const styles = getStylesFromArray(vertex?.styles ?? []);\n const vertexText = vertex.label;\n const bounds = vertex.size ?? { width: 0, height: 0, x: 0, y: 0 };\n const node = {\n labelStyle: styles.labelStyle,\n shape,\n labelText: vertexText,\n rx: radius,\n ry: radius,\n class: classStr,\n style: styles.style,\n id: vertex.id,\n directions: vertex.directions,\n width: bounds.width,\n height: bounds.height,\n x: bounds.x,\n y: bounds.y,\n positioned,\n intersect: void 0,\n type: vertex.type,\n padding: padding2 ?? getConfig()?.block?.padding ?? 0\n };\n return node;\n}\n__name(getNodeFromBlock, \"getNodeFromBlock\");\nasync function calculateBlockSize(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, false);\n if (node.type === \"group\") {\n return;\n }\n const config2 = getConfig();\n const nodeEl = await insertNode(elem, node, { config: config2 });\n const boundingBox = nodeEl.node().getBBox();\n const obj = db2.getBlock(node.id);\n obj.size = { width: boundingBox.width, height: boundingBox.height, x: 0, y: 0, node: nodeEl };\n db2.setBlock(obj);\n nodeEl.remove();\n}\n__name(calculateBlockSize, \"calculateBlockSize\");\nasync function insertBlockPositioned(elem, block, db2) {\n const node = getNodeFromBlock(block, db2, true);\n const obj = db2.getBlock(node.id);\n if (obj.type !== \"space\") {\n const config2 = getConfig();\n await insertNode(elem, node, { config: config2 });\n block.intersect = node?.intersect;\n positionNode(node);\n }\n}\n__name(insertBlockPositioned, \"insertBlockPositioned\");\nasync function performOperations(elem, blocks2, db2, operation) {\n for (const block of blocks2) {\n await operation(elem, block, db2);\n if (block.children) {\n await performOperations(elem, block.children, db2, operation);\n }\n }\n}\n__name(performOperations, \"performOperations\");\nasync function calculateBlockSizes(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, calculateBlockSize);\n}\n__name(calculateBlockSizes, \"calculateBlockSizes\");\nasync function insertBlocks(elem, blocks2, db2) {\n await performOperations(elem, blocks2, db2, insertBlockPositioned);\n}\n__name(insertBlocks, \"insertBlocks\");\nasync function insertEdges(elem, edges, blocks2, db2, id) {\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph({\n rankdir: \"TB\",\n nodesep: 10,\n ranksep: 10,\n marginx: 8,\n marginy: 8\n });\n for (const block of blocks2) {\n if (block.size) {\n g.setNode(block.id, {\n width: block.size.width,\n height: block.size.height,\n intersect: block.intersect\n });\n }\n }\n for (const edge of edges) {\n if (edge.start && edge.end) {\n const startBlock = db2.getBlock(edge.start);\n const endBlock = db2.getBlock(edge.end);\n if (startBlock?.size && endBlock?.size) {\n const start2 = startBlock.size;\n const end2 = endBlock.size;\n const points = [\n { x: start2.x, y: start2.y },\n { x: start2.x + (end2.x - start2.x) / 2, y: start2.y + (end2.y - start2.y) / 2 },\n { x: end2.x, y: end2.y }\n ];\n insertEdge(\n elem,\n { v: edge.start, w: edge.end, name: edge.id },\n {\n ...edge,\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n },\n void 0,\n \"block\",\n g,\n id\n );\n if (edge.label) {\n await insertEdgeLabel(elem, {\n ...edge,\n label: edge.label,\n labelStyle: \"stroke: #333; stroke-width: 1.5px;fill:none;\",\n arrowTypeEnd: edge.arrowTypeEnd,\n arrowTypeStart: edge.arrowTypeStart,\n points,\n classes: \"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1\"\n });\n positionEdgeLabel(\n { ...edge, x: points[1].x, y: points[1].y },\n {\n originalPath: points\n }\n );\n }\n }\n }\n }\n}\n__name(insertEdges, \"insertEdges\");\n\n// src/diagrams/block/blockRenderer.ts\nvar getClasses2 = /* @__PURE__ */ __name(function(text, diagObj) {\n return diagObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diagObj) {\n const { securityLevel, block: conf } = getConfig();\n const db2 = diagObj.db;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = d3select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : d3select(`[id=\"${id}\"]`);\n const markers2 = [\"point\", \"circle\", \"cross\"];\n markers_default(svg, markers2, diagObj.type, id);\n const bl = db2.getBlocks();\n const blArr = db2.getBlocksFlat();\n const edges = db2.getEdges();\n const nodes = svg.insert(\"g\").attr(\"class\", \"block\");\n await calculateBlockSizes(nodes, bl, db2);\n const bounds = layout(db2);\n await insertBlocks(nodes, bl, db2);\n await insertEdges(nodes, edges, blArr, db2, id);\n if (bounds) {\n const bounds2 = bounds;\n const magicFactor = Math.max(1, Math.round(0.125 * (bounds2.width / bounds2.height)));\n const height = bounds2.height + magicFactor + 10;\n const width = bounds2.width + 10;\n const { useMaxWidth } = conf;\n configureSvgSize(svg, height, width, !!useMaxWidth);\n log.debug(\"Here Bounds\", bounds, bounds2);\n svg.attr(\n \"viewBox\",\n `${bounds2.x - 5} ${bounds2.y - 5} ${bounds2.width + 10} ${bounds2.height + 10}`\n );\n }\n}, \"draw\");\nvar blockRenderer_default = {\n draw,\n getClasses: getClasses2\n};\n\n// src/diagrams/block/blockDiagram.ts\nvar diagram = {\n parser: block_default,\n db: blockDB_default,\n renderer: blockRenderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","num","spaceId","edgeData","id","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","block_default","blockDatabase","edgeList","edgeCount","COLOR_KEYWORD","FILL_KEYWORD","BG_FILL","STYLECLASS_SEP","config","getConfig2","classes","sanitizeText2","txt","common_default","addStyleClass","styleAttributes","foundClass","attrib","fixedAttrib","newStyle2","addStyle2Node","styles","foundBlock","setCssClass","itemIds","cssClassName","trimmedId","populateBlockDatabase","_blockList","parent","blockList","children","columnSettingBlock","b","column","block","log","count","existingBlock","w","j","newBlock","clone","blocks","rootBlock","clear2","clear","typeStr2Type","typeStr","edgeTypeStr2Type","edgeStrToEdgeData","cnt","generateId","setHierarchy","getColumns","blockId","getBlocksFlat","getBlocks","getEdges","getBlock","setBlock","getLogger","getClasses","db","getConfig","blockDB_default","fade","color","opacity","channel2","khroma.channel","g","khroma.rgba","getStyles","options","getIconStyles","styles_default","insertMarkers","elem","markerArray","type","markerName","markers","extension","composition","aggregation","dependency","lollipop","point","circle","cross","barb","markers_default","padding","_b","_a","calculateBlockPosition","columns","position","px","py","getMaxChildSize","maxWidth","maxHeight","child","width","height","x","y","setBlockSizes","db2","siblingWidth","siblingHeight","_c","childSize","numItems","xSize","ySize","childWidth","childHeight","_d","_e","_f","_g","_h","_i","_j","_k","layoutBlocks","widthOfChildren","columnPos","startingPosX","rowPos","width2","_l","_m","_n","halfWidth","columnsFilled","_o","_p","_q","findBounds","minX","minY","maxX","maxY","layout","root","applyStyle","dom","styleFn","addHtmlLabel","node","config2","fo","select","div","label","labelClass","span","sanitizeText","createLabel","_vertexText","style","isTitle","isNode","vertexText","evaluate","replaceIconSubstring","decodeEntities","svgLabel","rows","row","tspan","createLabel_default","addEdgeMarkers","svgPath","edge","url","diagramType","addEdgeMarker","arrowTypesMap","arrowType","endMarkerType","suffix","edgeLabels","terminalLabels","insertEdgeLabel","useHtmlLabels","labelElement","createText","edgeLabel","bbox","dv","select2","startLabelElement","startEdgeLabelLeft","inner","slBox","setTerminalWidth","startEdgeLabelRight","endLabelElement","endEdgeLabelLeft","endEdgeLabelRight","value","positionEdgeLabel","paths","path","siteConfig","subGraphTitleTotalMargin","getSubGraphTitleMargins","el","pos","utils_default","outsideNode","point2","dx","dy","h","intersection","outsidePoint","insidePoint","Q","R","q","res","_x","_y","cutPathAtIntersect","_points","boundaryNode","points","lastPointOutside","isInside","inter","pointPresent","e","insertEdge","clusterDb","graph","pointsHasChanged","tail","head","lineData","curve","curveBasis","getLineFunctionsWithOffset","lineFunction","line","strokeClasses","getUrl","expandAndDeduplicateDirections","directions","uniqueDirections","direction","getArrowPoints","duplicatedDirections","f","midpoint","padding2","intersectNode","intersect_node_default","intersectEllipse","rx","ry","cx","cy","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","sameSign","intersect_line_default","intersect_polygon_default","intersectPolygon","polyPoints","x1","y1","intersections","entry","left","top","intersect","pdx","pdy","distp","qdx","qdy","distq","intersectRect","sx","sy","intersect_rect_default","intersect_default","labelHelper","_classes","classes2","shapeSvg","labelText","textNode","text","halfPadding","select3","images","noImgText","img","setupImage","bodyFontSize","updateNodeBounds","element","insertPolygonShape","d","note","rect2","note_default","formatClass","getClassesFromNode","otherClasses","question","s","questionElem","choice","hexagon","m","hex","block_arrow","blockArrow","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","shape","rect","totalWidth","totalHeight","propKeys","applyNodePropertyBorders","propKey","composite","labelRect","borders","strokeDashArray","addBorder","length","skipBorder","rectWithTitle","innerLine","text2","title","select4","textRows","titleBox","descr","stadium","circle2","circle3","doublecircle","gap","circleGroup","outerCircle","innerCircle","subroutine","start","forkJoin","dir","end","class_box","rowPadding","lineHeight","topLine","bottomLine","labelContainer","verticalPos","hasInterface","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","member","parsedInfo","parsedText","lbl","classMethods","displayText","diffX2","diffX","memberBBox","shapes","nodeElems","insertNode","renderOptions","newEl","target","positionNode","diff","getNodeFromBlock","positioned","vertex","classStr","radius","getStylesFromArray","bounds","calculateBlockSize","nodeEl","boundingBox","obj","insertBlockPositioned","performOperations","blocks2","operation","calculateBlockSizes","insertBlocks","insertEdges","edges","graphlib.Graph","startBlock","endBlock","start2","end2","getClasses2","diagObj","draw","_version","securityLevel","conf","sandboxElement","d3select","svg","bl","blArr","nodes","bounds2","magicFactor","useMaxWidth","configureSvgSize","blockRenderer_default","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js b/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js new file mode 100644 index 000000000000..97d2990a3a72 --- /dev/null +++ b/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js @@ -0,0 +1,11 @@ +import{g as Se,d as De}from"./chunk-TZMSLE5B.js";import{_ as g,s as Pe,g as Be,a as Ie,b as Me,c as Bt,d as jt,l as de,e as Le,f as Ne,h as Tt,i as ge,j as Ye,w as je,k as $t,m as fe}from"./index.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8ba1f31e-b49e-4d04-9bea-6d51428fbea2",e._sentryDebugIdIdentifier="sentry-dbid-8ba1f31e-b49e-4d04-9bea-6d51428fbea2")})()}catch{}var Ft=(function(){var e=g(function(_t,x,m,v){for(m=m||{},v=_t.length;v--;m[_t[v]]=x);return m},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],a=[1,28],r=[1,63],n=[1,64],i=[1,65],u=[1,66],d=[1,67],f=[1,68],y=[1,69],E=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],at=[1,44],it=[1,45],nt=[1,46],rt=[1,47],st=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Qt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],St=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],k=[1,82],A=[1,83],C=[1,84],w=[1,85],T=[12,14,42],le=[12,14,33,42],Mt=[12,14,33,42,76,77,79,80],vt=[12,33],Ht=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],qt={trace:g(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:g(function(x,m,v,b,R,h,Dt){var p=h.length-1;switch(R){case 3:b.setDirection("TB");break;case 4:b.setDirection("BT");break;case 5:b.setDirection("RL");break;case 6:b.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:b.setC4Type(h[p-3]);break;case 19:b.setTitle(h[p].substring(6)),this.$=h[p].substring(6);break;case 20:b.setAccDescription(h[p].substring(15)),this.$=h[p].substring(15);break;case 21:this.$=h[p].trim(),b.setTitle(this.$);break;case 22:case 23:this.$=h[p].trim(),b.setAccDescription(this.$);break;case 28:h[p].splice(2,0,"ENTERPRISE"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 29:h[p].splice(2,0,"SYSTEM"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 30:b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 31:h[p].splice(2,0,"CONTAINER"),b.addContainerBoundary(...h[p]),this.$=h[p];break;case 32:b.addDeploymentNode("node",...h[p]),this.$=h[p];break;case 33:b.addDeploymentNode("nodeL",...h[p]),this.$=h[p];break;case 34:b.addDeploymentNode("nodeR",...h[p]),this.$=h[p];break;case 35:b.popBoundaryParseStack();break;case 39:b.addPersonOrSystem("person",...h[p]),this.$=h[p];break;case 40:b.addPersonOrSystem("external_person",...h[p]),this.$=h[p];break;case 41:b.addPersonOrSystem("system",...h[p]),this.$=h[p];break;case 42:b.addPersonOrSystem("system_db",...h[p]),this.$=h[p];break;case 43:b.addPersonOrSystem("system_queue",...h[p]),this.$=h[p];break;case 44:b.addPersonOrSystem("external_system",...h[p]),this.$=h[p];break;case 45:b.addPersonOrSystem("external_system_db",...h[p]),this.$=h[p];break;case 46:b.addPersonOrSystem("external_system_queue",...h[p]),this.$=h[p];break;case 47:b.addContainer("container",...h[p]),this.$=h[p];break;case 48:b.addContainer("container_db",...h[p]),this.$=h[p];break;case 49:b.addContainer("container_queue",...h[p]),this.$=h[p];break;case 50:b.addContainer("external_container",...h[p]),this.$=h[p];break;case 51:b.addContainer("external_container_db",...h[p]),this.$=h[p];break;case 52:b.addContainer("external_container_queue",...h[p]),this.$=h[p];break;case 53:b.addComponent("component",...h[p]),this.$=h[p];break;case 54:b.addComponent("component_db",...h[p]),this.$=h[p];break;case 55:b.addComponent("component_queue",...h[p]),this.$=h[p];break;case 56:b.addComponent("external_component",...h[p]),this.$=h[p];break;case 57:b.addComponent("external_component_db",...h[p]),this.$=h[p];break;case 58:b.addComponent("external_component_queue",...h[p]),this.$=h[p];break;case 60:b.addRel("rel",...h[p]),this.$=h[p];break;case 61:b.addRel("birel",...h[p]),this.$=h[p];break;case 62:b.addRel("rel_u",...h[p]),this.$=h[p];break;case 63:b.addRel("rel_d",...h[p]),this.$=h[p];break;case 64:b.addRel("rel_l",...h[p]),this.$=h[p];break;case 65:b.addRel("rel_r",...h[p]),this.$=h[p];break;case 66:b.addRel("rel_b",...h[p]),this.$=h[p];break;case 67:h[p].splice(0,1),b.addRel("rel",...h[p]),this.$=h[p];break;case 68:b.updateElStyle("update_el_style",...h[p]),this.$=h[p];break;case 69:b.updateRelStyle("update_rel_style",...h[p]),this.$=h[p];break;case 70:b.updateLayoutConfig("update_layout_config",...h[p]),this.$=h[p];break;case 71:this.$=[h[p]];break;case 72:h[p].unshift(h[p-1]),this.$=h[p];break;case 73:case 75:this.$=h[p].trim();break;case 74:let Et={};Et[h[p-1].trim()]=h[p].trim(),this.$=Et;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:r,36:n,37:i,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Qt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(St,[2,19]),e(St,[2,20]),{25:[1,78]},{27:[1,79]},e(St,[2,23]),{35:80,75:81,76:k,77:A,79:C,80:w},{35:86,75:81,76:k,77:A,79:C,80:w},{35:87,75:81,76:k,77:A,79:C,80:w},{35:88,75:81,76:k,77:A,79:C,80:w},{35:89,75:81,76:k,77:A,79:C,80:w},{35:90,75:81,76:k,77:A,79:C,80:w},{35:91,75:81,76:k,77:A,79:C,80:w},{35:92,75:81,76:k,77:A,79:C,80:w},{35:93,75:81,76:k,77:A,79:C,80:w},{35:94,75:81,76:k,77:A,79:C,80:w},{35:95,75:81,76:k,77:A,79:C,80:w},{35:96,75:81,76:k,77:A,79:C,80:w},{35:97,75:81,76:k,77:A,79:C,80:w},{35:98,75:81,76:k,77:A,79:C,80:w},{35:99,75:81,76:k,77:A,79:C,80:w},{35:100,75:81,76:k,77:A,79:C,80:w},{35:101,75:81,76:k,77:A,79:C,80:w},{35:102,75:81,76:k,77:A,79:C,80:w},{35:103,75:81,76:k,77:A,79:C,80:w},{35:104,75:81,76:k,77:A,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:k,77:A,79:C,80:w},{35:106,75:81,76:k,77:A,79:C,80:w},{35:107,75:81,76:k,77:A,79:C,80:w},{35:108,75:81,76:k,77:A,79:C,80:w},{35:109,75:81,76:k,77:A,79:C,80:w},{35:110,75:81,76:k,77:A,79:C,80:w},{35:111,75:81,76:k,77:A,79:C,80:w},{35:112,75:81,76:k,77:A,79:C,80:w},{35:113,75:81,76:k,77:A,79:C,80:w},{35:114,75:81,76:k,77:A,79:C,80:w},{35:115,75:81,76:k,77:A,79:C,80:w},{20:116,29:49,30:61,32:62,34:r,36:n,37:i,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:k,77:A,79:C,80:w},{35:120,75:81,76:k,77:A,79:C,80:w},{35:121,75:81,76:k,77:A,79:C,80:w},{35:122,75:81,76:k,77:A,79:C,80:w},{35:123,75:81,76:k,77:A,79:C,80:w},{35:124,75:81,76:k,77:A,79:C,80:w},{35:125,75:81,76:k,77:A,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Qt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:a}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:a,34:r,36:n,37:i,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(St,[2,21]),e(St,[2,22]),e(T,[2,39]),e(le,[2,71],{75:81,35:132,76:k,77:A,79:C,80:w}),e(Mt,[2,73]),{78:[1,133]},e(Mt,[2,75]),e(Mt,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Qt,[2,18]),e(Ct,[2,38]),e(le,[2,72]),e(Mt,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Ht,[2,25]),e(Ht,[2,26],{12:[1,138]}),e(Ht,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:g(function(x,m){if(m.recoverable)this.trace(x);else{var v=new Error(x);throw v.hash=m,v}},"parseError"),parse:g(function(x){var m=this,v=[0],b=[],R=[null],h=[],Dt=this.table,p="",Et=0,oe=0,we=2,ce=1,Te=h.slice.call(arguments,1),D=Object.create(this.lexer),kt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(kt.yy[Gt]=this.yy[Gt]);D.setInput(x,kt.yy),kt.yy.lexer=D,kt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Kt=D.yylloc;h.push(Kt);var Oe=D.options&&D.options.ranges;typeof kt.yy.parseError=="function"?this.parseError=kt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(L){v.length=v.length-2*L,R.length=R.length-L,h.length=h.length-L}g(Re,"popStack");function he(){var L;return L=b.pop()||D.lex()||ce,typeof L!="number"&&(L instanceof Array&&(b=L,L=b.pop()),L=m.symbols_[L]||L),L}g(he,"lex");for(var I,At,N,Jt,wt={},Nt,W,ue,Yt;;){if(At=v[v.length-1],this.defaultActions[At]?N=this.defaultActions[At]:((I===null||typeof I>"u")&&(I=he()),N=Dt[At]&&Dt[At][I]),typeof N>"u"||!N.length||!N[0]){var Zt="";Yt=[];for(Nt in Dt[At])this.terminals_[Nt]&&Nt>we&&Yt.push("'"+this.terminals_[Nt]+"'");D.showPosition?Zt="Parse error on line "+(Et+1)+`: +`+D.showPosition()+` +Expecting `+Yt.join(", ")+", got '"+(this.terminals_[I]||I)+"'":Zt="Parse error on line "+(Et+1)+": Unexpected "+(I==ce?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Zt,{text:D.match,token:this.terminals_[I]||I,line:D.yylineno,loc:Kt,expected:Yt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+At+", token: "+I);switch(N[0]){case 1:v.push(I),R.push(D.yytext),h.push(D.yylloc),v.push(N[1]),I=null,oe=D.yyleng,p=D.yytext,Et=D.yylineno,Kt=D.yylloc;break;case 2:if(W=this.productions_[N[1]][1],wt.$=R[R.length-W],wt._$={first_line:h[h.length-(W||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(W||1)].first_column,last_column:h[h.length-1].last_column},Oe&&(wt._$.range=[h[h.length-(W||1)].range[0],h[h.length-1].range[1]]),Jt=this.performAction.apply(wt,[p,oe,Et,kt.yy,N[1],R,h].concat(Te)),typeof Jt<"u")return Jt;W&&(v=v.slice(0,-1*W*2),R=R.slice(0,-1*W),h=h.slice(0,-1*W)),v.push(this.productions_[N[1]][0]),R.push(wt.$),h.push(wt._$),ue=Dt[v[v.length-2]][v[v.length-1]],v.push(ue);break;case 3:return!0}}return!0},"parse")},Ce=(function(){var _t={EOF:1,parseError:g(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:g(function(x,m){return this.yy=m||this.yy||{},this._input=x,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:g(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var m=x.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:g(function(x){var m=x.length,v=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===b.length?this.yylloc.first_column:0)+b[b.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:g(function(){return this._more=!0,this},"more"),reject:g(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:g(function(x){this.unput(this.match.slice(x))},"less"),pastInput:g(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:g(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:g(function(){var x=this.pastInput(),m=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:g(function(x,m){var v,b,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),b=x[0].match(/(?:\r\n?|\n).*/g),b&&(this.yylineno+=b.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:b?b[b.length-1].length-b[b.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(x[0].length),this.matched+=x[0],v=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var h in R)this[h]=R[h];return!1}return!1},"test_match"),next:g(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,m,v,b;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),h=0;hm[0].length)){if(m=v,b=h,this.options.backtrack_lexer){if(x=this.test_match(v,R[h]),x!==!1)return x;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(x=this.test_match(m,R[b]),x!==!1?x:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:g(function(){var m=this.next();return m||this.lex()},"lex"),begin:g(function(m){this.conditionStack.push(m)},"begin"),popState:g(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:g(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:g(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:g(function(m){this.begin(m)},"pushState"),stateStackSize:g(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:g(function(m,v,b,R){switch(b){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return _t})();qt.lexer=Ce;function Lt(){this.yy={}}return g(Lt,"Parser"),Lt.prototype=qt,qt.Parser=Lt,new Lt})();Ft.parser=Ft;var Ue=Ft,V=[],xt=[""],B="global",F="",X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],It=[],ie="",ne=!1,Vt=4,zt=2,be,Fe=g(function(){return be},"getC4Type"),Ve=g(function(e){be=ge(e,Bt())},"setC4Type"),ze=g(function(e,t,s,o,l,a,r,n,i){if(e==null||t===void 0||t===null||s===void 0||s===null||o===void 0||o===null)return;let u={};const d=It.find(f=>f.from===t&&f.to===s);if(d?u=d:It.push(u),u.type=e,u.from=t,u.to=s,u.label={text:o},l==null)u.techn={text:""};else if(typeof l=="object"){let[f,y]=Object.entries(l)[0];u[f]={text:y}}else u.techn={text:l};if(a==null)u.descr={text:""};else if(typeof a=="object"){let[f,y]=Object.entries(a)[0];u[f]={text:y}}else u.descr={text:a};if(typeof r=="object"){let[f,y]=Object.entries(r)[0];u[f]=y}else u.sprite=r;if(typeof n=="object"){let[f,y]=Object.entries(n)[0];u[f]=y}else u.tags=n;if(typeof i=="object"){let[f,y]=Object.entries(i)[0];u[f]=y}else u.link=i;u.wrap=mt()},"addRel"),Xe=g(function(e,t,s,o,l,a,r){if(t===null||s===null)return;let n={};const i=V.find(u=>u.alias===t);if(i&&t===i.alias?n=i:(n.alias=t,V.push(n)),s==null?n.label={text:""}:n.label={text:s},o==null)n.descr={text:""};else if(typeof o=="object"){let[u,d]=Object.entries(o)[0];n[u]={text:d}}else n.descr={text:o};if(typeof l=="object"){let[u,d]=Object.entries(l)[0];n[u]=d}else n.sprite=l;if(typeof a=="object"){let[u,d]=Object.entries(a)[0];n[u]=d}else n.tags=a;if(typeof r=="object"){let[u,d]=Object.entries(r)[0];n[u]=d}else n.link=r;n.typeC4Shape={text:e},n.parentBoundary=B,n.wrap=mt()},"addPersonOrSystem"),We=g(function(e,t,s,o,l,a,r,n){if(t===null||s===null)return;let i={};const u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,f]=Object.entries(o)[0];i[d]={text:f}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,f]=Object.entries(l)[0];i[d]={text:f}}else i.descr={text:l};if(typeof a=="object"){let[d,f]=Object.entries(a)[0];i[d]=f}else i.sprite=a;if(typeof r=="object"){let[d,f]=Object.entries(r)[0];i[d]=f}else i.tags=r;if(typeof n=="object"){let[d,f]=Object.entries(n)[0];i[d]=f}else i.link=n;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=B},"addContainer"),Qe=g(function(e,t,s,o,l,a,r,n){if(t===null||s===null)return;let i={};const u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,f]=Object.entries(o)[0];i[d]={text:f}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,f]=Object.entries(l)[0];i[d]={text:f}}else i.descr={text:l};if(typeof a=="object"){let[d,f]=Object.entries(a)[0];i[d]=f}else i.sprite=a;if(typeof r=="object"){let[d,f]=Object.entries(r)[0];i[d]=f}else i.tags=r;if(typeof n=="object"){let[d,f]=Object.entries(n)[0];i[d]=f}else i.link=n;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=B},"addComponent"),He=g(function(e,t,s,o,l){if(e===null||t===null)return;let a={};const r=X.find(n=>n.alias===e);if(r&&e===r.alias?a=r:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"system"};else if(typeof s=="object"){let[n,i]=Object.entries(s)[0];a[n]={text:i}}else a.type={text:s};if(typeof o=="object"){let[n,i]=Object.entries(o)[0];a[n]=i}else a.tags=o;if(typeof l=="object"){let[n,i]=Object.entries(l)[0];a[n]=i}else a.link=l;a.parentBoundary=B,a.wrap=mt(),F=B,B=e,xt.push(F)},"addPersonOrSystemBoundary"),qe=g(function(e,t,s,o,l){if(e===null||t===null)return;let a={};const r=X.find(n=>n.alias===e);if(r&&e===r.alias?a=r:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"container"};else if(typeof s=="object"){let[n,i]=Object.entries(s)[0];a[n]={text:i}}else a.type={text:s};if(typeof o=="object"){let[n,i]=Object.entries(o)[0];a[n]=i}else a.tags=o;if(typeof l=="object"){let[n,i]=Object.entries(l)[0];a[n]=i}else a.link=l;a.parentBoundary=B,a.wrap=mt(),F=B,B=e,xt.push(F)},"addContainerBoundary"),Ge=g(function(e,t,s,o,l,a,r,n){if(t===null||s===null)return;let i={};const u=X.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,X.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.type={text:"node"};else if(typeof o=="object"){let[d,f]=Object.entries(o)[0];i[d]={text:f}}else i.type={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,f]=Object.entries(l)[0];i[d]={text:f}}else i.descr={text:l};if(typeof r=="object"){let[d,f]=Object.entries(r)[0];i[d]=f}else i.tags=r;if(typeof n=="object"){let[d,f]=Object.entries(n)[0];i[d]=f}else i.link=n;i.nodeType=e,i.parentBoundary=B,i.wrap=mt(),F=B,B=t,xt.push(F)},"addDeploymentNode"),Ke=g(function(){B=F,xt.pop(),F=xt.pop(),xt.push(F)},"popBoundaryParseStack"),Je=g(function(e,t,s,o,l,a,r,n,i,u,d){let f=V.find(y=>y.alias===t);if(!(f===void 0&&(f=X.find(y=>y.alias===t),f===void 0))){if(s!=null)if(typeof s=="object"){let[y,E]=Object.entries(s)[0];f[y]=E}else f.bgColor=s;if(o!=null)if(typeof o=="object"){let[y,E]=Object.entries(o)[0];f[y]=E}else f.fontColor=o;if(l!=null)if(typeof l=="object"){let[y,E]=Object.entries(l)[0];f[y]=E}else f.borderColor=l;if(a!=null)if(typeof a=="object"){let[y,E]=Object.entries(a)[0];f[y]=E}else f.shadowing=a;if(r!=null)if(typeof r=="object"){let[y,E]=Object.entries(r)[0];f[y]=E}else f.shape=r;if(n!=null)if(typeof n=="object"){let[y,E]=Object.entries(n)[0];f[y]=E}else f.sprite=n;if(i!=null)if(typeof i=="object"){let[y,E]=Object.entries(i)[0];f[y]=E}else f.techn=i;if(u!=null)if(typeof u=="object"){let[y,E]=Object.entries(u)[0];f[y]=E}else f.legendText=u;if(d!=null)if(typeof d=="object"){let[y,E]=Object.entries(d)[0];f[y]=E}else f.legendSprite=d}},"updateElStyle"),Ze=g(function(e,t,s,o,l,a,r){const n=It.find(i=>i.from===t&&i.to===s);if(n!==void 0){if(o!=null)if(typeof o=="object"){let[i,u]=Object.entries(o)[0];n[i]=u}else n.textColor=o;if(l!=null)if(typeof l=="object"){let[i,u]=Object.entries(l)[0];n[i]=u}else n.lineColor=l;if(a!=null)if(typeof a=="object"){let[i,u]=Object.entries(a)[0];n[i]=parseInt(u)}else n.offsetX=parseInt(a);if(r!=null)if(typeof r=="object"){let[i,u]=Object.entries(r)[0];n[i]=parseInt(u)}else n.offsetY=parseInt(r)}},"updateRelStyle"),$e=g(function(e,t,s){let o=Vt,l=zt;if(typeof t=="object"){const a=Object.values(t)[0];o=parseInt(a)}else o=parseInt(t);if(typeof s=="object"){const a=Object.values(s)[0];l=parseInt(a)}else l=parseInt(s);o>=1&&(Vt=o),l>=1&&(zt=l)},"updateLayoutConfig"),t0=g(function(){return Vt},"getC4ShapeInRow"),e0=g(function(){return zt},"getC4BoundaryInRow"),a0=g(function(){return B},"getCurrentBoundaryParse"),i0=g(function(){return F},"getParentBoundaryParse"),_e=g(function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),n0=g(function(e){return V.find(t=>t.alias===e)},"getC4Shape"),r0=g(function(e){return Object.keys(_e(e))},"getC4ShapeKeys"),xe=g(function(e){return e==null?X:X.filter(t=>t.parentBoundary===e)},"getBoundaries"),s0=xe,l0=g(function(){return It},"getRels"),o0=g(function(){return ie},"getTitle"),c0=g(function(e){ne=e},"setWrap"),mt=g(function(){return ne},"autoWrap"),h0=g(function(){V=[],X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],F="",B="global",xt=[""],It=[],xt=[""],ie="",ne=!1,Vt=4,zt=2},"clear"),u0={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},d0={FILLED:0,OPEN:1},f0={LEFTOF:0,RIGHTOF:1,OVER:2},p0=g(function(e){ie=ge(e,Bt())},"setTitle"),te={addPersonOrSystem:Xe,addPersonOrSystemBoundary:He,addContainer:We,addContainerBoundary:qe,addComponent:Qe,addDeploymentNode:Ge,popBoundaryParseStack:Ke,addRel:ze,updateElStyle:Je,updateRelStyle:Ze,updateLayoutConfig:$e,autoWrap:mt,setWrap:c0,getC4ShapeArray:_e,getC4Shape:n0,getC4ShapeKeys:r0,getBoundaries:xe,getBoundarys:s0,getCurrentBoundaryParse:a0,getParentBoundaryParse:i0,getRels:l0,getTitle:o0,getC4Type:Fe,getC4ShapeInRow:t0,getC4BoundaryInRow:e0,setAccTitle:Me,getAccTitle:Ie,getAccDescription:Be,setAccDescription:Pe,getConfig:g(()=>Bt().c4,"getConfig"),clear:h0,LINETYPE:u0,ARROWTYPE:d0,PLACEMENT:f0,setTitle:p0,setC4Type:Ve},re=g(function(e,t){return De(e,t)},"drawRect"),me=g(function(e,t,s,o,l,a){const r=e.append("image");r.attr("width",t),r.attr("height",s),r.attr("x",o),r.attr("y",l);let n=a.startsWith("data:image/png;base64")?a:Ye.sanitizeUrl(a);r.attr("xlink:href",n)},"drawImage"),y0=g((e,t,s)=>{const o=e.append("g");let l=0;for(let a of t){let r=a.textColor?a.textColor:"#444444",n=a.lineColor?a.lineColor:"#444444",i=a.offsetX?parseInt(a.offsetX):0,u=a.offsetY?parseInt(a.offsetY):0,d="";if(l===0){let y=o.append("line");y.attr("x1",a.startPoint.x),y.attr("y1",a.startPoint.y),y.attr("x2",a.endPoint.x),y.attr("y2",a.endPoint.y),y.attr("stroke-width","1"),y.attr("stroke",n),y.style("fill","none"),a.type!=="rel_b"&&y.attr("marker-end","url("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&y.attr("marker-start","url("+d+"#arrowend)"),l=-1}else{let y=o.append("path");y.attr("fill","none").attr("stroke-width","1").attr("stroke",n).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&y.attr("marker-end","url("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&y.attr("marker-start","url("+d+"#arrowend)")}let f=s.messageFont();Q(s)(a.label.text,o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+u,a.label.width,a.label.height,{fill:r},f),a.techn&&a.techn.text!==""&&(f=s.messageFont(),Q(s)("["+a.techn.text+"]",o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+s.messageFontSize+5+u,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:r,"font-style":"italic"},f))}},"drawRels"),g0=g(function(e,t,s){const o=e.append("g");let l=t.bgColor?t.bgColor:"none",a=t.borderColor?t.borderColor:"#444444",r=t.fontColor?t.fontColor:"black",n={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(n={"stroke-width":1});let i={x:t.x,y:t.y,fill:l,stroke:a,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:n};re(o,i);let u=s.boundaryFont();u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=r,Q(s)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},u),t.type&&t.type.text!==""&&(u=s.boundaryFont(),u.fontColor=r,Q(s)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},u)),t.descr&&t.descr.text!==""&&(u=s.boundaryFont(),u.fontSize=u.fontSize-2,u.fontColor=r,Q(s)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},u))},"drawBoundary"),b0=g(function(e,t,s){var f;let o=t.bgColor?t.bgColor:s[t.typeC4Shape.text+"_bg_color"],l=t.borderColor?t.borderColor:s[t.typeC4Shape.text+"_border_color"],a=t.fontColor?t.fontColor:"#FFFFFF",r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const n=e.append("g");n.attr("class","person-man");const i=Se();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":i.x=t.x,i.y=t.y,i.fill=o,i.width=t.width,i.height=t.height,i.stroke=l,i.rx=2.5,i.ry=2.5,i.attrs={"stroke-width":.5},re(n,i);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":n.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":n.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let u=w0(s,t.typeC4Shape.text);switch(n.append("text").attr("fill",a).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":me(n,48,48,t.x+t.width/2-24,t.y+t.image.Y,r);break}let d=s[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=a,Q(s)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:a},d),d=s[t.typeC4Shape.text+"Font"](),d.fontColor=a,t.techn&&((f=t.techn)==null?void 0:f.text)!==""?Q(s)(t.techn.text,n,t.x,t.y+t.techn.Y,t.width,t.height,{fill:a,"font-style":"italic"},d):t.type&&t.type.text!==""&&Q(s)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:a,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=s.personFont(),d.fontColor=a,Q(s)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:a},d)),t.height},"drawC4Shape"),_0=g(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),x0=g(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),m0=g(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),v0=g(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),E0=g(function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),k0=g(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),A0=g(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),C0=g(function(e){const s=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);s.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),s.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),w0=g((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"getC4ShapeFont"),Q=(function(){function e(l,a,r,n,i,u,d){const f=a.append("text").attr("x",r+i/2).attr("y",n+u/2+5).style("text-anchor","middle").text(l);o(f,d)}g(e,"byText");function t(l,a,r,n,i,u,d,f){const{fontSize:y,fontFamily:E,fontWeight:O}=f,S=l.split($t.lineBreakRegex);for(let P=0;P=this.data.widthLimit||o>=this.data.widthLimit||this.nextData.cnt>ve)&&(s=this.nextData.startx+t.margin+_.nextLinePaddingX,l=this.nextData.stopy+t.margin*2,this.nextData.stopx=o=s+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=l+t.height,this.nextData.cnt=1),t.x=s,t.y=l,this.updateVal(this.data,"startx",s,Math.min),this.updateVal(this.data,"starty",l,Math.min),this.updateVal(this.data,"stopx",o,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",s,Math.min),this.updateVal(this.nextData,"starty",l,Math.min),this.updateVal(this.nextData,"stopx",o,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},ae(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},g(Ot,"Bounds"),Ot),ae=g(function(e){Ne(_,e),e.fontFamily&&(_.personFontFamily=_.systemFontFamily=_.messageFontFamily=e.fontFamily),e.fontSize&&(_.personFontSize=_.systemFontSize=_.messageFontSize=e.fontSize),e.fontWeight&&(_.personFontWeight=_.systemFontWeight=_.messageFontWeight=e.fontWeight)},"setConf"),Pt=g((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"c4ShapeFont"),Ut=g(e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),"boundaryFont"),T0=g(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont");function j(e,t,s,o,l){if(!t[e].width)if(s)t[e].text=je(t[e].text,l,o),t[e].textLines=t[e].text.split($t.lineBreakRegex).length,t[e].width=l,t[e].height=fe(t[e].text,o);else{let a=t[e].text.split($t.lineBreakRegex);t[e].textLines=a.length;let r=0;t[e].height=0,t[e].width=0;for(const n of a)t[e].width=Math.max(Tt(n,o),t[e].width),r=fe(n,o),t[e].height=t[e].height+r}}g(j,"calcC4ShapeTextWH");var ke=g(function(e,t,s){t.x=s.data.startx,t.y=s.data.starty,t.width=s.data.stopx-s.data.startx,t.height=s.data.stopy-s.data.starty,t.label.y=_.c4ShapeMargin-35;let o=t.wrap&&_.wrap,l=Ut(_);l.fontSize=l.fontSize+2,l.fontWeight="bold";let a=Tt(t.label.text,l);j("label",t,o,l,a),z.drawBoundary(e,t,_)},"drawBoundary"),Ae=g(function(e,t,s,o){let l=0;for(const a of o){l=0;const r=s[a];let n=Pt(_,r.typeC4Shape.text);switch(n.fontSize=n.fontSize-2,r.typeC4Shape.width=Tt("«"+r.typeC4Shape.text+"»",n),r.typeC4Shape.height=n.fontSize+2,r.typeC4Shape.Y=_.c4ShapePadding,l=r.typeC4Shape.Y+r.typeC4Shape.height-4,r.image={width:0,height:0,Y:0},r.typeC4Shape.text){case"person":case"external_person":r.image.width=48,r.image.height=48,r.image.Y=l,l=r.image.Y+r.image.height;break}r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=l,l=r.image.Y+r.image.height);let i=r.wrap&&_.wrap,u=_.width-_.c4ShapePadding*2,d=Pt(_,r.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",r,i,d,u),r.label.Y=l+8,l=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let E=Pt(_,r.typeC4Shape.text);j("type",r,i,E,u),r.type.Y=l+5,l=r.type.Y+r.type.height}else if(r.techn&&r.techn.text!==""){r.techn.text="["+r.techn.text+"]";let E=Pt(_,r.techn.text);j("techn",r,i,E,u),r.techn.Y=l+5,l=r.techn.Y+r.techn.height}let f=l,y=r.label.width;if(r.descr&&r.descr.text!==""){let E=Pt(_,r.typeC4Shape.text);j("descr",r,i,E,u),r.descr.Y=l+20,l=r.descr.Y+r.descr.height,y=Math.max(r.label.width,r.descr.width),f=l-r.descr.textLines*5}y=y+_.c4ShapePadding,r.width=Math.max(r.width||_.width,y,_.width),r.height=Math.max(r.height||_.height,f,_.height),r.margin=r.margin||_.c4ShapeMargin,e.insert(r),z.drawC4Shape(t,r,_)}e.bumpLastMargin(_.c4ShapeMargin)},"drawC4ShapeArray"),Rt,Y=(Rt=class{constructor(t,s){this.x=t,this.y=s}},g(Rt,"Point"),Rt),pe=g(function(e,t){let s=e.x,o=e.y,l=t.x,a=t.y,r=s+e.width/2,n=o+e.height/2,i=Math.abs(s-l),u=Math.abs(o-a),d=u/i,f=e.height/e.width,y=null;return o==a&&sl?y=new Y(s,n):s==l&&oa&&(y=new Y(r,o)),s>l&&o=d?y=new Y(s,n+d*e.width/2):y=new Y(r-i/u*e.height/2,o+e.height):s=d?y=new Y(s+e.width,n+d*e.width/2):y=new Y(r+i/u*e.height/2,o+e.height):sa?f>=d?y=new Y(s+e.width,n-d*e.width/2):y=new Y(r+e.height/2*i/u,o):s>l&&o>a&&(f>=d?y=new Y(s,n-e.width/2*d):y=new Y(r-e.height/2*i/u,o)),y},"getIntersectPoint"),O0=g(function(e,t){let s={x:0,y:0};s.x=t.x+t.width/2,s.y=t.y+t.height/2;let o=pe(e,s);s.x=e.x+e.width/2,s.y=e.y+e.height/2;let l=pe(t,s);return{startPoint:o,endPoint:l}},"getIntersectPoints"),R0=g(function(e,t,s,o){let l=0;for(let a of t){l=l+1;let r=a.wrap&&_.wrap,n=T0(_);o.db.getC4Type()==="C4Dynamic"&&(a.label.text=l+": "+a.label.text);let u=Tt(a.label.text,n);j("label",a,r,n,u),a.techn&&a.techn.text!==""&&(u=Tt(a.techn.text,n),j("techn",a,r,n,u)),a.descr&&a.descr.text!==""&&(u=Tt(a.descr.text,n),j("descr",a,r,n,u));let d=s(a.from),f=s(a.to),y=O0(d,f);a.startPoint=y.startPoint,a.endPoint=y.endPoint}z.drawRels(e,t,_)},"drawRels");function se(e,t,s,o,l){let a=new Ee(l);a.data.widthLimit=s.data.widthLimit/Math.min(ee,o.length);for(let[r,n]of o.entries()){let i=0;n.image={width:0,height:0,Y:0},n.sprite&&(n.image.width=48,n.image.height=48,n.image.Y=i,i=n.image.Y+n.image.height);let u=n.wrap&&_.wrap,d=Ut(_);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",n,u,d,a.data.widthLimit),n.label.Y=i+8,i=n.label.Y+n.label.height,n.type&&n.type.text!==""){n.type.text="["+n.type.text+"]";let O=Ut(_);j("type",n,u,O,a.data.widthLimit),n.type.Y=i+5,i=n.type.Y+n.type.height}if(n.descr&&n.descr.text!==""){let O=Ut(_);O.fontSize=O.fontSize-2,j("descr",n,u,O,a.data.widthLimit),n.descr.Y=i+20,i=n.descr.Y+n.descr.height}if(r==0||r%ee===0){let O=s.data.startx+_.diagramMarginX,S=s.data.stopy+_.diagramMarginY+i;a.setData(O,O,S,S)}else{let O=a.data.stopx!==a.data.startx?a.data.stopx+_.diagramMarginX:a.data.startx,S=a.data.starty;a.setData(O,O,S,S)}a.name=n.alias;let f=l.db.getC4ShapeArray(n.alias),y=l.db.getC4ShapeKeys(n.alias);y.length>0&&Ae(a,e,f,y),t=n.alias;let E=l.db.getBoundaries(t);E.length>0&&se(e,t,a,E,l),n.alias!=="global"&&ke(e,n,a),s.data.stopy=Math.max(a.data.stopy+_.c4ShapeMargin,s.data.stopy),s.data.stopx=Math.max(a.data.stopx+_.c4ShapeMargin,s.data.stopx),Xt=Math.max(Xt,s.data.stopx),Wt=Math.max(Wt,s.data.stopy)}}g(se,"drawInsideBoundary");var S0=g(function(e,t,s,o){_=Bt().c4;const l=Bt().securityLevel;let a;l==="sandbox"&&(a=jt("#i"+t));const r=l==="sandbox"?jt(a.nodes()[0].contentDocument.body):jt("body");let n=o.db;o.db.setWrap(_.wrap),ve=n.getC4ShapeInRow(),ee=n.getC4BoundaryInRow(),de.debug(`C:${JSON.stringify(_,null,2)}`);const i=l==="sandbox"?r.select(`[id="${t}"]`):jt(`[id="${t}"]`);z.insertComputerIcon(i),z.insertDatabaseIcon(i),z.insertClockIcon(i);let u=new Ee(o);u.setData(_.diagramMarginX,_.diagramMarginX,_.diagramMarginY,_.diagramMarginY),u.data.widthLimit=screen.availWidth,Xt=_.diagramMarginX,Wt=_.diagramMarginY;const d=o.db.getTitle();let f=o.db.getBoundaries("");se(i,"",u,f,o),z.insertArrowHead(i),z.insertArrowEnd(i),z.insertArrowCrossHead(i),z.insertArrowFilledHead(i),R0(i,o.db.getRels(),o.db.getC4Shape,o),u.data.stopx=Xt,u.data.stopy=Wt;const y=u.data;let O=y.stopy-y.starty+2*_.diagramMarginY;const P=y.stopx-y.startx+2*_.diagramMarginX;d&&i.append("text").text(d).attr("x",(y.stopx-y.startx)/2-4*_.diagramMarginX).attr("y",y.starty+_.diagramMarginY),Le(i,O,P,_.useMaxWidth);const M=d?60:0;i.attr("viewBox",y.startx-_.diagramMarginX+" -"+(_.diagramMarginY+M)+" "+P+" "+(O+M)),de.debug("models:",y)},"draw"),ye={drawPersonOrSystemArray:Ae,drawBoundary:ke,setConf:ae,draw:S0},D0=g(e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,"getStyles"),P0=D0,L0={parser:Ue,db:te,renderer:ye,styles:P0,init:g(({c4:e,wrap:t})=>{ye.setConf(e),te.setWrap(t)},"init")};export{L0 as diagram}; +//# sourceMappingURL=c4Diagram-FPNF74CW.js.map diff --git a/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js.map b/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js.map new file mode 100644 index 000000000000..2259896fe193 --- /dev/null +++ b/extensions/continue/gui/assets/c4Diagram-FPNF74CW.js.map @@ -0,0 +1 @@ +{"version":3,"file":"c4Diagram-FPNF74CW.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-FPNF74CW.mjs"],"sourcesContent":["import {\n drawRect,\n getNoteRect\n} from \"./chunk-TZMSLE5B.mjs\";\nimport {\n calculateTextHeight,\n calculateTextWidth,\n wrapLabel\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n assignWithDepth_default,\n common_default,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n sanitizeText,\n setAccDescription,\n setAccTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/c4/parser/c4Diagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"direction\": 5, \"direction_tb\": 6, \"direction_bt\": 7, \"direction_rl\": 8, \"direction_lr\": 9, \"graphConfig\": 10, \"C4_CONTEXT\": 11, \"NEWLINE\": 12, \"statements\": 13, \"EOF\": 14, \"C4_CONTAINER\": 15, \"C4_COMPONENT\": 16, \"C4_DYNAMIC\": 17, \"C4_DEPLOYMENT\": 18, \"otherStatements\": 19, \"diagramStatements\": 20, \"otherStatement\": 21, \"title\": 22, \"accDescription\": 23, \"acc_title\": 24, \"acc_title_value\": 25, \"acc_descr\": 26, \"acc_descr_value\": 27, \"acc_descr_multiline_value\": 28, \"boundaryStatement\": 29, \"boundaryStartStatement\": 30, \"boundaryStopStatement\": 31, \"boundaryStart\": 32, \"LBRACE\": 33, \"ENTERPRISE_BOUNDARY\": 34, \"attributes\": 35, \"SYSTEM_BOUNDARY\": 36, \"BOUNDARY\": 37, \"CONTAINER_BOUNDARY\": 38, \"NODE\": 39, \"NODE_L\": 40, \"NODE_R\": 41, \"RBRACE\": 42, \"diagramStatement\": 43, \"PERSON\": 44, \"PERSON_EXT\": 45, \"SYSTEM\": 46, \"SYSTEM_DB\": 47, \"SYSTEM_QUEUE\": 48, \"SYSTEM_EXT\": 49, \"SYSTEM_EXT_DB\": 50, \"SYSTEM_EXT_QUEUE\": 51, \"CONTAINER\": 52, \"CONTAINER_DB\": 53, \"CONTAINER_QUEUE\": 54, \"CONTAINER_EXT\": 55, \"CONTAINER_EXT_DB\": 56, \"CONTAINER_EXT_QUEUE\": 57, \"COMPONENT\": 58, \"COMPONENT_DB\": 59, \"COMPONENT_QUEUE\": 60, \"COMPONENT_EXT\": 61, \"COMPONENT_EXT_DB\": 62, \"COMPONENT_EXT_QUEUE\": 63, \"REL\": 64, \"BIREL\": 65, \"REL_U\": 66, \"REL_D\": 67, \"REL_L\": 68, \"REL_R\": 69, \"REL_B\": 70, \"REL_INDEX\": 71, \"UPDATE_EL_STYLE\": 72, \"UPDATE_REL_STYLE\": 73, \"UPDATE_LAYOUT_CONFIG\": 74, \"attribute\": 75, \"STR\": 76, \"STR_KEY\": 77, \"STR_VALUE\": 78, \"ATTRIBUTE\": 79, \"ATTRIBUTE_EMPTY\": 80, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"direction_tb\", 7: \"direction_bt\", 8: \"direction_rl\", 9: \"direction_lr\", 11: \"C4_CONTEXT\", 12: \"NEWLINE\", 14: \"EOF\", 15: \"C4_CONTAINER\", 16: \"C4_COMPONENT\", 17: \"C4_DYNAMIC\", 18: \"C4_DEPLOYMENT\", 22: \"title\", 23: \"accDescription\", 24: \"acc_title\", 25: \"acc_title_value\", 26: \"acc_descr\", 27: \"acc_descr_value\", 28: \"acc_descr_multiline_value\", 33: \"LBRACE\", 34: \"ENTERPRISE_BOUNDARY\", 36: \"SYSTEM_BOUNDARY\", 37: \"BOUNDARY\", 38: \"CONTAINER_BOUNDARY\", 39: \"NODE\", 40: \"NODE_L\", 41: \"NODE_R\", 42: \"RBRACE\", 44: \"PERSON\", 45: \"PERSON_EXT\", 46: \"SYSTEM\", 47: \"SYSTEM_DB\", 48: \"SYSTEM_QUEUE\", 49: \"SYSTEM_EXT\", 50: \"SYSTEM_EXT_DB\", 51: \"SYSTEM_EXT_QUEUE\", 52: \"CONTAINER\", 53: \"CONTAINER_DB\", 54: \"CONTAINER_QUEUE\", 55: \"CONTAINER_EXT\", 56: \"CONTAINER_EXT_DB\", 57: \"CONTAINER_EXT_QUEUE\", 58: \"COMPONENT\", 59: \"COMPONENT_DB\", 60: \"COMPONENT_QUEUE\", 61: \"COMPONENT_EXT\", 62: \"COMPONENT_EXT_DB\", 63: \"COMPONENT_EXT_QUEUE\", 64: \"REL\", 65: \"BIREL\", 66: \"REL_U\", 67: \"REL_D\", 68: \"REL_L\", 69: \"REL_R\", 70: \"REL_B\", 71: \"REL_INDEX\", 72: \"UPDATE_EL_STYLE\", 73: \"UPDATE_REL_STYLE\", 74: \"UPDATE_LAYOUT_CONFIG\", 76: \"STR\", 77: \"STR_KEY\", 78: \"STR_VALUE\", 79: \"ATTRIBUTE\", 80: \"ATTRIBUTE_EMPTY\" },\n productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setDirection(\"TB\");\n break;\n case 4:\n yy.setDirection(\"BT\");\n break;\n case 5:\n yy.setDirection(\"RL\");\n break;\n case 6:\n yy.setDirection(\"LR\");\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 19:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 20:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 21:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 22:\n case 23:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 29:\n $$[$0].splice(2, 0, \"SYSTEM\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 30:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 32:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 33:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 34:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 35:\n yy.popBoundaryParseStack();\n break;\n case 39:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 43:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 44:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 45:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 46:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 66:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n this.$ = [$$[$0]];\n break;\n case 72:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 73:\n case 75:\n this.$ = $$[$0].trim();\n break;\n case 74:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 76:\n this.$ = \"\";\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 6;\n break;\n case 1:\n return 7;\n break;\n case 2:\n return 8;\n break;\n case 3:\n return 9;\n break;\n case 4:\n return 22;\n break;\n case 5:\n return 23;\n break;\n case 6:\n this.begin(\"acc_title\");\n return 24;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 26;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n break;\n case 14:\n c;\n break;\n case 15:\n return 12;\n break;\n case 16:\n break;\n case 17:\n return 11;\n break;\n case 18:\n return 15;\n break;\n case 19:\n return 16;\n break;\n case 20:\n return 17;\n break;\n case 21:\n return 18;\n break;\n case 22:\n this.begin(\"person_ext\");\n return 45;\n break;\n case 23:\n this.begin(\"person\");\n return 44;\n break;\n case 24:\n this.begin(\"system_ext_queue\");\n return 51;\n break;\n case 25:\n this.begin(\"system_ext_db\");\n return 50;\n break;\n case 26:\n this.begin(\"system_ext\");\n return 49;\n break;\n case 27:\n this.begin(\"system_queue\");\n return 48;\n break;\n case 28:\n this.begin(\"system_db\");\n return 47;\n break;\n case 29:\n this.begin(\"system\");\n return 46;\n break;\n case 30:\n this.begin(\"boundary\");\n return 37;\n break;\n case 31:\n this.begin(\"enterprise_boundary\");\n return 34;\n break;\n case 32:\n this.begin(\"system_boundary\");\n return 36;\n break;\n case 33:\n this.begin(\"container_ext_queue\");\n return 57;\n break;\n case 34:\n this.begin(\"container_ext_db\");\n return 56;\n break;\n case 35:\n this.begin(\"container_ext\");\n return 55;\n break;\n case 36:\n this.begin(\"container_queue\");\n return 54;\n break;\n case 37:\n this.begin(\"container_db\");\n return 53;\n break;\n case 38:\n this.begin(\"container\");\n return 52;\n break;\n case 39:\n this.begin(\"container_boundary\");\n return 38;\n break;\n case 40:\n this.begin(\"component_ext_queue\");\n return 63;\n break;\n case 41:\n this.begin(\"component_ext_db\");\n return 62;\n break;\n case 42:\n this.begin(\"component_ext\");\n return 61;\n break;\n case 43:\n this.begin(\"component_queue\");\n return 60;\n break;\n case 44:\n this.begin(\"component_db\");\n return 59;\n break;\n case 45:\n this.begin(\"component\");\n return 58;\n break;\n case 46:\n this.begin(\"node\");\n return 39;\n break;\n case 47:\n this.begin(\"node\");\n return 39;\n break;\n case 48:\n this.begin(\"node_l\");\n return 40;\n break;\n case 49:\n this.begin(\"node_r\");\n return 41;\n break;\n case 50:\n this.begin(\"rel\");\n return 64;\n break;\n case 51:\n this.begin(\"birel\");\n return 65;\n break;\n case 52:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 53:\n this.begin(\"rel_u\");\n return 66;\n break;\n case 54:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 55:\n this.begin(\"rel_d\");\n return 67;\n break;\n case 56:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 57:\n this.begin(\"rel_l\");\n return 68;\n break;\n case 58:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 59:\n this.begin(\"rel_r\");\n return 69;\n break;\n case 60:\n this.begin(\"rel_b\");\n return 70;\n break;\n case 61:\n this.begin(\"rel_index\");\n return 71;\n break;\n case 62:\n this.begin(\"update_el_style\");\n return 72;\n break;\n case 63:\n this.begin(\"update_rel_style\");\n return 73;\n break;\n case 64:\n this.begin(\"update_layout_config\");\n return 74;\n break;\n case 65:\n return \"EOF_IN_STRUCT\";\n break;\n case 66:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n break;\n case 67:\n this.begin(\"attribute\");\n break;\n case 68:\n this.popState();\n this.popState();\n break;\n case 69:\n return 80;\n break;\n case 70:\n break;\n case 71:\n return 80;\n break;\n case 72:\n this.begin(\"string\");\n break;\n case 73:\n this.popState();\n break;\n case 74:\n return \"STR\";\n break;\n case 75:\n this.begin(\"string_kv\");\n break;\n case 76:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n break;\n case 77:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 78:\n return \"STR_VALUE\";\n break;\n case 79:\n this.popState();\n this.popState();\n break;\n case 80:\n return \"STR\";\n break;\n case 81:\n return \"LBRACE\";\n break;\n case 82:\n return \"RBRACE\";\n break;\n case 83:\n return \"SPACE\";\n break;\n case 84:\n return \"EOL\";\n break;\n case 85:\n return 14;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:title\\s[^#\\n;]+)/, /^(?:accDescription\\s[^#\\n;]+)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:C4Context\\b)/, /^(?:C4Container\\b)/, /^(?:C4Component\\b)/, /^(?:C4Dynamic\\b)/, /^(?:C4Deployment\\b)/, /^(?:Person_Ext\\b)/, /^(?:Person\\b)/, /^(?:SystemQueue_Ext\\b)/, /^(?:SystemDb_Ext\\b)/, /^(?:System_Ext\\b)/, /^(?:SystemQueue\\b)/, /^(?:SystemDb\\b)/, /^(?:System\\b)/, /^(?:Boundary\\b)/, /^(?:Enterprise_Boundary\\b)/, /^(?:System_Boundary\\b)/, /^(?:ContainerQueue_Ext\\b)/, /^(?:ContainerDb_Ext\\b)/, /^(?:Container_Ext\\b)/, /^(?:ContainerQueue\\b)/, /^(?:ContainerDb\\b)/, /^(?:Container\\b)/, /^(?:Container_Boundary\\b)/, /^(?:ComponentQueue_Ext\\b)/, /^(?:ComponentDb_Ext\\b)/, /^(?:Component_Ext\\b)/, /^(?:ComponentQueue\\b)/, /^(?:ComponentDb\\b)/, /^(?:Component\\b)/, /^(?:Deployment_Node\\b)/, /^(?:Node\\b)/, /^(?:Node_L\\b)/, /^(?:Node_R\\b)/, /^(?:Rel\\b)/, /^(?:BiRel\\b)/, /^(?:Rel_Up\\b)/, /^(?:Rel_U\\b)/, /^(?:Rel_Down\\b)/, /^(?:Rel_D\\b)/, /^(?:Rel_Left\\b)/, /^(?:Rel_L\\b)/, /^(?:Rel_Right\\b)/, /^(?:Rel_R\\b)/, /^(?:Rel_Back\\b)/, /^(?:RelIndex\\b)/, /^(?:UpdateElementStyle\\b)/, /^(?:UpdateRelStyle\\b)/, /^(?:UpdateLayoutConfig\\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*[\"][\"])/, /^(?:[ ]*[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[ ]*[\\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[^,]+)/, /^(?:\\{)/, /^(?:\\})/, /^(?:[\\s]+)/, /^(?:[\\n\\r]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [78, 79], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [77], \"inclusive\": false }, \"string_kv\": { \"rules\": [76], \"inclusive\": false }, \"string\": { \"rules\": [73, 74], \"inclusive\": false }, \"attribute\": { \"rules\": [68, 69, 70, 71, 72, 75, 80], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_el_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_b\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_d\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_u\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"birel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar c4Diagram_default = parser;\n\n// src/diagrams/c4/c4Db.js\nvar c4ShapeArray = [];\nvar boundaryParseStack = [\"\"];\nvar currentBoundaryParse = \"global\";\nvar parentBoundaryParse = \"\";\nvar boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n];\nvar rels = [];\nvar title = \"\";\nvar wrapEnabled = false;\nvar c4ShapeInRow = 4;\nvar c4BoundaryInRow = 2;\nvar c4Type;\nvar getC4Type = /* @__PURE__ */ __name(function() {\n return c4Type;\n}, \"getC4Type\");\nvar setC4Type = /* @__PURE__ */ __name(function(c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n}, \"setC4Type\");\nvar addRel = /* @__PURE__ */ __name(function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n}, \"addRel\");\nvar addPersonOrSystem = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n}, \"addPersonOrSystem\");\nvar addContainer = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n}, \"addContainer\");\nvar addComponent = /* @__PURE__ */ __name(function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n}, \"addComponent\");\nvar addPersonOrSystemBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addPersonOrSystemBoundary\");\nvar addContainerBoundary = /* @__PURE__ */ __name(function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addContainerBoundary\");\nvar addDeploymentNode = /* @__PURE__ */ __name(function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundaries.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundaries.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n}, \"addDeploymentNode\");\nvar popBoundaryParseStack = /* @__PURE__ */ __name(function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n}, \"popBoundaryParseStack\");\nvar updateElStyle = /* @__PURE__ */ __name(function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === void 0) {\n old = boundaries.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n}, \"updateElStyle\");\nvar updateRelStyle = /* @__PURE__ */ __name(function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n}, \"updateRelStyle\");\nvar updateLayoutConfig = /* @__PURE__ */ __name(function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow;\n let c4BoundaryInRowValue = c4BoundaryInRow;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow = c4BoundaryInRowValue;\n }\n}, \"updateLayoutConfig\");\nvar getC4ShapeInRow = /* @__PURE__ */ __name(function() {\n return c4ShapeInRow;\n}, \"getC4ShapeInRow\");\nvar getC4BoundaryInRow = /* @__PURE__ */ __name(function() {\n return c4BoundaryInRow;\n}, \"getC4BoundaryInRow\");\nvar getCurrentBoundaryParse = /* @__PURE__ */ __name(function() {\n return currentBoundaryParse;\n}, \"getCurrentBoundaryParse\");\nvar getParentBoundaryParse = /* @__PURE__ */ __name(function() {\n return parentBoundaryParse;\n}, \"getParentBoundaryParse\");\nvar getC4ShapeArray = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n}, \"getC4ShapeArray\");\nvar getC4Shape = /* @__PURE__ */ __name(function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n}, \"getC4Shape\");\nvar getC4ShapeKeys = /* @__PURE__ */ __name(function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n}, \"getC4ShapeKeys\");\nvar getBoundaries = /* @__PURE__ */ __name(function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundaries;\n } else {\n return boundaries.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n}, \"getBoundaries\");\nvar getBoundarys = getBoundaries;\nvar getRels = /* @__PURE__ */ __name(function() {\n return rels;\n}, \"getRels\");\nvar getTitle = /* @__PURE__ */ __name(function() {\n return title;\n}, \"getTitle\");\nvar setWrap = /* @__PURE__ */ __name(function(wrapSetting) {\n wrapEnabled = wrapSetting;\n}, \"setWrap\");\nvar autoWrap = /* @__PURE__ */ __name(function() {\n return wrapEnabled;\n}, \"autoWrap\");\nvar clear = /* @__PURE__ */ __name(function() {\n c4ShapeArray = [];\n boundaries = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n ];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow = 4;\n c4BoundaryInRow = 2;\n}, \"clear\");\nvar LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nvar ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nvar PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nvar setTitle = /* @__PURE__ */ __name(function(txt) {\n let sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n}, \"setTitle\");\nvar c4Db_default = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundaries,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: /* @__PURE__ */ __name(() => getConfig().c4, \"getConfig\"),\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\n\n// src/diagrams/c4/c4Renderer.js\nimport { select } from \"d3\";\n\n// src/diagrams/c4/svgDraw.js\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {\n return drawRect(elem, rectData);\n}, \"drawRect\");\nvar drawImage = /* @__PURE__ */ __name(function(elem, width, height, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"width\", width);\n imageElem.attr(\"height\", height);\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n let sanitizedLink = link.startsWith(\"data:image/png;base64\") ? link : sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawRels = /* @__PURE__ */ __name((elem, rels2, conf2) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (let rel of rels2) {\n let textColor = rel.textColor ? rel.textColor : \"#444444\";\n let strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n let url = \"\";\n if (i === 0) {\n let line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n i = -1;\n } else {\n let line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\"controly\", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n }\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n}, \"drawRels\");\nvar drawBoundary = /* @__PURE__ */ __name(function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n let fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n let strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n let fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = { \"stroke-width\": 1, \"stroke-dasharray\": \"7.0,7.0\" };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect2(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n}, \"drawBoundary\");\nvar drawC4Shape = /* @__PURE__ */ __name(function(elem, c4Shape, conf2) {\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + \"_bg_color\"];\n let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + \"_border_color\"];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : \"#FFFFFF\";\n let personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n break;\n case \"external_person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";\n break;\n }\n const c4ShapeElem = elem.append(\"g\");\n c4ShapeElem.attr(\"class\", \"person-man\");\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n case \"system\":\n case \"external_system\":\n case \"container\":\n case \"external_container\":\n case \"component\":\n case \"external_component\":\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.stroke = strokeColor;\n rect.rx = 2.5;\n rect.ry = 2.5;\n rect.attrs = { \"stroke-width\": 0.5 };\n drawRect2(c4ShapeElem, rect);\n break;\n case \"system_db\":\n case \"external_system_db\":\n case \"container_db\":\n case \"external_container_db\":\n case \"component_db\":\n case \"external_component_db\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2).replaceAll(\"height\", c4Shape.height)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2)\n );\n break;\n case \"system_queue\":\n case \"external_system_queue\":\n case \"container_queue\":\n case \"external_container_queue\":\n case \"component_queue\":\n case \"external_component_queue\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"width\", c4Shape.width).replaceAll(\"half\", c4Shape.height / 2)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\", c4Shape.x + c4Shape.width).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.height / 2)\n );\n break;\n }\n let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);\n c4ShapeElem.append(\"text\").attr(\"fill\", fontColor).attr(\"font-family\", c4ShapeFontConf.fontFamily).attr(\"font-size\", c4ShapeFontConf.fontSize - 2).attr(\"font-style\", \"italic\").attr(\"lengthAdjust\", \"spacing\").attr(\"textLength\", c4Shape.typeC4Shape.width).attr(\"x\", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr(\"y\", c4Shape.y + c4Shape.typeC4Shape.Y).text(\"<<\" + c4Shape.typeC4Shape.text + \">>\");\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n let textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontWeight = \"bold\";\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontColor = fontColor;\n if (c4Shape.techn && c4Shape.techn?.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.techn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.techn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n }\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n textFontConf = conf2.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n return c4Shape.height;\n}, \"drawC4Shape\");\nvar insertDatabaseIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n}, \"insertDatabaseIcon\");\nvar insertComputerIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n}, \"insertComputerIcon\");\nvar insertClockIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n}, \"insertClockIcon\");\nvar insertArrowHead = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\");\n}, \"insertArrowHead\");\nvar insertArrowEnd = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowend\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\");\n}, \"insertArrowEnd\");\nvar insertArrowFilledHead = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertArrowFilledHead\");\nvar insertDynamicNumber = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n}, \"insertDynamicNumber\");\nvar insertArrowCrossHead = /* @__PURE__ */ __name(function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.append(\"path\").attr(\"fill\", \"black\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 9,2 V 6 L16,4 Z\");\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 0,1 L 6,7 M 6,1 L 0,7\");\n}, \"insertArrowCrossHead\");\nvar getC4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n}, \"getC4ShapeFont\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common_default.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar svgDraw_default = {\n drawRect: drawRect2,\n drawBoundary,\n drawC4Shape,\n drawRels,\n drawImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\n\n// src/diagrams/c4/c4Renderer.js\nvar globalBoundaryMaxX = 0;\nvar globalBoundaryMaxY = 0;\nvar c4ShapeInRow2 = 4;\nvar c4BoundaryInRow2 = 2;\nparser.yy = c4Db_default;\nvar conf = {};\nvar Bounds = class {\n static {\n __name(this, \"Bounds\");\n }\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow2) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n};\nvar setConf = /* @__PURE__ */ __name(function(cnf) {\n assignWithDepth_default(conf, cnf);\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n}, \"setConf\");\nvar c4ShapeFont = /* @__PURE__ */ __name((cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n}, \"c4ShapeFont\");\nvar boundaryFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n}, \"boundaryFont\");\nvar messageFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n}, \"messageFont\");\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common_default.lineBreakRegex).length;\n c4Shape[textType].width = textLimitWidth;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common_default.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (const line of lines) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(line, textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(line, textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n }\n }\n}\n__name(calcC4ShapeTextWH, \"calcC4ShapeTextWH\");\nvar drawBoundary2 = /* @__PURE__ */ __name(function(diagram2, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw_default.drawBoundary(diagram2, boundary, conf);\n}, \"drawBoundary\");\nvar drawC4ShapeArray = /* @__PURE__ */ __name(function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n let Y = 0;\n for (const c4ShapeKey of c4ShapeKeys) {\n Y = 0;\n const c4Shape = c4ShapeArray2[c4ShapeKey];\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n \"\\xAB\" + c4Shape.typeC4Shape.text + \"\\xBB\",\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\"label\", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape.label.Y = Y + 8;\n Y = c4Shape.label.Y + c4Shape.label.height;\n if (c4Shape.type && c4Shape.type.text !== \"\") {\n c4Shape.type.text = \"[\" + c4Shape.type.text + \"]\";\n let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"type\", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);\n c4Shape.type.Y = Y + 5;\n Y = c4Shape.type.Y + c4Shape.type.height;\n } else if (c4Shape.techn && c4Shape.techn.text !== \"\") {\n c4Shape.techn.text = \"[\" + c4Shape.techn.text + \"]\";\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH(\"techn\", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape.techn.Y = Y + 5;\n Y = c4Shape.techn.Y + c4Shape.techn.height;\n }\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"descr\", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape.descr.Y = Y + 20;\n Y = c4Shape.descr.Y + c4Shape.descr.height;\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape.descr.textLines * 5;\n }\n rectWidth = rectWidth + conf.c4ShapePadding;\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n currentBounds.insert(c4Shape);\n svgDraw_default.drawC4Shape(diagram2, c4Shape, conf);\n }\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n}, \"drawC4ShapeArray\");\nvar Point = class {\n static {\n __name(this, \"Point\");\n }\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n};\nvar getIntersectPoint = /* @__PURE__ */ __name(function(fromNode, endPoint) {\n let x1 = fromNode.x;\n let y1 = fromNode.y;\n let x2 = endPoint.x;\n let y2 = endPoint.y;\n let fromCenterX = x1 + fromNode.width / 2;\n let fromCenterY = y1 + fromNode.height / 2;\n let dx = Math.abs(x1 - x2);\n let dy = Math.abs(y1 - y2);\n let tanDYX = dy / dx;\n let fromDYX = fromNode.height / fromNode.width;\n let returnPoint = null;\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);\n }\n }\n return returnPoint;\n}, \"getIntersectPoint\");\nvar getIntersectPoints = /* @__PURE__ */ __name(function(fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n}, \"getIntersectPoints\");\nvar drawRels2 = /* @__PURE__ */ __name(function(diagram2, rels2, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels2) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw_default.drawRels(diagram2, rels2, conf);\n}, \"drawRels\");\nfunction drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n let currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow2, currentBoundaries.length);\n for (let [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.label.Y = Y + 8;\n Y = currentBoundary.label.Y + currentBoundary.label.height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.type.Y = Y + 5;\n Y = currentBoundary.type.Y + currentBoundary.type.height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary.descr.Y = Y + 20;\n Y = currentBoundary.descr.Y + currentBoundary.descr.height;\n }\n if (i == 0 || i % c4BoundaryInRow2 === 0) {\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundaries = diagObj.db.getBoundaries(parentBoundaryAlias);\n if (nextCurrentBoundaries.length > 0) {\n drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundaries,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary2(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\n__name(drawInsideBoundary, \"drawInsideBoundary\");\nvar draw = /* @__PURE__ */ __name(function(_text, id, _version, diagObj) {\n conf = getConfig().c4;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n let db = diagObj.db;\n diagObj.db.setWrap(conf.wrap);\n c4ShapeInRow2 = db.getC4ShapeInRow();\n c4BoundaryInRow2 = db.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n svgDraw_default.insertComputerIcon(diagram2);\n svgDraw_default.insertDatabaseIcon(diagram2);\n svgDraw_default.insertClockIcon(diagram2);\n let screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = diagObj.db.getTitle();\n let currentBoundaries = diagObj.db.getBoundaries(\"\");\n drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw_default.insertArrowHead(diagram2);\n svgDraw_default.insertArrowEnd(diagram2);\n svgDraw_default.insertArrowCrossHead(diagram2);\n svgDraw_default.insertArrowFilledHead(diagram2);\n drawRels2(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n let boxHeight = box.stopy - box.starty;\n let height = boxHeight + 2 * conf.diagramMarginY;\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr(\"y\", box.starty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n}, \"draw\");\nvar c4Renderer_default = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary: drawBoundary2,\n setConf,\n draw\n};\n\n// src/diagrams/c4/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/c4/c4Diagram.ts\nvar diagram = {\n parser: c4Diagram_default,\n db: c4Db_default,\n renderer: c4Renderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name(({ c4, wrap }) => {\n c4Renderer_default.setConf(c4);\n c4Db_default.setWrap(wrap);\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","kv","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c2","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","c4Diagram_default","c4ShapeArray","boundaryParseStack","currentBoundaryParse","parentBoundaryParse","boundaries","rels","title","wrapEnabled","c4ShapeInRow","c4BoundaryInRow","c4Type","getC4Type","setC4Type","c4TypeParam","sanitizeText","getConfig","addRel","type","from","to","label","techn","descr","sprite","tags","link","rel","old","rel2","key","value","autoWrap","addPersonOrSystem","typeC4Shape","alias","personOrSystem","personOrSystem2","addContainer","container","container2","addComponent","component","component2","addPersonOrSystemBoundary","boundary","boundary2","addContainerBoundary","addDeploymentNode","nodeType","popBoundaryParseStack","updateElStyle","elementName","bgColor","fontColor","borderColor","shadowing","shape","legendText","legendSprite","element","updateRelStyle","textColor","lineColor","offsetX","offsetY","updateLayoutConfig","c4ShapeInRowParam","c4BoundaryInRowParam","c4ShapeInRowValue","c4BoundaryInRowValue","getC4ShapeInRow","getC4BoundaryInRow","getCurrentBoundaryParse","getParentBoundaryParse","getC4ShapeArray","parentBoundary","getC4Shape","getC4ShapeKeys","getBoundaries","getBoundarys","getRels","getTitle","setWrap","wrapSetting","clear","LINETYPE","ARROWTYPE","PLACEMENT","setTitle","txt","c4Db_default","setAccTitle","getAccTitle","getAccDescription","setAccDescription","drawRect2","elem","rectData","drawRect","drawImage","width","height","x","y","imageElem","sanitizedLink","sanitizeUrl","drawRels","rels2","conf2","relsElem","strokeColor","url","line","messageConf","_drawTextCandidateFunc","drawBoundary","boundaryElem","fillColor","attrsValue","boundaryConf","drawC4Shape","c4Shape","personImg","c4ShapeElem","rect","getNoteRect","c4ShapeFontConf","getC4ShapeFont","textFontConf","_a","insertDatabaseIcon","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowEnd","insertArrowFilledHead","insertDynamicNumber","insertArrowCrossHead","marker","cnf","byText","content","g","textAttrs","text","_setTextAttrs","byTspan","fontSize","fontFamily","fontWeight","common_default","dy","byFo","s","toText","fromTextAttrsDict","svgDraw_default","globalBoundaryMaxX","globalBoundaryMaxY","c4ShapeInRow2","c4BoundaryInRow2","conf","Bounds","diagObj","setConf","startx","stopx","starty","stopy","obj","val","fun","_startx","_stopx","_starty","_stopy","margin","assignWithDepth_default","c4ShapeFont","boundaryFont","messageFont","calcC4ShapeTextWH","textType","c4ShapeTextWrap","textConf","textLimitWidth","wrapLabel","calculateTextHeight","lineHeight","calculateTextWidth","drawBoundary2","diagram2","bounds","boundaryTextWrap","boundaryLabelConf","drawC4ShapeArray","currentBounds","c4ShapeArray2","c4ShapeKeys","Y","c4ShapeKey","c4ShapeTypeConf","c4ShapeLabelConf","c4ShapeTypeConf2","c4ShapeTechnConf","rectHeight","rectWidth","c4ShapeDescrConf","Point","getIntersectPoint","fromNode","endPoint","x1","y1","x2","y2","fromCenterX","fromCenterY","dx","tanDYX","fromDYX","returnPoint","getIntersectPoints","endNode","endIntersectPoint","startPoint","drawRels2","getC4ShapeObj","relTextWrap","relConf","points","drawInsideBoundary","parentBoundaryAlias","parentBounds","currentBoundaries","currentBoundary","currentBoundaryTextWrap","currentBoundaryLabelConf","currentBoundaryTypeConf","currentBoundaryDescrConf","_x","_y","currentPersonOrSystemArray","currentPersonOrSystemKeys","nextCurrentBoundaries","draw","_text","id","_version","securityLevel","sandboxElement","select","root","db","log","screenBounds","title2","box","configureSvgSize","extraVertForTitle","c4Renderer_default","getStyles","options","styles_default","diagram","c4","wrap"],"mappings":"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AAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIhE,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,GAAK,GAAIC,EAAG,EAAI,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI1C,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIC,EAA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CAAC,EAAG1D,EAAE0D,GAAK,CAAC,EAAG,EAAE,CAAC,EAAG1D,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGxD,EAAEwD,EAAK,CAAC,E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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/channel.js b/extensions/continue/gui/assets/channel.js new file mode 100644 index 000000000000..1f71b254d9aa --- /dev/null +++ b/extensions/continue/gui/assets/channel.js @@ -0,0 +1,2 @@ +import{ap as d,aq as a}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0e14cc39-27aa-4f7a-a222-cbc1bcbfe6ec",e._sentryDebugIdIdentifier="sentry-dbid-0e14cc39-27aa-4f7a-a222-cbc1bcbfe6ec")})()}catch{}const o=(e,n)=>d.lang.round(a.parse(e)[n]);export{o as c}; +//# sourceMappingURL=channel.js.map diff --git a/extensions/continue/gui/assets/channel.js.map b/extensions/continue/gui/assets/channel.js.map new file mode 100644 index 000000000000..eb2544c4349c --- /dev/null +++ b/extensions/continue/gui/assets/channel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"channel.js","sources":["../../node_modules/khroma/dist/methods/channel.js"],"sourcesContent":["/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n"],"names":["channel","color","_","Color"],"mappings":"+kBAIK,MAACA,EAAU,CAACC,EAAOD,IACbE,EAAE,KAAK,MAAMC,EAAM,MAAMF,CAAK,EAAED,CAAO,CAAC","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-4BX2VUAB.js b/extensions/continue/gui/assets/chunk-4BX2VUAB.js new file mode 100644 index 000000000000..80a34976628a --- /dev/null +++ b/extensions/continue/gui/assets/chunk-4BX2VUAB.js @@ -0,0 +1,2 @@ +import{_ as t}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7f6df52a-60e0-43e1-9e12-c7490277ed29",e._sentryDebugIdIdentifier="sentry-dbid-7f6df52a-60e0-43e1-9e12-c7490277ed29")})()}catch{}function l(e,n){var i,f,o;e.accDescr&&((i=n.setAccDescription)==null||i.call(n,e.accDescr)),e.accTitle&&((f=n.setAccTitle)==null||f.call(n,e.accTitle)),e.title&&((o=n.setDiagramTitle)==null||o.call(n,e.title))}t(l,"populateCommonDb");export{l as p}; +//# sourceMappingURL=chunk-4BX2VUAB.js.map diff --git a/extensions/continue/gui/assets/chunk-4BX2VUAB.js.map b/extensions/continue/gui/assets/chunk-4BX2VUAB.js.map new file mode 100644 index 000000000000..2ca92755d1b0 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-4BX2VUAB.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-4BX2VUAB.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"],"names":["populateCommonDb","ast","db","_a","_b","_c","__name"],"mappings":"skBAKA,SAASA,EAAiBC,EAAKC,EAAI,WAC7BD,EAAI,YACNE,EAAAD,EAAG,oBAAH,MAAAC,EAAA,KAAAD,EAAuBD,EAAI,WAEzBA,EAAI,YACNG,EAAAF,EAAG,cAAH,MAAAE,EAAA,KAAAF,EAAiBD,EAAI,WAEnBA,EAAI,SACNI,EAAAH,EAAG,kBAAH,MAAAG,EAAA,KAAAH,EAAqBD,EAAI,OAE7B,CACAK,EAAON,EAAkB,kBAAkB","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-55IACEB6.js b/extensions/continue/gui/assets/chunk-55IACEB6.js new file mode 100644 index 000000000000..bae2b632a089 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-55IACEB6.js @@ -0,0 +1,2 @@ +import{_ as t,d}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ed4008b0-0d38-4c18-90e7-770dc1368b43",e._sentryDebugIdIdentifier="sentry-dbid-ed4008b0-0d38-4c18-90e7-770dc1368b43")})()}catch{}var i=t((e,n)=>{let o;return n==="sandbox"&&(o=d("#i"+e)),(n==="sandbox"?d(o.nodes()[0].contentDocument.body):d("body")).select(`[id="${e}"]`)},"getDiagramElement");export{i as g}; +//# sourceMappingURL=chunk-55IACEB6.js.map diff --git a/extensions/continue/gui/assets/chunk-55IACEB6.js.map b/extensions/continue/gui/assets/chunk-55IACEB6.js.map new file mode 100644 index 000000000000..74ef42fd7f0b --- /dev/null +++ b/extensions/continue/gui/assets/chunk-55IACEB6.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-55IACEB6.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/insertElementsForSize.js\nimport { select } from \"d3\";\nvar getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => {\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n return svg;\n}, \"getDiagramElement\");\n\nexport {\n getDiagramElement\n};\n"],"names":["getDiagramElement","__name","id","securityLevel","sandboxElement","select"],"mappings":"wkBAMG,IAACA,EAAoCC,EAAO,CAACC,EAAIC,IAAkB,CACpE,IAAIC,EACJ,OAAID,IAAkB,YACpBC,EAAiBC,EAAO,KAAOH,CAAE,IAEtBC,IAAkB,UAAYE,EAAOD,EAAe,QAAQ,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAO,MAAM,GAChG,OAAO,QAAQH,CAAE,IAAI,CAExC,EAAG,mBAAmB","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-FMBD7UC4.js b/extensions/continue/gui/assets/chunk-FMBD7UC4.js new file mode 100644 index 000000000000..8af5ff4f2926 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-FMBD7UC4.js @@ -0,0 +1,16 @@ +import{_ as o}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0b08a79c-948a-40e6-b1a8-23c7bfb2688b",e._sentryDebugIdIdentifier="sentry-dbid-0b08a79c-948a-40e6-b1a8-23c7bfb2688b")})()}catch{}var i=o(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles");export{i as g}; +//# sourceMappingURL=chunk-FMBD7UC4.js.map diff --git a/extensions/continue/gui/assets/chunk-FMBD7UC4.js.map b/extensions/continue/gui/assets/chunk-FMBD7UC4.js.map new file mode 100644 index 000000000000..32720789e109 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-FMBD7UC4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-FMBD7UC4.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/globalStyles.ts\nvar getIconStyles = /* @__PURE__ */ __name(() => `\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n`, \"getIconStyles\");\n\nexport {\n getIconStyles\n};\n"],"names":["getIconStyles","__name"],"mappings":"skBAKG,IAACA,EAAgCC,EAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc9C,eAAe","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-K7UQS3LO.js b/extensions/continue/gui/assets/chunk-K7UQS3LO.js new file mode 100644 index 000000000000..1861eb3289ac --- /dev/null +++ b/extensions/continue/gui/assets/chunk-K7UQS3LO.js @@ -0,0 +1,166 @@ +import{g as et}from"./chunk-FMBD7UC4.js";import{g as tt}from"./chunk-55IACEB6.js";import{s as st}from"./chunk-QN33PNHL.js";import{_ as f,l as Oe,c as F,o as it,r as at,u as we,d as ee,b as nt,a as rt,s as ut,g as lt,p as ot,q as ct,k as v,y as ht,x as dt,i as pt,Q as M}from"./index.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new t.Error().stack;i&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[i]="b6392916-969c-4fd2-aec0-74487f3a5508",t._sentryDebugIdIdentifier="sentry-dbid-b6392916-969c-4fd2-aec0-74487f3a5508")})()}catch{}var Ve=(function(){var t=f(function(I,o,h,p){for(h=h||{},p=I.length;p--;h[I[p]]=o);return h},"o"),i=[1,18],a=[1,19],u=[1,20],l=[1,41],r=[1,42],c=[1,26],A=[1,24],g=[1,25],D=[1,32],L=[1,33],Ae=[1,34],m=[1,45],fe=[1,35],ge=[1,36],Ce=[1,37],me=[1,38],be=[1,27],ye=[1,28],Ee=[1,29],Te=[1,30],ke=[1,31],b=[1,44],y=[1,46],E=[1,43],T=[1,47],De=[1,9],d=[1,8,9],te=[1,58],se=[1,59],ie=[1,60],ae=[1,61],ne=[1,62],Fe=[1,63],_e=[1,64],z=[1,8,9,41],Pe=[1,76],P=[1,8,9,12,13,22,39,41,44,68,69,70,71,72,73,74,79,81],re=[1,8,9,12,13,18,20,22,39,41,44,50,60,68,69,70,71,72,73,74,79,81,86,100,102,103],ue=[13,60,86,100,102,103],K=[13,60,73,74,86,100,102,103],Re=[13,60,68,69,70,71,72,86,100,102,103],Be=[1,100],Y=[1,117],Q=[1,113],W=[1,109],j=[1,115],X=[1,110],q=[1,111],H=[1,112],J=[1,114],Z=[1,116],Me=[22,48,60,61,82,86,87,88,89,90],Se=[1,8,9,39,41,44],le=[1,8,9,22],Ge=[1,145],Ue=[1,8,9,61],N=[1,8,9,22,48,60,61,82,86,87,88,89,90],Ne={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,emptyBody:47,SPACE:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",48:"SPACE",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[43,2],[43,3],[47,0],[47,2],[47,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:f(function(o,h,p,n,C,e,$){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:n.addRelation(e[s]);break;case 20:e[s-1].title=n.cleanupLabel(e[s]),n.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),n.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),n.setAccDescription(this.$);break;case 34:n.addClassesToNamespace(e[s-3],e[s-1]);break;case 35:n.addClassesToNamespace(e[s-4],e[s-1]);break;case 36:this.$=e[s],n.addNamespace(e[s]);break;case 37:this.$=[e[s]];break;case 38:this.$=[e[s-1]];break;case 39:e[s].unshift(e[s-2]),this.$=e[s];break;case 41:n.setCssClass(e[s-2],e[s]);break;case 42:n.addMembers(e[s-3],e[s-1]);break;case 44:n.setCssClass(e[s-5],e[s-3]),n.addMembers(e[s-5],e[s-1]);break;case 45:this.$=e[s],n.addClass(e[s]);break;case 46:this.$=e[s-1],n.addClass(e[s-1]),n.setClassLabel(e[s-1],e[s]);break;case 50:n.addAnnotation(e[s],e[s-2]);break;case 51:case 64:this.$=[e[s]];break;case 52:e[s].push(e[s-1]),this.$=e[s];break;case 53:break;case 54:n.addMember(e[s-1],n.cleanupLabel(e[s]));break;case 55:break;case 56:break;case 57:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 58:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 59:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 60:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 61:n.addNote(e[s],e[s-1]);break;case 62:n.addNote(e[s]);break;case 63:this.$=e[s-2],n.defineClass(e[s-1],e[s]);break;case 65:this.$=e[s-2].concat([e[s]]);break;case 66:n.setDirection("TB");break;case 67:n.setDirection("BT");break;case 68:n.setDirection("RL");break;case 69:n.setDirection("LR");break;case 70:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 71:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 72:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 73:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 74:this.$=n.relationType.AGGREGATION;break;case 75:this.$=n.relationType.EXTENSION;break;case 76:this.$=n.relationType.COMPOSITION;break;case 77:this.$=n.relationType.DEPENDENCY;break;case 78:this.$=n.relationType.LOLLIPOP;break;case 79:this.$=n.lineType.LINE;break;case 80:this.$=n.lineType.DOTTED_LINE;break;case 81:case 87:this.$=e[s-2],n.setClickEvent(e[s-1],e[s]);break;case 82:case 88:this.$=e[s-3],n.setClickEvent(e[s-2],e[s-1]),n.setTooltip(e[s-2],e[s]);break;case 83:this.$=e[s-2],n.setLink(e[s-1],e[s]);break;case 84:this.$=e[s-3],n.setLink(e[s-2],e[s-1],e[s]);break;case 85:this.$=e[s-3],n.setLink(e[s-2],e[s-1]),n.setTooltip(e[s-2],e[s]);break;case 86:this.$=e[s-4],n.setLink(e[s-3],e[s-2],e[s]),n.setTooltip(e[s-3],e[s-1]);break;case 89:this.$=e[s-3],n.setClickEvent(e[s-2],e[s-1],e[s]);break;case 90:this.$=e[s-4],n.setClickEvent(e[s-3],e[s-2],e[s-1]),n.setTooltip(e[s-3],e[s]);break;case 91:this.$=e[s-3],n.setLink(e[s-2],e[s]);break;case 92:this.$=e[s-4],n.setLink(e[s-3],e[s-1],e[s]);break;case 93:this.$=e[s-4],n.setLink(e[s-3],e[s-1]),n.setTooltip(e[s-3],e[s]);break;case 94:this.$=e[s-5],n.setLink(e[s-4],e[s-2],e[s]),n.setTooltip(e[s-4],e[s-1]);break;case 95:this.$=e[s-2],n.setCssStyle(e[s-1],e[s]);break;case 96:n.setCssClass(e[s-1],e[s]);break;case 97:this.$=[e[s]];break;case 98:e[s-2].push(e[s]),this.$=e[s-2];break;case 100:this.$=e[s-1]+e[s];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,49:c,51:A,52:g,54:D,56:L,57:Ae,60:m,62:fe,63:ge,64:Ce,65:me,75:be,76:ye,78:Ee,82:Te,83:ke,86:b,100:y,102:E,103:T},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(d,[2,19],{22:[1,50]}),t(d,[2,21]),t(d,[2,22]),t(d,[2,23]),t(d,[2,24]),t(d,[2,25]),t(d,[2,26]),t(d,[2,27]),t(d,[2,28]),t(d,[2,29]),t(d,[2,30]),{34:[1,51]},{36:[1,52]},t(d,[2,33]),t(d,[2,53],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:te,69:se,70:ie,71:ae,72:ne,73:Fe,74:_e}),{39:[1,65]},t(z,[2,40],{39:[1,67],44:[1,66]}),t(d,[2,55]),t(d,[2,56]),{16:68,60:m,86:b,100:y,102:E},{16:39,17:40,19:69,60:m,86:b,100:y,102:E,103:T},{16:39,17:40,19:70,60:m,86:b,100:y,102:E,103:T},{16:39,17:40,19:71,60:m,86:b,100:y,102:E,103:T},{60:[1,72]},{13:[1,73]},{16:39,17:40,19:74,60:m,86:b,100:y,102:E,103:T},{13:Pe,55:75},{58:77,60:[1,78]},t(d,[2,66]),t(d,[2,67]),t(d,[2,68]),t(d,[2,69]),t(P,[2,13],{16:39,17:40,19:80,18:[1,79],20:[1,81],60:m,86:b,100:y,102:E,103:T}),t(P,[2,15],{20:[1,82]}),{15:83,16:84,17:85,60:m,86:b,100:y,102:E,103:T},{16:39,17:40,19:86,60:m,86:b,100:y,102:E,103:T},t(re,[2,123]),t(re,[2,124]),t(re,[2,125]),t(re,[2,126]),t([1,8,9,12,13,20,22,39,41,44,68,69,70,71,72,73,74,79,81],[2,127]),t(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:87,33:i,35:a,37:u,42:l,46:r,49:c,51:A,52:g,54:D,56:L,57:Ae,60:m,62:fe,63:ge,64:Ce,65:me,75:be,76:ye,78:Ee,82:Te,83:ke,86:b,100:y,102:E,103:T}),{5:88,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,49:c,51:A,52:g,54:D,56:L,57:Ae,60:m,62:fe,63:ge,64:Ce,65:me,75:be,76:ye,78:Ee,82:Te,83:ke,86:b,100:y,102:E,103:T},t(d,[2,20]),t(d,[2,31]),t(d,[2,32]),{13:[1,90],16:39,17:40,19:89,60:m,86:b,100:y,102:E,103:T},{53:91,66:56,67:57,68:te,69:se,70:ie,71:ae,72:ne,73:Fe,74:_e},t(d,[2,54]),{67:92,73:Fe,74:_e},t(ue,[2,73],{66:93,68:te,69:se,70:ie,71:ae,72:ne}),t(K,[2,74]),t(K,[2,75]),t(K,[2,76]),t(K,[2,77]),t(K,[2,78]),t(Re,[2,79]),t(Re,[2,80]),{8:[1,95],24:96,40:94,43:23,46:r},{16:97,60:m,86:b,100:y,102:E},{41:[1,99],45:98,51:Be},{50:[1,101]},{13:[1,102]},{13:[1,103]},{79:[1,104],81:[1,105]},{22:Y,48:Q,59:106,60:W,82:j,84:107,85:108,86:X,87:q,88:H,89:J,90:Z},{60:[1,118]},{13:Pe,55:119},t(d,[2,62]),t(d,[2,128]),{22:Y,48:Q,59:120,60:W,61:[1,121],82:j,84:107,85:108,86:X,87:q,88:H,89:J,90:Z},t(Me,[2,64]),{16:39,17:40,19:122,60:m,86:b,100:y,102:E,103:T},t(P,[2,16]),t(P,[2,17]),t(P,[2,18]),{39:[2,36]},{15:124,16:84,17:85,18:[1,123],39:[2,9],60:m,86:b,100:y,102:E,103:T},{39:[2,10]},t(Se,[2,45],{11:125,12:[1,126]}),t(De,[2,7]),{9:[1,127]},t(le,[2,57]),{16:39,17:40,19:128,60:m,86:b,100:y,102:E,103:T},{13:[1,130],16:39,17:40,19:129,60:m,86:b,100:y,102:E,103:T},t(ue,[2,72],{66:131,68:te,69:se,70:ie,71:ae,72:ne}),t(ue,[2,71]),{41:[1,132]},{24:96,40:133,43:23,46:r},{8:[1,134],41:[2,37]},t(z,[2,41],{39:[1,135]}),{41:[1,136]},t(z,[2,43]),{41:[2,51],45:137,51:Be},{16:39,17:40,19:138,60:m,86:b,100:y,102:E,103:T},t(d,[2,81],{13:[1,139]}),t(d,[2,83],{13:[1,141],77:[1,140]}),t(d,[2,87],{13:[1,142],80:[1,143]}),{13:[1,144]},t(d,[2,95],{61:Ge}),t(Ue,[2,97],{85:146,22:Y,48:Q,60:W,82:j,86:X,87:q,88:H,89:J,90:Z}),t(N,[2,99]),t(N,[2,101]),t(N,[2,102]),t(N,[2,103]),t(N,[2,104]),t(N,[2,105]),t(N,[2,106]),t(N,[2,107]),t(N,[2,108]),t(N,[2,109]),t(d,[2,96]),t(d,[2,61]),t(d,[2,63],{61:Ge}),{60:[1,147]},t(P,[2,14]),{15:148,16:84,17:85,60:m,86:b,100:y,102:E,103:T},{39:[2,12]},t(Se,[2,46]),{13:[1,149]},{1:[2,4]},t(le,[2,59]),t(le,[2,58]),{16:39,17:40,19:150,60:m,86:b,100:y,102:E,103:T},t(ue,[2,70]),t(d,[2,34]),{41:[1,151]},{24:96,40:152,41:[2,38],43:23,46:r},{45:153,51:Be},t(z,[2,42]),{41:[2,52]},t(d,[2,50]),t(d,[2,82]),t(d,[2,84]),t(d,[2,85],{77:[1,154]}),t(d,[2,88]),t(d,[2,89],{13:[1,155]}),t(d,[2,91],{13:[1,157],77:[1,156]}),{22:Y,48:Q,60:W,82:j,84:158,85:108,86:X,87:q,88:H,89:J,90:Z},t(N,[2,100]),t(Me,[2,65]),{39:[2,11]},{14:[1,159]},t(le,[2,60]),t(d,[2,35]),{41:[2,39]},{41:[1,160]},t(d,[2,86]),t(d,[2,90]),t(d,[2,92]),t(d,[2,93],{77:[1,161]}),t(Ue,[2,98],{85:146,22:Y,48:Q,60:W,82:j,86:X,87:q,88:H,89:J,90:Z}),t(Se,[2,8]),t(z,[2,44]),t(d,[2,94])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,36],85:[2,10],124:[2,12],127:[2,4],137:[2,52],148:[2,11],152:[2,39]},parseError:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],n=[],C=[null],e=[],$=this.table,s="",ce=0,ze=0,He=2,Ke=1,Je=e.slice.call(arguments,1),k=Object.create(this.lexer),O={yy:{}};for(var Le in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Le)&&(O.yy[Le]=this.yy[Le]);k.setInput(o,O.yy),O.yy.lexer=k,O.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var xe=k.yylloc;e.push(xe);var Ze=k.options&&k.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $e(B){p.length=p.length-2*B,C.length=C.length-B,e.length=e.length-B}f($e,"popStack");function Ye(){var B;return B=n.pop()||k.lex()||Ke,typeof B!="number"&&(B instanceof Array&&(n=B,B=n.pop()),B=h.symbols_[B]||B),B}f(Ye,"lex");for(var _,w,S,ve,R={},he,x,Qe,de;;){if(w=p[p.length-1],this.defaultActions[w]?S=this.defaultActions[w]:((_===null||typeof _>"u")&&(_=Ye()),S=$[w]&&$[w][_]),typeof S>"u"||!S.length||!S[0]){var Ie="";de=[];for(he in $[w])this.terminals_[he]&&he>He&&de.push("'"+this.terminals_[he]+"'");k.showPosition?Ie="Parse error on line "+(ce+1)+`: +`+k.showPosition()+` +Expecting `+de.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Ie="Parse error on line "+(ce+1)+": Unexpected "+(_==Ke?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Ie,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:xe,expected:de})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+_);switch(S[0]){case 1:p.push(_),C.push(k.yytext),e.push(k.yylloc),p.push(S[1]),_=null,ze=k.yyleng,s=k.yytext,ce=k.yylineno,xe=k.yylloc;break;case 2:if(x=this.productions_[S[1]][1],R.$=C[C.length-x],R._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},Ze&&(R._$.range=[e[e.length-(x||1)].range[0],e[e.length-1].range[1]]),ve=this.performAction.apply(R,[s,ze,ce,O.yy,S[1],C,e].concat(Je)),typeof ve<"u")return ve;x&&(p=p.slice(0,-1*x*2),C=C.slice(0,-1*x),e=e.slice(0,-1*x)),p.push(this.productions_[S[1]][0]),C.push(R.$),e.push(R._$),Qe=$[p[p.length-2]][p[p.length-1]],p.push(Qe);break;case 3:return!0}}return!0},"parse")},qe=(function(){var I={EOF:1,parseError:f(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:f(function(o,h){return this.yy=h||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var h=o.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:f(function(o){var h=o.length,p=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),p.length-1&&(this.yylineno-=p.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:p?(p.length===n.length?this.yylloc.first_column:0)+n[n.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(o){this.unput(this.match.slice(o))},"less"),pastInput:f(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var o=this.pastInput(),h=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:f(function(o,h){var p,n,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),n=o[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],p=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var e in C)this[e]=C[e];return!1}return!1},"test_match"),next:f(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,h,p,n;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),e=0;eh[0].length)){if(h=p,n=e,this.options.backtrack_lexer){if(o=this.test_match(p,C[e]),o!==!1)return o;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(o=this.test_match(h,C[n]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:f(function(){var h=this.next();return h||this.lex()},"lex"),begin:f(function(h){this.conditionStack.push(h)},"begin"),popState:f(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:f(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:f(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:f(function(h){this.begin(h)},"pushState"),stateStackSize:f(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:f(function(h,p,n,C){switch(n){case 0:return 62;case 1:return 63;case 2:return 64;case 3:return 65;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),35;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 79;case 22:this.popState();break;case 23:return 80;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 82;case 28:return 57;case 29:return this.begin("namespace"),42;case 30:return this.popState(),8;case 31:break;case 32:return this.begin("namespace-body"),39;case 33:return this.popState(),41;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;case 39:return this.popState(),8;case 40:break;case 41:return this.popState(),this.popState(),41;case 42:return this.begin("class-body"),39;case 43:return this.popState(),41;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 83;case 50:return 75;case 51:return 76;case 52:return 78;case 53:return 54;case 54:return 56;case 55:return 49;case 56:return 50;case 57:return 81;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 77;case 65:return 77;case 66:return 77;case 67:return 77;case 68:return 69;case 69:return 69;case 70:return 71;case 71:return 71;case 72:return 70;case 73:return 68;case 74:return 72;case 75:return 73;case 76:return 74;case 77:return 22;case 78:return 44;case 79:return 100;case 80:return 18;case 81:return"PLUS";case 82:return 87;case 83:return 61;case 84:return 89;case 85:return 89;case 86:return 90;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 60;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 86;case 94:return 102;case 95:return 48;case 96:return 48;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return I})();Ne.lexer=qe;function oe(){this.yy={}}return f(oe,"Parser"),oe.prototype=Ne,Ne.Parser=oe,new oe})();Ve.parser=Ve;var Tt=Ve,We=["#","+","~","-",""],G,je=(G=class{constructor(i,a){this.memberType=a,this.visibility="",this.classifier="",this.text="";const u=pt(i,F());this.parseMember(u)}getDisplayDetails(){let i=this.visibility+M(this.id);this.memberType==="method"&&(i+=`(${M(this.parameters.trim())})`,this.returnType&&(i+=" : "+M(this.returnType))),i=i.trim();const a=this.parseClassifier();return{displayText:i,cssStyle:a}}parseMember(i){let a="";if(this.memberType==="method"){const r=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(i);if(r){const c=r[1]?r[1].trim():"";if(We.includes(c)&&(this.visibility=c),this.id=r[2],this.parameters=r[3]?r[3].trim():"",a=r[4]?r[4].trim():"",this.returnType=r[5]?r[5].trim():"",a===""){const A=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(A)&&(a=A,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const l=i.length,r=i.substring(0,1),c=i.substring(l-1);We.includes(r)&&(this.visibility=r),/[$*]/.exec(c)&&(a=c),this.id=i.substring(this.visibility===""?0:1,a===""?l:l-1)}this.classifier=a,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();const u=`${this.visibility?"\\"+this.visibility:""}${M(this.id)}${this.memberType==="method"?`(${M(this.parameters)})${this.returnType?" : "+M(this.returnType):""}`:""}`;this.text=u.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}},f(G,"ClassMember"),G),pe="classId-",Xe=0,V=f(t=>v.sanitizeText(t,F()),"sanitizeText"),U,kt=(U=class{constructor(){this.relations=[],this.classes=new Map,this.styleClasses=new Map,this.notes=[],this.interfaces=[],this.namespaces=new Map,this.namespaceCounter=0,this.functions=[],this.lineType={LINE:0,DOTTED_LINE:1},this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},this.setupToolTips=f(i=>{let a=ee(".mermaidTooltip");(a._groups||a)[0][0]===null&&(a=ee("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),ee(i).select("svg").selectAll("g.node").on("mouseover",r=>{const c=ee(r.currentTarget);if(c.attr("title")===null)return;const g=this.getBoundingClientRect();a.transition().duration(200).style("opacity",".9"),a.text(c.attr("title")).style("left",window.scrollX+g.left+(g.right-g.left)/2+"px").style("top",window.scrollY+g.top-14+document.body.scrollTop+"px"),a.html(a.html().replace(/<br\/>/g,"
")),c.classed("hover",!0)}).on("mouseout",r=>{a.transition().duration(500).style("opacity",0),ee(r.currentTarget).classed("hover",!1)})},"setupToolTips"),this.direction="TB",this.setAccTitle=nt,this.getAccTitle=rt,this.setAccDescription=ut,this.getAccDescription=lt,this.setDiagramTitle=ot,this.getDiagramTitle=ct,this.getConfig=f(()=>F().class,"getConfig"),this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}splitClassNameAndType(i){const a=v.sanitizeText(i,F());let u="",l=a;if(a.indexOf("~")>0){const r=a.split("~");l=V(r[0]),u=V(r[1])}return{className:l,type:u}}setClassLabel(i,a){const u=v.sanitizeText(i,F());a&&(a=V(a));const{className:l}=this.splitClassNameAndType(u);this.classes.get(l).label=a,this.classes.get(l).text=`${a}${this.classes.get(l).type?`<${this.classes.get(l).type}>`:""}`}addClass(i){const a=v.sanitizeText(i,F()),{className:u,type:l}=this.splitClassNameAndType(a);if(this.classes.has(u))return;const r=v.sanitizeText(u,F());this.classes.set(r,{id:r,type:l,label:r,text:`${r}${l?`<${l}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:pe+r+"-"+Xe}),Xe++}addInterface(i,a){const u={id:`interface${this.interfaces.length}`,label:i,classId:a};this.interfaces.push(u)}lookUpDomId(i){const a=v.sanitizeText(i,F());if(this.classes.has(a))return this.classes.get(a).domId;throw new Error("Class not found: "+a)}clear(){this.relations=[],this.classes=new Map,this.notes=[],this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.direction="TB",ht()}getClass(i){return this.classes.get(i)}getClasses(){return this.classes}getRelations(){return this.relations}getNotes(){return this.notes}addRelation(i){Oe.debug("Adding relation: "+JSON.stringify(i));const a=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];i.relation.type1===this.relationType.LOLLIPOP&&!a.includes(i.relation.type2)?(this.addClass(i.id2),this.addInterface(i.id1,i.id2),i.id1=`interface${this.interfaces.length-1}`):i.relation.type2===this.relationType.LOLLIPOP&&!a.includes(i.relation.type1)?(this.addClass(i.id1),this.addInterface(i.id2,i.id1),i.id2=`interface${this.interfaces.length-1}`):(this.addClass(i.id1),this.addClass(i.id2)),i.id1=this.splitClassNameAndType(i.id1).className,i.id2=this.splitClassNameAndType(i.id2).className,i.relationTitle1=v.sanitizeText(i.relationTitle1.trim(),F()),i.relationTitle2=v.sanitizeText(i.relationTitle2.trim(),F()),this.relations.push(i)}addAnnotation(i,a){const u=this.splitClassNameAndType(i).className;this.classes.get(u).annotations.push(a)}addMember(i,a){this.addClass(i);const u=this.splitClassNameAndType(i).className,l=this.classes.get(u);if(typeof a=="string"){const r=a.trim();r.startsWith("<<")&&r.endsWith(">>")?l.annotations.push(V(r.substring(2,r.length-2))):r.indexOf(")")>0?l.methods.push(new je(r,"method")):r&&l.members.push(new je(r,"attribute"))}}addMembers(i,a){Array.isArray(a)&&(a.reverse(),a.forEach(u=>this.addMember(i,u)))}addNote(i,a){const u={id:`note${this.notes.length}`,class:a,text:i};this.notes.push(u)}cleanupLabel(i){return i.startsWith(":")&&(i=i.substring(1)),V(i.trim())}setCssClass(i,a){i.split(",").forEach(u=>{let l=u;/\d/.exec(u[0])&&(l=pe+l);const r=this.classes.get(l);r&&(r.cssClasses+=" "+a)})}defineClass(i,a){for(const u of i){let l=this.styleClasses.get(u);l===void 0&&(l={id:u,styles:[],textStyles:[]},this.styleClasses.set(u,l)),a&&a.forEach(r=>{if(/color/.exec(r)){const c=r.replace("fill","bgFill");l.textStyles.push(c)}l.styles.push(r)}),this.classes.forEach(r=>{r.cssClasses.includes(u)&&r.styles.push(...a.flatMap(c=>c.split(",")))})}}setTooltip(i,a){i.split(",").forEach(u=>{a!==void 0&&(this.classes.get(u).tooltip=V(a))})}getTooltip(i,a){return a&&this.namespaces.has(a)?this.namespaces.get(a).classes.get(i).tooltip:this.classes.get(i).tooltip}setLink(i,a,u){const l=F();i.split(",").forEach(r=>{let c=r;/\d/.exec(r[0])&&(c=pe+c);const A=this.classes.get(c);A&&(A.link=we.formatUrl(a,l),l.securityLevel==="sandbox"?A.linkTarget="_top":typeof u=="string"?A.linkTarget=V(u):A.linkTarget="_blank")}),this.setCssClass(i,"clickable")}setClickEvent(i,a,u){i.split(",").forEach(l=>{this.setClickFunc(l,a,u),this.classes.get(l).haveCallback=!0}),this.setCssClass(i,"clickable")}setClickFunc(i,a,u){const l=v.sanitizeText(i,F());if(F().securityLevel!=="loose"||a===void 0)return;const c=l;if(this.classes.has(c)){const A=this.lookUpDomId(c);let g=[];if(typeof u=="string"){g=u.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let D=0;D{const D=document.querySelector(`[id="${A}"]`);D!==null&&D.addEventListener("click",()=>{we.runFunc(a,...g)},!1)})}}bindFunctions(i){this.functions.forEach(a=>{a(i)})}getDirection(){return this.direction}setDirection(i){this.direction=i}addNamespace(i){this.namespaces.has(i)||(this.namespaces.set(i,{id:i,classes:new Map,children:{},domId:pe+i+"-"+this.namespaceCounter}),this.namespaceCounter++)}getNamespace(i){return this.namespaces.get(i)}getNamespaces(){return this.namespaces}addClassesToNamespace(i,a){if(this.namespaces.has(i))for(const u of a){const{className:l}=this.splitClassNameAndType(u);this.classes.get(l).parent=i,this.namespaces.get(i).classes.set(l,this.classes.get(l))}}setCssStyle(i,a){const u=this.classes.get(i);if(!(!a||!u))for(const l of a)l.includes(",")?u.styles.push(...l.split(",")):u.styles.push(l)}getArrowMarker(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}getData(){var r;const i=[],a=[],u=F();for(const c of this.namespaces.keys()){const A=this.namespaces.get(c);if(A){const g={id:A.id,label:A.id,isGroup:!0,padding:u.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:u.look};i.push(g)}}for(const c of this.classes.keys()){const A=this.classes.get(c);if(A){const g=A;g.parentId=A.parent,g.look=u.look,i.push(g)}}let l=0;for(const c of this.notes){l++;const A={id:c.id,label:c.text,isGroup:!1,shape:"note",padding:u.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${u.themeVariables.noteBkgColor}`,`stroke: ${u.themeVariables.noteBorderColor}`],look:u.look};i.push(A);const g=((r=this.classes.get(c.class))==null?void 0:r.id)??"";if(g){const D={id:`edgeNote${l}`,start:c.id,end:g,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:u.look};a.push(D)}}for(const c of this.interfaces){const A={id:c.id,label:c.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:u.look};i.push(A)}l=0;for(const c of this.relations){l++;const A={id:dt(c.id1,c.id2,{prefix:"id",counter:l}),start:c.id1,end:c.id2,type:"normal",label:c.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(c.relation.type1),arrowTypeEnd:this.getArrowMarker(c.relation.type2),startLabelRight:c.relationTitle1==="none"?"":c.relationTitle1,endLabelLeft:c.relationTitle2==="none"?"":c.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:c.style||"",pattern:c.relation.lineType==1?"dashed":"solid",look:u.look};a.push(A)}return{nodes:i,edges:a,other:{},config:u,direction:this.getDirection()}}},f(U,"ClassDB"),U),At=f(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} + ${et()} +`,"getStyles"),Dt=At,ft=f((t,i="TB")=>{if(!t.doc)return i;let a=i;for(const u of t.doc)u.stmt==="dir"&&(a=u.value);return a},"getDir"),gt=f(function(t,i){return i.db.getClasses()},"getClasses"),Ct=f(async function(t,i,a,u){Oe.info("REF0:"),Oe.info("Drawing class diagram (v3)",i);const{securityLevel:l,state:r,layout:c}=F(),A=u.db.getData(),g=tt(i,l);A.type=u.type,A.layoutAlgorithm=it(c),A.nodeSpacing=(r==null?void 0:r.nodeSpacing)||50,A.rankSpacing=(r==null?void 0:r.rankSpacing)||50,A.markers=["aggregation","extension","composition","dependency","lollipop"],A.diagramId=i,await at(A,g);const D=8;we.insertTitle(g,"classDiagramTitleText",(r==null?void 0:r.titleTopMargin)??25,u.db.getDiagramTitle()),st(g,D,"classDiagram",(r==null?void 0:r.useMaxWidth)??!0)},"draw"),Ft={getClasses:gt,draw:Ct,getDir:ft};export{kt as C,Tt as a,Ft as c,Dt as s}; +//# sourceMappingURL=chunk-K7UQS3LO.js.map diff --git a/extensions/continue/gui/assets/chunk-K7UQS3LO.js.map b/extensions/continue/gui/assets/chunk-K7UQS3LO.js.map new file mode 100644 index 000000000000..c4b68f1ea2db --- /dev/null +++ b/extensions/continue/gui/assets/chunk-K7UQS3LO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-K7UQS3LO.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-K7UQS3LO.mjs"],"sourcesContent":["import {\n getIconStyles\n} from \"./chunk-FMBD7UC4.mjs\";\nimport {\n getDiagramElement\n} from \"./chunk-55IACEB6.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-6OXUPJBA.mjs\";\nimport {\n getEdgeId,\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n common_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n parseGenericTypes,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/class/parser/classDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 18], $V1 = [1, 19], $V2 = [1, 20], $V3 = [1, 41], $V4 = [1, 42], $V5 = [1, 26], $V6 = [1, 24], $V7 = [1, 25], $V8 = [1, 32], $V9 = [1, 33], $Va = [1, 34], $Vb = [1, 45], $Vc = [1, 35], $Vd = [1, 36], $Ve = [1, 37], $Vf = [1, 38], $Vg = [1, 27], $Vh = [1, 28], $Vi = [1, 29], $Vj = [1, 30], $Vk = [1, 31], $Vl = [1, 44], $Vm = [1, 46], $Vn = [1, 43], $Vo = [1, 47], $Vp = [1, 9], $Vq = [1, 8, 9], $Vr = [1, 58], $Vs = [1, 59], $Vt = [1, 60], $Vu = [1, 61], $Vv = [1, 62], $Vw = [1, 63], $Vx = [1, 64], $Vy = [1, 8, 9, 41], $Vz = [1, 76], $VA = [1, 8, 9, 12, 13, 22, 39, 41, 44, 68, 69, 70, 71, 72, 73, 74, 79, 81], $VB = [1, 8, 9, 12, 13, 18, 20, 22, 39, 41, 44, 50, 60, 68, 69, 70, 71, 72, 73, 74, 79, 81, 86, 100, 102, 103], $VC = [13, 60, 86, 100, 102, 103], $VD = [13, 60, 73, 74, 86, 100, 102, 103], $VE = [13, 60, 68, 69, 70, 71, 72, 86, 100, 102, 103], $VF = [1, 100], $VG = [1, 117], $VH = [1, 113], $VI = [1, 109], $VJ = [1, 115], $VK = [1, 110], $VL = [1, 111], $VM = [1, 112], $VN = [1, 114], $VO = [1, 116], $VP = [22, 48, 60, 61, 82, 86, 87, 88, 89, 90], $VQ = [1, 8, 9, 39, 41, 44], $VR = [1, 8, 9, 22], $VS = [1, 145], $VT = [1, 8, 9, 61], $VU = [1, 8, 9, 22, 48, 60, 61, 82, 86, 87, 88, 89, 90];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"statements\": 5, \"graphConfig\": 6, \"CLASS_DIAGRAM\": 7, \"NEWLINE\": 8, \"EOF\": 9, \"statement\": 10, \"classLabel\": 11, \"SQS\": 12, \"STR\": 13, \"SQE\": 14, \"namespaceName\": 15, \"alphaNumToken\": 16, \"classLiteralName\": 17, \"DOT\": 18, \"className\": 19, \"GENERICTYPE\": 20, \"relationStatement\": 21, \"LABEL\": 22, \"namespaceStatement\": 23, \"classStatement\": 24, \"memberStatement\": 25, \"annotationStatement\": 26, \"clickStatement\": 27, \"styleStatement\": 28, \"cssClassStatement\": 29, \"noteStatement\": 30, \"classDefStatement\": 31, \"direction\": 32, \"acc_title\": 33, \"acc_title_value\": 34, \"acc_descr\": 35, \"acc_descr_value\": 36, \"acc_descr_multiline_value\": 37, \"namespaceIdentifier\": 38, \"STRUCT_START\": 39, \"classStatements\": 40, \"STRUCT_STOP\": 41, \"NAMESPACE\": 42, \"classIdentifier\": 43, \"STYLE_SEPARATOR\": 44, \"members\": 45, \"CLASS\": 46, \"emptyBody\": 47, \"SPACE\": 48, \"ANNOTATION_START\": 49, \"ANNOTATION_END\": 50, \"MEMBER\": 51, \"SEPARATOR\": 52, \"relation\": 53, \"NOTE_FOR\": 54, \"noteText\": 55, \"NOTE\": 56, \"CLASSDEF\": 57, \"classList\": 58, \"stylesOpt\": 59, \"ALPHA\": 60, \"COMMA\": 61, \"direction_tb\": 62, \"direction_bt\": 63, \"direction_rl\": 64, \"direction_lr\": 65, \"relationType\": 66, \"lineType\": 67, \"AGGREGATION\": 68, \"EXTENSION\": 69, \"COMPOSITION\": 70, \"DEPENDENCY\": 71, \"LOLLIPOP\": 72, \"LINE\": 73, \"DOTTED_LINE\": 74, \"CALLBACK\": 75, \"LINK\": 76, \"LINK_TARGET\": 77, \"CLICK\": 78, \"CALLBACK_NAME\": 79, \"CALLBACK_ARGS\": 80, \"HREF\": 81, \"STYLE\": 82, \"CSSCLASS\": 83, \"style\": 84, \"styleComponent\": 85, \"NUM\": 86, \"COLON\": 87, \"UNIT\": 88, \"BRKT\": 89, \"PCT\": 90, \"commentToken\": 91, \"textToken\": 92, \"graphCodeTokens\": 93, \"textNoTagsToken\": 94, \"TAGSTART\": 95, \"TAGEND\": 96, \"==\": 97, \"--\": 98, \"DEFAULT\": 99, \"MINUS\": 100, \"keywords\": 101, \"UNICODE_TEXT\": 102, \"BQUOTE_STR\": 103, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 7: \"CLASS_DIAGRAM\", 8: \"NEWLINE\", 9: \"EOF\", 12: \"SQS\", 13: \"STR\", 14: \"SQE\", 18: \"DOT\", 20: \"GENERICTYPE\", 22: \"LABEL\", 33: \"acc_title\", 34: \"acc_title_value\", 35: \"acc_descr\", 36: \"acc_descr_value\", 37: \"acc_descr_multiline_value\", 39: \"STRUCT_START\", 41: \"STRUCT_STOP\", 42: \"NAMESPACE\", 44: \"STYLE_SEPARATOR\", 46: \"CLASS\", 48: \"SPACE\", 49: \"ANNOTATION_START\", 50: \"ANNOTATION_END\", 51: \"MEMBER\", 52: \"SEPARATOR\", 54: \"NOTE_FOR\", 56: \"NOTE\", 57: \"CLASSDEF\", 60: \"ALPHA\", 61: \"COMMA\", 62: \"direction_tb\", 63: \"direction_bt\", 64: \"direction_rl\", 65: \"direction_lr\", 68: \"AGGREGATION\", 69: \"EXTENSION\", 70: \"COMPOSITION\", 71: \"DEPENDENCY\", 72: \"LOLLIPOP\", 73: \"LINE\", 74: \"DOTTED_LINE\", 75: \"CALLBACK\", 76: \"LINK\", 77: \"LINK_TARGET\", 78: \"CLICK\", 79: \"CALLBACK_NAME\", 80: \"CALLBACK_ARGS\", 81: \"HREF\", 82: \"STYLE\", 83: \"CSSCLASS\", 86: \"NUM\", 87: \"COLON\", 88: \"UNIT\", 89: \"BRKT\", 90: \"PCT\", 93: \"graphCodeTokens\", 95: \"TAGSTART\", 96: \"TAGEND\", 97: \"==\", 98: \"--\", 99: \"DEFAULT\", 100: \"MINUS\", 101: \"keywords\", 102: \"UNICODE_TEXT\", 103: \"BQUOTE_STR\" },\n productions_: [0, [3, 1], [3, 1], [4, 1], [6, 4], [5, 1], [5, 2], [5, 3], [11, 3], [15, 1], [15, 1], [15, 3], [15, 2], [19, 1], [19, 3], [19, 1], [19, 2], [19, 2], [19, 2], [10, 1], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [23, 4], [23, 5], [38, 2], [40, 1], [40, 2], [40, 3], [24, 1], [24, 3], [24, 4], [24, 3], [24, 6], [43, 2], [43, 3], [47, 0], [47, 2], [47, 2], [26, 4], [45, 1], [45, 2], [25, 1], [25, 2], [25, 1], [25, 1], [21, 3], [21, 4], [21, 4], [21, 5], [30, 3], [30, 2], [31, 3], [58, 1], [58, 3], [32, 1], [32, 1], [32, 1], [32, 1], [53, 3], [53, 2], [53, 2], [53, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [67, 1], [67, 1], [27, 3], [27, 4], [27, 3], [27, 4], [27, 4], [27, 5], [27, 3], [27, 4], [27, 4], [27, 5], [27, 4], [27, 5], [27, 5], [27, 6], [28, 3], [29, 3], [59, 1], [59, 3], [84, 1], [84, 2], [85, 1], [85, 1], [85, 1], [85, 1], [85, 1], [85, 1], [85, 1], [85, 1], [85, 1], [91, 1], [91, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [92, 1], [94, 1], [94, 1], [94, 1], [94, 1], [16, 1], [16, 1], [16, 1], [16, 1], [17, 1], [55, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 8:\n this.$ = $$[$0 - 1];\n break;\n case 9:\n case 10:\n case 13:\n case 15:\n this.$ = $$[$0];\n break;\n case 11:\n case 14:\n this.$ = $$[$0 - 2] + \".\" + $$[$0];\n break;\n case 12:\n case 16:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 17:\n case 18:\n this.$ = $$[$0 - 1] + \"~\" + $$[$0] + \"~\";\n break;\n case 19:\n yy.addRelation($$[$0]);\n break;\n case 20:\n $$[$0 - 1].title = yy.cleanupLabel($$[$0]);\n yy.addRelation($$[$0 - 1]);\n break;\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 32:\n case 33:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 34:\n yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);\n break;\n case 35:\n yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);\n break;\n case 36:\n this.$ = $$[$0];\n yy.addNamespace($$[$0]);\n break;\n case 37:\n this.$ = [$$[$0]];\n break;\n case 38:\n this.$ = [$$[$0 - 1]];\n break;\n case 39:\n $$[$0].unshift($$[$0 - 2]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.setCssClass($$[$0 - 2], $$[$0]);\n break;\n case 42:\n yy.addMembers($$[$0 - 3], $$[$0 - 1]);\n break;\n case 44:\n yy.setCssClass($$[$0 - 5], $$[$0 - 3]);\n yy.addMembers($$[$0 - 5], $$[$0 - 1]);\n break;\n case 45:\n this.$ = $$[$0];\n yy.addClass($$[$0]);\n break;\n case 46:\n this.$ = $$[$0 - 1];\n yy.addClass($$[$0 - 1]);\n yy.setClassLabel($$[$0 - 1], $$[$0]);\n break;\n case 50:\n yy.addAnnotation($$[$0], $$[$0 - 2]);\n break;\n case 51:\n case 64:\n this.$ = [$$[$0]];\n break;\n case 52:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 53:\n break;\n case 54:\n yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));\n break;\n case 55:\n break;\n case 56:\n break;\n case 57:\n this.$ = { \"id1\": $$[$0 - 2], \"id2\": $$[$0], relation: $$[$0 - 1], relationTitle1: \"none\", relationTitle2: \"none\" };\n break;\n case 58:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: \"none\" };\n break;\n case 59:\n this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: \"none\", relationTitle2: $$[$0 - 1] };\n break;\n case 60:\n this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };\n break;\n case 61:\n yy.addNote($$[$0], $$[$0 - 1]);\n break;\n case 62:\n yy.addNote($$[$0]);\n break;\n case 63:\n this.$ = $$[$0 - 2];\n yy.defineClass($$[$0 - 1], $$[$0]);\n break;\n case 65:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n case 66:\n yy.setDirection(\"TB\");\n break;\n case 67:\n yy.setDirection(\"BT\");\n break;\n case 68:\n yy.setDirection(\"RL\");\n break;\n case 69:\n yy.setDirection(\"LR\");\n break;\n case 70:\n this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 71:\n this.$ = { type1: \"none\", type2: $$[$0], lineType: $$[$0 - 1] };\n break;\n case 72:\n this.$ = { type1: $$[$0 - 1], type2: \"none\", lineType: $$[$0] };\n break;\n case 73:\n this.$ = { type1: \"none\", type2: \"none\", lineType: $$[$0] };\n break;\n case 74:\n this.$ = yy.relationType.AGGREGATION;\n break;\n case 75:\n this.$ = yy.relationType.EXTENSION;\n break;\n case 76:\n this.$ = yy.relationType.COMPOSITION;\n break;\n case 77:\n this.$ = yy.relationType.DEPENDENCY;\n break;\n case 78:\n this.$ = yy.relationType.LOLLIPOP;\n break;\n case 79:\n this.$ = yy.lineType.LINE;\n break;\n case 80:\n this.$ = yy.lineType.DOTTED_LINE;\n break;\n case 81:\n case 87:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 1], $$[$0]);\n break;\n case 82:\n case 88:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 83:\n this.$ = $$[$0 - 2];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 84:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 85:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 2], $$[$0]);\n break;\n case 86:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 3], $$[$0 - 1]);\n break;\n case 89:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 90:\n this.$ = $$[$0 - 4];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 91:\n this.$ = $$[$0 - 3];\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 92:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 93:\n this.$ = $$[$0 - 4];\n yy.setLink($$[$0 - 3], $$[$0 - 1]);\n yy.setTooltip($$[$0 - 3], $$[$0]);\n break;\n case 94:\n this.$ = $$[$0 - 5];\n yy.setLink($$[$0 - 4], $$[$0 - 2], $$[$0]);\n yy.setTooltip($$[$0 - 4], $$[$0 - 1]);\n break;\n case 95:\n this.$ = $$[$0 - 2];\n yy.setCssStyle($$[$0 - 1], $$[$0]);\n break;\n case 96:\n yy.setCssClass($$[$0 - 1], $$[$0]);\n break;\n case 97:\n this.$ = [$$[$0]];\n break;\n case 98:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 100:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: [1, 6], 10: 5, 16: 39, 17: 40, 19: 21, 21: 7, 23: 8, 24: 9, 25: 10, 26: 11, 27: 12, 28: 13, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V0, 35: $V1, 37: $V2, 38: 22, 42: $V3, 43: 23, 46: $V4, 49: $V5, 51: $V6, 52: $V7, 54: $V8, 56: $V9, 57: $Va, 60: $Vb, 62: $Vc, 63: $Vd, 64: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 83: $Vk, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($Vp, [2, 5], { 8: [1, 48] }), { 8: [1, 49] }, o($Vq, [2, 19], { 22: [1, 50] }), o($Vq, [2, 21]), o($Vq, [2, 22]), o($Vq, [2, 23]), o($Vq, [2, 24]), o($Vq, [2, 25]), o($Vq, [2, 26]), o($Vq, [2, 27]), o($Vq, [2, 28]), o($Vq, [2, 29]), o($Vq, [2, 30]), { 34: [1, 51] }, { 36: [1, 52] }, o($Vq, [2, 33]), o($Vq, [2, 53], { 53: 53, 66: 56, 67: 57, 13: [1, 54], 22: [1, 55], 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }), { 39: [1, 65] }, o($Vy, [2, 40], { 39: [1, 67], 44: [1, 66] }), o($Vq, [2, 55]), o($Vq, [2, 56]), { 16: 68, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn }, { 16: 39, 17: 40, 19: 69, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 16: 39, 17: 40, 19: 70, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 16: 39, 17: 40, 19: 71, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 60: [1, 72] }, { 13: [1, 73] }, { 16: 39, 17: 40, 19: 74, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 13: $Vz, 55: 75 }, { 58: 77, 60: [1, 78] }, o($Vq, [2, 66]), o($Vq, [2, 67]), o($Vq, [2, 68]), o($Vq, [2, 69]), o($VA, [2, 13], { 16: 39, 17: 40, 19: 80, 18: [1, 79], 20: [1, 81], 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }), o($VA, [2, 15], { 20: [1, 82] }), { 15: 83, 16: 84, 17: 85, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 16: 39, 17: 40, 19: 86, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($VB, [2, 123]), o($VB, [2, 124]), o($VB, [2, 125]), o($VB, [2, 126]), o([1, 8, 9, 12, 13, 20, 22, 39, 41, 44, 68, 69, 70, 71, 72, 73, 74, 79, 81], [2, 127]), o($Vp, [2, 6], { 10: 5, 21: 7, 23: 8, 24: 9, 25: 10, 26: 11, 27: 12, 28: 13, 29: 14, 30: 15, 31: 16, 32: 17, 19: 21, 38: 22, 43: 23, 16: 39, 17: 40, 5: 87, 33: $V0, 35: $V1, 37: $V2, 42: $V3, 46: $V4, 49: $V5, 51: $V6, 52: $V7, 54: $V8, 56: $V9, 57: $Va, 60: $Vb, 62: $Vc, 63: $Vd, 64: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 83: $Vk, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }), { 5: 88, 10: 5, 16: 39, 17: 40, 19: 21, 21: 7, 23: 8, 24: 9, 25: 10, 26: 11, 27: 12, 28: 13, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V0, 35: $V1, 37: $V2, 38: 22, 42: $V3, 43: 23, 46: $V4, 49: $V5, 51: $V6, 52: $V7, 54: $V8, 56: $V9, 57: $Va, 60: $Vb, 62: $Vc, 63: $Vd, 64: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 83: $Vk, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($Vq, [2, 20]), o($Vq, [2, 31]), o($Vq, [2, 32]), { 13: [1, 90], 16: 39, 17: 40, 19: 89, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 53: 91, 66: 56, 67: 57, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }, o($Vq, [2, 54]), { 67: 92, 73: $Vw, 74: $Vx }, o($VC, [2, 73], { 66: 93, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), o($VD, [2, 77]), o($VD, [2, 78]), o($VE, [2, 79]), o($VE, [2, 80]), { 8: [1, 95], 24: 96, 40: 94, 43: 23, 46: $V4 }, { 16: 97, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn }, { 41: [1, 99], 45: 98, 51: $VF }, { 50: [1, 101] }, { 13: [1, 102] }, { 13: [1, 103] }, { 79: [1, 104], 81: [1, 105] }, { 22: $VG, 48: $VH, 59: 106, 60: $VI, 82: $VJ, 84: 107, 85: 108, 86: $VK, 87: $VL, 88: $VM, 89: $VN, 90: $VO }, { 60: [1, 118] }, { 13: $Vz, 55: 119 }, o($Vq, [2, 62]), o($Vq, [2, 128]), { 22: $VG, 48: $VH, 59: 120, 60: $VI, 61: [1, 121], 82: $VJ, 84: 107, 85: 108, 86: $VK, 87: $VL, 88: $VM, 89: $VN, 90: $VO }, o($VP, [2, 64]), { 16: 39, 17: 40, 19: 122, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 18]), { 39: [2, 36] }, { 15: 124, 16: 84, 17: 85, 18: [1, 123], 39: [2, 9], 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 39: [2, 10] }, o($VQ, [2, 45], { 11: 125, 12: [1, 126] }), o($Vp, [2, 7]), { 9: [1, 127] }, o($VR, [2, 57]), { 16: 39, 17: 40, 19: 128, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 13: [1, 130], 16: 39, 17: 40, 19: 129, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($VC, [2, 72], { 66: 131, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VC, [2, 71]), { 41: [1, 132] }, { 24: 96, 40: 133, 43: 23, 46: $V4 }, { 8: [1, 134], 41: [2, 37] }, o($Vy, [2, 41], { 39: [1, 135] }), { 41: [1, 136] }, o($Vy, [2, 43]), { 41: [2, 51], 45: 137, 51: $VF }, { 16: 39, 17: 40, 19: 138, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($Vq, [2, 81], { 13: [1, 139] }), o($Vq, [2, 83], { 13: [1, 141], 77: [1, 140] }), o($Vq, [2, 87], { 13: [1, 142], 80: [1, 143] }), { 13: [1, 144] }, o($Vq, [2, 95], { 61: $VS }), o($VT, [2, 97], { 85: 146, 22: $VG, 48: $VH, 60: $VI, 82: $VJ, 86: $VK, 87: $VL, 88: $VM, 89: $VN, 90: $VO }), o($VU, [2, 99]), o($VU, [2, 101]), o($VU, [2, 102]), o($VU, [2, 103]), o($VU, [2, 104]), o($VU, [2, 105]), o($VU, [2, 106]), o($VU, [2, 107]), o($VU, [2, 108]), o($VU, [2, 109]), o($Vq, [2, 96]), o($Vq, [2, 61]), o($Vq, [2, 63], { 61: $VS }), { 60: [1, 147] }, o($VA, [2, 14]), { 15: 148, 16: 84, 17: 85, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, { 39: [2, 12] }, o($VQ, [2, 46]), { 13: [1, 149] }, { 1: [2, 4] }, o($VR, [2, 59]), o($VR, [2, 58]), { 16: 39, 17: 40, 19: 150, 60: $Vb, 86: $Vl, 100: $Vm, 102: $Vn, 103: $Vo }, o($VC, [2, 70]), o($Vq, [2, 34]), { 41: [1, 151] }, { 24: 96, 40: 152, 41: [2, 38], 43: 23, 46: $V4 }, { 45: 153, 51: $VF }, o($Vy, [2, 42]), { 41: [2, 52] }, o($Vq, [2, 50]), o($Vq, [2, 82]), o($Vq, [2, 84]), o($Vq, [2, 85], { 77: [1, 154] }), o($Vq, [2, 88]), o($Vq, [2, 89], { 13: [1, 155] }), o($Vq, [2, 91], { 13: [1, 157], 77: [1, 156] }), { 22: $VG, 48: $VH, 60: $VI, 82: $VJ, 84: 158, 85: 108, 86: $VK, 87: $VL, 88: $VM, 89: $VN, 90: $VO }, o($VU, [2, 100]), o($VP, [2, 65]), { 39: [2, 11] }, { 14: [1, 159] }, o($VR, [2, 60]), o($Vq, [2, 35]), { 41: [2, 39] }, { 41: [1, 160] }, o($Vq, [2, 86]), o($Vq, [2, 90]), o($Vq, [2, 92]), o($Vq, [2, 93], { 77: [1, 161] }), o($VT, [2, 98], { 85: 146, 22: $VG, 48: $VH, 60: $VI, 82: $VJ, 86: $VK, 87: $VL, 88: $VM, 89: $VN, 90: $VO }), o($VQ, [2, 8]), o($Vy, [2, 44]), o($Vq, [2, 94])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 3], 83: [2, 36], 85: [2, 10], 124: [2, 12], 127: [2, 4], 137: [2, 52], 148: [2, 11], 152: [2, 39] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: {},\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 62;\n break;\n case 1:\n return 63;\n break;\n case 2:\n return 64;\n break;\n case 3:\n return 65;\n break;\n case 4:\n break;\n case 5:\n break;\n case 6:\n this.begin(\"acc_title\");\n return 33;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 35;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n return 8;\n break;\n case 14:\n break;\n case 15:\n return 7;\n break;\n case 16:\n return 7;\n break;\n case 17:\n return \"EDGE_STATE\";\n break;\n case 18:\n this.begin(\"callback_name\");\n break;\n case 19:\n this.popState();\n break;\n case 20:\n this.popState();\n this.begin(\"callback_args\");\n break;\n case 21:\n return 79;\n break;\n case 22:\n this.popState();\n break;\n case 23:\n return 80;\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n break;\n case 26:\n this.begin(\"string\");\n break;\n case 27:\n return 82;\n break;\n case 28:\n return 57;\n break;\n case 29:\n this.begin(\"namespace\");\n return 42;\n break;\n case 30:\n this.popState();\n return 8;\n break;\n case 31:\n break;\n case 32:\n this.begin(\"namespace-body\");\n return 39;\n break;\n case 33:\n this.popState();\n return 41;\n break;\n case 34:\n return \"EOF_IN_STRUCT\";\n break;\n case 35:\n return 8;\n break;\n case 36:\n break;\n case 37:\n return \"EDGE_STATE\";\n break;\n case 38:\n this.begin(\"class\");\n return 46;\n break;\n case 39:\n this.popState();\n return 8;\n break;\n case 40:\n break;\n case 41:\n this.popState();\n this.popState();\n return 41;\n break;\n case 42:\n this.begin(\"class-body\");\n return 39;\n break;\n case 43:\n this.popState();\n return 41;\n break;\n case 44:\n return \"EOF_IN_STRUCT\";\n break;\n case 45:\n return \"EDGE_STATE\";\n break;\n case 46:\n return \"OPEN_IN_STRUCT\";\n break;\n case 47:\n break;\n case 48:\n return \"MEMBER\";\n break;\n case 49:\n return 83;\n break;\n case 50:\n return 75;\n break;\n case 51:\n return 76;\n break;\n case 52:\n return 78;\n break;\n case 53:\n return 54;\n break;\n case 54:\n return 56;\n break;\n case 55:\n return 49;\n break;\n case 56:\n return 50;\n break;\n case 57:\n return 81;\n break;\n case 58:\n this.popState();\n break;\n case 59:\n return \"GENERICTYPE\";\n break;\n case 60:\n this.begin(\"generic\");\n break;\n case 61:\n this.popState();\n break;\n case 62:\n return \"BQUOTE_STR\";\n break;\n case 63:\n this.begin(\"bqstring\");\n break;\n case 64:\n return 77;\n break;\n case 65:\n return 77;\n break;\n case 66:\n return 77;\n break;\n case 67:\n return 77;\n break;\n case 68:\n return 69;\n break;\n case 69:\n return 69;\n break;\n case 70:\n return 71;\n break;\n case 71:\n return 71;\n break;\n case 72:\n return 70;\n break;\n case 73:\n return 68;\n break;\n case 74:\n return 72;\n break;\n case 75:\n return 73;\n break;\n case 76:\n return 74;\n break;\n case 77:\n return 22;\n break;\n case 78:\n return 44;\n break;\n case 79:\n return 100;\n break;\n case 80:\n return 18;\n break;\n case 81:\n return \"PLUS\";\n break;\n case 82:\n return 87;\n break;\n case 83:\n return 61;\n break;\n case 84:\n return 89;\n break;\n case 85:\n return 89;\n break;\n case 86:\n return 90;\n break;\n case 87:\n return \"EQUALS\";\n break;\n case 88:\n return \"EQUALS\";\n break;\n case 89:\n return 60;\n break;\n case 90:\n return 12;\n break;\n case 91:\n return 14;\n break;\n case 92:\n return \"PUNCTUATION\";\n break;\n case 93:\n return 86;\n break;\n case 94:\n return 102;\n break;\n case 95:\n return 48;\n break;\n case 96:\n return 48;\n break;\n case 97:\n return 9;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:classDiagram-v2\\b)/, /^(?:classDiagram\\b)/, /^(?:\\[\\*\\])/, /^(?:call[\\s]+)/, /^(?:\\([\\s]*\\))/, /^(?:\\()/, /^(?:[^(]*)/, /^(?:\\))/, /^(?:[^)]*)/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[\"])/, /^(?:style\\b)/, /^(?:classDef\\b)/, /^(?:namespace\\b)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:\\[\\*\\])/, /^(?:class\\b)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\\[\\*\\])/, /^(?:[{])/, /^(?:[\\n])/, /^(?:[^{}\\n]*)/, /^(?:cssClass\\b)/, /^(?:callback\\b)/, /^(?:link\\b)/, /^(?:click\\b)/, /^(?:note for\\b)/, /^(?:note\\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href\\b)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:~)/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\\b)/, /^(?:_blank\\b)/, /^(?:_parent\\b)/, /^(?:_top\\b)/, /^(?:\\s*<\\|)/, /^(?:\\s*\\|>)/, /^(?:\\s*>)/, /^(?:\\s*<)/, /^(?:\\s*\\*)/, /^(?:\\s*o\\b)/, /^(?:\\s*\\(\\))/, /^(?:--)/, /^(?:\\.\\.)/, /^(?::{1}[^:\\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\\.)/, /^(?:\\+)/, /^(?::)/, /^(?:,)/, /^(?:#)/, /^(?:#)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\\w+)/, /^(?:\\[)/, /^(?:\\])/, /^(?:[!\"#$%&'*+,-.`?\\\\/])/, /^(?:[0-9]+)/, /^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/, /^(?:\\s)/, /^(?:\\s)/, /^(?:$)/],\n conditions: { \"namespace-body\": { \"rules\": [26, 33, 34, 35, 36, 37, 38, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"namespace\": { \"rules\": [26, 29, 30, 31, 32, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"class-body\": { \"rules\": [26, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"class\": { \"rules\": [26, 39, 40, 41, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"acc_title\": { \"rules\": [7, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"callback_args\": { \"rules\": [22, 23, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"callback_name\": { \"rules\": [19, 20, 21, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"href\": { \"rules\": [26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"struct\": { \"rules\": [26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"generic\": { \"rules\": [26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"bqstring\": { \"rules\": [26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"string\": { \"rules\": [24, 25, 26, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 97], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 26, 27, 28, 29, 38, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar classDiagram_default = parser;\n\n// src/diagrams/class/classDb.ts\nimport { select } from \"d3\";\n\n// src/diagrams/class/classTypes.ts\nvar visibilityValues = [\"#\", \"+\", \"~\", \"-\", \"\"];\nvar ClassMember = class {\n static {\n __name(this, \"ClassMember\");\n }\n constructor(input, memberType) {\n this.memberType = memberType;\n this.visibility = \"\";\n this.classifier = \"\";\n this.text = \"\";\n const sanitizedInput = sanitizeText(input, getConfig());\n this.parseMember(sanitizedInput);\n }\n getDisplayDetails() {\n let displayText = this.visibility + parseGenericTypes(this.id);\n if (this.memberType === \"method\") {\n displayText += `(${parseGenericTypes(this.parameters.trim())})`;\n if (this.returnType) {\n displayText += \" : \" + parseGenericTypes(this.returnType);\n }\n }\n displayText = displayText.trim();\n const cssStyle = this.parseClassifier();\n return {\n displayText,\n cssStyle\n };\n }\n parseMember(input) {\n let potentialClassifier = \"\";\n if (this.memberType === \"method\") {\n const methodRegEx = /([#+~-])?(.+)\\((.*)\\)([\\s$*])?(.*)([$*])?/;\n const match = methodRegEx.exec(input);\n if (match) {\n const detectedVisibility = match[1] ? match[1].trim() : \"\";\n if (visibilityValues.includes(detectedVisibility)) {\n this.visibility = detectedVisibility;\n }\n this.id = match[2];\n this.parameters = match[3] ? match[3].trim() : \"\";\n potentialClassifier = match[4] ? match[4].trim() : \"\";\n this.returnType = match[5] ? match[5].trim() : \"\";\n if (potentialClassifier === \"\") {\n const lastChar = this.returnType.substring(this.returnType.length - 1);\n if (/[$*]/.exec(lastChar)) {\n potentialClassifier = lastChar;\n this.returnType = this.returnType.substring(0, this.returnType.length - 1);\n }\n }\n }\n } else {\n const length = input.length;\n const firstChar = input.substring(0, 1);\n const lastChar = input.substring(length - 1);\n if (visibilityValues.includes(firstChar)) {\n this.visibility = firstChar;\n }\n if (/[$*]/.exec(lastChar)) {\n potentialClassifier = lastChar;\n }\n this.id = input.substring(\n this.visibility === \"\" ? 0 : 1,\n potentialClassifier === \"\" ? length : length - 1\n );\n }\n this.classifier = potentialClassifier;\n this.id = this.id.startsWith(\" \") ? \" \" + this.id.trim() : this.id.trim();\n const combinedText = `${this.visibility ? \"\\\\\" + this.visibility : \"\"}${parseGenericTypes(this.id)}${this.memberType === \"method\" ? `(${parseGenericTypes(this.parameters)})${this.returnType ? \" : \" + parseGenericTypes(this.returnType) : \"\"}` : \"\"}`;\n this.text = combinedText.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n if (this.text.startsWith(\"\\\\<\")) {\n this.text = this.text.replace(\"\\\\<\", \"~\");\n }\n }\n parseClassifier() {\n switch (this.classifier) {\n case \"*\":\n return \"font-style:italic;\";\n case \"$\":\n return \"text-decoration:underline;\";\n default:\n return \"\";\n }\n }\n};\n\n// src/diagrams/class/classDb.ts\nvar MERMAID_DOM_ID_PREFIX = \"classId-\";\nvar classCounter = 0;\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => common_default.sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar ClassDB = class {\n constructor() {\n this.relations = [];\n this.classes = /* @__PURE__ */ new Map();\n this.styleClasses = /* @__PURE__ */ new Map();\n this.notes = [];\n this.interfaces = [];\n // private static classCounter = 0;\n this.namespaces = /* @__PURE__ */ new Map();\n this.namespaceCounter = 0;\n this.functions = [];\n this.lineType = {\n LINE: 0,\n DOTTED_LINE: 1\n };\n this.relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n LOLLIPOP: 4\n };\n this.setupToolTips = /* @__PURE__ */ __name((element) => {\n let tooltipElem = select(\".mermaidTooltip\");\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select(\"body\").append(\"div\").attr(\"class\", \"mermaidTooltip\").style(\"opacity\", 0);\n }\n const svg = select(element).select(\"svg\");\n const nodes = svg.selectAll(\"g.node\");\n nodes.on(\"mouseover\", (event) => {\n const el = select(event.currentTarget);\n const title = el.attr(\"title\");\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n tooltipElem.transition().duration(200).style(\"opacity\", \".9\");\n tooltipElem.text(el.attr(\"title\")).style(\"left\", window.scrollX + rect.left + (rect.right - rect.left) / 2 + \"px\").style(\"top\", window.scrollY + rect.top - 14 + document.body.scrollTop + \"px\");\n tooltipElem.html(tooltipElem.html().replace(/<br\\/>/g, \"
\"));\n el.classed(\"hover\", true);\n }).on(\"mouseout\", (event) => {\n tooltipElem.transition().duration(500).style(\"opacity\", 0);\n const el = select(event.currentTarget);\n el.classed(\"hover\", false);\n });\n }, \"setupToolTips\");\n this.direction = \"TB\";\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setAccDescription = setAccDescription;\n this.getAccDescription = getAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getConfig = /* @__PURE__ */ __name(() => getConfig().class, \"getConfig\");\n this.functions.push(this.setupToolTips.bind(this));\n this.clear();\n this.addRelation = this.addRelation.bind(this);\n this.addClassesToNamespace = this.addClassesToNamespace.bind(this);\n this.addNamespace = this.addNamespace.bind(this);\n this.setCssClass = this.setCssClass.bind(this);\n this.addMembers = this.addMembers.bind(this);\n this.addClass = this.addClass.bind(this);\n this.setClassLabel = this.setClassLabel.bind(this);\n this.addAnnotation = this.addAnnotation.bind(this);\n this.addMember = this.addMember.bind(this);\n this.cleanupLabel = this.cleanupLabel.bind(this);\n this.addNote = this.addNote.bind(this);\n this.defineClass = this.defineClass.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.setLink = this.setLink.bind(this);\n this.bindFunctions = this.bindFunctions.bind(this);\n this.clear = this.clear.bind(this);\n this.setTooltip = this.setTooltip.bind(this);\n this.setClickEvent = this.setClickEvent.bind(this);\n this.setCssStyle = this.setCssStyle.bind(this);\n }\n static {\n __name(this, \"ClassDB\");\n }\n splitClassNameAndType(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n let genericType = \"\";\n let className = id;\n if (id.indexOf(\"~\") > 0) {\n const split = id.split(\"~\");\n className = sanitizeText2(split[0]);\n genericType = sanitizeText2(split[1]);\n }\n return { className, type: genericType };\n }\n setClassLabel(_id, label) {\n const id = common_default.sanitizeText(_id, getConfig());\n if (label) {\n label = sanitizeText2(label);\n }\n const { className } = this.splitClassNameAndType(id);\n this.classes.get(className).label = label;\n this.classes.get(className).text = `${label}${this.classes.get(className).type ? `<${this.classes.get(className).type}>` : \"\"}`;\n }\n /**\n * Function called by parser when a node definition has been found.\n *\n * @param id - ID of the class to add\n * @public\n */\n addClass(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n const { className, type } = this.splitClassNameAndType(id);\n if (this.classes.has(className)) {\n return;\n }\n const name = common_default.sanitizeText(className, getConfig());\n this.classes.set(name, {\n id: name,\n type,\n label: name,\n text: `${name}${type ? `<${type}>` : \"\"}`,\n shape: \"classBox\",\n cssClasses: \"default\",\n methods: [],\n members: [],\n annotations: [],\n styles: [],\n domId: MERMAID_DOM_ID_PREFIX + name + \"-\" + classCounter\n });\n classCounter++;\n }\n addInterface(label, classId) {\n const classInterface = {\n id: `interface${this.interfaces.length}`,\n label,\n classId\n };\n this.interfaces.push(classInterface);\n }\n /**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id - class ID to lookup\n * @public\n */\n lookUpDomId(_id) {\n const id = common_default.sanitizeText(_id, getConfig());\n if (this.classes.has(id)) {\n return this.classes.get(id).domId;\n }\n throw new Error(\"Class not found: \" + id);\n }\n clear() {\n this.relations = [];\n this.classes = /* @__PURE__ */ new Map();\n this.notes = [];\n this.interfaces = [];\n this.functions = [];\n this.functions.push(this.setupToolTips.bind(this));\n this.namespaces = /* @__PURE__ */ new Map();\n this.namespaceCounter = 0;\n this.direction = \"TB\";\n clear();\n }\n getClass(id) {\n return this.classes.get(id);\n }\n getClasses() {\n return this.classes;\n }\n getRelations() {\n return this.relations;\n }\n getNotes() {\n return this.notes;\n }\n addRelation(classRelation) {\n log.debug(\"Adding relation: \" + JSON.stringify(classRelation));\n const invalidTypes = [\n this.relationType.LOLLIPOP,\n this.relationType.AGGREGATION,\n this.relationType.COMPOSITION,\n this.relationType.DEPENDENCY,\n this.relationType.EXTENSION\n ];\n if (classRelation.relation.type1 === this.relationType.LOLLIPOP && !invalidTypes.includes(classRelation.relation.type2)) {\n this.addClass(classRelation.id2);\n this.addInterface(classRelation.id1, classRelation.id2);\n classRelation.id1 = `interface${this.interfaces.length - 1}`;\n } else if (classRelation.relation.type2 === this.relationType.LOLLIPOP && !invalidTypes.includes(classRelation.relation.type1)) {\n this.addClass(classRelation.id1);\n this.addInterface(classRelation.id2, classRelation.id1);\n classRelation.id2 = `interface${this.interfaces.length - 1}`;\n } else {\n this.addClass(classRelation.id1);\n this.addClass(classRelation.id2);\n }\n classRelation.id1 = this.splitClassNameAndType(classRelation.id1).className;\n classRelation.id2 = this.splitClassNameAndType(classRelation.id2).className;\n classRelation.relationTitle1 = common_default.sanitizeText(\n classRelation.relationTitle1.trim(),\n getConfig()\n );\n classRelation.relationTitle2 = common_default.sanitizeText(\n classRelation.relationTitle2.trim(),\n getConfig()\n );\n this.relations.push(classRelation);\n }\n /**\n * Adds an annotation to the specified class Annotations mark special properties of the given type\n * (like 'interface' or 'service')\n *\n * @param className - The class name\n * @param annotation - The name of the annotation without any brackets\n * @public\n */\n addAnnotation(className, annotation) {\n const validatedClassName = this.splitClassNameAndType(className).className;\n this.classes.get(validatedClassName).annotations.push(annotation);\n }\n /**\n * Adds a member to the specified class\n *\n * @param className - The class name\n * @param member - The full name of the member. If the member is enclosed in `<>` it is\n * treated as an annotation If the member is ending with a closing bracket ) it is treated as a\n * method Otherwise the member will be treated as a normal property\n * @public\n */\n addMember(className, member) {\n this.addClass(className);\n const validatedClassName = this.splitClassNameAndType(className).className;\n const theClass = this.classes.get(validatedClassName);\n if (typeof member === \"string\") {\n const memberString = member.trim();\n if (memberString.startsWith(\"<<\") && memberString.endsWith(\">>\")) {\n theClass.annotations.push(sanitizeText2(memberString.substring(2, memberString.length - 2)));\n } else if (memberString.indexOf(\")\") > 0) {\n theClass.methods.push(new ClassMember(memberString, \"method\"));\n } else if (memberString) {\n theClass.members.push(new ClassMember(memberString, \"attribute\"));\n }\n }\n }\n addMembers(className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => this.addMember(className, member));\n }\n }\n addNote(text, className) {\n const note = {\n id: `note${this.notes.length}`,\n class: className,\n text\n };\n this.notes.push(note);\n }\n cleanupLabel(label) {\n if (label.startsWith(\":\")) {\n label = label.substring(1);\n }\n return sanitizeText2(label.trim());\n }\n /**\n * Called by parser when assigning cssClass to a class\n *\n * @param ids - Comma separated list of ids\n * @param className - Class to add\n */\n setCssClass(ids, className) {\n ids.split(\",\").forEach((_id) => {\n let id = _id;\n if (/\\d/.exec(_id[0])) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n const classNode = this.classes.get(id);\n if (classNode) {\n classNode.cssClasses += \" \" + className;\n }\n });\n }\n defineClass(ids, style) {\n for (const id of ids) {\n let styleClass = this.styleClasses.get(id);\n if (styleClass === void 0) {\n styleClass = { id, styles: [], textStyles: [] };\n this.styleClasses.set(id, styleClass);\n }\n if (style) {\n style.forEach((s) => {\n if (/color/.exec(s)) {\n const newStyle = s.replace(\"fill\", \"bgFill\");\n styleClass.textStyles.push(newStyle);\n }\n styleClass.styles.push(s);\n });\n }\n this.classes.forEach((value) => {\n if (value.cssClasses.includes(id)) {\n value.styles.push(...style.flatMap((s) => s.split(\",\")));\n }\n });\n }\n }\n /**\n * Called by parser when a tooltip is found, e.g. a clickable element.\n *\n * @param ids - Comma separated list of ids\n * @param tooltip - Tooltip to add\n */\n setTooltip(ids, tooltip) {\n ids.split(\",\").forEach((id) => {\n if (tooltip !== void 0) {\n this.classes.get(id).tooltip = sanitizeText2(tooltip);\n }\n });\n }\n getTooltip(id, namespace) {\n if (namespace && this.namespaces.has(namespace)) {\n return this.namespaces.get(namespace).classes.get(id).tooltip;\n }\n return this.classes.get(id).tooltip;\n }\n /**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n *\n * @param ids - Comma separated list of ids\n * @param linkStr - URL to create a link for\n * @param target - Target of the link, _blank by default as originally defined in the svgDraw.js file\n */\n setLink(ids, linkStr, target) {\n const config = getConfig();\n ids.split(\",\").forEach((_id) => {\n let id = _id;\n if (/\\d/.exec(_id[0])) {\n id = MERMAID_DOM_ID_PREFIX + id;\n }\n const theClass = this.classes.get(id);\n if (theClass) {\n theClass.link = utils_default.formatUrl(linkStr, config);\n if (config.securityLevel === \"sandbox\") {\n theClass.linkTarget = \"_top\";\n } else if (typeof target === \"string\") {\n theClass.linkTarget = sanitizeText2(target);\n } else {\n theClass.linkTarget = \"_blank\";\n }\n }\n });\n this.setCssClass(ids, \"clickable\");\n }\n /**\n * Called by parser when a click definition is found. Registers an event handler.\n *\n * @param ids - Comma separated list of ids\n * @param functionName - Function to be called on click\n * @param functionArgs - Function args the function should be called with\n */\n setClickEvent(ids, functionName, functionArgs) {\n ids.split(\",\").forEach((id) => {\n this.setClickFunc(id, functionName, functionArgs);\n this.classes.get(id).haveCallback = true;\n });\n this.setCssClass(ids, \"clickable\");\n }\n setClickFunc(_domId, functionName, functionArgs) {\n const domId = common_default.sanitizeText(_domId, getConfig());\n const config = getConfig();\n if (config.securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n const id = domId;\n if (this.classes.has(id)) {\n const elemId = this.lookUpDomId(id);\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.startsWith('\"') && item.endsWith('\"')) {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(elemId);\n }\n this.functions.push(() => {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n \"click\",\n () => {\n utils_default.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n }\n bindFunctions(element) {\n this.functions.forEach((fun) => {\n fun(element);\n });\n }\n getDirection() {\n return this.direction;\n }\n setDirection(dir) {\n this.direction = dir;\n }\n /**\n * Function called by parser when a namespace definition has been found.\n *\n * @param id - ID of the namespace to add\n * @public\n */\n addNamespace(id) {\n if (this.namespaces.has(id)) {\n return;\n }\n this.namespaces.set(id, {\n id,\n classes: /* @__PURE__ */ new Map(),\n children: {},\n domId: MERMAID_DOM_ID_PREFIX + id + \"-\" + this.namespaceCounter\n });\n this.namespaceCounter++;\n }\n getNamespace(name) {\n return this.namespaces.get(name);\n }\n getNamespaces() {\n return this.namespaces;\n }\n /**\n * Function called by parser when a namespace definition has been found.\n *\n * @param id - ID of the namespace to add\n * @param classNames - IDs of the class to add\n * @public\n */\n addClassesToNamespace(id, classNames) {\n if (!this.namespaces.has(id)) {\n return;\n }\n for (const name of classNames) {\n const { className } = this.splitClassNameAndType(name);\n this.classes.get(className).parent = id;\n this.namespaces.get(id).classes.set(className, this.classes.get(className));\n }\n }\n setCssStyle(id, styles) {\n const thisClass = this.classes.get(id);\n if (!styles || !thisClass) {\n return;\n }\n for (const s of styles) {\n if (s.includes(\",\")) {\n thisClass.styles.push(...s.split(\",\"));\n } else {\n thisClass.styles.push(s);\n }\n }\n }\n /**\n * Gets the arrow marker for a type index\n *\n * @param type - The type to look for\n * @returns The arrow marker\n */\n getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = \"aggregation\";\n break;\n case 1:\n marker = \"extension\";\n break;\n case 2:\n marker = \"composition\";\n break;\n case 3:\n marker = \"dependency\";\n break;\n case 4:\n marker = \"lollipop\";\n break;\n default:\n marker = \"none\";\n }\n return marker;\n }\n getData() {\n const nodes = [];\n const edges = [];\n const config = getConfig();\n for (const namespaceKey of this.namespaces.keys()) {\n const namespace = this.namespaces.get(namespaceKey);\n if (namespace) {\n const node = {\n id: namespace.id,\n label: namespace.id,\n isGroup: true,\n padding: config.class.padding ?? 16,\n // parent node must be one of [rect, roundedWithTitle, noteGroup, divider]\n shape: \"rect\",\n cssStyles: [\"fill: none\", \"stroke: black\"],\n look: config.look\n };\n nodes.push(node);\n }\n }\n for (const classKey of this.classes.keys()) {\n const classNode = this.classes.get(classKey);\n if (classNode) {\n const node = classNode;\n node.parentId = classNode.parent;\n node.look = config.look;\n nodes.push(node);\n }\n }\n let cnt = 0;\n for (const note of this.notes) {\n cnt++;\n const noteNode = {\n id: note.id,\n label: note.text,\n isGroup: false,\n shape: \"note\",\n padding: config.class.padding ?? 6,\n cssStyles: [\n \"text-align: left\",\n \"white-space: nowrap\",\n `fill: ${config.themeVariables.noteBkgColor}`,\n `stroke: ${config.themeVariables.noteBorderColor}`\n ],\n look: config.look\n };\n nodes.push(noteNode);\n const noteClassId = this.classes.get(note.class)?.id ?? \"\";\n if (noteClassId) {\n const edge = {\n id: `edgeNote${cnt}`,\n start: note.id,\n end: noteClassId,\n type: \"normal\",\n thickness: \"normal\",\n classes: \"relation\",\n arrowTypeStart: \"none\",\n arrowTypeEnd: \"none\",\n arrowheadStyle: \"\",\n labelStyle: [\"\"],\n style: [\"fill: none\"],\n pattern: \"dotted\",\n look: config.look\n };\n edges.push(edge);\n }\n }\n for (const _interface of this.interfaces) {\n const interfaceNode = {\n id: _interface.id,\n label: _interface.label,\n isGroup: false,\n shape: \"rect\",\n cssStyles: [\"opacity: 0;\"],\n look: config.look\n };\n nodes.push(interfaceNode);\n }\n cnt = 0;\n for (const classRelation of this.relations) {\n cnt++;\n const edge = {\n id: getEdgeId(classRelation.id1, classRelation.id2, {\n prefix: \"id\",\n counter: cnt\n }),\n start: classRelation.id1,\n end: classRelation.id2,\n type: \"normal\",\n label: classRelation.title,\n labelpos: \"c\",\n thickness: \"normal\",\n classes: \"relation\",\n arrowTypeStart: this.getArrowMarker(classRelation.relation.type1),\n arrowTypeEnd: this.getArrowMarker(classRelation.relation.type2),\n startLabelRight: classRelation.relationTitle1 === \"none\" ? \"\" : classRelation.relationTitle1,\n endLabelLeft: classRelation.relationTitle2 === \"none\" ? \"\" : classRelation.relationTitle2,\n arrowheadStyle: \"\",\n labelStyle: [\"display: inline-block\"],\n style: classRelation.style || \"\",\n pattern: classRelation.relation.lineType == 1 ? \"dashed\" : \"solid\",\n look: config.look\n };\n edges.push(edge);\n }\n return { nodes, edges, other: {}, config, direction: this.getDirection() };\n }\n};\n\n// src/diagrams/class/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `g.classGroup text {\n fill: ${options.nodeBorder || options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${options.classText};\n}\n.edgeLabel .label rect {\n fill: ${options.mainBkg};\n}\n.label text {\n fill: ${options.classText};\n}\n\n.labelBkg {\n background: ${options.mainBkg};\n}\n.edgeLabel .label span {\n background: ${options.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n line-height: initial;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n ${getIconStyles()}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/class/classRenderer-v3-unified.ts\nvar getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = \"TB\") => {\n if (!parsedItem.doc) {\n return defaultDir;\n }\n let dir = defaultDir;\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n return dir;\n}, \"getDir\");\nvar getClasses = /* @__PURE__ */ __name(function(text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing class diagram (v3)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n data4Layout.rankSpacing = conf?.rankSpacing || 50;\n data4Layout.markers = [\"aggregation\", \"extension\", \"composition\", \"dependency\", \"lollipop\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"classDiagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, \"classDiagram\", conf?.useMaxWidth ?? true);\n}, \"draw\");\nvar classRenderer_v3_unified_default = {\n getClasses,\n draw,\n getDir\n};\n\nexport {\n classDiagram_default,\n ClassDB,\n styles_default,\n classRenderer_v3_unified_default\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","classDiagram_default","visibilityValues","ClassMember","_a","memberType","sanitizedInput","sanitizeText","getConfig","displayText","parseGenericTypes","cssStyle","potentialClassifier","detectedVisibility","lastChar","length","firstChar","combinedText","MERMAID_DOM_ID_PREFIX","classCounter","sanitizeText2","txt","common_default","ClassDB","element","tooltipElem","select","event","el","rect","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","_id","id","genericType","className","split","label","type","name","classId","classInterface","clear","classRelation","log","invalidTypes","annotation","validatedClassName","member","theClass","memberString","members","text","note","ids","classNode","style","styleClass","s","newStyle","value","tooltip","namespace","linkStr","target","config","utils_default","functionName","functionArgs","_domId","domId","elemId","argList","item","elem","fun","dir","classNames","styles","thisClass","marker","nodes","edges","namespaceKey","node","classKey","cnt","noteNode","noteClassId","edge","_interface","interfaceNode","getEdgeId","getStyles","options","getIconStyles","styles_default","getDir","parsedItem","defaultDir","parsedItemDoc","getClasses","diagramObj","draw","_version","diag","securityLevel","conf","layout","data4Layout","svg","getDiagramElement","getRegisteredLayoutAlgorithm","render","padding","setupViewPortForSVG","classRenderer_v3_unified_default"],"mappings":"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C,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAA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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-QN33PNHL.js b/extensions/continue/gui/assets/chunk-QN33PNHL.js new file mode 100644 index 000000000000..3d4ef6e94b68 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-QN33PNHL.js @@ -0,0 +1,2 @@ +import{_ as d,e as b,l}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bb2559ba-cf91-4f2b-b461-7078ac2da300",e._sentryDebugIdIdentifier="sentry-dbid-bb2559ba-cf91-4f2b-b461-7078ac2da300")})()}catch{}var w=d((e,t,i,o)=>{e.attr("class",i);const{width:n,height:a,x:r,y:s}=c(e,t);b(e,a,n,o);const f=u(r,s,n,a,t);e.attr("viewBox",f),l.debug(`viewBox configured: ${f} with padding: ${t}`)},"setupViewPortForSVG"),c=d((e,t)=>{var o;const i=((o=e.node())==null?void 0:o.getBBox())||{width:0,height:0,x:0,y:0};return{width:i.width+t*2,height:i.height+t*2,x:i.x,y:i.y}},"calculateDimensionsWithPadding"),u=d((e,t,i,o,n)=>`${e-n} ${t-n} ${i} ${o}`,"createViewBox");export{w as s}; +//# sourceMappingURL=chunk-QN33PNHL.js.map diff --git a/extensions/continue/gui/assets/chunk-QN33PNHL.js.map b/extensions/continue/gui/assets/chunk-QN33PNHL.js.map new file mode 100644 index 000000000000..2149ede01c38 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-QN33PNHL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-QN33PNHL.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.mjs"],"sourcesContent":["import {\n configureSvgSize\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n"],"names":["setupViewPortForSVG","__name","svg","padding","cssDiagram","useMaxWidth","width","height","x","y","calculateDimensionsWithPadding","configureSvgSize","viewBox","createViewBox","log","bounds","_a"],"mappings":"+kBASG,IAACA,EAAsCC,EAAO,CAACC,EAAKC,EAASC,EAAYC,IAAgB,CAC1FH,EAAI,KAAK,QAASE,CAAU,EAC5B,KAAM,CAAE,MAAAE,EAAO,OAAAC,EAAQ,EAAAC,EAAG,EAAAC,CAAC,EAAKC,EAA+BR,EAAKC,CAAO,EAC3EQ,EAAiBT,EAAKK,EAAQD,EAAOD,CAAW,EAChD,MAAMO,EAAUC,EAAcL,EAAGC,EAAGH,EAAOC,EAAQJ,CAAO,EAC1DD,EAAI,KAAK,UAAWU,CAAO,EAC3BE,EAAI,MAAM,uBAAuBF,CAAO,kBAAkBT,CAAO,EAAE,CACrE,EAAG,qBAAqB,EACpBO,EAAiDT,EAAO,CAACC,EAAKC,IAAY,OAC5E,MAAMY,IAASC,EAAAd,EAAI,KAAI,IAAR,YAAAc,EAAY,YAAa,CAAE,MAAO,EAAG,OAAQ,EAAG,EAAG,EAAG,EAAG,CAAC,EACzE,MAAO,CACL,MAAOD,EAAO,MAAQZ,EAAU,EAChC,OAAQY,EAAO,OAASZ,EAAU,EAClC,EAAGY,EAAO,EACV,EAAGA,EAAO,CACd,CACA,EAAG,gCAAgC,EAC/BF,EAAgCZ,EAAO,CAACO,EAAGC,EAAGH,EAAOC,EAAQJ,IACxD,GAAGK,EAAIL,CAAO,IAAIM,EAAIN,CAAO,IAAIG,CAAK,IAAIC,CAAM,GACtD,eAAe","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-QZHKN3VN.js b/extensions/continue/gui/assets/chunk-QZHKN3VN.js new file mode 100644 index 000000000000..74d762b289bf --- /dev/null +++ b/extensions/continue/gui/assets/chunk-QZHKN3VN.js @@ -0,0 +1,2 @@ +import{_ as i}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="529de569-be47-450b-adf7-987980d3d466",e._sentryDebugIdIdentifier="sentry-dbid-529de569-be47-450b-adf7-987980d3d466")})()}catch{}var t,s=(t=class{constructor(d){this.init=d,this.records=this.init()}reset(){this.records=this.init()}},i(t,"ImperativeState"),t);export{s as I}; +//# sourceMappingURL=chunk-QZHKN3VN.js.map diff --git a/extensions/continue/gui/assets/chunk-QZHKN3VN.js.map b/extensions/continue/gui/assets/chunk-QZHKN3VN.js.map new file mode 100644 index 000000000000..9287fddd34ff --- /dev/null +++ b/extensions/continue/gui/assets/chunk-QZHKN3VN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-QZHKN3VN.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"],"names":["ImperativeState","_a","init","__name"],"mappings":"4kBAKIA,GAAkBC,EAAA,KAAM,CAI1B,YAAYC,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,QAAU,KAAK,KAAI,CAC1B,CAIA,OAAQ,CACN,KAAK,QAAU,KAAK,KAAI,CAC1B,CACF,EALIC,EAAOF,EAAM,iBAAiB,EATZA","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-TVAH2DTR.js b/extensions/continue/gui/assets/chunk-TVAH2DTR.js new file mode 100644 index 000000000000..208d875042c9 --- /dev/null +++ b/extensions/continue/gui/assets/chunk-TVAH2DTR.js @@ -0,0 +1,221 @@ +import{g as te}from"./chunk-55IACEB6.js";import{s as ee}from"./chunk-QN33PNHL.js";import{_ as f,l as b,c as F,r as se,u as ie,a as re,b as ae,g as ne,s as oe,p as le,q as ce,T as he,k as W,y as ue}from"./index.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="92bb25f7-7da2-49e0-943e-f584f8e32b3a",t._sentryDebugIdIdentifier="sentry-dbid-92bb25f7-7da2-49e0-943e-f584f8e32b3a")})()}catch{}var vt=(function(){var t=f(function(V,o,h,n){for(h=h||{},n=V.length;n--;h[V[n]]=o);return h},"o"),e=[1,2],s=[1,3],a=[1,4],i=[2,4],l=[1,9],d=[1,11],S=[1,16],p=[1,17],T=[1,18],_=[1,19],m=[1,33],k=[1,20],A=[1,21],$=[1,22],x=[1,23],I=[1,24],u=[1,26],L=[1,27],O=[1,28],N=[1,29],G=[1,30],P=[1,31],B=[1,32],at=[1,35],nt=[1,36],ot=[1,37],lt=[1,38],K=[1,34],y=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],ct=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],xt=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],gt={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:f(function(o,h,n,g,E,r,Z){var c=r.length-1;switch(E){case 3:return g.setRootDoc(r[c]),r[c];case 4:this.$=[];break;case 5:r[c]!="nl"&&(r[c-1].push(r[c]),this.$=r[c-1]);break;case 6:case 7:this.$=r[c];break;case 8:this.$="nl";break;case 12:this.$=r[c];break;case 13:const tt=r[c-1];tt.description=g.trimColon(r[c]),this.$=tt;break;case 14:this.$={stmt:"relation",state1:r[c-2],state2:r[c]};break;case 15:const Tt=g.trimColon(r[c]);this.$={stmt:"relation",state1:r[c-3],state2:r[c-1],description:Tt};break;case 19:this.$={stmt:"state",id:r[c-3],type:"default",description:"",doc:r[c-1]};break;case 20:var U=r[c],X=r[c-2].trim();if(r[c].match(":")){var ut=r[c].split(":");U=ut[0],X=[X,ut[1]]}this.$={stmt:"state",id:U,type:"default",description:X};break;case 21:this.$={stmt:"state",id:r[c-3],type:"default",description:r[c-5],doc:r[c-1]};break;case 22:this.$={stmt:"state",id:r[c],type:"fork"};break;case 23:this.$={stmt:"state",id:r[c],type:"join"};break;case 24:this.$={stmt:"state",id:r[c],type:"choice"};break;case 25:this.$={stmt:"state",id:g.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[c-1].trim(),note:{position:r[c-2].trim(),text:r[c].trim()}};break;case 29:this.$=r[c].trim(),g.setAccTitle(this.$);break;case 30:case 31:this.$=r[c].trim(),g.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:r[c-3],url:r[c-2],tooltip:r[c-1]};break;case 33:this.$={stmt:"click",id:r[c-3],url:r[c-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:r[c-1].trim(),classes:r[c].trim()};break;case 36:this.$={stmt:"style",id:r[c-1].trim(),styleClass:r[c].trim()};break;case 37:this.$={stmt:"applyClass",id:r[c-1].trim(),styleClass:r[c].trim()};break;case 38:g.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:g.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:g.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:g.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:r[c].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:r[c-2].trim(),classes:[r[c].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:r[c-2].trim(),classes:[r[c].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:s,6:a},{1:[3]},{3:5,4:e,5:s,6:a},{3:6,4:e,5:s,6:a},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:l,5:d,8:8,9:10,10:12,11:13,12:14,13:15,16:S,17:p,19:T,22:_,24:m,25:k,26:A,27:$,28:x,29:I,32:25,33:u,35:L,37:O,38:N,41:G,45:P,48:B,51:at,52:nt,53:ot,54:lt,57:K},t(y,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:S,17:p,19:T,22:_,24:m,25:k,26:A,27:$,28:x,29:I,32:25,33:u,35:L,37:O,38:N,41:G,45:P,48:B,51:at,52:nt,53:ot,54:lt,57:K},t(y,[2,7]),t(y,[2,8]),t(y,[2,9]),t(y,[2,10]),t(y,[2,11]),t(y,[2,12],{14:[1,40],15:[1,41]}),t(y,[2,16]),{18:[1,42]},t(y,[2,18],{20:[1,43]}),{23:[1,44]},t(y,[2,22]),t(y,[2,23]),t(y,[2,24]),t(y,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(y,[2,28]),{34:[1,49]},{36:[1,50]},t(y,[2,31]),{13:51,24:m,57:K},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(ct,[2,44],{58:[1,56]}),t(ct,[2,45],{58:[1,57]}),t(y,[2,38]),t(y,[2,39]),t(y,[2,40]),t(y,[2,41]),t(y,[2,6]),t(y,[2,13]),{13:58,24:m,57:K},t(y,[2,17]),t(xt,i,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(y,[2,29]),t(y,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},t(y,[2,14],{14:[1,71]}),{4:l,5:d,8:8,9:10,10:12,11:13,12:14,13:15,16:S,17:p,19:T,21:[1,72],22:_,24:m,25:k,26:A,27:$,28:x,29:I,32:25,33:u,35:L,37:O,38:N,41:G,45:P,48:B,51:at,52:nt,53:ot,54:lt,57:K},t(y,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),t(ct,[2,46]),t(ct,[2,47]),t(y,[2,15]),t(y,[2,19]),t(xt,i,{7:78}),t(y,[2,26]),t(y,[2,27]),{5:[1,79]},{5:[1,80]},{4:l,5:d,8:8,9:10,10:12,11:13,12:14,13:15,16:S,17:p,19:T,21:[1,81],22:_,24:m,25:k,26:A,27:$,28:x,29:I,32:25,33:u,35:L,37:O,38:N,41:G,45:P,48:B,51:at,52:nt,53:ot,54:lt,57:K},t(y,[2,32]),t(y,[2,33]),t(y,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:f(function(o,h){if(h.recoverable)this.trace(o);else{var n=new Error(o);throw n.hash=h,n}},"parseError"),parse:f(function(o){var h=this,n=[0],g=[],E=[null],r=[],Z=this.table,c="",U=0,X=0,ut=2,tt=1,Tt=r.slice.call(arguments,1),D=Object.create(this.lexer),j={yy:{}};for(var Et in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Et)&&(j.yy[Et]=this.yy[Et]);D.setInput(o,j.yy),j.yy.lexer=D,j.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var _t=D.yylloc;r.push(_t);var Qt=D.options&&D.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Zt(R){n.length=n.length-2*R,E.length=E.length-R,r.length=r.length-R}f(Zt,"popStack");function Lt(){var R;return R=g.pop()||D.lex()||tt,typeof R!="number"&&(R instanceof Array&&(g=R,R=g.pop()),R=h.symbols_[R]||R),R}f(Lt,"lex");for(var C,H,w,mt,J={},dt,Y,Rt,ft;;){if(H=n[n.length-1],this.defaultActions[H]?w=this.defaultActions[H]:((C===null||typeof C>"u")&&(C=Lt()),w=Z[H]&&Z[H][C]),typeof w>"u"||!w.length||!w[0]){var bt="";ft=[];for(dt in Z[H])this.terminals_[dt]&&dt>ut&&ft.push("'"+this.terminals_[dt]+"'");D.showPosition?bt="Parse error on line "+(U+1)+`: +`+D.showPosition()+` +Expecting `+ft.join(", ")+", got '"+(this.terminals_[C]||C)+"'":bt="Parse error on line "+(U+1)+": Unexpected "+(C==tt?"end of input":"'"+(this.terminals_[C]||C)+"'"),this.parseError(bt,{text:D.match,token:this.terminals_[C]||C,line:D.yylineno,loc:_t,expected:ft})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+C);switch(w[0]){case 1:n.push(C),E.push(D.yytext),r.push(D.yylloc),n.push(w[1]),C=null,X=D.yyleng,c=D.yytext,U=D.yylineno,_t=D.yylloc;break;case 2:if(Y=this.productions_[w[1]][1],J.$=E[E.length-Y],J._$={first_line:r[r.length-(Y||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(Y||1)].first_column,last_column:r[r.length-1].last_column},Qt&&(J._$.range=[r[r.length-(Y||1)].range[0],r[r.length-1].range[1]]),mt=this.performAction.apply(J,[c,X,U,j.yy,w[1],E,r].concat(Tt)),typeof mt<"u")return mt;Y&&(n=n.slice(0,-1*Y*2),E=E.slice(0,-1*Y),r=r.slice(0,-1*Y)),n.push(this.productions_[w[1]][0]),E.push(J.$),r.push(J._$),Rt=Z[n[n.length-2]][n[n.length-1]],n.push(Rt);break;case 3:return!0}}return!0},"parse")},qt=(function(){var V={EOF:1,parseError:f(function(h,n){if(this.yy.parser)this.yy.parser.parseError(h,n);else throw new Error(h)},"parseError"),setInput:f(function(o,h){return this.yy=h||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var h=o.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:f(function(o){var h=o.length,n=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===g.length?this.yylloc.first_column:0)+g[g.length-n.length].length-n[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(o){this.unput(this.match.slice(o))},"less"),pastInput:f(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var o=this.pastInput(),h=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:f(function(o,h){var n,g,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),g=o[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],n=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in E)this[r]=E[r];return!1}return!1},"test_match"),next:f(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,h,n,g;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),r=0;rh[0].length)){if(h=n,g=r,this.options.backtrack_lexer){if(o=this.test_match(n,E[r]),o!==!1)return o;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(o=this.test_match(h,E[g]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:f(function(){var h=this.next();return h||this.lex()},"lex"),begin:f(function(h){this.conditionStack.push(h)},"begin"),popState:f(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:f(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:f(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:f(function(h){this.begin(h)},"pushState"),stateStackSize:f(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:f(function(h,n,g,E){switch(g){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:break;case 9:break;case 10:return 5;case 11:break;case 12:break;case 13:break;case 14:break;case 15:return this.pushState("SCALE"),17;case 16:return 18;case 17:this.popState();break;case 18:return this.begin("acc_title"),33;case 19:return this.popState(),"acc_title_value";case 20:return this.begin("acc_descr"),35;case 21:return this.popState(),"acc_descr_value";case 22:this.begin("acc_descr_multiline");break;case 23:this.popState();break;case 24:return"acc_descr_multiline_value";case 25:return this.pushState("CLASSDEF"),41;case 26:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 27:return this.popState(),this.pushState("CLASSDEFID"),42;case 28:return this.popState(),43;case 29:return this.pushState("CLASS"),48;case 30:return this.popState(),this.pushState("CLASS_STYLE"),49;case 31:return this.popState(),50;case 32:return this.pushState("STYLE"),45;case 33:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;case 34:return this.popState(),47;case 35:return this.pushState("SCALE"),17;case 36:return 18;case 37:this.popState();break;case 38:this.pushState("STATE");break;case 39:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),25;case 40:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),26;case 41:return this.popState(),n.yytext=n.yytext.slice(0,-10).trim(),27;case 42:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),25;case 43:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),26;case 44:return this.popState(),n.yytext=n.yytext.slice(0,-10).trim(),27;case 45:return 51;case 46:return 52;case 47:return 53;case 48:return 54;case 49:this.pushState("STATE_STRING");break;case 50:return this.pushState("STATE_ID"),"AS";case 51:return this.popState(),"ID";case 52:this.popState();break;case 53:return"STATE_DESCR";case 54:return 19;case 55:this.popState();break;case 56:return this.popState(),this.pushState("struct"),20;case 57:break;case 58:return this.popState(),21;case 59:break;case 60:return this.begin("NOTE"),29;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:return this.popState(),this.pushState("NOTE_ID"),60;case 63:this.popState(),this.pushState("FLOATING_NOTE");break;case 64:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:break;case 66:return"NOTE_TEXT";case 67:return this.popState(),"ID";case 68:return this.popState(),this.pushState("NOTE_TEXT"),24;case 69:return this.popState(),n.yytext=n.yytext.substr(2).trim(),31;case 70:return this.popState(),n.yytext=n.yytext.slice(0,-8).trim(),31;case 71:return 6;case 72:return 6;case 73:return 16;case 74:return 57;case 75:return 24;case 76:return n.yytext=n.yytext.trim(),14;case 77:return 15;case 78:return 28;case 79:return 58;case 80:return 5;case 81:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[12,13],inclusive:!1},struct:{rules:[12,13,25,29,32,38,45,46,47,48,57,58,59,60,74,75,76,77,78],inclusive:!1},FLOATING_NOTE_ID:{rules:[67],inclusive:!1},FLOATING_NOTE:{rules:[64,65,66],inclusive:!1},NOTE_TEXT:{rules:[69,70],inclusive:!1},NOTE_ID:{rules:[68],inclusive:!1},NOTE:{rules:[61,62,63],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[34],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[33],inclusive:!1},CLASS_STYLE:{rules:[31],inclusive:!1},CLASS:{rules:[30],inclusive:!1},CLASSDEFID:{rules:[28],inclusive:!1},CLASSDEF:{rules:[26,27],inclusive:!1},acc_descr_multiline:{rules:[23,24],inclusive:!1},acc_descr:{rules:[21],inclusive:!1},acc_title:{rules:[19],inclusive:!1},SCALE:{rules:[16,17,36,37],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[51],inclusive:!1},STATE_STRING:{rules:[52,53],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[12,13,39,40,41,42,43,44,49,50,54,55,56],inclusive:!1},ID:{rules:[12,13],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,18,20,22,25,29,32,35,38,56,60,71,72,73,74,75,76,77,79,80,81],inclusive:!0}}};return V})();gt.lexer=qt;function ht(){this.yy={}}return f(ht,"Parser"),ht.prototype=gt,gt.Parser=ht,new ht})();vt.parser=vt;var Be=vt,de="TB",Yt="TB",It="dir",Q="state",q="root",Ct="relation",fe="classDef",pe="style",Se="applyClass",it="default",Gt="divider",Bt="fill:none",Vt="fill: #333",Mt="c",Ut="text",jt="normal",Dt="rect",kt="rectWithTitle",ye="stateStart",ge="stateEnd",Ot="divider",Nt="roundedWithTitle",Te="note",Ee="noteGroup",rt="statediagram",_e="state",me=`${rt}-${_e}`,Ht="transition",be="note",De="note-edge",ke=`${Ht} ${De}`,ve=`${rt}-${be}`,Ce="cluster",Ae=`${rt}-${Ce}`,xe="cluster-alt",Le=`${rt}-${xe}`,Wt="parent",zt="note",Re="state",At="----",Ie=`${At}${zt}`,wt=`${At}${Wt}`,Kt=f((t,e=Yt)=>{if(!t.doc)return e;let s=e;for(const a of t.doc)a.stmt==="dir"&&(s=a.value);return s},"getDir"),Oe=f(function(t,e){return e.db.getClasses()},"getClasses"),Ne=f(async function(t,e,s,a){b.info("REF0:"),b.info("Drawing state diagram (v2)",e);const{securityLevel:i,state:l,layout:d}=F();a.db.extract(a.db.getRootDocV2());const S=a.db.getData(),p=te(e,i);S.type=a.type,S.layoutAlgorithm=d,S.nodeSpacing=(l==null?void 0:l.nodeSpacing)||50,S.rankSpacing=(l==null?void 0:l.rankSpacing)||50,S.markers=["barb"],S.diagramId=e,await se(S,p);const T=8;try{(typeof a.db.getLinks=="function"?a.db.getLinks():new Map).forEach((m,k)=>{var O;const A=typeof k=="string"?k:typeof(k==null?void 0:k.id)=="string"?k.id:"";if(!A){b.warn("⚠️ Invalid or missing stateId from key:",JSON.stringify(k));return}const $=(O=p.node())==null?void 0:O.querySelectorAll("g");let x;if($==null||$.forEach(N=>{var P;((P=N.textContent)==null?void 0:P.trim())===A&&(x=N)}),!x){b.warn("⚠️ Could not find node matching text:",A);return}const I=x.parentNode;if(!I){b.warn("⚠️ Node has no parent, cannot wrap:",A);return}const u=document.createElementNS("http://www.w3.org/2000/svg","a"),L=m.url.replace(/^"+|"+$/g,"");if(u.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",L),u.setAttribute("target","_blank"),m.tooltip){const N=m.tooltip.replace(/^"+|"+$/g,"");u.setAttribute("title",N)}I.replaceChild(u,x),u.appendChild(x),b.info("🔗 Wrapped node in tag for:",A,m.url)})}catch(_){b.error("❌ Error injecting clickable links:",_)}ie.insertTitle(p,"statediagramTitleText",(l==null?void 0:l.titleTopMargin)??25,a.db.getDiagramTitle()),ee(p,T,rt,(l==null?void 0:l.useMaxWidth)??!0)},"draw"),Ve={getClasses:Oe,draw:Ne,getDir:Kt},St=new Map,M=0;function yt(t="",e=0,s="",a=At){const i=s!==null&&s.length>0?`${a}${s}`:"";return`${Re}-${t}${i}-${e}`}f(yt,"stateDomId");var we=f((t,e,s,a,i,l,d,S)=>{b.trace("items",e),e.forEach(p=>{switch(p.stmt){case Q:st(t,p,s,a,i,l,d,S);break;case it:st(t,p,s,a,i,l,d,S);break;case Ct:{st(t,p.state1,s,a,i,l,d,S),st(t,p.state2,s,a,i,l,d,S);const T={id:"edge"+M,start:p.state1.id,end:p.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Bt,labelStyle:"",label:W.sanitizeText(p.description??"",F()),arrowheadStyle:Vt,labelpos:Mt,labelType:Ut,thickness:jt,classes:Ht,look:d};i.push(T),M++}break}})},"setupDoc"),$t=f((t,e=Yt)=>{let s=e;if(t.doc)for(const a of t.doc)a.stmt==="dir"&&(s=a.value);return s},"getDir");function et(t,e,s){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{const l=s.get(i);l&&(e.cssCompiledStyles=[...e.cssCompiledStyles??[],...l.styles])}));const a=t.find(i=>i.id===e.id);a?Object.assign(a,e):t.push(e)}f(et,"insertOrUpdateNode");function Xt(t){var e;return((e=t==null?void 0:t.classes)==null?void 0:e.join(" "))??""}f(Xt,"getClassesFromDbInfo");function Jt(t){return(t==null?void 0:t.styles)??[]}f(Jt,"getStylesFromDbInfo");var st=f((t,e,s,a,i,l,d,S)=>{var A,$,x;const p=e.id,T=s.get(p),_=Xt(T),m=Jt(T),k=F();if(b.info("dataFetcher parsedItem",e,T,m),p!=="root"){let I=Dt;e.start===!0?I=ye:e.start===!1&&(I=ge),e.type!==it&&(I=e.type),St.get(p)||St.set(p,{id:p,shape:I,description:W.sanitizeText(p,k),cssClasses:`${_} ${me}`,cssStyles:m});const u=St.get(p);e.description&&(Array.isArray(u.description)?(u.shape=kt,u.description.push(e.description)):(A=u.description)!=null&&A.length&&u.description.length>0?(u.shape=kt,u.description===p?u.description=[e.description]:u.description=[u.description,e.description]):(u.shape=Dt,u.description=e.description),u.description=W.sanitizeTextOrArray(u.description,k)),(($=u.description)==null?void 0:$.length)===1&&u.shape===kt&&(u.type==="group"?u.shape=Nt:u.shape=Dt),!u.type&&e.doc&&(b.info("Setting cluster for XCX",p,$t(e)),u.type="group",u.isGroup=!0,u.dir=$t(e),u.shape=e.type===Gt?Ot:Nt,u.cssClasses=`${u.cssClasses} ${Ae} ${l?Le:""}`);const L={labelStyle:"",shape:u.shape,label:u.description,cssClasses:u.cssClasses,cssCompiledStyles:[],cssStyles:u.cssStyles,id:p,dir:u.dir,domId:yt(p,M),type:u.type,isGroup:u.type==="group",padding:8,rx:10,ry:10,look:d};if(L.shape===Ot&&(L.label=""),t&&t.id!=="root"&&(b.trace("Setting node ",p," to be child of its parent ",t.id),L.parentId=t.id),L.centerLabel=!0,e.note){const O={labelStyle:"",shape:Te,label:e.note.text,cssClasses:ve,cssStyles:[],cssCompiledStyles:[],id:p+Ie+"-"+M,domId:yt(p,M,zt),type:u.type,isGroup:u.type==="group",padding:(x=k.flowchart)==null?void 0:x.padding,look:d,position:e.note.position},N=p+wt,G={labelStyle:"",shape:Ee,label:e.note.text,cssClasses:u.cssClasses,cssStyles:[],id:p+wt,domId:yt(p,M,Wt),type:"group",isGroup:!0,padding:16,look:d,position:e.note.position};M++,G.id=N,O.parentId=N,et(a,G,S),et(a,O,S),et(a,L,S);let P=p,B=O.id;e.note.position==="left of"&&(P=O.id,B=p),i.push({id:P+"-"+B,start:P,end:B,arrowhead:"none",arrowTypeEnd:"",style:Bt,labelStyle:"",classes:ke,arrowheadStyle:Vt,labelpos:Mt,labelType:Ut,thickness:jt,look:d})}else et(a,L,S)}e.doc&&(b.trace("Adding nodes children "),we(e,e.doc,s,a,i,!l,d,S))},"dataFetcher"),$e=f(()=>{St.clear(),M=0},"reset"),v={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},Pt=f(()=>new Map,"newClassesList"),Ft=f(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),pt=f(t=>JSON.parse(JSON.stringify(t)),"clone"),z,Me=(z=class{constructor(e){this.version=e,this.nodes=[],this.edges=[],this.rootDoc=[],this.classes=Pt(),this.documents={root:Ft()},this.currentDocument=this.documents.root,this.startEndCount=0,this.dividerCnt=0,this.links=new Map,this.getAccTitle=re,this.setAccTitle=ae,this.getAccDescription=ne,this.setAccDescription=oe,this.setDiagramTitle=le,this.getDiagramTitle=ce,this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}extract(e){this.clear(!0);for(const i of Array.isArray(e)?e:e.doc)switch(i.stmt){case Q:this.addState(i.id.trim(),i.type,i.doc,i.description,i.note);break;case Ct:this.addRelation(i.state1,i.state2,i.description);break;case fe:this.addStyleClass(i.id.trim(),i.classes);break;case pe:this.handleStyleDef(i);break;case Se:this.setCssClass(i.id.trim(),i.styleClass);break;case"click":this.addLink(i.id,i.url,i.tooltip);break}const s=this.getStates(),a=F();$e(),st(void 0,this.getRootDocV2(),s,this.nodes,this.edges,!0,a.look,this.classes);for(const i of this.nodes)if(Array.isArray(i.label)){if(i.description=i.label.slice(1),i.isGroup&&i.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${i.id}]`);i.label=i.label[0]}}handleStyleDef(e){const s=e.id.trim().split(","),a=e.styleClass.split(",");for(const i of s){let l=this.getState(i);if(!l){const d=i.trim();this.addState(d),l=this.getState(d)}l&&(l.styles=a.map(d=>{var S;return(S=d.replace(/;/g,""))==null?void 0:S.trim()}))}}setRootDoc(e){b.info("Setting root doc",e),this.rootDoc=e,this.version===1?this.extract(e):this.extract(this.getRootDocV2())}docTranslator(e,s,a){if(s.stmt===Ct){this.docTranslator(e,s.state1,!0),this.docTranslator(e,s.state2,!1);return}if(s.stmt===Q&&(s.id===v.START_NODE?(s.id=e.id+(a?"_start":"_end"),s.start=a):s.id=s.id.trim()),s.stmt!==q&&s.stmt!==Q||!s.doc)return;const i=[];let l=[];for(const d of s.doc)if(d.type===Gt){const S=pt(d);S.doc=pt(l),i.push(S),l=[]}else l.push(d);if(i.length>0&&l.length>0){const d={stmt:Q,id:he(),type:"divider",doc:pt(l)};i.push(pt(d)),s.doc=i}s.doc.forEach(d=>this.docTranslator(s,d,!0))}getRootDocV2(){return this.docTranslator({id:q,stmt:q},{id:q,stmt:q,doc:this.rootDoc},!0),{id:q,doc:this.rootDoc}}addState(e,s=it,a=void 0,i=void 0,l=void 0,d=void 0,S=void 0,p=void 0){const T=e==null?void 0:e.trim();if(!this.currentDocument.states.has(T))b.info("Adding state ",T,i),this.currentDocument.states.set(T,{stmt:Q,id:T,descriptions:[],type:s,doc:a,note:l,classes:[],styles:[],textStyles:[]});else{const _=this.currentDocument.states.get(T);if(!_)throw new Error(`State not found: ${T}`);_.doc||(_.doc=a),_.type||(_.type=s)}if(i&&(b.info("Setting state description",T,i),(Array.isArray(i)?i:[i]).forEach(m=>this.addDescription(T,m.trim()))),l){const _=this.currentDocument.states.get(T);if(!_)throw new Error(`State not found: ${T}`);_.note=l,_.note.text=W.sanitizeText(_.note.text,F())}d&&(b.info("Setting state classes",T,d),(Array.isArray(d)?d:[d]).forEach(m=>this.setCssClass(T,m.trim()))),S&&(b.info("Setting state styles",T,S),(Array.isArray(S)?S:[S]).forEach(m=>this.setStyle(T,m.trim()))),p&&(b.info("Setting state styles",T,S),(Array.isArray(p)?p:[p]).forEach(m=>this.setTextStyle(T,m.trim())))}clear(e){this.nodes=[],this.edges=[],this.documents={root:Ft()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=Pt(),e||(this.links=new Map,ue())}getState(e){return this.currentDocument.states.get(e)}getStates(){return this.currentDocument.states}logDocuments(){b.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(e,s,a){this.links.set(e,{url:s,tooltip:a}),b.warn("Adding link",e,s,a)}getLinks(){return this.links}startIdIfNeeded(e=""){return e===v.START_NODE?(this.startEndCount++,`${v.START_TYPE}${this.startEndCount}`):e}startTypeIfNeeded(e="",s=it){return e===v.START_NODE?v.START_TYPE:s}endIdIfNeeded(e=""){return e===v.END_NODE?(this.startEndCount++,`${v.END_TYPE}${this.startEndCount}`):e}endTypeIfNeeded(e="",s=it){return e===v.END_NODE?v.END_TYPE:s}addRelationObjs(e,s,a=""){const i=this.startIdIfNeeded(e.id.trim()),l=this.startTypeIfNeeded(e.id.trim(),e.type),d=this.startIdIfNeeded(s.id.trim()),S=this.startTypeIfNeeded(s.id.trim(),s.type);this.addState(i,l,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.addState(d,S,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),this.currentDocument.relations.push({id1:i,id2:d,relationTitle:W.sanitizeText(a,F())})}addRelation(e,s,a){if(typeof e=="object"&&typeof s=="object")this.addRelationObjs(e,s,a);else if(typeof e=="string"&&typeof s=="string"){const i=this.startIdIfNeeded(e.trim()),l=this.startTypeIfNeeded(e),d=this.endIdIfNeeded(s.trim()),S=this.endTypeIfNeeded(s);this.addState(i,l),this.addState(d,S),this.currentDocument.relations.push({id1:i,id2:d,relationTitle:a?W.sanitizeText(a,F()):void 0})}}addDescription(e,s){var l;const a=this.currentDocument.states.get(e),i=s.startsWith(":")?s.replace(":","").trim():s;(l=a==null?void 0:a.descriptions)==null||l.push(W.sanitizeText(i,F()))}cleanupLabel(e){return e.startsWith(":")?e.slice(2).trim():e.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(e,s=""){this.classes.has(e)||this.classes.set(e,{id:e,styles:[],textStyles:[]});const a=this.classes.get(e);s&&a&&s.split(v.STYLECLASS_SEP).forEach(i=>{const l=i.replace(/([^;]*);/,"$1").trim();if(RegExp(v.COLOR_KEYWORD).exec(i)){const S=l.replace(v.FILL_KEYWORD,v.BG_FILL).replace(v.COLOR_KEYWORD,v.FILL_KEYWORD);a.textStyles.push(S)}a.styles.push(l)})}getClasses(){return this.classes}setCssClass(e,s){e.split(",").forEach(a=>{var l;let i=this.getState(a);if(!i){const d=a.trim();this.addState(d),i=this.getState(d)}(l=i==null?void 0:i.classes)==null||l.push(s)})}setStyle(e,s){var a,i;(i=(a=this.getState(e))==null?void 0:a.styles)==null||i.push(s)}setTextStyle(e,s){var a,i;(i=(a=this.getState(e))==null?void 0:a.textStyles)==null||i.push(s)}getDirectionStatement(){return this.rootDoc.find(e=>e.stmt===It)}getDirection(){var e;return((e=this.getDirectionStatement())==null?void 0:e.value)??de}setDirection(e){const s=this.getDirectionStatement();s?s.value=e:this.rootDoc.unshift({stmt:It,value:e})}trimColon(e){return e.startsWith(":")?e.slice(1).trim():e.trim()}getData(){const e=F();return{nodes:this.nodes,edges:this.edges,other:{},config:e,direction:Kt(this.getRootDocV2())}}getConfig(){return F().state}},f(z,"StateDB"),z.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},z),Pe=f(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),Ue=Pe;export{Me as S,Be as a,Ve as b,Ue as s}; +//# sourceMappingURL=chunk-TVAH2DTR.js.map diff --git a/extensions/continue/gui/assets/chunk-TVAH2DTR.js.map b/extensions/continue/gui/assets/chunk-TVAH2DTR.js.map new file mode 100644 index 000000000000..fcb780a60a9f --- /dev/null +++ b/extensions/continue/gui/assets/chunk-TVAH2DTR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-TVAH2DTR.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-TVAH2DTR.mjs"],"sourcesContent":["import {\n getDiagramElement\n} from \"./chunk-55IACEB6.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n render\n} from \"./chunk-6OXUPJBA.mjs\";\nimport {\n generateId,\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n common_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/parser/stateDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 16], $V7 = [1, 17], $V8 = [1, 18], $V9 = [1, 19], $Va = [1, 33], $Vb = [1, 20], $Vc = [1, 21], $Vd = [1, 22], $Ve = [1, 23], $Vf = [1, 24], $Vg = [1, 26], $Vh = [1, 27], $Vi = [1, 28], $Vj = [1, 29], $Vk = [1, 30], $Vl = [1, 31], $Vm = [1, 32], $Vn = [1, 35], $Vo = [1, 36], $Vp = [1, 37], $Vq = [1, 38], $Vr = [1, 34], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 39, 40, 41, 45, 48, 51, 52, 53, 54, 57], $Vu = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NL\": 5, \"SD\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"classDefStatement\": 10, \"styleStatement\": 11, \"cssClassStatement\": 12, \"idStatement\": 13, \"DESCR\": 14, \"-->\": 15, \"HIDE_EMPTY\": 16, \"scale\": 17, \"WIDTH\": 18, \"COMPOSIT_STATE\": 19, \"STRUCT_START\": 20, \"STRUCT_STOP\": 21, \"STATE_DESCR\": 22, \"AS\": 23, \"ID\": 24, \"FORK\": 25, \"JOIN\": 26, \"CHOICE\": 27, \"CONCURRENT\": 28, \"note\": 29, \"notePosition\": 30, \"NOTE_TEXT\": 31, \"direction\": 32, \"acc_title\": 33, \"acc_title_value\": 34, \"acc_descr\": 35, \"acc_descr_value\": 36, \"acc_descr_multiline_value\": 37, \"CLICK\": 38, \"STRING\": 39, \"HREF\": 40, \"classDef\": 41, \"CLASSDEF_ID\": 42, \"CLASSDEF_STYLEOPTS\": 43, \"DEFAULT\": 44, \"style\": 45, \"STYLE_IDS\": 46, \"STYLEDEF_STYLEOPTS\": 47, \"class\": 48, \"CLASSENTITY_IDS\": 49, \"STYLECLASS\": 50, \"direction_tb\": 51, \"direction_bt\": 52, \"direction_rl\": 53, \"direction_lr\": 54, \"eol\": 55, \";\": 56, \"EDGE_STATE\": 57, \"STYLE_SEPARATOR\": 58, \"left_of\": 59, \"right_of\": 60, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NL\", 6: \"SD\", 14: \"DESCR\", 15: \"-->\", 16: \"HIDE_EMPTY\", 17: \"scale\", 18: \"WIDTH\", 19: \"COMPOSIT_STATE\", 20: \"STRUCT_START\", 21: \"STRUCT_STOP\", 22: \"STATE_DESCR\", 23: \"AS\", 24: \"ID\", 25: \"FORK\", 26: \"JOIN\", 27: \"CHOICE\", 28: \"CONCURRENT\", 29: \"note\", 31: \"NOTE_TEXT\", 33: \"acc_title\", 34: \"acc_title_value\", 35: \"acc_descr\", 36: \"acc_descr_value\", 37: \"acc_descr_multiline_value\", 38: \"CLICK\", 39: \"STRING\", 40: \"HREF\", 41: \"classDef\", 42: \"CLASSDEF_ID\", 43: \"CLASSDEF_STYLEOPTS\", 44: \"DEFAULT\", 45: \"style\", 46: \"STYLE_IDS\", 47: \"STYLEDEF_STYLEOPTS\", 48: \"class\", 49: \"CLASSENTITY_IDS\", 50: \"STYLECLASS\", 51: \"direction_tb\", 52: \"direction_bt\", 53: \"direction_rl\", 54: \"direction_lr\", 56: \";\", 57: \"EDGE_STATE\", 58: \"STYLE_SEPARATOR\", 59: \"left_of\", 60: \"right_of\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 3], [9, 4], [9, 1], [9, 2], [9, 1], [9, 4], [9, 3], [9, 6], [9, 1], [9, 1], [9, 1], [9, 1], [9, 4], [9, 4], [9, 1], [9, 2], [9, 2], [9, 1], [9, 5], [9, 5], [10, 3], [10, 3], [11, 3], [12, 3], [32, 1], [32, 1], [32, 1], [32, 1], [55, 1], [55, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setRootDoc($$[$0]);\n return $$[$0];\n break;\n case 4:\n this.$ = [];\n break;\n case 5:\n if ($$[$0] != \"nl\") {\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n }\n break;\n case 6:\n case 7:\n this.$ = $$[$0];\n break;\n case 8:\n this.$ = \"nl\";\n break;\n case 12:\n this.$ = $$[$0];\n break;\n case 13:\n const stateStmt = $$[$0 - 1];\n stateStmt.description = yy.trimColon($$[$0]);\n this.$ = stateStmt;\n break;\n case 14:\n this.$ = { stmt: \"relation\", state1: $$[$0 - 2], state2: $$[$0] };\n break;\n case 15:\n const relDescription = yy.trimColon($$[$0]);\n this.$ = { stmt: \"relation\", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };\n break;\n case 19:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: \"\", doc: $$[$0 - 1] };\n break;\n case 20:\n var id = $$[$0];\n var description = $$[$0 - 2].trim();\n if ($$[$0].match(\":\")) {\n var parts = $$[$0].split(\":\");\n id = parts[0];\n description = [description, parts[1]];\n }\n this.$ = { stmt: \"state\", id, type: \"default\", description };\n break;\n case 21:\n this.$ = { stmt: \"state\", id: $$[$0 - 3], type: \"default\", description: $$[$0 - 5], doc: $$[$0 - 1] };\n break;\n case 22:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"fork\" };\n break;\n case 23:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"join\" };\n break;\n case 24:\n this.$ = { stmt: \"state\", id: $$[$0], type: \"choice\" };\n break;\n case 25:\n this.$ = { stmt: \"state\", id: yy.getDividerId(), type: \"divider\" };\n break;\n case 26:\n this.$ = { stmt: \"state\", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };\n break;\n case 29:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 30:\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 32:\n this.$ = {\n stmt: \"click\",\n id: $$[$0 - 3],\n url: $$[$0 - 2],\n tooltip: $$[$0 - 1]\n };\n break;\n case 33:\n this.$ = {\n stmt: \"click\",\n id: $$[$0 - 3],\n url: $$[$0 - 1],\n tooltip: \"\"\n };\n break;\n case 34:\n case 35:\n this.$ = { stmt: \"classDef\", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };\n break;\n case 36:\n this.$ = { stmt: \"style\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 37:\n this.$ = { stmt: \"applyClass\", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };\n break;\n case 38:\n yy.setDirection(\"TB\");\n this.$ = { stmt: \"dir\", value: \"TB\" };\n break;\n case 39:\n yy.setDirection(\"BT\");\n this.$ = { stmt: \"dir\", value: \"BT\" };\n break;\n case 40:\n yy.setDirection(\"RL\");\n this.$ = { stmt: \"dir\", value: \"RL\" };\n break;\n case 41:\n yy.setDirection(\"LR\");\n this.$ = { stmt: \"dir\", value: \"LR\" };\n break;\n case 44:\n case 45:\n this.$ = { stmt: \"state\", id: $$[$0].trim(), type: \"default\", description: \"\" };\n break;\n case 46:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n case 47:\n this.$ = { stmt: \"state\", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: \"default\", description: \"\" };\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 41, 45, 48, 51, 52, 53, 54, 57], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 5]), { 9: 39, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 7]), o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 40], 15: [1, 41] }), o($Vs, [2, 16]), { 18: [1, 42] }, o($Vs, [2, 18], { 20: [1, 43] }), { 23: [1, 44] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 45, 31: [1, 46], 59: [1, 47], 60: [1, 48] }, o($Vs, [2, 28]), { 34: [1, 49] }, { 36: [1, 50] }, o($Vs, [2, 31]), { 13: 51, 24: $Va, 57: $Vr }, { 42: [1, 52], 44: [1, 53] }, { 46: [1, 54] }, { 49: [1, 55] }, o($Vt, [2, 44], { 58: [1, 56] }), o($Vt, [2, 45], { 58: [1, 57] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vs, [2, 6]), o($Vs, [2, 13]), { 13: 58, 24: $Va, 57: $Vr }, o($Vs, [2, 17]), o($Vu, $V3, { 7: 59 }), { 24: [1, 60] }, { 24: [1, 61] }, { 23: [1, 62] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 29]), o($Vs, [2, 30]), { 39: [1, 63], 40: [1, 64] }, { 43: [1, 65] }, { 43: [1, 66] }, { 47: [1, 67] }, { 50: [1, 68] }, { 24: [1, 69] }, { 24: [1, 70] }, o($Vs, [2, 14], { 14: [1, 71] }), { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 72], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 20], { 20: [1, 73] }), { 31: [1, 74] }, { 24: [1, 75] }, { 39: [1, 76] }, { 39: [1, 77] }, o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vs, [2, 36]), o($Vs, [2, 37]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vu, $V3, { 7: 78 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 5: [1, 79] }, { 5: [1, 80] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 10: 12, 11: 13, 12: 14, 13: 15, 16: $V6, 17: $V7, 19: $V8, 21: [1, 81], 22: $V9, 24: $Va, 25: $Vb, 26: $Vc, 27: $Vd, 28: $Ve, 29: $Vf, 32: 25, 33: $Vg, 35: $Vh, 37: $Vi, 38: $Vj, 41: $Vk, 45: $Vl, 48: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 54: $Vq, 57: $Vr }, o($Vs, [2, 32]), o($Vs, [2, 33]), o($Vs, [2, 21])],\n defaultActions: { 5: [2, 1], 6: [2, 2], 47: [2, 48], 48: [2, 49] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 38;\n break;\n case 1:\n return 40;\n break;\n case 2:\n return 39;\n break;\n case 3:\n return 44;\n break;\n case 4:\n return 51;\n break;\n case 5:\n return 52;\n break;\n case 6:\n return 53;\n break;\n case 7:\n return 54;\n break;\n case 8:\n break;\n case 9:\n {\n }\n break;\n case 10:\n return 5;\n break;\n case 11:\n break;\n case 12:\n break;\n case 13:\n break;\n case 14:\n break;\n case 15:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 16:\n return 18;\n break;\n case 17:\n this.popState();\n break;\n case 18:\n this.begin(\"acc_title\");\n return 33;\n break;\n case 19:\n this.popState();\n return \"acc_title_value\";\n break;\n case 20:\n this.begin(\"acc_descr\");\n return 35;\n break;\n case 21:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 22:\n this.begin(\"acc_descr_multiline\");\n break;\n case 23:\n this.popState();\n break;\n case 24:\n return \"acc_descr_multiline_value\";\n break;\n case 25:\n this.pushState(\"CLASSDEF\");\n return 41;\n break;\n case 26:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return \"DEFAULT_CLASSDEF_ID\";\n break;\n case 27:\n this.popState();\n this.pushState(\"CLASSDEFID\");\n return 42;\n break;\n case 28:\n this.popState();\n return 43;\n break;\n case 29:\n this.pushState(\"CLASS\");\n return 48;\n break;\n case 30:\n this.popState();\n this.pushState(\"CLASS_STYLE\");\n return 49;\n break;\n case 31:\n this.popState();\n return 50;\n break;\n case 32:\n this.pushState(\"STYLE\");\n return 45;\n break;\n case 33:\n this.popState();\n this.pushState(\"STYLEDEF_STYLES\");\n return 46;\n break;\n case 34:\n this.popState();\n return 47;\n break;\n case 35:\n this.pushState(\"SCALE\");\n return 17;\n break;\n case 36:\n return 18;\n break;\n case 37:\n this.popState();\n break;\n case 38:\n this.pushState(\"STATE\");\n break;\n case 39:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 40:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 41:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 42:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 25;\n break;\n case 43:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 26;\n break;\n case 44:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -10).trim();\n return 27;\n break;\n case 45:\n return 51;\n break;\n case 46:\n return 52;\n break;\n case 47:\n return 53;\n break;\n case 48:\n return 54;\n break;\n case 49:\n this.pushState(\"STATE_STRING\");\n break;\n case 50:\n this.pushState(\"STATE_ID\");\n return \"AS\";\n break;\n case 51:\n this.popState();\n return \"ID\";\n break;\n case 52:\n this.popState();\n break;\n case 53:\n return \"STATE_DESCR\";\n break;\n case 54:\n return 19;\n break;\n case 55:\n this.popState();\n break;\n case 56:\n this.popState();\n this.pushState(\"struct\");\n return 20;\n break;\n case 57:\n break;\n case 58:\n this.popState();\n return 21;\n break;\n case 59:\n break;\n case 60:\n this.begin(\"NOTE\");\n return 29;\n break;\n case 61:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 59;\n break;\n case 62:\n this.popState();\n this.pushState(\"NOTE_ID\");\n return 60;\n break;\n case 63:\n this.popState();\n this.pushState(\"FLOATING_NOTE\");\n break;\n case 64:\n this.popState();\n this.pushState(\"FLOATING_NOTE_ID\");\n return \"AS\";\n break;\n case 65:\n break;\n case 66:\n return \"NOTE_TEXT\";\n break;\n case 67:\n this.popState();\n return \"ID\";\n break;\n case 68:\n this.popState();\n this.pushState(\"NOTE_TEXT\");\n return 24;\n break;\n case 69:\n this.popState();\n yy_.yytext = yy_.yytext.substr(2).trim();\n return 31;\n break;\n case 70:\n this.popState();\n yy_.yytext = yy_.yytext.slice(0, -8).trim();\n return 31;\n break;\n case 71:\n return 6;\n break;\n case 72:\n return 6;\n break;\n case 73:\n return 16;\n break;\n case 74:\n return 57;\n break;\n case 75:\n return 24;\n break;\n case 76:\n yy_.yytext = yy_.yytext.trim();\n return 14;\n break;\n case 77:\n return 15;\n break;\n case 78:\n return 28;\n break;\n case 79:\n return 58;\n break;\n case 80:\n return 5;\n break;\n case 81:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:click\\b)/i, /^(?:href\\b)/i, /^(?:\"[^\"]*\")/i, /^(?:default\\b)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:[\\s]+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:classDef\\s+)/i, /^(?:DEFAULT\\s+)/i, /^(?:\\w+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:class\\s+)/i, /^(?:(\\w+)+((,\\s*\\w+)*))/i, /^(?:[^\\n]*)/i, /^(?:style\\s+)/i, /^(?:[\\w,]+\\s+)/i, /^(?:[^\\n]*)/i, /^(?:scale\\s+)/i, /^(?:\\d+)/i, /^(?:\\s+width\\b)/i, /^(?:state\\s+)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*<>)/i, /^(?:.*\\[\\[fork\\]\\])/i, /^(?:.*\\[\\[join\\]\\])/i, /^(?:.*\\[\\[choice\\]\\])/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:[\"])/i, /^(?:\\s*as\\s+)/i, /^(?:[^\\n\\{]*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n\\s\\{]+)/i, /^(?:\\n)/i, /^(?:\\{)/i, /^(?:%%(?!\\{)[^\\n]*)/i, /^(?:\\})/i, /^(?:[\\n])/i, /^(?:note\\s+)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:\")/i, /^(?:\\s*as\\s*)/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[^\\n]*)/i, /^(?:\\s*[^:\\n\\s\\-]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:[\\s\\S]*?end note\\b)/i, /^(?:stateDiagram\\s+)/i, /^(?:stateDiagram-v2\\s+)/i, /^(?:hide empty description\\b)/i, /^(?:\\[\\*\\])/i, /^(?:[^:\\n\\s\\-\\{]+)/i, /^(?:\\s*:[^:\\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"LINE\": { \"rules\": [12, 13], \"inclusive\": false }, \"struct\": { \"rules\": [12, 13, 25, 29, 32, 38, 45, 46, 47, 48, 57, 58, 59, 60, 74, 75, 76, 77, 78], \"inclusive\": false }, \"FLOATING_NOTE_ID\": { \"rules\": [67], \"inclusive\": false }, \"FLOATING_NOTE\": { \"rules\": [64, 65, 66], \"inclusive\": false }, \"NOTE_TEXT\": { \"rules\": [69, 70], \"inclusive\": false }, \"NOTE_ID\": { \"rules\": [68], \"inclusive\": false }, \"NOTE\": { \"rules\": [61, 62, 63], \"inclusive\": false }, \"STYLEDEF_STYLEOPTS\": { \"rules\": [], \"inclusive\": false }, \"STYLEDEF_STYLES\": { \"rules\": [34], \"inclusive\": false }, \"STYLE_IDS\": { \"rules\": [], \"inclusive\": false }, \"STYLE\": { \"rules\": [33], \"inclusive\": false }, \"CLASS_STYLE\": { \"rules\": [31], \"inclusive\": false }, \"CLASS\": { \"rules\": [30], \"inclusive\": false }, \"CLASSDEFID\": { \"rules\": [28], \"inclusive\": false }, \"CLASSDEF\": { \"rules\": [26, 27], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [23, 24], \"inclusive\": false }, \"acc_descr\": { \"rules\": [21], \"inclusive\": false }, \"acc_title\": { \"rules\": [19], \"inclusive\": false }, \"SCALE\": { \"rules\": [16, 17, 36, 37], \"inclusive\": false }, \"ALIAS\": { \"rules\": [], \"inclusive\": false }, \"STATE_ID\": { \"rules\": [51], \"inclusive\": false }, \"STATE_STRING\": { \"rules\": [52, 53], \"inclusive\": false }, \"FORK_STATE\": { \"rules\": [], \"inclusive\": false }, \"STATE\": { \"rules\": [12, 13, 39, 40, 41, 42, 43, 44, 49, 50, 54, 55, 56], \"inclusive\": false }, \"ID\": { \"rules\": [12, 13], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 18, 20, 22, 25, 29, 32, 35, 38, 56, 60, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar stateDiagram_default = parser;\n\n// src/diagrams/state/stateCommon.ts\nvar DEFAULT_DIAGRAM_DIRECTION = \"TB\";\nvar DEFAULT_NESTED_DOC_DIR = \"TB\";\nvar STMT_DIRECTION = \"dir\";\nvar STMT_STATE = \"state\";\nvar STMT_ROOT = \"root\";\nvar STMT_RELATION = \"relation\";\nvar STMT_CLASSDEF = \"classDef\";\nvar STMT_STYLEDEF = \"style\";\nvar STMT_APPLYCLASS = \"applyClass\";\nvar DEFAULT_STATE_TYPE = \"default\";\nvar DIVIDER_TYPE = \"divider\";\nvar G_EDGE_STYLE = \"fill:none\";\nvar G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nvar G_EDGE_LABELPOS = \"c\";\nvar G_EDGE_LABELTYPE = \"text\";\nvar G_EDGE_THICKNESS = \"normal\";\nvar SHAPE_STATE = \"rect\";\nvar SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nvar SHAPE_START = \"stateStart\";\nvar SHAPE_END = \"stateEnd\";\nvar SHAPE_DIVIDER = \"divider\";\nvar SHAPE_GROUP = \"roundedWithTitle\";\nvar SHAPE_NOTE = \"note\";\nvar SHAPE_NOTEGROUP = \"noteGroup\";\nvar CSS_DIAGRAM = \"statediagram\";\nvar CSS_STATE = \"state\";\nvar CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nvar CSS_EDGE = \"transition\";\nvar CSS_NOTE = \"note\";\nvar CSS_NOTE_EDGE = \"note-edge\";\nvar CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nvar CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nvar CSS_CLUSTER = \"cluster\";\nvar CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nvar CSS_CLUSTER_ALT = \"cluster-alt\";\nvar CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nvar PARENT = \"parent\";\nvar NOTE = \"note\";\nvar DOMID_STATE = \"state\";\nvar DOMID_TYPE_SPACER = \"----\";\nvar NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nvar PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\n\n// src/diagrams/state/stateRenderer-v3-unified.ts\nvar getDir = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n if (!parsedItem.doc) {\n return defaultDir;\n }\n let dir = defaultDir;\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n return dir;\n}, \"getDir\");\nvar getClasses = /* @__PURE__ */ __name(function(text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing state diagram (v2)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n diag.db.extract(diag.db.getRootDocV2());\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = layout;\n data4Layout.nodeSpacing = conf?.nodeSpacing || 50;\n data4Layout.rankSpacing = conf?.rankSpacing || 50;\n data4Layout.markers = [\"barb\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n try {\n const links = typeof diag.db.getLinks === \"function\" ? diag.db.getLinks() : /* @__PURE__ */ new Map();\n links.forEach((linkInfo, key) => {\n const stateId = typeof key === \"string\" ? key : typeof key?.id === \"string\" ? key.id : \"\";\n if (!stateId) {\n log.warn(\"\\u26A0\\uFE0F Invalid or missing stateId from key:\", JSON.stringify(key));\n return;\n }\n const allNodes = svg.node()?.querySelectorAll(\"g\");\n let matchedElem;\n allNodes?.forEach((g) => {\n const text2 = g.textContent?.trim();\n if (text2 === stateId) {\n matchedElem = g;\n }\n });\n if (!matchedElem) {\n log.warn(\"\\u26A0\\uFE0F Could not find node matching text:\", stateId);\n return;\n }\n const parent = matchedElem.parentNode;\n if (!parent) {\n log.warn(\"\\u26A0\\uFE0F Node has no parent, cannot wrap:\", stateId);\n return;\n }\n const a = document.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n const cleanedUrl = linkInfo.url.replace(/^\"+|\"+$/g, \"\");\n a.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", cleanedUrl);\n a.setAttribute(\"target\", \"_blank\");\n if (linkInfo.tooltip) {\n const tooltip = linkInfo.tooltip.replace(/^\"+|\"+$/g, \"\");\n a.setAttribute(\"title\", tooltip);\n }\n parent.replaceChild(a, matchedElem);\n a.appendChild(matchedElem);\n log.info(\"\\u{1F517} Wrapped node in tag for:\", stateId, linkInfo.url);\n });\n } catch (err) {\n log.error(\"\\u274C Error injecting clickable links:\", err);\n }\n utils_default.insertTitle(\n svg,\n \"statediagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, CSS_DIAGRAM, conf?.useMaxWidth ?? true);\n}, \"draw\");\nvar stateRenderer_v3_unified_default = {\n getClasses,\n draw,\n getDir\n};\n\n// src/diagrams/state/dataFetcher.ts\nvar nodeDb = /* @__PURE__ */ new Map();\nvar graphItemCount = 0;\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\n__name(stateDomId, \"stateDomId\");\nvar setupDoc = /* @__PURE__ */ __name((parentParsedItem, doc, diagramStates, nodes, edges, altFlag, look, classes) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes, edges, altFlag, look, classes);\n break;\n case DEFAULT_STATE_TYPE:\n dataFetcher(parentParsedItem, item, diagramStates, nodes, edges, altFlag, look, classes);\n break;\n case STMT_RELATION:\n {\n dataFetcher(\n parentParsedItem,\n item.state1,\n diagramStates,\n nodes,\n edges,\n altFlag,\n look,\n classes\n );\n dataFetcher(\n parentParsedItem,\n item.state2,\n diagramStates,\n nodes,\n edges,\n altFlag,\n look,\n classes\n );\n const edgeData = {\n id: \"edge\" + graphItemCount,\n start: item.state1.id,\n end: item.state2.id,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common_default.sanitizeText(item.description ?? \"\", getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE,\n look\n };\n edges.push(edgeData);\n graphItemCount++;\n }\n break;\n }\n });\n}, \"setupDoc\");\nvar getDir2 = /* @__PURE__ */ __name((parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (const parsedItemDoc of parsedItem.doc) {\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n}, \"getDir\");\nfunction insertOrUpdateNode(nodes, nodeData, classes) {\n if (!nodeData.id || nodeData.id === \"\" || nodeData.id === \"\") {\n return;\n }\n if (nodeData.cssClasses) {\n if (!Array.isArray(nodeData.cssCompiledStyles)) {\n nodeData.cssCompiledStyles = [];\n }\n nodeData.cssClasses.split(\" \").forEach((cssClass) => {\n const classDef = classes.get(cssClass);\n if (classDef) {\n nodeData.cssCompiledStyles = [...nodeData.cssCompiledStyles ?? [], ...classDef.styles];\n }\n });\n }\n const existingNodeData = nodes.find((node) => node.id === nodeData.id);\n if (existingNodeData) {\n Object.assign(existingNodeData, nodeData);\n } else {\n nodes.push(nodeData);\n }\n}\n__name(insertOrUpdateNode, \"insertOrUpdateNode\");\nfunction getClassesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.classes?.join(\" \") ?? \"\";\n}\n__name(getClassesFromDbInfo, \"getClassesFromDbInfo\");\nfunction getStylesFromDbInfo(dbInfoItem) {\n return dbInfoItem?.styles ?? [];\n}\n__name(getStylesFromDbInfo, \"getStylesFromDbInfo\");\nvar dataFetcher = /* @__PURE__ */ __name((parent, parsedItem, diagramStates, nodes, edges, altFlag, look, classes) => {\n const itemId = parsedItem.id;\n const dbState = diagramStates.get(itemId);\n const classStr = getClassesFromDbInfo(dbState);\n const style = getStylesFromDbInfo(dbState);\n const config = getConfig();\n log.info(\"dataFetcher parsedItem\", parsedItem, dbState, style);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n } else if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb.get(itemId)) {\n nodeDb.set(itemId, {\n id: itemId,\n shape,\n description: common_default.sanitizeText(itemId, config),\n cssClasses: `${classStr} ${CSS_DIAGRAM_STATE}`,\n cssStyles: style\n });\n }\n const newNode = nodeDb.get(itemId);\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description?.length && newNode.description.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common_default.sanitizeTextOrArray(newNode.description, config);\n }\n if (newNode.description?.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n if (newNode.type === \"group\") {\n newNode.shape = SHAPE_GROUP;\n } else {\n newNode.shape = SHAPE_STATE;\n }\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for XCX\", itemId, getDir2(parsedItem));\n newNode.type = \"group\";\n newNode.isGroup = true;\n newNode.dir = getDir2(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.cssClasses = `${newNode.cssClasses} ${CSS_DIAGRAM_CLUSTER} ${altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\"}`;\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n label: newNode.description,\n cssClasses: newNode.cssClasses,\n cssCompiledStyles: [],\n cssStyles: newNode.cssStyles,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: 8,\n rx: 10,\n ry: 10,\n look\n };\n if (nodeData.shape === SHAPE_DIVIDER) {\n nodeData.label = \"\";\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n nodeData.parentId = parent.id;\n }\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n label: parsedItem.note.text,\n cssClasses: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n cssStyles: [],\n cssCompiledStyles: [],\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n isGroup: newNode.type === \"group\",\n padding: config.flowchart?.padding,\n look,\n position: parsedItem.note.position\n };\n const parentNodeId = itemId + PARENT_ID;\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n label: parsedItem.note.text,\n cssClasses: newNode.cssClasses,\n cssStyles: [],\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n isGroup: true,\n padding: 16,\n //getConfig().flowchart.padding\n look,\n position: parsedItem.note.position\n };\n graphItemCount++;\n groupData.id = parentNodeId;\n noteData.parentId = parentNodeId;\n insertOrUpdateNode(nodes, groupData, classes);\n insertOrUpdateNode(nodes, noteData, classes);\n insertOrUpdateNode(nodes, nodeData, classes);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n edges.push({\n id: from + \"-\" + to,\n start: from,\n end: to,\n arrowhead: \"none\",\n arrowTypeEnd: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n look\n });\n } else {\n insertOrUpdateNode(nodes, nodeData, classes);\n }\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(parsedItem, parsedItem.doc, diagramStates, nodes, edges, !altFlag, look, classes);\n }\n}, \"dataFetcher\");\nvar reset = /* @__PURE__ */ __name(() => {\n nodeDb.clear();\n graphItemCount = 0;\n}, \"reset\");\n\n// src/diagrams/state/stateDb.ts\nvar CONSTANTS = {\n START_NODE: \"[*]\",\n START_TYPE: \"start\",\n END_NODE: \"[*]\",\n END_TYPE: \"end\",\n COLOR_KEYWORD: \"color\",\n FILL_KEYWORD: \"fill\",\n BG_FILL: \"bgFill\",\n STYLECLASS_SEP: \",\"\n};\nvar newClassesList = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Map(), \"newClassesList\");\nvar newDoc = /* @__PURE__ */ __name(() => ({\n relations: [],\n states: /* @__PURE__ */ new Map(),\n documents: {}\n}), \"newDoc\");\nvar clone = /* @__PURE__ */ __name((o) => JSON.parse(JSON.stringify(o)), \"clone\");\nvar StateDB = class {\n constructor(version) {\n this.version = version;\n this.nodes = [];\n this.edges = [];\n this.rootDoc = [];\n this.classes = newClassesList();\n this.documents = { root: newDoc() };\n this.currentDocument = this.documents.root;\n this.startEndCount = 0;\n this.dividerCnt = 0;\n this.links = /* @__PURE__ */ new Map();\n this.getAccTitle = getAccTitle;\n this.setAccTitle = setAccTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.clear();\n this.setRootDoc = this.setRootDoc.bind(this);\n this.getDividerId = this.getDividerId.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.trimColon = this.trimColon.bind(this);\n }\n static {\n __name(this, \"StateDB\");\n }\n static {\n this.relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3\n };\n }\n /**\n * Convert all of the statements (stmts) that were parsed into states and relationships.\n * This is done because a state diagram may have nested sections,\n * where each section is a 'document' and has its own set of statements.\n * Ex: the section within a fork has its own statements, and incoming and outgoing statements\n * refer to the fork as a whole (document).\n * See the parser grammar: the definition of a document is a document then a 'line', where a line can be a statement.\n * This will push the statement into the list of statements for the current document.\n */\n extract(statements) {\n this.clear(true);\n for (const item of Array.isArray(statements) ? statements : statements.doc) {\n switch (item.stmt) {\n case STMT_STATE:\n this.addState(item.id.trim(), item.type, item.doc, item.description, item.note);\n break;\n case STMT_RELATION:\n this.addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n this.addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_STYLEDEF:\n this.handleStyleDef(item);\n break;\n case STMT_APPLYCLASS:\n this.setCssClass(item.id.trim(), item.styleClass);\n break;\n case \"click\":\n this.addLink(item.id, item.url, item.tooltip);\n break;\n }\n }\n const diagramStates = this.getStates();\n const config = getConfig();\n reset();\n dataFetcher(\n void 0,\n this.getRootDocV2(),\n diagramStates,\n this.nodes,\n this.edges,\n true,\n config.look,\n this.classes\n );\n for (const node of this.nodes) {\n if (!Array.isArray(node.label)) {\n continue;\n }\n node.description = node.label.slice(1);\n if (node.isGroup && node.description.length > 0) {\n throw new Error(\n `Group nodes can only have label. Remove the additional description for node [${node.id}]`\n );\n }\n node.label = node.label[0];\n }\n }\n handleStyleDef(item) {\n const ids = item.id.trim().split(\",\");\n const styles = item.styleClass.split(\",\");\n for (const id of ids) {\n let state = this.getState(id);\n if (!state) {\n const trimmedId = id.trim();\n this.addState(trimmedId);\n state = this.getState(trimmedId);\n }\n if (state) {\n state.styles = styles.map((s) => s.replace(/;/g, \"\")?.trim());\n }\n }\n }\n setRootDoc(o) {\n log.info(\"Setting root doc\", o);\n this.rootDoc = o;\n if (this.version === 1) {\n this.extract(o);\n } else {\n this.extract(this.getRootDocV2());\n }\n }\n docTranslator(parent, node, first) {\n if (node.stmt === STMT_RELATION) {\n this.docTranslator(parent, node.state1, true);\n this.docTranslator(parent, node.state2, false);\n return;\n }\n if (node.stmt === STMT_STATE) {\n if (node.id === CONSTANTS.START_NODE) {\n node.id = parent.id + (first ? \"_start\" : \"_end\");\n node.start = first;\n } else {\n node.id = node.id.trim();\n }\n }\n if (node.stmt !== STMT_ROOT && node.stmt !== STMT_STATE || !node.doc) {\n return;\n }\n const doc = [];\n let currentDoc = [];\n for (const stmt of node.doc) {\n if (stmt.type === DIVIDER_TYPE) {\n const newNode = clone(stmt);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(stmt);\n }\n }\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: \"divider\",\n doc: clone(currentDoc)\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n node.doc.forEach((docNode) => this.docTranslator(node, docNode, true));\n }\n getRootDocV2() {\n this.docTranslator(\n { id: STMT_ROOT, stmt: STMT_ROOT },\n { id: STMT_ROOT, stmt: STMT_ROOT, doc: this.rootDoc },\n true\n );\n return { id: STMT_ROOT, doc: this.rootDoc };\n }\n /**\n * Function called by parser when a node definition has been found.\n *\n * @param descr - description for the state. Can be a string or a list or strings\n * @param classes - class styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 class, convert it to an array of that 1 class.\n * @param styles - styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 style, convert it to an array of that 1 style.\n * @param textStyles - text styles to apply to this state. Can be a string (1 text test) or an array of text styles. If it's just 1 text style, convert it to an array of that 1 text style.\n */\n addState(id, type = DEFAULT_STATE_TYPE, doc = void 0, descr = void 0, note = void 0, classes = void 0, styles = void 0, textStyles = void 0) {\n const trimmedId = id?.trim();\n if (!this.currentDocument.states.has(trimmedId)) {\n log.info(\"Adding state \", trimmedId, descr);\n this.currentDocument.states.set(trimmedId, {\n stmt: STMT_STATE,\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: []\n });\n } else {\n const state = this.currentDocument.states.get(trimmedId);\n if (!state) {\n throw new Error(`State not found: ${trimmedId}`);\n }\n if (!state.doc) {\n state.doc = doc;\n }\n if (!state.type) {\n state.type = type;\n }\n }\n if (descr) {\n log.info(\"Setting state description\", trimmedId, descr);\n const descriptions = Array.isArray(descr) ? descr : [descr];\n descriptions.forEach((des) => this.addDescription(trimmedId, des.trim()));\n }\n if (note) {\n const doc2 = this.currentDocument.states.get(trimmedId);\n if (!doc2) {\n throw new Error(`State not found: ${trimmedId}`);\n }\n doc2.note = note;\n doc2.note.text = common_default.sanitizeText(doc2.note.text, getConfig());\n }\n if (classes) {\n log.info(\"Setting state classes\", trimmedId, classes);\n const classesList = Array.isArray(classes) ? classes : [classes];\n classesList.forEach((cssClass) => this.setCssClass(trimmedId, cssClass.trim()));\n }\n if (styles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const stylesList = Array.isArray(styles) ? styles : [styles];\n stylesList.forEach((style) => this.setStyle(trimmedId, style.trim()));\n }\n if (textStyles) {\n log.info(\"Setting state styles\", trimmedId, styles);\n const textStylesList = Array.isArray(textStyles) ? textStyles : [textStyles];\n textStylesList.forEach((textStyle) => this.setTextStyle(trimmedId, textStyle.trim()));\n }\n }\n clear(saveCommon) {\n this.nodes = [];\n this.edges = [];\n this.documents = { root: newDoc() };\n this.currentDocument = this.documents.root;\n this.startEndCount = 0;\n this.classes = newClassesList();\n if (!saveCommon) {\n this.links = /* @__PURE__ */ new Map();\n clear();\n }\n }\n getState(id) {\n return this.currentDocument.states.get(id);\n }\n getStates() {\n return this.currentDocument.states;\n }\n logDocuments() {\n log.info(\"Documents = \", this.documents);\n }\n getRelations() {\n return this.currentDocument.relations;\n }\n /**\n * Adds a clickable link to a state.\n */\n addLink(stateId, url, tooltip) {\n this.links.set(stateId, { url, tooltip });\n log.warn(\"Adding link\", stateId, url, tooltip);\n }\n /**\n * Get all registered links.\n */\n getLinks() {\n return this.links;\n }\n /**\n * If the id is a start node ( [*] ), then return a new id constructed from\n * the start node name and the current start node count.\n * else return the given id\n */\n startIdIfNeeded(id = \"\") {\n if (id === CONSTANTS.START_NODE) {\n this.startEndCount++;\n return `${CONSTANTS.START_TYPE}${this.startEndCount}`;\n }\n return id;\n }\n /**\n * If the id is a start node ( [*] ), then return the start type ('start')\n * else return the given type\n */\n startTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === CONSTANTS.START_NODE ? CONSTANTS.START_TYPE : type;\n }\n /**\n * If the id is an end node ( [*] ), then return a new id constructed from\n * the end node name and the current start_end node count.\n * else return the given id\n */\n endIdIfNeeded(id = \"\") {\n if (id === CONSTANTS.END_NODE) {\n this.startEndCount++;\n return `${CONSTANTS.END_TYPE}${this.startEndCount}`;\n }\n return id;\n }\n /**\n * If the id is an end node ( [*] ), then return the end type\n * else return the given type\n *\n */\n endTypeIfNeeded(id = \"\", type = DEFAULT_STATE_TYPE) {\n return id === CONSTANTS.END_NODE ? CONSTANTS.END_TYPE : type;\n }\n addRelationObjs(item1, item2, relationTitle = \"\") {\n const id1 = this.startIdIfNeeded(item1.id.trim());\n const type1 = this.startTypeIfNeeded(item1.id.trim(), item1.type);\n const id2 = this.startIdIfNeeded(item2.id.trim());\n const type2 = this.startTypeIfNeeded(item2.id.trim(), item2.type);\n this.addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n this.addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n this.currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common_default.sanitizeText(relationTitle, getConfig())\n });\n }\n /**\n * Add a relation between two items. The items may be full objects or just the string id of a state.\n */\n addRelation(item1, item2, title) {\n if (typeof item1 === \"object\" && typeof item2 === \"object\") {\n this.addRelationObjs(item1, item2, title);\n } else if (typeof item1 === \"string\" && typeof item2 === \"string\") {\n const id1 = this.startIdIfNeeded(item1.trim());\n const type1 = this.startTypeIfNeeded(item1);\n const id2 = this.endIdIfNeeded(item2.trim());\n const type2 = this.endTypeIfNeeded(item2);\n this.addState(id1, type1);\n this.addState(id2, type2);\n this.currentDocument.relations.push({\n id1,\n id2,\n relationTitle: title ? common_default.sanitizeText(title, getConfig()) : void 0\n });\n }\n }\n addDescription(id, descr) {\n const theState = this.currentDocument.states.get(id);\n const _descr = descr.startsWith(\":\") ? descr.replace(\":\", \"\").trim() : descr;\n theState?.descriptions?.push(common_default.sanitizeText(_descr, getConfig()));\n }\n cleanupLabel(label) {\n return label.startsWith(\":\") ? label.slice(2).trim() : label.trim();\n }\n getDividerId() {\n this.dividerCnt++;\n return `divider-id-${this.dividerCnt}`;\n }\n /**\n * Called when the parser comes across a (style) class definition\n * @example classDef my-style fill:#f96;\n *\n * @param id - the id of this (style) class\n * @param styleAttributes - the string with 1 or more style attributes (each separated by a comma)\n */\n addStyleClass(id, styleAttributes = \"\") {\n if (!this.classes.has(id)) {\n this.classes.set(id, { id, styles: [], textStyles: [] });\n }\n const foundClass = this.classes.get(id);\n if (styleAttributes && foundClass) {\n styleAttributes.split(CONSTANTS.STYLECLASS_SEP).forEach((attrib) => {\n const fixedAttrib = attrib.replace(/([^;]*);/, \"$1\").trim();\n if (RegExp(CONSTANTS.COLOR_KEYWORD).exec(attrib)) {\n const newStyle1 = fixedAttrib.replace(CONSTANTS.FILL_KEYWORD, CONSTANTS.BG_FILL);\n const newStyle2 = newStyle1.replace(CONSTANTS.COLOR_KEYWORD, CONSTANTS.FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n }\n getClasses() {\n return this.classes;\n }\n /**\n * Add a (style) class or css class to a state with the given id.\n * If the state isn't already in the list of known states, add it.\n * Might be called by parser when a style class or CSS class should be applied to a state\n *\n * @param itemIds - The id or a list of ids of the item(s) to apply the css class to\n * @param cssClassName - CSS class name\n */\n setCssClass(itemIds, cssClassName) {\n itemIds.split(\",\").forEach((id) => {\n let foundState = this.getState(id);\n if (!foundState) {\n const trimmedId = id.trim();\n this.addState(trimmedId);\n foundState = this.getState(trimmedId);\n }\n foundState?.classes?.push(cssClassName);\n });\n }\n /**\n * Add a style to a state with the given id.\n * @example style stateId fill:#f9f,stroke:#333,stroke-width:4px\n * where 'style' is the keyword\n * stateId is the id of a state\n * the rest of the string is the styleText (all of the attributes to be applied to the state)\n *\n * @param itemId - The id of item to apply the style to\n * @param styleText - the text of the attributes for the style\n */\n setStyle(itemId, styleText) {\n this.getState(itemId)?.styles?.push(styleText);\n }\n /**\n * Add a text style to a state with the given id\n *\n * @param itemId - The id of item to apply the css class to\n * @param cssClassName - CSS class name\n */\n setTextStyle(itemId, cssClassName) {\n this.getState(itemId)?.textStyles?.push(cssClassName);\n }\n /**\n * Finds the direction statement in the root document.\n * @returns the direction statement if present\n */\n getDirectionStatement() {\n return this.rootDoc.find((doc) => doc.stmt === STMT_DIRECTION);\n }\n getDirection() {\n return this.getDirectionStatement()?.value ?? DEFAULT_DIAGRAM_DIRECTION;\n }\n setDirection(dir) {\n const doc = this.getDirectionStatement();\n if (doc) {\n doc.value = dir;\n } else {\n this.rootDoc.unshift({ stmt: STMT_DIRECTION, value: dir });\n }\n }\n trimColon(str) {\n return str.startsWith(\":\") ? str.slice(1).trim() : str.trim();\n }\n getData() {\n const config = getConfig();\n return {\n nodes: this.nodes,\n edges: this.edges,\n other: {},\n config,\n direction: getDir(this.getRootDocV2())\n };\n }\n getConfig() {\n return getConfig().state;\n }\n};\n\n// src/diagrams/state/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel {\n background-color: ${options.edgeLabelBackground};\n p {\n background-color: ${options.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n // line-height: 1;\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : \"#efefef\"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\nexport {\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n StateDB,\n styles_default\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","stateStmt","relDescription","id","description","parts","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","stateDiagram_default","DEFAULT_DIAGRAM_DIRECTION","DEFAULT_NESTED_DOC_DIR","STMT_DIRECTION","STMT_STATE","STMT_ROOT","STMT_RELATION","STMT_CLASSDEF","STMT_STYLEDEF","STMT_APPLYCLASS","DEFAULT_STATE_TYPE","DIVIDER_TYPE","G_EDGE_STYLE","G_EDGE_ARROWHEADSTYLE","G_EDGE_LABELPOS","G_EDGE_LABELTYPE","G_EDGE_THICKNESS","SHAPE_STATE","SHAPE_STATE_WITH_DESC","SHAPE_START","SHAPE_END","SHAPE_DIVIDER","SHAPE_GROUP","SHAPE_NOTE","SHAPE_NOTEGROUP","CSS_DIAGRAM","CSS_STATE","CSS_DIAGRAM_STATE","CSS_EDGE","CSS_NOTE","CSS_NOTE_EDGE","CSS_EDGE_NOTE_EDGE","CSS_DIAGRAM_NOTE","CSS_CLUSTER","CSS_DIAGRAM_CLUSTER","CSS_CLUSTER_ALT","CSS_DIAGRAM_CLUSTER_ALT","PARENT","NOTE","DOMID_STATE","DOMID_TYPE_SPACER","NOTE_ID","PARENT_ID","getDir","parsedItem","defaultDir","dir","parsedItemDoc","getClasses","text","diagramObj","draw","_version","diag","log","securityLevel","conf","layout","getConfig","data4Layout","svg","getDiagramElement","render","padding","linkInfo","key","stateId","allNodes","_a","matchedElem","g","parent","a","cleanedUrl","tooltip","err","utils_default","setupViewPortForSVG","stateRenderer_v3_unified_default","nodeDb","graphItemCount","stateDomId","itemId","counter","type","typeSpacer","typeStr","setupDoc","parentParsedItem","doc","diagramStates","nodes","edges","altFlag","look","classes","item","dataFetcher","edgeData","common_default","getDir2","insertOrUpdateNode","nodeData","cssClass","classDef","existingNodeData","node","getClassesFromDbInfo","dbInfoItem","getStylesFromDbInfo","dbState","classStr","style","config","shape","newNode","_b","noteData","_c","parentNodeId","groupData","from","to","reset","CONSTANTS","newClassesList","newDoc","clone","StateDB","version","getAccTitle","setAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","statements","ids","styles","trimmedId","s","first","currentDoc","stmt","generateId","docNode","descr","note","textStyles","des","doc2","textStyle","saveCommon","clear","url","item1","item2","relationTitle","id1","type1","id2","type2","title","theState","_descr","label","styleAttributes","foundClass","attrib","fixedAttrib","newStyle2","itemIds","cssClassName","foundState","styleText","getStyles","options","styles_default"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/chunk-TZMSLE5B.js b/extensions/continue/gui/assets/chunk-TZMSLE5B.js new file mode 100644 index 000000000000..7f58a3bde0be --- /dev/null +++ b/extensions/continue/gui/assets/chunk-TZMSLE5B.js @@ -0,0 +1,2 @@ +import{_ as s,U as l,j as i}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d61e44aa-afb1-4967-b06d-3df5d7c3198f",e._sentryDebugIdIdentifier="sentry-dbid-d61e44aa-afb1-4967-b06d-3df5d7c3198f")})()}catch{}var o=s((e,t)=>{const r=e.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(const a in t.attrs)r.attr(a,t.attrs[a]);return t.class&&r.attr("class",t.class),r},"drawRect"),c=s((e,t)=>{const r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};o(e,r).lower()},"drawBackgroundRect"),g=s((e,t)=>{const r=t.text.replace(l," "),a=e.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class&&a.attr("class",t.class);const n=a.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),a},"drawText"),y=s((e,t,r,a)=>{const n=e.append("image");n.attr("x",t),n.attr("y",r);const d=i.sanitizeUrl(a);n.attr("xlink:href",d)},"drawImage"),x=s((e,t,r,a)=>{const n=e.append("use");n.attr("x",t),n.attr("y",r);const d=i.sanitizeUrl(a);n.attr("xlink:href",`#${d}`)},"drawEmbeddedImage"),h=s(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=s(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{c as a,p as b,x as c,o as d,y as e,g as f,h as g}; +//# sourceMappingURL=chunk-TZMSLE5B.js.map diff --git a/extensions/continue/gui/assets/chunk-TZMSLE5B.js.map b/extensions/continue/gui/assets/chunk-TZMSLE5B.js.map new file mode 100644 index 000000000000..b89b1f23ed6b --- /dev/null +++ b/extensions/continue/gui/assets/chunk-TZMSLE5B.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk-TZMSLE5B.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.mjs"],"sourcesContent":["import {\n lineBreakRegex\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/common/svgDrawCommon.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar drawRect = /* @__PURE__ */ __name((element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n if (rectData.name) {\n rectElement.attr(\"name\", rectData.name);\n }\n if (rectData.rx) {\n rectElement.attr(\"rx\", rectData.rx);\n }\n if (rectData.ry) {\n rectElement.attr(\"ry\", rectData.ry);\n }\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n if (rectData.class) {\n rectElement.attr(\"class\", rectData.class);\n }\n return rectElement;\n}, \"drawRect\");\nvar drawBackgroundRect = /* @__PURE__ */ __name((element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n}, \"drawBackgroundRect\");\nvar drawText = /* @__PURE__ */ __name((element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class) {\n textElem.attr(\"class\", textData.class);\n }\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawImage = /* @__PURE__ */ __name((elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawEmbeddedImage = /* @__PURE__ */ __name((element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n}, \"drawEmbeddedImage\");\nvar getNoteRect = /* @__PURE__ */ __name(() => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n}, \"getNoteRect\");\nvar getTextObj = /* @__PURE__ */ __name(() => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n}, \"getTextObj\");\n\nexport {\n drawRect,\n drawBackgroundRect,\n drawText,\n drawImage,\n drawEmbeddedImage,\n getNoteRect,\n getTextObj\n};\n"],"names":["drawRect","__name","element","rectData","rectElement","attrKey","drawBackgroundRect","bounds","drawText","textData","nText","lineBreakRegex","textElem","tspan","drawImage","elem","x","y","link","imageElement","sanitizedLink","sanitizeUrl","drawEmbeddedImage","getNoteRect","getTextObj"],"mappings":"olBASG,IAACA,EAA2BC,EAAO,CAACC,EAASC,IAAa,CAC3D,MAAMC,EAAcF,EAAQ,OAAO,MAAM,EAgBzC,GAfAE,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,IAAKD,EAAS,CAAC,EAChCC,EAAY,KAAK,OAAQD,EAAS,IAAI,EACtCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EAC1CC,EAAY,KAAK,QAASD,EAAS,KAAK,EACxCC,EAAY,KAAK,SAAUD,EAAS,MAAM,EACtCA,EAAS,MACXC,EAAY,KAAK,OAAQD,EAAS,IAAI,EAEpCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,IACXC,EAAY,KAAK,KAAMD,EAAS,EAAE,EAEhCA,EAAS,QAAU,OACrB,UAAWE,KAAWF,EAAS,MAC7BC,EAAY,KAAKC,EAASF,EAAS,MAAME,CAAO,CAAC,EAGrD,OAAIF,EAAS,OACXC,EAAY,KAAK,QAASD,EAAS,KAAK,EAEnCC,CACT,EAAG,UAAU,EACTE,EAAqCL,EAAO,CAACC,EAASK,IAAW,CACnE,MAAMJ,EAAW,CACf,EAAGI,EAAO,OACV,EAAGA,EAAO,OACV,MAAOA,EAAO,MAAQA,EAAO,OAC7B,OAAQA,EAAO,MAAQA,EAAO,OAC9B,KAAMA,EAAO,KACb,OAAQA,EAAO,OACf,MAAO,MACX,EACsBP,EAASE,EAASC,CAAQ,EAClC,MAAK,CACnB,EAAG,oBAAoB,EACnBK,EAA2BP,EAAO,CAACC,EAASO,IAAa,CAC3D,MAAMC,EAAQD,EAAS,KAAK,QAAQE,EAAgB,GAAG,EACjDC,EAAWV,EAAQ,OAAO,MAAM,EACtCU,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,IAAKH,EAAS,CAAC,EAC7BG,EAAS,KAAK,QAAS,QAAQ,EAC/BA,EAAS,MAAM,cAAeH,EAAS,MAAM,EACzCA,EAAS,OACXG,EAAS,KAAK,QAASH,EAAS,KAAK,EAEvC,MAAMI,EAAQD,EAAS,OAAO,OAAO,EACrC,OAAAC,EAAM,KAAK,IAAKJ,EAAS,EAAIA,EAAS,WAAa,CAAC,EACpDI,EAAM,KAAKH,CAAK,EACTE,CACT,EAAG,UAAU,EACTE,EAA4Bb,EAAO,CAACc,EAAMC,EAAGC,EAAGC,IAAS,CAC3D,MAAMC,EAAeJ,EAAK,OAAO,OAAO,EACxCI,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,MAAMG,EAAgBC,EAAAA,YAAYH,CAAI,EACtCC,EAAa,KAAK,aAAcC,CAAa,CAC/C,EAAG,WAAW,EACVE,EAAoCrB,EAAO,CAACC,EAASc,EAAGC,EAAGC,IAAS,CACtE,MAAMC,EAAejB,EAAQ,OAAO,KAAK,EACzCiB,EAAa,KAAK,IAAKH,CAAC,EACxBG,EAAa,KAAK,IAAKF,CAAC,EACxB,MAAMG,EAAgBC,EAAAA,YAAYH,CAAI,EACtCC,EAAa,KAAK,aAAc,IAAIC,CAAa,EAAE,CACrD,EAAG,mBAAmB,EAClBG,EAA8BtB,EAAO,KAClB,CACnB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,KAAM,UACN,OAAQ,OACR,OAAQ,QACR,GAAI,EACJ,GAAI,CACR,GAEG,aAAa,EACZuB,EAA6BvB,EAAO,KACnB,CACjB,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,IACR,cAAe,QACf,MAAO,OACP,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,MAAO,EACX,GAEG,YAAY","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js b/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js new file mode 100644 index 000000000000..e3162ff2abd6 --- /dev/null +++ b/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js @@ -0,0 +1,2 @@ +import{s as a,c as r,a as s,C as t}from"./chunk-K7UQS3LO.js";import{_ as i}from"./index.js";import"./chunk-FMBD7UC4.js";import"./chunk-55IACEB6.js";import"./chunk-QN33PNHL.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="d35c5f34-8b22-42bd-87e6-c7cd50ca1579",e._sentryDebugIdIdentifier="sentry-dbid-d35c5f34-8b22-42bd-87e6-c7cd50ca1579")})()}catch{}var c={parser:s,get db(){return new t},renderer:r,styles:a,init:i(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{c as diagram}; +//# sourceMappingURL=classDiagram-KNZD7YFC.js.map diff --git a/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js.map b/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js.map new file mode 100644 index 000000000000..466fb27f58ae --- /dev/null +++ b/extensions/continue/gui/assets/classDiagram-KNZD7YFC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"classDiagram-KNZD7YFC.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-KNZD7YFC.mjs"],"sourcesContent":["import {\n ClassDB,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-K7UQS3LO.mjs\";\nimport \"./chunk-FMBD7UC4.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-QN33PNHL.mjs\";\nimport \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/class/classDiagram.ts\nvar diagram = {\n parser: classDiagram_default,\n get db() {\n return new ClassDB();\n },\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["diagram","classDiagram_default","ClassDB","classRenderer_v3_unified_default","styles_default","__name","cnf"],"mappings":"gvBAuBG,IAACA,EAAU,CACZ,OAAQC,EACR,IAAI,IAAK,CACP,OAAO,IAAIC,CACb,EACA,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAA,GAEdA,EAAI,MAAM,oBAAsBA,EAAI,mBACtC,EAAG,MAAM,CACX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js b/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js new file mode 100644 index 000000000000..99734b038ab0 --- /dev/null +++ b/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js @@ -0,0 +1,2 @@ +import{s as a,c as r,a as s,C as t}from"./chunk-K7UQS3LO.js";import{_ as f}from"./index.js";import"./chunk-FMBD7UC4.js";import"./chunk-55IACEB6.js";import"./chunk-QN33PNHL.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="7d6d4fb1-b1b4-49fe-b444-9ead54d4fbf5",e._sentryDebugIdIdentifier="sentry-dbid-7d6d4fb1-b1b4-49fe-b444-9ead54d4fbf5")})()}catch{}var y={parser:s,get db(){return new t},renderer:r,styles:a,init:f(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{y as diagram}; +//# sourceMappingURL=classDiagram-v2-RKCZMP56.js.map diff --git a/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js.map b/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js.map new file mode 100644 index 000000000000..058415bacc7b --- /dev/null +++ b/extensions/continue/gui/assets/classDiagram-v2-RKCZMP56.js.map @@ -0,0 +1 @@ +{"version":3,"file":"classDiagram-v2-RKCZMP56.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-RKCZMP56.mjs"],"sourcesContent":["import {\n ClassDB,\n classDiagram_default,\n classRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-K7UQS3LO.mjs\";\nimport \"./chunk-FMBD7UC4.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-QN33PNHL.mjs\";\nimport \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/class/classDiagram-v2.ts\nvar diagram = {\n parser: classDiagram_default,\n get db() {\n return new ClassDB();\n },\n renderer: classRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["diagram","classDiagram_default","ClassDB","classRenderer_v3_unified_default","styles_default","__name","cnf"],"mappings":"gvBAuBG,IAACA,EAAU,CACZ,OAAQC,EACR,IAAI,IAAK,CACP,OAAO,IAAIC,CACb,EACA,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAA,GAEdA,EAAI,MAAM,oBAAsBA,EAAI,mBACtC,EAAG,MAAM,CACX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/clone.js b/extensions/continue/gui/assets/clone.js new file mode 100644 index 000000000000..3fd7863c03a8 --- /dev/null +++ b/extensions/continue/gui/assets/clone.js @@ -0,0 +1,2 @@ +import{b as d}from"./_baseUniq.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cb8d74be-4c07-43b8-8c68-4d565f8051fc",e._sentryDebugIdIdentifier="sentry-dbid-cb8d74be-4c07-43b8-8c68-4d565f8051fc")})()}catch{}var f=4;function t(e){return d(e,f)}export{t as c}; +//# sourceMappingURL=clone.js.map diff --git a/extensions/continue/gui/assets/clone.js.map b/extensions/continue/gui/assets/clone.js.map new file mode 100644 index 000000000000..05c51c752699 --- /dev/null +++ b/extensions/continue/gui/assets/clone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clone.js","sources":["../../node_modules/lodash-es/clone.js"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone"],"mappings":"0kBAGA,IAAIA,EAAqB,EA4BzB,SAASC,EAAMC,EAAO,CACpB,OAAOC,EAAUD,EAAOF,CAAkB,CAC5C","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js b/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js new file mode 100644 index 000000000000..4033b9856cf6 --- /dev/null +++ b/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js @@ -0,0 +1,2 @@ +import{_ as V,l as k,d as lt}from"./index.js";import{c as tt}from"./cytoscape.esm.js";import{g as gt}from"./XCircleIcon.js";(function(){try{var M=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};M.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var M=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},X=new M.Error().stack;X&&(M._sentryDebugIds=M._sentryDebugIds||{},M._sentryDebugIds[X]="b6f13828-9766-41b1-a978-d06457dcfd4e",M._sentryDebugIdIdentifier="sentry-dbid-b6f13828-9766-41b1-a978-d06457dcfd4e")})()}catch{}var Z={exports:{}},$={exports:{}},Q={exports:{}},ut=Q.exports,j;function ft(){return j||(j=1,(function(M,X){(function(I,T){M.exports=T()})(ut,function(){return(function(N){var I={};function T(o){if(I[o])return I[o].exports;var e=I[o]={i:o,l:!1,exports:{}};return N[o].call(e.exports,e,e.exports,T),e.l=!0,e.exports}return T.m=N,T.c=I,T.i=function(o){return o},T.d=function(o,e,t){T.o(o,e)||Object.defineProperty(o,e,{configurable:!1,enumerable:!0,get:t})},T.n=function(o){var e=o&&o.__esModule?function(){return o.default}:function(){return o};return T.d(e,"a",e),e},T.o=function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},T.p="",T(T.s=26)})([(function(N,I,T){function o(){}o.QUALITY=1,o.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,o.DEFAULT_INCREMENTAL=!1,o.DEFAULT_ANIMATION_ON_LAYOUT=!0,o.DEFAULT_ANIMATION_DURING_LAYOUT=!1,o.DEFAULT_ANIMATION_PERIOD=50,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,o.DEFAULT_GRAPH_MARGIN=15,o.NODE_DIMENSIONS_INCLUDE_LABELS=!1,o.SIMPLE_NODE_SIZE=40,o.SIMPLE_NODE_HALF_SIZE=o.SIMPLE_NODE_SIZE/2,o.EMPTY_COMPOUND_NODE_SIZE=40,o.MIN_EDGE_LENGTH=1,o.WORLD_BOUNDARY=1e6,o.INITIAL_WORLD_BOUNDARY=o.WORLD_BOUNDARY/1e3,o.WORLD_CENTER_X=1200,o.WORLD_CENTER_Y=900,N.exports=o}),(function(N,I,T){var o=T(2),e=T(8),t=T(9);function i(g,n,d){o.call(this,d),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=d,this.bendpoints=[],this.source=g,this.target=n}i.prototype=Object.create(o.prototype);for(var l in o)i[l]=o[l];i.prototype.getSource=function(){return this.source},i.prototype.getTarget=function(){return this.target},i.prototype.isInterGraph=function(){return this.isInterGraph},i.prototype.getLength=function(){return this.length},i.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},i.prototype.getBendpoints=function(){return this.bendpoints},i.prototype.getLca=function(){return this.lca},i.prototype.getSourceInLca=function(){return this.sourceInLca},i.prototype.getTargetInLca=function(){return this.targetInLca},i.prototype.getOtherEnd=function(g){if(this.source===g)return this.target;if(this.target===g)return this.source;throw"Node is not incident with this edge"},i.prototype.getOtherEndInGraph=function(g,n){for(var d=this.getOtherEnd(g),r=n.getGraphManager().getRoot();;){if(d.getOwner()==n)return d;if(d.getOwner()==r)break;d=d.getOwner().getParent()}return null},i.prototype.updateLength=function(){var g=new Array(4);this.isOverlapingSourceAndTarget=e.getIntersection(this.target.getRect(),this.source.getRect(),g),this.isOverlapingSourceAndTarget||(this.lengthX=g[0]-g[2],this.lengthY=g[1]-g[3],Math.abs(this.lengthX)<1&&(this.lengthX=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},i.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},N.exports=i}),(function(N,I,T){function o(e){this.vGraphObject=e}N.exports=o}),(function(N,I,T){var o=T(2),e=T(10),t=T(13),i=T(0),l=T(16),g=T(4);function n(r,h,a,p){a==null&&p==null&&(p=h),o.call(this,p),r.graphManager!=null&&(r=r.graphManager),this.estimatedSize=e.MIN_VALUE,this.inclusionTreeDepth=e.MAX_VALUE,this.vGraphObject=p,this.edges=[],this.graphManager=r,a!=null&&h!=null?this.rect=new t(h.x,h.y,a.width,a.height):this.rect=new t}n.prototype=Object.create(o.prototype);for(var d in o)n[d]=o[d];n.prototype.getEdges=function(){return this.edges},n.prototype.getChild=function(){return this.child},n.prototype.getOwner=function(){return this.owner},n.prototype.getWidth=function(){return this.rect.width},n.prototype.setWidth=function(r){this.rect.width=r},n.prototype.getHeight=function(){return this.rect.height},n.prototype.setHeight=function(r){this.rect.height=r},n.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},n.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},n.prototype.getCenter=function(){return new g(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},n.prototype.getLocation=function(){return new g(this.rect.x,this.rect.y)},n.prototype.getRect=function(){return this.rect},n.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},n.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},n.prototype.setRect=function(r,h){this.rect.x=r.x,this.rect.y=r.y,this.rect.width=h.width,this.rect.height=h.height},n.prototype.setCenter=function(r,h){this.rect.x=r-this.rect.width/2,this.rect.y=h-this.rect.height/2},n.prototype.setLocation=function(r,h){this.rect.x=r,this.rect.y=h},n.prototype.moveBy=function(r,h){this.rect.x+=r,this.rect.y+=h},n.prototype.getEdgeListToNode=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(p.target==r){if(p.source!=a)throw"Incorrect edge source!";h.push(p)}}),h},n.prototype.getEdgesBetween=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(!(p.source==a||p.target==a))throw"Incorrect edge source and/or target";(p.target==r||p.source==r)&&h.push(p)}),h},n.prototype.getNeighborsList=function(){var r=new Set,h=this;return h.edges.forEach(function(a){if(a.source==h)r.add(a.target);else{if(a.target!=h)throw"Incorrect incidency!";r.add(a.source)}}),r},n.prototype.withChildren=function(){var r=new Set,h,a;if(r.add(this),this.child!=null)for(var p=this.child.getNodes(),v=0;vh&&(this.rect.x-=(this.labelWidth-h)/2,this.setWidth(this.labelWidth)),this.labelHeight>a&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-a)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-a),this.setHeight(this.labelHeight))}}},n.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==e.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},n.prototype.transform=function(r){var h=this.rect.x;h>i.WORLD_BOUNDARY?h=i.WORLD_BOUNDARY:h<-i.WORLD_BOUNDARY&&(h=-i.WORLD_BOUNDARY);var a=this.rect.y;a>i.WORLD_BOUNDARY?a=i.WORLD_BOUNDARY:a<-i.WORLD_BOUNDARY&&(a=-i.WORLD_BOUNDARY);var p=new g(h,a),v=r.inverseTransformPoint(p);this.setLocation(v.x,v.y)},n.prototype.getLeft=function(){return this.rect.x},n.prototype.getRight=function(){return this.rect.x+this.rect.width},n.prototype.getTop=function(){return this.rect.y},n.prototype.getBottom=function(){return this.rect.y+this.rect.height},n.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},N.exports=n}),(function(N,I,T){function o(e,t){e==null&&t==null?(this.x=0,this.y=0):(this.x=e,this.y=t)}o.prototype.getX=function(){return this.x},o.prototype.getY=function(){return this.y},o.prototype.setX=function(e){this.x=e},o.prototype.setY=function(e){this.y=e},o.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},o.prototype.getCopy=function(){return new o(this.x,this.y)},o.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},N.exports=o}),(function(N,I,T){var o=T(2),e=T(10),t=T(0),i=T(6),l=T(3),g=T(1),n=T(13),d=T(12),r=T(11);function h(p,v,D){o.call(this,D),this.estimatedSize=e.MIN_VALUE,this.margin=t.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=p,v!=null&&v instanceof i?this.graphManager=v:v!=null&&v instanceof Layout&&(this.graphManager=v.graphManager)}h.prototype=Object.create(o.prototype);for(var a in o)h[a]=o[a];h.prototype.getNodes=function(){return this.nodes},h.prototype.getEdges=function(){return this.edges},h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getParent=function(){return this.parent},h.prototype.getLeft=function(){return this.left},h.prototype.getRight=function(){return this.right},h.prototype.getTop=function(){return this.top},h.prototype.getBottom=function(){return this.bottom},h.prototype.isConnected=function(){return this.isConnected},h.prototype.add=function(p,v,D){if(v==null&&D==null){var u=p;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(u)>-1)throw"Node already in graph!";return u.owner=this,this.getNodes().push(u),u}else{var E=p;if(!(this.getNodes().indexOf(v)>-1&&this.getNodes().indexOf(D)>-1))throw"Source or target not in graph!";if(!(v.owner==D.owner&&v.owner==this))throw"Both owners must be this graph!";return v.owner!=D.owner?null:(E.source=v,E.target=D,E.isInterGraph=!1,this.getEdges().push(E),v.edges.push(E),D!=v&&D.edges.push(E),E)}},h.prototype.remove=function(p){var v=p;if(p instanceof l){if(v==null)throw"Node is null!";if(!(v.owner!=null&&v.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var D=v.edges.slice(),u,E=D.length,y=0;y-1&&f>-1))throw"Source and/or target doesn't know this edge!";u.source.edges.splice(s,1),u.target!=u.source&&u.target.edges.splice(f,1);var O=u.source.owner.getEdges().indexOf(u);if(O==-1)throw"Not in owner's edge list!";u.source.owner.getEdges().splice(O,1)}},h.prototype.updateLeftTop=function(){for(var p=e.MAX_VALUE,v=e.MAX_VALUE,D,u,E,y=this.getNodes(),O=y.length,s=0;sD&&(p=D),v>u&&(v=u)}return p==e.MAX_VALUE?null:(y[0].getParent().paddingLeft!=null?E=y[0].getParent().paddingLeft:E=this.margin,this.left=v-E,this.top=p-E,new d(this.left,this.top))},h.prototype.updateBounds=function(p){for(var v=e.MAX_VALUE,D=-e.MAX_VALUE,u=e.MAX_VALUE,E=-e.MAX_VALUE,y,O,s,f,c,L=this.nodes,A=L.length,m=0;my&&(v=y),Ds&&(u=s),Ey&&(v=y),Ds&&(u=s),E=this.nodes.length){var A=0;D.forEach(function(m){m.owner==p&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},N.exports=h}),(function(N,I,T){var o,e=T(1);function t(i){o=T(5),this.layout=i,this.graphs=[],this.edges=[]}t.prototype.addRoot=function(){var i=this.layout.newGraph(),l=this.layout.newNode(null),g=this.add(i,l);return this.setRootGraph(g),this.rootGraph},t.prototype.add=function(i,l,g,n,d){if(g==null&&n==null&&d==null){if(i==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(i)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(i),i.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return i.parent=l,l.child=i,i}else{d=g,n=l,g=i;var r=n.getOwner(),h=d.getOwner();if(!(r!=null&&r.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(h!=null&&h.getGraphManager()==this))throw"Target not in this graph mgr!";if(r==h)return g.isInterGraph=!1,r.add(g,n,d);if(g.isInterGraph=!0,g.source=n,g.target=d,this.edges.indexOf(g)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(g),!(g.source!=null&&g.target!=null))throw"Edge source and/or target is null!";if(!(g.source.edges.indexOf(g)==-1&&g.target.edges.indexOf(g)==-1))throw"Edge already in source and/or target incidency list!";return g.source.edges.push(g),g.target.edges.push(g),g}},t.prototype.remove=function(i){if(i instanceof o){var l=i;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var g=[];g=g.concat(l.getEdges());for(var n,d=g.length,r=0;r=i.getRight()?l[0]+=Math.min(i.getX()-t.getX(),t.getRight()-i.getRight()):i.getX()<=t.getX()&&i.getRight()>=t.getRight()&&(l[0]+=Math.min(t.getX()-i.getX(),i.getRight()-t.getRight())),t.getY()<=i.getY()&&t.getBottom()>=i.getBottom()?l[1]+=Math.min(i.getY()-t.getY(),t.getBottom()-i.getBottom()):i.getY()<=t.getY()&&i.getBottom()>=t.getBottom()&&(l[1]+=Math.min(t.getY()-i.getY(),i.getBottom()-t.getBottom()));var d=Math.abs((i.getCenterY()-t.getCenterY())/(i.getCenterX()-t.getCenterX()));i.getCenterY()===t.getCenterY()&&i.getCenterX()===t.getCenterX()&&(d=1);var r=d*l[0],h=l[1]/d;l[0]r)return l[0]=g,l[1]=a,l[2]=d,l[3]=L,!1;if(nd)return l[0]=h,l[1]=n,l[2]=f,l[3]=r,!1;if(gd?(l[0]=v,l[1]=D,R=!0):(l[0]=p,l[1]=a,R=!0):S===x&&(g>d?(l[0]=h,l[1]=a,R=!0):(l[0]=u,l[1]=D,R=!0)),-Y===x?d>g?(l[2]=c,l[3]=L,w=!0):(l[2]=f,l[3]=s,w=!0):Y===x&&(d>g?(l[2]=O,l[3]=s,w=!0):(l[2]=A,l[3]=L,w=!0)),R&&w)return!1;if(g>d?n>r?(G=this.getCardinalDirection(S,x,4),F=this.getCardinalDirection(Y,x,2)):(G=this.getCardinalDirection(-S,x,3),F=this.getCardinalDirection(-Y,x,1)):n>r?(G=this.getCardinalDirection(-S,x,1),F=this.getCardinalDirection(-Y,x,3)):(G=this.getCardinalDirection(S,x,2),F=this.getCardinalDirection(Y,x,4)),!R)switch(G){case 1:P=a,U=g+-y/x,l[0]=U,l[1]=P;break;case 2:U=u,P=n+E*x,l[0]=U,l[1]=P;break;case 3:P=D,U=g+y/x,l[0]=U,l[1]=P;break;case 4:U=v,P=n+-E*x,l[0]=U,l[1]=P;break}if(!w)switch(F){case 1:b=s,_=d+-C/x,l[2]=_,l[3]=b;break;case 2:_=A,b=r+m*x,l[2]=_,l[3]=b;break;case 3:b=L,_=d+C/x,l[2]=_,l[3]=b;break;case 4:_=c,b=r+-m*x,l[2]=_,l[3]=b;break}}return!1},e.getCardinalDirection=function(t,i,l){return t>i?l:1+l%4},e.getIntersection=function(t,i,l,g){if(g==null)return this.getIntersection2(t,i,l);var n=t.x,d=t.y,r=i.x,h=i.y,a=l.x,p=l.y,v=g.x,D=g.y,u=void 0,E=void 0,y=void 0,O=void 0,s=void 0,f=void 0,c=void 0,L=void 0,A=void 0;return y=h-d,s=n-r,c=r*d-n*h,O=D-p,f=a-v,L=v*p-a*D,A=y*f-O*s,A===0?null:(u=(s*L-f*c)/A,E=(O*c-y*L)/A,new o(u,E))},e.angleOfVector=function(t,i,l,g){var n=void 0;return t!==l?(n=Math.atan((g-i)/(l-t)),l0?1:e<0?-1:0},o.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},o.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},N.exports=o}),(function(N,I,T){function o(){}o.MAX_VALUE=2147483647,o.MIN_VALUE=-2147483648,N.exports=o}),(function(N,I,T){var o=(function(){function n(d,r){for(var h=0;h"u"?"undefined":o(t);return t==null||i!="object"&&i!="function"},N.exports=e}),(function(N,I,T){function o(a){if(Array.isArray(a)){for(var p=0,v=Array(a.length);p0&&p;){for(y.push(s[0]);y.length>0&&p;){var f=y[0];y.splice(0,1),E.add(f);for(var c=f.getEdges(),u=0;u-1&&s.splice(C,1)}E=new Set,O=new Map}}return a},h.prototype.createDummyNodesForBendpoints=function(a){for(var p=[],v=a.source,D=this.graphManager.calcLowestCommonAncestor(a.source,a.target),u=0;u0){for(var D=this.edgeToDummyNodes.get(v),u=0;u=0&&p.splice(L,1);var A=O.getNeighborsList();A.forEach(function(R){if(v.indexOf(R)<0){var w=D.get(R),S=w-1;S==1&&f.push(R),D.set(R,S)}})}v=v.concat(f),(p.length==1||p.length==2)&&(u=!0,E=p[0])}return E},h.prototype.setGraphManager=function(a){this.graphManager=a},N.exports=h}),(function(N,I,T){function o(){}o.seed=1,o.x=0,o.nextDouble=function(){return o.x=Math.sin(o.seed++)*1e4,o.x-Math.floor(o.x)},N.exports=o}),(function(N,I,T){var o=T(4);function e(t,i){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}e.prototype.getWorldOrgX=function(){return this.lworldOrgX},e.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},e.prototype.getWorldOrgY=function(){return this.lworldOrgY},e.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},e.prototype.getWorldExtX=function(){return this.lworldExtX},e.prototype.setWorldExtX=function(t){this.lworldExtX=t},e.prototype.getWorldExtY=function(){return this.lworldExtY},e.prototype.setWorldExtY=function(t){this.lworldExtY=t},e.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},e.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},e.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},e.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},e.prototype.getDeviceExtX=function(){return this.ldeviceExtX},e.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},e.prototype.getDeviceExtY=function(){return this.ldeviceExtY},e.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},e.prototype.transformX=function(t){var i=0,l=this.lworldExtX;return l!=0&&(i=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/l),i},e.prototype.transformY=function(t){var i=0,l=this.lworldExtY;return l!=0&&(i=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/l),i},e.prototype.inverseTransformX=function(t){var i=0,l=this.ldeviceExtX;return l!=0&&(i=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/l),i},e.prototype.inverseTransformY=function(t){var i=0,l=this.ldeviceExtY;return l!=0&&(i=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/l),i},e.prototype.inverseTransformPoint=function(t){var i=new o(this.inverseTransformX(t.x),this.inverseTransformY(t.y));return i},N.exports=e}),(function(N,I,T){function o(r){if(Array.isArray(r)){for(var h=0,a=Array(r.length);ht.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*t.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-t.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT_INCREMENTAL):(r>t.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(t.COOLING_ADAPTATION_FACTOR,1-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*(1-t.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},n.prototype.calcSpringForces=function(){for(var r=this.getAllEdges(),h,a=0;a0&&arguments[0]!==void 0?arguments[0]:!0,h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a,p,v,D,u=this.getAllNodes(),E;if(this.useFRGridVariant)for(this.totalIterations%t.GRID_CALCULATION_CHECK_PERIOD==1&&r&&this.updateGrid(),E=new Set,a=0;ay||E>y)&&(r.gravitationForceX=-this.gravityConstant*v,r.gravitationForceY=-this.gravityConstant*D)):(y=h.getEstimatedSize()*this.compoundGravityRangeFactor,(u>y||E>y)&&(r.gravitationForceX=-this.gravityConstant*v*this.compoundGravityConstant,r.gravitationForceY=-this.gravityConstant*D*this.compoundGravityConstant))},n.prototype.isConverged=function(){var r,h=!1;return this.totalIterations>this.maxIterations/3&&(h=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),r=this.totalDisplacement=u.length||y>=u[0].length)){for(var O=0;On}}]),l})();N.exports=i}),(function(N,I,T){var o=(function(){function i(l,g){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;e(this,i),this.sequence1=l,this.sequence2=g,this.match_score=n,this.mismatch_penalty=d,this.gap_penalty=r,this.iMax=l.length+1,this.jMax=g.length+1,this.grid=new Array(this.iMax);for(var h=0;h=0;l--){var g=this.listeners[l];g.event===t&&g.callback===i&&this.listeners.splice(l,1)}},e.emit=function(t,i){for(var l=0;lg.coolingFactor*g.maxNodeDisplacement&&(this.displacementX=g.coolingFactor*g.maxNodeDisplacement*t.sign(this.displacementX)),Math.abs(this.displacementY)>g.coolingFactor*g.maxNodeDisplacement&&(this.displacementY=g.coolingFactor*g.maxNodeDisplacement*t.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),g.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},i.prototype.propogateDisplacementToChildren=function(g,n){for(var d=this.getChild().getNodes(),r,h=0;h0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var f=new Set(this.getAllNodes()),c=this.nodesWithGravity.filter(function(L){return f.has(L)});this.graphManager.setAllNodesToApplyGravitation(c),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},y.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var s=new Set(this.getAllNodes()),f=this.nodesWithGravity.filter(function(A){return s.has(A)});this.graphManager.setAllNodesToApplyGravitation(f),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var c=!this.isTreeGrowing&&!this.isGrowthFinished,L=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(c,L),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},y.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),f={},c=0;c1){var R;for(R=0;RL&&(L=Math.floor(C.y)),m=Math.floor(C.x+n.DEFAULT_COMPONENT_SEPERATION)}this.transform(new a(r.WORLD_CENTER_X-C.x/2,r.WORLD_CENTER_Y-C.y/2))},y.radialLayout=function(s,f,c){var L=Math.max(this.maxDiagonalInTree(s),n.DEFAULT_RADIAL_SEPARATION);y.branchRadialLayout(f,null,0,359,0,L);var A=u.calculateBounds(s),m=new E;m.setDeviceOrgX(A.getMinX()),m.setDeviceOrgY(A.getMinY()),m.setWorldOrgX(c.x),m.setWorldOrgY(c.y);for(var C=0;C1;){var b=_[0];_.splice(0,1);var H=x.indexOf(b);H>=0&&x.splice(H,1),U--,G--}f!=null?P=(x.indexOf(_[0])+1)%U:P=0;for(var W=Math.abs(L-c)/G,B=P;F!=G;B=++B%U){var K=x[B].getOtherEnd(s);if(K!=f){var q=(c+F*W)%360,ht=(q+W)%360;y.branchRadialLayout(K,s,q,ht,A+m,m),F++}}},y.maxDiagonalInTree=function(s){for(var f=v.MIN_VALUE,c=0;cf&&(f=A)}return f},y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},y.prototype.groupZeroDegreeMembers=function(){var s=this,f={};this.memberGroups={},this.idToDummyNode={};for(var c=[],L=this.graphManager.getAllNodes(),A=0;A"u"&&(f[R]=[]),f[R]=f[R].concat(m)}Object.keys(f).forEach(function(w){if(f[w].length>1){var S="DummyCompound_"+w;s.memberGroups[S]=f[w];var Y=f[w][0].getParent(),x=new l(s.graphManager);x.id=S,x.paddingLeft=Y.paddingLeft||0,x.paddingRight=Y.paddingRight||0,x.paddingBottom=Y.paddingBottom||0,x.paddingTop=Y.paddingTop||0,s.idToDummyNode[S]=x;var G=s.getGraphManager().add(s.newGraph(),x),F=Y.getChild();F.add(x);for(var U=0;U=0;s--){var f=this.compoundOrder[s],c=f.id,L=f.paddingLeft,A=f.paddingTop;this.adjustLocations(this.tiledMemberPack[c],f.rect.x,f.rect.y,L,A)}},y.prototype.repopulateZeroDegreeMembers=function(){var s=this,f=this.tiledZeroDegreePack;Object.keys(f).forEach(function(c){var L=s.idToDummyNode[c],A=L.paddingLeft,m=L.paddingTop;s.adjustLocations(f[c],L.rect.x,L.rect.y,A,m)})},y.prototype.getToBeTiled=function(s){var f=s.id;if(this.toBeTiled[f]!=null)return this.toBeTiled[f];var c=s.getChild();if(c==null)return this.toBeTiled[f]=!1,!1;for(var L=c.getNodes(),A=0;A0)return this.toBeTiled[f]=!1,!1;if(m.getChild()==null){this.toBeTiled[m.id]=!1;continue}if(!this.getToBeTiled(m))return this.toBeTiled[f]=!1,!1}return this.toBeTiled[f]=!0,!0},y.prototype.getNodeDegree=function(s){s.id;for(var f=s.getEdges(),c=0,L=0;Lw&&(w=Y.rect.height)}c+=w+s.verticalPadding}},y.prototype.tileCompoundMembers=function(s,f){var c=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(L){var A=f[L];c.tiledMemberPack[L]=c.tileNodes(s[L],A.paddingLeft+A.paddingRight),A.rect.width=c.tiledMemberPack[L].width,A.rect.height=c.tiledMemberPack[L].height})},y.prototype.tileNodes=function(s,f){var c=n.TILING_PADDING_VERTICAL,L=n.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:f,verticalPadding:c,horizontalPadding:L};s.sort(function(R,w){return R.rect.width*R.rect.height>w.rect.width*w.rect.height?-1:R.rect.width*R.rect.height0&&(C+=s.horizontalPadding),s.rowWidth[c]=C,s.width0&&(R+=s.verticalPadding);var w=0;R>s.rowHeight[c]&&(w=s.rowHeight[c],s.rowHeight[c]=R,w=s.rowHeight[c]-w),s.height+=w,s.rows[c].push(f)},y.prototype.getShortestRowIndex=function(s){for(var f=-1,c=Number.MAX_VALUE,L=0;Lc&&(f=L,c=s.rowWidth[L]);return f},y.prototype.canAddHorizontal=function(s,f,c){var L=this.getShortestRowIndex(s);if(L<0)return!0;var A=s.rowWidth[L];if(A+s.horizontalPadding+f<=s.width)return!0;var m=0;s.rowHeight[L]0&&(m=c+s.verticalPadding-s.rowHeight[L]);var C;s.width-A>=f+s.horizontalPadding?C=(s.height+m)/(A+f+s.horizontalPadding):C=(s.height+m)/s.width,m=c+s.verticalPadding;var R;return s.widthm&&f!=c){L.splice(-1,1),s.rows[c].push(A),s.rowWidth[f]=s.rowWidth[f]-m,s.rowWidth[c]=s.rowWidth[c]+m,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var C=Number.MIN_VALUE,R=0;RC&&(C=L[R].height);f>0&&(C+=s.verticalPadding);var w=s.rowHeight[f]+s.rowHeight[c];s.rowHeight[f]=C,s.rowHeight[c]0)for(var F=A;F<=m;F++)G[0]+=this.grid[F][C-1].length+this.grid[F][C].length-1;if(m0)for(var F=C;F<=R;F++)G[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var U=v.MAX_VALUE,P,_,b=0;b0){var R;R=E.getGraphManager().add(E.newGraph(),c),this.processChildrenList(R,f,E)}}},a.prototype.stop=function(){return this.stopped=!0,this};var v=function(u){u("layout","cose-bilkent",a)};typeof cytoscape<"u"&&v(cytoscape),I.exports=v})])})})(Z)),Z.exports}var yt=vt();const Et=gt(yt);tt.use(Et);function et(M,X){M.forEach(N=>{const I={id:N.id,labelText:N.label,height:N.height,width:N.width,padding:N.padding??0};Object.keys(N).forEach(T=>{["id","label","height","width","padding","x","y"].includes(T)||(I[T]=N[T])}),X.add({group:"nodes",data:I,position:{x:N.x??0,y:N.y??0}})})}V(et,"addNodes");function rt(M,X){M.forEach(N=>{const I={id:N.id,source:N.start,target:N.end};Object.keys(N).forEach(T=>{["id","start","end"].includes(T)||(I[T]=N[T])}),X.add({group:"edges",data:I})})}V(rt,"addEdges");function it(M){return new Promise(X=>{const N=lt("body").append("div").attr("id","cy").attr("style","display:none"),I=tt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});N.remove(),et(M.nodes,I),rt(M.edges,I),I.nodes().forEach(function(o){o.layoutDimensions=()=>{const e=o.data();return{w:e.width,h:e.height}}});const T={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};I.layout(T).run(),I.ready(o=>{k.info("Cytoscape ready",o),X(I)})})}V(it,"createCytoscapeInstance");function nt(M){return M.nodes().map(X=>{const N=X.data(),I=X.position(),T={id:N.id,x:I.x,y:I.y};return Object.keys(N).forEach(o=>{o!=="id"&&(T[o]=N[o])}),T})}V(nt,"extractPositionedNodes");function ot(M){return M.edges().map(X=>{const N=X.data(),I=X._private.rscratch,T={id:N.id,source:N.source,target:N.target,startX:I.startX,startY:I.startY,midX:I.midX,midY:I.midY,endX:I.endX,endY:I.endY};return Object.keys(N).forEach(o=>{["id","source","target"].includes(o)||(T[o]=N[o])}),T})}V(ot,"extractPositionedEdges");async function st(M,X){k.debug("Starting cose-bilkent layout algorithm");try{at(M);const N=await it(M),I=nt(N),T=ot(N);return k.debug(`Layout completed: ${I.length} nodes, ${T.length} edges`),{nodes:I,edges:T}}catch(N){throw k.error("Error in cose-bilkent layout algorithm:",N),N}}V(st,"executeCoseBilkentLayout");function at(M){if(!M)throw new Error("Layout data is required");if(!M.config)throw new Error("Configuration is required in layout data");if(!M.rootNode)throw new Error("Root node is required");if(!M.nodes||!Array.isArray(M.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(M.edges))throw new Error("Edges array is required in layout data");return!0}V(at,"validateLayoutData");var Lt=V(async(M,X,{insertCluster:N,insertEdge:I,insertEdgeLabel:T,insertMarkers:o,insertNode:e,log:t,positionEdgeLabel:i},{algorithm:l})=>{const g={},n={},d=X.select("g");o(d,M.markers,M.type,M.diagramId);const r=d.insert("g").attr("class","subgraphs"),h=d.insert("g").attr("class","edgePaths"),a=d.insert("g").attr("class","edgeLabels"),p=d.insert("g").attr("class","nodes");t.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(M.nodes.map(async u=>{if(u.isGroup){const E={...u};n[u.id]=E,g[u.id]=E,await N(r,u)}else{const E={...u};g[u.id]=E;const y=await e(p,u,{config:M.config,dir:M.direction||"TB"}),O=y.node().getBBox();E.width=O.width,E.height=O.height,E.domId=y,t.debug(`Node ${u.id} dimensions: ${O.width}x${O.height}`)}})),t.debug("Running cose-bilkent layout algorithm");const v={...M,nodes:M.nodes.map(u=>{const E=g[u.id];return{...u,width:E.width,height:E.height}})},D=await st(v,M.config);t.debug("Positioning nodes based on layout results"),D.nodes.forEach(u=>{const E=g[u.id];E!=null&&E.domId&&(E.domId.attr("transform",`translate(${u.x}, ${u.y})`),E.x=u.x,E.y=u.y,t.debug(`Positioned node ${E.id} at center (${u.x}, ${u.y})`))}),D.edges.forEach(u=>{const E=M.edges.find(y=>y.id===u.id);E&&(E.points=[{x:u.startX,y:u.startY},{x:u.midX,y:u.midY},{x:u.endX,y:u.endY}])}),t.debug("Inserting and positioning edges"),await Promise.all(M.edges.map(async u=>{await T(a,u);const E=g[u.start??""],y=g[u.end??""];if(E&&y){const O=D.edges.find(s=>s.id===u.id);if(O){t.debug("APA01 positionedEdge",O);const s={...u},f=I(h,s,n,M.type,E,y,M.diagramId);i(s,f)}else{const s={...u,points:[{x:E.x||0,y:E.y||0},{x:y.x||0,y:y.y||0}]},f=I(h,s,n,M.type,E,y,M.diagramId);i(s,f)}}})),t.debug("Cose-bilkent rendering completed")},"render"),Nt=Lt;export{Nt as render}; +//# sourceMappingURL=cose-bilkent-S5V4N54A.js.map diff --git a/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js.map b/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js.map new file mode 100644 index 000000000000..3e23ef6acb93 --- /dev/null +++ b/extensions/continue/gui/assets/cose-bilkent-S5V4N54A.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cose-bilkent-S5V4N54A.js","sources":["../../node_modules/layout-base/layout-base.js","../../node_modules/cose-base/cose-base.js","../../node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js","../../node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"layoutBase\"] = factory();\n\telse\n\t\troot[\"layoutBase\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 26);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LayoutConstants() {}\n\n/**\r\n * Layout Quality: 0:draft, 1:default, 2:proof\r\n */\nLayoutConstants.QUALITY = 1;\n\n/**\r\n * Default parameters\r\n */\nLayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;\nLayoutConstants.DEFAULT_INCREMENTAL = false;\nLayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;\nLayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;\nLayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;\nLayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;\n\n// -----------------------------------------------------------------------------\n// Section: General other constants\n// -----------------------------------------------------------------------------\n/*\r\n * Margins of a graph to be applied on bouding rectangle of its contents. We\r\n * assume margins on all four sides to be uniform.\r\n */\nLayoutConstants.DEFAULT_GRAPH_MARGIN = 15;\n\n/*\r\n * Whether to consider labels in node dimensions or not\r\n */\nLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_SIZE = 40;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;\n\n/*\r\n * Empty compound node size. When a compound node is empty, its both\r\n * dimensions should be of this value.\r\n */\nLayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;\n\n/*\r\n * Minimum length that an edge should take during layout\r\n */\nLayoutConstants.MIN_EDGE_LENGTH = 1;\n\n/*\r\n * World boundaries that layout operates on\r\n */\nLayoutConstants.WORLD_BOUNDARY = 1000000;\n\n/*\r\n * World boundaries that random positioning can be performed with\r\n */\nLayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000;\n\n/*\r\n * Coordinates of the world center\r\n */\nLayoutConstants.WORLD_CENTER_X = 1200;\nLayoutConstants.WORLD_CENTER_Y = 900;\n\nmodule.exports = LayoutConstants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction LEdge(source, target, vEdge) {\n LGraphObject.call(this, vEdge);\n\n this.isOverlapingSourceAndTarget = false;\n this.vGraphObject = vEdge;\n this.bendpoints = [];\n this.source = source;\n this.target = target;\n}\n\nLEdge.prototype = Object.create(LGraphObject.prototype);\n\nfor (var prop in LGraphObject) {\n LEdge[prop] = LGraphObject[prop];\n}\n\nLEdge.prototype.getSource = function () {\n return this.source;\n};\n\nLEdge.prototype.getTarget = function () {\n return this.target;\n};\n\nLEdge.prototype.isInterGraph = function () {\n return this.isInterGraph;\n};\n\nLEdge.prototype.getLength = function () {\n return this.length;\n};\n\nLEdge.prototype.isOverlapingSourceAndTarget = function () {\n return this.isOverlapingSourceAndTarget;\n};\n\nLEdge.prototype.getBendpoints = function () {\n return this.bendpoints;\n};\n\nLEdge.prototype.getLca = function () {\n return this.lca;\n};\n\nLEdge.prototype.getSourceInLca = function () {\n return this.sourceInLca;\n};\n\nLEdge.prototype.getTargetInLca = function () {\n return this.targetInLca;\n};\n\nLEdge.prototype.getOtherEnd = function (node) {\n if (this.source === node) {\n return this.target;\n } else if (this.target === node) {\n return this.source;\n } else {\n throw \"Node is not incident with this edge\";\n }\n};\n\nLEdge.prototype.getOtherEndInGraph = function (node, graph) {\n var otherEnd = this.getOtherEnd(node);\n var root = graph.getGraphManager().getRoot();\n\n while (true) {\n if (otherEnd.getOwner() == graph) {\n return otherEnd;\n }\n\n if (otherEnd.getOwner() == root) {\n break;\n }\n\n otherEnd = otherEnd.getOwner().getParent();\n }\n\n return null;\n};\n\nLEdge.prototype.updateLength = function () {\n var clipPointCoordinates = new Array(4);\n\n this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);\n\n if (!this.isOverlapingSourceAndTarget) {\n this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];\n this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n }\n};\n\nLEdge.prototype.updateLengthSimple = function () {\n this.lengthX = this.target.getCenterX() - this.source.getCenterX();\n this.lengthY = this.target.getCenterY() - this.source.getCenterY();\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n};\n\nmodule.exports = LEdge;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LGraphObject(vGraphObject) {\n this.vGraphObject = vGraphObject;\n}\n\nmodule.exports = LGraphObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar RectangleD = __webpack_require__(13);\nvar LayoutConstants = __webpack_require__(0);\nvar RandomSeed = __webpack_require__(16);\nvar PointD = __webpack_require__(4);\n\nfunction LNode(gm, loc, size, vNode) {\n //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode)\n if (size == null && vNode == null) {\n vNode = loc;\n }\n\n LGraphObject.call(this, vNode);\n\n //Alternative constructor 2 : LNode(Layout layout, Object vNode)\n if (gm.graphManager != null) gm = gm.graphManager;\n\n this.estimatedSize = Integer.MIN_VALUE;\n this.inclusionTreeDepth = Integer.MAX_VALUE;\n this.vGraphObject = vNode;\n this.edges = [];\n this.graphManager = gm;\n\n if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD();\n}\n\nLNode.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LNode[prop] = LGraphObject[prop];\n}\n\nLNode.prototype.getEdges = function () {\n return this.edges;\n};\n\nLNode.prototype.getChild = function () {\n return this.child;\n};\n\nLNode.prototype.getOwner = function () {\n // if (this.owner != null) {\n // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) {\n // throw \"assert failed\";\n // }\n // }\n\n return this.owner;\n};\n\nLNode.prototype.getWidth = function () {\n return this.rect.width;\n};\n\nLNode.prototype.setWidth = function (width) {\n this.rect.width = width;\n};\n\nLNode.prototype.getHeight = function () {\n return this.rect.height;\n};\n\nLNode.prototype.setHeight = function (height) {\n this.rect.height = height;\n};\n\nLNode.prototype.getCenterX = function () {\n return this.rect.x + this.rect.width / 2;\n};\n\nLNode.prototype.getCenterY = function () {\n return this.rect.y + this.rect.height / 2;\n};\n\nLNode.prototype.getCenter = function () {\n return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);\n};\n\nLNode.prototype.getLocation = function () {\n return new PointD(this.rect.x, this.rect.y);\n};\n\nLNode.prototype.getRect = function () {\n return this.rect;\n};\n\nLNode.prototype.getDiagonal = function () {\n return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);\n};\n\n/**\n * This method returns half the diagonal length of this node.\n */\nLNode.prototype.getHalfTheDiagonal = function () {\n return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;\n};\n\nLNode.prototype.setRect = function (upperLeft, dimension) {\n this.rect.x = upperLeft.x;\n this.rect.y = upperLeft.y;\n this.rect.width = dimension.width;\n this.rect.height = dimension.height;\n};\n\nLNode.prototype.setCenter = function (cx, cy) {\n this.rect.x = cx - this.rect.width / 2;\n this.rect.y = cy - this.rect.height / 2;\n};\n\nLNode.prototype.setLocation = function (x, y) {\n this.rect.x = x;\n this.rect.y = y;\n};\n\nLNode.prototype.moveBy = function (dx, dy) {\n this.rect.x += dx;\n this.rect.y += dy;\n};\n\nLNode.prototype.getEdgeListToNode = function (to) {\n var edgeList = [];\n var edge;\n var self = this;\n\n self.edges.forEach(function (edge) {\n\n if (edge.target == to) {\n if (edge.source != self) throw \"Incorrect edge source!\";\n\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getEdgesBetween = function (other) {\n var edgeList = [];\n var edge;\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (!(edge.source == self || edge.target == self)) throw \"Incorrect edge source and/or target\";\n\n if (edge.target == other || edge.source == other) {\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getNeighborsList = function () {\n var neighbors = new Set();\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (edge.source == self) {\n neighbors.add(edge.target);\n } else {\n if (edge.target != self) {\n throw \"Incorrect incidency!\";\n }\n\n neighbors.add(edge.source);\n }\n });\n\n return neighbors;\n};\n\nLNode.prototype.withChildren = function () {\n var withNeighborsList = new Set();\n var childNode;\n var children;\n\n withNeighborsList.add(this);\n\n if (this.child != null) {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n children = childNode.withChildren();\n children.forEach(function (node) {\n withNeighborsList.add(node);\n });\n }\n }\n\n return withNeighborsList;\n};\n\nLNode.prototype.getNoOfChildren = function () {\n var noOfChildren = 0;\n var childNode;\n\n if (this.child == null) {\n noOfChildren = 1;\n } else {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n\n noOfChildren += childNode.getNoOfChildren();\n }\n }\n\n if (noOfChildren == 0) {\n noOfChildren = 1;\n }\n return noOfChildren;\n};\n\nLNode.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLNode.prototype.calcEstimatedSize = function () {\n if (this.child == null) {\n return this.estimatedSize = (this.rect.width + this.rect.height) / 2;\n } else {\n this.estimatedSize = this.child.calcEstimatedSize();\n this.rect.width = this.estimatedSize;\n this.rect.height = this.estimatedSize;\n\n return this.estimatedSize;\n }\n};\n\nLNode.prototype.scatter = function () {\n var randomCenterX;\n var randomCenterY;\n\n var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;\n\n var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;\n\n this.rect.x = randomCenterX;\n this.rect.y = randomCenterY;\n};\n\nLNode.prototype.updateBounds = function () {\n if (this.getChild() == null) {\n throw \"assert failed\";\n }\n if (this.getChild().getNodes().length != 0) {\n // wrap the children nodes by re-arranging the boundaries\n var childGraph = this.getChild();\n childGraph.updateBounds(true);\n\n this.rect.x = childGraph.getLeft();\n this.rect.y = childGraph.getTop();\n\n this.setWidth(childGraph.getRight() - childGraph.getLeft());\n this.setHeight(childGraph.getBottom() - childGraph.getTop());\n\n // Update compound bounds considering its label properties \n if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = childGraph.getRight() - childGraph.getLeft();\n var height = childGraph.getBottom() - childGraph.getTop();\n\n if (this.labelWidth > width) {\n this.rect.x -= (this.labelWidth - width) / 2;\n this.setWidth(this.labelWidth);\n }\n\n if (this.labelHeight > height) {\n if (this.labelPos == \"center\") {\n this.rect.y -= (this.labelHeight - height) / 2;\n } else if (this.labelPos == \"top\") {\n this.rect.y -= this.labelHeight - height;\n }\n this.setHeight(this.labelHeight);\n }\n }\n }\n};\n\nLNode.prototype.getInclusionTreeDepth = function () {\n if (this.inclusionTreeDepth == Integer.MAX_VALUE) {\n throw \"assert failed\";\n }\n return this.inclusionTreeDepth;\n};\n\nLNode.prototype.transform = function (trans) {\n var left = this.rect.x;\n\n if (left > LayoutConstants.WORLD_BOUNDARY) {\n left = LayoutConstants.WORLD_BOUNDARY;\n } else if (left < -LayoutConstants.WORLD_BOUNDARY) {\n left = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var top = this.rect.y;\n\n if (top > LayoutConstants.WORLD_BOUNDARY) {\n top = LayoutConstants.WORLD_BOUNDARY;\n } else if (top < -LayoutConstants.WORLD_BOUNDARY) {\n top = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var leftTop = new PointD(left, top);\n var vLeftTop = trans.inverseTransformPoint(leftTop);\n\n this.setLocation(vLeftTop.x, vLeftTop.y);\n};\n\nLNode.prototype.getLeft = function () {\n return this.rect.x;\n};\n\nLNode.prototype.getRight = function () {\n return this.rect.x + this.rect.width;\n};\n\nLNode.prototype.getTop = function () {\n return this.rect.y;\n};\n\nLNode.prototype.getBottom = function () {\n return this.rect.y + this.rect.height;\n};\n\nLNode.prototype.getParent = function () {\n if (this.owner == null) {\n return null;\n }\n\n return this.owner.getParent();\n};\n\nmodule.exports = LNode;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction PointD(x, y) {\n if (x == null && y == null) {\n this.x = 0;\n this.y = 0;\n } else {\n this.x = x;\n this.y = y;\n }\n}\n\nPointD.prototype.getX = function () {\n return this.x;\n};\n\nPointD.prototype.getY = function () {\n return this.y;\n};\n\nPointD.prototype.setX = function (x) {\n this.x = x;\n};\n\nPointD.prototype.setY = function (y) {\n this.y = y;\n};\n\nPointD.prototype.getDifference = function (pt) {\n return new DimensionD(this.x - pt.x, this.y - pt.y);\n};\n\nPointD.prototype.getCopy = function () {\n return new PointD(this.x, this.y);\n};\n\nPointD.prototype.translate = function (dim) {\n this.x += dim.width;\n this.y += dim.height;\n return this;\n};\n\nmodule.exports = PointD;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar RectangleD = __webpack_require__(13);\nvar Point = __webpack_require__(12);\nvar LinkedList = __webpack_require__(11);\n\nfunction LGraph(parent, obj2, vGraph) {\n LGraphObject.call(this, vGraph);\n this.estimatedSize = Integer.MIN_VALUE;\n this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;\n this.edges = [];\n this.nodes = [];\n this.isConnected = false;\n this.parent = parent;\n\n if (obj2 != null && obj2 instanceof LGraphManager) {\n this.graphManager = obj2;\n } else if (obj2 != null && obj2 instanceof Layout) {\n this.graphManager = obj2.graphManager;\n }\n}\n\nLGraph.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LGraph[prop] = LGraphObject[prop];\n}\n\nLGraph.prototype.getNodes = function () {\n return this.nodes;\n};\n\nLGraph.prototype.getEdges = function () {\n return this.edges;\n};\n\nLGraph.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLGraph.prototype.getParent = function () {\n return this.parent;\n};\n\nLGraph.prototype.getLeft = function () {\n return this.left;\n};\n\nLGraph.prototype.getRight = function () {\n return this.right;\n};\n\nLGraph.prototype.getTop = function () {\n return this.top;\n};\n\nLGraph.prototype.getBottom = function () {\n return this.bottom;\n};\n\nLGraph.prototype.isConnected = function () {\n return this.isConnected;\n};\n\nLGraph.prototype.add = function (obj1, sourceNode, targetNode) {\n if (sourceNode == null && targetNode == null) {\n var newNode = obj1;\n if (this.graphManager == null) {\n throw \"Graph has no graph mgr!\";\n }\n if (this.getNodes().indexOf(newNode) > -1) {\n throw \"Node already in graph!\";\n }\n newNode.owner = this;\n this.getNodes().push(newNode);\n\n return newNode;\n } else {\n var newEdge = obj1;\n if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {\n throw \"Source or target not in graph!\";\n }\n\n if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {\n throw \"Both owners must be this graph!\";\n }\n\n if (sourceNode.owner != targetNode.owner) {\n return null;\n }\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // set as intra-graph edge\n newEdge.isInterGraph = false;\n\n // add to graph edge list\n this.getEdges().push(newEdge);\n\n // add to incidency lists\n sourceNode.edges.push(newEdge);\n\n if (targetNode != sourceNode) {\n targetNode.edges.push(newEdge);\n }\n\n return newEdge;\n }\n};\n\nLGraph.prototype.remove = function (obj) {\n var node = obj;\n if (obj instanceof LNode) {\n if (node == null) {\n throw \"Node is null!\";\n }\n if (!(node.owner != null && node.owner == this)) {\n throw \"Owner graph is invalid!\";\n }\n if (this.graphManager == null) {\n throw \"Owner graph manager is invalid!\";\n }\n // remove incident edges first (make a copy to do it safely)\n var edgesToBeRemoved = node.edges.slice();\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n\n if (edge.isInterGraph) {\n this.graphManager.remove(edge);\n } else {\n edge.source.owner.remove(edge);\n }\n }\n\n // now the node itself\n var index = this.nodes.indexOf(node);\n if (index == -1) {\n throw \"Node not in owner node list!\";\n }\n\n this.nodes.splice(index, 1);\n } else if (obj instanceof LEdge) {\n var edge = obj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {\n throw \"Source and/or target owner is invalid!\";\n }\n\n var sourceIndex = edge.source.edges.indexOf(edge);\n var targetIndex = edge.target.edges.indexOf(edge);\n if (!(sourceIndex > -1 && targetIndex > -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n edge.source.edges.splice(sourceIndex, 1);\n\n if (edge.target != edge.source) {\n edge.target.edges.splice(targetIndex, 1);\n }\n\n var index = edge.source.owner.getEdges().indexOf(edge);\n if (index == -1) {\n throw \"Not in owner's edge list!\";\n }\n\n edge.source.owner.getEdges().splice(index, 1);\n }\n};\n\nLGraph.prototype.updateLeftTop = function () {\n var top = Integer.MAX_VALUE;\n var left = Integer.MAX_VALUE;\n var nodeTop;\n var nodeLeft;\n var margin;\n\n var nodes = this.getNodes();\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeTop = lNode.getTop();\n nodeLeft = lNode.getLeft();\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n }\n\n // Do we have any nodes in this graph?\n if (top == Integer.MAX_VALUE) {\n return null;\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = left - margin;\n this.top = top - margin;\n\n // Apply the margins and return the result\n return new Point(this.left, this.top);\n};\n\nLGraph.prototype.updateBounds = function (recursive) {\n // calculate bounds\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n var margin;\n\n var nodes = this.nodes;\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n\n if (recursive && lNode.child != null) {\n lNode.updateBounds();\n }\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n if (left == Integer.MAX_VALUE) {\n this.left = this.parent.getLeft();\n this.right = this.parent.getRight();\n this.top = this.parent.getTop();\n this.bottom = this.parent.getBottom();\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = boundingRect.x - margin;\n this.right = boundingRect.x + boundingRect.width + margin;\n this.top = boundingRect.y - margin;\n this.bottom = boundingRect.y + boundingRect.height + margin;\n};\n\nLGraph.calculateBounds = function (nodes) {\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n\n return boundingRect;\n};\n\nLGraph.prototype.getInclusionTreeDepth = function () {\n if (this == this.graphManager.getRoot()) {\n return 1;\n } else {\n return this.parent.getInclusionTreeDepth();\n }\n};\n\nLGraph.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLGraph.prototype.calcEstimatedSize = function () {\n var size = 0;\n var nodes = this.nodes;\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n size += lNode.calcEstimatedSize();\n }\n\n if (size == 0) {\n this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;\n } else {\n this.estimatedSize = size / Math.sqrt(this.nodes.length);\n }\n\n return this.estimatedSize;\n};\n\nLGraph.prototype.updateConnected = function () {\n var self = this;\n if (this.nodes.length == 0) {\n this.isConnected = true;\n return;\n }\n\n var queue = new LinkedList();\n var visited = new Set();\n var currentNode = this.nodes[0];\n var neighborEdges;\n var currentNeighbor;\n var childrenOfNode = currentNode.withChildren();\n childrenOfNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n\n while (queue.length !== 0) {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n neighborEdges = currentNode.getEdges();\n var size = neighborEdges.length;\n for (var i = 0; i < size; i++) {\n var neighborEdge = neighborEdges[i];\n currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);\n\n // Add unvisited neighbors to the list to visit\n if (currentNeighbor != null && !visited.has(currentNeighbor)) {\n var childrenOfNeighbor = currentNeighbor.withChildren();\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n }\n }\n }\n\n this.isConnected = false;\n\n if (visited.size >= this.nodes.length) {\n var noOfVisitedInThisGraph = 0;\n\n visited.forEach(function (visitedNode) {\n if (visitedNode.owner == self) {\n noOfVisitedInThisGraph++;\n }\n });\n\n if (noOfVisitedInThisGraph == this.nodes.length) {\n this.isConnected = true;\n }\n }\n};\n\nmodule.exports = LGraph;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph;\nvar LEdge = __webpack_require__(1);\n\nfunction LGraphManager(layout) {\n LGraph = __webpack_require__(5); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now.\n this.layout = layout;\n\n this.graphs = [];\n this.edges = [];\n}\n\nLGraphManager.prototype.addRoot = function () {\n var ngraph = this.layout.newGraph();\n var nnode = this.layout.newNode(null);\n var root = this.add(ngraph, nnode);\n this.setRootGraph(root);\n return this.rootGraph;\n};\n\nLGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) {\n //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge\n if (newEdge == null && sourceNode == null && targetNode == null) {\n if (newGraph == null) {\n throw \"Graph is null!\";\n }\n if (parentNode == null) {\n throw \"Parent node is null!\";\n }\n if (this.graphs.indexOf(newGraph) > -1) {\n throw \"Graph already in this graph mgr!\";\n }\n\n this.graphs.push(newGraph);\n\n if (newGraph.parent != null) {\n throw \"Already has a parent!\";\n }\n if (parentNode.child != null) {\n throw \"Already has a child!\";\n }\n\n newGraph.parent = parentNode;\n parentNode.child = newGraph;\n\n return newGraph;\n } else {\n //change the order of the parameters\n targetNode = newEdge;\n sourceNode = parentNode;\n newEdge = newGraph;\n var sourceGraph = sourceNode.getOwner();\n var targetGraph = targetNode.getOwner();\n\n if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {\n throw \"Source not in this graph mgr!\";\n }\n if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {\n throw \"Target not in this graph mgr!\";\n }\n\n if (sourceGraph == targetGraph) {\n newEdge.isInterGraph = false;\n return sourceGraph.add(newEdge, sourceNode, targetNode);\n } else {\n newEdge.isInterGraph = true;\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // add edge to inter-graph edge list\n if (this.edges.indexOf(newEdge) > -1) {\n throw \"Edge already in inter-graph edge list!\";\n }\n\n this.edges.push(newEdge);\n\n // add edge to source and target incidency lists\n if (!(newEdge.source != null && newEdge.target != null)) {\n throw \"Edge source and/or target is null!\";\n }\n\n if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {\n throw \"Edge already in source and/or target incidency list!\";\n }\n\n newEdge.source.edges.push(newEdge);\n newEdge.target.edges.push(newEdge);\n\n return newEdge;\n }\n }\n};\n\nLGraphManager.prototype.remove = function (lObj) {\n if (lObj instanceof LGraph) {\n var graph = lObj;\n if (graph.getGraphManager() != this) {\n throw \"Graph not in this graph mgr\";\n }\n if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {\n throw \"Invalid parent node!\";\n }\n\n // first the edges (make a copy to do it safely)\n var edgesToBeRemoved = [];\n\n edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());\n\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n graph.remove(edge);\n }\n\n // then the nodes (make a copy to do it safely)\n var nodesToBeRemoved = [];\n\n nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());\n\n var node;\n s = nodesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n node = nodesToBeRemoved[i];\n graph.remove(node);\n }\n\n // check if graph is the root\n if (graph == this.rootGraph) {\n this.setRootGraph(null);\n }\n\n // now remove the graph itself\n var index = this.graphs.indexOf(graph);\n this.graphs.splice(index, 1);\n\n // also reset the parent of the graph\n graph.parent = null;\n } else if (lObj instanceof LEdge) {\n edge = lObj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!edge.isInterGraph) {\n throw \"Not an inter-graph edge!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n\n // remove edge from source and target nodes' incidency lists\n\n if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n var index = edge.source.edges.indexOf(edge);\n edge.source.edges.splice(index, 1);\n index = edge.target.edges.indexOf(edge);\n edge.target.edges.splice(index, 1);\n\n // remove edge from owner graph manager's inter-graph edge list\n\n if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {\n throw \"Edge owner graph or owner graph manager is null!\";\n }\n if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {\n throw \"Not in owner graph manager's edge list!\";\n }\n\n var index = edge.source.owner.getGraphManager().edges.indexOf(edge);\n edge.source.owner.getGraphManager().edges.splice(index, 1);\n }\n};\n\nLGraphManager.prototype.updateBounds = function () {\n this.rootGraph.updateBounds(true);\n};\n\nLGraphManager.prototype.getGraphs = function () {\n return this.graphs;\n};\n\nLGraphManager.prototype.getAllNodes = function () {\n if (this.allNodes == null) {\n var nodeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < s; i++) {\n nodeList = nodeList.concat(graphs[i].getNodes());\n }\n this.allNodes = nodeList;\n }\n return this.allNodes;\n};\n\nLGraphManager.prototype.resetAllNodes = function () {\n this.allNodes = null;\n};\n\nLGraphManager.prototype.resetAllEdges = function () {\n this.allEdges = null;\n};\n\nLGraphManager.prototype.resetAllNodesToApplyGravitation = function () {\n this.allNodesToApplyGravitation = null;\n};\n\nLGraphManager.prototype.getAllEdges = function () {\n if (this.allEdges == null) {\n var edgeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < graphs.length; i++) {\n edgeList = edgeList.concat(graphs[i].getEdges());\n }\n\n edgeList = edgeList.concat(this.edges);\n\n this.allEdges = edgeList;\n }\n return this.allEdges;\n};\n\nLGraphManager.prototype.getAllNodesToApplyGravitation = function () {\n return this.allNodesToApplyGravitation;\n};\n\nLGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) {\n if (this.allNodesToApplyGravitation != null) {\n throw \"assert failed\";\n }\n\n this.allNodesToApplyGravitation = nodeList;\n};\n\nLGraphManager.prototype.getRoot = function () {\n return this.rootGraph;\n};\n\nLGraphManager.prototype.setRootGraph = function (graph) {\n if (graph.getGraphManager() != this) {\n throw \"Root not in this graph mgr!\";\n }\n\n this.rootGraph = graph;\n // root graph must have a root node associated with it for convenience\n if (graph.parent == null) {\n graph.parent = this.layout.newNode(\"Root node\");\n }\n};\n\nLGraphManager.prototype.getLayout = function () {\n return this.layout;\n};\n\nLGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) {\n if (!(firstNode != null && secondNode != null)) {\n throw \"assert failed\";\n }\n\n if (firstNode == secondNode) {\n return true;\n }\n // Is second node an ancestor of the first one?\n var ownerGraph = firstNode.getOwner();\n var parentNode;\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == secondNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n // Is first node an ancestor of the second one?\n ownerGraph = secondNode.getOwner();\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == firstNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n\n return false;\n};\n\nLGraphManager.prototype.calcLowestCommonAncestors = function () {\n var edge;\n var sourceNode;\n var targetNode;\n var sourceAncestorGraph;\n var targetAncestorGraph;\n\n var edges = this.getAllEdges();\n var s = edges.length;\n for (var i = 0; i < s; i++) {\n edge = edges[i];\n\n sourceNode = edge.source;\n targetNode = edge.target;\n edge.lca = null;\n edge.sourceInLca = sourceNode;\n edge.targetInLca = targetNode;\n\n if (sourceNode == targetNode) {\n edge.lca = sourceNode.getOwner();\n continue;\n }\n\n sourceAncestorGraph = sourceNode.getOwner();\n\n while (edge.lca == null) {\n edge.targetInLca = targetNode;\n targetAncestorGraph = targetNode.getOwner();\n\n while (edge.lca == null) {\n if (targetAncestorGraph == sourceAncestorGraph) {\n edge.lca = targetAncestorGraph;\n break;\n }\n\n if (targetAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca != null) {\n throw \"assert failed\";\n }\n edge.targetInLca = targetAncestorGraph.getParent();\n targetAncestorGraph = edge.targetInLca.getOwner();\n }\n\n if (sourceAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca == null) {\n edge.sourceInLca = sourceAncestorGraph.getParent();\n sourceAncestorGraph = edge.sourceInLca.getOwner();\n }\n }\n\n if (edge.lca == null) {\n throw \"assert failed\";\n }\n }\n};\n\nLGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) {\n if (firstNode == secondNode) {\n return firstNode.getOwner();\n }\n var firstOwnerGraph = firstNode.getOwner();\n\n do {\n if (firstOwnerGraph == null) {\n break;\n }\n var secondOwnerGraph = secondNode.getOwner();\n\n do {\n if (secondOwnerGraph == null) {\n break;\n }\n\n if (secondOwnerGraph == firstOwnerGraph) {\n return secondOwnerGraph;\n }\n secondOwnerGraph = secondOwnerGraph.getParent().getOwner();\n } while (true);\n\n firstOwnerGraph = firstOwnerGraph.getParent().getOwner();\n } while (true);\n\n return firstOwnerGraph;\n};\n\nLGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) {\n if (graph == null && depth == null) {\n graph = this.rootGraph;\n depth = 1;\n }\n var node;\n\n var nodes = graph.getNodes();\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n node = nodes[i];\n node.inclusionTreeDepth = depth;\n\n if (node.child != null) {\n this.calcInclusionTreeDepths(node.child, depth + 1);\n }\n }\n};\n\nLGraphManager.prototype.includesInvalidEdge = function () {\n var edge;\n\n var s = this.edges.length;\n for (var i = 0; i < s; i++) {\n edge = this.edges[i];\n\n if (this.isOneAncestorOfOther(edge.source, edge.target)) {\n return true;\n }\n }\n return false;\n};\n\nmodule.exports = LGraphManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0);\n\nfunction FDLayoutConstants() {}\n\n//FDLayoutConstants inherits static props in LayoutConstants\nfor (var prop in LayoutConstants) {\n FDLayoutConstants[prop] = LayoutConstants[prop];\n}\n\nFDLayoutConstants.MAX_ITERATIONS = 2500;\n\nFDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\nFDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;\nFDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0;\nFDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0;\nFDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;\nFDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;\nFDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;\nFDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;\nFDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;\nFDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000;\nFDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;\nFDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\nFDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;\nFDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;\nFDLayoutConstants.MIN_EDGE_LENGTH = 1;\nFDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;\n\nmodule.exports = FDLayoutConstants;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This class maintains a list of static geometry related utility methods.\n *\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar Point = __webpack_require__(12);\n\nfunction IGeometry() {}\n\n/**\n * This method calculates *half* the amount in x and y directions of the two\n * input rectangles needed to separate them keeping their respective\n * positioning, and returns the result in the input array. An input\n * separation buffer added to the amount in both directions. We assume that\n * the two rectangles do intersect.\n */\nIGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) {\n if (!rectA.intersects(rectB)) {\n throw \"assert failed\";\n }\n\n var directions = new Array(2);\n\n this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);\n\n overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);\n overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);\n\n // update the overlapping amounts for the following cases:\n if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {\n /* Case x.1:\n *\n * rectA\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectB\n */\n overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());\n } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {\n /* Case x.2:\n *\n * rectB\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectA\n */\n overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());\n }\n if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {\n /* Case y.1:\n * ________ rectA\n * |\n * |\n * ______|____ rectB\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());\n } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {\n /* Case y.2:\n * ________ rectB\n * |\n * |\n * ______|____ rectA\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());\n }\n\n // find slope of the line passes two centers\n var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));\n // if centers are overlapped\n if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {\n // assume the slope is 1 (45 degree)\n slope = 1.0;\n }\n\n var moveByY = slope * overlapAmount[0];\n var moveByX = overlapAmount[1] / slope;\n if (overlapAmount[0] < moveByX) {\n moveByX = overlapAmount[0];\n } else {\n moveByY = overlapAmount[1];\n }\n // return half the amount so that if each rectangle is moved by these\n // amounts in opposite directions, overlap will be resolved\n overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);\n overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);\n};\n\n/**\n * This method decides the separation direction of overlapping nodes\n *\n * if directions[0] = -1, then rectA goes left\n * if directions[0] = 1, then rectA goes right\n * if directions[1] = -1, then rectA goes up\n * if directions[1] = 1, then rectA goes down\n */\nIGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) {\n if (rectA.getCenterX() < rectB.getCenterX()) {\n directions[0] = -1;\n } else {\n directions[0] = 1;\n }\n\n if (rectA.getCenterY() < rectB.getCenterY()) {\n directions[1] = -1;\n } else {\n directions[1] = 1;\n }\n};\n\n/**\n * This method calculates the intersection (clipping) points of the two\n * input rectangles with line segment defined by the centers of these two\n * rectangles. The clipping points are saved in the input double array and\n * whether or not the two rectangles overlap is returned.\n */\nIGeometry.getIntersection2 = function (rectA, rectB, result) {\n //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB\n var p1x = rectA.getCenterX();\n var p1y = rectA.getCenterY();\n var p2x = rectB.getCenterX();\n var p2y = rectB.getCenterY();\n\n //if two rectangles intersect, then clipping points are centers\n if (rectA.intersects(rectB)) {\n result[0] = p1x;\n result[1] = p1y;\n result[2] = p2x;\n result[3] = p2y;\n return true;\n }\n //variables for rectA\n var topLeftAx = rectA.getX();\n var topLeftAy = rectA.getY();\n var topRightAx = rectA.getRight();\n var bottomLeftAx = rectA.getX();\n var bottomLeftAy = rectA.getBottom();\n var bottomRightAx = rectA.getRight();\n var halfWidthA = rectA.getWidthHalf();\n var halfHeightA = rectA.getHeightHalf();\n //variables for rectB\n var topLeftBx = rectB.getX();\n var topLeftBy = rectB.getY();\n var topRightBx = rectB.getRight();\n var bottomLeftBx = rectB.getX();\n var bottomLeftBy = rectB.getBottom();\n var bottomRightBx = rectB.getRight();\n var halfWidthB = rectB.getWidthHalf();\n var halfHeightB = rectB.getHeightHalf();\n\n //flag whether clipping points are found\n var clipPointAFound = false;\n var clipPointBFound = false;\n\n // line is vertical\n if (p1x === p2x) {\n if (p1y > p2y) {\n result[0] = p1x;\n result[1] = topLeftAy;\n result[2] = p2x;\n result[3] = bottomLeftBy;\n return false;\n } else if (p1y < p2y) {\n result[0] = p1x;\n result[1] = bottomLeftAy;\n result[2] = p2x;\n result[3] = topLeftBy;\n return false;\n } else {\n //not line, return null;\n }\n }\n // line is horizontal\n else if (p1y === p2y) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = p1y;\n result[2] = topRightBx;\n result[3] = p2y;\n return false;\n } else if (p1x < p2x) {\n result[0] = topRightAx;\n result[1] = p1y;\n result[2] = topLeftBx;\n result[3] = p2y;\n return false;\n } else {\n //not valid line, return null;\n }\n } else {\n //slopes of rectA's and rectB's diagonals\n var slopeA = rectA.height / rectA.width;\n var slopeB = rectB.height / rectB.width;\n\n //slope of line between center of rectA and center of rectB\n var slopePrime = (p2y - p1y) / (p2x - p1x);\n var cardinalDirectionA = void 0;\n var cardinalDirectionB = void 0;\n var tempPointAx = void 0;\n var tempPointAy = void 0;\n var tempPointBx = void 0;\n var tempPointBy = void 0;\n\n //determine whether clipping point is the corner of nodeA\n if (-slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = bottomLeftAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = topRightAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n }\n } else if (slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = bottomRightAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n }\n }\n\n //determine whether clipping point is the corner of nodeB\n if (-slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = bottomLeftBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = topRightBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n }\n } else if (slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = topLeftBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = bottomRightBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n }\n }\n\n //if both clipping points are corners\n if (clipPointAFound && clipPointBFound) {\n return false;\n }\n\n //determine Cardinal Direction of rectangles\n if (p1x > p2x) {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);\n } else {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);\n }\n } else {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);\n } else {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);\n }\n }\n //calculate clipping Point if it is not found before\n if (!clipPointAFound) {\n switch (cardinalDirectionA) {\n case 1:\n tempPointAy = topLeftAy;\n tempPointAx = p1x + -halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 2:\n tempPointAx = bottomRightAx;\n tempPointAy = p1y + halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 3:\n tempPointAy = bottomLeftAy;\n tempPointAx = p1x + halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 4:\n tempPointAx = bottomLeftAx;\n tempPointAy = p1y + -halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n }\n }\n if (!clipPointBFound) {\n switch (cardinalDirectionB) {\n case 1:\n tempPointBy = topLeftBy;\n tempPointBx = p2x + -halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 2:\n tempPointBx = bottomRightBx;\n tempPointBy = p2y + halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 3:\n tempPointBy = bottomLeftBy;\n tempPointBx = p2x + halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 4:\n tempPointBx = bottomLeftBx;\n tempPointBy = p2y + -halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n }\n }\n }\n return false;\n};\n\n/**\n * This method returns in which cardinal direction does input point stays\n * 1: North\n * 2: East\n * 3: South\n * 4: West\n */\nIGeometry.getCardinalDirection = function (slope, slopePrime, line) {\n if (slope > slopePrime) {\n return line;\n } else {\n return 1 + line % 4;\n }\n};\n\n/**\n * This method calculates the intersection of the two lines defined by\n * point pairs (s1,s2) and (f1,f2).\n */\nIGeometry.getIntersection = function (s1, s2, f1, f2) {\n if (f2 == null) {\n return this.getIntersection2(s1, s2, f1);\n }\n\n var x1 = s1.x;\n var y1 = s1.y;\n var x2 = s2.x;\n var y2 = s2.y;\n var x3 = f1.x;\n var y3 = f1.y;\n var x4 = f2.x;\n var y4 = f2.y;\n var x = void 0,\n y = void 0; // intersection point\n var a1 = void 0,\n a2 = void 0,\n b1 = void 0,\n b2 = void 0,\n c1 = void 0,\n c2 = void 0; // coefficients of line eqns.\n var denom = void 0;\n\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 }\n\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 }\n\n denom = a1 * b2 - a2 * b1;\n\n if (denom === 0) {\n return null;\n }\n\n x = (b1 * c2 - b2 * c1) / denom;\n y = (a2 * c1 - a1 * c2) / denom;\n\n return new Point(x, y);\n};\n\n/**\n * This method finds and returns the angle of the vector from the + x-axis\n * in clockwise direction (compatible w/ Java coordinate system!).\n */\nIGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) {\n var C_angle = void 0;\n\n if (Cx !== Nx) {\n C_angle = Math.atan((Ny - Cy) / (Nx - Cx));\n\n if (Nx < Cx) {\n C_angle += Math.PI;\n } else if (Ny < Cy) {\n C_angle += this.TWO_PI;\n }\n } else if (Ny < Cy) {\n C_angle = this.ONE_AND_HALF_PI; // 270 degrees\n } else {\n C_angle = this.HALF_PI; // 90 degrees\n }\n\n return C_angle;\n};\n\n/**\n * This method checks whether the given two line segments (one with point\n * p1 and p2, the other with point p3 and p4) intersect at a point other\n * than these points.\n */\nIGeometry.doIntersect = function (p1, p2, p3, p4) {\n var a = p1.x;\n var b = p1.y;\n var c = p2.x;\n var d = p2.y;\n var p = p3.x;\n var q = p3.y;\n var r = p4.x;\n var s = p4.y;\n var det = (c - a) * (s - q) - (r - p) * (d - b);\n\n if (det === 0) {\n return false;\n } else {\n var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;\n var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;\n return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Class Constants\n// -----------------------------------------------------------------------------\n/**\n * Some useful pre-calculated constants\n */\nIGeometry.HALF_PI = 0.5 * Math.PI;\nIGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;\nIGeometry.TWO_PI = 2.0 * Math.PI;\nIGeometry.THREE_PI = 3.0 * Math.PI;\n\nmodule.exports = IGeometry;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction IMath() {}\n\n/**\n * This method returns the sign of the input value.\n */\nIMath.sign = function (value) {\n if (value > 0) {\n return 1;\n } else if (value < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\nIMath.floor = function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n};\n\nIMath.ceil = function (value) {\n return value < 0 ? Math.floor(value) : Math.ceil(value);\n};\n\nmodule.exports = IMath;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Integer() {}\n\nInteger.MAX_VALUE = 2147483647;\nInteger.MIN_VALUE = -2147483648;\n\nmodule.exports = Integer;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar nodeFrom = function nodeFrom(value) {\n return { value: value, next: null, prev: null };\n};\n\nvar add = function add(prev, node, next, list) {\n if (prev !== null) {\n prev.next = node;\n } else {\n list.head = node;\n }\n\n if (next !== null) {\n next.prev = node;\n } else {\n list.tail = node;\n }\n\n node.prev = prev;\n node.next = next;\n\n list.length++;\n\n return node;\n};\n\nvar _remove = function _remove(node, list) {\n var prev = node.prev,\n next = node.next;\n\n\n if (prev !== null) {\n prev.next = next;\n } else {\n list.head = next;\n }\n\n if (next !== null) {\n next.prev = prev;\n } else {\n list.tail = prev;\n }\n\n node.prev = node.next = null;\n\n list.length--;\n\n return node;\n};\n\nvar LinkedList = function () {\n function LinkedList(vals) {\n var _this = this;\n\n _classCallCheck(this, LinkedList);\n\n this.length = 0;\n this.head = null;\n this.tail = null;\n\n if (vals != null) {\n vals.forEach(function (v) {\n return _this.push(v);\n });\n }\n }\n\n _createClass(LinkedList, [{\n key: \"size\",\n value: function size() {\n return this.length;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(val, otherNode) {\n return add(otherNode.prev, nodeFrom(val), otherNode, this);\n }\n }, {\n key: \"insertAfter\",\n value: function insertAfter(val, otherNode) {\n return add(otherNode, nodeFrom(val), otherNode.next, this);\n }\n }, {\n key: \"insertNodeBefore\",\n value: function insertNodeBefore(newNode, otherNode) {\n return add(otherNode.prev, newNode, otherNode, this);\n }\n }, {\n key: \"insertNodeAfter\",\n value: function insertNodeAfter(newNode, otherNode) {\n return add(otherNode, newNode, otherNode.next, this);\n }\n }, {\n key: \"push\",\n value: function push(val) {\n return add(this.tail, nodeFrom(val), null, this);\n }\n }, {\n key: \"unshift\",\n value: function unshift(val) {\n return add(null, nodeFrom(val), this.head, this);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _remove(node, this);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n return _remove(this.tail, this).value;\n }\n }, {\n key: \"popNode\",\n value: function popNode() {\n return _remove(this.tail, this);\n }\n }, {\n key: \"shift\",\n value: function shift() {\n return _remove(this.head, this).value;\n }\n }, {\n key: \"shiftNode\",\n value: function shiftNode() {\n return _remove(this.head, this);\n }\n }, {\n key: \"get_object_at\",\n value: function get_object_at(index) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n return current.value;\n }\n }\n }, {\n key: \"set_object_at\",\n value: function set_object_at(index, value) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n current.value = value;\n }\n }\n }]);\n\n return LinkedList;\n}();\n\nmodule.exports = LinkedList;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\r\n *This class is the javascript implementation of the Point.java class in jdk\r\n */\nfunction Point(x, y, p) {\n this.x = null;\n this.y = null;\n if (x == null && y == null && p == null) {\n this.x = 0;\n this.y = 0;\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n this.x = x;\n this.y = y;\n } else if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.x = p.x;\n this.y = p.y;\n }\n}\n\nPoint.prototype.getX = function () {\n return this.x;\n};\n\nPoint.prototype.getY = function () {\n return this.y;\n};\n\nPoint.prototype.getLocation = function () {\n return new Point(this.x, this.y);\n};\n\nPoint.prototype.setLocation = function (x, y, p) {\n if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.setLocation(p.x, p.y);\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n //if both parameters are integer just move (x,y) location\n if (parseInt(x) == x && parseInt(y) == y) {\n this.move(x, y);\n } else {\n this.x = Math.floor(x + 0.5);\n this.y = Math.floor(y + 0.5);\n }\n }\n};\n\nPoint.prototype.move = function (x, y) {\n this.x = x;\n this.y = y;\n};\n\nPoint.prototype.translate = function (dx, dy) {\n this.x += dx;\n this.y += dy;\n};\n\nPoint.prototype.equals = function (obj) {\n if (obj.constructor.name == \"Point\") {\n var pt = obj;\n return this.x == pt.x && this.y == pt.y;\n }\n return this == obj;\n};\n\nPoint.prototype.toString = function () {\n return new Point().constructor.name + \"[x=\" + this.x + \",y=\" + this.y + \"]\";\n};\n\nmodule.exports = Point;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RectangleD(x, y, width, height) {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n\n if (x != null && y != null && width != null && height != null) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n}\n\nRectangleD.prototype.getX = function () {\n return this.x;\n};\n\nRectangleD.prototype.setX = function (x) {\n this.x = x;\n};\n\nRectangleD.prototype.getY = function () {\n return this.y;\n};\n\nRectangleD.prototype.setY = function (y) {\n this.y = y;\n};\n\nRectangleD.prototype.getWidth = function () {\n return this.width;\n};\n\nRectangleD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nRectangleD.prototype.getHeight = function () {\n return this.height;\n};\n\nRectangleD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nRectangleD.prototype.getRight = function () {\n return this.x + this.width;\n};\n\nRectangleD.prototype.getBottom = function () {\n return this.y + this.height;\n};\n\nRectangleD.prototype.intersects = function (a) {\n if (this.getRight() < a.x) {\n return false;\n }\n\n if (this.getBottom() < a.y) {\n return false;\n }\n\n if (a.getRight() < this.x) {\n return false;\n }\n\n if (a.getBottom() < this.y) {\n return false;\n }\n\n return true;\n};\n\nRectangleD.prototype.getCenterX = function () {\n return this.x + this.width / 2;\n};\n\nRectangleD.prototype.getMinX = function () {\n return this.getX();\n};\n\nRectangleD.prototype.getMaxX = function () {\n return this.getX() + this.width;\n};\n\nRectangleD.prototype.getCenterY = function () {\n return this.y + this.height / 2;\n};\n\nRectangleD.prototype.getMinY = function () {\n return this.getY();\n};\n\nRectangleD.prototype.getMaxY = function () {\n return this.getY() + this.height;\n};\n\nRectangleD.prototype.getWidthHalf = function () {\n return this.width / 2;\n};\n\nRectangleD.prototype.getHeightHalf = function () {\n return this.height / 2;\n};\n\nmodule.exports = RectangleD;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction UniqueIDGeneretor() {}\n\nUniqueIDGeneretor.lastID = 0;\n\nUniqueIDGeneretor.createID = function (obj) {\n if (UniqueIDGeneretor.isPrimitive(obj)) {\n return obj;\n }\n if (obj.uniqueID != null) {\n return obj.uniqueID;\n }\n obj.uniqueID = UniqueIDGeneretor.getString();\n UniqueIDGeneretor.lastID++;\n return obj.uniqueID;\n};\n\nUniqueIDGeneretor.getString = function (id) {\n if (id == null) id = UniqueIDGeneretor.lastID;\n return \"Object#\" + id + \"\";\n};\n\nUniqueIDGeneretor.isPrimitive = function (arg) {\n var type = typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg);\n return arg == null || type != \"object\" && type != \"function\";\n};\n\nmodule.exports = UniqueIDGeneretor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar LGraph = __webpack_require__(5);\nvar PointD = __webpack_require__(4);\nvar Transform = __webpack_require__(17);\nvar Emitter = __webpack_require__(27);\n\nfunction Layout(isRemoteUse) {\n Emitter.call(this);\n\n //Layout Quality: 0:draft, 1:default, 2:proof\n this.layoutQuality = LayoutConstants.QUALITY;\n //Whether layout should create bendpoints as needed or not\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n //Whether layout should be incremental or not\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n //Whether we animate from before to after layout node positions\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n //Whether we animate the layout process or not\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n //Number iterations that should be done between two successive animations\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n /**\r\n * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When\r\n * they are, both spring and repulsion forces between two leaf nodes can be\r\n * calculated without the expensive clipping point calculations, resulting\r\n * in major speed-up.\r\n */\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n /**\r\n * This is used for creation of bendpoints by using dummy nodes and edges.\r\n * Maps an LEdge to its dummy bendpoint path.\r\n */\n this.edgeToDummyNodes = new Map();\n this.graphManager = new LGraphManager(this);\n this.isLayoutFinished = false;\n this.isSubLayout = false;\n this.isRemoteUse = false;\n\n if (isRemoteUse != null) {\n this.isRemoteUse = isRemoteUse;\n }\n}\n\nLayout.RANDOM_SEED = 1;\n\nLayout.prototype = Object.create(Emitter.prototype);\n\nLayout.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLayout.prototype.getAllNodes = function () {\n return this.graphManager.getAllNodes();\n};\n\nLayout.prototype.getAllEdges = function () {\n return this.graphManager.getAllEdges();\n};\n\nLayout.prototype.getAllNodesToApplyGravitation = function () {\n return this.graphManager.getAllNodesToApplyGravitation();\n};\n\nLayout.prototype.newGraphManager = function () {\n var gm = new LGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nLayout.prototype.newGraph = function (vGraph) {\n return new LGraph(null, this.graphManager, vGraph);\n};\n\nLayout.prototype.newNode = function (vNode) {\n return new LNode(this.graphManager, vNode);\n};\n\nLayout.prototype.newEdge = function (vEdge) {\n return new LEdge(null, null, vEdge);\n};\n\nLayout.prototype.checkLayoutSuccess = function () {\n return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();\n};\n\nLayout.prototype.runLayout = function () {\n this.isLayoutFinished = false;\n\n if (this.tilingPreLayout) {\n this.tilingPreLayout();\n }\n\n this.initParameters();\n var isLayoutSuccessfull;\n\n if (this.checkLayoutSuccess()) {\n isLayoutSuccessfull = false;\n } else {\n isLayoutSuccessfull = this.layout();\n }\n\n if (LayoutConstants.ANIMATE === 'during') {\n // If this is a 'during' layout animation. Layout is not finished yet. \n // We need to perform these in index.js when layout is really finished.\n return false;\n }\n\n if (isLayoutSuccessfull) {\n if (!this.isSubLayout) {\n this.doPostLayout();\n }\n }\n\n if (this.tilingPostLayout) {\n this.tilingPostLayout();\n }\n\n this.isLayoutFinished = true;\n\n return isLayoutSuccessfull;\n};\n\n/**\r\n * This method performs the operations required after layout.\r\n */\nLayout.prototype.doPostLayout = function () {\n //assert !isSubLayout : \"Should not be called on sub-layout!\";\n // Propagate geometric changes to v-level objects\n if (!this.incremental) {\n this.transform();\n }\n this.update();\n};\n\n/**\r\n * This method updates the geometry of the target graph according to\r\n * calculated layout.\r\n */\nLayout.prototype.update2 = function () {\n // update bend points\n if (this.createBendsAsNeeded) {\n this.createBendpointsFromDummyNodes();\n\n // reset all edges, since the topology has changed\n this.graphManager.resetAllEdges();\n }\n\n // perform edge, node and root updates if layout is not called\n // remotely\n if (!this.isRemoteUse) {\n // update all edges\n var edge;\n var allEdges = this.graphManager.getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n // this.update(edge);\n }\n\n // recursively update nodes\n var node;\n var nodes = this.graphManager.getRoot().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n // this.update(node);\n }\n\n // update root graph\n this.update(this.graphManager.getRoot());\n }\n};\n\nLayout.prototype.update = function (obj) {\n if (obj == null) {\n this.update2();\n } else if (obj instanceof LNode) {\n var node = obj;\n if (node.getChild() != null) {\n // since node is compound, recursively update child nodes\n var nodes = node.getChild().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n update(nodes[i]);\n }\n }\n\n // if the l-level node is associated with a v-level graph object,\n // then it is assumed that the v-level node implements the\n // interface Updatable.\n if (node.vGraphObject != null) {\n // cast to Updatable without any type check\n var vNode = node.vGraphObject;\n\n // call the update method of the interface\n vNode.update(node);\n }\n } else if (obj instanceof LEdge) {\n var edge = obj;\n // if the l-level edge is associated with a v-level graph object,\n // then it is assumed that the v-level edge implements the\n // interface Updatable.\n\n if (edge.vGraphObject != null) {\n // cast to Updatable without any type check\n var vEdge = edge.vGraphObject;\n\n // call the update method of the interface\n vEdge.update(edge);\n }\n } else if (obj instanceof LGraph) {\n var graph = obj;\n // if the l-level graph is associated with a v-level graph object,\n // then it is assumed that the v-level object implements the\n // interface Updatable.\n\n if (graph.vGraphObject != null) {\n // cast to Updatable without any type check\n var vGraph = graph.vGraphObject;\n\n // call the update method of the interface\n vGraph.update(graph);\n }\n }\n};\n\n/**\r\n * This method is used to set all layout parameters to default values\r\n * determined at compile time.\r\n */\nLayout.prototype.initParameters = function () {\n if (!this.isSubLayout) {\n this.layoutQuality = LayoutConstants.QUALITY;\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n }\n\n if (this.animationDuringLayout) {\n this.animationOnLayout = false;\n }\n};\n\nLayout.prototype.transform = function (newLeftTop) {\n if (newLeftTop == undefined) {\n this.transform(new PointD(0, 0));\n } else {\n // create a transformation object (from Eclipse to layout). When an\n // inverse transform is applied, we get upper-left coordinate of the\n // drawing or the root graph at given input coordinate (some margins\n // already included in calculation of left-top).\n\n var trans = new Transform();\n var leftTop = this.graphManager.getRoot().updateLeftTop();\n\n if (leftTop != null) {\n trans.setWorldOrgX(newLeftTop.x);\n trans.setWorldOrgY(newLeftTop.y);\n\n trans.setDeviceOrgX(leftTop.x);\n trans.setDeviceOrgY(leftTop.y);\n\n var nodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n node.transform(trans);\n }\n }\n }\n};\n\nLayout.prototype.positionNodesRandomly = function (graph) {\n\n if (graph == undefined) {\n //assert !this.incremental;\n this.positionNodesRandomly(this.getGraphManager().getRoot());\n this.getGraphManager().getRoot().updateBounds(true);\n } else {\n var lNode;\n var childGraph;\n\n var nodes = graph.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n lNode = nodes[i];\n childGraph = lNode.getChild();\n\n if (childGraph == null) {\n lNode.scatter();\n } else if (childGraph.getNodes().length == 0) {\n lNode.scatter();\n } else {\n this.positionNodesRandomly(childGraph);\n lNode.updateBounds();\n }\n }\n }\n};\n\n/**\r\n * This method returns a list of trees where each tree is represented as a\r\n * list of l-nodes. The method returns a list of size 0 when:\r\n * - The graph is not flat or\r\n * - One of the component(s) of the graph is not a tree.\r\n */\nLayout.prototype.getFlatForest = function () {\n var flatForest = [];\n var isForest = true;\n\n // Quick reference for all nodes in the graph manager associated with\n // this layout. The list should not be changed.\n var allNodes = this.graphManager.getRoot().getNodes();\n\n // First be sure that the graph is flat\n var isFlat = true;\n\n for (var i = 0; i < allNodes.length; i++) {\n if (allNodes[i].getChild() != null) {\n isFlat = false;\n }\n }\n\n // Return empty forest if the graph is not flat.\n if (!isFlat) {\n return flatForest;\n }\n\n // Run BFS for each component of the graph.\n\n var visited = new Set();\n var toBeVisited = [];\n var parents = new Map();\n var unProcessedNodes = [];\n\n unProcessedNodes = unProcessedNodes.concat(allNodes);\n\n // Each iteration of this loop finds a component of the graph and\n // decides whether it is a tree or not. If it is a tree, adds it to the\n // forest and continued with the next component.\n\n while (unProcessedNodes.length > 0 && isForest) {\n toBeVisited.push(unProcessedNodes[0]);\n\n // Start the BFS. Each iteration of this loop visits a node in a\n // BFS manner.\n while (toBeVisited.length > 0 && isForest) {\n //pool operation\n var currentNode = toBeVisited[0];\n toBeVisited.splice(0, 1);\n visited.add(currentNode);\n\n // Traverse all neighbors of this node\n var neighborEdges = currentNode.getEdges();\n\n for (var i = 0; i < neighborEdges.length; i++) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);\n\n // If BFS is not growing from this neighbor.\n if (parents.get(currentNode) != currentNeighbor) {\n // We haven't previously visited this neighbor.\n if (!visited.has(currentNeighbor)) {\n toBeVisited.push(currentNeighbor);\n parents.set(currentNeighbor, currentNode);\n }\n // Since we have previously visited this neighbor and\n // this neighbor is not parent of currentNode, given\n // graph contains a component that is not tree, hence\n // it is not a forest.\n else {\n isForest = false;\n break;\n }\n }\n }\n }\n\n // The graph contains a component that is not a tree. Empty\n // previously found trees. The method will end.\n if (!isForest) {\n flatForest = [];\n }\n // Save currently visited nodes as a tree in our forest. Reset\n // visited and parents lists. Continue with the next component of\n // the graph, if any.\n else {\n var temp = [].concat(_toConsumableArray(visited));\n flatForest.push(temp);\n //flatForest = flatForest.concat(temp);\n //unProcessedNodes.removeAll(visited);\n for (var i = 0; i < temp.length; i++) {\n var value = temp[i];\n var index = unProcessedNodes.indexOf(value);\n if (index > -1) {\n unProcessedNodes.splice(index, 1);\n }\n }\n visited = new Set();\n parents = new Map();\n }\n }\n\n return flatForest;\n};\n\n/**\r\n * This method creates dummy nodes (an l-level node with minimal dimensions)\r\n * for the given edge (one per bendpoint). The existing l-level structure\r\n * is updated accordingly.\r\n */\nLayout.prototype.createDummyNodesForBendpoints = function (edge) {\n var dummyNodes = [];\n var prev = edge.source;\n\n var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);\n\n for (var i = 0; i < edge.bendpoints.length; i++) {\n // create new dummy node\n var dummyNode = this.newNode(null);\n dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));\n\n graph.add(dummyNode);\n\n // create new dummy edge between prev and dummy node\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, dummyNode);\n\n dummyNodes.add(dummyNode);\n prev = dummyNode;\n }\n\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, edge.target);\n\n this.edgeToDummyNodes.set(edge, dummyNodes);\n\n // remove real edge from graph manager if it is inter-graph\n if (edge.isInterGraph()) {\n this.graphManager.remove(edge);\n }\n // else, remove the edge from the current graph\n else {\n graph.remove(edge);\n }\n\n return dummyNodes;\n};\n\n/**\r\n * This method creates bendpoints for edges from the dummy nodes\r\n * at l-level.\r\n */\nLayout.prototype.createBendpointsFromDummyNodes = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);\n\n for (var k = 0; k < edges.length; k++) {\n var lEdge = edges[k];\n\n if (lEdge.bendpoints.length > 0) {\n var path = this.edgeToDummyNodes.get(lEdge);\n\n for (var i = 0; i < path.length; i++) {\n var dummyNode = path[i];\n var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());\n\n // update bendpoint's location according to dummy node\n var ebp = lEdge.bendpoints.get(i);\n ebp.x = p.x;\n ebp.y = p.y;\n\n // remove the dummy node, dummy edges incident with this\n // dummy node is also removed (within the remove method)\n dummyNode.getOwner().remove(dummyNode);\n }\n\n // add the real edge to graph\n this.graphManager.add(lEdge, lEdge.source, lEdge.target);\n }\n }\n};\n\nLayout.transform = function (sliderValue, defaultValue, minDiv, maxMul) {\n if (minDiv != undefined && maxMul != undefined) {\n var value = defaultValue;\n\n if (sliderValue <= 50) {\n var minValue = defaultValue / minDiv;\n value -= (defaultValue - minValue) / 50 * (50 - sliderValue);\n } else {\n var maxValue = defaultValue * maxMul;\n value += (maxValue - defaultValue) / 50 * (sliderValue - 50);\n }\n\n return value;\n } else {\n var a, b;\n\n if (sliderValue <= 50) {\n a = 9.0 * defaultValue / 500.0;\n b = defaultValue / 10.0;\n } else {\n a = 9.0 * defaultValue / 50.0;\n b = -8 * defaultValue;\n }\n\n return a * sliderValue + b;\n }\n};\n\n/**\r\n * This method finds and returns the center of the given nodes, assuming\r\n * that the given nodes form a tree in themselves.\r\n */\nLayout.findCenterOfTree = function (nodes) {\n var list = [];\n list = list.concat(nodes);\n\n var removedNodes = [];\n var remainingDegrees = new Map();\n var foundCenter = false;\n var centerNode = null;\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n var degree = node.getNeighborsList().size;\n remainingDegrees.set(node, node.getNeighborsList().size);\n\n if (degree == 1) {\n removedNodes.push(node);\n }\n }\n\n var tempList = [];\n tempList = tempList.concat(removedNodes);\n\n while (!foundCenter) {\n var tempList2 = [];\n tempList2 = tempList2.concat(tempList);\n tempList = [];\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n\n var index = list.indexOf(node);\n if (index >= 0) {\n list.splice(index, 1);\n }\n\n var neighbours = node.getNeighborsList();\n\n neighbours.forEach(function (neighbour) {\n if (removedNodes.indexOf(neighbour) < 0) {\n var otherDegree = remainingDegrees.get(neighbour);\n var newDegree = otherDegree - 1;\n\n if (newDegree == 1) {\n tempList.push(neighbour);\n }\n\n remainingDegrees.set(neighbour, newDegree);\n }\n });\n }\n\n removedNodes = removedNodes.concat(tempList);\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n }\n\n return centerNode;\n};\n\n/**\r\n * During the coarsening process, this layout may be referenced by two graph managers\r\n * this setter function grants access to change the currently being used graph manager\r\n */\nLayout.prototype.setGraphManager = function (gm) {\n this.graphManager = gm;\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RandomSeed() {}\n// adapted from: https://stackoverflow.com/a/19303725\nRandomSeed.seed = 1;\nRandomSeed.x = 0;\n\nRandomSeed.nextDouble = function () {\n RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000;\n return RandomSeed.x - Math.floor(RandomSeed.x);\n};\n\nmodule.exports = RandomSeed;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PointD = __webpack_require__(4);\n\nfunction Transform(x, y) {\n this.lworldOrgX = 0.0;\n this.lworldOrgY = 0.0;\n this.ldeviceOrgX = 0.0;\n this.ldeviceOrgY = 0.0;\n this.lworldExtX = 1.0;\n this.lworldExtY = 1.0;\n this.ldeviceExtX = 1.0;\n this.ldeviceExtY = 1.0;\n}\n\nTransform.prototype.getWorldOrgX = function () {\n return this.lworldOrgX;\n};\n\nTransform.prototype.setWorldOrgX = function (wox) {\n this.lworldOrgX = wox;\n};\n\nTransform.prototype.getWorldOrgY = function () {\n return this.lworldOrgY;\n};\n\nTransform.prototype.setWorldOrgY = function (woy) {\n this.lworldOrgY = woy;\n};\n\nTransform.prototype.getWorldExtX = function () {\n return this.lworldExtX;\n};\n\nTransform.prototype.setWorldExtX = function (wex) {\n this.lworldExtX = wex;\n};\n\nTransform.prototype.getWorldExtY = function () {\n return this.lworldExtY;\n};\n\nTransform.prototype.setWorldExtY = function (wey) {\n this.lworldExtY = wey;\n};\n\n/* Device related */\n\nTransform.prototype.getDeviceOrgX = function () {\n return this.ldeviceOrgX;\n};\n\nTransform.prototype.setDeviceOrgX = function (dox) {\n this.ldeviceOrgX = dox;\n};\n\nTransform.prototype.getDeviceOrgY = function () {\n return this.ldeviceOrgY;\n};\n\nTransform.prototype.setDeviceOrgY = function (doy) {\n this.ldeviceOrgY = doy;\n};\n\nTransform.prototype.getDeviceExtX = function () {\n return this.ldeviceExtX;\n};\n\nTransform.prototype.setDeviceExtX = function (dex) {\n this.ldeviceExtX = dex;\n};\n\nTransform.prototype.getDeviceExtY = function () {\n return this.ldeviceExtY;\n};\n\nTransform.prototype.setDeviceExtY = function (dey) {\n this.ldeviceExtY = dey;\n};\n\nTransform.prototype.transformX = function (x) {\n var xDevice = 0.0;\n var worldExtX = this.lworldExtX;\n if (worldExtX != 0.0) {\n xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;\n }\n\n return xDevice;\n};\n\nTransform.prototype.transformY = function (y) {\n var yDevice = 0.0;\n var worldExtY = this.lworldExtY;\n if (worldExtY != 0.0) {\n yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;\n }\n\n return yDevice;\n};\n\nTransform.prototype.inverseTransformX = function (x) {\n var xWorld = 0.0;\n var deviceExtX = this.ldeviceExtX;\n if (deviceExtX != 0.0) {\n xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;\n }\n\n return xWorld;\n};\n\nTransform.prototype.inverseTransformY = function (y) {\n var yWorld = 0.0;\n var deviceExtY = this.ldeviceExtY;\n if (deviceExtY != 0.0) {\n yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;\n }\n return yWorld;\n};\n\nTransform.prototype.inverseTransformPoint = function (inPoint) {\n var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));\n return outPoint;\n};\n\nmodule.exports = Transform;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar Layout = __webpack_require__(15);\nvar FDLayoutConstants = __webpack_require__(7);\nvar LayoutConstants = __webpack_require__(0);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction FDLayout() {\n Layout.call(this);\n\n this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.totalDisplacement = 0.0;\n this.oldTotalDisplacement = 0.0;\n this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;\n}\n\nFDLayout.prototype = Object.create(Layout.prototype);\n\nfor (var prop in Layout) {\n FDLayout[prop] = Layout[prop];\n}\n\nFDLayout.prototype.initParameters = function () {\n Layout.prototype.initParameters.call(this, arguments);\n\n this.totalIterations = 0;\n this.notAnimatedIterations = 0;\n\n this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;\n\n this.grid = [];\n};\n\nFDLayout.prototype.calcIdealEdgeLengths = function () {\n var edge;\n var lcaDepth;\n var source;\n var target;\n var sizeOfSourceInLca;\n var sizeOfTargetInLca;\n\n var allEdges = this.getGraphManager().getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n\n edge.idealLength = this.idealEdgeLength;\n\n if (edge.isInterGraph) {\n source = edge.getSource();\n target = edge.getTarget();\n\n sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();\n sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();\n\n if (this.useSmartIdealEdgeLengthCalculation) {\n edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;\n }\n\n lcaDepth = edge.getLca().getInclusionTreeDepth();\n\n edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);\n }\n }\n};\n\nFDLayout.prototype.initSpringEmbedder = function () {\n\n var s = this.getAllNodes().length;\n if (this.incremental) {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n }\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;\n } else {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n } else {\n this.coolingFactor = 1.0;\n }\n this.initialCoolingFactor = this.coolingFactor;\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;\n }\n\n this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);\n\n this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;\n\n this.repulsionRange = this.calcRepulsionRange();\n};\n\nFDLayout.prototype.calcSpringForces = function () {\n var lEdges = this.getAllEdges();\n var edge;\n\n for (var i = 0; i < lEdges.length; i++) {\n edge = lEdges[i];\n\n this.calcSpringForce(edge, edge.idealLength);\n }\n};\n\nFDLayout.prototype.calcRepulsionForces = function () {\n var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var i, j;\n var nodeA, nodeB;\n var lNodes = this.getAllNodes();\n var processedNodeSet;\n\n if (this.useFRGridVariant) {\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {\n this.updateGrid();\n }\n\n processedNodeSet = new Set();\n\n // calculate repulsion forces between each nodes and its surrounding\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);\n processedNodeSet.add(nodeA);\n }\n } else {\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n\n for (j = i + 1; j < lNodes.length; j++) {\n nodeB = lNodes[j];\n\n // If both nodes are not members of the same graph, skip.\n if (nodeA.getOwner() != nodeB.getOwner()) {\n continue;\n }\n\n this.calcRepulsionForce(nodeA, nodeB);\n }\n }\n }\n};\n\nFDLayout.prototype.calcGravitationalForces = function () {\n var node;\n var lNodes = this.getAllNodesToApplyGravitation();\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n this.calcGravitationalForce(node);\n }\n};\n\nFDLayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\nFDLayout.prototype.calcSpringForce = function (edge, idealLength) {\n var sourceNode = edge.getSource();\n var targetNode = edge.getTarget();\n\n var length;\n var springForce;\n var springForceX;\n var springForceY;\n\n // Update edge length\n if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {\n edge.updateLengthSimple();\n } else {\n edge.updateLength();\n\n if (edge.isOverlapingSourceAndTarget) {\n return;\n }\n }\n\n length = edge.getLength();\n\n if (length == 0) return;\n\n // Calculate spring forces\n springForce = this.springConstant * (length - idealLength);\n\n // Project force onto x and y axes\n springForceX = springForce * (edge.lengthX / length);\n springForceY = springForce * (edge.lengthY / length);\n\n // Apply forces on the end nodes\n sourceNode.springForceX += springForceX;\n sourceNode.springForceY += springForceY;\n targetNode.springForceX -= springForceX;\n targetNode.springForceY -= springForceY;\n};\n\nFDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) {\n var rectA = nodeA.getRect();\n var rectB = nodeB.getRect();\n var overlapAmount = new Array(2);\n var clipPoints = new Array(4);\n var distanceX;\n var distanceY;\n var distanceSquared;\n var distance;\n var repulsionForce;\n var repulsionForceX;\n var repulsionForceY;\n\n if (rectA.intersects(rectB)) // two nodes overlap\n {\n // calculate separation amount in x and y directions\n IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0);\n\n repulsionForceX = 2 * overlapAmount[0];\n repulsionForceY = 2 * overlapAmount[1];\n\n var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);\n\n // Apply forces on the two nodes\n nodeA.repulsionForceX -= childrenConstant * repulsionForceX;\n nodeA.repulsionForceY -= childrenConstant * repulsionForceY;\n nodeB.repulsionForceX += childrenConstant * repulsionForceX;\n nodeB.repulsionForceY += childrenConstant * repulsionForceY;\n } else // no overlap\n {\n // calculate distance\n\n if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers\n {\n distanceX = rectB.getCenterX() - rectA.getCenterX();\n distanceY = rectB.getCenterY() - rectA.getCenterY();\n } else // use clipping points\n {\n IGeometry.getIntersection(rectA, rectB, clipPoints);\n\n distanceX = clipPoints[2] - clipPoints[0];\n distanceY = clipPoints[3] - clipPoints[1];\n }\n\n // No repulsion range. FR grid variant should take care of this.\n if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n distanceSquared = distanceX * distanceX + distanceY * distanceY;\n distance = Math.sqrt(distanceSquared);\n\n repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;\n\n // Project force onto x and y axes\n repulsionForceX = repulsionForce * distanceX / distance;\n repulsionForceY = repulsionForce * distanceY / distance;\n\n // Apply forces on the two nodes \n nodeA.repulsionForceX -= repulsionForceX;\n nodeA.repulsionForceY -= repulsionForceY;\n nodeB.repulsionForceX += repulsionForceX;\n nodeB.repulsionForceY += repulsionForceY;\n }\n};\n\nFDLayout.prototype.calcGravitationalForce = function (node) {\n var ownerGraph;\n var ownerCenterX;\n var ownerCenterY;\n var distanceX;\n var distanceY;\n var absDistanceX;\n var absDistanceY;\n var estimatedSize;\n ownerGraph = node.getOwner();\n\n ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;\n ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;\n distanceX = node.getCenterX() - ownerCenterX;\n distanceY = node.getCenterY() - ownerCenterY;\n absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;\n absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;\n\n if (node.getOwner() == this.graphManager.getRoot()) // in the root graph\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX;\n node.gravitationForceY = -this.gravityConstant * distanceY;\n }\n } else // inside a compound\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;\n node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;\n }\n }\n};\n\nFDLayout.prototype.isConverged = function () {\n var converged;\n var oscilating = false;\n\n if (this.totalIterations > this.maxIterations / 3) {\n oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;\n }\n\n converged = this.totalDisplacement < this.totalDisplacementThreshold;\n\n this.oldTotalDisplacement = this.totalDisplacement;\n\n return converged || oscilating;\n};\n\nFDLayout.prototype.animate = function () {\n if (this.animationDuringLayout && !this.isSubLayout) {\n if (this.notAnimatedIterations == this.animationPeriod) {\n this.update();\n this.notAnimatedIterations = 0;\n } else {\n this.notAnimatedIterations++;\n }\n }\n};\n\n//This method calculates the number of children (weight) for all nodes\nFDLayout.prototype.calcNoOfChildrenForAllNodes = function () {\n var node;\n var allNodes = this.graphManager.getAllNodes();\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n node.noOfChildren = node.getNoOfChildren();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: FR-Grid Variant Repulsion Force Calculation\n// -----------------------------------------------------------------------------\n\nFDLayout.prototype.calcGrid = function (graph) {\n\n var sizeX = 0;\n var sizeY = 0;\n\n sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));\n sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));\n\n var grid = new Array(sizeX);\n\n for (var i = 0; i < sizeX; i++) {\n grid[i] = new Array(sizeY);\n }\n\n for (var i = 0; i < sizeX; i++) {\n for (var j = 0; j < sizeY; j++) {\n grid[i][j] = new Array();\n }\n }\n\n return grid;\n};\n\nFDLayout.prototype.addNodeToGrid = function (v, left, top) {\n\n var startX = 0;\n var finishX = 0;\n var startY = 0;\n var finishY = 0;\n\n startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));\n finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));\n startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));\n finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));\n\n for (var i = startX; i <= finishX; i++) {\n for (var j = startY; j <= finishY; j++) {\n this.grid[i][j].push(v);\n v.setGridCoordinates(startX, finishX, startY, finishY);\n }\n }\n};\n\nFDLayout.prototype.updateGrid = function () {\n var i;\n var nodeA;\n var lNodes = this.getAllNodes();\n\n this.grid = this.calcGrid(this.graphManager.getRoot());\n\n // put all nodes to proper grid cells\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());\n }\n};\n\nFDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {\n\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {\n var surrounding = new Set();\n nodeA.surrounding = new Array();\n var nodeB;\n var grid = this.grid;\n\n for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {\n for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {\n if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {\n for (var k = 0; k < grid[i][j].length; k++) {\n nodeB = grid[i][j][k];\n\n // If both nodes are not members of the same graph, \n // or both nodes are the same, skip.\n if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {\n continue;\n }\n\n // check if the repulsion force between\n // nodeA and nodeB has already been calculated\n if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {\n var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);\n var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);\n\n // if the distance between nodeA and nodeB \n // is less then calculation range\n if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {\n //then add nodeB to surrounding of nodeA\n surrounding.add(nodeB);\n }\n }\n }\n }\n }\n }\n\n nodeA.surrounding = [].concat(_toConsumableArray(surrounding));\n }\n for (i = 0; i < nodeA.surrounding.length; i++) {\n this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);\n }\n};\n\nFDLayout.prototype.calcRepulsionRange = function () {\n return 0.0;\n};\n\nmodule.exports = FDLayout;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEdge = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(7);\n\nfunction FDLayoutEdge(source, target, vEdge) {\n LEdge.call(this, source, target, vEdge);\n this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n}\n\nFDLayoutEdge.prototype = Object.create(LEdge.prototype);\n\nfor (var prop in LEdge) {\n FDLayoutEdge[prop] = LEdge[prop];\n}\n\nmodule.exports = FDLayoutEdge;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LNode = __webpack_require__(3);\n\nfunction FDLayoutNode(gm, loc, size, vNode) {\n // alternative constructor is handled inside LNode\n LNode.call(this, gm, loc, size, vNode);\n //Spring, repulsion and gravitational forces acting on this node\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n //Amount by which this node is to be moved in this iteration\n this.displacementX = 0;\n this.displacementY = 0;\n\n //Start and finish grid coordinates that this node is fallen into\n this.startX = 0;\n this.finishX = 0;\n this.startY = 0;\n this.finishY = 0;\n\n //Geometric neighbors of this node\n this.surrounding = [];\n}\n\nFDLayoutNode.prototype = Object.create(LNode.prototype);\n\nfor (var prop in LNode) {\n FDLayoutNode[prop] = LNode[prop];\n}\n\nFDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) {\n this.startX = _startX;\n this.finishX = _finishX;\n this.startY = _startY;\n this.finishY = _finishY;\n};\n\nmodule.exports = FDLayoutNode;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction DimensionD(width, height) {\n this.width = 0;\n this.height = 0;\n if (width !== null && height !== null) {\n this.height = height;\n this.width = width;\n }\n}\n\nDimensionD.prototype.getWidth = function () {\n return this.width;\n};\n\nDimensionD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nDimensionD.prototype.getHeight = function () {\n return this.height;\n};\n\nDimensionD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nmodule.exports = DimensionD;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashMap() {\n this.map = {};\n this.keys = [];\n}\n\nHashMap.prototype.put = function (key, value) {\n var theId = UniqueIDGeneretor.createID(key);\n if (!this.contains(theId)) {\n this.map[theId] = value;\n this.keys.push(key);\n }\n};\n\nHashMap.prototype.contains = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[key] != null;\n};\n\nHashMap.prototype.get = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[theId];\n};\n\nHashMap.prototype.keySet = function () {\n return this.keys;\n};\n\nmodule.exports = HashMap;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashSet() {\n this.set = {};\n}\n;\n\nHashSet.prototype.add = function (obj) {\n var theId = UniqueIDGeneretor.createID(obj);\n if (!this.contains(theId)) this.set[theId] = obj;\n};\n\nHashSet.prototype.remove = function (obj) {\n delete this.set[UniqueIDGeneretor.createID(obj)];\n};\n\nHashSet.prototype.clear = function () {\n this.set = {};\n};\n\nHashSet.prototype.contains = function (obj) {\n return this.set[UniqueIDGeneretor.createID(obj)] == obj;\n};\n\nHashSet.prototype.isEmpty = function () {\n return this.size() === 0;\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\n//concats this.set to the given list\nHashSet.prototype.addAllTo = function (list) {\n var keys = Object.keys(this.set);\n var length = keys.length;\n for (var i = 0; i < length; i++) {\n list.push(this.set[keys[i]]);\n }\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\nHashSet.prototype.addAll = function (list) {\n var s = list.length;\n for (var i = 0; i < s; i++) {\n var v = list[i];\n this.add(v);\n }\n};\n\nmodule.exports = HashSet;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A classic Quicksort algorithm with Hoare's partition\n * - Works also on LinkedList objects\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar LinkedList = __webpack_require__(11);\n\nvar Quicksort = function () {\n function Quicksort(A, compareFunction) {\n _classCallCheck(this, Quicksort);\n\n if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction;\n\n var length = void 0;\n if (A instanceof LinkedList) length = A.size();else length = A.length;\n\n this._quicksort(A, 0, length - 1);\n }\n\n _createClass(Quicksort, [{\n key: '_quicksort',\n value: function _quicksort(A, p, r) {\n if (p < r) {\n var q = this._partition(A, p, r);\n this._quicksort(A, p, q);\n this._quicksort(A, q + 1, r);\n }\n }\n }, {\n key: '_partition',\n value: function _partition(A, p, r) {\n var x = this._get(A, p);\n var i = p;\n var j = r;\n while (true) {\n while (this.compareFunction(x, this._get(A, j))) {\n j--;\n }while (this.compareFunction(this._get(A, i), x)) {\n i++;\n }if (i < j) {\n this._swap(A, i, j);\n i++;\n j--;\n } else return j;\n }\n }\n }, {\n key: '_get',\n value: function _get(object, index) {\n if (object instanceof LinkedList) return object.get_object_at(index);else return object[index];\n }\n }, {\n key: '_set',\n value: function _set(object, index, value) {\n if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value;\n }\n }, {\n key: '_swap',\n value: function _swap(A, i, j) {\n var temp = this._get(A, i);\n this._set(A, i, this._get(A, j));\n this._set(A, j, temp);\n }\n }, {\n key: '_defaultCompareFunction',\n value: function _defaultCompareFunction(a, b) {\n return b > a;\n }\n }]);\n\n return Quicksort;\n}();\n\nmodule.exports = Quicksort;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string\n * sequences by S.B.Needleman and C.D.Wunsch (1970).\n *\n * Aside from the inputs, you can assign the scores for,\n * - Match: The two characters at the current index are same.\n * - Mismatch: The two characters at the current index are different.\n * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string.\n */\n\nvar NeedlemanWunsch = function () {\n function NeedlemanWunsch(sequence1, sequence2) {\n var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n\n _classCallCheck(this, NeedlemanWunsch);\n\n this.sequence1 = sequence1;\n this.sequence2 = sequence2;\n this.match_score = match_score;\n this.mismatch_penalty = mismatch_penalty;\n this.gap_penalty = gap_penalty;\n\n // Just the remove redundancy\n this.iMax = sequence1.length + 1;\n this.jMax = sequence2.length + 1;\n\n // Grid matrix of scores\n this.grid = new Array(this.iMax);\n for (var i = 0; i < this.iMax; i++) {\n this.grid[i] = new Array(this.jMax);\n\n for (var j = 0; j < this.jMax; j++) {\n this.grid[i][j] = 0;\n }\n }\n\n // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions)\n this.tracebackGrid = new Array(this.iMax);\n for (var _i = 0; _i < this.iMax; _i++) {\n this.tracebackGrid[_i] = new Array(this.jMax);\n\n for (var _j = 0; _j < this.jMax; _j++) {\n this.tracebackGrid[_i][_j] = [null, null, null];\n }\n }\n\n // The aligned sequences (return multiple possibilities)\n this.alignments = [];\n\n // Final alignment score\n this.score = -1;\n\n // Calculate scores and tracebacks\n this.computeGrids();\n }\n\n _createClass(NeedlemanWunsch, [{\n key: \"getScore\",\n value: function getScore() {\n return this.score;\n }\n }, {\n key: \"getAlignments\",\n value: function getAlignments() {\n return this.alignments;\n }\n\n // Main dynamic programming procedure\n\n }, {\n key: \"computeGrids\",\n value: function computeGrids() {\n // Fill in the first row\n for (var j = 1; j < this.jMax; j++) {\n this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;\n this.tracebackGrid[0][j] = [false, false, true];\n }\n\n // Fill in the first column\n for (var i = 1; i < this.iMax; i++) {\n this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;\n this.tracebackGrid[i][0] = [false, true, false];\n }\n\n // Fill the rest of the grid\n for (var _i2 = 1; _i2 < this.iMax; _i2++) {\n for (var _j2 = 1; _j2 < this.jMax; _j2++) {\n // Find the max score(s) among [`Diag`, `Up`, `Left`]\n var diag = void 0;\n if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;\n\n var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;\n var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;\n\n // If there exists multiple max values, capture them for multiple paths\n var maxOf = [diag, up, left];\n var indices = this.arrayAllMaxIndexes(maxOf);\n\n // Update Grids\n this.grid[_i2][_j2] = maxOf[indices[0]];\n this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];\n }\n }\n\n // Update alignment score\n this.score = this.grid[this.iMax - 1][this.jMax - 1];\n }\n\n // Gets all possible valid sequence combinations\n\n }, {\n key: \"alignmentTraceback\",\n value: function alignmentTraceback() {\n var inProcessAlignments = [];\n\n inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length],\n seq1: \"\",\n seq2: \"\"\n });\n\n while (inProcessAlignments[0]) {\n var current = inProcessAlignments[0];\n var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];\n\n if (directions[0]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n if (directions[1]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: '-' + current.seq2\n });\n }\n if (directions[2]) {\n inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1],\n seq1: '-' + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n\n if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1,\n sequence2: current.seq2\n });\n\n inProcessAlignments.shift();\n }\n\n return this.alignments;\n }\n\n // Helper Functions\n\n }, {\n key: \"getAllIndexes\",\n value: function getAllIndexes(arr, val) {\n var indexes = [],\n i = -1;\n while ((i = arr.indexOf(val, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n }\n }, {\n key: \"arrayAllMaxIndexes\",\n value: function arrayAllMaxIndexes(array) {\n return this.getAllIndexes(array, Math.max.apply(null, array));\n }\n }]);\n\n return NeedlemanWunsch;\n}();\n\nmodule.exports = NeedlemanWunsch;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar layoutBase = function layoutBase() {\n return;\n};\n\nlayoutBase.FDLayout = __webpack_require__(18);\nlayoutBase.FDLayoutConstants = __webpack_require__(7);\nlayoutBase.FDLayoutEdge = __webpack_require__(19);\nlayoutBase.FDLayoutNode = __webpack_require__(20);\nlayoutBase.DimensionD = __webpack_require__(21);\nlayoutBase.HashMap = __webpack_require__(22);\nlayoutBase.HashSet = __webpack_require__(23);\nlayoutBase.IGeometry = __webpack_require__(8);\nlayoutBase.IMath = __webpack_require__(9);\nlayoutBase.Integer = __webpack_require__(10);\nlayoutBase.Point = __webpack_require__(12);\nlayoutBase.PointD = __webpack_require__(4);\nlayoutBase.RandomSeed = __webpack_require__(16);\nlayoutBase.RectangleD = __webpack_require__(13);\nlayoutBase.Transform = __webpack_require__(17);\nlayoutBase.UniqueIDGeneretor = __webpack_require__(14);\nlayoutBase.Quicksort = __webpack_require__(24);\nlayoutBase.LinkedList = __webpack_require__(11);\nlayoutBase.LGraphObject = __webpack_require__(2);\nlayoutBase.LGraph = __webpack_require__(5);\nlayoutBase.LEdge = __webpack_require__(1);\nlayoutBase.LGraphManager = __webpack_require__(6);\nlayoutBase.LNode = __webpack_require__(3);\nlayoutBase.Layout = __webpack_require__(15);\nlayoutBase.LayoutConstants = __webpack_require__(0);\nlayoutBase.NeedlemanWunsch = __webpack_require__(25);\n\nmodule.exports = layoutBase;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Emitter() {\n this.listeners = [];\n}\n\nvar p = Emitter.prototype;\n\np.addListener = function (event, callback) {\n this.listeners.push({\n event: event,\n callback: callback\n });\n};\n\np.removeListener = function (event, callback) {\n for (var i = this.listeners.length; i >= 0; i--) {\n var l = this.listeners[i];\n\n if (l.event === event && l.callback === callback) {\n this.listeners.splice(i, 1);\n }\n }\n};\n\np.emit = function (event, data) {\n for (var i = 0; i < this.listeners.length; i++) {\n var l = this.listeners[i];\n\n if (event === l.event) {\n l.callback(data);\n }\n }\n};\n\nmodule.exports = Emitter;\n\n/***/ })\n/******/ ]);\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph = __webpack_require__(0).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphManager = __webpack_require__(0).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutNode = __webpack_require__(0).FDLayoutNode;\nvar IMath = __webpack_require__(0).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // a simple node, just move it\n if (this.child == null) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // an empty compound node, again just move it\n else if (this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // non-empty compound node, propogate movement to children as well\n else {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.moveBy(dX, dY);\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayout = __webpack_require__(0).FDLayout;\nvar CoSEGraphManager = __webpack_require__(4);\nvar CoSEGraph = __webpack_require__(3);\nvar CoSENode = __webpack_require__(5);\nvar CoSEEdge = __webpack_require__(2);\nvar CoSEConstants = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(0).LayoutConstants;\nvar Point = __webpack_require__(0).Point;\nvar PointD = __webpack_require__(0).PointD;\nvar Layout = __webpack_require__(0).Layout;\nvar Integer = __webpack_require__(0).Integer;\nvar IGeometry = __webpack_require__(0).IGeometry;\nvar LGraph = __webpack_require__(0).LGraph;\nvar Transform = __webpack_require__(0).Transform;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;\n this.coolingAdjuster = 1;\n }\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n this.initSpringEmbedder();\n this.runSpringEmbedder();\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) {\n x += compoundHorizontalMargin;\n y += compoundVerticalMargin;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding\n };\n\n // Sort the nodes in ascending order of their areas\n nodes.sort(function (n1, n2) {\n if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1;\n if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1;\n return 0;\n });\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(0);\ncoseBase.CoSEConstants = __webpack_require__(1);\ncoseBase.CoSEEdge = __webpack_require__(2);\ncoseBase.CoSEGraph = __webpack_require__(3);\ncoseBase.CoSEGraphManager = __webpack_require__(4);\ncoseBase.CoSELayout = __webpack_require__(6);\ncoseBase.CoSENode = __webpack_require__(5);\n\nmodule.exports = coseBase;\n\n/***/ })\n/******/ ]);\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cose-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cose-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeCoseBilkent\"] = factory(require(\"cose-base\"));\n\telse\n\t\troot[\"cytoscapeCoseBilkent\"] = factory(root[\"coseBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;\nvar FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;\nvar CoSEConstants = __webpack_require__(0).CoSEConstants;\nvar CoSELayout = __webpack_require__(0).CoSELayout;\nvar CoSENode = __webpack_require__(0).CoSENode;\nvar PointD = __webpack_require__(0).layoutBase.PointD;\nvar DimensionD = __webpack_require__(0).layoutBase.DimensionD;\n\nvar defaults = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // 'draft', 'default' or 'proof\" \n // - 'draft' fast cooling rate \n // - 'default' moderate cooling rate \n // - \"proof\" slow cooling rate\n quality: 'default',\n // include labels in node dimensions\n nodeDimensionsIncludeLabels: false,\n // number of ticks per frame; higher is faster but more jerky\n refresh: 30,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 10,\n // Whether to enable incremental mode\n randomize: true,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: 4500,\n // Ideal edge (non nested) length\n idealEdgeLength: 50,\n // Divisor to compute edge forces\n edgeElasticity: 0.45,\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 0.1,\n // Gravity force (constant)\n gravity: 0.25,\n // Maximum number of iterations to perform\n numIter: 2500,\n // For enabling tiling\n tile: true,\n // Type of layout animation. The option set is {'during', 'end', false}\n animate: 'end',\n // Duration for animate:end\n animationDuration: 500,\n // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingVertical: 10,\n // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingHorizontal: 10,\n // Gravity range (constant) for compounds\n gravityRangeCompound: 1.5,\n // Gravity force (constant) for compounds\n gravityCompound: 1.0,\n // Gravity range (constant)\n gravityRange: 3.8,\n // Initial cooling factor for incremental layout\n initialEnergyOnIncremental: 0.5\n};\n\nfunction extend(defaults, options) {\n var obj = {};\n\n for (var i in defaults) {\n obj[i] = defaults[i];\n }\n\n for (var i in options) {\n obj[i] = options[i];\n }\n\n return obj;\n};\n\nfunction _CoSELayout(_options) {\n this.options = extend(defaults, _options);\n getUserOptions(this.options);\n}\n\nvar getUserOptions = function getUserOptions(options) {\n if (options.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion;\n if (options.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;\n if (options.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity;\n if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;\n if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;\n if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;\n if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;\n if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;\n if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;\n if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;\n\n if (options.quality == 'draft') LayoutConstants.QUALITY = 0;else if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 1;\n\n CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;\n CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;\n CoSEConstants.TILE = options.tile;\n CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;\n CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;\n};\n\n_CoSELayout.prototype.run = function () {\n var ready;\n var frameId;\n var options = this.options;\n var idToLNode = this.idToLNode = {};\n var layout = this.layout = new CoSELayout();\n var self = this;\n\n self.stopped = false;\n\n this.cy = this.options.cy;\n\n this.cy.trigger({ type: 'layoutstart', layout: this });\n\n var gm = layout.newGraphManager();\n this.gm = gm;\n\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n\n this.root = gm.addRoot();\n this.processChildrenList(this.root, this.getTopMostNodes(nodes), layout);\n\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var sourceNode = this.idToLNode[edge.data(\"source\")];\n var targetNode = this.idToLNode[edge.data(\"target\")];\n if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {\n var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);\n e1.id = edge.id();\n }\n }\n\n var getPositions = function getPositions(ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var theId = ele.data('id');\n var lNode = self.idToLNode[theId];\n\n return {\n x: lNode.getRect().getCenterX(),\n y: lNode.getRect().getCenterY()\n };\n };\n\n /*\n * Reposition nodes in iterations animatedly\n */\n var iterateAnimated = function iterateAnimated() {\n // Thigs to perform after nodes are repositioned on screen\n var afterReposition = function afterReposition() {\n if (options.fit) {\n options.cy.fit(options.eles, options.padding);\n }\n\n if (!ready) {\n ready = true;\n self.cy.one('layoutready', options.ready);\n self.cy.trigger({ type: 'layoutready', layout: self });\n }\n };\n\n var ticksPerFrame = self.options.refresh;\n var isDone;\n\n for (var i = 0; i < ticksPerFrame && !isDone; i++) {\n isDone = self.stopped || self.layout.tick();\n }\n\n // If layout is done\n if (isDone) {\n // If the layout is not a sublayout and it is successful perform post layout.\n if (layout.checkLayoutSuccess() && !layout.isSubLayout) {\n layout.doPostLayout();\n }\n\n // If layout has a tilingPostLayout function property call it.\n if (layout.tilingPostLayout) {\n layout.tilingPostLayout();\n }\n\n layout.isLayoutFinished = true;\n\n self.options.eles.nodes().positions(getPositions);\n\n afterReposition();\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n self.cy.one('layoutstop', self.options.stop);\n self.cy.trigger({ type: 'layoutstop', layout: self });\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n\n ready = false;\n return;\n }\n\n var animationData = self.layout.getPositionsData(); // Get positions of layout nodes note that all nodes may not be layout nodes because of tiling\n\n // Position nodes, for the nodes whose id does not included in data (because they are removed from their parents and included in dummy compounds)\n // use position of their ancestors or dummy ancestors\n options.eles.nodes().positions(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n // If ele is a compound node, then its position will be defined by its children\n if (!ele.isParent()) {\n var theId = ele.id();\n var pNode = animationData[theId];\n var temp = ele;\n // If pNode is undefined search until finding position data of its first ancestor (It may be dummy as well)\n while (pNode == null) {\n pNode = animationData[temp.data('parent')] || animationData['DummyCompound_' + temp.data('parent')];\n animationData[theId] = pNode;\n temp = temp.parent()[0];\n if (temp == undefined) {\n break;\n }\n }\n if (pNode != null) {\n return {\n x: pNode.x,\n y: pNode.y\n };\n } else {\n return {\n x: ele.position('x'),\n y: ele.position('y')\n };\n }\n }\n });\n\n afterReposition();\n\n frameId = requestAnimationFrame(iterateAnimated);\n };\n\n /*\n * Listen 'layoutstarted' event and start animated iteration if animate option is 'during'\n */\n layout.addListener('layoutstarted', function () {\n if (self.options.animate === 'during') {\n frameId = requestAnimationFrame(iterateAnimated);\n }\n });\n\n layout.runLayout(); // Run cose layout\n\n /*\n * If animate option is not 'during' ('end' or false) perform these here (If it is 'during' similar things are already performed)\n */\n if (this.options.animate !== \"during\") {\n self.options.eles.nodes().not(\":parent\").layoutPositions(self, self.options, getPositions); // Use layout positions to reposition the nodes it considers the options parameter\n ready = false;\n }\n\n return this; // chaining\n};\n\n//Get the top most ones of a list of nodes\n_CoSELayout.prototype.getTopMostNodes = function (nodes) {\n var nodesMap = {};\n for (var i = 0; i < nodes.length; i++) {\n nodesMap[nodes[i].id()] = true;\n }\n var roots = nodes.filter(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var parent = ele.parent()[0];\n while (parent != null) {\n if (nodesMap[parent.id()]) {\n return false;\n }\n parent = parent.parent()[0];\n }\n return true;\n });\n\n return roots;\n};\n\n_CoSELayout.prototype.processChildrenList = function (parent, children, layout) {\n var size = children.length;\n for (var i = 0; i < size; i++) {\n var theChild = children[i];\n var children_of_children = theChild.children();\n var theNode;\n\n var dimensions = theChild.layoutDimensions({\n nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels\n });\n\n if (theChild.outerWidth() != null && theChild.outerHeight() != null) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n } else {\n theNode = parent.add(new CoSENode(this.graphManager));\n }\n // Attach id to the layout node\n theNode.id = theChild.data(\"id\");\n // Attach the paddings of cy node to layout node\n theNode.paddingLeft = parseInt(theChild.css('padding'));\n theNode.paddingTop = parseInt(theChild.css('padding'));\n theNode.paddingRight = parseInt(theChild.css('padding'));\n theNode.paddingBottom = parseInt(theChild.css('padding'));\n\n //Attach the label properties to compound if labels will be included in node dimensions \n if (this.options.nodeDimensionsIncludeLabels) {\n if (theChild.isParent()) {\n var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;\n var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;\n var labelPos = theChild.css(\"text-halign\");\n theNode.labelWidth = labelWidth;\n theNode.labelHeight = labelHeight;\n theNode.labelPos = labelPos;\n }\n }\n\n // Map the layout node\n this.idToLNode[theChild.data(\"id\")] = theNode;\n\n if (isNaN(theNode.rect.x)) {\n theNode.rect.x = 0;\n }\n\n if (isNaN(theNode.rect.y)) {\n theNode.rect.y = 0;\n }\n\n if (children_of_children != null && children_of_children.length > 0) {\n var theNewGraph;\n theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);\n this.processChildrenList(theNewGraph, children_of_children, layout);\n }\n }\n};\n\n/**\n * @brief : called on continuous layouts to stop them before they finish\n */\n_CoSELayout.prototype.stop = function () {\n this.stopped = true;\n\n return this; // chaining\n};\n\nvar register = function register(cytoscape) {\n // var Layout = getLayout( cytoscape );\n\n cytoscape('layout', 'cose-bilkent', _CoSELayout);\n};\n\n// auto reg for globals\nif (typeof cytoscape !== 'undefined') {\n register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ })\n/******/ ]);\n});","import {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/layout-algorithms/cose-bilkent/cytoscape-setup.ts\nimport cytoscape from \"cytoscape\";\nimport coseBilkent from \"cytoscape-cose-bilkent\";\nimport { select } from \"d3\";\ncytoscape.use(coseBilkent);\nfunction addNodes(nodes, cy) {\n nodes.forEach((node) => {\n const nodeData = {\n id: node.id,\n labelText: node.label,\n height: node.height,\n width: node.width,\n padding: node.padding ?? 0\n };\n Object.keys(node).forEach((key) => {\n if (![\"id\", \"label\", \"height\", \"width\", \"padding\", \"x\", \"y\"].includes(key)) {\n nodeData[key] = node[key];\n }\n });\n cy.add({\n group: \"nodes\",\n data: nodeData,\n position: {\n x: node.x ?? 0,\n y: node.y ?? 0\n }\n });\n });\n}\n__name(addNodes, \"addNodes\");\nfunction addEdges(edges, cy) {\n edges.forEach((edge) => {\n const edgeData = {\n id: edge.id,\n source: edge.start,\n target: edge.end\n };\n Object.keys(edge).forEach((key) => {\n if (![\"id\", \"start\", \"end\"].includes(key)) {\n edgeData[key] = edge[key];\n }\n });\n cy.add({\n group: \"edges\",\n data: edgeData\n });\n });\n}\n__name(addEdges, \"addEdges\");\nfunction createCytoscapeInstance(data) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n // container to render in\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"bezier\"\n }\n }\n ]\n });\n renderEl.remove();\n addNodes(data.nodes, cy);\n addEdges(data.edges, cy);\n cy.nodes().forEach(function(n) {\n n.layoutDimensions = () => {\n const nodeData = n.data();\n return { w: nodeData.width, h: nodeData.height };\n };\n });\n const layoutConfig = {\n name: \"cose-bilkent\",\n // @ts-ignore Types for cose-bilkent are not correct?\n quality: \"proof\",\n styleEnabled: false,\n animate: false\n };\n cy.layout(layoutConfig).run();\n cy.ready((e) => {\n log.info(\"Cytoscape ready\", e);\n resolve(cy);\n });\n });\n}\n__name(createCytoscapeInstance, \"createCytoscapeInstance\");\nfunction extractPositionedNodes(cy) {\n return cy.nodes().map((node) => {\n const data = node.data();\n const position = node.position();\n const positionedNode = {\n id: data.id,\n x: position.x,\n y: position.y\n };\n Object.keys(data).forEach((key) => {\n if (key !== \"id\") {\n positionedNode[key] = data[key];\n }\n });\n return positionedNode;\n });\n}\n__name(extractPositionedNodes, \"extractPositionedNodes\");\nfunction extractPositionedEdges(cy) {\n return cy.edges().map((edge) => {\n const data = edge.data();\n const rscratch = edge._private.rscratch;\n const positionedEdge = {\n id: data.id,\n source: data.source,\n target: data.target,\n startX: rscratch.startX,\n startY: rscratch.startY,\n midX: rscratch.midX,\n midY: rscratch.midY,\n endX: rscratch.endX,\n endY: rscratch.endY\n };\n Object.keys(data).forEach((key) => {\n if (![\"id\", \"source\", \"target\"].includes(key)) {\n positionedEdge[key] = data[key];\n }\n });\n return positionedEdge;\n });\n}\n__name(extractPositionedEdges, \"extractPositionedEdges\");\n\n// src/rendering-util/layout-algorithms/cose-bilkent/layout.ts\nasync function executeCoseBilkentLayout(data, _config) {\n log.debug(\"Starting cose-bilkent layout algorithm\");\n try {\n validateLayoutData(data);\n const cy = await createCytoscapeInstance(data);\n const positionedNodes = extractPositionedNodes(cy);\n const positionedEdges = extractPositionedEdges(cy);\n log.debug(`Layout completed: ${positionedNodes.length} nodes, ${positionedEdges.length} edges`);\n return {\n nodes: positionedNodes,\n edges: positionedEdges\n };\n } catch (error) {\n log.error(\"Error in cose-bilkent layout algorithm:\", error);\n throw error;\n }\n}\n__name(executeCoseBilkentLayout, \"executeCoseBilkentLayout\");\nfunction validateLayoutData(data) {\n if (!data) {\n throw new Error(\"Layout data is required\");\n }\n if (!data.config) {\n throw new Error(\"Configuration is required in layout data\");\n }\n if (!data.rootNode) {\n throw new Error(\"Root node is required\");\n }\n if (!data.nodes || !Array.isArray(data.nodes)) {\n throw new Error(\"No nodes found in layout data\");\n }\n if (!Array.isArray(data.edges)) {\n throw new Error(\"Edges array is required in layout data\");\n }\n return true;\n}\n__name(validateLayoutData, \"validateLayoutData\");\n\n// src/rendering-util/layout-algorithms/cose-bilkent/render.ts\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg, {\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers,\n insertNode,\n log: log2,\n positionEdgeLabel\n}, { algorithm: _algorithm }) => {\n const nodeDb = {};\n const clusterDb = {};\n const element = svg.select(\"g\");\n insertMarkers(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n const subGraphsEl = element.insert(\"g\").attr(\"class\", \"subgraphs\");\n const edgePaths = element.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = element.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = element.insert(\"g\").attr(\"class\", \"nodes\");\n log2.debug(\"Inserting nodes into DOM for dimension calculation\");\n await Promise.all(\n data4Layout.nodes.map(async (node) => {\n if (node.isGroup) {\n const clusterNode = { ...node };\n clusterDb[node.id] = clusterNode;\n nodeDb[node.id] = clusterNode;\n await insertCluster(subGraphsEl, node);\n } else {\n const nodeWithPosition = { ...node };\n nodeDb[node.id] = nodeWithPosition;\n const nodeEl = await insertNode(nodes, node, {\n config: data4Layout.config,\n dir: data4Layout.direction || \"TB\"\n });\n const boundingBox = nodeEl.node().getBBox();\n nodeWithPosition.width = boundingBox.width;\n nodeWithPosition.height = boundingBox.height;\n nodeWithPosition.domId = nodeEl;\n log2.debug(`Node ${node.id} dimensions: ${boundingBox.width}x${boundingBox.height}`);\n }\n })\n );\n log2.debug(\"Running cose-bilkent layout algorithm\");\n const updatedLayoutData = {\n ...data4Layout,\n nodes: data4Layout.nodes.map((node) => {\n const nodeWithDimensions = nodeDb[node.id];\n return {\n ...node,\n width: nodeWithDimensions.width,\n height: nodeWithDimensions.height\n };\n })\n };\n const layoutResult = await executeCoseBilkentLayout(updatedLayoutData, data4Layout.config);\n log2.debug(\"Positioning nodes based on layout results\");\n layoutResult.nodes.forEach((positionedNode) => {\n const node = nodeDb[positionedNode.id];\n if (node?.domId) {\n node.domId.attr(\n \"transform\",\n `translate(${positionedNode.x}, ${positionedNode.y})`\n );\n node.x = positionedNode.x;\n node.y = positionedNode.y;\n log2.debug(`Positioned node ${node.id} at center (${positionedNode.x}, ${positionedNode.y})`);\n }\n });\n layoutResult.edges.forEach((positionedEdge) => {\n const edge = data4Layout.edges.find((e) => e.id === positionedEdge.id);\n if (edge) {\n edge.points = [\n { x: positionedEdge.startX, y: positionedEdge.startY },\n { x: positionedEdge.midX, y: positionedEdge.midY },\n { x: positionedEdge.endX, y: positionedEdge.endY }\n ];\n }\n });\n log2.debug(\"Inserting and positioning edges\");\n await Promise.all(\n data4Layout.edges.map(async (edge) => {\n const _edgeLabel = await insertEdgeLabel(edgeLabels, edge);\n const startNode = nodeDb[edge.start ?? \"\"];\n const endNode = nodeDb[edge.end ?? \"\"];\n if (startNode && endNode) {\n const positionedEdge = layoutResult.edges.find((e) => e.id === edge.id);\n if (positionedEdge) {\n log2.debug(\"APA01 positionedEdge\", positionedEdge);\n const edgeWithPath = { ...edge };\n const paths = insertEdge(\n edgePaths,\n edgeWithPath,\n clusterDb,\n data4Layout.type,\n startNode,\n endNode,\n data4Layout.diagramId\n );\n positionEdgeLabel(edgeWithPath, paths);\n } else {\n const edgeWithPath = {\n ...edge,\n points: [\n { x: startNode.x || 0, y: startNode.y || 0 },\n { x: endNode.x || 0, y: endNode.y || 0 }\n ]\n };\n const paths = insertEdge(\n edgePaths,\n edgeWithPath,\n clusterDb,\n data4Layout.type,\n startNode,\n endNode,\n data4Layout.diagramId\n );\n positionEdgeLabel(edgeWithPath, paths);\n }\n }\n })\n );\n log2.debug(\"Cose-bilkent rendering completed\");\n}, \"render\");\n\n// src/rendering-util/layout-algorithms/cose-bilkent/index.ts\nvar render2 = render;\nexport {\n render2 as render\n};\n"],"names":["root","factory","module","this","modules","installedModules","__webpack_require__","moduleId","value","exports","name","getter","object","property","LayoutConstants","LGraphObject","IGeometry","IMath","LEdge","source","target","vEdge","prop","node","graph","otherEnd","clipPointCoordinates","vGraphObject","Integer","RectangleD","RandomSeed","PointD","LNode","gm","loc","size","vNode","width","height","upperLeft","dimension","cx","cy","x","y","dx","dy","to","edgeList","self","edge","other","neighbors","withNeighborsList","childNode","children","nodes","i","noOfChildren","randomCenterX","randomCenterY","minX","maxX","minY","maxY","childGraph","trans","left","top","leftTop","vLeftTop","pt","dim","LGraphManager","Point","LinkedList","LGraph","parent","obj2","vGraph","obj1","sourceNode","targetNode","newNode","newEdge","obj","edgesToBeRemoved","s","index","sourceIndex","targetIndex","nodeTop","nodeLeft","margin","lNode","recursive","right","bottom","nodeRight","nodeBottom","boundingRect","queue","visited","currentNode","neighborEdges","currentNeighbor","childrenOfNode","neighborEdge","childrenOfNeighbor","noOfVisitedInThisGraph","visitedNode","layout","ngraph","nnode","newGraph","parentNode","sourceGraph","targetGraph","lObj","nodesToBeRemoved","nodeList","graphs","firstNode","secondNode","ownerGraph","sourceAncestorGraph","targetAncestorGraph","edges","firstOwnerGraph","secondOwnerGraph","depth","FDLayoutConstants","rectA","rectB","overlapAmount","separationBuffer","directions","slope","moveByY","moveByX","result","p1x","p1y","p2x","p2y","topLeftAx","topLeftAy","topRightAx","bottomLeftAx","bottomLeftAy","bottomRightAx","halfWidthA","halfHeightA","topLeftBx","topLeftBy","topRightBx","bottomLeftBx","bottomLeftBy","bottomRightBx","halfWidthB","halfHeightB","clipPointAFound","clipPointBFound","slopeA","slopeB","slopePrime","cardinalDirectionA","cardinalDirectionB","tempPointAx","tempPointAy","tempPointBx","tempPointBy","line","s1","s2","f1","f2","x1","y1","x2","y2","x3","y3","x4","y4","a1","a2","b1","b2","c1","c2","denom","Cx","Cy","Nx","Ny","C_angle","p1","p2","p3","p4","a","b","c","d","p","q","r","det","lambda","gamma","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","nodeFrom","add","prev","next","list","_remove","vals","_this","v","val","otherNode","current","_typeof","UniqueIDGeneretor","id","arg","type","_toConsumableArray","arr","arr2","Transform","Emitter","Layout","isRemoteUse","isLayoutSuccessfull","allEdges","newLeftTop","flatForest","isForest","allNodes","isFlat","toBeVisited","parents","unProcessedNodes","temp","dummyNodes","dummyNode","dummyEdge","k","lEdge","path","ebp","sliderValue","defaultValue","minDiv","maxMul","minValue","maxValue","removedNodes","remainingDegrees","foundCenter","centerNode","degree","tempList","tempList2","neighbours","neighbour","otherDegree","newDegree","wox","woy","wex","wey","dox","doy","dex","dey","xDevice","worldExtX","yDevice","worldExtY","xWorld","deviceExtX","yWorld","deviceExtY","inPoint","outPoint","FDLayout","lcaDepth","sizeOfSourceInLca","sizeOfTargetInLca","lEdges","gridUpdateAllowed","forceToNodeSurroundingUpdate","j","nodeA","nodeB","lNodes","processedNodeSet","idealLength","length","springForce","springForceX","springForceY","clipPoints","distanceX","distanceY","distanceSquared","distance","repulsionForce","repulsionForceX","repulsionForceY","childrenConstant","ownerCenterX","ownerCenterY","absDistanceX","absDistanceY","estimatedSize","converged","oscilating","sizeX","sizeY","grid","startX","finishX","startY","finishY","surrounding","FDLayoutEdge","FDLayoutNode","_startX","_finishX","_startY","_finishY","DimensionD","HashMap","key","theId","HashSet","keys","Quicksort","A","compareFunction","NeedlemanWunsch","sequence1","sequence2","match_score","mismatch_penalty","gap_penalty","_i","_j","_i2","_j2","diag","up","maxOf","indices","inProcessAlignments","indexes","array","layoutBase","event","callback","l","data","require$$0","__WEBPACK_EXTERNAL_MODULE_0__","CoSEConstants","CoSEEdge","CoSEGraph","graphMgr","CoSEGraphManager","CoSENode","dX","dY","pred1","processed","CoSELayout","createBendsAsNeeded","intersection","forest","pData","rect","layoutEnded","multiEdge","currentStartingPoint","numberOfColumns","currentY","currentX","point","tree","startingPoint","radialSep","bounds","transform","bottomRight","parentOfNode","startAngle","endAngle","radialSeparation","halfInterval","nodeAngle","teta","x_","y_","childCount","branchCount","incEdgesCount","startIndex","stepAngle","childStartAngle","childEndAngle","maxDiagonal","diagonal","tempMemberGroups","zeroDegree","p_id","dummyCompoundId","dummyCompound","dummyParentGraph","parentGraph","childGraphMap","idToNode","tiledZeroDegreePack","compoundNode","lCompoundNode","horizontalMargin","verticalMargin","tiledPack","theChild","child","organization","compoundHorizontalMargin","compoundVerticalMargin","row","maxHeight","lnode","minWidth","verticalPadding","horizontalPadding","n1","n2","rowIndex","minCompoundSize","secondDimension","w","h","extraHeight","min","max","extraWidth","sri","hDiff","add_to_row_ratio","add_new_row_ratio","longest","last","diff","prevTotal","finalTotal","prunedNodesAll","containsLeaf","prunedNodesInStepTemp","prunedNodesInStep","lengthOfPrunedNodesInStep","nodeData","gridForPrunedNode","nodeToConnect","prunedNode","startGridX","finishGridX","startGridY","finishGridY","upNodeCount","downNodeCount","rightNodeCount","leftNodeCount","controlRegions","minCount","minIndex","random","coseBase","defaults","extend","options","_CoSELayout","_options","getUserOptions","ready","frameId","e1","getPositions","ele","iterateAnimated","afterReposition","ticksPerFrame","isDone","animationData","pNode","nodesMap","roots","children_of_children","theNode","dimensions","labelWidth","labelHeight","labelPos","theNewGraph","register","cytoscape","coseBilkent","addNodes","__name","addEdges","edgeData","createCytoscapeInstance","resolve","renderEl","select","n","layoutConfig","e","log","extractPositionedNodes","position","positionedNode","extractPositionedEdges","rscratch","positionedEdge","executeCoseBilkentLayout","_config","validateLayoutData","positionedNodes","positionedEdges","error","render","data4Layout","svg","insertCluster","insertEdge","insertEdgeLabel","insertMarkers","insertNode","log2","positionEdgeLabel","_algorithm","nodeDb","clusterDb","element","subGraphsEl","edgePaths","edgeLabels","clusterNode","nodeWithPosition","nodeEl","boundingBox","updatedLayoutData","nodeWithDimensions","layoutResult","startNode","endNode","edgeWithPath","paths","render2"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/cytoscape.esm.js b/extensions/continue/gui/assets/cytoscape.esm.js new file mode 100644 index 000000000000..8e5579b9f9f9 --- /dev/null +++ b/extensions/continue/gui/assets/cytoscape.esm.js @@ -0,0 +1,332 @@ +(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};r.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var r=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new r.Error().stack;e&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[e]="2a0355f2-e455-4f13-9550-5ac14b327c3c",r._sentryDebugIdIdentifier="sentry-dbid-2a0355f2-e455-4f13-9550-5ac14b327c3c")})()}catch{}function Bs(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t=r.length?{done:!0}:{done:!1,value:r[a++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,s=!0,o=!1;return{s:function(){t=t.call(r)},n:function(){var l=t.next();return s=l.done,l},e:function(l){o=!0,i=l},f:function(){try{s||t.return==null||t.return()}finally{if(o)throw i}}}}function Jl(r,e,t){return(e=jl(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function ac(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}function nc(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var a,n,i,s,o=[],l=!0,u=!1;try{if(i=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;l=!1}else for(;!(l=(a=i.call(t)).done)&&(o.push(a.value),o.length!==e);l=!0);}catch(v){u=!0,n=v}finally{try{if(!l&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw n}}return o}}function ic(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sc(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Je(r,e){return ec(r)||nc(r,e)||Ys(r,e)||ic()}function mn(r){return rc(r)||ac(r)||Ys(r)||sc()}function oc(r,e){if(typeof r!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var a=t.call(r,e);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function jl(r){var e=oc(r,"string");return typeof e=="symbol"?e:e+""}function ar(r){"@babel/helpers - typeof";return ar=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ar(r)}function Ys(r,e){if(r){if(typeof r=="string")return Bs(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Bs(r,e):void 0}}var rr=typeof window>"u"?null:window,To=rr?rr.navigator:null;rr&&rr.document;var uc=ar(""),ev=ar({}),lc=ar(function(){}),vc=typeof HTMLElement>"u"?"undefined":ar(HTMLElement),La=function(e){return e&&e.instanceString&&Ue(e.instanceString)?e.instanceString():null},ge=function(e){return e!=null&&ar(e)==uc},Ue=function(e){return e!=null&&ar(e)===lc},_e=function(e){return!Dr(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Le=function(e){return e!=null&&ar(e)===ev&&!_e(e)&&e.constructor===Object},fc=function(e){return e!=null&&ar(e)===ev},ae=function(e){return e!=null&&ar(e)===ar(1)&&!isNaN(e)},cc=function(e){return ae(e)&&Math.floor(e)===e},bn=function(e){if(vc!=="undefined")return e!=null&&e instanceof HTMLElement},Dr=function(e){return Ia(e)||rv(e)},Ia=function(e){return La(e)==="collection"&&e._private.single},rv=function(e){return La(e)==="collection"&&!e._private.single},Xs=function(e){return La(e)==="core"},tv=function(e){return La(e)==="stylesheet"},dc=function(e){return La(e)==="event"},ut=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},hc=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},gc=function(e){return Le(e)&&ae(e.x1)&&ae(e.x2)&&ae(e.y1)&&ae(e.y2)},pc=function(e){return fc(e)&&Ue(e.then)},yc=function(){return To&&To.userAgent.match(/msie|trident|edge/i)},Qt=function(e,t){t||(t=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;st?1:0},Tc=function(e,t){return-1*nv(e,t)},be=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments,t=1;t1&&(g-=1),g<1/6?d+(y-d)*6*g:g<1/2?y:g<2/3?d+(y-d)*(2/3-g)*6:d}var f=new RegExp("^"+wc+"$").exec(e);if(f){if(a=parseInt(f[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(f[2]),n<0||n>100||(n=n/100,i=parseFloat(f[3]),i<0||i>100)||(i=i/100,s=f[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var c=i<.5?i*(1+n):i+n-i*n,h=2*i-c;o=Math.round(255*v(h,c,a+1/3)),l=Math.round(255*v(h,c,a)),u=Math.round(255*v(h,c,a-1/3))}t=[o,l,u,s]}return t},Dc=function(e){var t,a=new RegExp("^"+mc+"$").exec(e);if(a){t=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;t.push(Math.floor(s))}var o=n[1]||n[2]||n[3],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;t.push(u)}}return t},Bc=function(e){return Pc[e.toLowerCase()]},iv=function(e){return(_e(e)?e:null)||Bc(e)||Sc(e)||Dc(e)||kc(e)},Pc={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},sv=function(e){for(var t=e.map,a=e.keys,n=a.length,i=0;i=l||R<0||m&&L>=c}function T(){var A=e();if(x(A))return k(A);d=setTimeout(T,C(A))}function k(A){return d=void 0,b&&v?w(A):(v=f=void 0,h)}function D(){d!==void 0&&clearTimeout(d),g=0,v=y=f=d=void 0}function B(){return d===void 0?h:k(e())}function P(){var A=e(),R=x(A);if(v=arguments,f=this,y=A,R){if(d===void 0)return E(y);if(m)return clearTimeout(d),d=setTimeout(T,l),w(y)}return d===void 0&&(d=setTimeout(T,l)),h}return P.cancel=D,P.flush=B,P}return fi=s,fi}var Vc=Fc(),Fa=Oa(Vc),ci=rr?rr.performance:null,lv=ci&&ci.now?function(){return ci.now()}:function(){return Date.now()},qc=(function(){if(rr){if(rr.requestAnimationFrame)return function(r){rr.requestAnimationFrame(r)};if(rr.mozRequestAnimationFrame)return function(r){rr.mozRequestAnimationFrame(r)};if(rr.webkitRequestAnimationFrame)return function(r){rr.webkitRequestAnimationFrame(r)};if(rr.msRequestAnimationFrame)return function(r){rr.msRequestAnimationFrame(r)}}return function(r){r&&setTimeout(function(){r(lv())},1e3/60)}})(),wn=function(e){return qc(e)},Xr=lv,Tt=9261,vv=65599,Ht=5381,fv=function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tt,a=t,n;n=e.next(),!n.done;)a=a*vv+n.value|0;return a},Ca=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tt;return t*vv+e|0},Ta=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ht;return(t<<5)+t+e|0},_c=function(e,t){return e*2097152+t},et=function(e){return e[0]*2097152+e[1]},Ya=function(e,t){return[Ca(e[0],t[0]),Ta(e[1],t[1])]},qo=function(e,t){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0;n--)e[n]===t&&e.splice(n,1)},eo=function(e){e.splice(0,e.length)},Qc=function(e,t){for(var a=0;a"u"?"undefined":ar(Set))!==jc?Set:ed,In=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!Xs(e)){$e("An element must have a core reference and parameters set");return}var n=t.group;if(n==null&&(t.data&&t.data.source!=null&&t.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){$e("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:t.selectable===void 0?!0:!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:t.grabbable===void 0?!0:!!t.grabbable,pannable:t.pannable===void 0?n==="edges":!!t.pannable,active:!1,classes:new ra,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),t.renderedPosition){var s=t.renderedPosition,o=e.pan(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];_e(t.classes)?u=t.classes:ge(t.classes)&&(u=t.classes.split(/\s+/));for(var v=0,f=u.length;vm?1:0},v=function(p,m,b,w,E){var C;if(b==null&&(b=0),E==null&&(E=a),b<0)throw new Error("lo must be non-negative");for(w==null&&(w=p.length);bD;0<=D?k++:k--)T.push(k);return T}).apply(this).reverse(),x=[],w=0,E=C.length;wB;0<=B?++T:--T)P.push(s(p,b));return P},y=function(p,m,b,w){var E,C,x;for(w==null&&(w=a),E=p[b];b>m;){if(x=b-1>>1,C=p[x],w(E,C)<0){p[b]=C,b=x;continue}break}return p[b]=E},g=function(p,m,b){var w,E,C,x,T;for(b==null&&(b=a),E=p.length,T=m,C=p[m],w=2*m+1;w0;){var C=m.pop(),x=g(C),T=C.id();if(c[T]=x,x!==1/0)for(var k=C.neighborhood().intersect(d),D=0;D0)for(O.unshift(M);f[G];){var N=f[G];O.unshift(N.edge),O.unshift(N.node),V=N.node,G=V.id()}return o.spawn(O)}}}},od={kruskal:function(e){e=e||function(b){return 1};for(var t=this.byGroup(),a=t.nodes,n=t.edges,i=a.length,s=new Array(i),o=a,l=function(w){for(var E=0;E0;){if(E(),x++,w===v){for(var T=[],k=i,D=v,B=p[D];T.unshift(k),B!=null&&T.unshift(B),k=g[D],k!=null;)D=k.id(),B=p[D];return{found:!0,distance:f[w],path:this.spawn(T),steps:x}}h[w]=!0;for(var P=b._private.edges,A=0;AB&&(d[D]=B,m[D]=k,b[D]=E),!i){var P=k*v+T;!i&&d[P]>B&&(d[P]=B,m[P]=T,b[P]=E)}}}for(var A=0;A1&&arguments[1]!==void 0?arguments[1]:s,ie=b(we),de=[],he=ie;;){if(he==null)return t.spawn();var Ee=m(he),pe=Ee.edge,Se=Ee.pred;if(de.unshift(he[0]),he.same(ye)&&de.length>0)break;pe!=null&&de.unshift(pe),he=Se}return l.spawn(de)},C=0;C=0;v--){var f=u[v],c=f[1],h=f[2];(t[c]===o&&t[h]===l||t[c]===l&&t[h]===o)&&u.splice(v,1)}for(var d=0;dn;){var i=Math.floor(Math.random()*t.length);t=gd(i,e,t),a--}return t},pd={kargerStein:function(){var e=this,t=this.byGroup(),a=t.nodes,n=t.edges;n.unmergeBy(function(O){return O.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/hd);if(i<2){$e("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],v=0;v1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=t;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(t,a):(a0&&e.splice(0,t));for(var o=0,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(c,h){return c-h});var v=e.length,f=Math.floor(v/2);return v%2!==0?e[f+1+o]:(e[f-1+o]+e[f+o])/2},Ed=function(e){return Math.PI*e/180},Xa=function(e,t){return Math.atan2(t,e)-Math.PI/2},ro=Math.log2||function(r){return Math.log(r)/Math.log(2)},to=function(e){return e>0?1:e<0?-1:0},Bt=function(e,t){return Math.sqrt(Et(e,t))},Et=function(e,t){var a=t.x-e.x,n=t.y-e.y;return a*a+n*n},Cd=function(e){for(var t=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Sd=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},kd=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},Dd=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},mv=function(e,t,a){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},un=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},ln=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(t.length===1)a=n=i=s=t[0];else if(t.length===2)a=i=t[0],s=n=t[1];else if(t.length===4){var o=Je(t,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Uo=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},ao=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},nt=function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},Ko=function(e,t){return nt(e,t.x,t.y)},bv=function(e,t){return nt(e,t.x1,t.y1)&&nt(e,t.x2,t.y2)},Bd=(gi=Math.hypot)!==null&&gi!==void 0?gi:function(r,e){return Math.sqrt(r*r+e*e)};function Pd(r,e){if(r.length<3)throw new Error("Need at least 3 vertices");var t=function(T,k){return{x:T.x+k.x,y:T.y+k.y}},a=function(T,k){return{x:T.x-k.x,y:T.y-k.y}},n=function(T,k){return{x:T.x*k,y:T.y*k}},i=function(T,k){return T.x*k.y-T.y*k.x},s=function(T){var k=Bd(T.x,T.y);return k===0?{x:0,y:0}:{x:T.x/k,y:T.y/k}},o=function(T){for(var k=0,D=0;D7&&arguments[7]!==void 0?arguments[7]:"auto",u=l==="auto"?vt(i,s):l,v=i/2,f=s/2;u=Math.min(u,v,f);var c=u!==v,h=u!==f,d;if(c){var y=a-v+u-o,g=n-f-o,p=a+v-u+o,m=g;if(d=it(e,t,a,n,y,g,p,m,!1),d.length>0)return d}if(h){var b=a+v+o,w=n-f+u-o,E=b,C=n+f-u+o;if(d=it(e,t,a,n,b,w,E,C,!1),d.length>0)return d}if(c){var x=a-v+u-o,T=n+f+o,k=a+v-u+o,D=T;if(d=it(e,t,a,n,x,T,k,D,!1),d.length>0)return d}if(h){var B=a-v-o,P=n-f+u-o,A=B,R=n+f-u+o;if(d=it(e,t,a,n,B,P,A,R,!1),d.length>0)return d}var L;{var I=a-v+u,M=n-f+u;if(L=ya(e,t,a,n,I,M,u+o),L.length>0&&L[0]<=I&&L[1]<=M)return[L[0],L[1]]}{var O=a+v-u,V=n-f+u;if(L=ya(e,t,a,n,O,V,u+o),L.length>0&&L[0]>=O&&L[1]<=V)return[L[0],L[1]]}{var G=a+v-u,N=n+f-u;if(L=ya(e,t,a,n,G,N,u+o),L.length>0&&L[0]>=G&&L[1]>=N)return[L[0],L[1]]}{var F=a-v+u,U=n+f-u;if(L=ya(e,t,a,n,F,U,u+o),L.length>0&&L[0]<=F&&L[1]>=U)return[L[0],L[1]]}return[]},Rd=function(e,t,a,n,i,s,o){var l=o,u=Math.min(a,i),v=Math.max(a,i),f=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=v+l&&f-l<=t&&t<=c+l},Md=function(e,t,a,n,i,s,o,l,u){var v={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(ev.x2||tv.y2)},Ld=function(e,t,a,n){a-=n;var i=t*t-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,l=(-t+s)/o,u=(-t-s)/o;return[l,u]},Id=function(e,t,a,n,i){var s=1e-5;e===0&&(e=s),t/=e,a/=e,n/=e;var o,l,u,v,f,c,h,d;if(l=(3*a-t*t)/9,u=-(27*n)+t*(9*a-2*(t*t)),u/=54,o=l*l*l+u*u,i[1]=0,h=t/3,o>0){f=u+Math.sqrt(o),f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3),c=u-Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+f+c,h+=(f+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+f)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,o===0){d=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=-l,v=l*l*l,v=Math.acos(u/Math.sqrt(v)),d=2*Math.sqrt(l),i[0]=-h+d*Math.cos(v/3),i[2]=-h+d*Math.cos((v+2*Math.PI)/3),i[4]=-h+d*Math.cos((v+4*Math.PI)/3)},Od=function(e,t,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,v=9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,f=3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*l-n*t+2*s*s+2*s*t-l*t,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*t-s*t,h=[];Id(u,v,f,c,h);for(var d=1e-7,y=[],g=0;g<6;g+=2)Math.abs(h[g+1])=0&&h[g]<=1&&y.push(h[g]);y.push(1),y.push(0);for(var p=-1,m,b,w,E=0;E=0?wu?(e-i)*(e-i)+(t-s)*(t-s):v-c},Sr=function(e,t,a){for(var n,i,s,o,l,u=0,v=0;v=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>t&&u++;else continue;return u%2!==0},Zr=function(e,t,a,n,i,s,o,l,u){var v=new Array(a.length),f;l[0]!=null?(f=Math.atan(l[1]/l[0]),l[0]<0?f=f+Math.PI/2:f=-f-Math.PI/2):f=l;for(var c=Math.cos(-f),h=Math.sin(-f),d=0;d0){var g=Cn(v,-u);y=En(g)}else y=v;return Sr(e,t,y)},zd=function(e,t,a,n,i,s,o,l){for(var u=new Array(a.length*2),v=0;v=0&&g<=1&&m.push(g),p>=0&&p<=1&&m.push(p),m.length===0)return[];var b=m[0]*l[0]+e,w=m[0]*l[1]+t;if(m.length>1){if(m[0]==m[1])return[b,w];var E=m[1]*l[0]+e,C=m[1]*l[1]+t;return[b,w,E,C]}else return[b,w]},pi=function(e,t,a){return t<=e&&e<=a||a<=e&&e<=t?e:e<=t&&t<=a||a<=t&&t<=e?t:a},it=function(e,t,a,n,i,s,o,l,u){var v=e-i,f=a-e,c=o-i,h=t-s,d=n-t,y=l-s,g=c*h-y*v,p=f*h-d*v,m=y*f-c*d;if(m!==0){var b=g/m,w=p/m,E=.001,C=0-E,x=1+E;return C<=b&&b<=x&&C<=w&&w<=x?[e+b*f,t+b*d]:u?[e+b*f,t+b*d]:[]}else return g===0||p===0?pi(e,a,o)===o?[o,l]:pi(e,a,i)===i?[i,s]:pi(i,o,a)===a?[a,n]:[]:[]},Vd=function(e,t,a,n,i){var s=[],o=n/2,l=i/2,u=t,v=a;s.push({x:u+o*e[0],y:v+l*e[1]});for(var f=1;f0){var y=Cn(f,-l);h=En(y)}else h=f}else h=a;for(var g,p,m,b,w=0;w2){for(var d=[v[0],v[1]],y=Math.pow(d[0]-e,2)+Math.pow(d[1]-t,2),g=1;gv&&(v=w)},get:function(b){return u[b]}},c=0;c0?L=R.edgesTo(A)[0]:L=A.edgesTo(R)[0];var I=n(L);A=A.id(),x[A]>x[B]+I&&(x[A]=x[B]+I,T.nodes.indexOf(A)<0?T.push(A):T.updateItem(A),C[A]=0,E[A]=[]),x[A]==x[B]+I&&(C[A]=C[A]+C[B],E[A].push(B))}else for(var M=0;M0;){for(var N=w.pop(),F=0;F0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},eh=function(e,t){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:ah,o=n,l,u,v=0;v=2?va(e,t,a,0,Jo,nh):va(e,t,a,0,Qo)},squaredEuclidean:function(e,t,a){return va(e,t,a,0,Jo)},manhattan:function(e,t,a){return va(e,t,a,0,Qo)},max:function(e,t,a){return va(e,t,a,-1/0,ih)}};Jt["squared-euclidean"]=Jt.squaredEuclidean;Jt.squaredeuclidean=Jt.squaredEuclidean;function Nn(r,e,t,a,n,i){var s;return Ue(r)?s=r:s=Jt[r]||Jt.euclidean,e===0&&Ue(r)?s(n,i):s(e,t,a,n,i)}var sh=cr({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),io=function(e){return sh(e)},Tn=function(e,t,a,n,i){var s=i!=="kMedoids",o=s?function(f){return a[f]}:function(f){return n[f](a)},l=function(c){return n[c](t)},u=a,v=t;return Nn(e,n.length,o,l,u,v)},mi=function(e,t,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(t),l=null,u=0;ua)return!1}return!0},lh=function(e,t,a){for(var n=0;no&&(o=t[u][v],l=v);i[l].push(e[u])}for(var f=0;f=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var d=t[s],y=t[n[s]],g;i.mode==="dendrogram"?g={left:d,right:y,key:d.key}:g={value:d.value.concat(y.value),key:d.key},e[d.index]=g,e.splice(y.index,1),t[d.key]=g;for(var p=0;pa[y.key][m.key]&&(l=a[y.key][m.key])):i.linkage==="max"?(l=a[d.key][m.key],a[d.key][m.key]0&&n.push(i);return n},nu=function(e,t,a){for(var n=[],i=0;io&&(s=u,o=t[i*e+u])}s>0&&n.push(s)}for(var v=0;vu&&(l=v,u=f)}a[i]=s[l]}return n=nu(e,t,a),n},iu=function(e){for(var t=this.cy(),a=this.nodes(),n=xh(e),i={},s=0;s=B?(P=B,B=R,A=L):R>P&&(P=R);for(var I=0;I0?1:0;x[k%n.minIterations*o+F]=U,N+=U}if(N>0&&(k>=n.minIterations-1||k==n.maxIterations-1)){for(var Q=0,K=0;K1||C>1)&&(o=!0),f[b]=[],m.outgoers().forEach(function(T){T.isEdge()&&f[b].push(T.id())})}else c[b]=[void 0,m.target().id()]}):s.forEach(function(m){var b=m.id();if(m.isNode()){var w=m.degree(!0);w%2&&(l?u?o=!0:u=b:l=b),f[b]=[],m.connectedEdges().forEach(function(E){return f[b].push(E.id())})}else c[b]=[m.source().id(),m.target().id()]});var h={found:!1,trail:void 0};if(o)return h;if(u&&l)if(i){if(v&&u!=v)return h;v=u}else{if(v&&u!=v&&l!=v)return h;v||(v=u)}else v||(v=s[0].id());var d=function(b){for(var w=b,E=[b],C,x,T;f[w].length;)C=f[w].shift(),x=c[C][0],T=c[C][1],w!=T?(f[T]=f[T].filter(function(k){return k!=C}),w=T):!i&&w!=x&&(f[x]=f[x].filter(function(k){return k!=C}),w=x),E.unshift(C),E.unshift(w);return E},y=[],g=[];for(g=d(v);g.length!=1;)f[g[0]].length==0?(y.unshift(s.getElementById(g.shift())),y.unshift(s.getElementById(g.shift()))):g=d(g.shift()).concat(g);y.unshift(s.getElementById(g.shift()));for(var p in f)if(f[p].length)return h;return h.found=!0,h.trail=this.spawn(y,!0),h}},Qa=function(){var e=this,t={},a=0,n=0,i=[],s=[],o={},l=function(c,h){for(var d=s.length-1,y=[],g=e.spawn();s[d].x!=c||s[d].y!=h;)y.push(s.pop().edge),d--;y.push(s.pop().edge),y.forEach(function(p){var m=p.connectedNodes().intersection(e);g.merge(p),m.forEach(function(b){var w=b.id(),E=b.connectedEdges().intersection(e);g.merge(b),t[w].cutVertex?g.merge(E.filter(function(C){return C.isLoop()})):g.merge(E)})}),i.push(g)},u=function(c,h,d){c===d&&(n+=1),t[h]={id:a,low:a++,cutVertex:!1};var y=e.getElementById(h).connectedEdges().intersection(e);if(y.size()===0)i.push(e.spawn(e.getElementById(h)));else{var g,p,m,b;y.forEach(function(w){g=w.source().id(),p=w.target().id(),m=g===h?p:g,m!==d&&(b=w.id(),o[b]||(o[b]=!0,s.push({x:h,y:m,edge:w})),m in t?t[h].low=Math.min(t[h].low,t[m].id):(u(c,m,h),t[h].low=Math.min(t[h].low,t[m].low),t[h].id<=t[m].low&&(t[h].cutVertex=!0,l(h,m))))})}};e.forEach(function(f){if(f.isNode()){var c=f.id();c in t||(n=0,u(c,c),t[c].cutVertex=n>1)}});var v=Object.keys(t).filter(function(f){return t[f].cutVertex}).map(function(f){return e.getElementById(f)});return{cut:e.spawn(v),components:i}},Ph={hopcroftTarjanBiconnected:Qa,htbc:Qa,htb:Qa,hopcroftTarjanBiconnectedComponents:Qa},Ja=function(){var e=this,t={},a=0,n=[],i=[],s=e.spawn(e),o=function(u){i.push(u),t[u]={index:a,low:a++,explored:!1};var v=e.getElementById(u).connectedEdges().intersection(e);if(v.forEach(function(y){var g=y.target().id();g!==u&&(g in t||o(g),t[g].explored||(t[u].low=Math.min(t[u].low,t[g].low)))}),t[u].index===t[u].low){for(var f=e.spawn();;){var c=i.pop();if(f.merge(e.getElementById(c)),t[c].low=t[u].index,t[c].explored=!0,c===u)break}var h=f.edgesWith(f),d=f.merge(h);n.push(d),s=s.difference(d)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in t||o(u)}}),{cut:s,components:n}},Ah={tarjanStronglyConnected:Ja,tsc:Ja,tscc:Ja,tarjanStronglyConnectedComponents:Ja},Dv={};[Sa,sd,od,ld,fd,dd,pd,Hd,Yt,Xt,Rs,th,gh,bh,kh,Bh,Ph,Ah].forEach(function(r){be(Dv,r)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var Bv=0,Pv=1,Av=2,Nr=function(e){if(!(this instanceof Nr))return new Nr(e);this.id="Thenable/1.0.7",this.state=Bv,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Nr.prototype={fulfill:function(e){return su(this,Pv,"fulfillValue",e)},reject:function(e){return su(this,Av,"rejectReason",e)},then:function(e,t){var a=this,n=new Nr;return a.onFulfilled.push(uu(e,n,"fulfill")),a.onRejected.push(uu(t,n,"reject")),Rv(a),n.proxy}};var su=function(e,t,a,n){return e.state===Bv&&(e.state=t,e[a]=n,Rv(e)),e},Rv=function(e){e.state===Pv?ou(e,"onFulfilled",e.fulfillValue):e.state===Av&&ou(e,"onRejected",e.rejectReason)},ou=function(e,t,a){if(e[t].length!==0){var n=e[t];e[t]=[];var i=function(){for(var o=0;o0}},clearQueue:function(){return function(){var t=this,a=t.length!==void 0,n=a?t:[t],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s-1}return qi=e,qi}var _i,Ru;function Xh(){if(Ru)return _i;Ru=1;var r=Vn();function e(t,a){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,a])):n[i][1]=a,this}return _i=e,_i}var Gi,Mu;function Zh(){if(Mu)return Gi;Mu=1;var r=$h(),e=Uh(),t=Kh(),a=Yh(),n=Xh();function i(s){var o=-1,l=s==null?0:s.length;for(this.clear();++o-1&&a%1==0&&a0&&this.spawn(n).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},toggleClass:function(e,t){_e(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=t===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var a=this;if(t==null)t=250;else if(t===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},t),a}};vn.className=vn.classNames=vn.classes;var Me={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:tr,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Me.variable="(?:[\\w-.]|(?:\\\\"+Me.metaChar+"))+";Me.className="(?:[\\w-]|(?:\\\\"+Me.metaChar+"))+";Me.value=Me.string+"|"+Me.number;Me.id=Me.variable;(function(){var r,e,t;for(r=Me.comparatorOp.split("|"),t=0;t=0)&&e!=="="&&(Me.comparatorOp+="|\\!"+e)})();var qe=function(){return{checks:[]}},se={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},Os=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(r,e){return Tc(r.selector,e.selector)}),Dg=(function(){for(var r={},e,t=0;t0&&v.edgeCount>0)return Ve("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(v.edgeCount>1)return Ve("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;v.edgeCount===1&&Ve("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Lg=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(v){return v??""},t=function(v){return ge(v)?'"'+v+'"':e(v)},a=function(v){return" "+v+" "},n=function(v,f){var c=v.type,h=v.value;switch(c){case se.GROUP:{var d=e(h);return d.substring(0,d.length-1)}case se.DATA_COMPARE:{var y=v.field,g=v.operator;return"["+y+a(e(g))+t(h)+"]"}case se.DATA_BOOL:{var p=v.operator,m=v.field;return"["+e(p)+m+"]"}case se.DATA_EXIST:{var b=v.field;return"["+b+"]"}case se.META_COMPARE:{var w=v.operator,E=v.field;return"[["+E+a(e(w))+t(h)+"]]"}case se.STATE:return h;case se.ID:return"#"+h;case se.CLASS:return"."+h;case se.PARENT:case se.CHILD:return i(v.parent,f)+a(">")+i(v.child,f);case se.ANCESTOR:case se.DESCENDANT:return i(v.ancestor,f)+" "+i(v.descendant,f);case se.COMPOUND_SPLIT:{var C=i(v.left,f),x=i(v.subject,f),T=i(v.right,f);return C+(C.length>0?" ":"")+x+T}case se.TRUE:return""}},i=function(v,f){return v.checks.reduce(function(c,h,d){return c+(f===v&&d===0?"$":"")+n(h,f)},"")},s="",o=0;o1&&o=0&&(t=t.replace("!",""),f=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),v=!0),(i||o||v)&&(l=!i&&!s?"":""+e,u=""+a),v&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),t){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e0;){var v=n.shift();e(v),i.add(v.id()),o&&a(n,i,v)}return r}function Vv(r,e,t){if(t.isParent())for(var a=t._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return lo(this,r,e,Vv)};function qv(r,e,t){if(t.isChild()){var a=t._private.parent;e.has(a.id())||r.push(a)}}jt.forEachUp=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return lo(this,r,e,qv)};function _g(r,e,t){qv(r,e,t),Vv(r,e,t)}jt.forEachUpAndDown=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return lo(this,r,e,_g)};jt.ancestors=jt.parents;var Ba,_v;Ba=_v={data:Fe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Fe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Fe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Fe.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Fe.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};Ba.attr=Ba.data;Ba.removeAttr=Ba.removeData;var Gg=_v,_n={};function ps(r){return function(e){var t=this;if(e===void 0&&(e=!0),t.length!==0)if(t.isNode()&&!t.removed()){for(var a=0,n=t[0],i=n._private.edges,s=0;se}),minIndegree:Nt("indegree",function(r,e){return re}),minOutdegree:Nt("outdegree",function(r,e){return re})});be(_n,{totalDegree:function(e){for(var t=0,a=this.nodes(),n=0;n0,c=f;f&&(v=v[0]);var h=c?v.position():{x:0,y:0};t!==void 0?u.position(e,t+h[e]):i!==void 0&&u.position({x:i.x+h.x,y:i.y+h.y})}else{var d=a.position(),y=o?a.parent():null,g=y&&y.length>0,p=g;g&&(y=y[0]);var m=p?y.position():{x:0,y:0};return i={x:d.x-m.x,y:d.y-m.y},e===void 0?i:i[e]}else if(!s)return;return this}};Or.modelPosition=Or.point=Or.position;Or.modelPositions=Or.points=Or.positions;Or.renderedPoint=Or.renderedPosition;Or.relativePoint=Or.relativePosition;var Hg=Gv,Zt,pt;Zt=pt={};pt.renderedBoundingBox=function(r){var e=this.boundingBox(r),t=this.cy(),a=t.zoom(),n=t.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}};pt.dirtyCompoundBoundsCache=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(t){if(t.isParent()){var a=t._private;a.compoundBoundsClean=!1,a.bbCache=null,r||t.emitAndNotify("bounds")}}),this)};pt.updateCompoundBounds=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!r&&e.batching())return this;function t(s){if(!s.isParent())return;var o=s._private,l=s.children(),u=s.pstyle("compound-sizing-wrt-labels").value==="include",v={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},f=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(f.w===0||f.h===0)&&(f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},f.x1=c.x-f.w/2,f.x2=c.x+f.w/2,f.y1=c.y-f.h/2,f.y2=c.y+f.h/2);function h(k,D,B){var P=0,A=0,R=D+B;return k>0&&R>0&&(P=D/R*k,A=B/R*k),{biasDiff:P,biasComplementDiff:A}}function d(k,D,B,P){if(B.units==="%")switch(P){case"width":return k>0?B.pfValue*k:0;case"height":return D>0?B.pfValue*D:0;case"average":return k>0&&D>0?B.pfValue*(k+D)/2:0;case"min":return k>0&&D>0?k>D?B.pfValue*D:B.pfValue*k:0;case"max":return k>0&&D>0?k>D?B.pfValue*k:B.pfValue*D:0;default:return 0}else return B.units==="px"?B.pfValue:0}var y=v.width.left.value;v.width.left.units==="px"&&v.width.val>0&&(y=y*100/v.width.val);var g=v.width.right.value;v.width.right.units==="px"&&v.width.val>0&&(g=g*100/v.width.val);var p=v.height.top.value;v.height.top.units==="px"&&v.height.val>0&&(p=p*100/v.height.val);var m=v.height.bottom.value;v.height.bottom.units==="px"&&v.height.val>0&&(m=m*100/v.height.val);var b=h(v.width.val-f.w,y,g),w=b.biasDiff,E=b.biasComplementDiff,C=h(v.height.val-f.h,p,m),x=C.biasDiff,T=C.biasComplementDiff;o.autoPadding=d(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(f.w,v.width.val),c.x=(-w+f.x1+f.x2+E)/2,o.autoHeight=Math.max(f.h,v.height.val),c.y=(-x+f.y1+f.y2+T)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},tt=function(e,t){return t==null?e:Ir(e,t.x1,t.y1,t.x2,t.y2)},fa=function(e,t,a){return Tr(e,t,a)},ja=function(e,t,a){if(!t.cy().headless()){var n=t._private,i=n.rstyle,s=i.arrowWidth/2,o=t.pstyle(a+"-arrow-shape").value,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var v=n.arrowBounds=n.arrowBounds||{},f=v[a]=v[a]||{};f.x1=l-s,f.y1=u-s,f.x2=l+s,f.y2=u+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,un(f,1),Ir(e,f.x1,f.y1,f.x2,f.y2)}}},ys=function(e,t,a){if(!t.cy().headless()){var n;a?n=a+"-":n="";var i=t._private,s=i.rstyle,o=t.pstyle(n+"label").strValue;if(o){var l=t.pstyle("text-halign"),u=t.pstyle("text-valign"),v=fa(s,"labelWidth",a),f=fa(s,"labelHeight",a),c=fa(s,"labelX",a),h=fa(s,"labelY",a),d=t.pstyle(n+"text-margin-x").pfValue,y=t.pstyle(n+"text-margin-y").pfValue,g=t.isEdge(),p=t.pstyle(n+"text-rotation"),m=t.pstyle("text-outline-width").pfValue,b=t.pstyle("text-border-width").pfValue,w=b/2,E=t.pstyle("text-background-padding").pfValue,C=2,x=f,T=v,k=T/2,D=x/2,B,P,A,R;if(g)B=c-k,P=c+k,A=h-D,R=h+D;else{switch(l.value){case"left":B=c-T,P=c;break;case"center":B=c-k,P=c+k;break;case"right":B=c,P=c+T;break}switch(u.value){case"top":A=h-x,R=h;break;case"center":A=h-D,R=h+D;break;case"bottom":A=h,R=h+x;break}}var L=d-Math.max(m,w)-E-C,I=d+Math.max(m,w)+E+C,M=y-Math.max(m,w)-E-C,O=y+Math.max(m,w)+E+C;B+=L,P+=I,A+=M,R+=O;var V=a||"main",G=i.labelBounds,N=G[V]=G[V]||{};N.x1=B,N.y1=A,N.x2=P,N.y2=R,N.w=P-B,N.h=R-A,N.leftPad=L,N.rightPad=I,N.topPad=M,N.botPad=O;var F=g&&p.strValue==="autorotate",U=p.pfValue!=null&&p.pfValue!==0;if(F||U){var Q=F?fa(i.rstyle,"labelAngle",a):p.pfValue,K=Math.cos(Q),j=Math.sin(Q),re=(B+P)/2,ne=(A+R)/2;if(!g){switch(l.value){case"left":re=P;break;case"right":re=B;break}switch(u.value){case"top":ne=R;break;case"bottom":ne=A;break}}var J=function(Ce,we){return Ce=Ce-re,we=we-ne,{x:Ce*K-we*j+re,y:Ce*j+we*K+ne}},z=J(B,A),q=J(B,R),H=J(P,A),X=J(P,R);B=Math.min(z.x,q.x,H.x,X.x),P=Math.max(z.x,q.x,H.x,X.x),A=Math.min(z.y,q.y,H.y,X.y),R=Math.max(z.y,q.y,H.y,X.y)}var te=V+"Rot",ce=G[te]=G[te]||{};ce.x1=B,ce.y1=A,ce.x2=P,ce.y2=R,ce.w=P-B,ce.h=R-A,Ir(e,B,A,P,R),Ir(i.labelBounds.all,B,A,P,R)}return e}},ol=function(e,t){if(!t.cy().headless()){var a=t.pstyle("outline-opacity").value,n=t.pstyle("outline-width").value,i=t.pstyle("outline-offset").value,s=n+i;Wv(e,t,a,s,"outside",s/2)}},Wv=function(e,t,a,n,i,s){if(!(a===0||n<=0||i==="inside")){var o=t.cy(),l=t.pstyle("shape").value,u=o.renderer().nodeShapes[l],v=t.position(),f=v.x,c=v.y,h=t.width(),d=t.height();if(u.hasMiterBounds){i==="center"&&(n/=2);var y=u.miterBounds(f,c,h,d,n);tt(e,y)}else s!=null&&s>0&&ln(e,[s,s,s,s])}},Wg=function(e,t){if(!t.cy().headless()){var a=t.pstyle("border-opacity").value,n=t.pstyle("border-width").pfValue,i=t.pstyle("border-position").value;Wv(e,t,a,n,i)}},$g=function(e,t){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=wr(),o=e._private,l=e.isNode(),u=e.isEdge(),v,f,c,h,d,y,g=o.rstyle,p=l&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(Ae){return Ae.pstyle("display").value!=="none"},b=!n||m(e)&&(!u||m(e.source())&&m(e.target()));if(b){var w=0,E=0;n&&t.includeOverlays&&(w=e.pstyle("overlay-opacity").value,w!==0&&(E=e.pstyle("overlay-padding").value));var C=0,x=0;n&&t.includeUnderlays&&(C=e.pstyle("underlay-opacity").value,C!==0&&(x=e.pstyle("underlay-padding").value));var T=Math.max(E,x),k=0,D=0;if(n&&(k=e.pstyle("width").pfValue,D=k/2),l&&t.includeNodes){var B=e.position();d=B.x,y=B.y;var P=e.outerWidth(),A=P/2,R=e.outerHeight(),L=R/2;v=d-A,f=d+A,c=y-L,h=y+L,Ir(s,v,c,f,h),n&&ol(s,e),n&&t.includeOutlines&&!i&&ol(s,e),n&&Wg(s,e)}else if(u&&t.includeEdges)if(n&&!i){var I=e.pstyle("curve-style").strValue;if(v=Math.min(g.srcX,g.midX,g.tgtX),f=Math.max(g.srcX,g.midX,g.tgtX),c=Math.min(g.srcY,g.midY,g.tgtY),h=Math.max(g.srcY,g.midY,g.tgtY),v-=D,f+=D,c-=D,h+=D,Ir(s,v,c,f,h),I==="haystack"){var M=g.haystackPts;if(M&&M.length===2){if(v=M[0].x,c=M[0].y,f=M[1].x,h=M[1].y,v>f){var O=v;v=f,f=O}if(c>h){var V=c;c=h,h=V}Ir(s,v-D,c-D,f+D,h+D)}}else if(I==="bezier"||I==="unbundled-bezier"||at(I,"segments")||at(I,"taxi")){var G;switch(I){case"bezier":case"unbundled-bezier":G=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=g.linePts;break}if(G!=null)for(var N=0;Nf){var re=v;v=f,f=re}if(c>h){var ne=c;c=h,h=ne}v-=D,f+=D,c-=D,h+=D,Ir(s,v,c,f,h)}if(n&&t.includeEdges&&u&&(ja(s,e,"mid-source"),ja(s,e,"mid-target"),ja(s,e,"source"),ja(s,e,"target")),n){var J=e.pstyle("ghost").value==="yes";if(J){var z=e.pstyle("ghost-offset-x").pfValue,q=e.pstyle("ghost-offset-y").pfValue;Ir(s,s.x1+z,s.y1+q,s.x2+z,s.y2+q)}}var H=o.bodyBounds=o.bodyBounds||{};Uo(H,s),ln(H,p),un(H,1),n&&(v=s.x1,f=s.x2,c=s.y1,h=s.y2,Ir(s,v-T,c-T,f+T,h+T));var X=o.overlayBounds=o.overlayBounds||{};Uo(X,s),ln(X,p),un(X,1);var te=o.labelBounds=o.labelBounds||{};te.all!=null?kd(te.all):te.all=wr(),n&&t.includeLabels&&(t.includeMainLabels&&ys(s,e,null),u&&(t.includeSourceLabels&&ys(s,e,"source"),t.includeTargetLabels&&ys(s,e,"target")))}return s.x1=Ar(s.x1),s.y1=Ar(s.y1),s.x2=Ar(s.x2),s.y2=Ar(s.y2),s.w=Ar(s.x2-s.x1),s.h=Ar(s.y2-s.y1),s.w>0&&s.h>0&&b&&(ln(s,p),un(s,1)),s},$v=function(e){var t=0,a=function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:sp,e=arguments.length>1?arguments[1]:void 0,t=0;t=0;o--)s(o);return this};dt.removeAllListeners=function(){return this.removeListener("*")};dt.emit=dt.trigger=function(r,e,t){var a=this.listeners,n=a.length;return this.emitting++,_e(e)||(e=[e]),op(this,function(i,s){t!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:t}],n=a.length);for(var o=function(){var v=a[l];if(v.type===s.type&&(!v.namespace||v.namespace===s.namespace||v.namespace===ip)&&i.eventMatches(i.context,v,s)){var f=[s];e!=null&&Qc(f,e),i.beforeEmit(i.context,v,s),v.conf&&v.conf.one&&(i.listeners=i.listeners.filter(function(d){return d!==v}));var c=i.callbackContext(i.context,v,s),h=v.callback.apply(c,f);i.afterEmit(i.context,v,s),h===!1&&(s.stopPropagation(),s.preventDefault())}},l=0;l1&&!s){var o=this.length-1,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,a=e._private.data.id,n=t.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&ge(e)){var a=e;e=t.mutableElements().filter(a)}for(var n=0;n=0;t--){var a=this[t];e(a)&&this.unmergeAt(t)}return this},map:function(e,t){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},min:function(e,t){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":ar(Symbol))!=e&&ar(Symbol.iterator)!=e;t&&(Sn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return Jl({next:function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){a._private.styleDirty&&(a._private.styleDirty=!1,n.style().apply(a));var i=a._private.style[e];return i??(t?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var a=t.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];if(a)return t.style().getRenderedStyle(a,e)},style:function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(Le(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(ge(e))if(t===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,t,n),this.emitAndNotify("style");else if(e===void 0){var l=this[0];return l?i.getRawStyle(l):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=!1,n=t.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(v[0]),e.push(o[0])}return this.spawn(e,!0).filter(r)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});gr.neighbourhood=gr.neighborhood;gr.closedNeighbourhood=gr.closedNeighborhood;gr.openNeighbourhood=gr.openNeighborhood;be(gr,{source:Rr(function(e){var t=this[0],a;return t&&(a=t._private.source||t.cy().collection()),a&&e?a.filter(e):a},"source"),target:Rr(function(e){var t=this[0],a;return t&&(a=t._private.target||t.cy().collection()),a&&e?a.filter(e):a},"target"),sources:ml({attr:"source"}),targets:ml({attr:"target"})});function ml(r){return function(t){for(var a=[],n=0;n0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});gr.componentsOf=gr.components;var fr=function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){$e("A collection must have a reference to the core");return}var i=new Yr,s=!1;if(!t)t=[];else if(t.length>0&&Le(t[0])&&!Ia(t[0])){s=!0;for(var o=[],l=new ra,u=0,v=t.length;u0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=t.cy(),n=a._private,i=[],s=[],o,l=0,u=t.length;l0){for(var V=o.length===t.length?t:new fr(a,o),G=0;G0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=[],n={},i=t._private.cy;function s(R){for(var L=R._private.edges,I=0;I0&&(r?B.emitAndNotify("remove"):e&&B.emit("remove"));for(var P=0;P0?P=R:B=R;while(Math.abs(A)>s&&++L=i?m(D,L):I===0?L:w(D,B,B+u)}var C=!1;function x(){C=!0,(r!==e||t!==a)&&b()}var T=function(B){return C||x(),r===e&&t===a?B:B===0?0:B===1?1:g(E(B),e,a)};T.getControlPoints=function(){return[{x:r,y:e},{x:t,y:a}]};var k="generateBezier("+[r,e,t,a]+")";return T.toString=function(){return k},T}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var mp=(function(){function r(a){return-a.tension*a.x-a.friction*a.v}function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:r(s)}}function t(a,n){var i={dx:a.v,dv:r(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),v=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+v*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,v=1/1e4,f=16/1e3,c,h,d;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c?(u=a(n,i),h=u/s*f):h=f;d=t(d||o,h),l.push(1+d.x),u+=16,Math.abs(d.x)>v&&Math.abs(d.v)>v;);return c?function(y){return l[y*(l.length-1)|0]}:u}})(),Ge=function(e,t,a,n){var i=yp(e,t,a,n);return function(s,o,l){return s+(o-s)*i(l)}},cn={linear:function(e,t,a){return e+(t-e)*a},ease:Ge(.25,.1,.25,1),"ease-in":Ge(.42,0,1,1),"ease-out":Ge(0,0,.58,1),"ease-in-out":Ge(.42,0,.58,1),"ease-in-sine":Ge(.47,0,.745,.715),"ease-out-sine":Ge(.39,.575,.565,1),"ease-in-out-sine":Ge(.445,.05,.55,.95),"ease-in-quad":Ge(.55,.085,.68,.53),"ease-out-quad":Ge(.25,.46,.45,.94),"ease-in-out-quad":Ge(.455,.03,.515,.955),"ease-in-cubic":Ge(.55,.055,.675,.19),"ease-out-cubic":Ge(.215,.61,.355,1),"ease-in-out-cubic":Ge(.645,.045,.355,1),"ease-in-quart":Ge(.895,.03,.685,.22),"ease-out-quart":Ge(.165,.84,.44,1),"ease-in-out-quart":Ge(.77,0,.175,1),"ease-in-quint":Ge(.755,.05,.855,.06),"ease-out-quint":Ge(.23,1,.32,1),"ease-in-out-quint":Ge(.86,0,.07,1),"ease-in-expo":Ge(.95,.05,.795,.035),"ease-out-expo":Ge(.19,1,.22,1),"ease-in-out-expo":Ge(1,0,0,1),"ease-in-circ":Ge(.6,.04,.98,.335),"ease-out-circ":Ge(.075,.82,.165,1),"ease-in-out-circ":Ge(.785,.135,.15,.86),spring:function(e,t,a){if(a===0)return cn.linear;var n=mp(e,t,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Ge};function xl(r,e,t,a,n){if(a===1||e===t)return t;var i=n(e,t,a);return r==null||((r.roundValue||r.color)&&(i=Math.round(i)),r.min!==void 0&&(i=Math.max(i,r.min)),r.max!==void 0&&(i=Math.min(i,r.max))),i}function El(r,e){return r.pfValue!=null||r.value!=null?r.pfValue!=null&&(e==null||e.type.units!=="%")?r.pfValue:r.value:r}function zt(r,e,t,a,n){var i=n!=null?n.type:null;t<0?t=0:t>1&&(t=1);var s=El(r,n),o=El(e,n);if(ae(s)&&ae(o))return xl(i,s,o,t,a);if(_e(s)&&_e(o)){for(var l=[],u=0;u0?(h==="spring"&&d.push(s.duration),s.easingImpl=cn[h].apply(null,d)):s.easingImpl=cn[h]}var y=s.easingImpl,g;if(s.duration===0?g=1:g=(t-l)/s.duration,s.applying&&(g=s.progress),g<0?g=0:g>1&&(g=1),s.delay==null){var p=s.startPosition,m=s.position;if(m&&n&&!r.locked()){var b={};da(p.x,m.x)&&(b.x=zt(p.x,m.x,g,y)),da(p.y,m.y)&&(b.y=zt(p.y,m.y,g,y)),r.position(b)}var w=s.startPan,E=s.pan,C=i.pan,x=E!=null&&a;x&&(da(w.x,E.x)&&(C.x=zt(w.x,E.x,g,y)),da(w.y,E.y)&&(C.y=zt(w.y,E.y,g,y)),r.emit("pan"));var T=s.startZoom,k=s.zoom,D=k!=null&&a;D&&(da(T,k)&&(i.zoom=ka(i.minZoom,zt(T,k,g,y),i.maxZoom)),r.emit("zoom")),(x||D)&&r.emit("viewport");var B=s.style;if(B&&B.length>0&&n){for(var P=0;P=0;x--){var T=C[x];T()}C.splice(0,C.length)},m=h.length-1;m>=0;m--){var b=h[m],w=b._private;if(w.stopped){h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||wp(v,b,r),bp(v,b,r,f),w.applying&&(w.applying=!1),p(w.frames),w.step!=null&&w.step(r),b.completed()&&(h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.completes)),y=!0)}return!f&&h.length===0&&d.length===0&&a.push(v),y}for(var i=!1,s=0;s0?e.notify("draw",t):e.notify("draw")),t.unmerge(a),e.emit("step")}var xp={animate:Fe.animate(),animation:Fe.animation(),animated:Fe.animated(),clearQueue:Fe.clearQueue(),delay:Fe.delay(),delayAnimation:Fe.delayAnimation(),stop:Fe.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&wn(function(i){Cl(i,e),t()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){Cl(s,e)},a.beforeRenderPriorities.animations):t()}},Ep={qualifierCompare:function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},eventMatches:function(e,t,a){var n=t.qualifier;return n!=null?e!==a.target&&Ia(a.target)&&n.matches(a.target):!0},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,a){return t.qualifier!=null?a.target:e}},tn=function(e){return ge(e)?new ft(e):e},tf={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Gn(Ep,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,a){return this.emitter().on(e,tn(t),a),this},removeListener:function(e,t,a){return this.emitter().removeListener(e,tn(t),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,a){return this.emitter().one(e,tn(t),a),this},once:function(e,t,a){return this.emitter().one(e,tn(t),a),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fe.eventAliasesOn(tf);var zs={png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)},jpg:function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)}};zs.jpeg=zs.jpg;var dn={layout:function(e){var t=this;if(e==null){$e("Layout options must be specified to make a layout");return}if(e.name==null){$e("A `name` must be specified to make a layout");return}var a=e.name,n=t.extension("layout",a);if(n==null){$e("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;ge(e.eles)?i=t.$(e.eles):i=e.eles!=null?e.eles:t.$();var s=new n(be({},e,{cy:t,eles:i}));return s}};dn.createLayout=dn.makeLayout=dn.layout;var Cp={notify:function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();t!=null&&n.merge(t);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,t)}},notifications:function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];n.empty()?t.notify(a):t.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Fs.invalidateDimensions=Fs.resize;var hn={collection:function(e,t){return ge(e)?this.$(e):Dr(e)?e.collection():_e(e)?(t||(t={}),new fr(this,e,t.unique,t.removed)):new fr(this)},nodes:function(e){var t=this.$(function(a){return a.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(a){return a.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};hn.elements=hn.filter=hn.$;var ur={},wa="t",Sp="f";ur.apply=function(r){for(var e=this,t=e._private,a=t.cy,n=a.collection(),i=0;i0;if(c||f&&h){var d=void 0;c&&h||c?d=u.properties:h&&(d=u.mappedProperties);for(var y=0;y1&&(w=1),o.color){var C=a.valueMin[0],x=a.valueMax[0],T=a.valueMin[1],k=a.valueMax[1],D=a.valueMin[2],B=a.valueMax[2],P=a.valueMin[3]==null?1:a.valueMin[3],A=a.valueMax[3]==null?1:a.valueMax[3],R=[Math.round(C+(x-C)*w),Math.round(T+(k-T)*w),Math.round(D+(B-D)*w),Math.round(P+(A-P)*w)];i={bypass:a.bypass,name:a.name,value:R,strValue:"rgb("+R[0]+", "+R[1]+", "+R[2]+")"}}else if(o.number){var L=a.valueMin+(a.valueMax-a.valueMin)*w;i=this.parse(a.name,L,a.bypass,c)}else return!1;if(!i)return y(),!1;i.mapping=a,a=i;break}case s.data:{for(var I=a.field.split("."),M=f.data,O=0;O0&&i>0){for(var o={},l=!1,u=0;u0?r.delayAnimation(s).play().promise().then(b):b()}).then(function(){return r.animation({style:o,duration:i,easing:r.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){t.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1)};ur.checkTrigger=function(r,e,t,a,n,i){var s=this.properties[e],o=n(s);r.removed()||o!=null&&o(t,a,r)&&i(s)};ur.checkZOrderTrigger=function(r,e,t,a){var n=this;this.checkTrigger(r,e,t,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",r)})};ur.checkBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBounds},function(n){r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache()})};ur.checkConnectedEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfConnectedEdges},function(n){r.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ur.checkParallelEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfParallelEdges},function(n){r.parallelEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};ur.checkTriggers=function(r,e,t,a){r.dirtyStyleCache(),this.checkZOrderTrigger(r,e,t,a),this.checkBoundsTrigger(r,e,t,a),this.checkConnectedEdgesBoundsTrigger(r,e,t,a),this.checkParallelEdgesBoundsTrigger(r,e,t,a)};var _a={};_a.applyBypass=function(r,e,t,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(t!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function l(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=a.match(/^\s*$/);if(u)break;var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Ve("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new ft(f);if(c.invalid){Ve("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}}var h=v[2],d=!1;i=h;for(var y=[];;){var g=i.match(/^\s*$/);if(g)break;var p=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!p){Ve("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}s=p[0];var m=p[1],b=p[2],w=e.properties[m];if(!w){Ve("Skipping property: Invalid property name in: "+s),l();continue}var E=t.parse(m,b);if(!E){Ve("Skipping property: Invalid property definition in: "+s),l();continue}y.push({name:m,val:b}),l()}if(d){o();break}t.selector(f);for(var C=0;C=7&&e[0]==="d"&&(v=new RegExp(o.data.regex).exec(e))){if(t)return!1;var c=o.data;return{name:r,value:v,strValue:""+e,mapped:c,field:v[1],bypass:t}}else if(e.length>=10&&e[0]==="m"&&(f=new RegExp(o.mapData.regex).exec(e))){if(t||u.multiple)return!1;var h=o.mapData;if(!(u.color||u.number))return!1;var d=this.parse(r,f[4]);if(!d||d.mapped)return!1;var y=this.parse(r,f[5]);if(!y||y.mapped)return!1;if(d.pfValue===y.pfValue||d.strValue===y.strValue)return Ve("`"+r+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+r+": "+d.strValue+"`"),this.parse(r,d.strValue);if(u.color){var g=d.value,p=y.value,m=g[0]===p[0]&&g[1]===p[1]&&g[2]===p[2]&&(g[3]===p[3]||(g[3]==null||g[3]===1)&&(p[3]==null||p[3]===1));if(m)return!1}return{name:r,value:f,strValue:""+e,mapped:h,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:d.value,valueMax:y.value,bypass:t}}}if(u.multiple&&a!=="multiple"){var b;if(l?b=e.split(/\s+/):_e(e)?b=e:b=[e],u.evenMultiple&&b.length%2!==0)return null;for(var w=[],E=[],C=[],x="",T=!1,k=0;k0?" ":"")+D.strValue}return u.validate&&!u.validate(w,E)?null:u.singleEnum&&T?w.length===1&&ge(w[0])?{name:r,value:w[0],strValue:w[0],bypass:t}:null:{name:r,value:w,pfValue:C,strValue:x,bypass:t,units:E}}var B=function(){for(var J=0;Ju.max||u.strictMax&&e===u.max))return null;var I={name:r,value:e,strValue:""+e+(P||""),units:P,bypass:t};return u.unitless||P!=="px"&&P!=="em"?I.pfValue=e:I.pfValue=P==="px"||!P?e:this.getEmSizeInPixels()*e,(P==="ms"||P==="s")&&(I.pfValue=P==="ms"?e:1e3*e),(P==="deg"||P==="rad")&&(I.pfValue=P==="rad"?e:Ed(e)),P==="%"&&(I.pfValue=e/100),I}else if(u.propList){var M=[],O=""+e;if(O!=="none"){for(var V=O.split(/\s*,\s*|\s+/),G=0;G0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*t)/a.w,(o-2*t)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l=a.minZoom&&(a.maxZoom=t),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t=this._private,a=t.pan,n=t.zoom,i,s,o=!1;if(t.zoomingEnabled||(o=!0),ae(e)?s=e:Le(e)&&(s=e.level,e.position!=null?i=On(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!t.panningEnabled&&(o=!0)),s=s>t.maxZoom?t.maxZoom:s,s=st.maxZoom||!t.zoomingEnabled?s=!0:(t.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var u=e.pan;ae(u.x)&&(t.pan.x=u.x,o=!1),ae(u.y)&&(t.pan.y=u.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(ge(e)){var a=e;e=this.mutableElements().filter(a)}else Dr(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();t=t===void 0?this._private.zoom:t;var o={x:(i-t*(n.x1+n.x2))/2,y:(s-t*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,t=e.container,a=this;return e.sizeCache=e.sizeCache||(t?(function(){var n=a.window().getComputedStyle(t),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:t.clientWidth-i("padding-left")-i("padding-right"),height:t.clientHeight-i("padding-top")-i("padding-bottom")}})():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/t,x2:(a.x2-e.x)/t,y1:(a.y1-e.y)/t,y2:(a.y2-e.y)/t};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};At.centre=At.center;At.autolockNodes=At.autolock;At.autoungrabifyNodes=At.autoungrabify;var Aa={data:Fe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Aa.attr=Aa.data;Aa.removeAttr=Aa.removeData;var Ra=function(e){var t=this;e=be({},e);var a=e.container;a&&!bn(a)&&bn(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=t;var s=rr!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=be({name:s?"grid":"null"},o.layout),o.renderer=be({name:s?"canvas":"null"},o.renderer);var l=function(d,y,g){return y!==void 0?y:g!==void 0?g:d},u=this._private={container:a,ready:!1,options:o,elements:new fr(this),listeners:[],aniEles:new fr(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ae(o.zoom)?o.zoom:1,pan:{x:Le(o.pan)&&ae(o.pan.x)?o.pan.x:0,y:Le(o.pan)&&ae(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var v=function(d,y){var g=d.some(pc);if(g)return ta.all(d).then(y);y(d)};u.styleEnabled&&t.setStyle([]);var f=be({},o,o.renderer);t.initRenderer(f);var c=function(d,y,g){t.notifications(!1);var p=t.mutableElements();p.length>0&&p.remove(),d!=null&&(Le(d)||_e(d))&&t.add(d),t.one("layoutready",function(b){t.notifications(!0),t.emit(b),t.one("load",y),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",g),t.emit("done")});var m=be({},t._private.options.layout);m.eles=t.elements(),t.layout(m).run()};v([o.style,o.elements],function(h){var d=h[0],y=h[1];u.styleEnabled&&t.style().append(d),c(y,function(){t.startAnimationLoop(),u.ready=!0,Ue(o.ready)&&t.on("ready",o.ready);for(var g=0;g0,o=!!r.boundingBox,l=wr(o?r.boundingBox:structuredClone(e.extent())),u;if(Dr(r.roots))u=r.roots;else if(_e(r.roots)){for(var v=[],f=0;f0;){var R=A(),L=k(R,B);if(L)R.outgoers().filter(function(ye){return ye.isNode()&&t.has(ye)}).forEach(P);else if(L===null){Ve("Detected double maximal shift for node `"+R.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var I=0;if(r.avoidOverlap)for(var M=0;M0&&p[0].length<=3?pe/2:0),Re=2*Math.PI/p[he].length*Ee;return he===0&&p[0].length===1&&(Se=1),{x:H.x+Se*Math.cos(Re),y:H.y+Se*Math.sin(Re)}}else{var Oe=p[he].length,Ne=Math.max(Oe===1?0:o?(l.w-r.padding*2-X.w)/((r.grid?ce:Oe)-1):(l.w-r.padding*2-X.w)/((r.grid?ce:Oe)+1),I),ze={x:H.x+(Ee+1-(Oe+1)/2)*Ne,y:H.y+(he+1-(K+1)/2)*te};return ze}},Ce={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(Ce).indexOf(r.direction)===-1&&$e("Invalid direction '".concat(r.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(Ce).join(", ")));var we=function(ie){return $c(Ae(ie),l,Ce[r.direction])};return t.nodes().layoutPositions(this,r,we),this};var Ap={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function nf(r){this.options=be({},Ap,r)}nf.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),v,f=0,c=0;c1&&e.avoidOverlap){f*=1.75;var p=Math.cos(u)-Math.cos(0),m=Math.sin(u)-Math.sin(0),b=Math.sqrt(f*f/(p*p+m*m));v=Math.max(b,v)}var w=function(C,x){var T=e.startAngle+x*u*(n?1:-1),k=v*Math.cos(T),D=v*Math.sin(T),B={x:o.x+k,y:o.y+D};return B};return a.nodes().layoutPositions(this,e,w),this};var Rp={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function sf(r){this.options=be({},Rp,r)}sf.prototype.run=function(){for(var r=this.options,e=r,t=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=r.cy,n=e.eles,i=n.nodes().not(":parent"),s=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=[],u=0,v=0;v0){var E=Math.abs(m[0].value-w.value);E>=g&&(m=[],p.push(m))}m.push(w)}var C=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=p.length>0&&p[0].length>1,T=Math.min(s.w,s.h)/2-C,k=T/(p.length+x?1:0);C=Math.min(C,k)}for(var D=0,B=0;B1&&e.avoidOverlap){var L=Math.cos(R)-Math.cos(0),I=Math.sin(R)-Math.sin(0),M=Math.sqrt(C*C/(L*L+I*I));D=Math.max(M,D)}P.r=D,D+=C}if(e.equidistant){for(var O=0,V=0,G=0;G=r.numIter||(Fp(a,r),a.temperature=a.temperature*r.coolingFactor,a.temperature=r.animationThreshold&&i(),wn(v)}};v()}else{for(;u;)u=s(l),l++;kl(a,r),o()}return this};Kn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Kn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Lp=function(e,t,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=wr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},l=a.eles.components(),u={},v=0;v0){o.graphSet.push(T);for(var v=0;vn.count?0:n.graph},of=function(e,t,a,n){var i=n.graphSet[a];if(-10)var f=n.nodeOverlap*v,c=Math.sqrt(o*o+l*l),h=f*o/c,d=f*l/c;else var y=Dn(e,o,l),g=Dn(t,-1*o,-1*l),p=g.x-y.x,m=g.y-y.y,b=p*p+m*m,c=Math.sqrt(b),f=(e.nodeRepulsion+t.nodeRepulsion)/b,h=f*p/c,d=f*m/c;e.isLocked||(e.offsetX-=h,e.offsetY-=d),t.isLocked||(t.offsetX+=h,t.offsetY+=d)}},_p=function(e,t,a,n){if(a>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(n>0)var s=e.maxY-t.minY;else var s=t.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},Dn=function(e,t,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/t,u=s/o,v={};return t===0&&0a?(v.x=n,v.y=i+s/2,v):0t&&-1*u<=l&&l<=u?(v.x=n-o/2,v.y=i-o*a/2/t,v):0=u)?(v.x=n+s*t/2/a,v.y=i+s/2,v):(0>a&&(l<=-1*u||l>=u)&&(v.x=n-s*t/2/a,v.y=i-s/2),v)},Gp=function(e,t){for(var a=0;aa){var g=t.gravity*h/y,p=t.gravity*d/y;c.offsetX+=g,c.offsetY+=p}}}}},Wp=function(e,t){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],l=e.layoutNodes[o],u=l.children;if(0a)var i={x:a*e/n,y:a*t/n};else var i={x:e,y:t};return i},lf=function(e,t){var a=e.parentId;if(a!=null){var n=t.layoutNodes[t.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopp&&(d+=g+t.componentSpacing,h=0,y=0,g=0)}}},Kp={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function vf(r){this.options=be({},Kp,r)}vf.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=wr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(U){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),v=function(Q){if(Q==null)return Math.min(l,u);var K=Math.min(l,u);K==l?l=Q:u=Q},f=function(Q){if(Q==null)return Math.max(l,u);var K=Math.max(l,u);K==l?l=Q:u=Q},c=e.rows,h=e.cols!=null?e.cols:e.columns;if(c!=null&&h!=null)l=c,u=h;else if(c!=null&&h==null)l=c,u=Math.ceil(s/l);else if(c==null&&h!=null)u=h,l=Math.ceil(s/u);else if(u*l>s){var d=v(),y=f();(d-1)*y>=s?v(d-1):(y-1)*d>=s&&f(y-1)}else for(;u*l=s?f(p+1):v(g+1)}var m=i.w/u,b=i.h/l;if(e.condense&&(m=0,b=0),e.avoidOverlap)for(var w=0;w=u&&(L=0,R++)},M={},O=0;O(L=Nd(r,e,I[M],I[M+1],I[M+2],I[M+3])))return g(x,L),!0}else if(k.edgeType==="bezier"||k.edgeType==="multibezier"||k.edgeType==="self"||k.edgeType==="compound"){for(var I=k.allpts,M=0;M+5(L=Od(r,e,I[M],I[M+1],I[M+2],I[M+3],I[M+4],I[M+5])))return g(x,L),!0}for(var O=O||T.source,V=V||T.target,G=n.getArrowWidth(D,B),N=[{name:"source",x:k.arrowStartX,y:k.arrowStartY,angle:k.srcArrowAngle},{name:"target",x:k.arrowEndX,y:k.arrowEndY,angle:k.tgtArrowAngle},{name:"mid-source",x:k.midX,y:k.midY,angle:k.midsrcArrowAngle},{name:"mid-target",x:k.midX,y:k.midY,angle:k.midtgtArrowAngle}],M=0;M0&&(p(O),p(V))}function b(x,T,k){return Tr(x,T,k)}function w(x,T){var k=x._private,D=c,B;T?B=T+"-":B="",x.boundingBox();var P=k.labelBounds[T||"main"],A=x.pstyle(B+"label").value,R=x.pstyle("text-events").strValue==="yes";if(!(!R||!A)){var L=b(k.rscratch,"labelX",T),I=b(k.rscratch,"labelY",T),M=b(k.rscratch,"labelAngle",T),O=x.pstyle(B+"text-margin-x").pfValue,V=x.pstyle(B+"text-margin-y").pfValue,G=P.x1-D-O,N=P.x2+D-O,F=P.y1-D-V,U=P.y2+D-V;if(M){var Q=Math.cos(M),K=Math.sin(M),j=function(X,te){return X=X-L,te=te-I,{x:X*Q-te*K+L,y:X*K+te*Q+I}},re=j(G,F),ne=j(G,U),J=j(N,F),z=j(N,U),q=[re.x+O,re.y+V,J.x+O,J.y+V,z.x+O,z.y+V,ne.x+O,ne.y+V];if(Sr(r,e,q))return g(x),!0}else if(nt(P,r,e))return g(x),!0}}for(var E=s.length-1;E>=0;E--){var C=s[E];C.isNode()?p(C)||w(C):m(C)||w(C)||w(C,"source")||w(C,"target")}return o};Mt.getAllInBox=function(r,e,t,a){var n=this.getCachedZSortedEles().interactive,i=this.cy.zoom(),s=2/i,o=[],l=Math.min(r,t),u=Math.max(r,t),v=Math.min(e,a),f=Math.max(e,a);r=l,t=u,e=v,a=f;var c=wr({x1:r,y1:e,x2:t,y2:a}),h=[{x:c.x1,y:c.y1},{x:c.x2,y:c.y1},{x:c.x2,y:c.y2},{x:c.x1,y:c.y2}],d=[[h[0],h[1]],[h[1],h[2]],[h[2],h[3]],[h[3],h[0]]];function y(X,te,ce){return Tr(X,te,ce)}function g(X,te){var ce=X._private,Ae=s,Ce="";X.boundingBox();var we=ce.labelBounds.main;if(!we)return null;var ye=y(ce.rscratch,"labelX",te),ie=y(ce.rscratch,"labelY",te),de=y(ce.rscratch,"labelAngle",te),he=X.pstyle(Ce+"text-margin-x").pfValue,Ee=X.pstyle(Ce+"text-margin-y").pfValue,pe=we.x1-Ae-he,Se=we.x2+Ae-he,Re=we.y1-Ae-Ee,Oe=we.y2+Ae-Ee;if(de){var Ne=Math.cos(de),ze=Math.sin(de),xe=function(Y,S){return Y=Y-ye,S=S-ie,{x:Y*Ne-S*ze+ye,y:Y*ze+S*Ne+ie}};return[xe(pe,Re),xe(Se,Re),xe(Se,Oe),xe(pe,Oe)]}else return[{x:pe,y:Re},{x:Se,y:Re},{x:Se,y:Oe},{x:pe,y:Oe}]}function p(X,te,ce,Ae){function Ce(we,ye,ie){return(ie.y-we.y)*(ye.x-we.x)>(ye.y-we.y)*(ie.x-we.x)}return Ce(X,ce,Ae)!==Ce(te,ce,Ae)&&Ce(X,te,ce)!==Ce(X,te,Ae)}for(var m=0;m0?-(Math.PI-e.ang):Math.PI+e.ang},jp=function(e,t,a,n,i){if(e!==Rl?Ml(t,e,Vr):Jp(Pr,Vr),Ml(t,a,Pr),Pl=Vr.nx*Pr.ny-Vr.ny*Pr.nx,Al=Vr.nx*Pr.nx-Vr.ny*-Pr.ny,Ur=Math.asin(Math.max(-1,Math.min(1,Pl))),Math.abs(Ur)<1e-6){Vs=t.x,qs=t.y,Ct=Vt=0;return}St=1,gn=!1,Al<0?Ur<0?Ur=Math.PI+Ur:(Ur=Math.PI-Ur,St=-1,gn=!0):Ur>0&&(St=-1,gn=!0),t.radius!==void 0?Vt=t.radius:Vt=n,wt=Ur/2,an=Math.min(Vr.len/2,Pr.len/2),i?(zr=Math.abs(Math.cos(wt)*Vt/Math.sin(wt)),zr>an?(zr=an,Ct=Math.abs(zr*Math.sin(wt)/Math.cos(wt))):Ct=Vt):(zr=Math.min(an,Vt),Ct=Math.abs(zr*Math.sin(wt)/Math.cos(wt))),_s=t.x+Pr.nx*zr,Gs=t.y+Pr.ny*zr,Vs=_s-Pr.ny*Ct*St,qs=Gs+Pr.nx*Ct*St,hf=t.x+Vr.nx*zr,gf=t.y+Vr.ny*zr,Rl=t};function pf(r,e){e.radius===0?r.lineTo(e.cx,e.cy):r.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function po(r,e,t,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(jp(r,e,t,a,n),{cx:Vs,cy:qs,radius:Ct,startX:hf,startY:gf,stopX:_s,stopY:Gs,startAngle:Vr.ang+Math.PI/2*St,endAngle:Pr.ang-Math.PI/2*St,counterClockwise:gn})}var Ma=.01,ey=Math.sqrt(2*Ma),yr={};yr.findMidptPtsEtc=function(r,e){var t=e.posPts,a=e.intersectionPts,n=e.vectorNormInverse,i,s=r.pstyle("source-endpoint"),o=r.pstyle("target-endpoint"),l=s.units!=null&&o.units!=null,u=function(E,C,x,T){var k=T-C,D=x-E,B=Math.sqrt(D*D+k*k);return{x:-k/B,y:D/B}},v=r.pstyle("edge-distances").value;switch(v){case"node-position":i=t;break;case"intersection":i=a;break;case"endpoints":{if(l){var f=this.manualEndptToPx(r.source()[0],s),c=Je(f,2),h=c[0],d=c[1],y=this.manualEndptToPx(r.target()[0],o),g=Je(y,2),p=g[0],m=g[1],b={x1:h,y1:d,x2:p,y2:m};n=u(h,d,p,m),i=b}else Ve("Edge ".concat(r.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=a;break}}return{midptPts:i,vectorNormInverse:n}};yr.findHaystackPoints=function(r){for(var e=0;e0?Math.max(S-_,0):Math.min(S+_,0)},A=P(D,T),R=P(B,k),L=!1;m===u?p=Math.abs(A)>Math.abs(R)?n:a:m===l||m===o?(p=a,L=!0):(m===i||m===s)&&(p=n,L=!0);var I=p===a,M=I?R:A,O=I?B:D,V=to(O),G=!1;!(L&&(w||C))&&(m===o&&O<0||m===l&&O>0||m===i&&O>0||m===s&&O<0)&&(V*=-1,M=V*Math.abs(M),G=!0);var N;if(w){var F=E<0?1+E:E;N=F*M}else{var U=E<0?M:0;N=U+E*V}var Q=function(S){return Math.abs(S)=Math.abs(M)},K=Q(N),j=Q(Math.abs(M)-Math.abs(N)),re=K||j;if(re&&!G)if(I){var ne=Math.abs(O)<=c/2,J=Math.abs(D)<=h/2;if(ne){var z=(v.x1+v.x2)/2,q=v.y1,H=v.y2;t.segpts=[z,q,z,H]}else if(J){var X=(v.y1+v.y2)/2,te=v.x1,ce=v.x2;t.segpts=[te,X,ce,X]}else t.segpts=[v.x1,v.y2]}else{var Ae=Math.abs(O)<=f/2,Ce=Math.abs(B)<=d/2;if(Ae){var we=(v.y1+v.y2)/2,ye=v.x1,ie=v.x2;t.segpts=[ye,we,ie,we]}else if(Ce){var de=(v.x1+v.x2)/2,he=v.y1,Ee=v.y2;t.segpts=[de,he,de,Ee]}else t.segpts=[v.x2,v.y1]}else if(I){var pe=v.y1+N+(g?c/2*V:0),Se=v.x1,Re=v.x2;t.segpts=[Se,pe,Re,pe]}else{var Oe=v.x1+N+(g?f/2*V:0),Ne=v.y1,ze=v.y2;t.segpts=[Oe,Ne,Oe,ze]}if(t.isRound){var xe=r.pstyle("taxi-radius").value,ue=r.pstyle("radius-type").value[0]==="arc-radius";t.radii=new Array(t.segpts.length/2).fill(xe),t.isArcRadius=new Array(t.segpts.length/2).fill(ue)}};yr.tryToCorrectInvalidPoints=function(r,e){var t=r._private.rscratch;if(t.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,v=e.tgtShape,f=e.srcCornerRadius,c=e.tgtCornerRadius,h=e.srcRs,d=e.tgtRs,y=!ae(t.startX)||!ae(t.startY),g=!ae(t.arrowStartX)||!ae(t.arrowStartY),p=!ae(t.endX)||!ae(t.endY),m=!ae(t.arrowEndX)||!ae(t.arrowEndY),b=3,w=this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth,E=b*w,C=Bt({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.startX,y:t.startY}),x=CO.poolIndex()){var V=M;M=O,O=V}var G=A.srcPos=M.position(),N=A.tgtPos=O.position(),F=A.srcW=M.outerWidth(),U=A.srcH=M.outerHeight(),Q=A.tgtW=O.outerWidth(),K=A.tgtH=O.outerHeight(),j=A.srcShape=t.nodeShapes[e.getNodeShape(M)],re=A.tgtShape=t.nodeShapes[e.getNodeShape(O)],ne=A.srcCornerRadius=M.pstyle("corner-radius").value==="auto"?"auto":M.pstyle("corner-radius").pfValue,J=A.tgtCornerRadius=O.pstyle("corner-radius").value==="auto"?"auto":O.pstyle("corner-radius").pfValue,z=A.tgtRs=O._private.rscratch,q=A.srcRs=M._private.rscratch;A.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var H=0;H=ey||(Re=Math.sqrt(Math.max(Se*Se,Ma)+Math.max(pe*pe,Ma)));var Oe=A.vector={x:Se,y:pe},Ne=A.vectorNorm={x:Oe.x/Re,y:Oe.y/Re},ze={x:-Ne.y,y:Ne.x};A.nodesOverlap=!ae(Re)||re.checkPoint(we[0],we[1],0,Q,K,N.x,N.y,J,z)||j.checkPoint(ie[0],ie[1],0,F,U,G.x,G.y,ne,q),A.vectorNormInverse=ze,R={nodesOverlap:A.nodesOverlap,dirCounts:A.dirCounts,calculatedIntersection:!0,hasBezier:A.hasBezier,hasUnbundled:A.hasUnbundled,eles:A.eles,srcPos:N,srcRs:z,tgtPos:G,tgtRs:q,srcW:Q,srcH:K,tgtW:F,tgtH:U,srcIntn:de,tgtIntn:ye,srcShape:re,tgtShape:j,posPts:{x1:Ee.x2,y1:Ee.y2,x2:Ee.x1,y2:Ee.y1},intersectionPts:{x1:he.x2,y1:he.y2,x2:he.x1,y2:he.y1},vector:{x:-Oe.x,y:-Oe.y},vectorNorm:{x:-Ne.x,y:-Ne.y},vectorNormInverse:{x:-ze.x,y:-ze.y}}}var xe=Ce?R:A;te.nodesOverlap=xe.nodesOverlap,te.srcIntn=xe.srcIntn,te.tgtIntn=xe.tgtIntn,te.isRound=ce.startsWith("round"),n&&(M.isParent()||M.isChild()||O.isParent()||O.isChild())&&(M.parents().anySame(O)||O.parents().anySame(M)||M.same(O)&&M.isParent())?e.findCompoundLoopPoints(X,xe,H,Ae):M===O?e.findLoopPoints(X,xe,H,Ae):ce.endsWith("segments")?e.findSegmentsPoints(X,xe):ce.endsWith("taxi")?e.findTaxiPoints(X,xe):ce==="straight"||!Ae&&A.eles.length%2===1&&H===Math.floor(A.eles.length/2)?e.findStraightEdgePoints(X):e.findBezierPoints(X,xe,H,Ae,Ce),e.findEndpoints(X),e.tryToCorrectInvalidPoints(X,xe),e.checkForInvalidEdgeWarning(X),e.storeAllpts(X),e.storeEdgeProjections(X),e.calculateArrowAngles(X),e.recalculateEdgeLabelProjections(X),e.calculateLabelAngles(X)}},x=0;x0){var we=u,ye=Et(we,Wt(s)),ie=Et(we,Wt(Ce)),de=ye;if(ie2){var he=Et(we,{x:Ce[2],y:Ce[3]});he0){var W=v,$=Et(W,Wt(s)),Z=Et(W,Wt(_)),oe=$;if(Z<$&&(s=[_[0],_[1]],oe=Z),_.length>2){var ee=Et(W,{x:_[2],y:_[3]});ee=d||x){g={cp:w,segment:C};break}}if(g)break}var T=g.cp,k=g.segment,D=(d-p)/k.length,B=k.t1-k.t0,P=h?k.t0+B*D:k.t1-B*D;P=ka(0,P,1),e=Kt(T.p0,T.p1,T.p2,P),c=ty(T.p0,T.p1,T.p2,P);break}case"straight":case"segments":case"haystack":{for(var A=0,R,L,I,M,O=a.allpts.length,V=0;V+3=d));V+=2);var G=d-L,N=G/R;N=ka(0,N,1),e=Td(I,M,N),c=bf(I,M);break}}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,c)}};u("source"),u("target"),this.applyLabelDimensions(r)}};Gr.applyLabelDimensions=function(r){this.applyPrefixedLabelDimensions(r),r.isEdge()&&(this.applyPrefixedLabelDimensions(r,"source"),this.applyPrefixedLabelDimensions(r,"target"))};Gr.applyPrefixedLabelDimensions=function(r,e){var t=r._private,a=this.getLabelText(r,e),n=Dt(a,r._private.labelDimsKey);if(Tr(t.rscratch,"prefixedLabelDimsKey",e)!==n){Kr(t.rscratch,"prefixedLabelDimsKey",e,n);var i=this.calculateLabelDimensions(r,a),s=r.pstyle("line-height").pfValue,o=r.pstyle("text-wrap").strValue,l=Tr(t.rscratch,"labelWrapCachedLines",e)||[],u=o!=="wrap"?1:Math.max(l.length,1),v=i.height/u,f=v*s,c=i.width,h=i.height+(u-1)*(s-1)*v;Kr(t.rstyle,"labelWidth",e,c),Kr(t.rscratch,"labelWidth",e,c),Kr(t.rstyle,"labelHeight",e,h),Kr(t.rscratch,"labelHeight",e,h),Kr(t.rscratch,"labelLineHeight",e,f)}};Gr.getLabelText=function(r,e){var t=r._private,a=e?e+"-":"",n=r.pstyle(a+"label").strValue,i=r.pstyle("text-transform").value,s=function(U,Q){return Q?(Kr(t.rscratch,U,e,Q),Q):Tr(t.rscratch,U,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=r.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="​",v=n.split(` +`),f=r.pstyle("text-max-width").pfValue,c=r.pstyle("text-overflow-wrap").value,h=c==="anywhere",d=[],y=/[\s\u200b]+|$/g,g=0;gf){var E=p.matchAll(y),C="",x=0,T=kr(E),k;try{for(T.s();!(k=T.n()).done;){var D=k.value,B=D[0],P=p.substring(x,D.index);x=D.index+B.length;var A=C.length===0?P:C+P+B,R=this.calculateLabelDimensions(r,A),L=R.width;L<=f?C+=P+B:(C&&d.push(C),C=P+B)}}catch(F){T.e(F)}finally{T.f()}C.match(/^[\s\u200b]+$/)||d.push(C)}else d.push(p)}s("labelWrapCachedLines",d),n=s("labelWrapCachedText",d.join(` +`)),s("labelWrapKey",l)}else if(o==="ellipsis"){var I=r.pstyle("text-max-width").pfValue,M="",O="…",V=!1;if(this.calculateLabelDimensions(r,n).widthI)break;M+=n[G],G===n.length-1&&(V=!0)}return V||(M+=O),M}return n};Gr.getLabelJustification=function(r){var e=r.pstyle("text-justification").strValue,t=r.pstyle("text-halign").strValue;if(e==="auto")if(r.isNode())switch(t){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Gr.calculateLabelDimensions=function(r,e){var t=this,a=t.cy.window(),n=a.document,i=0,s=r.pstyle("font-style").strValue,o=r.pstyle("font-size").pfValue,l=r.pstyle("font-family").strValue,u=r.pstyle("font-weight").strValue,v=this.labelCalcCanvas,f=this.labelCalcCanvasContext;if(!v){v=this.labelCalcCanvas=n.createElement("canvas"),f=this.labelCalcCanvasContext=v.getContext("2d");var c=v.style;c.position="absolute",c.left="-9999px",c.top="-9999px",c.zIndex="-1",c.visibility="hidden",c.pointerEvents="none"}f.font="".concat(s," ").concat(u," ").concat(o,"px ").concat(l);for(var h=0,d=0,y=e.split(` +`),g=0;g1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var l=0;l=r.desktopTapThreshold2}var lr=i(S);je&&(r.hoverData.tapholdCancelled=!0);var jr=function(){var Br=r.hoverData.dragDelta=r.hoverData.dragDelta||[];Br.length===0?(Br.push(Pe[0]),Br.push(Pe[1])):(Br[0]+=Pe[0],Br[1]+=Pe[1])};W=!0,n(De,["mousemove","vmousemove","tapdrag"],S,{x:ee[0],y:ee[1]});var Ze=function(Br){return{originalEvent:S,type:Br,position:{x:ee[0],y:ee[1]}}},Wr=function(){r.data.bgActivePosistion=void 0,r.hoverData.selecting||$.emit(Ze("boxstart")),me[4]=1,r.hoverData.selecting=!0,r.redrawHint("select",!0),r.redraw()};if(r.hoverData.which===3){if(je){var $r=Ze("cxtdrag");fe?fe.emit($r):$.emit($r),r.hoverData.cxtDragged=!0,(!r.hoverData.cxtOver||De!==r.hoverData.cxtOver)&&(r.hoverData.cxtOver&&r.hoverData.cxtOver.emit(Ze("cxtdragout")),r.hoverData.cxtOver=De,De&&De.emit(Ze("cxtdragover")))}}else if(r.hoverData.dragging){if(W=!0,$.panningEnabled()&&$.userPanningEnabled()){var It;if(r.hoverData.justStartedPan){var $a=r.hoverData.mdownPos;It={x:(ee[0]-$a[0])*Z,y:(ee[1]-$a[1])*Z},r.hoverData.justStartedPan=!1}else It={x:Pe[0]*Z,y:Pe[1]*Z};$.panBy(It),$.emit(Ze("dragpan")),r.hoverData.dragged=!0}ee=r.projectIntoViewport(S.clientX,S.clientY)}else if(me[4]==1&&(fe==null||fe.pannable())){if(je){if(!r.hoverData.dragging&&$.boxSelectionEnabled()&&(lr||!$.panningEnabled()||!$.userPanningEnabled()))Wr();else if(!r.hoverData.selecting&&$.panningEnabled()&&$.userPanningEnabled()){var bt=s(fe,r.hoverData.downs);bt&&(r.hoverData.dragging=!0,r.hoverData.justStartedPan=!0,me[4]=0,r.data.bgActivePosistion=Wt(ve),r.redrawHint("select",!0),r.redraw())}fe&&fe.pannable()&&fe.active()&&fe.unactivate()}}else{if(fe&&fe.pannable()&&fe.active()&&fe.unactivate(),(!fe||!fe.grabbed())&&De!=Te&&(Te&&n(Te,["mouseout","tapdragout"],S,{x:ee[0],y:ee[1]}),De&&n(De,["mouseover","tapdragover"],S,{x:ee[0],y:ee[1]}),r.hoverData.last=De),fe)if(je){if($.boxSelectionEnabled()&&lr)fe&&fe.grabbed()&&(p(Be),fe.emit(Ze("freeon")),Be.emit(Ze("free")),r.dragData.didDrag&&(fe.emit(Ze("dragfreeon")),Be.emit(Ze("dragfree")))),Wr();else if(fe&&fe.grabbed()&&r.nodeIsDraggable(fe)){var Er=!r.dragData.didDrag;Er&&r.redrawHint("eles",!0),r.dragData.didDrag=!0,r.hoverData.draggingEles||y(Be,{inDragLayer:!0});var hr={x:0,y:0};if(ae(Pe[0])&&ae(Pe[1])&&(hr.x+=Pe[0],hr.y+=Pe[1],Er)){var Cr=r.hoverData.dragDelta;Cr&&ae(Cr[0])&&ae(Cr[1])&&(hr.x+=Cr[0],hr.y+=Cr[1])}r.hoverData.draggingEles=!0,Be.silentShift(hr).emit(Ze("position")).emit(Ze("drag")),r.redrawHint("drag",!0),r.redraw()}}else jr();W=!0}if(me[2]=ee[0],me[3]=ee[1],W)return S.stopPropagation&&S.stopPropagation(),S.preventDefault&&S.preventDefault(),!1}},!1);var P,A,R;r.registerBinding(e,"mouseup",function(S){if(!(r.hoverData.which===1&&S.which!==1&&r.hoverData.capture)){var _=r.hoverData.capture;if(_){r.hoverData.capture=!1;var W=r.cy,$=r.projectIntoViewport(S.clientX,S.clientY),Z=r.selection,oe=r.findNearestElement($[0],$[1],!0,!1),ee=r.dragData.possibleDragElements,ve=r.hoverData.down,le=i(S);r.data.bgActivePosistion&&(r.redrawHint("select",!0),r.redraw()),r.hoverData.tapholdCancelled=!0,r.data.bgActivePosistion=void 0,ve&&ve.unactivate();var me=function(Ke){return{originalEvent:S,type:Ke,position:{x:$[0],y:$[1]}}};if(r.hoverData.which===3){var De=me("cxttapend");if(ve?ve.emit(De):W.emit(De),!r.hoverData.cxtDragged){var Te=me("cxttap");ve?ve.emit(Te):W.emit(Te)}r.hoverData.cxtDragged=!1,r.hoverData.which=null}else if(r.hoverData.which===1){if(n(oe,["mouseup","tapend","vmouseup"],S,{x:$[0],y:$[1]}),!r.dragData.didDrag&&!r.hoverData.dragged&&!r.hoverData.selecting&&!r.hoverData.isOverThresholdDrag&&(n(ve,["click","tap","vclick"],S,{x:$[0],y:$[1]}),A=!1,S.timeStamp-R<=W.multiClickDebounceTime()?(P&&clearTimeout(P),A=!0,R=null,n(ve,["dblclick","dbltap","vdblclick"],S,{x:$[0],y:$[1]})):(P=setTimeout(function(){A||n(ve,["oneclick","onetap","voneclick"],S,{x:$[0],y:$[1]})},W.multiClickDebounceTime()),R=S.timeStamp)),ve==null&&!r.dragData.didDrag&&!r.hoverData.selecting&&!r.hoverData.dragged&&!i(S)&&(W.$(t).unselect(["tapunselect"]),ee.length>0&&r.redrawHint("eles",!0),r.dragData.possibleDragElements=ee=W.collection()),oe==ve&&!r.dragData.didDrag&&!r.hoverData.selecting&&oe!=null&&oe._private.selectable&&(r.hoverData.dragging||(W.selectionType()==="additive"||le?oe.selected()?oe.unselect(["tapunselect"]):oe.select(["tapselect"]):le||(W.$(t).unmerge(oe).unselect(["tapunselect"]),oe.select(["tapselect"]))),r.redrawHint("eles",!0)),r.hoverData.selecting){var fe=W.collection(r.getAllInBox(Z[0],Z[1],Z[2],Z[3]));r.redrawHint("select",!0),fe.length>0&&r.redrawHint("eles",!0),W.emit(me("boxend"));var Pe=function(Ke){return Ke.selectable()&&!Ke.selected()};W.selectionType()==="additive"||le||W.$(t).unmerge(fe).unselect(),fe.emit(me("box")).stdFilter(Pe).select().emit(me("boxselect")),r.redraw()}if(r.hoverData.dragging&&(r.hoverData.dragging=!1,r.redrawHint("select",!0),r.redrawHint("eles",!0),r.redraw()),!Z[4]){r.redrawHint("drag",!0),r.redrawHint("eles",!0);var Be=ve&&ve.grabbed();p(ee),Be&&(ve.emit(me("freeon")),ee.emit(me("free")),r.dragData.didDrag&&(ve.emit(me("dragfreeon")),ee.emit(me("dragfree"))))}}Z[4]=0,r.hoverData.down=null,r.hoverData.cxtStarted=!1,r.hoverData.draggingEles=!1,r.hoverData.selecting=!1,r.hoverData.isOverThresholdDrag=!1,r.dragData.didDrag=!1,r.hoverData.dragged=!1,r.hoverData.dragDelta=[],r.hoverData.mdownPos=null,r.hoverData.mdownGPos=null,r.hoverData.which=null}}},!1);var L=[],I=4,M,O=1e5,V=function(S,_){for(var W=0;W=I){var $=L;if(M=V($,5),!M){var Z=Math.abs($[0]);M=G($)&&Z>5}if(M)for(var oe=0;oe<$.length;oe++)O=Math.min(Math.abs($[oe]),O)}else L.push(W),_=!0;else M&&(O=Math.min(Math.abs(W),O));if(!r.scrollingPage){var ee=r.cy,ve=ee.zoom(),le=ee.pan(),me=r.projectIntoViewport(S.clientX,S.clientY),De=[me[0]*ve+le.x,me[1]*ve+le.y];if(r.hoverData.draggingEles||r.hoverData.dragging||r.hoverData.cxtStarted||k()){S.preventDefault();return}if(ee.panningEnabled()&&ee.userPanningEnabled()&&ee.zoomingEnabled()&&ee.userZoomingEnabled()){S.preventDefault(),r.data.wheelZooming=!0,clearTimeout(r.data.wheelTimeout),r.data.wheelTimeout=setTimeout(function(){r.data.wheelZooming=!1,r.redrawHint("eles",!0),r.redraw()},150);var Te;_&&Math.abs(W)>5&&(W=to(W)*5),Te=W/-250,M&&(Te/=O,Te*=3),Te=Te*r.wheelSensitivity;var fe=S.deltaMode===1;fe&&(Te*=33);var Pe=ee.zoom()*Math.pow(10,Te);S.type==="gesturechange"&&(Pe=r.gestureStartZoom*S.scale),ee.zoom({level:Pe,renderedPosition:{x:De[0],y:De[1]}}),ee.emit({type:S.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:S,position:{x:me[0],y:me[1]}})}}}};r.registerBinding(r.container,"wheel",N,!0),r.registerBinding(e,"scroll",function(S){r.scrollingPage=!0,clearTimeout(r.scrollingPageTimeout),r.scrollingPageTimeout=setTimeout(function(){r.scrollingPage=!1},250)},!0),r.registerBinding(r.container,"gesturestart",function(S){r.gestureStartZoom=r.cy.zoom(),r.hasTouchStarted||S.preventDefault()},!0),r.registerBinding(r.container,"gesturechange",function(Y){r.hasTouchStarted||N(Y)},!0),r.registerBinding(r.container,"mouseout",function(S){var _=r.projectIntoViewport(S.clientX,S.clientY);r.cy.emit({originalEvent:S,type:"mouseout",position:{x:_[0],y:_[1]}})},!1),r.registerBinding(r.container,"mouseover",function(S){var _=r.projectIntoViewport(S.clientX,S.clientY);r.cy.emit({originalEvent:S,type:"mouseover",position:{x:_[0],y:_[1]}})},!1);var F,U,Q,K,j,re,ne,J,z,q,H,X,te,ce=function(S,_,W,$){return Math.sqrt((W-S)*(W-S)+($-_)*($-_))},Ae=function(S,_,W,$){return(W-S)*(W-S)+($-_)*($-_)},Ce;r.registerBinding(r.container,"touchstart",Ce=function(S){if(r.hasTouchStarted=!0,!!D(S)){b(),r.touchData.capture=!0,r.data.bgActivePosistion=void 0;var _=r.cy,W=r.touchData.now,$=r.touchData.earlier;if(S.touches[0]){var Z=r.projectIntoViewport(S.touches[0].clientX,S.touches[0].clientY);W[0]=Z[0],W[1]=Z[1]}if(S.touches[1]){var Z=r.projectIntoViewport(S.touches[1].clientX,S.touches[1].clientY);W[2]=Z[0],W[3]=Z[1]}if(S.touches[2]){var Z=r.projectIntoViewport(S.touches[2].clientX,S.touches[2].clientY);W[4]=Z[0],W[5]=Z[1]}var oe=function(lr){return{originalEvent:S,type:lr,position:{x:W[0],y:W[1]}}};if(S.touches[1]){r.touchData.singleTouchMoved=!0,p(r.dragData.touchDragEles);var ee=r.findContainerClientCoords();z=ee[0],q=ee[1],H=ee[2],X=ee[3],F=S.touches[0].clientX-z,U=S.touches[0].clientY-q,Q=S.touches[1].clientX-z,K=S.touches[1].clientY-q,te=0<=F&&F<=H&&0<=Q&&Q<=H&&0<=U&&U<=X&&0<=K&&K<=X;var ve=_.pan(),le=_.zoom();j=ce(F,U,Q,K),re=Ae(F,U,Q,K),ne=[(F+Q)/2,(U+K)/2],J=[(ne[0]-ve.x)/le,(ne[1]-ve.y)/le];var me=200,De=me*me;if(re=1){for(var mr=r.touchData.startPosition=[null,null,null,null,null,null],Xe=0;Xe=r.touchTapThreshold2}if(_&&r.touchData.cxt){S.preventDefault();var Xe=S.touches[0].clientX-z,ir=S.touches[0].clientY-q,er=S.touches[1].clientX-z,lr=S.touches[1].clientY-q,jr=Ae(Xe,ir,er,lr),Ze=jr/re,Wr=150,$r=Wr*Wr,It=1.5,$a=It*It;if(Ze>=$a||jr>=$r){r.touchData.cxt=!1,r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var bt=le("cxttapend");r.touchData.start?(r.touchData.start.unactivate().emit(bt),r.touchData.start=null):$.emit(bt)}}if(_&&r.touchData.cxt){var bt=le("cxtdrag");r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.touchData.start?r.touchData.start.emit(bt):$.emit(bt),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxtDragged=!0;var Er=r.findNearestElement(Z[0],Z[1],!0,!0);(!r.touchData.cxtOver||Er!==r.touchData.cxtOver)&&(r.touchData.cxtOver&&r.touchData.cxtOver.emit(le("cxtdragout")),r.touchData.cxtOver=Er,Er&&Er.emit(le("cxtdragover")))}else if(_&&S.touches[2]&&$.boxSelectionEnabled())S.preventDefault(),r.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,r.touchData.selecting||$.emit(le("boxstart")),r.touchData.selecting=!0,r.touchData.didSelect=!0,W[4]=1,!W||W.length===0||W[0]===void 0?(W[0]=(Z[0]+Z[2]+Z[4])/3,W[1]=(Z[1]+Z[3]+Z[5])/3,W[2]=(Z[0]+Z[2]+Z[4])/3+1,W[3]=(Z[1]+Z[3]+Z[5])/3+1):(W[2]=(Z[0]+Z[2]+Z[4])/3,W[3]=(Z[1]+Z[3]+Z[5])/3),r.redrawHint("select",!0),r.redraw();else if(_&&S.touches[1]&&!r.touchData.didSelect&&$.zoomingEnabled()&&$.panningEnabled()&&$.userZoomingEnabled()&&$.userPanningEnabled()){S.preventDefault(),r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var hr=r.dragData.touchDragEles;if(hr){r.redrawHint("drag",!0);for(var Cr=0;Cr0&&!r.hoverData.draggingEles&&!r.swipePanning&&r.data.bgActivePosistion!=null&&(r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.redraw())}},!1);var ye;r.registerBinding(e,"touchcancel",ye=function(S){var _=r.touchData.start;r.touchData.capture=!1,_&&_.unactivate()});var ie,de,he,Ee;if(r.registerBinding(e,"touchend",ie=function(S){var _=r.touchData.start,W=r.touchData.capture;if(W)S.touches.length===0&&(r.touchData.capture=!1),S.preventDefault();else return;var $=r.selection;r.swipePanning=!1,r.hoverData.draggingEles=!1;var Z=r.cy,oe=Z.zoom(),ee=r.touchData.now,ve=r.touchData.earlier;if(S.touches[0]){var le=r.projectIntoViewport(S.touches[0].clientX,S.touches[0].clientY);ee[0]=le[0],ee[1]=le[1]}if(S.touches[1]){var le=r.projectIntoViewport(S.touches[1].clientX,S.touches[1].clientY);ee[2]=le[0],ee[3]=le[1]}if(S.touches[2]){var le=r.projectIntoViewport(S.touches[2].clientX,S.touches[2].clientY);ee[4]=le[0],ee[5]=le[1]}var me=function($r){return{originalEvent:S,type:$r,position:{x:ee[0],y:ee[1]}}};_&&_.unactivate();var De;if(r.touchData.cxt){if(De=me("cxttapend"),_?_.emit(De):Z.emit(De),!r.touchData.cxtDragged){var Te=me("cxttap");_?_.emit(Te):Z.emit(Te)}r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!1,r.touchData.start=null,r.redraw();return}if(!S.touches[2]&&Z.boxSelectionEnabled()&&r.touchData.selecting){r.touchData.selecting=!1;var fe=Z.collection(r.getAllInBox($[0],$[1],$[2],$[3]));$[0]=void 0,$[1]=void 0,$[2]=void 0,$[3]=void 0,$[4]=0,r.redrawHint("select",!0),Z.emit(me("boxend"));var Pe=function($r){return $r.selectable()&&!$r.selected()};fe.emit(me("box")).stdFilter(Pe).select().emit(me("boxselect")),fe.nonempty()&&r.redrawHint("eles",!0),r.redraw()}if(_!=null&&_.unactivate(),S.touches[2])r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);else if(!S.touches[1]){if(!S.touches[0]){if(!S.touches[0]){r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Be=r.dragData.touchDragEles;if(_!=null){var je=_._private.grabbed;p(Be),r.redrawHint("drag",!0),r.redrawHint("eles",!0),je&&(_.emit(me("freeon")),Be.emit(me("free")),r.dragData.didDrag&&(_.emit(me("dragfreeon")),Be.emit(me("dragfree")))),n(_,["touchend","tapend","vmouseup","tapdragout"],S,{x:ee[0],y:ee[1]}),_.unactivate(),r.touchData.start=null}else{var Ke=r.findNearestElement(ee[0],ee[1],!0,!0);n(Ke,["touchend","tapend","vmouseup","tapdragout"],S,{x:ee[0],y:ee[1]})}var mr=r.touchData.startPosition[0]-ee[0],Xe=mr*mr,ir=r.touchData.startPosition[1]-ee[1],er=ir*ir,lr=Xe+er,jr=lr*oe*oe;r.touchData.singleTouchMoved||(_||Z.$(":selected").unselect(["tapunselect"]),n(_,["tap","vclick"],S,{x:ee[0],y:ee[1]}),de=!1,S.timeStamp-Ee<=Z.multiClickDebounceTime()?(he&&clearTimeout(he),de=!0,Ee=null,n(_,["dbltap","vdblclick"],S,{x:ee[0],y:ee[1]})):(he=setTimeout(function(){de||n(_,["onetap","voneclick"],S,{x:ee[0],y:ee[1]})},Z.multiClickDebounceTime()),Ee=S.timeStamp)),_!=null&&!r.dragData.didDrag&&_._private.selectable&&jr"u"){var pe=[],Se=function(S){return{clientX:S.clientX,clientY:S.clientY,force:1,identifier:S.pointerId,pageX:S.pageX,pageY:S.pageY,radiusX:S.width/2,radiusY:S.height/2,screenX:S.screenX,screenY:S.screenY,target:S.target}},Re=function(S){return{event:S,touch:Se(S)}},Oe=function(S){pe.push(Re(S))},Ne=function(S){for(var _=0;_0)return F[0]}return null},d=Object.keys(c),y=0;y0?h:wv(i,s,e,t,a,n,o,l)},checkPoint:function(e,t,a,n,i,s,o,l){l=l==="auto"?vt(n,i):l;var u=2*l;if(Zr(e,t,this.points,s,o,n,i-u,[0,-1],a)||Zr(e,t,this.points,s,o,n-u,i,[0,-1],a))return!0;var v=n/2+2*a,f=i/2+2*a,c=[s-v,o-f,s-v,o,s+v,o,s+v,o-f];return!!(Sr(e,t,c)||kt(e,t,u,u,s+n/2-l,o+i/2-l,a)||kt(e,t,u,u,s-n/2+l,o+i/2-l,a))}}};Qr.registerNodeShapes=function(){var r=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",br(3,0)),this.generateRoundPolygon("round-triangle",br(3,0)),this.generatePolygon("rectangle",br(4,0)),r.square=r.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var t=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",t),this.generateRoundPolygon("round-diamond",t)}this.generatePolygon("pentagon",br(5,0)),this.generateRoundPolygon("round-pentagon",br(5,0)),this.generatePolygon("hexagon",br(6,0)),this.generateRoundPolygon("round-hexagon",br(6,0)),this.generatePolygon("heptagon",br(7,0)),this.generateRoundPolygon("round-heptagon",br(7,0)),this.generatePolygon("octagon",br(8,0)),this.generateRoundPolygon("round-octagon",br(8,0));var a=new Array(20);{var n=Ps(5,0),i=Ps(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*w)break}else if(u){if(m>=e.deqCost*h||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*ws)break;var E=e.deq(a,g,y);if(E.length>0)for(var C=0;C0&&(e.onDeqd(a,d),!u&&e.shouldRedraw(a,d,g,y)&&i())},o=e.priority||js;n.beforeRender(s,o(a))}}}},ny=(function(){function r(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:xn;ht(this,r),this.idsByKey=new Yr,this.keyForId=new Yr,this.cachesByLvl=new Yr,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=t}return gt(r,[{key:"getIdsFor",value:function(t){t==null&&$e("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new ra,a.set(t,n)),n}},{key:"addIdForKey",value:function(t,a){t!=null&&this.getIdsFor(t).add(a)}},{key:"deleteIdForKey",value:function(t,a){t!=null&&this.getIdsFor(t).delete(a)}},{key:"getNumberOfIdsForKey",value:function(t){return t==null?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);return n!==i}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var a=this.cachesByLvl,n=this.lvls,i=a.get(t);return i||(i=new Yr,a.set(t,i),n.push(t)),i}},{key:"getCache",value:function(t,a){return this.getCachesAt(a).get(t)}},{key:"get",value:function(t,a){var n=this.getKey(t),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(t),i}},{key:"getForCachedKey",value:function(t,a){var n=this.keyForId.get(t.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(t,a){return this.getCachesAt(a).has(t)}},{key:"has",value:function(t,a){var n=this.getKey(t);return this.hasCache(n,a)}},{key:"setCache",value:function(t,a,n){n.key=t,this.getCachesAt(a).set(t,n)}},{key:"set",value:function(t,a,n){var i=this.getKey(t);this.setCache(i,a,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,a){this.getCachesAt(a).delete(t)}},{key:"delete",value:function(t,a){var n=this.getKey(t);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(t){var a=this;this.lvls.forEach(function(n){return a.deleteCache(t,n)})}},{key:"invalidate",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0}}])})(),Nl=25,nn=50,pn=-4,Hs=3,Sf=7.99,iy=8,sy=1024,oy=1024,uy=1024,ly=.2,vy=.8,fy=10,cy=.15,dy=.1,hy=.9,gy=.9,py=100,yy=1,Ut={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},my=cr({getKey:null,doesEleInvalidateKey:xn,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:dv,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),ba=function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var n=my(t);be(a,n),a.lookup=new ny(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},nr=ba.prototype;nr.reasons=Ut;nr.getTextureQueue=function(r){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[r]=e.eleImgCaches[r]||[]};nr.getRetiredTextureQueue=function(r){var e=this,t=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=t[r]=t[r]||[];return a};nr.getElementQueue=function(){var r=this,e=r.eleCacheQueue=r.eleCacheQueue||new Va(function(t,a){return a.reqs-t.reqs});return e};nr.getElementKeyToQueue=function(){var r=this,e=r.eleKeyToCacheQueue=r.eleKeyToCacheQueue||{};return e};nr.getElement=function(r,e,t,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!r.visible()||r.removed()||!i.allowEdgeTxrCaching&&r.isEdge()||!i.allowParentTxrCaching&&r.isParent())return null;if(a==null&&(a=Math.ceil(ro(o*t))),a=Sf||a>Hs)return null;var u=Math.pow(2,a),v=e.h*u,f=e.w*u,c=s.eleTextBiggerThanMin(r,u);if(!this.isVisible(r,c))return null;var h=l.get(r,a);if(h&&h.invalidated&&(h.invalidated=!1,h.texture.invalidatedWidth-=h.width),h)return h;var d;if(v<=Nl?d=Nl:v<=nn?d=nn:d=Math.ceil(v/nn)*nn,v>uy||f>oy)return null;var y=i.getTextureQueue(d),g=y[y.length-2],p=function(){return i.recycleTexture(d,f)||i.addTexture(d,f)};g||(g=y[y.length-1]),g||(g=p()),g.width-g.usedWidtha;B--)k=i.getElement(r,e,t,B,Ut.downscale);D()}else return i.queueElement(r,C.level-1),C;else{var P;if(!b&&!w&&!E)for(var A=a-1;A>=pn;A--){var R=l.get(r,A);if(R){P=R;break}}if(m(P))return i.queueElement(r,a),P;g.context.translate(g.usedWidth,0),g.context.scale(u,u),this.drawElement(g.context,r,e,c,!1),g.context.scale(1/u,1/u),g.context.translate(-g.usedWidth,0)}return h={x:g.usedWidth,texture:g,level:a,scale:u,width:f,height:v,scaledLabelShown:c},g.usedWidth+=Math.ceil(f+iy),g.eleCaches.push(h),l.set(r,a,h),i.checkTextureFullness(g),h};nr.invalidateElements=function(r){for(var e=0;e=ly*r.width&&this.retireTexture(r)};nr.checkTextureFullness=function(r){var e=this,t=e.getTextureQueue(r.height);r.usedWidth/r.width>vy&&r.fullnessChecks>=fy?lt(t,r):r.fullnessChecks++};nr.retireTexture=function(r){var e=this,t=r.height,a=e.getTextureQueue(t),n=this.lookup;lt(a,r),r.retired=!0;for(var i=r.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,eo(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),lt(n,s),a.push(s),s}};nr.queueElement=function(r,e){var t=this,a=t.getElementQueue(),n=t.getElementKeyToQueue(),i=this.getKey(r),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(r),s.reqs++,a.updateItem(s);else{var o={eles:r.spawn().merge(r),level:e,reqs:1,key:i};a.push(o),n[i]=o}};nr.dequeue=function(r){for(var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s0;s++){var o=t.pop(),l=o.key,u=o.eles[0],v=i.hasCache(u,o.level);if(a[l]=null,v)continue;n.push(o);var f=e.getBoundingBox(u);e.getElement(u,f,r,o.level,Ut.dequeue)}return n};nr.removeFromQueue=function(r){var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(r),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=Js,t.updateItem(i),t.pop(),a[n]=null):i.eles.unmerge(r))};nr.onDequeue=function(r){this.onDequeues.push(r)};nr.offDequeue=function(r){lt(this.onDequeues,r)};nr.setupDequeueing=Tf.setupDequeueing({deqRedrawThreshold:py,deqCost:cy,deqAvgCost:dy,deqNoDrawCost:hy,deqFastCost:gy,deq:function(e,t,a){return e.dequeue(t,a)},onDeqd:function(e,t){for(var a=0;a=wy||t>Pn)return null}a.validateLayersElesOrdering(t,r);var l=a.layersByLevel,u=Math.pow(2,t),v=l[t]=l[t]||[],f,c=a.levelIsComplete(t,r),h,d=function(){var D=function(L){if(a.validateLayersElesOrdering(L,r),a.levelIsComplete(L,r))return h=l[L],!0},B=function(L){if(!h)for(var I=t+L;xa<=I&&I<=Pn&&!D(I);I+=L);};B(1),B(-1);for(var P=v.length-1;P>=0;P--){var A=v[P];A.invalid&<(v,A)}};if(!c)d();else return v;var y=function(){if(!f){f=wr();for(var D=0;DFl||A>Fl)return null;var R=P*A;if(R>By)return null;var L=a.makeLayer(f,t);if(B!=null){var I=v.indexOf(B)+1;v.splice(I,0,L)}else(D.insert===void 0||D.insert)&&v.unshift(L);return L};if(a.skipping&&!o)return null;for(var p=null,m=r.length/by,b=!o,w=0;w=m||!bv(p.bb,E.boundingBox()))&&(p=g({insert:!0,after:p}),!p))return null;h||b?a.queueLayer(p,E):a.drawEleInLayer(p,E,t,e),p.eles.push(E),x[t]=p}return h||(b?null:v)};dr.getEleLevelForLayerLevel=function(r,e){return r};dr.drawEleInLayer=function(r,e,t,a){var n=this,i=this.renderer,s=r.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(t=n.getEleLevelForLayerLevel(t,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,t,Py),i.setImgSmoothing(s,!0))};dr.levelIsComplete=function(r,e){var t=this,a=t.layersByLevel[r];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length};dr.validateLayersElesOrdering=function(r,e){var t=this.layersByLevel[r];if(t)for(var a=0;a0){e=!0;break}}return e};dr.invalidateElements=function(r){var e=this;r.length!==0&&(e.lastInvalidationTime=Xr(),!(r.length===0||!e.haveLayers())&&e.updateElementsInLayers(r,function(a,n,i){e.invalidateLayer(a)}))};dr.invalidateLayer=function(r){if(this.lastInvalidationTime=Xr(),!r.invalid){var e=r.level,t=r.eles,a=this.layersByLevel[e];lt(a,r),r.elesQueue=[],r.invalid=!0,r.replacement&&(r.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(!(i&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var l;t&&(l=t,r.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,v=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,h=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,g=e.pstyle("line-outline-color").value,p=u*v,m=u*v,b=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;f==="straight-triangle"?(s.eleStrokeStyle(r,e,L),s.drawEdgeTrianglePath(e,r,o.allpts)):(r.lineWidth=h,r.lineCap=d,s.eleStrokeStyle(r,e,L),s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")},w=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;if(r.lineWidth=h+y,r.lineCap=d,y>0)s.colorStrokeStyle(r,g[0],g[1],g[2],L);else{r.lineCap="butt";return}f==="straight-triangle"?s.drawEdgeTrianglePath(e,r,o.allpts):(s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")},E=function(){n&&s.drawEdgeOverlay(r,e)},C=function(){n&&s.drawEdgeUnderlay(r,e)},x=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;s.drawArrowheads(r,e,L)},T=function(){s.drawElementText(r,e,null,a)};r.lineJoin="round";var k=e.pstyle("ghost").value==="yes";if(k){var D=e.pstyle("ghost-offset-x").pfValue,B=e.pstyle("ghost-offset-y").pfValue,P=e.pstyle("ghost-opacity").value,A=p*P;r.translate(D,B),b(A),x(A),r.translate(-D,-B)}else w();C(),b(),x(),E(),T(),t&&r.translate(l.x1,l.y1)}};var Bf=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,v=a.pstyle("".concat(e,"-color")).value;t.lineWidth=u,o.edgeType==="self"&&!s?t.lineCap="butt":t.lineCap="round",i.colorStrokeStyle(t,v[0],v[1],v[2],n),i.drawEdgePath(a,t,o.allpts,"solid")}}}};Jr.drawEdgeOverlay=Bf("overlay");Jr.drawEdgeUnderlay=Bf("underlay");Jr.drawEdgePath=function(r,e,t,a){var n=r._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=r.pstyle("line-dash-pattern").pfValue,v=r.pstyle("line-dash-offset").pfValue;if(l){var f=t.join("$"),c=n.pathCacheKey&&n.pathCacheKey===f;c?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=f,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=v;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(t[0],t[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var l=s.getLabelJustification(e);r.textAlign=l,r.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,v=e.pstyle("label"),f=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value))return;r.textAlign="center",r.textBaseline="bottom"}var h=!t,d;t&&(d=t,r.translate(-d.x1,-d.y1)),n==null?(s.drawText(r,e,null,h,i),e.isEdge()&&(s.drawText(r,e,"source",h,i),s.drawText(r,e,"target",h,i))):s.drawText(r,e,n,h,i),t&&r.translate(d.x1,d.y1)};Lt.getFontCache=function(r){var e;this.fontCaches=this.fontCaches||[];for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=t?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,v=e.pstyle("text-outline-color").value;r.font=a+" "+s+" "+n+" "+i,r.lineJoin="round",this.colorFillStyle(r,u[0],u[1],u[2],o),this.colorStrokeStyle(r,v[0],v[1],v[2],l)};function qy(r,e,t,a,n){var i=Math.min(a,n),s=i/2,o=e+a/2,l=t+n/2;r.beginPath(),r.arc(o,l,s,0,Math.PI*2),r.closePath()}function Gl(r,e,t,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(i,a/2,n/2);r.beginPath(),r.moveTo(e+s,t),r.lineTo(e+a-s,t),r.quadraticCurveTo(e+a,t,e+a,t+s),r.lineTo(e+a,t+n-s),r.quadraticCurveTo(e+a,t+n,e+a-s,t+n),r.lineTo(e+s,t+n),r.quadraticCurveTo(e,t+n,e,t+n-s),r.lineTo(e,t+s),r.quadraticCurveTo(e,t,e+s,t),r.closePath()}Lt.getTextAngle=function(r,e){var t,a=r._private,n=a.rscratch,i=e?e+"-":"",s=r.pstyle(i+"text-rotation");if(s.strValue==="autorotate"){var o=Tr(n,"labelAngle",e);t=r.isEdge()?o:0}else s.strValue==="none"?t=0:t=s.pfValue;return t};Lt.drawText=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){t==="main"&&(t=null);var l=Tr(s,"labelX",t),u=Tr(s,"labelY",t),v,f,c=this.getLabelText(e,t);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(r,e,n);var h=t?t+"-":"",d=Tr(s,"labelWidth",t),y=Tr(s,"labelHeight",t),g=e.pstyle(h+"text-margin-x").pfValue,p=e.pstyle(h+"text-margin-y").pfValue,m=e.isEdge(),b=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;m&&(b="center",w="center"),l+=g,u+=p;var E;switch(a?E=this.getTextAngle(e,t):E=0,E!==0&&(v=l,f=u,r.translate(v,f),r.rotate(E),l=0,u=0),w){case"top":break;case"center":u+=y/2;break;case"bottom":u+=y;break}var C=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,T=e.pstyle("text-border-width").pfValue,k=e.pstyle("text-background-padding").pfValue,D=e.pstyle("text-background-shape").strValue,B=D==="round-rectangle"||D==="roundrectangle",P=D==="circle",A=2;if(C>0||T>0&&x>0){var R=r.fillStyle,L=r.strokeStyle,I=r.lineWidth,M=e.pstyle("text-background-color").value,O=e.pstyle("text-border-color").value,V=e.pstyle("text-border-style").value,G=C>0,N=T>0&&x>0,F=l-k;switch(b){case"left":F-=d;break;case"center":F-=d/2;break}var U=u-y-k,Q=d+2*k,K=y+2*k;if(G&&(r.fillStyle="rgba(".concat(M[0],",").concat(M[1],",").concat(M[2],",").concat(C*o,")")),N&&(r.strokeStyle="rgba(".concat(O[0],",").concat(O[1],",").concat(O[2],",").concat(x*o,")"),r.lineWidth=T,r.setLineDash))switch(V){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"double":r.lineWidth=T/4,r.setLineDash([]);break;case"solid":default:r.setLineDash([]);break}if(B?(r.beginPath(),Gl(r,F,U,Q,K,A)):P?(r.beginPath(),qy(r,F,U,Q,K)):(r.beginPath(),r.rect(F,U,Q,K)),G&&r.fill(),N&&r.stroke(),N&&V==="double"){var j=T/2;r.beginPath(),B?Gl(r,F+j,U+j,Q-2*j,K-2*j,A):r.rect(F+j,U+j,Q-2*j,K-2*j),r.stroke()}r.fillStyle=R,r.strokeStyle=L,r.lineWidth=I,r.setLineDash&&r.setLineDash([])}var re=2*e.pstyle("text-outline-width").pfValue;if(re>0&&(r.lineWidth=re),e.pstyle("text-wrap").value==="wrap"){var ne=Tr(s,"labelWrapCachedLines",t),J=Tr(s,"labelLineHeight",t),z=d/2,q=this.getLabelJustification(e);switch(q==="auto"||(b==="left"?q==="left"?l+=-d:q==="center"&&(l+=-z):b==="center"?q==="left"?l+=-z:q==="right"&&(l+=z):b==="right"&&(q==="center"?l+=z:q==="right"&&(l+=d))),w){case"top":u-=(ne.length-1)*J;break;case"center":case"bottom":u-=(ne.length-1)*J;break}for(var H=0;H0&&r.strokeText(ne[H],l,u),r.fillText(ne[H],l,u),u+=J}else re>0&&r.strokeText(c,l,u),r.fillText(c,l,u);E!==0&&(r.rotate(-E),r.translate(-v,-f))}}};var yt={};yt.drawNode=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,l,u=e._private,v=u.rscratch,f=e.position();if(!(!ae(f.x)||!ae(f.y))&&!(i&&!e.visible())){var c=i?e.effectiveOpacity():1,h=s.usePaths(),d,y=!1,g=e.padding();o=e.width()+2*g,l=e.height()+2*g;var p;t&&(p=t,r.translate(-p.x1,-p.y1));for(var m=e.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),C=0,x=0;x0&&arguments[0]!==void 0?arguments[0]:A;s.eleFillStyle(r,e,ue)},J=function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:N;s.colorStrokeStyle(r,R[0],R[1],R[2],ue)},z=function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:K;s.colorStrokeStyle(r,U[0],U[1],U[2],ue)},q=function(ue,Y,S,_){var W=s.nodePathCache=s.nodePathCache||[],$=cv(S==="polygon"?S+","+_.join(","):S,""+Y,""+ue,""+re),Z=W[$],oe,ee=!1;return Z!=null?(oe=Z,ee=!0,v.pathCache=oe):(oe=new Path2D,W[$]=v.pathCache=oe),{path:oe,cacheHit:ee}},H=e.pstyle("shape").strValue,X=e.pstyle("shape-polygon-points").pfValue;if(h){r.translate(f.x,f.y);var te=q(o,l,H,X);d=te.path,y=te.cacheHit}var ce=function(){if(!y){var ue=f;h&&(ue={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(d||r,ue.x,ue.y,o,l,re,v)}h?r.fill(d):r.fill()},Ae=function(){for(var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,S=u.backgrounding,_=0,W=0;W0&&arguments[0]!==void 0?arguments[0]:!1,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasPie(e)&&(s.drawPie(r,e,Y),ue&&(h||s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v)))},we=function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasStripe(e)&&(r.save(),h?r.clip(v.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v),r.clip()),s.drawStripe(r,e,Y),r.restore(),ue&&(h||s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v)))},ye=function(){var ue=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,Y=(B>0?B:-B)*ue,S=B>0?0:255;B!==0&&(s.colorFillStyle(r,S,S,S,Y),h?r.fill(d):r.fill())},ie=function(){if(P>0){if(r.lineWidth=P,r.lineCap=M,r.lineJoin=I,r.setLineDash)switch(L){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash(V),r.lineDashOffset=G;break;case"solid":case"double":r.setLineDash([]);break}if(O!=="center"){if(r.save(),r.lineWidth*=2,O==="inside")h?r.clip(d):r.clip();else{var ue=new Path2D;ue.rect(-o/2-P,-l/2-P,o+2*P,l+2*P),ue.addPath(d),r.clip(ue,"evenodd")}h?r.stroke(d):r.stroke(),r.restore()}else h?r.stroke(d):r.stroke();if(L==="double"){r.lineWidth=P/3;var Y=r.globalCompositeOperation;r.globalCompositeOperation="destination-out",h?r.stroke(d):r.stroke(),r.globalCompositeOperation=Y}r.setLineDash&&r.setLineDash([])}},de=function(){if(F>0){if(r.lineWidth=F,r.lineCap="butt",r.setLineDash)switch(Q){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"solid":case"double":r.setLineDash([]);break}var ue=f;h&&(ue={x:0,y:0});var Y=s.getNodeShape(e),S=P;O==="inside"&&(S=0),O==="outside"&&(S*=2);var _=(o+S+(F+j))/o,W=(l+S+(F+j))/l,$=o*_,Z=l*W,oe=s.nodeShapes[Y].points,ee;if(h){var ve=q($,Z,Y,oe);ee=ve.path}if(Y==="ellipse")s.drawEllipsePath(ee||r,ue.x,ue.y,$,Z);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Y)){var le=0,me=0,De=0;Y==="round-diamond"?le=(S+j+F)*1.4:Y==="round-heptagon"?(le=(S+j+F)*1.075,De=-(S/2+j+F)/35):Y==="round-hexagon"?le=(S+j+F)*1.12:Y==="round-pentagon"?(le=(S+j+F)*1.13,De=-(S/2+j+F)/15):Y==="round-tag"?(le=(S+j+F)*1.12,me=(S/2+F+j)*.07):Y==="round-triangle"&&(le=(S+j+F)*(Math.PI/2),De=-(S+j/2+F)/Math.PI),le!==0&&(_=(o+le)/o,$=o*_,["round-hexagon","round-tag"].includes(Y)||(W=(l+le)/l,Z=l*W)),re=re==="auto"?Ev($,Z):re;for(var Te=$/2,fe=Z/2,Pe=re+(S+F+j)/2,Be=new Array(oe.length/2),je=new Array(oe.length/2),Ke=0;Ke0){if(n=n||a.position(),i==null||s==null){var h=a.padding();i=a.width()+2*h,s=a.height()+2*h}o.colorFillStyle(t,v[0],v[1],v[2],u),o.nodeShapes[f].draw(t,n.x,n.y,i+l*2,s+l*2,c),t.fill()}}}};yt.drawNodeOverlay=Pf("overlay");yt.drawNodeUnderlay=Pf("underlay");yt.hasPie=function(r){return r=r[0],r._private.hasPie};yt.hasStripe=function(r){return r=r[0],r._private.hasStripe};yt.drawPie=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),o=e.pstyle("pie-start-angle").pfValue,l=a.x,u=a.y,v=e.width(),f=e.height(),c=Math.min(v,f)/2,h,d=0,y=this.usePaths();if(y&&(l=0,u=0),i.units==="%"?c=c*i.pfValue:i.pfValue!==void 0&&(c=i.pfValue/2),s.units==="%"?h=c*s.pfValue:s.pfValue!==void 0&&(h=s.pfValue/2),!(h>=c))for(var g=1;g<=n.pieBackgroundN;g++){var p=e.pstyle("pie-"+g+"-background-size").value,m=e.pstyle("pie-"+g+"-background-color").value,b=e.pstyle("pie-"+g+"-background-opacity").value*t,w=p/100;w+d>1&&(w=1-d);var E=1.5*Math.PI+2*Math.PI*d;E+=o;var C=2*Math.PI*w,x=E+C;p===0||d>=1||d+w>1||(h===0?(r.beginPath(),r.moveTo(l,u),r.arc(l,u,c,E,x),r.closePath()):(r.beginPath(),r.arc(l,u,c,E,x),r.arc(l,u,h,x,E,!0),r.closePath()),this.colorFillStyle(r,m[0],m[1],m[2],b),r.fill(),d+=w)}};yt.drawStripe=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=a.x,s=a.y,o=e.width(),l=e.height(),u=0,v=this.usePaths();r.save();var f=e.pstyle("stripe-direction").value,c=e.pstyle("stripe-size");switch(f){case"vertical":break;case"righward":r.rotate(-Math.PI/2);break}var h=o,d=l;c.units==="%"?(h=h*c.pfValue,d=d*c.pfValue):c.pfValue!==void 0&&(h=c.pfValue,d=c.pfValue),v&&(i=0,s=0),s-=h/2,i-=d/2;for(var y=1;y<=n.stripeBackgroundN;y++){var g=e.pstyle("stripe-"+y+"-background-size").value,p=e.pstyle("stripe-"+y+"-background-color").value,m=e.pstyle("stripe-"+y+"-background-opacity").value*t,b=g/100;b+u>1&&(b=1-u),!(g===0||u>=1||u+b>1)&&(r.beginPath(),r.rect(i,s+d*u,h,d*b),r.closePath(),this.colorFillStyle(r,p[0],p[1],p[2],m),r.fill(),u+=b)}r.restore()};var xr={},_y=100;xr.getPixelRatio=function(){var r=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),t=r.backingStorePixelRatio||r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/t};xr.paintCache=function(r){for(var e=this.paintCaches=this.paintCaches||[],t=!0,a,n=0;ne.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!f&&(v[e.NODE]=!0,v[e.SELECT_BOX]=!0);var m=t.style(),b=t.zoom(),w=s!==void 0?s:b,E=t.pan(),C={x:E.x,y:E.y},x={zoom:b,pan:{x:E.x,y:E.y}},T=e.prevViewport,k=T===void 0||x.zoom!==T.zoom||x.pan.x!==T.pan.x||x.pan.y!==T.pan.y;!k&&!(y&&!d)&&(e.motionBlurPxRatio=1),o&&(C=o),w*=l,C.x*=l,C.y*=l;var D=e.getCachedZSortedEles();function B(J,z,q,H,X){var te=J.globalCompositeOperation;J.globalCompositeOperation="destination-out",e.colorFillStyle(J,255,255,255,e.motionBlurTransparency),J.fillRect(z,q,H,X),J.globalCompositeOperation=te}function P(J,z){var q,H,X,te;!e.clearingMotionBlur&&(J===u.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||J===u.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(q={x:E.x*h,y:E.y*h},H=b*h,X=e.canvasWidth*h,te=e.canvasHeight*h):(q=C,H=w,X=e.canvasWidth,te=e.canvasHeight),J.setTransform(1,0,0,1,0,0),z==="motionBlur"?B(J,0,0,X,te):!a&&(z===void 0||z)&&J.clearRect(0,0,X,te),n||(J.translate(q.x,q.y),J.scale(H,H)),o&&J.translate(o.x,o.y),s&&J.scale(s,s)}if(f||(e.textureDrawLastFrame=!1),f){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=t.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var A=e.data.bufferContexts[e.TEXTURE_BUFFER];A.setTransform(1,0,0,1,0,0),A.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:A,drawOnlyNodeLayer:!0,forcedPxRatio:l*e.textureMult});var x=e.textureCache.viewport={zoom:t.zoom(),pan:t.pan(),width:e.canvasWidth,height:e.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}v[e.DRAG]=!1,v[e.NODE]=!1;var R=u.contexts[e.NODE],L=e.textureCache.texture,x=e.textureCache.viewport;R.setTransform(1,0,0,1,0,0),c?B(R,0,0,x.width,x.height):R.clearRect(0,0,x.width,x.height);var I=m.core("outside-texture-bg-color").value,M=m.core("outside-texture-bg-opacity").value;e.colorFillStyle(R,I[0],I[1],I[2],M),R.fillRect(0,0,x.width,x.height);var b=t.zoom();P(R,!1),R.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),R.drawImage(L,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else e.textureOnViewport&&!a&&(e.textureCache=null);var O=t.extent(),V=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),G=e.hideEdgesOnViewport&&V,N=[];if(N[e.NODE]=!v[e.NODE]&&c&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,N[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),N[e.DRAG]=!v[e.DRAG]&&c&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,N[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),v[e.NODE]||n||i||N[e.NODE]){var F=c&&!N[e.NODE]&&h!==1,R=a||(F?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:u.contexts[e.NODE]),U=c&&!F?"motionBlur":void 0;P(R,U),G?e.drawCachedNodes(R,D.nondrag,l,O):e.drawLayeredElements(R,D.nondrag,l,O),e.debug&&e.drawDebugPoints(R,D.nondrag),!n&&!c&&(v[e.NODE]=!1)}if(!i&&(v[e.DRAG]||n||N[e.DRAG])){var F=c&&!N[e.DRAG]&&h!==1,R=a||(F?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:u.contexts[e.DRAG]);P(R,c&&!F?"motionBlur":void 0),G?e.drawCachedNodes(R,D.drag,l,O):e.drawCachedElements(R,D.drag,l,O),e.debug&&e.drawDebugPoints(R,D.drag),!n&&!c&&(v[e.DRAG]=!1)}if(this.drawSelectionRectangle(r,P),c&&h!==1){var Q=u.contexts[e.NODE],K=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],j=u.contexts[e.DRAG],re=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],ne=function(z,q,H){z.setTransform(1,0,0,1,0,0),H||!p?z.clearRect(0,0,e.canvasWidth,e.canvasHeight):B(z,0,0,e.canvasWidth,e.canvasHeight);var X=h;z.drawImage(q,0,0,e.canvasWidth*X,e.canvasHeight*X,0,0,e.canvasWidth,e.canvasHeight)};(v[e.NODE]||N[e.NODE])&&(ne(Q,K,N[e.NODE]),v[e.NODE]=!1),(v[e.DRAG]||N[e.DRAG])&&(ne(j,re,N[e.DRAG]),v[e.DRAG]=!1)}e.prevViewport=x,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),c&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!f,e.mbFrames=0,v[e.NODE]=!0,v[e.DRAG]=!0,e.redraw()},_y)),a||t.emit("render")};var ha;xr.drawSelectionRectangle=function(r,e){var t=this,a=t.cy,n=t.data,i=a.style(),s=r.drawOnlyNodeLayer,o=r.drawAllLayers,l=n.canvasNeedsRedraw,u=r.forcedContext;if(t.showFps||!s&&l[t.SELECT_BOX]&&!o){var v=u||n.contexts[t.SELECT_BOX];if(e(v),t.selection[4]==1&&(t.hoverData.selecting||t.touchData.selecting)){var f=t.cy.zoom(),c=i.core("selection-box-border-width").value/f;v.lineWidth=c,v.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")",v.fillRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]),c>0&&(v.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")",v.strokeRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]))}if(n.bgActivePosistion&&!t.hoverData.selecting){var f=t.cy.zoom(),h=n.bgActivePosistion;v.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")",v.beginPath(),v.arc(h.x,h.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI),v.fill()}var d=t.lastRedrawTime;if(t.showFps&&d){d=Math.round(d);var y=Math.round(1e3/d),g="1 frame = "+d+" ms = "+y+" fps";if(v.setTransform(1,0,0,1,0,0),v.fillStyle="rgba(255, 0, 0, 0.75)",v.strokeStyle="rgba(255, 0, 0, 0.75)",v.font="30px Arial",!ha){var p=v.measureText(g);ha=p.actualBoundingBoxAscent}v.fillText(g,0,ha);var m=60;v.strokeRect(0,ha+10,250,20),v.fillRect(0,ha+10,250*Math.min(y/m,1),20)}o||(l[t.SELECT_BOX]=!1)}};function Hl(r,e,t){var a=r.createShader(e);if(r.shaderSource(a,t),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS))throw new Error(r.getShaderInfoLog(a));return a}function Gy(r,e,t){var a=Hl(r,r.VERTEX_SHADER,e),n=Hl(r,r.FRAGMENT_SHADER,t),i=r.createProgram();if(r.attachShader(i,a),r.attachShader(i,n),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS))throw new Error("Could not initialize shaders");return i}function Hy(r,e,t){t===void 0&&(t=e);var a=r.makeOffscreenCanvas(e,t),n=a.context=a.getContext("2d");return a.clear=function(){return n.clearRect(0,0,a.width,a.height)},a.clear(),a}function bo(r){var e=r.pixelRatio,t=r.cy.zoom(),a=r.cy.pan();return{zoom:t*e,pan:{x:a.x*e,y:a.y*e}}}function Wy(r){var e=r.pixelRatio,t=r.cy.zoom();return t*e}function $y(r,e,t,a,n){var i=a*t+e.x,s=n*t+e.y;return s=Math.round(r.canvasHeight-s),[i,s]}function Uy(r){return r.pstyle("background-fill").value!=="solid"||r.pstyle("background-image").strValue!=="none"?!1:r.pstyle("border-width").value===0||r.pstyle("border-opacity").value===0?!0:r.pstyle("border-style").value==="solid"}function Ky(r,e){if(r.length!==e.length)return!1;for(var t=0;t>0&255)/255,t[1]=(r>>8&255)/255,t[2]=(r>>16&255)/255,t[3]=(r>>24&255)/255,t}function Yy(r){return r[0]+(r[1]<<8)+(r[2]<<16)+(r[3]<<24)}function Xy(r,e){var t=r.createTexture();return t.buffer=function(a){r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_NEAREST),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,a),r.generateMipmap(r.TEXTURE_2D),r.bindTexture(r.TEXTURE_2D,null)},t.deleteTexture=function(){r.deleteTexture(t)},t}function Af(r,e){switch(e){case"float":return[1,r.FLOAT,4];case"vec2":return[2,r.FLOAT,4];case"vec3":return[3,r.FLOAT,4];case"vec4":return[4,r.FLOAT,4];case"int":return[1,r.INT,4];case"ivec2":return[2,r.INT,4]}}function Rf(r,e,t){switch(e){case r.FLOAT:return new Float32Array(t);case r.INT:return new Int32Array(t)}}function Zy(r,e,t,a,n,i){switch(e){case r.FLOAT:return new Float32Array(t.buffer,i*a,n);case r.INT:return new Int32Array(t.buffer,i*a,n)}}function Qy(r,e,t,a){var n=Af(r,e),i=Je(n,2),s=i[0],o=i[1],l=Rf(r,o,a),u=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,u),r.bufferData(r.ARRAY_BUFFER,l,r.STATIC_DRAW),o===r.FLOAT?r.vertexAttribPointer(t,s,o,!1,0,0):o===r.INT&&r.vertexAttribIPointer(t,s,o,0,0),r.enableVertexAttribArray(t),r.bindBuffer(r.ARRAY_BUFFER,null),u}function Fr(r,e,t,a){var n=Af(r,t),i=Je(n,3),s=i[0],o=i[1],l=i[2],u=Rf(r,o,e*s),v=s*l,f=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,f),r.bufferData(r.ARRAY_BUFFER,e*v,r.DYNAMIC_DRAW),r.enableVertexAttribArray(a),o===r.FLOAT?r.vertexAttribPointer(a,s,o,!1,v,0):o===r.INT&&r.vertexAttribIPointer(a,s,o,v,0),r.vertexAttribDivisor(a,1),r.bindBuffer(r.ARRAY_BUFFER,null);for(var c=new Array(e),h=0;hs&&(o=s/a,l=a*o,u=n*o),{scale:o,texW:l,texH:u}}},{key:"draw",value:function(t,a,n){var i=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,o=this.texRows,l=this.texHeight,u=this.getScale(a),v=u.scale,f=u.texW,c=u.texH,h=function(b,w){if(n&&w){var E=w.context,C=b.x,x=b.row,T=C,k=l*x;E.save(),E.translate(T,k),E.scale(v,v),n(E,a),E.restore()}},d=[null,null],y=function(){h(i.freePointer,i.canvas),d[0]={x:i.freePointer.x,y:i.freePointer.row*l,w:f,h:c},d[1]={x:i.freePointer.x+f,y:i.freePointer.row*l,w:0,h:c},i.freePointer.x+=f,i.freePointer.x==s&&(i.freePointer.x=0,i.freePointer.row++)},g=function(){var b=i.scratch,w=i.canvas;b.clear(),h({x:0,row:0},b);var E=s-i.freePointer.x,C=f-E,x=l;{var T=i.freePointer.x,k=i.freePointer.row*l,D=E;w.context.drawImage(b,0,0,D,x,T,k,D,x),d[0]={x:T,y:k,w:D,h:c}}{var B=E,P=(i.freePointer.row+1)*l,A=C;w&&w.context.drawImage(b,B,0,A,x,0,P,A,x),d[1]={x:0,y:P,w:A,h:c}}i.freePointer.x=C,i.freePointer.row++},p=function(){i.freePointer.x=0,i.freePointer.row++};if(this.freePointer.x+f<=s)y();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===s?(p(),y()):this.enableWrapping?g():(p(),y())}return this.keyToLocation.set(t,d),this.needsBuffer=!0,d}},{key:"getOffsets",value:function(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value:function(t){if(this.locked)return!1;var a=this.texSize,n=this.texRows,i=this.getScale(t),s=i.texW;return this.freePointer.x+s>a?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},i=n.forceRedraw,s=i===void 0?!1:i,o=n.filterEle,l=o===void 0?function(){return!0}:o,u=n.filterType,v=u===void 0?function(){return!0}:u,f=!1,c=!1,h=kr(t),d;try{for(h.s();!(d=h.n()).done;){var y=d.value;if(l(y)){var g=kr(this.renderTypes.values()),p;try{var m=function(){var w=p.value,E=w.type;if(v(E)){var C=a.collections.get(w.collection),x=w.getKey(y),T=Array.isArray(x)?x:[x];if(s)T.forEach(function(P){return C.markKeyForGC(P)}),c=!0;else{var k=w.getID?w.getID(y):y.id(),D=a._key(E,k),B=a.typeAndIdToKey.get(D);B!==void 0&&!Ky(T,B)&&(f=!0,a.typeAndIdToKey.delete(D),B.forEach(function(P){return C.markKeyForGC(P)}))}}};for(g.s();!(p=g.n()).done;)m()}catch(b){g.e(b)}finally{g.f()}}}}catch(b){h.e(b)}finally{h.f()}return c&&(this.gc(),f=!1),f}},{key:"gc",value:function(){var t=kr(this.collections.values()),a;try{for(t.s();!(a=t.n()).done;){var n=a.value;n.gc()}}catch(i){t.e(i)}finally{t.f()}}},{key:"getOrCreateAtlas",value:function(t,a,n,i){var s=this.renderTypes.get(a),o=this.collections.get(s.collection),l=!1,u=o.draw(i,n,function(c){s.drawClipped?(c.save(),c.beginPath(),c.rect(0,0,n.w,n.h),c.clip(),s.drawElement(c,t,n,!0,!0),c.restore()):s.drawElement(c,t,n,!0,!0),l=!0});if(l){var v=s.getID?s.getID(t):t.id(),f=this._key(a,v);this.typeAndIdToKey.has(f)?this.typeAndIdToKey.get(f).push(i):this.typeAndIdToKey.set(f,[i])}return u}},{key:"getAtlasInfo",value:function(t,a){var n=this,i=this.renderTypes.get(a),s=i.getKey(t),o=Array.isArray(s)?s:[s];return o.map(function(l){var u=i.getBoundingBox(t,l),v=n.getOrCreateAtlas(t,a,u,l),f=v.getOffsets(l),c=Je(f,2),h=c[0],d=c[1];return{atlas:v,tex:h,tex1:h,tex2:d,bb:u}})}},{key:"getDebugInfo",value:function(){var t=[],a=kr(this.collections),n;try{for(a.s();!(n=a.n()).done;){var i=Je(n.value,2),s=i[0],o=i[1],l=o.getCounts(),u=l.keyCount,v=l.atlasCount;t.push({type:s,keyCount:u,atlasCount:v})}}catch(f){a.e(f)}finally{a.f()}return t}}])})(),sm=(function(){function r(e){ht(this,r),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return gt(r,[{key:"getMaxAtlasesPerBatch",value:function(){return this.maxAtlasesPerBatch}},{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,a){return a})}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function(t){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(t):!0}},{key:"getAtlasIndexForBatch",value:function(t){var a=this.batchAtlases.indexOf(t);if(a<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(t),a=this.batchAtlases.length-1}return a}}])})(),om=` + float circleSD(vec2 p, float r) { + return distance(vec2(0), p) - r; // signed distance + } +`,um=` + float rectangleSD(vec2 p, vec2 b) { + vec2 d = abs(p)-b; + return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); + } +`,lm=` + float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { + cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; + cr.x = (p.y > 0.0) ? cr.x : cr.y; + vec2 q = abs(p) - b + cr.x; + return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; + } +`,vm=` + float ellipseSD(vec2 p, vec2 ab) { + p = abs( p ); // symmetry + + // find root with Newton solver + vec2 q = ab*(p-ab); + float w = (q.x1.0) ? d : -d; + } +`,Ea={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},An={IGNORE:1,USE_BB:2},Cs=0,Kl=1,Yl=2,Ts=3,_t=4,sn=5,ga=6,pa=7,fm=(function(){function r(e,t,a){ht(this,r),this.r=e,this.gl=t,this.maxInstances=a.webglBatchSize,this.atlasSize=a.webglTexSize,this.bgColor=a.bgColor,this.debug=a.webglDebug,this.batchDebugInfo=[],a.enableWrapping=!0,a.createTextureCanvas=Hy,this.atlasManager=new im(e,a),this.batchManager=new sm(a),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Ea.SCREEN),this.pickingProgram=this._createShaderProgram(Ea.PICKING),this.vao=this._createVAO()}return gt(r,[{key:"addAtlasCollection",value:function(t,a){this.atlasManager.addAtlasCollection(t,a)}},{key:"addTextureAtlasRenderType",value:function(t,a){this.atlasManager.addRenderType(t,a)}},{key:"addSimpleShapeRenderType",value:function(t,a){this.simpleShapeOptions.set(t,a)}},{key:"invalidate",value:function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=a.type,i=this.atlasManager;return n?i.invalidate(t,{filterType:function(o){return o===n},forceRedraw:!0}):i.invalidate(t)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"_createShaderProgram",value:function(t){var a=this.gl,n=`#version 300 es + precision highp float; + + uniform mat3 uPanZoomMatrix; + uniform int uAtlasSize; + + // instanced + in vec2 aPosition; // a vertex from the unit square + + in mat3 aTransform; // used to transform verticies, eg into a bounding box + in int aVertType; // the type of thing we are rendering + + // the z-index that is output when using picking mode + in vec4 aIndex; + + // For textures + in int aAtlasId; // which shader unit/atlas to use + in vec4 aTex; // x/y/w/h of texture in atlas + + // for edges + in vec4 aPointAPointB; + in vec4 aPointCPointD; + in vec2 aLineWidth; // also used for node border width + + // simple shapes + in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] + in vec4 aColor; // also used for edges + in vec4 aBorderColor; // aLineWidth is used for border width + + // output values passed to the fragment shader + out vec2 vTexCoord; + out vec4 vColor; + out vec2 vPosition; + // flat values are not interpolated + flat out int vAtlasId; + flat out int vVertType; + flat out vec2 vTopRight; + flat out vec2 vBotLeft; + flat out vec4 vCornerRadius; + flat out vec4 vBorderColor; + flat out vec2 vBorderWidth; + flat out vec4 vIndex; + + void main(void) { + int vid = gl_VertexID; + vec2 position = aPosition; // TODO make this a vec3, simplifies some code below + + if(aVertType == `.concat(Cs,`) { + float texX = aTex.x; // texture coordinates + float texY = aTex.y; + float texW = aTex.z; + float texH = aTex.w; + + if(vid == 1 || vid == 2 || vid == 4) { + texX += texW; + } + if(vid == 2 || vid == 4 || vid == 5) { + texY += texH; + } + + float d = float(uAtlasSize); + vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(_t," || aVertType == ").concat(pa,` + || aVertType == `).concat(sn," || aVertType == ").concat(ga,`) { // simple shapes + + // the bounding box is needed by the fragment shader + vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat + vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat + vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated + + // calculations are done in the fragment shader, just pass these along + vColor = aColor; + vCornerRadius = aCornerRadius; + vBorderColor = aBorderColor; + vBorderWidth = aLineWidth; + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + } + else if(aVertType == `).concat(Kl,`) { + vec2 source = aPointAPointB.xy; + vec2 target = aPointAPointB.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + // stretch the unit square into a long skinny rectangle + vec2 xBasis = target - source; + vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); + vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; + + gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); + vColor = aColor; + } + else if(aVertType == `).concat(Yl,`) { + vec2 pointA = aPointAPointB.xy; + vec2 pointB = aPointAPointB.zw; + vec2 pointC = aPointCPointD.xy; + vec2 pointD = aPointCPointD.zw; + + // adjust the geometry so that the line is centered on the edge + position.y = position.y - 0.5; + + vec2 p0, p1, p2, pos; + if(position.x == 0.0) { // The left side of the unit square + p0 = pointA; + p1 = pointB; + p2 = pointC; + pos = position; + } else { // The right side of the unit square, use same approach but flip the geometry upside down + p0 = pointD; + p1 = pointC; + p2 = pointB; + pos = vec2(0.0, -position.y); + } + + vec2 p01 = p1 - p0; + vec2 p12 = p2 - p1; + vec2 p21 = p1 - p2; + + // Find the normal vector. + vec2 tangent = normalize(normalize(p12) + normalize(p01)); + vec2 normal = vec2(-tangent.y, tangent.x); + + // Find the vector perpendicular to p0 -> p1. + vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); + + // Determine the bend direction. + float sigma = sign(dot(p01 + p21, normal)); + float width = aLineWidth[0]; + + if(sign(pos.y) == -sigma) { + // This is an intersecting vertex. Adjust the position so that there's no overlap. + vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } else { + // This is a non-intersecting vertex. Treat it like a mitre join. + vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); + gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); + } + + vColor = aColor; + } + else if(aVertType == `).concat(Ts,` && vid < 3) { + // massage the first triangle into an edge arrow + if(vid == 0) + position = vec2(-0.15, -0.3); + if(vid == 1) + position = vec2( 0.0, 0.0); + if(vid == 2) + position = vec2( 0.15, -0.3); + + gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); + vColor = aColor; + } + else { + gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space + } + + vAtlasId = aAtlasId; + vVertType = aVertType; + vIndex = aIndex; + } + `),i=this.batchManager.getIndexArray(),s=`#version 300 es + precision highp float; + + // declare texture unit for each texture atlas in the batch + `.concat(i.map(function(u){return"uniform sampler2D uTexture".concat(u,";")}).join(` + `),` + + uniform vec4 uBGColor; + uniform float uZoom; + + in vec2 vTexCoord; + in vec4 vColor; + in vec2 vPosition; // model coordinates + + flat in int vAtlasId; + flat in vec4 vIndex; + flat in int vVertType; + flat in vec2 vTopRight; + flat in vec2 vBotLeft; + flat in vec4 vCornerRadius; + flat in vec4 vBorderColor; + flat in vec2 vBorderWidth; + + out vec4 outColor; + + `).concat(om,` + `).concat(um,` + `).concat(lm,` + `).concat(vm,` + + vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha + return vec4( + top.rgb + (bot.rgb * (1.0 - top.a)), + top.a + (bot.a * (1.0 - top.a)) + ); + } + + vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance + // scale to the zoom level so that borders don't look blurry when zoomed in + // note 1.5 is an aribitrary value chosen because it looks good + return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); + } + + void main(void) { + if(vVertType == `).concat(Cs,`) { + // look up the texel from the texture unit + `).concat(i.map(function(u){return"if(vAtlasId == ".concat(u,") outColor = texture(uTexture").concat(u,", vTexCoord);")}).join(` + else `),` + } + else if(vVertType == `).concat(Ts,`) { + // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; + outColor = blend(vColor, uBGColor); + outColor.a = 1.0; // make opaque, masks out line under arrow + } + else if(vVertType == `).concat(_t,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border + outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done + } + else if(vVertType == `).concat(_t," || vVertType == ").concat(pa,` + || vVertType == `).concat(sn," || vVertType == ").concat(ga,`) { // use SDF + + float outerBorder = vBorderWidth[0]; + float innerBorder = vBorderWidth[1]; + float borderPadding = outerBorder * 2.0; + float w = vTopRight.x - vBotLeft.x - borderPadding; + float h = vTopRight.y - vBotLeft.y - borderPadding; + vec2 b = vec2(w/2.0, h/2.0); // half width, half height + vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center + + float d; // signed distance + if(vVertType == `).concat(_t,`) { + d = rectangleSD(p, b); + } else if(vVertType == `).concat(pa,` && w == h) { + d = circleSD(p, b.x); // faster than ellipse + } else if(vVertType == `).concat(pa,`) { + d = ellipseSD(p, b); + } else { + d = roundRectangleSD(p, b, vCornerRadius.wzyx); + } + + // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling + // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box + if(d > 0.0) { + if(d > outerBorder) { + discard; + } else { + outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); + } + } else { + if(d > innerBorder) { + vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; + vec4 innerBorderColor = blend(vBorderColor, vColor); + outColor = distInterp(innerBorderColor, outerColor, d); + } + else { + vec4 outerColor; + if(innerBorder == 0.0 && outerBorder == 0.0) { + outerColor = vec4(0); + } else if(innerBorder == 0.0) { + outerColor = vBorderColor; + } else { + outerColor = blend(vBorderColor, vColor); + } + outColor = distInterp(vColor, outerColor, d - innerBorder); + } + } + } + else { + outColor = vColor; + } + + `).concat(t.picking?`if(outColor.a == 0.0) discard; + else outColor = vIndex;`:"",` + } + `),o=Gy(a,n,s);o.aPosition=a.getAttribLocation(o,"aPosition"),o.aIndex=a.getAttribLocation(o,"aIndex"),o.aVertType=a.getAttribLocation(o,"aVertType"),o.aTransform=a.getAttribLocation(o,"aTransform"),o.aAtlasId=a.getAttribLocation(o,"aAtlasId"),o.aTex=a.getAttribLocation(o,"aTex"),o.aPointAPointB=a.getAttribLocation(o,"aPointAPointB"),o.aPointCPointD=a.getAttribLocation(o,"aPointCPointD"),o.aLineWidth=a.getAttribLocation(o,"aLineWidth"),o.aColor=a.getAttribLocation(o,"aColor"),o.aCornerRadius=a.getAttribLocation(o,"aCornerRadius"),o.aBorderColor=a.getAttribLocation(o,"aBorderColor"),o.uPanZoomMatrix=a.getUniformLocation(o,"uPanZoomMatrix"),o.uAtlasSize=a.getUniformLocation(o,"uAtlasSize"),o.uBGColor=a.getUniformLocation(o,"uBGColor"),o.uZoom=a.getUniformLocation(o,"uZoom"),o.uTextures=[];for(var l=0;l1&&arguments[1]!==void 0?arguments[1]:Ea.SCREEN;this.panZoomMatrix=t,this.renderTarget=a,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"_isVisible",value:function(t,a){return t.visible()?a&&a.isVisible?a.isVisible(t):!0:!1}},{key:"drawTexture",value:function(t,a,n){var i=this.atlasManager,s=this.batchManager,o=i.getRenderTypeOpts(n);if(this._isVisible(t,o)&&!(t.isEdge()&&!this._isValidEdge(t))){if(this.renderTarget.picking&&o.getTexPickingMode){var l=o.getTexPickingMode(t);if(l===An.IGNORE)return;if(l==An.USE_BB){this.drawPickingRectangle(t,a,n);return}}var u=i.getAtlasInfo(t,n),v=kr(u),f;try{for(v.s();!(f=v.n()).done;){var c=f.value,h=c.atlas,d=c.tex1,y=c.tex2;s.canAddToCurrentBatch(h)||this.endBatch();for(var g=s.getAtlasIndexForBatch(h),p=0,m=[[d,!0],[y,!1]];p=this.maxInstances&&this.endBatch()}}}}catch(B){v.e(B)}finally{v.f()}}}},{key:"setTransformMatrix",value:function(t,a,n,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=0;if(n.shapeProps&&n.shapeProps.padding&&(o=t.pstyle(n.shapeProps.padding).pfValue),i){var l=i.bb,u=i.tex1,v=i.tex2,f=u.w/(u.w+v.w);s||(f=1-f);var c=this._getAdjustedBB(l,o,s,f);this._applyTransformMatrix(a,c,n,t)}else{var h=n.getBoundingBox(t),d=this._getAdjustedBB(h,o,!0,1);this._applyTransformMatrix(a,d,n,t)}}},{key:"_applyTransformMatrix",value:function(t,a,n,i){var s,o;$l(t);var l=n.getRotation?n.getRotation(i):0;if(l!==0){var u=n.getRotationPoint(i),v=u.x,f=u.y;yn(t,t,[v,f]),Ul(t,t,l);var c=n.getRotationOffset(i);s=c.x+(a.xOffset||0),o=c.y+(a.yOffset||0)}else s=a.x1,o=a.y1;yn(t,t,[s,o]),Ws(t,t,[a.w,a.h])}},{key:"_getAdjustedBB",value:function(t,a,n,i){var s=t.x1,o=t.y1,l=t.w,u=t.h,v=t.yOffset;a&&(s-=a,o-=a,l+=2*a,u+=2*a);var f=0,c=l*i;return n&&i<1?l=c:!n&&i<1&&(f=l-c,s+=f,l=c),{x1:s,y1:o,w:l,h:u,xOffset:f,yOffset:v}}},{key:"drawPickingRectangle",value:function(t,a,n){var i=this.atlasManager.getRenderTypeOpts(n),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=_t;var o=this.indexBuffer.getView(s);qt(a,o);var l=this.colorBuffer.getView(s);xt([0,0,0],1,l);var u=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(t,u,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},{key:"drawNode",value:function(t,a,n){var i=this.simpleShapeOptions.get(n);if(this._isVisible(t,i)){var s=i.shapeProps,o=this._getVertTypeForShape(t,s.shape);if(o===void 0||i.isSimple&&!i.isSimple(t)){this.drawTexture(t,a,n);return}var l=this.instanceCount;if(this.vertTypeBuffer.getView(l)[0]=o,o===sn||o===ga){var u=i.getBoundingBox(t),v=this._getCornerRadius(t,s.radius,u),f=this.cornerRadiusBuffer.getView(l);f[0]=v,f[1]=v,f[2]=v,f[3]=v,o===ga&&(f[0]=0,f[2]=0)}var c=this.indexBuffer.getView(l);qt(a,c);var h=t.pstyle(s.color).value,d=t.pstyle(s.opacity).value,y=this.colorBuffer.getView(l);xt(h,d,y);var g=this.lineWidthBuffer.getView(l);if(g[0]=0,g[1]=0,s.border){var p=t.pstyle("border-width").value;if(p>0){var m=t.pstyle("border-color").value,b=t.pstyle("border-opacity").value,w=this.borderColorBuffer.getView(l);xt(m,b,w);var E=t.pstyle("border-position").value;if(E==="inside")g[0]=0,g[1]=-p;else if(E==="outside")g[0]=p,g[1]=0;else{var C=p/2;g[0]=C,g[1]=-C}}}var x=this.transformBuffer.getMatrixView(l);this.setTransformMatrix(t,x,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"_getVertTypeForShape",value:function(t,a){var n=t.pstyle(a).value;switch(n){case"rectangle":return _t;case"ellipse":return pa;case"roundrectangle":case"round-rectangle":return sn;case"bottom-round-rectangle":return ga;default:return}}},{key:"_getCornerRadius",value:function(t,a,n){var i=n.w,s=n.h;if(t.pstyle(a).value==="auto")return vt(i,s);var o=t.pstyle(a).pfValue,l=i/2,u=s/2;return Math.min(o,u,l)}},{key:"drawEdgeArrow",value:function(t,a,n){if(t.visible()){var i=t._private.rscratch,s,o,l;if(n==="source"?(s=i.arrowStartX,o=i.arrowStartY,l=i.srcArrowAngle):(s=i.arrowEndX,o=i.arrowEndY,l=i.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(o)||o==null||isNaN(l)||l==null)){var u=t.pstyle(n+"-arrow-shape").value;if(u!=="none"){var v=t.pstyle(n+"-arrow-color").value,f=t.pstyle("opacity").value,c=t.pstyle("line-opacity").value,h=f*c,d=t.pstyle("width").pfValue,y=t.pstyle("arrow-scale").value,g=this.r.getArrowWidth(d,y),p=this.instanceCount,m=this.transformBuffer.getMatrixView(p);$l(m),yn(m,m,[s,o]),Ws(m,m,[g,g]),Ul(m,m,l),this.vertTypeBuffer.getView(p)[0]=Ts;var b=this.indexBuffer.getView(p);qt(a,b);var w=this.colorBuffer.getView(p);xt(v,h,w),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}}},{key:"drawEdgeLine",value:function(t,a){if(t.visible()){var n=this._getEdgePoints(t);if(n){var i=t.pstyle("opacity").value,s=t.pstyle("line-opacity").value,o=t.pstyle("width").pfValue,l=t.pstyle("line-color").value,u=i*s;if(n.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),n.length==4){var v=this.instanceCount;this.vertTypeBuffer.getView(v)[0]=Kl;var f=this.indexBuffer.getView(v);qt(a,f);var c=this.colorBuffer.getView(v);xt(l,u,c);var h=this.lineWidthBuffer.getView(v);h[0]=o;var d=this.pointAPointBBuffer.getView(v);d[0]=n[0],d[1]=n[1],d[2]=n[2],d[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}}},{key:"_isValidEdge",value:function(t){var a=t._private.rscratch;return!(a.badLine||a.allpts==null||isNaN(a.allpts[0]))}},{key:"_getEdgePoints",value:function(t){var a=t._private.rscratch;if(this._isValidEdge(t)){var n=a.allpts;if(n.length==4)return n;var i=this._getNumSegments(t);return this._getCurveSegmentPoints(n,i)}}},{key:"_getNumSegments",value:function(t){var a=15;return Math.min(Math.max(a,5),this.maxInstances)}},{key:"_getCurveSegmentPoints",value:function(t,a){if(t.length==4)return t;for(var n=Array((a+1)*2),i=0;i<=a;i++)if(i==0)n[0]=t[0],n[1]=t[1];else if(i==a)n[i*2]=t[t.length-2],n[i*2+1]=t[t.length-1];else{var s=i/a;this._setCurvePoint(t,s,n,i*2)}return n}},{key:"_setCurvePoint",value:function(t,a,n,i){if(t.length<=2)n[i]=t[0],n[i+1]=t[1];else{for(var s=Array(t.length-2),o=0;o0}},o=function(f){var c=f.pstyle("text-events").strValue==="yes";return c?An.USE_BB:An.IGNORE},l=function(f){var c=f.position(),h=c.x,d=c.y,y=f.outerWidth(),g=f.outerHeight();return{w:y,h:g,x1:h-y/2,y1:d-g/2}};t.drawing.addAtlasCollection("node",{texRows:r.webglTexRowsNodes}),t.drawing.addAtlasCollection("label",{texRows:r.webglTexRows}),t.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),t.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:l,isSimple:Uy,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),t.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:l,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),t.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:l,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),t.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:o,getKey:Ss(e.getLabelKey,null),getBoundingBox:ks(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:n(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:i("label")}),t.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:o,getKey:Ss(e.getSourceLabelKey,"source"),getBoundingBox:ks(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:n("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:i("source-label")}),t.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:o,getKey:Ss(e.getTargetLabelKey,"target"),getBoundingBox:ks(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:n("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:i("target-label")});var u=Fa(function(){console.log("garbage collect flag set"),t.data.gc=!0},1e4);t.onUpdateEleCalcs(function(v,f){var c=!1;f&&f.length>0&&(c|=t.drawing.invalidate(f)),c&&u()}),dm(t)};function cm(r){var e=r.cy.container(),t=e&&e.style&&e.style.backgroundColor||"white";return iv(t)}function Lf(r,e){var t=r._private.rscratch;return Tr(t,"labelWrapCachedLines",e)||[]}var Ss=function(e,t){return function(a){var n=e(a),i=Lf(a,t);return i.length>1?i.map(function(s,o){return"".concat(n,"_").concat(o)}):n}},ks=function(e,t){return function(a,n){var i=e(a);if(typeof n=="string"){var s=n.indexOf("_");if(s>0){var o=Number(n.substring(s+1)),l=Lf(a,t),u=i.h/l.length,v=u*o,f=i.y1+v;return{x1:i.x1,w:i.w,y1:f,h:u,yOffset:v}}}return i}};function dm(r){{var e=r.render;r.render=function(i){i=i||{};var s=r.cy;r.webgl&&(s.zoom()>Sf?(hm(r),e.call(r,i)):(gm(r),Of(r,i,Ea.SCREEN)))}}{var t=r.matchCanvasSize;r.matchCanvasSize=function(i){t.call(r,i),r.pickingFrameBuffer.setFramebufferAttachmentSizes(r.canvasWidth,r.canvasHeight),r.pickingFrameBuffer.needsDraw=!0}}r.findNearestElements=function(i,s,o,l){return xm(r,i,s)};{var a=r.invalidateCachedZSortedEles;r.invalidateCachedZSortedEles=function(){a.call(r),r.pickingFrameBuffer.needsDraw=!0}}{var n=r.notify;r.notify=function(i,s){n.call(r,i,s),i==="viewport"||i==="bounds"?r.pickingFrameBuffer.needsDraw=!0:i==="background"&&r.drawing.invalidate(s,{type:"node-body"})}}}function hm(r){var e=r.data.contexts[r.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function gm(r){var e=function(a){a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,r.canvasWidth,r.canvasHeight),a.restore()};e(r.data.contexts[r.NODE]),e(r.data.contexts[r.DRAG])}function pm(r){var e=r.canvasWidth,t=r.canvasHeight,a=bo(r),n=a.pan,i=a.zoom,s=Es();yn(s,s,[n.x,n.y]),Ws(s,s,[i,i]);var o=Es();rm(o,e,t);var l=Es();return em(l,o,s),l}function If(r,e){var t=r.canvasWidth,a=r.canvasHeight,n=bo(r),i=n.pan,s=n.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t,a),e.translate(i.x,i.y),e.scale(s,s)}function ym(r,e){r.drawSelectionRectangle(e,function(t){return If(r,t)})}function mm(r){var e=r.data.contexts[r.NODE];e.save(),If(r,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function bm(r){var e=function(n,i,s){for(var o=n.atlasManager.getAtlasCollection(i),l=r.data.contexts[r.NODE],u=o.atlases,v=0;v=0&&w.add(x)}return w}function xm(r,e,t){var a=wm(r,e,t),n=r.getCachedZSortedEles(),i,s,o=kr(a),l;try{for(o.s();!(l=o.n()).done;){var u=l.value,v=n[u];if(!i&&v.isNode()&&(i=v),!s&&v.isEdge()&&(s=v),i&&s)break}}catch(f){o.e(f)}finally{o.f()}return[i,s].filter(Boolean)}function Ds(r,e,t){var a=r.drawing;e+=1,t.isNode()?(a.drawNode(t,e,"node-underlay"),a.drawNode(t,e,"node-body"),a.drawTexture(t,e,"label"),a.drawNode(t,e,"node-overlay")):(a.drawEdgeLine(t,e),a.drawEdgeArrow(t,e,"source"),a.drawEdgeArrow(t,e,"target"),a.drawTexture(t,e,"label"),a.drawTexture(t,e,"edge-source-label"),a.drawTexture(t,e,"edge-target-label"))}function Of(r,e,t){var a;r.webglDebug&&(a=performance.now());var n=r.drawing,i=0;if(t.screen&&r.data.canvasNeedsRedraw[r.SELECT_BOX]&&ym(r,e),r.data.canvasNeedsRedraw[r.NODE]||t.picking){var s=r.data.contexts[r.WEBGL];t.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var o=pm(r),l=r.getCachedZSortedEles();if(i=l.length,n.startFrame(o,t),t.screen){for(var u=0;u0&&s>0){h.clearRect(0,0,i,s),h.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(r.full)h.translate(-a.x1*u,-a.y1*u),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(a.x1*u,a.y1*u);else{var y=e.pan(),g={x:y.x*u,y:y.y*u};u*=e.zoom(),h.translate(g.x,g.y),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(-g.x,-g.y)}r.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=r.bg,h.rect(0,0,i,s),h.fill())}return c};function Em(r,e){for(var t=atob(r),a=new ArrayBuffer(t.length),n=new Uint8Array(a),i=0;i"u"?"undefined":ar(OffscreenCanvas))!=="undefined")t=new OffscreenCanvas(r,e);else{var a=this.cy.window(),n=a.document;t=n.createElement("canvas"),t.width=r,t.height=e}return t};[Df,Hr,Jr,mo,Lt,yt,xr,Mf,mt,Wa,Ff].forEach(function(r){be(ke,r)});var Sm=[{name:"null",impl:df},{name:"base",impl:Cf},{name:"canvas",impl:Cm}],km=[{type:"layout",extensions:Qp},{type:"renderer",extensions:Sm}],qf={},_f={};function Gf(r,e,t){var a=t,n=function(T){Ve("Can not register `"+e+"` for `"+r+"` since `"+T+"` already exists in the prototype and can not be overridden")};if(r==="core"){if(Ra.prototype[e])return n(e);Ra.prototype[e]=t}else if(r==="collection"){if(fr.prototype[e])return n(e);fr.prototype[e]=t}else if(r==="layout"){for(var i=function(T){this.options=T,t.call(this,T),Le(this._private)||(this._private={}),this._private.cy=T.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(t.prototype),o=[],l=0;l r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || false, o.configurable = true, \"value\" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n writable: false\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = true,\n u = false;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = true, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty$1(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (undefined !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;\n }\n}\n\nvar _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef\n\nvar navigator = _window ? _window.navigator : null;\n_window ? _window.document : null;\nvar typeofstr = _typeof('');\nvar typeofobj = _typeof({});\nvar typeoffn = _typeof(function () {});\nvar typeofhtmlele = typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement);\nvar instanceStr = function instanceStr(obj) {\n return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;\n};\n\nvar string = function string(obj) {\n return obj != null && _typeof(obj) == typeofstr;\n};\nvar fn$6 = function fn(obj) {\n return obj != null && _typeof(obj) === typeoffn;\n};\nvar array = function array(obj) {\n return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);\n};\nvar plainObject = function plainObject(obj) {\n return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;\n};\nvar object = function object(obj) {\n return obj != null && _typeof(obj) === typeofobj;\n};\nvar number$1 = function number(obj) {\n return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);\n};\nvar integer = function integer(obj) {\n return number$1(obj) && Math.floor(obj) === obj;\n};\nvar htmlElement = function htmlElement(obj) {\n if ('undefined' === typeofhtmlele) {\n return undefined;\n } else {\n return null != obj && obj instanceof HTMLElement;\n }\n};\nvar elementOrCollection = function elementOrCollection(obj) {\n return element(obj) || collection(obj);\n};\nvar element = function element(obj) {\n return instanceStr(obj) === 'collection' && obj._private.single;\n};\nvar collection = function collection(obj) {\n return instanceStr(obj) === 'collection' && !obj._private.single;\n};\nvar core = function core(obj) {\n return instanceStr(obj) === 'core';\n};\nvar stylesheet = function stylesheet(obj) {\n return instanceStr(obj) === 'stylesheet';\n};\nvar event = function event(obj) {\n return instanceStr(obj) === 'event';\n};\nvar emptyString = function emptyString(obj) {\n if (obj === undefined || obj === null) {\n // null is empty\n return true;\n } else if (obj === '' || obj.match(/^\\s+$/)) {\n return true; // empty string is empty\n }\n return false; // otherwise, we don't know what we've got\n};\nvar domElement = function domElement(obj) {\n if (typeof HTMLElement === 'undefined') {\n return false; // we're not in a browser so it doesn't matter\n } else {\n return obj instanceof HTMLElement;\n }\n};\nvar boundingBox = function boundingBox(obj) {\n return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);\n};\nvar promise = function promise(obj) {\n return object(obj) && fn$6(obj.then);\n};\nvar ms = function ms() {\n return navigator && navigator.userAgent.match(/msie|trident|edge/i);\n}; // probably a better way to detect this...\n\nvar memoize = function memoize(fn, keyFn) {\n if (!keyFn) {\n keyFn = function keyFn() {\n if (arguments.length === 1) {\n return arguments[0];\n } else if (arguments.length === 0) {\n return 'undefined';\n }\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n return args.join('$');\n };\n }\n var _memoizedFn = function memoizedFn() {\n var self = this;\n var args = arguments;\n var ret;\n var k = keyFn.apply(self, args);\n var cache = _memoizedFn.cache;\n if (!(ret = cache[k])) {\n ret = cache[k] = fn.apply(self, args);\n }\n return ret;\n };\n _memoizedFn.cache = {};\n return _memoizedFn;\n};\n\nvar camel2dash = memoize(function (str) {\n return str.replace(/([A-Z])/g, function (v) {\n return '-' + v.toLowerCase();\n });\n});\nvar dash2camel = memoize(function (str) {\n return str.replace(/(-\\w)/g, function (v) {\n return v[1].toUpperCase();\n });\n});\nvar prependCamel = memoize(function (prefix, str) {\n return prefix + str[0].toUpperCase() + str.substring(1);\n}, function (prefix, str) {\n return prefix + '$' + str;\n});\nvar capitalize = function capitalize(str) {\n if (emptyString(str)) {\n return str;\n }\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\nvar endsWith = function endsWith(string, suffix) {\n return string.slice(-1 * suffix.length) === suffix;\n};\n\nvar number = '(?:[-+]?(?:(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[Ee][+-]?\\\\d+)?))';\nvar rgba = 'rgb[a]?\\\\((' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\nvar rgbaNoBackRefs = 'rgb[a]?\\\\((?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\nvar hsla = 'hsl[a]?\\\\((' + number + ')\\\\s*,\\\\s*(' + number + '[%])\\\\s*,\\\\s*(' + number + '[%])(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\nvar hslaNoBackRefs = 'hsl[a]?\\\\((?:' + number + ')\\\\s*,\\\\s*(?:' + number + '[%])\\\\s*,\\\\s*(?:' + number + '[%])(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\nvar hex3 = '\\\\#[0-9a-fA-F]{3}';\nvar hex6 = '\\\\#[0-9a-fA-F]{6}';\n\nvar ascending = function ascending(a, b) {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n};\nvar descending = function descending(a, b) {\n return -1 * ascending(a, b);\n};\n\nvar extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n var args = arguments;\n for (var i = 1; i < args.length; i++) {\n var obj = args[i];\n if (obj == null) {\n continue;\n }\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n tgt[k] = obj[k];\n }\n }\n return tgt;\n};\n\n// get [r, g, b] from #abc or #aabbcc\nvar hex2tuple = function hex2tuple(hex) {\n if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') {\n return;\n }\n var shortHex = hex.length === 4;\n var r, g, b;\n var base = 16;\n if (shortHex) {\n r = parseInt(hex[1] + hex[1], base);\n g = parseInt(hex[2] + hex[2], base);\n b = parseInt(hex[3] + hex[3], base);\n } else {\n r = parseInt(hex[1] + hex[2], base);\n g = parseInt(hex[3] + hex[4], base);\n b = parseInt(hex[5] + hex[6], base);\n }\n return [r, g, b];\n};\n\n// get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0)\nvar hsl2tuple = function hsl2tuple(hsl) {\n var ret;\n var h, s, l, a, r, g, b;\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n var m = new RegExp('^' + hsla + '$').exec(hsl);\n if (m) {\n // get hue\n h = parseInt(m[1]);\n if (h < 0) {\n h = (360 - -1 * h % 360) % 360;\n } else if (h > 360) {\n h = h % 360;\n }\n h /= 360; // normalise on [0, 1]\n\n s = parseFloat(m[2]);\n if (s < 0 || s > 100) {\n return;\n } // saturation is [0, 100]\n s = s / 100; // normalise on [0, 1]\n\n l = parseFloat(m[3]);\n if (l < 0 || l > 100) {\n return;\n } // lightness is [0, 100]\n l = l / 100; // normalise on [0, 1]\n\n a = m[4];\n if (a !== undefined) {\n a = parseFloat(a);\n if (a < 0 || a > 1) {\n return;\n } // alpha is [0, 1]\n }\n\n // now, convert to rgb\n // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript\n if (s === 0) {\n r = g = b = Math.round(l * 255); // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = Math.round(255 * hue2rgb(p, q, h + 1 / 3));\n g = Math.round(255 * hue2rgb(p, q, h));\n b = Math.round(255 * hue2rgb(p, q, h - 1 / 3));\n }\n ret = [r, g, b, a];\n }\n return ret;\n};\n\n// get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0)\nvar rgb2tuple = function rgb2tuple(rgb) {\n var ret;\n var m = new RegExp('^' + rgba + '$').exec(rgb);\n if (m) {\n ret = [];\n var isPct = [];\n for (var i = 1; i <= 3; i++) {\n var channel = m[i];\n if (channel[channel.length - 1] === '%') {\n isPct[i] = true;\n }\n channel = parseFloat(channel);\n if (isPct[i]) {\n channel = channel / 100 * 255; // normalise to [0, 255]\n }\n if (channel < 0 || channel > 255) {\n return;\n } // invalid channel value\n\n ret.push(Math.floor(channel));\n }\n var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];\n var allArePct = isPct[1] && isPct[2] && isPct[3];\n if (atLeastOneIsPct && !allArePct) {\n return;\n } // must all be percent values if one is\n\n var alpha = m[4];\n if (alpha !== undefined) {\n alpha = parseFloat(alpha);\n if (alpha < 0 || alpha > 1) {\n return;\n } // invalid alpha value\n\n ret.push(alpha);\n }\n }\n return ret;\n};\nvar colorname2tuple = function colorname2tuple(color) {\n return colors[color.toLowerCase()];\n};\nvar color2tuple = function color2tuple(color) {\n return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);\n};\nvar colors = {\n // special colour names\n transparent: [0, 0, 0, 0],\n // NB alpha === 0\n\n // regular colours\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\n\n// sets the value in a map (map may not be built)\nvar setMap = function setMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to set map with object key');\n }\n if (i < keys.length - 1) {\n // extend the map if necessary\n if (obj[key] == null) {\n obj[key] = {};\n }\n obj = obj[key];\n } else {\n // set the value\n obj[key] = options.value;\n }\n }\n};\n\n// gets the value in a map even if it's not built in places\nvar getMap = function getMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to get map with object key');\n }\n obj = obj[key];\n if (obj == null) {\n return obj;\n }\n }\n return obj;\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\nvar isObject_1;\nvar hasRequiredIsObject;\n\nfunction requireIsObject () {\n\tif (hasRequiredIsObject) return isObject_1;\n\thasRequiredIsObject = 1;\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return value != null && (type == 'object' || type == 'function');\n\t}\n\n\tisObject_1 = isObject;\n\treturn isObject_1;\n}\n\n/** Detect free variable `global` from Node.js. */\n\nvar _freeGlobal;\nvar hasRequired_freeGlobal;\n\nfunction require_freeGlobal () {\n\tif (hasRequired_freeGlobal) return _freeGlobal;\n\thasRequired_freeGlobal = 1;\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t_freeGlobal = freeGlobal;\n\treturn _freeGlobal;\n}\n\nvar _root;\nvar hasRequired_root;\n\nfunction require_root () {\n\tif (hasRequired_root) return _root;\n\thasRequired_root = 1;\n\tvar freeGlobal = require_freeGlobal();\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t_root = root;\n\treturn _root;\n}\n\nvar now_1;\nvar hasRequiredNow;\n\nfunction requireNow () {\n\tif (hasRequiredNow) return now_1;\n\thasRequiredNow = 1;\n\tvar root = require_root();\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred invocation.\n\t */\n\tvar now = function() {\n\t return root.Date.now();\n\t};\n\n\tnow_1 = now;\n\treturn now_1;\n}\n\n/** Used to match a single whitespace character. */\n\nvar _trimmedEndIndex;\nvar hasRequired_trimmedEndIndex;\n\nfunction require_trimmedEndIndex () {\n\tif (hasRequired_trimmedEndIndex) return _trimmedEndIndex;\n\thasRequired_trimmedEndIndex = 1;\n\tvar reWhitespace = /\\s/;\n\n\t/**\n\t * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n\t * character of `string`.\n\t *\n\t * @private\n\t * @param {string} string The string to inspect.\n\t * @returns {number} Returns the index of the last non-whitespace character.\n\t */\n\tfunction trimmedEndIndex(string) {\n\t var index = string.length;\n\n\t while (index-- && reWhitespace.test(string.charAt(index))) {}\n\t return index;\n\t}\n\n\t_trimmedEndIndex = trimmedEndIndex;\n\treturn _trimmedEndIndex;\n}\n\nvar _baseTrim;\nvar hasRequired_baseTrim;\n\nfunction require_baseTrim () {\n\tif (hasRequired_baseTrim) return _baseTrim;\n\thasRequired_baseTrim = 1;\n\tvar trimmedEndIndex = require_trimmedEndIndex();\n\n\t/** Used to match leading whitespace. */\n\tvar reTrimStart = /^\\s+/;\n\n\t/**\n\t * The base implementation of `_.trim`.\n\t *\n\t * @private\n\t * @param {string} string The string to trim.\n\t * @returns {string} Returns the trimmed string.\n\t */\n\tfunction baseTrim(string) {\n\t return string\n\t ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n\t : string;\n\t}\n\n\t_baseTrim = baseTrim;\n\treturn _baseTrim;\n}\n\nvar _Symbol;\nvar hasRequired_Symbol;\n\nfunction require_Symbol () {\n\tif (hasRequired_Symbol) return _Symbol;\n\thasRequired_Symbol = 1;\n\tvar root = require_root();\n\n\t/** Built-in value references. */\n\tvar Symbol = root.Symbol;\n\n\t_Symbol = Symbol;\n\treturn _Symbol;\n}\n\nvar _getRawTag;\nvar hasRequired_getRawTag;\n\nfunction require_getRawTag () {\n\tif (hasRequired_getRawTag) return _getRawTag;\n\thasRequired_getRawTag = 1;\n\tvar Symbol = require_Symbol();\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n\t/**\n\t * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the raw `toStringTag`.\n\t */\n\tfunction getRawTag(value) {\n\t var isOwn = hasOwnProperty.call(value, symToStringTag),\n\t tag = value[symToStringTag];\n\n\t try {\n\t value[symToStringTag] = undefined;\n\t var unmasked = true;\n\t } catch (e) {}\n\n\t var result = nativeObjectToString.call(value);\n\t if (unmasked) {\n\t if (isOwn) {\n\t value[symToStringTag] = tag;\n\t } else {\n\t delete value[symToStringTag];\n\t }\n\t }\n\t return result;\n\t}\n\n\t_getRawTag = getRawTag;\n\treturn _getRawTag;\n}\n\n/** Used for built-in method references. */\n\nvar _objectToString;\nvar hasRequired_objectToString;\n\nfunction require_objectToString () {\n\tif (hasRequired_objectToString) return _objectToString;\n\thasRequired_objectToString = 1;\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\n\t/**\n\t * Converts `value` to a string using `Object.prototype.toString`.\n\t *\n\t * @private\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t */\n\tfunction objectToString(value) {\n\t return nativeObjectToString.call(value);\n\t}\n\n\t_objectToString = objectToString;\n\treturn _objectToString;\n}\n\nvar _baseGetTag;\nvar hasRequired_baseGetTag;\n\nfunction require_baseGetTag () {\n\tif (hasRequired_baseGetTag) return _baseGetTag;\n\thasRequired_baseGetTag = 1;\n\tvar Symbol = require_Symbol(),\n\t getRawTag = require_getRawTag(),\n\t objectToString = require_objectToString();\n\n\t/** `Object#toString` result references. */\n\tvar nullTag = '[object Null]',\n\t undefinedTag = '[object Undefined]';\n\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n\t/**\n\t * The base implementation of `getTag` without fallbacks for buggy environments.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t if (value == null) {\n\t return value === undefined ? undefinedTag : nullTag;\n\t }\n\t return (symToStringTag && symToStringTag in Object(value))\n\t ? getRawTag(value)\n\t : objectToString(value);\n\t}\n\n\t_baseGetTag = baseGetTag;\n\treturn _baseGetTag;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\nvar isObjectLike_1;\nvar hasRequiredIsObjectLike;\n\nfunction requireIsObjectLike () {\n\tif (hasRequiredIsObjectLike) return isObjectLike_1;\n\thasRequiredIsObjectLike = 1;\n\tfunction isObjectLike(value) {\n\t return value != null && typeof value == 'object';\n\t}\n\n\tisObjectLike_1 = isObjectLike;\n\treturn isObjectLike_1;\n}\n\nvar isSymbol_1;\nvar hasRequiredIsSymbol;\n\nfunction requireIsSymbol () {\n\tif (hasRequiredIsSymbol) return isSymbol_1;\n\thasRequiredIsSymbol = 1;\n\tvar baseGetTag = require_baseGetTag(),\n\t isObjectLike = requireIsObjectLike();\n\n\t/** `Object#toString` result references. */\n\tvar symbolTag = '[object Symbol]';\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' ||\n\t (isObjectLike(value) && baseGetTag(value) == symbolTag);\n\t}\n\n\tisSymbol_1 = isSymbol;\n\treturn isSymbol_1;\n}\n\nvar toNumber_1;\nvar hasRequiredToNumber;\n\nfunction requireToNumber () {\n\tif (hasRequiredToNumber) return toNumber_1;\n\thasRequiredToNumber = 1;\n\tvar baseTrim = require_baseTrim(),\n\t isObject = requireIsObject(),\n\t isSymbol = requireIsSymbol();\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3.2);\n\t * // => 3.2\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3.2');\n\t * // => 3.2\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n\t value = isObject(other) ? (other + '') : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = baseTrim(value);\n\t var isBinary = reIsBinary.test(value);\n\t return (isBinary || reIsOctal.test(value))\n\t ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n\t : (reIsBadHex.test(value) ? NAN : +value);\n\t}\n\n\ttoNumber_1 = toNumber;\n\treturn toNumber_1;\n}\n\nvar debounce_1;\nvar hasRequiredDebounce;\n\nfunction requireDebounce () {\n\tif (hasRequiredDebounce) return debounce_1;\n\thasRequiredDebounce = 1;\n\tvar isObject = requireIsObject(),\n\t now = requireNow(),\n\t toNumber = requireToNumber();\n\n\t/** Error message constants. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide `options` to indicate whether `func` should be invoked on the\n\t * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent\n\t * calls to the debounced function return the result of the last `func`\n\t * invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is\n\t * invoked on the trailing edge of the timeout only if the debounced function\n\t * is invoked more than once during the `wait` timeout.\n\t *\n\t * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n\t * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t timeWaiting = wait - timeSinceLastCall;\n\n\t return maxing\n\t ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n\t : timeWaiting;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n\t (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastInvokeTime = 0;\n\t lastArgs = lastCallTime = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\tdebounce_1 = debounce;\n\treturn debounce_1;\n}\n\nvar debounceExports = requireDebounce();\nvar debounce = /*@__PURE__*/getDefaultExportFromCjs(debounceExports);\n\nvar performance$1 = _window ? _window.performance : null;\nvar pnow = performance$1 && performance$1.now ? function () {\n return performance$1.now();\n} : function () {\n return Date.now();\n};\nvar raf = function () {\n if (_window) {\n if (_window.requestAnimationFrame) {\n return function (fn) {\n _window.requestAnimationFrame(fn);\n };\n } else if (_window.mozRequestAnimationFrame) {\n return function (fn) {\n _window.mozRequestAnimationFrame(fn);\n };\n } else if (_window.webkitRequestAnimationFrame) {\n return function (fn) {\n _window.webkitRequestAnimationFrame(fn);\n };\n } else if (_window.msRequestAnimationFrame) {\n return function (fn) {\n _window.msRequestAnimationFrame(fn);\n };\n }\n }\n return function (fn) {\n if (fn) {\n setTimeout(function () {\n fn(pnow());\n }, 1000 / 60);\n }\n };\n}();\nvar requestAnimationFrame = function requestAnimationFrame(fn) {\n return raf(fn);\n};\nvar performanceNow = pnow;\n\nvar DEFAULT_HASH_SEED = 9261;\nvar K = 65599; // 37 also works pretty well\nvar DEFAULT_HASH_SEED_ALT = 5381;\nvar hashIterableInts = function hashIterableInts(iterator) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n var hash = seed;\n var entry;\n for (;;) {\n entry = iterator.next();\n if (entry.done) {\n break;\n }\n hash = hash * K + entry.value | 0;\n }\n return hash;\n};\nvar hashInt = function hashInt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n return seed * K + num | 0;\n};\nvar hashIntAlt = function hashIntAlt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT;\n // djb2/string-hash\n return (seed << 5) + seed + num | 0;\n};\nvar combineHashes = function combineHashes(hash1, hash2) {\n return hash1 * 0x200000 + hash2;\n};\nvar combineHashesArray = function combineHashesArray(hashes) {\n return hashes[0] * 0x200000 + hashes[1];\n};\nvar hashArrays = function hashArrays(hashes1, hashes2) {\n return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];\n};\nvar hashIntsArray = function hashIntsArray(ints, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = ints.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = ints[i++];\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n};\nvar hashString = function hashString(str, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = str.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = str.charCodeAt(i++);\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n};\nvar hashStrings = function hashStrings() {\n return hashStringsArray(arguments);\n};\nvar hashStringsArray = function hashStringsArray(strs) {\n var hash;\n for (var i = 0; i < strs.length; i++) {\n var str = strs[i];\n if (i === 0) {\n hash = hashString(str);\n } else {\n hash = hashString(str, hash);\n }\n }\n return hash;\n};\n\nfunction rotatePoint(x, y, centerX, centerY, angleDegrees) {\n var angleRadians = angleDegrees * Math.PI / 180;\n var rotatedX = Math.cos(angleRadians) * (x - centerX) - Math.sin(angleRadians) * (y - centerY) + centerX;\n var rotatedY = Math.sin(angleRadians) * (x - centerX) + Math.cos(angleRadians) * (y - centerY) + centerY;\n return {\n x: rotatedX,\n y: rotatedY\n };\n}\nvar movePointByBoxAspect = function movePointByBoxAspect(x, y, boxX, boxY, skewX, skewY) {\n return {\n x: (x - boxX) * skewX + boxX,\n y: (y - boxY) * skewY + boxY\n };\n};\nfunction rotatePosAndSkewByBox(pos, box, angleDegrees) {\n if (angleDegrees === 0) return pos;\n var centerX = (box.x1 + box.x2) / 2;\n var centerY = (box.y1 + box.y2) / 2;\n var skewX = box.w / box.h;\n var skewY = 1 / skewX;\n var rotated = rotatePoint(pos.x, pos.y, centerX, centerY, angleDegrees);\n var skewed = movePointByBoxAspect(rotated.x, rotated.y, centerX, centerY, skewX, skewY);\n return {\n x: skewed.x,\n y: skewed.y\n };\n}\n\nvar warningsEnabled = true;\nvar warnSupported = console.warn != null;\nvar traceSupported = console.trace != null;\nvar MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;\nvar trueify = function trueify() {\n return true;\n};\nvar falsify = function falsify() {\n return false;\n};\nvar zeroify = function zeroify() {\n return 0;\n};\nvar noop$1 = function noop() {};\nvar error = function error(msg) {\n throw new Error(msg);\n};\nvar warnings = function warnings(enabled) {\n if (enabled !== undefined) {\n warningsEnabled = !!enabled;\n } else {\n return warningsEnabled;\n }\n};\nvar warn = function warn(msg) {\n if (!warnings()) {\n return;\n }\n if (warnSupported) {\n console.warn(msg);\n } else {\n console.log(msg);\n if (traceSupported) {\n console.trace();\n }\n }\n};\nvar clone = function clone(obj) {\n return extend({}, obj);\n};\n\n// gets a shallow copy of the argument\nvar copy = function copy(obj) {\n if (obj == null) {\n return obj;\n }\n if (array(obj)) {\n return obj.slice();\n } else if (plainObject(obj)) {\n return clone(obj);\n } else {\n return obj;\n }\n};\nvar copyArray = function copyArray(arr) {\n return arr.slice();\n};\nvar uuid = function uuid(a, b /* placeholders */) {\n for (\n // loop :)\n b = a = '';\n // b - result , a - numeric letiable\n a++ < 36;\n //\n b += a * 51 & 52 // if \"a\" is not 9 or 14 or 19 or 24\n ?\n // return a random number or 4\n (a ^ 15 // if \"a\" is not 15\n ?\n // generate a random number from 0 to 15\n 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless \"a\" is 20, in which case a random number from 8 to 11\n : 4 // otherwise 4\n ).toString(16) : '-' // in other cases (if \"a\" is 9,14,19,24) insert \"-\"\n );\n return b;\n};\nvar _staticEmptyObject = {};\nvar staticEmptyObject = function staticEmptyObject() {\n return _staticEmptyObject;\n};\nvar defaults$g = function defaults(_defaults) {\n var keys = Object.keys(_defaults);\n return function (opts) {\n var filledOpts = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var optVal = opts == null ? undefined : opts[key];\n filledOpts[key] = optVal === undefined ? _defaults[key] : optVal;\n }\n return filledOpts;\n };\n};\nvar removeFromArray = function removeFromArray(arr, ele, oneCopy) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (arr[i] === ele) {\n arr.splice(i, 1);\n }\n }\n};\nvar clearArray = function clearArray(arr) {\n arr.splice(0, arr.length);\n};\nvar push = function push(arr, otherArr) {\n for (var i = 0; i < otherArr.length; i++) {\n var el = otherArr[i];\n arr.push(el);\n }\n};\nvar getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n return obj[propName];\n};\nvar setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n obj[propName] = value;\n};\n\n/* global Map */\nvar ObjectMap = /*#__PURE__*/function () {\n function ObjectMap() {\n _classCallCheck(this, ObjectMap);\n this._obj = {};\n }\n return _createClass(ObjectMap, [{\n key: \"set\",\n value: function set(key, val) {\n this._obj[key] = val;\n return this;\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this._obj[key] = undefined;\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = {};\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return this._obj[key] !== undefined;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this._obj[key];\n }\n }]);\n}();\nvar Map$1 = typeof Map !== 'undefined' ? Map : ObjectMap;\n\n/* global Set */\n\nvar undef = \"undefined\" ;\nvar ObjectSet = /*#__PURE__*/function () {\n function ObjectSet(arrayOrObjectSet) {\n _classCallCheck(this, ObjectSet);\n this._obj = Object.create(null);\n this.size = 0;\n if (arrayOrObjectSet != null) {\n var arr;\n if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {\n arr = arrayOrObjectSet.toArray();\n } else {\n arr = arrayOrObjectSet;\n }\n for (var i = 0; i < arr.length; i++) {\n this.add(arr[i]);\n }\n }\n }\n return _createClass(ObjectSet, [{\n key: \"instanceString\",\n value: function instanceString() {\n return 'set';\n }\n }, {\n key: \"add\",\n value: function add(val) {\n var o = this._obj;\n if (o[val] !== 1) {\n o[val] = 1;\n this.size++;\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(val) {\n var o = this._obj;\n if (o[val] === 1) {\n o[val] = 0;\n this.size--;\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = Object.create(null);\n }\n }, {\n key: \"has\",\n value: function has(val) {\n return this._obj[val] === 1;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var _this = this;\n return Object.keys(this._obj).filter(function (key) {\n return _this.has(key);\n });\n }\n }, {\n key: \"forEach\",\n value: function forEach(callback, thisArg) {\n return this.toArray().forEach(callback, thisArg);\n }\n }]);\n}();\nvar Set$1 = (typeof Set === \"undefined\" ? \"undefined\" : _typeof(Set)) !== undef ? Set : ObjectSet;\n\n// represents a node or an edge\nvar Element = function Element(cy, params) {\n var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (cy === undefined || params === undefined || !core(cy)) {\n error('An element must have a core reference and parameters set');\n return;\n }\n var group = params.group;\n\n // try to automatically infer the group if unspecified\n if (group == null) {\n if (params.data && params.data.source != null && params.data.target != null) {\n group = 'edges';\n } else {\n group = 'nodes';\n }\n }\n\n // validate group\n if (group !== 'nodes' && group !== 'edges') {\n error('An element must be of type `nodes` or `edges`; you specified `' + group + '`');\n return;\n }\n\n // make the element array-like, just like a collection\n this.length = 1;\n this[0] = this;\n\n // NOTE: when something is added here, add also to ele.json()\n var _p = this._private = {\n cy: cy,\n single: true,\n // indicates this is an element\n data: params.data || {},\n // data object\n position: params.position || {\n x: 0,\n y: 0\n },\n // (x, y) position pair\n autoWidth: undefined,\n // width and height of nodes calculated by the renderer when set to special 'auto' value\n autoHeight: undefined,\n autoPadding: undefined,\n compoundBoundsClean: false,\n // whether the compound dimensions need to be recalculated the next time dimensions are read\n listeners: [],\n // array of bound listeners\n group: group,\n // string; 'nodes' or 'edges'\n style: {},\n // properties as set by the style\n rstyle: {},\n // properties for style sent from the renderer to the core\n styleCxts: [],\n // applied style contexts from the styler\n styleKeys: {},\n // per-group keys of style property values\n removed: true,\n // whether it's inside the vis; true if removed (set true here since we call restore)\n selected: params.selected ? true : false,\n // whether it's selected\n selectable: params.selectable === undefined ? true : params.selectable ? true : false,\n // whether it's selectable\n locked: params.locked ? true : false,\n // whether the element is locked (cannot be moved)\n grabbed: false,\n // whether the element is grabbed by the mouse; renderer sets this privately\n grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false,\n // whether the element can be grabbed\n pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false,\n // whether the element has passthrough panning enabled\n active: false,\n // whether the element is active from user interaction\n classes: new Set$1(),\n // map ( className => true )\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n rscratch: {},\n // object in which the renderer can store information\n scratch: params.scratch || {},\n // scratch objects\n edges: [],\n // array of connected edges\n children: [],\n // array of children\n parent: params.parent && params.parent.isNode() ? params.parent : null,\n // parent ref\n traversalCache: {},\n // cache of output of traversal functions\n backgrounding: false,\n // whether background images are loading\n bbCache: null,\n // cache of the current bounding box\n bbCacheShift: {\n x: 0,\n y: 0\n },\n // shift applied to cached bb to be applied on next get\n bodyBounds: null,\n // bounds cache of element body, w/o overlay\n overlayBounds: null,\n // bounds cache of element body, including overlay\n labelBounds: {\n // bounds cache of labels\n all: null,\n source: null,\n target: null,\n main: null\n },\n arrowBounds: {\n // bounds cache of edge arrows\n source: null,\n target: null,\n 'mid-source': null,\n 'mid-target': null\n }\n };\n if (_p.position.x == null) {\n _p.position.x = 0;\n }\n if (_p.position.y == null) {\n _p.position.y = 0;\n }\n\n // renderedPosition overrides if specified\n if (params.renderedPosition) {\n var rpos = params.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n _p.position = {\n x: (rpos.x - pan.x) / zoom,\n y: (rpos.y - pan.y) / zoom\n };\n }\n var classes = [];\n if (array(params.classes)) {\n classes = params.classes;\n } else if (string(params.classes)) {\n classes = params.classes.split(/\\s+/);\n }\n for (var i = 0, l = classes.length; i < l; i++) {\n var cls = classes[i];\n if (!cls || cls === '') {\n continue;\n }\n _p.classes.add(cls);\n }\n this.createEmitter();\n if (restore === undefined || restore) {\n this.restore();\n }\n var bypass = params.style || params.css;\n if (bypass) {\n warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.');\n this.style(bypass);\n }\n};\n\nvar defineSearch = function defineSearch(params) {\n params = {\n bfs: params.bfs || !params.dfs,\n dfs: params.dfs || !params.bfs\n };\n\n // from pseudocode on wikipedia\n return function searchFn(roots, fn, directed) {\n var options;\n if (plainObject(roots) && !elementOrCollection(roots)) {\n options = roots;\n roots = options.roots || options.root;\n fn = options.visit;\n directed = options.directed;\n }\n directed = arguments.length === 2 && !fn$6(fn) ? fn : directed;\n fn = fn$6(fn) ? fn : function () {};\n var cy = this._private.cy;\n var v = roots = string(roots) ? this.filter(roots) : roots;\n var Q = [];\n var connectedNodes = [];\n var connectedBy = {};\n var id2depth = {};\n var V = {};\n var j = 0;\n var found;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n\n // enqueue v\n for (var i = 0; i < v.length; i++) {\n var vi = v[i];\n var viId = vi.id();\n if (vi.isNode()) {\n Q.unshift(vi);\n if (params.bfs) {\n V[viId] = true;\n connectedNodes.push(vi);\n }\n id2depth[viId] = 0;\n }\n }\n var _loop = function _loop() {\n var v = params.bfs ? Q.shift() : Q.pop();\n var vId = v.id();\n if (params.dfs) {\n if (V[vId]) {\n return 0; // continue\n }\n V[vId] = true;\n connectedNodes.push(v);\n }\n var depth = id2depth[vId];\n var prevEdge = connectedBy[vId];\n var src = prevEdge != null ? prevEdge.source() : null;\n var tgt = prevEdge != null ? prevEdge.target() : null;\n var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0];\n var ret;\n ret = fn(v, prevEdge, prevNode, j++, depth);\n if (ret === true) {\n found = v;\n return 1; // break\n }\n if (ret === false) {\n return 1; // break\n }\n var vwEdges = v.connectedEdges().filter(function (e) {\n return (!directed || e.source().same(v)) && edges.has(e);\n });\n for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {\n var e = vwEdges[_i2];\n var w = e.connectedNodes().filter(function (n) {\n return !n.same(v) && nodes.has(n);\n });\n var wId = w.id();\n if (w.length !== 0 && !V[wId]) {\n w = w[0];\n Q.push(w);\n if (params.bfs) {\n V[wId] = true;\n connectedNodes.push(w);\n }\n connectedBy[wId] = e;\n id2depth[wId] = id2depth[vId] + 1;\n }\n }\n },\n _ret;\n while (Q.length !== 0) {\n _ret = _loop();\n if (_ret === 0) continue;\n if (_ret === 1) break;\n }\n var connectedEles = cy.collection();\n for (var _i = 0; _i < connectedNodes.length; _i++) {\n var node = connectedNodes[_i];\n var edge = connectedBy[node.id()];\n if (edge != null) {\n connectedEles.push(edge);\n }\n connectedEles.push(node);\n }\n return {\n path: cy.collection(connectedEles),\n found: cy.collection(found)\n };\n };\n};\n\n// search, spanning trees, etc\nvar elesfn$v = {\n breadthFirstSearch: defineSearch({\n bfs: true\n }),\n depthFirstSearch: defineSearch({\n dfs: true\n })\n};\n\n// nice, short mathematical alias\nelesfn$v.bfs = elesfn$v.breadthFirstSearch;\nelesfn$v.dfs = elesfn$v.depthFirstSearch;\n\nvar heap$2 = {exports: {}};\n\nvar heap$1 = heap$2.exports;\n\nvar hasRequiredHeap$1;\n\nfunction requireHeap$1 () {\n\tif (hasRequiredHeap$1) return heap$2.exports;\n\thasRequiredHeap$1 = 1;\n\t(function (module, exports) {\n\t\t// Generated by CoffeeScript 1.8.0\n\t\t(function() {\n\t\t var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup;\n\n\t\t floor = Math.floor, min = Math.min;\n\n\n\t\t /*\n\t\t Default comparison function to be used\n\t\t */\n\n\t\t defaultCmp = function(x, y) {\n\t\t if (x < y) {\n\t\t return -1;\n\t\t }\n\t\t if (x > y) {\n\t\t return 1;\n\t\t }\n\t\t return 0;\n\t\t };\n\n\n\t\t /*\n\t\t Insert item x in list a, and keep it sorted assuming a is sorted.\n\t\t \n\t\t If x is already in a, insert it to the right of the rightmost x.\n\t\t \n\t\t Optional args lo (default 0) and hi (default a.length) bound the slice\n\t\t of a to be searched.\n\t\t */\n\n\t\t insort = function(a, x, lo, hi, cmp) {\n\t\t var mid;\n\t\t if (lo == null) {\n\t\t lo = 0;\n\t\t }\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t if (lo < 0) {\n\t\t throw new Error('lo must be non-negative');\n\t\t }\n\t\t if (hi == null) {\n\t\t hi = a.length;\n\t\t }\n\t\t while (lo < hi) {\n\t\t mid = floor((lo + hi) / 2);\n\t\t if (cmp(x, a[mid]) < 0) {\n\t\t hi = mid;\n\t\t } else {\n\t\t lo = mid + 1;\n\t\t }\n\t\t }\n\t\t return ([].splice.apply(a, [lo, lo - lo].concat(x)), x);\n\t\t };\n\n\n\t\t /*\n\t\t Push item onto heap, maintaining the heap invariant.\n\t\t */\n\n\t\t heappush = function(array, item, cmp) {\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t array.push(item);\n\t\t return _siftdown(array, 0, array.length - 1, cmp);\n\t\t };\n\n\n\t\t /*\n\t\t Pop the smallest item off the heap, maintaining the heap invariant.\n\t\t */\n\n\t\t heappop = function(array, cmp) {\n\t\t var lastelt, returnitem;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t lastelt = array.pop();\n\t\t if (array.length) {\n\t\t returnitem = array[0];\n\t\t array[0] = lastelt;\n\t\t _siftup(array, 0, cmp);\n\t\t } else {\n\t\t returnitem = lastelt;\n\t\t }\n\t\t return returnitem;\n\t\t };\n\n\n\t\t /*\n\t\t Pop and return the current smallest value, and add the new item.\n\t\t \n\t\t This is more efficient than heappop() followed by heappush(), and can be\n\t\t more appropriate when using a fixed size heap. Note that the value\n\t\t returned may be larger than item! That constrains reasonable use of\n\t\t this routine unless written as part of a conditional replacement:\n\t\t if item > array[0]\n\t\t item = heapreplace(array, item)\n\t\t */\n\n\t\t heapreplace = function(array, item, cmp) {\n\t\t var returnitem;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t returnitem = array[0];\n\t\t array[0] = item;\n\t\t _siftup(array, 0, cmp);\n\t\t return returnitem;\n\t\t };\n\n\n\t\t /*\n\t\t Fast version of a heappush followed by a heappop.\n\t\t */\n\n\t\t heappushpop = function(array, item, cmp) {\n\t\t var _ref;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t if (array.length && cmp(array[0], item) < 0) {\n\t\t _ref = [array[0], item], item = _ref[0], array[0] = _ref[1];\n\t\t _siftup(array, 0, cmp);\n\t\t }\n\t\t return item;\n\t\t };\n\n\n\t\t /*\n\t\t Transform list into a heap, in-place, in O(array.length) time.\n\t\t */\n\n\t\t heapify = function(array, cmp) {\n\t\t var i, _i, _len, _ref1, _results, _results1;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t _ref1 = (function() {\n\t\t _results1 = [];\n\t\t for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); }\n\t\t return _results1;\n\t\t }).apply(this).reverse();\n\t\t _results = [];\n\t\t for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n\t\t i = _ref1[_i];\n\t\t _results.push(_siftup(array, i, cmp));\n\t\t }\n\t\t return _results;\n\t\t };\n\n\n\t\t /*\n\t\t Update the position of the given item in the heap.\n\t\t This function should be called every time the item is being modified.\n\t\t */\n\n\t\t updateItem = function(array, item, cmp) {\n\t\t var pos;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t pos = array.indexOf(item);\n\t\t if (pos === -1) {\n\t\t return;\n\t\t }\n\t\t _siftdown(array, 0, pos, cmp);\n\t\t return _siftup(array, pos, cmp);\n\t\t };\n\n\n\t\t /*\n\t\t Find the n largest elements in a dataset.\n\t\t */\n\n\t\t nlargest = function(array, n, cmp) {\n\t\t var elem, result, _i, _len, _ref;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t result = array.slice(0, n);\n\t\t if (!result.length) {\n\t\t return result;\n\t\t }\n\t\t heapify(result, cmp);\n\t\t _ref = array.slice(n);\n\t\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t\t elem = _ref[_i];\n\t\t heappushpop(result, elem, cmp);\n\t\t }\n\t\t return result.sort(cmp).reverse();\n\t\t };\n\n\n\t\t /*\n\t\t Find the n smallest elements in a dataset.\n\t\t */\n\n\t\t nsmallest = function(array, n, cmp) {\n\t\t var elem, los, result, _i, _j, _len, _ref, _ref1, _results;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t if (n * 10 <= array.length) {\n\t\t result = array.slice(0, n).sort(cmp);\n\t\t if (!result.length) {\n\t\t return result;\n\t\t }\n\t\t los = result[result.length - 1];\n\t\t _ref = array.slice(n);\n\t\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t\t elem = _ref[_i];\n\t\t if (cmp(elem, los) < 0) {\n\t\t insort(result, elem, 0, null, cmp);\n\t\t result.pop();\n\t\t los = result[result.length - 1];\n\t\t }\n\t\t }\n\t\t return result;\n\t\t }\n\t\t heapify(array, cmp);\n\t\t _results = [];\n\t\t for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {\n\t\t _results.push(heappop(array, cmp));\n\t\t }\n\t\t return _results;\n\t\t };\n\n\t\t _siftdown = function(array, startpos, pos, cmp) {\n\t\t var newitem, parent, parentpos;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t newitem = array[pos];\n\t\t while (pos > startpos) {\n\t\t parentpos = (pos - 1) >> 1;\n\t\t parent = array[parentpos];\n\t\t if (cmp(newitem, parent) < 0) {\n\t\t array[pos] = parent;\n\t\t pos = parentpos;\n\t\t continue;\n\t\t }\n\t\t break;\n\t\t }\n\t\t return array[pos] = newitem;\n\t\t };\n\n\t\t _siftup = function(array, pos, cmp) {\n\t\t var childpos, endpos, newitem, rightpos, startpos;\n\t\t if (cmp == null) {\n\t\t cmp = defaultCmp;\n\t\t }\n\t\t endpos = array.length;\n\t\t startpos = pos;\n\t\t newitem = array[pos];\n\t\t childpos = 2 * pos + 1;\n\t\t while (childpos < endpos) {\n\t\t rightpos = childpos + 1;\n\t\t if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) {\n\t\t childpos = rightpos;\n\t\t }\n\t\t array[pos] = array[childpos];\n\t\t pos = childpos;\n\t\t childpos = 2 * pos + 1;\n\t\t }\n\t\t array[pos] = newitem;\n\t\t return _siftdown(array, startpos, pos, cmp);\n\t\t };\n\n\t\t Heap = (function() {\n\t\t Heap.push = heappush;\n\n\t\t Heap.pop = heappop;\n\n\t\t Heap.replace = heapreplace;\n\n\t\t Heap.pushpop = heappushpop;\n\n\t\t Heap.heapify = heapify;\n\n\t\t Heap.updateItem = updateItem;\n\n\t\t Heap.nlargest = nlargest;\n\n\t\t Heap.nsmallest = nsmallest;\n\n\t\t function Heap(cmp) {\n\t\t this.cmp = cmp != null ? cmp : defaultCmp;\n\t\t this.nodes = [];\n\t\t }\n\n\t\t Heap.prototype.push = function(x) {\n\t\t return heappush(this.nodes, x, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.pop = function() {\n\t\t return heappop(this.nodes, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.peek = function() {\n\t\t return this.nodes[0];\n\t\t };\n\n\t\t Heap.prototype.contains = function(x) {\n\t\t return this.nodes.indexOf(x) !== -1;\n\t\t };\n\n\t\t Heap.prototype.replace = function(x) {\n\t\t return heapreplace(this.nodes, x, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.pushpop = function(x) {\n\t\t return heappushpop(this.nodes, x, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.heapify = function() {\n\t\t return heapify(this.nodes, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.updateItem = function(x) {\n\t\t return updateItem(this.nodes, x, this.cmp);\n\t\t };\n\n\t\t Heap.prototype.clear = function() {\n\t\t return this.nodes = [];\n\t\t };\n\n\t\t Heap.prototype.empty = function() {\n\t\t return this.nodes.length === 0;\n\t\t };\n\n\t\t Heap.prototype.size = function() {\n\t\t return this.nodes.length;\n\t\t };\n\n\t\t Heap.prototype.clone = function() {\n\t\t var heap;\n\t\t heap = new Heap();\n\t\t heap.nodes = this.nodes.slice(0);\n\t\t return heap;\n\t\t };\n\n\t\t Heap.prototype.toArray = function() {\n\t\t return this.nodes.slice(0);\n\t\t };\n\n\t\t Heap.prototype.insert = Heap.prototype.push;\n\n\t\t Heap.prototype.top = Heap.prototype.peek;\n\n\t\t Heap.prototype.front = Heap.prototype.peek;\n\n\t\t Heap.prototype.has = Heap.prototype.contains;\n\n\t\t Heap.prototype.copy = Heap.prototype.clone;\n\n\t\t return Heap;\n\n\t\t })();\n\n\t\t (function(root, factory) {\n\t\t {\n\t\t return module.exports = factory();\n\t\t }\n\t\t })(this, function() {\n\t\t return Heap;\n\t\t });\n\n\t\t}).call(heap$1); \n\t} (heap$2));\n\treturn heap$2.exports;\n}\n\nvar heap;\nvar hasRequiredHeap;\n\nfunction requireHeap () {\n\tif (hasRequiredHeap) return heap;\n\thasRequiredHeap = 1;\n\theap = requireHeap$1();\n\treturn heap;\n}\n\nvar heapExports = requireHeap();\nvar Heap = /*@__PURE__*/getDefaultExportFromCjs(heapExports);\n\nvar dijkstraDefaults = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n});\nvar elesfn$u = {\n dijkstra: function dijkstra(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n weight: args[1],\n directed: args[2]\n };\n }\n var _dijkstraDefaults = dijkstraDefaults(options),\n root = _dijkstraDefaults.root,\n weight = _dijkstraDefaults.weight,\n directed = _dijkstraDefaults.directed;\n var eles = this;\n var weightFn = weight;\n var source = string(root) ? this.filter(root)[0] : root[0];\n var dist = {};\n var prev = {};\n var knownDist = {};\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (ele) {\n return ele.isLoop();\n });\n var getDist = function getDist(node) {\n return dist[node.id()];\n };\n var setDist = function setDist(node, d) {\n dist[node.id()] = d;\n Q.updateItem(node);\n };\n var Q = new Heap(function (a, b) {\n return getDist(a) - getDist(b);\n });\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n dist[node.id()] = node.same(source) ? 0 : Infinity;\n Q.push(node);\n }\n var distBetween = function distBetween(u, v) {\n var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges);\n var smallestDistance = Infinity;\n var smallestEdge;\n for (var _i = 0; _i < uvs.length; _i++) {\n var edge = uvs[_i];\n var _weight = weightFn(edge);\n if (_weight < smallestDistance || !smallestEdge) {\n smallestDistance = _weight;\n smallestEdge = edge;\n }\n }\n return {\n edge: smallestEdge,\n dist: smallestDistance\n };\n };\n while (Q.size() > 0) {\n var u = Q.pop();\n var smalletsDist = getDist(u);\n var uid = u.id();\n knownDist[uid] = smalletsDist;\n if (smalletsDist === Infinity) {\n continue;\n }\n var neighbors = u.neighborhood().intersect(nodes);\n for (var _i2 = 0; _i2 < neighbors.length; _i2++) {\n var v = neighbors[_i2];\n var vid = v.id();\n var vDist = distBetween(u, v);\n var alt = smalletsDist + vDist.dist;\n if (alt < getDist(v)) {\n setDist(v, alt);\n prev[vid] = {\n node: u,\n edge: vDist.edge\n };\n }\n } // for\n } // while\n\n return {\n distanceTo: function distanceTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n return knownDist[target.id()];\n },\n pathTo: function pathTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n var S = [];\n var u = target;\n var uid = u.id();\n if (target.length > 0) {\n S.unshift(target);\n while (prev[uid]) {\n var p = prev[uid];\n S.unshift(p.edge);\n S.unshift(p.node);\n u = p.node;\n uid = u.id();\n }\n }\n return eles.spawn(S);\n }\n };\n }\n};\n\nvar elesfn$t = {\n // kruskal's algorithm (finds min spanning tree, assuming undirected graph)\n // implemented from pseudocode from wikipedia\n kruskal: function kruskal(weightFn) {\n weightFn = weightFn || function (edge) {\n return 1;\n };\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var forest = new Array(numNodes);\n var A = nodes; // assumes byGroup() creates new collections that can be safely mutated\n\n var findSetIndex = function findSetIndex(ele) {\n for (var i = 0; i < forest.length; i++) {\n var eles = forest[i];\n if (eles.has(ele)) {\n return i;\n }\n }\n };\n\n // start with one forest per node\n for (var i = 0; i < numNodes; i++) {\n forest[i] = this.spawn(nodes[i]);\n }\n var S = edges.sort(function (a, b) {\n return weightFn(a) - weightFn(b);\n });\n for (var _i = 0; _i < S.length; _i++) {\n var edge = S[_i];\n var u = edge.source()[0];\n var v = edge.target()[0];\n var setUIndex = findSetIndex(u);\n var setVIndex = findSetIndex(v);\n var setU = forest[setUIndex];\n var setV = forest[setVIndex];\n if (setUIndex !== setVIndex) {\n A.merge(edge);\n\n // combine forests for u and v\n setU.merge(setV);\n forest.splice(setVIndex, 1);\n }\n }\n return A;\n }\n};\n\nvar aStarDefaults = defaults$g({\n root: null,\n goal: null,\n weight: function weight(edge) {\n return 1;\n },\n heuristic: function heuristic(edge) {\n return 0;\n },\n directed: false\n});\nvar elesfn$s = {\n // Implemented from pseudocode from wikipedia\n aStar: function aStar(options) {\n var cy = this.cy();\n var _aStarDefaults = aStarDefaults(options),\n root = _aStarDefaults.root,\n goal = _aStarDefaults.goal,\n heuristic = _aStarDefaults.heuristic,\n directed = _aStarDefaults.directed,\n weight = _aStarDefaults.weight;\n root = cy.collection(root)[0];\n goal = cy.collection(goal)[0];\n var sid = root.id();\n var tid = goal.id();\n var gScore = {};\n var fScore = {};\n var closedSetIds = {};\n var openSet = new Heap(function (a, b) {\n return fScore[a.id()] - fScore[b.id()];\n });\n var openSetIds = new Set$1();\n var cameFrom = {};\n var cameFromEdge = {};\n var addToOpenSet = function addToOpenSet(ele, id) {\n openSet.push(ele);\n openSetIds.add(id);\n };\n var cMin, cMinId;\n var popFromOpenSet = function popFromOpenSet() {\n cMin = openSet.pop();\n cMinId = cMin.id();\n openSetIds[\"delete\"](cMinId);\n };\n var isInOpenSet = function isInOpenSet(id) {\n return openSetIds.has(id);\n };\n addToOpenSet(root, sid);\n gScore[sid] = 0;\n fScore[sid] = heuristic(root);\n\n // Counter\n var steps = 0;\n\n // Main loop\n while (openSet.size() > 0) {\n popFromOpenSet();\n steps++;\n\n // If we've found our goal, then we are done\n if (cMinId === tid) {\n var path = [];\n var pathNode = goal;\n var pathNodeId = tid;\n var pathEdge = cameFromEdge[pathNodeId];\n for (;;) {\n path.unshift(pathNode);\n if (pathEdge != null) {\n path.unshift(pathEdge);\n }\n pathNode = cameFrom[pathNodeId];\n if (pathNode == null) {\n break;\n }\n pathNodeId = pathNode.id();\n pathEdge = cameFromEdge[pathNodeId];\n }\n return {\n found: true,\n distance: gScore[cMinId],\n path: this.spawn(path),\n steps: steps\n };\n }\n\n // Add cMin to processed nodes\n closedSetIds[cMinId] = true;\n\n // Update scores for neighbors of cMin\n // Take into account if graph is directed or not\n var vwEdges = cMin._private.edges;\n for (var i = 0; i < vwEdges.length; i++) {\n var e = vwEdges[i];\n\n // edge must be in set of calling eles\n if (!this.hasElementWithId(e.id())) {\n continue;\n }\n\n // cMin must be the source of edge if directed\n if (directed && e.data('source') !== cMinId) {\n continue;\n }\n var wSrc = e.source();\n var wTgt = e.target();\n var w = wSrc.id() !== cMinId ? wSrc : wTgt;\n var wid = w.id();\n\n // node must be in set of calling eles\n if (!this.hasElementWithId(wid)) {\n continue;\n }\n\n // if node is in closedSet, ignore it\n if (closedSetIds[wid]) {\n continue;\n }\n\n // New tentative score for node w\n var tempScore = gScore[cMinId] + weight(e);\n\n // Update gScore for node w if:\n // w not present in openSet\n // OR\n // tentative gScore is less than previous value\n\n // w not in openSet\n if (!isInOpenSet(wid)) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n addToOpenSet(w, wid);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n continue;\n }\n\n // w already in openSet, but with greater gScore\n if (tempScore < gScore[wid]) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n }\n } // End of neighbors update\n } // End of main loop\n\n // If we've reached here, then we've not reached our goal\n return {\n found: false,\n distance: undefined,\n path: undefined,\n steps: steps\n };\n }\n}; // elesfn\n\nvar floydWarshallDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n});\nvar elesfn$r = {\n // Implemented from pseudocode from wikipedia\n floydWarshall: function floydWarshall(options) {\n var cy = this.cy();\n var _floydWarshallDefault = floydWarshallDefaults(options),\n weight = _floydWarshallDefault.weight,\n directed = _floydWarshallDefault.directed;\n var weightFn = weight;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var N = nodes.length;\n var Nsq = N * N;\n var indexOf = function indexOf(node) {\n return nodes.indexOf(node);\n };\n var atIndex = function atIndex(i) {\n return nodes[i];\n };\n\n // Initialize distance matrix\n var dist = new Array(Nsq);\n for (var n = 0; n < Nsq; n++) {\n var j = n % N;\n var i = (n - j) / N;\n if (i === j) {\n dist[n] = 0;\n } else {\n dist[n] = Infinity;\n }\n }\n\n // Initialize matrix used for path reconstruction\n // Initialize distance matrix\n var next = new Array(Nsq);\n var edgeNext = new Array(Nsq);\n\n // Process edges\n for (var _i = 0; _i < edges.length; _i++) {\n var edge = edges[_i];\n var src = edge.source()[0];\n var tgt = edge.target()[0];\n if (src === tgt) {\n continue;\n } // exclude loops\n\n var s = indexOf(src);\n var t = indexOf(tgt);\n var st = s * N + t; // source to target index\n var _weight = weightFn(edge);\n\n // Check if already process another edge between same 2 nodes\n if (dist[st] > _weight) {\n dist[st] = _weight;\n next[st] = t;\n edgeNext[st] = edge;\n }\n\n // If undirected graph, process 'reversed' edge\n if (!directed) {\n var ts = t * N + s; // target to source index\n\n if (!directed && dist[ts] > _weight) {\n dist[ts] = _weight;\n next[ts] = s;\n edgeNext[ts] = edge;\n }\n }\n }\n\n // Main loop\n for (var k = 0; k < N; k++) {\n for (var _i2 = 0; _i2 < N; _i2++) {\n var ik = _i2 * N + k;\n for (var _j = 0; _j < N; _j++) {\n var ij = _i2 * N + _j;\n var kj = k * N + _j;\n if (dist[ik] + dist[kj] < dist[ij]) {\n dist[ij] = dist[ik] + dist[kj];\n next[ij] = next[ik];\n }\n }\n }\n }\n var getArgEle = function getArgEle(ele) {\n return (string(ele) ? cy.filter(ele) : ele)[0];\n };\n var indexOfArgEle = function indexOfArgEle(ele) {\n return indexOf(getArgEle(ele));\n };\n var res = {\n distance: function distance(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n return dist[i * N + j];\n },\n path: function path(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n var fromNode = atIndex(i);\n if (i === j) {\n return fromNode.collection();\n }\n if (next[i * N + j] == null) {\n return cy.collection();\n }\n var path = cy.collection();\n var prev = i;\n var edge;\n path.merge(fromNode);\n while (i !== j) {\n prev = i;\n i = next[i * N + j];\n edge = edgeNext[prev * N + i];\n path.merge(edge);\n path.merge(atIndex(i));\n }\n return path;\n }\n };\n return res;\n } // floydWarshall\n}; // elesfn\n\nvar bellmanFordDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n root: null\n});\nvar elesfn$q = {\n // Implemented from pseudocode from wikipedia\n bellmanFord: function bellmanFord(options) {\n var _this = this;\n var _bellmanFordDefaults = bellmanFordDefaults(options),\n weight = _bellmanFordDefaults.weight,\n directed = _bellmanFordDefaults.directed,\n root = _bellmanFordDefaults.root;\n var weightFn = weight;\n var eles = this;\n var cy = this.cy();\n var _this$byGroup = this.byGroup(),\n edges = _this$byGroup.edges,\n nodes = _this$byGroup.nodes;\n var numNodes = nodes.length;\n var infoMap = new Map$1();\n var hasNegativeWeightCycle = false;\n var negativeWeightCycles = [];\n root = cy.collection(root)[0]; // in case selector passed\n\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numEdges = edges.length;\n var getInfo = function getInfo(node) {\n var obj = infoMap.get(node.id());\n if (!obj) {\n obj = {};\n infoMap.set(node.id(), obj);\n }\n return obj;\n };\n var getNodeFromTo = function getNodeFromTo(to) {\n return (string(to) ? cy.$(to) : to)[0];\n };\n var distanceTo = function distanceTo(to) {\n return getInfo(getNodeFromTo(to)).dist;\n };\n var pathTo = function pathTo(to) {\n var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root;\n var end = getNodeFromTo(to);\n var path = [];\n var node = end;\n for (;;) {\n if (node == null) {\n return _this.spawn();\n }\n var _getInfo = getInfo(node),\n edge = _getInfo.edge,\n pred = _getInfo.pred;\n path.unshift(node[0]);\n if (node.same(thisStart) && path.length > 0) {\n break;\n }\n if (edge != null) {\n path.unshift(edge);\n }\n node = pred;\n }\n return eles.spawn(path);\n };\n\n // Initializations { dist, pred, edge }\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n var info = getInfo(node);\n if (node.same(root)) {\n info.dist = 0;\n } else {\n info.dist = Infinity;\n }\n info.pred = null;\n info.edge = null;\n }\n\n // Edges relaxation\n var replacedEdge = false;\n var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) {\n var dist = info1.dist + weight;\n if (dist < info2.dist && !edge.same(info1.edge)) {\n info2.dist = dist;\n info2.pred = node1;\n info2.edge = edge;\n replacedEdge = true;\n }\n };\n for (var _i = 1; _i < numNodes; _i++) {\n replacedEdge = false;\n for (var e = 0; e < numEdges; e++) {\n var edge = edges[e];\n var src = edge.source();\n var tgt = edge.target();\n var _weight = weightFn(edge);\n var srcInfo = getInfo(src);\n var tgtInfo = getInfo(tgt);\n checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);\n\n // If undirected graph, we need to take into account the 'reverse' edge\n if (!directed) {\n checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);\n }\n }\n if (!replacedEdge) {\n break;\n }\n }\n if (replacedEdge) {\n // Check for negative weight cycles\n var negativeWeightCycleIds = [];\n for (var _e = 0; _e < numEdges; _e++) {\n var _edge = edges[_e];\n var _src = _edge.source();\n var _tgt = _edge.target();\n var _weight2 = weightFn(_edge);\n var srcDist = getInfo(_src).dist;\n var tgtDist = getInfo(_tgt).dist;\n if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {\n if (!hasNegativeWeightCycle) {\n warn('Graph contains a negative weight cycle for Bellman-Ford');\n hasNegativeWeightCycle = true;\n }\n if (options.findNegativeWeightCycles !== false) {\n var negativeNodes = [];\n if (srcDist + _weight2 < tgtDist) {\n negativeNodes.push(_src);\n }\n if (!directed && tgtDist + _weight2 < srcDist) {\n negativeNodes.push(_tgt);\n }\n var numNegativeNodes = negativeNodes.length;\n for (var n = 0; n < numNegativeNodes; n++) {\n var start = negativeNodes[n];\n var cycle = [start];\n cycle.push(getInfo(start).edge);\n var _node = getInfo(start).pred;\n while (cycle.indexOf(_node) === -1) {\n cycle.push(_node);\n cycle.push(getInfo(_node).edge);\n _node = getInfo(_node).pred;\n }\n cycle = cycle.slice(cycle.indexOf(_node));\n var smallestId = cycle[0].id();\n var smallestIndex = 0;\n for (var c = 2; c < cycle.length; c += 2) {\n if (cycle[c].id() < smallestId) {\n smallestId = cycle[c].id();\n smallestIndex = c;\n }\n }\n cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));\n cycle.push(cycle[0]);\n var cycleId = cycle.map(function (el) {\n return el.id();\n }).join(\",\");\n if (negativeWeightCycleIds.indexOf(cycleId) === -1) {\n negativeWeightCycles.push(eles.spawn(cycle));\n negativeWeightCycleIds.push(cycleId);\n }\n }\n } else {\n break;\n }\n }\n }\n }\n return {\n distanceTo: distanceTo,\n pathTo: pathTo,\n hasNegativeWeightCycle: hasNegativeWeightCycle,\n negativeWeightCycles: negativeWeightCycles\n };\n } // bellmanFord\n}; // elesfn\n\nvar sqrt2 = Math.sqrt(2);\n\n// Function which colapses 2 (meta) nodes into one\n// Updates the remaining edge lists\n// Receives as a paramater the edge which causes the collapse\nvar collapse = function collapse(edgeIndex, nodeMap, remainingEdges) {\n if (remainingEdges.length === 0) {\n error(\"Karger-Stein must be run on a connected (sub)graph\");\n }\n var edgeInfo = remainingEdges[edgeIndex];\n var sourceIn = edgeInfo[1];\n var targetIn = edgeInfo[2];\n var partition1 = nodeMap[sourceIn];\n var partition2 = nodeMap[targetIn];\n var newEdges = remainingEdges; // re-use array\n\n // Delete all edges between partition1 and partition2\n for (var i = newEdges.length - 1; i >= 0; i--) {\n var edge = newEdges[i];\n var src = edge[1];\n var tgt = edge[2];\n if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {\n newEdges.splice(i, 1);\n }\n }\n\n // All edges pointing to partition2 should now point to partition1\n for (var _i = 0; _i < newEdges.length; _i++) {\n var _edge = newEdges[_i];\n if (_edge[1] === partition2) {\n // Check source\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][1] = partition1;\n } else if (_edge[2] === partition2) {\n // Check target\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][2] = partition1;\n }\n }\n\n // Move all nodes from partition2 to partition1\n for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {\n if (nodeMap[_i2] === partition2) {\n nodeMap[_i2] = partition1;\n }\n }\n return newEdges;\n};\n\n// Contracts a graph until we reach a certain number of meta nodes\nvar contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) {\n while (size > sizeLimit) {\n // Choose an edge randomly\n var edgeIndex = Math.floor(Math.random() * remainingEdges.length);\n\n // Collapse graph based on edge\n remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);\n size--;\n }\n return remainingEdges;\n};\nvar elesfn$p = {\n // Computes the minimum cut of an undirected graph\n // Returns the correct answer with high probability\n kargerStein: function kargerStein() {\n var _this = this;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numNodes = nodes.length;\n var numEdges = edges.length;\n var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));\n var stopSize = Math.floor(numNodes / sqrt2);\n if (numNodes < 2) {\n error('At least 2 nodes are required for Karger-Stein algorithm');\n return undefined;\n }\n\n // Now store edge destination as indexes\n // Format for each edge (edge index, source node index, target node index)\n var edgeIndexes = [];\n for (var i = 0; i < numEdges; i++) {\n var e = edges[i];\n edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]);\n }\n\n // We will store the best cut found here\n var minCutSize = Infinity;\n var minCutEdgeIndexes = [];\n var minCutNodeMap = new Array(numNodes);\n\n // Initial meta node partition\n var metaNodeMap = new Array(numNodes);\n var metaNodeMap2 = new Array(numNodes);\n var copyNodesMap = function copyNodesMap(from, to) {\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n to[_i3] = from[_i3];\n }\n };\n\n // Main loop\n for (var iter = 0; iter <= numIter; iter++) {\n // Reset meta node partition\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n metaNodeMap[_i4] = _i4;\n }\n\n // Contract until stop point (stopSize nodes)\n var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);\n var edgesState2 = edgesState.slice(); // copy\n\n // Create a copy of the colapsed nodes state\n copyNodesMap(metaNodeMap, metaNodeMap2);\n\n // Run 2 iterations starting in the stop state\n var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);\n var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);\n\n // Is any of the 2 results the best cut so far?\n if (res1.length <= res2.length && res1.length < minCutSize) {\n minCutSize = res1.length;\n minCutEdgeIndexes = res1;\n copyNodesMap(metaNodeMap, minCutNodeMap);\n } else if (res2.length <= res1.length && res2.length < minCutSize) {\n minCutSize = res2.length;\n minCutEdgeIndexes = res2;\n copyNodesMap(metaNodeMap2, minCutNodeMap);\n }\n } // end of main loop\n\n // Construct result\n var cut = this.spawn(minCutEdgeIndexes.map(function (e) {\n return edges[e[0]];\n }));\n var partition1 = this.spawn();\n var partition2 = this.spawn();\n\n // traverse metaNodeMap for best cut\n var witnessNodePartition = minCutNodeMap[0];\n for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {\n var partitionId = minCutNodeMap[_i5];\n var node = nodes[_i5];\n if (partitionId === witnessNodePartition) {\n partition1.merge(node);\n } else {\n partition2.merge(node);\n }\n }\n\n // construct components corresponding to each disjoint subset of nodes\n var constructComponent = function constructComponent(subset) {\n var component = _this.spawn();\n subset.forEach(function (node) {\n component.merge(node);\n node.connectedEdges().forEach(function (edge) {\n // ensure edge is within calling collection and edge is not in cut\n if (_this.contains(edge) && !cut.contains(edge)) {\n component.merge(edge);\n }\n });\n });\n return component;\n };\n var components = [constructComponent(partition1), constructComponent(partition2)];\n var ret = {\n cut: cut,\n components: components,\n // n.b. partitions are included to be compatible with the old api spec\n // (could be removed in a future major version)\n partition1: partition1,\n partition2: partition2\n };\n return ret;\n }\n}; // elesfn\n\nvar _Math$hypot;\nvar copyPosition = function copyPosition(p) {\n return {\n x: p.x,\n y: p.y\n };\n};\nvar modelToRenderedPosition$1 = function modelToRenderedPosition(p, zoom, pan) {\n return {\n x: p.x * zoom + pan.x,\n y: p.y * zoom + pan.y\n };\n};\nvar renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) {\n return {\n x: (p.x - pan.x) / zoom,\n y: (p.y - pan.y) / zoom\n };\n};\nvar array2point = function array2point(arr) {\n return {\n x: arr[0],\n y: arr[1]\n };\n};\nvar min = function min(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var min = Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n min = Math.min(val, min);\n }\n }\n return min;\n};\nvar max = function max(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var max = -Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n max = Math.max(val, max);\n }\n }\n return max;\n};\nvar mean = function mean(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var total = 0;\n var n = 0;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n total += val;\n n++;\n }\n }\n return total / n;\n};\nvar median = function median(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (copy) {\n arr = arr.slice(begin, end);\n } else {\n if (end < arr.length) {\n arr.splice(end, arr.length - end);\n }\n if (begin > 0) {\n arr.splice(0, begin);\n }\n }\n\n // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start\n var off = 0; // offset from non-finite values\n for (var i = arr.length - 1; i >= 0; i--) {\n var v = arr[i];\n if (includeHoles) {\n if (!isFinite(v)) {\n arr[i] = -Infinity;\n off++;\n }\n } else {\n // just remove it if we don't want to consider holes\n arr.splice(i, 1);\n }\n }\n if (sort) {\n arr.sort(function (a, b) {\n return a - b;\n }); // requires copy = true if you don't want to change the orig\n }\n var len = arr.length;\n var mid = Math.floor(len / 2);\n if (len % 2 !== 0) {\n return arr[mid + 1 + off];\n } else {\n return (arr[mid - 1 + off] + arr[mid + off]) / 2;\n }\n};\nvar deg2rad = function deg2rad(deg) {\n return Math.PI * deg / 180;\n};\nvar getAngleFromDisp = function getAngleFromDisp(dispX, dispY) {\n return Math.atan2(dispY, dispX) - Math.PI / 2;\n};\nvar log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n};\nvar signum = function signum(x) {\n if (x > 0) {\n return 1;\n } else if (x < 0) {\n return -1;\n } else {\n return 0;\n }\n};\nvar dist = function dist(p1, p2) {\n return Math.sqrt(sqdist(p1, p2));\n};\nvar sqdist = function sqdist(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return dx * dx + dy * dy;\n};\nvar inPlaceSumNormalize = function inPlaceSumNormalize(v) {\n var length = v.length;\n\n // First, get sum of all elements\n var total = 0;\n for (var i = 0; i < length; i++) {\n total += v[i];\n }\n\n // Now, divide each by the sum of all elements\n for (var _i = 0; _i < length; _i++) {\n v[_i] = v[_i] / total;\n }\n return v;\n};\n\n// from http://en.wikipedia.org/wiki/Bézier_curve#Quadratic_curves\nvar qbezierAt = function qbezierAt(p0, p1, p2, t) {\n return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2;\n};\nvar qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) {\n return {\n x: qbezierAt(p0.x, p1.x, p2.x, t),\n y: qbezierAt(p0.y, p1.y, p2.y, t)\n };\n};\nvar lineAt = function lineAt(p0, p1, t, d) {\n var vec = {\n x: p1.x - p0.x,\n y: p1.y - p0.y\n };\n var vecDist = dist(p0, p1);\n var normVec = {\n x: vec.x / vecDist,\n y: vec.y / vecDist\n };\n t = t == null ? 0 : t;\n d = d != null ? d : t * vecDist;\n return {\n x: p0.x + normVec.x * d,\n y: p0.y + normVec.y * d\n };\n};\nvar bound = function bound(min, val, max) {\n return Math.max(min, Math.min(max, val));\n};\n\n// makes a full bb (x1, y1, x2, y2, w, h) from implicit params\nvar makeBoundingBox = function makeBoundingBox(bb) {\n if (bb == null) {\n return {\n x1: Infinity,\n y1: Infinity,\n x2: -Infinity,\n y2: -Infinity,\n w: 0,\n h: 0\n };\n } else if (bb.x1 != null && bb.y1 != null) {\n if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x2,\n y2: bb.y2,\n w: bb.x2 - bb.x1,\n h: bb.y2 - bb.y1\n };\n } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x1 + bb.w,\n y2: bb.y1 + bb.h,\n w: bb.w,\n h: bb.h\n };\n }\n }\n};\nvar copyBoundingBox = function copyBoundingBox(bb) {\n return {\n x1: bb.x1,\n x2: bb.x2,\n w: bb.w,\n y1: bb.y1,\n y2: bb.y2,\n h: bb.h\n };\n};\nvar clearBoundingBox = function clearBoundingBox(bb) {\n bb.x1 = Infinity;\n bb.y1 = Infinity;\n bb.x2 = -Infinity;\n bb.y2 = -Infinity;\n bb.w = 0;\n bb.h = 0;\n};\nvar updateBoundingBox = function updateBoundingBox(bb1, bb2) {\n // update bb1 with bb2 bounds\n\n bb1.x1 = Math.min(bb1.x1, bb2.x1);\n bb1.x2 = Math.max(bb1.x2, bb2.x2);\n bb1.w = bb1.x2 - bb1.x1;\n bb1.y1 = Math.min(bb1.y1, bb2.y1);\n bb1.y2 = Math.max(bb1.y2, bb2.y2);\n bb1.h = bb1.y2 - bb1.y1;\n};\nvar expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) {\n bb.x1 = Math.min(bb.x1, x);\n bb.x2 = Math.max(bb.x2, x);\n bb.w = bb.x2 - bb.x1;\n bb.y1 = Math.min(bb.y1, y);\n bb.y2 = Math.max(bb.y2, y);\n bb.h = bb.y2 - bb.y1;\n};\nvar expandBoundingBox = function expandBoundingBox(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n bb.x1 -= padding;\n bb.x2 += padding;\n bb.y1 -= padding;\n bb.y2 += padding;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n};\nvar expandBoundingBoxSides = function expandBoundingBoxSides(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];\n var top, right, bottom, left;\n if (padding.length === 1) {\n top = right = bottom = left = padding[0];\n } else if (padding.length === 2) {\n top = bottom = padding[0];\n left = right = padding[1];\n } else if (padding.length === 4) {\n var _padding = _slicedToArray(padding, 4);\n top = _padding[0];\n right = _padding[1];\n bottom = _padding[2];\n left = _padding[3];\n }\n bb.x1 -= left;\n bb.x2 += right;\n bb.y1 -= top;\n bb.y2 += bottom;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n};\n\n// assign the values of bb2 into bb1\nvar assignBoundingBox = function assignBoundingBox(bb1, bb2) {\n bb1.x1 = bb2.x1;\n bb1.y1 = bb2.y1;\n bb1.x2 = bb2.x2;\n bb1.y2 = bb2.y2;\n bb1.w = bb1.x2 - bb1.x1;\n bb1.h = bb1.y2 - bb1.y1;\n};\nvar boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) {\n // case: one bb to right of other\n if (bb1.x1 > bb2.x2) {\n return false;\n }\n if (bb2.x1 > bb1.x2) {\n return false;\n }\n\n // case: one bb to left of other\n if (bb1.x2 < bb2.x1) {\n return false;\n }\n if (bb2.x2 < bb1.x1) {\n return false;\n }\n\n // case: one bb above other\n if (bb1.y2 < bb2.y1) {\n return false;\n }\n if (bb2.y2 < bb1.y1) {\n return false;\n }\n\n // case: one bb below other\n if (bb1.y1 > bb2.y2) {\n return false;\n }\n if (bb2.y1 > bb1.y2) {\n return false;\n }\n\n // otherwise, must have some overlap\n return true;\n};\nvar inBoundingBox = function inBoundingBox(bb, x, y) {\n return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2;\n};\nvar pointInBoundingBox = function pointInBoundingBox(bb, pt) {\n return inBoundingBox(bb, pt.x, pt.y);\n};\nvar boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) {\n return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);\n};\nvar hypot = (_Math$hypot = Math.hypot) !== null && _Math$hypot !== undefined ? _Math$hypot : function (x, y) {\n return Math.sqrt(x * x + y * y);\n};\nfunction inflatePolygon(polygon, d) {\n if (polygon.length < 3) {\n throw new Error('Need at least 3 vertices');\n }\n // Helpers\n var add = function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n };\n var sub = function sub(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n };\n var scale = function scale(v, s) {\n return {\n x: v.x * s,\n y: v.y * s\n };\n };\n var cross = function cross(u, v) {\n return u.x * v.y - u.y * v.x;\n };\n var normalize = function normalize(v) {\n var len = hypot(v.x, v.y);\n return len === 0 ? {\n x: 0,\n y: 0\n } : {\n x: v.x / len,\n y: v.y / len\n };\n };\n // Signed area (positive = CCW)\n var signedArea = function signedArea(pts) {\n var A = 0;\n for (var i = 0; i < pts.length; i++) {\n var p = pts[i],\n q = pts[(i + 1) % pts.length];\n A += p.x * q.y - q.x * p.y;\n }\n return A / 2;\n };\n // Line–line intersection (infinite lines)\n var intersectLines = function intersectLines(p1, p2, p3, p4) {\n var r = sub(p2, p1);\n var s = sub(p4, p3);\n var denom = cross(r, s);\n if (Math.abs(denom) < 1e-9) {\n // Parallel or nearly so — fallback to midpoint\n return add(p1, scale(r, 0.5));\n }\n var t = cross(sub(p3, p1), s) / denom;\n return add(p1, scale(r, t));\n };\n\n // Make a shallow copy and enforce CCW\n var pts = polygon.map(function (p) {\n return {\n x: p.x,\n y: p.y\n };\n });\n if (signedArea(pts) < 0) pts.reverse();\n var n = pts.length;\n // Compute outward normals for each edge\n var normals = [];\n for (var i = 0; i < n; i++) {\n var p = pts[i],\n q = pts[(i + 1) % n];\n var edge = sub(q, p);\n // For CCW polygon, inward normal = (-edge.y, edge.x)\n // so outward normal = (edge.y, -edge.x)\n var out = normalize({\n x: edge.y,\n y: -edge.x\n });\n normals.push(out);\n }\n\n // Build offset edges\n var offsetEdges = normals.map(function (nrm, i) {\n var p1 = add(pts[i], scale(nrm, d));\n var p2 = add(pts[(i + 1) % n], scale(nrm, d));\n return {\n p1: p1,\n p2: p2\n };\n });\n\n // Intersect consecutive offset edges\n var inflated = [];\n for (var _i2 = 0; _i2 < n; _i2++) {\n var prevEdge = offsetEdges[(_i2 - 1 + n) % n];\n var currEdge = offsetEdges[_i2];\n var ip = intersectLines(prevEdge.p1, prevEdge.p2, currEdge.p1, currEdge.p2);\n inflated.push(ip);\n }\n return inflated;\n}\nfunction miterBox(pts, centerX, centerY, width, height, strokeWidth) {\n var tpts = transformPoints(pts, centerX, centerY, width, height);\n var offsetPoints = inflatePolygon(tpts, strokeWidth);\n var bb = makeBoundingBox();\n offsetPoints.forEach(function (pt) {\n return expandBoundingBoxByPoint(bb, pt.x, pt.y);\n });\n return bb;\n}\nvar roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) {\n var radius = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'auto';\n var cornerRadius = radius === 'auto' ? getRoundRectangleRadius(width, height) : radius;\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n cornerRadius = Math.min(cornerRadius, halfWidth, halfHeight);\n var doWidth = cornerRadius !== halfWidth,\n doHeight = cornerRadius !== halfHeight;\n\n // Check intersections with straight line segments\n var straightLineIntersections;\n\n // Top segment, left to right\n if (doWidth) {\n var topStartX = nodeX - halfWidth + cornerRadius - padding;\n var topStartY = nodeY - halfHeight - padding;\n var topEndX = nodeX + halfWidth - cornerRadius + padding;\n var topEndY = topStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Right segment, top to bottom\n if (doHeight) {\n var rightStartX = nodeX + halfWidth + padding;\n var rightStartY = nodeY - halfHeight + cornerRadius - padding;\n var rightEndX = rightStartX;\n var rightEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Bottom segment, left to right\n if (doWidth) {\n var bottomStartX = nodeX - halfWidth + cornerRadius - padding;\n var bottomStartY = nodeY + halfHeight + padding;\n var bottomEndX = nodeX + halfWidth - cornerRadius + padding;\n var bottomEndY = bottomStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Left segment, top to bottom\n if (doHeight) {\n var leftStartX = nodeX - halfWidth - padding;\n var leftStartY = nodeY - halfHeight + cornerRadius - padding;\n var leftEndX = leftStartX;\n var leftEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Check intersections with arc segments\n var arcIntersections;\n\n // Top Left\n {\n var topLeftCenterX = nodeX - halfWidth + cornerRadius;\n var topLeftCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Top Right\n {\n var topRightCenterX = nodeX + halfWidth - cornerRadius;\n var topRightCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Right\n {\n var bottomRightCenterX = nodeX + halfWidth - cornerRadius;\n var bottomRightCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Left\n {\n var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;\n var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n return []; // if nothing\n};\nvar inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) {\n var t = tolerance;\n var x1 = Math.min(lx1, lx2);\n var x2 = Math.max(lx1, lx2);\n var y1 = Math.min(ly1, ly2);\n var y2 = Math.max(ly1, ly2);\n return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t;\n};\nvar inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) {\n var bb = {\n x1: Math.min(x1, x3, x2) - tolerance,\n x2: Math.max(x1, x3, x2) + tolerance,\n y1: Math.min(y1, y3, y2) - tolerance,\n y2: Math.max(y1, y3, y2) + tolerance\n };\n\n // if outside the rough bounding box for the bezier, then it can't be a hit\n if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) {\n // console.log('bezier out of rough bb')\n return false;\n } else {\n // console.log('do more expensive check');\n return true;\n }\n};\nvar solveQuadratic = function solveQuadratic(a, b, c, val) {\n c -= val;\n var r = b * b - 4 * a * c;\n if (r < 0) {\n return [];\n }\n var sqrtR = Math.sqrt(r);\n var denom = 2 * a;\n var root1 = (-b + sqrtR) / denom;\n var root2 = (-b - sqrtR) / denom;\n return [root1, root2];\n};\nvar solveCubic = function solveCubic(a, b, c, d, result) {\n // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where\n // r is the real component, i is the imaginary component\n\n // An implementation of the Cardano method from the year 1545\n // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots\n\n var epsilon = 0.00001;\n\n // avoid division by zero while keeping the overall expression close in value\n if (a === 0) {\n a = epsilon;\n }\n b /= a;\n c /= a;\n d /= a;\n var discriminant, q, r, dum1, s, t, term1, r13;\n q = (3.0 * c - b * b) / 9.0;\n r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b));\n r /= 54.0;\n discriminant = q * q * q + r * r;\n result[1] = 0;\n term1 = b / 3.0;\n if (discriminant > 0) {\n s = r + Math.sqrt(discriminant);\n s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0);\n t = r - Math.sqrt(discriminant);\n t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0);\n result[0] = -term1 + s + t;\n term1 += (s + t) / 2.0;\n result[4] = result[2] = -term1;\n term1 = Math.sqrt(3.0) * (-t + s) / 2;\n result[3] = term1;\n result[5] = -term1;\n return;\n }\n result[5] = result[3] = 0;\n if (discriminant === 0) {\n r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0);\n result[0] = -term1 + 2.0 * r13;\n result[4] = result[2] = -(r13 + term1);\n return;\n }\n q = -q;\n dum1 = q * q * q;\n dum1 = Math.acos(r / Math.sqrt(dum1));\n r13 = 2.0 * Math.sqrt(q);\n result[0] = -term1 + r13 * Math.cos(dum1 / 3.0);\n result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0);\n result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0);\n return;\n};\nvar sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) {\n // Find minimum distance by using the minimum of the distance\n // function between the given point and the curve\n\n // This gives the coefficients of the resulting cubic equation\n // whose roots tell us where a possible minimum is\n // (Coefficients are divided by 4)\n\n var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3;\n var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3;\n var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y;\n var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y;\n\n // debug(\"coefficients: \" + a / a + \", \" + b / a + \", \" + c / a + \", \" + d / a);\n\n var roots = [];\n\n // Use the cubic solving algorithm\n solveCubic(a, b, c, d, roots);\n var zeroThreshold = 0.0000001;\n var params = [];\n for (var index = 0; index < 6; index += 2) {\n if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) {\n params.push(roots[index]);\n }\n }\n params.push(1.0);\n params.push(0.0);\n var minDistanceSquared = -1;\n var curX, curY, distSquared;\n for (var i = 0; i < params.length; i++) {\n curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3;\n curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3;\n distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2);\n // debug('distance for param ' + params[i] + \": \" + Math.sqrt(distSquared));\n if (minDistanceSquared >= 0) {\n if (distSquared < minDistanceSquared) {\n minDistanceSquared = distSquared;\n }\n } else {\n minDistanceSquared = distSquared;\n }\n }\n return minDistanceSquared;\n};\nvar sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) {\n var offset = [x - x1, y - y1];\n var line = [x2 - x1, y2 - y1];\n var lineSq = line[0] * line[0] + line[1] * line[1];\n var hypSq = offset[0] * offset[0] + offset[1] * offset[1];\n var dotProduct = offset[0] * line[0] + offset[1] * line[1];\n var adjSq = dotProduct * dotProduct / lineSq;\n if (dotProduct < 0) {\n return hypSq;\n }\n if (adjSq > lineSq) {\n return (x - x2) * (x - x2) + (y - y2) * (y - y2);\n }\n return hypSq - adjSq;\n};\nvar pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) {\n var x1, y1, x2, y2;\n var y3;\n\n // Intersect with vertical line through (x, y)\n var up = 0;\n // let down = 0;\n for (var i = 0; i < points.length / 2; i++) {\n x1 = points[i * 2];\n y1 = points[i * 2 + 1];\n if (i + 1 < points.length / 2) {\n x2 = points[(i + 1) * 2];\n y2 = points[(i + 1) * 2 + 1];\n } else {\n x2 = points[(i + 1 - points.length / 2) * 2];\n y2 = points[(i + 1 - points.length / 2) * 2 + 1];\n }\n if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) {\n y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1;\n if (y3 > y) {\n up++;\n }\n\n // if( y3 < y ){\n // down++;\n // }\n } else {\n continue;\n }\n }\n if (up % 2 === 0) {\n return false;\n } else {\n return true;\n }\n};\nvar pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) {\n var transformedPoints = new Array(basePoints.length);\n\n // Gives negative angle\n var angle;\n if (direction[0] != null) {\n angle = Math.atan(direction[1] / direction[0]);\n if (direction[0] < 0) {\n angle = angle + Math.PI / 2;\n } else {\n angle = -angle - Math.PI / 2;\n }\n } else {\n angle = direction;\n }\n var cos = Math.cos(-angle);\n var sin = Math.sin(-angle);\n\n // console.log(\"base: \" + basePoints);\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin);\n transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin);\n transformedPoints[i * 2] += centerX;\n transformedPoints[i * 2 + 1] += centerY;\n }\n var points;\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n return pointInsidePolygonPoints(x, y, points);\n};\nvar pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height, corners) {\n var cutPolygonPoints = new Array(basePoints.length * 2);\n for (var i = 0; i < corners.length; i++) {\n var corner = corners[i];\n cutPolygonPoints[i * 4 + 0] = corner.startX;\n cutPolygonPoints[i * 4 + 1] = corner.startY;\n cutPolygonPoints[i * 4 + 2] = corner.stopX;\n cutPolygonPoints[i * 4 + 3] = corner.stopY;\n var squaredDistance = Math.pow(corner.cx - x, 2) + Math.pow(corner.cy - y, 2);\n if (squaredDistance <= Math.pow(corner.radius, 2)) {\n return true;\n }\n }\n return pointInsidePolygonPoints(x, y, cutPolygonPoints);\n};\nvar joinLines = function joinLines(lineSet) {\n var vertices = new Array(lineSet.length / 2);\n var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;\n var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;\n for (var i = 0; i < lineSet.length / 4; i++) {\n currentLineStartX = lineSet[i * 4];\n currentLineStartY = lineSet[i * 4 + 1];\n currentLineEndX = lineSet[i * 4 + 2];\n currentLineEndY = lineSet[i * 4 + 3];\n if (i < lineSet.length / 4 - 1) {\n nextLineStartX = lineSet[(i + 1) * 4];\n nextLineStartY = lineSet[(i + 1) * 4 + 1];\n nextLineEndX = lineSet[(i + 1) * 4 + 2];\n nextLineEndY = lineSet[(i + 1) * 4 + 3];\n } else {\n nextLineStartX = lineSet[0];\n nextLineStartY = lineSet[1];\n nextLineEndX = lineSet[2];\n nextLineEndY = lineSet[3];\n }\n var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);\n vertices[i * 2] = intersection[0];\n vertices[i * 2 + 1] = intersection[1];\n }\n return vertices;\n};\nvar expandPolygon = function expandPolygon(points, pad) {\n var expandedLineSet = new Array(points.length * 2);\n var currentPointX, currentPointY, nextPointX, nextPointY;\n for (var i = 0; i < points.length / 2; i++) {\n currentPointX = points[i * 2];\n currentPointY = points[i * 2 + 1];\n if (i < points.length / 2 - 1) {\n nextPointX = points[(i + 1) * 2];\n nextPointY = points[(i + 1) * 2 + 1];\n } else {\n nextPointX = points[0];\n nextPointY = points[1];\n }\n\n // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY]\n\n // Assume CCW polygon winding\n\n var offsetX = nextPointY - currentPointY;\n var offsetY = -(nextPointX - currentPointX);\n\n // Normalize\n var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);\n var normalizedOffsetX = offsetX / offsetLength;\n var normalizedOffsetY = offsetY / offsetLength;\n expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad;\n expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad;\n }\n return expandedLineSet;\n};\nvar intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) {\n var dispX = centerX - x;\n var dispY = centerY - y;\n dispX /= ellipseWradius;\n dispY /= ellipseHradius;\n var len = Math.sqrt(dispX * dispX + dispY * dispY);\n var newLength = len - 1;\n if (newLength < 0) {\n return [];\n }\n var lenProportion = newLength / len;\n return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y];\n};\nvar checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) {\n x -= centerX;\n y -= centerY;\n x /= width / 2 + padding;\n y /= height / 2 + padding;\n return x * x + y * y <= 1;\n};\n\n// Returns intersections of increasing distance from line's start point\nvar intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) {\n // Calculate d, direction vector of line\n var d = [x2 - x1, y2 - y1]; // Direction vector of line\n var f = [x1 - centerX, y1 - centerY];\n var a = d[0] * d[0] + d[1] * d[1];\n var b = 2 * (f[0] * d[0] + f[1] * d[1]);\n var c = f[0] * f[0] + f[1] * f[1] - radius * radius;\n var discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n var t1 = (-b + Math.sqrt(discriminant)) / (2 * a);\n var t2 = (-b - Math.sqrt(discriminant)) / (2 * a);\n var tMin = Math.min(t1, t2);\n var tMax = Math.max(t1, t2);\n var inRangeParams = [];\n if (tMin >= 0 && tMin <= 1) {\n inRangeParams.push(tMin);\n }\n if (tMax >= 0 && tMax <= 1) {\n inRangeParams.push(tMax);\n }\n if (inRangeParams.length === 0) {\n return [];\n }\n var nearIntersectionX = inRangeParams[0] * d[0] + x1;\n var nearIntersectionY = inRangeParams[0] * d[1] + y1;\n if (inRangeParams.length > 1) {\n if (inRangeParams[0] == inRangeParams[1]) {\n return [nearIntersectionX, nearIntersectionY];\n } else {\n var farIntersectionX = inRangeParams[1] * d[0] + x1;\n var farIntersectionY = inRangeParams[1] * d[1] + y1;\n return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];\n }\n } else {\n return [nearIntersectionX, nearIntersectionY];\n }\n};\nvar midOfThree = function midOfThree(a, b, c) {\n if (b <= a && a <= c || c <= a && a <= b) {\n return a;\n } else if (a <= b && b <= c || c <= b && b <= a) {\n return b;\n } else {\n return c;\n }\n};\n\n// (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4)\nvar finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {\n var dx13 = x1 - x3;\n var dx21 = x2 - x1;\n var dx43 = x4 - x3;\n var dy13 = y1 - y3;\n var dy21 = y2 - y1;\n var dy43 = y4 - y3;\n var ua_t = dx43 * dy13 - dy43 * dx13;\n var ub_t = dx21 * dy13 - dy21 * dx13;\n var u_b = dy43 * dx21 - dx43 * dy21;\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n var flptThreshold = 0.001;\n var _min = 0 - flptThreshold;\n var _max = 1 + flptThreshold;\n if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {\n return [x1 + ua * dx21, y1 + ua * dy21];\n } else {\n if (!infiniteLines) {\n return [];\n } else {\n return [x1 + ua * dx21, y1 + ua * dy21];\n }\n }\n } else {\n if (ua_t === 0 || ub_t === 0) {\n // Parallel, coincident lines. Check if overlap\n\n // Check endpoint of second line\n if (midOfThree(x1, x2, x4) === x4) {\n return [x4, y4];\n }\n\n // Check start point of second line\n if (midOfThree(x1, x2, x3) === x3) {\n return [x3, y3];\n }\n\n // Endpoint of first line\n if (midOfThree(x3, x4, x2) === x2) {\n return [x2, y2];\n }\n return [];\n } else {\n // Parallel, non-coincident\n return [];\n }\n }\n};\nvar transformPoints = function transformPoints(points, centerX, centerY, width, height) {\n var ret = [];\n var halfW = width / 2;\n var halfH = height / 2;\n var x = centerX;\n var y = centerY;\n ret.push({\n x: x + halfW * points[0],\n y: y + halfH * points[1]\n });\n for (var i = 1; i < points.length / 2; i++) {\n ret.push({\n x: x + halfW * points[i * 2],\n y: y + halfH * points[i * 2 + 1]\n });\n }\n return ret;\n};\n\n// math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding )\n// intersect a node polygon (pts transformed)\n//\n// math.polygonIntersectLine( x, y, basePoints, centerX, centerY )\n// intersect the points (no transform)\nvar polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var transformedPoints = new Array(basePoints.length);\n var doTransform = true;\n if (width == null) {\n doTransform = false;\n }\n var points;\n if (doTransform) {\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = basePoints[i * 2] * width + centerX;\n transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY;\n }\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n } else {\n points = basePoints;\n }\n var currentX, currentY, nextX, nextY;\n for (var _i3 = 0; _i3 < points.length / 2; _i3++) {\n currentX = points[_i3 * 2];\n currentY = points[_i3 * 2 + 1];\n if (_i3 < points.length / 2 - 1) {\n nextX = points[(_i3 + 1) * 2];\n nextY = points[(_i3 + 1) * 2 + 1];\n } else {\n nextX = points[0];\n nextY = points[1];\n }\n intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n return intersections;\n};\nvar roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding, corners) {\n var intersections = [];\n var intersection;\n var lines = new Array(basePoints.length * 2);\n corners.forEach(function (corner, i) {\n if (i === 0) {\n lines[lines.length - 2] = corner.startX;\n lines[lines.length - 1] = corner.startY;\n } else {\n lines[i * 4 - 2] = corner.startX;\n lines[i * 4 - 1] = corner.startY;\n }\n lines[i * 4] = corner.stopX;\n lines[i * 4 + 1] = corner.stopY;\n intersection = intersectLineCircle(x, y, centerX, centerY, corner.cx, corner.cy, corner.radius);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n });\n for (var i = 0; i < lines.length / 4; i++) {\n intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[i * 4], lines[i * 4 + 1], lines[i * 4 + 2], lines[i * 4 + 3], false);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n if (intersections.length > 2) {\n var lowestIntersection = [intersections[0], intersections[1]];\n var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2);\n for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {\n var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2);\n if (squaredDistance <= lowestSquaredDistance) {\n lowestIntersection[0] = intersections[_i4 * 2];\n lowestIntersection[1] = intersections[_i4 * 2 + 1];\n lowestSquaredDistance = squaredDistance;\n }\n }\n return lowestIntersection;\n }\n return intersections;\n};\nvar shortenIntersection = function shortenIntersection(intersection, offset, amount) {\n var disp = [intersection[0] - offset[0], intersection[1] - offset[1]];\n var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);\n var lenRatio = (length - amount) / length;\n if (lenRatio < 0) {\n lenRatio = 0.00001;\n }\n return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];\n};\nvar generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) {\n var points = generateUnitNgonPoints(sides, rotationRadians);\n points = fitPolygonToSquare(points);\n return points;\n};\nvar fitPolygonToSquare = function fitPolygonToSquare(points) {\n var x, y;\n var sides = points.length / 2;\n var minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n for (var i = 0; i < sides; i++) {\n x = points[2 * i];\n y = points[2 * i + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n\n // stretch factors\n var sx = 2 / (maxX - minX);\n var sy = 2 / (maxY - minY);\n for (var _i5 = 0; _i5 < sides; _i5++) {\n x = points[2 * _i5] = points[2 * _i5] * sx;\n y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n if (minY < -1) {\n for (var _i6 = 0; _i6 < sides; _i6++) {\n y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);\n }\n }\n return points;\n};\nvar generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) {\n var increment = 1.0 / sides * 2 * Math.PI;\n var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0;\n startAngle += rotationRadians;\n var points = new Array(sides * 2);\n var currentAngle;\n for (var i = 0; i < sides; i++) {\n currentAngle = i * increment + startAngle;\n points[2 * i] = Math.cos(currentAngle); // x\n points[2 * i + 1] = Math.sin(-currentAngle); // y\n }\n return points;\n};\n\n// Set the default radius, unless half of width or height is smaller than default\nvar getRoundRectangleRadius = function getRoundRectangleRadius(width, height) {\n return Math.min(width / 4, height / 4, 8);\n};\n\n// Set the default radius\nvar getRoundPolygonRadius = function getRoundPolygonRadius(width, height) {\n return Math.min(width / 10, height / 10, 8);\n};\nvar getCutRectangleCornerLength = function getCutRectangleCornerLength() {\n return 8;\n};\nvar bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) {\n return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];\n};\n\n// get curve width, height, and control point position offsets as a percentage of node height / width\nvar getBarrelCurveConstants = function getBarrelCurveConstants(width, height) {\n return {\n heightOffset: Math.min(15, 0.05 * height),\n widthOffset: Math.min(100, 0.25 * width),\n ctrlPtOffsetPct: 0.05\n };\n};\n\n// Separating Axis Theorem (SAT) to determine if two polygons intersect. \n// The function takes two polygons as input and returns a boolean value indicating \n// whether the two polygons intersect.\nfunction satPolygonIntersection(poly1, poly2) {\n function getAxes(polygon) {\n var axes = [];\n for (var i = 0; i < polygon.length; i++) {\n var p1 = polygon[i];\n var p2 = polygon[(i + 1) % polygon.length];\n var edge = {\n x: p2.x - p1.x,\n y: p2.y - p1.y\n };\n var normal = {\n x: -edge.y,\n y: edge.x\n };\n var length = Math.sqrt(normal.x * normal.x + normal.y * normal.y);\n axes.push({\n x: normal.x / length,\n y: normal.y / length\n });\n }\n return axes;\n }\n function project(polygon, axis) {\n var min = Infinity;\n var max = -Infinity;\n var _iterator = _createForOfIteratorHelper(polygon),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var point = _step.value;\n var projection = point.x * axis.x + point.y * axis.y;\n min = Math.min(min, projection);\n max = Math.max(max, projection);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return {\n min: min,\n max: max\n };\n }\n function overlaps(proj1, proj2) {\n return !(proj1.max < proj2.min || proj2.max < proj1.min);\n }\n var axes = [].concat(_toConsumableArray(getAxes(poly1)), _toConsumableArray(getAxes(poly2)));\n var _iterator2 = _createForOfIteratorHelper(axes),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var axis = _step2.value;\n var proj1 = project(poly1, axis);\n var proj2 = project(poly2, axis);\n if (!overlaps(proj1, proj2)) {\n return false; // No overlap, so the polygons do not intersect\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return true; // polygons intersect\n}\n\nvar pageRankDefaults = defaults$g({\n dampingFactor: 0.8,\n precision: 0.000001,\n iterations: 200,\n weight: function weight(edge) {\n return 1;\n }\n});\nvar elesfn$o = {\n pageRank: function pageRank(options) {\n var _pageRankDefaults = pageRankDefaults(options),\n dampingFactor = _pageRankDefaults.dampingFactor,\n precision = _pageRankDefaults.precision,\n iterations = _pageRankDefaults.iterations,\n weight = _pageRankDefaults.weight;\n var cy = this._private.cy;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var numNodesSqd = numNodes * numNodes;\n var numEdges = edges.length;\n\n // Construct transposed adjacency matrix\n // First lets have a zeroed matrix of the right size\n // We'll also keep track of the sum of each column\n var matrix = new Array(numNodesSqd);\n var columnSum = new Array(numNodes);\n var additionalProb = (1 - dampingFactor) / numNodes;\n\n // Create null matrix\n for (var i = 0; i < numNodes; i++) {\n for (var j = 0; j < numNodes; j++) {\n var n = i * numNodes + j;\n matrix[n] = 0;\n }\n columnSum[i] = 0;\n }\n\n // Now, process edges\n for (var _i = 0; _i < numEdges; _i++) {\n var edge = edges[_i];\n var srcId = edge.data('source');\n var tgtId = edge.data('target');\n\n // Don't include loops in the matrix\n if (srcId === tgtId) {\n continue;\n }\n var s = nodes.indexOfId(srcId);\n var t = nodes.indexOfId(tgtId);\n var w = weight(edge);\n var _n = t * numNodes + s;\n\n // Update matrix\n matrix[_n] += w;\n\n // Update column sum\n columnSum[s] += w;\n }\n\n // Add additional probability based on damping factor\n // Also, take into account columns that have sum = 0\n var p = 1.0 / numNodes + additionalProb; // Shorthand\n\n // Traverse matrix, column by column\n for (var _j = 0; _j < numNodes; _j++) {\n if (columnSum[_j] === 0) {\n // No 'links' out from node jth, assume equal probability for each possible node\n for (var _i2 = 0; _i2 < numNodes; _i2++) {\n var _n2 = _i2 * numNodes + _j;\n matrix[_n2] = p;\n }\n } else {\n // Node jth has outgoing link, compute normalized probabilities\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n var _n3 = _i3 * numNodes + _j;\n matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;\n }\n }\n }\n\n // Compute dominant eigenvector using power method\n var eigenvector = new Array(numNodes);\n var temp = new Array(numNodes);\n var previous;\n\n // Start with a vector of all 1's\n // Also, initialize a null vector which will be used as shorthand\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n eigenvector[_i4] = 1;\n }\n for (var iter = 0; iter < iterations; iter++) {\n // Temp array with all 0's\n for (var _i5 = 0; _i5 < numNodes; _i5++) {\n temp[_i5] = 0;\n }\n\n // Multiply matrix with previous result\n for (var _i6 = 0; _i6 < numNodes; _i6++) {\n for (var _j2 = 0; _j2 < numNodes; _j2++) {\n var _n4 = _i6 * numNodes + _j2;\n temp[_i6] += matrix[_n4] * eigenvector[_j2];\n }\n }\n inPlaceSumNormalize(temp);\n previous = eigenvector;\n eigenvector = temp;\n temp = previous;\n var diff = 0;\n // Compute difference (squared module) of both vectors\n for (var _i7 = 0; _i7 < numNodes; _i7++) {\n var delta = previous[_i7] - eigenvector[_i7];\n diff += delta * delta;\n }\n\n // If difference is less than the desired threshold, stop iterating\n if (diff < precision) {\n break;\n }\n }\n\n // Construct result\n var res = {\n rank: function rank(node) {\n node = cy.collection(node)[0];\n return eigenvector[nodes.indexOf(node)];\n }\n };\n return res;\n } // pageRank\n}; // elesfn\n\nvar defaults$f = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n alpha: 0\n});\nvar elesfn$n = {\n degreeCentralityNormalized: function degreeCentralityNormalized(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var nodes = this.nodes();\n var numNodes = nodes.length;\n if (!options.directed) {\n var degrees = {};\n var maxDegree = 0;\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n\n // add current node to the current options object and call degreeCentrality\n options.root = node;\n var currDegree = this.degreeCentrality(options);\n if (maxDegree < currDegree.degree) {\n maxDegree = currDegree.degree;\n }\n degrees[node.id()] = currDegree.degree;\n }\n return {\n degree: function degree(node) {\n if (maxDegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return degrees[node.id()] / maxDegree;\n }\n };\n } else {\n var indegrees = {};\n var outdegrees = {};\n var maxIndegree = 0;\n var maxOutdegree = 0;\n for (var _i = 0; _i < numNodes; _i++) {\n var _node = nodes[_i];\n var id = _node.id();\n\n // add current node to the current options object and call degreeCentrality\n options.root = _node;\n var _currDegree = this.degreeCentrality(options);\n if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree;\n if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree;\n indegrees[id] = _currDegree.indegree;\n outdegrees[id] = _currDegree.outdegree;\n }\n return {\n indegree: function indegree(node) {\n if (maxIndegree == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return indegrees[node.id()] / maxIndegree;\n },\n outdegree: function outdegree(node) {\n if (maxOutdegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return outdegrees[node.id()] / maxOutdegree;\n }\n };\n }\n },\n // degreeCentralityNormalized\n\n // Implemented from the algorithm in Opsahl's paper\n // \"Node centrality in weighted networks: Generalizing degree and shortest paths\"\n // check the heading 2 \"Degree\"\n degreeCentrality: function degreeCentrality(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var callingEles = this;\n var _options = options,\n root = _options.root,\n weight = _options.weight,\n directed = _options.directed,\n alpha = _options.alpha;\n root = cy.collection(root)[0];\n if (!directed) {\n var connEdges = root.connectedEdges().intersection(callingEles);\n var k = connEdges.length;\n var s = 0;\n\n // Now, sum edge weights\n for (var i = 0; i < connEdges.length; i++) {\n s += weight(connEdges[i]);\n }\n return {\n degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)\n };\n } else {\n var edges = root.connectedEdges();\n var incoming = edges.filter(function (edge) {\n return edge.target().same(root) && callingEles.has(edge);\n });\n var outgoing = edges.filter(function (edge) {\n return edge.source().same(root) && callingEles.has(edge);\n });\n var k_in = incoming.length;\n var k_out = outgoing.length;\n var s_in = 0;\n var s_out = 0;\n\n // Now, sum incoming edge weights\n for (var _i2 = 0; _i2 < incoming.length; _i2++) {\n s_in += weight(incoming[_i2]);\n }\n\n // Now, sum outgoing edge weights\n for (var _i3 = 0; _i3 < outgoing.length; _i3++) {\n s_out += weight(outgoing[_i3]);\n }\n return {\n indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),\n outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)\n };\n }\n } // degreeCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$n.dc = elesfn$n.degreeCentrality;\nelesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;\n\nvar defaults$e = defaults$g({\n harmonic: true,\n weight: function weight() {\n return 1;\n },\n directed: false,\n root: null\n});\nvar elesfn$m = {\n closenessCentralityNormalized: function closenessCentralityNormalized(options) {\n var _defaults = defaults$e(options),\n harmonic = _defaults.harmonic,\n weight = _defaults.weight,\n directed = _defaults.directed;\n var cy = this.cy();\n var closenesses = {};\n var maxCloseness = 0;\n var nodes = this.nodes();\n var fw = this.floydWarshall({\n weight: weight,\n directed: directed\n });\n\n // Compute closeness for every node and find the maximum closeness\n for (var i = 0; i < nodes.length; i++) {\n var currCloseness = 0;\n var node_i = nodes[i];\n for (var j = 0; j < nodes.length; j++) {\n if (i !== j) {\n var d = fw.distance(node_i, nodes[j]);\n if (harmonic) {\n currCloseness += 1 / d;\n } else {\n currCloseness += d;\n }\n }\n }\n if (!harmonic) {\n currCloseness = 1 / currCloseness;\n }\n if (maxCloseness < currCloseness) {\n maxCloseness = currCloseness;\n }\n closenesses[node_i.id()] = currCloseness;\n }\n return {\n closeness: function closeness(node) {\n if (maxCloseness == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node)[0].id();\n } else {\n // from is a node\n node = node.id();\n }\n return closenesses[node] / maxCloseness;\n }\n };\n },\n // Implemented from pseudocode from wikipedia\n closenessCentrality: function closenessCentrality(options) {\n var _defaults2 = defaults$e(options),\n root = _defaults2.root,\n weight = _defaults2.weight,\n directed = _defaults2.directed,\n harmonic = _defaults2.harmonic;\n root = this.filter(root)[0];\n\n // we need distance from this node to every other node\n var dijkstra = this.dijkstra({\n root: root,\n weight: weight,\n directed: directed\n });\n var totalDistance = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (!n.same(root)) {\n var d = dijkstra.distanceTo(n);\n if (harmonic) {\n totalDistance += 1 / d;\n } else {\n totalDistance += d;\n }\n }\n }\n return harmonic ? totalDistance : 1 / totalDistance;\n } // closenessCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$m.cc = elesfn$m.closenessCentrality;\nelesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;\n\nvar defaults$d = defaults$g({\n weight: null,\n directed: false\n});\nvar elesfn$l = {\n // Implemented from the algorithm in the paper \"On Variants of Shortest-Path Betweenness Centrality and their Generic Computation\" by Ulrik Brandes\n betweennessCentrality: function betweennessCentrality(options) {\n var _defaults = defaults$d(options),\n directed = _defaults.directed,\n weight = _defaults.weight;\n var weighted = weight != null;\n var cy = this.cy();\n\n // starting\n var V = this.nodes();\n var A = {};\n var _C = {};\n var max = 0;\n var C = {\n set: function set(key, val) {\n _C[key] = val;\n if (val > max) {\n max = val;\n }\n },\n get: function get(key) {\n return _C[key];\n }\n };\n\n // A contains the neighborhoods of every node\n for (var i = 0; i < V.length; i++) {\n var v = V[i];\n var vid = v.id();\n if (directed) {\n A[vid] = v.outgoers().nodes(); // get outgoers of every node\n } else {\n A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node\n }\n C.set(vid, 0);\n }\n var _loop = function _loop() {\n var sid = V[s].id();\n var S = []; // stack\n var P = {};\n var g = {};\n var d = {};\n var Q = new Heap(function (a, b) {\n return d[a] - d[b];\n }); // queue\n\n // init dictionaries\n for (var _i = 0; _i < V.length; _i++) {\n var _vid = V[_i].id();\n P[_vid] = [];\n g[_vid] = 0;\n d[_vid] = Infinity;\n }\n g[sid] = 1; // sigma\n d[sid] = 0; // distance to s\n\n Q.push(sid);\n while (!Q.empty()) {\n var _v = Q.pop();\n S.push(_v);\n if (weighted) {\n for (var j = 0; j < A[_v].length; j++) {\n var w = A[_v][j];\n var vEle = cy.getElementById(_v);\n var edge = undefined;\n if (vEle.edgesTo(w).length > 0) {\n edge = vEle.edgesTo(w)[0];\n } else {\n edge = w.edgesTo(vEle)[0];\n }\n var edgeWeight = weight(edge);\n w = w.id();\n if (d[w] > d[_v] + edgeWeight) {\n d[w] = d[_v] + edgeWeight;\n if (Q.nodes.indexOf(w) < 0) {\n //if w is not in Q\n Q.push(w);\n } else {\n // update position if w is in Q\n Q.updateItem(w);\n }\n g[w] = 0;\n P[w] = [];\n }\n if (d[w] == d[_v] + edgeWeight) {\n g[w] = g[w] + g[_v];\n P[w].push(_v);\n }\n }\n } else {\n for (var _j = 0; _j < A[_v].length; _j++) {\n var _w = A[_v][_j].id();\n if (d[_w] == Infinity) {\n Q.push(_w);\n d[_w] = d[_v] + 1;\n }\n if (d[_w] == d[_v] + 1) {\n g[_w] = g[_w] + g[_v];\n P[_w].push(_v);\n }\n }\n }\n }\n var e = {};\n for (var _i2 = 0; _i2 < V.length; _i2++) {\n e[V[_i2].id()] = 0;\n }\n while (S.length > 0) {\n var _w2 = S.pop();\n for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {\n var _v2 = P[_w2][_j2];\n e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);\n }\n if (_w2 != V[s].id()) {\n C.set(_w2, C.get(_w2) + e[_w2]);\n }\n }\n };\n for (var s = 0; s < V.length; s++) {\n _loop();\n }\n var ret = {\n betweenness: function betweenness(node) {\n var id = cy.collection(node).id();\n return C.get(id);\n },\n betweennessNormalized: function betweennessNormalized(node) {\n if (max == 0) {\n return 0;\n }\n var id = cy.collection(node).id();\n return C.get(id) / max;\n }\n };\n\n // alias\n ret.betweennessNormalised = ret.betweennessNormalized;\n return ret;\n } // betweennessCentrality\n}; // elesfn\n\n// nice, short mathematical alias\nelesfn$l.bc = elesfn$l.betweennessCentrality;\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\n// https://github.com/cytoscape/cytoscape.js-markov-cluster\n\n\n/* eslint-disable no-unused-vars */\nvar defaults$c = defaults$g({\n expandFactor: 2,\n // affects time of computation and cluster granularity to some extent: M * M\n inflateFactor: 2,\n // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)\n multFactor: 1,\n // optional self loops for each node. Use a neutral value to improve cluster computations.\n maxIterations: 20,\n // maximum number of iterations of the MCL algorithm in a single run\n attributes: [\n // attributes/features used to group nodes, ie. similarity values between nodes\n function (edge) {\n return 1;\n }]\n});\n/* eslint-enable */\n\nvar setOptions$3 = function setOptions(options) {\n return defaults$c(options);\n};\n/* eslint-enable */\n\nvar getSimilarity$1 = function getSimilarity(edge, attributes) {\n var total = 0;\n for (var i = 0; i < attributes.length; i++) {\n total += attributes[i](edge);\n }\n return total;\n};\nvar addLoops = function addLoops(M, n, val) {\n for (var i = 0; i < n; i++) {\n M[i * n + i] = val;\n }\n};\nvar normalize = function normalize(M, n) {\n var sum;\n for (var col = 0; col < n; col++) {\n sum = 0;\n for (var row = 0; row < n; row++) {\n sum += M[row * n + col];\n }\n for (var _row = 0; _row < n; _row++) {\n M[_row * n + col] = M[_row * n + col] / sum;\n }\n }\n};\n\n// TODO: blocked matrix multiplication?\nvar mmult = function mmult(A, B, n) {\n var C = new Array(n * n);\n for (var i = 0; i < n; i++) {\n for (var j = 0; j < n; j++) {\n C[i * n + j] = 0;\n }\n for (var k = 0; k < n; k++) {\n for (var _j = 0; _j < n; _j++) {\n C[i * n + _j] += A[i * n + k] * B[k * n + _j];\n }\n }\n }\n return C;\n};\nvar expand = function expand(M, n, expandFactor /** power **/) {\n var _M = M.slice(0);\n for (var p = 1; p < expandFactor; p++) {\n M = mmult(M, _M, n);\n }\n return M;\n};\nvar inflate = function inflate(M, n, inflateFactor /** r **/) {\n var _M = new Array(n * n);\n\n // M(i,j) ^ inflatePower\n for (var i = 0; i < n * n; i++) {\n _M[i] = Math.pow(M[i], inflateFactor);\n }\n normalize(_M, n);\n return _M;\n};\nvar hasConverged = function hasConverged(M, _M, n2, roundFactor) {\n // Check that both matrices have the same elements (i,j)\n for (var i = 0; i < n2; i++) {\n var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places\n var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);\n if (v1 !== v2) {\n return false;\n }\n }\n return true;\n};\nvar assign$2 = function assign(M, n, nodes, cy) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var cluster = [];\n for (var j = 0; j < n; j++) {\n // Row-wise attractors and elements that they attract belong in same cluster\n if (Math.round(M[i * n + j] * 1000) / 1000 > 0) {\n cluster.push(nodes[j]);\n }\n }\n if (cluster.length !== 0) {\n clusters.push(cy.collection(cluster));\n }\n }\n return clusters;\n};\nvar isDuplicate = function isDuplicate(c1, c2) {\n for (var i = 0; i < c1.length; i++) {\n if (!c2[i] || c1[i].id() !== c2[i].id()) {\n return false;\n }\n }\n return true;\n};\nvar removeDuplicates = function removeDuplicates(clusters) {\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j < clusters.length; j++) {\n if (i != j && isDuplicate(clusters[i], clusters[j])) {\n clusters.splice(j, 1);\n }\n }\n }\n return clusters;\n};\nvar markovClustering = function markovClustering(options) {\n var nodes = this.nodes();\n var edges = this.edges();\n var cy = this.cy();\n\n // Set parameters of algorithm:\n var opts = setOptions$3(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Generate stochastic matrix M from input graph G (should be symmetric/undirected)\n var n = nodes.length,\n n2 = n * n;\n var M = new Array(n2),\n _M;\n for (var _i = 0; _i < n2; _i++) {\n M[_i] = 0;\n }\n for (var e = 0; e < edges.length; e++) {\n var edge = edges[e];\n var _i2 = id2position[edge.source().id()];\n var j = id2position[edge.target().id()];\n var sim = getSimilarity$1(edge, opts.attributes);\n M[_i2 * n + j] += sim; // G should be symmetric and undirected\n M[j * n + _i2] += sim;\n }\n\n // Begin Markov cluster algorithm\n\n // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal\n addLoops(M, n, opts.multFactor);\n\n // Step 2: M = normalize( M );\n normalize(M, n);\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 3:\n _M = expand(M, n, opts.expandFactor);\n\n // Step 4:\n M = inflate(_M, n, opts.inflateFactor);\n\n // Step 5: check to see if ~steady state has been reached\n if (!hasConverged(M, _M, n2, 4)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Build clusters from matrix\n var clusters = assign$2(M, n, nodes, cy);\n\n // Remove duplicate clusters due to symmetry of graph and M matrix\n clusters = removeDuplicates(clusters);\n return clusters;\n};\nvar markovClustering$1 = {\n markovClustering: markovClustering,\n mcl: markovClustering\n};\n\n// Common distance metrics for clustering algorithms\n// https://en.wikipedia.org/wiki/Hierarchical_clustering#Metric\n\nvar identity$1 = function identity(x) {\n return x;\n};\nvar absDiff = function absDiff(p, q) {\n return Math.abs(q - p);\n};\nvar addAbsDiff = function addAbsDiff(total, p, q) {\n return total + absDiff(p, q);\n};\nvar addSquaredDiff = function addSquaredDiff(total, p, q) {\n return total + Math.pow(q - p, 2);\n};\nvar sqrt = function sqrt(x) {\n return Math.sqrt(x);\n};\nvar maxAbsDiff = function maxAbsDiff(currentMax, p, q) {\n return Math.max(currentMax, absDiff(p, q));\n};\nvar getDistance = function getDistance(length, getP, getQ, init, visit) {\n var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity$1;\n var ret = init;\n var p, q;\n for (var dim = 0; dim < length; dim++) {\n p = getP(dim);\n q = getQ(dim);\n ret = visit(ret, p, q);\n }\n return post(ret);\n};\nvar distances = {\n euclidean: function euclidean(length, getP, getQ) {\n if (length >= 2) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt);\n } else {\n // for single attr case, more efficient to avoid sqrt\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n }\n },\n squaredEuclidean: function squaredEuclidean(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff);\n },\n manhattan: function manhattan(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n },\n max: function max(length, getP, getQ) {\n return getDistance(length, getP, getQ, -Infinity, maxAbsDiff);\n }\n};\n\n// in case the user accidentally doesn't use camel case\ndistances['squared-euclidean'] = distances['squaredEuclidean'];\ndistances['squaredeuclidean'] = distances['squaredEuclidean'];\nfunction clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) {\n var impl;\n if (fn$6(method)) {\n impl = method;\n } else {\n impl = distances[method] || distances.euclidean;\n }\n if (length === 0 && fn$6(method)) {\n return impl(nodeP, nodeQ);\n } else {\n return impl(length, getP, getQ, nodeP, nodeQ);\n }\n}\n\nvar defaults$b = defaults$g({\n k: 2,\n m: 2,\n sensitivityThreshold: 0.0001,\n distance: 'euclidean',\n maxIterations: 10,\n attributes: [],\n testMode: false,\n testCentroids: null\n});\nvar setOptions$2 = function setOptions(options) {\n return defaults$b(options);\n};\n\nvar getDist = function getDist(type, node, centroid, attributes, mode) {\n var noNodeP = mode !== 'kMedoids';\n var getP = noNodeP ? function (i) {\n return centroid[i];\n } : function (i) {\n return attributes[i](centroid);\n };\n var getQ = function getQ(i) {\n return attributes[i](node);\n };\n var nodeP = centroid;\n var nodeQ = node;\n return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ);\n};\nvar randomCentroids = function randomCentroids(nodes, k, attributes) {\n var ndim = attributes.length;\n var min = new Array(ndim);\n var max = new Array(ndim);\n var centroids = new Array(k);\n var centroid = null;\n\n // Find min, max values for each attribute dimension\n for (var i = 0; i < ndim; i++) {\n min[i] = nodes.min(attributes[i]).value;\n max[i] = nodes.max(attributes[i]).value;\n }\n\n // Build k centroids, each represented as an n-dim feature vector\n for (var c = 0; c < k; c++) {\n centroid = [];\n for (var _i = 0; _i < ndim; _i++) {\n centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value\n }\n centroids[c] = centroid;\n }\n return centroids;\n};\nvar classify = function classify(node, centroids, distance, attributes, type) {\n var min = Infinity;\n var index = 0;\n for (var i = 0; i < centroids.length; i++) {\n var dist = getDist(distance, node, centroids[i], attributes, type);\n if (dist < min) {\n min = dist;\n index = i;\n }\n }\n return index;\n};\nvar buildCluster = function buildCluster(centroid, nodes, assignment) {\n var cluster = [];\n var node = null;\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n if (assignment[node.id()] === centroid) {\n //console.log(\"Node \" + node.id() + \" is associated with medoid #: \" + m);\n cluster.push(node);\n }\n }\n return cluster;\n};\nvar haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) {\n return Math.abs(v2 - v1) <= sensitivityThreshold;\n};\nvar haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) {\n for (var i = 0; i < v1.length; i++) {\n for (var j = 0; j < v1[i].length; j++) {\n var diff = Math.abs(v1[i][j] - v2[i][j]);\n if (diff > sensitivityThreshold) {\n return false;\n }\n }\n }\n return true;\n};\nvar seenBefore = function seenBefore(node, medoids, n) {\n for (var i = 0; i < n; i++) {\n if (node === medoids[i]) return true;\n }\n return false;\n};\nvar randomMedoids = function randomMedoids(nodes, k) {\n var medoids = new Array(k);\n\n // For small data sets, the probability of medoid conflict is greater,\n // so we need to check to see if we've already seen or chose this node before.\n if (nodes.length < 50) {\n // Randomly select k medoids from the n nodes\n for (var i = 0; i < k; i++) {\n var node = nodes[Math.floor(Math.random() * nodes.length)];\n\n // If we've already chosen this node to be a medoid, don't choose it again (for small data sets).\n // Instead choose a different random node.\n while (seenBefore(node, medoids, i)) {\n node = nodes[Math.floor(Math.random() * nodes.length)];\n }\n medoids[i] = node;\n }\n } else {\n // Relatively large data set, so pretty safe to not check and just select random nodes\n for (var _i2 = 0; _i2 < k; _i2++) {\n medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)];\n }\n }\n return medoids;\n};\nvar findCost = function findCost(potentialNewMedoid, cluster, attributes) {\n var cost = 0;\n for (var n = 0; n < cluster.length; n++) {\n cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids');\n }\n return cost;\n};\nvar kMeans = function kMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n\n // Set parameters of algorithm: # of clusters, distance metric, etc.\n var opts = setOptions$2(options);\n\n // Begin k-means algorithm\n var clusters = new Array(opts.k);\n var assignment = {};\n var centroids;\n\n // Step 1: Initialize centroid positions\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') {\n // TODO: implement a seeded random number generator.\n opts.testCentroids;\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n } else if (_typeof(opts.testCentroids) === 'object') {\n centroids = opts.testCentroids;\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest centroid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans');\n }\n\n // Step 3: For each of the k clusters, update its centroid\n isStillMoving = false;\n for (var c = 0; c < opts.k; c++) {\n // Get all nodes that belong to this cluster\n var cluster = buildCluster(c, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n\n // Update centroids by calculating avg of all nodes within the cluster.\n var ndim = opts.attributes.length;\n var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ]\n var newCentroid = new Array(ndim);\n var sum = new Array(ndim);\n for (var d = 0; d < ndim; d++) {\n sum[d] = 0.0;\n for (var i = 0; i < cluster.length; i++) {\n node = cluster[i];\n sum[d] += opts.attributes[d](node);\n }\n newCentroid[d] = sum[d] / cluster.length;\n\n // Check to see if algorithm has converged, i.e. when centroids no longer change\n if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n }\n centroids[c] = newCentroid;\n clusters[c] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n};\nvar kMedoids = function kMedoids(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n var opts = setOptions$2(options);\n\n // Begin k-medoids algorithm\n var clusters = new Array(opts.k);\n var medoids;\n var assignment = {};\n var curCost;\n var minCosts = new Array(opts.k); // minimum cost configuration for each cluster\n\n // Step 1: Initialize k medoids\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') {\n medoids = opts.testCentroids;\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest medoid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids');\n }\n isStillMoving = false;\n // Step 3: For each medoid m, and for each node associated with mediod m,\n // select the node with the lowest configuration cost as new medoid.\n for (var m = 0; m < medoids.length; m++) {\n // Get all nodes that belong to this medoid\n var cluster = buildCluster(m, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost\n\n // Select different medoid if its configuration has the lowest cost\n for (var _n = 0; _n < cluster.length; _n++) {\n curCost = findCost(cluster[_n], cluster, opts.attributes);\n if (curCost < minCosts[m]) {\n minCosts[m] = curCost;\n medoids[m] = cluster[_n];\n isStillMoving = true;\n }\n }\n clusters[m] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n};\nvar updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) {\n var numerator, denominator;\n for (var n = 0; n < nodes.length; n++) {\n for (var c = 0; c < centroids.length; c++) {\n weight[n][c] = Math.pow(U[n][c], opts.m);\n }\n }\n for (var _c = 0; _c < centroids.length; _c++) {\n for (var dim = 0; dim < opts.attributes.length; dim++) {\n numerator = 0;\n denominator = 0;\n for (var _n2 = 0; _n2 < nodes.length; _n2++) {\n numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]);\n denominator += weight[_n2][_c];\n }\n centroids[_c][dim] = numerator / denominator;\n }\n }\n};\nvar updateMembership = function updateMembership(U, _U, centroids, nodes, opts) {\n // Save previous step\n for (var i = 0; i < U.length; i++) {\n _U[i] = U[i].slice();\n }\n var sum, numerator, denominator;\n var pow = 2 / (opts.m - 1);\n for (var c = 0; c < centroids.length; c++) {\n for (var n = 0; n < nodes.length; n++) {\n sum = 0;\n for (var k = 0; k < centroids.length; k++) {\n // against all other centroids\n numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans');\n denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans');\n sum += Math.pow(numerator / denominator, pow);\n }\n U[n][c] = 1 / sum;\n }\n }\n};\nvar assign$1 = function assign(nodes, U, opts, cy) {\n var clusters = new Array(opts.k);\n for (var c = 0; c < clusters.length; c++) {\n clusters[c] = [];\n }\n var max;\n var index;\n for (var n = 0; n < U.length; n++) {\n // for each node (U is N x C matrix)\n max = -Infinity;\n index = -1;\n // Determine which cluster the node is most likely to belong in\n for (var _c2 = 0; _c2 < U[0].length; _c2++) {\n if (U[n][_c2] > max) {\n max = U[n][_c2];\n index = _c2;\n }\n }\n clusters[index].push(nodes[n]);\n }\n\n // Turn every array into a collection of nodes\n for (var _c3 = 0; _c3 < clusters.length; _c3++) {\n clusters[_c3] = cy.collection(clusters[_c3]);\n }\n return clusters;\n};\nvar fuzzyCMeans = function fuzzyCMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions$2(options);\n\n // Begin fuzzy c-means algorithm\n var clusters;\n var centroids;\n var U;\n var _U;\n var weight;\n\n // Step 1: Initialize letiables.\n _U = new Array(nodes.length);\n for (var i = 0; i < nodes.length; i++) {\n // N x C matrix\n _U[i] = new Array(opts.k);\n }\n U = new Array(nodes.length);\n for (var _i3 = 0; _i3 < nodes.length; _i3++) {\n // N x C matrix\n U[_i3] = new Array(opts.k);\n }\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var total = 0;\n for (var j = 0; j < opts.k; j++) {\n U[_i4][j] = Math.random();\n total += U[_i4][j];\n }\n for (var _j = 0; _j < opts.k; _j++) {\n U[_i4][_j] = U[_i4][_j] / total;\n }\n }\n centroids = new Array(opts.k);\n for (var _i5 = 0; _i5 < opts.k; _i5++) {\n centroids[_i5] = new Array(opts.attributes.length);\n }\n weight = new Array(nodes.length);\n for (var _i6 = 0; _i6 < nodes.length; _i6++) {\n // N x C matrix\n weight[_i6] = new Array(opts.k);\n }\n // end init FCM\n\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 2: Calculate the centroids for each step.\n updateCentroids(centroids, nodes, U, weight, opts);\n\n // Step 3: Update the partition matrix U.\n updateMembership(U, _U, centroids, nodes, opts);\n\n // Step 4: Check for convergence.\n if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Assign nodes to clusters with highest probability.\n clusters = assign$1(nodes, U, opts, cy);\n return {\n clusters: clusters,\n degreeOfMembership: U\n };\n};\nvar kClustering = {\n kMeans: kMeans,\n kMedoids: kMedoids,\n fuzzyCMeans: fuzzyCMeans,\n fcm: fuzzyCMeans\n};\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\n// https://github.com/cytoscape/cytoscape.js-hierarchical\n\nvar defaults$a = defaults$g({\n distance: 'euclidean',\n // distance metric to compare nodes\n linkage: 'min',\n // linkage criterion : how to determine the distance between clusters of nodes\n mode: 'threshold',\n // mode:'threshold' => clusters must be threshold distance apart\n threshold: Infinity,\n // the distance threshold\n // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters\n addDendrogram: false,\n // whether to add the dendrogram to the graph for viz\n dendrogramDepth: 0,\n // depth at which dendrogram branches are merged into the returned clusters\n attributes: [] // array of attr functions\n});\nvar linkageAliases = {\n 'single': 'min',\n 'complete': 'max'\n};\nvar setOptions$1 = function setOptions(options) {\n var opts = defaults$a(options);\n var preferredAlias = linkageAliases[opts.linkage];\n if (preferredAlias != null) {\n opts.linkage = preferredAlias;\n }\n return opts;\n};\nvar mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) {\n // Find two closest clusters from cached mins\n var minKey = 0;\n var min = Infinity;\n var dist;\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n for (var i = 0; i < clusters.length; i++) {\n var key = clusters[i].key;\n var _dist = dists[key][mins[key]];\n if (_dist < min) {\n minKey = key;\n min = _dist;\n }\n }\n if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) {\n return false;\n }\n var c1 = index[minKey];\n var c2 = index[mins[minKey]];\n var merged;\n\n // Merge two closest clusters\n if (opts.mode === 'dendrogram') {\n merged = {\n left: c1,\n right: c2,\n key: c1.key\n };\n } else {\n merged = {\n value: c1.value.concat(c2.value),\n key: c1.key\n };\n }\n clusters[c1.index] = merged;\n clusters.splice(c2.index, 1);\n index[c1.key] = merged;\n\n // Update distances with new merged cluster\n for (var _i = 0; _i < clusters.length; _i++) {\n var cur = clusters[_i];\n if (c1.key === cur.key) {\n dist = Infinity;\n } else if (opts.linkage === 'min') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'max') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'mean') {\n dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);\n } else {\n if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]);\n }\n dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric\n }\n\n // Update cached mins\n for (var _i2 = 0; _i2 < clusters.length; _i2++) {\n var key1 = clusters[_i2].key;\n if (mins[key1] === c1.key || mins[key1] === c2.key) {\n var _min = key1;\n for (var j = 0; j < clusters.length; j++) {\n var key2 = clusters[j].key;\n if (dists[key1][key2] < dists[key1][_min]) {\n _min = key2;\n }\n }\n mins[key1] = _min;\n }\n clusters[_i2].index = _i2;\n }\n\n // Clean up meta data used for clustering\n c1.key = c2.key = c1.index = c2.index = null;\n return true;\n};\nvar _getAllChildren = function getAllChildren(root, arr, cy) {\n if (!root) return;\n if (root.value) {\n arr.push(root.value);\n } else {\n if (root.left) _getAllChildren(root.left, arr);\n if (root.right) _getAllChildren(root.right, arr);\n }\n};\nvar _buildDendrogram = function buildDendrogram(root, cy) {\n if (!root) return '';\n if (root.left && root.right) {\n var leftStr = _buildDendrogram(root.left, cy);\n var rightStr = _buildDendrogram(root.right, cy);\n var node = cy.add({\n group: 'nodes',\n data: {\n id: leftStr + ',' + rightStr\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: leftStr,\n target: node.id()\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: rightStr,\n target: node.id()\n }\n });\n return node.id();\n } else if (root.value) {\n return root.value.id();\n }\n};\nvar _buildClustersFromTree = function buildClustersFromTree(root, k, cy) {\n if (!root) return [];\n var left = [],\n right = [],\n leaves = [];\n if (k === 0) {\n // don't cut tree, simply return all nodes as 1 single cluster\n if (root.left) _getAllChildren(root.left, left);\n if (root.right) _getAllChildren(root.right, right);\n leaves = left.concat(right);\n return [cy.collection(leaves)];\n } else if (k === 1) {\n // cut at root\n\n if (root.value) {\n // leaf node\n return [cy.collection(root.value)];\n } else {\n if (root.left) _getAllChildren(root.left, left);\n if (root.right) _getAllChildren(root.right, right);\n return [cy.collection(left), cy.collection(right)];\n }\n } else {\n if (root.value) {\n return [cy.collection(root.value)];\n } else {\n if (root.left) left = _buildClustersFromTree(root.left, k - 1, cy);\n if (root.right) right = _buildClustersFromTree(root.right, k - 1, cy);\n return left.concat(right);\n }\n }\n};\n\nvar hierarchicalClustering = function hierarchicalClustering(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n\n // Set parameters of algorithm: linkage type, distance metric, etc.\n var opts = setOptions$1(options);\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n\n // Begin hierarchical algorithm\n var clusters = [];\n var dists = []; // distances between each pair of clusters\n var mins = []; // closest cluster for each cluster\n var index = []; // hash of all clusters by key\n\n // In agglomerative (bottom-up) clustering, each node starts as its own cluster\n for (var n = 0; n < nodes.length; n++) {\n var cluster = {\n value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]],\n key: n,\n index: n\n };\n clusters[n] = cluster;\n index[n] = cluster;\n dists[n] = [];\n mins[n] = 0;\n }\n\n // Calculate the distance between each pair of clusters\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j <= i; j++) {\n var dist = undefined;\n if (opts.mode === 'dendrogram') {\n // modes store cluster values differently\n dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value);\n } else {\n dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]);\n }\n dists[i][j] = dist;\n dists[j][i] = dist;\n if (dist < dists[i][mins[i]]) {\n mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j\n }\n }\n }\n\n // Find the closest pair of clusters and merge them into a single cluster.\n // Update distances between new cluster and each of the old clusters, and loop until threshold reached.\n var merged = mergeClosest(clusters, index, dists, mins, opts);\n while (merged) {\n merged = mergeClosest(clusters, index, dists, mins, opts);\n }\n var retClusters;\n\n // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges\n // in addition to returning the clusters.\n if (opts.mode === 'dendrogram') {\n retClusters = _buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);\n if (opts.addDendrogram) _buildDendrogram(clusters[0], cy);\n } else {\n // Regular mode simply returns the clusters\n\n retClusters = new Array(clusters.length);\n clusters.forEach(function (cluster, i) {\n // Clean up meta data used for clustering\n cluster.key = cluster.index = null;\n retClusters[i] = cy.collection(cluster.value);\n });\n }\n return retClusters;\n};\nvar hierarchicalClustering$1 = {\n hierarchicalClustering: hierarchicalClustering,\n hca: hierarchicalClustering\n};\n\n// Implemented by Zoe Xi @zoexi for GSOC 2016\n// https://github.com/cytoscape/cytoscape.js-affinity-propagation\n\nvar defaults$9 = defaults$g({\n distance: 'euclidean',\n // distance metric to compare attributes between two nodes\n preference: 'median',\n // suitability of a data point to serve as an exemplar\n damping: 0.8,\n // damping factor between [0.5, 1)\n maxIterations: 1000,\n // max number of iterations to run\n minIterations: 100,\n // min number of iterations to run in order for clustering to stop\n attributes: [// functions to quantify the similarity between any two points\n // e.g. node => node.data('weight')\n ]\n});\nvar setOptions = function setOptions(options) {\n var dmp = options.damping;\n var pref = options.preference;\n if (!(0.5 <= dmp && dmp < 1)) {\n error(\"Damping must range on [0.5, 1). Got: \".concat(dmp));\n }\n var validPrefs = ['median', 'mean', 'min', 'max'];\n if (!(validPrefs.some(function (v) {\n return v === pref;\n }) || number$1(pref))) {\n error(\"Preference must be one of [\".concat(validPrefs.map(function (p) {\n return \"'\".concat(p, \"'\");\n }).join(', '), \"] or a number. Got: \").concat(pref));\n }\n return defaults$9(options);\n};\n\nvar getSimilarity = function getSimilarity(type, n1, n2, attributes) {\n var attr = function attr(n, i) {\n return attributes[i](n);\n };\n\n // nb negative because similarity should have an inverse relationship to distance\n return -clusteringDistance(type, attributes.length, function (i) {\n return attr(n1, i);\n }, function (i) {\n return attr(n2, i);\n }, n1, n2);\n};\nvar getPreference = function getPreference(S, preference) {\n // larger preference = greater # of clusters\n var p = null;\n if (preference === 'median') {\n p = median(S);\n } else if (preference === 'mean') {\n p = mean(S);\n } else if (preference === 'min') {\n p = min(S);\n } else if (preference === 'max') {\n p = max(S);\n } else {\n // Custom preference number, as set by user\n p = preference;\n }\n return p;\n};\nvar findExemplars = function findExemplars(n, R, A) {\n var indices = [];\n for (var i = 0; i < n; i++) {\n if (R[i * n + i] + A[i * n + i] > 0) {\n indices.push(i);\n }\n }\n return indices;\n};\nvar assignClusters = function assignClusters(n, S, exemplars) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var index = -1;\n var max = -Infinity;\n for (var ei = 0; ei < exemplars.length; ei++) {\n var e = exemplars[ei];\n if (S[i * n + e] > max) {\n index = e;\n max = S[i * n + e];\n }\n }\n if (index > 0) {\n clusters.push(index);\n }\n }\n for (var _ei = 0; _ei < exemplars.length; _ei++) {\n clusters[exemplars[_ei]] = exemplars[_ei];\n }\n return clusters;\n};\nvar assign = function assign(n, S, exemplars) {\n var clusters = assignClusters(n, S, exemplars);\n for (var ei = 0; ei < exemplars.length; ei++) {\n var ii = [];\n for (var c = 0; c < clusters.length; c++) {\n if (clusters[c] === exemplars[ei]) {\n ii.push(c);\n }\n }\n var maxI = -1;\n var maxSum = -Infinity;\n for (var i = 0; i < ii.length; i++) {\n var sum = 0;\n for (var j = 0; j < ii.length; j++) {\n sum += S[ii[j] * n + ii[i]];\n }\n if (sum > maxSum) {\n maxI = i;\n maxSum = sum;\n }\n }\n exemplars[ei] = ii[maxI];\n }\n clusters = assignClusters(n, S, exemplars);\n return clusters;\n};\nvar affinityPropagation = function affinityPropagation(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Begin affinity propagation algorithm\n\n var n; // number of data points\n var n2; // size of matrices\n var S; // similarity matrix (1D array)\n var p; // preference/suitability of a data point to serve as an exemplar\n var R; // responsibility matrix (1D array)\n var A; // availability matrix (1D array)\n\n n = nodes.length;\n n2 = n * n;\n\n // Initialize and build S similarity matrix\n S = new Array(n2);\n for (var _i = 0; _i < n2; _i++) {\n S[_i] = -Infinity; // for cases where two data points shouldn't be linked together\n }\n for (var _i2 = 0; _i2 < n; _i2++) {\n for (var j = 0; j < n; j++) {\n if (_i2 !== j) {\n S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes);\n }\n }\n }\n\n // Place preferences on the diagonal of S\n p = getPreference(S, opts.preference);\n for (var _i3 = 0; _i3 < n; _i3++) {\n S[_i3 * n + _i3] = p;\n }\n\n // Initialize R responsibility matrix\n R = new Array(n2);\n for (var _i4 = 0; _i4 < n2; _i4++) {\n R[_i4] = 0.0;\n }\n\n // Initialize A availability matrix\n A = new Array(n2);\n for (var _i5 = 0; _i5 < n2; _i5++) {\n A[_i5] = 0.0;\n }\n var old = new Array(n);\n var Rp = new Array(n);\n var se = new Array(n);\n for (var _i6 = 0; _i6 < n; _i6++) {\n old[_i6] = 0.0;\n Rp[_i6] = 0.0;\n se[_i6] = 0;\n }\n var e = new Array(n * opts.minIterations);\n for (var _i7 = 0; _i7 < e.length; _i7++) {\n e[_i7] = 0;\n }\n var iter;\n for (iter = 0; iter < opts.maxIterations; iter++) {\n // main algorithmic loop\n\n // Update R responsibility matrix\n for (var _i8 = 0; _i8 < n; _i8++) {\n var max = -Infinity,\n max2 = -Infinity,\n maxI = -1,\n AS = 0.0;\n for (var _j = 0; _j < n; _j++) {\n old[_j] = R[_i8 * n + _j];\n AS = A[_i8 * n + _j] + S[_i8 * n + _j];\n if (AS >= max) {\n max2 = max;\n max = AS;\n maxI = _j;\n } else if (AS > max2) {\n max2 = AS;\n }\n }\n for (var _j2 = 0; _j2 < n; _j2++) {\n R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2];\n }\n R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI];\n }\n\n // Update A availability matrix\n for (var _i9 = 0; _i9 < n; _i9++) {\n var sum = 0;\n for (var _j3 = 0; _j3 < n; _j3++) {\n old[_j3] = A[_j3 * n + _i9];\n Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);\n sum += Rp[_j3];\n }\n sum -= Rp[_i9];\n Rp[_i9] = R[_i9 * n + _i9];\n sum += Rp[_i9];\n for (var _j4 = 0; _j4 < n; _j4++) {\n A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];\n }\n A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];\n }\n\n // Check for convergence\n var K = 0;\n for (var _i10 = 0; _i10 < n; _i10++) {\n var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;\n e[iter % opts.minIterations * n + _i10] = E;\n K += E;\n }\n if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {\n var _sum = 0;\n for (var _i11 = 0; _i11 < n; _i11++) {\n se[_i11] = 0;\n for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {\n se[_i11] += e[_j5 * n + _i11];\n }\n if (se[_i11] === 0 || se[_i11] === opts.minIterations) {\n _sum++;\n }\n }\n if (_sum === n) {\n // then we have convergence\n break;\n }\n }\n }\n\n // Identify exemplars (cluster centers)\n var exemplarsIndices = findExemplars(n, R, A);\n\n // Assign nodes to clusters\n var clusterIndices = assign(n, S, exemplarsIndices);\n var clusters = {};\n for (var c = 0; c < exemplarsIndices.length; c++) {\n clusters[exemplarsIndices[c]] = [];\n }\n for (var _i12 = 0; _i12 < nodes.length; _i12++) {\n var pos = id2position[nodes[_i12].id()];\n var clusterIndex = clusterIndices[pos];\n if (clusterIndex != null) {\n // the node may have not been assigned a cluster if no valid attributes were specified\n clusters[clusterIndex].push(nodes[_i12]);\n }\n }\n var retClusters = new Array(exemplarsIndices.length);\n for (var _c = 0; _c < exemplarsIndices.length; _c++) {\n retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);\n }\n return retClusters;\n};\nvar affinityPropagation$1 = {\n affinityPropagation: affinityPropagation,\n ap: affinityPropagation\n};\n\nvar hierholzerDefaults = defaults$g({\n root: undefined,\n directed: false\n});\nvar elesfn$k = {\n hierholzer: function hierholzer(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n directed: args[1]\n };\n }\n var _hierholzerDefaults = hierholzerDefaults(options),\n root = _hierholzerDefaults.root,\n directed = _hierholzerDefaults.directed;\n var eles = this;\n var dflag = false;\n var oddIn;\n var oddOut;\n var startVertex;\n if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id();\n var nodes = {};\n var edges = {};\n if (directed) {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var ind = ele.indegree(true);\n var outd = ele.outdegree(true);\n var d1 = ind - outd;\n var d2 = outd - ind;\n if (d1 == 1) {\n if (oddIn) dflag = true;else oddIn = id;\n } else if (d2 == 1) {\n if (oddOut) dflag = true;else oddOut = id;\n } else if (d2 > 1 || d1 > 1) {\n dflag = true;\n }\n nodes[id] = [];\n ele.outgoers().forEach(function (e) {\n if (e.isEdge()) nodes[id].push(e.id());\n });\n } else {\n edges[id] = [undefined, ele.target().id()];\n }\n });\n } else {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var d = ele.degree(true);\n if (d % 2) {\n if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true;\n }\n nodes[id] = [];\n ele.connectedEdges().forEach(function (e) {\n return nodes[id].push(e.id());\n });\n } else {\n edges[id] = [ele.source().id(), ele.target().id()];\n }\n });\n }\n var result = {\n found: false,\n trail: undefined\n };\n if (dflag) return result;else if (oddOut && oddIn) {\n if (directed) {\n if (startVertex && oddOut != startVertex) {\n return result;\n }\n startVertex = oddOut;\n } else {\n if (startVertex && oddOut != startVertex && oddIn != startVertex) {\n return result;\n } else if (!startVertex) {\n startVertex = oddOut;\n }\n }\n } else {\n if (!startVertex) startVertex = eles[0].id();\n }\n var walk = function walk(v) {\n var currentNode = v;\n var subtour = [v];\n var adj, adjTail, adjHead;\n while (nodes[currentNode].length) {\n adj = nodes[currentNode].shift();\n adjTail = edges[adj][0];\n adjHead = edges[adj][1];\n if (currentNode != adjHead) {\n nodes[adjHead] = nodes[adjHead].filter(function (e) {\n return e != adj;\n });\n currentNode = adjHead;\n } else if (!directed && currentNode != adjTail) {\n nodes[adjTail] = nodes[adjTail].filter(function (e) {\n return e != adj;\n });\n currentNode = adjTail;\n }\n subtour.unshift(adj);\n subtour.unshift(currentNode);\n }\n return subtour;\n };\n var trail = [];\n var subtour = [];\n subtour = walk(startVertex);\n while (subtour.length != 1) {\n if (nodes[subtour[0]].length == 0) {\n trail.unshift(eles.getElementById(subtour.shift()));\n trail.unshift(eles.getElementById(subtour.shift()));\n } else {\n subtour = walk(subtour.shift()).concat(subtour);\n }\n }\n trail.unshift(eles.getElementById(subtour.shift())); // final node\n\n for (var d in nodes) {\n if (nodes[d].length) {\n return result;\n }\n }\n result.found = true;\n result.trail = this.spawn(trail, true);\n return result;\n }\n};\n\nvar hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() {\n var eles = this;\n var nodes = {};\n var id = 0;\n var edgeCount = 0;\n var components = [];\n var stack = [];\n var visitedEdges = {};\n var buildComponent = function buildComponent(x, y) {\n var i = stack.length - 1;\n var cutset = [];\n var component = eles.spawn();\n while (stack[i].x != x || stack[i].y != y) {\n cutset.push(stack.pop().edge);\n i--;\n }\n cutset.push(stack.pop().edge);\n cutset.forEach(function (edge) {\n var connectedNodes = edge.connectedNodes().intersection(eles);\n component.merge(edge);\n connectedNodes.forEach(function (node) {\n var nodeId = node.id();\n var connectedEdges = node.connectedEdges().intersection(eles);\n component.merge(node);\n if (!nodes[nodeId].cutVertex) {\n component.merge(connectedEdges);\n } else {\n component.merge(connectedEdges.filter(function (edge) {\n return edge.isLoop();\n }));\n }\n });\n });\n components.push(component);\n };\n var _biconnectedSearch = function biconnectedSearch(root, currentNode, parent) {\n if (root === parent) edgeCount += 1;\n nodes[currentNode] = {\n id: id,\n low: id++,\n cutVertex: false\n };\n var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles);\n if (edges.size() === 0) {\n components.push(eles.spawn(eles.getElementById(currentNode)));\n } else {\n var sourceId, targetId, otherNodeId, edgeId;\n edges.forEach(function (edge) {\n sourceId = edge.source().id();\n targetId = edge.target().id();\n otherNodeId = sourceId === currentNode ? targetId : sourceId;\n if (otherNodeId !== parent) {\n edgeId = edge.id();\n if (!visitedEdges[edgeId]) {\n visitedEdges[edgeId] = true;\n stack.push({\n x: currentNode,\n y: otherNodeId,\n edge: edge\n });\n }\n if (!(otherNodeId in nodes)) {\n _biconnectedSearch(root, otherNodeId, currentNode);\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low);\n if (nodes[currentNode].id <= nodes[otherNodeId].low) {\n nodes[currentNode].cutVertex = true;\n buildComponent(currentNode, otherNodeId);\n }\n } else {\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id);\n }\n }\n });\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n edgeCount = 0;\n _biconnectedSearch(nodeId, nodeId);\n nodes[nodeId].cutVertex = edgeCount > 1;\n }\n }\n });\n var cutVertices = Object.keys(nodes).filter(function (id) {\n return nodes[id].cutVertex;\n }).map(function (id) {\n return eles.getElementById(id);\n });\n return {\n cut: eles.spawn(cutVertices),\n components: components\n };\n};\nvar hopcroftTarjanBiconnected$1 = {\n hopcroftTarjanBiconnected: hopcroftTarjanBiconnected,\n htbc: hopcroftTarjanBiconnected,\n htb: hopcroftTarjanBiconnected,\n hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected\n};\n\nvar tarjanStronglyConnected = function tarjanStronglyConnected() {\n var eles = this;\n var nodes = {};\n var index = 0;\n var components = [];\n var stack = [];\n var cut = eles.spawn(eles);\n var _stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) {\n stack.push(sourceNodeId);\n nodes[sourceNodeId] = {\n index: index,\n low: index++,\n explored: false\n };\n var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);\n connectedEdges.forEach(function (edge) {\n var targetNodeId = edge.target().id();\n if (targetNodeId !== sourceNodeId) {\n if (!(targetNodeId in nodes)) {\n _stronglyConnectedSearch(targetNodeId);\n }\n if (!nodes[targetNodeId].explored) {\n nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low);\n }\n }\n });\n if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) {\n var componentNodes = eles.spawn();\n for (;;) {\n var nodeId = stack.pop();\n componentNodes.merge(eles.getElementById(nodeId));\n nodes[nodeId].low = nodes[sourceNodeId].index;\n nodes[nodeId].explored = true;\n if (nodeId === sourceNodeId) {\n break;\n }\n }\n var componentEdges = componentNodes.edgesWith(componentNodes);\n var component = componentNodes.merge(componentEdges);\n components.push(component);\n cut = cut.difference(component);\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n _stronglyConnectedSearch(nodeId);\n }\n }\n });\n return {\n cut: cut,\n components: components\n };\n};\nvar tarjanStronglyConnected$1 = {\n tarjanStronglyConnected: tarjanStronglyConnected,\n tsc: tarjanStronglyConnected,\n tscc: tarjanStronglyConnected,\n tarjanStronglyConnectedComponents: tarjanStronglyConnected\n};\n\nvar elesfn$j = {};\n[elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) {\n extend(elesfn$j, props);\n});\n\n/*!\nEmbeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable\nCopyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)\nLicensed under The MIT License (http://opensource.org/licenses/MIT)\n*/\n\n/* promise states [Promises/A+ 2.1] */\nvar STATE_PENDING = 0; /* [Promises/A+ 2.1.1] */\nvar STATE_FULFILLED = 1; /* [Promises/A+ 2.1.2] */\nvar STATE_REJECTED = 2; /* [Promises/A+ 2.1.3] */\n\n/* promise object constructor */\nvar _api = function api(executor) {\n /* optionally support non-constructor/plain-function call */\n if (!(this instanceof _api)) return new _api(executor);\n\n /* initialize object */\n this.id = 'Thenable/1.0.7';\n this.state = STATE_PENDING; /* initial state */\n this.fulfillValue = undefined; /* initial value */ /* [Promises/A+ 1.3, 2.1.2.2] */\n this.rejectReason = undefined; /* initial reason */ /* [Promises/A+ 1.5, 2.1.3.2] */\n this.onFulfilled = []; /* initial handlers */\n this.onRejected = []; /* initial handlers */\n\n /* provide optional information-hiding proxy */\n this.proxy = {\n then: this.then.bind(this)\n };\n\n /* support optional executor function */\n if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this));\n};\n\n/* promise API methods */\n_api.prototype = {\n /* promise resolving methods */\n fulfill: function fulfill(value) {\n return deliver(this, STATE_FULFILLED, 'fulfillValue', value);\n },\n reject: function reject(value) {\n return deliver(this, STATE_REJECTED, 'rejectReason', value);\n },\n /* \"The then Method\" [Promises/A+ 1.1, 1.2, 2.2] */\n then: function then(onFulfilled, onRejected) {\n var curr = this;\n var next = new _api(); /* [Promises/A+ 2.2.7] */\n curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); /* [Promises/A+ 2.2.2/2.2.6] */\n curr.onRejected.push(resolver(onRejected, next, 'reject')); /* [Promises/A+ 2.2.3/2.2.6] */\n execute(curr);\n return next.proxy; /* [Promises/A+ 2.2.7, 3.3] */\n }\n};\n\n/* deliver an action */\nvar deliver = function deliver(curr, state, name, value) {\n if (curr.state === STATE_PENDING) {\n curr.state = state; /* [Promises/A+ 2.1.2.1, 2.1.3.1] */\n curr[name] = value; /* [Promises/A+ 2.1.2.2, 2.1.3.2] */\n execute(curr);\n }\n return curr;\n};\n\n/* execute all handlers */\nvar execute = function execute(curr) {\n if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason);\n};\n\n/* execute particular set of handlers */\nvar execute_handlers = function execute_handlers(curr, name, value) {\n /* global setImmediate: true */\n /* global setTimeout: true */\n\n /* short-circuit processing */\n if (curr[name].length === 0) return;\n\n /* iterate over all handlers, exactly once */\n var handlers = curr[name];\n curr[name] = []; /* [Promises/A+ 2.2.2.3, 2.2.3.3] */\n var func = function func() {\n for (var i = 0; i < handlers.length; i++) handlers[i](value); /* [Promises/A+ 2.2.5] */\n };\n\n /* execute procedure asynchronously */ /* [Promises/A+ 2.2.4, 3.1] */\n if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0);\n};\n\n/* generate a resolver function */\nvar resolver = function resolver(cb, next, method) {\n return function (value) {\n if (typeof cb !== 'function') /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */\n next[method].call(next, value); /* [Promises/A+ 2.2.7.3, 2.2.7.4] */else {\n var result;\n try {\n result = cb(value);\n } /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ catch (e) {\n next.reject(e); /* [Promises/A+ 2.2.7.2] */\n return;\n }\n _resolve(next, result); /* [Promises/A+ 2.2.7.1] */\n }\n };\n};\n\n/* \"Promise Resolution Procedure\" */ /* [Promises/A+ 2.3] */\nvar _resolve = function resolve(promise, x) {\n /* sanity check arguments */ /* [Promises/A+ 2.3.1] */\n if (promise === x || promise.proxy === x) {\n promise.reject(new TypeError('cannot resolve promise with itself'));\n return;\n }\n\n /* surgically check for a \"then\" method\n (mainly to just call the \"getter\" of \"then\" only once) */\n var then;\n if (_typeof(x) === 'object' && x !== null || typeof x === 'function') {\n try {\n then = x.then;\n } /* [Promises/A+ 2.3.3.1, 3.5] */ catch (e) {\n promise.reject(e); /* [Promises/A+ 2.3.3.2] */\n return;\n }\n }\n\n /* handle own Thenables [Promises/A+ 2.3.2]\n and similar \"thenables\" [Promises/A+ 2.3.3] */\n if (typeof then === 'function') {\n var resolved = false;\n try {\n /* call retrieved \"then\" method */ /* [Promises/A+ 2.3.3.3] */\n then.call(x, /* resolvePromise */ /* [Promises/A+ 2.3.3.3.1] */\n function (y) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n if (y === x) /* [Promises/A+ 3.6] */\n promise.reject(new TypeError('circular thenable chain'));else _resolve(promise, y);\n }, /* rejectPromise */ /* [Promises/A+ 2.3.3.3.2] */\n function (r) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(r);\n });\n } catch (e) {\n if (!resolved) /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(e); /* [Promises/A+ 2.3.3.3.4] */\n }\n return;\n }\n\n /* handle other values */\n promise.fulfill(x); /* [Promises/A+ 2.3.4, 2.3.3.4] */\n};\n\n// so we always have Promise.all()\n_api.all = function (ps) {\n return new _api(function (resolveAll, rejectAll) {\n var vals = new Array(ps.length);\n var doneCount = 0;\n var fulfill = function fulfill(i, val) {\n vals[i] = val;\n doneCount++;\n if (doneCount === ps.length) {\n resolveAll(vals);\n }\n };\n for (var i = 0; i < ps.length; i++) {\n (function (i) {\n var p = ps[i];\n var isPromise = p != null && p.then != null;\n if (isPromise) {\n p.then(function (val) {\n fulfill(i, val);\n }, function (err) {\n rejectAll(err);\n });\n } else {\n var val = p;\n fulfill(i, val);\n }\n })(i);\n }\n });\n};\n_api.resolve = function (val) {\n return new _api(function (resolve, reject) {\n resolve(val);\n });\n};\n_api.reject = function (val) {\n return new _api(function (resolve, reject) {\n reject(val);\n });\n};\nvar Promise$1 = typeof Promise !== 'undefined' ? Promise : _api; // eslint-disable-line no-undef\n\nvar Animation = function Animation(target, opts, opts2) {\n var isCore = core(target);\n var isEle = !isCore;\n var _p = this._private = extend({\n duration: 1000\n }, opts, opts2);\n _p.target = target;\n _p.style = _p.style || _p.css;\n _p.started = false;\n _p.playing = false;\n _p.hooked = false;\n _p.applying = false;\n _p.progress = 0;\n _p.completes = [];\n _p.frames = [];\n if (_p.complete && fn$6(_p.complete)) {\n _p.completes.push(_p.complete);\n }\n if (isEle) {\n var pos = target.position();\n _p.startPosition = _p.startPosition || {\n x: pos.x,\n y: pos.y\n };\n _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);\n }\n if (isCore) {\n var pan = target.pan();\n _p.startPan = {\n x: pan.x,\n y: pan.y\n };\n _p.startZoom = target.zoom();\n }\n\n // for future timeline/animations impl\n this.length = 1;\n this[0] = this;\n};\nvar anifn = Animation.prototype;\nextend(anifn, {\n instanceString: function instanceString() {\n return 'animation';\n },\n hook: function hook() {\n var _p = this._private;\n if (!_p.hooked) {\n // add to target's animation queue\n var q;\n var tAni = _p.target._private.animation;\n if (_p.queue) {\n q = tAni.queue;\n } else {\n q = tAni.current;\n }\n q.push(this);\n\n // add to the animation loop pool\n if (elementOrCollection(_p.target)) {\n _p.target.cy().addToAnimationPool(_p.target);\n }\n _p.hooked = true;\n }\n return this;\n },\n play: function play() {\n var _p = this._private;\n\n // autorewind\n if (_p.progress === 1) {\n _p.progress = 0;\n }\n _p.playing = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will start the animation...\n\n return this;\n },\n playing: function playing() {\n return this._private.playing;\n },\n apply: function apply() {\n var _p = this._private;\n _p.applying = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will apply the animation at this progress\n\n return this;\n },\n applying: function applying() {\n return this._private.applying;\n },\n pause: function pause() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n return this;\n },\n stop: function stop() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n _p.stopped = true; // to be removed from animation queues\n\n return this;\n },\n rewind: function rewind() {\n return this.progress(0);\n },\n fastforward: function fastforward() {\n return this.progress(1);\n },\n time: function time(t) {\n var _p = this._private;\n if (t === undefined) {\n return _p.progress * _p.duration;\n } else {\n return this.progress(t / _p.duration);\n }\n },\n progress: function progress(p) {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (p === undefined) {\n return _p.progress;\n } else {\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = p;\n _p.started = false;\n if (wasPlaying) {\n this.play();\n }\n }\n return this;\n },\n completed: function completed() {\n return this._private.progress === 1;\n },\n reverse: function reverse() {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = 1 - _p.progress;\n _p.started = false;\n var swap = function swap(a, b) {\n var _pa = _p[a];\n if (_pa == null) {\n return;\n }\n _p[a] = _p[b];\n _p[b] = _pa;\n };\n swap('zoom', 'startZoom');\n swap('pan', 'startPan');\n swap('position', 'startPosition');\n\n // swap styles\n if (_p.style) {\n for (var i = 0; i < _p.style.length; i++) {\n var prop = _p.style[i];\n var name = prop.name;\n var startStyleProp = _p.startStyle[name];\n _p.startStyle[name] = prop;\n _p.style[i] = startStyleProp;\n }\n }\n if (wasPlaying) {\n this.play();\n }\n return this;\n },\n promise: function promise(type) {\n var _p = this._private;\n var arr;\n switch (type) {\n case 'frame':\n arr = _p.frames;\n break;\n default:\n case 'complete':\n case 'completed':\n arr = _p.completes;\n }\n return new Promise$1(function (resolve, reject) {\n arr.push(function () {\n resolve();\n });\n });\n }\n});\nanifn.complete = anifn.completed;\nanifn.run = anifn.play;\nanifn.running = anifn.playing;\n\nvar define$3 = {\n animated: function animated() {\n return function animatedImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = all[0];\n if (ele) {\n return ele._private.animation.current.length > 0;\n }\n };\n },\n // animated\n\n clearQueue: function clearQueue() {\n return function clearQueueImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n ele._private.animation.queue = [];\n }\n return this;\n };\n },\n // clearQueue\n\n delay: function delay() {\n return function delayImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animate({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n delayAnimation: function delayAnimation() {\n return function delayAnimationImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animation({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n animation: function animation() {\n return function animationImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n var isCore = !selfIsArrayLike;\n var isEles = !isCore;\n if (!cy.styleEnabled()) {\n return this;\n }\n var style = cy.style();\n properties = extend({}, properties, params);\n var propertiesEmpty = Object.keys(properties).length === 0;\n if (propertiesEmpty) {\n return new Animation(all[0], properties); // nothing to animate\n }\n if (properties.duration === undefined) {\n properties.duration = 400;\n }\n switch (properties.duration) {\n case 'slow':\n properties.duration = 600;\n break;\n case 'fast':\n properties.duration = 200;\n break;\n }\n if (isEles) {\n properties.style = style.getPropsList(properties.style || properties.css);\n properties.css = undefined;\n }\n if (isEles && properties.renderedPosition != null) {\n var rpos = properties.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n properties.position = renderedToModelPosition(rpos, zoom, pan);\n }\n\n // override pan w/ panBy if set\n if (isCore && properties.panBy != null) {\n var panBy = properties.panBy;\n var cyPan = cy.pan();\n properties.pan = {\n x: cyPan.x + panBy.x,\n y: cyPan.y + panBy.y\n };\n }\n\n // override pan w/ center if set\n var center = properties.center || properties.centre;\n if (isCore && center != null) {\n var centerPan = cy.getCenterPan(center.eles, properties.zoom);\n if (centerPan != null) {\n properties.pan = centerPan;\n }\n }\n\n // override pan & zoom w/ fit if set\n if (isCore && properties.fit != null) {\n var fit = properties.fit;\n var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);\n if (fitVp != null) {\n properties.pan = fitVp.pan;\n properties.zoom = fitVp.zoom;\n }\n }\n\n // override zoom (& potentially pan) w/ zoom obj if set\n if (isCore && plainObject(properties.zoom)) {\n var vp = cy.getZoomedViewport(properties.zoom);\n if (vp != null) {\n if (vp.zoomed) {\n properties.zoom = vp.zoom;\n }\n if (vp.panned) {\n properties.pan = vp.pan;\n }\n } else {\n properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed\n }\n }\n return new Animation(all[0], properties);\n };\n },\n // animate\n\n animate: function animate() {\n return function animateImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (params) {\n properties = extend({}, properties, params);\n }\n\n // manually hook and run the animation\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var queue = ele.animated() && (properties.queue === undefined || properties.queue);\n var ani = ele.animation(properties, queue ? {\n queue: true\n } : undefined);\n ani.play();\n }\n return this; // chaining\n };\n },\n // animate\n\n stop: function stop() {\n return function stopImpl(clearQueue, jumpToEnd) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var _p = ele._private;\n var anis = _p.animation.current;\n for (var j = 0; j < anis.length; j++) {\n var ani = anis[j];\n var ani_p = ani._private;\n if (jumpToEnd) {\n // next iteration of the animation loop, the animation\n // will go straight to the end and be removed\n ani_p.duration = 0;\n }\n }\n\n // clear the queue of future animations\n if (clearQueue) {\n _p.animation.queue = [];\n }\n if (!jumpToEnd) {\n _p.animation.current = [];\n }\n }\n\n // we have to notify (the animation loop doesn't do it for us on `stop`)\n cy.notify('draw');\n return this;\n };\n } // stop\n}; // define\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n\nvar isArray_1;\nvar hasRequiredIsArray;\n\nfunction requireIsArray () {\n\tif (hasRequiredIsArray) return isArray_1;\n\thasRequiredIsArray = 1;\n\tvar isArray = Array.isArray;\n\n\tisArray_1 = isArray;\n\treturn isArray_1;\n}\n\nvar _isKey;\nvar hasRequired_isKey;\n\nfunction require_isKey () {\n\tif (hasRequired_isKey) return _isKey;\n\thasRequired_isKey = 1;\n\tvar isArray = requireIsArray(),\n\t isSymbol = requireIsSymbol();\n\n\t/** Used to match property names within property paths. */\n\tvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n\t reIsPlainProp = /^\\w*$/;\n\n\t/**\n\t * Checks if `value` is a property name and not a property path.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {Object} [object] The object to query keys on.\n\t * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n\t */\n\tfunction isKey(value, object) {\n\t if (isArray(value)) {\n\t return false;\n\t }\n\t var type = typeof value;\n\t if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n\t value == null || isSymbol(value)) {\n\t return true;\n\t }\n\t return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n\t (object != null && value in Object(object));\n\t}\n\n\t_isKey = isKey;\n\treturn _isKey;\n}\n\nvar isFunction_1;\nvar hasRequiredIsFunction;\n\nfunction requireIsFunction () {\n\tif (hasRequiredIsFunction) return isFunction_1;\n\thasRequiredIsFunction = 1;\n\tvar baseGetTag = require_baseGetTag(),\n\t isObject = requireIsObject();\n\n\t/** `Object#toString` result references. */\n\tvar asyncTag = '[object AsyncFunction]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t proxyTag = '[object Proxy]';\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t if (!isObject(value)) {\n\t return false;\n\t }\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\t var tag = baseGetTag(value);\n\t return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n\t}\n\n\tisFunction_1 = isFunction;\n\treturn isFunction_1;\n}\n\nvar _coreJsData;\nvar hasRequired_coreJsData;\n\nfunction require_coreJsData () {\n\tif (hasRequired_coreJsData) return _coreJsData;\n\thasRequired_coreJsData = 1;\n\tvar root = require_root();\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t_coreJsData = coreJsData;\n\treturn _coreJsData;\n}\n\nvar _isMasked;\nvar hasRequired_isMasked;\n\nfunction require_isMasked () {\n\tif (hasRequired_isMasked) return _isMasked;\n\thasRequired_isMasked = 1;\n\tvar coreJsData = require_coreJsData();\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t_isMasked = isMasked;\n\treturn _isMasked;\n}\n\n/** Used for built-in method references. */\n\nvar _toSource;\nvar hasRequired_toSource;\n\nfunction require_toSource () {\n\tif (hasRequired_toSource) return _toSource;\n\thasRequired_toSource = 1;\n\tvar funcProto = Function.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to convert.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t_toSource = toSource;\n\treturn _toSource;\n}\n\nvar _baseIsNative;\nvar hasRequired_baseIsNative;\n\nfunction require_baseIsNative () {\n\tif (hasRequired_baseIsNative) return _baseIsNative;\n\thasRequired_baseIsNative = 1;\n\tvar isFunction = requireIsFunction(),\n\t isMasked = require_isMasked(),\n\t isObject = requireIsObject(),\n\t toSource = require_toSource();\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t_baseIsNative = baseIsNative;\n\treturn _baseIsNative;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n\nvar _getValue;\nvar hasRequired_getValue;\n\nfunction require_getValue () {\n\tif (hasRequired_getValue) return _getValue;\n\thasRequired_getValue = 1;\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t_getValue = getValue;\n\treturn _getValue;\n}\n\nvar _getNative;\nvar hasRequired_getNative;\n\nfunction require_getNative () {\n\tif (hasRequired_getNative) return _getNative;\n\thasRequired_getNative = 1;\n\tvar baseIsNative = require_baseIsNative(),\n\t getValue = require_getValue();\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t_getNative = getNative;\n\treturn _getNative;\n}\n\nvar _nativeCreate;\nvar hasRequired_nativeCreate;\n\nfunction require_nativeCreate () {\n\tif (hasRequired_nativeCreate) return _nativeCreate;\n\thasRequired_nativeCreate = 1;\n\tvar getNative = require_getNative();\n\n\t/* Built-in method references that are verified to be native. */\n\tvar nativeCreate = getNative(Object, 'create');\n\n\t_nativeCreate = nativeCreate;\n\treturn _nativeCreate;\n}\n\nvar _hashClear;\nvar hasRequired_hashClear;\n\nfunction require_hashClear () {\n\tif (hasRequired_hashClear) return _hashClear;\n\thasRequired_hashClear = 1;\n\tvar nativeCreate = require_nativeCreate();\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t this.size = 0;\n\t}\n\n\t_hashClear = hashClear;\n\treturn _hashClear;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\nvar _hashDelete;\nvar hasRequired_hashDelete;\n\nfunction require_hashDelete () {\n\tif (hasRequired_hashDelete) return _hashDelete;\n\thasRequired_hashDelete = 1;\n\tfunction hashDelete(key) {\n\t var result = this.has(key) && delete this.__data__[key];\n\t this.size -= result ? 1 : 0;\n\t return result;\n\t}\n\n\t_hashDelete = hashDelete;\n\treturn _hashDelete;\n}\n\nvar _hashGet;\nvar hasRequired_hashGet;\n\nfunction require_hashGet () {\n\tif (hasRequired_hashGet) return _hashGet;\n\thasRequired_hashGet = 1;\n\tvar nativeCreate = require_nativeCreate();\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t_hashGet = hashGet;\n\treturn _hashGet;\n}\n\nvar _hashHas;\nvar hasRequired_hashHas;\n\nfunction require_hashHas () {\n\tif (hasRequired_hashHas) return _hashHas;\n\thasRequired_hashHas = 1;\n\tvar nativeCreate = require_nativeCreate();\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n\t}\n\n\t_hashHas = hashHas;\n\treturn _hashHas;\n}\n\nvar _hashSet;\nvar hasRequired_hashSet;\n\nfunction require_hashSet () {\n\tif (hasRequired_hashSet) return _hashSet;\n\thasRequired_hashSet = 1;\n\tvar nativeCreate = require_nativeCreate();\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t this.size += this.has(key) ? 0 : 1;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t_hashSet = hashSet;\n\treturn _hashSet;\n}\n\nvar _Hash;\nvar hasRequired_Hash;\n\nfunction require_Hash () {\n\tif (hasRequired_Hash) return _Hash;\n\thasRequired_Hash = 1;\n\tvar hashClear = require_hashClear(),\n\t hashDelete = require_hashDelete(),\n\t hashGet = require_hashGet(),\n\t hashHas = require_hashHas(),\n\t hashSet = require_hashSet();\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t_Hash = Hash;\n\treturn _Hash;\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n\nvar _listCacheClear;\nvar hasRequired_listCacheClear;\n\nfunction require_listCacheClear () {\n\tif (hasRequired_listCacheClear) return _listCacheClear;\n\thasRequired_listCacheClear = 1;\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t this.size = 0;\n\t}\n\n\t_listCacheClear = listCacheClear;\n\treturn _listCacheClear;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n\nvar eq_1;\nvar hasRequiredEq;\n\nfunction requireEq () {\n\tif (hasRequiredEq) return eq_1;\n\thasRequiredEq = 1;\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\teq_1 = eq;\n\treturn eq_1;\n}\n\nvar _assocIndexOf;\nvar hasRequired_assocIndexOf;\n\nfunction require_assocIndexOf () {\n\tif (hasRequired_assocIndexOf) return _assocIndexOf;\n\thasRequired_assocIndexOf = 1;\n\tvar eq = requireEq();\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t_assocIndexOf = assocIndexOf;\n\treturn _assocIndexOf;\n}\n\nvar _listCacheDelete;\nvar hasRequired_listCacheDelete;\n\nfunction require_listCacheDelete () {\n\tif (hasRequired_listCacheDelete) return _listCacheDelete;\n\thasRequired_listCacheDelete = 1;\n\tvar assocIndexOf = require_assocIndexOf();\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype;\n\n\t/** Built-in value references. */\n\tvar splice = arrayProto.splice;\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t --this.size;\n\t return true;\n\t}\n\n\t_listCacheDelete = listCacheDelete;\n\treturn _listCacheDelete;\n}\n\nvar _listCacheGet;\nvar hasRequired_listCacheGet;\n\nfunction require_listCacheGet () {\n\tif (hasRequired_listCacheGet) return _listCacheGet;\n\thasRequired_listCacheGet = 1;\n\tvar assocIndexOf = require_assocIndexOf();\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t_listCacheGet = listCacheGet;\n\treturn _listCacheGet;\n}\n\nvar _listCacheHas;\nvar hasRequired_listCacheHas;\n\nfunction require_listCacheHas () {\n\tif (hasRequired_listCacheHas) return _listCacheHas;\n\thasRequired_listCacheHas = 1;\n\tvar assocIndexOf = require_assocIndexOf();\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t_listCacheHas = listCacheHas;\n\treturn _listCacheHas;\n}\n\nvar _listCacheSet;\nvar hasRequired_listCacheSet;\n\nfunction require_listCacheSet () {\n\tif (hasRequired_listCacheSet) return _listCacheSet;\n\thasRequired_listCacheSet = 1;\n\tvar assocIndexOf = require_assocIndexOf();\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t ++this.size;\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t_listCacheSet = listCacheSet;\n\treturn _listCacheSet;\n}\n\nvar _ListCache;\nvar hasRequired_ListCache;\n\nfunction require_ListCache () {\n\tif (hasRequired_ListCache) return _ListCache;\n\thasRequired_ListCache = 1;\n\tvar listCacheClear = require_listCacheClear(),\n\t listCacheDelete = require_listCacheDelete(),\n\t listCacheGet = require_listCacheGet(),\n\t listCacheHas = require_listCacheHas(),\n\t listCacheSet = require_listCacheSet();\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t_ListCache = ListCache;\n\treturn _ListCache;\n}\n\nvar _Map;\nvar hasRequired_Map;\n\nfunction require_Map () {\n\tif (hasRequired_Map) return _Map;\n\thasRequired_Map = 1;\n\tvar getNative = require_getNative(),\n\t root = require_root();\n\n\t/* Built-in method references that are verified to be native. */\n\tvar Map = getNative(root, 'Map');\n\n\t_Map = Map;\n\treturn _Map;\n}\n\nvar _mapCacheClear;\nvar hasRequired_mapCacheClear;\n\nfunction require_mapCacheClear () {\n\tif (hasRequired_mapCacheClear) return _mapCacheClear;\n\thasRequired_mapCacheClear = 1;\n\tvar Hash = require_Hash(),\n\t ListCache = require_ListCache(),\n\t Map = require_Map();\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.size = 0;\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t_mapCacheClear = mapCacheClear;\n\treturn _mapCacheClear;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n\nvar _isKeyable;\nvar hasRequired_isKeyable;\n\nfunction require_isKeyable () {\n\tif (hasRequired_isKeyable) return _isKeyable;\n\thasRequired_isKeyable = 1;\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t_isKeyable = isKeyable;\n\treturn _isKeyable;\n}\n\nvar _getMapData;\nvar hasRequired_getMapData;\n\nfunction require_getMapData () {\n\tif (hasRequired_getMapData) return _getMapData;\n\thasRequired_getMapData = 1;\n\tvar isKeyable = require_isKeyable();\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t_getMapData = getMapData;\n\treturn _getMapData;\n}\n\nvar _mapCacheDelete;\nvar hasRequired_mapCacheDelete;\n\nfunction require_mapCacheDelete () {\n\tif (hasRequired_mapCacheDelete) return _mapCacheDelete;\n\thasRequired_mapCacheDelete = 1;\n\tvar getMapData = require_getMapData();\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t var result = getMapData(this, key)['delete'](key);\n\t this.size -= result ? 1 : 0;\n\t return result;\n\t}\n\n\t_mapCacheDelete = mapCacheDelete;\n\treturn _mapCacheDelete;\n}\n\nvar _mapCacheGet;\nvar hasRequired_mapCacheGet;\n\nfunction require_mapCacheGet () {\n\tif (hasRequired_mapCacheGet) return _mapCacheGet;\n\thasRequired_mapCacheGet = 1;\n\tvar getMapData = require_getMapData();\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t_mapCacheGet = mapCacheGet;\n\treturn _mapCacheGet;\n}\n\nvar _mapCacheHas;\nvar hasRequired_mapCacheHas;\n\nfunction require_mapCacheHas () {\n\tif (hasRequired_mapCacheHas) return _mapCacheHas;\n\thasRequired_mapCacheHas = 1;\n\tvar getMapData = require_getMapData();\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t_mapCacheHas = mapCacheHas;\n\treturn _mapCacheHas;\n}\n\nvar _mapCacheSet;\nvar hasRequired_mapCacheSet;\n\nfunction require_mapCacheSet () {\n\tif (hasRequired_mapCacheSet) return _mapCacheSet;\n\thasRequired_mapCacheSet = 1;\n\tvar getMapData = require_getMapData();\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t var data = getMapData(this, key),\n\t size = data.size;\n\n\t data.set(key, value);\n\t this.size += data.size == size ? 0 : 1;\n\t return this;\n\t}\n\n\t_mapCacheSet = mapCacheSet;\n\treturn _mapCacheSet;\n}\n\nvar _MapCache;\nvar hasRequired_MapCache;\n\nfunction require_MapCache () {\n\tif (hasRequired_MapCache) return _MapCache;\n\thasRequired_MapCache = 1;\n\tvar mapCacheClear = require_mapCacheClear(),\n\t mapCacheDelete = require_mapCacheDelete(),\n\t mapCacheGet = require_mapCacheGet(),\n\t mapCacheHas = require_mapCacheHas(),\n\t mapCacheSet = require_mapCacheSet();\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t_MapCache = MapCache;\n\treturn _MapCache;\n}\n\nvar memoize_1;\nvar hasRequiredMemoize;\n\nfunction requireMemoize () {\n\tif (hasRequiredMemoize) return memoize_1;\n\thasRequiredMemoize = 1;\n\tvar MapCache = require_MapCache();\n\n\t/** Error message constants. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/**\n\t * Creates a function that memoizes the result of `func`. If `resolver` is\n\t * provided, it determines the cache key for storing the result based on the\n\t * arguments provided to the memoized function. By default, the first argument\n\t * provided to the memoized function is used as the map cache key. The `func`\n\t * is invoked with the `this` binding of the memoized function.\n\t *\n\t * **Note:** The cache is exposed as the `cache` property on the memoized\n\t * function. Its creation may be customized by replacing the `_.memoize.Cache`\n\t * constructor with one whose instances implement the\n\t * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n\t * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to have its output memoized.\n\t * @param {Function} [resolver] The function to resolve the cache key.\n\t * @returns {Function} Returns the new memoized function.\n\t * @example\n\t *\n\t * var object = { 'a': 1, 'b': 2 };\n\t * var other = { 'c': 3, 'd': 4 };\n\t *\n\t * var values = _.memoize(_.values);\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * values(other);\n\t * // => [3, 4]\n\t *\n\t * object.a = 2;\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * // Modify the result cache.\n\t * values.cache.set(object, ['a', 'b']);\n\t * values(object);\n\t * // => ['a', 'b']\n\t *\n\t * // Replace `_.memoize.Cache`.\n\t * _.memoize.Cache = WeakMap;\n\t */\n\tfunction memoize(func, resolver) {\n\t if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t var memoized = function() {\n\t var args = arguments,\n\t key = resolver ? resolver.apply(this, args) : args[0],\n\t cache = memoized.cache;\n\n\t if (cache.has(key)) {\n\t return cache.get(key);\n\t }\n\t var result = func.apply(this, args);\n\t memoized.cache = cache.set(key, result) || cache;\n\t return result;\n\t };\n\t memoized.cache = new (memoize.Cache || MapCache);\n\t return memoized;\n\t}\n\n\t// Expose `MapCache`.\n\tmemoize.Cache = MapCache;\n\n\tmemoize_1 = memoize;\n\treturn memoize_1;\n}\n\nvar _memoizeCapped;\nvar hasRequired_memoizeCapped;\n\nfunction require_memoizeCapped () {\n\tif (hasRequired_memoizeCapped) return _memoizeCapped;\n\thasRequired_memoizeCapped = 1;\n\tvar memoize = requireMemoize();\n\n\t/** Used as the maximum memoize cache size. */\n\tvar MAX_MEMOIZE_SIZE = 500;\n\n\t/**\n\t * A specialized version of `_.memoize` which clears the memoized function's\n\t * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n\t *\n\t * @private\n\t * @param {Function} func The function to have its output memoized.\n\t * @returns {Function} Returns the new memoized function.\n\t */\n\tfunction memoizeCapped(func) {\n\t var result = memoize(func, function(key) {\n\t if (cache.size === MAX_MEMOIZE_SIZE) {\n\t cache.clear();\n\t }\n\t return key;\n\t });\n\n\t var cache = result.cache;\n\t return result;\n\t}\n\n\t_memoizeCapped = memoizeCapped;\n\treturn _memoizeCapped;\n}\n\nvar _stringToPath;\nvar hasRequired_stringToPath;\n\nfunction require_stringToPath () {\n\tif (hasRequired_stringToPath) return _stringToPath;\n\thasRequired_stringToPath = 1;\n\tvar memoizeCapped = require_memoizeCapped();\n\n\t/** Used to match property names within property paths. */\n\tvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n\t/** Used to match backslashes in property paths. */\n\tvar reEscapeChar = /\\\\(\\\\)?/g;\n\n\t/**\n\t * Converts `string` to a property path array.\n\t *\n\t * @private\n\t * @param {string} string The string to convert.\n\t * @returns {Array} Returns the property path array.\n\t */\n\tvar stringToPath = memoizeCapped(function(string) {\n\t var result = [];\n\t if (string.charCodeAt(0) === 46 /* . */) {\n\t result.push('');\n\t }\n\t string.replace(rePropName, function(match, number, quote, subString) {\n\t result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n\t });\n\t return result;\n\t});\n\n\t_stringToPath = stringToPath;\n\treturn _stringToPath;\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n\nvar _arrayMap;\nvar hasRequired_arrayMap;\n\nfunction require_arrayMap () {\n\tif (hasRequired_arrayMap) return _arrayMap;\n\thasRequired_arrayMap = 1;\n\tfunction arrayMap(array, iteratee) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length,\n\t result = Array(length);\n\n\t while (++index < length) {\n\t result[index] = iteratee(array[index], index, array);\n\t }\n\t return result;\n\t}\n\n\t_arrayMap = arrayMap;\n\treturn _arrayMap;\n}\n\nvar _baseToString;\nvar hasRequired_baseToString;\n\nfunction require_baseToString () {\n\tif (hasRequired_baseToString) return _baseToString;\n\thasRequired_baseToString = 1;\n\tvar Symbol = require_Symbol(),\n\t arrayMap = require_arrayMap(),\n\t isArray = requireIsArray(),\n\t isSymbol = requireIsSymbol();\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n\t/**\n\t * The base implementation of `_.toString` which doesn't convert nullish\n\t * values to empty strings.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t // Exit early for strings to avoid a performance hit in some environments.\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t if (isArray(value)) {\n\t // Recursively convert values (susceptible to call stack limits).\n\t return arrayMap(value, baseToString) + '';\n\t }\n\t if (isSymbol(value)) {\n\t return symbolToString ? symbolToString.call(value) : '';\n\t }\n\t var result = (value + '');\n\t return (result == '0' && (1 / value) == -Infinity) ? '-0' : result;\n\t}\n\n\t_baseToString = baseToString;\n\treturn _baseToString;\n}\n\nvar toString_1;\nvar hasRequiredToString;\n\nfunction requireToString () {\n\tif (hasRequiredToString) return toString_1;\n\thasRequiredToString = 1;\n\tvar baseToString = require_baseToString();\n\n\t/**\n\t * Converts `value` to a string. An empty string is returned for `null`\n\t * and `undefined` values. The sign of `-0` is preserved.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t * @example\n\t *\n\t * _.toString(null);\n\t * // => ''\n\t *\n\t * _.toString(-0);\n\t * // => '-0'\n\t *\n\t * _.toString([1, 2, 3]);\n\t * // => '1,2,3'\n\t */\n\tfunction toString(value) {\n\t return value == null ? '' : baseToString(value);\n\t}\n\n\ttoString_1 = toString;\n\treturn toString_1;\n}\n\nvar _castPath;\nvar hasRequired_castPath;\n\nfunction require_castPath () {\n\tif (hasRequired_castPath) return _castPath;\n\thasRequired_castPath = 1;\n\tvar isArray = requireIsArray(),\n\t isKey = require_isKey(),\n\t stringToPath = require_stringToPath(),\n\t toString = requireToString();\n\n\t/**\n\t * Casts `value` to a path array if it's not one.\n\t *\n\t * @private\n\t * @param {*} value The value to inspect.\n\t * @param {Object} [object] The object to query keys on.\n\t * @returns {Array} Returns the cast property path array.\n\t */\n\tfunction castPath(value, object) {\n\t if (isArray(value)) {\n\t return value;\n\t }\n\t return isKey(value, object) ? [value] : stringToPath(toString(value));\n\t}\n\n\t_castPath = castPath;\n\treturn _castPath;\n}\n\nvar _toKey;\nvar hasRequired_toKey;\n\nfunction require_toKey () {\n\tif (hasRequired_toKey) return _toKey;\n\thasRequired_toKey = 1;\n\tvar isSymbol = requireIsSymbol();\n\n\t/**\n\t * Converts `value` to a string key if it's not a string or symbol.\n\t *\n\t * @private\n\t * @param {*} value The value to inspect.\n\t * @returns {string|symbol} Returns the key.\n\t */\n\tfunction toKey(value) {\n\t if (typeof value == 'string' || isSymbol(value)) {\n\t return value;\n\t }\n\t var result = (value + '');\n\t return (result == '0' && (1 / value) == -Infinity) ? '-0' : result;\n\t}\n\n\t_toKey = toKey;\n\treturn _toKey;\n}\n\nvar _baseGet;\nvar hasRequired_baseGet;\n\nfunction require_baseGet () {\n\tif (hasRequired_baseGet) return _baseGet;\n\thasRequired_baseGet = 1;\n\tvar castPath = require_castPath(),\n\t toKey = require_toKey();\n\n\t/**\n\t * The base implementation of `_.get` without support for default values.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Array|string} path The path of the property to get.\n\t * @returns {*} Returns the resolved value.\n\t */\n\tfunction baseGet(object, path) {\n\t path = castPath(path, object);\n\n\t var index = 0,\n\t length = path.length;\n\n\t while (object != null && index < length) {\n\t object = object[toKey(path[index++])];\n\t }\n\t return (index && index == length) ? object : undefined;\n\t}\n\n\t_baseGet = baseGet;\n\treturn _baseGet;\n}\n\nvar get_1;\nvar hasRequiredGet;\n\nfunction requireGet () {\n\tif (hasRequiredGet) return get_1;\n\thasRequiredGet = 1;\n\tvar baseGet = require_baseGet();\n\n\t/**\n\t * Gets the value at `path` of `object`. If the resolved value is\n\t * `undefined`, the `defaultValue` is returned in its place.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.7.0\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @param {Array|string} path The path of the property to get.\n\t * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n\t * @returns {*} Returns the resolved value.\n\t * @example\n\t *\n\t * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\t *\n\t * _.get(object, 'a[0].b.c');\n\t * // => 3\n\t *\n\t * _.get(object, ['a', '0', 'b', 'c']);\n\t * // => 3\n\t *\n\t * _.get(object, 'a.b.c', 'default');\n\t * // => 'default'\n\t */\n\tfunction get(object, path, defaultValue) {\n\t var result = object == null ? undefined : baseGet(object, path);\n\t return result === undefined ? defaultValue : result;\n\t}\n\n\tget_1 = get;\n\treturn get_1;\n}\n\nvar getExports = requireGet();\nvar get = /*@__PURE__*/getDefaultExportFromCjs(getExports);\n\nvar _defineProperty;\nvar hasRequired_defineProperty;\n\nfunction require_defineProperty () {\n\tif (hasRequired_defineProperty) return _defineProperty;\n\thasRequired_defineProperty = 1;\n\tvar getNative = require_getNative();\n\n\tvar defineProperty = (function() {\n\t try {\n\t var func = getNative(Object, 'defineProperty');\n\t func({}, '', {});\n\t return func;\n\t } catch (e) {}\n\t}());\n\n\t_defineProperty = defineProperty;\n\treturn _defineProperty;\n}\n\nvar _baseAssignValue;\nvar hasRequired_baseAssignValue;\n\nfunction require_baseAssignValue () {\n\tif (hasRequired_baseAssignValue) return _baseAssignValue;\n\thasRequired_baseAssignValue = 1;\n\tvar defineProperty = require_defineProperty();\n\n\t/**\n\t * The base implementation of `assignValue` and `assignMergeValue` without\n\t * value checks.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction baseAssignValue(object, key, value) {\n\t if (key == '__proto__' && defineProperty) {\n\t defineProperty(object, key, {\n\t 'configurable': true,\n\t 'enumerable': true,\n\t 'value': value,\n\t 'writable': true\n\t });\n\t } else {\n\t object[key] = value;\n\t }\n\t}\n\n\t_baseAssignValue = baseAssignValue;\n\treturn _baseAssignValue;\n}\n\nvar _assignValue;\nvar hasRequired_assignValue;\n\nfunction require_assignValue () {\n\tif (hasRequired_assignValue) return _assignValue;\n\thasRequired_assignValue = 1;\n\tvar baseAssignValue = require_baseAssignValue(),\n\t eq = requireEq();\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t baseAssignValue(object, key, value);\n\t }\n\t}\n\n\t_assignValue = assignValue;\n\treturn _assignValue;\n}\n\n/** Used as references for various `Number` constants. */\n\nvar _isIndex;\nvar hasRequired_isIndex;\n\nfunction require_isIndex () {\n\tif (hasRequired_isIndex) return _isIndex;\n\thasRequired_isIndex = 1;\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t var type = typeof value;\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\n\t return !!length &&\n\t (type == 'number' ||\n\t (type != 'symbol' && reIsUint.test(value))) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t_isIndex = isIndex;\n\treturn _isIndex;\n}\n\nvar _baseSet;\nvar hasRequired_baseSet;\n\nfunction require_baseSet () {\n\tif (hasRequired_baseSet) return _baseSet;\n\thasRequired_baseSet = 1;\n\tvar assignValue = require_assignValue(),\n\t castPath = require_castPath(),\n\t isIndex = require_isIndex(),\n\t isObject = requireIsObject(),\n\t toKey = require_toKey();\n\n\t/**\n\t * The base implementation of `_.set`.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {Array|string} path The path of the property to set.\n\t * @param {*} value The value to set.\n\t * @param {Function} [customizer] The function to customize path creation.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseSet(object, path, value, customizer) {\n\t if (!isObject(object)) {\n\t return object;\n\t }\n\t path = castPath(path, object);\n\n\t var index = -1,\n\t length = path.length,\n\t lastIndex = length - 1,\n\t nested = object;\n\n\t while (nested != null && ++index < length) {\n\t var key = toKey(path[index]),\n\t newValue = value;\n\n\t if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n\t return object;\n\t }\n\n\t if (index != lastIndex) {\n\t var objValue = nested[key];\n\t newValue = customizer ? customizer(objValue, key, nested) : undefined;\n\t if (newValue === undefined) {\n\t newValue = isObject(objValue)\n\t ? objValue\n\t : (isIndex(path[index + 1]) ? [] : {});\n\t }\n\t }\n\t assignValue(nested, key, newValue);\n\t nested = nested[key];\n\t }\n\t return object;\n\t}\n\n\t_baseSet = baseSet;\n\treturn _baseSet;\n}\n\nvar set_1;\nvar hasRequiredSet;\n\nfunction requireSet () {\n\tif (hasRequiredSet) return set_1;\n\thasRequiredSet = 1;\n\tvar baseSet = require_baseSet();\n\n\t/**\n\t * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n\t * it's created. Arrays are created for missing index properties while objects\n\t * are created for all other missing properties. Use `_.setWith` to customize\n\t * `path` creation.\n\t *\n\t * **Note:** This method mutates `object`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.7.0\n\t * @category Object\n\t * @param {Object} object The object to modify.\n\t * @param {Array|string} path The path of the property to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n\t *\n\t * _.set(object, 'a[0].b.c', 4);\n\t * console.log(object.a[0].b.c);\n\t * // => 4\n\t *\n\t * _.set(object, ['x', '0', 'y', 'z'], 5);\n\t * console.log(object.x[0].y.z);\n\t * // => 5\n\t */\n\tfunction set(object, path, value) {\n\t return object == null ? object : baseSet(object, path, value);\n\t}\n\n\tset_1 = set;\n\treturn set_1;\n}\n\nvar setExports = requireSet();\nvar set = /*@__PURE__*/getDefaultExportFromCjs(setExports);\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n\nvar _copyArray;\nvar hasRequired_copyArray;\n\nfunction require_copyArray () {\n\tif (hasRequired_copyArray) return _copyArray;\n\thasRequired_copyArray = 1;\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t_copyArray = copyArray;\n\treturn _copyArray;\n}\n\nvar toPath_1;\nvar hasRequiredToPath;\n\nfunction requireToPath () {\n\tif (hasRequiredToPath) return toPath_1;\n\thasRequiredToPath = 1;\n\tvar arrayMap = require_arrayMap(),\n\t copyArray = require_copyArray(),\n\t isArray = requireIsArray(),\n\t isSymbol = requireIsSymbol(),\n\t stringToPath = require_stringToPath(),\n\t toKey = require_toKey(),\n\t toString = requireToString();\n\n\t/**\n\t * Converts `value` to a property path array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Util\n\t * @param {*} value The value to convert.\n\t * @returns {Array} Returns the new property path array.\n\t * @example\n\t *\n\t * _.toPath('a.b.c');\n\t * // => ['a', 'b', 'c']\n\t *\n\t * _.toPath('a[0].b.c');\n\t * // => ['a', '0', 'b', 'c']\n\t */\n\tfunction toPath(value) {\n\t if (isArray(value)) {\n\t return arrayMap(value, toKey);\n\t }\n\t return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n\t}\n\n\ttoPath_1 = toPath;\n\treturn toPath_1;\n}\n\nvar toPathExports = requireToPath();\nvar toPath = /*@__PURE__*/getDefaultExportFromCjs(toPathExports);\n\nvar define$2 = {\n // access data field\n data: function data(params) {\n var defaults = {\n field: 'data',\n bindingEvent: 'data',\n allowBinding: false,\n allowSetting: false,\n allowGetting: false,\n settingEvent: 'data',\n settingTriggersEvent: false,\n triggerFnName: 'trigger',\n immutableKeys: {},\n // key => true if immutable\n updateStyle: false,\n beforeGet: function beforeGet(self) {},\n beforeSet: function beforeSet(self, obj) {},\n onSet: function onSet(self) {},\n canSet: function canSet(self) {\n return true;\n }\n };\n params = extend({}, defaults, params);\n return function dataImpl(name, value) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var single = selfIsArrayLike ? self[0] : self;\n\n // .data('foo', ...)\n if (string(name)) {\n // set or get property\n var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot \n var path = isPathLike && toPath(name);\n\n // .data('foo')\n if (p.allowGetting && value === undefined) {\n // get\n\n var ret;\n if (single) {\n p.beforeGet(single);\n\n // check if it's path and a field with the same name doesn't exist\n if (path && single._private[p.field][name] === undefined) {\n ret = get(single._private[p.field], path);\n } else {\n ret = single._private[p.field][name];\n }\n }\n return ret;\n\n // .data('foo', 'bar')\n } else if (p.allowSetting && value !== undefined) {\n // set\n var valid = !p.immutableKeys[name];\n if (valid) {\n var change = _defineProperty$1({}, name, value);\n p.beforeSet(self, change);\n for (var i = 0, l = all.length; i < l; i++) {\n var ele = all[i];\n if (p.canSet(ele)) {\n if (path && single._private[p.field][name] === undefined) {\n set(ele._private[p.field], path, value);\n } else {\n ele._private[p.field][name] = value;\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n }\n }\n\n // .data({ 'foo': 'bar' })\n } else if (p.allowSetting && plainObject(name)) {\n // extend\n var obj = name;\n var k, v;\n var keys = Object.keys(obj);\n p.beforeSet(self, obj);\n for (var _i = 0; _i < keys.length; _i++) {\n k = keys[_i];\n v = obj[k];\n var _valid = !p.immutableKeys[k];\n if (_valid) {\n for (var j = 0; j < all.length; j++) {\n var _ele = all[j];\n if (p.canSet(_ele)) {\n _ele._private[p.field][k] = v;\n }\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n\n // .data(function(){ ... })\n } else if (p.allowBinding && fn$6(name)) {\n // bind to event\n var fn = name;\n self.on(p.bindingEvent, fn);\n\n // .data()\n } else if (p.allowGetting && name === undefined) {\n // get whole object\n var _ret;\n if (single) {\n p.beforeGet(single);\n _ret = single._private[p.field];\n }\n return _ret;\n }\n return self; // maintain chainability\n }; // function\n },\n // data\n\n // remove data field\n removeData: function removeData(params) {\n var defaults = {\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: false,\n immutableKeys: {} // key => true if immutable\n };\n params = extend({}, defaults, params);\n return function removeDataImpl(names) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n\n // .removeData('foo bar')\n if (string(names)) {\n // then get the list of keys, and delete them\n var keys = names.split(/\\s+/);\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n // delete each non-empty key\n var key = keys[i];\n if (emptyString(key)) {\n continue;\n }\n var valid = !p.immutableKeys[key]; // not valid if immutable\n if (valid) {\n for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {\n all[i_a]._private[p.field][key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n\n // .removeData()\n } else if (names === undefined) {\n // then delete all keys\n\n for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {\n var _privateFields = all[_i_a]._private[p.field];\n var _keys = Object.keys(_privateFields);\n for (var _i2 = 0; _i2 < _keys.length; _i2++) {\n var _key = _keys[_i2];\n var validKeyToDelete = !p.immutableKeys[_key];\n if (validKeyToDelete) {\n _privateFields[_key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n }\n return self; // maintain chaining\n }; // function\n } // removeData\n}; // define\n\nvar define$1 = {\n eventAliasesOn: function eventAliasesOn(proto) {\n var p = proto;\n p.addListener = p.listen = p.bind = p.on;\n p.unlisten = p.unbind = p.off = p.removeListener;\n p.trigger = p.emit;\n\n // this is just a wrapper alias of .on()\n p.pon = p.promiseOn = function (events, selector) {\n var self = this;\n var args = Array.prototype.slice.call(arguments, 0);\n return new Promise$1(function (resolve, reject) {\n var callback = function callback(e) {\n self.off.apply(self, offArgs);\n resolve(e);\n };\n var onArgs = args.concat([callback]);\n var offArgs = onArgs.concat([]);\n self.on.apply(self, onArgs);\n });\n };\n }\n}; // define\n\n// use this module to cherry pick functions into your prototype\n// (useful for functions shared between the core and collections, for example)\n\nvar define = {};\n[define$3, define$2, define$1].forEach(function (m) {\n extend(define, m);\n});\n\nvar elesfn$i = {\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop()\n};\n\nvar elesfn$h = {\n classes: function classes(_classes) {\n var self = this;\n if (_classes === undefined) {\n var ret = [];\n self[0]._private.classes.forEach(function (cls) {\n return ret.push(cls);\n });\n return ret;\n } else if (!array(_classes)) {\n // extract classes from string\n _classes = (_classes || '').match(/\\S+/g) || [];\n }\n var changed = [];\n var classesSet = new Set$1(_classes);\n\n // check and update each ele\n for (var j = 0; j < self.length; j++) {\n var ele = self[j];\n var _p = ele._private;\n var eleClasses = _p.classes;\n var changedEle = false;\n\n // check if ele has all of the passed classes\n for (var i = 0; i < _classes.length; i++) {\n var cls = _classes[i];\n var eleHasClass = eleClasses.has(cls);\n if (!eleHasClass) {\n changedEle = true;\n break;\n }\n }\n\n // check if ele has classes outside of those passed\n if (!changedEle) {\n changedEle = eleClasses.size !== _classes.length;\n }\n if (changedEle) {\n _p.classes = classesSet;\n changed.push(ele);\n }\n }\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n addClass: function addClass(classes) {\n return this.toggleClass(classes, true);\n },\n hasClass: function hasClass(className) {\n var ele = this[0];\n return ele != null && ele._private.classes.has(className);\n },\n toggleClass: function toggleClass(classes, toggle) {\n if (!array(classes)) {\n // extract classes from string\n classes = classes.match(/\\S+/g) || [];\n }\n var self = this;\n var toggleUndefd = toggle === undefined;\n var changed = []; // eles who had classes changed\n\n for (var i = 0, il = self.length; i < il; i++) {\n var ele = self[i];\n var eleClasses = ele._private.classes;\n var changedEle = false;\n for (var j = 0; j < classes.length; j++) {\n var cls = classes[j];\n var hasClass = eleClasses.has(cls);\n var changedNow = false;\n if (toggle || toggleUndefd && !hasClass) {\n eleClasses.add(cls);\n changedNow = true;\n } else if (!toggle || toggleUndefd && hasClass) {\n eleClasses[\"delete\"](cls);\n changedNow = true;\n }\n if (!changedEle && changedNow) {\n changed.push(ele);\n changedEle = true;\n }\n } // for j classes\n } // for i eles\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n removeClass: function removeClass(classes) {\n return this.toggleClass(classes, false);\n },\n flashClass: function flashClass(classes, duration) {\n var self = this;\n if (duration == null) {\n duration = 250;\n } else if (duration === 0) {\n return self; // nothing to do really\n }\n self.addClass(classes);\n setTimeout(function () {\n self.removeClass(classes);\n }, duration);\n return self;\n }\n};\nelesfn$h.className = elesfn$h.classNames = elesfn$h.classes;\n\n// tokens in the query language\nvar tokens = {\n metaChar: '[\\\\!\\\\\"\\\\#\\\\$\\\\%\\\\&\\\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\.\\\\/\\\\:\\\\;\\\\<\\\\=\\\\>\\\\?\\\\@\\\\[\\\\]\\\\^\\\\`\\\\{\\\\|\\\\}\\\\~]',\n // chars we need to escape in let names, etc\n comparatorOp: '=|\\\\!=|>|>=|<|<=|\\\\$=|\\\\^=|\\\\*=',\n // binary comparison op (used in data selectors)\n boolOp: '\\\\?|\\\\!|\\\\^',\n // boolean (unary) operators (used in data selectors)\n string: '\"(?:\\\\\\\\\"|[^\"])*\"' + '|' + \"'(?:\\\\\\\\'|[^'])*'\",\n // string literals (used in data selectors) -- doublequotes | singlequotes\n number: number,\n // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123\n meta: 'degree|indegree|outdegree',\n // allowed metadata fields (i.e. allowed functions to use from Collection)\n separator: '\\\\s*,\\\\s*',\n // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass\n descendant: '\\\\s+',\n child: '\\\\s+>\\\\s+',\n subject: '\\\\$',\n group: 'node|edge|\\\\*',\n directedEdge: '\\\\s+->\\\\s+',\n undirectedEdge: '\\\\s+<->\\\\s+'\n};\ntokens.variable = '(?:[\\\\w-.]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods\ntokens.className = '(?:[\\\\w-]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name\ntokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number\ntokens.id = tokens.variable; // an element id (follows variable conventions)\n\n(function () {\n var ops, op, i;\n\n // add @ variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n tokens.comparatorOp += '|@' + op;\n }\n\n // add ! variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n if (op.indexOf('!') >= 0) {\n continue;\n } // skip ops that explicitly contain !\n if (op === '=') {\n continue;\n } // skip = b/c != is explicitly defined\n\n tokens.comparatorOp += '|\\\\!' + op;\n }\n})();\n\n/**\n * Make a new query object\n *\n * @prop type {Type} The type enum (int) of the query\n * @prop checks List of checks to make against an ele to test for a match\n */\nvar newQuery = function newQuery() {\n return {\n checks: []\n };\n};\n\n/**\n * A check type enum-like object. Uses integer values for fast match() lookup.\n * The ordering does not matter as long as the ints are unique.\n */\nvar Type = {\n /** E.g. node */\n GROUP: 0,\n /** A collection of elements */\n COLLECTION: 1,\n /** A filter(ele) function */\n FILTER: 2,\n /** E.g. [foo > 1] */\n DATA_COMPARE: 3,\n /** E.g. [foo] */\n DATA_EXIST: 4,\n /** E.g. [?foo] */\n DATA_BOOL: 5,\n /** E.g. [[degree > 2]] */\n META_COMPARE: 6,\n /** E.g. :selected */\n STATE: 7,\n /** E.g. #foo */\n ID: 8,\n /** E.g. .foo */\n CLASS: 9,\n /** E.g. #foo <-> #bar */\n UNDIRECTED_EDGE: 10,\n /** E.g. #foo -> #bar */\n DIRECTED_EDGE: 11,\n /** E.g. $#foo -> #bar */\n NODE_SOURCE: 12,\n /** E.g. #foo -> $#bar */\n NODE_TARGET: 13,\n /** E.g. $#foo <-> #bar */\n NODE_NEIGHBOR: 14,\n /** E.g. #foo > #bar */\n CHILD: 15,\n /** E.g. #foo #bar */\n DESCENDANT: 16,\n /** E.g. $#foo > #bar */\n PARENT: 17,\n /** E.g. $#foo #bar */\n ANCESTOR: 18,\n /** E.g. #foo > $bar > #baz */\n COMPOUND_SPLIT: 19,\n /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */\n TRUE: 20\n};\n\nvar stateSelectors = [{\n selector: ':selected',\n matches: function matches(ele) {\n return ele.selected();\n }\n}, {\n selector: ':unselected',\n matches: function matches(ele) {\n return !ele.selected();\n }\n}, {\n selector: ':selectable',\n matches: function matches(ele) {\n return ele.selectable();\n }\n}, {\n selector: ':unselectable',\n matches: function matches(ele) {\n return !ele.selectable();\n }\n}, {\n selector: ':locked',\n matches: function matches(ele) {\n return ele.locked();\n }\n}, {\n selector: ':unlocked',\n matches: function matches(ele) {\n return !ele.locked();\n }\n}, {\n selector: ':visible',\n matches: function matches(ele) {\n return ele.visible();\n }\n}, {\n selector: ':hidden',\n matches: function matches(ele) {\n return !ele.visible();\n }\n}, {\n selector: ':transparent',\n matches: function matches(ele) {\n return ele.transparent();\n }\n}, {\n selector: ':grabbed',\n matches: function matches(ele) {\n return ele.grabbed();\n }\n}, {\n selector: ':free',\n matches: function matches(ele) {\n return !ele.grabbed();\n }\n}, {\n selector: ':removed',\n matches: function matches(ele) {\n return ele.removed();\n }\n}, {\n selector: ':inside',\n matches: function matches(ele) {\n return !ele.removed();\n }\n}, {\n selector: ':grabbable',\n matches: function matches(ele) {\n return ele.grabbable();\n }\n}, {\n selector: ':ungrabbable',\n matches: function matches(ele) {\n return !ele.grabbable();\n }\n}, {\n selector: ':animated',\n matches: function matches(ele) {\n return ele.animated();\n }\n}, {\n selector: ':unanimated',\n matches: function matches(ele) {\n return !ele.animated();\n }\n}, {\n selector: ':parent',\n matches: function matches(ele) {\n return ele.isParent();\n }\n}, {\n selector: ':childless',\n matches: function matches(ele) {\n return ele.isChildless();\n }\n}, {\n selector: ':child',\n matches: function matches(ele) {\n return ele.isChild();\n }\n}, {\n selector: ':orphan',\n matches: function matches(ele) {\n return ele.isOrphan();\n }\n}, {\n selector: ':nonorphan',\n matches: function matches(ele) {\n return ele.isChild();\n }\n}, {\n selector: ':compound',\n matches: function matches(ele) {\n if (ele.isNode()) {\n return ele.isParent();\n } else {\n return ele.source().isParent() || ele.target().isParent();\n }\n }\n}, {\n selector: ':loop',\n matches: function matches(ele) {\n return ele.isLoop();\n }\n}, {\n selector: ':simple',\n matches: function matches(ele) {\n return ele.isSimple();\n }\n}, {\n selector: ':active',\n matches: function matches(ele) {\n return ele.active();\n }\n}, {\n selector: ':inactive',\n matches: function matches(ele) {\n return !ele.active();\n }\n}, {\n selector: ':backgrounding',\n matches: function matches(ele) {\n return ele.backgrounding();\n }\n}, {\n selector: ':nonbackgrounding',\n matches: function matches(ele) {\n return !ele.backgrounding();\n }\n}].sort(function (a, b) {\n // n.b. selectors that are starting substrings of others must have the longer ones first\n return descending(a.selector, b.selector);\n});\nvar lookup = function () {\n var selToFn = {};\n var s;\n for (var i = 0; i < stateSelectors.length; i++) {\n s = stateSelectors[i];\n selToFn[s.selector] = s.matches;\n }\n return selToFn;\n}();\nvar stateSelectorMatches = function stateSelectorMatches(sel, ele) {\n return lookup[sel](ele);\n};\nvar stateSelectorRegex = '(' + stateSelectors.map(function (s) {\n return s.selector;\n}).join('|') + ')';\n\n// when a token like a variable has escaped meta characters, we need to clean the backslashes out\n// so that values get compared properly in Selector.filter()\nvar cleanMetaChars = function cleanMetaChars(str) {\n return str.replace(new RegExp('\\\\\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) {\n return $1;\n });\n};\nvar replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) {\n selector[selector.length - 1] = replacementQuery;\n};\n\n// NOTE: add new expression syntax here to have it recognised by the parser;\n// - a query contains all adjacent (i.e. no separator in between) expressions;\n// - the current query is stored in selector[i]\n// - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward\nvar exprs = [{\n name: 'group',\n // just used for identifying when debugging\n query: true,\n regex: '(' + tokens.group + ')',\n populate: function populate(selector, query, _ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n group = _ref2[0];\n query.checks.push({\n type: Type.GROUP,\n value: group === '*' ? group : group + 's'\n });\n }\n}, {\n name: 'state',\n query: true,\n regex: stateSelectorRegex,\n populate: function populate(selector, query, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n state = _ref4[0];\n query.checks.push({\n type: Type.STATE,\n value: state\n });\n }\n}, {\n name: 'id',\n query: true,\n regex: '\\\\#(' + tokens.id + ')',\n populate: function populate(selector, query, _ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n id = _ref6[0];\n query.checks.push({\n type: Type.ID,\n value: cleanMetaChars(id)\n });\n }\n}, {\n name: 'className',\n query: true,\n regex: '\\\\.(' + tokens.className + ')',\n populate: function populate(selector, query, _ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n className = _ref8[0];\n query.checks.push({\n type: Type.CLASS,\n value: cleanMetaChars(className)\n });\n }\n}, {\n name: 'dataExists',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n variable = _ref10[0];\n query.checks.push({\n type: Type.DATA_EXIST,\n field: cleanMetaChars(variable)\n });\n }\n}, {\n name: 'dataCompare',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.value + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref11) {\n var _ref12 = _slicedToArray(_ref11, 3),\n variable = _ref12[0],\n comparatorOp = _ref12[1],\n value = _ref12[2];\n var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null;\n if (valueIsString) {\n value = value.substring(1, value.length - 1);\n } else {\n value = parseFloat(value);\n }\n query.checks.push({\n type: Type.DATA_COMPARE,\n field: cleanMetaChars(variable),\n operator: comparatorOp,\n value: value\n });\n }\n}, {\n name: 'dataBool',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.boolOp + ')\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n boolOp = _ref14[0],\n variable = _ref14[1];\n query.checks.push({\n type: Type.DATA_BOOL,\n field: cleanMetaChars(variable),\n operator: boolOp\n });\n }\n}, {\n name: 'metaCompare',\n query: true,\n regex: '\\\\[\\\\[\\\\s*(' + tokens.meta + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.number + ')\\\\s*\\\\]\\\\]',\n populate: function populate(selector, query, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 3),\n meta = _ref16[0],\n comparatorOp = _ref16[1],\n number = _ref16[2];\n query.checks.push({\n type: Type.META_COMPARE,\n field: cleanMetaChars(meta),\n operator: comparatorOp,\n value: parseFloat(number)\n });\n }\n}, {\n name: 'nextQuery',\n separator: true,\n regex: tokens.separator,\n populate: function populate(selector, query) {\n var currentSubject = selector.currentSubject;\n var edgeCount = selector.edgeCount;\n var compoundCount = selector.compoundCount;\n var lastQ = selector[selector.length - 1];\n if (currentSubject != null) {\n lastQ.subject = currentSubject;\n selector.currentSubject = null;\n }\n lastQ.edgeCount = edgeCount;\n lastQ.compoundCount = compoundCount;\n selector.edgeCount = 0;\n selector.compoundCount = 0;\n\n // go on to next query\n var nextQuery = selector[selector.length++] = newQuery();\n return nextQuery; // this is the new query to be filled by the following exprs\n }\n}, {\n name: 'directedEdge',\n separator: true,\n regex: tokens.directedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.DIRECTED_EDGE,\n source: source,\n target: target\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // source/target\n var srcTgtQ = newQuery();\n var _source = query;\n var _target = newQuery();\n srcTgtQ.checks.push({\n type: Type.NODE_SOURCE,\n source: _source,\n target: _target\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, srcTgtQ);\n selector.edgeCount++;\n return _target; // now populating the target with the following expressions\n }\n }\n}, {\n name: 'undirectedEdge',\n separator: true,\n regex: tokens.undirectedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.UNDIRECTED_EDGE,\n nodes: [source, target]\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // neighbourhood\n var nhoodQ = newQuery();\n var node = query;\n var neighbor = newQuery();\n nhoodQ.checks.push({\n type: Type.NODE_NEIGHBOR,\n node: node,\n neighbor: neighbor\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, nhoodQ);\n return neighbor; // now populating the neighbor with following expressions\n }\n }\n}, {\n name: 'child',\n separator: true,\n regex: tokens.child,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: child query\n var parentChildQuery = newQuery();\n var child = newQuery();\n var parent = selector[selector.length - 1];\n parentChildQuery.checks.push({\n type: Type.CHILD,\n parent: parent,\n child: child\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, parentChildQuery);\n selector.compoundCount++;\n\n // we're now populating the child query with expressions that follow\n return child;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _child = newQuery();\n var _parent = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _parent.checks.push({\n type: Type.TRUE\n }); // parent implicitly refs the subject\n right.checks.push({\n type: Type.PARENT,\n // type is swapped on right side queries\n parent: _parent,\n child: _child // empty for now\n });\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _child; // now populating the right side's child\n } else {\n // parent query\n // info for parent query\n var _parent2 = newQuery();\n var _child2 = newQuery();\n var pcQChecks = [{\n type: Type.PARENT,\n parent: _parent2,\n child: _child2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _parent2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = pcQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _child2; // we're now populating the child\n }\n }\n}, {\n name: 'descendant',\n separator: true,\n regex: tokens.descendant,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: descendant query\n var ancChQuery = newQuery();\n var descendant = newQuery();\n var ancestor = selector[selector.length - 1];\n ancChQuery.checks.push({\n type: Type.DESCENDANT,\n ancestor: ancestor,\n descendant: descendant\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, ancChQuery);\n selector.compoundCount++;\n\n // we're now populating the descendant query with expressions that follow\n return descendant;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _descendant = newQuery();\n var _ancestor = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _ancestor.checks.push({\n type: Type.TRUE\n }); // ancestor implicitly refs the subject\n right.checks.push({\n type: Type.ANCESTOR,\n // type is swapped on right side queries\n ancestor: _ancestor,\n descendant: _descendant // empty for now\n });\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _descendant; // now populating the right side's descendant\n } else {\n // ancestor query\n // info for parent query\n var _ancestor2 = newQuery();\n var _descendant2 = newQuery();\n var adQChecks = [{\n type: Type.ANCESTOR,\n ancestor: _ancestor2,\n descendant: _descendant2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _ancestor2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = adQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _descendant2; // we're now populating the child\n }\n }\n}, {\n name: 'subject',\n modifier: true,\n regex: tokens.subject,\n populate: function populate(selector, query) {\n if (selector.currentSubject != null && selector.currentSubject !== query) {\n warn('Redefinition of subject in selector `' + selector.toString() + '`');\n return false;\n }\n selector.currentSubject = query;\n var topQ = selector[selector.length - 1];\n var topChk = topQ.checks[0];\n var topType = topChk == null ? null : topChk.type;\n if (topType === Type.DIRECTED_EDGE) {\n // directed edge with subject on the target\n\n // change to target node check\n topChk.type = Type.NODE_TARGET;\n } else if (topType === Type.UNDIRECTED_EDGE) {\n // undirected edge with subject on the second node\n\n // change to neighbor check\n topChk.type = Type.NODE_NEIGHBOR;\n topChk.node = topChk.nodes[1]; // second node is subject\n topChk.neighbor = topChk.nodes[0];\n\n // clean up unused fields for new type\n topChk.nodes = null;\n }\n }\n}];\nexprs.forEach(function (e) {\n return e.regexObj = new RegExp('^' + e.regex);\n});\n\n/**\n * Of all the expressions, find the first match in the remaining text.\n * @param {string} remaining The remaining text to parse\n * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }`\n */\nvar consumeExpr = function consumeExpr(remaining) {\n var expr;\n var match;\n var name;\n for (var j = 0; j < exprs.length; j++) {\n var e = exprs[j];\n var n = e.name;\n var m = remaining.match(e.regexObj);\n if (m != null) {\n match = m;\n expr = e;\n name = n;\n var consumed = m[0];\n remaining = remaining.substring(consumed.length);\n break; // we've consumed one expr, so we can return now\n }\n }\n return {\n expr: expr,\n match: match,\n name: name,\n remaining: remaining\n };\n};\n\n/**\n * Consume all the leading whitespace\n * @param {string} remaining The text to consume\n * @returns The text with the leading whitespace removed\n */\nvar consumeWhitespace = function consumeWhitespace(remaining) {\n var match = remaining.match(/^\\s+/);\n if (match) {\n var consumed = match[0];\n remaining = remaining.substring(consumed.length);\n }\n return remaining;\n};\n\n/**\n * Parse the string and store the parsed representation in the Selector.\n * @param {string} selector The selector string\n * @returns `true` if the selector was successfully parsed, `false` otherwise\n */\nvar parse = function parse(selector) {\n var self = this;\n var remaining = self.inputText = selector;\n var currentQuery = self[0] = newQuery();\n self.length = 1;\n remaining = consumeWhitespace(remaining); // get rid of leading whitespace\n\n for (;;) {\n var exprInfo = consumeExpr(remaining);\n if (exprInfo.expr == null) {\n warn('The selector `' + selector + '`is invalid');\n return false;\n } else {\n var args = exprInfo.match.slice(1);\n\n // let the token populate the selector object in currentQuery\n var ret = exprInfo.expr.populate(self, currentQuery, args);\n if (ret === false) {\n return false; // exit if population failed\n } else if (ret != null) {\n currentQuery = ret; // change the current query to be filled if the expr specifies\n }\n }\n remaining = exprInfo.remaining;\n\n // we're done when there's nothing left to parse\n if (remaining.match(/^\\s*$/)) {\n break;\n }\n }\n var lastQ = self[self.length - 1];\n if (self.currentSubject != null) {\n lastQ.subject = self.currentSubject;\n }\n lastQ.edgeCount = self.edgeCount;\n lastQ.compoundCount = self.compoundCount;\n for (var i = 0; i < self.length; i++) {\n var q = self[i];\n\n // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations\n if (q.compoundCount > 0 && q.edgeCount > 0) {\n warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector');\n return false;\n }\n if (q.edgeCount > 1) {\n warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors');\n return false;\n } else if (q.edgeCount === 1) {\n warn('The selector `' + selector + '` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.');\n }\n }\n return true; // success\n};\n\n/**\n * Get the selector represented as a string. This value uses default formatting,\n * so things like spacing may differ from the input text passed to the constructor.\n * @returns {string} The selector string\n */\nvar toString = function toString() {\n if (this.toStringCache != null) {\n return this.toStringCache;\n }\n var clean = function clean(obj) {\n if (obj == null) {\n return '';\n } else {\n return obj;\n }\n };\n var cleanVal = function cleanVal(val) {\n if (string(val)) {\n return '\"' + val + '\"';\n } else {\n return clean(val);\n }\n };\n var space = function space(val) {\n return ' ' + val + ' ';\n };\n var checkToString = function checkToString(check, subject) {\n var type = check.type,\n value = check.value;\n switch (type) {\n case Type.GROUP:\n {\n var group = clean(value);\n return group.substring(0, group.length - 1);\n }\n case Type.DATA_COMPARE:\n {\n var field = check.field,\n operator = check.operator;\n return '[' + field + space(clean(operator)) + cleanVal(value) + ']';\n }\n case Type.DATA_BOOL:\n {\n var _operator = check.operator,\n _field = check.field;\n return '[' + clean(_operator) + _field + ']';\n }\n case Type.DATA_EXIST:\n {\n var _field2 = check.field;\n return '[' + _field2 + ']';\n }\n case Type.META_COMPARE:\n {\n var _operator2 = check.operator,\n _field3 = check.field;\n return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]';\n }\n case Type.STATE:\n {\n return value;\n }\n case Type.ID:\n {\n return '#' + value;\n }\n case Type.CLASS:\n {\n return '.' + value;\n }\n case Type.PARENT:\n case Type.CHILD:\n {\n return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject);\n }\n case Type.ANCESTOR:\n case Type.DESCENDANT:\n {\n return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject);\n }\n case Type.COMPOUND_SPLIT:\n {\n var lhs = queryToString(check.left, subject);\n var sub = queryToString(check.subject, subject);\n var rhs = queryToString(check.right, subject);\n return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs;\n }\n case Type.TRUE:\n {\n return '';\n }\n }\n };\n var queryToString = function queryToString(query, subject) {\n return query.checks.reduce(function (str, chk, i) {\n return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject);\n }, '');\n };\n var str = '';\n for (var i = 0; i < this.length; i++) {\n var query = this[i];\n str += queryToString(query, query.subject);\n if (this.length > 1 && i < this.length - 1) {\n str += ', ';\n }\n }\n this.toStringCache = str;\n return str;\n};\nvar parse$1 = {\n parse: parse,\n toString: toString\n};\n\nvar valCmp = function valCmp(fieldVal, operator, value) {\n var matches;\n var isFieldStr = string(fieldVal);\n var isFieldNum = number$1(fieldVal);\n var isValStr = string(value);\n var fieldStr, valStr;\n var caseInsensitive = false;\n var notExpr = false;\n var isIneqCmp = false;\n if (operator.indexOf('!') >= 0) {\n operator = operator.replace('!', '');\n notExpr = true;\n }\n if (operator.indexOf('@') >= 0) {\n operator = operator.replace('@', '');\n caseInsensitive = true;\n }\n if (isFieldStr || isValStr || caseInsensitive) {\n fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal;\n valStr = '' + value;\n }\n\n // if we're doing a case insensitive comparison, then we're using a STRING comparison\n // even if we're comparing numbers\n if (caseInsensitive) {\n fieldVal = fieldStr = fieldStr.toLowerCase();\n value = valStr = valStr.toLowerCase();\n }\n switch (operator) {\n case '*=':\n matches = fieldStr.indexOf(valStr) >= 0;\n break;\n case '$=':\n matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;\n break;\n case '^=':\n matches = fieldStr.indexOf(valStr) === 0;\n break;\n case '=':\n matches = fieldVal === value;\n break;\n case '>':\n isIneqCmp = true;\n matches = fieldVal > value;\n break;\n case '>=':\n isIneqCmp = true;\n matches = fieldVal >= value;\n break;\n case '<':\n isIneqCmp = true;\n matches = fieldVal < value;\n break;\n case '<=':\n isIneqCmp = true;\n matches = fieldVal <= value;\n break;\n default:\n matches = false;\n break;\n }\n\n // apply the not op, but null vals for inequalities should always stay non-matching\n if (notExpr && (fieldVal != null || !isIneqCmp)) {\n matches = !matches;\n }\n return matches;\n};\nvar boolCmp = function boolCmp(fieldVal, operator) {\n switch (operator) {\n case '?':\n return fieldVal ? true : false;\n case '!':\n return fieldVal ? false : true;\n case '^':\n return fieldVal === undefined;\n }\n};\nvar existCmp = function existCmp(fieldVal) {\n return fieldVal !== undefined;\n};\nvar data$1 = function data(ele, field) {\n return ele.data(field);\n};\nvar meta = function meta(ele, field) {\n return ele[field]();\n};\n\n/** A lookup of `match(check, ele)` functions by `Type` int */\nvar match = [];\n\n/**\n * Returns whether the query matches for the element\n * @param query The `{ type, value, ... }` query object\n * @param ele The element to compare against\n*/\nvar matches$1 = function matches(query, ele) {\n return query.checks.every(function (chk) {\n return match[chk.type](chk, ele);\n });\n};\nmatch[Type.GROUP] = function (check, ele) {\n var group = check.value;\n return group === '*' || group === ele.group();\n};\nmatch[Type.STATE] = function (check, ele) {\n var stateSelector = check.value;\n return stateSelectorMatches(stateSelector, ele);\n};\nmatch[Type.ID] = function (check, ele) {\n var id = check.value;\n return ele.id() === id;\n};\nmatch[Type.CLASS] = function (check, ele) {\n var cls = check.value;\n return ele.hasClass(cls);\n};\nmatch[Type.META_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(meta(ele, field), operator, value);\n};\nmatch[Type.DATA_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(data$1(ele, field), operator, value);\n};\nmatch[Type.DATA_BOOL] = function (check, ele) {\n var field = check.field,\n operator = check.operator;\n return boolCmp(data$1(ele, field), operator);\n};\nmatch[Type.DATA_EXIST] = function (check, ele) {\n var field = check.field;\n check.operator;\n return existCmp(data$1(ele, field));\n};\nmatch[Type.UNDIRECTED_EDGE] = function (check, ele) {\n var qA = check.nodes[0];\n var qB = check.nodes[1];\n var src = ele.source();\n var tgt = ele.target();\n return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);\n};\nmatch[Type.NODE_NEIGHBOR] = function (check, ele) {\n return matches$1(check.node, ele) && ele.neighborhood().some(function (n) {\n return n.isNode() && matches$1(check.neighbor, n);\n });\n};\nmatch[Type.DIRECTED_EDGE] = function (check, ele) {\n return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());\n};\nmatch[Type.NODE_SOURCE] = function (check, ele) {\n return matches$1(check.source, ele) && ele.outgoers().some(function (n) {\n return n.isNode() && matches$1(check.target, n);\n });\n};\nmatch[Type.NODE_TARGET] = function (check, ele) {\n return matches$1(check.target, ele) && ele.incomers().some(function (n) {\n return n.isNode() && matches$1(check.source, n);\n });\n};\nmatch[Type.CHILD] = function (check, ele) {\n return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());\n};\nmatch[Type.PARENT] = function (check, ele) {\n return matches$1(check.parent, ele) && ele.children().some(function (c) {\n return matches$1(check.child, c);\n });\n};\nmatch[Type.DESCENDANT] = function (check, ele) {\n return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) {\n return matches$1(check.ancestor, a);\n });\n};\nmatch[Type.ANCESTOR] = function (check, ele) {\n return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) {\n return matches$1(check.descendant, d);\n });\n};\nmatch[Type.COMPOUND_SPLIT] = function (check, ele) {\n return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);\n};\nmatch[Type.TRUE] = function () {\n return true;\n};\nmatch[Type.COLLECTION] = function (check, ele) {\n var collection = check.value;\n return collection.has(ele);\n};\nmatch[Type.FILTER] = function (check, ele) {\n var filter = check.value;\n return filter(ele);\n};\n\n// filter an existing collection\nvar filter = function filter(collection) {\n var self = this;\n\n // for 1 id #foo queries, just get the element\n if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) {\n return collection.getElementById(self[0].checks[0].value).collection();\n }\n var selectorFunction = function selectorFunction(element) {\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, element)) {\n return true;\n }\n }\n return false;\n };\n if (self.text() == null) {\n selectorFunction = function selectorFunction() {\n return true;\n };\n }\n return collection.filter(selectorFunction);\n}; // filter\n\n// does selector match a single element?\nvar matches = function matches(ele) {\n var self = this;\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, ele)) {\n return true;\n }\n }\n return false;\n}; // matches\n\nvar matching = {\n matches: matches,\n filter: filter\n};\n\nvar Selector = function Selector(selector) {\n this.inputText = selector;\n this.currentSubject = null;\n this.compoundCount = 0;\n this.edgeCount = 0;\n this.length = 0;\n if (selector == null || string(selector) && selector.match(/^\\s*$/)) ; else if (elementOrCollection(selector)) {\n this.addQuery({\n checks: [{\n type: Type.COLLECTION,\n value: selector.collection()\n }]\n });\n } else if (fn$6(selector)) {\n this.addQuery({\n checks: [{\n type: Type.FILTER,\n value: selector\n }]\n });\n } else if (string(selector)) {\n if (!this.parse(selector)) {\n this.invalid = true;\n }\n } else {\n error('A selector must be created from a string; found ');\n }\n};\nvar selfn = Selector.prototype;\n[parse$1, matching].forEach(function (p) {\n return extend(selfn, p);\n});\nselfn.text = function () {\n return this.inputText;\n};\nselfn.size = function () {\n return this.length;\n};\nselfn.eq = function (i) {\n return this[i];\n};\nselfn.sameText = function (otherSel) {\n return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();\n};\nselfn.addQuery = function (q) {\n this[this.length++] = q;\n};\nselfn.selector = selfn.toString;\n\nvar elesfn$g = {\n allAre: function allAre(selector) {\n var selObj = new Selector(selector);\n return this.every(function (ele) {\n return selObj.matches(ele);\n });\n },\n is: function is(selector) {\n var selObj = new Selector(selector);\n return this.some(function (ele) {\n return selObj.matches(ele);\n });\n },\n some: function some(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (ret) {\n return true;\n }\n }\n return false;\n },\n every: function every(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (!ret) {\n return false;\n }\n }\n return true;\n },\n same: function same(collection) {\n // cheap collection ref check\n if (this === collection) {\n return true;\n }\n collection = this.cy().collection(collection);\n var thisLength = this.length;\n var collectionLength = collection.length;\n\n // cheap length check\n if (thisLength !== collectionLength) {\n return false;\n }\n\n // cheap element ref check\n if (thisLength === 1) {\n return this[0] === collection[0];\n }\n return this.every(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n anySame: function anySame(collection) {\n collection = this.cy().collection(collection);\n return this.some(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n allAreNeighbors: function allAreNeighbors(collection) {\n collection = this.cy().collection(collection);\n var nhood = this.neighborhood();\n return collection.every(function (ele) {\n return nhood.hasElementWithId(ele.id());\n });\n },\n contains: function contains(collection) {\n collection = this.cy().collection(collection);\n var self = this;\n return collection.every(function (ele) {\n return self.hasElementWithId(ele.id());\n });\n }\n};\nelesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;\nelesfn$g.has = elesfn$g.contains;\nelesfn$g.equal = elesfn$g.equals = elesfn$g.same;\n\nvar cache = function cache(fn, name) {\n return function traversalCache(arg1, arg2, arg3, arg4) {\n var selectorOrEles = arg1;\n var eles = this;\n var key;\n if (selectorOrEles == null) {\n key = '';\n } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {\n key = selectorOrEles.id();\n }\n if (eles.length === 1 && key) {\n var _p = eles[0]._private;\n var tch = _p.traversalCache = _p.traversalCache || {};\n var ch = tch[name] = tch[name] || [];\n var hash = hashString(key);\n var cacheHit = ch[hash];\n if (cacheHit) {\n return cacheHit;\n } else {\n return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4);\n }\n } else {\n return fn.call(eles, arg1, arg2, arg3, arg4);\n }\n };\n};\n\nvar elesfn$f = {\n parent: function parent(selector) {\n var parents = [];\n\n // optimisation for single ele call\n if (this.length === 1) {\n var parent = this[0]._private.parent;\n if (parent) {\n return parent;\n }\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _parent = ele._private.parent;\n if (_parent) {\n parents.push(_parent);\n }\n }\n return this.spawn(parents, true).filter(selector);\n },\n parents: function parents(selector) {\n var parents = [];\n var eles = this.parent();\n while (eles.nonempty()) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n parents.push(ele);\n }\n eles = eles.parent();\n }\n return this.spawn(parents, true).filter(selector);\n },\n commonAncestors: function commonAncestors(selector) {\n var ancestors;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var parents = ele.parents();\n ancestors = ancestors || parents;\n ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set\n }\n return ancestors.filter(selector);\n },\n orphans: function orphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isOrphan();\n }).filter(selector);\n },\n nonorphans: function nonorphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isChild();\n }).filter(selector);\n },\n children: cache(function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var eleChildren = ele._private.children;\n for (var j = 0; j < eleChildren.length; j++) {\n children.push(eleChildren[j]);\n }\n }\n return this.spawn(children, true).filter(selector);\n }, 'children'),\n siblings: function siblings(selector) {\n return this.parent().children().not(this).filter(selector);\n },\n isParent: function isParent() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length !== 0;\n }\n },\n isChildless: function isChildless() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length === 0;\n }\n },\n isChild: function isChild() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent != null;\n }\n },\n isOrphan: function isOrphan() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent == null;\n }\n },\n descendants: function descendants(selector) {\n var elements = [];\n function add(eles) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n elements.push(ele);\n if (ele.children().nonempty()) {\n add(ele.children());\n }\n }\n }\n add(this.children());\n return this.spawn(elements, true).filter(selector);\n }\n};\nfunction forEachCompound(eles, fn, includeSelf, recursiveStep) {\n var q = [];\n var did = new Set$1();\n var cy = eles.cy();\n var hasCompounds = cy.hasCompoundNodes();\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (includeSelf) {\n q.push(ele);\n } else if (hasCompounds) {\n recursiveStep(q, did, ele);\n }\n }\n while (q.length > 0) {\n var _ele = q.shift();\n fn(_ele);\n did.add(_ele.id());\n if (hasCompounds) {\n recursiveStep(q, did, _ele);\n }\n }\n return eles;\n}\nfunction addChildren(q, did, ele) {\n if (ele.isParent()) {\n var children = ele._private.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (!did.has(child.id())) {\n q.push(child);\n }\n }\n }\n}\n\n// very efficient version of eles.add( eles.descendants() ).forEach()\n// for internal use\nelesfn$f.forEachDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addChildren);\n};\nfunction addParent(q, did, ele) {\n if (ele.isChild()) {\n var parent = ele._private.parent;\n if (!did.has(parent.id())) {\n q.push(parent);\n }\n }\n}\nelesfn$f.forEachUp = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParent);\n};\nfunction addParentAndChildren(q, did, ele) {\n addParent(q, did, ele);\n addChildren(q, did, ele);\n}\nelesfn$f.forEachUpAndDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParentAndChildren);\n};\n\n// aliases\nelesfn$f.ancestors = elesfn$f.parents;\n\nvar fn$5, elesfn$e;\nfn$5 = elesfn$e = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n rscratch: define.data({\n field: 'rscratch',\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: true\n }),\n removeRscratch: define.removeData({\n field: 'rscratch',\n triggerEvent: false\n }),\n id: function id() {\n var ele = this[0];\n if (ele) {\n return ele._private.data.id;\n }\n }\n};\n\n// aliases\nfn$5.attr = fn$5.data;\nfn$5.removeAttr = fn$5.removeData;\nvar data = elesfn$e;\n\nvar elesfn$d = {};\nfunction defineDegreeFunction(callback) {\n return function (includeLoops) {\n var self = this;\n if (includeLoops === undefined) {\n includeLoops = true;\n }\n if (self.length === 0) {\n return;\n }\n if (self.isNode() && !self.removed()) {\n var degree = 0;\n var node = self[0];\n var connectedEdges = node._private.edges;\n for (var i = 0; i < connectedEdges.length; i++) {\n var edge = connectedEdges[i];\n if (!includeLoops && edge.isLoop()) {\n continue;\n }\n degree += callback(node, edge);\n }\n return degree;\n } else {\n return;\n }\n };\n}\nextend(elesfn$d, {\n degree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(edge.target())) {\n return 2;\n } else {\n return 1;\n }\n }),\n indegree: defineDegreeFunction(function (node, edge) {\n if (edge.target().same(node)) {\n return 1;\n } else {\n return 0;\n }\n }),\n outdegree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(node)) {\n return 1;\n } else {\n return 0;\n }\n })\n});\nfunction defineDegreeBoundsFunction(degreeFn, callback) {\n return function (includeLoops) {\n var ret;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var ele = nodes[i];\n var degree = ele[degreeFn](includeLoops);\n if (degree !== undefined && (ret === undefined || callback(degree, ret))) {\n ret = degree;\n }\n }\n return ret;\n };\n}\nextend(elesfn$d, {\n minDegree: defineDegreeBoundsFunction('degree', function (degree, min) {\n return degree < min;\n }),\n maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) {\n return degree > max;\n }),\n minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) {\n return degree < min;\n }),\n maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) {\n return degree > max;\n }),\n minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) {\n return degree < min;\n }),\n maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) {\n return degree > max;\n })\n});\nextend(elesfn$d, {\n totalDegree: function totalDegree(includeLoops) {\n var total = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n total += nodes[i].degree(includeLoops);\n }\n return total;\n }\n});\n\nvar fn$4, elesfn$c;\nvar beforePositionSet = function beforePositionSet(eles, newPos, silent) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.locked()) {\n var oldPos = ele._private.position;\n var delta = {\n x: newPos.x != null ? newPos.x - oldPos.x : 0,\n y: newPos.y != null ? newPos.y - oldPos.y : 0\n };\n if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {\n ele.children().shift(delta, silent);\n }\n ele.dirtyBoundingBoxCache();\n }\n }\n};\nvar positionDef = {\n field: 'position',\n bindingEvent: 'position',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'position',\n settingTriggersEvent: true,\n triggerFnName: 'emitAndNotify',\n allowGetting: true,\n validKeys: ['x', 'y'],\n beforeGet: function beforeGet(ele) {\n ele.updateCompoundBounds();\n },\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, false);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n },\n canSet: function canSet(ele) {\n return !ele.locked();\n }\n};\nfn$4 = elesfn$c = {\n position: define.data(positionDef),\n // position but no notification to renderer\n silentPosition: define.data(extend({}, positionDef, {\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: false,\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, true);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n }\n })),\n positions: function positions(pos, silent) {\n if (plainObject(pos)) {\n if (silent) {\n this.silentPosition(pos);\n } else {\n this.position(pos);\n }\n } else if (fn$6(pos)) {\n var _fn = pos;\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _pos = undefined;\n if (_pos = _fn(ele, i)) {\n if (silent) {\n ele.silentPosition(_pos);\n } else {\n ele.position(_pos);\n }\n }\n }\n cy.endBatch();\n }\n return this; // chaining\n },\n silentPositions: function silentPositions(pos) {\n return this.positions(pos, true);\n },\n shift: function shift(dim, val, silent) {\n var delta;\n if (plainObject(dim)) {\n delta = {\n x: number$1(dim.x) ? dim.x : 0,\n y: number$1(dim.y) ? dim.y : 0\n };\n silent = val;\n } else if (string(dim) && number$1(val)) {\n delta = {\n x: 0,\n y: 0\n };\n delta[dim] = val;\n }\n if (delta != null) {\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n\n // exclude any node that is a descendant of the calling collection\n if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {\n continue;\n }\n var pos = ele.position();\n var newPos = {\n x: pos.x + delta.x,\n y: pos.y + delta.y\n };\n if (silent) {\n ele.silentPosition(newPos);\n } else {\n ele.position(newPos);\n }\n }\n cy.endBatch();\n }\n return this;\n },\n silentShift: function silentShift(dim, val) {\n if (plainObject(dim)) {\n this.shift(dim, true);\n } else if (string(dim) && number$1(val)) {\n this.shift(dim, val, true);\n }\n return this;\n },\n // get/set the rendered (i.e. on screen) positon of the element\n renderedPosition: function renderedPosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var rpos = plainObject(dim) ? dim : undefined;\n var setting = rpos !== undefined || val !== undefined && string(dim);\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele = this[i];\n if (val !== undefined) {\n // set one dimension\n _ele.position(dim, (val - pan[dim]) / zoom);\n } else if (rpos !== undefined) {\n // set whole position\n _ele.position(renderedToModelPosition(rpos, zoom, pan));\n }\n }\n } else {\n // getting\n var pos = ele.position();\n rpos = modelToRenderedPosition$1(pos, zoom, pan);\n if (dim === undefined) {\n // then return the whole rendered position\n return rpos;\n } else {\n // then return the specified dimension\n return rpos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n return this; // chaining\n },\n // get/set the position relative to the parent\n relativePosition: function relativePosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var ppos = plainObject(dim) ? dim : undefined;\n var setting = ppos !== undefined || val !== undefined && string(dim);\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele2 = this[i];\n var parent = hasCompoundNodes ? _ele2.parent() : null;\n var hasParent = parent && parent.length > 0;\n var relativeToParent = hasParent;\n if (hasParent) {\n parent = parent[0];\n }\n var origin = relativeToParent ? parent.position() : {\n x: 0,\n y: 0\n };\n if (val !== undefined) {\n // set one dimension\n _ele2.position(dim, val + origin[dim]);\n } else if (ppos !== undefined) {\n // set whole position\n _ele2.position({\n x: ppos.x + origin.x,\n y: ppos.y + origin.y\n });\n }\n }\n } else {\n // getting\n var pos = ele.position();\n var _parent = hasCompoundNodes ? ele.parent() : null;\n var _hasParent = _parent && _parent.length > 0;\n var _relativeToParent = _hasParent;\n if (_hasParent) {\n _parent = _parent[0];\n }\n var _origin = _relativeToParent ? _parent.position() : {\n x: 0,\n y: 0\n };\n ppos = {\n x: pos.x - _origin.x,\n y: pos.y - _origin.y\n };\n if (dim === undefined) {\n // then return the whole rendered position\n return ppos;\n } else {\n // then return the specified dimension\n return ppos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n return this; // chaining\n }\n};\n\n// aliases\nfn$4.modelPosition = fn$4.point = fn$4.position;\nfn$4.modelPositions = fn$4.points = fn$4.positions;\nfn$4.renderedPoint = fn$4.renderedPosition;\nfn$4.relativePoint = fn$4.relativePosition;\nvar position = elesfn$c;\n\nvar fn$3, elesfn$b;\nfn$3 = elesfn$b = {};\nelesfn$b.renderedBoundingBox = function (options) {\n var bb = this.boundingBox(options);\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var x1 = bb.x1 * zoom + pan.x;\n var x2 = bb.x2 * zoom + pan.x;\n var y1 = bb.y1 * zoom + pan.y;\n var y2 = bb.y2 * zoom + pan.y;\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2,\n w: x2 - x1,\n h: y2 - y1\n };\n};\nelesfn$b.dirtyCompoundBoundsCache = function () {\n var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n this.forEachUp(function (ele) {\n if (ele.isParent()) {\n var _p = ele._private;\n _p.compoundBoundsClean = false;\n _p.bbCache = null;\n if (!silent) {\n ele.emitAndNotify('bounds');\n }\n }\n });\n return this;\n};\nelesfn$b.updateCompoundBounds = function () {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n\n // not possible to do on non-compound graphs or with the style disabled\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n\n // save cycles when batching -- but bounds will be stale (or not exist yet)\n if (!force && cy.batching()) {\n return this;\n }\n function update(parent) {\n if (!parent.isParent()) {\n return;\n }\n var _p = parent._private;\n var children = parent.children();\n var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include';\n var min = {\n width: {\n val: parent.pstyle('min-width').pfValue,\n left: parent.pstyle('min-width-bias-left'),\n right: parent.pstyle('min-width-bias-right')\n },\n height: {\n val: parent.pstyle('min-height').pfValue,\n top: parent.pstyle('min-height-bias-top'),\n bottom: parent.pstyle('min-height-bias-bottom')\n }\n };\n var bb = children.boundingBox({\n includeLabels: includeLabels,\n includeOverlays: false,\n // updating the compound bounds happens outside of the regular\n // cache cycle (i.e. before fired events)\n useCache: false\n });\n var pos = _p.position;\n\n // if children take up zero area then keep position and fall back on stylesheet w/h\n if (bb.w === 0 || bb.h === 0) {\n bb = {\n w: parent.pstyle('width').pfValue,\n h: parent.pstyle('height').pfValue\n };\n bb.x1 = pos.x - bb.w / 2;\n bb.x2 = pos.x + bb.w / 2;\n bb.y1 = pos.y - bb.h / 2;\n bb.y2 = pos.y + bb.h / 2;\n }\n function computeBiasValues(propDiff, propBias, propBiasComplement) {\n var biasDiff = 0;\n var biasComplementDiff = 0;\n var biasTotal = propBias + propBiasComplement;\n if (propDiff > 0 && biasTotal > 0) {\n biasDiff = propBias / biasTotal * propDiff;\n biasComplementDiff = propBiasComplement / biasTotal * propDiff;\n }\n return {\n biasDiff: biasDiff,\n biasComplementDiff: biasComplementDiff\n };\n }\n function computePaddingValues(width, height, paddingObject, relativeTo) {\n // Assuming percentage is number from 0 to 1\n if (paddingObject.units === '%') {\n switch (relativeTo) {\n case 'width':\n return width > 0 ? paddingObject.pfValue * width : 0;\n case 'height':\n return height > 0 ? paddingObject.pfValue * height : 0;\n case 'average':\n return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0;\n case 'min':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0;\n case 'max':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0;\n default:\n return 0;\n }\n } else if (paddingObject.units === 'px') {\n return paddingObject.pfValue;\n } else {\n return 0;\n }\n }\n var leftVal = min.width.left.value;\n if (min.width.left.units === 'px' && min.width.val > 0) {\n leftVal = leftVal * 100 / min.width.val;\n }\n var rightVal = min.width.right.value;\n if (min.width.right.units === 'px' && min.width.val > 0) {\n rightVal = rightVal * 100 / min.width.val;\n }\n var topVal = min.height.top.value;\n if (min.height.top.units === 'px' && min.height.val > 0) {\n topVal = topVal * 100 / min.height.val;\n }\n var bottomVal = min.height.bottom.value;\n if (min.height.bottom.units === 'px' && min.height.val > 0) {\n bottomVal = bottomVal * 100 / min.height.val;\n }\n var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal);\n var diffLeft = widthBiasDiffs.biasDiff;\n var diffRight = widthBiasDiffs.biasComplementDiff;\n var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal);\n var diffTop = heightBiasDiffs.biasDiff;\n var diffBottom = heightBiasDiffs.biasComplementDiff;\n _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value);\n _p.autoWidth = Math.max(bb.w, min.width.val);\n pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;\n _p.autoHeight = Math.max(bb.h, min.height.val);\n pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.compoundBoundsClean || force) {\n update(ele);\n if (!cy.batching()) {\n _p.compoundBoundsClean = true;\n }\n }\n }\n return this;\n};\nvar noninf = function noninf(x) {\n if (x === Infinity || x === -Infinity) {\n return 0;\n }\n return x;\n};\nvar updateBounds = function updateBounds(b, x1, y1, x2, y2) {\n // don't update with zero area boxes\n if (x2 - x1 === 0 || y2 - y1 === 0) {\n return;\n }\n\n // don't update with null dim\n if (x1 == null || y1 == null || x2 == null || y2 == null) {\n return;\n }\n b.x1 = x1 < b.x1 ? x1 : b.x1;\n b.x2 = x2 > b.x2 ? x2 : b.x2;\n b.y1 = y1 < b.y1 ? y1 : b.y1;\n b.y2 = y2 > b.y2 ? y2 : b.y2;\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n};\nvar updateBoundsFromBox = function updateBoundsFromBox(b, b2) {\n if (b2 == null) {\n return b;\n }\n return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);\n};\nvar prefixedProperty = function prefixedProperty(obj, field, prefix) {\n return getPrefixedProperty(obj, field, prefix);\n};\nvar updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var halfArW = rstyle.arrowWidth / 2;\n var arrowType = ele.pstyle(prefix + '-arrow-shape').value;\n var x;\n var y;\n if (arrowType !== 'none') {\n if (prefix === 'source') {\n x = rstyle.srcX;\n y = rstyle.srcY;\n } else if (prefix === 'target') {\n x = rstyle.tgtX;\n y = rstyle.tgtY;\n } else {\n x = rstyle.midX;\n y = rstyle.midY;\n }\n\n // always store the individual arrow bounds\n var bbs = _p.arrowBounds = _p.arrowBounds || {};\n var bb = bbs[prefix] = bbs[prefix] || {};\n bb.x1 = x - halfArW;\n bb.y1 = y - halfArW;\n bb.x2 = x + halfArW;\n bb.y2 = y + halfArW;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n expandBoundingBox(bb, 1);\n updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2);\n }\n};\nvar updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var label = ele.pstyle(prefixDash + 'label').strValue;\n if (label) {\n var halign = ele.pstyle('text-halign');\n var valign = ele.pstyle('text-valign');\n var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix);\n var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix);\n var labelX = prefixedProperty(rstyle, 'labelX', prefix);\n var labelY = prefixedProperty(rstyle, 'labelY', prefix);\n var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var rotation = ele.pstyle(prefixDash + 'text-rotation');\n var outlineWidth = ele.pstyle('text-outline-width').pfValue;\n var borderWidth = ele.pstyle('text-border-width').pfValue;\n var halfBorderWidth = borderWidth / 2;\n var padding = ele.pstyle('text-background-padding').pfValue;\n var marginOfError = 2; // expand to work around browser dimension inaccuracies\n\n var lh = labelHeight;\n var lw = labelWidth;\n var lw_2 = lw / 2;\n var lh_2 = lh / 2;\n var lx1, lx2, ly1, ly2;\n if (isEdge) {\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n } else {\n switch (halign.value) {\n case 'left':\n lx1 = labelX - lw;\n lx2 = labelX;\n break;\n case 'center':\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n break;\n case 'right':\n lx1 = labelX;\n lx2 = labelX + lw;\n break;\n }\n switch (valign.value) {\n case 'top':\n ly1 = labelY - lh;\n ly2 = labelY;\n break;\n case 'center':\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n break;\n case 'bottom':\n ly1 = labelY;\n ly2 = labelY + lh;\n break;\n }\n }\n\n // shift by margin and expand by outline and border\n var leftPad = marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n var rightPad = marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n var topPad = marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n var botPad = marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n lx1 += leftPad;\n lx2 += rightPad;\n ly1 += topPad;\n ly2 += botPad;\n\n // always store the unrotated label bounds separately\n var bbPrefix = prefix || 'main';\n var bbs = _p.labelBounds;\n var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};\n bb.x1 = lx1;\n bb.y1 = ly1;\n bb.x2 = lx2;\n bb.y2 = ly2;\n bb.w = lx2 - lx1;\n bb.h = ly2 - ly1;\n bb.leftPad = leftPad;\n bb.rightPad = rightPad;\n bb.topPad = topPad;\n bb.botPad = botPad;\n var isAutorotate = isEdge && rotation.strValue === 'autorotate';\n var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;\n if (isAutorotate || isPfValue) {\n var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue;\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n\n // rotation point (default value for center-center)\n var xo = (lx1 + lx2) / 2;\n var yo = (ly1 + ly2) / 2;\n if (!isEdge) {\n switch (halign.value) {\n case 'left':\n xo = lx2;\n break;\n case 'right':\n xo = lx1;\n break;\n }\n switch (valign.value) {\n case 'top':\n yo = ly2;\n break;\n case 'bottom':\n yo = ly1;\n break;\n }\n }\n var rotate = function rotate(x, y) {\n x = x - xo;\n y = y - yo;\n return {\n x: x * cos - y * sin + xo,\n y: x * sin + y * cos + yo\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n }\n var bbPrefixRot = bbPrefix + 'Rot';\n var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};\n bbRot.x1 = lx1;\n bbRot.y1 = ly1;\n bbRot.x2 = lx2;\n bbRot.y2 = ly2;\n bbRot.w = lx2 - lx1;\n bbRot.h = ly2 - ly1;\n updateBounds(bounds, lx1, ly1, lx2, ly2);\n updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);\n }\n return bounds;\n};\nvar updateBoundsFromOutline = function updateBoundsFromOutline(bounds, ele) {\n if (ele.cy().headless()) {\n return;\n }\n var outlineOpacity = ele.pstyle('outline-opacity').value;\n var outlineWidth = ele.pstyle('outline-width').value;\n var outlineOffset = ele.pstyle('outline-offset').value;\n var expansion = outlineWidth + outlineOffset;\n updateBoundsFromMiter(bounds, ele, outlineOpacity, expansion, 'outside', expansion / 2);\n};\nvar updateBoundsFromMiter = function updateBoundsFromMiter(bounds, ele, opacity, expansionSize, expansionPosition, useFallbackValue) {\n if (opacity === 0 || expansionSize <= 0 || expansionPosition === 'inside') {\n return;\n }\n var cy = ele.cy();\n var shape = ele.pstyle('shape').value;\n var rshape = cy.renderer().nodeShapes[shape];\n var _ele$position = ele.position(),\n x = _ele$position.x,\n y = _ele$position.y;\n var w = ele.width();\n var h = ele.height();\n if (rshape.hasMiterBounds) {\n if (expansionPosition === 'center') {\n expansionSize /= 2;\n }\n var mbb = rshape.miterBounds(x, y, w, h, expansionSize);\n updateBoundsFromBox(bounds, mbb);\n } else if (useFallbackValue != null && useFallbackValue > 0) {\n expandBoundingBoxSides(bounds, [useFallbackValue, useFallbackValue, useFallbackValue, useFallbackValue]);\n }\n};\nvar updateBoundsFromMiterBorder = function updateBoundsFromMiterBorder(bounds, ele) {\n if (ele.cy().headless()) {\n return;\n }\n var borderOpacity = ele.pstyle('border-opacity').value;\n var borderWidth = ele.pstyle('border-width').pfValue;\n var borderPosition = ele.pstyle('border-position').value;\n updateBoundsFromMiter(bounds, ele, borderOpacity, borderWidth, borderPosition);\n};\n\n// get the bounding box of the elements (in raw model position)\nvar boundingBoxImpl = function boundingBoxImpl(ele, options) {\n var cy = ele._private.cy;\n var styleEnabled = cy.styleEnabled();\n var headless = cy.headless();\n var bounds = makeBoundingBox();\n var _p = ele._private;\n var isNode = ele.isNode();\n var isEdge = ele.isEdge();\n var ex1, ex2, ey1, ey2; // extrema of body / lines\n var x, y; // node pos\n var rstyle = _p.rstyle;\n var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0];\n\n // must use `display` prop only, as reading `compound.width()` causes recursion\n // (other factors like width values will be considered later in this function anyway)\n var isDisplayed = function isDisplayed(ele) {\n return ele.pstyle('display').value !== 'none';\n };\n var displayed = !styleEnabled || isDisplayed(ele)\n\n // must take into account connected nodes b/c of implicit edge hiding on display:none node\n && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));\n if (displayed) {\n // displayed suffices, since we will find zero area eles anyway\n var overlayOpacity = 0;\n var overlayPadding = 0;\n if (styleEnabled && options.includeOverlays) {\n overlayOpacity = ele.pstyle('overlay-opacity').value;\n if (overlayOpacity !== 0) {\n overlayPadding = ele.pstyle('overlay-padding').value;\n }\n }\n var underlayOpacity = 0;\n var underlayPadding = 0;\n if (styleEnabled && options.includeUnderlays) {\n underlayOpacity = ele.pstyle('underlay-opacity').value;\n if (underlayOpacity !== 0) {\n underlayPadding = ele.pstyle('underlay-padding').value;\n }\n }\n var padding = Math.max(overlayPadding, underlayPadding);\n var w = 0;\n var wHalf = 0;\n if (styleEnabled) {\n w = ele.pstyle('width').pfValue;\n wHalf = w / 2;\n }\n if (isNode && options.includeNodes) {\n var pos = ele.position();\n x = pos.x;\n y = pos.y;\n var _w = ele.outerWidth();\n var halfW = _w / 2;\n var h = ele.outerHeight();\n var halfH = h / 2;\n\n // handle node dimensions\n /////////////////////////\n\n ex1 = x - halfW;\n ex2 = x + halfW;\n ey1 = y - halfH;\n ey2 = y + halfH;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n if (styleEnabled) {\n updateBoundsFromOutline(bounds, ele);\n }\n if (styleEnabled && options.includeOutlines && !headless) {\n updateBoundsFromOutline(bounds, ele);\n }\n if (styleEnabled) {\n updateBoundsFromMiterBorder(bounds, ele);\n }\n } else if (isEdge && options.includeEdges) {\n if (styleEnabled && !headless) {\n var curveStyle = ele.pstyle('curve-style').strValue;\n\n // handle edge dimensions (rough box estimate)\n //////////////////////////////////////////////\n\n ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n\n // precise edges\n ////////////////\n\n if (curveStyle === 'haystack') {\n var hpts = rstyle.haystackPts;\n if (hpts && hpts.length === 2) {\n ex1 = hpts[0].x;\n ey1 = hpts[0].y;\n ex2 = hpts[1].x;\n ey2 = hpts[1].y;\n if (ex1 > ex2) {\n var temp = ex1;\n ex1 = ex2;\n ex2 = temp;\n }\n if (ey1 > ey2) {\n var _temp = ey1;\n ey1 = ey2;\n ey2 = _temp;\n }\n updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);\n }\n } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || endsWith(curveStyle, 'segments') || endsWith(curveStyle, 'taxi')) {\n var pts;\n switch (curveStyle) {\n case 'bezier':\n case 'unbundled-bezier':\n pts = rstyle.bezierPts;\n break;\n case 'segments':\n case 'taxi':\n case 'round-segments':\n case 'round-taxi':\n pts = rstyle.linePts;\n break;\n }\n if (pts != null) {\n for (var j = 0; j < pts.length; j++) {\n var pt = pts[j];\n ex1 = pt.x - wHalf;\n ex2 = pt.x + wHalf;\n ey1 = pt.y - wHalf;\n ey2 = pt.y + wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n }\n }\n } // bezier-like or segment-like edge\n } else {\n // headless or style disabled\n\n // fallback on source and target positions\n //////////////////////////////////////////\n\n var n1 = ele.source();\n var n1pos = n1.position();\n var n2 = ele.target();\n var n2pos = n2.position();\n ex1 = n1pos.x;\n ex2 = n2pos.x;\n ey1 = n1pos.y;\n ey2 = n2pos.y;\n if (ex1 > ex2) {\n var _temp2 = ex1;\n ex1 = ex2;\n ex2 = _temp2;\n }\n if (ey1 > ey2) {\n var _temp3 = ey1;\n ey1 = ey2;\n ey2 = _temp3;\n }\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n } // headless or style disabled\n } // edges\n\n // handle edge arrow size\n /////////////////////////\n\n if (styleEnabled && options.includeEdges && isEdge) {\n updateBoundsFromArrow(bounds, ele, 'mid-source');\n updateBoundsFromArrow(bounds, ele, 'mid-target');\n updateBoundsFromArrow(bounds, ele, 'source');\n updateBoundsFromArrow(bounds, ele, 'target');\n }\n\n // ghost\n ////////\n\n if (styleEnabled) {\n var ghost = ele.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = ele.pstyle('ghost-offset-x').pfValue;\n var gy = ele.pstyle('ghost-offset-y').pfValue;\n updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy);\n }\n }\n\n // always store the body bounds separately from the labels\n var bbBody = _p.bodyBounds = _p.bodyBounds || {};\n assignBoundingBox(bbBody, bounds);\n expandBoundingBoxSides(bbBody, manualExpansion);\n expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies\n\n // overlay\n //////////\n\n if (styleEnabled) {\n ex1 = bounds.x1;\n ex2 = bounds.x2;\n ey1 = bounds.y1;\n ey2 = bounds.y2;\n updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding);\n }\n\n // always store the body bounds separately from the labels\n var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};\n assignBoundingBox(bbOverlay, bounds);\n expandBoundingBoxSides(bbOverlay, manualExpansion);\n expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies\n\n // handle label dimensions\n //////////////////////////\n\n var bbLabels = _p.labelBounds = _p.labelBounds || {};\n if (bbLabels.all != null) {\n clearBoundingBox(bbLabels.all);\n } else {\n bbLabels.all = makeBoundingBox();\n }\n if (styleEnabled && options.includeLabels) {\n if (options.includeMainLabels) {\n updateBoundsFromLabel(bounds, ele, null);\n }\n if (isEdge) {\n if (options.includeSourceLabels) {\n updateBoundsFromLabel(bounds, ele, 'source');\n }\n if (options.includeTargetLabels) {\n updateBoundsFromLabel(bounds, ele, 'target');\n }\n }\n } // style enabled for labels\n } // if displayed\n\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n if (bounds.w > 0 && bounds.h > 0 && displayed) {\n expandBoundingBoxSides(bounds, manualExpansion);\n\n // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides\n expandBoundingBox(bounds, 1);\n }\n return bounds;\n};\nvar getKey = function getKey(opts) {\n var i = 0;\n var tf = function tf(val) {\n return (val ? 1 : 0) << i++;\n };\n var key = 0;\n key += tf(opts.incudeNodes);\n key += tf(opts.includeEdges);\n key += tf(opts.includeLabels);\n key += tf(opts.includeMainLabels);\n key += tf(opts.includeSourceLabels);\n key += tf(opts.includeTargetLabels);\n key += tf(opts.includeOverlays);\n key += tf(opts.includeOutlines);\n return key;\n};\nvar getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) {\n var r = function r(x) {\n return Math.round(x);\n };\n if (ele.isEdge()) {\n var p1 = ele.source().position();\n var p2 = ele.target().position();\n return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);\n } else {\n var p = ele.position();\n return hashIntsArray([r(p.x), r(p.y)]);\n }\n};\nvar cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) {\n var _p = ele._private;\n var bb;\n var isEdge = ele.isEdge();\n var key = opts == null ? defBbOptsKey : getKey(opts);\n var usingDefOpts = key === defBbOptsKey;\n if (_p.bbCache == null) {\n bb = boundingBoxImpl(ele, defBbOpts);\n _p.bbCache = bb;\n _p.bbCachePosKey = getBoundingBoxPosKey(ele);\n } else {\n bb = _p.bbCache;\n }\n\n // not using def opts => need to build up bb from combination of sub bbs\n if (!usingDefOpts) {\n var isNode = ele.isNode();\n bb = makeBoundingBox();\n if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {\n if (opts.includeOverlays) {\n updateBoundsFromBox(bb, _p.overlayBounds);\n } else {\n updateBoundsFromBox(bb, _p.bodyBounds);\n }\n }\n if (opts.includeLabels) {\n if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {\n updateBoundsFromBox(bb, _p.labelBounds.all);\n } else {\n if (opts.includeMainLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.mainRot);\n }\n if (opts.includeSourceLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.sourceRot);\n }\n if (opts.includeTargetLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.targetRot);\n }\n }\n }\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n }\n return bb;\n};\nvar defBbOpts = {\n includeNodes: true,\n includeEdges: true,\n includeLabels: true,\n includeMainLabels: true,\n includeSourceLabels: true,\n includeTargetLabels: true,\n includeOverlays: true,\n includeUnderlays: true,\n includeOutlines: true,\n useCache: true\n};\nvar defBbOptsKey = getKey(defBbOpts);\nvar filledBbOpts = defaults$g(defBbOpts);\nelesfn$b.boundingBox = function (options) {\n var bounds;\n var useCache = options === undefined || options.useCache === undefined || options.useCache === true;\n var isDirty = memoize(function (ele) {\n var _p = ele._private;\n return _p.bbCache == null || _p.styleDirty || _p.bbCachePosKey !== getBoundingBoxPosKey(ele);\n }, function (ele) {\n return ele.id();\n });\n\n // the main usecase is ele.boundingBox() for a single element with no/def options\n // specified s.t. the cache is used, so check for this case to make it faster by\n // avoiding the overhead of the rest of the function\n if (useCache && this.length === 1 && !isDirty(this[0])) {\n if (options === undefined) {\n options = defBbOpts;\n } else {\n options = filledBbOpts(options);\n }\n bounds = cachedBoundingBoxImpl(this[0], options);\n } else {\n bounds = makeBoundingBox();\n options = options || defBbOpts;\n var opts = filledBbOpts(options);\n var eles = this;\n var cy = eles.cy();\n var styleEnabled = cy.styleEnabled();\n\n // cache the isDirty state for all eles, edges first since they depend on node state\n this.edges().forEach(isDirty);\n this.nodes().forEach(isDirty);\n if (styleEnabled) {\n this.recalculateRenderedStyle(useCache);\n }\n this.updateCompoundBounds(!useCache);\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (isDirty(ele)) {\n ele.dirtyBoundingBoxCache();\n }\n updateBoundsFromBox(bounds, cachedBoundingBoxImpl(ele, opts));\n }\n }\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n return bounds;\n};\nelesfn$b.dirtyBoundingBoxCache = function () {\n for (var i = 0; i < this.length; i++) {\n var _p = this[i]._private;\n _p.bbCache = null;\n _p.bbCachePosKey = null;\n _p.bodyBounds = null;\n _p.overlayBounds = null;\n _p.labelBounds.all = null;\n _p.labelBounds.source = null;\n _p.labelBounds.target = null;\n _p.labelBounds.main = null;\n _p.labelBounds.sourceRot = null;\n _p.labelBounds.targetRot = null;\n _p.labelBounds.mainRot = null;\n _p.arrowBounds.source = null;\n _p.arrowBounds.target = null;\n _p.arrowBounds['mid-source'] = null;\n _p.arrowBounds['mid-target'] = null;\n }\n this.emitAndNotify('bounds');\n return this;\n};\n\n// private helper to get bounding box for custom node positions\n// - good for perf in certain cases but currently requires dirtying the rendered style\n// - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer...\n// - try to use for only things like discrete layouts where the node position would change anyway\nelesfn$b.boundingBoxAt = function (fn) {\n var nodes = this.nodes();\n var cy = this.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n var parents = cy.collection();\n if (hasCompoundNodes) {\n parents = nodes.filter(function (node) {\n return node.isParent();\n });\n nodes = nodes.not(parents);\n }\n if (plainObject(fn)) {\n var obj = fn;\n fn = function fn() {\n return obj;\n };\n }\n var storeOldPos = function storeOldPos(node, i) {\n return node._private.bbAtOldPos = fn(node, i);\n };\n var getOldPos = function getOldPos(node) {\n return node._private.bbAtOldPos;\n };\n cy.startBatch();\n nodes.forEach(storeOldPos).silentPositions(fn);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n var bb = copyBoundingBox(this.boundingBox({\n useCache: false\n }));\n nodes.silentPositions(getOldPos);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n cy.endBatch();\n return bb;\n};\nfn$3.boundingbox = fn$3.bb = fn$3.boundingBox;\nfn$3.renderedBoundingbox = fn$3.renderedBoundingBox;\nvar bounds = elesfn$b;\n\nvar fn$2, elesfn$a;\nfn$2 = elesfn$a = {};\nvar defineDimFns = function defineDimFns(opts) {\n opts.uppercaseName = capitalize(opts.name);\n opts.autoName = 'auto' + opts.uppercaseName;\n opts.labelName = 'label' + opts.uppercaseName;\n opts.outerName = 'outer' + opts.uppercaseName;\n opts.uppercaseOuterName = capitalize(opts.outerName);\n fn$2[opts.name] = function dimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n return _p[opts.autoName] || 0;\n }\n var d = ele.pstyle(opts.name);\n switch (d.strValue) {\n case 'label':\n ele.recalculateRenderedStyle();\n return _p.rstyle[opts.labelName] || 0;\n default:\n return d.pfValue;\n }\n } else {\n return 1;\n }\n }\n };\n fn$2['outer' + opts.uppercaseName] = function outerDimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n var dim = ele[opts.name]();\n var borderPos = ele.pstyle('border-position').value;\n var border;\n if (borderPos === 'center') {\n border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side\n } else if (borderPos === 'outside') {\n border = 2 * ele.pstyle('border-width').pfValue;\n } else {\n // 'inside'\n border = 0;\n }\n var padding = 2 * ele.padding();\n return dim + border + padding;\n } else {\n return 1;\n }\n }\n };\n fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() {\n var ele = this[0];\n if (ele) {\n var d = ele[opts.name]();\n return d * this.cy().zoom();\n }\n };\n fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() {\n var ele = this[0];\n if (ele) {\n var od = ele[opts.outerName]();\n return od * this.cy().zoom();\n }\n };\n};\ndefineDimFns({\n name: 'width'\n});\ndefineDimFns({\n name: 'height'\n});\nelesfn$a.padding = function () {\n var ele = this[0];\n var _p = ele._private;\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n if (_p.autoPadding !== undefined) {\n return _p.autoPadding;\n } else {\n return ele.pstyle('padding').pfValue;\n }\n } else {\n return ele.pstyle('padding').pfValue;\n }\n};\nelesfn$a.paddedHeight = function () {\n var ele = this[0];\n return ele.height() + 2 * ele.padding();\n};\nelesfn$a.paddedWidth = function () {\n var ele = this[0];\n return ele.width() + 2 * ele.padding();\n};\nvar widthHeight = elesfn$a;\n\nvar ifEdge = function ifEdge(ele, getValue) {\n if (ele.isEdge() && ele.takesUpSpace()) {\n return getValue(ele);\n }\n};\nvar ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) {\n if (ele.isEdge() && ele.takesUpSpace()) {\n var cy = ele.cy();\n return modelToRenderedPosition$1(getPoint(ele), cy.zoom(), cy.pan());\n }\n};\nvar ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) {\n if (ele.isEdge() && ele.takesUpSpace()) {\n var cy = ele.cy();\n var pan = cy.pan();\n var zoom = cy.zoom();\n return getPoints(ele).map(function (p) {\n return modelToRenderedPosition$1(p, zoom, pan);\n });\n }\n};\nvar controlPoints = function controlPoints(ele) {\n return ele.renderer().getControlPoints(ele);\n};\nvar segmentPoints = function segmentPoints(ele) {\n return ele.renderer().getSegmentPoints(ele);\n};\nvar sourceEndpoint = function sourceEndpoint(ele) {\n return ele.renderer().getSourceEndpoint(ele);\n};\nvar targetEndpoint = function targetEndpoint(ele) {\n return ele.renderer().getTargetEndpoint(ele);\n};\nvar midpoint = function midpoint(ele) {\n return ele.renderer().getEdgeMidpoint(ele);\n};\nvar pts = {\n controlPoints: {\n get: controlPoints,\n mult: true\n },\n segmentPoints: {\n get: segmentPoints,\n mult: true\n },\n sourceEndpoint: {\n get: sourceEndpoint\n },\n targetEndpoint: {\n get: targetEndpoint\n },\n midpoint: {\n get: midpoint\n }\n};\nvar renderedName = function renderedName(name) {\n return 'rendered' + name[0].toUpperCase() + name.substr(1);\n};\nvar edgePoints = Object.keys(pts).reduce(function (obj, name) {\n var spec = pts[name];\n var rName = renderedName(name);\n obj[name] = function () {\n return ifEdge(this, spec.get);\n };\n if (spec.mult) {\n obj[rName] = function () {\n return ifEdgeRenderedPositions(this, spec.get);\n };\n } else {\n obj[rName] = function () {\n return ifEdgeRenderedPosition(this, spec.get);\n };\n }\n return obj;\n}, {});\n\nvar dimensions = extend({}, position, bounds, widthHeight, edgePoints);\n\n/*!\nEvent object based on jQuery events, MIT license\n\nhttps://jquery.org/license/\nhttps://tldrlegal.com/license/mit-license\nhttps://github.com/jquery/jquery/blob/master/src/event.js\n*/\n\nvar Event = function Event(src, props) {\n this.recycle(src, props);\n};\nfunction returnFalse() {\n return false;\n}\nfunction returnTrue() {\n return true;\n}\n\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\nEvent.prototype = {\n instanceString: function instanceString() {\n return 'event';\n },\n recycle: function recycle(src, props) {\n this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;\n if (src != null && src.preventDefault) {\n // Browser Event object\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;\n } else if (src != null && src.type) {\n // Plain object containing all event details\n props = src;\n } else {\n // Event string\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props != null) {\n // more efficient to manually copy fields we use\n this.originalEvent = props.originalEvent;\n this.type = props.type != null ? props.type : this.type;\n this.cy = props.cy;\n this.target = props.target;\n this.position = props.position;\n this.renderedPosition = props.renderedPosition;\n this.namespace = props.namespace;\n this.layout = props.layout;\n }\n if (this.cy != null && this.position != null && this.renderedPosition == null) {\n // create a rendered position based on the passed position\n var pos = this.position;\n var zoom = this.cy.zoom();\n var pan = this.cy.pan();\n this.renderedPosition = {\n x: pos.x * zoom + pan.x,\n y: pos.y * zoom + pan.y\n };\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n },\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n this.stopPropagation();\n },\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse\n};\n\nvar eventRegex = /^([^.]+)(\\.(?:[^.]+))?$/; // regex for matching event strings (e.g. \"click.namespace\")\nvar universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally\n\nvar defaults$8 = {\n qualifierCompare: function qualifierCompare(q1, q2) {\n return q1 === q2;\n },\n eventMatches: function eventMatches(/*context, listener, eventObj*/\n ) {\n return true;\n },\n addEventFields: function addEventFields(/*context, evt*/\n ) {},\n callbackContext: function callbackContext(context /*, listener, eventObj*/) {\n return context;\n },\n beforeEmit: function beforeEmit(/* context, listener, eventObj */\n ) {},\n afterEmit: function afterEmit(/* context, listener, eventObj */\n ) {},\n bubble: function bubble(/*context*/\n ) {\n return false;\n },\n parent: function parent(/*context*/\n ) {\n return null;\n },\n context: null\n};\nvar defaultsKeys = Object.keys(defaults$8);\nvar emptyOpts = {};\nfunction Emitter() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts;\n var context = arguments.length > 1 ? arguments[1] : undefined;\n // micro-optimisation vs Object.assign() -- reduces Element instantiation time\n for (var i = 0; i < defaultsKeys.length; i++) {\n var key = defaultsKeys[i];\n this[key] = opts[key] || defaults$8[key];\n }\n this.context = context || this.context;\n this.listeners = [];\n this.emitting = 0;\n}\nvar p = Emitter.prototype;\nvar forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) {\n if (fn$6(qualifier)) {\n callback = qualifier;\n qualifier = null;\n }\n if (confOverrides) {\n if (conf == null) {\n conf = confOverrides;\n } else {\n conf = extend({}, conf, confOverrides);\n }\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var ret = handler(self, evt, type, namespace, qualifier, callback, conf);\n if (ret === false) {\n break;\n } // allow exiting early\n }\n }\n};\nvar makeEventObj = function makeEventObj(self, obj) {\n self.addEventFields(self.context, obj);\n return new Event(obj.type, obj);\n};\nvar forEachEventObj = function forEachEventObj(self, handler, events) {\n if (event(events)) {\n handler(self, events);\n return;\n } else if (plainObject(events)) {\n handler(self, makeEventObj(self, events));\n return;\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var eventObj = makeEventObj(self, {\n type: type,\n namespace: namespace,\n target: self.context\n });\n handler(self, eventObj);\n }\n }\n};\np.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) {\n forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) {\n if (fn$6(callback)) {\n self.listeners.push({\n event: event,\n // full event string\n callback: callback,\n // callback to run\n type: type,\n // the event type (e.g. 'click')\n namespace: namespace,\n // the event namespace (e.g. \".foo\")\n qualifier: qualifier,\n // a restriction on whether to match this emitter\n conf: conf // additional configuration\n });\n }\n }, events, qualifier, callback, conf, confOverrides);\n return this;\n};\np.one = function (events, qualifier, callback, conf) {\n return this.on(events, qualifier, callback, conf, {\n one: true\n });\n};\np.removeListener = p.off = function (events, qualifier, callback, conf) {\n var _this = this;\n if (this.emitting !== 0) {\n this.listeners = copyArray(this.listeners);\n }\n var listeners = this.listeners;\n var _loop = function _loop(i) {\n var listener = listeners[i];\n forEachEvent(_this, function (self, event, type, namespace, qualifier, callback /*, conf*/) {\n if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) {\n listeners.splice(i, 1);\n return false;\n }\n }, events, qualifier, callback, conf);\n };\n for (var i = listeners.length - 1; i >= 0; i--) {\n _loop(i);\n }\n return this;\n};\np.removeAllListeners = function () {\n return this.removeListener('*');\n};\np.emit = p.trigger = function (events, extraParams, manualCallback) {\n var listeners = this.listeners;\n var numListenersBeforeEmit = listeners.length;\n this.emitting++;\n if (!array(extraParams)) {\n extraParams = [extraParams];\n }\n forEachEventObj(this, function (self, eventObj) {\n if (manualCallback != null) {\n listeners = [{\n event: eventObj.event,\n type: eventObj.type,\n namespace: eventObj.namespace,\n callback: manualCallback\n }];\n numListenersBeforeEmit = listeners.length;\n }\n var _loop2 = function _loop2() {\n var listener = listeners[i];\n if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) {\n var args = [eventObj];\n if (extraParams != null) {\n push(args, extraParams);\n }\n self.beforeEmit(self.context, listener, eventObj);\n if (listener.conf && listener.conf.one) {\n self.listeners = self.listeners.filter(function (l) {\n return l !== listener;\n });\n }\n var context = self.callbackContext(self.context, listener, eventObj);\n var ret = listener.callback.apply(context, args);\n self.afterEmit(self.context, listener, eventObj);\n if (ret === false) {\n eventObj.stopPropagation();\n eventObj.preventDefault();\n }\n } // if listener matches\n };\n for (var i = 0; i < numListenersBeforeEmit; i++) {\n _loop2();\n } // for listener\n\n if (self.bubble(self.context) && !eventObj.isPropagationStopped()) {\n self.parent(self.context).emit(eventObj, extraParams);\n }\n }, events);\n this.emitting--;\n return this;\n};\n\nvar emitterOptions$1 = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(ele, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(ele, evt) {\n evt.cy = ele.cy();\n evt.target = ele;\n },\n callbackContext: function callbackContext(ele, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : ele;\n },\n beforeEmit: function beforeEmit(context, listener /*, eventObj*/) {\n if (listener.conf && listener.conf.once) {\n listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);\n }\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(ele) {\n return ele.isChild() ? ele.parent() : ele.cy();\n }\n};\nvar argSelector$1 = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n};\nvar elesfn$9 = {\n createEmitter: function createEmitter() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions$1, ele);\n }\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback);\n }\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeListener(events, argSel, callback);\n }\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeAllListeners();\n }\n return this;\n },\n one: function one(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().one(events, argSel, callback);\n }\n return this;\n },\n once: function once(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback, {\n once: true,\n onceCollection: this\n });\n }\n },\n emit: function emit(events, extraParams) {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().emit(events, extraParams);\n }\n return this;\n },\n emitAndNotify: function emitAndNotify(event, extraParams) {\n // for internal use only\n if (this.length === 0) {\n return;\n } // empty collections don't need to notify anything\n\n // notify renderer\n this.cy().notify(event, this);\n this.emit(event, extraParams);\n return this;\n }\n};\ndefine.eventAliasesOn(elesfn$9);\n\nvar elesfn$8 = {\n nodes: function nodes(selector) {\n return this.filter(function (ele) {\n return ele.isNode();\n }).filter(selector);\n },\n edges: function edges(selector) {\n return this.filter(function (ele) {\n return ele.isEdge();\n }).filter(selector);\n },\n // internal helper to get nodes and edges as separate collections with single iteration over elements\n byGroup: function byGroup() {\n var nodes = this.spawn();\n var edges = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele.isNode()) {\n nodes.push(ele);\n } else {\n edges.push(ele);\n }\n }\n return {\n nodes: nodes,\n edges: edges\n };\n },\n filter: function filter(_filter, thisArg) {\n if (_filter === undefined) {\n // check this first b/c it's the most common/performant case\n return this;\n } else if (string(_filter) || elementOrCollection(_filter)) {\n return new Selector(_filter).filter(this);\n } else if (fn$6(_filter)) {\n var filterEles = this.spawn();\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles);\n if (include) {\n filterEles.push(ele);\n }\n }\n return filterEles;\n }\n return this.spawn(); // if not handled by above, give 'em an empty collection\n },\n not: function not(toRemove) {\n if (!toRemove) {\n return this;\n } else {\n if (string(toRemove)) {\n toRemove = this.filter(toRemove);\n }\n var elements = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var element = this[i];\n var remove = toRemove.has(element);\n if (!remove) {\n elements.push(element);\n }\n }\n return elements;\n }\n },\n absoluteComplement: function absoluteComplement() {\n var cy = this.cy();\n return cy.mutableElements().not(this);\n },\n intersect: function intersect(other) {\n // if a selector is specified, then filter by it instead\n if (string(other)) {\n var selector = other;\n return this.filter(selector);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var col1Smaller = this.length < other.length;\n var colS = col1Smaller ? col1 : col2;\n var colL = col1Smaller ? col2 : col1;\n for (var i = 0; i < colS.length; i++) {\n var ele = colS[i];\n if (colL.has(ele)) {\n elements.push(ele);\n }\n }\n return elements;\n },\n xor: function xor(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (!inOther) {\n elements.push(ele);\n }\n }\n };\n add(col1, col2);\n add(col2, col1);\n return elements;\n },\n diff: function diff(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var left = this.spawn();\n var right = this.spawn();\n var both = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other, retEles) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (inOther) {\n both.merge(ele);\n } else {\n retEles.push(ele);\n }\n }\n };\n add(col1, col2, left);\n add(col2, col1, right);\n return {\n left: left,\n right: right,\n both: both\n };\n },\n add: function add(toAdd) {\n var cy = this._private.cy;\n if (!toAdd) {\n return this;\n }\n if (string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var elements = this.spawnSelf();\n for (var i = 0; i < toAdd.length; i++) {\n var ele = toAdd[i];\n var add = !this.has(ele);\n if (add) {\n elements.push(ele);\n }\n }\n return elements;\n },\n // in place merge on calling collection\n merge: function merge(toAdd) {\n var _p = this._private;\n var cy = _p.cy;\n if (!toAdd) {\n return this;\n }\n if (toAdd && string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var map = _p.map;\n for (var i = 0; i < toAdd.length; i++) {\n var toAddEle = toAdd[i];\n var id = toAddEle._private.data.id;\n var add = !map.has(id);\n if (add) {\n var index = this.length++;\n this[index] = toAddEle;\n map.set(id, {\n ele: toAddEle,\n index: index\n });\n }\n }\n return this; // chaining\n },\n unmergeAt: function unmergeAt(i) {\n var ele = this[i];\n var id = ele.id();\n var _p = this._private;\n var map = _p.map;\n\n // remove ele\n this[i] = undefined;\n map[\"delete\"](id);\n var unmergedLastEle = i === this.length - 1;\n\n // replace empty spot with last ele in collection\n if (this.length > 1 && !unmergedLastEle) {\n var lastEleI = this.length - 1;\n var lastEle = this[lastEleI];\n var lastEleId = lastEle._private.data.id;\n this[lastEleI] = undefined;\n this[i] = lastEle;\n map.set(lastEleId, {\n ele: lastEle,\n index: i\n });\n }\n\n // the collection is now 1 ele smaller\n this.length--;\n return this;\n },\n // remove single ele in place in calling collection\n unmergeOne: function unmergeOne(ele) {\n ele = ele[0];\n var _p = this._private;\n var id = ele._private.data.id;\n var map = _p.map;\n var entry = map.get(id);\n if (!entry) {\n return this; // no need to remove\n }\n var i = entry.index;\n this.unmergeAt(i);\n return this;\n },\n // remove eles in place on calling collection\n unmerge: function unmerge(toRemove) {\n var cy = this._private.cy;\n if (!toRemove) {\n return this;\n }\n if (toRemove && string(toRemove)) {\n var selector = toRemove;\n toRemove = cy.mutableElements().filter(selector);\n }\n for (var i = 0; i < toRemove.length; i++) {\n this.unmergeOne(toRemove[i]);\n }\n return this; // chaining\n },\n unmergeBy: function unmergeBy(toRmFn) {\n for (var i = this.length - 1; i >= 0; i--) {\n var ele = this[i];\n if (toRmFn(ele)) {\n this.unmergeAt(i);\n }\n }\n return this;\n },\n map: function map(mapFn, thisArg) {\n var arr = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles);\n arr.push(ret);\n }\n return arr;\n },\n reduce: function reduce(fn, initialValue) {\n var val = initialValue;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n val = fn(val, eles[i], i, eles);\n }\n return val;\n },\n max: function max(valFn, thisArg) {\n var max = -Infinity;\n var maxEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val > max) {\n max = val;\n maxEle = ele;\n }\n }\n return {\n value: max,\n ele: maxEle\n };\n },\n min: function min(valFn, thisArg) {\n var min = Infinity;\n var minEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val < min) {\n min = val;\n minEle = ele;\n }\n }\n return {\n value: min,\n ele: minEle\n };\n }\n};\n\n// aliases\nvar fn$1 = elesfn$8;\nfn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add;\nfn$1['\\\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;\nfn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect;\nfn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;\nfn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;\nfn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;\n\nvar elesfn$7 = {\n isNode: function isNode() {\n return this.group() === 'nodes';\n },\n isEdge: function isEdge() {\n return this.group() === 'edges';\n },\n isLoop: function isLoop() {\n return this.isEdge() && this.source()[0] === this.target()[0];\n },\n isSimple: function isSimple() {\n return this.isEdge() && this.source()[0] !== this.target()[0];\n },\n group: function group() {\n var ele = this[0];\n if (ele) {\n return ele._private.group;\n }\n }\n};\n\n/**\n * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges),\n * and z-index (low to high). These styles affect how this applies:\n *\n * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the\n * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from\n * root to leaves of the compound graph. The last drawn is `top`.\n * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes.\n * `manual` ignores this convention and draws based on the `z-index` value setting.\n * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher\n * `z-index` will be drawn on top of an element with a lower `z-index`.\n */\nvar zIndexSort = function zIndexSort(a, b) {\n var cy = a.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n function getDepth(ele) {\n var style = ele.pstyle('z-compound-depth');\n if (style.value === 'auto') {\n return hasCompoundNodes ? ele.zDepth() : 0;\n } else if (style.value === 'bottom') {\n return -1;\n } else if (style.value === 'top') {\n return MAX_INT$1;\n }\n // 'orphan'\n return 0;\n }\n var depthDiff = getDepth(a) - getDepth(b);\n if (depthDiff !== 0) {\n return depthDiff;\n }\n function getEleDepth(ele) {\n var style = ele.pstyle('z-index-compare');\n if (style.value === 'auto') {\n return ele.isNode() ? 1 : 0;\n }\n // 'manual'\n return 0;\n }\n var eleDiff = getEleDepth(a) - getEleDepth(b);\n if (eleDiff !== 0) {\n return eleDiff;\n }\n var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value;\n if (zDiff !== 0) {\n return zDiff;\n }\n // compare indices in the core (order added to graph w/ last on top)\n return a.poolIndex() - b.poolIndex();\n};\n\nvar elesfn$6 = {\n forEach: function forEach(fn, thisArg) {\n if (fn$6(fn)) {\n var N = this.length;\n for (var i = 0; i < N; i++) {\n var ele = this[i];\n var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this);\n if (ret === false) {\n break;\n } // exit each early on return false\n }\n }\n return this;\n },\n toArray: function toArray() {\n var array = [];\n for (var i = 0; i < this.length; i++) {\n array.push(this[i]);\n }\n return array;\n },\n slice: function slice(start, end) {\n var array = [];\n var thisSize = this.length;\n if (end == null) {\n end = thisSize;\n }\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start = thisSize + start;\n }\n if (end < 0) {\n end = thisSize + end;\n }\n for (var i = start; i >= 0 && i < end && i < thisSize; i++) {\n array.push(this[i]);\n }\n return this.spawn(array);\n },\n size: function size() {\n return this.length;\n },\n eq: function eq(i) {\n return this[i] || this.spawn();\n },\n first: function first() {\n return this[0] || this.spawn();\n },\n last: function last() {\n return this[this.length - 1] || this.spawn();\n },\n empty: function empty() {\n return this.length === 0;\n },\n nonempty: function nonempty() {\n return !this.empty();\n },\n sort: function sort(sortFn) {\n if (!fn$6(sortFn)) {\n return this;\n }\n var sorted = this.toArray().sort(sortFn);\n return this.spawn(sorted);\n },\n sortByZIndex: function sortByZIndex() {\n return this.sort(zIndexSort);\n },\n zDepth: function zDepth() {\n var ele = this[0];\n if (!ele) {\n return undefined;\n }\n\n // let cy = ele.cy();\n var _p = ele._private;\n var group = _p.group;\n if (group === 'nodes') {\n var depth = _p.data.parent ? ele.parents().size() : 0;\n if (!ele.isParent()) {\n return MAX_INT$1 - 1; // childless nodes always on top\n }\n return depth;\n } else {\n var src = _p.source;\n var tgt = _p.target;\n var srcDepth = src.zDepth();\n var tgtDepth = tgt.zDepth();\n return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent\n }\n }\n};\nelesfn$6.each = elesfn$6.forEach;\nvar defineSymbolIterator = function defineSymbolIterator() {\n var typeofUndef = \"undefined\" ;\n var isIteratorSupported = (typeof Symbol === \"undefined\" ? \"undefined\" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef;\n if (isIteratorSupported) {\n elesfn$6[Symbol.iterator] = function () {\n var _this = this;\n var entry = {\n value: undefined,\n done: false\n };\n var i = 0;\n var length = this.length;\n return _defineProperty$1({\n next: function next() {\n if (i < length) {\n entry.value = _this[i++];\n } else {\n entry.value = undefined;\n entry.done = true;\n }\n return entry;\n }\n }, Symbol.iterator, function () {\n return this;\n });\n };\n }\n};\ndefineSymbolIterator();\n\nvar getLayoutDimensionOptions = defaults$g({\n nodeDimensionsIncludeLabels: false\n});\nvar elesfn$5 = {\n // Calculates and returns node dimensions { x, y } based on options given\n layoutDimensions: function layoutDimensions(options) {\n options = getLayoutDimensionOptions(options);\n var dims;\n if (!this.takesUpSpace()) {\n dims = {\n w: 0,\n h: 0\n };\n } else if (options.nodeDimensionsIncludeLabels) {\n var bbDim = this.boundingBox();\n dims = {\n w: bbDim.w,\n h: bbDim.h\n };\n } else {\n dims = {\n w: this.outerWidth(),\n h: this.outerHeight()\n };\n }\n\n // sanitise the dimensions for external layouts (avoid division by zero)\n if (dims.w === 0 || dims.h === 0) {\n dims.w = dims.h = 1;\n }\n return dims;\n },\n // using standard layout options, apply position function (w/ or w/o animation)\n layoutPositions: function layoutPositions(layout, options, fn) {\n var nodes = this.nodes().filter(function (n) {\n return !n.isParent();\n });\n var cy = this.cy();\n var layoutEles = options.eles; // nodes & edges\n var getMemoizeKey = function getMemoizeKey(node) {\n return node.id();\n };\n var fnMem = memoize(fn, getMemoizeKey); // memoized version of position function\n\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n layout.animations = [];\n var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) {\n var center = {\n x: nodesBb.x1 + nodesBb.w / 2,\n y: nodesBb.y1 + nodesBb.h / 2\n };\n var spacingVector = {\n // scale from center of bounding box (not necessarily 0,0)\n x: (pos.x - center.x) * spacing,\n y: (pos.y - center.y) * spacing\n };\n return {\n x: center.x + spacingVector.x,\n y: center.y + spacingVector.y\n };\n };\n var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1;\n var spacingBb = function spacingBb() {\n if (!useSpacingFactor) {\n return null;\n }\n var bb = makeBoundingBox();\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = fnMem(node, i);\n expandBoundingBoxByPoint(bb, pos.x, pos.y);\n }\n return bb;\n };\n var bb = spacingBb();\n var getFinalPos = memoize(function (node, i) {\n var newPos = fnMem(node, i);\n if (useSpacingFactor) {\n var spacing = Math.abs(options.spacingFactor);\n newPos = calculateSpacing(spacing, bb, newPos);\n }\n if (options.transform != null) {\n newPos = options.transform(node, newPos);\n }\n return newPos;\n }, getMemoizeKey);\n if (options.animate) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var newPos = getFinalPos(node, i);\n var animateNode = options.animateFilter == null || options.animateFilter(node, i);\n if (animateNode) {\n var ani = node.animation({\n position: newPos,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(ani);\n } else {\n node.position(newPos);\n }\n }\n if (options.fit) {\n var fitAni = cy.animation({\n fit: {\n boundingBox: layoutEles.boundingBoxAt(getFinalPos),\n padding: options.padding\n },\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(fitAni);\n } else if (options.zoom !== undefined && options.pan !== undefined) {\n var zoomPanAni = cy.animation({\n zoom: options.zoom,\n pan: options.pan,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(zoomPanAni);\n }\n layout.animations.forEach(function (ani) {\n return ani.play();\n });\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n Promise$1.all(layout.animations.map(function (ani) {\n return ani.promise();\n })).then(function () {\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n });\n } else {\n nodes.positions(getFinalPos);\n if (options.fit) {\n cy.fit(options.eles, options.padding);\n }\n if (options.zoom != null) {\n cy.zoom(options.zoom);\n }\n if (options.pan) {\n cy.pan(options.pan);\n }\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n }\n return this; // chaining\n },\n layout: function layout(options) {\n var cy = this.cy();\n return cy.makeLayout(extend({}, options, {\n eles: this\n }));\n }\n};\n\n// aliases:\nelesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;\n\nfunction styleCache(key, fn, ele) {\n var _p = ele._private;\n var cache = _p.styleCache = _p.styleCache || [];\n var val;\n if ((val = cache[key]) != null) {\n return val;\n } else {\n val = cache[key] = fn(ele);\n return val;\n }\n}\nfunction cacheStyleFunction(key, fn) {\n key = hashString(key);\n return function cachedStyleFunction(ele) {\n return styleCache(key, fn, ele);\n };\n}\nfunction cachePrototypeStyleFunction(key, fn) {\n key = hashString(key);\n var selfFn = function selfFn(ele) {\n return fn.call(ele);\n };\n return function cachedPrototypeStyleFunction() {\n var ele = this[0];\n if (ele) {\n return styleCache(key, selfFn, ele);\n }\n };\n}\nvar elesfn$4 = {\n recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {\n var cy = this.cy();\n var renderer = cy.renderer();\n var styleEnabled = cy.styleEnabled();\n if (renderer && styleEnabled) {\n renderer.recalculateRenderedStyle(this, useCache);\n }\n return this;\n },\n dirtyStyleCache: function dirtyStyleCache() {\n var cy = this.cy();\n var dirty = function dirty(ele) {\n return ele._private.styleCache = null;\n };\n if (cy.hasCompoundNodes()) {\n var eles;\n eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n eles.merge(eles.connectedEdges());\n eles.forEach(dirty);\n } else {\n this.forEach(function (ele) {\n dirty(ele);\n ele.connectedEdges().forEach(dirty);\n });\n }\n return this;\n },\n // fully updates (recalculates) the style for the elements\n updateStyle: function updateStyle(notifyRenderer) {\n var cy = this._private.cy;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (cy.batching()) {\n var bEles = cy._private.batchStyleEles;\n bEles.merge(this);\n return this; // chaining and exit early when batching\n }\n var hasCompounds = cy.hasCompoundNodes();\n var updatedEles = this;\n notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false;\n if (hasCompounds) {\n // then add everything up and down for compound selector checks\n updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n }\n\n // let changedEles = style.apply( updatedEles );\n var changedEles = updatedEles;\n if (notifyRenderer) {\n changedEles.emitAndNotify('style'); // let renderer know we changed style\n } else {\n changedEles.emit('style'); // just fire the event\n }\n updatedEles.forEach(function (ele) {\n return ele._private.styleDirty = true;\n });\n return this; // chaining\n },\n // private: clears dirty flag and recalculates style\n cleanStyle: function cleanStyle() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele._private.styleDirty) {\n // n.b. this flag should be set before apply() to avoid potential infinite recursion\n ele._private.styleDirty = false;\n cy.style().apply(ele);\n }\n }\n },\n // get the internal parsed style object for the specified property\n parsedStyle: function parsedStyle(property) {\n var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var ele = this[0];\n var cy = ele.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n if (ele) {\n // this.cleanStyle();\n\n // Inline the important part of cleanStyle(), for raw performance\n if (ele._private.styleDirty) {\n // n.b. this flag should be set before apply() to avoid potential infinite recursion\n ele._private.styleDirty = false;\n cy.style().apply(ele);\n }\n var overriddenStyle = ele._private.style[property];\n if (overriddenStyle != null) {\n return overriddenStyle;\n } else if (includeNonDefault) {\n return cy.style().getDefaultProperty(property);\n } else {\n return null;\n }\n }\n },\n numericStyle: function numericStyle(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n var pstyle = ele.pstyle(property);\n return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value;\n }\n },\n numericStyleUnits: function numericStyleUnits(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n return ele.pstyle(property).units;\n }\n },\n // get the specified css property as a rendered value (i.e. on-screen value)\n // or get the whole rendered style if no property specified (NB doesn't allow setting)\n renderedStyle: function renderedStyle(property) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var ele = this[0];\n if (ele) {\n return cy.style().getRenderedStyle(ele, property);\n }\n },\n // read the calculated css style of the element or override the style (via a bypass)\n style: function style(name, value) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n if (plainObject(name)) {\n // then extend the bypass\n var props = name;\n style.applyBypass(this, props, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n } else if (string(name)) {\n if (value === undefined) {\n // then get the property from the style\n var ele = this[0];\n if (ele) {\n return style.getStylePropertyValue(ele, name);\n } else {\n // empty collection => can't get any value\n return;\n }\n } else {\n // then set the bypass with the property value\n style.applyBypass(this, name, value, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n }\n } else if (name === undefined) {\n var _ele = this[0];\n if (_ele) {\n return style.getRawStyle(_ele);\n } else {\n // empty collection => can't get any value\n return;\n }\n }\n return this; // chaining\n },\n removeStyle: function removeStyle(names) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n var eles = this;\n if (names === undefined) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n style.removeAllBypasses(ele, updateTransitions);\n }\n } else {\n names = names.split(/\\s+/);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele2 = eles[_i];\n style.removeBypasses(_ele2, names, updateTransitions);\n }\n }\n this.emitAndNotify('style'); // let the renderer know we've updated style\n\n return this; // chaining\n },\n show: function show() {\n this.css('display', 'element');\n return this; // chaining\n },\n hide: function hide() {\n this.css('display', 'none');\n return this; // chaining\n },\n effectiveOpacity: function effectiveOpacity() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return 1;\n }\n var hasCompoundNodes = cy.hasCompoundNodes();\n var ele = this[0];\n if (ele) {\n var _p = ele._private;\n var parentOpacity = ele.pstyle('opacity').value;\n if (!hasCompoundNodes) {\n return parentOpacity;\n }\n var parents = !_p.data.parent ? null : ele.parents();\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n var opacity = parent.pstyle('opacity').value;\n parentOpacity = opacity * parentOpacity;\n }\n }\n return parentOpacity;\n }\n },\n transparent: function transparent() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n var hasCompoundNodes = ele.cy().hasCompoundNodes();\n if (ele) {\n if (!hasCompoundNodes) {\n return ele.pstyle('opacity').value === 0;\n } else {\n return ele.effectiveOpacity() === 0;\n }\n }\n },\n backgrounding: function backgrounding() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n return ele._private.backgrounding ? true : false;\n }\n};\nfunction checkCompound(ele, parentOk) {\n var _p = ele._private;\n var parents = _p.data.parent ? ele.parents() : null;\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n if (!parentOk(parent)) {\n return false;\n }\n }\n }\n return true;\n}\nfunction defineDerivedStateFunction(specs) {\n var ok = specs.ok;\n var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;\n var parentOk = specs.parentOk || specs.ok;\n return function () {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return true;\n }\n var ele = this[0];\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele) {\n var _p = ele._private;\n if (!ok(ele)) {\n return false;\n }\n if (ele.isNode()) {\n return !hasCompoundNodes || checkCompound(ele, parentOk);\n } else {\n var src = _p.source;\n var tgt = _p.target;\n return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));\n }\n }\n };\n}\nvar eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) {\n return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);\n});\nelesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({\n ok: eleTakesUpSpace\n}));\nvar eleInteractive = cacheStyleFunction('eleInteractive', function (ele) {\n return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele);\n});\nvar parentInteractive = cacheStyleFunction('parentInteractive', function (parent) {\n return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent);\n});\nelesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({\n ok: eleInteractive,\n parentOk: parentInteractive,\n edgeOkViaNode: eleTakesUpSpace\n}));\nelesfn$4.noninteractive = function () {\n var ele = this[0];\n if (ele) {\n return !ele.interactive();\n }\n};\nvar eleVisible = cacheStyleFunction('eleVisible', function (ele) {\n return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele);\n});\nvar edgeVisibleViaNode = eleTakesUpSpace;\nelesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({\n ok: eleVisible,\n edgeOkViaNode: edgeVisibleViaNode\n}));\nelesfn$4.hidden = function () {\n var ele = this[0];\n if (ele) {\n return !ele.visible();\n }\n};\nelesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () {\n if (!this.cy().styleEnabled()) {\n return false;\n }\n return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace();\n});\nelesfn$4.bypass = elesfn$4.css = elesfn$4.style;\nelesfn$4.renderedCss = elesfn$4.renderedStyle;\nelesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;\nelesfn$4.pstyle = elesfn$4.parsedStyle;\n\nvar elesfn$3 = {};\nfunction defineSwitchFunction(params) {\n return function () {\n var args = arguments;\n var changedEles = [];\n\n // e.g. cy.nodes().select( data, handler )\n if (args.length === 2) {\n var data = args[0];\n var handler = args[1];\n this.on(params.event, data, handler);\n }\n\n // e.g. cy.nodes().select( handler )\n else if (args.length === 1 && fn$6(args[0])) {\n var _handler = args[0];\n this.on(params.event, _handler);\n }\n\n // e.g. cy.nodes().select()\n // e.g. (private) cy.nodes().select(['tapselect'])\n else if (args.length === 0 || args.length === 1 && array(args[0])) {\n var addlEvents = args.length === 1 ? args[0] : null;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var able = !params.ableField || ele._private[params.ableField];\n var changed = ele._private[params.field] != params.value;\n if (params.overrideAble) {\n var overrideAble = params.overrideAble(ele);\n if (overrideAble !== undefined) {\n able = overrideAble;\n if (!overrideAble) {\n return this;\n } // to save cycles assume not able for all on override\n }\n }\n if (able) {\n ele._private[params.field] = params.value;\n if (changed) {\n changedEles.push(ele);\n }\n }\n }\n var changedColl = this.spawn(changedEles);\n changedColl.updateStyle(); // change of state => possible change of style\n changedColl.emit(params.event);\n if (addlEvents) {\n changedColl.emit(addlEvents);\n }\n }\n return this;\n };\n}\nfunction defineSwitchSet(params) {\n elesfn$3[params.field] = function () {\n var ele = this[0];\n if (ele) {\n if (params.overrideField) {\n var val = params.overrideField(ele);\n if (val !== undefined) {\n return val;\n }\n }\n return ele._private[params.field];\n }\n };\n elesfn$3[params.on] = defineSwitchFunction({\n event: params.on,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: true\n });\n elesfn$3[params.off] = defineSwitchFunction({\n event: params.off,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: false\n });\n}\ndefineSwitchSet({\n field: 'locked',\n overrideField: function overrideField(ele) {\n return ele.cy().autolock() ? true : undefined;\n },\n on: 'lock',\n off: 'unlock'\n});\ndefineSwitchSet({\n field: 'grabbable',\n overrideField: function overrideField(ele) {\n return ele.cy().autoungrabify() || ele.pannable() ? false : undefined;\n },\n on: 'grabify',\n off: 'ungrabify'\n});\ndefineSwitchSet({\n field: 'selected',\n ableField: 'selectable',\n overrideAble: function overrideAble(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'select',\n off: 'unselect'\n});\ndefineSwitchSet({\n field: 'selectable',\n overrideField: function overrideField(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'selectify',\n off: 'unselectify'\n});\nelesfn$3.deselect = elesfn$3.unselect;\nelesfn$3.grabbed = function () {\n var ele = this[0];\n if (ele) {\n return ele._private.grabbed;\n }\n};\ndefineSwitchSet({\n field: 'active',\n on: 'activate',\n off: 'unactivate'\n});\ndefineSwitchSet({\n field: 'pannable',\n on: 'panify',\n off: 'unpanify'\n});\nelesfn$3.inactive = function () {\n var ele = this[0];\n if (ele) {\n return !ele._private.active;\n }\n};\n\nvar elesfn$2 = {};\n\n// DAG functions\n////////////////\n\nvar defineDagExtremity = function defineDagExtremity(params) {\n return function dagExtremityImpl(selector) {\n var eles = this;\n var ret = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var disqualified = false;\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {\n disqualified = true;\n break;\n }\n }\n if (!disqualified) {\n ret.push(ele);\n }\n }\n return this.spawn(ret, true).filter(selector);\n };\n};\nvar defineDagOneHop = function defineDagOneHop(params) {\n return function (selector) {\n var eles = this;\n var oEles = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.outgoing && src === ele) {\n oEles.push(edge);\n oEles.push(tgt);\n } else if (params.incoming && tgt === ele) {\n oEles.push(edge);\n oEles.push(src);\n }\n }\n }\n return this.spawn(oEles, true).filter(selector);\n };\n};\nvar defineDagAllHops = function defineDagAllHops(params) {\n return function (selector) {\n var eles = this;\n var sEles = [];\n var sElesIds = {};\n for (;;) {\n var next = params.outgoing ? eles.outgoers() : eles.incomers();\n if (next.length === 0) {\n break;\n } // done if none left\n\n var newNext = false;\n for (var i = 0; i < next.length; i++) {\n var n = next[i];\n var nid = n.id();\n if (!sElesIds[nid]) {\n sElesIds[nid] = true;\n sEles.push(n);\n newNext = true;\n }\n }\n if (!newNext) {\n break;\n } // done if touched all outgoers already\n\n eles = next;\n }\n return this.spawn(sEles, true).filter(selector);\n };\n};\nelesfn$2.clearTraversalCache = function () {\n for (var i = 0; i < this.length; i++) {\n this[i]._private.traversalCache = null;\n }\n};\nextend(elesfn$2, {\n // get the root nodes in the DAG\n roots: defineDagExtremity({\n noIncomingEdges: true\n }),\n // get the leaf nodes in the DAG\n leaves: defineDagExtremity({\n noOutgoingEdges: true\n }),\n // normally called children in graph theory\n // these nodes =edges=> outgoing nodes\n outgoers: cache(defineDagOneHop({\n outgoing: true\n }), 'outgoers'),\n // aka DAG descendants\n successors: defineDagAllHops({\n outgoing: true\n }),\n // normally called parents in graph theory\n // these nodes <=edges= incoming nodes\n incomers: cache(defineDagOneHop({\n incoming: true\n }), 'incomers'),\n // aka DAG ancestors\n predecessors: defineDagAllHops({\n })\n});\n\n// Neighbourhood functions\n//////////////////////////\n\nextend(elesfn$2, {\n neighborhood: cache(function (selector) {\n var elements = [];\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n // for all nodes\n var node = nodes[i];\n var connectedEdges = node.connectedEdges();\n\n // for each connected edge, add the edge and the other node\n for (var j = 0; j < connectedEdges.length; j++) {\n var edge = connectedEdges[j];\n var src = edge.source();\n var tgt = edge.target();\n var otherNode = node === src ? tgt : src;\n\n // need check in case of loop\n if (otherNode.length > 0) {\n elements.push(otherNode[0]); // add node 1 hop away\n }\n\n // add connected edge\n elements.push(edge[0]);\n }\n }\n return this.spawn(elements, true).filter(selector);\n }, 'neighborhood'),\n closedNeighborhood: function closedNeighborhood(selector) {\n return this.neighborhood().add(this).filter(selector);\n },\n openNeighborhood: function openNeighborhood(selector) {\n return this.neighborhood(selector);\n }\n});\n\n// aliases\nelesfn$2.neighbourhood = elesfn$2.neighborhood;\nelesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;\nelesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;\n\n// Edge functions\n/////////////////\n\nextend(elesfn$2, {\n source: cache(function sourceImpl(selector) {\n var ele = this[0];\n var src;\n if (ele) {\n src = ele._private.source || ele.cy().collection();\n }\n return src && selector ? src.filter(selector) : src;\n }, 'source'),\n target: cache(function targetImpl(selector) {\n var ele = this[0];\n var tgt;\n if (ele) {\n tgt = ele._private.target || ele.cy().collection();\n }\n return tgt && selector ? tgt.filter(selector) : tgt;\n }, 'target'),\n sources: defineSourceFunction({\n attr: 'source'\n }),\n targets: defineSourceFunction({\n attr: 'target'\n })\n});\nfunction defineSourceFunction(params) {\n return function sourceImpl(selector) {\n var sources = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var src = ele._private[params.attr];\n if (src) {\n sources.push(src);\n }\n }\n return this.spawn(sources, true).filter(selector);\n };\n}\nextend(elesfn$2, {\n edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'),\n edgesTo: cache(defineEdgesWithFunction({\n thisIsSrc: true\n }), 'edgesTo')\n});\nfunction defineEdgesWithFunction(params) {\n return function edgesWithImpl(otherNodes) {\n var elements = [];\n var cy = this._private.cy;\n var p = params || {};\n\n // get elements if a selector is specified\n if (string(otherNodes)) {\n otherNodes = cy.$(otherNodes);\n }\n for (var h = 0; h < otherNodes.length; h++) {\n var edges = otherNodes[h]._private.edges;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var edgeData = edge._private.data;\n var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);\n var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);\n var edgeConnectsThisAndOther = thisToOther || otherToThis;\n if (!edgeConnectsThisAndOther) {\n continue;\n }\n if (p.thisIsSrc || p.thisIsTgt) {\n if (p.thisIsSrc && !thisToOther) {\n continue;\n }\n if (p.thisIsTgt && !otherToThis) {\n continue;\n }\n }\n elements.push(edge);\n }\n }\n return this.spawn(elements, true);\n };\n}\nextend(elesfn$2, {\n connectedEdges: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var node = eles[i];\n if (!node.isNode()) {\n continue;\n }\n var edges = node._private.edges;\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n retEles.push(edge);\n }\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedEdges'),\n connectedNodes: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var edge = eles[i];\n if (!edge.isEdge()) {\n continue;\n }\n retEles.push(edge.source()[0]);\n retEles.push(edge.target()[0]);\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedNodes'),\n parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'),\n codirectedEdges: cache(defineParallelEdgesFunction({\n codirected: true\n }), 'codirectedEdges')\n});\nfunction defineParallelEdgesFunction(params) {\n var defaults = {\n codirected: false\n };\n params = extend({}, defaults, params);\n return function parallelEdgesImpl(selector) {\n // micro-optimised for renderer\n var elements = [];\n var edges = this.edges();\n var p = params;\n\n // look at all the edges in the collection\n for (var i = 0; i < edges.length; i++) {\n var edge1 = edges[i];\n var edge1_p = edge1._private;\n var src1 = edge1_p.source;\n var srcid1 = src1._private.data.id;\n var tgtid1 = edge1_p.data.target;\n var srcEdges1 = src1._private.edges;\n\n // look at edges connected to the src node of this edge\n for (var j = 0; j < srcEdges1.length; j++) {\n var edge2 = srcEdges1[j];\n var edge2data = edge2._private.data;\n var tgtid2 = edge2data.target;\n var srcid2 = edge2data.source;\n var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;\n var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;\n if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) {\n elements.push(edge2);\n }\n }\n }\n return this.spawn(elements, true).filter(selector);\n };\n}\n\n// Misc functions\n/////////////////\n\nextend(elesfn$2, {\n components: function components(root) {\n var self = this;\n var cy = self.cy();\n var visited = cy.collection();\n var unvisited = root == null ? self.nodes() : root.nodes();\n var components = [];\n if (root != null && unvisited.empty()) {\n // root may contain only edges\n unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides\n }\n var visitInComponent = function visitInComponent(node, component) {\n visited.merge(node);\n unvisited.unmerge(node);\n component.merge(node);\n };\n if (unvisited.empty()) {\n return self.spawn();\n }\n var _loop = function _loop() {\n // each iteration yields a component\n var cmpt = cy.collection();\n components.push(cmpt);\n var root = unvisited[0];\n visitInComponent(root, cmpt);\n self.bfs({\n directed: false,\n roots: root,\n visit: function visit(v) {\n return visitInComponent(v, cmpt);\n }\n });\n cmpt.forEach(function (node) {\n node.connectedEdges().forEach(function (e) {\n // connectedEdges() usually cached\n if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e); // forEach() only considers nodes -- sets N at call time\n }\n });\n });\n };\n do {\n _loop();\n } while (unvisited.length > 0);\n return components;\n },\n component: function component() {\n var ele = this[0];\n return ele.cy().mutableElements().components(ele)[0];\n }\n});\nelesfn$2.componentsOf = elesfn$2.components;\n\n// represents a set of nodes, edges, or both together\nvar Collection = function Collection(cy, elements) {\n var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (cy === undefined) {\n error('A collection must have a reference to the core');\n return;\n }\n var map = new Map$1();\n var createdElements = false;\n if (!elements) {\n elements = [];\n } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) {\n createdElements = true;\n\n // make elements from json and restore all at once later\n var eles = [];\n var elesIds = new Set$1();\n for (var i = 0, l = elements.length; i < l; i++) {\n var json = elements[i];\n if (json.data == null) {\n json.data = {};\n }\n var _data = json.data;\n\n // make sure newly created elements have valid ids\n if (_data.id == null) {\n _data.id = uuid();\n } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {\n continue; // can't create element if prior id already exists\n }\n var ele = new Element(cy, json, false);\n eles.push(ele);\n elesIds.add(_data.id);\n }\n elements = eles;\n }\n this.length = 0;\n for (var _i = 0, _l = elements.length; _i < _l; _i++) {\n var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements\n if (element$1 == null) {\n continue;\n }\n var id = element$1._private.data.id;\n if (!unique || !map.has(id)) {\n if (unique) {\n map.set(id, {\n index: this.length,\n ele: element$1\n });\n }\n this[this.length] = element$1;\n this.length++;\n }\n }\n this._private = {\n eles: this,\n cy: cy,\n get map() {\n if (this.lazyMap == null) {\n this.rebuildMap();\n }\n return this.lazyMap;\n },\n set map(m) {\n this.lazyMap = m;\n },\n rebuildMap: function rebuildMap() {\n var m = this.lazyMap = new Map$1();\n var eles = this.eles;\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n var _ele = eles[_i2];\n m.set(_ele.id(), {\n index: _i2,\n ele: _ele\n });\n }\n }\n };\n if (unique) {\n this._private.map = map;\n }\n\n // restore the elements if we created them from json\n if (createdElements && !removed) {\n this.restore();\n }\n};\n\n// Functions\n////////////////////////////////////////////////////////////////////////////////////////////////////\n\n// keep the prototypes in sync (an element has the same functions as a collection)\n// and use elefn and elesfn as shorthands to the prototypes\nvar elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);\nelesfn$1.instanceString = function () {\n return 'collection';\n};\nelesfn$1.spawn = function (eles, unique) {\n return new Collection(this.cy(), eles, unique);\n};\nelesfn$1.spawnSelf = function () {\n return this.spawn(this);\n};\nelesfn$1.cy = function () {\n return this._private.cy;\n};\nelesfn$1.renderer = function () {\n return this._private.cy.renderer();\n};\nelesfn$1.element = function () {\n return this[0];\n};\nelesfn$1.collection = function () {\n if (collection(this)) {\n return this;\n } else {\n // an element\n return new Collection(this._private.cy, [this]);\n }\n};\nelesfn$1.unique = function () {\n return new Collection(this._private.cy, this, true);\n};\nelesfn$1.hasElementWithId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.has(id);\n};\nelesfn$1.getElementById = function (id) {\n id = '' + id; // id must be string\n\n var cy = this._private.cy;\n var entry = this._private.map.get(id);\n return entry ? entry.ele : new Collection(cy); // get ele or empty collection\n};\nelesfn$1.$id = elesfn$1.getElementById;\nelesfn$1.poolIndex = function () {\n var cy = this._private.cy;\n var eles = cy._private.elements;\n var id = this[0]._private.data.id;\n return eles._private.map.get(id).index;\n};\nelesfn$1.indexOf = function (ele) {\n var id = ele[0]._private.data.id;\n return this._private.map.get(id).index;\n};\nelesfn$1.indexOfId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.get(id).index;\n};\nelesfn$1.json = function (obj) {\n var ele = this.element();\n var cy = this.cy();\n if (ele == null && obj) {\n return this;\n } // can't set to no eles\n\n if (ele == null) {\n return undefined;\n } // can't get from no eles\n\n var p = ele._private;\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.data) {\n ele.data(obj.data);\n var _data2 = p.data;\n if (ele.isEdge()) {\n // source and target are immutable via data()\n var move = false;\n var spec = {};\n var src = obj.data.source;\n var tgt = obj.data.target;\n if (src != null && src != _data2.source) {\n spec.source = '' + src; // id must be string\n move = true;\n }\n if (tgt != null && tgt != _data2.target) {\n spec.target = '' + tgt; // id must be string\n move = true;\n }\n if (move) {\n ele = ele.move(spec);\n }\n } else {\n // parent is immutable via data()\n var newParentValSpecd = 'parent' in obj.data;\n var parent = obj.data.parent;\n if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {\n if (parent === undefined) {\n // can't set undefined imperatively, so use null\n parent = null;\n }\n if (parent != null) {\n parent = '' + parent; // id must be string\n }\n ele = ele.move({\n parent: parent\n });\n }\n }\n }\n if (obj.position) {\n ele.position(obj.position);\n }\n\n // ignore group -- immutable\n\n var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) {\n var obj_k = obj[k];\n if (obj_k != null && obj_k !== p[k]) {\n if (obj_k) {\n ele[trueFnName]();\n } else {\n ele[falseFnName]();\n }\n }\n };\n checkSwitch('removed', 'remove', 'restore');\n checkSwitch('selected', 'select', 'unselect');\n checkSwitch('selectable', 'selectify', 'unselectify');\n checkSwitch('locked', 'lock', 'unlock');\n checkSwitch('grabbable', 'grabify', 'ungrabify');\n checkSwitch('pannable', 'panify', 'unpanify');\n if (obj.classes != null) {\n ele.classes(obj.classes);\n }\n cy.endBatch();\n return this;\n } else if (obj === undefined) {\n // get\n\n var json = {\n data: copy(p.data),\n position: copy(p.position),\n group: p.group,\n removed: p.removed,\n selected: p.selected,\n selectable: p.selectable,\n locked: p.locked,\n grabbable: p.grabbable,\n pannable: p.pannable,\n classes: null\n };\n json.classes = '';\n var i = 0;\n p.classes.forEach(function (cls) {\n return json.classes += i++ === 0 ? cls : ' ' + cls;\n });\n return json;\n }\n};\nelesfn$1.jsons = function () {\n var jsons = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n jsons.push(json);\n }\n return jsons;\n};\nelesfn$1.clone = function () {\n var cy = this.cy();\n var elesArr = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n var clone = new Element(cy, json, false); // NB no restore\n\n elesArr.push(clone);\n }\n return new Collection(cy, elesArr);\n};\nelesfn$1.copy = elesfn$1.clone;\nelesfn$1.restore = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var cy = self.cy();\n var cy_p = cy._private;\n\n // create arrays of nodes and edges, since we need to\n // restore the nodes first\n var nodes = [];\n var edges = [];\n var elements;\n for (var _i3 = 0, l = self.length; _i3 < l; _i3++) {\n var ele = self[_i3];\n if (addToPool && !ele.removed()) {\n // don't need to handle this ele\n continue;\n }\n\n // keep nodes first in the array and edges after\n if (ele.isNode()) {\n // put to front of array if node\n nodes.push(ele);\n } else {\n // put to end of array if edge\n edges.push(ele);\n }\n }\n elements = nodes.concat(edges);\n var i;\n var removeFromElements = function removeFromElements() {\n elements.splice(i, 1);\n i--;\n };\n\n // now, restore each element\n for (i = 0; i < elements.length; i++) {\n var _ele2 = elements[i];\n var _private = _ele2._private;\n var _data3 = _private.data;\n\n // the traversal cache should start fresh when ele is added\n _ele2.clearTraversalCache();\n\n // set id and validate\n if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) {\n _data3.id = uuid();\n } else if (number$1(_data3.id)) {\n _data3.id = '' + _data3.id; // now it's a string\n } else if (emptyString(_data3.id) || !string(_data3.id)) {\n error('Can not create element with invalid string ID `' + _data3.id + '`');\n\n // can't create element if it has empty string as id or non-string id\n removeFromElements();\n continue;\n } else if (cy.hasElementWithId(_data3.id)) {\n error('Can not create second element with ID `' + _data3.id + '`');\n\n // can't create element if one already has that id\n removeFromElements();\n continue;\n }\n var id = _data3.id; // id is finalised, now let's keep a ref\n\n if (_ele2.isNode()) {\n // extra checks for nodes\n var pos = _private.position;\n\n // make sure the nodes have a defined position\n\n if (pos.x == null) {\n pos.x = 0;\n }\n if (pos.y == null) {\n pos.y = 0;\n }\n }\n if (_ele2.isEdge()) {\n // extra checks for edges\n\n var edge = _ele2;\n var fields = ['source', 'target'];\n var fieldsLength = fields.length;\n var badSourceOrTarget = false;\n for (var j = 0; j < fieldsLength; j++) {\n var field = fields[j];\n var val = _data3[field];\n if (number$1(val)) {\n val = _data3[field] = '' + _data3[field]; // now string\n }\n if (val == null || val === '') {\n // can't create if source or target is not defined properly\n error('Can not create edge `' + id + '` with unspecified ' + field);\n badSourceOrTarget = true;\n } else if (!cy.hasElementWithId(val)) {\n // can't create edge if one of its nodes doesn't exist\n error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`');\n badSourceOrTarget = true;\n }\n }\n if (badSourceOrTarget) {\n removeFromElements();\n continue;\n } // can't create this\n\n var src = cy.getElementById(_data3.source);\n var tgt = cy.getElementById(_data3.target);\n\n // only one edge in node if loop\n if (src.same(tgt)) {\n src._private.edges.push(edge);\n } else {\n src._private.edges.push(edge);\n tgt._private.edges.push(edge);\n }\n edge._private.source = src;\n edge._private.target = tgt;\n } // if is edge\n\n // create mock ids / indexes maps for element so it can be used like collections\n _private.map = new Map$1();\n _private.map.set(id, {\n ele: _ele2,\n index: 0\n });\n _private.removed = false;\n if (addToPool) {\n cy.addToPool(_ele2);\n }\n } // for each element\n\n // do compound node sanity checks\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n // each node\n var node = nodes[_i4];\n var _data4 = node._private.data;\n if (number$1(_data4.parent)) {\n // then automake string\n _data4.parent = '' + _data4.parent;\n }\n var parentId = _data4.parent;\n var specifiedParent = parentId != null;\n if (specifiedParent || node._private.parent) {\n var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId);\n if (parent.empty()) {\n // non-existant parent; just remove it\n _data4.parent = undefined;\n } else if (parent[0].removed()) {\n warn('Node added with missing parent, reference to parent removed');\n _data4.parent = undefined;\n node._private.parent = null;\n } else {\n var selfAsParent = false;\n var ancestor = parent;\n while (!ancestor.empty()) {\n if (node.same(ancestor)) {\n // mark self as parent and remove from data\n selfAsParent = true;\n _data4.parent = undefined; // remove parent reference\n\n // exit or we loop forever\n break;\n }\n ancestor = ancestor.parent();\n }\n if (!selfAsParent) {\n // connect with children\n parent[0]._private.children.push(node);\n node._private.parent = parent[0];\n\n // let the core know we have a compound graph\n cy_p.hasCompoundNodes = true;\n }\n } // else\n } // if specified parent\n } // for each node\n\n if (elements.length > 0) {\n var restored = elements.length === self.length ? self : new Collection(cy, elements);\n for (var _i5 = 0; _i5 < restored.length; _i5++) {\n var _ele3 = restored[_i5];\n if (_ele3.isNode()) {\n continue;\n }\n\n // adding an edge invalidates the traversal caches for the parallel edges\n _ele3.parallelEdges().clearTraversalCache();\n\n // adding an edge invalidates the traversal cache for the connected nodes\n _ele3.source().clearTraversalCache();\n _ele3.target().clearTraversalCache();\n }\n var toUpdateStyle;\n if (cy_p.hasCompoundNodes) {\n toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());\n } else {\n toUpdateStyle = restored;\n }\n toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);\n if (notifyRenderer) {\n restored.emitAndNotify('add');\n } else if (addToPool) {\n restored.emit('add');\n }\n }\n return self; // chainability\n};\nelesfn$1.removed = function () {\n var ele = this[0];\n return ele && ele._private.removed;\n};\nelesfn$1.inside = function () {\n var ele = this[0];\n return ele && !ele._private.removed;\n};\nelesfn$1.remove = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var elesToRemove = [];\n var elesToRemoveIds = {};\n var cy = self._private.cy;\n\n // add connected edges\n function addConnectedEdges(node) {\n var edges = node._private.edges;\n for (var i = 0; i < edges.length; i++) {\n add(edges[i]);\n }\n }\n\n // add descendant nodes\n function addChildren(node) {\n var children = node._private.children;\n for (var i = 0; i < children.length; i++) {\n add(children[i]);\n }\n }\n function add(ele) {\n var alreadyAdded = elesToRemoveIds[ele.id()];\n if (removeFromPool && ele.removed() || alreadyAdded) {\n return;\n } else {\n elesToRemoveIds[ele.id()] = true;\n }\n if (ele.isNode()) {\n elesToRemove.push(ele); // nodes are removed last\n\n addConnectedEdges(ele);\n addChildren(ele);\n } else {\n elesToRemove.unshift(ele); // edges are removed first\n }\n }\n\n // make the list of elements to remove\n // (may be removing more than specified due to connected edges etc)\n\n for (var i = 0, l = self.length; i < l; i++) {\n var ele = self[i];\n add(ele);\n }\n function removeEdgeRef(node, edge) {\n var connectedEdges = node._private.edges;\n removeFromArray(connectedEdges, edge);\n\n // removing an edges invalidates the traversal cache for its nodes\n node.clearTraversalCache();\n }\n function removeParallelRef(pllEdge) {\n // removing an edge invalidates the traversal caches for the parallel edges\n pllEdge.clearTraversalCache();\n }\n var alteredParents = [];\n alteredParents.ids = {};\n function removeChildRef(parent, ele) {\n ele = ele[0];\n parent = parent[0];\n var children = parent._private.children;\n var pid = parent.id();\n removeFromArray(children, ele); // remove parent => child ref\n\n ele._private.parent = null; // remove child => parent ref\n\n if (!alteredParents.ids[pid]) {\n alteredParents.ids[pid] = true;\n alteredParents.push(parent);\n }\n }\n self.dirtyCompoundBoundsCache();\n if (removeFromPool) {\n cy.removeFromPool(elesToRemove); // remove from core pool\n }\n for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {\n var _ele4 = elesToRemove[_i6];\n if (_ele4.isEdge()) {\n // remove references to this edge in its connected nodes\n var src = _ele4.source()[0];\n var tgt = _ele4.target()[0];\n removeEdgeRef(src, _ele4);\n removeEdgeRef(tgt, _ele4);\n var pllEdges = _ele4.parallelEdges();\n for (var j = 0; j < pllEdges.length; j++) {\n var pllEdge = pllEdges[j];\n removeParallelRef(pllEdge);\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n }\n } else {\n // remove reference to parent\n var parent = _ele4.parent();\n if (parent.length !== 0) {\n removeChildRef(parent, _ele4);\n }\n }\n if (removeFromPool) {\n // mark as removed\n _ele4._private.removed = true;\n }\n }\n\n // check to see if we have a compound graph or not\n var elesStillInside = cy._private.elements;\n cy._private.hasCompoundNodes = false;\n for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {\n var _ele5 = elesStillInside[_i7];\n if (_ele5.isParent()) {\n cy._private.hasCompoundNodes = true;\n break;\n }\n }\n var removedElements = new Collection(this.cy(), elesToRemove);\n if (removedElements.size() > 0) {\n // must manually notify since trigger won't do this automatically once removed\n\n if (notifyRenderer) {\n removedElements.emitAndNotify('remove');\n } else if (removeFromPool) {\n removedElements.emit('remove');\n }\n }\n\n // the parents who were modified by the removal need their style updated\n for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {\n var _ele6 = alteredParents[_i8];\n if (!removeFromPool || !_ele6.removed()) {\n _ele6.updateStyle();\n }\n }\n return removedElements;\n};\nelesfn$1.move = function (struct) {\n var cy = this._private.cy;\n var eles = this;\n\n // just clean up refs, caches, etc. in the same way as when removing and then restoring\n // (our calls to remove/restore do not remove from the graph or make events)\n var notifyRenderer = false;\n var modifyPool = false;\n var toString = function toString(id) {\n return id == null ? id : '' + id;\n }; // id must be string\n\n if (struct.source !== undefined || struct.target !== undefined) {\n var srcId = toString(struct.source);\n var tgtId = toString(struct.target);\n var srcExists = srcId != null && cy.hasElementWithId(srcId);\n var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);\n if (srcExists || tgtExists) {\n cy.batch(function () {\n // avoid duplicate style updates\n eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n eles.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data5 = ele._private.data;\n if (ele.isEdge()) {\n if (srcExists) {\n _data5.source = srcId;\n }\n if (tgtExists) {\n _data5.target = tgtId;\n }\n }\n }\n eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n eles.emitAndNotify('move');\n }\n } else if (struct.parent !== undefined) {\n // move node to new parent\n var parentId = toString(struct.parent);\n var parentExists = parentId === null || cy.hasElementWithId(parentId);\n if (parentExists) {\n var pidToAssign = parentId === null ? undefined : parentId;\n cy.batch(function () {\n // avoid duplicate style updates\n var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n updated.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data6 = ele._private.data;\n if (ele.isNode()) {\n _data6.parent = pidToAssign;\n }\n }\n updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n eles.emitAndNotify('move');\n }\n }\n return this;\n};\n[elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) {\n extend(elesfn$1, props);\n});\n\nvar corefn$9 = {\n add: function add(opts) {\n var elements;\n var cy = this;\n\n // add the elements\n if (elementOrCollection(opts)) {\n var eles = opts;\n if (eles._private.cy === cy) {\n // same instance => just restore\n elements = eles.restore();\n } else {\n // otherwise, copy from json\n var jsons = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n jsons.push(ele.json());\n }\n elements = new Collection(cy, jsons);\n }\n }\n\n // specify an array of options\n else if (array(opts)) {\n var _jsons = opts;\n elements = new Collection(cy, _jsons);\n }\n\n // specify via opts.nodes and opts.edges\n else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) {\n var elesByGroup = opts;\n var _jsons2 = [];\n var grs = ['nodes', 'edges'];\n for (var _i = 0, il = grs.length; _i < il; _i++) {\n var group = grs[_i];\n var elesArray = elesByGroup[group];\n if (array(elesArray)) {\n for (var j = 0, jl = elesArray.length; j < jl; j++) {\n var json = extend({\n group: group\n }, elesArray[j]);\n _jsons2.push(json);\n }\n }\n }\n elements = new Collection(cy, _jsons2);\n }\n\n // specify options for one element\n else {\n var _json = opts;\n elements = new Element(cy, _json).collection();\n }\n return elements;\n },\n remove: function remove(collection) {\n if (elementOrCollection(collection)) ; else if (string(collection)) {\n var selector = collection;\n collection = this.$(selector);\n }\n return collection.remove();\n }\n};\n\n/* global Float32Array */\n\n/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\nfunction generateCubicBezier(mX1, mY1, mX2, mY2) {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\n float32ArraySupported = typeof Float32Array !== 'undefined';\n\n /* Must contain four arguments. */\n if (arguments.length !== 4) {\n return false;\n }\n\n /* Arguments must be numbers. */\n for (var i = 0; i < 4; ++i) {\n if (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\n return false;\n }\n }\n\n /* X values must be in the [0, 1] range. */\n mX1 = Math.min(mX1, 1);\n mX2 = Math.min(mX2, 1);\n mX1 = Math.max(mX1, 0);\n mX2 = Math.max(mX2, 0);\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n return 3.0 * aA1;\n }\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function calcSampleValues() {\n for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {\n mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);\n }\n }\n function binarySubdivide(aX, aA, aB) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function getTForX(aX) {\n var intervalStart = 0.0,\n currentSample = 1,\n lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n var _precomputed = false;\n function precompute() {\n _precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n var f = function f(aX) {\n if (!_precomputed) {\n precompute();\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return aX;\n }\n if (aX === 0) {\n return 0;\n }\n if (aX === 1) {\n return 1;\n }\n return calcBezier(getTForX(aX), mY1, mY2);\n };\n f.getControlPoints = function () {\n return [{\n x: mX1,\n y: mY1\n }, {\n x: mX2,\n y: mY2\n }];\n };\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\n f.toString = function () {\n return str;\n };\n return f;\n}\n\n/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\nvar generateSpringRK4 = function () {\n function springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n }\n function springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n }\n function springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\n dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n }\n return function springRK4Factory(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n },\n path = [0],\n time_lapsed = 0,\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n have_duration,\n dt,\n last_state;\n tension = parseFloat(tension) || 500;\n friction = parseFloat(friction) || 20;\n duration = duration || null;\n initState.tension = tension;\n initState.friction = friction;\n have_duration = duration !== null;\n\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n if (have_duration) {\n /* Run the simulation without a duration. */\n time_lapsed = springRK4Factory(tension, friction);\n /* Compute the adjusted time delta. */\n dt = time_lapsed / duration * DT;\n } else {\n dt = DT;\n }\n for (;;) {\n /* Next/step function .*/\n last_state = springIntegrateState(last_state || initState, dt);\n /* Store the position. */\n path.push(1 + last_state.x);\n time_lapsed += 16;\n /* If the change threshold is reached, break. */\n if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\n break;\n }\n }\n\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\n computed path and returns a snapshot of the position according to a given percentComplete. */\n return !have_duration ? time_lapsed : function (percentComplete) {\n return path[percentComplete * (path.length - 1) | 0];\n };\n };\n}();\n\nvar cubicBezier = function cubicBezier(t1, p1, t2, p2) {\n var bezier = generateCubicBezier(t1, p1, t2, p2);\n return function (start, end, percent) {\n return start + (end - start) * bezier(percent);\n };\n};\nvar easings = {\n 'linear': function linear(start, end, percent) {\n return start + (end - start) * percent;\n },\n // default easings\n 'ease': cubicBezier(0.25, 0.1, 0.25, 1),\n 'ease-in': cubicBezier(0.42, 0, 1, 1),\n 'ease-out': cubicBezier(0, 0, 0.58, 1),\n 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1),\n // sine\n 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715),\n 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1),\n 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95),\n // quad\n 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53),\n 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94),\n 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955),\n // cubic\n 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19),\n 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1),\n 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1),\n // quart\n 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22),\n 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1),\n 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1),\n // quint\n 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06),\n 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1),\n 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1),\n // expo\n 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035),\n 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1),\n 'ease-in-out-expo': cubicBezier(1, 0, 0, 1),\n // circ\n 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335),\n 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1),\n 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86),\n // user param easings...\n\n 'spring': function spring(tension, friction, duration) {\n if (duration === 0) {\n // can't get a spring w/ duration 0\n return easings.linear; // duration 0 => jump to end so impl doesn't matter\n }\n var spring = generateSpringRK4(tension, friction, duration);\n return function (start, end, percent) {\n return start + (end - start) * spring(percent);\n };\n },\n 'cubic-bezier': cubicBezier\n};\n\nfunction getEasedValue(type, start, end, percent, easingFn) {\n if (percent === 1) {\n return end;\n }\n if (start === end) {\n return end;\n }\n var val = easingFn(start, end, percent);\n if (type == null) {\n return val;\n }\n if (type.roundValue || type.color) {\n val = Math.round(val);\n }\n if (type.min !== undefined) {\n val = Math.max(val, type.min);\n }\n if (type.max !== undefined) {\n val = Math.min(val, type.max);\n }\n return val;\n}\nfunction getValue(prop, spec) {\n if (prop.pfValue != null || prop.value != null) {\n if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) {\n return prop.pfValue;\n } else {\n return prop.value;\n }\n } else {\n return prop;\n }\n}\nfunction ease(startProp, endProp, percent, easingFn, propSpec) {\n var type = propSpec != null ? propSpec.type : null;\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n var start = getValue(startProp, propSpec);\n var end = getValue(endProp, propSpec);\n if (number$1(start) && number$1(end)) {\n return getEasedValue(type, start, end, percent, easingFn);\n } else if (array(start) && array(end)) {\n var easedArr = [];\n for (var i = 0; i < end.length; i++) {\n var si = start[i];\n var ei = end[i];\n if (si != null && ei != null) {\n var val = getEasedValue(type, si, ei, percent, easingFn);\n easedArr.push(val);\n } else {\n easedArr.push(ei);\n }\n }\n return easedArr;\n }\n return undefined;\n}\n\nfunction step$1(self, ani, now, isCore) {\n var isEles = !isCore;\n var _p = self._private;\n var ani_p = ani._private;\n var pEasing = ani_p.easing;\n var startTime = ani_p.startTime;\n var cy = isCore ? self : self.cy();\n var style = cy.style();\n if (!ani_p.easingImpl) {\n if (pEasing == null) {\n // use default\n ani_p.easingImpl = easings['linear'];\n } else {\n // then define w/ name\n var easingVals;\n if (string(pEasing)) {\n var easingProp = style.parse('transition-timing-function', pEasing);\n easingVals = easingProp.value;\n } else {\n // then assume preparsed array\n easingVals = pEasing;\n }\n var name, args;\n if (string(easingVals)) {\n name = easingVals;\n args = [];\n } else {\n name = easingVals[1];\n args = easingVals.slice(2).map(function (n) {\n return +n;\n });\n }\n if (args.length > 0) {\n // create with args\n if (name === 'spring') {\n args.push(ani_p.duration); // need duration to generate spring\n }\n ani_p.easingImpl = easings[name].apply(null, args);\n } else {\n // static impl by name\n ani_p.easingImpl = easings[name];\n }\n }\n }\n var easing = ani_p.easingImpl;\n var percent;\n if (ani_p.duration === 0) {\n percent = 1;\n } else {\n percent = (now - startTime) / ani_p.duration;\n }\n if (ani_p.applying) {\n percent = ani_p.progress;\n }\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (ani_p.delay == null) {\n // then update\n\n var startPos = ani_p.startPosition;\n var endPos = ani_p.position;\n if (endPos && isEles && !self.locked()) {\n var newPos = {};\n if (valid(startPos.x, endPos.x)) {\n newPos.x = ease(startPos.x, endPos.x, percent, easing);\n }\n if (valid(startPos.y, endPos.y)) {\n newPos.y = ease(startPos.y, endPos.y, percent, easing);\n }\n self.position(newPos);\n }\n var startPan = ani_p.startPan;\n var endPan = ani_p.pan;\n var pan = _p.pan;\n var animatingPan = endPan != null && isCore;\n if (animatingPan) {\n if (valid(startPan.x, endPan.x)) {\n pan.x = ease(startPan.x, endPan.x, percent, easing);\n }\n if (valid(startPan.y, endPan.y)) {\n pan.y = ease(startPan.y, endPan.y, percent, easing);\n }\n self.emit('pan');\n }\n var startZoom = ani_p.startZoom;\n var endZoom = ani_p.zoom;\n var animatingZoom = endZoom != null && isCore;\n if (animatingZoom) {\n if (valid(startZoom, endZoom)) {\n _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);\n }\n self.emit('zoom');\n }\n if (animatingPan || animatingZoom) {\n self.emit('viewport');\n }\n var props = ani_p.style;\n if (props && props.length > 0 && isEles) {\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var _name = prop.name;\n var end = prop;\n var start = ani_p.startStyle[_name];\n var propSpec = style.properties[start.name];\n var easedVal = ease(start, end, percent, easing, propSpec);\n style.overrideBypass(self, _name, easedVal);\n } // for props\n\n self.emit('style');\n } // if\n }\n ani_p.progress = percent;\n return percent;\n}\nfunction valid(start, end) {\n if (start == null || end == null) {\n return false;\n }\n if (number$1(start) && number$1(end)) {\n return true;\n } else if (start && end) {\n return true;\n }\n return false;\n}\n\nfunction startAnimation(self, ani, now, isCore) {\n var ani_p = ani._private;\n ani_p.started = true;\n ani_p.startTime = now - ani_p.progress * ani_p.duration;\n}\n\nfunction stepAll(now, cy) {\n var eles = cy._private.aniEles;\n var doneEles = [];\n function stepOne(ele, isCore) {\n var _p = ele._private;\n var current = _p.animation.current;\n var queue = _p.animation.queue;\n var ranAnis = false;\n\n // if nothing currently animating, get something from the queue\n if (current.length === 0) {\n var next = queue.shift();\n if (next) {\n current.push(next);\n }\n }\n var callbacks = function callbacks(_callbacks) {\n for (var j = _callbacks.length - 1; j >= 0; j--) {\n var cb = _callbacks[j];\n cb();\n }\n _callbacks.splice(0, _callbacks.length);\n };\n\n // step and remove if done\n for (var i = current.length - 1; i >= 0; i--) {\n var ani = current[i];\n var ani_p = ani._private;\n if (ani_p.stopped) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.frames);\n continue;\n }\n if (!ani_p.playing && !ani_p.applying) {\n continue;\n }\n\n // an apply() while playing shouldn't do anything\n if (ani_p.playing && ani_p.applying) {\n ani_p.applying = false;\n }\n if (!ani_p.started) {\n startAnimation(ele, ani, now);\n }\n step$1(ele, ani, now, isCore);\n if (ani_p.applying) {\n ani_p.applying = false;\n }\n callbacks(ani_p.frames);\n if (ani_p.step != null) {\n ani_p.step(now);\n }\n if (ani.completed()) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.completes);\n }\n ranAnis = true;\n }\n if (!isCore && current.length === 0 && queue.length === 0) {\n doneEles.push(ele);\n }\n return ranAnis;\n } // stepElement\n\n // handle all eles\n var ranEleAni = false;\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n var handledThisEle = stepOne(ele);\n ranEleAni = ranEleAni || handledThisEle;\n } // each element\n\n var ranCoreAni = stepOne(cy, true);\n\n // notify renderer\n if (ranEleAni || ranCoreAni) {\n if (eles.length > 0) {\n cy.notify('draw', eles);\n } else {\n cy.notify('draw');\n }\n }\n\n // remove elements from list of currently animating if its queues are empty\n eles.unmerge(doneEles);\n cy.emit('step');\n} // stepAll\n\nvar corefn$8 = {\n // pull in animation functions\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop(),\n addToAnimationPool: function addToAnimationPool(eles) {\n var cy = this;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n cy._private.aniEles.merge(eles);\n },\n stopAnimationLoop: function stopAnimationLoop() {\n this._private.animationsRunning = false;\n },\n startAnimationLoop: function startAnimationLoop() {\n var cy = this;\n cy._private.animationsRunning = true;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n // NB the animation loop will exec in headless environments if style enabled\n // and explicit cy.destroy() is necessary to stop the loop\n\n function headlessStep() {\n if (!cy._private.animationsRunning) {\n return;\n }\n requestAnimationFrame(function animationStep(now) {\n stepAll(now, cy);\n headlessStep();\n });\n }\n var renderer = cy.renderer();\n if (renderer && renderer.beforeRender) {\n // let the renderer schedule animations\n renderer.beforeRender(function rendererAnimationStep(willDraw, now) {\n stepAll(now, cy);\n }, renderer.beforeRenderPriorities.animations);\n } else {\n // manage the animation loop ourselves\n headlessStep(); // first call\n }\n }\n};\n\nvar emitterOptions = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(cy, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(cy, evt) {\n evt.cy = cy;\n evt.target = cy;\n },\n callbackContext: function callbackContext(cy, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : cy;\n }\n};\nvar argSelector = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n};\nvar elesfn = {\n createEmitter: function createEmitter() {\n var _p = this._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions, this);\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n this.emitter().on(events, argSelector(selector), callback);\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n this.emitter().removeListener(events, argSelector(selector), callback);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n one: function one(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n once: function once(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n emit: function emit(events, extraParams) {\n this.emitter().emit(events, extraParams);\n return this;\n },\n emitAndNotify: function emitAndNotify(event, eles) {\n this.emit(event);\n this.notify(event, eles);\n return this;\n }\n};\ndefine.eventAliasesOn(elesfn);\n\nvar corefn$7 = {\n png: function png(options) {\n var renderer = this._private.renderer;\n options = options || {};\n return renderer.png(options);\n },\n jpg: function jpg(options) {\n var renderer = this._private.renderer;\n options = options || {};\n options.bg = options.bg || '#fff';\n return renderer.jpg(options);\n }\n};\ncorefn$7.jpeg = corefn$7.jpg;\n\nvar corefn$6 = {\n layout: function layout(options) {\n var cy = this;\n if (options == null) {\n error('Layout options must be specified to make a layout');\n return;\n }\n if (options.name == null) {\n error('A `name` must be specified to make a layout');\n return;\n }\n var name = options.name;\n var Layout = cy.extension('layout', name);\n if (Layout == null) {\n error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?');\n return;\n }\n var eles;\n if (string(options.eles)) {\n eles = cy.$(options.eles);\n } else {\n eles = options.eles != null ? options.eles : cy.$();\n }\n var layout = new Layout(extend({}, options, {\n cy: cy,\n eles: eles\n }));\n return layout;\n }\n};\ncorefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;\n\nvar corefn$5 = {\n notify: function notify(eventName, eventEles) {\n var _p = this._private;\n if (this.batching()) {\n _p.batchNotifications = _p.batchNotifications || {};\n var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();\n if (eventEles != null) {\n eles.merge(eventEles);\n }\n return; // notifications are disabled during batching\n }\n if (!_p.notificationsEnabled) {\n return;\n } // exit on disabled\n\n var renderer = this.renderer();\n\n // exit if destroy() called on core or renderer in between frames #1499 #1528\n if (this.destroyed() || !renderer) {\n return;\n }\n renderer.notify(eventName, eventEles);\n },\n notifications: function notifications(bool) {\n var p = this._private;\n if (bool === undefined) {\n return p.notificationsEnabled;\n } else {\n p.notificationsEnabled = bool ? true : false;\n }\n return this;\n },\n noNotifications: function noNotifications(callback) {\n this.notifications(false);\n callback();\n this.notifications(true);\n },\n batching: function batching() {\n return this._private.batchCount > 0;\n },\n startBatch: function startBatch() {\n var _p = this._private;\n if (_p.batchCount == null) {\n _p.batchCount = 0;\n }\n if (_p.batchCount === 0) {\n _p.batchStyleEles = this.collection();\n _p.batchNotifications = {};\n }\n _p.batchCount++;\n return this;\n },\n endBatch: function endBatch() {\n var _p = this._private;\n if (_p.batchCount === 0) {\n return this;\n }\n _p.batchCount--;\n if (_p.batchCount === 0) {\n // update style for dirty eles\n _p.batchStyleEles.updateStyle();\n var renderer = this.renderer();\n\n // notify the renderer of queued eles and event types\n Object.keys(_p.batchNotifications).forEach(function (eventName) {\n var eles = _p.batchNotifications[eventName];\n if (eles.empty()) {\n renderer.notify(eventName);\n } else {\n renderer.notify(eventName, eles);\n }\n });\n }\n return this;\n },\n batch: function batch(callback) {\n this.startBatch();\n callback();\n this.endBatch();\n return this;\n },\n // for backwards compatibility\n batchData: function batchData(map) {\n var cy = this;\n return this.batch(function () {\n var ids = Object.keys(map);\n for (var i = 0; i < ids.length; i++) {\n var id = ids[i];\n var data = map[id];\n var ele = cy.getElementById(id);\n ele.data(data);\n }\n });\n }\n};\n\nvar rendererDefaults = defaults$g({\n hideEdgesOnViewport: false,\n textureOnViewport: false,\n motionBlur: false,\n motionBlurOpacity: 0.05,\n pixelRatio: undefined,\n desktopTapThreshold: 4,\n touchTapThreshold: 8,\n wheelSensitivity: 1,\n debug: false,\n showFps: false,\n // webgl options\n webgl: false,\n webglDebug: false,\n webglDebugShowAtlases: false,\n // defaults good for mobile\n webglTexSize: 2048,\n webglTexRows: 36,\n webglTexRowsNodes: 18,\n webglBatchSize: 2048,\n webglTexPerBatch: 14,\n webglBgColor: [255, 255, 255]\n});\nvar corefn$4 = {\n renderTo: function renderTo(context, zoom, pan, pxRatio) {\n var r = this._private.renderer;\n r.renderTo(context, zoom, pan, pxRatio);\n return this;\n },\n renderer: function renderer() {\n return this._private.renderer;\n },\n forceRender: function forceRender() {\n this.notify('draw');\n return this;\n },\n resize: function resize() {\n this.invalidateSize();\n this.emitAndNotify('resize');\n return this;\n },\n initRenderer: function initRenderer(options) {\n var cy = this;\n var RendererProto = cy.extension('renderer', options.name);\n if (RendererProto == null) {\n error(\"Can not initialise: No such renderer `\".concat(options.name, \"` found. Did you forget to import it and `cytoscape.use()` it?\"));\n return;\n }\n if (options.wheelSensitivity !== undefined) {\n warn(\"You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.\");\n }\n var rOpts = rendererDefaults(options);\n rOpts.cy = cy;\n cy._private.renderer = new RendererProto(rOpts);\n this.notify('init');\n },\n destroyRenderer: function destroyRenderer() {\n var cy = this;\n cy.notify('destroy'); // destroy the renderer\n\n var domEle = cy.container();\n if (domEle) {\n domEle._cyreg = null;\n while (domEle.childNodes.length > 0) {\n domEle.removeChild(domEle.childNodes[0]);\n }\n }\n cy._private.renderer = null; // to be extra safe, remove the ref\n cy.mutableElements().forEach(function (ele) {\n var _p = ele._private;\n _p.rscratch = {};\n _p.rstyle = {};\n _p.animation.current = [];\n _p.animation.queue = [];\n });\n },\n onRender: function onRender(fn) {\n return this.on('render', fn);\n },\n offRender: function offRender(fn) {\n return this.off('render', fn);\n }\n};\ncorefn$4.invalidateDimensions = corefn$4.resize;\n\nvar corefn$3 = {\n // get a collection\n // - empty collection on no args\n // - collection of elements in the graph on selector arg\n // - guarantee a returned collection when elements or collection specified\n collection: function collection(eles, opts) {\n if (string(eles)) {\n return this.$(eles);\n } else if (elementOrCollection(eles)) {\n return eles.collection();\n } else if (array(eles)) {\n if (!opts) {\n opts = {};\n }\n return new Collection(this, eles, opts.unique, opts.removed);\n }\n return new Collection(this);\n },\n nodes: function nodes(selector) {\n var nodes = this.$(function (ele) {\n return ele.isNode();\n });\n if (selector) {\n return nodes.filter(selector);\n }\n return nodes;\n },\n edges: function edges(selector) {\n var edges = this.$(function (ele) {\n return ele.isEdge();\n });\n if (selector) {\n return edges.filter(selector);\n }\n return edges;\n },\n // search the graph like jQuery\n $: function $(selector) {\n var eles = this._private.elements;\n if (selector) {\n return eles.filter(selector);\n } else {\n return eles.spawnSelf();\n }\n },\n mutableElements: function mutableElements() {\n return this._private.elements;\n }\n};\n\n// aliases\ncorefn$3.elements = corefn$3.filter = corefn$3.$;\n\nvar styfn$8 = {};\n\n// keys for style blocks, e.g. ttfftt\nvar TRUE = 't';\nvar FALSE = 'f';\n\n// (potentially expensive calculation)\n// apply the style to the element based on\n// - its bypass\n// - what selectors match it\nstyfn$8.apply = function (eles) {\n var self = this;\n var _p = self._private;\n var cy = _p.cy;\n var updatedEles = cy.collection();\n for (var ie = 0; ie < eles.length; ie++) {\n var ele = eles[ie];\n var cxtMeta = self.getContextMeta(ele);\n if (cxtMeta.empty) {\n continue;\n }\n var cxtStyle = self.getContextStyle(cxtMeta);\n var app = self.applyContextStyle(cxtMeta, cxtStyle, ele);\n if (ele._private.appliedInitStyle) {\n self.updateTransitions(ele, app.diffProps);\n } else {\n ele._private.appliedInitStyle = true;\n }\n var hintsDiff = self.updateStyleHints(ele);\n if (hintsDiff) {\n updatedEles.push(ele);\n }\n } // for elements\n\n return updatedEles;\n};\nstyfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) {\n var self = this;\n var cache = self._private.propDiffs = self._private.propDiffs || {};\n var dualCxtKey = oldCxtKey + '-' + newCxtKey;\n var cachedVal = cache[dualCxtKey];\n if (cachedVal) {\n return cachedVal;\n }\n var diffProps = [];\n var addedProp = {};\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var oldHasCxt = oldCxtKey[i] === TRUE;\n var newHasCxt = newCxtKey[i] === TRUE;\n var cxtHasDiffed = oldHasCxt !== newHasCxt;\n var cxtHasMappedProps = cxt.mappedProperties.length > 0;\n if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {\n var props = undefined;\n if (cxtHasDiffed && cxtHasMappedProps) {\n props = cxt.properties; // suffices b/c mappedProperties is a subset of properties\n } else if (cxtHasDiffed) {\n props = cxt.properties; // need to check them all\n } else if (cxtHasMappedProps) {\n props = cxt.mappedProperties; // only need to check mapped\n }\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n var name = prop.name;\n\n // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter\n // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result\n // is cached)\n var laterCxtOverrides = false;\n for (var k = i + 1; k < self.length; k++) {\n var laterCxt = self[k];\n var hasLaterCxt = newCxtKey[k] === TRUE;\n if (!hasLaterCxt) {\n continue;\n } // can't override unless the context is active\n\n laterCxtOverrides = laterCxt.properties[prop.name] != null;\n if (laterCxtOverrides) {\n break;\n } // exit early as long as one later context overrides\n }\n if (!addedProp[name] && !laterCxtOverrides) {\n addedProp[name] = true;\n diffProps.push(name);\n }\n } // for props\n } // if\n } // for contexts\n\n cache[dualCxtKey] = diffProps;\n return diffProps;\n};\nstyfn$8.getContextMeta = function (ele) {\n var self = this;\n var cxtKey = '';\n var diffProps;\n var prevKey = ele._private.styleCxtKey || '';\n\n // get the cxt key\n for (var i = 0; i < self.length; i++) {\n var context = self[i];\n var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core'\n\n if (contextSelectorMatches) {\n cxtKey += TRUE;\n } else {\n cxtKey += FALSE;\n }\n } // for context\n\n diffProps = self.getPropertiesDiff(prevKey, cxtKey);\n ele._private.styleCxtKey = cxtKey;\n return {\n key: cxtKey,\n diffPropNames: diffProps,\n empty: diffProps.length === 0\n };\n};\n\n// gets a computed ele style object based on matched contexts\nstyfn$8.getContextStyle = function (cxtMeta) {\n var cxtKey = cxtMeta.key;\n var self = this;\n var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};\n\n // if already computed style, returned cached copy\n if (cxtStyles[cxtKey]) {\n return cxtStyles[cxtKey];\n }\n var style = {\n _private: {\n key: cxtKey\n }\n };\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var hasCxt = cxtKey[i] === TRUE;\n if (!hasCxt) {\n continue;\n }\n for (var j = 0; j < cxt.properties.length; j++) {\n var prop = cxt.properties[j];\n style[prop.name] = prop;\n }\n }\n cxtStyles[cxtKey] = style;\n return style;\n};\nstyfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) {\n var self = this;\n var diffProps = cxtMeta.diffPropNames;\n var retDiffProps = {};\n var types = self.types;\n for (var i = 0; i < diffProps.length; i++) {\n var diffPropName = diffProps[i];\n var cxtProp = cxtStyle[diffPropName];\n var eleProp = ele.pstyle(diffPropName);\n if (!cxtProp) {\n // no context prop means delete\n if (!eleProp) {\n continue; // no existing prop means nothing needs to be removed\n // nb affects initial application on mapped values like control-point-distances\n } else if (eleProp.bypass) {\n cxtProp = {\n name: diffPropName,\n deleteBypassed: true\n };\n } else {\n cxtProp = {\n name: diffPropName,\n \"delete\": true\n };\n }\n }\n\n // save cycles when the context prop doesn't need to be applied\n if (eleProp === cxtProp) {\n continue;\n }\n\n // save cycles when a mapped context prop doesn't need to be applied\n if (cxtProp.mapped === types.fn // context prop is function mapper\n && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one)\n && eleProp.mapping != null // ele prop is a concrete value from from a mapper\n && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper\n ) {\n // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet)\n var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy\n var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss\n\n if (fnValue === mapping.prevFnValue) {\n continue;\n }\n }\n var retDiffProp = retDiffProps[diffPropName] = {\n prev: eleProp\n };\n self.applyParsedProperty(ele, cxtProp);\n retDiffProp.next = ele.pstyle(diffPropName);\n if (retDiffProp.next && retDiffProp.next.bypass) {\n retDiffProp.next = retDiffProp.next.bypassed;\n }\n }\n return {\n diffProps: retDiffProps\n };\n};\nstyfn$8.updateStyleHints = function (ele) {\n var _p = ele._private;\n var self = this;\n var propNames = self.propertyGroupNames;\n var propGrKeys = self.propertyGroupKeys;\n var propHash = function propHash(ele, propNames, seedKey) {\n return self.getPropertiesHash(ele, propNames, seedKey);\n };\n var oldStyleKey = _p.styleKey;\n if (ele.removed()) {\n return false;\n }\n var isNode = _p.group === 'nodes';\n\n // get the style key hashes per prop group\n // but lazily -- only use non-default prop values to reduce the number of hashes\n //\n\n var overriddenStyles = ele._private.style;\n propNames = Object.keys(overriddenStyles);\n for (var i = 0; i < propGrKeys.length; i++) {\n var grKey = propGrKeys[i];\n _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n }\n var updateGrKey1 = function updateGrKey1(val, grKey) {\n return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]);\n };\n var updateGrKey2 = function updateGrKey2(val, grKey) {\n return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]);\n };\n var updateGrKey = function updateGrKey(val, grKey) {\n updateGrKey1(val, grKey);\n updateGrKey2(val, grKey);\n };\n var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) {\n for (var j = 0; j < strVal.length; j++) {\n var ch = strVal.charCodeAt(j);\n updateGrKey1(ch, grKey);\n updateGrKey2(ch, grKey);\n }\n };\n\n // - hashing works on 32 bit ints b/c we use bitwise ops\n // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function)\n // - raise up small numbers so more significant digits are seen by hashing\n // - make small numbers larger than a normal value to avoid collisions\n // - works in practice and it's relatively cheap\n var N = 2000000000;\n var cleanNum = function cleanNum(val) {\n return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;\n };\n for (var _i = 0; _i < propNames.length; _i++) {\n var name = propNames[_i];\n var parsedProp = overriddenStyles[name];\n if (parsedProp == null) {\n continue;\n }\n var propInfo = this.properties[name];\n var type = propInfo.type;\n var _grKey = propInfo.groupKey;\n var normalizedNumberVal = undefined;\n if (propInfo.hashOverride != null) {\n normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);\n } else if (parsedProp.pfValue != null) {\n normalizedNumberVal = parsedProp.pfValue;\n }\n\n // might not be a number if it allows enums\n var numberVal = propInfo.enums == null ? parsedProp.value : null;\n var haveNormNum = normalizedNumberVal != null;\n var haveUnitedNum = numberVal != null;\n var haveNum = haveNormNum || haveUnitedNum;\n var units = parsedProp.units;\n\n // numbers are cheaper to hash than strings\n // 1 hash op vs n hash ops (for length n string)\n if (type.number && haveNum && !type.multiple) {\n var v = haveNormNum ? normalizedNumberVal : numberVal;\n updateGrKey(cleanNum(v), _grKey);\n if (!haveNormNum && units != null) {\n updateGrKeyWStr(units, _grKey);\n }\n } else {\n updateGrKeyWStr(parsedProp.strValue, _grKey);\n }\n }\n\n // overall style key\n //\n\n var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {\n var _grKey2 = propGrKeys[_i2];\n var grHash = _p.styleKeys[_grKey2];\n hash[0] = hashInt(grHash[0], hash[0]);\n hash[1] = hashIntAlt(grHash[1], hash[1]);\n }\n _p.styleKey = combineHashes(hash[0], hash[1]);\n\n // label dims\n //\n\n var sk = _p.styleKeys;\n _p.labelDimsKey = combineHashesArray(sk.labelDimensions);\n var labelKeys = propHash(ele, ['label'], sk.labelDimensions);\n _p.labelKey = combineHashesArray(labelKeys);\n _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));\n if (!isNode) {\n var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions);\n _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);\n _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));\n var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions);\n _p.targetLabelKey = combineHashesArray(targetLabelKeys);\n _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));\n }\n\n // node\n //\n\n if (isNode) {\n var _p$styleKeys = _p.styleKeys,\n nodeBody = _p$styleKeys.nodeBody,\n nodeBorder = _p$styleKeys.nodeBorder,\n nodeOutline = _p$styleKeys.nodeOutline,\n backgroundImage = _p$styleKeys.backgroundImage,\n compound = _p$styleKeys.compound,\n pie = _p$styleKeys.pie,\n stripe = _p$styleKeys.stripe;\n var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie, stripe].filter(function (k) {\n return k != null;\n }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);\n _p.nodeKey = combineHashesArray(nodeKeys);\n _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT;\n _p.hasStripe = stripe != null && stripe[0] !== DEFAULT_HASH_SEED && stripe[1] !== DEFAULT_HASH_SEED_ALT;\n }\n return oldStyleKey !== _p.styleKey;\n};\nstyfn$8.clearStyleHints = function (ele) {\n var _p = ele._private;\n _p.styleCxtKey = '';\n _p.styleKeys = {};\n _p.styleKey = null;\n _p.labelKey = null;\n _p.labelStyleKey = null;\n _p.sourceLabelKey = null;\n _p.sourceLabelStyleKey = null;\n _p.targetLabelKey = null;\n _p.targetLabelStyleKey = null;\n _p.nodeKey = null;\n _p.hasPie = null;\n _p.hasStripe = null;\n};\n\n// apply a property to the style (for internal use)\n// returns whether application was successful\n//\n// now, this function flattens the property, and here's how:\n//\n// for parsedProp:{ bypass: true, deleteBypass: true }\n// no property is generated, instead the bypass property in the\n// element's style is replaced by what's pointed to by the `bypassed`\n// field in the bypass property (i.e. restoring the property the\n// bypass was overriding)\n//\n// for parsedProp:{ mapped: truthy }\n// the generated flattenedProp:{ mapping: prop }\n//\n// for parsedProp:{ bypass: true }\n// the generated flattenedProp:{ bypassed: parsedProp }\nstyfn$8.applyParsedProperty = function (ele, parsedProp) {\n var self = this;\n var prop = parsedProp;\n var style = ele._private.style;\n var flatProp;\n var types = self.types;\n var type = self.properties[prop.name].type;\n var propIsBypass = prop.bypass;\n var origProp = style[prop.name];\n var origPropIsBypass = origProp && origProp.bypass;\n var _p = ele._private;\n var flatPropMapping = 'mapping';\n var getVal = function getVal(p) {\n if (p == null) {\n return null;\n } else if (p.pfValue != null) {\n return p.pfValue;\n } else {\n return p.value;\n }\n };\n var checkTriggers = function checkTriggers() {\n var fromVal = getVal(origProp);\n var toVal = getVal(prop);\n self.checkTriggers(ele, prop.name, fromVal, toVal);\n };\n\n // edge sanity checks to prevent the client from making serious mistakes\n if (parsedProp.name === 'curve-style' && ele.isEdge() && (\n // loops must be bundled beziers\n parsedProp.value !== 'bezier' && ele.isLoop() ||\n // edges connected to compound nodes can not be haystacks\n parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) {\n prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass);\n }\n if (prop[\"delete\"]) {\n // delete the property and use the default value on falsey value\n style[prop.name] = undefined;\n checkTriggers();\n return true;\n }\n if (prop.deleteBypassed) {\n // delete the property that the\n if (!origProp) {\n checkTriggers();\n return true; // can't delete if no prop\n } else if (origProp.bypass) {\n // delete bypassed\n origProp.bypassed = undefined;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypassed\n }\n }\n\n // check if we need to delete the current bypass\n if (prop.deleteBypass) {\n // then this property is just here to indicate we need to delete\n if (!origProp) {\n checkTriggers();\n return true; // property is already not defined\n } else if (origProp.bypass) {\n // then replace the bypass property with the original\n // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary)\n style[prop.name] = origProp.bypassed;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypass\n }\n }\n var printMappingErr = function printMappingErr() {\n warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined');\n };\n\n // put the property in the style objects\n switch (prop.mapped) {\n // flatten the property if mapped\n case types.mapData:\n {\n // flatten the field (e.g. data.foo.bar)\n var fields = prop.field.split('.');\n var fieldVal = _p.data;\n for (var i = 0; i < fields.length && fieldVal; i++) {\n var field = fields[i];\n fieldVal = fieldVal[field];\n }\n if (fieldVal == null) {\n printMappingErr();\n return false;\n }\n var percent;\n if (!number$1(fieldVal)) {\n // then don't apply and fall back on the existing style\n warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)');\n return false;\n } else {\n var fieldWidth = prop.fieldMax - prop.fieldMin;\n if (fieldWidth === 0) {\n // safety check -- not strictly necessary as no props of zero range should be passed here\n percent = 0;\n } else {\n percent = (fieldVal - prop.fieldMin) / fieldWidth;\n }\n }\n\n // make sure to bound percent value\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (type.color) {\n var r1 = prop.valueMin[0];\n var r2 = prop.valueMax[0];\n var g1 = prop.valueMin[1];\n var g2 = prop.valueMax[1];\n var b1 = prop.valueMin[2];\n var b2 = prop.valueMax[2];\n var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];\n var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];\n var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];\n flatProp = {\n // colours are simple, so just create the flat property instead of expensive string parsing\n bypass: prop.bypass,\n // we're a bypass if the mapping property is a bypass\n name: prop.name,\n value: clr,\n strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')'\n };\n } else if (type.number) {\n var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;\n flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);\n } else {\n return false; // can only map to colours and numbers\n }\n if (!flatProp) {\n // if we can't flatten the property, then don't apply the property and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n\n // direct mapping\n case types.data:\n {\n // flatten the field (e.g. data.foo.bar)\n var _fields = prop.field.split('.');\n var _fieldVal = _p.data;\n for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {\n var _field = _fields[_i3];\n _fieldVal = _fieldVal[_field];\n }\n if (_fieldVal != null) {\n flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);\n }\n if (!flatProp) {\n // if we can't flatten the property, then don't apply and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case types.fn:\n {\n var fn = prop.value;\n var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function\n\n prop.prevFnValue = fnRetVal;\n if (fnRetVal == null) {\n warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)');\n return false;\n }\n flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);\n if (!flatProp) {\n warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)');\n return false;\n }\n flatProp.mapping = copy(prop); // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case undefined:\n break;\n // just set the property\n\n default:\n return false;\n // not a valid mapping\n }\n\n // if the property is a bypass property, then link the resultant property to the original one\n if (propIsBypass) {\n if (origPropIsBypass) {\n // then this bypass overrides the existing one\n prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass\n } else {\n // then link the orig prop to the new bypass\n prop.bypassed = origProp;\n }\n style[prop.name] = prop; // and set\n } else {\n // prop is not bypass\n if (origPropIsBypass) {\n // then keep the orig prop (since it's a bypass) and link to the new prop\n origProp.bypassed = prop;\n } else {\n // then just replace the old prop with the new one\n style[prop.name] = prop;\n }\n }\n checkTriggers();\n return true;\n};\nstyfn$8.cleanElements = function (eles, keepBypasses) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n this.clearStyleHints(ele);\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n if (!keepBypasses) {\n ele._private.style = {};\n } else {\n var style = ele._private.style;\n var propNames = Object.keys(style);\n for (var j = 0; j < propNames.length; j++) {\n var propName = propNames[j];\n var eleProp = style[propName];\n if (eleProp != null) {\n if (eleProp.bypass) {\n eleProp.bypassed = null;\n } else {\n style[propName] = null;\n }\n }\n }\n }\n }\n};\n\n// updates the visual style for all elements (useful for manual style modification after init)\nstyfn$8.update = function () {\n var cy = this._private.cy;\n var eles = cy.mutableElements();\n eles.updateStyle();\n};\n\n// diffProps : { name => { prev, next } }\nstyfn$8.updateTransitions = function (ele, diffProps) {\n var self = this;\n var _p = ele._private;\n var props = ele.pstyle('transition-property').value;\n var duration = ele.pstyle('transition-duration').pfValue;\n var delay = ele.pstyle('transition-delay').pfValue;\n if (props.length > 0 && duration > 0) {\n var style = {};\n\n // build up the style to animate towards\n var anyPrev = false;\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var styProp = ele.pstyle(prop);\n var diffProp = diffProps[prop];\n if (!diffProp) {\n continue;\n }\n var prevProp = diffProp.prev;\n var fromProp = prevProp;\n var toProp = diffProp.next != null ? diffProp.next : styProp;\n var diff = false;\n var initVal = undefined;\n var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity)\n\n if (!fromProp) {\n continue;\n }\n\n // consider px values\n if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {\n diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy\n initVal = fromProp.pfValue + initDt * diff;\n\n // consider numerical values\n } else if (number$1(fromProp.value) && number$1(toProp.value)) {\n diff = toProp.value - fromProp.value; // nonzero is truthy\n initVal = fromProp.value + initDt * diff;\n\n // consider colour values\n } else if (array(fromProp.value) && array(toProp.value)) {\n diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];\n initVal = fromProp.strValue;\n }\n\n // the previous value is good for an animation only if it's different\n if (diff) {\n style[prop] = toProp.strValue; // to val\n this.applyBypass(ele, prop, initVal); // from val\n anyPrev = true;\n }\n } // end if props allow ani\n\n // can't transition if there's nothing previous to transition from\n if (!anyPrev) {\n return;\n }\n _p.transitioning = true;\n new Promise$1(function (resolve) {\n if (delay > 0) {\n ele.delayAnimation(delay).play().promise().then(resolve);\n } else {\n resolve();\n }\n }).then(function () {\n return ele.animation({\n style: style,\n duration: duration,\n easing: ele.pstyle('transition-timing-function').value,\n queue: false\n }).play().promise();\n }).then(function () {\n // if( !isBypass ){\n self.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n // }\n\n _p.transitioning = false;\n });\n } else if (_p.transitioning) {\n this.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n _p.transitioning = false;\n }\n};\nstyfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) {\n var prop = this.properties[name];\n var triggerCheck = getTrigger(prop);\n if (ele.removed()) {\n return;\n }\n if (triggerCheck != null && triggerCheck(fromValue, toValue, ele)) {\n onTrigger(prop);\n }\n};\nstyfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) {\n var _this = this;\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersZOrder;\n }, function () {\n _this._private.cy.notify('zorder', ele);\n });\n};\nstyfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBounds;\n }, function (prop) {\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n });\n};\nstyfn$8.checkConnectedEdgesBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBoundsOfConnectedEdges;\n }, function (prop) {\n ele.connectedEdges().forEach(function (edge) {\n edge.dirtyBoundingBoxCache();\n });\n });\n};\nstyfn$8.checkParallelEdgesBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBoundsOfParallelEdges;\n }, function (prop) {\n ele.parallelEdges().forEach(function (pllEdge) {\n pllEdge.dirtyBoundingBoxCache();\n });\n });\n};\nstyfn$8.checkTriggers = function (ele, name, fromValue, toValue) {\n ele.dirtyStyleCache();\n this.checkZOrderTrigger(ele, name, fromValue, toValue);\n this.checkBoundsTrigger(ele, name, fromValue, toValue);\n this.checkConnectedEdgesBoundsTrigger(ele, name, fromValue, toValue);\n this.checkParallelEdgesBoundsTrigger(ele, name, fromValue, toValue);\n};\n\nvar styfn$7 = {};\n\n// bypasses are applied to an existing style on an element, and just tacked on temporarily\n// returns true iff application was successful for at least 1 specified property\nstyfn$7.applyBypass = function (eles, name, value, updateTransitions) {\n var self = this;\n var props = [];\n var isBypass = true;\n\n // put all the properties (can specify one or many) in an array after parsing them\n if (name === '*' || name === '**') {\n // apply to all property names\n\n if (value !== undefined) {\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var _name = prop.name;\n var parsedProp = this.parse(_name, value, true);\n if (parsedProp) {\n props.push(parsedProp);\n }\n }\n }\n } else if (string(name)) {\n // then parse the single property\n var _parsedProp = this.parse(name, value, true);\n if (_parsedProp) {\n props.push(_parsedProp);\n }\n } else if (plainObject(name)) {\n // then parse each property\n var specifiedProps = name;\n updateTransitions = value;\n var names = Object.keys(specifiedProps);\n for (var _i = 0; _i < names.length; _i++) {\n var _name2 = names[_i];\n var _value = specifiedProps[_name2];\n if (_value === undefined) {\n // try camel case name too\n _value = specifiedProps[dash2camel(_name2)];\n }\n if (_value !== undefined) {\n var _parsedProp2 = this.parse(_name2, _value, true);\n if (_parsedProp2) {\n props.push(_parsedProp2);\n }\n }\n }\n } else {\n // can't do anything without well defined properties\n return false;\n }\n\n // we've failed if there are no valid properties\n if (props.length === 0) {\n return false;\n }\n\n // now, apply the bypass properties on the elements\n var ret = false; // return true if at least one succesful bypass applied\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n // for each ele\n var ele = eles[_i2];\n var diffProps = {};\n var diffProp = undefined;\n for (var j = 0; j < props.length; j++) {\n // for each prop\n var _prop = props[j];\n if (updateTransitions) {\n var prevProp = ele.pstyle(_prop.name);\n diffProp = diffProps[_prop.name] = {\n prev: prevProp\n };\n }\n ret = this.applyParsedProperty(ele, copy(_prop)) || ret;\n if (updateTransitions) {\n diffProp.next = ele.pstyle(_prop.name);\n }\n } // for props\n\n if (ret) {\n this.updateStyleHints(ele);\n }\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n\n return ret;\n};\n\n// only useful in specific cases like animation\nstyfn$7.overrideBypass = function (eles, name, value) {\n name = camel2dash(name);\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var prop = ele._private.style[name];\n var type = this.properties[name].type;\n var isColor = type.color;\n var isMulti = type.mutiple;\n var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;\n if (!prop || !prop.bypass) {\n // need a bypass if one doesn't exist\n this.applyBypass(ele, name, value);\n } else {\n prop.value = value;\n if (prop.pfValue != null) {\n prop.pfValue = value;\n }\n if (isColor) {\n prop.strValue = 'rgb(' + value.join(',') + ')';\n } else if (isMulti) {\n prop.strValue = value.join(' ');\n } else {\n prop.strValue = '' + value;\n }\n this.updateStyleHints(ele);\n }\n this.checkTriggers(ele, name, oldValue, value);\n }\n};\nstyfn$7.removeAllBypasses = function (eles, updateTransitions) {\n return this.removeBypasses(eles, this.propertyNames, updateTransitions);\n};\nstyfn$7.removeBypasses = function (eles, props, updateTransitions) {\n var isBypass = true;\n for (var j = 0; j < eles.length; j++) {\n var ele = eles[j];\n var diffProps = {};\n for (var i = 0; i < props.length; i++) {\n var name = props[i];\n var prop = this.properties[name];\n var prevProp = ele.pstyle(prop.name);\n if (!prevProp || !prevProp.bypass) {\n // if a bypass doesn't exist for the prop, nothing needs to be removed\n continue;\n }\n var value = ''; // empty => remove bypass\n var parsedProp = this.parse(name, value, true);\n var diffProp = diffProps[prop.name] = {\n prev: prevProp\n };\n this.applyParsedProperty(ele, parsedProp);\n diffProp.next = ele.pstyle(prop.name);\n } // for props\n\n this.updateStyleHints(ele);\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n};\n\nvar styfn$6 = {};\n\n// gets what an em size corresponds to in pixels relative to a dom element\nstyfn$6.getEmSizeInPixels = function () {\n var px = this.containerCss('font-size');\n if (px != null) {\n return parseFloat(px);\n } else {\n return 1; // for headless\n }\n};\n\n// gets css property from the core container\nstyfn$6.containerCss = function (propName) {\n var cy = this._private.cy;\n var domElement = cy.container();\n var containerWindow = cy.window();\n if (containerWindow && domElement && containerWindow.getComputedStyle) {\n return containerWindow.getComputedStyle(domElement).getPropertyValue(propName);\n }\n};\n\nvar styfn$5 = {};\n\n// gets the rendered style for an element\nstyfn$5.getRenderedStyle = function (ele, prop) {\n if (prop) {\n return this.getStylePropertyValue(ele, prop, true);\n } else {\n return this.getRawStyle(ele, true);\n }\n};\n\n// gets the raw style for an element\nstyfn$5.getRawStyle = function (ele, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var rstyle = {};\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal);\n if (val != null) {\n rstyle[prop.name] = val;\n rstyle[dash2camel(prop.name)] = val;\n }\n }\n return rstyle;\n }\n};\nstyfn$5.getIndexedStyle = function (ele, property, subproperty, index) {\n var pstyle = ele.pstyle(property)[subproperty][index];\n return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0];\n};\nstyfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var prop = self.properties[propName];\n if (prop.alias) {\n prop = prop.pointsTo;\n }\n var type = prop.type;\n var styleProp = ele.pstyle(prop.name);\n if (styleProp) {\n var value = styleProp.value,\n units = styleProp.units,\n strValue = styleProp.strValue;\n if (isRenderedVal && type.number && value != null && number$1(value)) {\n var zoom = ele.cy().zoom();\n var getRenderedValue = function getRenderedValue(val) {\n return val * zoom;\n };\n var getValueStringWithUnits = function getValueStringWithUnits(val, units) {\n return getRenderedValue(val) + units;\n };\n var isArrayValue = array(value);\n var haveUnits = isArrayValue ? units.every(function (u) {\n return u != null;\n }) : units != null;\n if (haveUnits) {\n if (isArrayValue) {\n return value.map(function (v, i) {\n return getValueStringWithUnits(v, units[i]);\n }).join(' ');\n } else {\n return getValueStringWithUnits(value, units);\n }\n } else {\n if (isArrayValue) {\n return value.map(function (v) {\n return string(v) ? v : '' + getRenderedValue(v);\n }).join(' ');\n } else {\n return '' + getRenderedValue(value);\n }\n }\n } else if (strValue != null) {\n return strValue;\n }\n }\n return null;\n }\n};\nstyfn$5.getAnimationStartStyle = function (ele, aniProps) {\n var rstyle = {};\n for (var i = 0; i < aniProps.length; i++) {\n var aniProp = aniProps[i];\n var name = aniProp.name;\n var styleProp = ele.pstyle(name);\n if (styleProp !== undefined) {\n // then make a prop of it\n if (plainObject(styleProp)) {\n styleProp = this.parse(name, styleProp.strValue);\n } else {\n styleProp = this.parse(name, styleProp);\n }\n }\n if (styleProp) {\n rstyle[name] = styleProp;\n }\n }\n return rstyle;\n};\nstyfn$5.getPropsList = function (propsObj) {\n var self = this;\n var rstyle = [];\n var style = propsObj;\n var props = self.properties;\n if (style) {\n var names = Object.keys(style);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var val = style[name];\n var prop = props[name] || props[camel2dash(name)];\n var styleProp = this.parse(prop.name, val);\n if (styleProp) {\n rstyle.push(styleProp);\n }\n }\n }\n return rstyle;\n};\nstyfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) {\n var hash = seed.slice();\n var name, val, strVal, chVal;\n var i, j;\n for (i = 0; i < propNames.length; i++) {\n name = propNames[i];\n val = ele.pstyle(name, false);\n if (val == null) {\n continue;\n } else if (val.pfValue != null) {\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n } else {\n strVal = val.strValue;\n for (j = 0; j < strVal.length; j++) {\n chVal = strVal.charCodeAt(j);\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n }\n }\n }\n return hash;\n};\nstyfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;\n\nvar styfn$4 = {};\nstyfn$4.appendFromJson = function (json) {\n var style = this;\n for (var i = 0; i < json.length; i++) {\n var context = json[i];\n var selector = context.selector;\n var props = context.style || context.css;\n var names = Object.keys(props);\n style.selector(selector); // apply selector\n\n for (var j = 0; j < names.length; j++) {\n var name = names[j];\n var value = props[name];\n style.css(name, value); // apply property\n }\n }\n return style;\n};\n\n// accessible cy.style() function\nstyfn$4.fromJson = function (json) {\n var style = this;\n style.resetToDefault();\n style.appendFromJson(json);\n return style;\n};\n\n// get json from cy.style() api\nstyfn$4.json = function () {\n var json = [];\n for (var i = this.defaultLength; i < this.length; i++) {\n var cxt = this[i];\n var selector = cxt.selector;\n var props = cxt.properties;\n var css = {};\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n css[prop.name] = prop.strValue;\n }\n json.push({\n selector: !selector ? 'core' : selector.toString(),\n style: css\n });\n }\n return json;\n};\n\nvar styfn$3 = {};\nstyfn$3.appendFromString = function (string) {\n var self = this;\n var style = this;\n var remaining = '' + string;\n var selAndBlockStr;\n var blockRem;\n var propAndValStr;\n\n // remove comments from the style string\n remaining = remaining.replace(/[/][*](\\s|.)+?[*][/]/g, '');\n function removeSelAndBlockFromRemaining() {\n // remove the parsed selector and block from the remaining text to parse\n if (remaining.length > selAndBlockStr.length) {\n remaining = remaining.substr(selAndBlockStr.length);\n } else {\n remaining = '';\n }\n }\n function removePropAndValFromRem() {\n // remove the parsed property and value from the remaining block text to parse\n if (blockRem.length > propAndValStr.length) {\n blockRem = blockRem.substr(propAndValStr.length);\n } else {\n blockRem = '';\n }\n }\n for (;;) {\n var nothingLeftToParse = remaining.match(/^\\s*$/);\n if (nothingLeftToParse) {\n break;\n }\n var selAndBlock = remaining.match(/^\\s*((?:.|\\s)+?)\\s*\\{((?:.|\\s)+?)\\}/);\n if (!selAndBlock) {\n warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining);\n break;\n }\n selAndBlockStr = selAndBlock[0];\n\n // parse the selector\n var selectorStr = selAndBlock[1];\n if (selectorStr !== 'core') {\n var selector = new Selector(selectorStr);\n if (selector.invalid) {\n warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr);\n\n // skip this selector and block\n removeSelAndBlockFromRemaining();\n continue;\n }\n }\n\n // parse the block of properties and values\n var blockStr = selAndBlock[2];\n var invalidBlock = false;\n blockRem = blockStr;\n var props = [];\n for (;;) {\n var _nothingLeftToParse = blockRem.match(/^\\s*$/);\n if (_nothingLeftToParse) {\n break;\n }\n var propAndVal = blockRem.match(/^\\s*(.+?)\\s*:\\s*(.+?)(?:\\s*;|\\s*$)/);\n if (!propAndVal) {\n warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr);\n invalidBlock = true;\n break;\n }\n propAndValStr = propAndVal[0];\n var propStr = propAndVal[1];\n var valStr = propAndVal[2];\n var prop = self.properties[propStr];\n if (!prop) {\n warn('Skipping property: Invalid property name in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n var parsedProp = style.parse(propStr, valStr);\n if (!parsedProp) {\n warn('Skipping property: Invalid property definition in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n props.push({\n name: propStr,\n val: valStr\n });\n removePropAndValFromRem();\n }\n if (invalidBlock) {\n removeSelAndBlockFromRemaining();\n break;\n }\n\n // put the parsed block in the style\n style.selector(selectorStr);\n for (var i = 0; i < props.length; i++) {\n var _prop = props[i];\n style.css(_prop.name, _prop.val);\n }\n removeSelAndBlockFromRemaining();\n }\n return style;\n};\nstyfn$3.fromString = function (string) {\n var style = this;\n style.resetToDefault();\n style.appendFromString(string);\n return style;\n};\n\nvar styfn$2 = {};\n(function () {\n var number$1 = number;\n var rgba = rgbaNoBackRefs;\n var hsla = hslaNoBackRefs;\n var hex3$1 = hex3;\n var hex6$1 = hex6;\n var data = function data(prefix) {\n return '^' + prefix + '\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)$';\n };\n var mapData = function mapData(prefix) {\n var mapArg = number$1 + '|\\\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1;\n return '^' + prefix + '\\\\s*\\\\(([\\\\w\\\\.]+)\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + mapArg + ')\\\\s*\\\\,\\\\s*(' + mapArg + ')\\\\)$';\n };\n var urlRegexes = ['^url\\\\s*\\\\(\\\\s*[\\'\"]?(.+?)[\\'\"]?\\\\s*\\\\)$', '^(none)$', '^(.+)$'];\n\n // each visual style property has a type and needs to be validated according to it\n styfn$2.types = {\n time: {\n number: true,\n min: 0,\n units: 's|ms',\n implicitUnits: 'ms'\n },\n percent: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%'\n },\n percentages: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%',\n multiple: true\n },\n zeroOneNumber: {\n number: true,\n min: 0,\n max: 1,\n unitless: true\n },\n zeroOneNumbers: {\n number: true,\n min: 0,\n max: 1,\n unitless: true,\n multiple: true\n },\n nOneOneNumber: {\n number: true,\n min: -1,\n max: 1,\n unitless: true\n },\n nonNegativeInt: {\n number: true,\n min: 0,\n integer: true,\n unitless: true\n },\n nonNegativeNumber: {\n number: true,\n min: 0,\n unitless: true\n },\n position: {\n enums: ['parent', 'origin']\n },\n nodeSize: {\n number: true,\n min: 0,\n enums: ['label']\n },\n number: {\n number: true,\n unitless: true\n },\n numbers: {\n number: true,\n unitless: true,\n multiple: true\n },\n positiveNumber: {\n number: true,\n unitless: true,\n min: 0,\n strictMin: true\n },\n size: {\n number: true,\n min: 0\n },\n bidirectionalSize: {\n number: true\n },\n // allows negative\n bidirectionalSizeMaybePercent: {\n number: true,\n allowPercent: true\n },\n // allows negative\n bidirectionalSizes: {\n number: true,\n multiple: true\n },\n // allows negative\n sizeMaybePercent: {\n number: true,\n min: 0,\n allowPercent: true\n },\n axisDirection: {\n enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto']\n },\n axisDirectionExplicit: {\n enums: ['leftward', 'rightward', 'upward', 'downward']\n },\n axisDirectionPrimary: {\n enums: ['horizontal', 'vertical']\n },\n paddingRelativeTo: {\n enums: ['width', 'height', 'average', 'min', 'max']\n },\n bgWH: {\n number: true,\n min: 0,\n allowPercent: true,\n enums: ['auto'],\n multiple: true\n },\n bgPos: {\n number: true,\n allowPercent: true,\n multiple: true\n },\n bgRelativeTo: {\n enums: ['inner', 'include-padding'],\n multiple: true\n },\n bgRepeat: {\n enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'],\n multiple: true\n },\n bgFit: {\n enums: ['none', 'contain', 'cover'],\n multiple: true\n },\n bgCrossOrigin: {\n enums: ['anonymous', 'use-credentials', 'null'],\n multiple: true\n },\n bgClip: {\n enums: ['none', 'node'],\n multiple: true\n },\n bgContainment: {\n enums: ['inside', 'over'],\n multiple: true\n },\n boxSelection: {\n enums: ['contain', 'overlap', 'none']\n },\n color: {\n color: true\n },\n colors: {\n color: true,\n multiple: true\n },\n fill: {\n enums: ['solid', 'linear-gradient', 'radial-gradient']\n },\n bool: {\n enums: ['yes', 'no']\n },\n bools: {\n enums: ['yes', 'no'],\n multiple: true\n },\n lineStyle: {\n enums: ['solid', 'dotted', 'dashed']\n },\n lineCap: {\n enums: ['butt', 'round', 'square']\n },\n linePosition: {\n enums: ['center', 'inside', 'outside']\n },\n lineJoin: {\n enums: ['round', 'bevel', 'miter']\n },\n borderStyle: {\n enums: ['solid', 'dotted', 'dashed', 'double']\n },\n curveStyle: {\n enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi', 'round-segments', 'round-taxi']\n },\n radiusType: {\n enums: ['arc-radius', 'influence-radius'],\n multiple: true\n },\n fontFamily: {\n regex: '^([\\\\w- \\\\\"]+(?:\\\\s*,\\\\s*[\\\\w- \\\\\"]+)*)$'\n },\n fontStyle: {\n enums: ['italic', 'normal', 'oblique']\n },\n fontWeight: {\n enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900]\n },\n textDecoration: {\n enums: ['none', 'underline', 'overline', 'line-through']\n },\n textTransform: {\n enums: ['none', 'uppercase', 'lowercase']\n },\n textWrap: {\n enums: ['none', 'wrap', 'ellipsis']\n },\n textOverflowWrap: {\n enums: ['whitespace', 'anywhere']\n },\n textBackgroundShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'circle']\n },\n nodeShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon']\n },\n overlayShape: {\n enums: ['roundrectangle', 'round-rectangle', 'ellipse']\n },\n cornerRadius: {\n number: true,\n min: 0,\n units: 'px|em',\n implicitUnits: 'px',\n enums: ['auto']\n },\n compoundIncludeLabels: {\n enums: ['include', 'exclude']\n },\n arrowShape: {\n enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none']\n },\n arrowFill: {\n enums: ['filled', 'hollow']\n },\n arrowWidth: {\n number: true,\n units: '%|px|em',\n implicitUnits: 'px',\n enums: ['match-line']\n },\n display: {\n enums: ['element', 'none']\n },\n visibility: {\n enums: ['hidden', 'visible']\n },\n zCompoundDepth: {\n enums: ['bottom', 'orphan', 'auto', 'top']\n },\n zIndexCompare: {\n enums: ['auto', 'manual']\n },\n valign: {\n enums: ['top', 'center', 'bottom']\n },\n halign: {\n enums: ['left', 'center', 'right']\n },\n justification: {\n enums: ['left', 'center', 'right', 'auto']\n },\n text: {\n string: true\n },\n data: {\n mapping: true,\n regex: data('data')\n },\n layoutData: {\n mapping: true,\n regex: data('layoutData')\n },\n scratch: {\n mapping: true,\n regex: data('scratch')\n },\n mapData: {\n mapping: true,\n regex: mapData('mapData')\n },\n mapLayoutData: {\n mapping: true,\n regex: mapData('mapLayoutData')\n },\n mapScratch: {\n mapping: true,\n regex: mapData('mapScratch')\n },\n fn: {\n mapping: true,\n fn: true\n },\n url: {\n regexes: urlRegexes,\n singleRegexMatchValue: true\n },\n urls: {\n regexes: urlRegexes,\n singleRegexMatchValue: true,\n multiple: true\n },\n propList: {\n propList: true\n },\n angle: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad'\n },\n textRotation: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad',\n enums: ['none', 'autorotate']\n },\n polygonPointList: {\n number: true,\n multiple: true,\n evenMultiple: true,\n min: -1,\n max: 1,\n unitless: true\n },\n edgeDistances: {\n enums: ['intersection', 'node-position', 'endpoints']\n },\n edgeEndpoint: {\n number: true,\n multiple: true,\n units: '%|px|em|deg|rad',\n implicitUnits: 'px',\n enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'],\n singleEnum: true,\n validate: function validate(valArr, unitsArr) {\n switch (valArr.length) {\n case 2:\n // can be % or px only\n return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad';\n case 1:\n // can be enum, deg, or rad only\n return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad';\n default:\n return false;\n }\n }\n },\n easing: {\n regexes: ['^(spring)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$', '^(cubic-bezier)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$'],\n enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ']\n },\n gradientDirection: {\n enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order\n ]\n },\n boundsExpansion: {\n number: true,\n multiple: true,\n min: 0,\n validate: function validate(valArr) {\n var length = valArr.length;\n return length === 1 || length === 2 || length === 4;\n }\n }\n };\n var diff = {\n zeroNonZero: function zeroNonZero(val1, val2) {\n if ((val1 == null || val2 == null) && val1 !== val2) {\n return true; // null cases could represent any value\n }\n if (val1 == 0 && val2 != 0) {\n return true;\n } else if (val1 != 0 && val2 == 0) {\n return true;\n } else {\n return false;\n }\n },\n any: function any(val1, val2) {\n return val1 != val2;\n },\n emptyNonEmpty: function emptyNonEmpty(str1, str2) {\n var empty1 = emptyString(str1);\n var empty2 = emptyString(str2);\n return empty1 && !empty2 || !empty1 && empty2;\n }\n };\n\n // define visual style properties\n //\n // - n.b. adding a new group of props may require updates to updateStyleHints()\n // - adding new props to an existing group gets handled automatically\n\n var t = styfn$2.types;\n var mainLabel = [{\n name: 'label',\n type: t.text,\n triggersBounds: diff.any,\n triggersZOrder: diff.emptyNonEmpty\n }, {\n name: 'text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }];\n var sourceLabel = [{\n name: 'source-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'source-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var targetLabel = [{\n name: 'target-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'target-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var labelDimensions = [{\n name: 'font-family',\n type: t.fontFamily,\n triggersBounds: diff.any\n }, {\n name: 'font-style',\n type: t.fontStyle,\n triggersBounds: diff.any\n }, {\n name: 'font-weight',\n type: t.fontWeight,\n triggersBounds: diff.any\n }, {\n name: 'font-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-transform',\n type: t.textTransform,\n triggersBounds: diff.any\n }, {\n name: 'text-wrap',\n type: t.textWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-overflow-wrap',\n type: t.textOverflowWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-max-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'line-height',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }];\n var commonLabel = [{\n name: 'text-valign',\n type: t.valign,\n triggersBounds: diff.any\n }, {\n name: 'text-halign',\n type: t.halign,\n triggersBounds: diff.any\n }, {\n name: 'color',\n type: t.color\n }, {\n name: 'text-outline-color',\n type: t.color\n }, {\n name: 'text-outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-color',\n type: t.color\n }, {\n name: 'text-background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-border-color',\n type: t.color\n }, {\n name: 'text-border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-style',\n type: t.borderStyle,\n triggersBounds: diff.any\n }, {\n name: 'text-background-shape',\n type: t.textBackgroundShape,\n triggersBounds: diff.any\n }, {\n name: 'text-justification',\n type: t.justification\n }, {\n name: 'box-select-labels',\n type: t.bool,\n triggersBounds: diff.any\n }];\n var behavior = [{\n name: 'events',\n type: t.bool,\n triggersZOrder: diff.any\n }, {\n name: 'text-events',\n type: t.bool,\n triggersZOrder: diff.any\n }, {\n name: 'box-selection',\n type: t.boxSelection,\n triggersZOrder: diff.any\n }];\n var visibility = [{\n name: 'display',\n type: t.display,\n triggersZOrder: diff.any,\n triggersBounds: diff.any,\n triggersBoundsOfConnectedEdges: diff.any,\n triggersBoundsOfParallelEdges: function triggersBoundsOfParallelEdges(fromValue, toValue, ele) {\n if (fromValue === toValue) {\n return false;\n }\n\n // only if edge is bundled bezier (so as not to affect performance of other edges)\n return ele.pstyle('curve-style').value === 'bezier';\n }\n }, {\n name: 'visibility',\n type: t.visibility,\n triggersZOrder: diff.any\n }, {\n name: 'opacity',\n type: t.zeroOneNumber,\n triggersZOrder: diff.zeroNonZero\n }, {\n name: 'text-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'min-zoomed-font-size',\n type: t.size\n }, {\n name: 'z-compound-depth',\n type: t.zCompoundDepth,\n triggersZOrder: diff.any\n }, {\n name: 'z-index-compare',\n type: t.zIndexCompare,\n triggersZOrder: diff.any\n }, {\n name: 'z-index',\n type: t.number,\n triggersZOrder: diff.any\n }];\n var overlay = [{\n name: 'overlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'overlay-color',\n type: t.color\n }, {\n name: 'overlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'overlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }, {\n name: 'overlay-corner-radius',\n type: t.cornerRadius\n }];\n var underlay = [{\n name: 'underlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'underlay-color',\n type: t.color\n }, {\n name: 'underlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'underlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }, {\n name: 'underlay-corner-radius',\n type: t.cornerRadius\n }];\n var transition = [{\n name: 'transition-property',\n type: t.propList\n }, {\n name: 'transition-duration',\n type: t.time\n }, {\n name: 'transition-delay',\n type: t.time\n }, {\n name: 'transition-timing-function',\n type: t.easing\n }];\n var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) {\n if (parsedProp.value === 'label') {\n return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway)\n } else {\n return parsedProp.pfValue;\n }\n };\n var nodeBody = [{\n name: 'height',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'width',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'shape',\n type: t.nodeShape,\n triggersBounds: diff.any\n }, {\n name: 'shape-polygon-points',\n type: t.polygonPointList,\n triggersBounds: diff.any\n }, {\n name: 'corner-radius',\n type: t.cornerRadius\n }, {\n name: 'background-color',\n type: t.color\n }, {\n name: 'background-fill',\n type: t.fill\n }, {\n name: 'background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'background-blacken',\n type: t.nOneOneNumber\n }, {\n name: 'background-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'background-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'background-gradient-direction',\n type: t.gradientDirection\n }, {\n name: 'padding',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'padding-relative-to',\n type: t.paddingRelativeTo,\n triggersBounds: diff.any\n }, {\n name: 'bounds-expansion',\n type: t.boundsExpansion,\n triggersBounds: diff.any\n }];\n var nodeBorder = [{\n name: 'border-color',\n type: t.color\n }, {\n name: 'border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'border-style',\n type: t.borderStyle\n }, {\n name: 'border-cap',\n type: t.lineCap\n }, {\n name: 'border-join',\n type: t.lineJoin\n }, {\n name: 'border-dash-pattern',\n type: t.numbers\n }, {\n name: 'border-dash-offset',\n type: t.number\n }, {\n name: 'border-position',\n type: t.linePosition\n }];\n var nodeOutline = [{\n name: 'outline-color',\n type: t.color\n }, {\n name: 'outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'outline-style',\n type: t.borderStyle\n }, {\n name: 'outline-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var backgroundImage = [{\n name: 'background-image',\n type: t.urls\n }, {\n name: 'background-image-crossorigin',\n type: t.bgCrossOrigin\n }, {\n name: 'background-image-opacity',\n type: t.zeroOneNumbers\n }, {\n name: 'background-image-containment',\n type: t.bgContainment\n }, {\n name: 'background-image-smoothing',\n type: t.bools\n }, {\n name: 'background-position-x',\n type: t.bgPos\n }, {\n name: 'background-position-y',\n type: t.bgPos\n }, {\n name: 'background-width-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-height-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-repeat',\n type: t.bgRepeat\n }, {\n name: 'background-fit',\n type: t.bgFit\n }, {\n name: 'background-clip',\n type: t.bgClip\n }, {\n name: 'background-width',\n type: t.bgWH\n }, {\n name: 'background-height',\n type: t.bgWH\n }, {\n name: 'background-offset-x',\n type: t.bgPos\n }, {\n name: 'background-offset-y',\n type: t.bgPos\n }];\n var compound = [{\n name: 'position',\n type: t.position,\n triggersBounds: diff.any\n }, {\n name: 'compound-sizing-wrt-labels',\n type: t.compoundIncludeLabels,\n triggersBounds: diff.any\n }, {\n name: 'min-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-left',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-right',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-top',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-bottom',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }];\n var edgeLine = [{\n name: 'line-style',\n type: t.lineStyle\n }, {\n name: 'line-color',\n type: t.color\n }, {\n name: 'line-fill',\n type: t.fill\n }, {\n name: 'line-cap',\n type: t.lineCap\n }, {\n name: 'line-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'line-dash-pattern',\n type: t.numbers\n }, {\n name: 'line-dash-offset',\n type: t.number\n }, {\n name: 'line-outline-width',\n type: t.size\n }, {\n name: 'line-outline-color',\n type: t.color\n }, {\n name: 'line-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'line-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'curve-style',\n type: t.curveStyle,\n triggersBounds: diff.any,\n triggersBoundsOfParallelEdges: function triggersBoundsOfParallelEdges(fromValue, toValue) {\n if (fromValue === toValue) {\n return false;\n } // must have diff\n\n return fromValue === 'bezier' ||\n // remove from bundle\n toValue === 'bezier'; // add to bundle\n }\n }, {\n name: 'haystack-radius',\n type: t.zeroOneNumber,\n triggersBounds: diff.any\n }, {\n name: 'source-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'target-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'control-point-step-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'control-point-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'control-point-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'segment-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-radii',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'radius-type',\n type: t.radiusType,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn',\n type: t.bidirectionalSizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn-min-distance',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'taxi-direction',\n type: t.axisDirection,\n triggersBounds: diff.any\n }, {\n name: 'taxi-radius',\n type: t.number,\n triggersBounds: diff.any\n }, {\n name: 'edge-distances',\n type: t.edgeDistances,\n triggersBounds: diff.any\n }, {\n name: 'arrow-scale',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }, {\n name: 'loop-direction',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'loop-sweep',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'source-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'target-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }];\n var ghost = [{\n name: 'ghost',\n type: t.bool,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-opacity',\n type: t.zeroOneNumber\n }];\n var core = [{\n name: 'selection-box-color',\n type: t.color\n }, {\n name: 'selection-box-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'selection-box-border-color',\n type: t.color\n }, {\n name: 'selection-box-border-width',\n type: t.size\n }, {\n name: 'active-bg-color',\n type: t.color\n }, {\n name: 'active-bg-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'active-bg-size',\n type: t.size\n }, {\n name: 'outside-texture-bg-color',\n type: t.color\n }, {\n name: 'outside-texture-bg-opacity',\n type: t.zeroOneNumber\n }];\n\n // pie backgrounds for nodes\n var pie = [];\n styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use)\n pie.push({\n name: 'pie-size',\n type: t.sizeMaybePercent\n });\n pie.push({\n name: 'pie-hole',\n type: t.sizeMaybePercent\n });\n pie.push({\n name: 'pie-start-angle',\n type: t.angle\n });\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n pie.push({\n name: 'pie-' + i + '-background-color',\n type: t.color\n });\n pie.push({\n name: 'pie-' + i + '-background-size',\n type: t.percent\n });\n pie.push({\n name: 'pie-' + i + '-background-opacity',\n type: t.zeroOneNumber\n });\n }\n\n // stripe backgrounds for nodes\n var stripe = [];\n styfn$2.stripeBackgroundN = 16; // because the stripe properties are numbered, give access to a constant N (for renderer use)\n stripe.push({\n name: 'stripe-size',\n type: t.sizeMaybePercent\n });\n stripe.push({\n name: 'stripe-direction',\n type: t.axisDirectionPrimary\n });\n for (var _i = 1; _i <= styfn$2.stripeBackgroundN; _i++) {\n stripe.push({\n name: 'stripe-' + _i + '-background-color',\n type: t.color\n });\n stripe.push({\n name: 'stripe-' + _i + '-background-size',\n type: t.percent\n });\n stripe.push({\n name: 'stripe-' + _i + '-background-opacity',\n type: t.zeroOneNumber\n });\n }\n\n // edge arrows\n var edgeArrow = [];\n var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target'];\n [{\n name: 'arrow-shape',\n type: t.arrowShape,\n triggersBounds: diff.any\n }, {\n name: 'arrow-color',\n type: t.color\n }, {\n name: 'arrow-fill',\n type: t.arrowFill\n }, {\n name: 'arrow-width',\n type: t.arrowWidth\n }].forEach(function (prop) {\n arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var type = prop.type,\n triggersBounds = prop.triggersBounds;\n edgeArrow.push({\n name: name,\n type: type,\n triggersBounds: triggersBounds\n });\n });\n }, {});\n var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, stripe, compound, edgeLine, edgeArrow, core);\n var propGroups = styfn$2.propertyGroups = {\n // common to all eles\n behavior: behavior,\n transition: transition,\n visibility: visibility,\n overlay: overlay,\n underlay: underlay,\n ghost: ghost,\n // labels\n commonLabel: commonLabel,\n labelDimensions: labelDimensions,\n mainLabel: mainLabel,\n sourceLabel: sourceLabel,\n targetLabel: targetLabel,\n // node props\n nodeBody: nodeBody,\n nodeBorder: nodeBorder,\n nodeOutline: nodeOutline,\n backgroundImage: backgroundImage,\n pie: pie,\n stripe: stripe,\n compound: compound,\n // edge props\n edgeLine: edgeLine,\n edgeArrow: edgeArrow,\n core: core\n };\n var propGroupNames = styfn$2.propertyGroupNames = {};\n var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);\n propGroupKeys.forEach(function (key) {\n propGroupNames[key] = propGroups[key].map(function (prop) {\n return prop.name;\n });\n propGroups[key].forEach(function (prop) {\n return prop.groupKey = key;\n });\n });\n\n // define aliases\n var aliases = styfn$2.aliases = [{\n name: 'content',\n pointsTo: 'label'\n }, {\n name: 'control-point-distance',\n pointsTo: 'control-point-distances'\n }, {\n name: 'control-point-weight',\n pointsTo: 'control-point-weights'\n }, {\n name: 'segment-distance',\n pointsTo: 'segment-distances'\n }, {\n name: 'segment-weight',\n pointsTo: 'segment-weights'\n }, {\n name: 'segment-radius',\n pointsTo: 'segment-radii'\n }, {\n name: 'edge-text-rotation',\n pointsTo: 'text-rotation'\n }, {\n name: 'padding-left',\n pointsTo: 'padding'\n }, {\n name: 'padding-right',\n pointsTo: 'padding'\n }, {\n name: 'padding-top',\n pointsTo: 'padding'\n }, {\n name: 'padding-bottom',\n pointsTo: 'padding'\n }];\n\n // list of property names\n styfn$2.propertyNames = props.map(function (p) {\n return p.name;\n });\n\n // allow access of properties by name ( e.g. style.properties.height )\n for (var _i2 = 0; _i2 < props.length; _i2++) {\n var prop = props[_i2];\n props[prop.name] = prop; // allow lookup by name\n }\n\n // map aliases\n for (var _i3 = 0; _i3 < aliases.length; _i3++) {\n var alias = aliases[_i3];\n var pointsToProp = props[alias.pointsTo];\n var aliasProp = {\n name: alias.name,\n alias: true,\n pointsTo: pointsToProp\n };\n\n // add alias prop for parsing\n props.push(aliasProp);\n props[alias.name] = aliasProp; // allow lookup by name\n }\n})();\nstyfn$2.getDefaultProperty = function (name) {\n return this.getDefaultProperties()[name];\n};\nstyfn$2.getDefaultProperties = function () {\n var _p = this._private;\n if (_p.defaultProperties != null) {\n return _p.defaultProperties;\n }\n var rawProps = extend({\n // core props\n 'selection-box-color': '#ddd',\n 'selection-box-opacity': 0.65,\n 'selection-box-border-color': '#aaa',\n 'selection-box-border-width': 1,\n 'active-bg-color': 'black',\n 'active-bg-opacity': 0.15,\n 'active-bg-size': 30,\n 'outside-texture-bg-color': '#000',\n 'outside-texture-bg-opacity': 0.125,\n // common node/edge props\n 'events': 'yes',\n 'text-events': 'no',\n 'text-valign': 'top',\n 'text-halign': 'center',\n 'text-justification': 'auto',\n 'line-height': 1,\n 'color': '#000',\n 'box-selection': 'contain',\n 'text-outline-color': '#000',\n 'text-outline-width': 0,\n 'text-outline-opacity': 1,\n 'text-opacity': 1,\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'text-wrap': 'none',\n 'text-overflow-wrap': 'whitespace',\n 'text-max-width': 9999,\n 'text-background-color': '#000',\n 'text-background-opacity': 0,\n 'text-background-shape': 'rectangle',\n 'text-background-padding': 0,\n 'text-border-opacity': 0,\n 'text-border-width': 0,\n 'text-border-style': 'solid',\n 'text-border-color': '#000',\n 'font-family': 'Helvetica Neue, Helvetica, sans-serif',\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': 16,\n 'min-zoomed-font-size': 0,\n 'text-rotation': 'none',\n 'source-text-rotation': 'none',\n 'target-text-rotation': 'none',\n 'visibility': 'visible',\n 'display': 'element',\n 'opacity': 1,\n 'z-compound-depth': 'auto',\n 'z-index-compare': 'auto',\n 'z-index': 0,\n 'label': '',\n 'text-margin-x': 0,\n 'text-margin-y': 0,\n 'source-label': '',\n 'source-text-offset': 0,\n 'source-text-margin-x': 0,\n 'source-text-margin-y': 0,\n 'target-label': '',\n 'target-text-offset': 0,\n 'target-text-margin-x': 0,\n 'target-text-margin-y': 0,\n 'overlay-opacity': 0,\n 'overlay-color': '#000',\n 'overlay-padding': 10,\n 'overlay-shape': 'round-rectangle',\n 'overlay-corner-radius': 'auto',\n 'underlay-opacity': 0,\n 'underlay-color': '#000',\n 'underlay-padding': 10,\n 'underlay-shape': 'round-rectangle',\n 'underlay-corner-radius': 'auto',\n 'transition-property': 'none',\n 'transition-duration': 0,\n 'transition-delay': 0,\n 'transition-timing-function': 'linear',\n 'box-select-labels': 'no',\n // node props\n 'background-blacken': 0,\n 'background-color': '#999',\n 'background-fill': 'solid',\n 'background-opacity': 1,\n 'background-image': 'none',\n 'background-image-crossorigin': 'anonymous',\n 'background-image-opacity': 1,\n 'background-image-containment': 'inside',\n 'background-image-smoothing': 'yes',\n 'background-position-x': '50%',\n 'background-position-y': '50%',\n 'background-offset-x': 0,\n 'background-offset-y': 0,\n 'background-width-relative-to': 'include-padding',\n 'background-height-relative-to': 'include-padding',\n 'background-repeat': 'no-repeat',\n 'background-fit': 'none',\n 'background-clip': 'node',\n 'background-width': 'auto',\n 'background-height': 'auto',\n 'border-color': '#000',\n 'border-opacity': 1,\n 'border-width': 0,\n 'border-style': 'solid',\n 'border-dash-pattern': [4, 2],\n 'border-dash-offset': 0,\n 'border-cap': 'butt',\n 'border-join': 'miter',\n 'border-position': 'center',\n 'outline-color': '#999',\n 'outline-opacity': 1,\n 'outline-width': 0,\n 'outline-offset': 0,\n 'outline-style': 'solid',\n 'height': 30,\n 'width': 30,\n 'shape': 'ellipse',\n 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1',\n 'corner-radius': 'auto',\n 'bounds-expansion': 0,\n // node gradient\n 'background-gradient-direction': 'to-bottom',\n 'background-gradient-stop-colors': '#999',\n 'background-gradient-stop-positions': '0%',\n // ghost props\n 'ghost': 'no',\n 'ghost-offset-y': 0,\n 'ghost-offset-x': 0,\n 'ghost-opacity': 0,\n // compound props\n 'padding': 0,\n 'padding-relative-to': 'width',\n 'position': 'origin',\n 'compound-sizing-wrt-labels': 'include',\n 'min-width': 0,\n 'min-width-bias-left': 0,\n 'min-width-bias-right': 0,\n 'min-height': 0,\n 'min-height-bias-top': 0,\n 'min-height-bias-bottom': 0\n }, {\n // node pie bg\n 'pie-size': '100%',\n 'pie-hole': 0,\n 'pie-start-angle': '0deg'\n }, [{\n name: 'pie-{{i}}-background-color',\n value: 'black'\n }, {\n name: 'pie-{{i}}-background-size',\n value: '0%'\n }, {\n name: 'pie-{{i}}-background-opacity',\n value: 1\n }].reduce(function (css, prop) {\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n var name = prop.name.replace('{{i}}', i);\n var val = prop.value;\n css[name] = val;\n }\n return css;\n }, {}), {\n // node stripes bg\n 'stripe-size': '100%',\n 'stripe-direction': 'horizontal'\n }, [{\n name: 'stripe-{{i}}-background-color',\n value: 'black'\n }, {\n name: 'stripe-{{i}}-background-size',\n value: '0%'\n }, {\n name: 'stripe-{{i}}-background-opacity',\n value: 1\n }].reduce(function (css, prop) {\n for (var i = 1; i <= styfn$2.stripeBackgroundN; i++) {\n var name = prop.name.replace('{{i}}', i);\n var val = prop.value;\n css[name] = val;\n }\n return css;\n }, {}), {\n // edge props\n 'line-style': 'solid',\n 'line-color': '#999',\n 'line-fill': 'solid',\n 'line-cap': 'butt',\n 'line-opacity': 1,\n 'line-outline-width': 0,\n 'line-outline-color': '#000',\n 'line-gradient-stop-colors': '#999',\n 'line-gradient-stop-positions': '0%',\n 'control-point-step-size': 40,\n 'control-point-weights': 0.5,\n 'segment-weights': 0.5,\n 'segment-distances': 20,\n 'segment-radii': 15,\n 'radius-type': 'arc-radius',\n 'taxi-turn': '50%',\n 'taxi-radius': 15,\n 'taxi-turn-min-distance': 10,\n 'taxi-direction': 'auto',\n 'edge-distances': 'intersection',\n 'curve-style': 'haystack',\n 'haystack-radius': 0,\n 'arrow-scale': 1,\n 'loop-direction': '-45deg',\n 'loop-sweep': '-90deg',\n 'source-distance-from-node': 0,\n 'target-distance-from-node': 0,\n 'source-endpoint': 'outside-to-node',\n 'target-endpoint': 'outside-to-node',\n 'line-dash-pattern': [6, 3],\n 'line-dash-offset': 0\n }, [{\n name: 'arrow-shape',\n value: 'none'\n }, {\n name: 'arrow-color',\n value: '#999'\n }, {\n name: 'arrow-fill',\n value: 'filled'\n }, {\n name: 'arrow-width',\n value: 1\n }].reduce(function (css, prop) {\n styfn$2.arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var val = prop.value;\n css[name] = val;\n });\n return css;\n }, {}));\n var parsedProps = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n if (prop.pointsTo) {\n continue;\n }\n var name = prop.name;\n var val = rawProps[name];\n var parsedProp = this.parse(name, val);\n parsedProps[name] = parsedProp;\n }\n _p.defaultProperties = parsedProps;\n return _p.defaultProperties;\n};\nstyfn$2.addDefaultStylesheet = function () {\n this.selector(':parent').css({\n 'shape': 'rectangle',\n 'padding': 10,\n 'background-color': '#eee',\n 'border-color': '#ccc',\n 'border-width': 1\n }).selector('edge').css({\n 'width': 3\n }).selector(':loop').css({\n 'curve-style': 'bezier'\n }).selector('edge:compound').css({\n 'curve-style': 'bezier',\n 'source-endpoint': 'outside-to-line',\n 'target-endpoint': 'outside-to-line'\n }).selector(':selected').css({\n 'background-color': '#0169D9',\n 'line-color': '#0169D9',\n 'source-arrow-color': '#0169D9',\n 'target-arrow-color': '#0169D9',\n 'mid-source-arrow-color': '#0169D9',\n 'mid-target-arrow-color': '#0169D9'\n }).selector(':parent:selected').css({\n 'background-color': '#CCE1F9',\n 'border-color': '#aec8e5'\n }).selector(':active').css({\n 'overlay-color': 'black',\n 'overlay-padding': 10,\n 'overlay-opacity': 0.25\n });\n this.defaultLength = this.length;\n};\n\nvar styfn$1 = {};\n\n// a caching layer for property parsing\nstyfn$1.parse = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n\n // function values can't be cached in all cases, and there isn't much benefit of caching them anyway\n if (fn$6(value)) {\n return self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat;\n var bypassKey = propIsBypass ? 't' : 'f';\n var valueKey = '' + value;\n var argHash = hashStrings(name, valueKey, bypassKey, flatKey);\n var propCache = self.propCache = self.propCache || [];\n var ret;\n if (!(ret = propCache[argHash])) {\n ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n\n // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden\n // - mappings can't be shared b/c mappings are per-element\n if (propIsBypass || propIsFlat === 'mapping') {\n // need a copy since props are mutated later in their lifecycles\n ret = copy(ret);\n if (ret) {\n ret.value = copy(ret.value); // because it could be an array, e.g. colour\n }\n }\n return ret;\n};\nstyfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) {\n var prop = this.parseImpl(name, value, propIsBypass, propIsFlat);\n if (!prop && value != null) {\n warn(\"The style property `\".concat(name, \": \").concat(value, \"` is invalid\"));\n }\n if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') {\n warn('The style value of `label` is deprecated for `' + prop.name + '`');\n }\n return prop;\n};\n\n// parse a property; return null on invalid; return parsed property otherwise\n// fields :\n// - name : the name of the property\n// - value : the parsed, native-typed value of the property\n// - strValue : a string value that represents the property value in valid css\n// - bypass : true iff the property is a bypass property\nstyfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName')\n\n var property = self.properties[name];\n var passedValue = value;\n var types = self.types;\n if (!property) {\n return null;\n } // return null on property of unknown name\n if (value === undefined) {\n return null;\n } // can't assign undefined\n\n // the property may be an alias\n if (property.alias) {\n property = property.pointsTo;\n name = property.name;\n }\n var valueIsString = string(value);\n if (valueIsString) {\n // trim the value to make parsing easier\n value = value.trim();\n }\n var type = property.type;\n if (!type) {\n return null;\n } // no type, no luck\n\n // check if bypass is null or empty string (i.e. indication to delete bypass property)\n if (propIsBypass && (value === '' || value === null)) {\n return {\n name: name,\n value: value,\n bypass: true,\n deleteBypass: true\n };\n }\n\n // check if value is a function used as a mapper\n if (fn$6(value)) {\n return {\n name: name,\n value: value,\n strValue: 'fn',\n mapped: types.fn,\n bypass: propIsBypass\n };\n }\n\n // check if value is mapped\n var data, mapData;\n if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n\n var mapped = types.data;\n return {\n name: name,\n value: data,\n strValue: '' + value,\n mapped: mapped,\n field: data[1],\n bypass: propIsBypass\n };\n } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n if (type.multiple) {\n return false;\n } // impossible to map to num\n\n var _mapped = types.mapData;\n\n // we can map only if the type is a colour or a number\n if (!(type.color || type.number)) {\n return false;\n }\n var valueMin = this.parse(name, mapData[4]); // parse to validate\n if (!valueMin || valueMin.mapped) {\n return false;\n } // can't be invalid or mapped\n\n var valueMax = this.parse(name, mapData[5]); // parse to validate\n if (!valueMax || valueMax.mapped) {\n return false;\n } // can't be invalid or mapped\n\n // check if valueMin and valueMax are the same\n if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {\n warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`');\n return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range\n } else if (type.color) {\n var c1 = valueMin.value;\n var c2 = valueMax.value;\n var same = c1[0] === c2[0] // red\n && c1[1] === c2[1] // green\n && c1[2] === c2[2] // blue\n && (\n // optional alpha\n c1[3] === c2[3] // same alpha outright\n || (c1[3] == null || c1[3] === 1 // full opacity for colour 1?\n ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2?\n );\n if (same) {\n return false;\n } // can't make a mapper without a range\n }\n return {\n name: name,\n value: mapData,\n strValue: '' + value,\n mapped: _mapped,\n field: mapData[1],\n fieldMin: parseFloat(mapData[2]),\n // min & max are numeric\n fieldMax: parseFloat(mapData[3]),\n valueMin: valueMin.value,\n valueMax: valueMax.value,\n bypass: propIsBypass\n };\n }\n if (type.multiple && propIsFlat !== 'multiple') {\n var vals;\n if (valueIsString) {\n vals = value.split(/\\s+/);\n } else if (array(value)) {\n vals = value;\n } else {\n vals = [value];\n }\n if (type.evenMultiple && vals.length % 2 !== 0) {\n return null;\n }\n var valArr = [];\n var unitsArr = [];\n var pfValArr = [];\n var strVal = '';\n var hasEnum = false;\n for (var i = 0; i < vals.length; i++) {\n var p = self.parse(name, vals[i], propIsBypass, 'multiple');\n hasEnum = hasEnum || string(p.value);\n valArr.push(p.value);\n pfValArr.push(p.pfValue != null ? p.pfValue : p.value);\n unitsArr.push(p.units);\n strVal += (i > 0 ? ' ' : '') + p.strValue;\n }\n if (type.validate && !type.validate(valArr, unitsArr)) {\n return null;\n }\n if (type.singleEnum && hasEnum) {\n if (valArr.length === 1 && string(valArr[0])) {\n return {\n name: name,\n value: valArr[0],\n strValue: valArr[0],\n bypass: propIsBypass\n };\n } else {\n return null;\n }\n }\n return {\n name: name,\n value: valArr,\n pfValue: pfValArr,\n strValue: strVal,\n bypass: propIsBypass,\n units: unitsArr\n };\n }\n\n // several types also allow enums\n var checkEnums = function checkEnums() {\n for (var _i = 0; _i < type.enums.length; _i++) {\n var en = type.enums[_i];\n if (en === value) {\n return {\n name: name,\n value: value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null;\n };\n\n // check the type and return the appropriate object\n if (type.number) {\n var units;\n var implicitUnits = 'px'; // not set => px\n\n if (type.units) {\n // use specified units if set\n units = type.units;\n }\n if (type.implicitUnits) {\n implicitUnits = type.implicitUnits;\n }\n if (!type.unitless) {\n if (valueIsString) {\n var unitsRegex = 'px|em' + (type.allowPercent ? '|\\\\%' : '');\n if (units) {\n unitsRegex = units;\n } // only allow explicit units if so set\n var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$');\n if (match) {\n value = match[1];\n units = match[2] || implicitUnits;\n }\n } else if (!units || type.implicitUnits) {\n units = implicitUnits; // implicitly px if unspecified\n }\n }\n value = parseFloat(value);\n\n // if not a number and enums not allowed, then the value is invalid\n if (isNaN(value) && type.enums === undefined) {\n return null;\n }\n\n // check if this number type also accepts special keywords in place of numbers\n // (i.e. `left`, `auto`, etc)\n if (isNaN(value) && type.enums !== undefined) {\n value = passedValue;\n return checkEnums();\n }\n\n // check if value must be an integer\n if (type.integer && !integer(value)) {\n return null;\n }\n\n // check value is within range\n if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) {\n return null;\n }\n var ret = {\n name: name,\n value: value,\n strValue: '' + value + (units ? units : ''),\n units: units,\n bypass: propIsBypass\n };\n\n // normalise value in pixels\n if (type.unitless || units !== 'px' && units !== 'em') {\n ret.pfValue = value;\n } else {\n ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value;\n }\n\n // normalise value in ms\n if (units === 'ms' || units === 's') {\n ret.pfValue = units === 'ms' ? value : 1000 * value;\n }\n\n // normalise value in rad\n if (units === 'deg' || units === 'rad') {\n ret.pfValue = units === 'rad' ? value : deg2rad(value);\n }\n\n // normalize value in %\n if (units === '%') {\n ret.pfValue = value / 100;\n }\n return ret;\n } else if (type.propList) {\n var props = [];\n var propsStr = '' + value;\n if (propsStr === 'none') ; else {\n // go over each prop\n\n var propsSplit = propsStr.split(/\\s*,\\s*|\\s+/);\n for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {\n var propName = propsSplit[_i2].trim();\n if (self.properties[propName]) {\n props.push(propName);\n } else {\n warn('`' + propName + '` is not a valid property name');\n }\n }\n if (props.length === 0) {\n return null;\n }\n }\n return {\n name: name,\n value: props,\n strValue: props.length === 0 ? 'none' : props.join(' '),\n bypass: propIsBypass\n };\n } else if (type.color) {\n var tuple = color2tuple(value);\n if (!tuple) {\n return null;\n }\n return {\n name: name,\n value: tuple,\n pfValue: tuple,\n strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')',\n // n.b. no spaces b/c of multiple support\n bypass: propIsBypass\n };\n } else if (type.regex || type.regexes) {\n // first check enums\n if (type.enums) {\n var enumProp = checkEnums();\n if (enumProp) {\n return enumProp;\n }\n }\n var regexes = type.regexes ? type.regexes : [type.regex];\n for (var _i3 = 0; _i3 < regexes.length; _i3++) {\n var regex = new RegExp(regexes[_i3]); // make a regex from the type string\n var m = regex.exec(value);\n if (m) {\n // regex matches\n return {\n name: name,\n value: type.singleRegexMatchValue ? m[1] : m,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null; // didn't match any\n } else if (type.string) {\n // just return\n return {\n name: name,\n value: '' + value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n } else if (type.enums) {\n // check enums last because it's a combo type in others\n return checkEnums();\n } else {\n return null; // not a type we can handle\n }\n};\n\nvar _Style = function Style(cy) {\n if (!(this instanceof _Style)) {\n return new _Style(cy);\n }\n if (!core(cy)) {\n error('A style must have a core reference');\n return;\n }\n this._private = {\n cy: cy,\n coreStyle: {}\n };\n this.length = 0;\n this.resetToDefault();\n};\nvar styfn = _Style.prototype;\nstyfn.instanceString = function () {\n return 'style';\n};\n\n// remove all contexts\nstyfn.clear = function () {\n var _p = this._private;\n var cy = _p.cy;\n var eles = cy.elements();\n for (var i = 0; i < this.length; i++) {\n this[i] = undefined;\n }\n this.length = 0;\n _p.contextStyles = {};\n _p.propDiffs = {};\n this.cleanElements(eles, true);\n eles.forEach(function (ele) {\n var ele_p = ele[0]._private;\n ele_p.styleDirty = true;\n ele_p.appliedInitStyle = false;\n });\n return this; // chaining\n};\nstyfn.resetToDefault = function () {\n this.clear();\n this.addDefaultStylesheet();\n return this;\n};\n\n// builds a style object for the 'core' selector\nstyfn.core = function (propName) {\n return this._private.coreStyle[propName] || this.getDefaultProperty(propName);\n};\n\n// create a new context from the specified selector string and switch to that context\nstyfn.selector = function (selectorStr) {\n // 'core' is a special case and does not need a selector\n var selector = selectorStr === 'core' ? null : new Selector(selectorStr);\n var i = this.length++; // new context means new index\n this[i] = {\n selector: selector,\n properties: [],\n mappedProperties: [],\n index: i\n };\n return this; // chaining\n};\n\n// add one or many css rules to the current context\nstyfn.css = function () {\n var self = this;\n var args = arguments;\n if (args.length === 1) {\n var map = args[0];\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var mapVal = map[prop.name];\n if (mapVal === undefined) {\n mapVal = map[dash2camel(prop.name)];\n }\n if (mapVal !== undefined) {\n this.cssRule(prop.name, mapVal);\n }\n }\n } else if (args.length === 2) {\n this.cssRule(args[0], args[1]);\n }\n\n // do nothing if args are invalid\n\n return this; // chaining\n};\nstyfn.style = styfn.css;\n\n// add a single css rule to the current context\nstyfn.cssRule = function (name, value) {\n // name-value pair\n var property = this.parse(name, value);\n\n // add property to current context if valid\n if (property) {\n var i = this.length - 1;\n this[i].properties.push(property);\n this[i].properties[property.name] = property; // allow access by name as well\n\n if (property.name.match(/pie-(\\d+)-background-size/) && property.value) {\n this._private.hasPie = true;\n }\n if (property.name.match(/stripe-(\\d+)-background-size/) && property.value) {\n this._private.hasStripe = true;\n }\n if (property.mapped) {\n this[i].mappedProperties.push(property);\n }\n\n // add to core style if necessary\n var currentSelectorIsCore = !this[i].selector;\n if (currentSelectorIsCore) {\n this._private.coreStyle[property.name] = property;\n }\n }\n return this; // chaining\n};\nstyfn.append = function (style) {\n if (stylesheet(style)) {\n style.appendToStyle(this);\n } else if (array(style)) {\n this.appendFromJson(style);\n } else if (string(style)) {\n this.appendFromString(style);\n } // you probably wouldn't want to append a Style, since you'd duplicate the default parts\n\n return this;\n};\n\n// static function\n_Style.fromJson = function (cy, json) {\n var style = new _Style(cy);\n style.fromJson(json);\n return style;\n};\n_Style.fromString = function (cy, string) {\n return new _Style(cy).fromString(string);\n};\n[styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) {\n extend(styfn, props);\n});\n_Style.types = styfn.types;\n_Style.properties = styfn.properties;\n_Style.propertyGroups = styfn.propertyGroups;\n_Style.propertyGroupNames = styfn.propertyGroupNames;\n_Style.propertyGroupKeys = styfn.propertyGroupKeys;\n\nvar corefn$2 = {\n style: function style(newStyle) {\n if (newStyle) {\n var s = this.setStyle(newStyle);\n s.update();\n }\n return this._private.style;\n },\n setStyle: function setStyle(style) {\n var _p = this._private;\n if (stylesheet(style)) {\n _p.style = style.generateStyle(this);\n } else if (array(style)) {\n _p.style = _Style.fromJson(this, style);\n } else if (string(style)) {\n _p.style = _Style.fromString(this, style);\n } else {\n _p.style = _Style(this);\n }\n return _p.style;\n },\n // e.g. cy.data() changed => recalc ele mappers\n updateStyle: function updateStyle() {\n this.mutableElements().updateStyle(); // just send to all eles\n }\n};\n\nvar defaultSelectionType = 'single';\nvar corefn$1 = {\n autolock: function autolock(bool) {\n if (bool !== undefined) {\n this._private.autolock = bool ? true : false;\n } else {\n return this._private.autolock;\n }\n return this; // chaining\n },\n autoungrabify: function autoungrabify(bool) {\n if (bool !== undefined) {\n this._private.autoungrabify = bool ? true : false;\n } else {\n return this._private.autoungrabify;\n }\n return this; // chaining\n },\n autounselectify: function autounselectify(bool) {\n if (bool !== undefined) {\n this._private.autounselectify = bool ? true : false;\n } else {\n return this._private.autounselectify;\n }\n return this; // chaining\n },\n selectionType: function selectionType(selType) {\n var _p = this._private;\n if (_p.selectionType == null) {\n _p.selectionType = defaultSelectionType;\n }\n if (selType !== undefined) {\n if (selType === 'additive' || selType === 'single') {\n _p.selectionType = selType;\n }\n } else {\n return _p.selectionType;\n }\n return this;\n },\n panningEnabled: function panningEnabled(bool) {\n if (bool !== undefined) {\n this._private.panningEnabled = bool ? true : false;\n } else {\n return this._private.panningEnabled;\n }\n return this; // chaining\n },\n userPanningEnabled: function userPanningEnabled(bool) {\n if (bool !== undefined) {\n this._private.userPanningEnabled = bool ? true : false;\n } else {\n return this._private.userPanningEnabled;\n }\n return this; // chaining\n },\n zoomingEnabled: function zoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.zoomingEnabled = bool ? true : false;\n } else {\n return this._private.zoomingEnabled;\n }\n return this; // chaining\n },\n userZoomingEnabled: function userZoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.userZoomingEnabled = bool ? true : false;\n } else {\n return this._private.userZoomingEnabled;\n }\n return this; // chaining\n },\n boxSelectionEnabled: function boxSelectionEnabled(bool) {\n if (bool !== undefined) {\n this._private.boxSelectionEnabled = bool ? true : false;\n } else {\n return this._private.boxSelectionEnabled;\n }\n return this; // chaining\n },\n pan: function pan() {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n switch (args.length) {\n case 0:\n // .pan()\n return pan;\n case 1:\n if (string(args[0])) {\n // .pan('x')\n dim = args[0];\n return pan[dim];\n } else if (plainObject(args[0])) {\n // .pan({ x: 0, y: 100 })\n if (!this._private.panningEnabled) {\n return this;\n }\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x = x;\n }\n if (number$1(y)) {\n pan.y = y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .pan('x', 100)\n if (!this._private.panningEnabled) {\n return this;\n }\n dim = args[0];\n val = args[1];\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] = val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n this.notify('viewport');\n return this; // chaining\n },\n panBy: function panBy(arg0, arg1) {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n if (!this._private.panningEnabled) {\n return this;\n }\n switch (args.length) {\n case 1:\n if (plainObject(arg0)) {\n // .panBy({ x: 0, y: 100 })\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x += x;\n }\n if (number$1(y)) {\n pan.y += y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .panBy('x', 100)\n dim = arg0;\n val = arg1;\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] += val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n this.notify('viewport');\n return this; // chaining\n },\n gc: function gc() {\n this.notify('gc');\n },\n fit: function fit(elements, padding) {\n var viewportState = this.getFitViewport(elements, padding);\n if (viewportState) {\n var _p = this._private;\n _p.zoom = viewportState.zoom;\n _p.pan = viewportState.pan;\n this.emit('pan zoom viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n getFitViewport: function getFitViewport(elements, padding) {\n if (number$1(elements) && padding === undefined) {\n // elements is optional\n padding = elements;\n elements = undefined;\n }\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return;\n }\n var bb;\n if (string(elements)) {\n var sel = elements;\n elements = this.$(sel);\n } else if (boundingBox(elements)) {\n // assume bb\n var bbe = elements;\n bb = {\n x1: bbe.x1,\n y1: bbe.y1,\n x2: bbe.x2,\n y2: bbe.y2\n };\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elementOrCollection(elements) && elements.empty()) {\n return;\n } // can't fit to nothing\n\n bb = bb || elements.boundingBox();\n var w = this.width();\n var h = this.height();\n var zoom;\n padding = number$1(padding) ? padding : 0;\n if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {\n zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h);\n\n // crop zoom\n zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;\n zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;\n var pan = {\n // now pan to middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return {\n zoom: zoom,\n pan: pan\n };\n }\n return;\n },\n zoomRange: function zoomRange(min, max) {\n var _p = this._private;\n if (max == null) {\n var opts = min;\n min = opts.min;\n max = opts.max;\n }\n if (number$1(min) && number$1(max) && min <= max) {\n _p.minZoom = min;\n _p.maxZoom = max;\n } else if (number$1(min) && max === undefined && min <= _p.maxZoom) {\n _p.minZoom = min;\n } else if (number$1(max) && min === undefined && max >= _p.minZoom) {\n _p.maxZoom = max;\n }\n return this;\n },\n minZoom: function minZoom(zoom) {\n if (zoom === undefined) {\n return this._private.minZoom;\n } else {\n return this.zoomRange({\n min: zoom\n });\n }\n },\n maxZoom: function maxZoom(zoom) {\n if (zoom === undefined) {\n return this._private.maxZoom;\n } else {\n return this.zoomRange({\n max: zoom\n });\n }\n },\n getZoomedViewport: function getZoomedViewport(params) {\n var _p = this._private;\n var currentPan = _p.pan;\n var currentZoom = _p.zoom;\n var pos; // in rendered px\n var zoom;\n var bail = false;\n if (!_p.zoomingEnabled) {\n // zooming disabled\n bail = true;\n }\n if (number$1(params)) {\n // then set the zoom\n zoom = params;\n } else if (plainObject(params)) {\n // then zoom about a point\n zoom = params.level;\n if (params.position != null) {\n pos = modelToRenderedPosition$1(params.position, currentZoom, currentPan);\n } else if (params.renderedPosition != null) {\n pos = params.renderedPosition;\n }\n if (pos != null && !_p.panningEnabled) {\n // panning disabled\n bail = true;\n }\n }\n\n // crop zoom\n zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;\n zoom = zoom < _p.minZoom ? _p.minZoom : zoom;\n\n // can't zoom with invalid params\n if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {\n return null;\n }\n if (pos != null) {\n // set zoom about position\n var pan1 = currentPan;\n var zoom1 = currentZoom;\n var zoom2 = zoom;\n var pan2 = {\n x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,\n y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y\n };\n return {\n zoomed: true,\n panned: true,\n zoom: zoom2,\n pan: pan2\n };\n } else {\n // just set the zoom\n return {\n zoomed: true,\n panned: false,\n zoom: zoom,\n pan: currentPan\n };\n }\n },\n zoom: function zoom(params) {\n if (params === undefined) {\n // get\n return this._private.zoom;\n } else {\n // set\n var vp = this.getZoomedViewport(params);\n var _p = this._private;\n if (vp == null || !vp.zoomed) {\n return this;\n }\n _p.zoom = vp.zoom;\n if (vp.panned) {\n _p.pan.x = vp.pan.x;\n _p.pan.y = vp.pan.y;\n }\n this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport');\n this.notify('viewport');\n return this; // chaining\n }\n },\n viewport: function viewport(opts) {\n var _p = this._private;\n var zoomDefd = true;\n var panDefd = true;\n var events = []; // to trigger\n var zoomFailed = false;\n var panFailed = false;\n if (!opts) {\n return this;\n }\n if (!number$1(opts.zoom)) {\n zoomDefd = false;\n }\n if (!plainObject(opts.pan)) {\n panDefd = false;\n }\n if (!zoomDefd && !panDefd) {\n return this;\n }\n if (zoomDefd) {\n var z = opts.zoom;\n if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {\n zoomFailed = true;\n } else {\n _p.zoom = z;\n events.push('zoom');\n }\n }\n if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {\n var p = opts.pan;\n if (number$1(p.x)) {\n _p.pan.x = p.x;\n panFailed = false;\n }\n if (number$1(p.y)) {\n _p.pan.y = p.y;\n panFailed = false;\n }\n if (!panFailed) {\n events.push('pan');\n }\n }\n if (events.length > 0) {\n events.push('viewport');\n this.emit(events.join(' '));\n this.notify('viewport');\n }\n return this; // chaining\n },\n center: function center(elements) {\n var pan = this.getCenterPan(elements);\n if (pan) {\n this._private.pan = pan;\n this.emit('pan viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n getCenterPan: function getCenterPan(elements, zoom) {\n if (!this._private.panningEnabled) {\n return;\n }\n if (string(elements)) {\n var selector = elements;\n elements = this.mutableElements().filter(selector);\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elements.length === 0) {\n return;\n } // can't centre pan to nothing\n\n var bb = elements.boundingBox();\n var w = this.width();\n var h = this.height();\n zoom = zoom === undefined ? this._private.zoom : zoom;\n var pan = {\n // middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return pan;\n },\n reset: function reset() {\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return this;\n }\n this.viewport({\n pan: {\n x: 0,\n y: 0\n },\n zoom: 1\n });\n return this; // chaining\n },\n invalidateSize: function invalidateSize() {\n this._private.sizeCache = null;\n },\n size: function size() {\n var _p = this._private;\n var container = _p.container;\n var cy = this;\n return _p.sizeCache = _p.sizeCache || (container ? function () {\n var style = cy.window().getComputedStyle(container);\n var val = function val(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n return {\n width: container.clientWidth - val('padding-left') - val('padding-right'),\n height: container.clientHeight - val('padding-top') - val('padding-bottom')\n };\n }() : {\n // fallback if no container (not 0 b/c can be used for dividing etc)\n width: 1,\n height: 1\n });\n },\n width: function width() {\n return this.size().width;\n },\n height: function height() {\n return this.size().height;\n },\n extent: function extent() {\n var pan = this._private.pan;\n var zoom = this._private.zoom;\n var rb = this.renderedExtent();\n var b = {\n x1: (rb.x1 - pan.x) / zoom,\n x2: (rb.x2 - pan.x) / zoom,\n y1: (rb.y1 - pan.y) / zoom,\n y2: (rb.y2 - pan.y) / zoom\n };\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n return b;\n },\n renderedExtent: function renderedExtent() {\n var width = this.width();\n var height = this.height();\n return {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height,\n w: width,\n h: height\n };\n },\n multiClickDebounceTime: function multiClickDebounceTime(_int) {\n if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime;\n return this; // chaining\n }\n};\n\n// aliases\ncorefn$1.centre = corefn$1.center;\n\n// backwards compatibility\ncorefn$1.autolockNodes = corefn$1.autolock;\ncorefn$1.autoungrabifyNodes = corefn$1.autoungrabify;\n\nvar fn = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n })\n};\n\n// aliases\nfn.attr = fn.data;\nfn.removeAttr = fn.removeData;\n\nvar Core = function Core(opts) {\n var cy = this;\n opts = extend({}, opts);\n var container = opts.container;\n\n // allow for passing a wrapped jquery object\n // e.g. cytoscape({ container: $('#cy') })\n if (container && !htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery\n reg = reg || {};\n if (reg && reg.cy) {\n reg.cy.destroy();\n reg = {}; // old instance => replace reg completely\n }\n var readies = reg.readies = reg.readies || [];\n if (container) {\n container._cyreg = reg;\n } // make sure container assoc'd reg points to this cy\n reg.cy = cy;\n var head = _window !== undefined && container !== undefined && !opts.headless;\n var options = opts;\n options.layout = extend({\n name: head ? 'grid' : 'null'\n }, options.layout);\n options.renderer = extend({\n name: head ? 'canvas' : 'null'\n }, options.renderer);\n var defVal = function defVal(def, val, altVal) {\n if (val !== undefined) {\n return val;\n } else if (altVal !== undefined) {\n return altVal;\n } else {\n return def;\n }\n };\n var _p = this._private = {\n container: container,\n // html dom ele container\n ready: false,\n // whether ready has been triggered\n options: options,\n // cached options\n elements: new Collection(this),\n // elements in the graph\n listeners: [],\n // list of listeners\n aniEles: new Collection(this),\n // elements being animated\n data: options.data || {},\n // data for the core\n scratch: {},\n // scratch object for core\n layout: null,\n renderer: null,\n destroyed: false,\n // whether destroy was called\n notificationsEnabled: true,\n // whether notifications are sent to the renderer\n minZoom: 1e-50,\n maxZoom: 1e50,\n zoomingEnabled: defVal(true, options.zoomingEnabled),\n userZoomingEnabled: defVal(true, options.userZoomingEnabled),\n panningEnabled: defVal(true, options.panningEnabled),\n userPanningEnabled: defVal(true, options.userPanningEnabled),\n boxSelectionEnabled: defVal(true, options.boxSelectionEnabled),\n autolock: defVal(false, options.autolock, options.autolockNodes),\n autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes),\n autounselectify: defVal(false, options.autounselectify),\n styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled,\n zoom: number$1(options.zoom) ? options.zoom : 1,\n pan: {\n x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0,\n y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0\n },\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n hasCompoundNodes: false,\n multiClickDebounceTime: defVal(250, options.multiClickDebounceTime)\n };\n this.createEmitter();\n\n // set selection type\n this.selectionType(options.selectionType);\n\n // init zoom bounds\n this.zoomRange({\n min: options.minZoom,\n max: options.maxZoom\n });\n var loadExtData = function loadExtData(extData, next) {\n var anyIsPromise = extData.some(promise);\n if (anyIsPromise) {\n return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init\n } else {\n next(extData); // exec synchronously for convenience\n }\n };\n\n // start with the default stylesheet so we have something before loading an external stylesheet\n if (_p.styleEnabled) {\n cy.setStyle([]);\n }\n\n // create the renderer\n var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options\n cy.initRenderer(rendererOptions);\n var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) {\n cy.notifications(false);\n\n // remove old elements\n var oldEles = cy.mutableElements();\n if (oldEles.length > 0) {\n oldEles.remove();\n }\n if (elements != null) {\n if (plainObject(elements) || array(elements)) {\n cy.add(elements);\n }\n }\n cy.one('layoutready', function (e) {\n cy.notifications(true);\n cy.emit(e); // we missed this event by turning notifications off, so pass it on\n\n cy.one('load', onload);\n cy.emitAndNotify('load');\n }).one('layoutstop', function () {\n cy.one('done', ondone);\n cy.emit('done');\n });\n var layoutOpts = extend({}, cy._private.options.layout);\n layoutOpts.eles = cy.elements();\n cy.layout(layoutOpts).run();\n };\n loadExtData([options.style, options.elements], function (thens) {\n var initStyle = thens[0];\n var initEles = thens[1];\n\n // init style\n if (_p.styleEnabled) {\n cy.style().append(initStyle);\n }\n\n // initial load\n setElesAndLayout(initEles, function () {\n // onready\n cy.startAnimationLoop();\n _p.ready = true;\n\n // if a ready callback is specified as an option, the bind it\n if (fn$6(options.ready)) {\n cy.on('ready', options.ready);\n }\n\n // bind all the ready handlers registered before creating this instance\n for (var i = 0; i < readies.length; i++) {\n var fn = readies[i];\n cy.on('ready', fn);\n }\n if (reg) {\n reg.readies = [];\n } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc\n\n cy.emit('ready');\n }, options.done);\n });\n};\nvar corefn = Core.prototype; // short alias\n\nextend(corefn, {\n instanceString: function instanceString() {\n return 'core';\n },\n isReady: function isReady() {\n return this._private.ready;\n },\n destroyed: function destroyed() {\n return this._private.destroyed;\n },\n ready: function ready(fn) {\n if (this.isReady()) {\n this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event\n } else {\n this.on('ready', fn);\n }\n return this;\n },\n destroy: function destroy() {\n var cy = this;\n if (cy.destroyed()) return;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n this.emit('destroy');\n cy._private.destroyed = true;\n return cy;\n },\n hasElementWithId: function hasElementWithId(id) {\n return this._private.elements.hasElementWithId(id);\n },\n getElementById: function getElementById(id) {\n return this._private.elements.getElementById(id);\n },\n hasCompoundNodes: function hasCompoundNodes() {\n return this._private.hasCompoundNodes;\n },\n headless: function headless() {\n return this._private.renderer.isHeadless();\n },\n styleEnabled: function styleEnabled() {\n return this._private.styleEnabled;\n },\n addToPool: function addToPool(eles) {\n this._private.elements.merge(eles);\n return this; // chaining\n },\n removeFromPool: function removeFromPool(eles) {\n this._private.elements.unmerge(eles);\n return this;\n },\n container: function container() {\n return this._private.container || null;\n },\n window: function window() {\n var container = this._private.container;\n if (container == null) return _window;\n var ownerDocument = this._private.container.ownerDocument;\n if (ownerDocument === undefined || ownerDocument == null) {\n return _window;\n }\n return ownerDocument.defaultView || _window;\n },\n mount: function mount(container) {\n if (container == null) {\n return;\n }\n var cy = this;\n var _p = cy._private;\n var options = _p.options;\n if (!htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n _p.container = container;\n _p.styleEnabled = true;\n cy.invalidateSize();\n cy.initRenderer(extend({}, options, options.renderer, {\n // allow custom renderer name to be re-used, otherwise use canvas\n name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name\n }));\n cy.startAnimationLoop();\n cy.style(options.style);\n cy.emit('mount');\n return cy;\n },\n unmount: function unmount() {\n var cy = this;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n cy.initRenderer({\n name: 'null'\n });\n cy.emit('unmount');\n return cy;\n },\n options: function options() {\n return copy(this._private.options);\n },\n json: function json(obj) {\n var cy = this;\n var _p = cy._private;\n var eles = cy.mutableElements();\n var getFreshRef = function getFreshRef(ele) {\n return cy.getElementById(ele.id());\n };\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.elements) {\n var idInJson = {};\n var updateEles = function updateEles(jsons, gr) {\n var toAdd = [];\n var toMod = [];\n for (var i = 0; i < jsons.length; i++) {\n var json = jsons[i];\n if (!json.data.id) {\n warn('cy.json() cannot handle elements without an ID attribute');\n continue;\n }\n var id = '' + json.data.id; // id must be string\n var ele = cy.getElementById(id);\n idInJson[id] = true;\n if (ele.length !== 0) {\n // existing element should be updated\n toMod.push({\n ele: ele,\n json: json\n });\n } else {\n // otherwise should be added\n if (gr) {\n json.group = gr;\n toAdd.push(json);\n } else {\n toAdd.push(json);\n }\n }\n }\n cy.add(toAdd);\n for (var _i = 0; _i < toMod.length; _i++) {\n var _toMod$_i = toMod[_i],\n _ele = _toMod$_i.ele,\n _json = _toMod$_i.json;\n _ele.json(_json);\n }\n };\n if (array(obj.elements)) {\n // elements: []\n updateEles(obj.elements);\n } else {\n // elements: { nodes: [], edges: [] }\n var grs = ['nodes', 'edges'];\n for (var i = 0; i < grs.length; i++) {\n var gr = grs[i];\n var elements = obj.elements[gr];\n if (array(elements)) {\n updateEles(elements, gr);\n }\n }\n }\n var parentsToRemove = cy.collection();\n eles.filter(function (ele) {\n return !idInJson[ele.id()];\n }).forEach(function (ele) {\n if (ele.isParent()) {\n parentsToRemove.merge(ele);\n } else {\n ele.remove();\n }\n });\n\n // so that children are not removed w/parent\n parentsToRemove.forEach(function (ele) {\n return ele.children().move({\n parent: null\n });\n });\n\n // intermediate parents may be moved by prior line, so make sure we remove by fresh refs\n parentsToRemove.forEach(function (ele) {\n return getFreshRef(ele).remove();\n });\n }\n if (obj.style) {\n cy.style(obj.style);\n }\n if (obj.zoom != null && obj.zoom !== _p.zoom) {\n cy.zoom(obj.zoom);\n }\n if (obj.pan) {\n if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {\n cy.pan(obj.pan);\n }\n }\n if (obj.data) {\n cy.data(obj.data);\n }\n var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime'];\n for (var _i2 = 0; _i2 < fields.length; _i2++) {\n var f = fields[_i2];\n if (obj[f] != null) {\n cy[f](obj[f]);\n }\n }\n cy.endBatch();\n return this; // chaining\n } else {\n // get\n var flat = !!obj;\n var json = {};\n if (flat) {\n json.elements = this.elements().map(function (ele) {\n return ele.json();\n });\n } else {\n json.elements = {};\n eles.forEach(function (ele) {\n var group = ele.group();\n if (!json.elements[group]) {\n json.elements[group] = [];\n }\n json.elements[group].push(ele.json());\n });\n }\n if (this._private.styleEnabled) {\n json.style = cy.style().json();\n }\n json.data = copy(cy.data());\n var options = _p.options;\n json.zoomingEnabled = _p.zoomingEnabled;\n json.userZoomingEnabled = _p.userZoomingEnabled;\n json.zoom = _p.zoom;\n json.minZoom = _p.minZoom;\n json.maxZoom = _p.maxZoom;\n json.panningEnabled = _p.panningEnabled;\n json.userPanningEnabled = _p.userPanningEnabled;\n json.pan = copy(_p.pan);\n json.boxSelectionEnabled = _p.boxSelectionEnabled;\n json.renderer = copy(options.renderer);\n json.hideEdgesOnViewport = options.hideEdgesOnViewport;\n json.textureOnViewport = options.textureOnViewport;\n json.wheelSensitivity = options.wheelSensitivity;\n json.motionBlur = options.motionBlur;\n json.multiClickDebounceTime = options.multiClickDebounceTime;\n return json;\n }\n }\n});\ncorefn.$id = corefn.getElementById;\n[corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) {\n extend(corefn, props);\n});\n\n/* eslint-disable no-unused-vars */\nvar defaults$7 = {\n fit: true,\n // whether to fit the viewport to the graph\n directed: false,\n // whether the tree is directed downwards (or edges can point in any direction if false)\n direction: 'downward',\n // determines the direction in which the tree structure is drawn. The possible values are 'downward', 'upward', 'rightward', or 'leftward'.\n padding: 30,\n // padding on fit\n circle: false,\n // put depths in concentric circles if true, put depths top down if false\n grid: false,\n // whether to create an even grid into which the DAG is placed (circle:false only)\n spacingFactor: 1.75,\n // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n roots: undefined,\n // the roots of the trees\n depthSort: undefined,\n // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled,\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\nvar deprecatedOptionDefaults = {\n maximal: false,\n // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also\n acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops\n};\n\n/* eslint-enable */\n\nvar getInfo = function getInfo(ele) {\n return ele.scratch('breadthfirst');\n};\nvar setInfo = function setInfo(ele, obj) {\n return ele.scratch('breadthfirst', obj);\n};\nfunction BreadthFirstLayout(options) {\n this.options = extend({}, defaults$7, deprecatedOptionDefaults, options);\n}\nBreadthFirstLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n var nodes = eles.nodes().filter(function (n) {\n return n.isChildless();\n });\n var graph = eles;\n var directed = options.directed;\n var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true\n\n var hasBoundingBox = !!options.boundingBox;\n var bb = makeBoundingBox(hasBoundingBox ? options.boundingBox : structuredClone(cy.extent()));\n var roots;\n if (elementOrCollection(options.roots)) {\n roots = options.roots;\n } else if (array(options.roots)) {\n var rootsArray = [];\n for (var i = 0; i < options.roots.length; i++) {\n var id = options.roots[i];\n var ele = cy.getElementById(id);\n rootsArray.push(ele);\n }\n roots = cy.collection(rootsArray);\n } else if (string(options.roots)) {\n roots = cy.$(options.roots);\n } else {\n if (directed) {\n roots = nodes.roots();\n } else {\n var components = eles.components();\n roots = cy.collection();\n var _loop = function _loop() {\n var comp = components[_i];\n var maxDegree = comp.maxDegree(false);\n var compRoots = comp.filter(function (ele) {\n return ele.degree(false) === maxDegree;\n });\n roots = roots.add(compRoots);\n };\n for (var _i = 0; _i < components.length; _i++) {\n _loop();\n }\n }\n }\n var depths = [];\n var foundByBfs = {};\n var addToDepth = function addToDepth(ele, d) {\n if (depths[d] == null) {\n depths[d] = [];\n }\n var i = depths[d].length;\n depths[d].push(ele);\n setInfo(ele, {\n index: i,\n depth: d\n });\n };\n var changeDepth = function changeDepth(ele, newDepth) {\n var _getInfo = getInfo(ele),\n depth = _getInfo.depth,\n index = _getInfo.index;\n depths[depth][index] = null;\n\n // add only childless nodes\n if (ele.isChildless()) addToDepth(ele, newDepth);\n };\n\n // find the depths of the nodes\n graph.bfs({\n roots: roots,\n directed: options.directed,\n visit: function visit(node, edge, pNode, i, depth) {\n var ele = node[0];\n var id = ele.id();\n\n // add only childless nodes\n if (ele.isChildless()) addToDepth(ele, depth);\n foundByBfs[id] = true;\n }\n });\n\n // check for nodes not found by bfs\n var orphanNodes = [];\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n if (foundByBfs[_ele.id()]) {\n continue;\n } else {\n orphanNodes.push(_ele);\n }\n }\n\n // assign the nodes a depth and index\n var assignDepthsAt = function assignDepthsAt(i) {\n var eles = depths[i];\n for (var j = 0; j < eles.length; j++) {\n var _ele2 = eles[j];\n if (_ele2 == null) {\n eles.splice(j, 1);\n j--;\n continue;\n }\n setInfo(_ele2, {\n depth: i,\n index: j\n });\n }\n };\n var adjustMaximally = function adjustMaximally(ele, shifted) {\n var eInfo = getInfo(ele);\n var incomers = ele.incomers().filter(function (el) {\n return el.isNode() && eles.has(el);\n });\n var maxDepth = -1;\n var id = ele.id();\n for (var k = 0; k < incomers.length; k++) {\n var incmr = incomers[k];\n var iInfo = getInfo(incmr);\n maxDepth = Math.max(maxDepth, iInfo.depth);\n }\n if (eInfo.depth <= maxDepth) {\n if (!options.acyclic && shifted[id]) {\n return null;\n }\n var newDepth = maxDepth + 1;\n changeDepth(ele, newDepth);\n shifted[id] = newDepth;\n return true;\n }\n return false;\n };\n\n // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1)\n if (directed && maximal) {\n var Q = [];\n var shifted = {};\n var enqueue = function enqueue(n) {\n return Q.push(n);\n };\n var dequeue = function dequeue() {\n return Q.shift();\n };\n nodes.forEach(function (n) {\n return Q.push(n);\n });\n while (Q.length > 0) {\n var _ele3 = dequeue();\n var didShift = adjustMaximally(_ele3, shifted);\n if (didShift) {\n _ele3.outgoers().filter(function (el) {\n return el.isNode() && eles.has(el);\n }).forEach(enqueue);\n } else if (didShift === null) {\n warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.');\n break; // exit on failure\n }\n }\n }\n\n // find min distance we need to leave between nodes\n var minDistance = 0;\n if (options.avoidOverlap) {\n for (var _i3 = 0; _i3 < nodes.length; _i3++) {\n var n = nodes[_i3];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n }\n\n // get the weighted percent for an element based on its connectivity to other levels\n var cachedWeightedPercent = {};\n var getWeightedPercent = function getWeightedPercent(ele) {\n if (cachedWeightedPercent[ele.id()]) {\n return cachedWeightedPercent[ele.id()];\n }\n var eleDepth = getInfo(ele).depth;\n var neighbors = ele.neighborhood();\n var percent = 0;\n var samples = 0;\n for (var _i4 = 0; _i4 < neighbors.length; _i4++) {\n var neighbor = neighbors[_i4];\n if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) {\n continue;\n }\n var bf = getInfo(neighbor);\n if (bf == null) {\n continue;\n }\n var index = bf.index;\n var depth = bf.depth;\n\n // unassigned neighbours shouldn't affect the ordering\n if (index == null || depth == null) {\n continue;\n }\n var nDepth = depths[depth].length;\n if (depth < eleDepth) {\n // only get influenced by elements above\n percent += index / nDepth;\n samples++;\n }\n }\n samples = Math.max(1, samples);\n percent = percent / samples;\n if (samples === 0) {\n // put lone nodes at the start\n percent = 0;\n }\n cachedWeightedPercent[ele.id()] = percent;\n return percent;\n };\n\n // rearrange the indices in each depth level based on connectivity\n var sortFn = function sortFn(a, b) {\n var apct = getWeightedPercent(a);\n var bpct = getWeightedPercent(b);\n var diff = apct - bpct;\n if (diff === 0) {\n return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons\n } else {\n return diff;\n }\n };\n if (options.depthSort !== undefined) {\n sortFn = options.depthSort;\n }\n var depthsLen = depths.length;\n\n // sort each level to make connected nodes closer\n for (var _i5 = 0; _i5 < depthsLen; _i5++) {\n depths[_i5].sort(sortFn);\n assignDepthsAt(_i5);\n }\n\n // assign orphan nodes to a new top-level depth\n var orphanDepth = [];\n for (var _i6 = 0; _i6 < orphanNodes.length; _i6++) {\n orphanDepth.push(orphanNodes[_i6]);\n }\n var assignDepths = function assignDepths() {\n for (var _i7 = 0; _i7 < depthsLen; _i7++) {\n assignDepthsAt(_i7);\n }\n };\n\n // add a new top-level depth only when there are orphan nodes\n if (orphanDepth.length) {\n depths.unshift(orphanDepth);\n depthsLen = depths.length;\n assignDepths();\n }\n var biggestDepthSize = 0;\n for (var _i8 = 0; _i8 < depthsLen; _i8++) {\n biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);\n }\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n\n // average node size\n var aveNodeSize = nodes.reduce(function (acc, node) {\n return function (box) {\n return {\n w: acc.w === -1 ? box.w : (acc.w + box.w) / 2,\n h: acc.h === -1 ? box.h : (acc.h + box.h) / 2\n };\n }(node.boundingBox({\n includeLabels: options.nodeDimensionsIncludeLabels\n }));\n }, {\n w: -1,\n h: -1\n });\n var distanceY = Math.max(\n // only one depth\n depthsLen === 1 ? 0 :\n // inside a bounding box, no need for top & bottom padding\n hasBoundingBox ? (bb.h - options.padding * 2 - aveNodeSize.h) / (depthsLen - 1) : (bb.h - options.padding * 2 - aveNodeSize.h) / (depthsLen + 1), minDistance);\n var maxDepthSize = depths.reduce(function (max, eles) {\n return Math.max(max, eles.length);\n }, 0);\n var getPositionTopBottom = function getPositionTopBottom(ele) {\n var _getInfo2 = getInfo(ele),\n depth = _getInfo2.depth,\n index = _getInfo2.index;\n if (options.circle) {\n var radiusStepSize = Math.min(bb.w / 2 / depthsLen, bb.h / 2 / depthsLen);\n radiusStepSize = Math.max(radiusStepSize, minDistance);\n var radius = radiusStepSize * depth + radiusStepSize - (depthsLen > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);\n var theta = 2 * Math.PI / depths[depth].length * index;\n if (depth === 0 && depths[0].length === 1) {\n radius = 1;\n }\n return {\n x: center.x + radius * Math.cos(theta),\n y: center.y + radius * Math.sin(theta)\n };\n } else {\n var depthSize = depths[depth].length;\n var distanceX = Math.max(\n // only one depth\n depthSize === 1 ? 0 :\n // inside a bounding box, no need for left & right padding\n hasBoundingBox ? (bb.w - options.padding * 2 - aveNodeSize.w) / ((options.grid ? maxDepthSize : depthSize) - 1) : (bb.w - options.padding * 2 - aveNodeSize.w) / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance);\n var epos = {\n x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX,\n y: center.y + (depth + 1 - (depthsLen + 1) / 2) * distanceY\n };\n return epos;\n }\n };\n var rotateDegrees = {\n 'downward': 0,\n 'leftward': 90,\n 'upward': 180,\n 'rightward': -90\n };\n if (Object.keys(rotateDegrees).indexOf(options.direction) === -1) {\n error(\"Invalid direction '\".concat(options.direction, \"' specified for breadthfirst layout. Valid values are: \").concat(Object.keys(rotateDegrees).join(', ')));\n }\n var getPosition = function getPosition(ele) {\n return rotatePosAndSkewByBox(getPositionTopBottom(ele), bb, rotateDegrees[options.direction]);\n };\n eles.nodes().layoutPositions(this, options, getPosition);\n return this; // chaining\n};\n\nvar defaults$6 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox and radius if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n radius: undefined,\n // the radius of the circle\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction CircleLayout(options) {\n this.options = extend({}, defaults$6, options);\n}\nCircleLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep;\n var dTheta = sweep / Math.max(1, nodes.length - 1);\n var r;\n var minDistance = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n if (number$1(options.radius)) {\n r = options.radius;\n } else if (nodes.length <= 1) {\n r = 0;\n } else {\n r = Math.min(bb.h, bb.w) / 2 - minDistance;\n }\n\n // calculate the radius\n if (nodes.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n minDistance *= 1.75; // just to have some nice spacing\n\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n r = Math.max(rMin, r);\n }\n var getPos = function getPos(ele, i) {\n var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1);\n var rx = r * Math.cos(theta);\n var ry = r * Math.sin(theta);\n var pos = {\n x: center.x + rx,\n y: center.y + ry\n };\n return pos;\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n};\n\nvar defaults$5 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n equidistant: false,\n // whether levels have an equal radial distance betwen them, may cause bounding box overflow\n minNodeSpacing: 10,\n // min spacing between outside of nodes (used for radius adjustment)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n height: undefined,\n // height of layout area (overrides container height)\n width: undefined,\n // width of layout area (overrides container width)\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n concentric: function concentric(node) {\n // returns numeric value for each node, placing higher nodes in levels towards the centre\n return node.degree();\n },\n levelWidth: function levelWidth(nodes) {\n // the variation of concentric values in each level\n return nodes.maxDegree() / 4;\n },\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\nfunction ConcentricLayout(options) {\n this.options = extend({}, defaults$5, options);\n}\nConcentricLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var nodeValues = []; // { node, value }\n var maxNodeSize = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var value = undefined;\n\n // calculate the node value\n value = options.concentric(node);\n nodeValues.push({\n value: value,\n node: node\n });\n\n // for style mapping\n node._private.scratch.concentric = value;\n }\n\n // in case we used the `concentric` in style\n nodes.updateStyle();\n\n // calculate max size now based on potentially updated mappers\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var nbb = _node.layoutDimensions(options);\n maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);\n }\n\n // sort node values in descreasing order\n nodeValues.sort(function (a, b) {\n return b.value - a.value;\n });\n var levelWidth = options.levelWidth(nodes);\n\n // put the values into levels\n var levels = [[]];\n var currentLevel = levels[0];\n for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {\n var val = nodeValues[_i2];\n if (currentLevel.length > 0) {\n var diff = Math.abs(currentLevel[0].value - val.value);\n if (diff >= levelWidth) {\n currentLevel = [];\n levels.push(currentLevel);\n }\n }\n currentLevel.push(val);\n }\n\n // create positions from levels\n\n var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes\n\n if (!options.avoidOverlap) {\n // then strictly constrain to bb\n var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;\n var maxR = Math.min(bb.w, bb.h) / 2 - minDist;\n var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);\n minDist = Math.min(minDist, rStep);\n }\n\n // find the metrics for each level\n var r = 0;\n for (var _i3 = 0; _i3 < levels.length; _i3++) {\n var level = levels[_i3];\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep;\n var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);\n\n // calculate the radius\n if (level.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n\n r = Math.max(rMin, r);\n }\n level.r = r;\n r += minDist;\n }\n if (options.equidistant) {\n var rDeltaMax = 0;\n var _r = 0;\n for (var _i4 = 0; _i4 < levels.length; _i4++) {\n var _level = levels[_i4];\n var rDelta = _level.r - _r;\n rDeltaMax = Math.max(rDeltaMax, rDelta);\n }\n _r = 0;\n for (var _i5 = 0; _i5 < levels.length; _i5++) {\n var _level2 = levels[_i5];\n if (_i5 === 0) {\n _r = _level2.r;\n }\n _level2.r = _r;\n _r += rDeltaMax;\n }\n }\n\n // calculate the node positions\n var pos = {}; // id => position\n for (var _i6 = 0; _i6 < levels.length; _i6++) {\n var _level3 = levels[_i6];\n var _dTheta = _level3.dTheta;\n var _r2 = _level3.r;\n for (var j = 0; j < _level3.length; j++) {\n var _val = _level3[j];\n var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j;\n var p = {\n x: center.x + _r2 * Math.cos(theta),\n y: center.y + _r2 * Math.sin(theta)\n };\n pos[_val.node.id()] = p;\n }\n }\n\n // position the nodes\n eles.nodes().layoutPositions(this, options, function (ele) {\n var id = ele.id();\n return pos[id];\n });\n return this; // chaining\n};\n\n/*\nThe CoSE layout was written by Gerardo Huck.\nhttps://www.linkedin.com/in/gerardohuck/\n\nBased on the following article:\nhttp://dl.acm.org/citation.cfm?id=1498047\n\nModifications tracked on Github.\n*/\n\nvar DEBUG;\n\n/**\n * @brief : default layout options\n */\nvar defaults$4 = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // Whether to animate while running the layout\n // true : Animate continuously as the layout is running\n // false : Just show the end result\n // 'end' : Animate with the end result, from the initial positions to the end positions\n animate: true,\n // Easing of the animation for animate:'end'\n animationEasing: undefined,\n // The duration of the animation for animate:'end'\n animationDuration: undefined,\n // A function that determines whether the node should be animated\n // All nodes animated by default on animate enabled\n // Non-animated nodes are positioned immediately when the layout starts\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // The layout animates only after this many milliseconds for animate:true\n // (prevents flashing on fast runs)\n animationThreshold: 250,\n // Number of iterations between consecutive screen positions update\n refresh: 20,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 30,\n // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n boundingBox: undefined,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n nodeDimensionsIncludeLabels: false,\n // Randomize the initial positions of the nodes (true) or use existing positions (false)\n randomize: false,\n // Extra spacing between components in non-compound graphs\n componentSpacing: 40,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 2048;\n },\n // Node repulsion (overlapping) multiplier\n nodeOverlap: 4,\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 32;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 32;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 1.2,\n // Gravity force (constant)\n gravity: 1,\n // Maximum number of iterations to perform\n numIter: 1000,\n // Initial temperature (maximum node displacement)\n initialTemp: 1000,\n // Cooling factor (how the temperature is reduced between consecutive iterations\n coolingFactor: 0.99,\n // Lower temperature threshold (below this point the layout will end)\n minTemp: 1.0\n};\n\n/**\n * @brief : constructor\n * @arg options : object containing layout options\n */\nfunction CoseLayout(options) {\n this.options = extend({}, defaults$4, options);\n this.options.layout = this;\n\n // Exclude any edge that has a source or target node that is not in the set of passed-in nodes\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n var notEdges = edges.filter(function (e) {\n var sourceId = e.source().data('id');\n var targetId = e.target().data('id');\n var hasSource = nodes.some(function (n) {\n return n.data('id') === sourceId;\n });\n var hasTarget = nodes.some(function (n) {\n return n.data('id') === targetId;\n });\n return !hasSource || !hasTarget;\n });\n this.options.eles = this.options.eles.not(notEdges);\n}\n\n/**\n * @brief : runs the layout\n */\nCoseLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var layout = this;\n layout.stopped = false;\n if (options.animate === true || options.animate === false) {\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n }\n\n // Set DEBUG - Global variable\n if (true === options.debug) {\n DEBUG = true;\n } else {\n DEBUG = false;\n }\n\n // Initialize layout info\n var layoutInfo = createLayoutInfo(cy, layout, options);\n\n // Show LayoutInfo contents if debugging\n if (DEBUG) {\n printLayoutInfo(layoutInfo);\n }\n\n // If required, randomize node positions\n if (options.randomize) {\n randomizePositions(layoutInfo);\n }\n var startTime = performanceNow();\n var refresh = function refresh() {\n refreshPositions(layoutInfo, cy, options);\n\n // Fit the graph if necessary\n if (true === options.fit) {\n cy.fit(options.padding);\n }\n };\n var mainLoop = function mainLoop(i) {\n if (layout.stopped || i >= options.numIter) {\n // logDebug(\"Layout manually stopped. Stopping computation in step \" + i);\n return false;\n }\n\n // Do one step in the phisical simulation\n step(layoutInfo, options);\n\n // Update temperature\n layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor;\n // logDebug(\"New temperature: \" + layoutInfo.temperature);\n\n if (layoutInfo.temperature < options.minTemp) {\n // logDebug(\"Temperature drop below minimum threshold. Stopping computation in step \" + i);\n return false;\n }\n return true;\n };\n var done = function done() {\n if (options.animate === true || options.animate === false) {\n refresh();\n\n // Layout has finished\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n } else {\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.layoutPositions(layout, options, getScaledPos);\n }\n };\n var i = 0;\n var loopRet = true;\n if (options.animate === true) {\n var _frame = function frame() {\n var f = 0;\n while (loopRet && f < options.refresh) {\n loopRet = mainLoop(i);\n i++;\n f++;\n }\n if (!loopRet) {\n // it's done\n separateComponents(layoutInfo, options);\n done();\n } else {\n var now = performanceNow();\n if (now - startTime >= options.animationThreshold) {\n refresh();\n }\n requestAnimationFrame(_frame);\n }\n };\n _frame();\n } else {\n while (loopRet) {\n loopRet = mainLoop(i);\n i++;\n }\n separateComponents(layoutInfo, options);\n done();\n }\n return this; // chaining\n};\n\n/**\n * @brief : called on continuous layouts to stop them before they finish\n */\nCoseLayout.prototype.stop = function () {\n this.stopped = true;\n if (this.thread) {\n this.thread.stop();\n }\n this.emit('layoutstop');\n return this; // chaining\n};\nCoseLayout.prototype.destroy = function () {\n if (this.thread) {\n this.thread.stop();\n }\n return this; // chaining\n};\n\n/**\n * @brief : Creates an object which is contains all the data\n * used in the layout process\n * @arg cy : cytoscape.js object\n * @return : layoutInfo object initialized\n */\nvar createLayoutInfo = function createLayoutInfo(cy, layout, options) {\n // Shortcut\n var edges = options.eles.edges();\n var nodes = options.eles.nodes();\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var layoutInfo = {\n isCompound: cy.hasCompoundNodes(),\n layoutNodes: [],\n idToIndex: {},\n nodeSize: nodes.size(),\n graphSet: [],\n indexToGraph: [],\n layoutEdges: [],\n edgeSize: edges.size(),\n temperature: options.initialTemp,\n clientWidth: bb.w,\n clientHeight: bb.h,\n boundingBox: bb\n };\n var components = options.eles.components();\n var id2cmptId = {};\n for (var i = 0; i < components.length; i++) {\n var component = components[i];\n for (var j = 0; j < component.length; j++) {\n var node = component[j];\n id2cmptId[node.id()] = i;\n }\n }\n\n // Iterate over all nodes, creating layout nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var tempNode = {};\n tempNode.isLocked = n.locked();\n tempNode.id = n.data('id');\n tempNode.parentId = n.data('parent');\n tempNode.cmptId = id2cmptId[n.id()];\n tempNode.children = [];\n tempNode.positionX = n.position('x');\n tempNode.positionY = n.position('y');\n tempNode.offsetX = 0;\n tempNode.offsetY = 0;\n tempNode.height = nbb.w;\n tempNode.width = nbb.h;\n tempNode.maxX = tempNode.positionX + tempNode.width / 2;\n tempNode.minX = tempNode.positionX - tempNode.width / 2;\n tempNode.maxY = tempNode.positionY + tempNode.height / 2;\n tempNode.minY = tempNode.positionY - tempNode.height / 2;\n tempNode.padLeft = parseFloat(n.style('padding'));\n tempNode.padRight = parseFloat(n.style('padding'));\n tempNode.padTop = parseFloat(n.style('padding'));\n tempNode.padBottom = parseFloat(n.style('padding'));\n\n // forces\n tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion;\n\n // Add new node\n layoutInfo.layoutNodes.push(tempNode);\n // Add entry to id-index map\n layoutInfo.idToIndex[tempNode.id] = i;\n }\n\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n var tempGraph = [];\n\n // Second pass to add child information and\n // initialize queue for hierarchical traversal\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n var p_id = n.parentId;\n // Check if node n has a parent node\n if (null != p_id) {\n // Add node Id to parent's list of children\n layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);\n } else {\n // If a node doesn't have a parent, then it's in the root graph\n queue[++end] = n.id;\n tempGraph.push(n.id);\n }\n }\n\n // Add root graph to graphSet\n layoutInfo.graphSet.push(tempGraph);\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var node_id = queue[start++];\n var node_ix = layoutInfo.idToIndex[node_id];\n var node = layoutInfo.layoutNodes[node_ix];\n var children = node.children;\n if (children.length > 0) {\n // Add children nodes as a new graph to graph set\n layoutInfo.graphSet.push(children);\n // Add children to que queue to be visited\n for (var i = 0; i < children.length; i++) {\n queue[++end] = children[i];\n }\n }\n }\n\n // Create indexToGraph map\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n for (var j = 0; j < graph.length; j++) {\n var index = layoutInfo.idToIndex[graph[j]];\n layoutInfo.indexToGraph[index] = i;\n }\n }\n\n // Iterate over all edges, creating Layout Edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n var e = edges[i];\n var tempEdge = {};\n tempEdge.id = e.data('id');\n tempEdge.sourceId = e.data('source');\n tempEdge.targetId = e.data('target');\n\n // Compute ideal length\n var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength;\n var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity;\n\n // Check if it's an inter graph edge\n var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];\n var targetIx = layoutInfo.idToIndex[tempEdge.targetId];\n var sourceGraph = layoutInfo.indexToGraph[sourceIx];\n var targetGraph = layoutInfo.indexToGraph[targetIx];\n if (sourceGraph != targetGraph) {\n // Find lowest common graph ancestor\n var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);\n\n // Compute sum of node depths, relative to lca graph\n var lcaGraph = layoutInfo.graphSet[lca];\n var depth = 0;\n\n // Source depth\n var tempNode = layoutInfo.layoutNodes[sourceIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // Target depth\n tempNode = layoutInfo.layoutNodes[targetIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId +\n // \". Index: \" + lca + \" Contents: \" + lcaGraph.toString() +\n // \". Depth: \" + depth);\n\n // Update idealLength\n idealLength *= depth * options.nestingFactor;\n }\n tempEdge.idealLength = idealLength;\n tempEdge.elasticity = elasticity;\n layoutInfo.layoutEdges.push(tempEdge);\n }\n\n // Finally, return layoutInfo object\n return layoutInfo;\n};\n\n/**\n * @brief : This function finds the index of the lowest common\n * graph ancestor between 2 nodes in the subtree\n * (from the graph hierarchy induced tree) whose\n * root is graphIx\n *\n * @arg node1: node1's ID\n * @arg node2: node2's ID\n * @arg layoutInfo: layoutInfo object\n *\n */\nvar findLCA = function findLCA(node1, node2, layoutInfo) {\n // Find their common ancester, starting from the root graph\n var res = _findLCA_aux(node1, node2, 0, layoutInfo);\n if (2 > res.count) {\n // If aux function couldn't find the common ancester,\n // then it is the root graph\n return 0;\n } else {\n return res.graph;\n }\n};\n\n/**\n * @brief : Auxiliary function used for LCA computation\n *\n * @arg node1 : node1's ID\n * @arg node2 : node2's ID\n * @arg graphIx : subgraph index\n * @arg layoutInfo : layoutInfo object\n *\n * @return : object of the form {count: X, graph: Y}, where:\n * X is the number of ancestors (max: 2) found in\n * graphIx (and it's subgraphs),\n * Y is the graph index of the lowest graph containing\n * all X nodes\n */\nvar _findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) {\n var graph = layoutInfo.graphSet[graphIx];\n // If both nodes belongs to graphIx\n if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {\n return {\n count: 2,\n graph: graphIx\n };\n }\n\n // Make recursive calls for all subgraphs\n var c = 0;\n for (var i = 0; i < graph.length; i++) {\n var nodeId = graph[i];\n var nodeIx = layoutInfo.idToIndex[nodeId];\n var children = layoutInfo.layoutNodes[nodeIx].children;\n\n // If the node has no child, skip it\n if (0 === children.length) {\n continue;\n }\n var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]];\n var result = _findLCA_aux(node1, node2, childGraphIx, layoutInfo);\n if (0 === result.count) {\n // Neither node1 nor node2 are present in this subgraph\n continue;\n } else if (1 === result.count) {\n // One of (node1, node2) is present in this subgraph\n c++;\n if (2 === c) {\n // We've already found both nodes, no need to keep searching\n break;\n }\n } else {\n // Both nodes are present in this subgraph\n return result;\n }\n }\n return {\n count: c,\n graph: graphIx\n };\n};\n\n/**\n * @brief: printsLayoutInfo into js console\n * Only used for debbuging\n */\nvar printLayoutInfo; \n\n/**\n * @brief : Randomizes the position of all nodes\n */\nvar randomizePositions = function randomizePositions(layoutInfo, cy) {\n var width = layoutInfo.clientWidth;\n var height = layoutInfo.clientHeight;\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n\n // No need to randomize compound nodes or locked nodes\n if (0 === n.children.length && !n.isLocked) {\n n.positionX = Math.random() * width;\n n.positionY = Math.random() * height;\n }\n }\n};\nvar getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) {\n var bb = layoutInfo.boundingBox;\n var coseBB = {\n x1: Infinity,\n x2: -Infinity,\n y1: Infinity,\n y2: -Infinity\n };\n if (options.boundingBox) {\n nodes.forEach(function (node) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]];\n coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);\n coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);\n coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);\n coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);\n });\n coseBB.w = coseBB.x2 - coseBB.x1;\n coseBB.h = coseBB.y2 - coseBB.y1;\n }\n return function (ele, i) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]];\n if (options.boundingBox) {\n // then add extra bounding box constraint\n // Handle single node case where coseBB.w or coseBB.h is 0\n var pctX = coseBB.w === 0 ? 0.5 : (lnode.positionX - coseBB.x1) / coseBB.w;\n var pctY = coseBB.h === 0 ? 0.5 : (lnode.positionY - coseBB.y1) / coseBB.h;\n return {\n x: bb.x1 + pctX * bb.w,\n y: bb.y1 + pctY * bb.h\n };\n } else {\n return {\n x: lnode.positionX,\n y: lnode.positionY\n };\n }\n };\n};\n\n/**\n * @brief : Updates the positions of nodes in the network\n * @arg layoutInfo : LayoutInfo object\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\nvar refreshPositions = function refreshPositions(layoutInfo, cy, options) {\n // var s = 'Refreshing positions';\n // logDebug(s);\n\n var layout = options.layout;\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.positions(getScaledPos);\n\n // Trigger layoutReady only on first call\n if (true !== layoutInfo.ready) {\n // s = 'Triggering layoutready';\n // logDebug(s);\n layoutInfo.ready = true;\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: this\n });\n }\n};\n\n/**\n * @brief : Logs a debug message in JS console, if DEBUG is ON\n */\n// var logDebug = function(text) {\n// if (DEBUG) {\n// console.debug(text);\n// }\n// };\n\n/**\n * @brief : Performs one iteration of the physical simulation\n * @arg layoutInfo : LayoutInfo object already initialized\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\nvar step = function step(layoutInfo, options, _step) {\n // var s = \"\\n\\n###############################\";\n // s += \"\\nSTEP: \" + step;\n // s += \"\\n###############################\\n\";\n // logDebug(s);\n\n // Calculate node repulsions\n calculateNodeForces(layoutInfo, options);\n // Calculate edge forces\n calculateEdgeForces(layoutInfo);\n // Calculate gravity forces\n calculateGravityForces(layoutInfo, options);\n // Propagate forces from parent to child\n propagateForces(layoutInfo);\n // Update positions based on calculated forces\n updatePositions(layoutInfo);\n};\n\n/**\n * @brief : Computes the node repulsion forces\n */\nvar calculateNodeForces = function calculateNodeForces(layoutInfo, options) {\n // Go through each of the graphs in graphSet\n // Nodes only repel each other if they belong to the same graph\n // var s = 'calculateNodeForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Now get all the pairs of nodes\n // Only get each pair once, (A, B) = (B, A)\n for (var j = 0; j < numNodes; j++) {\n var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n for (var k = j + 1; k < numNodes; k++) {\n var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];\n nodeRepulsion(node1, node2, layoutInfo, options);\n }\n }\n }\n};\nvar randomDistance = function randomDistance(max) {\n return -1 + 2 * max * Math.random();\n};\n\n/**\n * @brief : Compute the node repulsion forces between a pair of nodes\n */\nvar nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) {\n // var s = \"Node repulsion. Node1: \" + node1.id + \" Node2: \" + node2.id;\n\n var cmptId1 = node1.cmptId;\n var cmptId2 = node2.cmptId;\n if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {\n return;\n }\n\n // Get direction of line connecting both node centers\n var directionX = node2.positionX - node1.positionX;\n var directionY = node2.positionY - node1.positionY;\n var maxRandDist = 1;\n // s += \"\\ndirectionX: \" + directionX + \", directionY: \" + directionY;\n\n // If both centers are the same, apply a random force\n if (0 === directionX && 0 === directionY) {\n directionX = randomDistance(maxRandDist);\n directionY = randomDistance(maxRandDist);\n }\n var overlap = nodesOverlap(node1, node2, directionX, directionY);\n if (overlap > 0) {\n // s += \"\\nNodes DO overlap.\";\n // s += \"\\nOverlap: \" + overlap;\n // If nodes overlap, repulsion force is proportional\n // to the overlap\n var force = options.nodeOverlap * overlap;\n\n // Compute the module and components of the force vector\n var distance = Math.sqrt(directionX * directionX + directionY * directionY);\n // s += \"\\nDistance: \" + distance;\n var forceX = force * directionX / distance;\n var forceY = force * directionY / distance;\n } else {\n // s += \"\\nNodes do NOT overlap.\";\n // If there's no overlap, force is inversely proportional\n // to squared distance\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(node1, directionX, directionY);\n var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);\n\n // Use clipping points to compute distance\n var distanceX = point2.x - point1.x;\n var distanceY = point2.y - point1.y;\n var distanceSqr = distanceX * distanceX + distanceY * distanceY;\n var distance = Math.sqrt(distanceSqr);\n // s += \"\\nDistance: \" + distance;\n\n // Compute the module and components of the force vector\n var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;\n var forceX = force * distanceX / distance;\n var forceY = force * distanceY / distance;\n }\n\n // Apply force\n if (!node1.isLocked) {\n node1.offsetX -= forceX;\n node1.offsetY -= forceY;\n }\n if (!node2.isLocked) {\n node2.offsetX += forceX;\n node2.offsetY += forceY;\n }\n\n // s += \"\\nForceX: \" + forceX + \" ForceY: \" + forceY;\n // logDebug(s);\n\n return;\n};\n\n/**\n * @brief : Determines whether two nodes overlap or not\n * @return : Amount of overlapping (0 => no overlap)\n */\nvar nodesOverlap = function nodesOverlap(node1, node2, dX, dY) {\n if (dX > 0) {\n var overlapX = node1.maxX - node2.minX;\n } else {\n var overlapX = node2.maxX - node1.minX;\n }\n if (dY > 0) {\n var overlapY = node1.maxY - node2.minY;\n } else {\n var overlapY = node2.maxY - node1.minY;\n }\n if (overlapX >= 0 && overlapY >= 0) {\n return Math.sqrt(overlapX * overlapX + overlapY * overlapY);\n } else {\n return 0;\n }\n};\n\n/**\n * @brief : Finds the point in which an edge (direction dX, dY) intersects\n * the rectangular bounding box of it's source/target node\n */\nvar findClippingPoint = function findClippingPoint(node, dX, dY) {\n // Shorcuts\n var X = node.positionX;\n var Y = node.positionY;\n var H = node.height || 1;\n var W = node.width || 1;\n var dirSlope = dY / dX;\n var nodeSlope = H / W;\n\n // var s = 'Computing clipping point of node ' + node.id +\n // \" . Height: \" + H + \", Width: \" + W +\n // \"\\nDirection \" + dX + \", \" + dY;\n //\n // Compute intersection\n var res = {};\n\n // Case: Vertical direction (up)\n if (0 === dX && 0 < dY) {\n res.x = X;\n // s += \"\\nUp direction\";\n res.y = Y + H / 2;\n return res;\n }\n\n // Case: Vertical direction (down)\n if (0 === dX && 0 > dY) {\n res.x = X;\n res.y = Y + H / 2;\n // s += \"\\nDown direction\";\n\n return res;\n }\n\n // Case: Intersects the right border\n if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X + W / 2;\n res.y = Y + W * dY / 2 / dX;\n // s += \"\\nRightborder\";\n\n return res;\n }\n\n // Case: Intersects the left border\n if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X - W / 2;\n res.y = Y - W * dY / 2 / dX;\n // s += \"\\nLeftborder\";\n\n return res;\n }\n\n // Case: Intersects the top border\n if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X + H * dX / 2 / dY;\n res.y = Y + H / 2;\n // s += \"\\nTop border\";\n\n return res;\n }\n\n // Case: Intersects the bottom border\n if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X - H * dX / 2 / dY;\n res.y = Y - H / 2;\n // s += \"\\nBottom border\";\n\n return res;\n }\n\n // s += \"\\nClipping point found at \" + res.x + \", \" + res.y;\n // logDebug(s);\n return res;\n};\n\n/**\n * @brief : Calculates all edge forces\n */\nvar calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) {\n // Iterate over all edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n // Get edge, source & target nodes\n var edge = layoutInfo.layoutEdges[i];\n var sourceIx = layoutInfo.idToIndex[edge.sourceId];\n var source = layoutInfo.layoutNodes[sourceIx];\n var targetIx = layoutInfo.idToIndex[edge.targetId];\n var target = layoutInfo.layoutNodes[targetIx];\n\n // Get direction of line connecting both node centers\n var directionX = target.positionX - source.positionX;\n var directionY = target.positionY - source.positionY;\n\n // If both centers are the same, do nothing.\n // A random force has already been applied as node repulsion\n if (0 === directionX && 0 === directionY) {\n continue;\n }\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(source, directionX, directionY);\n var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);\n var lx = point2.x - point1.x;\n var ly = point2.y - point1.y;\n var l = Math.sqrt(lx * lx + ly * ly);\n var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;\n if (0 !== l) {\n var forceX = force * lx / l;\n var forceY = force * ly / l;\n } else {\n var forceX = 0;\n var forceY = 0;\n }\n\n // Add this force to target and source nodes\n if (!source.isLocked) {\n source.offsetX += forceX;\n source.offsetY += forceY;\n }\n if (!target.isLocked) {\n target.offsetX -= forceX;\n target.offsetY -= forceY;\n }\n\n // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id;\n // s += \"\\nDistance: \" + l + \" Force: (\" + forceX + \", \" + forceY + \")\";\n // logDebug(s);\n }\n};\n\n/**\n * @brief : Computes gravity forces for all nodes\n */\nvar calculateGravityForces = function calculateGravityForces(layoutInfo, options) {\n if (options.gravity === 0) {\n return;\n }\n var distThreshold = 1;\n\n // var s = 'calculateGravityForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Compute graph center\n if (0 === i) {\n var centerX = layoutInfo.clientHeight / 2;\n var centerY = layoutInfo.clientWidth / 2;\n } else {\n // Get Parent node for this graph, and use its position as center\n var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];\n var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];\n var centerX = parent.positionX;\n var centerY = parent.positionY;\n }\n // s = \"Center found at: \" + centerX + \", \" + centerY;\n // logDebug(s);\n\n // Apply force to all nodes in graph\n for (var j = 0; j < numNodes; j++) {\n var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n // s = \"Node: \" + node.id;\n\n if (node.isLocked) {\n continue;\n }\n var dx = centerX - node.positionX;\n var dy = centerY - node.positionY;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d > distThreshold) {\n var fx = options.gravity * dx / d;\n var fy = options.gravity * dy / d;\n node.offsetX += fx;\n node.offsetY += fy;\n // s += \": Applied force: \" + fx + \", \" + fy;\n }\n // logDebug(s);\n }\n }\n};\n\n/**\n * @brief : This function propagates the existing offsets from\n * parent nodes to its descendents.\n * @arg layoutInfo : layoutInfo Object\n * @arg cy : cytoscape Object\n * @arg options : Layout options\n */\nvar propagateForces = function propagateForces(layoutInfo, options) {\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n // logDebug('propagateForces');\n\n // Start by visiting the nodes in the root graph\n queue.push.apply(queue, layoutInfo.graphSet[0]);\n end += layoutInfo.graphSet[0].length;\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var nodeId = queue[start++];\n var nodeIndex = layoutInfo.idToIndex[nodeId];\n var node = layoutInfo.layoutNodes[nodeIndex];\n var children = node.children;\n\n // We only need to process the node if it's compound\n if (0 < children.length && !node.isLocked) {\n var offX = node.offsetX;\n var offY = node.offsetY;\n\n // var s = \"Propagating offset from parent node : \" + node.id +\n // \". OffsetX: \" + offX + \". OffsetY: \" + offY;\n // s += \"\\n Children: \" + children.toString();\n // logDebug(s);\n\n for (var i = 0; i < children.length; i++) {\n var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]];\n // Propagate offset\n childNode.offsetX += offX;\n childNode.offsetY += offY;\n // Add children to queue to be visited\n queue[++end] = children[i];\n }\n\n // Reset parent offsets\n node.offsetX = 0;\n node.offsetY = 0;\n }\n }\n};\n\n/**\n * @brief : Updates the layout model positions, based on\n * the accumulated forces\n */\nvar updatePositions = function updatePositions(layoutInfo, options) {\n // var s = 'Updating positions';\n // logDebug(s);\n\n // Reset boundaries for compound nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length) {\n // logDebug(\"Resetting boundaries of compound node: \" + n.id);\n n.maxX = undefined;\n n.minX = undefined;\n n.maxY = undefined;\n n.minY = undefined;\n }\n }\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length || n.isLocked) {\n // No need to set compound or locked node position\n // logDebug(\"Skipping position update of node: \" + n.id);\n continue;\n }\n // s = \"Node: \" + n.id + \" Previous position: (\" +\n // n.positionX + \", \" + n.positionY + \").\";\n\n // Limit displacement in order to improve stability\n var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);\n n.positionX += tempForce.x;\n n.positionY += tempForce.y;\n n.offsetX = 0;\n n.offsetY = 0;\n n.minX = n.positionX - n.width;\n n.maxX = n.positionX + n.width;\n n.minY = n.positionY - n.height;\n n.maxY = n.positionY + n.height;\n // s += \" New Position: (\" + n.positionX + \", \" + n.positionY + \").\";\n // logDebug(s);\n\n // Update ancestry boudaries\n _updateAncestryBoundaries(n, layoutInfo);\n }\n\n // Update size, position of compund nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length && !n.isLocked) {\n n.positionX = (n.maxX + n.minX) / 2;\n n.positionY = (n.maxY + n.minY) / 2;\n n.width = n.maxX - n.minX;\n n.height = n.maxY - n.minY;\n // s = \"Updating position, size of compound node \" + n.id;\n // s += \"\\nPositionX: \" + n.positionX + \", PositionY: \" + n.positionY;\n // s += \"\\nWidth: \" + n.width + \", Height: \" + n.height;\n // logDebug(s);\n }\n }\n};\n\n/**\n * @brief : Limits a force (forceX, forceY) to be not\n * greater (in modulo) than max.\n 8 Preserves force direction.\n */\nvar limitForce = function limitForce(forceX, forceY, max) {\n // var s = \"Limiting force: (\" + forceX + \", \" + forceY + \"). Max: \" + max;\n var force = Math.sqrt(forceX * forceX + forceY * forceY);\n if (force > max) {\n var res = {\n x: max * forceX / force,\n y: max * forceY / force\n };\n } else {\n var res = {\n x: forceX,\n y: forceY\n };\n }\n\n // s += \".\\nResult: (\" + res.x + \", \" + res.y + \")\";\n // logDebug(s);\n\n return res;\n};\n\n/**\n * @brief : Function used for keeping track of compound node\n * sizes, since they should bound all their subnodes.\n */\nvar _updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) {\n // var s = \"Propagating new position/size of node \" + node.id;\n var parentId = node.parentId;\n if (null == parentId) {\n // If there's no parent, we are done\n // s += \". No parent node.\";\n // logDebug(s);\n return;\n }\n\n // Get Parent Node\n var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];\n var flag = false;\n\n // MaxX\n if (null == p.maxX || node.maxX + p.padRight > p.maxX) {\n p.maxX = node.maxX + p.padRight;\n flag = true;\n // s += \"\\nNew maxX for parent node \" + p.id + \": \" + p.maxX;\n }\n\n // MinX\n if (null == p.minX || node.minX - p.padLeft < p.minX) {\n p.minX = node.minX - p.padLeft;\n flag = true;\n // s += \"\\nNew minX for parent node \" + p.id + \": \" + p.minX;\n }\n\n // MaxY\n if (null == p.maxY || node.maxY + p.padBottom > p.maxY) {\n p.maxY = node.maxY + p.padBottom;\n flag = true;\n // s += \"\\nNew maxY for parent node \" + p.id + \": \" + p.maxY;\n }\n\n // MinY\n if (null == p.minY || node.minY - p.padTop < p.minY) {\n p.minY = node.minY - p.padTop;\n flag = true;\n // s += \"\\nNew minY for parent node \" + p.id + \": \" + p.minY;\n }\n\n // If updated boundaries, propagate changes upward\n if (flag) {\n // logDebug(s);\n return _updateAncestryBoundaries(p, layoutInfo);\n }\n\n // s += \". No changes in boundaries/position of parent node \" + p.id;\n // logDebug(s);\n return;\n};\nvar separateComponents = function separateComponents(layoutInfo, options) {\n var nodes = layoutInfo.layoutNodes;\n var components = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var cid = node.cmptId;\n var component = components[cid] = components[cid] || [];\n component.push(node);\n }\n var totalA = 0;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n c.x1 = Infinity;\n c.x2 = -Infinity;\n c.y1 = Infinity;\n c.y2 = -Infinity;\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n c.x1 = Math.min(c.x1, n.positionX - n.width / 2);\n c.x2 = Math.max(c.x2, n.positionX + n.width / 2);\n c.y1 = Math.min(c.y1, n.positionY - n.height / 2);\n c.y2 = Math.max(c.y2, n.positionY + n.height / 2);\n }\n c.w = c.x2 - c.x1;\n c.h = c.y2 - c.y1;\n totalA += c.w * c.h;\n }\n components.sort(function (c1, c2) {\n return c2.w * c2.h - c1.w * c1.h;\n });\n var x = 0;\n var y = 0;\n var usedW = 0;\n var rowH = 0;\n var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n if (!n.isLocked) {\n n.positionX += x - c.x1;\n n.positionY += y - c.y1;\n }\n }\n x += c.w + options.componentSpacing;\n usedW += c.w + options.componentSpacing;\n rowH = Math.max(rowH, c.h);\n if (usedW > maxRowW) {\n y += rowH + options.componentSpacing;\n x = 0;\n usedW = 0;\n rowH = 0;\n }\n }\n};\n\nvar defaults$3 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // padding used on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n avoidOverlapPadding: 10,\n // extra spacing around nodes when avoidOverlap: true\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n condense: false,\n // uses all available space on false, uses minimal space on true\n rows: undefined,\n // force num of rows in the grid\n cols: undefined,\n // force num of columns in the grid\n position: function position(node) {},\n // returns { row, col } for element\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction GridLayout(options) {\n this.options = extend({}, defaults$3, options);\n}\nGridLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n if (bb.h === 0 || bb.w === 0) {\n eles.nodes().layoutPositions(this, options, function (ele) {\n return {\n x: bb.x1,\n y: bb.y1\n };\n });\n } else {\n // width/height * splits^2 = cells where splits is number of times to split width\n var cells = nodes.size();\n var splits = Math.sqrt(cells * bb.h / bb.w);\n var rows = Math.round(splits);\n var cols = Math.round(bb.w / bb.h * splits);\n var small = function small(val) {\n if (val == null) {\n return Math.min(rows, cols);\n } else {\n var min = Math.min(rows, cols);\n if (min == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var large = function large(val) {\n if (val == null) {\n return Math.max(rows, cols);\n } else {\n var max = Math.max(rows, cols);\n if (max == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var oRows = options.rows;\n var oCols = options.cols != null ? options.cols : options.columns;\n\n // if rows or columns were set in options, use those values\n if (oRows != null && oCols != null) {\n rows = oRows;\n cols = oCols;\n } else if (oRows != null && oCols == null) {\n rows = oRows;\n cols = Math.ceil(cells / rows);\n } else if (oRows == null && oCols != null) {\n cols = oCols;\n rows = Math.ceil(cells / cols);\n }\n\n // otherwise use the automatic values and adjust accordingly\n\n // if rounding was up, see if we can reduce rows or columns\n else if (cols * rows > cells) {\n var sm = small();\n var lg = large();\n\n // reducing the small side takes away the most cells, so try it first\n if ((sm - 1) * lg >= cells) {\n small(sm - 1);\n } else if ((lg - 1) * sm >= cells) {\n large(lg - 1);\n }\n } else {\n // if rounding was too low, add rows or columns\n while (cols * rows < cells) {\n var _sm = small();\n var _lg = large();\n\n // try to add to larger side first (adds less in multiplication)\n if ((_lg + 1) * _sm >= cells) {\n large(_lg + 1);\n } else {\n small(_sm + 1);\n }\n }\n }\n var cellWidth = bb.w / cols;\n var cellHeight = bb.h / rows;\n if (options.condense) {\n cellWidth = 0;\n cellHeight = 0;\n }\n if (options.avoidOverlap) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = node._private.position;\n if (pos.x == null || pos.y == null) {\n // for bb\n pos.x = 0;\n pos.y = 0;\n }\n var nbb = node.layoutDimensions(options);\n var p = options.avoidOverlapPadding;\n var w = nbb.w + p;\n var h = nbb.h + p;\n cellWidth = Math.max(cellWidth, w);\n cellHeight = Math.max(cellHeight, h);\n }\n }\n var cellUsed = {}; // e.g. 'c-0-2' => true\n\n var used = function used(row, col) {\n return cellUsed['c-' + row + '-' + col] ? true : false;\n };\n var use = function use(row, col) {\n cellUsed['c-' + row + '-' + col] = true;\n };\n\n // to keep track of current cell position\n var row = 0;\n var col = 0;\n var moveToNextCell = function moveToNextCell() {\n col++;\n if (col >= cols) {\n col = 0;\n row++;\n }\n };\n\n // get a cache of all the manual positions\n var id2manPos = {};\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var rcPos = options.position(_node);\n if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) {\n // must have at least row or col def'd\n var _pos = {\n row: rcPos.row,\n col: rcPos.col\n };\n if (_pos.col === undefined) {\n // find unused col\n _pos.col = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.col++;\n }\n } else if (_pos.row === undefined) {\n // find unused row\n _pos.row = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.row++;\n }\n }\n id2manPos[_node.id()] = _pos;\n use(_pos.row, _pos.col);\n }\n }\n var getPos = function getPos(element, i) {\n var x, y;\n if (element.locked() || element.isParent()) {\n return false;\n }\n\n // see if we have a manual position set\n var rcPos = id2manPos[element.id()];\n if (rcPos) {\n x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1;\n y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1;\n } else {\n // otherwise set automatically\n\n while (used(row, col)) {\n moveToNextCell();\n }\n x = col * cellWidth + cellWidth / 2 + bb.x1;\n y = row * cellHeight + cellHeight / 2 + bb.y1;\n use(row, col);\n moveToNextCell();\n }\n return {\n x: x,\n y: y\n };\n };\n nodes.layoutPositions(this, options, getPos);\n }\n return this; // chaining\n};\n\n// default layout options\nvar defaults$2 = {\n ready: function ready() {},\n // on layoutready\n stop: function stop() {} // on layoutstop\n};\n\n// constructor\n// options : object containing layout options\nfunction NullLayout(options) {\n this.options = extend({}, defaults$2, options);\n}\n\n// runs the layout\nNullLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles; // elements to consider in the layout\n var layout = this;\n\n // cy is automatically populated for us in the constructor\n // (disable eslint for next line as this serves as example layout code to external developers)\n // eslint-disable-next-line no-unused-vars\n options.cy;\n layout.emit('layoutstart');\n\n // puts all nodes at (0, 0)\n // n.b. most layouts would use layoutPositions(), instead of positions() and manual events\n eles.nodes().positions(function () {\n return {\n x: 0,\n y: 0\n };\n });\n\n // trigger layoutready when each node has had its position set at least once\n layout.one('layoutready', options.ready);\n layout.emit('layoutready');\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n layout.one('layoutstop', options.stop);\n layout.emit('layoutstop');\n return this; // chaining\n};\n\n// called on continuous layouts to stop them before they finish\nNullLayout.prototype.stop = function () {\n return this; // chaining\n};\n\nvar defaults$1 = {\n positions: undefined,\n // map of (node id) => (position obj); or function(node){ return somPos; }\n zoom: undefined,\n // the zoom level to set (prob want fit = false if set)\n pan: undefined,\n // the pan level to set (prob want fit = false if set)\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // padding on fit\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n};\nfunction PresetLayout(options) {\n this.options = extend({}, defaults$1, options);\n}\nPresetLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles;\n var nodes = eles.nodes();\n var posIsFn = fn$6(options.positions);\n function getPosition(node) {\n if (options.positions == null) {\n return copyPosition(node.position());\n }\n if (posIsFn) {\n return options.positions(node);\n }\n var pos = options.positions[node._private.data.id];\n if (pos == null) {\n return null;\n }\n return pos;\n }\n nodes.layoutPositions(this, options, function (node, i) {\n var position = getPosition(node);\n if (node.locked() || position == null) {\n return false;\n }\n return position;\n });\n return this; // chaining\n};\n\nvar defaults = {\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // fit padding\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction RandomLayout(options) {\n this.options = extend({}, defaults, options);\n}\nRandomLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var getPos = function getPos(node, i) {\n return {\n x: bb.x1 + Math.round(Math.random() * bb.w),\n y: bb.y1 + Math.round(Math.random() * bb.h)\n };\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n};\n\nvar layout = [{\n name: 'breadthfirst',\n impl: BreadthFirstLayout\n}, {\n name: 'circle',\n impl: CircleLayout\n}, {\n name: 'concentric',\n impl: ConcentricLayout\n}, {\n name: 'cose',\n impl: CoseLayout\n}, {\n name: 'grid',\n impl: GridLayout\n}, {\n name: 'null',\n impl: NullLayout\n}, {\n name: 'preset',\n impl: PresetLayout\n}, {\n name: 'random',\n impl: RandomLayout\n}];\n\nfunction NullRenderer(options) {\n this.options = options;\n this.notifications = 0; // for testing\n}\nvar noop = function noop() {};\nvar throwImgErr = function throwImgErr() {\n throw new Error('A headless instance can not render images');\n};\nNullRenderer.prototype = {\n recalculateRenderedStyle: noop,\n notify: function notify() {\n this.notifications++;\n },\n init: noop,\n isHeadless: function isHeadless() {\n return true;\n },\n png: throwImgErr,\n jpg: throwImgErr\n};\n\nvar BRp$f = {};\nBRp$f.arrowShapeWidth = 0.3;\nBRp$f.registerArrowShapes = function () {\n var arrowShapes = this.arrowShapes = {};\n var renderer = this;\n\n // Contract for arrow shapes:\n // 0, 0 is arrow tip\n // (0, 1) is direction towards node\n // (1, 0) is right\n //\n // functional api:\n // collide: check x, y in shape\n // roughCollide: called before collide, no false negatives\n // draw: draw\n // spacing: dist(arrowTip, nodeBoundary)\n // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip\n\n var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) {\n var x1 = translation.x - size / 2 - padding;\n var x2 = translation.x + size / 2 + padding;\n var y1 = translation.y - size / 2 - padding;\n var y2 = translation.y + size / 2 + padding;\n var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2;\n return inside;\n };\n var transform = function transform(x, y, size, angle, translation) {\n var xRotated = x * Math.cos(angle) - y * Math.sin(angle);\n var yRotated = x * Math.sin(angle) + y * Math.cos(angle);\n var xScaled = xRotated * size;\n var yScaled = yRotated * size;\n var xTranslated = xScaled + translation.x;\n var yTranslated = yScaled + translation.y;\n return {\n x: xTranslated,\n y: yTranslated\n };\n };\n var transformPoints = function transformPoints(pts, size, angle, translation) {\n var retPts = [];\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push(transform(x, y, size, angle, translation));\n }\n return retPts;\n };\n var pointsToArr = function pointsToArr(pts) {\n var ret = [];\n for (var i = 0; i < pts.length; i++) {\n var p = pts[i];\n ret.push(p.x, p.y);\n }\n return ret;\n };\n var standardGap = function standardGap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2;\n };\n var defineArrowShape = function defineArrowShape(name, defn) {\n if (string(defn)) {\n defn = arrowShapes[defn];\n }\n arrowShapes[name] = extend({\n name: name,\n points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],\n collide: function collide(x, y, size, angle, translation, padding) {\n var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, points);\n return inside;\n },\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation) {\n var points = transformPoints(this.points, size, angle, translation);\n renderer.arrowShapeImpl('polygon')(context, points);\n },\n spacing: function spacing(edge) {\n return 0;\n },\n gap: standardGap\n }, defn);\n };\n defineArrowShape('none', {\n collide: falsify,\n roughCollide: falsify,\n draw: noop$1,\n spacing: zeroify,\n gap: zeroify\n });\n defineArrowShape('triangle', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3]\n });\n defineArrowShape('arrow', 'triangle');\n defineArrowShape('triangle-backcurve', {\n points: arrowShapes['triangle'].points,\n controlPoint: [0, -0.15],\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var ptsTrans = transformPoints(this.points, size, angle, translation);\n var ctrlPt = this.controlPoint;\n var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);\n },\n gap: function gap(edge) {\n return standardGap(edge) * 0.8;\n }\n });\n defineArrowShape('triangle-tee', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var teePts = transformPoints(this.pointsTee, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, teePts);\n }\n });\n defineArrowShape('circle-triangle', {\n radius: 0.15,\n pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n return pointInsidePolygonPoints(x, y, triPts) || circleInside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.pointsTr, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('triangle-cross', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n baseCrossLinePts: [-0.15, -0.4,\n // first half of the rectangle\n -0.15, -0.4, 0.15, -0.4,\n // second half of the rectangle\n 0.15, -0.4],\n crossLinePts: function crossLinePts(size, edgeWidth) {\n // shift points so that the distance between the cross points matches edge width\n var p = this.baseCrossLinePts.slice();\n var shiftFactor = edgeWidth / size;\n var y0 = 3;\n var y1 = 5;\n p[y0] = p[y0] - shiftFactor;\n p[y1] = p[y1] - shiftFactor;\n return p;\n },\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts);\n }\n });\n defineArrowShape('vee', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],\n gap: function gap(edge) {\n return standardGap(edge) * 0.525;\n }\n });\n defineArrowShape('circle', {\n radius: 0.15,\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('tee', {\n points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],\n spacing: function spacing(edge) {\n return 1;\n },\n gap: function gap(edge) {\n return 1;\n }\n });\n defineArrowShape('square', {\n points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3]\n });\n defineArrowShape('diamond', {\n points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],\n gap: function gap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n defineArrowShape('chevron', {\n points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],\n gap: function gap(edge) {\n return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n};\n\nvar BRp$e = {};\n\n// Project mouse\nBRp$e.projectIntoViewport = function (clientX, clientY) {\n var cy = this.cy;\n var offsets = this.findContainerClientCoords();\n var offsetLeft = offsets[0];\n var offsetTop = offsets[1];\n var scale = offsets[4];\n var pan = cy.pan();\n var zoom = cy.zoom();\n var x = ((clientX - offsetLeft) / scale - pan.x) / zoom;\n var y = ((clientY - offsetTop) / scale - pan.y) / zoom;\n return [x, y];\n};\nBRp$e.findContainerClientCoords = function () {\n if (this.containerBB) {\n return this.containerBB;\n }\n var container = this.container;\n var rect = container.getBoundingClientRect();\n var style = this.cy.window().getComputedStyle(container);\n var styleValue = function styleValue(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n var padding = {\n left: styleValue('padding-left'),\n right: styleValue('padding-right'),\n top: styleValue('padding-top'),\n bottom: styleValue('padding-bottom')\n };\n var border = {\n left: styleValue('border-left-width'),\n right: styleValue('border-right-width'),\n top: styleValue('border-top-width'),\n bottom: styleValue('border-bottom-width')\n };\n var clientWidth = container.clientWidth;\n var clientHeight = container.clientHeight;\n var paddingHor = padding.left + padding.right;\n var paddingVer = padding.top + padding.bottom;\n var borderHor = border.left + border.right;\n var scale = rect.width / (clientWidth + borderHor);\n var unscaledW = clientWidth - paddingHor;\n var unscaledH = clientHeight - paddingVer;\n var left = rect.left + padding.left + border.left;\n var top = rect.top + padding.top + border.top;\n return this.containerBB = [left, top, unscaledW, unscaledH, scale];\n};\nBRp$e.invalidateContainerClientCoordsCache = function () {\n this.containerBB = null;\n};\nBRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) {\n return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0];\n};\nBRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) {\n var self = this;\n var r = this;\n var eles = r.getCachedZSortedEles();\n var near = []; // 1 node max, 1 edge max\n var zoom = r.cy.zoom();\n var hasCompounds = r.cy.hasCompoundNodes();\n var edgeThreshold = (isTouch ? 24 : 8) / zoom;\n var nodeThreshold = (isTouch ? 8 : 2) / zoom;\n var labelThreshold = (isTouch ? 8 : 2) / zoom;\n var minSqDist = Infinity;\n var nearEdge;\n var nearNode;\n if (interactiveElementsOnly) {\n eles = eles.interactive;\n }\n function addEle(ele, sqDist) {\n if (ele.isNode()) {\n if (nearNode) {\n return; // can't replace node\n } else {\n nearNode = ele;\n near.push(ele);\n }\n }\n if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) {\n if (nearEdge) {\n // then replace existing edge\n // can replace only if same z-index\n if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) {\n for (var i = 0; i < near.length; i++) {\n if (near[i].isEdge()) {\n near[i] = ele;\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n break;\n }\n }\n }\n } else {\n near.push(ele);\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n }\n }\n }\n function checkNode(node) {\n var width = node.outerWidth() + 2 * nodeThreshold;\n var height = node.outerHeight() + 2 * nodeThreshold;\n var hw = width / 2;\n var hh = height / 2;\n var pos = node.position();\n var cornerRadius = node.pstyle('corner-radius').value === 'auto' ? 'auto' : node.pstyle('corner-radius').pfValue;\n var rs = node._private.rscratch;\n if (pos.x - hw <= x && x <= pos.x + hw // bb check x\n && pos.y - hh <= y && y <= pos.y + hh // bb check y\n ) {\n var shape = r.nodeShapes[self.getNodeShape(node)];\n if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y, cornerRadius, rs)) {\n addEle(node, 0);\n return true;\n }\n }\n }\n function checkEdge(edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var styleWidth = edge.pstyle('width').pfValue;\n var scale = edge.pstyle('arrow-scale').value;\n var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre\n var widthSq = width * width;\n var width2 = width * 2;\n var src = _p.source;\n var tgt = _p.target;\n var sqDist;\n if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') {\n var pts = rs.allpts;\n for (var i = 0; i + 3 < pts.length; i += 2) {\n if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n var pts = rs.allpts;\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n }\n\n // if we're close to the edge but didn't hit it, maybe we hit its arrows\n\n var src = src || _p.source;\n var tgt = tgt || _p.target;\n var arSize = self.getArrowWidth(styleWidth, scale);\n var arrows = [{\n name: 'source',\n x: rs.arrowStartX,\n y: rs.arrowStartY,\n angle: rs.srcArrowAngle\n }, {\n name: 'target',\n x: rs.arrowEndX,\n y: rs.arrowEndY,\n angle: rs.tgtArrowAngle\n }, {\n name: 'mid-source',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midsrcArrowAngle\n }, {\n name: 'mid-target',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midtgtArrowAngle\n }];\n for (var i = 0; i < arrows.length; i++) {\n var ar = arrows[i];\n var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value];\n var edgeWidth = edge.pstyle('width').pfValue;\n if (shape.roughCollide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold)) {\n addEle(edge);\n return true;\n }\n }\n\n // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence)\n if (hasCompounds && near.length > 0) {\n checkNode(src);\n checkNode(tgt);\n }\n }\n function preprop(obj, name, pre) {\n return getPrefixedProperty(obj, name, pre);\n }\n function checkLabel(ele, prefix) {\n var _p = ele._private;\n var th = labelThreshold;\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n ele.boundingBox();\n var bb = _p.labelBounds[prefix || 'main'];\n var text = ele.pstyle(prefixDash + 'label').value;\n var eventsEnabled = ele.pstyle('text-events').strValue === 'yes';\n if (!eventsEnabled || !text) {\n return;\n }\n var lx = preprop(_p.rscratch, 'labelX', prefix);\n var ly = preprop(_p.rscratch, 'labelY', prefix);\n var theta = preprop(_p.rscratch, 'labelAngle', prefix);\n var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin\n var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly)\n var ly1 = bb.y1 - th - oy;\n var ly2 = bb.y2 + th - oy;\n if (theta) {\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n var rotate = function rotate(x, y) {\n x = x - lx;\n y = y - ly;\n return {\n x: x * cos - y * sin + lx,\n y: x * sin + y * cos + ly\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n var points = [\n // with the margin added after the rotation is applied\n px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy];\n if (pointInsidePolygonPoints(x, y, points)) {\n addEle(ele);\n return true;\n }\n } else {\n // do a cheaper bb check\n if (inBoundingBox(bb, x, y)) {\n addEle(ele);\n return true;\n }\n }\n }\n for (var i = eles.length - 1; i >= 0; i--) {\n // reverse order for precedence\n var ele = eles[i];\n if (ele.isNode()) {\n checkNode(ele) || checkLabel(ele);\n } else {\n // then edge\n checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target');\n }\n }\n return near;\n};\n\n// 'Give me everything from this box'\nBRp$e.getAllInBox = function (x1, y1, x2, y2) {\n var eles = this.getCachedZSortedEles().interactive;\n var zoom = this.cy.zoom();\n var labelThreshold = 2 / zoom;\n var box = [];\n var x1c = Math.min(x1, x2);\n var x2c = Math.max(x1, x2);\n var y1c = Math.min(y1, y2);\n var y2c = Math.max(y1, y2);\n x1 = x1c;\n x2 = x2c;\n y1 = y1c;\n y2 = y2c;\n var boxBb = makeBoundingBox({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n var selectionBox = [{\n x: boxBb.x1,\n y: boxBb.y1\n }, {\n x: boxBb.x2,\n y: boxBb.y1\n }, {\n x: boxBb.x2,\n y: boxBb.y2\n }, {\n x: boxBb.x1,\n y: boxBb.y2\n }];\n var boxEdges = [[selectionBox[0], selectionBox[1]], [selectionBox[1], selectionBox[2]], [selectionBox[2], selectionBox[3]], [selectionBox[3], selectionBox[0]]];\n function preprop(obj, name, pre) {\n return getPrefixedProperty(obj, name, pre);\n }\n function getRotatedLabelBox(ele, prefix) {\n var _p = ele._private;\n var th = labelThreshold;\n var prefixDash = '';\n ele.boundingBox();\n var bb = _p.labelBounds['main'];\n\n // If the bounding box is not available, return null.\n // This indicates that the label box cannot be calculated, which is consistent\n // with the expected behavior of this function. Returning null allows the caller\n // to handle the absence of a bounding box explicitly.\n if (!bb) {\n return null;\n }\n var lx = preprop(_p.rscratch, 'labelX', prefix);\n var ly = preprop(_p.rscratch, 'labelY', prefix);\n var theta = preprop(_p.rscratch, 'labelAngle', prefix);\n var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var lx1 = bb.x1 - th - ox;\n var lx2 = bb.x2 + th - ox;\n var ly1 = bb.y1 - th - oy;\n var ly2 = bb.y2 + th - oy;\n if (theta) {\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n var rotate = function rotate(x, y) {\n x = x - lx;\n y = y - ly;\n return {\n x: x * cos - y * sin + lx,\n y: x * sin + y * cos + ly\n };\n };\n return [rotate(lx1, ly1), rotate(lx2, ly1), rotate(lx2, ly2), rotate(lx1, ly2)];\n } else {\n return [{\n x: lx1,\n y: ly1\n }, {\n x: lx2,\n y: ly1\n }, {\n x: lx2,\n y: ly2\n }, {\n x: lx1,\n y: ly2\n }];\n }\n }\n function doLinesIntersect(p1, p2, q1, q2) {\n function ccw(a, b, c) {\n return (c.y - a.y) * (b.x - a.x) > (b.y - a.y) * (c.x - a.x);\n }\n return ccw(p1, q1, q2) !== ccw(p2, q1, q2) && ccw(p1, p2, q1) !== ccw(p1, p2, q2);\n }\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n if (ele.isNode()) {\n var node = ele;\n var textEvents = node.pstyle('text-events').strValue === 'yes';\n var nodeBoxSelectMode = node.pstyle('box-selection').strValue;\n var labelBoxSelectEnabled = node.pstyle('box-select-labels').strValue === 'yes';\n if (nodeBoxSelectMode === 'none') {\n continue;\n }\n var includeLabels = (nodeBoxSelectMode === 'overlap' || labelBoxSelectEnabled) && textEvents;\n var nodeBb = node.boundingBox({\n includeNodes: true,\n includeEdges: false,\n includeLabels: includeLabels\n });\n if (nodeBoxSelectMode === 'contain') {\n var selected = false;\n if (labelBoxSelectEnabled && textEvents) {\n var rotatedLabelBox = getRotatedLabelBox(node);\n if (rotatedLabelBox && satPolygonIntersection(rotatedLabelBox, selectionBox)) {\n box.push(node);\n selected = true;\n }\n }\n if (!selected && boundingBoxInBoundingBox(boxBb, nodeBb)) {\n box.push(node);\n }\n } else if (nodeBoxSelectMode === 'overlap') {\n if (boundingBoxesIntersect(boxBb, nodeBb)) {\n var nodeBodyBb = node.boundingBox({\n includeNodes: true,\n includeEdges: true,\n includeLabels: false,\n includeMainLabels: false,\n includeSourceLabels: false,\n includeTargetLabels: false\n });\n var nodeBodyCorners = [{\n x: nodeBodyBb.x1,\n y: nodeBodyBb.y1\n }, {\n x: nodeBodyBb.x2,\n y: nodeBodyBb.y1\n }, {\n x: nodeBodyBb.x2,\n y: nodeBodyBb.y2\n }, {\n x: nodeBodyBb.x1,\n y: nodeBodyBb.y2\n }];\n\n // if node body intersects, no need to check label\n if (satPolygonIntersection(nodeBodyCorners, selectionBox)) {\n box.push(node);\n } else {\n // only check label if node body didn't intersect\n var _rotatedLabelBox = getRotatedLabelBox(node);\n if (_rotatedLabelBox && satPolygonIntersection(_rotatedLabelBox, selectionBox)) {\n box.push(node);\n }\n }\n }\n }\n } else {\n var edge = ele;\n var _p = edge._private;\n var rs = _p.rscratch;\n var edgeBoxSelectMode = edge.pstyle('box-selection').strValue;\n if (edgeBoxSelectMode === 'none') {\n continue;\n }\n if (edgeBoxSelectMode === 'contain') {\n if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {\n continue;\n }\n if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {\n continue;\n }\n if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') {\n var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;\n var allInside = true;\n for (var i = 0; i < pts.length; i++) {\n if (!pointInBoundingBox(boxBb, pts[i])) {\n allInside = false;\n break;\n }\n }\n if (allInside) {\n box.push(edge);\n }\n } else if (rs.edgeType === 'straight') {\n box.push(edge);\n }\n } else if (edgeBoxSelectMode === 'overlap') {\n var _selected = false;\n\n // Check: either endpoint inside box\n if (rs.startX != null && rs.startY != null && rs.endX != null && rs.endY != null && (inBoundingBox(boxBb, rs.startX, rs.startY) || inBoundingBox(boxBb, rs.endX, rs.endY))) {\n box.push(edge);\n _selected = true;\n }\n\n // Haystack fallback (only check if not already selected)\n else if (!_selected && rs.edgeType === 'haystack') {\n var haystackPts = _p.rstyle.haystackPts;\n for (var _i = 0; _i < haystackPts.length; _i++) {\n if (pointInBoundingBox(boxBb, haystackPts[_i])) {\n box.push(edge);\n _selected = true;\n break;\n }\n }\n }\n\n // Segment intersection check (only if not already selected)\n if (!_selected) {\n var _pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;\n\n // straight edges\n if ((!_pts || _pts.length < 2) && rs.edgeType === 'straight') {\n if (rs.startX != null && rs.startY != null && rs.endX != null && rs.endY != null) {\n _pts = [{\n x: rs.startX,\n y: rs.startY\n }, {\n x: rs.endX,\n y: rs.endY\n }];\n }\n }\n if (!_pts || _pts.length < 2) continue;\n for (var _i2 = 0; _i2 < _pts.length - 1; _i2++) {\n var segStart = _pts[_i2];\n var segEnd = _pts[_i2 + 1];\n for (var b = 0; b < boxEdges.length; b++) {\n var _boxEdges$b = _slicedToArray(boxEdges[b], 2),\n boxStart = _boxEdges$b[0],\n boxEnd = _boxEdges$b[1];\n if (doLinesIntersect(segStart, segEnd, boxStart, boxEnd)) {\n box.push(edge);\n _selected = true;\n break;\n }\n }\n if (_selected) break;\n }\n }\n }\n }\n }\n return box;\n};\n\nvar BRp$d = {};\nBRp$d.calculateArrowAngles = function (edge) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n var isBezier = rs.edgeType === 'bezier';\n var isMultibezier = rs.edgeType === 'multibezier';\n var isSegments = rs.edgeType === 'segments';\n var isCompound = rs.edgeType === 'compound';\n var isSelf = rs.edgeType === 'self';\n\n // Displacement gives direction for arrowhead orientation\n var dispX, dispY;\n var startX, startY, endX, endY, midX, midY;\n if (isHaystack) {\n startX = rs.haystackPts[0];\n startY = rs.haystackPts[1];\n endX = rs.haystackPts[2];\n endY = rs.haystackPts[3];\n } else {\n startX = rs.arrowStartX;\n startY = rs.arrowStartY;\n endX = rs.arrowEndX;\n endY = rs.arrowEndY;\n }\n midX = rs.midX;\n midY = rs.midY;\n\n // source\n //\n\n if (isSegments) {\n dispX = startX - rs.segpts[0];\n dispY = startY - rs.segpts[1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1);\n var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1);\n dispX = startX - bX;\n dispY = startY - bY;\n } else {\n dispX = startX - midX;\n dispY = startY - midY;\n }\n rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // mid target\n //\n\n var midX = rs.midX;\n var midY = rs.midY;\n if (isHaystack) {\n midX = (startX + endX) / 2;\n midY = (startY + endY) / 2;\n }\n dispX = endX - startX;\n dispY = endY - startY;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) {\n var i2 = pts.length / 2;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n } else if (rs.isRound) {\n dispX = rs.midVector[1];\n dispY = -rs.midVector[0];\n } else {\n var i2 = pts.length / 2 - 1;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n }\n } else if (isMultibezier || isCompound || isSelf) {\n var pts = rs.allpts;\n var cpts = rs.ctrlpts;\n var bp0x, bp0y;\n var bp1x, bp1y;\n if (cpts.length / 2 % 2 === 0) {\n var p0 = pts.length / 2 - 1; // startpt\n var ic = p0 + 2;\n var p1 = ic + 2;\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001);\n } else {\n var ic = pts.length / 2 - 1; // ctrpt\n var p0 = ic - 2; // startpt\n var p1 = ic + 2; // endpt\n\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5);\n }\n dispX = bp1x - bp0x;\n dispY = bp1y - bp0y;\n }\n rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);\n rs.midDispX = dispX;\n rs.midDispY = dispY;\n\n // mid source\n //\n\n dispX *= -1;\n dispY *= -1;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) ; else if (!rs.isRound) {\n var i2 = pts.length / 2 - 1;\n var i3 = i2 + 2;\n dispX = -(pts[i3] - pts[i2]);\n dispY = -(pts[i3 + 1] - pts[i2 + 1]);\n }\n }\n rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // target\n //\n\n if (isSegments) {\n dispX = endX - rs.segpts[rs.segpts.length - 2];\n dispY = endY - rs.segpts[rs.segpts.length - 1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var l = pts.length;\n var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9);\n var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9);\n dispX = endX - bX;\n dispY = endY - bY;\n } else {\n dispX = endX - midX;\n dispY = endY - midY;\n }\n rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);\n};\nBRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) {\n var cache = this.arrowWidthCache = this.arrowWidthCache || {};\n var cachedVal = cache[edgeWidth + ', ' + scale];\n if (cachedVal) {\n return cachedVal;\n }\n cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;\n cache[edgeWidth + ', ' + scale] = cachedVal;\n return cachedVal;\n};\n\n/**\n * Explained by Blindman67 at https://stackoverflow.com/a/44856925/11028828\n */\n\n// Declare reused variable to avoid reallocating variables every time the function is called\nvar x,\n y,\n v1 = {},\n v2 = {},\n sinA,\n sinA90,\n radDirection,\n drawDirection,\n angle,\n halfAngle,\n cRadius,\n lenOut,\n radius,\n limit;\nvar startX, startY, stopX, stopY;\nvar lastPoint;\n\n// convert 2 points into vector form, polar form, and normalised\nvar asVec = function asVec(p, pp, v) {\n v.x = pp.x - p.x;\n v.y = pp.y - p.y;\n v.len = Math.sqrt(v.x * v.x + v.y * v.y);\n v.nx = v.x / v.len;\n v.ny = v.y / v.len;\n v.ang = Math.atan2(v.ny, v.nx);\n};\nvar invertVec = function invertVec(originalV, invertedV) {\n invertedV.x = originalV.x * -1;\n invertedV.y = originalV.y * -1;\n invertedV.nx = originalV.nx * -1;\n invertedV.ny = originalV.ny * -1;\n invertedV.ang = originalV.ang > 0 ? -(Math.PI - originalV.ang) : Math.PI + originalV.ang;\n};\nvar calcCornerArc = function calcCornerArc(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius) {\n //-----------------------------------------\n // Part 1\n previousPoint !== lastPoint ? asVec(currentPoint, previousPoint, v1) : invertVec(v2, v1); // Avoid recalculating vec if it is the invert of the last one calculated\n asVec(currentPoint, nextPoint, v2);\n sinA = v1.nx * v2.ny - v1.ny * v2.nx;\n sinA90 = v1.nx * v2.nx - v1.ny * -v2.ny;\n angle = Math.asin(Math.max(-1, Math.min(1, sinA)));\n if (Math.abs(angle) < 1e-6) {\n x = currentPoint.x;\n y = currentPoint.y;\n cRadius = radius = 0;\n return;\n }\n //-----------------------------------------\n radDirection = 1;\n drawDirection = false;\n if (sinA90 < 0) {\n if (angle < 0) {\n angle = Math.PI + angle;\n } else {\n angle = Math.PI - angle;\n radDirection = -1;\n drawDirection = true;\n }\n } else {\n if (angle > 0) {\n radDirection = -1;\n drawDirection = true;\n }\n }\n if (currentPoint.radius !== undefined) {\n radius = currentPoint.radius;\n } else {\n radius = radiusMax;\n }\n //-----------------------------------------\n // Part 2\n halfAngle = angle / 2;\n //-----------------------------------------\n\n limit = Math.min(v1.len / 2, v2.len / 2);\n if (isArcRadius) {\n //-----------------------------------------\n // Part 3\n lenOut = Math.abs(Math.cos(halfAngle) * radius / Math.sin(halfAngle));\n\n //-----------------------------------------\n // Special part A\n if (lenOut > limit) {\n lenOut = limit;\n cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));\n } else {\n cRadius = radius;\n }\n } else {\n lenOut = Math.min(limit, radius);\n cRadius = Math.abs(lenOut * Math.sin(halfAngle) / Math.cos(halfAngle));\n }\n //-----------------------------------------\n\n //-----------------------------------------\n // Part 4\n stopX = currentPoint.x + v2.nx * lenOut;\n stopY = currentPoint.y + v2.ny * lenOut;\n //-----------------------------------------\n // Part 5\n x = stopX - v2.ny * cRadius * radDirection;\n y = stopY + v2.nx * cRadius * radDirection;\n //-----------------------------------------\n // Additional Part : calculate start point E\n startX = currentPoint.x + v1.nx * lenOut;\n startY = currentPoint.y + v1.ny * lenOut;\n\n // Save last point to avoid recalculating vector when not needed\n lastPoint = currentPoint;\n};\n\n/**\n * Draw corner provided by {@link getRoundCorner}\n *\n * @param ctx :CanvasRenderingContext2D\n * @param roundCorner {{cx:number, cy:number, radius:number, endAngle: number, startAngle: number, counterClockwise: boolean}}\n */\nfunction drawPreparedRoundCorner(ctx, roundCorner) {\n if (roundCorner.radius === 0) ctx.lineTo(roundCorner.cx, roundCorner.cy);else ctx.arc(roundCorner.cx, roundCorner.cy, roundCorner.radius, roundCorner.startAngle, roundCorner.endAngle, roundCorner.counterClockwise);\n}\n\n/**\n * Get round corner from a point and its previous and next neighbours in a path\n *\n * @param previousPoint {{x: number, y:number, radius: number?}}\n * @param currentPoint {{x: number, y:number, radius: number?}}\n * @param nextPoint {{x: number, y:number, radius: number?}}\n * @param radiusMax :number\n * @param isArcRadius :boolean\n * @return {{\n * cx:number, cy:number, radius:number,\n * startX:number, startY:number,\n * stopX:number, stopY: number,\n * endAngle: number, startAngle: number, counterClockwise: boolean\n * }}\n */\nfunction getRoundCorner(previousPoint, currentPoint, nextPoint, radiusMax) {\n var isArcRadius = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n if (radiusMax === 0 || currentPoint.radius === 0) return {\n cx: currentPoint.x,\n cy: currentPoint.y,\n radius: 0,\n startX: currentPoint.x,\n startY: currentPoint.y,\n stopX: currentPoint.x,\n stopY: currentPoint.y,\n startAngle: undefined,\n endAngle: undefined,\n counterClockwise: undefined\n };\n calcCornerArc(previousPoint, currentPoint, nextPoint, radiusMax, isArcRadius);\n return {\n cx: x,\n cy: y,\n radius: cRadius,\n startX: startX,\n startY: startY,\n stopX: stopX,\n stopY: stopY,\n startAngle: v1.ang + Math.PI / 2 * radDirection,\n endAngle: v2.ang - Math.PI / 2 * radDirection,\n counterClockwise: drawDirection\n };\n}\n\nvar AVOID_IMPOSSIBLE_BEZIER_CONSTANT = 0.01;\nvar AVOID_IMPOSSIBLE_BEZIER_CONSTANT_L = Math.sqrt(2 * AVOID_IMPOSSIBLE_BEZIER_CONSTANT);\nvar BRp$c = {};\nBRp$c.findMidptPtsEtc = function (edge, pairInfo) {\n var posPts = pairInfo.posPts,\n intersectionPts = pairInfo.intersectionPts,\n vectorNormInverse = pairInfo.vectorNormInverse;\n var midptPts;\n\n // n.b. assumes all edges in bezier bundle have same endpoints specified\n var srcManEndpt = edge.pstyle('source-endpoint');\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null;\n var recalcVectorNormInverse = function recalcVectorNormInverse(x1, y1, x2, y2) {\n var dy = y2 - y1;\n var dx = x2 - x1;\n var l = Math.sqrt(dx * dx + dy * dy);\n return {\n x: -dy / l,\n y: dx / l\n };\n };\n var edgeDistances = edge.pstyle('edge-distances').value;\n switch (edgeDistances) {\n case 'node-position':\n midptPts = posPts;\n break;\n case 'intersection':\n midptPts = intersectionPts;\n break;\n case 'endpoints':\n {\n if (haveManualEndPts) {\n var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt),\n _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2),\n x1 = _this$manualEndptToPx2[0],\n y1 = _this$manualEndptToPx2[1];\n var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt),\n _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2),\n x2 = _this$manualEndptToPx4[0],\n y2 = _this$manualEndptToPx4[1];\n var endPts = {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2);\n midptPts = endPts;\n } else {\n warn(\"Edge \".concat(edge.id(), \" has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).\"));\n midptPts = intersectionPts; // back to default\n }\n break;\n }\n }\n return {\n midptPts: midptPts,\n vectorNormInverse: vectorNormInverse\n };\n};\nBRp$c.findHaystackPoints = function (edges) {\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var rs = _p.rscratch;\n if (!rs.haystack) {\n var angle = Math.random() * 2 * Math.PI;\n rs.source = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n angle = Math.random() * 2 * Math.PI;\n rs.target = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n }\n var src = _p.source;\n var tgt = _p.target;\n var srcPos = src.position();\n var tgtPos = tgt.position();\n var srcW = src.width();\n var tgtW = tgt.width();\n var srcH = src.height();\n var tgtH = tgt.height();\n var radius = edge.pstyle('haystack-radius').value;\n var halfRadius = radius / 2; // b/c have to half width/height\n\n rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];\n rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;\n rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;\n\n // always override as haystack in case set to different type previously\n rs.edgeType = 'haystack';\n rs.haystack = true;\n this.storeEdgeProjections(edge);\n this.calculateArrowAngles(edge);\n this.recalculateEdgeLabelProjections(edge);\n this.calculateLabelAngles(edge);\n }\n};\nBRp$c.findSegmentsPoints = function (edge, pairInfo) {\n // Segments (multiple straight lines)\n\n var rs = edge._private.rscratch;\n var segmentWs = edge.pstyle('segment-weights');\n var segmentDs = edge.pstyle('segment-distances');\n var segmentRs = edge.pstyle('segment-radii');\n var segmentTs = edge.pstyle('radius-type');\n var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);\n var lastRadius = segmentRs.pfValue[segmentRs.pfValue.length - 1];\n var lastRadiusType = segmentTs.pfValue[segmentTs.pfValue.length - 1];\n rs.edgeType = 'segments';\n rs.segpts = [];\n rs.radii = [];\n rs.isArcRadius = [];\n for (var s = 0; s < segmentsN; s++) {\n var w = segmentWs.pfValue[s];\n var d = segmentDs.pfValue[s];\n var w1 = 1 - w;\n var w2 = w;\n var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);\n rs.radii.push(segmentRs.pfValue[s] !== undefined ? segmentRs.pfValue[s] : lastRadius);\n rs.isArcRadius.push((segmentTs.pfValue[s] !== undefined ? segmentTs.pfValue[s] : lastRadiusType) === 'arc-radius');\n }\n};\nBRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Self-edge\n\n var rs = edge._private.rscratch;\n var dirCounts = pairInfo.dirCounts,\n srcPos = pairInfo.srcPos;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var loopDir = edge.pstyle('loop-direction').pfValue;\n var loopSwp = edge.pstyle('loop-sweep').pfValue;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n rs.edgeType = 'self';\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopAngle = loopDir - Math.PI / 2;\n var outAngle = loopAngle - loopSwp / 2;\n var inAngle = loopAngle + loopSwp / 2;\n\n // increase by step size for overlapping loops, keyed on direction and sweep values\n var dc = String(loopDir + '_' + loopSwp);\n j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc];\n rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];\n};\nBRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Compound edge\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'compound';\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopW = 50;\n var loopaPos = {\n x: srcPos.x - srcW / 2,\n y: srcPos.y - srcH / 2\n };\n var loopbPos = {\n x: tgtPos.x - tgtW / 2,\n y: tgtPos.y - tgtH / 2\n };\n var loopPos = {\n x: Math.min(loopaPos.x, loopbPos.x),\n y: Math.min(loopaPos.y, loopbPos.y)\n };\n\n // avoids cases with impossible beziers\n var minCompoundStretch = 0.5;\n var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * AVOID_IMPOSSIBLE_BEZIER_CONSTANT));\n var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * AVOID_IMPOSSIBLE_BEZIER_CONSTANT));\n rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];\n};\nBRp$c.findStraightEdgePoints = function (edge) {\n // Straight edge within bundle\n\n edge._private.rscratch.edgeType = 'straight';\n};\nBRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) {\n var rs = edge._private.rscratch;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptWs = edge.pstyle('control-point-weights');\n var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var ctrlptWeight = ctrlptWs.value[0];\n\n // (Multi)bezier\n\n var multi = edgeIsUnbundled;\n rs.edgeType = multi ? 'multibezier' : 'bezier';\n rs.ctrlpts = [];\n for (var b = 0; b < bezierN; b++) {\n var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1);\n var manctrlptDist = undefined;\n var sign = signum(normctrlptDist);\n if (multi) {\n ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size\n ctrlptWeight = ctrlptWs.value[b];\n }\n if (edgeIsUnbundled) {\n // multi or single unbundled\n manctrlptDist = ctrlptDist;\n } else {\n manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined;\n }\n var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist;\n var w1 = 1 - ctrlptWeight;\n var w2 = ctrlptWeight;\n var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc2.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);\n }\n};\nBRp$c.findTaxiPoints = function (edge, pairInfo) {\n // Taxicab geometry with two turns maximum\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'segments';\n var VERTICAL = 'vertical';\n var HORIZONTAL = 'horizontal';\n var LEFTWARD = 'leftward';\n var RIGHTWARD = 'rightward';\n var DOWNWARD = 'downward';\n var UPWARD = 'upward';\n var AUTO = 'auto';\n var posPts = pairInfo.posPts,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var edgeDistances = edge.pstyle('edge-distances').value;\n var dIncludesNodeBody = edgeDistances !== 'node-position';\n var taxiDir = edge.pstyle('taxi-direction').value;\n var rawTaxiDir = taxiDir; // unprocessed value\n var taxiTurn = edge.pstyle('taxi-turn');\n var turnIsPercent = taxiTurn.units === '%';\n var taxiTurnPfVal = taxiTurn.pfValue;\n var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side\n var minD = edge.pstyle('taxi-turn-min-distance').pfValue;\n var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;\n var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;\n var pdx = posPts.x2 - posPts.x1;\n var pdy = posPts.y2 - posPts.y1;\n\n // take away the effective w/h from the magnitude of the delta value\n var subDWH = function subDWH(dxy, dwh) {\n if (dxy > 0) {\n return Math.max(dxy - dwh, 0);\n } else {\n return Math.min(dxy + dwh, 0);\n }\n };\n var dx = subDWH(pdx, dw);\n var dy = subDWH(pdy, dh);\n var isExplicitDir = false;\n if (rawTaxiDir === AUTO) {\n taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;\n } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {\n taxiDir = VERTICAL;\n isExplicitDir = true;\n } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {\n taxiDir = HORIZONTAL;\n isExplicitDir = true;\n }\n var isVert = taxiDir === VERTICAL;\n var l = isVert ? dy : dx;\n var pl = isVert ? pdy : pdx;\n var sgnL = signum(pl);\n var forcedDir = false;\n if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction\n && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {\n sgnL *= -1;\n l = sgnL * Math.abs(l);\n forcedDir = true;\n }\n var d;\n if (turnIsPercent) {\n var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;\n d = p * l;\n } else {\n var k = taxiTurnPfVal < 0 ? l : 0;\n d = k + taxiTurnPfVal * sgnL;\n }\n var getIsTooClose = function getIsTooClose(d) {\n return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l);\n };\n var isTooCloseSrc = getIsTooClose(d);\n var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));\n var isTooClose = isTooCloseSrc || isTooCloseTgt;\n if (isTooClose && !forcedDir) {\n // non-ideal routing\n if (isVert) {\n // vertical fallbacks\n var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;\n var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;\n if (lShapeInsideSrc) {\n // horizontal Z-shape (direction not respected)\n var x = (posPts.x1 + posPts.x2) / 2;\n var y1 = posPts.y1,\n y2 = posPts.y2;\n rs.segpts = [x, y1, x, y2];\n } else if (lShapeInsideTgt) {\n // vertical Z-shape (distance not respected)\n var y = (posPts.y1 + posPts.y2) / 2;\n var x1 = posPts.x1,\n x2 = posPts.x2;\n rs.segpts = [x1, y, x2, y];\n } else {\n // L-shape fallback (turn distance not respected, but works well with tree siblings)\n rs.segpts = [posPts.x1, posPts.y2];\n }\n } else {\n // horizontal fallbacks\n var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;\n var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;\n if (_lShapeInsideSrc) {\n // vertical Z-shape (direction not respected)\n var _y = (posPts.y1 + posPts.y2) / 2;\n var _x = posPts.x1,\n _x2 = posPts.x2;\n rs.segpts = [_x, _y, _x2, _y];\n } else if (_lShapeInsideTgt) {\n // horizontal Z-shape (turn distance not respected)\n var _x3 = (posPts.x1 + posPts.x2) / 2;\n var _y2 = posPts.y1,\n _y3 = posPts.y2;\n rs.segpts = [_x3, _y2, _x3, _y3];\n } else {\n // L-shape (turn distance not respected, but works well for tree siblings)\n rs.segpts = [posPts.x2, posPts.y1];\n }\n }\n } else {\n // ideal routing\n if (isVert) {\n var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);\n var _x4 = posPts.x1,\n _x5 = posPts.x2;\n rs.segpts = [_x4, _y4, _x5, _y4];\n } else {\n // horizontal\n var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);\n var _y5 = posPts.y1,\n _y6 = posPts.y2;\n rs.segpts = [_x6, _y5, _x6, _y6];\n }\n }\n if (rs.isRound) {\n var radius = edge.pstyle('taxi-radius').value;\n var isArcRadius = edge.pstyle('radius-type').value[0] === 'arc-radius';\n rs.radii = new Array(rs.segpts.length / 2).fill(radius);\n rs.isArcRadius = new Array(rs.segpts.length / 2).fill(isArcRadius);\n }\n};\nBRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) {\n var rs = edge._private.rscratch;\n\n // can only correct beziers for now...\n if (rs.edgeType === 'bezier') {\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH,\n srcShape = pairInfo.srcShape,\n tgtShape = pairInfo.tgtShape,\n srcCornerRadius = pairInfo.srcCornerRadius,\n tgtCornerRadius = pairInfo.tgtCornerRadius,\n srcRs = pairInfo.srcRs,\n tgtRs = pairInfo.tgtRs;\n var badStart = !number$1(rs.startX) || !number$1(rs.startY);\n var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);\n var badEnd = !number$1(rs.endX) || !number$1(rs.endY);\n var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);\n var minCpADistFactor = 3;\n var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n var minCpADist = minCpADistFactor * arrowW;\n var startACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.startX,\n y: rs.startY\n });\n var closeStartACp = startACpDist < minCpADist;\n var endACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.endX,\n y: rs.endY\n });\n var closeEndACp = endACpDist < minCpADist;\n var overlapping = false;\n if (badStart || badAStart || closeStartACp) {\n overlapping = true;\n\n // project control point along line from src centre to outside the src shape\n // (otherwise intersection will yield nothing)\n var cpD = {\n // delta\n x: rs.ctrlpts[0] - srcPos.x,\n y: rs.ctrlpts[1] - srcPos.y\n };\n var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line\n var cpM = {\n // normalised delta\n x: cpD.x / cpL,\n y: cpD.y / cpL\n };\n var radius = Math.max(srcW, srcH);\n var cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + cpM.x * 2 * radius,\n y: rs.ctrlpts[1] + cpM.y * 2 * radius\n };\n var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0, srcCornerRadius, srcRs);\n if (closeStartACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);\n } else {\n rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;\n rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;\n }\n }\n if (badEnd || badAEnd || closeEndACp) {\n overlapping = true;\n\n // project control point along line from tgt centre to outside the tgt shape\n // (otherwise intersection will yield nothing)\n var _cpD = {\n // delta\n x: rs.ctrlpts[0] - tgtPos.x,\n y: rs.ctrlpts[1] - tgtPos.y\n };\n var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line\n var _cpM = {\n // normalised delta\n x: _cpD.x / _cpL,\n y: _cpD.y / _cpL\n };\n var _radius = Math.max(srcW, srcH);\n var _cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,\n y: rs.ctrlpts[1] + _cpM.y * 2 * _radius\n };\n var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0, tgtCornerRadius, tgtRs);\n if (closeEndACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);\n } else {\n rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;\n rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;\n }\n }\n if (overlapping) {\n // recalc endpts\n this.findEndpoints(edge);\n }\n }\n};\nBRp$c.storeAllpts = function (edge) {\n var rs = edge._private.rscratch;\n if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {\n // ctrl pt itself\n rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);\n\n // the midpt between ctrlpts as intermediate destination pts\n if (b + 3 < rs.ctrlpts.length) {\n rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);\n }\n }\n rs.allpts.push(rs.endX, rs.endY);\n var m, mt;\n if (rs.ctrlpts.length / 2 % 2 === 0) {\n m = rs.allpts.length / 2 - 1;\n rs.midX = rs.allpts[m];\n rs.midY = rs.allpts[m + 1];\n } else {\n m = rs.allpts.length / 2 - 3;\n mt = 0.5;\n rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);\n rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);\n }\n } else if (rs.edgeType === 'straight') {\n // need to calc these after endpts\n rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];\n\n // default midpt for labels etc\n rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;\n rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;\n } else if (rs.edgeType === 'segments') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n rs.allpts.push.apply(rs.allpts, rs.segpts);\n rs.allpts.push(rs.endX, rs.endY);\n if (rs.isRound) {\n rs.roundCorners = [];\n for (var i = 2; i + 3 < rs.allpts.length; i += 2) {\n var radius = rs.radii[i / 2 - 1];\n var isArcRadius = rs.isArcRadius[i / 2 - 1];\n rs.roundCorners.push(getRoundCorner({\n x: rs.allpts[i - 2],\n y: rs.allpts[i - 1]\n }, {\n x: rs.allpts[i],\n y: rs.allpts[i + 1],\n radius: radius\n }, {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }, radius, isArcRadius));\n }\n }\n if (rs.segpts.length % 4 === 0) {\n var i2 = rs.segpts.length / 2;\n var i1 = i2 - 2;\n rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2;\n rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2;\n } else {\n var _i = rs.segpts.length / 2 - 1;\n if (!rs.isRound) {\n rs.midX = rs.segpts[_i];\n rs.midY = rs.segpts[_i + 1];\n } else {\n var point = {\n x: rs.segpts[_i],\n y: rs.segpts[_i + 1]\n };\n var corner = rs.roundCorners[_i / 2];\n if (corner.radius === 0) {\n // On collinear points\n var nextPoint = {\n x: rs.segpts[_i + 2],\n y: rs.segpts[_i + 3]\n };\n rs.midX = point.x;\n rs.midY = point.y;\n rs.midVector = [point.y - nextPoint.y, nextPoint.x - point.x];\n } else {\n // On rounded points\n var v = [point.x - corner.cx, point.y - corner.cy];\n var factor = corner.radius / Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n v = v.map(function (c) {\n return c * factor;\n });\n rs.midX = corner.cx + v[0];\n rs.midY = corner.cy + v[1];\n rs.midVector = v;\n }\n }\n }\n }\n};\nBRp$c.checkForInvalidEdgeWarning = function (edge) {\n var rs = edge[0]._private.rscratch;\n if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {\n rs.loggedErr = false;\n } else {\n if (!rs.loggedErr) {\n rs.loggedErr = true;\n warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.');\n }\n }\n};\nBRp$c.findEdgeControlPoints = function (edges) {\n var _this = this;\n if (!edges || edges.length === 0) {\n return;\n }\n var r = this;\n var cy = r.cy;\n var hasCompounds = cy.hasCompoundNodes();\n var hashTable = new Map$1();\n var getKey = function getKey(pairId, edgeIsUnbundled) {\n return [].concat(_toConsumableArray(pairId), [edgeIsUnbundled ? 1 : 0]).join('-');\n };\n var pairIds = [];\n var haystackEdges = [];\n\n // create a table of edge (src, tgt) => list of edges between them\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var curveStyle = edge.pstyle('curve-style').value;\n\n // ignore edges who are not to be displayed\n // they shouldn't take up space\n if (edge.removed() || !edge.takesUpSpace()) {\n continue;\n }\n if (curveStyle === 'haystack') {\n haystackEdges.push(edge);\n continue;\n }\n var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || endsWith(curveStyle, 'segments') || curveStyle === 'straight' || curveStyle === 'straight-triangle' || endsWith(curveStyle, 'taxi');\n var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier';\n var src = _p.source;\n var tgt = _p.target;\n var srcIndex = src.poolIndex();\n var tgtIndex = tgt.poolIndex();\n var pairId = [srcIndex, tgtIndex].sort();\n var key = getKey(pairId, edgeIsUnbundled);\n var tableEntry = hashTable.get(key);\n if (tableEntry == null) {\n tableEntry = {\n eles: []\n };\n pairIds.push({\n pairId: pairId,\n edgeIsUnbundled: edgeIsUnbundled\n });\n hashTable.set(key, tableEntry);\n }\n tableEntry.eles.push(edge);\n if (edgeIsUnbundled) {\n tableEntry.hasUnbundled = true;\n }\n if (edgeIsBezier) {\n tableEntry.hasBezier = true;\n }\n }\n\n // for each pair (src, tgt), create the ctrl pts\n // Nested for loop is OK; total number of iterations for both loops = edgeCount\n var _loop = function _loop() {\n var _pairIds$p = pairIds[p],\n pairId = _pairIds$p.pairId,\n edgeIsUnbundled = _pairIds$p.edgeIsUnbundled;\n var key = getKey(pairId, edgeIsUnbundled);\n var pairInfo = hashTable.get(key);\n var swappedpairInfo;\n if (!pairInfo.hasUnbundled) {\n var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) {\n return e.isBundledBezier();\n });\n clearArray(pairInfo.eles);\n pllEdges.forEach(function (edge) {\n return pairInfo.eles.push(edge);\n });\n\n // for each pair id, the edges should be sorted by index\n pairInfo.eles.sort(function (edge1, edge2) {\n return edge1.poolIndex() - edge2.poolIndex();\n });\n }\n var firstEdge = pairInfo.eles[0];\n var src = firstEdge.source();\n var tgt = firstEdge.target();\n\n // make sure src/tgt distinction is consistent w.r.t. pairId\n if (src.poolIndex() > tgt.poolIndex()) {\n var temp = src;\n src = tgt;\n tgt = temp;\n }\n var srcPos = pairInfo.srcPos = src.position();\n var tgtPos = pairInfo.tgtPos = tgt.position();\n var srcW = pairInfo.srcW = src.outerWidth();\n var srcH = pairInfo.srcH = src.outerHeight();\n var tgtW = pairInfo.tgtW = tgt.outerWidth();\n var tgtH = pairInfo.tgtH = tgt.outerHeight();\n var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)];\n var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)];\n var srcCornerRadius = pairInfo.srcCornerRadius = src.pstyle('corner-radius').value === 'auto' ? 'auto' : src.pstyle('corner-radius').pfValue;\n var tgtCornerRadius = pairInfo.tgtCornerRadius = tgt.pstyle('corner-radius').value === 'auto' ? 'auto' : tgt.pstyle('corner-radius').pfValue;\n var tgtRs = pairInfo.tgtRs = tgt._private.rscratch;\n var srcRs = pairInfo.srcRs = src._private.rscratch;\n pairInfo.dirCounts = {\n 'north': 0,\n 'west': 0,\n 'south': 0,\n 'east': 0,\n 'northwest': 0,\n 'southwest': 0,\n 'northeast': 0,\n 'southeast': 0\n };\n for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {\n var _edge = pairInfo.eles[_i2];\n var rs = _edge[0]._private.rscratch;\n var _curveStyle = _edge.pstyle('curve-style').value;\n var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || endsWith(_curveStyle, 'segments') || endsWith(_curveStyle, 'taxi');\n\n // whether the normalised pair order is the reverse of the edge's src-tgt order\n var edgeIsSwapped = !src.same(_edge.source());\n if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {\n pairInfo.calculatedIntersection = true;\n\n // pt outside src shape to calc distance/displacement from src to tgt\n var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0, srcCornerRadius, srcRs);\n var srcIntn = pairInfo.srcIntn = srcOutside;\n\n // pt outside tgt shape to calc distance/displacement from src to tgt\n var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0, tgtCornerRadius, tgtRs);\n var tgtIntn = pairInfo.tgtIntn = tgtOutside;\n var intersectionPts = pairInfo.intersectionPts = {\n x1: srcOutside[0],\n x2: tgtOutside[0],\n y1: srcOutside[1],\n y2: tgtOutside[1]\n };\n var posPts = pairInfo.posPts = {\n x1: srcPos.x,\n x2: tgtPos.x,\n y1: srcPos.y,\n y2: tgtPos.y\n };\n var dy = tgtOutside[1] - srcOutside[1];\n var dx = tgtOutside[0] - srcOutside[0];\n var l = Math.sqrt(dx * dx + dy * dy);\n if (number$1(l) && l >= AVOID_IMPOSSIBLE_BEZIER_CONSTANT_L) ; else {\n l = Math.sqrt(Math.max(dx * dx, AVOID_IMPOSSIBLE_BEZIER_CONSTANT) + Math.max(dy * dy, AVOID_IMPOSSIBLE_BEZIER_CONSTANT));\n }\n var vector = pairInfo.vector = {\n x: dx,\n y: dy\n };\n var vectorNorm = pairInfo.vectorNorm = {\n x: vector.x / l,\n y: vector.y / l\n };\n var vectorNormInverse = {\n x: -vectorNorm.y,\n y: vectorNorm.x\n };\n\n // if node shapes overlap, then no ctrl pts to draw\n pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y, tgtCornerRadius, tgtRs) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y, srcCornerRadius, srcRs);\n pairInfo.vectorNormInverse = vectorNormInverse;\n swappedpairInfo = {\n nodesOverlap: pairInfo.nodesOverlap,\n dirCounts: pairInfo.dirCounts,\n calculatedIntersection: true,\n hasBezier: pairInfo.hasBezier,\n hasUnbundled: pairInfo.hasUnbundled,\n eles: pairInfo.eles,\n srcPos: tgtPos,\n srcRs: tgtRs,\n tgtPos: srcPos,\n tgtRs: srcRs,\n srcW: tgtW,\n srcH: tgtH,\n tgtW: srcW,\n tgtH: srcH,\n srcIntn: tgtIntn,\n tgtIntn: srcIntn,\n srcShape: tgtShape,\n tgtShape: srcShape,\n posPts: {\n x1: posPts.x2,\n y1: posPts.y2,\n x2: posPts.x1,\n y2: posPts.y1\n },\n intersectionPts: {\n x1: intersectionPts.x2,\n y1: intersectionPts.y2,\n x2: intersectionPts.x1,\n y2: intersectionPts.y1\n },\n vector: {\n x: -vector.x,\n y: -vector.y\n },\n vectorNorm: {\n x: -vectorNorm.x,\n y: -vectorNorm.y\n },\n vectorNormInverse: {\n x: -vectorNormInverse.x,\n y: -vectorNormInverse.y\n }\n };\n }\n var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;\n rs.nodesOverlap = passedPairInfo.nodesOverlap;\n rs.srcIntn = passedPairInfo.srcIntn;\n rs.tgtIntn = passedPairInfo.tgtIntn;\n rs.isRound = _curveStyle.startsWith('round');\n if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) {\n _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (src === tgt) {\n _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (_curveStyle.endsWith('segments')) {\n _this.findSegmentsPoints(_edge, passedPairInfo);\n } else if (_curveStyle.endsWith('taxi')) {\n _this.findTaxiPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {\n _this.findStraightEdgePoints(_edge);\n } else {\n _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);\n }\n _this.findEndpoints(_edge);\n _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);\n _this.checkForInvalidEdgeWarning(_edge);\n _this.storeAllpts(_edge);\n _this.storeEdgeProjections(_edge);\n _this.calculateArrowAngles(_edge);\n _this.recalculateEdgeLabelProjections(_edge);\n _this.calculateLabelAngles(_edge);\n } // for pair edges\n };\n for (var p = 0; p < pairIds.length; p++) {\n _loop();\n } // for pair ids\n\n // haystacks avoid the expense of pairInfo stuff (intersections etc.)\n this.findHaystackPoints(haystackEdges);\n};\nfunction getPts(pts) {\n var retPts = [];\n if (pts == null) {\n return;\n }\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push({\n x: x,\n y: y\n });\n }\n return retPts;\n}\nBRp$c.getSegmentPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n var type = rs.edgeType;\n if (type === 'segments') {\n return getPts(rs.segpts);\n }\n};\nBRp$c.getControlPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n var type = rs.edgeType;\n if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') {\n return getPts(rs.ctrlpts);\n }\n};\nBRp$c.getEdgeMidpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n return {\n x: rs.midX,\n y: rs.midY\n };\n};\n\nvar BRp$b = {};\nBRp$b.manualEndptToPx = function (node, prop) {\n var r = this;\n var npos = node.position();\n var w = node.outerWidth();\n var h = node.outerHeight();\n var rs = node._private.rscratch;\n if (prop.value.length === 2) {\n var p = [prop.pfValue[0], prop.pfValue[1]];\n if (prop.units[0] === '%') {\n p[0] = p[0] * w;\n }\n if (prop.units[1] === '%') {\n p[1] = p[1] * h;\n }\n p[0] += npos.x;\n p[1] += npos.y;\n return p;\n } else {\n var angle = prop.pfValue[0];\n angle = -Math.PI / 2 + angle; // start at 12 o'clock\n\n var l = 2 * Math.max(w, h);\n var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];\n return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0, node.pstyle('corner-radius').value === 'auto' ? 'auto' : node.pstyle('corner-radius').pfValue, rs);\n }\n};\nBRp$b.findEndpoints = function (edge) {\n var _ref, _tgtManEndpt$pfValue, _ref2, _srcManEndpt$pfValue;\n var r = this;\n var intersect;\n var source = edge.source()[0];\n var target = edge.target()[0];\n var srcPos = source.position();\n var tgtPos = target.position();\n var tgtArShape = edge.pstyle('target-arrow-shape').value;\n var srcArShape = edge.pstyle('source-arrow-shape').value;\n var tgtDist = edge.pstyle('target-distance-from-node').pfValue;\n var srcDist = edge.pstyle('source-distance-from-node').pfValue;\n var srcRs = source._private.rscratch;\n var tgtRs = target._private.rscratch;\n var curveStyle = edge.pstyle('curve-style').value;\n var rs = edge._private.rscratch;\n var et = rs.edgeType;\n var taxi = endsWith(curveStyle, 'taxi'); // Covers taxi and round-taxi\n var self = et === 'self' || et === 'compound';\n var bezier = et === 'bezier' || et === 'multibezier' || self;\n var multi = et !== 'bezier';\n var lines = et === 'straight' || et === 'segments';\n var segments = et === 'segments';\n var hasEndpts = bezier || multi || lines;\n var overrideEndpts = self || taxi;\n var srcManEndpt = edge.pstyle('source-endpoint');\n var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value;\n var srcCornerRadius = source.pstyle('corner-radius').value === 'auto' ? 'auto' : source.pstyle('corner-radius').pfValue;\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value;\n var tgtCornerRadius = target.pstyle('corner-radius').value === 'auto' ? 'auto' : target.pstyle('corner-radius').pfValue;\n rs.srcManEndpt = srcManEndpt;\n rs.tgtManEndpt = tgtManEndpt;\n var p1; // last known point of edge on target side\n var p2; // last known point of edge on source side\n\n var p1_i; // point to intersect with target shape\n var p2_i; // point to intersect with source shape\n\n var tgtManEndptPt = (_ref = (tgtManEndpt === null || tgtManEndpt === undefined || (_tgtManEndpt$pfValue = tgtManEndpt.pfValue) === null || _tgtManEndpt$pfValue === undefined ? undefined : _tgtManEndpt$pfValue.length) === 2 ? tgtManEndpt.pfValue : null) !== null && _ref !== undefined ? _ref : [0, 0];\n var srcManEndptPt = (_ref2 = (srcManEndpt === null || srcManEndpt === undefined || (_srcManEndpt$pfValue = srcManEndpt.pfValue) === null || _srcManEndpt$pfValue === undefined ? undefined : _srcManEndpt$pfValue.length) === 2 ? srcManEndpt.pfValue : null) !== null && _ref2 !== undefined ? _ref2 : [0, 0];\n if (bezier) {\n var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];\n var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;\n p1 = cpEnd;\n p2 = cpStart;\n } else if (lines) {\n var srcArrowFromPt = !segments ? [tgtPos.x + tgtManEndptPt[0], tgtPos.y + tgtManEndptPt[1]] : rs.segpts.slice(0, 2);\n var tgtArrowFromPt = !segments ? [srcPos.x + srcManEndptPt[0], srcPos.y + srcManEndptPt[1]] : rs.segpts.slice(rs.segpts.length - 2);\n p1 = tgtArrowFromPt;\n p2 = srcArrowFromPt;\n }\n if (tgtManEndptVal === 'inside-to-node') {\n intersect = [tgtPos.x, tgtPos.y];\n } else if (tgtManEndpt.units) {\n intersect = this.manualEndptToPx(target, tgtManEndpt);\n } else if (tgtManEndptVal === 'outside-to-line') {\n intersect = rs.tgtIntn; // use cached value from ctrlpt calc\n } else {\n if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') {\n p1_i = p1;\n } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') {\n p1_i = [srcPos.x, srcPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0, tgtCornerRadius, tgtRs);\n if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') {\n var trs = target._private.rscratch;\n var lw = trs.labelWidth;\n var lh = trs.labelHeight;\n var lx = trs.labelX;\n var ly = trs.labelY;\n var lw2 = lw / 2;\n var lh2 = lh / 2;\n var va = target.pstyle('text-valign').value;\n if (va === 'top') {\n ly -= lh2;\n } else if (va === 'bottom') {\n ly += lh2;\n }\n var ha = target.pstyle('text-halign').value;\n if (ha === 'left') {\n lx -= lw2;\n } else if (ha === 'right') {\n lx += lw2;\n }\n var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);\n if (labelIntersect.length > 0) {\n var refPt = srcPos;\n var intSqdist = sqdist(refPt, array2point(intersect));\n var labIntSqdist = sqdist(refPt, array2point(labelIntersect));\n var minSqDist = intSqdist;\n if (labIntSqdist < intSqdist) {\n intersect = labelIntersect;\n minSqDist = labIntSqdist;\n }\n if (labelIntersect.length > 2) {\n var labInt2SqDist = sqdist(refPt, {\n x: labelIntersect[2],\n y: labelIntersect[3]\n });\n if (labInt2SqDist < minSqDist) {\n intersect = [labelIntersect[2], labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);\n var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);\n rs.endX = edgeEnd[0];\n rs.endY = edgeEnd[1];\n rs.arrowEndX = arrowEnd[0];\n rs.arrowEndY = arrowEnd[1];\n if (srcManEndptVal === 'inside-to-node') {\n intersect = [srcPos.x, srcPos.y];\n } else if (srcManEndpt.units) {\n intersect = this.manualEndptToPx(source, srcManEndpt);\n } else if (srcManEndptVal === 'outside-to-line') {\n intersect = rs.srcIntn; // use cached value from ctrlpt calc\n } else {\n if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') {\n p2_i = p2;\n } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') {\n p2_i = [tgtPos.x, tgtPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0, srcCornerRadius, srcRs);\n if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') {\n var srs = source._private.rscratch;\n var _lw = srs.labelWidth;\n var _lh = srs.labelHeight;\n var _lx = srs.labelX;\n var _ly = srs.labelY;\n var _lw2 = _lw / 2;\n var _lh2 = _lh / 2;\n var _va = source.pstyle('text-valign').value;\n if (_va === 'top') {\n _ly -= _lh2;\n } else if (_va === 'bottom') {\n _ly += _lh2;\n }\n var _ha = source.pstyle('text-halign').value;\n if (_ha === 'left') {\n _lx -= _lw2;\n } else if (_ha === 'right') {\n _lx += _lw2;\n }\n var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);\n if (_labelIntersect.length > 0) {\n var _refPt = tgtPos;\n var _intSqdist = sqdist(_refPt, array2point(intersect));\n var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));\n var _minSqDist = _intSqdist;\n if (_labIntSqdist < _intSqdist) {\n intersect = [_labelIntersect[0], _labelIntersect[1]];\n _minSqDist = _labIntSqdist;\n }\n if (_labelIntersect.length > 2) {\n var _labInt2SqDist = sqdist(_refPt, {\n x: _labelIntersect[2],\n y: _labelIntersect[3]\n });\n if (_labInt2SqDist < _minSqDist) {\n intersect = [_labelIntersect[2], _labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);\n var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);\n rs.startX = edgeStart[0];\n rs.startY = edgeStart[1];\n rs.arrowStartX = arrowStart[0];\n rs.arrowStartY = arrowStart[1];\n if (hasEndpts) {\n if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {\n rs.badLine = true;\n } else {\n rs.badLine = false;\n }\n }\n};\nBRp$b.getSourceEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[0],\n y: rs.haystackPts[1]\n };\n default:\n return {\n x: rs.arrowStartX,\n y: rs.arrowStartY\n };\n }\n};\nBRp$b.getTargetEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[2],\n y: rs.haystackPts[3]\n };\n default:\n return {\n x: rs.arrowEndX,\n y: rs.arrowEndY\n };\n }\n};\n\nvar BRp$a = {};\nfunction pushBezierPts(r, edge, pts) {\n var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) {\n return qbezierAt(p1, p2, p3, t);\n };\n var _p = edge._private;\n var bpts = _p.rstyle.bezierPts;\n for (var i = 0; i < r.bezierProjPcts.length; i++) {\n var p = r.bezierProjPcts[i];\n bpts.push({\n x: qbezierAt$1(pts[0], pts[2], pts[4], p),\n y: qbezierAt$1(pts[1], pts[3], pts[5], p)\n });\n }\n}\nBRp$a.storeEdgeProjections = function (edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var et = rs.edgeType;\n\n // clear the cached points state\n _p.rstyle.bezierPts = null;\n _p.rstyle.linePts = null;\n _p.rstyle.haystackPts = null;\n if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') {\n _p.rstyle.bezierPts = [];\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n pushBezierPts(this, edge, rs.allpts.slice(i, i + 6));\n }\n } else if (et === 'segments') {\n var lpts = _p.rstyle.linePts = [];\n for (var i = 0; i + 1 < rs.allpts.length; i += 2) {\n lpts.push({\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n });\n }\n } else if (et === 'haystack') {\n var hpts = rs.haystackPts;\n _p.rstyle.haystackPts = [{\n x: hpts[0],\n y: hpts[1]\n }, {\n x: hpts[2],\n y: hpts[3]\n }];\n }\n _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n};\nBRp$a.recalculateEdgeProjections = function (edges) {\n this.findEdgeControlPoints(edges);\n};\n\nvar BRp$9 = {};\nBRp$9.recalculateNodeLabelProjection = function (node) {\n var content = node.pstyle('label').strValue;\n if (emptyString(content)) {\n return;\n }\n var textX, textY;\n var _p = node._private;\n var nodeWidth = node.width();\n var nodeHeight = node.height();\n var padding = node.padding();\n var nodePos = node.position();\n var textHalign = node.pstyle('text-halign').strValue;\n var textValign = node.pstyle('text-valign').strValue;\n var rs = _p.rscratch;\n var rstyle = _p.rstyle;\n switch (textHalign) {\n case 'left':\n textX = nodePos.x - nodeWidth / 2 - padding;\n break;\n case 'right':\n textX = nodePos.x + nodeWidth / 2 + padding;\n break;\n default:\n // e.g. center\n textX = nodePos.x;\n }\n switch (textValign) {\n case 'top':\n textY = nodePos.y - nodeHeight / 2 - padding;\n break;\n case 'bottom':\n textY = nodePos.y + nodeHeight / 2 + padding;\n break;\n default:\n // e.g. middle\n textY = nodePos.y;\n }\n rs.labelX = textX;\n rs.labelY = textY;\n rstyle.labelX = textX;\n rstyle.labelY = textY;\n this.calculateLabelAngles(node);\n this.applyLabelDimensions(node);\n};\nvar lineAngleFromDelta = function lineAngleFromDelta(dx, dy) {\n var angle = Math.atan(dy / dx);\n if (dx === 0 && angle < 0) {\n angle = angle * -1;\n }\n return angle;\n};\nvar lineAngle = function lineAngle(p0, p1) {\n var dx = p1.x - p0.x;\n var dy = p1.y - p0.y;\n return lineAngleFromDelta(dx, dy);\n};\nvar bezierAngle = function bezierAngle(p0, p1, p2, t) {\n var t0 = bound(0, t - 0.001, 1);\n var t1 = bound(0, t + 0.001, 1);\n var lp0 = qbezierPtAt(p0, p1, p2, t0);\n var lp1 = qbezierPtAt(p0, p1, p2, t1);\n return lineAngle(lp0, lp1);\n};\nBRp$9.recalculateEdgeLabelProjections = function (edge) {\n var p;\n var _p = edge._private;\n var rs = _p.rscratch;\n var r = this;\n var content = {\n mid: edge.pstyle('label').strValue,\n source: edge.pstyle('source-label').strValue,\n target: edge.pstyle('target-label').strValue\n };\n if (content.mid || content.source || content.target) ; else {\n return; // no labels => no calcs\n }\n\n // add center point to style so bounding box calculations can use it\n //\n p = {\n x: rs.midX,\n y: rs.midY\n };\n var setRs = function setRs(propName, prefix, value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n setPrefixedProperty(_p.rstyle, propName, prefix, value);\n };\n setRs('labelX', null, p.x);\n setRs('labelY', null, p.y);\n var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);\n setRs('labelAutoAngle', null, midAngle);\n var _createControlPointInfo = function createControlPointInfo() {\n if (_createControlPointInfo.cache) {\n return _createControlPointInfo.cache;\n } // use cache so only 1x per edge\n\n var ctrlpts = [];\n\n // store each ctrlpt info init\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n var p0 = {\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n };\n var p1 = {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }; // ctrlpt\n var p2 = {\n x: rs.allpts[i + 4],\n y: rs.allpts[i + 5]\n };\n ctrlpts.push({\n p0: p0,\n p1: p1,\n p2: p2,\n startDist: 0,\n length: 0,\n segments: []\n });\n }\n var bpts = _p.rstyle.bezierPts;\n var nProjs = r.bezierProjPcts.length;\n function addSegment(cp, p0, p1, t0, t1) {\n var length = dist(p0, p1);\n var prevSegment = cp.segments[cp.segments.length - 1];\n var segment = {\n p0: p0,\n p1: p1,\n t0: t0,\n t1: t1,\n startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,\n length: length\n };\n cp.segments.push(segment);\n cp.length += length;\n }\n\n // update each ctrlpt with segment info\n for (var _i = 0; _i < ctrlpts.length; _i++) {\n var cp = ctrlpts[_i];\n var prevCp = ctrlpts[_i - 1];\n if (prevCp) {\n cp.startDist = prevCp.startDist + prevCp.length;\n }\n addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first\n\n for (var j = 0; j < nProjs - 1; j++) {\n addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);\n }\n addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last\n }\n return _createControlPointInfo.cache = ctrlpts;\n };\n var calculateEndProjection = function calculateEndProjection(prefix) {\n var angle;\n var isSrc = prefix === 'source';\n if (!content[prefix]) {\n return;\n }\n var offset = edge.pstyle(prefix + '-text-offset').pfValue;\n switch (rs.edgeType) {\n case 'self':\n case 'compound':\n case 'bezier':\n case 'multibezier':\n {\n var cps = _createControlPointInfo();\n var selected;\n var startDist = 0;\n var totalDist = 0;\n\n // find the segment we're on\n for (var i = 0; i < cps.length; i++) {\n var _cp = cps[isSrc ? i : cps.length - 1 - i];\n for (var j = 0; j < _cp.segments.length; j++) {\n var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];\n var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1;\n startDist = totalDist;\n totalDist += _seg.length;\n if (totalDist >= offset || lastSeg) {\n selected = {\n cp: _cp,\n segment: _seg\n };\n break;\n }\n }\n if (selected) {\n break;\n }\n }\n var cp = selected.cp;\n var seg = selected.segment;\n var tSegment = (offset - startDist) / seg.length;\n var segDt = seg.t1 - seg.t0;\n var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;\n t = bound(0, t, 1);\n p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t);\n angle = bezierAngle(cp.p0, cp.p1, cp.p2, t);\n break;\n }\n case 'straight':\n case 'segments':\n case 'haystack':\n {\n var d = 0,\n di,\n d0;\n var p0, p1;\n var l = rs.allpts.length;\n for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {\n if (isSrc) {\n p0 = {\n x: rs.allpts[_i2],\n y: rs.allpts[_i2 + 1]\n };\n p1 = {\n x: rs.allpts[_i2 + 2],\n y: rs.allpts[_i2 + 3]\n };\n } else {\n p0 = {\n x: rs.allpts[l - 2 - _i2],\n y: rs.allpts[l - 1 - _i2]\n };\n p1 = {\n x: rs.allpts[l - 4 - _i2],\n y: rs.allpts[l - 3 - _i2]\n };\n }\n di = dist(p0, p1);\n d0 = d;\n d += di;\n if (d >= offset) {\n break;\n }\n }\n var pD = offset - d0;\n var _t = pD / di;\n _t = bound(0, _t, 1);\n p = lineAt(p0, p1, _t);\n angle = lineAngle(p0, p1);\n break;\n }\n }\n setRs('labelX', prefix, p.x);\n setRs('labelY', prefix, p.y);\n setRs('labelAutoAngle', prefix, angle);\n };\n calculateEndProjection('source');\n calculateEndProjection('target');\n this.applyLabelDimensions(edge);\n};\nBRp$9.applyLabelDimensions = function (ele) {\n this.applyPrefixedLabelDimensions(ele);\n if (ele.isEdge()) {\n this.applyPrefixedLabelDimensions(ele, 'source');\n this.applyPrefixedLabelDimensions(ele, 'target');\n }\n};\nBRp$9.applyPrefixedLabelDimensions = function (ele, prefix) {\n var _p = ele._private;\n var text = this.getLabelText(ele, prefix);\n var cacheKey = hashString(text, ele._private.labelDimsKey);\n\n // save recalc if the label is the same as before\n if (getPrefixedProperty(_p.rscratch, 'prefixedLabelDimsKey', prefix) === cacheKey) {\n return; // then the label dimensions + text are the same\n }\n\n // save the key\n setPrefixedProperty(_p.rscratch, 'prefixedLabelDimsKey', prefix, cacheKey);\n var labelDims = this.calculateLabelDimensions(ele, text);\n var lineHeight = ele.pstyle('line-height').pfValue;\n var textWrap = ele.pstyle('text-wrap').strValue;\n var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || [];\n var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1);\n var normPerLineHeight = labelDims.height / numLines;\n var labelLineHeight = normPerLineHeight * lineHeight;\n var width = labelDims.width;\n var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;\n setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight);\n};\nBRp$9.getLabelText = function (ele, prefix) {\n var _p = ele._private;\n var pfd = prefix ? prefix + '-' : '';\n var text = ele.pstyle(pfd + 'label').strValue;\n var textTransform = ele.pstyle('text-transform').value;\n var rscratch = function rscratch(propName, value) {\n if (value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n return value;\n } else {\n return getPrefixedProperty(_p.rscratch, propName, prefix);\n }\n };\n\n // for empty text, skip all processing\n if (!text) {\n return '';\n }\n if (textTransform == 'none') ; else if (textTransform == 'uppercase') {\n text = text.toUpperCase();\n } else if (textTransform == 'lowercase') {\n text = text.toLowerCase();\n }\n var wrapStyle = ele.pstyle('text-wrap').value;\n if (wrapStyle === 'wrap') {\n var labelKey = rscratch('labelKey');\n\n // save recalc if the label is the same as before\n if (labelKey != null && rscratch('labelWrapKey') === labelKey) {\n return rscratch('labelWrapCachedText');\n }\n var zwsp = \"\\u200B\";\n var lines = text.split('\\n');\n var maxW = ele.pstyle('text-max-width').pfValue;\n var overflow = ele.pstyle('text-overflow-wrap').value;\n var overflowAny = overflow === 'anywhere';\n var wrappedLines = [];\n var separatorRegex = /[\\s\\u200b]+|$/g; // Include end of string to add last word\n\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var lineDims = this.calculateLabelDimensions(ele, line);\n var lineW = lineDims.width;\n if (overflowAny) {\n var processedLine = line.split('').join(zwsp);\n line = processedLine;\n }\n if (lineW > maxW) {\n // line is too long\n var separatorMatches = line.matchAll(separatorRegex);\n var subline = '';\n var previousIndex = 0;\n // Add fake match\n var _iterator = _createForOfIteratorHelper(separatorMatches),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var separatorMatch = _step.value;\n var wordSeparator = separatorMatch[0];\n var word = line.substring(previousIndex, separatorMatch.index);\n previousIndex = separatorMatch.index + wordSeparator.length;\n var testLine = subline.length === 0 ? word : subline + word + wordSeparator;\n var testDims = this.calculateLabelDimensions(ele, testLine);\n var testW = testDims.width;\n if (testW <= maxW) {\n // word fits on current line\n subline += word + wordSeparator;\n } else {\n // word starts new line\n if (subline) {\n wrappedLines.push(subline);\n }\n subline = word + wordSeparator;\n }\n }\n\n // if there's remaining text, put it in a wrapped line\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (!subline.match(/^[\\s\\u200b]+$/)) {\n wrappedLines.push(subline);\n }\n } else {\n // line is already short enough\n wrappedLines.push(line);\n }\n } // for\n\n rscratch('labelWrapCachedLines', wrappedLines);\n text = rscratch('labelWrapCachedText', wrappedLines.join('\\n'));\n rscratch('labelWrapKey', labelKey);\n } else if (wrapStyle === 'ellipsis') {\n var _maxW = ele.pstyle('text-max-width').pfValue;\n var ellipsized = '';\n var ellipsis = \"\\u2026\";\n var incLastCh = false;\n if (this.calculateLabelDimensions(ele, text).width < _maxW) {\n // the label already fits\n return text;\n }\n for (var i = 0; i < text.length; i++) {\n var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width;\n if (widthWithNextCh > _maxW) {\n break;\n }\n ellipsized += text[i];\n if (i === text.length - 1) {\n incLastCh = true;\n }\n }\n if (!incLastCh) {\n ellipsized += ellipsis;\n }\n return ellipsized;\n } // if ellipsize\n\n return text;\n};\nBRp$9.getLabelJustification = function (ele) {\n var justification = ele.pstyle('text-justification').strValue;\n var textHalign = ele.pstyle('text-halign').strValue;\n if (justification === 'auto') {\n if (ele.isNode()) {\n switch (textHalign) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n return 'center';\n }\n } else {\n return 'center';\n }\n } else {\n return justification;\n }\n};\nBRp$9.calculateLabelDimensions = function (ele, text) {\n var r = this;\n var containerWindow = r.cy.window();\n var document = containerWindow.document;\n var padding = 0; // add padding around text dims, as the measurement isn't that accurate\n var fStyle = ele.pstyle('font-style').strValue;\n var size = ele.pstyle('font-size').pfValue;\n var family = ele.pstyle('font-family').strValue;\n var weight = ele.pstyle('font-weight').strValue;\n var canvas = this.labelCalcCanvas;\n var c2d = this.labelCalcCanvasContext;\n if (!canvas) {\n canvas = this.labelCalcCanvas = document.createElement('canvas');\n c2d = this.labelCalcCanvasContext = canvas.getContext('2d');\n var ds = canvas.style;\n ds.position = 'absolute';\n ds.left = '-9999px';\n ds.top = '-9999px';\n ds.zIndex = '-1';\n ds.visibility = 'hidden';\n ds.pointerEvents = 'none';\n }\n c2d.font = \"\".concat(fStyle, \" \").concat(weight, \" \").concat(size, \"px \").concat(family);\n var width = 0;\n var height = 0;\n var lines = text.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var metrics = c2d.measureText(line);\n var w = Math.ceil(metrics.width);\n var h = size;\n width = Math.max(w, width);\n height += h;\n }\n width += padding;\n height += padding;\n return {\n width: width,\n height: height\n };\n};\nBRp$9.calculateLabelAngle = function (ele, prefix) {\n var _p = ele._private;\n var rs = _p.rscratch;\n var isEdge = ele.isEdge();\n var prefixDash = prefix ? prefix + '-' : '';\n var rot = ele.pstyle(prefixDash + 'text-rotation');\n var rotStr = rot.strValue;\n if (rotStr === 'none') {\n return 0;\n } else if (isEdge && rotStr === 'autorotate') {\n return rs.labelAutoAngle;\n } else if (rotStr === 'autorotate') {\n return 0;\n } else {\n return rot.pfValue;\n }\n};\nBRp$9.calculateLabelAngles = function (ele) {\n var r = this;\n var isEdge = ele.isEdge();\n var _p = ele._private;\n var rs = _p.rscratch;\n rs.labelAngle = r.calculateLabelAngle(ele);\n if (isEdge) {\n rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source');\n rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target');\n }\n};\n\nvar BRp$8 = {};\nvar TOO_SMALL_CUT_RECT = 28;\nvar warnedCutRect = false;\nBRp$8.getNodeShape = function (node) {\n var r = this;\n var shape = node.pstyle('shape').value;\n if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) {\n if (!warnedCutRect) {\n warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead');\n warnedCutRect = true;\n }\n return 'rectangle';\n }\n if (node.isParent()) {\n if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') {\n return shape;\n } else {\n return 'rectangle';\n }\n }\n if (shape === 'polygon') {\n var points = node.pstyle('shape-polygon-points').value;\n return r.nodeShapes.makePolygon(points).name;\n }\n return shape;\n};\n\nvar BRp$7 = {};\nBRp$7.registerCalculationListeners = function () {\n var cy = this.cy;\n var elesToUpdate = cy.collection();\n var r = this;\n var enqueue = function enqueue(eles) {\n var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n elesToUpdate.merge(eles);\n if (dirtyStyleCaches) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n rstyle.clean = false;\n rstyle.cleanConnected = false;\n }\n }\n };\n r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) {\n var ele = e.target;\n enqueue(ele);\n }).on('style.* background.*', function onDirtyStyle(e) {\n var ele = e.target;\n enqueue(ele, false);\n });\n var updateEleCalcs = function updateEleCalcs(willDraw) {\n if (willDraw) {\n var fns = r.onUpdateEleCalcsFns;\n\n // because we need to have up-to-date style (e.g. stylesheet mappers)\n // before calculating rendered style (and pstyle might not be called yet)\n elesToUpdate.cleanStyle();\n for (var i = 0; i < elesToUpdate.length; i++) {\n var ele = elesToUpdate[i];\n var rstyle = ele._private.rstyle;\n if (ele.isNode() && !rstyle.cleanConnected) {\n enqueue(ele.connectedEdges());\n rstyle.cleanConnected = true;\n }\n }\n if (fns) {\n for (var _i = 0; _i < fns.length; _i++) {\n var fn = fns[_i];\n fn(willDraw, elesToUpdate);\n }\n }\n r.recalculateRenderedStyle(elesToUpdate);\n elesToUpdate = cy.collection();\n }\n };\n r.flushRenderedStyleQueue = function () {\n updateEleCalcs(true);\n };\n r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);\n};\nBRp$7.onUpdateEleCalcs = function (fn) {\n var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];\n fns.push(fn);\n};\nBRp$7.recalculateRenderedStyle = function (eles, useCache) {\n var isCleanConnected = function isCleanConnected(ele) {\n return ele._private.rstyle.cleanConnected;\n };\n if (eles.length === 0) {\n return;\n }\n var edges = [];\n var nodes = [];\n\n // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox()\n if (this.destroyed) {\n return;\n }\n\n // use cache by default for perf\n if (useCache === undefined) {\n useCache = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n\n // an edge may be implicitly dirty b/c of one of its connected nodes\n // (and a request for recalc may come in between frames)\n if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {\n rstyle.clean = false;\n }\n if (ele.isEdge() && ele.isBundledBezier()) {\n if (ele.parallelEdges().some(function (ele) {\n return !ele._private.rstyle.clean && ele.isBundledBezier();\n })) {\n rstyle.clean = false;\n }\n }\n\n // only update if dirty and in graph\n if (useCache && rstyle.clean || ele.removed()) {\n continue;\n }\n\n // only update if not display: none\n if (ele.pstyle('display').value === 'none') {\n continue;\n }\n if (_p.group === 'nodes') {\n nodes.push(ele);\n } else {\n // edges\n edges.push(ele);\n }\n rstyle.clean = true;\n }\n\n // update node data from projections\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n var _p2 = _ele._private;\n var _rstyle = _p2.rstyle;\n var pos = _ele.position();\n this.recalculateNodeLabelProjection(_ele);\n _rstyle.nodeX = pos.x;\n _rstyle.nodeY = pos.y;\n _rstyle.nodeW = _ele.pstyle('width').pfValue;\n _rstyle.nodeH = _ele.pstyle('height').pfValue;\n }\n this.recalculateEdgeProjections(edges);\n\n // update edge data from projections\n for (var _i3 = 0; _i3 < edges.length; _i3++) {\n var _ele2 = edges[_i3];\n var _p3 = _ele2._private;\n var _rstyle2 = _p3.rstyle;\n var rs = _p3.rscratch;\n\n // update rstyle positions\n _rstyle2.srcX = rs.arrowStartX;\n _rstyle2.srcY = rs.arrowStartY;\n _rstyle2.tgtX = rs.arrowEndX;\n _rstyle2.tgtY = rs.arrowEndY;\n _rstyle2.midX = rs.midX;\n _rstyle2.midY = rs.midY;\n _rstyle2.labelAngle = rs.labelAngle;\n _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;\n _rstyle2.targetLabelAngle = rs.targetLabelAngle;\n }\n};\n\nvar BRp$6 = {};\nBRp$6.updateCachedGrabbedEles = function () {\n var eles = this.cachedZSortedEles;\n if (!eles) {\n // just let this be recalculated on the next z sort tick\n return;\n }\n eles.drag = [];\n eles.nondrag = [];\n var grabTargets = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n if (ele.grabbed() && !ele.isParent()) {\n grabTargets.push(ele);\n } else if (rs.inDragLayer) {\n eles.drag.push(ele);\n } else {\n eles.nondrag.push(ele);\n }\n }\n\n // put the grab target nodes last so it's on top of its neighbourhood\n for (var i = 0; i < grabTargets.length; i++) {\n var ele = grabTargets[i];\n eles.drag.push(ele);\n }\n};\nBRp$6.invalidateCachedZSortedEles = function () {\n this.cachedZSortedEles = null;\n};\nBRp$6.getCachedZSortedEles = function (forceRecalc) {\n if (forceRecalc || !this.cachedZSortedEles) {\n var eles = this.cy.mutableElements().toArray();\n eles.sort(zIndexSort);\n eles.interactive = eles.filter(function (ele) {\n return ele.interactive();\n });\n this.cachedZSortedEles = eles;\n this.updateCachedGrabbedEles();\n } else {\n eles = this.cachedZSortedEles;\n }\n return eles;\n};\n\nvar BRp$5 = {};\n[BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) {\n extend(BRp$5, props);\n});\n\nvar BRp$4 = {};\nBRp$4.getCachedImage = function (url, crossOrigin, onLoad) {\n var r = this;\n var imageCache = r.imageCache = r.imageCache || {};\n var cache = imageCache[url];\n if (cache) {\n if (!cache.image.complete) {\n cache.image.addEventListener('load', onLoad);\n }\n return cache.image;\n } else {\n cache = imageCache[url] = imageCache[url] || {};\n var image = cache.image = new Image(); // eslint-disable-line no-undef\n\n image.addEventListener('load', onLoad);\n image.addEventListener('error', function () {\n image.error = true;\n });\n\n // #1582 safari doesn't load data uris with crossOrigin properly\n // https://bugs.webkit.org/show_bug.cgi?id=123978\n var dataUriPrefix = 'data:';\n var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;\n if (!isDataUri) {\n // if crossorigin is 'null'(stringified), then manually set it to null \n crossOrigin = crossOrigin === 'null' ? null : crossOrigin;\n image.crossOrigin = crossOrigin; // prevent tainted canvas\n }\n image.src = url;\n return image;\n }\n};\n\nvar BRp$3 = {};\n\n/* global document, ResizeObserver, MutationObserver */\n\nBRp$3.registerBinding = function (target, event, handler, useCapture) {\n // eslint-disable-line no-unused-vars\n var args = Array.prototype.slice.apply(arguments, [1]); // copy\n\n if (Array.isArray(target)) {\n var res = [];\n for (var i = 0; i < target.length; i++) {\n var t = target[i];\n if (t !== undefined) {\n var b = this.binder(t);\n res.push(b.on.apply(b, args));\n }\n }\n return res;\n }\n var b = this.binder(target);\n return b.on.apply(b, args);\n};\nBRp$3.binder = function (tgt) {\n var r = this;\n var containerWindow = r.cy.window();\n var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt);\n if (r.supportsPassiveEvents == null) {\n // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n return true;\n }\n });\n containerWindow.addEventListener('test', null, opts);\n } catch (err) {\n // not supported\n }\n r.supportsPassiveEvents = supportsPassive;\n }\n var on = function on(event, handler, useCapture) {\n var args = Array.prototype.slice.call(arguments);\n if (tgtIsDom && r.supportsPassiveEvents) {\n // replace useCapture w/ opts obj\n args[2] = {\n capture: useCapture != null ? useCapture : false,\n passive: false,\n once: false\n };\n }\n r.bindings.push({\n target: tgt,\n args: args\n });\n (tgt.addEventListener || tgt.on).apply(tgt, args);\n return this;\n };\n return {\n on: on,\n addEventListener: on,\n addListener: on,\n bind: on\n };\n};\nBRp$3.nodeIsDraggable = function (node) {\n return node && node.isNode() && !node.locked() && node.grabbable();\n};\nBRp$3.nodeIsGrabbable = function (node) {\n return this.nodeIsDraggable(node) && node.interactive();\n};\nBRp$3.load = function () {\n var r = this;\n var containerWindow = r.cy.window();\n var isSelected = function isSelected(ele) {\n return ele.selected();\n };\n var getShadowRoot = function getShadowRoot(element) {\n var rootNode = element.getRootNode();\n // Check if the root node is a shadow root\n if (rootNode && rootNode.nodeType === 11 && rootNode.host !== undefined) {\n return rootNode;\n }\n };\n var triggerEvents = function triggerEvents(target, names, e, position) {\n if (target == null) {\n target = r.cy;\n }\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n target.emit({\n originalEvent: e,\n type: name,\n position: position\n });\n }\n };\n var isMultSelKeyDown = function isMultSelKeyDown(e) {\n return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey\n };\n var allowPanningPassthrough = function allowPanningPassthrough(down, downs) {\n var allowPassthrough = true;\n if (r.cy.hasCompoundNodes() && down && down.pannable()) {\n // a grabbable compound node below the ele => no passthrough panning\n for (var i = 0; downs && i < downs.length; i++) {\n var down = downs[i];\n\n //if any parent node in event hierarchy isn't pannable, reject passthrough\n if (down.isNode() && down.isParent() && !down.pannable()) {\n allowPassthrough = false;\n break;\n }\n }\n } else {\n allowPassthrough = true;\n }\n return allowPassthrough;\n };\n var setGrabbed = function setGrabbed(ele) {\n ele[0]._private.grabbed = true;\n };\n var setFreed = function setFreed(ele) {\n ele[0]._private.grabbed = false;\n };\n var setInDragLayer = function setInDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = true;\n };\n var setOutDragLayer = function setOutDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = false;\n };\n var setGrabTarget = function setGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = true;\n };\n var removeGrabTarget = function removeGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = false;\n };\n var addToDragList = function addToDragList(ele, opts) {\n var list = opts.addToList;\n var listHasEle = list.has(ele);\n if (!listHasEle && ele.grabbable() && !ele.locked()) {\n list.merge(ele);\n setGrabbed(ele);\n }\n };\n\n // helper function to determine which child nodes and inner edges\n // of a compound node to be dragged as well as the grabbed and selected nodes\n var addDescendantsToDrag = function addDescendantsToDrag(node, opts) {\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n var innerNodes = node.descendants();\n if (opts.inDragLayer) {\n innerNodes.forEach(setInDragLayer);\n innerNodes.connectedEdges().forEach(setInDragLayer);\n }\n if (opts.addToList) {\n addToDragList(innerNodes, opts);\n }\n };\n\n // adds the given nodes and its neighbourhood to the drag layer\n var addNodesToDrag = function addNodesToDrag(nodes, opts) {\n opts = opts || {};\n var hasCompoundNodes = nodes.cy().hasCompoundNodes();\n if (opts.inDragLayer) {\n nodes.forEach(setInDragLayer);\n nodes.neighborhood().stdFilter(function (ele) {\n return !hasCompoundNodes || ele.isEdge();\n }).forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n addDescendantsToDrag(nodes, opts); // always add to drag\n\n // also add nodes and edges related to the topmost ancestor\n updateAncestorsInDragLayer(nodes, {\n inDragLayer: opts.inDragLayer\n });\n r.updateCachedGrabbedEles();\n };\n var addNodeToDrag = addNodesToDrag;\n var freeDraggedElements = function freeDraggedElements(grabbedEles) {\n if (!grabbedEles) {\n return;\n }\n\n // just go over all elements rather than doing a bunch of (possibly expensive) traversals\n r.getCachedZSortedEles().forEach(function (ele) {\n setFreed(ele);\n setOutDragLayer(ele);\n removeGrabTarget(ele);\n });\n r.updateCachedGrabbedEles();\n };\n\n // helper function to determine which ancestor nodes and edges should go\n // to the drag layer (or should be removed from drag layer).\n var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) {\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n\n // find top-level parent\n var parent = node.ancestors().orphans();\n\n // no parent node: no nodes to add to the drag layer\n if (parent.same(node)) {\n return;\n }\n var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants());\n var edges = nodes.connectedEdges();\n if (opts.inDragLayer) {\n edges.forEach(setInDragLayer);\n nodes.forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n };\n var blurActiveDomElement = function blurActiveDomElement() {\n if (document.activeElement != null && document.activeElement.blur != null) {\n document.activeElement.blur();\n }\n };\n var haveMutationsApi = typeof MutationObserver !== 'undefined';\n var haveResizeObserverApi = typeof ResizeObserver !== 'undefined';\n\n // watch for when the cy container is removed from the dom\n if (haveMutationsApi) {\n r.removeObserver = new MutationObserver(function (mutns) {\n // eslint-disable-line no-undef\n for (var i = 0; i < mutns.length; i++) {\n var mutn = mutns[i];\n var rNodes = mutn.removedNodes;\n if (rNodes) {\n for (var j = 0; j < rNodes.length; j++) {\n var rNode = rNodes[j];\n if (rNode === r.container) {\n r.destroy();\n break;\n }\n }\n }\n }\n });\n if (r.container.parentNode) {\n r.removeObserver.observe(r.container.parentNode, {\n childList: true\n });\n }\n } else {\n r.registerBinding(r.container, 'DOMNodeRemoved', function (e) {\n // eslint-disable-line no-unused-vars\n r.destroy();\n });\n }\n var onResize = debounce(function () {\n r.cy.resize();\n }, 100);\n if (haveMutationsApi) {\n r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef\n\n r.styleObserver.observe(r.container, {\n attributes: true\n });\n }\n\n // auto resize\n r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef\n\n if (haveResizeObserverApi) {\n r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef\n\n r.resizeObserver.observe(r.container);\n }\n var forEachUp = function forEachUp(domEle, fn) {\n while (domEle != null) {\n fn(domEle);\n domEle = domEle.parentNode;\n }\n };\n var invalidateCoords = function invalidateCoords() {\n r.invalidateContainerClientCoordsCache();\n };\n forEachUp(r.container, function (domEle) {\n r.registerBinding(domEle, 'transitionend', invalidateCoords);\n r.registerBinding(domEle, 'animationend', invalidateCoords);\n r.registerBinding(domEle, 'scroll', invalidateCoords);\n });\n\n // stop right click menu from appearing on cy\n r.registerBinding(r.container, 'contextmenu', function (e) {\n e.preventDefault();\n });\n var inBoxSelection = function inBoxSelection() {\n return r.selection[4] !== 0;\n };\n var eventInContainer = function eventInContainer(e) {\n // save cycles if mouse events aren't to be captured\n var containerPageCoords = r.findContainerClientCoords();\n var x = containerPageCoords[0];\n var y = containerPageCoords[1];\n var width = containerPageCoords[2];\n var height = containerPageCoords[3];\n var positions = e.touches ? e.touches : [e];\n var atLeastOnePosInside = false;\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) {\n atLeastOnePosInside = true;\n break;\n }\n }\n if (!atLeastOnePosInside) {\n return false;\n }\n var container = r.container;\n var target = e.target;\n var tParent = target.parentNode;\n var containerIsTarget = false;\n while (tParent) {\n if (tParent === container) {\n containerIsTarget = true;\n break;\n }\n tParent = tParent.parentNode;\n }\n if (!containerIsTarget) {\n return false;\n } // if target is outisde cy container, then this event is not for us\n\n return true;\n };\n\n // Primary key\n r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) {\n if (!eventInContainer(e)) {\n return;\n }\n\n // during left mouse button gestures, ignore other buttons\n if (r.hoverData.which === 1 && e.which !== 1) {\n return;\n }\n e.preventDefault();\n blurActiveDomElement();\n r.hoverData.capture = true;\n r.hoverData.which = e.which;\n var cy = r.cy;\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var select = r.selection;\n var nears = r.findNearestElements(pos[0], pos[1], true, false);\n var near = nears[0];\n var draggedElements = r.dragData.possibleDragElements;\n r.hoverData.mdownPos = pos;\n r.hoverData.mdownGPos = gpos;\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n var checkForTaphold = function checkForTaphold() {\n r.hoverData.tapholdCancelled = false;\n clearTimeout(r.hoverData.tapholdTimeout);\n r.hoverData.tapholdTimeout = setTimeout(function () {\n if (r.hoverData.tapholdCancelled) {\n return;\n } else {\n var ele = r.hoverData.down;\n if (ele) {\n ele.emit(makeEvent('taphold'));\n } else {\n cy.emit(makeEvent('taphold'));\n }\n }\n }, r.tapholdDuration);\n };\n\n // Right click button\n if (e.which == 3) {\n r.hoverData.cxtStarted = true;\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (near) {\n near.activate();\n near.emit(cxtEvt);\n r.hoverData.down = near;\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.downTime = new Date().getTime();\n r.hoverData.cxtDragged = false;\n\n // Primary button\n } else if (e.which == 1) {\n if (near) {\n near.activate();\n }\n\n // Element dragging\n {\n // If something is under the cursor and it is draggable, prepare to grab it\n if (near != null) {\n if (r.nodeIsGrabbable(near)) {\n var triggerGrab = function triggerGrab(ele) {\n ele.emit(makeEvent('grab'));\n };\n setGrabTarget(near);\n if (!near.selected()) {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n addNodeToDrag(near, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon')).emit(makeEvent('grab'));\n } else {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n var selectedNodes = cy.$(function (ele) {\n return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon'));\n selectedNodes.forEach(triggerGrab);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n }\n r.hoverData.down = near;\n r.hoverData.downs = nears;\n r.hoverData.downTime = new Date().getTime();\n }\n triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (near == null) {\n select[4] = 1;\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n } else if (near.pannable()) {\n select[4] = 1; // for future pan\n }\n checkForTaphold();\n }\n\n // Initialize selection box coordinates\n select[0] = select[2] = pos[0];\n select[1] = select[3] = pos[1];\n }, false);\n var shadowRoot = getShadowRoot(r.container);\n r.registerBinding([containerWindow, shadowRoot], 'mousemove', function mousemoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var preventDefault = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var mdownPos = r.hoverData.mdownPos;\n var mdownGPos = r.hoverData.mdownGPos;\n var select = r.selection;\n var near = null;\n if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {\n near = r.findNearestElement(pos[0], pos[1], true, false);\n }\n var last = r.hoverData.last;\n var down = r.hoverData.down;\n var disp = [pos[0] - select[2], pos[1] - select[3]];\n var draggedElements = r.dragData.possibleDragElements;\n var isOverThresholdDrag;\n if (mdownGPos) {\n var dx = gpos[0] - mdownGPos[0];\n var dx2 = dx * dx;\n var dy = gpos[1] - mdownGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2;\n }\n var multSelKeyDown = isMultSelKeyDown(e);\n if (isOverThresholdDrag) {\n r.hoverData.tapholdCancelled = true;\n }\n var updateDragDelta = function updateDragDelta() {\n var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n };\n preventDefault = true;\n triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, {\n x: pos[0],\n y: pos[1]\n });\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n var goIntoBoxMode = function goIntoBoxMode() {\n r.data.bgActivePosistion = undefined;\n if (!r.hoverData.selecting) {\n cy.emit(makeEvent('boxstart'));\n }\n select[4] = 1;\n r.hoverData.selecting = true;\n r.redrawHint('select', true);\n r.redraw();\n };\n\n // trigger context drag if rmouse down\n if (r.hoverData.which === 3) {\n // but only if over threshold\n if (isOverThresholdDrag) {\n var cxtEvt = makeEvent('cxtdrag');\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.cxtDragged = true;\n if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {\n if (r.hoverData.cxtOver) {\n r.hoverData.cxtOver.emit(makeEvent('cxtdragout'));\n }\n r.hoverData.cxtOver = near;\n if (near) {\n near.emit(makeEvent('cxtdragover'));\n }\n }\n }\n\n // Check if we are drag panning the entire graph\n } else if (r.hoverData.dragging) {\n preventDefault = true;\n if (cy.panningEnabled() && cy.userPanningEnabled()) {\n var deltaP;\n if (r.hoverData.justStartedPan) {\n var mdPos = r.hoverData.mdownPos;\n deltaP = {\n x: (pos[0] - mdPos[0]) * zoom,\n y: (pos[1] - mdPos[1]) * zoom\n };\n r.hoverData.justStartedPan = false;\n } else {\n deltaP = {\n x: disp[0] * zoom,\n y: disp[1] * zoom\n };\n }\n cy.panBy(deltaP);\n cy.emit(makeEvent('dragpan'));\n r.hoverData.dragged = true;\n }\n\n // Needs reproject due to pan changing viewport\n pos = r.projectIntoViewport(e.clientX, e.clientY);\n\n // Checks primary button down & out of time & mouse not moved much\n } else if (select[4] == 1 && (down == null || down.pannable())) {\n if (isOverThresholdDrag) {\n if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {\n goIntoBoxMode();\n } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);\n if (allowPassthrough) {\n r.hoverData.dragging = true;\n r.hoverData.justStartedPan = true;\n select[4] = 0;\n r.data.bgActivePosistion = array2point(mdownPos);\n r.redrawHint('select', true);\n r.redraw();\n }\n }\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n }\n } else {\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n if ((!down || !down.grabbed()) && near != last) {\n if (last) {\n triggerEvents(last, ['mouseout', 'tapdragout'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n if (near) {\n triggerEvents(near, ['mouseover', 'tapdragover'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n r.hoverData.last = near;\n }\n if (down) {\n if (isOverThresholdDrag) {\n // then we can take action\n\n if (cy.boxSelectionEnabled() && multSelKeyDown) {\n // then selection overrides\n if (down && down.grabbed()) {\n freeDraggedElements(draggedElements);\n down.emit(makeEvent('freeon'));\n draggedElements.emit(makeEvent('free'));\n if (r.dragData.didDrag) {\n down.emit(makeEvent('dragfreeon'));\n draggedElements.emit(makeEvent('dragfree'));\n }\n }\n goIntoBoxMode();\n } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {\n // drag node\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n }\n r.dragData.didDrag = true; // indicate that we actually did drag the node\n\n // now, add the elements to the drag layer if not done already\n if (!r.hoverData.draggingEles) {\n addNodesToDrag(draggedElements, {\n inDragLayer: true\n });\n }\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n var dragDelta = r.hoverData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedElements.silentShift(totalShift).emit(makeEvent('position')).emit(makeEvent('drag'));\n r.redrawHint('drag', true);\n r.redraw();\n }\n } else {\n // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant\n updateDragDelta();\n }\n }\n\n // prevent the dragging from triggering text selection on the page\n preventDefault = true;\n }\n select[2] = pos[0];\n select[3] = pos[1];\n if (preventDefault) {\n if (e.stopPropagation) e.stopPropagation();\n if (e.preventDefault) e.preventDefault();\n return false;\n }\n }, false);\n var clickTimeout, didDoubleClick, prevClickTimeStamp;\n r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) {\n // eslint-disable-line no-undef\n // during left mouse button gestures, ignore other buttons\n if (r.hoverData.which === 1 && e.which !== 1 && r.hoverData.capture) {\n return;\n }\n var capture = r.hoverData.capture;\n if (!capture) {\n return;\n }\n r.hoverData.capture = false;\n var cy = r.cy;\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var select = r.selection;\n var near = r.findNearestElement(pos[0], pos[1], true, false);\n var draggedElements = r.dragData.possibleDragElements;\n var down = r.hoverData.down;\n var multSelKeyDown = isMultSelKeyDown(e);\n if (r.data.bgActivePosistion) {\n r.redrawHint('select', true);\n r.redraw();\n }\n r.hoverData.tapholdCancelled = true;\n r.data.bgActivePosistion = undefined; // not active bg now\n\n if (down) {\n down.unactivate();\n }\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n if (r.hoverData.which === 3) {\n var cxtEvt = makeEvent('cxttapend');\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (!r.hoverData.cxtDragged) {\n var cxtTap = makeEvent('cxttap');\n if (down) {\n down.emit(cxtTap);\n } else {\n cy.emit(cxtTap);\n }\n }\n r.hoverData.cxtDragged = false;\n r.hoverData.which = null;\n } else if (r.hoverData.which === 1) {\n triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (!r.dragData.didDrag &&\n // didn't move a node around\n !r.hoverData.dragged &&\n // didn't pan\n !r.hoverData.selecting &&\n // not box selection\n !r.hoverData.isOverThresholdDrag // didn't move too much\n ) {\n triggerEvents(down, [\"click\", \"tap\", \"vclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n didDoubleClick = false;\n if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {\n clickTimeout && clearTimeout(clickTimeout);\n didDoubleClick = true;\n prevClickTimeStamp = null;\n triggerEvents(down, [\"dblclick\", \"dbltap\", \"vdblclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n } else {\n clickTimeout = setTimeout(function () {\n if (didDoubleClick) return;\n triggerEvents(down, [\"oneclick\", \"onetap\", \"voneclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n }, cy.multiClickDebounceTime());\n prevClickTimeStamp = e.timeStamp;\n }\n }\n\n // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something\n if (down == null // not mousedown on node\n && !r.dragData.didDrag // didn't move the node around\n && !r.hoverData.selecting // not box selection\n && !r.hoverData.dragged // didn't pan\n && !isMultSelKeyDown(e)) {\n cy.$(isSelected).unselect(['tapunselect']);\n if (draggedElements.length > 0) {\n r.redrawHint('eles', true);\n }\n r.dragData.possibleDragElements = draggedElements = cy.collection();\n }\n\n // Single selection\n if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {\n if (near != null && near._private.selectable) {\n if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) {\n if (near.selected()) {\n near.unselect(['tapunselect']);\n } else {\n near.select(['tapselect']);\n }\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(near).unselect(['tapunselect']);\n near.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n }\n if (r.hoverData.selecting) {\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n r.redrawHint('select', true);\n if (box.length > 0) {\n r.redrawHint('eles', true);\n }\n cy.emit(makeEvent('boxend'));\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n if (cy.selectionType() === 'additive') {\n box.emit(makeEvent('box')).stdFilter(eleWouldBeSelected).select().emit(makeEvent('boxselect'));\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(box).unselect();\n }\n box.emit(makeEvent('box')).stdFilter(eleWouldBeSelected).select().emit(makeEvent('boxselect'));\n }\n\n // always need redraw in case eles unselectable\n r.redraw();\n }\n\n // Cancel drag pan\n if (r.hoverData.dragging) {\n r.hoverData.dragging = false;\n r.redrawHint('select', true);\n r.redrawHint('eles', true);\n r.redraw();\n }\n if (!select[4]) {\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n var downWasGrabbed = down && down.grabbed();\n freeDraggedElements(draggedElements);\n if (downWasGrabbed) {\n down.emit(makeEvent('freeon'));\n draggedElements.emit(makeEvent('free'));\n if (r.dragData.didDrag) {\n down.emit(makeEvent('dragfreeon'));\n draggedElements.emit(makeEvent('dragfree'));\n }\n }\n }\n } // else not right mouse\n\n select[4] = 0;\n r.hoverData.down = null;\n r.hoverData.cxtStarted = false;\n r.hoverData.draggingEles = false;\n r.hoverData.selecting = false;\n r.hoverData.isOverThresholdDrag = false;\n r.dragData.didDrag = false;\n r.hoverData.dragged = false;\n r.hoverData.dragDelta = [];\n r.hoverData.mdownPos = null;\n r.hoverData.mdownGPos = null;\n r.hoverData.which = null;\n }, false);\n var wheelDeltas = []; // log of first N wheel deltas\n var wheelDeltaN = 4; // how many events to log\n var inaccurateScrollDevice;\n var inaccurateScrollFactor = 100000; // base of inaccurate wheel deltas (e.g. base 5 could yield wheels of 10, 25, 50, etc.)\n\n var allAreDivisibleBy = function allAreDivisibleBy(list, factor) {\n for (var i = 0; i < list.length; i++) {\n if (list[i] % factor !== 0) {\n return false;\n }\n }\n return true;\n };\n var allAreSameMagnitude = function allAreSameMagnitude(list) {\n var firstMag = Math.abs(list[0]);\n for (var i = 1; i < list.length; i++) {\n if (Math.abs(list[i]) !== firstMag) {\n return false;\n }\n }\n return true;\n };\n var wheelHandler = function wheelHandler(e) {\n var clamp = false;\n var delta = e.deltaY;\n if (delta == null) {\n // compatibility with old browsers\n if (e.wheelDeltaY != null) {\n delta = e.wheelDeltaY / 4;\n } else if (e.wheelDelta != null) {\n delta = e.wheelDelta / 4;\n }\n }\n if (delta === 0) {\n return; // no change in zoom (Bug: Zoom becomes erratic on rapid scroll due to deltaY: 0 event #3394)\n }\n if (inaccurateScrollDevice == null) {\n if (wheelDeltas.length >= wheelDeltaN) {\n // use log to determine if inaccurate\n var wds = wheelDeltas;\n inaccurateScrollDevice = allAreDivisibleBy(wds, 5);\n if (!inaccurateScrollDevice) {\n // check for all large values of exact same magnitude\n var firstMag = Math.abs(wds[0]);\n inaccurateScrollDevice = allAreSameMagnitude(wds) && firstMag > 5;\n }\n if (inaccurateScrollDevice) {\n for (var i = 0; i < wds.length; i++) {\n inaccurateScrollFactor = Math.min(Math.abs(wds[i]), inaccurateScrollFactor);\n }\n }\n\n // console.log('Sampled wheel deltas:', wds);\n // console.log('inaccurateScrollDevice:', inaccurateScrollDevice);\n // console.log('inaccurateScrollFactor:', inaccurateScrollFactor);\n } else {\n // clamp and log until we reach N\n wheelDeltas.push(delta);\n clamp = true;\n // console.log('Clamping initial wheel events until we get a good sample');\n }\n } else if (inaccurateScrollDevice) {\n // keep updating\n inaccurateScrollFactor = Math.min(Math.abs(delta), inaccurateScrollFactor);\n // console.log('Keep updating inaccurateScrollFactor beyond sample in case we did not get the smallest possible val:', inaccurateScrollFactor);\n }\n if (r.scrollingPage) {\n return;\n } // while scrolling, ignore wheel-to-zoom\n\n var cy = r.cy;\n var zoom = cy.zoom();\n var pan = cy.pan();\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];\n if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {\n // if pan dragging or cxt dragging, wheel movements make no zoom\n e.preventDefault();\n return;\n }\n if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {\n e.preventDefault();\n r.data.wheelZooming = true;\n clearTimeout(r.data.wheelTimeout);\n r.data.wheelTimeout = setTimeout(function () {\n r.data.wheelZooming = false;\n r.redrawHint('eles', true);\n r.redraw();\n }, 150);\n var diff;\n if (clamp && Math.abs(delta) > 5) {\n delta = signum(delta) * 5;\n }\n diff = delta / -250;\n if (inaccurateScrollDevice) {\n diff /= inaccurateScrollFactor;\n diff *= 3;\n }\n diff = diff * r.wheelSensitivity;\n\n // console.log(`delta = ${delta}, diff = ${diff}, mode = ${e.deltaMode}`)\n\n var needsWheelFix = e.deltaMode === 1;\n if (needsWheelFix) {\n // fixes slow wheel events on ff/linux and ff/windows\n diff *= 33;\n }\n var newZoom = cy.zoom() * Math.pow(10, diff);\n if (e.type === 'gesturechange') {\n newZoom = r.gestureStartZoom * e.scale;\n }\n cy.zoom({\n level: newZoom,\n renderedPosition: {\n x: rpos[0],\n y: rpos[1]\n }\n });\n cy.emit({\n type: e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom',\n originalEvent: e,\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n };\n\n // Functions to help with whether mouse wheel should trigger zooming\n // --\n r.registerBinding(r.container, 'wheel', wheelHandler, true);\n\n // disable nonstandard wheel events\n // r.registerBinding(r.container, 'mousewheel', wheelHandler, true);\n // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true);\n // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox\n\n r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) {\n // eslint-disable-line no-unused-vars\n r.scrollingPage = true;\n clearTimeout(r.scrollingPageTimeout);\n r.scrollingPageTimeout = setTimeout(function () {\n r.scrollingPage = false;\n }, 250);\n }, true);\n\n // desktop safari pinch to zoom start\n r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) {\n r.gestureStartZoom = r.cy.zoom();\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n e.preventDefault();\n }\n }, true);\n r.registerBinding(r.container, 'gesturechange', function (e) {\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n wheelHandler(e);\n }\n }, true);\n\n // Functions to help with handling mouseout/mouseover on the Cytoscape container\n // Handle mouseout on Cytoscape container\n r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom\n var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom\n var center1, modelCenter1; // center point on start pinch to zoom\n var offsetLeft, offsetTop;\n var containerWidth, containerHeight;\n var twoFingersStartInside;\n var distance = function distance(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n var distanceSq = function distanceSq(x1, y1, x2, y2) {\n return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);\n };\n var touchstartHandler;\n r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) {\n r.hasTouchStarted = true;\n if (!eventInContainer(e)) {\n return;\n }\n blurActiveDomElement();\n r.touchData.capture = true;\n r.data.bgActivePosistion = undefined;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n\n // record starting points for pinch-to-zoom\n if (e.touches[1]) {\n r.touchData.singleTouchMoved = true;\n freeDraggedElements(r.dragData.touchDragEles);\n var offsets = r.findContainerClientCoords();\n offsetLeft = offsets[0];\n offsetTop = offsets[1];\n containerWidth = offsets[2];\n containerHeight = offsets[3];\n f1x1 = e.touches[0].clientX - offsetLeft;\n f1y1 = e.touches[0].clientY - offsetTop;\n f2x1 = e.touches[1].clientX - offsetLeft;\n f2y1 = e.touches[1].clientY - offsetTop;\n twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;\n var pan = cy.pan();\n var zoom = cy.zoom();\n distance1 = distance(f1x1, f1y1, f2x1, f2y1);\n distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);\n center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];\n modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];\n\n // consider context tap\n var cxtDistThreshold = 200;\n var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;\n if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {\n var near1 = r.findNearestElement(now[0], now[1], true, true);\n var near2 = r.findNearestElement(now[2], now[3], true, true);\n if (near1 && near1.isNode()) {\n near1.activate().emit(makeEvent('cxttapstart'));\n r.touchData.start = near1;\n } else if (near2 && near2.isNode()) {\n near2.activate().emit(makeEvent('cxttapstart'));\n r.touchData.start = near2;\n } else {\n cy.emit(makeEvent('cxttapstart'));\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = true;\n r.touchData.cxtDragged = false;\n r.data.bgActivePosistion = undefined;\n r.redraw();\n return;\n }\n }\n if (e.touches[2]) {\n // ignore\n\n // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...)\n if (cy.boxSelectionEnabled()) {\n e.preventDefault();\n }\n } else if (e.touches[1]) ; else if (e.touches[0]) {\n var nears = r.findNearestElements(now[0], now[1], true, true);\n var near = nears[0];\n if (near != null) {\n near.activate();\n r.touchData.start = near;\n r.touchData.starts = nears;\n if (r.nodeIsGrabbable(near)) {\n var draggedEles = r.dragData.touchDragEles = cy.collection();\n var selectedNodes = null;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n if (near.selected()) {\n // reset drag elements, since near will be added again\n\n selectedNodes = cy.$(function (ele) {\n return ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedEles\n });\n } else {\n addNodeToDrag(near, {\n addToList: draggedEles\n });\n }\n setGrabTarget(near);\n near.emit(makeEvent('grabon'));\n if (selectedNodes) {\n selectedNodes.forEach(function (n) {\n n.emit(makeEvent('grab'));\n });\n } else {\n near.emit(makeEvent('grab'));\n }\n }\n }\n triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, {\n x: now[0],\n y: now[1]\n });\n if (near == null) {\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n }\n\n // Tap, taphold\n // -----\n\n r.touchData.singleTouchMoved = false;\n r.touchData.singleTouchStartTime = +new Date();\n clearTimeout(r.touchData.tapholdTimeout);\n r.touchData.tapholdTimeout = setTimeout(function () {\n if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect\n && !r.touchData.selecting // box selection shouldn't allow taphold through\n ) {\n triggerEvents(r.touchData.start, ['taphold'], e, {\n x: now[0],\n y: now[1]\n });\n }\n }, r.tapholdDuration);\n }\n if (e.touches.length >= 1) {\n var sPos = r.touchData.startPosition = [null, null, null, null, null, null];\n for (var i = 0; i < now.length; i++) {\n sPos[i] = earlier[i] = now[i];\n }\n var touch0 = e.touches[0];\n r.touchData.startGPosition = [touch0.clientX, touch0.clientY];\n }\n }, false);\n var touchmoveHandler;\n r.registerBinding(containerWindow, 'touchmove', touchmoveHandler = function touchmoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.touchData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var select = r.selection;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n var zoom = cy.zoom();\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n var startGPos = r.touchData.startGPosition;\n var isOverThresholdDrag;\n if (capture && e.touches[0] && startGPos) {\n var disp = [];\n for (var j = 0; j < now.length; j++) {\n disp[j] = now[j] - earlier[j];\n }\n var dx = e.touches[0].clientX - startGPos[0];\n var dx2 = dx * dx;\n var dy = e.touches[0].clientY - startGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n isOverThresholdDrag = dist2 >= r.touchTapThreshold2;\n }\n\n // context swipe cancelling\n if (capture && r.touchData.cxt) {\n e.preventDefault();\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 );\n var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);\n var factorSq = distance2Sq / distance1Sq;\n var distThreshold = 150;\n var distThresholdSq = distThreshold * distThreshold;\n var factorThreshold = 1.5;\n var factorThresholdSq = factorThreshold * factorThreshold;\n\n // cancel ctx gestures if the distance b/t the fingers increases\n if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {\n r.touchData.cxt = false;\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var cxtEvt = makeEvent('cxttapend');\n if (r.touchData.start) {\n r.touchData.start.unactivate().emit(cxtEvt);\n r.touchData.start = null;\n } else {\n cy.emit(cxtEvt);\n }\n }\n }\n\n // context swipe\n if (capture && r.touchData.cxt) {\n var cxtEvt = makeEvent('cxtdrag');\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n if (r.touchData.start) {\n r.touchData.start.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxtDragged = true;\n var near = r.findNearestElement(now[0], now[1], true, true);\n if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {\n if (r.touchData.cxtOver) {\n r.touchData.cxtOver.emit(makeEvent('cxtdragout'));\n }\n r.touchData.cxtOver = near;\n if (near) {\n near.emit(makeEvent('cxtdragover'));\n }\n }\n\n // box selection\n } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n this.lastThreeTouch = +new Date();\n if (!r.touchData.selecting) {\n cy.emit(makeEvent('boxstart'));\n }\n r.touchData.selecting = true;\n r.touchData.didSelect = true;\n select[4] = 1;\n if (!select || select.length === 0 || select[0] === undefined) {\n select[0] = (now[0] + now[2] + now[4]) / 3;\n select[1] = (now[1] + now[3] + now[5]) / 3;\n select[2] = (now[0] + now[2] + now[4]) / 3 + 1;\n select[3] = (now[1] + now[3] + now[5]) / 3 + 1;\n } else {\n select[2] = (now[0] + now[2] + now[4]) / 3;\n select[3] = (now[1] + now[3] + now[5]) / 3;\n }\n r.redrawHint('select', true);\n r.redraw();\n\n // pinch to zoom\n } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom\n && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {\n // two fingers => pinch to zoom\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (draggedEles) {\n r.redrawHint('drag', true);\n for (var i = 0; i < draggedEles.length; i++) {\n var de_p = draggedEles[i]._private;\n de_p.grabbed = false;\n de_p.rscratch.inDragLayer = false;\n }\n }\n var _start = r.touchData.start;\n\n // (x2, y2) for fingers 1 and 2\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n var distance2 = distance(f1x2, f1y2, f2x2, f2y2);\n // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 );\n // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq );\n var factor = distance2 / distance1;\n if (twoFingersStartInside) {\n // delta finger1\n var df1x = f1x2 - f1x1;\n var df1y = f1y2 - f1y1;\n\n // delta finger 2\n var df2x = f2x2 - f2x1;\n var df2y = f2y2 - f2y1;\n\n // translation is the normalised vector of the two fingers movement\n // i.e. so pinching cancels out and moving together pans\n var tx = (df1x + df2x) / 2;\n var ty = (df1y + df2y) / 2;\n\n // now calculate the zoom\n var zoom1 = cy.zoom();\n var zoom2 = zoom1 * factor;\n var pan1 = cy.pan();\n\n // the model center point converted to the current rendered pos\n var ctrx = modelCenter1[0] * zoom1 + pan1.x;\n var ctry = modelCenter1[1] * zoom1 + pan1.y;\n var pan2 = {\n x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,\n y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry\n };\n\n // remove dragged eles\n if (_start && _start.active()) {\n var draggedEles = r.dragData.touchDragEles;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n _start.unactivate().emit(makeEvent('freeon'));\n draggedEles.emit(makeEvent('free'));\n if (r.dragData.didDrag) {\n _start.emit(makeEvent('dragfreeon'));\n draggedEles.emit(makeEvent('dragfree'));\n }\n }\n cy.viewport({\n zoom: zoom2,\n pan: pan2,\n cancelOnFailedZoom: true\n });\n cy.emit(makeEvent('pinchzoom'));\n distance1 = distance2;\n f1x1 = f1x2;\n f1y1 = f1y2;\n f2x1 = f2x2;\n f2y1 = f2y2;\n r.pinching = true;\n }\n\n // Re-project\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning\n ) {\n var start = r.touchData.start;\n var last = r.touchData.last;\n var near;\n if (!r.hoverData.draggingEles && !r.swipePanning) {\n near = r.findNearestElement(now[0], now[1], true, true);\n }\n if (capture && start != null) {\n e.preventDefault();\n }\n\n // dragging nodes\n if (capture && start != null && r.nodeIsDraggable(start)) {\n if (isOverThresholdDrag) {\n // then dragging can happen\n var draggedEles = r.dragData.touchDragEles;\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n addNodesToDrag(draggedEles, {\n inDragLayer: true\n });\n }\n r.dragData.didDrag = true;\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n var dragDelta = r.touchData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedEles.silentShift(totalShift).emit(makeEvent('position')).emit(makeEvent('drag'));\n r.redrawHint('drag', true);\n if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n } else {\n // otherwise keep track of drag delta for later\n var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n }\n }\n\n // touchmove\n {\n triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, {\n x: now[0],\n y: now[1]\n });\n if ((!start || !start.grabbed()) && near != last) {\n if (last) {\n last.emit(makeEvent('tapdragout'));\n }\n if (near) {\n near.emit(makeEvent('tapdragover'));\n }\n }\n r.touchData.last = near;\n }\n\n // check to cancel taphold\n if (capture) {\n for (var i = 0; i < now.length; i++) {\n if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) {\n r.touchData.singleTouchMoved = true;\n }\n }\n }\n\n // panning\n if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts);\n if (allowPassthrough) {\n e.preventDefault();\n if (!r.data.bgActivePosistion) {\n r.data.bgActivePosistion = array2point(r.touchData.startPosition);\n }\n if (r.swipePanning) {\n cy.panBy({\n x: disp[0] * zoom,\n y: disp[1] * zoom\n });\n cy.emit(makeEvent('dragpan'));\n } else if (isOverThresholdDrag) {\n r.swipePanning = true;\n cy.panBy({\n x: dx * zoom,\n y: dy * zoom\n });\n cy.emit(makeEvent('dragpan'));\n if (start) {\n start.unactivate();\n r.redrawHint('select', true);\n r.touchData.start = null;\n }\n }\n }\n\n // Re-project\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n\n // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning\n if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n r.redraw();\n }\n }, false);\n var touchcancelHandler;\n r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n r.touchData.capture = false;\n if (start) {\n start.unactivate();\n }\n });\n var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;\n r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n var capture = r.touchData.capture;\n if (capture) {\n if (e.touches.length === 0) {\n r.touchData.capture = false;\n }\n e.preventDefault();\n } else {\n return;\n }\n var select = r.selection;\n r.swipePanning = false;\n r.hoverData.draggingEles = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n if (start) {\n start.unactivate();\n }\n var ctxTapend;\n if (r.touchData.cxt) {\n ctxTapend = makeEvent('cxttapend');\n if (start) {\n start.emit(ctxTapend);\n } else {\n cy.emit(ctxTapend);\n }\n if (!r.touchData.cxtDragged) {\n var ctxTap = makeEvent('cxttap');\n if (start) {\n start.emit(ctxTap);\n } else {\n cy.emit(ctxTap);\n }\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = false;\n r.touchData.start = null;\n r.redraw();\n return;\n }\n\n // no more box selection if we don't have three fingers\n if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {\n r.touchData.selecting = false;\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n select[0] = undefined;\n select[1] = undefined;\n select[2] = undefined;\n select[3] = undefined;\n select[4] = 0;\n r.redrawHint('select', true);\n cy.emit(makeEvent('boxend'));\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n box.emit(makeEvent('box')).stdFilter(eleWouldBeSelected).select().emit(makeEvent('boxselect'));\n if (box.nonempty()) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n }\n if (start != null) {\n start.unactivate();\n }\n if (e.touches[2]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (start != null) {\n var startWasGrabbed = start._private.grabbed;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n if (startWasGrabbed) {\n start.emit(makeEvent('freeon'));\n draggedEles.emit(makeEvent('free'));\n if (r.dragData.didDrag) {\n start.emit(makeEvent('dragfreeon'));\n draggedEles.emit(makeEvent('dragfree'));\n }\n }\n triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n start.unactivate();\n r.touchData.start = null;\n } else {\n var near = r.findNearestElement(now[0], now[1], true, true);\n triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n }\n var dx = r.touchData.startPosition[0] - now[0];\n var dx2 = dx * dx;\n var dy = r.touchData.startPosition[1] - now[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n var rdist2 = dist2 * zoom * zoom;\n\n // Tap event, roughly same as mouse click event for touch\n if (!r.touchData.singleTouchMoved) {\n if (!start) {\n cy.$(':selected').unselect(['tapunselect']);\n }\n triggerEvents(start, ['tap', 'vclick'], e, {\n x: now[0],\n y: now[1]\n });\n didDoubleTouch = false;\n if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {\n touchTimeout && clearTimeout(touchTimeout);\n didDoubleTouch = true;\n prevTouchTimeStamp = null;\n triggerEvents(start, ['dbltap', 'vdblclick'], e, {\n x: now[0],\n y: now[1]\n });\n } else {\n touchTimeout = setTimeout(function () {\n if (didDoubleTouch) return;\n triggerEvents(start, ['onetap', 'voneclick'], e, {\n x: now[0],\n y: now[1]\n });\n }, cy.multiClickDebounceTime());\n prevTouchTimeStamp = e.timeStamp;\n }\n }\n\n // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance\n if (start != null && !r.dragData.didDrag // didn't drag nodes around\n && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection\n ) {\n if (cy.selectionType() === 'single') {\n cy.$(isSelected).unmerge(start).unselect(['tapunselect']);\n start.select(['tapselect']);\n } else {\n if (start.selected()) {\n start.unselect(['tapunselect']);\n } else {\n start.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n r.touchData.singleTouchMoved = true;\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n r.dragData.didDrag = false; // reset for next touchstart\n\n if (e.touches.length === 0) {\n r.touchData.dragDelta = [];\n r.touchData.startPosition = [null, null, null, null, null, null];\n r.touchData.startGPosition = null;\n r.touchData.didSelect = false;\n }\n if (e.touches.length < 2) {\n if (e.touches.length === 1) {\n // the old start global pos'n may not be the same finger that remains\n r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];\n }\n r.pinching = false;\n r.redrawHint('eles', true);\n r.redraw();\n }\n\n //r.redraw();\n }, false);\n\n // fallback compatibility layer for ms pointer events\n if (typeof TouchEvent === 'undefined') {\n var pointers = [];\n var makeTouch = function makeTouch(e) {\n return {\n clientX: e.clientX,\n clientY: e.clientY,\n force: 1,\n identifier: e.pointerId,\n pageX: e.pageX,\n pageY: e.pageY,\n radiusX: e.width / 2,\n radiusY: e.height / 2,\n screenX: e.screenX,\n screenY: e.screenY,\n target: e.target\n };\n };\n var makePointer = function makePointer(e) {\n return {\n event: e,\n touch: makeTouch(e)\n };\n };\n var addPointer = function addPointer(e) {\n pointers.push(makePointer(e));\n };\n var removePointer = function removePointer(e) {\n for (var i = 0; i < pointers.length; i++) {\n var p = pointers[i];\n if (p.event.pointerId === e.pointerId) {\n pointers.splice(i, 1);\n return;\n }\n }\n };\n var updatePointer = function updatePointer(e) {\n var p = pointers.filter(function (p) {\n return p.event.pointerId === e.pointerId;\n })[0];\n p.event = e;\n p.touch = makeTouch(e);\n };\n var addTouchesToEvent = function addTouchesToEvent(e) {\n e.touches = pointers.map(function (p) {\n return p.touch;\n });\n };\n var pointerIsMouse = function pointerIsMouse(e) {\n return e.pointerType === 'mouse' || e.pointerType === 4;\n };\n r.registerBinding(r.container, 'pointerdown', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n addPointer(e);\n addTouchesToEvent(e);\n touchstartHandler(e);\n });\n r.registerBinding(r.container, 'pointerup', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchendHandler(e);\n });\n r.registerBinding(r.container, 'pointercancel', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchcancelHandler(e);\n });\n r.registerBinding(r.container, 'pointermove', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n updatePointer(e);\n addTouchesToEvent(e);\n touchmoveHandler(e);\n });\n }\n};\n\nvar BRp$2 = {};\nBRp$2.generatePolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding);\n },\n hasMiterBounds: name !== 'rectangle',\n miterBounds: function miterBounds(centerX, centerY, width, height, strokeWidth, strokePosition) {\n return miterBox(this.points, centerX, centerY, width, height, strokeWidth);\n }\n };\n};\nBRp$2.generateEllipse = function () {\n return this.nodeShapes['ellipse'] = {\n renderer: this,\n name: 'ellipse',\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n return checkInEllipse(x, y, width, height, centerX, centerY, padding);\n }\n };\n};\nBRp$2.generateRoundPolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n getOrCreateCorners: function getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, field) {\n if (rs[field] !== undefined && rs[field + '-cx'] === centerX && rs[field + '-cy'] === centerY) {\n return rs[field];\n }\n rs[field] = new Array(points.length / 2);\n rs[field + '-cx'] = centerX;\n rs[field + '-cy'] = centerY;\n var halfW = width / 2;\n var halfH = height / 2;\n cornerRadius = cornerRadius === 'auto' ? getRoundPolygonRadius(width, height) : cornerRadius;\n var p = new Array(points.length / 2);\n for (var _i = 0; _i < points.length / 2; _i++) {\n p[_i] = {\n x: centerX + halfW * points[_i * 2],\n y: centerY + halfH * points[_i * 2 + 1]\n };\n }\n var i,\n p1,\n p2,\n p3,\n len = p.length;\n p1 = p[len - 1];\n // for each point\n for (i = 0; i < len; i++) {\n p2 = p[i % len];\n p3 = p[(i + 1) % len];\n rs[field][i] = getRoundCorner(p1, p2, p3, cornerRadius);\n p1 = p2;\n p2 = p3;\n }\n return rs[field];\n },\n draw: function draw(context, centerX, centerY, width, height, cornerRadius, rs) {\n this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points, this.getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, 'drawCorners'));\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius, rs) {\n return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height, padding, this.getOrCreateCorners(nodeX, nodeY, width, height, cornerRadius, rs, 'corners'));\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius, rs) {\n return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height, this.getOrCreateCorners(centerX, centerY, width, height, cornerRadius, rs, 'corners'));\n }\n };\n};\nBRp$2.generateRoundRectangle = function () {\n return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = {\n renderer: this,\n name: 'round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, this.points, cornerRadius);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding, cornerRadius);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(width, height) : cornerRadius;\n cornerRadius = Math.min(halfWidth, halfHeight, cornerRadius);\n var diam = cornerRadius * 2;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // Check top left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - halfWidth + cornerRadius, centerY - halfHeight + cornerRadius, padding)) {\n return true;\n }\n\n // Check top right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + halfWidth - cornerRadius, centerY - halfHeight + cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + halfWidth - cornerRadius, centerY + halfHeight - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - halfWidth + cornerRadius, centerY + halfHeight - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n};\nBRp$2.generateCutRectangle = function () {\n return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = {\n renderer: this,\n name: 'cut-rectangle',\n cornerLength: getCutRectangleCornerLength(),\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, null, cornerRadius);\n },\n generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY, cornerRadius) {\n var cl = cornerRadius === 'auto' ? this.cornerLength : cornerRadius;\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n\n // points are in clockwise order, inner (imaginary) triangle pt on [4, 5]\n return {\n topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],\n topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],\n bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],\n bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]\n };\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY, cornerRadius);\n var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var cl = cornerRadius === 'auto' ? this.cornerLength : cornerRadius;\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * cl, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * cl, height, [0, -1], padding)) {\n return true;\n }\n var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY);\n return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft);\n }\n };\n};\nBRp$2.generateBarrel = function () {\n return this.nodeShapes['barrel'] = {\n renderer: this,\n name: 'barrel',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n // use two fixed t values for the bezier curve approximation\n\n var t0 = 0.15;\n var t1 = 0.5;\n var t2 = 0.85;\n var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) {\n // approximate curve pts based on the two t values\n var m0 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t0);\n var m1 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t1);\n var m2 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t2);\n return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]];\n };\n var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) {\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width;\n\n // points are in clockwise order, inner (imaginary) control pt on [4, 5]\n var pts = {\n topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],\n topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],\n bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],\n bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]\n };\n pts.topLeft.isTop = true;\n pts.topRight.isTop = true;\n pts.bottomLeft.isBottom = true;\n pts.bottomRight.isBottom = true;\n return pts;\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) {\n return true;\n }\n var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY);\n var getCurveT = function getCurveT(x, y, curvePts) {\n var x0 = curvePts[4];\n var x1 = curvePts[2];\n var x2 = curvePts[0];\n var y0 = curvePts[5];\n // var y1 = curvePts[ 3 ];\n var y2 = curvePts[1];\n var xMin = Math.min(x0, x2);\n var xMax = Math.max(x0, x2);\n var yMin = Math.min(y0, y2);\n var yMax = Math.max(y0, y2);\n if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) {\n var coeff = bezierPtsToQuadCoeff(x0, x1, x2);\n var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x);\n var validRoots = roots.filter(function (r) {\n return 0 <= r && r <= 1;\n });\n if (validRoots.length > 0) {\n return validRoots[0];\n }\n }\n return null;\n };\n var curveRegions = Object.keys(barrelCurvePts);\n for (var i = 0; i < curveRegions.length; i++) {\n var corner = curveRegions[i];\n var cornerPts = barrelCurvePts[corner];\n var t = getCurveT(x, y, cornerPts);\n if (t == null) {\n continue;\n }\n var y0 = cornerPts[5];\n var y1 = cornerPts[3];\n var y2 = cornerPts[1];\n var bezY = qbezierAt(y0, y1, y2, t);\n if (cornerPts.isTop && bezY <= y) {\n return true;\n }\n if (cornerPts.isBottom && y <= bezY) {\n return true;\n }\n }\n return false;\n }\n };\n};\nBRp$2.generateBottomRoundrectangle = function () {\n return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = {\n renderer: this,\n name: 'bottom-round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height, cornerRadius) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height, this.points, cornerRadius);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding, cornerRadius) {\n var topStartX = nodeX - (width / 2 + padding);\n var topStartY = nodeY - (height / 2 + padding);\n var topEndY = topStartY;\n var topEndX = nodeX + (width / 2 + padding);\n var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (topIntersections.length > 0) {\n return topIntersections;\n }\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding, cornerRadius);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY, cornerRadius) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(width, height) : cornerRadius;\n var diam = 2 * cornerRadius;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // check non-rounded top side\n var outerWidth = width / 2 + 2 * padding;\n var outerHeight = height / 2 + 2 * padding;\n var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];\n if (pointInsidePolygonPoints(x, y, points)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n};\nBRp$2.registerNodeShapes = function () {\n var nodeShapes = this.nodeShapes = {};\n var renderer = this;\n this.generateEllipse();\n this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0));\n nodeShapes['square'] = nodeShapes['rectangle'];\n this.generateRoundRectangle();\n this.generateCutRectangle();\n this.generateBarrel();\n this.generateBottomRoundrectangle();\n {\n var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];\n this.generatePolygon('diamond', diamondPoints);\n this.generateRoundPolygon('round-diamond', diamondPoints);\n }\n this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0));\n this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0));\n var star5Points = new Array(20);\n {\n var outerPoints = generateUnitNgonPoints(5, 0);\n var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);\n\n // Outer radius is 1; inner radius of star is smaller\n var innerRadius = 0.5 * (3 - Math.sqrt(5));\n innerRadius *= 1.57;\n for (var i = 0; i < innerPoints.length / 2; i++) {\n innerPoints[i * 2] *= innerRadius;\n innerPoints[i * 2 + 1] *= innerRadius;\n }\n for (var i = 0; i < 20 / 4; i++) {\n star5Points[i * 4] = outerPoints[i * 2];\n star5Points[i * 4 + 1] = outerPoints[i * 2 + 1];\n star5Points[i * 4 + 2] = innerPoints[i * 2];\n star5Points[i * 4 + 3] = innerPoints[i * 2 + 1];\n }\n }\n star5Points = fitPolygonToSquare(star5Points);\n this.generatePolygon('star', star5Points);\n this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]);\n this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);\n this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]);\n this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);\n {\n var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];\n this.generatePolygon('tag', tagPoints);\n this.generateRoundPolygon('round-tag', tagPoints);\n }\n nodeShapes.makePolygon = function (points) {\n // use caching on user-specified polygons so they are as fast as native shapes\n\n var key = points.join('$');\n var name = 'polygon-' + key;\n var shape;\n if (shape = this[name]) {\n // got cached shape\n return shape;\n }\n\n // create and cache new shape\n return renderer.generatePolygon(name, points);\n };\n};\n\nvar BRp$1 = {};\nBRp$1.timeToRender = function () {\n return this.redrawTotalTime / this.redrawCount;\n};\nBRp$1.redraw = function (options) {\n options = options || staticEmptyObject();\n var r = this;\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = 0;\n }\n if (r.lastRedrawTime === undefined) {\n r.lastRedrawTime = 0;\n }\n if (r.lastDrawTime === undefined) {\n r.lastDrawTime = 0;\n }\n r.requestedFrame = true;\n r.renderOptions = options;\n};\nBRp$1.beforeRender = function (fn, priority) {\n // the renderer can't add tick callbacks when destroyed\n if (this.destroyed) {\n return;\n }\n if (priority == null) {\n error('Priority is not optional for beforeRender');\n }\n var cbs = this.beforeRenderCallbacks;\n cbs.push({\n fn: fn,\n priority: priority\n });\n\n // higher priority callbacks executed first\n cbs.sort(function (a, b) {\n return b.priority - a.priority;\n });\n};\nvar beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) {\n var cbs = r.beforeRenderCallbacks;\n for (var i = 0; i < cbs.length; i++) {\n cbs[i].fn(willDraw, startTime);\n }\n};\nBRp$1.startRenderLoop = function () {\n var r = this;\n var cy = r.cy;\n if (r.renderLoopStarted) {\n return;\n } else {\n r.renderLoopStarted = true;\n }\n var _renderFn = function renderFn(requestTime) {\n if (r.destroyed) {\n return;\n }\n if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) {\n beforeRenderCallbacks(r, true, requestTime);\n var startTime = performanceNow();\n r.render(r.renderOptions);\n var endTime = r.lastDrawTime = performanceNow();\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = endTime - startTime;\n }\n if (r.redrawCount === undefined) {\n r.redrawCount = 0;\n }\n r.redrawCount++;\n if (r.redrawTotalTime === undefined) {\n r.redrawTotalTime = 0;\n }\n var duration = endTime - startTime;\n r.redrawTotalTime += duration;\n r.lastRedrawTime = duration;\n\n // use a weighted average with a bias from the previous average so we don't spike so easily\n r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;\n r.requestedFrame = false;\n } else {\n beforeRenderCallbacks(r, false, requestTime);\n }\n r.skipFrame = false;\n requestAnimationFrame(_renderFn);\n };\n requestAnimationFrame(_renderFn);\n};\n\nvar BaseRenderer = function BaseRenderer(options) {\n this.init(options);\n};\nvar BR = BaseRenderer;\nvar BRp = BR.prototype;\nBRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl'];\nBRp.init = function (options) {\n var r = this;\n r.options = options;\n r.cy = options.cy;\n var ctr = r.container = options.cy.container();\n var containerWindow = r.cy.window();\n\n // prepend a stylesheet in the head such that\n if (containerWindow) {\n var document = containerWindow.document;\n var head = document.head;\n var stylesheetId = '__________cytoscape_stylesheet';\n var className = '__________cytoscape_container';\n var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null;\n if (ctr.className.indexOf(className) < 0) {\n ctr.className = (ctr.className || '') + ' ' + className;\n }\n if (!stylesheetAlreadyExists) {\n var stylesheet = document.createElement('style');\n stylesheet.id = stylesheetId;\n stylesheet.textContent = '.' + className + ' { position: relative; }';\n head.insertBefore(stylesheet, head.children[0]); // first so lowest priority\n }\n var computedStyle = containerWindow.getComputedStyle(ctr);\n var position = computedStyle.getPropertyValue('position');\n if (position === 'static') {\n warn('A Cytoscape container has style position:static and so can not use UI extensions properly');\n }\n }\n r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag\n\n r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];\n\n //--Pointer-related data\n r.hoverData = {\n down: null,\n last: null,\n downTime: null,\n triggerMode: null,\n dragging: false,\n initialPan: [null, null],\n capture: false\n };\n r.dragData = {\n possibleDragElements: []\n };\n r.touchData = {\n start: null,\n capture: false,\n // These 3 fields related to tap, taphold events\n startPosition: [null, null, null, null, null, null],\n singleTouchStartTime: null,\n singleTouchMoved: true,\n now: [null, null, null, null, null, null],\n earlier: [null, null, null, null, null, null]\n };\n r.redraws = 0;\n r.showFps = options.showFps;\n r.debug = options.debug;\n r.webgl = options.webgl;\n r.hideEdgesOnViewport = options.hideEdgesOnViewport;\n r.textureOnViewport = options.textureOnViewport;\n r.wheelSensitivity = options.wheelSensitivity;\n r.motionBlurEnabled = options.motionBlur; // on by default\n r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null;\n r.motionBlur = options.motionBlur; // for initial kick off\n r.motionBlurOpacity = options.motionBlurOpacity;\n r.motionBlurTransparency = 1 - r.motionBlurOpacity;\n r.motionBlurPxRatio = 1;\n r.mbPxRBlurry = 1; //0.8;\n r.minMbLowQualFrames = 4;\n r.fullQualityMb = false;\n r.clearedForMotionBlur = [];\n r.desktopTapThreshold = options.desktopTapThreshold;\n r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold;\n r.touchTapThreshold = options.touchTapThreshold;\n r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold;\n r.tapholdDuration = 500;\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.beforeRenderPriorities = {\n // higher priority execs before lower one\n animations: 400,\n eleCalcs: 300,\n eleTxrDeq: 200,\n lyrTxrDeq: 150,\n lyrTxrSkip: 100\n };\n r.registerNodeShapes();\n r.registerArrowShapes();\n r.registerCalculationListeners();\n};\nBRp.notify = function (eventName, eles) {\n var r = this;\n var cy = r.cy;\n\n // the renderer can't be notified after it's destroyed\n if (this.destroyed) {\n return;\n }\n if (eventName === 'init') {\n r.load();\n return;\n }\n if (eventName === 'destroy') {\n r.destroy();\n return;\n }\n if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') {\n r.invalidateCachedZSortedEles();\n }\n if (eventName === 'viewport') {\n r.redrawHint('select', true);\n }\n if (eventName === 'gc') {\n r.redrawHint('gc', true);\n }\n if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n this.startRenderLoop();\n this.redraw();\n};\nBRp.destroy = function () {\n var r = this;\n r.destroyed = true;\n r.cy.stopAnimationLoop();\n for (var i = 0; i < r.bindings.length; i++) {\n var binding = r.bindings[i];\n var b = binding;\n var tgt = b.target;\n (tgt.off || tgt.removeEventListener).apply(tgt, b.args);\n }\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.onUpdateEleCalcsFns = [];\n if (r.removeObserver) {\n r.removeObserver.disconnect();\n }\n if (r.styleObserver) {\n r.styleObserver.disconnect();\n }\n if (r.resizeObserver) {\n r.resizeObserver.disconnect();\n }\n if (r.labelCalcDiv) {\n try {\n document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef\n } catch (e) {\n // ie10 issue #1014\n }\n }\n};\nBRp.isHeadless = function () {\n return false;\n};\n[BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) {\n extend(BRp, props);\n});\n\nvar fullFpsTime = 1000 / 60; // assume 60 frames per second\n\nvar defs = {\n setupDequeueing: function setupDequeueing(opts) {\n return function setupDequeueingImpl() {\n var self = this;\n var r = this.renderer;\n if (self.dequeueingSetup) {\n return;\n } else {\n self.dequeueingSetup = true;\n }\n var queueRedraw = debounce(function () {\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, opts.deqRedrawThreshold);\n var dequeue = function dequeue(willDraw, frameStartTime) {\n var startTime = performanceNow();\n var avgRenderTime = r.averageRedrawTime;\n var renderTime = r.lastRedrawTime;\n var deqd = [];\n var extent = r.cy.extent();\n var pixelRatio = r.getPixelRatio();\n\n // if we aren't in a tick that causes a draw, then the rendered style\n // queue won't automatically be flushed before dequeueing starts\n if (!willDraw) {\n r.flushRenderedStyleQueue();\n }\n while (true) {\n // eslint-disable-line no-constant-condition\n var now = performanceNow();\n var duration = now - startTime;\n var frameDuration = now - frameStartTime;\n if (renderTime < fullFpsTime) {\n // if we're rendering faster than the ideal fps, then do dequeueing\n // during all of the remaining frame time\n\n var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);\n if (frameDuration >= opts.deqFastCost * timeAvailable) {\n break;\n }\n } else {\n if (willDraw) {\n if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {\n break;\n }\n } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {\n break;\n }\n }\n var thisDeqd = opts.deq(self, pixelRatio, extent);\n if (thisDeqd.length > 0) {\n for (var i = 0; i < thisDeqd.length; i++) {\n deqd.push(thisDeqd[i]);\n }\n } else {\n break;\n }\n }\n\n // callbacks on dequeue\n if (deqd.length > 0) {\n opts.onDeqd(self, deqd);\n if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) {\n queueRedraw();\n }\n }\n };\n var priority = opts.priority || noop$1;\n r.beforeRender(dequeue, priority(self));\n };\n }\n};\n\n// Allows lookups for (ele, lvl) => cache.\n// Uses keys so elements may share the same cache.\nvar ElementTextureCacheLookup = /*#__PURE__*/function () {\n function ElementTextureCacheLookup(getKey) {\n var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify;\n _classCallCheck(this, ElementTextureCacheLookup);\n this.idsByKey = new Map$1();\n this.keyForId = new Map$1();\n this.cachesByLvl = new Map$1();\n this.lvls = [];\n this.getKey = getKey;\n this.doesEleInvalidateKey = doesEleInvalidateKey;\n }\n return _createClass(ElementTextureCacheLookup, [{\n key: \"getIdsFor\",\n value: function getIdsFor(key) {\n if (key == null) {\n error(\"Can not get id list for null key\");\n }\n var idsByKey = this.idsByKey;\n var ids = this.idsByKey.get(key);\n if (!ids) {\n ids = new Set$1();\n idsByKey.set(key, ids);\n }\n return ids;\n }\n }, {\n key: \"addIdForKey\",\n value: function addIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key).add(id);\n }\n }\n }, {\n key: \"deleteIdForKey\",\n value: function deleteIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key)[\"delete\"](id);\n }\n }\n }, {\n key: \"getNumberOfIdsForKey\",\n value: function getNumberOfIdsForKey(key) {\n if (key == null) {\n return 0;\n } else {\n return this.getIdsFor(key).size;\n }\n }\n }, {\n key: \"updateKeyMappingFor\",\n value: function updateKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var currKey = this.getKey(ele);\n this.deleteIdForKey(prevKey, id);\n this.addIdForKey(currKey, id);\n this.keyForId.set(id, currKey);\n }\n }, {\n key: \"deleteKeyMappingFor\",\n value: function deleteKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n this.deleteIdForKey(prevKey, id);\n this.keyForId[\"delete\"](id);\n }\n }, {\n key: \"keyHasChangedFor\",\n value: function keyHasChangedFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var newKey = this.getKey(ele);\n return prevKey !== newKey;\n }\n }, {\n key: \"isInvalid\",\n value: function isInvalid(ele) {\n return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);\n }\n }, {\n key: \"getCachesAt\",\n value: function getCachesAt(lvl) {\n var cachesByLvl = this.cachesByLvl,\n lvls = this.lvls;\n var caches = cachesByLvl.get(lvl);\n if (!caches) {\n caches = new Map$1();\n cachesByLvl.set(lvl, caches);\n lvls.push(lvl);\n }\n return caches;\n }\n }, {\n key: \"getCache\",\n value: function getCache(key, lvl) {\n return this.getCachesAt(lvl).get(key);\n }\n }, {\n key: \"get\",\n value: function get(ele, lvl) {\n var key = this.getKey(ele);\n var cache = this.getCache(key, lvl);\n\n // getting for an element may need to add to the id list b/c eles can share keys\n if (cache != null) {\n this.updateKeyMappingFor(ele);\n }\n return cache;\n }\n }, {\n key: \"getForCachedKey\",\n value: function getForCachedKey(ele, lvl) {\n var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key\n var cache = this.getCache(key, lvl);\n return cache;\n }\n }, {\n key: \"hasCache\",\n value: function hasCache(key, lvl) {\n return this.getCachesAt(lvl).has(key);\n }\n }, {\n key: \"has\",\n value: function has(ele, lvl) {\n var key = this.getKey(ele);\n return this.hasCache(key, lvl);\n }\n }, {\n key: \"setCache\",\n value: function setCache(key, lvl, cache) {\n cache.key = key;\n this.getCachesAt(lvl).set(key, cache);\n }\n }, {\n key: \"set\",\n value: function set(ele, lvl, cache) {\n var key = this.getKey(ele);\n this.setCache(key, lvl, cache);\n this.updateKeyMappingFor(ele);\n }\n }, {\n key: \"deleteCache\",\n value: function deleteCache(key, lvl) {\n this.getCachesAt(lvl)[\"delete\"](key);\n }\n }, {\n key: \"delete\",\n value: function _delete(ele, lvl) {\n var key = this.getKey(ele);\n this.deleteCache(key, lvl);\n }\n }, {\n key: \"invalidateKey\",\n value: function invalidateKey(key) {\n var _this = this;\n this.lvls.forEach(function (lvl) {\n return _this.deleteCache(key, lvl);\n });\n }\n\n // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)\n }, {\n key: \"invalidate\",\n value: function invalidate(ele) {\n var id = ele.id();\n var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key)\n\n this.deleteKeyMappingFor(ele);\n var entireKeyInvalidated = this.doesEleInvalidateKey(ele);\n if (entireKeyInvalidated) {\n // clear mapping for current key\n this.invalidateKey(key);\n }\n return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;\n }\n }]);\n}();\n\nvar minTxrH = 25; // the size of the texture cache for small height eles (special case)\nvar txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up\nvar minLvl$1 = -4; // when scaling smaller than that we don't need to re-render\nvar maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful)\nvar maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used\nvar eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps\nvar defTxrWidth = 1024; // default/minimum texture width\nvar maxTxrW = 1024; // the maximum width of a texture\nvar maxTxrH = 1024; // the maximum height of a texture\nvar minUtility = 0.2; // if usage of texture is less than this, it is retired\nvar maxFullness = 0.8; // fullness of texture after which queue removal is checked\nvar maxFullnessChecks = 10; // dequeued after this many checks\nvar deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\nvar deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time\nvar deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\nvar deqFastCost$1 = 0.9; // % of frame time to be used when >60fps\nvar deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\nvar maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch\n\nvar getTxrReasons = {\n dequeue: 'dequeue',\n downscale: 'downscale',\n highQuality: 'highQuality'\n};\nvar initDefaults = defaults$g({\n getKey: null,\n doesEleInvalidateKey: falsify,\n drawElement: null,\n getBoundingBox: null,\n getRotationPoint: null,\n getRotationOffset: null,\n isVisible: trueify,\n allowEdgeTxrCaching: true,\n allowParentTxrCaching: true\n});\nvar ElementTextureCache = function ElementTextureCache(renderer, initOptions) {\n var self = this;\n self.renderer = renderer;\n self.onDequeues = [];\n var opts = initDefaults(initOptions);\n extend(self, opts);\n self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);\n self.setupDequeueing();\n};\nvar ETCp = ElementTextureCache.prototype;\nETCp.reasons = getTxrReasons;\n\n// the list of textures in which new subtextures for elements can be placed\nETCp.getTextureQueue = function (txrH) {\n var self = this;\n self.eleImgCaches = self.eleImgCaches || {};\n return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || [];\n};\n\n// the list of usused textures which can be recycled (in use in texture queue)\nETCp.getRetiredTextureQueue = function (txrH) {\n var self = this;\n var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {};\n var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];\n return rtxtrQ;\n};\n\n// queue of element draw requests at different scale levels\nETCp.getElementQueue = function () {\n var self = this;\n var q = self.eleCacheQueue = self.eleCacheQueue || new Heap(function (a, b) {\n return b.reqs - a.reqs;\n });\n return q;\n};\n\n// queue of element draw requests at different scale levels (element id lookup)\nETCp.getElementKeyToQueue = function () {\n var self = this;\n var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {};\n return k2q;\n};\nETCp.getElement = function (ele, bb, pxRatio, lvl, reason) {\n var self = this;\n var r = this.renderer;\n var zoom = r.cy.zoom();\n var lookup = this.lookup;\n if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {\n return null;\n }\n if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) {\n return null;\n }\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n }\n if (lvl < minLvl$1) {\n lvl = minLvl$1;\n } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {\n return null;\n }\n var scale = Math.pow(2, lvl);\n var eleScaledH = bb.h * scale;\n var eleScaledW = bb.w * scale;\n var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);\n if (!this.isVisible(ele, scaledLabelShown)) {\n return null;\n }\n var eleCache = lookup.get(ele, lvl);\n\n // if this get was on an unused/invalidated cache, then restore the texture usage metric\n if (eleCache && eleCache.invalidated) {\n eleCache.invalidated = false;\n eleCache.texture.invalidatedWidth -= eleCache.width;\n }\n if (eleCache) {\n return eleCache;\n }\n var txrH; // which texture height this ele belongs to\n\n if (eleScaledH <= minTxrH) {\n txrH = minTxrH;\n } else if (eleScaledH <= txrStepH) {\n txrH = txrStepH;\n } else {\n txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;\n }\n if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {\n return null; // caching large elements is not efficient\n }\n var txrQ = self.getTextureQueue(txrH);\n\n // first try the second last one in case it has space at the end\n var txr = txrQ[txrQ.length - 2];\n var addNewTxr = function addNewTxr() {\n return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW);\n };\n\n // try the last one if there is no second last one\n if (!txr) {\n txr = txrQ[txrQ.length - 1];\n }\n\n // if the last one doesn't exist, we need a first one\n if (!txr) {\n txr = addNewTxr();\n }\n\n // if there's no room in the current texture, we need a new one\n if (txr.width - txr.usedWidth < eleScaledW) {\n txr = addNewTxr();\n }\n var scalableFrom = function scalableFrom(otherCache) {\n return otherCache && otherCache.scaledLabelShown === scaledLabelShown;\n };\n var deqing = reason && reason === getTxrReasons.dequeue;\n var highQualityReq = reason && reason === getTxrReasons.highQuality;\n var downscaleReq = reason && reason === getTxrReasons.downscale;\n var higherCache; // the nearest cache with a higher level\n for (var l = lvl + 1; l <= maxLvl$1; l++) {\n var c = lookup.get(ele, l);\n if (c) {\n higherCache = c;\n break;\n }\n }\n var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;\n var downscale = function downscale() {\n txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);\n };\n\n // reset ele area in texture\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);\n if (scalableFrom(oneUpCache)) {\n // then we can relatively cheaply rescale the existing image w/o rerendering\n downscale();\n } else if (scalableFrom(higherCache)) {\n // then use the higher cache for now and queue the next level down\n // to cheaply scale towards the smaller level\n\n if (highQualityReq) {\n for (var _l = higherCache.level; _l > lvl; _l--) {\n oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);\n }\n downscale();\n } else {\n self.queueElement(ele, higherCache.level - 1);\n return higherCache;\n }\n } else {\n var lowerCache; // the nearest cache with a lower level\n if (!deqing && !highQualityReq && !downscaleReq) {\n for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {\n var _c = lookup.get(ele, _l2);\n if (_c) {\n lowerCache = _c;\n break;\n }\n }\n }\n if (scalableFrom(lowerCache)) {\n // then use the lower quality cache for now and queue the better one for later\n\n self.queueElement(ele, lvl);\n return lowerCache;\n }\n txr.context.translate(txr.usedWidth, 0);\n txr.context.scale(scale, scale);\n this.drawElement(txr.context, ele, bb, scaledLabelShown, false);\n txr.context.scale(1 / scale, 1 / scale);\n txr.context.translate(-txr.usedWidth, 0);\n }\n eleCache = {\n x: txr.usedWidth,\n texture: txr,\n level: lvl,\n scale: scale,\n width: eleScaledW,\n height: eleScaledH,\n scaledLabelShown: scaledLabelShown\n };\n txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);\n txr.eleCaches.push(eleCache);\n lookup.set(ele, lvl, eleCache);\n self.checkTextureFullness(txr);\n return eleCache;\n};\nETCp.invalidateElements = function (eles) {\n for (var i = 0; i < eles.length; i++) {\n this.invalidateElement(eles[i]);\n }\n};\nETCp.invalidateElement = function (ele) {\n var self = this;\n var lookup = self.lookup;\n var caches = [];\n var invalid = lookup.isInvalid(ele);\n if (!invalid) {\n return; // override the invalidation request if the element key has not changed\n }\n for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {\n var cache = lookup.getForCachedKey(ele, lvl);\n if (cache) {\n caches.push(cache);\n }\n }\n var noOtherElesUseCache = lookup.invalidate(ele);\n if (noOtherElesUseCache) {\n for (var i = 0; i < caches.length; i++) {\n var _cache = caches[i];\n var txr = _cache.texture;\n\n // remove space from the texture it belongs to\n txr.invalidatedWidth += _cache.width;\n\n // mark the cache as invalidated\n _cache.invalidated = true;\n\n // retire the texture if its utility is low\n self.checkTextureUtility(txr);\n }\n }\n\n // remove from queue since the old req was for the old state\n self.removeFromQueue(ele);\n};\nETCp.checkTextureUtility = function (txr) {\n // invalidate all entries in the cache if the cache size is small\n if (txr.invalidatedWidth >= minUtility * txr.width) {\n this.retireTexture(txr);\n }\n};\nETCp.checkTextureFullness = function (txr) {\n // if texture has been mostly filled and passed over several times, remove\n // it from the queue so we don't need to waste time looking at it to put new things\n\n var self = this;\n var txrQ = self.getTextureQueue(txr.height);\n if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {\n removeFromArray(txrQ, txr);\n } else {\n txr.fullnessChecks++;\n }\n};\nETCp.retireTexture = function (txr) {\n var self = this;\n var txrH = txr.height;\n var txrQ = self.getTextureQueue(txrH);\n var lookup = this.lookup;\n\n // retire the texture from the active / searchable queue:\n\n removeFromArray(txrQ, txr);\n txr.retired = true;\n\n // remove the refs from the eles to the caches:\n\n var eleCaches = txr.eleCaches;\n for (var i = 0; i < eleCaches.length; i++) {\n var eleCache = eleCaches[i];\n lookup.deleteCache(eleCache.key, eleCache.level);\n }\n clearArray(eleCaches);\n\n // add the texture to a retired queue so it can be recycled in future:\n\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n rtxtrQ.push(txr);\n};\nETCp.addTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var txr = {};\n txrQ.push(txr);\n txr.eleCaches = [];\n txr.height = txrH;\n txr.width = Math.max(defTxrWidth, minW);\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height);\n txr.context = txr.canvas.getContext('2d');\n return txr;\n};\nETCp.recycleTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n for (var i = 0; i < rtxtrQ.length; i++) {\n var txr = rtxtrQ[i];\n if (txr.width >= minW) {\n txr.retired = false;\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n clearArray(txr.eleCaches);\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(0, 0, txr.width, txr.height);\n removeFromArray(rtxtrQ, txr);\n txrQ.push(txr);\n return txr;\n }\n }\n};\nETCp.queueElement = function (ele, lvl) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var existingReq = k2q[key];\n if (existingReq) {\n // use the max lvl b/c in between lvls are cheap to make\n existingReq.level = Math.max(existingReq.level, lvl);\n existingReq.eles.merge(ele);\n existingReq.reqs++;\n q.updateItem(existingReq);\n } else {\n var req = {\n eles: ele.spawn().merge(ele),\n level: lvl,\n reqs: 1,\n key: key\n };\n q.push(req);\n k2q[key] = req;\n }\n};\nETCp.dequeue = function (pxRatio /*, extent*/) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var dequeued = [];\n var lookup = self.lookup;\n for (var i = 0; i < maxDeqSize$1; i++) {\n if (q.size() > 0) {\n var req = q.pop();\n var key = req.key;\n var ele = req.eles[0]; // all eles have the same key\n var cacheExists = lookup.hasCache(ele, req.level);\n\n // clear out the key to req lookup\n k2q[key] = null;\n\n // dequeueing isn't necessary with an existing cache\n if (cacheExists) {\n continue;\n }\n dequeued.push(req);\n var bb = self.getBoundingBox(ele);\n self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);\n } else {\n break;\n }\n }\n return dequeued;\n};\nETCp.removeFromQueue = function (ele) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var req = k2q[key];\n if (req != null) {\n if (req.eles.length === 1) {\n // remove if last ele in the req\n // bring to front of queue\n req.reqs = MAX_INT$1;\n q.updateItem(req);\n q.pop(); // remove from queue\n\n k2q[key] = null; // remove from lookup map\n } else {\n // otherwise just remove ele from req\n req.eles.unmerge(ele);\n }\n }\n};\nETCp.onDequeue = function (fn) {\n this.onDequeues.push(fn);\n};\nETCp.offDequeue = function (fn) {\n removeFromArray(this.onDequeues, fn);\n};\nETCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold$1,\n deqCost: deqCost$1,\n deqAvgCost: deqAvgCost$1,\n deqNoDrawCost: deqNoDrawCost$1,\n deqFastCost: deqFastCost$1,\n deq: function deq(self, pxRatio, extent) {\n return self.dequeue(pxRatio, extent);\n },\n onDeqd: function onDeqd(self, deqd) {\n for (var i = 0; i < self.onDequeues.length; i++) {\n var fn = self.onDequeues[i];\n fn(deqd);\n }\n },\n shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) {\n for (var i = 0; i < deqd.length; i++) {\n var eles = deqd[i].eles;\n for (var j = 0; j < eles.length; j++) {\n var bb = eles[j].boundingBox();\n if (boundingBoxesIntersect(bb, extent)) {\n return true;\n }\n }\n }\n return false;\n },\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.eleTxrDeq;\n }\n});\n\nvar defNumLayers = 1; // default number of layers to use\nvar minLvl = -4; // when scaling smaller than that we don't need to re-render\nvar maxLvl = 2; // when larger than this scale just render directly (caching is not helpful)\nvar maxZoom = 3.99; // beyond this zoom level, layered textures are not used\nvar deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\nvar refineEleDebounceTime = 50; // time to debounce sharper ele texture updates\nvar deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\nvar deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time\nvar deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\nvar deqFastCost = 0.9; // % of frame time to be used when >60fps\nvar maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch\nvar invalidThreshold = 250; // time threshold for disabling b/c of invalidations\nvar maxLayerArea = 4000 * 4000; // layers can't be bigger than this\nvar maxLayerDim = 32767; // maximum size for the width/height of layer canvases\nvar useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm)\n\n// var log = function(){ console.log.apply( console, arguments ); };\n\nvar LayeredTextureCache = function LayeredTextureCache(renderer) {\n var self = this;\n var r = self.renderer = renderer;\n var cy = r.cy;\n self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ]\n\n self.firstGet = true;\n self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;\n self.skipping = false;\n self.eleTxrDeqs = cy.collection();\n self.scheduleElementRefinement = debounce(function () {\n self.refineElementTextures(self.eleTxrDeqs);\n self.eleTxrDeqs.unmerge(self.eleTxrDeqs);\n }, refineEleDebounceTime);\n r.beforeRender(function (willDraw, now) {\n if (now - self.lastInvalidationTime <= invalidThreshold) {\n self.skipping = true;\n } else {\n self.skipping = false;\n }\n }, r.beforeRenderPriorities.lyrTxrSkip);\n var qSort = function qSort(a, b) {\n return b.reqs - a.reqs;\n };\n self.layersQueue = new Heap(qSort);\n self.setupDequeueing();\n};\nvar LTCp = LayeredTextureCache.prototype;\nvar layerIdPool = 0;\nvar MAX_INT = Math.pow(2, 53) - 1;\nLTCp.makeLayer = function (bb, lvl) {\n var scale = Math.pow(2, lvl);\n var w = Math.ceil(bb.w * scale);\n var h = Math.ceil(bb.h * scale);\n var canvas = this.renderer.makeOffscreenCanvas(w, h);\n var layer = {\n id: layerIdPool = ++layerIdPool % MAX_INT,\n bb: bb,\n level: lvl,\n width: w,\n height: h,\n canvas: canvas,\n context: canvas.getContext('2d'),\n eles: [],\n elesQueue: [],\n reqs: 0\n };\n\n // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level);\n\n var cxt = layer.context;\n var dx = -layer.bb.x1;\n var dy = -layer.bb.y1;\n\n // do the transform on creation to save cycles (it's the same for all eles)\n cxt.scale(scale, scale);\n cxt.translate(dx, dy);\n return layer;\n};\nLTCp.getLayers = function (eles, pxRatio, lvl) {\n var self = this;\n var r = self.renderer;\n var cy = r.cy;\n var zoom = cy.zoom();\n var firstGet = self.firstGet;\n self.firstGet = false;\n\n // log('--\\nget layers with %s eles', eles.length);\n //log eles.map(function(ele){ return ele.id() }) );\n\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n if (lvl < minLvl) {\n lvl = minLvl;\n } else if (zoom >= maxZoom || lvl > maxLvl) {\n return null;\n }\n }\n self.validateLayersElesOrdering(lvl, eles);\n var layersByLvl = self.layersByLevel;\n var scale = Math.pow(2, lvl);\n var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];\n var bb;\n var lvlComplete = self.levelIsComplete(lvl, eles);\n var tmpLayers;\n var checkTempLevels = function checkTempLevels() {\n var canUseAsTmpLvl = function canUseAsTmpLvl(l) {\n self.validateLayersElesOrdering(l, eles);\n if (self.levelIsComplete(l, eles)) {\n tmpLayers = layersByLvl[l];\n return true;\n }\n };\n var checkLvls = function checkLvls(dir) {\n if (tmpLayers) {\n return;\n }\n for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {\n if (canUseAsTmpLvl(l)) {\n break;\n }\n }\n };\n checkLvls(1);\n checkLvls(-1);\n\n // remove the invalid layers; they will be replaced as needed later in this function\n for (var i = layers.length - 1; i >= 0; i--) {\n var layer = layers[i];\n if (layer.invalid) {\n removeFromArray(layers, layer);\n }\n }\n };\n if (!lvlComplete) {\n // if the current level is incomplete, then use the closest, best quality layerset temporarily\n // and later queue the current layerset so we can get the proper quality level soon\n\n checkTempLevels();\n } else {\n // log('level complete, using existing layers\\n--');\n return layers;\n }\n var getBb = function getBb() {\n if (!bb) {\n bb = makeBoundingBox();\n for (var i = 0; i < eles.length; i++) {\n updateBoundingBox(bb, eles[i].boundingBox());\n }\n }\n return bb;\n };\n var makeLayer = function makeLayer(opts) {\n opts = opts || {};\n var after = opts.after;\n getBb();\n var w = Math.ceil(bb.w * scale);\n var h = Math.ceil(bb.h * scale);\n if (w > maxLayerDim || h > maxLayerDim) {\n return null;\n }\n var area = w * h;\n if (area > maxLayerArea) {\n return null;\n }\n var layer = self.makeLayer(bb, lvl);\n if (after != null) {\n var index = layers.indexOf(after) + 1;\n layers.splice(index, 0, layer);\n } else if (opts.insert === undefined || opts.insert) {\n // no after specified => first layer made so put at start\n layers.unshift(layer);\n }\n\n // if( tmpLayers ){\n //self.queueLayer( layer );\n // }\n\n return layer;\n };\n if (self.skipping && !firstGet) {\n // log('skip layers');\n return null;\n }\n\n // log('do layers');\n\n var layer = null;\n var maxElesPerLayer = eles.length / defNumLayers;\n var allowLazyQueueing = !firstGet;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n\n // log('look at ele', ele.id());\n\n var existingLayer = caches[lvl];\n if (existingLayer) {\n // reuse layer for later eles\n // log('reuse layer for', ele.id());\n layer = existingLayer;\n continue;\n }\n if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {\n // log('make new layer for ele %s', ele.id());\n\n layer = makeLayer({\n insert: true,\n after: layer\n });\n\n // if now layer can be built then we can't use layers at this level\n if (!layer) {\n return null;\n }\n\n // log('new layer with id %s', layer.id);\n }\n if (tmpLayers || allowLazyQueueing) {\n // log('queue ele %s in layer %s', ele.id(), layer.id);\n self.queueLayer(layer, ele);\n } else {\n // log('draw ele %s in layer %s', ele.id(), layer.id);\n self.drawEleInLayer(layer, ele, lvl, pxRatio);\n }\n layer.eles.push(ele);\n caches[lvl] = layer;\n }\n\n // log('--');\n\n if (tmpLayers) {\n // then we only queued the current layerset and can't draw it yet\n return tmpLayers;\n }\n if (allowLazyQueueing) {\n // log('lazy queue level', lvl);\n return null;\n }\n return layers;\n};\n\n// a layer may want to use an ele cache of a higher level to avoid blurriness\n// so the layer level might not equal the ele level\nLTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) {\n return lvl;\n};\nLTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) {\n var self = this;\n var r = this.renderer;\n var context = layer.context;\n var bb = ele.boundingBox();\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n lvl = self.getEleLevelForLayerLevel(lvl, pxRatio);\n {\n r.setImgSmoothing(context, false);\n }\n {\n r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);\n }\n {\n r.setImgSmoothing(context, true);\n }\n};\nLTCp.levelIsComplete = function (lvl, eles) {\n var self = this;\n var layers = self.layersByLevel[lvl];\n if (!layers || layers.length === 0) {\n return false;\n }\n var numElesInLayers = 0;\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n\n // if there are any eles needed to be drawn yet, the level is not complete\n if (layer.reqs > 0) {\n return false;\n }\n\n // if the layer is invalid, the level is not complete\n if (layer.invalid) {\n return false;\n }\n numElesInLayers += layer.eles.length;\n }\n\n // we should have exactly the number of eles passed in to be complete\n if (numElesInLayers !== eles.length) {\n return false;\n }\n return true;\n};\nLTCp.validateLayersElesOrdering = function (lvl, eles) {\n var layers = this.layersByLevel[lvl];\n if (!layers) {\n return;\n }\n\n // if in a layer the eles are not in the same order, then the layer is invalid\n // (i.e. there is an ele in between the eles in the layer)\n\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var offset = -1;\n\n // find the offset\n for (var j = 0; j < eles.length; j++) {\n if (layer.eles[0] === eles[j]) {\n offset = j;\n break;\n }\n }\n if (offset < 0) {\n // then the layer has nonexistent elements and is invalid\n this.invalidateLayer(layer);\n continue;\n }\n\n // the eles in the layer must be in the same continuous order, else the layer is invalid\n\n var o = offset;\n for (var j = 0; j < layer.eles.length; j++) {\n if (layer.eles[j] !== eles[o + j]) {\n // log('invalidate based on ordering', layer.id);\n\n this.invalidateLayer(layer);\n break;\n }\n }\n }\n};\nLTCp.updateElementsInLayers = function (eles, update) {\n var self = this;\n var isEles = element(eles[0]);\n\n // collect udpated elements (cascaded from the layers) and update each\n // layer itself along the way\n for (var i = 0; i < eles.length; i++) {\n var req = isEles ? null : eles[i];\n var ele = isEles ? eles[i] : eles[i].ele;\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n for (var l = minLvl; l <= maxLvl; l++) {\n var layer = caches[l];\n if (!layer) {\n continue;\n }\n\n // if update is a request from the ele cache, then it affects only\n // the matching level\n if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) {\n continue;\n }\n update(layer, ele, req);\n }\n }\n};\nLTCp.haveLayers = function () {\n var self = this;\n var haveLayers = false;\n for (var l = minLvl; l <= maxLvl; l++) {\n var layers = self.layersByLevel[l];\n if (layers && layers.length > 0) {\n haveLayers = true;\n break;\n }\n }\n return haveLayers;\n};\nLTCp.invalidateElements = function (eles) {\n var self = this;\n if (eles.length === 0) {\n return;\n }\n self.lastInvalidationTime = performanceNow();\n\n // log('update invalidate layer time from eles');\n\n if (eles.length === 0 || !self.haveLayers()) {\n return;\n }\n self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {\n self.invalidateLayer(layer);\n });\n};\nLTCp.invalidateLayer = function (layer) {\n // log('update invalidate layer time');\n\n this.lastInvalidationTime = performanceNow();\n if (layer.invalid) {\n return;\n } // save cycles\n\n var lvl = layer.level;\n var eles = layer.eles;\n var layers = this.layersByLevel[lvl];\n\n // log('invalidate layer', layer.id );\n\n removeFromArray(layers, layer);\n // layer.eles = [];\n\n layer.elesQueue = [];\n layer.invalid = true;\n if (layer.replacement) {\n layer.replacement.invalid = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var caches = eles[i]._private.rscratch.imgLayerCaches;\n if (caches) {\n caches[lvl] = null;\n }\n }\n};\nLTCp.refineElementTextures = function (eles) {\n var self = this;\n\n // log('refine', eles.length);\n\n self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {\n var rLyr = layer.replacement;\n if (!rLyr) {\n rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level);\n rLyr.replaces = layer;\n rLyr.eles = layer.eles;\n\n // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level);\n }\n if (!rLyr.reqs) {\n for (var i = 0; i < rLyr.eles.length; i++) {\n self.queueLayer(rLyr, rLyr.eles[i]);\n }\n\n // log('queue replacement layer refinement', rLyr.id);\n }\n });\n};\nLTCp.enqueueElementRefinement = function (ele) {\n this.eleTxrDeqs.merge(ele);\n this.scheduleElementRefinement();\n};\nLTCp.queueLayer = function (layer, ele) {\n var self = this;\n var q = self.layersQueue;\n var elesQ = layer.elesQueue;\n var hasId = elesQ.hasId = elesQ.hasId || {};\n\n // if a layer is going to be replaced, queuing is a waste of time\n if (layer.replacement) {\n return;\n }\n if (ele) {\n if (hasId[ele.id()]) {\n return;\n }\n elesQ.push(ele);\n hasId[ele.id()] = true;\n }\n if (layer.reqs) {\n layer.reqs++;\n q.updateItem(layer);\n } else {\n layer.reqs = 1;\n q.push(layer);\n }\n};\nLTCp.dequeue = function (pxRatio) {\n var self = this;\n var q = self.layersQueue;\n var deqd = [];\n var eleDeqs = 0;\n while (eleDeqs < maxDeqSize) {\n if (q.size() === 0) {\n break;\n }\n var layer = q.peek();\n\n // if a layer has been or will be replaced, then don't waste time with it\n if (layer.replacement) {\n // log('layer %s in queue skipped b/c it already has a replacement', layer.id);\n q.pop();\n continue;\n }\n\n // if this is a replacement layer that has been superceded, then forget it\n if (layer.replaces && layer !== layer.replaces.replacement) {\n // log('layer is no longer the most uptodate replacement; dequeued', layer.id)\n q.pop();\n continue;\n }\n if (layer.invalid) {\n // log('replacement layer %s is invalid; dequeued', layer.id);\n q.pop();\n continue;\n }\n var ele = layer.elesQueue.shift();\n if (ele) {\n // log('dequeue layer %s', layer.id);\n\n self.drawEleInLayer(layer, ele, layer.level, pxRatio);\n eleDeqs++;\n }\n if (deqd.length === 0) {\n // we need only one entry in deqd to queue redrawing etc\n deqd.push(true);\n }\n\n // if the layer has all its eles done, then remove from the queue\n if (layer.elesQueue.length === 0) {\n q.pop();\n layer.reqs = 0;\n\n // log('dequeue of layer %s complete', layer.id);\n\n // when a replacement layer is dequeued, it replaces the old layer in the level\n if (layer.replaces) {\n self.applyLayerReplacement(layer);\n }\n self.requestRedraw();\n }\n }\n return deqd;\n};\nLTCp.applyLayerReplacement = function (layer) {\n var self = this;\n var layersInLevel = self.layersByLevel[layer.level];\n var replaced = layer.replaces;\n var index = layersInLevel.indexOf(replaced);\n\n // if the replaced layer is not in the active list for the level, then replacing\n // refs would be a mistake (i.e. overwriting the true active layer)\n if (index < 0 || replaced.invalid) {\n // log('replacement layer would have no effect', layer.id);\n return;\n }\n layersInLevel[index] = layer; // replace level ref\n\n // replace refs in eles\n for (var i = 0; i < layer.eles.length; i++) {\n var _p = layer.eles[i]._private;\n var cache = _p.imgLayerCaches = _p.imgLayerCaches || {};\n if (cache) {\n cache[layer.level] = layer;\n }\n }\n\n // log('apply replacement layer %s over %s', layer.id, replaced.id);\n\n self.requestRedraw();\n};\nLTCp.requestRedraw = debounce(function () {\n var r = this.renderer;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n}, 100);\nLTCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold,\n deqCost: deqCost,\n deqAvgCost: deqAvgCost,\n deqNoDrawCost: deqNoDrawCost,\n deqFastCost: deqFastCost,\n deq: function deq(self, pxRatio) {\n return self.dequeue(pxRatio);\n },\n onDeqd: noop$1,\n shouldRedraw: trueify,\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.lyrTxrDeq;\n }\n});\n\nvar CRp$b = {};\nvar impl;\nfunction polygon(context, points) {\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n context.lineTo(pt.x, pt.y);\n }\n}\nfunction triangleBackcurve(context, points, controlPoint) {\n var firstPt;\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n if (i === 0) {\n firstPt = pt;\n }\n context.lineTo(pt.x, pt.y);\n }\n context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);\n}\nfunction triangleTee(context, trianglePoints, teePoints) {\n if (context.beginPath) {\n context.beginPath();\n }\n var triPts = trianglePoints;\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n var teePts = teePoints;\n var firstTeePt = teePoints[0];\n context.moveTo(firstTeePt.x, firstTeePt.y);\n for (var i = 1; i < teePts.length; i++) {\n var pt = teePts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n}\nfunction circleTriangle(context, trianglePoints, rx, ry, r) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n var triPts = trianglePoints;\n var firstTrPt = triPts[0];\n context.moveTo(firstTrPt.x, firstTrPt.y);\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n}\nfunction circle$1(context, rx, ry, r) {\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n}\nCRp$b.arrowShapeImpl = function (name) {\n return (impl || (impl = {\n 'polygon': polygon,\n 'triangle-backcurve': triangleBackcurve,\n 'triangle-tee': triangleTee,\n 'circle-triangle': circleTriangle,\n 'triangle-cross': triangleTee,\n 'circle': circle$1\n }))[name];\n};\n\nvar CRp$a = {};\nCRp$a.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {\n var r = this;\n if (ele.isNode()) {\n r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n } else {\n r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n }\n};\nCRp$a.drawElementOverlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeOverlay(context, ele);\n } else {\n r.drawEdgeOverlay(context, ele);\n }\n};\nCRp$a.drawElementUnderlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeUnderlay(context, ele);\n } else {\n r.drawEdgeUnderlay(context, ele);\n }\n};\nCRp$a.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) {\n var r = this;\n var bb = eleTxrCache.getBoundingBox(ele);\n if (bb.w === 0 || bb.h === 0) {\n return;\n } // ignore zero size case\n\n var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);\n if (eleCache != null) {\n var opacity = getOpacity(r, ele);\n if (opacity === 0) {\n return;\n }\n var theta = getRotation(r, ele);\n var x1 = bb.x1,\n y1 = bb.y1,\n w = bb.w,\n h = bb.h;\n var x, y, sx, sy, smooth;\n if (theta !== 0) {\n var rotPt = eleTxrCache.getRotationPoint(ele);\n sx = rotPt.x;\n sy = rotPt.y;\n context.translate(sx, sy);\n context.rotate(theta);\n smooth = r.getImgSmoothing(context);\n if (!smooth) {\n r.setImgSmoothing(context, true);\n }\n var off = eleTxrCache.getRotationOffset(ele);\n x = off.x;\n y = off.y;\n } else {\n x = x1;\n y = y1;\n }\n var oldGlobalAlpha;\n if (opacity !== 1) {\n oldGlobalAlpha = context.globalAlpha;\n context.globalAlpha = oldGlobalAlpha * opacity;\n }\n context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h);\n if (opacity !== 1) {\n context.globalAlpha = oldGlobalAlpha;\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-sx, -sy);\n if (!smooth) {\n r.setImgSmoothing(context, false);\n }\n }\n } else {\n eleTxrCache.drawElement(context, ele); // direct draw fallback\n }\n};\nvar getZeroRotation = function getZeroRotation() {\n return 0;\n};\nvar getLabelRotation = function getLabelRotation(r, ele) {\n return r.getTextAngle(ele, null);\n};\nvar getSourceLabelRotation = function getSourceLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'source');\n};\nvar getTargetLabelRotation = function getTargetLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'target');\n};\nvar getOpacity = function getOpacity(r, ele) {\n return ele.effectiveOpacity();\n};\nvar getTextOpacity = function getTextOpacity(e, ele) {\n return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity();\n};\nCRp$a.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) {\n var r = this;\n var _r$data = r.data,\n eleTxrCache = _r$data.eleTxrCache,\n lblTxrCache = _r$data.lblTxrCache,\n slbTxrCache = _r$data.slbTxrCache,\n tlbTxrCache = _r$data.tlbTxrCache;\n var bb = ele.boundingBox();\n var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n if (!extent || boundingBoxesIntersect(bb, extent)) {\n var isEdge = ele.isEdge();\n var badLine = ele.element()._private.rscratch.badLine;\n r.drawElementUnderlay(context, ele);\n r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);\n if (!isEdge || !badLine) {\n r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);\n }\n if (isEdge && !badLine) {\n r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);\n r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);\n }\n r.drawElementOverlay(context, ele);\n }\n};\nCRp$a.drawElements = function (context, eles) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawElement(context, ele);\n }\n};\nCRp$a.drawCachedElements = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n};\nCRp$a.drawCachedNodes = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n};\nCRp$a.drawLayeredElements = function (context, eles, pxRatio, extent) {\n var r = this;\n var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);\n if (layers) {\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var bb = layer.bb;\n if (bb.w === 0 || bb.h === 0) {\n continue;\n }\n context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);\n }\n } else {\n // fall back on plain caching if no layers\n r.drawCachedElements(context, eles, pxRatio, extent);\n }\n};\n\nvar CRp$9 = {};\nCRp$9.drawEdge = function (context, edge, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var rs = edge._private.rscratch;\n if (shouldDrawOpacity && !edge.visible()) {\n return;\n }\n\n // if bezier ctrl pts can not be calculated, then die\n if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {\n // isNaN in case edge is impossible and browser bugs (e.g. safari)\n return;\n }\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1;\n var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1;\n var curveStyle = edge.pstyle('curve-style').value;\n var lineStyle = edge.pstyle('line-style').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var lineCap = edge.pstyle('line-cap').value;\n var lineOutlineWidth = edge.pstyle('line-outline-width').value;\n var lineOutlineColor = edge.pstyle('line-outline-color').value;\n var effectiveLineOpacity = opacity * lineOpacity;\n // separate arrow opacity would require arrow-opacity property\n var effectiveArrowOpacity = opacity * lineOpacity;\n var drawLine = function drawLine() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n if (curveStyle === 'straight-triangle') {\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n context.lineWidth = edgeWidth;\n context.lineCap = lineCap;\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n var drawLineOutline = function drawLineOutline() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n context.lineWidth = edgeWidth + lineOutlineWidth;\n context.lineCap = lineCap;\n if (lineOutlineWidth > 0) {\n r.colorStrokeStyle(context, lineOutlineColor[0], lineOutlineColor[1], lineOutlineColor[2], strokeOpacity);\n } else {\n // do not draw any lineOutline\n context.lineCap = 'butt'; // reset for other drawing functions\n return;\n }\n if (curveStyle === 'straight-triangle') {\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n var drawOverlay = function drawOverlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeOverlay(context, edge);\n };\n var drawUnderlay = function drawUnderlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeUnderlay(context, edge);\n };\n var drawArrows = function drawArrows() {\n var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity;\n r.drawArrowheads(context, edge, arrowOpacity);\n };\n var drawText = function drawText() {\n r.drawElementText(context, edge, null, drawLabel);\n };\n context.lineJoin = 'round';\n var ghost = edge.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = edge.pstyle('ghost-offset-x').pfValue;\n var gy = edge.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = edge.pstyle('ghost-opacity').value;\n var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;\n context.translate(gx, gy);\n drawLine(effectiveGhostOpacity);\n drawArrows(effectiveGhostOpacity);\n context.translate(-gx, -gy);\n } else {\n drawLineOutline();\n }\n drawUnderlay();\n drawLine();\n drawArrows();\n drawOverlay();\n drawText();\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nvar drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, edge) {\n if (!edge.visible()) {\n return;\n }\n var opacity = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n if (opacity === 0) {\n return;\n }\n var r = this;\n var usePaths = r.usePaths();\n var rs = edge._private.rscratch;\n var padding = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var width = 2 * padding;\n var color = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n context.lineWidth = width;\n if (rs.edgeType === 'self' && !usePaths) {\n context.lineCap = 'butt';\n } else {\n context.lineCap = 'round';\n }\n r.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n r.drawEdgePath(edge, context, rs.allpts, 'solid');\n };\n};\nCRp$9.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay');\nCRp$9.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay');\nCRp$9.drawEdgePath = function (edge, context, pts, type) {\n var rs = edge._private.rscratch;\n var canvasCxt = context;\n var path;\n var pathCacheHit = false;\n var usePaths = this.usePaths();\n var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue;\n var lineDashOffset = edge.pstyle('line-dash-offset').pfValue;\n if (usePaths) {\n var pathCacheKey = pts.join('$');\n var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;\n if (keyMatches) {\n path = context = rs.pathCache;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n rs.pathCacheKey = pathCacheKey;\n rs.pathCache = path;\n }\n }\n if (canvasCxt.setLineDash) {\n // for very outofdate browsers\n switch (type) {\n case 'dotted':\n canvasCxt.setLineDash([1, 1]);\n break;\n case 'dashed':\n canvasCxt.setLineDash(lineDashPattern);\n canvasCxt.lineDashOffset = lineDashOffset;\n break;\n case 'solid':\n canvasCxt.setLineDash([]);\n break;\n }\n }\n if (!pathCacheHit && !rs.badLine) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(pts[0], pts[1]);\n switch (rs.edgeType) {\n case 'bezier':\n case 'self':\n case 'compound':\n case 'multibezier':\n for (var i = 2; i + 3 < pts.length; i += 4) {\n context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]);\n }\n break;\n case 'straight':\n case 'haystack':\n for (var _i = 2; _i + 1 < pts.length; _i += 2) {\n context.lineTo(pts[_i], pts[_i + 1]);\n }\n break;\n case 'segments':\n if (rs.isRound) {\n var _iterator = _createForOfIteratorHelper(rs.roundCorners),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var corner = _step.value;\n drawPreparedRoundCorner(context, corner);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n context.lineTo(pts[pts.length - 2], pts[pts.length - 1]);\n } else {\n for (var _i2 = 2; _i2 + 1 < pts.length; _i2 += 2) {\n context.lineTo(pts[_i2], pts[_i2 + 1]);\n }\n }\n break;\n }\n }\n context = canvasCxt;\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n\n // reset any line dashes\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n};\nCRp$9.drawEdgeTrianglePath = function (edge, context, pts) {\n // use line stroke style for triangle fill style\n context.fillStyle = context.strokeStyle;\n var edgeWidth = edge.pstyle('width').pfValue;\n for (var i = 0; i + 1 < pts.length; i += 2) {\n var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]];\n var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);\n var normal = [vector[1] / length, -vector[0] / length];\n var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];\n context.beginPath();\n context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]);\n context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]);\n context.lineTo(pts[i + 2], pts[i + 3]);\n context.closePath();\n context.fill();\n }\n};\nCRp$9.drawArrowheads = function (context, edge, opacity) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);\n }\n this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);\n this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);\n }\n};\nCRp$9.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) {\n if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) {\n return;\n }\n var self = this;\n var arrowShape = edge.pstyle(prefix + '-arrow-shape').value;\n if (arrowShape === 'none') {\n return;\n }\n var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled';\n var arrowFill = edge.pstyle(prefix + '-arrow-fill').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var pArrowWidth = edge.pstyle(prefix + '-arrow-width');\n var arrowWidth = pArrowWidth.value === 'match-line' ? edgeWidth : pArrowWidth.pfValue;\n if (pArrowWidth.units === '%') arrowWidth *= edgeWidth;\n var edgeOpacity = edge.pstyle('opacity').value;\n if (opacity === undefined) {\n opacity = edgeOpacity;\n }\n var gco = context.globalCompositeOperation;\n if (opacity !== 1 || arrowFill === 'hollow') {\n // then extra clear is needed\n context.globalCompositeOperation = 'destination-out';\n self.colorFillStyle(context, 255, 255, 255, 1);\n self.colorStrokeStyle(context, 255, 255, 255, 1);\n self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n context.globalCompositeOperation = gco;\n } // otherwise, the opaque arrow clears it for free :)\n\n var color = edge.pstyle(prefix + '-arrow-color').value;\n self.colorFillStyle(context, color[0], color[1], color[2], opacity);\n self.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n};\nCRp$9.drawArrowShape = function (edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) {\n var r = this;\n var usePaths = this.usePaths() && shape !== 'triangle-cross';\n var pathCacheHit = false;\n var path;\n var canvasContext = context;\n var translation = {\n x: x,\n y: y\n };\n var scale = edge.pstyle('arrow-scale').value;\n var size = this.getArrowWidth(edgeWidth, scale);\n var shapeImpl = r.arrowShapes[shape];\n if (usePaths) {\n var cache = r.arrowPathCache = r.arrowPathCache || [];\n var key = hashString(shape);\n var cachedPath = cache[key];\n if (cachedPath != null) {\n path = context = cachedPath;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n cache[key] = path;\n }\n }\n if (!pathCacheHit) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (usePaths) {\n // store in the path cache with values easily manipulated later\n shapeImpl.draw(context, 1, 0, {\n x: 0,\n y: 0\n }, 1);\n } else {\n shapeImpl.draw(context, size, angle, translation, edgeWidth);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n context = canvasContext;\n if (usePaths) {\n // set transform to arrow position/orientation\n context.translate(x, y);\n context.rotate(angle);\n context.scale(size, size);\n }\n if (fill === 'filled' || fill === 'both') {\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n if (fill === 'hollow' || fill === 'both') {\n context.lineWidth = shapeWidth / (usePaths ? size : 1);\n context.lineJoin = 'miter';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n }\n if (usePaths) {\n // reset transform by applying inverse\n context.scale(1 / size, 1 / size);\n context.rotate(-angle);\n context.translate(-x, -y);\n }\n};\n\nvar CRp$8 = {};\nCRp$8.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) {\n // detect problematic cases for old browsers with bad images (cheaper than try-catch)\n if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) {\n return;\n }\n try {\n context.drawImage(img, ix, iy, iw, ih, x, y, w, h);\n } catch (e) {\n warn(e);\n }\n};\nCRp$8.drawInscribedImage = function (context, img, node, index, nodeOpacity) {\n var r = this;\n var pos = node.position();\n var nodeX = pos.x;\n var nodeY = pos.y;\n var styleObj = node.cy().style();\n var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);\n var fit = getIndexedStyle(node, 'background-fit', 'value', index);\n var repeat = getIndexedStyle(node, 'background-repeat', 'value', index);\n var nodeW = node.width();\n var nodeH = node.height();\n var paddingX2 = node.padding() * 2;\n var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var rs = node._private.rscratch;\n var clip = getIndexedStyle(node, 'background-clip', 'value', index);\n var shouldClip = clip === 'node';\n var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity;\n var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index);\n var cornerRadius = node.pstyle('corner-radius').value;\n if (cornerRadius !== 'auto') cornerRadius = node.pstyle('corner-radius').pfValue;\n var imgW = img.width || img.cachedW;\n var imgH = img.height || img.cachedH;\n\n // workaround for broken browsers like ie\n if (null == imgW || null == imgH) {\n document.body.appendChild(img); // eslint-disable-line no-undef\n\n imgW = img.cachedW = img.width || img.offsetWidth;\n imgH = img.cachedH = img.height || img.offsetHeight;\n document.body.removeChild(img); // eslint-disable-line no-undef\n }\n var w = imgW;\n var h = imgH;\n if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-width', 'units', index) === '%') {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW;\n } else {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index);\n }\n }\n if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-height', 'units', index) === '%') {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH;\n } else {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index);\n }\n }\n if (w === 0 || h === 0) {\n return; // no point in drawing empty image (and chrome is broken in this case)\n }\n if (fit === 'contain') {\n var scale = Math.min(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n } else if (fit === 'cover') {\n var scale = Math.max(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n }\n var x = nodeX - nodeTW / 2; // left\n var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index);\n var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index);\n if (posXUnits === '%') {\n x += (nodeTW - w) * posXPfVal;\n } else {\n x += posXPfVal;\n }\n var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index);\n var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index);\n if (offXUnits === '%') {\n x += (nodeTW - w) * offXPfVal;\n } else {\n x += offXPfVal;\n }\n var y = nodeY - nodeTH / 2; // top\n var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index);\n var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index);\n if (posYUnits === '%') {\n y += (nodeTH - h) * posYPfVal;\n } else {\n y += posYPfVal;\n }\n var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index);\n var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index);\n if (offYUnits === '%') {\n y += (nodeTH - h) * offYPfVal;\n } else {\n y += offYPfVal;\n }\n if (rs.pathCache) {\n x -= nodeX;\n y -= nodeY;\n nodeX = 0;\n nodeY = 0;\n }\n var gAlpha = context.globalAlpha;\n context.globalAlpha = imgOpacity;\n var smoothingEnabled = r.getImgSmoothing(context);\n var isSmoothingSwitched = false;\n if (smooth === 'no' && smoothingEnabled) {\n r.setImgSmoothing(context, false);\n isSmoothingSwitched = true;\n } else if (smooth === 'yes' && !smoothingEnabled) {\n r.setImgSmoothing(context, true);\n isSmoothingSwitched = true;\n }\n if (repeat === 'no-repeat') {\n if (shouldClip) {\n context.save();\n if (rs.pathCache) {\n context.clip(rs.pathCache);\n } else {\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);\n context.clip();\n }\n }\n r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h);\n if (shouldClip) {\n context.restore();\n }\n } else {\n var pattern = context.createPattern(img, repeat);\n context.fillStyle = pattern;\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH, cornerRadius, rs);\n context.translate(x, y);\n context.fill();\n context.translate(-x, -y);\n }\n context.globalAlpha = gAlpha;\n if (isSmoothingSwitched) {\n r.setImgSmoothing(context, smoothingEnabled);\n }\n};\n\nvar CRp$7 = {};\nCRp$7.eleTextBiggerThanMin = function (ele, scale) {\n if (!scale) {\n var zoom = ele.cy().zoom();\n var pxRatio = this.getPixelRatio();\n var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level\n\n scale = Math.pow(2, lvl);\n }\n var computedSize = ele.pstyle('font-size').pfValue * scale;\n var minSize = ele.pstyle('min-zoomed-font-size').pfValue;\n if (computedSize < minSize) {\n return false;\n }\n return true;\n};\nCRp$7.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) {\n var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n if (force == null) {\n if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {\n return;\n }\n } else if (force === false) {\n return;\n }\n if (ele.isNode()) {\n var label = ele.pstyle('label');\n if (!label || !label.value) {\n return;\n }\n var justification = r.getLabelJustification(ele);\n context.textAlign = justification;\n context.textBaseline = 'bottom';\n } else {\n var badLine = ele.element()._private.rscratch.badLine;\n var _label = ele.pstyle('label');\n var srcLabel = ele.pstyle('source-label');\n var tgtLabel = ele.pstyle('target-label');\n if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {\n return;\n }\n context.textAlign = 'center';\n context.textBaseline = 'bottom';\n }\n var applyRotation = !shiftToOriginWithBb;\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n if (prefix == null) {\n r.drawText(context, ele, null, applyRotation, useEleOpacity);\n if (ele.isEdge()) {\n r.drawText(context, ele, 'source', applyRotation, useEleOpacity);\n r.drawText(context, ele, 'target', applyRotation, useEleOpacity);\n }\n } else {\n r.drawText(context, ele, prefix, applyRotation, useEleOpacity);\n }\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nCRp$7.getFontCache = function (context) {\n var cache;\n this.fontCaches = this.fontCaches || [];\n for (var i = 0; i < this.fontCaches.length; i++) {\n cache = this.fontCaches[i];\n if (cache.context === context) {\n return cache;\n }\n }\n cache = {\n context: context\n };\n this.fontCaches.push(cache);\n return cache;\n};\n\n// set up canvas context with font\n// returns transformed text string\nCRp$7.setupTextStyle = function (context, ele) {\n var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // Font style\n var labelStyle = ele.pstyle('font-style').strValue;\n var labelSize = ele.pstyle('font-size').pfValue + 'px';\n var labelFamily = ele.pstyle('font-family').strValue;\n var labelWeight = ele.pstyle('font-weight').strValue;\n var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1;\n var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity;\n var color = ele.pstyle('color').value;\n var outlineColor = ele.pstyle('text-outline-color').value;\n context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily;\n context.lineJoin = 'round'; // so text outlines aren't jagged\n\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);\n};\nfunction circle(ctx, x, y, width, height) {\n var diameter = Math.min(width, height);\n var radius = diameter / 2;\n var centerX = x + width / 2;\n var centerY = y + height / 2;\n ctx.beginPath();\n ctx.arc(centerX, centerY, radius, 0, Math.PI * 2);\n ctx.closePath();\n}\nfunction roundRect(ctx, x, y, width, height) {\n var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5;\n var r = Math.min(radius, width / 2, height / 2); // prevent overflow\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + width - r, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + r);\n ctx.lineTo(x + width, y + height - r);\n ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height);\n ctx.lineTo(x + r, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - r);\n ctx.lineTo(x, y + r);\n ctx.quadraticCurveTo(x, y, x + r, y);\n ctx.closePath();\n}\nCRp$7.getTextAngle = function (ele, prefix) {\n var theta;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var pdash = prefix ? prefix + '-' : '';\n var rotation = ele.pstyle(pdash + 'text-rotation');\n if (rotation.strValue === 'autorotate') {\n var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix);\n theta = ele.isEdge() ? textAngle : 0;\n } else if (rotation.strValue === 'none') {\n theta = 0;\n } else {\n theta = rotation.pfValue;\n }\n return theta;\n};\nCRp$7.drawText = function (context, ele, prefix) {\n var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;\n if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) {\n return;\n }\n\n // use 'main' as an alias for the main label (i.e. null prefix)\n if (prefix === 'main') {\n prefix = null;\n }\n var textX = getPrefixedProperty(rscratch, 'labelX', prefix);\n var textY = getPrefixedProperty(rscratch, 'labelY', prefix);\n var orgTextX, orgTextY; // used for rotation\n var text = this.getLabelText(ele, prefix);\n if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) {\n this.setupTextStyle(context, ele, useEleOpacity);\n var pdash = prefix ? prefix + '-' : '';\n var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix);\n var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix);\n var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var halign = ele.pstyle('text-halign').value;\n var valign = ele.pstyle('text-valign').value;\n if (isEdge) {\n halign = 'center';\n valign = 'center';\n }\n textX += marginX;\n textY += marginY;\n var theta;\n if (!applyRotation) {\n theta = 0;\n } else {\n theta = this.getTextAngle(ele, prefix);\n }\n if (theta !== 0) {\n orgTextX = textX;\n orgTextY = textY;\n context.translate(orgTextX, orgTextY);\n context.rotate(theta);\n textX = 0;\n textY = 0;\n }\n switch (valign) {\n case 'top':\n break;\n case 'center':\n textY += textH / 2;\n break;\n case 'bottom':\n textY += textH;\n break;\n }\n var backgroundOpacity = ele.pstyle('text-background-opacity').value;\n var borderOpacity = ele.pstyle('text-border-opacity').value;\n var textBorderWidth = ele.pstyle('text-border-width').pfValue;\n var backgroundPadding = ele.pstyle('text-background-padding').pfValue;\n var styleShape = ele.pstyle('text-background-shape').strValue;\n var rounded = styleShape === 'round-rectangle' || styleShape === 'roundrectangle';\n var circled = styleShape === 'circle';\n var roundRadius = 2;\n if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {\n var textFill = context.fillStyle;\n var textStroke = context.strokeStyle;\n var textLineWidth = context.lineWidth;\n var textBackgroundColor = ele.pstyle('text-background-color').value;\n var textBorderColor = ele.pstyle('text-border-color').value;\n var textBorderStyle = ele.pstyle('text-border-style').value;\n var doFill = backgroundOpacity > 0;\n var doStroke = textBorderWidth > 0 && borderOpacity > 0;\n var bgX = textX - backgroundPadding;\n switch (halign) {\n case 'left':\n bgX -= textW;\n break;\n case 'center':\n bgX -= textW / 2;\n break;\n }\n var bgY = textY - textH - backgroundPadding;\n var bgW = textW + 2 * backgroundPadding;\n var bgH = textH + 2 * backgroundPadding;\n if (doFill) {\n context.fillStyle = \"rgba(\".concat(textBackgroundColor[0], \",\").concat(textBackgroundColor[1], \",\").concat(textBackgroundColor[2], \",\").concat(backgroundOpacity * parentOpacity, \")\");\n }\n if (doStroke) {\n context.strokeStyle = \"rgba(\".concat(textBorderColor[0], \",\").concat(textBorderColor[1], \",\").concat(textBorderColor[2], \",\").concat(borderOpacity * parentOpacity, \")\");\n context.lineWidth = textBorderWidth;\n if (context.setLineDash) {\n switch (textBorderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'double':\n context.lineWidth = textBorderWidth / 4;\n context.setLineDash([]);\n break;\n case 'solid':\n default:\n context.setLineDash([]);\n break;\n }\n }\n }\n if (rounded) {\n context.beginPath();\n roundRect(context, bgX, bgY, bgW, bgH, roundRadius);\n } else if (circled) {\n context.beginPath();\n circle(context, bgX, bgY, bgW, bgH);\n } else {\n context.beginPath();\n context.rect(bgX, bgY, bgW, bgH);\n }\n if (doFill) context.fill();\n if (doStroke) context.stroke();\n\n // Double border pass for 'double' style\n if (doStroke && textBorderStyle === 'double') {\n var whiteWidth = textBorderWidth / 2;\n context.beginPath();\n if (rounded) {\n roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - 2 * whiteWidth, bgH - 2 * whiteWidth, roundRadius);\n } else {\n context.rect(bgX + whiteWidth, bgY + whiteWidth, bgW - 2 * whiteWidth, bgH - 2 * whiteWidth);\n }\n context.stroke();\n }\n context.fillStyle = textFill;\n context.strokeStyle = textStroke;\n context.lineWidth = textLineWidth;\n if (context.setLineDash) context.setLineDash([]);\n }\n var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle\n\n if (lineWidth > 0) {\n context.lineWidth = lineWidth;\n }\n if (ele.pstyle('text-wrap').value === 'wrap') {\n var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix);\n var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix);\n var halfTextW = textW / 2;\n var justification = this.getLabelJustification(ele);\n if (justification === 'auto') ; else if (halign === 'left') {\n // auto justification : right\n if (justification === 'left') {\n textX += -textW;\n } else if (justification === 'center') {\n textX += -halfTextW;\n } // else same as auto\n } else if (halign === 'center') {\n // auto justfication : center\n if (justification === 'left') {\n textX += -halfTextW;\n } else if (justification === 'right') {\n textX += halfTextW;\n } // else same as auto\n } else if (halign === 'right') {\n // auto justification : left\n if (justification === 'center') {\n textX += halfTextW;\n } else if (justification === 'right') {\n textX += textW;\n } // else same as auto\n }\n switch (valign) {\n case 'top':\n textY -= (lines.length - 1) * lineHeight;\n break;\n case 'center':\n case 'bottom':\n textY -= (lines.length - 1) * lineHeight;\n break;\n }\n for (var l = 0; l < lines.length; l++) {\n if (lineWidth > 0) {\n context.strokeText(lines[l], textX, textY);\n }\n context.fillText(lines[l], textX, textY);\n textY += lineHeight;\n }\n } else {\n if (lineWidth > 0) {\n context.strokeText(text, textX, textY);\n }\n context.fillText(text, textX, textY);\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-orgTextX, -orgTextY);\n }\n }\n};\n\n/* global Path2D */\n\nvar CRp$6 = {};\nCRp$6.drawNode = function (context, node, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var nodeWidth, nodeHeight;\n var _p = node._private;\n var rs = _p.rscratch;\n var pos = node.position();\n if (!number$1(pos.x) || !number$1(pos.y)) {\n return; // can't draw node with undefined position\n }\n if (shouldDrawOpacity && !node.visible()) {\n return;\n }\n var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1;\n var usePaths = r.usePaths();\n var path;\n var pathCacheHit = false;\n var padding = node.padding();\n nodeWidth = node.width() + 2 * padding;\n nodeHeight = node.height() + 2 * padding;\n\n //\n // setup shift\n\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n\n //\n // load bg image\n\n var bgImgProp = node.pstyle('background-image');\n var urls = bgImgProp.value;\n var urlDefined = new Array(urls.length);\n var image = new Array(urls.length);\n var numImages = 0;\n for (var i = 0; i < urls.length; i++) {\n var url = urls[i];\n var defd = urlDefined[i] = url != null && url !== 'none';\n if (defd) {\n var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i);\n numImages++;\n\n // get image, and if not loaded then ask to redraw when later loaded\n image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () {\n _p.backgroundTimestamp = Date.now();\n node.emitAndNotify('background');\n });\n }\n }\n\n //\n // setup styles\n\n var darkness = node.pstyle('background-blacken').value;\n var borderWidth = node.pstyle('border-width').pfValue;\n var bgOpacity = node.pstyle('background-opacity').value * eleOpacity;\n var borderColor = node.pstyle('border-color').value;\n var borderStyle = node.pstyle('border-style').value;\n var borderJoin = node.pstyle('border-join').value;\n var borderCap = node.pstyle('border-cap').value;\n var borderPosition = node.pstyle('border-position').value;\n var borderPattern = node.pstyle('border-dash-pattern').pfValue;\n var borderOffset = node.pstyle('border-dash-offset').pfValue;\n var borderOpacity = node.pstyle('border-opacity').value * eleOpacity;\n var outlineWidth = node.pstyle('outline-width').pfValue;\n var outlineColor = node.pstyle('outline-color').value;\n var outlineStyle = node.pstyle('outline-style').value;\n var outlineOpacity = node.pstyle('outline-opacity').value * eleOpacity;\n var outlineOffset = node.pstyle('outline-offset').value;\n var cornerRadius = node.pstyle('corner-radius').value;\n if (cornerRadius !== 'auto') cornerRadius = node.pstyle('corner-radius').pfValue;\n var setupShapeColor = function setupShapeColor() {\n var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity;\n r.eleFillStyle(context, node, bgOpy);\n };\n var setupBorderColor = function setupBorderColor() {\n var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity;\n r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);\n };\n var setupOutlineColor = function setupOutlineColor() {\n var otlnOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : outlineOpacity;\n r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy);\n };\n\n //\n // setup shape\n\n var getPath = function getPath(width, height, shape, points) {\n var pathCache = r.nodePathCache = r.nodePathCache || [];\n var key = hashStrings(shape === 'polygon' ? shape + ',' + points.join(',') : shape, '' + height, '' + width, '' + cornerRadius);\n var cachedPath = pathCache[key];\n var path;\n var cacheHit = false;\n if (cachedPath != null) {\n path = cachedPath;\n cacheHit = true;\n rs.pathCache = path;\n } else {\n path = new Path2D();\n pathCache[key] = rs.pathCache = path;\n }\n return {\n path: path,\n cacheHit: cacheHit\n };\n };\n var styleShape = node.pstyle('shape').strValue;\n var shapePts = node.pstyle('shape-polygon-points').pfValue;\n if (usePaths) {\n context.translate(pos.x, pos.y);\n var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts);\n path = shapePath.path;\n pathCacheHit = shapePath.cacheHit;\n }\n var drawShape = function drawShape() {\n if (!pathCacheHit) {\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n }\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n };\n var drawImages = function drawImages() {\n var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var prevBging = _p.backgrounding;\n var totalCompleted = 0;\n for (var _i = 0; _i < image.length; _i++) {\n var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i);\n if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') {\n totalCompleted++;\n continue;\n }\n if (urlDefined[_i] && image[_i].complete && !image[_i].error) {\n totalCompleted++;\n r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity);\n }\n }\n _p.backgrounding = !(totalCompleted === numImages);\n if (prevBging !== _p.backgrounding) {\n // update style b/c :backgrounding state changed\n node.updateStyle(false);\n }\n };\n var drawPie = function drawPie() {\n var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity;\n if (r.hasPie(node)) {\n r.drawPie(context, node, pieOpacity);\n\n // redraw/restore path if steps after pie need it\n if (redrawShape) {\n if (!usePaths) {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n }\n }\n }\n };\n var drawStripe = function drawStripe() {\n var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var stripeOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity;\n if (r.hasStripe(node)) {\n context.save();\n if (usePaths) {\n context.clip(rs.pathCache);\n } else {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n context.clip();\n }\n r.drawStripe(context, node, stripeOpacity);\n context.restore();\n\n // redraw/restore path if steps after stripes need it\n if (redrawShape) {\n if (!usePaths) {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight, cornerRadius, rs);\n }\n }\n }\n };\n var darken = function darken() {\n var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;\n var c = darkness > 0 ? 0 : 255;\n if (darkness !== 0) {\n r.colorFillStyle(context, c, c, c, opacity);\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n };\n var drawBorder = function drawBorder() {\n if (borderWidth > 0) {\n context.lineWidth = borderWidth;\n context.lineCap = borderCap;\n context.lineJoin = borderJoin;\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (borderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash(borderPattern);\n context.lineDashOffset = borderOffset;\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n if (borderPosition !== 'center') {\n context.save();\n context.lineWidth *= 2;\n if (borderPosition === 'inside') {\n usePaths ? context.clip(path) : context.clip();\n } else {\n var region = new Path2D();\n region.rect(-nodeWidth / 2 - borderWidth, -nodeHeight / 2 - borderWidth, nodeWidth + 2 * borderWidth, nodeHeight + 2 * borderWidth);\n region.addPath(path);\n context.clip(region, 'evenodd');\n }\n usePaths ? context.stroke(path) : context.stroke();\n context.restore();\n } else {\n usePaths ? context.stroke(path) : context.stroke();\n }\n if (borderStyle === 'double') {\n context.lineWidth = borderWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOutline = function drawOutline() {\n if (outlineWidth > 0) {\n context.lineWidth = outlineWidth;\n context.lineCap = 'butt';\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (outlineStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n var shape = r.getNodeShape(node);\n var bWidth = borderWidth;\n if (borderPosition === 'inside') bWidth = 0;\n if (borderPosition === 'outside') bWidth *= 2;\n var scaleX = (nodeWidth + bWidth + (outlineWidth + outlineOffset)) / nodeWidth;\n var scaleY = (nodeHeight + bWidth + (outlineWidth + outlineOffset)) / nodeHeight;\n var sWidth = nodeWidth * scaleX;\n var sHeight = nodeHeight * scaleY;\n var points = r.nodeShapes[shape].points;\n var _path;\n if (usePaths) {\n var outlinePath = getPath(sWidth, sHeight, shape, points);\n _path = outlinePath.path;\n }\n\n // draw the outline path, either by using expanded points or by scaling \n // the dimensions, depending on shape\n if (shape === \"ellipse\") {\n r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (['round-diamond', 'round-heptagon', 'round-hexagon', 'round-octagon', 'round-pentagon', 'round-polygon', 'round-triangle', 'round-tag'].includes(shape)) {\n var sMult = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (shape === 'round-diamond') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.4;\n } else if (shape === 'round-heptagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.075;\n offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 35;\n } else if (shape === 'round-hexagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;\n } else if (shape === 'round-pentagon') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.13;\n offsetY = -(bWidth / 2 + outlineOffset + outlineWidth) / 15;\n } else if (shape === 'round-tag') {\n sMult = (bWidth + outlineOffset + outlineWidth) * 1.12;\n offsetX = (bWidth / 2 + outlineWidth + outlineOffset) * .07;\n } else if (shape === 'round-triangle') {\n sMult = (bWidth + outlineOffset + outlineWidth) * (Math.PI / 2);\n offsetY = -(bWidth + outlineOffset / 2 + outlineWidth) / Math.PI;\n }\n if (sMult !== 0) {\n scaleX = (nodeWidth + sMult) / nodeWidth;\n sWidth = nodeWidth * scaleX;\n if (!['round-hexagon', 'round-tag'].includes(shape)) {\n scaleY = (nodeHeight + sMult) / nodeHeight;\n sHeight = nodeHeight * scaleY;\n }\n }\n cornerRadius = cornerRadius === 'auto' ? getRoundPolygonRadius(sWidth, sHeight) : cornerRadius;\n var halfW = sWidth / 2;\n var halfH = sHeight / 2;\n var radius = cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2;\n var p = new Array(points.length / 2);\n var corners = new Array(points.length / 2);\n for (var _i2 = 0; _i2 < points.length / 2; _i2++) {\n p[_i2] = {\n x: npos.x + offsetX + halfW * points[_i2 * 2],\n y: npos.y + offsetY + halfH * points[_i2 * 2 + 1]\n };\n }\n var _i3,\n p1,\n p2,\n p3,\n len = p.length;\n p1 = p[len - 1];\n // for each point\n for (_i3 = 0; _i3 < len; _i3++) {\n p2 = p[_i3 % len];\n p3 = p[(_i3 + 1) % len];\n corners[_i3] = getRoundCorner(p1, p2, p3, radius);\n p1 = p2;\n p2 = p3;\n }\n r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points, corners);\n } else if (['roundrectangle', 'round-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;\n r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);\n } else if (['cutrectangle', 'cut-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getCutRectangleCornerLength() : cornerRadius;\n r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, null, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 4);\n } else if (['bottomroundrectangle', 'bottom-round-rectangle'].includes(shape)) {\n cornerRadius = cornerRadius === 'auto' ? getRoundRectangleRadius(sWidth, sHeight) : cornerRadius;\n r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight, cornerRadius + (bWidth + outlineWidth + outlineOffset) / 2);\n } else if (shape === \"barrel\") {\n r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (shape.startsWith(\"polygon\") || ['rhomboid', 'right-rhomboid', 'round-tag', 'tag', 'vee'].includes(shape)) {\n var pad = (bWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n } else {\n var _pad = (bWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, -_pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n }\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n if (outlineStyle === 'double') {\n context.lineWidth = bWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOverlay = function drawOverlay() {\n if (shouldDrawOverlay) {\n r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawUnderlay = function drawUnderlay() {\n if (shouldDrawOverlay) {\n r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawText = function drawText() {\n r.drawElementText(context, node, null, drawLabel);\n };\n var ghost = node.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = node.pstyle('ghost-offset-x').pfValue;\n var gy = node.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = node.pstyle('ghost-opacity').value;\n var effGhostOpacity = ghostOpacity * eleOpacity;\n context.translate(gx, gy);\n setupOutlineColor();\n drawOutline();\n setupShapeColor(ghostOpacity * bgOpacity);\n drawShape();\n drawImages(effGhostOpacity, true);\n setupBorderColor(ghostOpacity * borderOpacity);\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawStripe(darkness !== 0 || borderWidth !== 0);\n drawImages(effGhostOpacity, false);\n darken(effGhostOpacity);\n context.translate(-gx, -gy);\n }\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawUnderlay();\n if (usePaths) {\n context.translate(pos.x, pos.y);\n }\n setupOutlineColor();\n drawOutline();\n setupShapeColor();\n drawShape();\n drawImages(eleOpacity, true);\n setupBorderColor();\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawStripe(darkness !== 0 || borderWidth !== 0);\n drawImages(eleOpacity, false);\n darken();\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawText();\n drawOverlay();\n\n //\n // clean up shift\n\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n};\nvar drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, node, pos, nodeWidth, nodeHeight) {\n var r = this;\n if (!node.visible()) {\n return;\n }\n var padding = node.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var opacity = node.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n var color = node.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n var shape = node.pstyle(\"\".concat(overlayOrUnderlay, \"-shape\")).value;\n var radius = node.pstyle(\"\".concat(overlayOrUnderlay, \"-corner-radius\")).value;\n if (opacity > 0) {\n pos = pos || node.position();\n if (nodeWidth == null || nodeHeight == null) {\n var _padding = node.padding();\n nodeWidth = node.width() + 2 * _padding;\n nodeHeight = node.height() + 2 * _padding;\n }\n r.colorFillStyle(context, color[0], color[1], color[2], opacity);\n r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2, radius);\n context.fill();\n }\n };\n};\nCRp$6.drawNodeOverlay = drawNodeOverlayUnderlay('overlay');\nCRp$6.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay');\n\n// does the node have at least one pie piece?\nCRp$6.hasPie = function (node) {\n node = node[0]; // ensure ele ref\n\n return node._private.hasPie;\n};\nCRp$6.hasStripe = function (node) {\n node = node[0]; // ensure ele ref\n\n return node._private.hasStripe;\n};\nCRp$6.drawPie = function (context, node, nodeOpacity, pos) {\n node = node[0]; // ensure ele ref\n pos = pos || node.position();\n var cyStyle = node.cy().style();\n var pieSize = node.pstyle('pie-size');\n var hole = node.pstyle('pie-hole');\n var overallStartAngle = node.pstyle('pie-start-angle').pfValue;\n var x = pos.x;\n var y = pos.y;\n var nodeW = node.width();\n var nodeH = node.height();\n var radius = Math.min(nodeW, nodeH) / 2; // must fit in node\n var holeRadius;\n var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1]\n var usePaths = this.usePaths();\n if (usePaths) {\n x = 0;\n y = 0;\n }\n if (pieSize.units === '%') {\n radius = radius * pieSize.pfValue;\n } else if (pieSize.pfValue !== undefined) {\n radius = pieSize.pfValue / 2; // diameter in pixels => radius\n }\n if (hole.units === '%') {\n holeRadius = radius * hole.pfValue;\n } else if (hole.pfValue !== undefined) {\n holeRadius = hole.pfValue / 2; // diameter in pixels => radius\n }\n if (holeRadius >= radius) {\n return; // the pie would be invisible anyway\n }\n for (var i = 1; i <= cyStyle.pieBackgroundN; i++) {\n // 1..N\n var size = node.pstyle('pie-' + i + '-background-size').value;\n var color = node.pstyle('pie-' + i + '-background-color').value;\n var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity;\n var percent = size / 100; // map integer range [0, 100] to [0, 1]\n\n // percent can't push beyond 1\n if (percent + lastPercent > 1) {\n percent = 1 - lastPercent;\n }\n var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise\n angleStart += overallStartAngle; // shift by the overall pie start angle\n var angleDelta = 2 * Math.PI * percent;\n var angleEnd = angleStart + angleDelta;\n\n // ignore if\n // - zero size\n // - we're already beyond the full circle\n // - adding the current slice would go beyond the full circle\n if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {\n continue;\n }\n if (holeRadius === 0) {\n // make a pie slice\n context.beginPath();\n context.moveTo(x, y);\n context.arc(x, y, radius, angleStart, angleEnd);\n context.closePath();\n } else {\n // make a pie slice that's like the above but with a hole in the middle\n context.beginPath();\n context.arc(x, y, radius, angleStart, angleEnd);\n context.arc(x, y, holeRadius, angleEnd, angleStart, true); // true for anticlockwise\n context.closePath();\n }\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n context.fill();\n lastPercent += percent;\n }\n};\nCRp$6.drawStripe = function (context, node, nodeOpacity, pos) {\n node = node[0]; // ensure ele ref\n pos = pos || node.position();\n var cyStyle = node.cy().style();\n var x = pos.x;\n var y = pos.y;\n var nodeW = node.width();\n var nodeH = node.height();\n var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1]\n var usePaths = this.usePaths();\n context.save();\n var direction = node.pstyle('stripe-direction').value;\n var stripeSize = node.pstyle('stripe-size');\n switch (direction) {\n case 'vertical':\n break;\n // default\n case 'righward':\n context.rotate(-Math.PI / 2);\n break;\n }\n var stripeW = nodeW;\n var stripeH = nodeH;\n if (stripeSize.units === '%') {\n stripeW = stripeW * stripeSize.pfValue;\n stripeH = stripeH * stripeSize.pfValue;\n } else if (stripeSize.pfValue !== undefined) {\n stripeW = stripeSize.pfValue;\n stripeH = stripeSize.pfValue;\n }\n if (usePaths) {\n x = 0;\n y = 0;\n }\n\n // shift up from the centre of the node to the top-left corner\n y -= stripeW / 2;\n x -= stripeH / 2;\n for (var i = 1; i <= cyStyle.stripeBackgroundN; i++) {\n // 1..N\n var size = node.pstyle('stripe-' + i + '-background-size').value;\n var color = node.pstyle('stripe-' + i + '-background-color').value;\n var opacity = node.pstyle('stripe-' + i + '-background-opacity').value * nodeOpacity;\n var percent = size / 100; // map integer range [0, 100] to [0, 1]\n\n // percent can't push beyond 1\n if (percent + lastPercent > 1) {\n percent = 1 - lastPercent;\n }\n\n // ignore if\n // - zero size\n // - we're already beyond the full chart\n // - adding the current slice would go beyond the full chart\n if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {\n continue;\n }\n\n // draw rect for the current stripe\n context.beginPath();\n context.rect(x, y + stripeH * lastPercent, stripeW, stripeH * percent);\n context.closePath();\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n context.fill();\n lastPercent += percent;\n }\n context.restore();\n};\n\nvar CRp$5 = {};\nvar motionBlurDelay = 100;\n\n// var isFirefox = typeof InstallTrigger !== 'undefined';\n\nCRp$5.getPixelRatio = function () {\n var context = this.data.contexts[0];\n if (this.forcedPixelRatio != null) {\n return this.forcedPixelRatio;\n }\n var containerWindow = this.cy.window();\n var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return (containerWindow.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef\n};\nCRp$5.paintCache = function (context) {\n var caches = this.paintCaches = this.paintCaches || [];\n var needToCreateCache = true;\n var cache;\n for (var i = 0; i < caches.length; i++) {\n cache = caches[i];\n if (cache.context === context) {\n needToCreateCache = false;\n break;\n }\n }\n if (needToCreateCache) {\n cache = {\n context: context\n };\n caches.push(cache);\n }\n return cache;\n};\nCRp$5.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) {\n var gradientStyle;\n var usePaths = this.usePaths();\n var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value,\n positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue;\n if (fill === 'radial-gradient') {\n if (ele.isEdge()) {\n var start = ele.sourceEndpoint(),\n end = ele.targetEndpoint(),\n mid = ele.midpoint();\n var d1 = dist(start, mid);\n var d2 = dist(end, mid);\n gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));\n } else {\n var pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n width = ele.paddedWidth(),\n height = ele.paddedHeight();\n gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height));\n }\n } else {\n if (ele.isEdge()) {\n var _start = ele.sourceEndpoint(),\n _end = ele.targetEndpoint();\n gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);\n } else {\n var _pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n _width = ele.paddedWidth(),\n _height = ele.paddedHeight(),\n halfWidth = _width / 2,\n halfHeight = _height / 2;\n var direction = ele.pstyle('background-gradient-direction').value;\n switch (direction) {\n case 'to-bottom':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);\n break;\n case 'to-top':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);\n break;\n case 'to-left':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);\n break;\n case 'to-right':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);\n break;\n case 'to-bottom-right':\n case 'to-right-bottom':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-right':\n case 'to-right-top':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);\n break;\n case 'to-bottom-left':\n case 'to-left-bottom':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-left':\n case 'to-left-top':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);\n break;\n }\n }\n }\n if (!gradientStyle) return null; // invalid gradient style\n\n var hasPositions = positions.length === colors.length;\n var length = colors.length;\n for (var i = 0; i < length; i++) {\n gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')');\n }\n return gradientStyle;\n};\nCRp$5.gradientFillStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.fillStyle = gradientStyle;\n};\nCRp$5.colorFillStyle = function (context, r, g, b, a) {\n context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.fillStyle !== fillStyle ){\n // context.fillStyle = cache.fillStyle = fillStyle;\n // }\n};\nCRp$5.eleFillStyle = function (context, ele, opacity) {\n var backgroundFill = ele.pstyle('background-fill').value;\n if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') {\n this.gradientFillStyle(context, ele, backgroundFill, opacity);\n } else {\n var backgroundColor = ele.pstyle('background-color').value;\n this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);\n }\n};\nCRp$5.gradientStrokeStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.strokeStyle = gradientStyle;\n};\nCRp$5.colorStrokeStyle = function (context, r, g, b, a) {\n context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.strokeStyle !== strokeStyle ){\n // context.strokeStyle = cache.strokeStyle = strokeStyle;\n // }\n};\nCRp$5.eleStrokeStyle = function (context, ele, opacity) {\n var lineFill = ele.pstyle('line-fill').value;\n if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') {\n this.gradientStrokeStyle(context, ele, lineFill, opacity);\n } else {\n var lineColor = ele.pstyle('line-color').value;\n this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);\n }\n};\n\n// Resize canvas\nCRp$5.matchCanvasSize = function (container) {\n var r = this;\n var data = r.data;\n var bb = r.findContainerClientCoords();\n var width = bb[2];\n var height = bb[3];\n var pixelRatio = r.getPixelRatio();\n var mbPxRatio = r.motionBlurPxRatio;\n if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {\n pixelRatio = mbPxRatio;\n }\n var canvasWidth = width * pixelRatio;\n var canvasHeight = height * pixelRatio;\n var canvas;\n if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {\n return; // save cycles if same\n }\n r.fontCaches = null; // resizing resets the style\n\n var canvasContainer = data.canvasContainer;\n canvasContainer.style.width = width + 'px';\n canvasContainer.style.height = height + 'px';\n for (var i = 0; i < r.CANVAS_LAYERS; i++) {\n canvas = data.canvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n for (var i = 0; i < r.BUFFER_COUNT; i++) {\n canvas = data.bufferCanvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n r.textureMult = 1;\n if (pixelRatio <= 1) {\n canvas = data.bufferCanvases[r.TEXTURE_BUFFER];\n r.textureMult = 2;\n canvas.width = canvasWidth * r.textureMult;\n canvas.height = canvasHeight * r.textureMult;\n }\n r.canvasWidth = canvasWidth;\n r.canvasHeight = canvasHeight;\n r.pixelRatio = pixelRatio;\n};\nCRp$5.renderTo = function (cxt, zoom, pan, pxRatio) {\n this.render({\n forcedContext: cxt,\n forcedZoom: zoom,\n forcedPan: pan,\n drawAllLayers: true,\n forcedPxRatio: pxRatio\n });\n};\nCRp$5.clearCanvas = function () {\n var r = this;\n var data = r.data;\n function clear(context) {\n context.clearRect(0, 0, r.canvasWidth, r.canvasHeight);\n }\n clear(data.contexts[r.NODE]);\n clear(data.contexts[r.DRAG]);\n};\nCRp$5.render = function (options) {\n var r = this;\n options = options || staticEmptyObject();\n var cy = r.cy;\n var forcedContext = options.forcedContext;\n var drawAllLayers = options.drawAllLayers;\n var drawOnlyNodeLayer = options.drawOnlyNodeLayer;\n var forcedZoom = options.forcedZoom;\n var forcedPan = options.forcedPan;\n var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio;\n var data = r.data;\n var needDraw = data.canvasNeedsRedraw;\n var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);\n var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur;\n var mbPxRatio = r.motionBlurPxRatio;\n var hasCompoundNodes = cy.hasCompoundNodes();\n var inNodeDragGesture = r.hoverData.draggingEles;\n var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;\n motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;\n var motionBlurFadeEffect = motionBlur;\n if (!forcedContext) {\n if (r.prevPxRatio !== pixelRatio) {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n r.prevPxRatio = pixelRatio;\n }\n if (!forcedContext && r.motionBlurTimeout) {\n clearTimeout(r.motionBlurTimeout);\n }\n if (motionBlur) {\n if (r.mbFrames == null) {\n r.mbFrames = 0;\n }\n r.mbFrames++;\n if (r.mbFrames < 3) {\n // need several frames before even high quality motionblur\n motionBlurFadeEffect = false;\n }\n\n // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing)\n if (r.mbFrames > r.minMbLowQualFrames) {\n //r.fullQualityMb = false;\n r.motionBlurPxRatio = r.mbPxRBlurry;\n }\n }\n if (r.clearingMotionBlur) {\n r.motionBlurPxRatio = 1;\n }\n\n // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame\n // because a rogue async texture frame would clear needDraw\n if (r.textureDrawLastFrame && !textureDraw) {\n needDraw[r.NODE] = true;\n needDraw[r.SELECT_BOX] = true;\n }\n var style = cy.style();\n var zoom = cy.zoom();\n var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom;\n var pan = cy.pan();\n var effectivePan = {\n x: pan.x,\n y: pan.y\n };\n var vp = {\n zoom: zoom,\n pan: {\n x: pan.x,\n y: pan.y\n }\n };\n var prevVp = r.prevViewport;\n var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;\n\n // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed)\n if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {\n r.motionBlurPxRatio = 1;\n }\n if (forcedPan) {\n effectivePan = forcedPan;\n }\n\n // apply pixel ratio\n\n effectiveZoom *= pixelRatio;\n effectivePan.x *= pixelRatio;\n effectivePan.y *= pixelRatio;\n var eles = r.getCachedZSortedEles();\n function mbclear(context, x, y, w, h) {\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency);\n context.fillRect(x, y, w, h);\n context.globalCompositeOperation = gco;\n }\n function setContextTransform(context, clear) {\n var ePan, eZoom, w, h;\n if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {\n ePan = {\n x: pan.x * mbPxRatio,\n y: pan.y * mbPxRatio\n };\n eZoom = zoom * mbPxRatio;\n w = r.canvasWidth * mbPxRatio;\n h = r.canvasHeight * mbPxRatio;\n } else {\n ePan = effectivePan;\n eZoom = effectiveZoom;\n w = r.canvasWidth;\n h = r.canvasHeight;\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (clear === 'motionBlur') {\n mbclear(context, 0, 0, w, h);\n } else if (!forcedContext && (clear === undefined || clear)) {\n context.clearRect(0, 0, w, h);\n }\n if (!drawAllLayers) {\n context.translate(ePan.x, ePan.y);\n context.scale(eZoom, eZoom);\n }\n if (forcedPan) {\n context.translate(forcedPan.x, forcedPan.y);\n }\n if (forcedZoom) {\n context.scale(forcedZoom, forcedZoom);\n }\n }\n if (!textureDraw) {\n r.textureDrawLastFrame = false;\n }\n if (textureDraw) {\n r.textureDrawLastFrame = true;\n if (!r.textureCache) {\n r.textureCache = {};\n r.textureCache.bb = cy.mutableElements().boundingBox();\n r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];\n var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);\n r.render({\n forcedContext: cxt,\n drawOnlyNodeLayer: true,\n forcedPxRatio: pixelRatio * r.textureMult\n });\n var vp = r.textureCache.viewport = {\n zoom: cy.zoom(),\n pan: cy.pan(),\n width: r.canvasWidth,\n height: r.canvasHeight\n };\n vp.mpan = {\n x: (0 - vp.pan.x) / vp.zoom,\n y: (0 - vp.pan.y) / vp.zoom\n };\n }\n needDraw[r.DRAG] = false;\n needDraw[r.NODE] = false;\n var context = data.contexts[r.NODE];\n var texture = r.textureCache.texture;\n var vp = r.textureCache.viewport;\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (motionBlur) {\n mbclear(context, 0, 0, vp.width, vp.height);\n } else {\n context.clearRect(0, 0, vp.width, vp.height);\n }\n var outsideBgColor = style.core('outside-texture-bg-color').value;\n var outsideBgOpacity = style.core('outside-texture-bg-opacity').value;\n r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);\n context.fillRect(0, 0, vp.width, vp.height);\n var zoom = cy.zoom();\n setContextTransform(context, false);\n context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n } else if (r.textureOnViewport && !forcedContext) {\n // clear the cache since we don't need it\n r.textureCache = null;\n }\n var extent = cy.extent();\n var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();\n var hideEdges = r.hideEdgesOnViewport && vpManip;\n var needMbClear = [];\n needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;\n if (needMbClear[r.NODE]) {\n r.clearedForMotionBlur[r.NODE] = true;\n }\n needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;\n if (needMbClear[r.DRAG]) {\n r.clearedForMotionBlur[r.DRAG] = true;\n }\n if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {\n var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]);\n var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined;\n setContextTransform(context, clear);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);\n } else {\n r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.nondrag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.NODE] = false;\n }\n }\n if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {\n var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]);\n setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.drag, pixelRatio, extent);\n } else {\n r.drawCachedElements(context, eles.drag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.drag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.DRAG] = false;\n }\n }\n this.drawSelectionRectangle(options, setContextTransform);\n\n // motionblur: blit rendered blurry frames\n if (motionBlur && mbPxRatio !== 1) {\n var cxtNode = data.contexts[r.NODE];\n var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];\n var cxtDrag = data.contexts[r.DRAG];\n var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];\n var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) {\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n if (needClear || !motionBlurFadeEffect) {\n cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight);\n } else {\n mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight);\n }\n var pxr = mbPxRatio;\n cxt.drawImage(txt,\n // img\n 0, 0,\n // sx, sy\n r.canvasWidth * pxr, r.canvasHeight * pxr,\n // sw, sh\n 0, 0,\n // x, y\n r.canvasWidth, r.canvasHeight // w, h\n );\n };\n if (needDraw[r.NODE] || needMbClear[r.NODE]) {\n drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);\n needDraw[r.NODE] = false;\n }\n if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {\n drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);\n needDraw[r.DRAG] = false;\n }\n }\n r.prevViewport = vp;\n if (r.clearingMotionBlur) {\n r.clearingMotionBlur = false;\n r.motionBlurCleared = true;\n r.motionBlur = true;\n }\n if (motionBlur) {\n r.motionBlurTimeout = setTimeout(function () {\n r.motionBlurTimeout = null;\n r.clearedForMotionBlur[r.NODE] = false;\n r.clearedForMotionBlur[r.DRAG] = false;\n r.motionBlur = false;\n r.clearingMotionBlur = !textureDraw;\n r.mbFrames = 0;\n needDraw[r.NODE] = true;\n needDraw[r.DRAG] = true;\n r.redraw();\n }, motionBlurDelay);\n }\n if (!forcedContext) {\n cy.emit('render');\n }\n};\nvar fpsHeight;\nCRp$5.drawSelectionRectangle = function (options, setContextTransform) {\n var r = this;\n var cy = r.cy;\n var data = r.data;\n var style = cy.style();\n var drawOnlyNodeLayer = options.drawOnlyNodeLayer;\n var drawAllLayers = options.drawAllLayers;\n var needDraw = data.canvasNeedsRedraw;\n var forcedContext = options.forcedContext;\n if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {\n var context = forcedContext || data.contexts[r.SELECT_BOX];\n setContextTransform(context);\n if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {\n var zoom = r.cy.zoom();\n var borderWidth = style.core('selection-box-border-width').value / zoom;\n context.lineWidth = borderWidth;\n context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n if (borderWidth > 0) {\n context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n }\n }\n if (data.bgActivePosistion && !r.hoverData.selecting) {\n var zoom = r.cy.zoom();\n var pos = data.bgActivePosistion;\n context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')';\n context.beginPath();\n context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI);\n context.fill();\n }\n var timeToRender = r.lastRedrawTime;\n if (r.showFps && timeToRender) {\n timeToRender = Math.round(timeToRender);\n var fps = Math.round(1000 / timeToRender);\n var text = '1 frame = ' + timeToRender + ' ms = ' + fps + ' fps';\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.fillStyle = 'rgba(255, 0, 0, 0.75)';\n context.strokeStyle = 'rgba(255, 0, 0, 0.75)';\n // context.lineWidth = 1;\n context.font = '30px Arial';\n if (!fpsHeight) {\n var dims = context.measureText(text);\n fpsHeight = dims.actualBoundingBoxAscent;\n }\n context.fillText(text, 0, fpsHeight);\n var maxFps = 60;\n context.strokeRect(0, fpsHeight + 10, 250, 20);\n context.fillRect(0, fpsHeight + 10, 250 * Math.min(fps / maxFps, 1), 20);\n }\n if (!drawAllLayers) {\n needDraw[r.SELECT_BOX] = false;\n }\n }\n};\n\n/**\n * Notes:\n * - All colors have premultiplied alpha. Very important for textues and \n * blending to work correctly.\n */\n\nfunction compileShader(gl, type, source) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw new Error(gl.getShaderInfoLog(shader));\n }\n // console.log(gl.getShaderInfoLog(shader));\n return shader;\n}\nfunction createProgram(gl, vertexSource, fragementSource) {\n var vertexShader = compileShader(gl, gl.VERTEX_SHADER, vertexSource);\n var fragmentShader = compileShader(gl, gl.FRAGMENT_SHADER, fragementSource);\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw new Error('Could not initialize shaders');\n }\n return program;\n}\n\n/**\n * Creates an offscren canvas with a 2D context, for the\n * canvas renderer to use for drawing textures.\n */\nfunction createTextureCanvas(r, width, height) {\n if (height === undefined) {\n height = width;\n }\n var canvas = r.makeOffscreenCanvas(width, height);\n var ctx = canvas.context = canvas.getContext('2d');\n canvas.clear = function () {\n return ctx.clearRect(0, 0, canvas.width, canvas.height);\n };\n canvas.clear();\n return canvas;\n}\n\n/**\n * Returns the current pan & zoom values, scaled by the pixel ratio.\n */\nfunction getEffectivePanZoom(r) {\n var pixelRatio = r.pixelRatio;\n var zoom = r.cy.zoom();\n var pan = r.cy.pan();\n return {\n zoom: zoom * pixelRatio,\n pan: {\n x: pan.x * pixelRatio,\n y: pan.y * pixelRatio\n }\n };\n}\n\n/**\n * Returns the zoom value, scaled by the pixel ratio.\n */\nfunction getEffectiveZoom(r) {\n var pixelRatio = r.pixelRatio;\n var zoom = r.cy.zoom();\n return zoom * pixelRatio;\n}\nfunction modelToRenderedPosition(r, pan, zoom, x, y) {\n var rx = x * zoom + pan.x;\n var ry = y * zoom + pan.y;\n ry = Math.round(r.canvasHeight - ry); // adjust for webgl\n return [rx, ry];\n}\nfunction isSimpleShape(node) {\n // the actual shape is checked in ElementDrawingWebGL._getVertTypeForShape()\n // no need to check it twice, this just checks other visual properties\n if (node.pstyle('background-fill').value !== 'solid') return false;\n if (node.pstyle('background-image').strValue !== 'none') return false;\n if (node.pstyle('border-width').value === 0) return true;\n if (node.pstyle('border-opacity').value === 0) return true;\n // we have a border but it must be simple\n if (node.pstyle('border-style').value !== 'solid') return false;\n // TODO ignoring 'border-cap', 'border-join' and 'border-position' for now\n return true;\n}\nfunction arrayEqual(a1, a2) {\n if (a1.length !== a2.length) {\n return false;\n }\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Takes color & opacity style values and converts them to WebGL format. \n * Alpha is premultiplied.\n */\nfunction toWebGLColor(color, opacity, outArray) {\n var r = color[0] / 255;\n var g = color[1] / 255;\n var b = color[2] / 255;\n var a = opacity;\n var arr = outArray || new Array(4);\n arr[0] = r * a;\n arr[1] = g * a;\n arr[2] = b * a;\n arr[3] = a;\n return arr;\n}\nfunction indexToVec4(index, outArray) {\n var arr = outArray || new Array(4);\n arr[0] = (index >> 0 & 0xFF) / 0xFF;\n arr[1] = (index >> 8 & 0xFF) / 0xFF;\n arr[2] = (index >> 16 & 0xFF) / 0xFF;\n arr[3] = (index >> 24 & 0xFF) / 0xFF;\n return arr;\n}\nfunction vec4ToIndex(vec4) {\n return vec4[0] + (vec4[1] << 8) + (vec4[2] << 16) + (vec4[3] << 24);\n}\nfunction createTexture(gl, debugID) {\n var texture = gl.createTexture();\n texture.buffer = function (offscreenCanvas) {\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);\n\n // very important, this tells webgl to premultiply colors by the alpha channel\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, offscreenCanvas);\n gl.generateMipmap(gl.TEXTURE_2D);\n gl.bindTexture(gl.TEXTURE_2D, null);\n };\n texture.deleteTexture = function () {\n gl.deleteTexture(texture);\n };\n return texture;\n}\nfunction getTypeInfo(gl, glslType) {\n switch (glslType) {\n case 'float':\n return [1, gl.FLOAT, 4];\n case 'vec2':\n return [2, gl.FLOAT, 4];\n case 'vec3':\n return [3, gl.FLOAT, 4];\n case 'vec4':\n return [4, gl.FLOAT, 4];\n case 'int':\n return [1, gl.INT, 4];\n case 'ivec2':\n return [2, gl.INT, 4];\n }\n}\nfunction createTypedArray(gl, glType, dataOrSize) {\n switch (glType) {\n case gl.FLOAT:\n return new Float32Array(dataOrSize);\n case gl.INT:\n return new Int32Array(dataOrSize);\n }\n}\nfunction createTypedArrayView(gl, glType, array, stride, size, i) {\n switch (glType) {\n case gl.FLOAT:\n return new Float32Array(array.buffer, i * stride, size);\n case gl.INT:\n return new Int32Array(array.buffer, i * stride, size);\n }\n}\n\n/** @param {WebGLRenderingContext} gl */\nfunction createBufferStaticDraw(gl, type, attributeLoc, dataArray) {\n var _getTypeInfo = getTypeInfo(gl, type),\n _getTypeInfo2 = _slicedToArray(_getTypeInfo, 2),\n size = _getTypeInfo2[0],\n glType = _getTypeInfo2[1];\n var data = createTypedArray(gl, glType, dataArray);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);\n if (glType === gl.FLOAT) {\n gl.vertexAttribPointer(attributeLoc, size, glType, false, 0, 0);\n } else if (glType === gl.INT) {\n gl.vertexAttribIPointer(attributeLoc, size, glType, 0, 0);\n }\n gl.enableVertexAttribArray(attributeLoc);\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return buffer;\n}\n\n/** \n * Creates a float buffer with gl.DYNAMIC_DRAW.\n * The returned buffer object contains functions to easily set instance data and buffer the data before a draw call.\n * @param {WebGLRenderingContext} gl \n */\nfunction createBufferDynamicDraw(gl, instances, type, attributeLoc) {\n var _getTypeInfo3 = getTypeInfo(gl, type),\n _getTypeInfo4 = _slicedToArray(_getTypeInfo3, 3),\n size = _getTypeInfo4[0],\n glType = _getTypeInfo4[1],\n bytes = _getTypeInfo4[2];\n var dataArray = createTypedArray(gl, glType, instances * size);\n var stride = size * bytes;\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, instances * stride, gl.DYNAMIC_DRAW);\n gl.enableVertexAttribArray(attributeLoc);\n if (glType === gl.FLOAT) {\n gl.vertexAttribPointer(attributeLoc, size, glType, false, stride, 0);\n } else if (glType === gl.INT) {\n gl.vertexAttribIPointer(attributeLoc, size, glType, stride, 0);\n }\n gl.vertexAttribDivisor(attributeLoc, 1);\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n\n // use array views to set values directly into the buffer array\n var views = new Array(instances);\n for (var i = 0; i < instances; i++) {\n views[i] = createTypedArrayView(gl, glType, dataArray, stride, size, i);\n }\n buffer.dataArray = dataArray;\n buffer.stride = stride;\n buffer.size = size;\n buffer.getView = function (i) {\n return views[i];\n };\n buffer.setPoint = function (i, x, y) {\n var view = views[i];\n view[0] = x;\n view[1] = y;\n };\n buffer.bufferSubData = function (count) {\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n if (count) {\n gl.bufferSubData(gl.ARRAY_BUFFER, 0, dataArray, 0, count * size);\n } else {\n gl.bufferSubData(gl.ARRAY_BUFFER, 0, dataArray);\n }\n };\n return buffer;\n}\n\n/** \n * Creates a buffer of 3x3 matrix data for use as attribute data.\n * @param {WebGLRenderingContext} gl \n */\nfunction create3x3MatrixBufferDynamicDraw(gl, instances, attributeLoc) {\n var matrixSize = 9; // 3x3 matrix\n var matrixData = new Float32Array(instances * matrixSize);\n\n // use matrix views to set values directly into the matrixData array\n var matrixViews = new Array(instances);\n for (var i = 0; i < instances; i++) {\n var byteOffset = i * matrixSize * 4; // 4 bytes per float\n matrixViews[i] = new Float32Array(matrixData.buffer, byteOffset, matrixSize); // array view\n }\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, matrixData.byteLength, gl.DYNAMIC_DRAW);\n\n // each row of the matrix needs to be a separate attribute\n for (var _i = 0; _i < 3; _i++) {\n var loc = attributeLoc + _i;\n gl.enableVertexAttribArray(loc);\n gl.vertexAttribPointer(loc, 3, gl.FLOAT, false, 3 * 12, _i * 12);\n gl.vertexAttribDivisor(loc, 1);\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n buffer.getMatrixView = function (i) {\n return matrixViews[i];\n };\n\n // TODO this is too slow, use getMatrixView and pass the view directly to the glmatrix library\n buffer.setData = function (matrix, i) {\n matrixViews[i].set(matrix, 0);\n };\n buffer.bufferSubData = function () {\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferSubData(gl.ARRAY_BUFFER, 0, matrixData);\n };\n return buffer;\n}\n\n/** \n * Creates a Frame Buffer to use for offscreen rendering.\n * @param {WebGLRenderingContext} gl \n */\nfunction createPickingFrameBuffer(gl) {\n // Create and bind the framebuffer\n var fb = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n\n // Create a texture to render to\n var targetTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, targetTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n // attach the texture as the first color attachment\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, targetTexture, 0);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n fb.setFramebufferAttachmentSizes = function (width, height) {\n gl.bindTexture(gl.TEXTURE_2D, targetTexture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n };\n return fb;\n}\n\n/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nvar ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\n\nfunction create() {\n var out = new ARRAY_TYPE(9);\n\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\n\nfunction identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\n\nfunction multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\n\nfunction translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\n\nfunction rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\n\nfunction scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\n\nfunction projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n\n// A \"texture atlas\" is a big canvas, and sections of it are used as textures for nodes/labels.\n\n/**\n * A single square texture atlas (also known as a \"sprite sheet\").\n */\nvar Atlas = /*#__PURE__*/function () {\n function Atlas(r, texSize, texRows, createTextureCanvas) {\n _classCallCheck(this, Atlas);\n this.debugID = Math.floor(Math.random() * 10000);\n this.r = r;\n this.texSize = texSize;\n this.texRows = texRows;\n this.texHeight = Math.floor(texSize / texRows);\n this.enableWrapping = true; // hardcoded for now, can be made an option\n\n this.locked = false; // once an atlas is locked it can no longer be drawn to\n this.texture = null; // WebGLTexture object\n this.needsBuffer = true;\n\n // a \"location\" is an pointer into the atlas with a 'row' and 'x' fields\n this.freePointer = {\n x: 0,\n row: 0\n };\n\n // map from the style key to the row/x where the texture starts\n // if the texture wraps then there's a second location\n this.keyToLocation = new Map(); // styleKey -> [ location, location ]\n\n this.canvas = createTextureCanvas(r, texSize, texSize);\n this.scratch = createTextureCanvas(r, texSize, this.texHeight, 'scratch');\n }\n return _createClass(Atlas, [{\n key: \"lock\",\n value: function lock() {\n this.locked = true;\n }\n }, {\n key: \"getKeys\",\n value: function getKeys() {\n return new Set(this.keyToLocation.keys());\n }\n }, {\n key: \"getScale\",\n value: function getScale(_ref) {\n var w = _ref.w,\n h = _ref.h;\n var texHeight = this.texHeight,\n maxTexWidth = this.texSize;\n // try to fit to the height of a row\n var scale = texHeight / h; // TODO what about pixelRatio?\n var texW = w * scale;\n var texH = h * scale;\n // if the scaled width is too wide then scale to fit max width instead\n if (texW > maxTexWidth) {\n scale = maxTexWidth / w;\n texW = w * scale;\n texH = h * scale;\n }\n return {\n scale: scale,\n texW: texW,\n texH: texH\n };\n }\n }, {\n key: \"draw\",\n value: function draw(key, bb, doDrawing) {\n var _this = this;\n if (this.locked) throw new Error('can\\'t draw, atlas is locked');\n var texSize = this.texSize,\n texRows = this.texRows,\n texHeight = this.texHeight;\n var _this$getScale = this.getScale(bb),\n scale = _this$getScale.scale,\n texW = _this$getScale.texW,\n texH = _this$getScale.texH;\n var drawAt = function drawAt(location, canvas) {\n if (doDrawing && canvas) {\n var context = canvas.context;\n var x = location.x,\n row = location.row;\n var xOffset = x;\n var yOffset = texHeight * row;\n context.save();\n context.translate(xOffset, yOffset);\n context.scale(scale, scale);\n doDrawing(context, bb);\n context.restore();\n }\n };\n var locations = [null, null];\n var drawNormal = function drawNormal() {\n // don't need to wrap, draw directly on the canvas\n drawAt(_this.freePointer, _this.canvas);\n locations[0] = {\n x: _this.freePointer.x,\n y: _this.freePointer.row * texHeight,\n w: texW,\n h: texH\n };\n locations[1] = {\n // create a second location with a width of 0, for convenience\n x: _this.freePointer.x + texW,\n y: _this.freePointer.row * texHeight,\n w: 0,\n h: texH\n };\n\n // move the pointer to the end of the texture\n _this.freePointer.x += texW;\n if (_this.freePointer.x == texSize) {\n _this.freePointer.x = 0;\n _this.freePointer.row++;\n }\n };\n var drawWrapped = function drawWrapped() {\n var scratch = _this.scratch,\n canvas = _this.canvas;\n\n // Draw to the scratch canvas\n scratch.clear();\n drawAt({\n x: 0,\n row: 0\n }, scratch);\n var firstTexW = texSize - _this.freePointer.x;\n var secondTexW = texW - firstTexW;\n var h = texHeight;\n {\n // copy first part of scratch to the first texture\n var dx = _this.freePointer.x;\n var dy = _this.freePointer.row * texHeight;\n var w = firstTexW;\n canvas.context.drawImage(scratch, 0, 0, w, h, dx, dy, w, h);\n locations[0] = {\n x: dx,\n y: dy,\n w: w,\n h: texH\n };\n }\n {\n // copy second part of scratch to the second texture\n var sx = firstTexW;\n var _dy = (_this.freePointer.row + 1) * texHeight;\n var _w = secondTexW;\n if (canvas) {\n canvas.context.drawImage(scratch, sx, 0, _w, h, 0, _dy, _w, h);\n }\n locations[1] = {\n x: 0,\n y: _dy,\n w: _w,\n h: texH\n };\n }\n _this.freePointer.x = secondTexW;\n _this.freePointer.row++;\n };\n var moveToStartOfNextRow = function moveToStartOfNextRow() {\n _this.freePointer.x = 0;\n _this.freePointer.row++;\n };\n if (this.freePointer.x + texW <= texSize) {\n // There's enough space in the current row\n drawNormal();\n } else if (this.freePointer.row >= texRows - 1) {\n // Need to move to the next row, but there are no more rows, atlas is full.\n return false;\n } else if (this.freePointer.x === texSize) {\n // happen to be right at end of current row\n moveToStartOfNextRow();\n drawNormal();\n } else if (this.enableWrapping) {\n // draw part of the texture to the end of the curent row, then wrap to the next row\n drawWrapped();\n } else {\n // move to the start of the next row, then draw normally\n moveToStartOfNextRow();\n drawNormal();\n }\n this.keyToLocation.set(key, locations);\n this.needsBuffer = true;\n return locations;\n }\n }, {\n key: \"getOffsets\",\n value: function getOffsets(key) {\n return this.keyToLocation.get(key);\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.freePointer.x === 0 && this.freePointer.row === 0;\n }\n }, {\n key: \"canFit\",\n value: function canFit(bb) {\n if (this.locked) return false;\n var texSize = this.texSize,\n texRows = this.texRows;\n var _this$getScale2 = this.getScale(bb),\n texW = _this$getScale2.texW;\n if (this.freePointer.x + texW > texSize) {\n // need to wrap\n return this.freePointer.row < texRows - 1; // return true if there's a row to wrap to\n }\n return true;\n }\n\n // called on every frame\n }, {\n key: \"bufferIfNeeded\",\n value: function bufferIfNeeded(gl) {\n if (!this.texture) {\n this.texture = createTexture(gl, this.debugID);\n }\n if (this.needsBuffer) {\n this.texture.buffer(this.canvas);\n this.needsBuffer = false;\n if (this.locked) {\n this.canvas = null;\n this.scratch = null;\n }\n }\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (this.texture) {\n this.texture.deleteTexture();\n this.texture = null;\n }\n this.canvas = null;\n this.scratch = null;\n this.locked = true;\n }\n }]);\n}();\n\n/**\n * A collection of texture atlases, all of the same \"render type\". \n * ('node-body' is an example of a render type.)\n * An AtlasCollection can also be notified when a texture is no longer needed, \n * and it can garbage collect the unused textures.\n */\nvar AtlasCollection = /*#__PURE__*/function () {\n function AtlasCollection(r, texSize, texRows, createTextureCanvas) {\n _classCallCheck(this, AtlasCollection);\n this.r = r;\n this.texSize = texSize;\n this.texRows = texRows;\n this.createTextureCanvas = createTextureCanvas;\n this.atlases = [];\n this.styleKeyToAtlas = new Map();\n this.markedKeys = new Set(); // marked for garbage collection\n }\n return _createClass(AtlasCollection, [{\n key: \"getKeys\",\n value: function getKeys() {\n return new Set(this.styleKeyToAtlas.keys());\n }\n }, {\n key: \"_createAtlas\",\n value: function _createAtlas() {\n var r = this.r,\n texSize = this.texSize,\n texRows = this.texRows,\n createTextureCanvas = this.createTextureCanvas;\n return new Atlas(r, texSize, texRows, createTextureCanvas);\n }\n }, {\n key: \"_getScratchCanvas\",\n value: function _getScratchCanvas() {\n if (!this.scratch) {\n var r = this.r,\n texSize = this.texSize,\n texRows = this.texRows,\n createTextureCanvas = this.createTextureCanvas;\n var texHeight = Math.floor(texSize / texRows);\n this.scratch = createTextureCanvas(r, texSize, texHeight, 'scratch');\n }\n return this.scratch;\n }\n }, {\n key: \"draw\",\n value: function draw(key, bb, doDrawing) {\n var atlas = this.styleKeyToAtlas.get(key);\n if (!atlas) {\n // check for space at the end of the last atlas\n atlas = this.atlases[this.atlases.length - 1];\n if (!atlas || !atlas.canFit(bb)) {\n if (atlas) atlas.lock();\n // create a new atlas\n atlas = this._createAtlas();\n this.atlases.push(atlas);\n }\n atlas.draw(key, bb, doDrawing);\n this.styleKeyToAtlas.set(key, atlas);\n }\n return atlas;\n }\n }, {\n key: \"getAtlas\",\n value: function getAtlas(key) {\n return this.styleKeyToAtlas.get(key);\n }\n }, {\n key: \"hasAtlas\",\n value: function hasAtlas(key) {\n return this.styleKeyToAtlas.has(key);\n }\n }, {\n key: \"markKeyForGC\",\n value: function markKeyForGC(key) {\n this.markedKeys.add(key);\n }\n }, {\n key: \"gc\",\n value: function gc() {\n var _this2 = this;\n var markedKeys = this.markedKeys;\n if (markedKeys.size === 0) {\n console.log('nothing to garbage collect');\n return;\n }\n var newAtlases = [];\n var newStyleKeyToAtlas = new Map();\n var newAtlas = null;\n var _iterator = _createForOfIteratorHelper(this.atlases),\n _step;\n try {\n var _loop = function _loop() {\n var atlas = _step.value;\n var keys = atlas.getKeys();\n var keysToCollect = intersection(markedKeys, keys);\n if (keysToCollect.size === 0) {\n // this atlas can still be used\n newAtlases.push(atlas);\n keys.forEach(function (k) {\n return newStyleKeyToAtlas.set(k, atlas);\n });\n return 1; // continue\n }\n if (!newAtlas) {\n newAtlas = _this2._createAtlas();\n newAtlases.push(newAtlas);\n }\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var key = _step2.value;\n if (!keysToCollect.has(key)) {\n var _atlas$getOffsets = atlas.getOffsets(key),\n _atlas$getOffsets2 = _slicedToArray(_atlas$getOffsets, 2),\n s1 = _atlas$getOffsets2[0],\n s2 = _atlas$getOffsets2[1];\n if (!newAtlas.canFit({\n w: s1.w + s2.w,\n h: s1.h\n })) {\n newAtlas.lock();\n newAtlas = _this2._createAtlas();\n newAtlases.push(newAtlas);\n }\n if (atlas.canvas) {\n // if the texture can't be copied then it will have to be redrawn on the next frame\n _this2._copyTextureToNewAtlas(key, atlas, newAtlas);\n newStyleKeyToAtlas.set(key, newAtlas);\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n atlas.dispose();\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n if (_loop()) continue;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n this.atlases = newAtlases;\n this.styleKeyToAtlas = newStyleKeyToAtlas;\n this.markedKeys = new Set();\n }\n }, {\n key: \"_copyTextureToNewAtlas\",\n value: function _copyTextureToNewAtlas(key, oldAtlas, newAtlas) {\n var _oldAtlas$getOffsets = oldAtlas.getOffsets(key),\n _oldAtlas$getOffsets2 = _slicedToArray(_oldAtlas$getOffsets, 2),\n s1 = _oldAtlas$getOffsets2[0],\n s2 = _oldAtlas$getOffsets2[1];\n if (s2.w === 0) {\n // the texture does not wrap, draw directly to new atlas\n newAtlas.draw(key, s1, function (context) {\n context.drawImage(oldAtlas.canvas, s1.x, s1.y, s1.w, s1.h, 0, 0, s1.w, s1.h);\n });\n } else {\n // the texture wraps, first draw both parts to a scratch canvas\n var scratch = this._getScratchCanvas();\n scratch.clear();\n scratch.context.drawImage(oldAtlas.canvas, s1.x, s1.y, s1.w, s1.h, 0, 0, s1.w, s1.h);\n scratch.context.drawImage(oldAtlas.canvas, s2.x, s2.y, s2.w, s2.h, s1.w, 0, s2.w, s2.h);\n\n // now draw the scratch to the new atlas\n var w = s1.w + s2.w;\n var h = s1.h;\n newAtlas.draw(key, {\n w: w,\n h: h\n }, function (context) {\n context.drawImage(scratch, 0, 0, w, h, 0, 0, w, h // the destination context has already been translated to the correct position\n );\n });\n }\n }\n }, {\n key: \"getCounts\",\n value: function getCounts() {\n return {\n keyCount: this.styleKeyToAtlas.size,\n atlasCount: new Set(this.styleKeyToAtlas.values()).size\n };\n }\n }]);\n}();\nfunction intersection(set1, set2) {\n // TODO why no Set.intersection in node 16???\n if (set1.intersection) return set1.intersection(set2);else return new Set(_toConsumableArray(set1).filter(function (x) {\n return set2.has(x);\n }));\n}\n\n/**\n * Used to manage batches of Atlases for drawing nodes and labels.\n * Supports different types of AtlasCollections for different render types,\n * for example 'node-body' and 'node-label' would be different render types.\n * Render types are kept separate because they will likely need to be garbage collected\n * separately and its not entierly guaranteed that their style keys won't collide.\n */\nvar AtlasManager = /*#__PURE__*/function () {\n function AtlasManager(r, globalOptions) {\n _classCallCheck(this, AtlasManager);\n this.r = r;\n this.globalOptions = globalOptions;\n this.atlasSize = globalOptions.webglTexSize;\n this.maxAtlasesPerBatch = globalOptions.webglTexPerBatch;\n this.renderTypes = new Map(); // renderType:string -> renderTypeOptions\n this.collections = new Map(); // collectionName:string -> AtlasCollection\n\n this.typeAndIdToKey = new Map(); // [renderType,id] => Array',ZAt='',GAt='',KAt='',YAt='',JAt='',XAt='',QAt='',eOt='',tOt='',nOt='',rOt='',iOt='',sOt='',aOt='',oOt='',lOt='',cOt='',uOt='',dOt='',fOt='',hOt='',pOt='',mOt='',gOt='',vOt='',yOt='',bOt='',xOt='',wOt='',_Ot='',kOt='',SOt='',COt='',EOt='',$Ot='',TOt='',IOt='',AOt='',OOt='',DOt='',MOt='',NOt='',ROt='',LOt='',POt='',jOt='',zOt='',FOt='',BOt='',UOt='',qOt='',HOt='',WOt='',VOt='',ZOt='',GOt='',KOt='',YOt='',JOt='',XOt='',QOt='',eDt='',tDt='',nDt='',rDt='',iDt='',sDt='',aDt='',oDt='',lDt='',cDt='',uDt='',dDt='',fDt='',hDt='',pDt='',mDt='',gDt='',vDt='',yDt='',bDt='',xDt='',wDt='',_Dt='',kDt='',SDt='',CDt='',EDt='',$Dt='',TDt='',IDt='',ADt='',ODt='',DDt='',MDt='',NDt='',RDt='',LDt='',PDt='',jDt='',zDt='',FDt='',BDt='',UDt='',qDt='',HDt='',WDt='',VDt='',ZDt='',GDt='',KDt='',YDt='',JDt='',XDt='',QDt='',eMt='',tMt='',nMt='',rMt='',iMt='',sMt='',aMt='',oMt='',lMt='',cMt='',uMt='',dMt='',fMt='',hMt='',pMt='',mMt='',gMt='',vMt='',yMt={folder:PAt,bsl:jAt,mdo:zAt,salesforce:FAt,asm:BAt,bicep:UAt,c:qAt,"c-sharp":'',html:HAt,cpp:WAt,clojure:VAt,coldfusion:ZAt,coffee:GAt,config:KAt,crystal:YAt,crystal_embedded:JAt,json:XAt,css:QAt,csv:eOt,xls:tOt,cu:nOt,cake:rOt,cake_php:iOt,d:sOt,word:aOt,ejs:oOt,elixir:lOt,elixir_script:cOt,hex:uOt,elm:dOt,favicon:fOt,"f-sharp":'',git:hOt,go2:pOt,go:mOt,godot:gOt,gradle:vOt,grails:yOt,graphql:bOt,hacklang:xOt,haml:wOt,mustache:_Ot,haskell:kOt,haxe:SOt,jade:COt,java:EOt,javascript:$Ot,jinja:TOt,julia:IOt,karma:AOt,kotlin:OOt,dart:DOt,less:MOt,liquid:NOt,livescript:ROt,lua:LOt,markdown:POt,argdown:jOt,info:zOt,clock:FOt,maven:BOt,nim:UOt,github:qOt,notebook:HOt,nunjucks:WOt,npm:VOt,ocaml:ZOt,odata:GOt,perl:KOt,php:YOt,pipeline:JOt,pddl:XOt,plan:QOt,happenings:eDt,powershell:tDt,prisma:nDt,pug:rDt,puppet:iDt,purescript:sDt,python:aDt,react:oDt,reasonml:lDt,rescript:cDt,R:uDt,ruby:dDt,html_erb:fDt,rust:hDt,sass:pDt,spring:mDt,slim:gDt,smarty:vDt,sbt:yDt,scala:bDt,ethereum:xDt,stylus:wDt,svelte:_Dt,swift:kDt,db:SDt,terraform:CDt,tex:EDt,default:'',twig:$Dt,typescript:TDt,tsconfig:IDt,vala:ADt,vue:ODt,wasm:DDt,wat:MDt,xml:NDt,yml:RDt,prolog:LDt,zip:PDt,wgt:jDt,illustrator:zDt,photoshop:FDt,pdf:BDt,font:UDt,image:qDt,svg:HDt,sublime:WDt,"code-search":'',shell:VDt,video:ZDt,audio:GDt,windows:KDt,jenkins:YDt,babel:JDt,bower:XDt,docker:QDt,"code-climate":'',eslint:eMt,firebase:tMt,firefox:nMt,grunt:rMt,gulp:iMt,ionic:sMt,platformio:aMt,rollup:oMt,stylelint:lMt,yarn:cMt,webpack:uMt,lock:dMt,license:fMt,makefile:hMt,heroku:pMt,todo:mMt,npm_ignored:gMt,ignored:vMt};var hde;function bMt(){if(hde)return o1;hde=1;var t=o1&&o1.__assign||function(){return t=Object.assign||function(l){for(var c,u=1,d=arguments.length;u-1)return f[1]}return r.default},a=function(l){var c=s(l),u=c[0],d=c[1];return{svg:i[u],color:d}};o1.getIcon=a;var o=function(l){return function(c){var u=a(c);return t(t({},u),{color:l[u.color]})}};return o1.themeIcons=o,o1}var xMt=bMt();function t5({filename:t,height:e,width:n}){const r=g.useMemo(()=>{if(t.includes(" (")){const l=t.split(" ");return l.pop(),l.join(" ")}else return t},[t]),i=xMt.themeIcons({blue:"#268bd2",grey:"#657b83","grey-light":"#839496",green:"#859900",orange:"#cb4b16",pink:"#d33682",purple:"#6c71c4",red:"#dc322f",white:"#fdf6e3",yellow:"#b58900",ignore:"#586e75"}),{svg:s,color:a}=i(r),o=Og.sanitize(s);return y.jsx("span",{dangerouslySetInnerHTML:{__html:o},style:{width:n,height:e,fill:a,flexShrink:0,display:"flex"}})}var UN,pde;function wMt(){if(pde)return UN;pde=1,UN=t;function t(e){if(e)throw e}return UN}/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */var qN,mde;function w8e(){return mde||(mde=1,qN=function(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}),qN}var HN,gde;function _8e(){if(gde)return HN;gde=1;var t=Object.prototype.hasOwnProperty,e=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(c){return typeof Array.isArray=="function"?Array.isArray(c):e.call(c)==="[object Array]"},s=function(c){if(!c||e.call(c)!=="[object Object]")return!1;var u=t.call(c,"constructor"),d=c.constructor&&c.constructor.prototype&&t.call(c.constructor.prototype,"isPrototypeOf");if(c.constructor&&!u&&!d)return!1;var f;for(f in c);return typeof f>"u"||t.call(c,f)},a=function(c,u){n&&u.name==="__proto__"?n(c,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):c[u.name]=u.newValue},o=function(c,u){if(u==="__proto__")if(t.call(c,u)){if(r)return r(c,u).value}else return;return c[u]};return HN=function l(){var c,u,d,f,h,m,p=arguments[0],v=1,x=arguments.length,w=!1;for(typeof p=="boolean"&&(w=p,p=arguments[1]||{},v=2),(p==null||typeof p!="object"&&typeof p!="function")&&(p={});v{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;const e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}),WN}var VN,yde;function kMt(){if(yde)return VN;yde=1;var t=[].slice;VN=e;function e(n,r){var i;return s;function s(){var l=t.call(arguments,0),c=n.length>l.length,u;c&&l.push(a);try{u=n.apply(null,l)}catch(d){if(c&&i)throw d;return a(d)}c||(u&&typeof u.then=="function"?u.then(o,a):u instanceof Error?a(u):o(u))}function a(){i||(i=!0,r.apply(null,arguments))}function o(l){a(null,l)}}return VN}var ZN,bde;function SMt(){if(bde)return ZN;bde=1;var t=kMt();ZN=n,n.wrap=t;var e=[].slice;function n(){var r=[],i={};return i.run=s,i.use=a,i;function s(){var o=-1,l=e.call(arguments,0,-1),c=arguments[arguments.length-1];if(typeof c!="function")throw new Error("Expected function as last argument, not "+c);u.apply(null,[null].concat(l));function u(d){var f=r[++o],h=e.call(arguments,0),m=h.slice(1),p=l.length,v=-1;if(d){c(d);return}for(;++vo.length){for(;d--;)if(o.charCodeAt(d)===47){if(h){c=d+1;break}}else u<0&&(h=!0,u=d+1);return u<0?"":o.slice(c,u)}if(l===o)return"";for(f=-1,m=l.length-1;d--;)if(o.charCodeAt(d)===47){if(h){c=d+1;break}}else f<0&&(h=!0,f=d+1),m>-1&&(o.charCodeAt(d)===l.charCodeAt(m--)?m<0&&(u=d):(m=-1,u=f));return c===u?u=f:u<0&&(u=o.length),o.slice(c,u)}function e(o){var l,c,u;if(a(o),!o.length)return".";for(l=-1,u=o.length;--u;)if(o.charCodeAt(u)===47){if(c){l=u;break}}else c||(c=!0);return l<0?o.charCodeAt(0)===47?"/":".":l===1&&o.charCodeAt(0)===47?"//":o.slice(0,l)}function n(o){var l=-1,c=0,u=-1,d=0,f,h,m;for(a(o),m=o.length;m--;){if(h=o.charCodeAt(m),h===47){if(f){c=m+1;break}continue}u<0&&(f=!0,u=m+1),h===46?l<0?l=m:d!==1&&(d=1):l>-1&&(d=-1)}return l<0||u<0||d===0||d===1&&l===u-1&&l===c+1?"":o.slice(l,u)}function r(){for(var o=-1,l;++o2){if(p=c.lastIndexOf("/"),p!==c.length-1){p<0?(c="",u=0):(c=c.slice(0,p),u=c.length-1-c.lastIndexOf("/")),d=h,f=0;continue}}else if(c.length){c="",u=0,d=h,f=0;continue}}l&&(c=c.length?c+"/..":"..",u=2)}else c.length?c+="/"+o.slice(d+1,h):c=o.slice(d+1,h),u=h-d-1;d=h,f=0}else m===46&&f>-1?f++:f=-1}return c}function a(o){if(typeof o!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(o))}return l1}var YN={},kde;function $Mt(){if(kde)return YN;kde=1,YN.cwd=t;function t(){return"/"}return YN}var JN,Sde;function TMt(){if(Sde)return JN;Sde=1;var t=EMt(),e=$Mt(),n=w8e();JN=s;var r={}.hasOwnProperty,i=["history","path","basename","stem","extname","dirname"];s.prototype.toString=v,Object.defineProperty(s.prototype,"path",{get:a,set:o}),Object.defineProperty(s.prototype,"dirname",{get:l,set:c}),Object.defineProperty(s.prototype,"basename",{get:u,set:d}),Object.defineProperty(s.prototype,"extname",{get:f,set:h}),Object.defineProperty(s.prototype,"stem",{get:m,set:p});function s(S){var _,C;if(!S)S={};else if(typeof S=="string"||n(S))S={contents:S};else if("message"in S&&"messages"in S)return S;if(!(this instanceof s))return new s(S);for(this.data={},this.messages=[],this.history=[],this.cwd=e.cwd(),C=-1;++C-1)throw new Error("`extname` cannot contain multiple dots")}this.path=t.join(this.dirname,this.stem+(S||""))}function m(){return typeof this.path=="string"?t.basename(this.path,this.extname):void 0}function p(S){w(S,"stem"),x(S,"stem"),this.path=t.join(this.dirname||"",S+(this.extname||""))}function v(S){return(this.contents||"").toString(S)}function x(S,_){if(S&&S.indexOf(t.sep)>-1)throw new Error("`"+_+"` cannot be a path: did not expect `"+t.sep+"`")}function w(S,_){if(!S)throw new Error("`"+_+"` cannot be empty")}function E(S,_){if(!S)throw new Error("Setting `"+_+"` requires `path` to be set too")}return JN}var XN,Cde;function IMt(){if(Cde)return XN;Cde=1;var t=CMt(),e=TMt();XN=e,e.prototype.message=n,e.prototype.info=i,e.prototype.fail=r;function n(s,a,o){var l=new t(s,a,o);return this.path&&(l.name=this.path+":"+l.name,l.file=this.path),l.fatal=!1,this.messages.push(l),l}function r(){var s=this.message.apply(this,arguments);throw s.fatal=!0,s}function i(){var s=this.message.apply(this,arguments);return s.fatal=null,s}return XN}var QN,Ede;function AMt(){return Ede||(Ede=1,QN=IMt()),QN}var eR,$de;function OMt(){if($de)return eR;$de=1;var t=wMt(),e=w8e(),n=_8e(),r=_Mt(),i=SMt(),s=AMt();eR=f().freeze();var a=[].slice,o={}.hasOwnProperty,l=i().use(c).use(u).use(d);function c(S,_){_.tree=S.parse(_.file)}function u(S,_,C){S.run(_.tree,_.file,T);function T(M,A,$){M?C(M):(_.tree=A,_.file=$,C())}}function d(S,_){var C=S.stringify(_.tree,_.file);C==null||(typeof C=="string"||e(C)?("value"in _.file&&(_.file.value=C),_.file.contents=C):_.file.result=C)}function f(){var S=[],_=i(),C={},T=-1,M;return A.data=O,A.freeze=$,A.attachers=S,A.use=D,A.parse=R,A.stringify=G,A.run=q,A.runSync=W,A.process=U,A.processSync=J,A;function A(){for(var F=f(),H=-1;++H13&&i<32||i>126&&i<160||i>55295&&i<57344||i>64975&&i<65008||(i&65535)===65535||(i&65535)===65534||i>1114111?"�":t(i)}return aR=e,aR}var cS={},oR,Nde;function za(){if(Nde)return oR;Nde=1;function t(e){return e<-2}return oR=t,oR}var lR,Rde;function Ip(){if(Rde)return lR;Rde=1;function t(e){return e===-2||e===-1||e===32}return lR=t,lR}var cR,Lde;function Co(){if(Lde)return cR;Lde=1;var t=Ip();function e(n,r,i,s){var a=s?s-1:1/0,o=0;return l;function l(u){return t(u)?(n.enter(i),c(u)):r(u)}function c(u){return t(u)&&o++O;)u.containerState=d[N][1],d[N][0].exit.call(u,c);d.length=O}function $(O,D){var N=0;return m={},R;function R(F){return N-1?void 0:4)}function l(c,u,d){return e(c,c.lazy(this.parser.constructs.flow,u,d),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}return uS.tokenize=r,uS}var dS={},dR,Fde;function C8e(){if(Fde)return dR;Fde=1;function t(e){for(var n=-1,r=0;++na?0:a+r:r=r>a?a:r,i=i>0?i:0,s.length<1e4)l=Array.from(s),l.unshift(r,i),t.apply(n,l);else for(i&&t.apply(n,[r,i]);o-1||e(f.events,"linePrefix")<4?c.interrupt(f.parser.constructs.flow,d,u)(p):u(p)}}return vR=i,vR}var Zde;function FMt(){if(Zde)return dS;Zde=1,Object.defineProperty(dS,"__esModule",{value:!0});var t=zMt(),e=Co(),n=CT(),r=i;function i(s){var a=this,o=s.attempt(n,l,s.attempt(this.parser.constructs.flowInitial,c,e(s,s.attempt(this.parser.constructs.flow,c,s.attempt(t,c)),"linePrefix")));return o;function l(u){if(u===null){s.consume(u);return}return s.enter("lineEndingBlank"),s.consume(u),s.exit("lineEndingBlank"),a.currentConstruct=void 0,o}function c(u){if(u===null){s.consume(u);return}return s.enter("lineEnding"),s.consume(u),s.exit("lineEnding"),a.currentConstruct=void 0,o}}return dS.tokenize=r,dS}var tv={},Gde;function $8e(){if(Gde)return tv;Gde=1,Object.defineProperty(tv,"__esModule",{value:!0});var t=G6(),e=n5(),n=s("text"),r=s("string"),i={resolveAll:a()};function s(l){return{tokenize:c,resolveAll:a(l==="text"?o:void 0)};function c(u){var d=this,f=this.parser.constructs[l],h=u.attempt(f,m,p);return m;function m(w){return x(w)?h(w):p(w)}function p(w){if(w===null){u.consume(w);return}return u.enter("data"),u.consume(w),v}function v(w){return x(w)?(u.exit("data"),h(w)):(u.consume(w),v)}function x(w){var E=f[w],S=-1;if(w===null)return!0;if(E){for(;++S-1&&(o[0]=o[0].slice(i)),a>0&&o.push(e[s].slice(0,a))),o}return kR=t,kR}var SR,tfe;function HMt(){if(tfe)return SR;tfe=1;var t=G6(),e=za(),n=gK(),r=Dm(),i=mK(),s=vK(),a=UMt(),o=n5(),l=qMt();function c(u,d,f){var h=f?o(f):{line:1,column:1,offset:0},m={},p=[],v=[],x=[],w={consume:D,enter:N,exit:R,attempt:G(q),check:G(W),interrupt:G(W,{interrupt:!0}),lazy:G(W,{lazy:!0})},E={previous:null,events:[],parser:u,sliceStream:T,sliceSerialize:C,now:M,defineSkip:A,write:_},S=d.tokenize.call(E,w);return d.resolveAll&&p.push(d),h._index=0,h._bufferIndex=-1,E;function _(H){return v=n(v,H),$(),v[v.length-1]!==null?[]:(U(d,0),E.events=s(p,E.events,E),E.events)}function C(H){return a(T(H))}function T(H){return l(v,H)}function M(){return o(h)}function A(H){m[H.line]=H.column,F()}function $(){for(var H,V;h._index-1?ne():Ye.tokenize.call(V?t({},E,V):E,w,ft,ne)(Lt)}}function ft(Ye){return H(te,Fe),oe}function ne(Ye){return Fe.restore(),++le1&&c[d][1].end.offset-c[d][1].start.offset>1?2:1,p={type:x>1?"strongSequence":"emphasisSequence",start:r(s(c[f][1].end),-x),end:s(c[f][1].end)},v={type:x>1?"strongSequence":"emphasisSequence",start:s(c[d][1].start),end:r(s(c[d][1].start),x)},m={type:x>1?"strongText":"emphasisText",start:s(c[f][1].end),end:s(c[d][1].start)},h={type:x>1?"strong":"emphasis",start:s(p.start),end:s(v.end)},c[f][1].end=s(p.start),c[d][1].start=s(v.end),w=[],c[f][1].end.offset-c[f][1].start.offset&&(w=t(w,[["enter",c[f][1],u],["exit",c[f][1],u]])),w=t(w,[["enter",h,u],["enter",p,u],["exit",p,u],["enter",m,u]]),w=t(w,i(u.parser.constructs.insideSpan.null,c.slice(f+1,d),u)),w=t(w,[["exit",m,u],["enter",v,u],["exit",v,u],["exit",h,u]]),c[d][1].end.offset-c[d][1].start.offset?(E=2,w=t(w,[["enter",c[d][1],u],["exit",c[d][1],u]])):E=0,e(c,f-1,d-f+3,w),d=f+w.length-E-2;break}}for(d=-1;++d-1?void 0:4)}function s(a){a.exit("blockQuote")}return jR=n,jR}var zR,gfe;function eNt(){if(gfe)return zR;gfe=1;var t=Nm(),e=t(/[!-/:-@[-`{-~]/);return zR=e,zR}var FR,vfe;function tNt(){if(vfe)return FR;vfe=1;var t=eNt(),e={name:"characterEscape",tokenize:n};function n(r,i,s){return a;function a(l){return r.enter("characterEscape"),r.enter("escapeMarker"),r.consume(l),r.exit("escapeMarker"),o}function o(l){return t(l)?(r.enter("characterEscapeValue"),r.consume(l),r.exit("characterEscapeValue"),r.exit("characterEscape"),i):s(l)}}return FR=e,FR}var BR,yfe;function I8e(){if(yfe)return BR;yfe=1;var t,e=59;BR=n;function n(r){var i="&"+r+";",s;return t=t||document.createElement("i"),t.innerHTML=i,s=t.textContent,s.charCodeAt(s.length-1)===e&&r!=="semi"||s===i?!1:s}return BR}var UR,bfe;function A8e(){if(bfe)return UR;bfe=1;var t=Nm(),e=t(/\d/);return UR=e,UR}var qR,xfe;function nNt(){if(xfe)return qR;xfe=1;var t=Nm(),e=t(/[\dA-Fa-f]/);return qR=e,qR}var HR,wfe;function rNt(){if(wfe)return HR;wfe=1;var t=I8e(),e=$T(),n=A8e(),r=nNt();function i(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var s=i(t),a={name:"characterReference",tokenize:o};function o(l,c,u){var d=this,f=0,h,m;return p;function p(E){return l.enter("characterReference"),l.enter("characterReferenceMarker"),l.consume(E),l.exit("characterReferenceMarker"),v}function v(E){return E===35?(l.enter("characterReferenceMarkerNumeric"),l.consume(E),l.exit("characterReferenceMarkerNumeric"),x):(l.enter("characterReferenceValue"),h=31,m=e,w(E))}function x(E){return E===88||E===120?(l.enter("characterReferenceMarkerHexadecimal"),l.consume(E),l.exit("characterReferenceMarkerHexadecimal"),l.enter("characterReferenceValue"),h=6,m=r,w):(l.enter("characterReferenceValue"),h=7,m=n,w(E))}function w(E){var S;return E===59&&f?(S=l.exit("characterReferenceValue"),m===e&&!s.default(d.sliceSerialize(S))?u(E):(l.enter("characterReferenceMarker"),l.consume(E),l.exit("characterReferenceMarker"),l.exit("characterReference"),c)):m(E)&&f++-1?void 0:4);function N(W){return A.enter("codeFencedFence"),A.enter("codeFencedFenceSequence"),R(W)}function R(W){return W===h?(A.consume(W),D++,R):Dh?a(_):(i.consume(_),E):_===41?m--?(i.consume(_),E):(i.exit("chunkString"),i.exit(d),i.exit(u),i.exit(o),s(_)):_===null||e(_)?m?a(_):(i.exit("chunkString"),i.exit(d),i.exit(u),i.exit(o),s(_)):t(_)?a(_):(i.consume(_),_===92?S:E)}function S(_){return _===40||_===41||_===92?(i.consume(_),E):E(_)}}return GR=r,GR}var KR,Efe;function D8e(){if(Efe)return KR;Efe=1;var t=za(),e=Ip();function n(r,i,s,a,o,l){var c=this,u=0,d;return f;function f(v){return r.enter(a),r.enter(o),r.consume(v),r.exit(o),r.enter(l),h}function h(v){return v===null||v===91||v===93&&!d||v===94&&!u&&"_hiddenFootnoteSupport"in c.parser.constructs||u>999?s(v):v===93?(r.exit(l),r.enter(o),r.consume(v),r.exit(o),r.exit(a),i):t(v)?(r.enter("lineEnding"),r.consume(v),r.exit("lineEnding"),h):(r.enter("chunkString",{contentType:"string"}),m(v))}function m(v){return v===null||v===91||v===93||t(v)||u++>999?(r.exit("chunkString"),h(v)):(r.consume(v),d=d||!e(v),v===92?p:m)}function p(v){return v===91||v===92||v===93?(r.consume(v),u++,m):m(v)}}return KR=n,KR}var YR,$fe;function M8e(){if($fe)return YR;$fe=1;var t=za(),e=Ip(),n=Co();function r(i,s){var a;return o;function o(l){return t(l)?(i.enter("lineEnding"),i.consume(l),i.exit("lineEnding"),a=!0,o):e(l)?n(i,o,a?"linePrefix":"lineSuffix")(l):s(l)}}return YR=r,YR}var JR,Tfe;function N8e(){if(Tfe)return JR;Tfe=1;var t=za(),e=Co();function n(r,i,s,a,o,l){var c;return u;function u(p){return r.enter(a),r.enter(o),r.consume(p),r.exit(o),c=p===40?41:p,d}function d(p){return p===c?(r.enter(o),r.consume(p),r.exit(o),r.exit(a),i):(r.enter(l),f(p))}function f(p){return p===c?(r.exit(l),d(c)):p===null?s(p):t(p)?(r.enter("lineEnding"),r.consume(p),r.exit("lineEnding"),e(r,f,"linePrefix")):(r.enter("chunkString",{contentType:"string"}),h(p))}function h(p){return p===c||p===null||t(p)?(r.exit("chunkString"),f(p)):(r.consume(p),p===92?m:h)}function m(p){return p===c||p===92?(r.consume(p),h):h(p)}}return JR=n,JR}var XR,Ife;function oNt(){if(Ife)return XR;Ife=1;var t=za(),e=Mm(),n=pK(),r=O8e(),i=D8e(),s=Co(),a=M8e(),o=N8e(),l={name:"definition",tokenize:u},c={tokenize:d,partial:!0};function u(f,h,m){var p=this,v;return x;function x(S){return f.enter("definition"),i.call(p,f,w,m,"definitionLabel","definitionLabelMarker","definitionLabelString")(S)}function w(S){return v=n(p.sliceSerialize(p.events[p.events.length-1][1]).slice(1,-1)),S===58?(f.enter("definitionMarker"),f.consume(S),f.exit("definitionMarker"),a(f,r(f,f.attempt(c,s(f,E,"whitespace"),s(f,E,"whitespace")),m,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):m(S)}function E(S){return S===null||t(S)?(f.exit("definition"),p.parser.defined.indexOf(v)<0&&p.parser.defined.push(v),h(S)):m(S)}}function d(f,h,m){return p;function p(w){return e(w)?a(f,v)(w):m(w)}function v(w){return w===34||w===39||w===40?o(f,s(f,x,"whitespace"),m,"definitionTitle","definitionTitleMarker","definitionTitleString")(w):m(w)}function x(w){return w===null||t(w)?h(w):m(w)}}return XR=l,XR}var QR,Afe;function lNt(){if(Afe)return QR;Afe=1;var t=za(),e={name:"hardBreakEscape",tokenize:n};function n(r,i,s){return a;function a(l){return r.enter("hardBreakEscape"),r.enter("escapeMarker"),r.consume(l),o}function o(l){return t(l)?(r.exit("escapeMarker"),r.exit("hardBreakEscape"),i(l)):s(l)}}return QR=e,QR}var eL,Ofe;function cNt(){if(Ofe)return eL;Ofe=1;var t=za(),e=Mm(),n=Ip(),r=Dm(),i=Co(),s={name:"headingAtx",tokenize:o,resolve:a};function a(l,c){var u=l.length-2,d=3,f,h;return l[d][1].type==="whitespace"&&(d+=2),u-2>d&&l[u][1].type==="whitespace"&&(u-=2),l[u][1].type==="atxHeadingSequence"&&(d===u-1||u-4>d&&l[u-2][1].type==="whitespace")&&(u-=d+1===u?2:4),u>d&&(f={type:"atxHeadingText",start:l[d][1].start,end:l[u][1].end},h={type:"chunkText",start:l[d][1].start,end:l[u][1].end,contentType:"text"},r(l,d,u-d+1,[["enter",f,c],["enter",h,c],["exit",h,c],["exit",f,c]])),l}function o(l,c,u){var d=this,f=0;return h;function h(w){return l.enter("atxHeading"),l.enter("atxHeadingSequence"),m(w)}function m(w){return w===35&&f++<6?(l.consume(w),m):w===null||e(w)?(l.exit("atxHeadingSequence"),d.interrupt?c(w):p(w)):u(w)}function p(w){return w===35?(l.enter("atxHeadingSequence"),v(w)):w===null||t(w)?(l.exit("atxHeading"),c(w)):n(w)?i(l,p,"whitespace")(w):(l.enter("atxHeadingText"),x(w))}function v(w){return w===35?(l.consume(w),v):(l.exit("atxHeadingSequence"),p(w))}function x(w){return w===null||w===35||e(w)?(l.exit("atxHeadingText"),p(w)):(l.consume(w),x)}}return eL=s,eL}var tL,Dfe;function uNt(){if(Dfe)return tL;Dfe=1;var t=["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","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"];return tL=t,tL}var nL,Mfe;function dNt(){if(Mfe)return nL;Mfe=1;var t=["pre","script","style","textarea"];return nL=t,nL}var rL,Nfe;function fNt(){if(Nfe)return rL;Nfe=1;var t=yK(),e=$T(),n=za(),r=Mm(),i=Ip(),s=ST(),a=uNt(),o=dNt(),l=CT(),c={name:"htmlFlow",tokenize:f,resolveTo:d,concrete:!0},u={tokenize:h,partial:!0};function d(m){for(var p=m.length;p--&&!(m[p][0]==="enter"&&m[p][1].type==="htmlFlow"););return p>1&&m[p-2][1].type==="linePrefix"&&(m[p][1].start=m[p-2][1].start,m[p+1][1].start=m[p-2][1].start,m.splice(p-2,2)),m}function f(m,p,v){var x=this,w,E,S,_,C;return T;function T(ne){return m.enter("htmlFlow"),m.enter("htmlFlowData"),m.consume(ne),M}function M(ne){return ne===33?(m.consume(ne),A):ne===47?(m.consume(ne),D):ne===63?(m.consume(ne),w=3,x.interrupt?p:Ve):t(ne)?(m.consume(ne),S=s(ne),E=!0,N):v(ne)}function A(ne){return ne===45?(m.consume(ne),w=2,$):ne===91?(m.consume(ne),w=5,S="CDATA[",_=0,O):t(ne)?(m.consume(ne),w=4,x.interrupt?p:Ve):v(ne)}function $(ne){return ne===45?(m.consume(ne),x.interrupt?p:Ve):v(ne)}function O(ne){return ne===S.charCodeAt(_++)?(m.consume(ne),_===S.length?x.interrupt?p:oe:O):v(ne)}function D(ne){return t(ne)?(m.consume(ne),S=s(ne),N):v(ne)}function N(ne){return ne===null||ne===47||ne===62||r(ne)?ne!==47&&E&&o.indexOf(S.toLowerCase())>-1?(w=1,x.interrupt?p(ne):oe(ne)):a.indexOf(S.toLowerCase())>-1?(w=6,ne===47?(m.consume(ne),R):x.interrupt?p(ne):oe(ne)):(w=7,x.interrupt?v(ne):E?W(ne):q(ne)):ne===45||e(ne)?(m.consume(ne),S+=s(ne),N):v(ne)}function R(ne){return ne===62?(m.consume(ne),x.interrupt?p:oe):v(ne)}function q(ne){return i(ne)?(m.consume(ne),q):L(ne)}function W(ne){return ne===47?(m.consume(ne),L):ne===58||ne===95||t(ne)?(m.consume(ne),G):i(ne)?(m.consume(ne),W):L(ne)}function G(ne){return ne===45||ne===46||ne===58||ne===95||e(ne)?(m.consume(ne),G):U(ne)}function U(ne){return ne===61?(m.consume(ne),J):i(ne)?(m.consume(ne),U):W(ne)}function J(ne){return ne===null||ne===60||ne===61||ne===62||ne===96?v(ne):ne===34||ne===39?(m.consume(ne),C=ne,F):i(ne)?(m.consume(ne),J):(C=void 0,H(ne))}function F(ne){return ne===C?(m.consume(ne),V):ne===null||n(ne)?v(ne):(m.consume(ne),F)}function H(ne){return ne===null||ne===34||ne===39||ne===60||ne===61||ne===62||ne===96||r(ne)?U(ne):(m.consume(ne),H)}function V(ne){return ne===47||ne===62||i(ne)?W(ne):v(ne)}function L(ne){return ne===62?(m.consume(ne),se):v(ne)}function se(ne){return i(ne)?(m.consume(ne),se):ne===null||n(ne)?oe(ne):v(ne)}function oe(ne){return ne===45&&w===2?(m.consume(ne),le):ne===60&&w===1?(m.consume(ne),te):ne===62&&w===4?(m.consume(ne),vt):ne===63&&w===3?(m.consume(ne),Ve):ne===93&&w===5?(m.consume(ne),Ge):n(ne)&&(w===6||w===7)?m.check(u,vt,X)(ne):ne===null||n(ne)?X(ne):(m.consume(ne),oe)}function X(ne){return m.exit("htmlFlowData"),de(ne)}function de(ne){return ne===null?ft(ne):n(ne)?(m.enter("lineEnding"),m.consume(ne),m.exit("lineEnding"),de):(m.enter("htmlFlowData"),oe(ne))}function le(ne){return ne===45?(m.consume(ne),Ve):oe(ne)}function te(ne){return ne===47?(m.consume(ne),S="",Fe):oe(ne)}function Fe(ne){return ne===62&&o.indexOf(S.toLowerCase())>-1?(m.consume(ne),vt):t(ne)&&S.length<8?(m.consume(ne),S+=s(ne),Fe):oe(ne)}function Ge(ne){return ne===93?(m.consume(ne),Ve):oe(ne)}function Ve(ne){return ne===62?(m.consume(ne),vt):oe(ne)}function vt(ne){return ne===null||n(ne)?(m.exit("htmlFlowData"),ft(ne)):(m.consume(ne),vt)}function ft(ne){return m.exit("htmlFlow"),p(ne)}}function h(m,p,v){return x;function x(w){return m.exit("htmlFlowData"),m.enter("lineEndingBlank"),m.consume(w),m.exit("lineEndingBlank"),m.attempt(l,p,v)}}return rL=c,rL}var iL,Rfe;function hNt(){if(Rfe)return iL;Rfe=1;var t=yK(),e=$T(),n=za(),r=Mm(),i=Ip(),s=Co(),a={name:"htmlText",tokenize:o};function o(l,c,u){var d=this,f,h,m,p;return v;function v(te){return l.enter("htmlText"),l.enter("htmlTextData"),l.consume(te),x}function x(te){return te===33?(l.consume(te),w):te===47?(l.consume(te),q):te===63?(l.consume(te),N):t(te)?(l.consume(te),U):u(te)}function w(te){return te===45?(l.consume(te),E):te===91?(l.consume(te),h="CDATA[",m=0,M):t(te)?(l.consume(te),D):u(te)}function E(te){return te===45?(l.consume(te),S):u(te)}function S(te){return te===null||te===62?u(te):te===45?(l.consume(te),_):C(te)}function _(te){return te===null||te===62?u(te):C(te)}function C(te){return te===null?u(te):te===45?(l.consume(te),T):n(te)?(p=C,X(te)):(l.consume(te),C)}function T(te){return te===45?(l.consume(te),le):C(te)}function M(te){return te===h.charCodeAt(m++)?(l.consume(te),m===h.length?A:M):u(te)}function A(te){return te===null?u(te):te===93?(l.consume(te),$):n(te)?(p=A,X(te)):(l.consume(te),A)}function $(te){return te===93?(l.consume(te),O):A(te)}function O(te){return te===62?le(te):te===93?(l.consume(te),O):A(te)}function D(te){return te===null||te===62?le(te):n(te)?(p=D,X(te)):(l.consume(te),D)}function N(te){return te===null?u(te):te===63?(l.consume(te),R):n(te)?(p=N,X(te)):(l.consume(te),N)}function R(te){return te===62?le(te):N(te)}function q(te){return t(te)?(l.consume(te),W):u(te)}function W(te){return te===45||e(te)?(l.consume(te),W):G(te)}function G(te){return n(te)?(p=G,X(te)):i(te)?(l.consume(te),G):le(te)}function U(te){return te===45||e(te)?(l.consume(te),U):te===47||te===62||r(te)?J(te):u(te)}function J(te){return te===47?(l.consume(te),le):te===58||te===95||t(te)?(l.consume(te),F):n(te)?(p=J,X(te)):i(te)?(l.consume(te),J):le(te)}function F(te){return te===45||te===46||te===58||te===95||e(te)?(l.consume(te),F):H(te)}function H(te){return te===61?(l.consume(te),V):n(te)?(p=H,X(te)):i(te)?(l.consume(te),H):J(te)}function V(te){return te===null||te===60||te===61||te===62||te===96?u(te):te===34||te===39?(l.consume(te),f=te,L):n(te)?(p=V,X(te)):i(te)?(l.consume(te),V):(l.consume(te),f=void 0,oe)}function L(te){return te===f?(l.consume(te),se):te===null?u(te):n(te)?(p=L,X(te)):(l.consume(te),L)}function se(te){return te===62||te===47||r(te)?J(te):u(te)}function oe(te){return te===null||te===34||te===39||te===60||te===61||te===96?u(te):te===62||r(te)?J(te):(l.consume(te),oe)}function X(te){return l.exit("htmlTextData"),l.enter("lineEnding"),l.consume(te),l.exit("lineEnding"),s(l,de,"linePrefix",d.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function de(te){return l.enter("htmlTextData"),p(te)}function le(te){return te===62?(l.consume(te),l.exit("htmlTextData"),l.exit("htmlText"),c):u(te)}}return iL=a,iL}var sL,Lfe;function bK(){if(Lfe)return sL;Lfe=1;var t=Mm(),e=gK(),n=Dm(),r=pK(),i=vK(),s=n5(),a=O8e(),o=D8e(),l=N8e(),c=M8e(),u={name:"labelEnd",tokenize:v,resolveTo:p,resolveAll:m},d={tokenize:x},f={tokenize:w},h={tokenize:E};function m(S){for(var _=-1,C;++_-1,S.enter("labelEnd"),S.enter("labelMarker"),S.consume(R),S.exit("labelMarker"),S.exit("labelEnd"),D):C(R)}function D(R){return R===40?S.attempt(d,_,$?_:N)(R):R===91?S.attempt(f,_,$?S.attempt(h,_,N):N)(R):$?_(R):N(R)}function N(R){return A._balanced=!0,C(R)}}function x(S,_,C){return T;function T(D){return S.enter("resource"),S.enter("resourceMarker"),S.consume(D),S.exit("resourceMarker"),c(S,M)}function M(D){return D===41?O(D):a(S,A,C,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",3)(D)}function A(D){return t(D)?c(S,$)(D):O(D)}function $(D){return D===34||D===39||D===40?l(S,c(S,O),C,"resourceTitle","resourceTitleMarker","resourceTitleString")(D):O(D)}function O(D){return D===41?(S.enter("resourceMarker"),S.consume(D),S.exit("resourceMarker"),S.exit("resource"),_):C(D)}}function w(S,_,C){var T=this;return M;function M($){return o.call(T,S,A,C,"reference","referenceMarker","referenceString")($)}function A($){return T.parser.defined.indexOf(r(T.sliceSerialize(T.events[T.events.length-1][1]).slice(1,-1)))<0?C($):_($)}}function E(S,_,C){return T;function T(A){return S.enter("reference"),S.enter("referenceMarker"),S.consume(A),S.exit("referenceMarker"),M}function M(A){return A===93?(S.enter("referenceMarker"),S.consume(A),S.exit("referenceMarker"),S.exit("reference"),_):C(A)}}return sL=u,sL}var aL,Pfe;function pNt(){if(Pfe)return aL;Pfe=1;var t=bK(),e={name:"labelStartImage",tokenize:n,resolveAll:t.resolveAll};function n(r,i,s){var a=this;return o;function o(u){return r.enter("labelImage"),r.enter("labelImageMarker"),r.consume(u),r.exit("labelImageMarker"),l}function l(u){return u===91?(r.enter("labelMarker"),r.consume(u),r.exit("labelMarker"),r.exit("labelImage"),c):s(u)}function c(u){return u===94&&"_hiddenFootnoteSupport"in a.parser.constructs?s(u):i(u)}}return aL=e,aL}var oL,jfe;function mNt(){if(jfe)return oL;jfe=1;var t=bK(),e={name:"labelStartLink",tokenize:n,resolveAll:t.resolveAll};function n(r,i,s){var a=this;return o;function o(c){return r.enter("labelLink"),r.enter("labelMarker"),r.consume(c),r.exit("labelMarker"),r.exit("labelLink"),l}function l(c){return c===94&&"_hiddenFootnoteSupport"in a.parser.constructs?s(c):i(c)}}return oL=e,oL}var lL,zfe;function gNt(){if(zfe)return lL;zfe=1;var t=Co(),e={name:"lineEnding",tokenize:n};function n(r,i){return s;function s(a){return r.enter("lineEnding"),r.consume(a),r.exit("lineEnding"),t(r,i,"linePrefix")}}return lL=e,lL}var cL,Ffe;function R8e(){if(Ffe)return cL;Ffe=1;var t=za(),e=Ip(),n=Co(),r={name:"thematicBreak",tokenize:i};function i(s,a,o){var l=0,c;return u;function u(h){return s.enter("thematicBreak"),c=h,d(h)}function d(h){return h===c?(s.enter("thematicBreakSequence"),f(h)):e(h)?n(s,d,"whitespace")(h):l<3||h!==null&&!t(h)?o(h):(s.exit("thematicBreak"),a(h))}function f(h){return h===c?(s.consume(h),l++,f):(s.exit("thematicBreakSequence"),d(h))}}return cL=r,cL}var uL,Bfe;function vNt(){if(Bfe)return uL;Bfe=1;var t=A8e(),e=Ip(),n=ET(),r=C8e(),i=Co(),s=CT(),a=R8e(),o={name:"list",tokenize:u,continuation:{tokenize:d},exit:h},l={tokenize:m,partial:!0},c={tokenize:f,partial:!0};function u(p,v,x){var w=this,E=n(w.events,"linePrefix"),S=0;return _;function _(O){var D=w.containerState.type||(O===42||O===43||O===45?"listUnordered":"listOrdered");if(D==="listUnordered"?!w.containerState.marker||O===w.containerState.marker:t(O)){if(w.containerState.type||(w.containerState.type=D,p.enter(D,{_container:!0})),D==="listUnordered")return p.enter("listItemPrefix"),O===42||O===45?p.check(a,x,T)(O):T(O);if(!w.interrupt||O===49)return p.enter("listItemPrefix"),p.enter("listItemValue"),C(O)}return x(O)}function C(O){return t(O)&&++S<10?(p.consume(O),C):(!w.interrupt||S<2)&&(w.containerState.marker?O===w.containerState.marker:O===41||O===46)?(p.exit("listItemValue"),T(O)):x(O)}function T(O){return p.enter("listItemMarker"),p.consume(O),p.exit("listItemMarker"),w.containerState.marker=w.containerState.marker||O,p.check(s,w.interrupt?x:M,p.attempt(l,$,A))}function M(O){return w.containerState.initialBlankLine=!0,E++,$(O)}function A(O){return e(O)?(p.enter("listItemPrefixWhitespace"),p.consume(O),p.exit("listItemPrefixWhitespace"),$):x(O)}function $(O){return w.containerState.size=E+r(w.sliceStream(p.exit("listItemPrefix"))),v(O)}}function d(p,v,x){var w=this;return w.containerState._closeFlow=void 0,p.check(s,E,S);function E(C){return w.containerState.furtherBlankLines=w.containerState.furtherBlankLines||w.containerState.initialBlankLine,i(p,v,"listItemIndent",w.containerState.size+1)(C)}function S(C){return w.containerState.furtherBlankLines||!e(C)?(w.containerState.furtherBlankLines=w.containerState.initialBlankLine=void 0,_(C)):(w.containerState.furtherBlankLines=w.containerState.initialBlankLine=void 0,p.attempt(c,v,_)(C))}function _(C){return w.containerState._closeFlow=!0,w.interrupt=void 0,i(p,p.attempt(o,v,x),"linePrefix",w.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)(C)}}function f(p,v,x){var w=this;return i(p,E,"listItemIndent",w.containerState.size+1);function E(S){return n(w.events,"listItemIndent")===w.containerState.size?v(S):x(S)}}function h(p){p.exit(this.containerState.type)}function m(p,v,x){var w=this;return i(p,E,"listItemPrefixWhitespace",w.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5);function E(S){return e(S)||!n(w.events,"listItemPrefixWhitespace")?x(S):v(S)}}return uL=o,uL}var dL,Ufe;function yNt(){if(Ufe)return dL;Ufe=1;var t=za(),e=n5(),n=Co(),r={name:"setextUnderline",tokenize:s,resolveTo:i};function i(a,o){for(var l=a.length,c,u,d,f;l--;)if(a[l][0]==="enter"){if(a[l][1].type==="content"){c=l;break}a[l][1].type==="paragraph"&&(u=l)}else a[l][1].type==="content"&&a.splice(l,1),!d&&a[l][1].type==="definition"&&(d=l);return f={type:"setextHeading",start:e(a[u][1].start),end:e(a[a.length-1][1].end)},a[u][1].type="setextHeadingText",d?(a.splice(u,0,["enter",f,o]),a.splice(d+1,0,["exit",a[c][1],o]),a[c][1].end=e(a[d][1].end)):a[c][1]=f,a.push(["exit",f,o]),a}function s(a,o,l){for(var c=this,u=c.events.length,d,f;u--;)if(c.events[u][1].type!=="lineEnding"&&c.events[u][1].type!=="linePrefix"&&c.events[u][1].type!=="content"){f=c.events[u][1].type==="paragraph";break}return h;function h(v){return!c.lazy&&(c.interrupt||f)?(a.enter("setextHeadingLine"),a.enter("setextHeadingLineSequence"),d=v,m(v)):l(v)}function m(v){return v===d?(a.consume(v),m):(a.exit("setextHeadingLineSequence"),n(a,p,"lineSuffix")(v))}function p(v){return v===null||t(v)?(a.exit("setextHeadingLine"),o(v)):l(v)}}return dL=r,dL}var qfe;function bNt(){if(qfe)return md;qfe=1,Object.defineProperty(md,"__esModule",{value:!0});var t=$8e(),e=YMt(),n=XMt(),r=QMt(),i=tNt(),s=rNt(),a=iNt(),o=sNt(),l=aNt(),c=oNt(),u=lNt(),d=cNt(),f=fNt(),h=hNt(),m=bK(),p=pNt(),v=mNt(),x=gNt(),w=vNt(),E=yNt(),S=R8e(),_={42:w,43:w,45:w,48:w,49:w,50:w,51:w,52:w,53:w,54:w,55:w,56:w,57:w,62:r},C={91:c},T={"-2":o,"-1":o,32:o},M={35:d,42:S,45:[E,S],60:f,61:E,95:S,96:a,126:a},A={38:s,92:i},$={"-5":x,"-4":x,"-3":x,33:p,38:s,42:e,60:[n,h],91:v,92:[u,i],93:m,95:e,96:l},O={null:[e,t.resolver]},D={null:[]};return md.contentInitial=C,md.disable=D,md.document=_,md.flow=M,md.flowInitial=T,md.insideSpan=O,md.string=A,md.text=$,md}var fL,Hfe;function xNt(){if(Hfe)return fL;Hfe=1;var t=LMt(),e=PMt(),n=FMt(),r=$8e(),i=BMt(),s=HMt(),a=mK(),o=bNt();function l(c){var u=c||{},d={defined:[],constructs:i([o].concat(a(u.extensions))),content:f(t),document:f(e),flow:f(n),string:f(r.string),text:f(r.text)};return d;function f(h){return m;function m(p){return s(d,h,p)}}}return fL=l,fL}var hL,Wfe;function wNt(){if(Wfe)return hL;Wfe=1;var t=/[\0\t\n\r]/g;function e(){var n=!0,r=1,i="",s;return a;function a(o,l,c){var u=[],d,f,h,m,p;for(o=i+o.toString(l),h=0,i="",n&&(o.charCodeAt(0)===65279&&h++,n=void 0);h-1&&(de.call(this,ze),le.call(this,ze))}function Fe(){S("atHardBreak",!0)}function Ge(){var ze=this.resume();this.stack[this.stack.length-1].value=ze}function Ve(){var ze=this.resume();this.stack[this.stack.length-1].value=ze}function vt(){var ze=this.resume();this.stack[this.stack.length-1].value=ze}function ft(){var ze=this.stack[this.stack.length-1];_("inReference")?(ze.type+="Reference",ze.referenceType=_("referenceType")||"shortcut",delete ze.url,delete ze.title):(delete ze.identifier,delete ze.label,delete ze.referenceType),S("referenceType")}function ne(){var ze=this.stack[this.stack.length-1];_("inReference")?(ze.type+="Reference",ze.referenceType=_("referenceType")||"shortcut",delete ze.url,delete ze.title):(delete ze.identifier,delete ze.label,delete ze.referenceType),S("referenceType")}function Ye(ze){this.stack[this.stack.length-2].identifier=r(this.sliceSerialize(ze)).toLowerCase()}function Xe(){var ze=this.stack[this.stack.length-1],ce=this.resume();this.stack[this.stack.length-1].label=ce,S("inReference",!0),this.stack[this.stack.length-1].type==="link"?this.stack[this.stack.length-1].children=ze.children:this.stack[this.stack.length-1].alt=ce}function Lt(){var ze=this.resume();this.stack[this.stack.length-1].url=ze}function xn(){var ze=this.resume();this.stack[this.stack.length-1].title=ze}function It(){S("inReference")}function me(){S("referenceType","collapsed")}function Ce(ze){var ce=this.resume();this.stack[this.stack.length-1].label=ce,this.stack[this.stack.length-1].identifier=r(this.sliceSerialize(ze)).toLowerCase(),S("referenceType","full")}function Ie(ze){S("characterReferenceType",ze.type)}function je(ze){var ce=this.sliceSerialize(ze),Me=_("characterReferenceType"),We,rt;Me?(We=i(ce,Me==="characterReferenceMarkerNumeric"?10:16),S("characterReferenceType")):We=l(ce),rt=this.stack.pop(),rt.value+=We,rt.position.end=C(ze.end)}function Ze(ze){le.call(this,ze),this.stack[this.stack.length-1].url=this.sliceSerialize(ze)}function ge(ze){le.call(this,ze),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(ze)}function Oe(){return{type:"blockquote",children:[]}}function et(){return{type:"code",lang:null,meta:null,value:""}}function ut(){return{type:"inlineCode",value:""}}function zt(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Un(){return{type:"emphasis",children:[]}}function Qn(){return{type:"heading",depth:void 0,children:[]}}function yn(){return{type:"break"}}function pe(){return{type:"html",value:""}}function Be(){return{type:"image",title:null,url:"",alt:null}}function lt(){return{type:"link",title:null,url:"",children:[]}}function Rt(ze){return{type:"list",ordered:ze.type==="listOrdered",start:null,spread:ze._spread,children:[]}}function At(ze){return{type:"listItem",spread:ze._spread,checked:null,children:[]}}function yr(){return{type:"paragraph",children:[]}}function Or(){return{type:"strong",children:[]}}function Dr(){return{type:"text",value:""}}function ri(){return{type:"thematicBreak"}}}function f(m,p){for(var v=-1;++v":""))+")"),E;function E(){var S=v.concat(m),_=[],C,T;if((!l||f(m,p,v[v.length-1]||null))&&(_=a(c(m,v)),_[0]===i))return _;if(m.children&&_[0]!==r)for(T=(u?m.children.length:-1)+d;T>-1&&T":""))+")"),E;function E(){var S=v.concat(m),_=[],C,T;if((!l||f(m,p,v[v.length-1]||null))&&(_=a(c(m,v)),_[0]===i))return _;if(m.children&&_[0]!==r)for(T=(u?m.children.length:-1)+d;T>-1&&T-1?d=a:d=o.unknownHandler,(typeof d=="function"?d:r)(o,l,c)}function s(o){var l=o.data||{};return n.call(l,"hName")||n.call(l,"hProperties")||n.call(l,"hChildren")?!1:"value"in o}function a(o,l){var c;return l.children?(c=Object.assign({},l),c.children=e(o,l),c):l}return OL}var DL,uhe;function j8e(){if(uhe)return DL;uhe=1,DL=t;function t(e,n){return e(n,"hr")}return DL}var ML,dhe;function K6(){if(dhe)return ML;dhe=1,ML=e;var t=sd();function e(n,r){var i=[],s=-1,a=n.length;for(r&&i.push(t("text",` +`));++s0&&i.push(t("text",` +`)),i}return ML}var NL,fhe;function z8e(){if(fhe)return NL;fhe=1,NL=n;var t=K6(),e=pc();function n(r,i){var s={},a=i.ordered?"ol":"ul",o,l=-1,c;for(typeof i.start=="number"&&i.start!==1&&(s.start=i.start),o=e(r,i),c=o.length;++l"u"&&(s=!0),u=e(i),a=0,o=r.length;a=55296&&l<=57343){if(l>=55296&&l<=56319&&a+1=56320&&c<=57343)){d+=encodeURIComponent(r[a]+r[a+1]),a++;continue}d+="%EF%BF%BD";continue}d+=encodeURIComponent(r[a])}return d}return n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",WL=n,WL}var VL,She;function B8e(){if(She)return VL;She=1,VL=n;var t=sd(),e=pc();function n(r,i){var s=i.referenceType,a="]",o,l,c;return s==="collapsed"?a+="[]":s==="full"&&(a+="["+(i.label||i.identifier)+"]"),i.type==="imageReference"?t("text","!["+i.alt+a):(o=e(r,i),l=o[0],l&&l.type==="text"?l.value="["+l.value:o.unshift(t("text","[")),c=o[o.length-1],c&&c.type==="text"?c.value+=a:o.push(t("text",a)),o)}return VL}var ZL,Che;function ZNt(){if(Che)return ZL;Che=1,ZL=n;var t=TT(),e=B8e();function n(r,i){var s=r.definition(i.identifier),a;return s?(a={src:t(s.url||""),alt:i.alt},s.title!==null&&s.title!==void 0&&(a.title=s.title),r(i,"img",a)):e(r,i)}return ZL}var GL,Ehe;function GNt(){if(Ehe)return GL;Ehe=1;var t=TT();GL=e;function e(n,r){var i={src:t(r.url),alt:r.alt};return r.title!==null&&r.title!==void 0&&(i.title=r.title),n(r,"img",i)}return GL}var KL,$he;function KNt(){if($he)return KL;$he=1,KL=e;var t=sd();function e(n,r){var i=r.value.replace(/\r?\n|\r/g," ");return n(r,"code",[t("text",i)])}return KL}var YL,The;function YNt(){if(The)return YL;The=1,YL=r;var t=TT(),e=B8e(),n=pc();function r(i,s){var a=i.definition(s.identifier),o;return a?(o={href:t(a.url||"")},a.title!==null&&a.title!==void 0&&(o.title=a.title),i(s,"a",o,n(i,s))):e(i,s)}return YL}var JL,Ihe;function JNt(){if(Ihe)return JL;Ihe=1;var t=TT(),e=pc();JL=n;function n(r,i){var s={href:t(i.url)};return i.title!==null&&i.title!==void 0&&(s.title=i.title),r(i,"a",s,e(r,i))}return JL}var XL,Ahe;function XNt(){if(Ahe)return XL;Ahe=1,XL=n;var t=sd(),e=pc();function n(s,a,o){var l=e(s,a),c=l[0],u=o?r(o):i(a),d={},f=[],h,m,p;for(typeof a.checked=="boolean"&&((!c||c.tagName!=="p")&&(c=s(null,"p",[]),l.unshift(c)),c.children.length>0&&c.children.unshift(t("text"," ")),c.children.unshift(s(null,"input",{type:"checkbox",checked:a.checked,disabled:!0})),d.className=["task-list-item"]),h=l.length,m=-1;++m1}return XL}var QL,Ohe;function QNt(){if(Ohe)return QL;Ohe=1,QL=e;var t=pc();function e(n,r){return n(r,"p",t(n,r))}return QL}var eP,Dhe;function eRt(){if(Dhe)return eP;Dhe=1,eP=r;var t=sd(),e=K6(),n=pc();function r(i,s){return i.augment(s,t("root",e(n(i,s))))}return eP}var tP,Mhe;function tRt(){if(Mhe)return tP;Mhe=1,tP=e;var t=pc();function e(n,r){return n(r,"strong",t(n,r))}return tP}var nP,Nhe;function nRt(){if(Nhe)return nP;Nhe=1,nP=r;var t=L8e(),e=K6(),n=pc();function r(i,s){for(var a=s.children,o=a.length,l=s.align||[],c=l.length,u=[],d,f,h,m,p;o--;){for(f=a[o].children,m=o===0?"th":"td",d=c||f.length,h=[];d--;)p=f[d],h[d]=i(p,m,{align:l[d]},p?n(i,p):[]);u[o]=i(a[o],"tr",e(h,!0))}return i(s,"table",e([i(u[0].position,"thead",e([u[0]],!0))].concat(u[1]?i({start:t.start(u[1]),end:t.end(u[u.length-1])},"tbody",e(u.slice(1),!0)):[]),!0))}return nP}var rP,Rhe;function rRt(){if(Rhe)return rP;Rhe=1,rP=e;var t=sd();function e(n,r){return n.augment(r,t("text",String(r.value).replace(/[ \t]*(\r?\n|\r)[ \t]*/g,"$1")))}return rP}var iP,Lhe;function iRt(){if(Lhe)return iP;Lhe=1,iP={blockquote:zNt(),break:FNt(),code:BNt(),delete:UNt(),emphasis:qNt(),footnoteReference:F8e(),footnote:HNt(),heading:WNt(),html:VNt(),imageReference:ZNt(),image:GNt(),inlineCode:KNt(),linkReference:YNt(),link:JNt(),listItem:XNt(),list:z8e(),paragraph:QNt(),root:eRt(),strong:tRt(),table:nRt(),text:rRt(),thematicBreak:j8e(),toml:t,yaml:t,definition:t,footnoteDefinition:t};function t(){return null}return iP}var sP,Phe;function sRt(){if(Phe)return sP;Phe=1,sP=d;var t=sd(),e=ONt(),n=L8e(),r=DNt(),i=PNt(),s=P8e(),a=jNt(),o=iRt(),l={}.hasOwnProperty,c=!1;function u(f,h){var m=h||{};m.allowDangerousHTML!==void 0&&!c&&(c=!0,console.warn("mdast-util-to-hast: deprecation: `allowDangerousHTML` is nonstandard, use `allowDangerousHtml` instead"));var p=m.allowDangerousHtml||m.allowDangerousHTML,v={};return w.dangerous=p,w.definition=i(f),w.footnoteById=v,w.footnoteOrder=[],w.augment=x,w.handlers=Object.assign({},o,m.handlers),w.unknownHandler=m.unknownHandler,w.passThrough=m.passThrough,e(f,"footnoteDefinition",E),w;function x(S,_){var C,T;return S&&S.data&&(C=S.data,C.hName&&(_.type!=="element"&&(_={type:"element",tagName:"",properties:{},children:[]}),_.tagName=C.hName),_.type==="element"&&C.hProperties&&(_.properties=Object.assign({},_.properties,C.hProperties)),_.children&&C.hChildren&&(_.children=C.hChildren)),T=S&&S.position?S:{position:S},r(T)||(_.position={start:n.start(T),end:n.end(T)}),_}function w(S,_,C,T){return T==null&&typeof C=="object"&&"length"in C&&(T=C,C={}),x(S,{type:"element",tagName:_,properties:C||{},children:T||[]})}function E(S){var _=String(S.identifier).toUpperCase();l.call(v,_)||(v[_]=S)}}function d(f,h){var m=u(f,h),p=s(m,f),v=a(m);return v&&(p.children=p.children.concat(t("text",` +`),v)),p}return sP}var aP,jhe;function aRt(){return jhe||(jhe=1,aP=sRt()),aP}var oP,zhe;function oRt(){if(zhe)return oP;zhe=1;var t=aRt();oP=e;function e(i,s){return i&&!i.process&&(s=i,i=null),i?n(i,s):r(s)}function n(i,s){return a;function a(o,l,c){i.run(t(o,s),l,u);function u(d){c(d)}}}function r(i){return s;function s(a){return t(a,i)}}return oP}var lRt=oRt();const cRt=Ol(lRt);var lP,Fhe;function uRt(){if(Fhe)return lP;Fhe=1,lP=e;var t=Object.prototype.hasOwnProperty;function e(){for(var n={},r=0;r4&&m.slice(0,4)===r&&i.test(h)&&(h.charAt(4)==="-"?p=l(h):h=c(h),v=e),new v(p,h))}function l(f){var h=f.slice(5).replace(s,d);return r+h.charAt(0).toUpperCase()+h.slice(1)}function c(f){var h=f.slice(4);return s.test(h)?f:(h=h.replace(a,u),h.charAt(0)!=="-"&&(h="-"+h),r+h)}function u(f){return"-"+f.toLowerCase()}function d(f){return f.charAt(1).toUpperCase()}return CP}const gRt="classID",vRt="datatype",yRt="itemID",bRt="strokeDasharray",xRt="strokeDashoffset",wRt="strokeLinecap",_Rt="strokeLinejoin",kRt="strokeMiterlimit",SRt="typeof",CRt="xlinkActuate",ERt="xlinkArcrole",$Rt="xlinkHref",TRt="xlinkRole",IRt="xlinkShow",ARt="xlinkTitle",ORt="xlinkType",DRt="xmlnsXlink",MRt={classId:gRt,dataType:vRt,itemId:yRt,strokeDashArray:bRt,strokeDashOffset:xRt,strokeLineCap:wRt,strokeLineJoin:_Rt,strokeMiterLimit:kRt,typeOf:SRt,xLinkActuate:CRt,xLinkArcRole:ERt,xLinkHref:$Rt,xLinkRole:TRt,xLinkShow:IRt,xLinkTitle:ARt,xLinkType:ORt,xmlnsXLink:DRt};var fS={},spe;function NRt(){if(spe)return fS;spe=1,fS.parse=r,fS.stringify=i;var t="",e=" ",n=/[ \t\n\r\f]+/g;function r(s){var a=String(s||t).trim();return a===t?[]:a.split(n)}function i(s){return s.join(e).trim()}return fS}var hS={},ape;function RRt(){if(ape)return hS;ape=1,hS.parse=r,hS.stringify=i;var t=",",e=" ",n="";function r(s){for(var a=[],o=String(s||n),l=o.indexOf(t),c=0,u=!1,d;!u;)l===-1&&(l=o.length,u=!0),d=o.slice(c,l).trim(),(d||!u)&&a.push(d),c=l+1,l=o.indexOf(t,c);return a}function i(s,a){var o=a||{},l=o.padLeft===!1?n:e,c=o.padRight?e:n;return s[s.length-1]===n&&(s=s.concat(n)),s.join(c+t+l).trim()}return hS}var EP,ope;function LRt(){if(ope)return EP;ope=1;var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,e=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,o=/^\s+|\s+$/g,l=` +`,c="/",u="*",d="",f="comment",h="declaration";EP=function(p,v){if(typeof p!="string")throw new TypeError("First argument must be a string");if(!p)return[];v=v||{};var x=1,w=1;function E(N){var R=N.match(e);R&&(x+=R.length);var q=N.lastIndexOf(l);w=~q?N.length-q:w+N.length}function S(){var N={line:x,column:w};return function(R){return R.position=new _(N),M(),R}}function _(N){this.start=N,this.end={line:x,column:w},this.source=v.source}_.prototype.content=p;function C(N){var R=new Error(v.source+":"+x+":"+w+": "+N);if(R.reason=N,R.filename=v.source,R.line=x,R.column=w,R.source=p,!v.silent)throw R}function T(N){var R=N.exec(p);if(R){var q=R[0];return E(q),p=p.slice(q.length),R}}function M(){T(n)}function A(N){var R;for(N=N||[];R=$();)R!==!1&&N.push(R);return N}function $(){var N=S();if(!(c!=p.charAt(0)||u!=p.charAt(1))){for(var R=2;d!=p.charAt(R)&&(u!=p.charAt(R)||c!=p.charAt(R+1));)++R;if(R+=2,d===p.charAt(R-1))return C("End of comment missing");var q=p.slice(2,R-2);return w+=2,E(q),p=p.slice(R),w+=2,N({type:f,comment:q})}}function O(){var N=S(),R=T(r);if(R){if($(),!T(i))return C("property missing ':'");var q=T(s),W=N({type:h,property:m(R[0].replace(t,d)),value:q?m(q[0].replace(t,d)):d});return T(a),W}}function D(){var N=[];A(N);for(var R;R=O();)R!==!1&&(N.push(R),A(N));return N}return M(),D()};function m(p){return p?p.replace(o,d):d}return EP}var $P,lpe;function PRt(){if(lpe)return $P;lpe=1;var t=LRt();function e(n,r){var i=null;if(!n||typeof n!="string")return i;for(var s,a=t(n),o=typeof r=="function",l,c,u=0,d=a.length;up&&x4&&n.slice(0,4)==="data"&&aLt.test(e)){if(e.charAt(4)==="-"){const s=e.slice(5).replace(vpe,lLt);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=e.slice(4);if(!vpe.test(s)){let a=s.replace(sLt,oLt);a.charAt(0)!=="-"&&(a="-"+a),e="data"+a}}i=xK}return new i(r,e)}function oLt(t){return"-"+t.toLowerCase()}function lLt(t){return t.charAt(1).toUpperCase()}const o9e=Q8e([e9e,nLt,r9e,i9e,s9e],"html"),AT=Q8e([e9e,rLt,r9e,i9e,s9e],"svg");function ype(t){const e=[],n=String(t||"");let r=n.indexOf(","),i=0,s=!1;for(;!s;){r===-1&&(r=n.length,s=!0);const a=n.slice(i,r).trim();(a||!s)&&e.push(a),i=r+1,r=n.indexOf(",",i)}return e}function cLt(t,e){const n={};return(t[t.length-1]===""?[...t,""]:t).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const bpe=/[#.]/g;function uLt(t,e){const n=t||"",r={};let i=0,s,a;for(;ic&&(c=u):u&&(c!==void 0&&c>-1&&l.push(` +`.repeat(c)||" "),c=-1,l.push(u))}return l.join("")}function h9e(t,e,n){return t.type==="element"?jLt(t,e,n):t.type==="text"?n.whitespace==="normal"?p9e(t,n):zLt(t):[]}function jLt(t,e,n){const r=m9e(t,n),i=t.children||[];let s=-1,a=[];if(PLt(t))return a;let o,l;for(jH(t)||$pe(t)&&kpe(e,t,$pe)?l=` +`:LLt(t)?(o=2,l=2):d9e(t)&&(o=1,l=1);++s15?c="…"+o.slice(i-15,i):c=o.slice(0,i);var u;s+15":">","<":"<",'"':""","'":"'"},KLt=/[&><"']/g;function YLt(t){return String(t).replace(KLt,e=>GLt[e])}var g9e=function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},JLt=function(e){var n=g9e(e);return n.type==="mathord"||n.type==="textord"||n.type==="atom"},XLt=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},QLt=function(e){var n=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return n?n[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(n[1])?null:n[1].toLowerCase():"_relative"},Bn={contains:HLt,deflt:WLt,escape:YLt,hyphenate:ZLt,getBaseElem:g9e,isCharacterBox:JLt,protocolFromUrl:QLt},ox={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:t=>"#"+t},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(t,e)=>(e.push(t),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:t=>Math.max(0,t),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:t=>Math.max(0,t),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:t=>Math.max(0,t),cli:"-e, --max-expand ",cliProcessor:t=>t==="Infinity"?1/0:parseInt(t)},globalGroup:{type:"boolean",cli:!1}};function ePt(t){if(t.default)return t.default;var e=t.type,n=Array.isArray(e)?e[0]:e;if(typeof n!="string")return n.enum[0];switch(n){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class kK{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var n in ox)if(ox.hasOwnProperty(n)){var r=ox[n];this[n]=e[n]!==void 0?r.processor?r.processor(e[n]):e[n]:ePt(r)}}reportNonstrict(e,n,r){var i=this.strict;if(typeof i=="function"&&(i=i(e,n,r)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new Et("LaTeX-incompatible input and strict mode is set to 'error': "+(n+" ["+e+"]"),r);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+n+" ["+e+"]"))}}useStrictBehavior(e,n,r){var i=this.strict;if(typeof i=="function")try{i=i(e,n,r)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+n+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var n=Bn.protocolFromUrl(e.url);if(n==null)return!1;e.protocol=n}var r=typeof this.trust=="function"?this.trust(e):this.trust;return!!r}}class e0{constructor(e,n,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=n,this.cramped=r}sup(){return pf[tPt[this.id]]}sub(){return pf[nPt[this.id]]}fracNum(){return pf[rPt[this.id]]}fracDen(){return pf[iPt[this.id]]}cramp(){return pf[sPt[this.id]]}text(){return pf[aPt[this.id]]}isTight(){return this.size>=2}}var SK=0,MC=1,ry=2,tp=3,iw=4,Cu=5,Wy=6,pl=7,pf=[new e0(SK,0,!1),new e0(MC,0,!0),new e0(ry,1,!1),new e0(tp,1,!0),new e0(iw,2,!1),new e0(Cu,2,!0),new e0(Wy,3,!1),new e0(pl,3,!0)],tPt=[iw,Cu,iw,Cu,Wy,pl,Wy,pl],nPt=[Cu,Cu,Cu,Cu,pl,pl,pl,pl],rPt=[ry,tp,iw,Cu,Wy,pl,Wy,pl],iPt=[tp,tp,Cu,Cu,pl,pl,pl,pl],sPt=[MC,MC,tp,tp,Cu,Cu,pl,pl],aPt=[SK,MC,ry,tp,ry,tp,ry,tp],Zn={DISPLAY:pf[SK],TEXT:pf[ry],SCRIPT:pf[iw],SCRIPTSCRIPT:pf[Wy]},zH=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function oPt(t){for(var e=0;e=i[0]&&t<=i[1])return n.name}return null}var Z8=[];zH.forEach(t=>t.blocks.forEach(e=>Z8.push(...e)));function v9e(t){for(var e=0;e=Z8[e]&&t<=Z8[e+1])return!0;return!1}var nv=80,lPt=function(e,n){return"M95,"+(622+e+n)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+n+"h400000v"+(40+e)+"h-400000z"},cPt=function(e,n){return"M263,"+(601+e+n)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+n+"h400000v"+(40+e)+"h-400000z"},uPt=function(e,n){return"M983 "+(10+e+n)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+n+"h400000v"+(40+e)+"h-400000z"},dPt=function(e,n){return"M424,"+(2398+e+n)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+n+` +h400000v`+(40+e)+"h-400000z"},fPt=function(e,n){return"M473,"+(2713+e+n)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+n+"h400000v"+(40+e)+"H1017.7z"},hPt=function(e){var n=e/2;return"M400000 "+e+" H0 L"+n+" 0 l65 45 L145 "+(e-80)+" H400000z"},pPt=function(e,n,r){var i=r-54-n-e;return"M702 "+(e+n)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+n+"H400000v"+(40+e)+"H742z"},mPt=function(e,n,r){n=1e3*n;var i="";switch(e){case"sqrtMain":i=lPt(n,nv);break;case"sqrtSize1":i=cPt(n,nv);break;case"sqrtSize2":i=uPt(n,nv);break;case"sqrtSize3":i=dPt(n,nv);break;case"sqrtSize4":i=fPt(n,nv);break;case"sqrtTall":i=pPt(n,nv,r)}return i},gPt=function(e,n){switch(e){case"⎜":return"M291 0 H417 V"+n+" H291z M291 0 H417 V"+n+" H291z";case"∣":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z";case"∥":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z"+("M367 0 H410 V"+n+" H367z M367 0 H410 V"+n+" H367z");case"⎟":return"M457 0 H583 V"+n+" H457z M457 0 H583 V"+n+" H457z";case"⎢":return"M319 0 H403 V"+n+" H319z M319 0 H403 V"+n+" H319z";case"⎥":return"M263 0 H347 V"+n+" H263z M263 0 H347 V"+n+" H263z";case"⎪":return"M384 0 H504 V"+n+" H384z M384 0 H504 V"+n+" H384z";case"⏐":return"M312 0 H355 V"+n+" H312z M312 0 H355 V"+n+" H312z";case"‖":return"M257 0 H300 V"+n+" H257z M257 0 H300 V"+n+" H257z"+("M478 0 H521 V"+n+" H478z M478 0 H521 V"+n+" H478z");default:return""}},Tpe={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},vPt=function(e,n){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+n+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+n+" v1759 h84z";case"vert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+" v585 h43z";case"doublevert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+` v585 h43z +M367 15 v585 v`+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+n+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+n+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+n+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v602 h84z +M403 1759 V0 H319 V1759 v`+n+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v602 h84z +M347 1759 V0 h-84 V1759 v`+n+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(n+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(n+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(n+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class J6{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return Bn.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),n=0;nn.toText();return this.children.map(e).join("")}}var wf={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},pS={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ipe={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function y9e(t,e){wf[t]=e}function CK(t,e,n){if(!wf[e])throw new Error("Font metrics not found for font: "+e+".");var r=t.charCodeAt(0),i=wf[e][r];if(!i&&t[0]in Ipe&&(r=Ipe[t[0]].charCodeAt(0),i=wf[e][r]),!i&&n==="text"&&v9e(r)&&(i=wf[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var PP={};function yPt(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!PP[e]){var n=PP[e]={cssEmPerMu:pS.quad[e]/18};for(var r in pS)pS.hasOwnProperty(r)&&(n[r]=pS[r][e])}return PP[e]}var bPt=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Ape=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Ope=function(e,n){return n.size<2?e:bPt[e-1][n.size-1]};class Ph{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||Ph.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Ape[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);return new Ph(n)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Ope(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Ape[e-1]})}havingBaseStyle(e){e=e||this.style.text();var n=Ope(Ph.BASESIZE,e);return this.size===n&&this.textSize===Ph.BASESIZE&&this.style===e?this:this.extend({style:e,size:n})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Ph.BASESIZE?["sizing","reset-size"+this.size,"size"+Ph.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=yPt(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Ph.BASESIZE=6;var FH={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},xPt={ex:!0,em:!0,mu:!0},b9e=function(e){return typeof e!="string"&&(e=e.unit),e in FH||e in xPt||e==="ex"},js=function(e,n){var r;if(e.unit in FH)r=FH[e.unit]/n.fontMetrics().ptPerEm/n.sizeMultiplier;else if(e.unit==="mu")r=n.fontMetrics().cssEmPerMu;else{var i;if(n.style.isTight()?i=n.havingStyle(n.style.text()):i=n,e.unit==="ex")r=i.fontMetrics().xHeight;else if(e.unit==="em")r=i.fontMetrics().quad;else throw new Et("Invalid unit: '"+e.unit+"'");i!==n&&(r*=i.sizeMultiplier/n.sizeMultiplier)}return Math.min(e.number*r,n.maxSize)},jt=function(e){return+e.toFixed(4)+"em"},tm=function(e){return e.filter(n=>n).join(" ")},x9e=function(e,n,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},n){n.style.isTight()&&this.classes.push("mtight");var i=n.getColor();i&&(this.style.color=i)}},w9e=function(e){var n=document.createElement(e);n.className=tm(this.classes);for(var r in this.style)this.style.hasOwnProperty(r)&&(n.style[r]=this.style[r]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&n.setAttribute(i,this.attributes[i]);for(var s=0;s/=\x00-\x1f]/,_9e=function(e){var n="<"+e;this.classes.length&&(n+=' class="'+Bn.escape(tm(this.classes))+'"');var r="";for(var i in this.style)this.style.hasOwnProperty(i)&&(r+=Bn.hyphenate(i)+":"+this.style[i]+";");r&&(n+=' style="'+Bn.escape(r)+'"');for(var s in this.attributes)if(this.attributes.hasOwnProperty(s)){if(wPt.test(s))throw new Et("Invalid attribute name '"+s+"'");n+=" "+s+'="'+Bn.escape(this.attributes[s])+'"'}n+=">";for(var a=0;a",n};class X6{constructor(e,n,r,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,x9e.call(this,e,r,i),this.children=n||[]}setAttribute(e,n){this.attributes[e]=n}hasClass(e){return Bn.contains(this.classes,e)}toNode(){return w9e.call(this,"span")}toMarkup(){return _9e.call(this,"span")}}class EK{constructor(e,n,r,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,x9e.call(this,n,i),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,n){this.attributes[e]=n}hasClass(e){return Bn.contains(this.classes,e)}toNode(){return w9e.call(this,"a")}toMarkup(){return _9e.call(this,"a")}}class _Pt{constructor(e,n,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=n,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return Bn.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var n in this.style)this.style.hasOwnProperty(n)&&(e.style[n]=this.style[n]);return e}toMarkup(){var e=''+Bn.escape(this.alt)+'0&&(n=document.createElement("span"),n.style.marginRight=jt(this.italic)),this.classes.length>0&&(n=n||document.createElement("span"),n.className=tm(this.classes));for(var r in this.style)this.style.hasOwnProperty(r)&&(n=n||document.createElement("span"),n.style[r]=this.style[r]);return n?(n.appendChild(e),n):e}toMarkup(){var e=!1,n="0&&(r+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(r+=Bn.hyphenate(i)+":"+this.style[i]+";");r&&(e=!0,n+=' style="'+Bn.escape(r)+'"');var s=Bn.escape(this.text);return e?(n+=">",n+=s,n+="",n):s}}class yp{constructor(e,n){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=n||{}}toNode(){var e="http://www.w3.org/2000/svg",n=document.createElementNS(e,"svg");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&n.setAttribute(r,this.attributes[r]);for(var i=0;i':''}}class BH{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",n=document.createElementNS(e,"line");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&n.setAttribute(r,this.attributes[r]);return n}toMarkup(){var e=" but got "+String(t)+".")}var CPt={bin:1,close:1,inner:1,open:1,punct:1,rel:1},EPt={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},ss={math:{},text:{}};function P(t,e,n,r,i,s){ss[t][i]={font:e,group:n,replace:r},s&&r&&(ss[t][r]=ss[t][i])}var B="math",bt="text",K="main",ve="ams",Es="accent-token",ln="bin",Ml="close",s5="inner",Vn="mathord",_a="op-token",Xc="open",DT="punct",we="rel",Ap="spacing",Ae="textord";P(B,K,we,"≡","\\equiv",!0);P(B,K,we,"≺","\\prec",!0);P(B,K,we,"≻","\\succ",!0);P(B,K,we,"∼","\\sim",!0);P(B,K,we,"⊥","\\perp");P(B,K,we,"⪯","\\preceq",!0);P(B,K,we,"⪰","\\succeq",!0);P(B,K,we,"≃","\\simeq",!0);P(B,K,we,"∣","\\mid",!0);P(B,K,we,"≪","\\ll",!0);P(B,K,we,"≫","\\gg",!0);P(B,K,we,"≍","\\asymp",!0);P(B,K,we,"∥","\\parallel");P(B,K,we,"⋈","\\bowtie",!0);P(B,K,we,"⌣","\\smile",!0);P(B,K,we,"⊑","\\sqsubseteq",!0);P(B,K,we,"⊒","\\sqsupseteq",!0);P(B,K,we,"≐","\\doteq",!0);P(B,K,we,"⌢","\\frown",!0);P(B,K,we,"∋","\\ni",!0);P(B,K,we,"∝","\\propto",!0);P(B,K,we,"⊢","\\vdash",!0);P(B,K,we,"⊣","\\dashv",!0);P(B,K,we,"∋","\\owns");P(B,K,DT,".","\\ldotp");P(B,K,DT,"⋅","\\cdotp");P(B,K,Ae,"#","\\#");P(bt,K,Ae,"#","\\#");P(B,K,Ae,"&","\\&");P(bt,K,Ae,"&","\\&");P(B,K,Ae,"ℵ","\\aleph",!0);P(B,K,Ae,"∀","\\forall",!0);P(B,K,Ae,"ℏ","\\hbar",!0);P(B,K,Ae,"∃","\\exists",!0);P(B,K,Ae,"∇","\\nabla",!0);P(B,K,Ae,"♭","\\flat",!0);P(B,K,Ae,"ℓ","\\ell",!0);P(B,K,Ae,"♮","\\natural",!0);P(B,K,Ae,"♣","\\clubsuit",!0);P(B,K,Ae,"℘","\\wp",!0);P(B,K,Ae,"♯","\\sharp",!0);P(B,K,Ae,"♢","\\diamondsuit",!0);P(B,K,Ae,"ℜ","\\Re",!0);P(B,K,Ae,"♡","\\heartsuit",!0);P(B,K,Ae,"ℑ","\\Im",!0);P(B,K,Ae,"♠","\\spadesuit",!0);P(B,K,Ae,"§","\\S",!0);P(bt,K,Ae,"§","\\S");P(B,K,Ae,"¶","\\P",!0);P(bt,K,Ae,"¶","\\P");P(B,K,Ae,"†","\\dag");P(bt,K,Ae,"†","\\dag");P(bt,K,Ae,"†","\\textdagger");P(B,K,Ae,"‡","\\ddag");P(bt,K,Ae,"‡","\\ddag");P(bt,K,Ae,"‡","\\textdaggerdbl");P(B,K,Ml,"⎱","\\rmoustache",!0);P(B,K,Xc,"⎰","\\lmoustache",!0);P(B,K,Ml,"⟯","\\rgroup",!0);P(B,K,Xc,"⟮","\\lgroup",!0);P(B,K,ln,"∓","\\mp",!0);P(B,K,ln,"⊖","\\ominus",!0);P(B,K,ln,"⊎","\\uplus",!0);P(B,K,ln,"⊓","\\sqcap",!0);P(B,K,ln,"∗","\\ast");P(B,K,ln,"⊔","\\sqcup",!0);P(B,K,ln,"◯","\\bigcirc",!0);P(B,K,ln,"∙","\\bullet",!0);P(B,K,ln,"‡","\\ddagger");P(B,K,ln,"≀","\\wr",!0);P(B,K,ln,"⨿","\\amalg");P(B,K,ln,"&","\\And");P(B,K,we,"⟵","\\longleftarrow",!0);P(B,K,we,"⇐","\\Leftarrow",!0);P(B,K,we,"⟸","\\Longleftarrow",!0);P(B,K,we,"⟶","\\longrightarrow",!0);P(B,K,we,"⇒","\\Rightarrow",!0);P(B,K,we,"⟹","\\Longrightarrow",!0);P(B,K,we,"↔","\\leftrightarrow",!0);P(B,K,we,"⟷","\\longleftrightarrow",!0);P(B,K,we,"⇔","\\Leftrightarrow",!0);P(B,K,we,"⟺","\\Longleftrightarrow",!0);P(B,K,we,"↦","\\mapsto",!0);P(B,K,we,"⟼","\\longmapsto",!0);P(B,K,we,"↗","\\nearrow",!0);P(B,K,we,"↩","\\hookleftarrow",!0);P(B,K,we,"↪","\\hookrightarrow",!0);P(B,K,we,"↘","\\searrow",!0);P(B,K,we,"↼","\\leftharpoonup",!0);P(B,K,we,"⇀","\\rightharpoonup",!0);P(B,K,we,"↙","\\swarrow",!0);P(B,K,we,"↽","\\leftharpoondown",!0);P(B,K,we,"⇁","\\rightharpoondown",!0);P(B,K,we,"↖","\\nwarrow",!0);P(B,K,we,"⇌","\\rightleftharpoons",!0);P(B,ve,we,"≮","\\nless",!0);P(B,ve,we,"","\\@nleqslant");P(B,ve,we,"","\\@nleqq");P(B,ve,we,"⪇","\\lneq",!0);P(B,ve,we,"≨","\\lneqq",!0);P(B,ve,we,"","\\@lvertneqq");P(B,ve,we,"⋦","\\lnsim",!0);P(B,ve,we,"⪉","\\lnapprox",!0);P(B,ve,we,"⊀","\\nprec",!0);P(B,ve,we,"⋠","\\npreceq",!0);P(B,ve,we,"⋨","\\precnsim",!0);P(B,ve,we,"⪹","\\precnapprox",!0);P(B,ve,we,"≁","\\nsim",!0);P(B,ve,we,"","\\@nshortmid");P(B,ve,we,"∤","\\nmid",!0);P(B,ve,we,"⊬","\\nvdash",!0);P(B,ve,we,"⊭","\\nvDash",!0);P(B,ve,we,"⋪","\\ntriangleleft");P(B,ve,we,"⋬","\\ntrianglelefteq",!0);P(B,ve,we,"⊊","\\subsetneq",!0);P(B,ve,we,"","\\@varsubsetneq");P(B,ve,we,"⫋","\\subsetneqq",!0);P(B,ve,we,"","\\@varsubsetneqq");P(B,ve,we,"≯","\\ngtr",!0);P(B,ve,we,"","\\@ngeqslant");P(B,ve,we,"","\\@ngeqq");P(B,ve,we,"⪈","\\gneq",!0);P(B,ve,we,"≩","\\gneqq",!0);P(B,ve,we,"","\\@gvertneqq");P(B,ve,we,"⋧","\\gnsim",!0);P(B,ve,we,"⪊","\\gnapprox",!0);P(B,ve,we,"⊁","\\nsucc",!0);P(B,ve,we,"⋡","\\nsucceq",!0);P(B,ve,we,"⋩","\\succnsim",!0);P(B,ve,we,"⪺","\\succnapprox",!0);P(B,ve,we,"≆","\\ncong",!0);P(B,ve,we,"","\\@nshortparallel");P(B,ve,we,"∦","\\nparallel",!0);P(B,ve,we,"⊯","\\nVDash",!0);P(B,ve,we,"⋫","\\ntriangleright");P(B,ve,we,"⋭","\\ntrianglerighteq",!0);P(B,ve,we,"","\\@nsupseteqq");P(B,ve,we,"⊋","\\supsetneq",!0);P(B,ve,we,"","\\@varsupsetneq");P(B,ve,we,"⫌","\\supsetneqq",!0);P(B,ve,we,"","\\@varsupsetneqq");P(B,ve,we,"⊮","\\nVdash",!0);P(B,ve,we,"⪵","\\precneqq",!0);P(B,ve,we,"⪶","\\succneqq",!0);P(B,ve,we,"","\\@nsubseteqq");P(B,ve,ln,"⊴","\\unlhd");P(B,ve,ln,"⊵","\\unrhd");P(B,ve,we,"↚","\\nleftarrow",!0);P(B,ve,we,"↛","\\nrightarrow",!0);P(B,ve,we,"⇍","\\nLeftarrow",!0);P(B,ve,we,"⇏","\\nRightarrow",!0);P(B,ve,we,"↮","\\nleftrightarrow",!0);P(B,ve,we,"⇎","\\nLeftrightarrow",!0);P(B,ve,we,"△","\\vartriangle");P(B,ve,Ae,"ℏ","\\hslash");P(B,ve,Ae,"▽","\\triangledown");P(B,ve,Ae,"◊","\\lozenge");P(B,ve,Ae,"Ⓢ","\\circledS");P(B,ve,Ae,"®","\\circledR");P(bt,ve,Ae,"®","\\circledR");P(B,ve,Ae,"∡","\\measuredangle",!0);P(B,ve,Ae,"∄","\\nexists");P(B,ve,Ae,"℧","\\mho");P(B,ve,Ae,"Ⅎ","\\Finv",!0);P(B,ve,Ae,"⅁","\\Game",!0);P(B,ve,Ae,"‵","\\backprime");P(B,ve,Ae,"▲","\\blacktriangle");P(B,ve,Ae,"▼","\\blacktriangledown");P(B,ve,Ae,"■","\\blacksquare");P(B,ve,Ae,"⧫","\\blacklozenge");P(B,ve,Ae,"★","\\bigstar");P(B,ve,Ae,"∢","\\sphericalangle",!0);P(B,ve,Ae,"∁","\\complement",!0);P(B,ve,Ae,"ð","\\eth",!0);P(bt,K,Ae,"ð","ð");P(B,ve,Ae,"╱","\\diagup");P(B,ve,Ae,"╲","\\diagdown");P(B,ve,Ae,"□","\\square");P(B,ve,Ae,"□","\\Box");P(B,ve,Ae,"◊","\\Diamond");P(B,ve,Ae,"¥","\\yen",!0);P(bt,ve,Ae,"¥","\\yen",!0);P(B,ve,Ae,"✓","\\checkmark",!0);P(bt,ve,Ae,"✓","\\checkmark");P(B,ve,Ae,"ℶ","\\beth",!0);P(B,ve,Ae,"ℸ","\\daleth",!0);P(B,ve,Ae,"ℷ","\\gimel",!0);P(B,ve,Ae,"ϝ","\\digamma",!0);P(B,ve,Ae,"ϰ","\\varkappa");P(B,ve,Xc,"┌","\\@ulcorner",!0);P(B,ve,Ml,"┐","\\@urcorner",!0);P(B,ve,Xc,"└","\\@llcorner",!0);P(B,ve,Ml,"┘","\\@lrcorner",!0);P(B,ve,we,"≦","\\leqq",!0);P(B,ve,we,"⩽","\\leqslant",!0);P(B,ve,we,"⪕","\\eqslantless",!0);P(B,ve,we,"≲","\\lesssim",!0);P(B,ve,we,"⪅","\\lessapprox",!0);P(B,ve,we,"≊","\\approxeq",!0);P(B,ve,ln,"⋖","\\lessdot");P(B,ve,we,"⋘","\\lll",!0);P(B,ve,we,"≶","\\lessgtr",!0);P(B,ve,we,"⋚","\\lesseqgtr",!0);P(B,ve,we,"⪋","\\lesseqqgtr",!0);P(B,ve,we,"≑","\\doteqdot");P(B,ve,we,"≓","\\risingdotseq",!0);P(B,ve,we,"≒","\\fallingdotseq",!0);P(B,ve,we,"∽","\\backsim",!0);P(B,ve,we,"⋍","\\backsimeq",!0);P(B,ve,we,"⫅","\\subseteqq",!0);P(B,ve,we,"⋐","\\Subset",!0);P(B,ve,we,"⊏","\\sqsubset",!0);P(B,ve,we,"≼","\\preccurlyeq",!0);P(B,ve,we,"⋞","\\curlyeqprec",!0);P(B,ve,we,"≾","\\precsim",!0);P(B,ve,we,"⪷","\\precapprox",!0);P(B,ve,we,"⊲","\\vartriangleleft");P(B,ve,we,"⊴","\\trianglelefteq");P(B,ve,we,"⊨","\\vDash",!0);P(B,ve,we,"⊪","\\Vvdash",!0);P(B,ve,we,"⌣","\\smallsmile");P(B,ve,we,"⌢","\\smallfrown");P(B,ve,we,"≏","\\bumpeq",!0);P(B,ve,we,"≎","\\Bumpeq",!0);P(B,ve,we,"≧","\\geqq",!0);P(B,ve,we,"⩾","\\geqslant",!0);P(B,ve,we,"⪖","\\eqslantgtr",!0);P(B,ve,we,"≳","\\gtrsim",!0);P(B,ve,we,"⪆","\\gtrapprox",!0);P(B,ve,ln,"⋗","\\gtrdot");P(B,ve,we,"⋙","\\ggg",!0);P(B,ve,we,"≷","\\gtrless",!0);P(B,ve,we,"⋛","\\gtreqless",!0);P(B,ve,we,"⪌","\\gtreqqless",!0);P(B,ve,we,"≖","\\eqcirc",!0);P(B,ve,we,"≗","\\circeq",!0);P(B,ve,we,"≜","\\triangleq",!0);P(B,ve,we,"∼","\\thicksim");P(B,ve,we,"≈","\\thickapprox");P(B,ve,we,"⫆","\\supseteqq",!0);P(B,ve,we,"⋑","\\Supset",!0);P(B,ve,we,"⊐","\\sqsupset",!0);P(B,ve,we,"≽","\\succcurlyeq",!0);P(B,ve,we,"⋟","\\curlyeqsucc",!0);P(B,ve,we,"≿","\\succsim",!0);P(B,ve,we,"⪸","\\succapprox",!0);P(B,ve,we,"⊳","\\vartriangleright");P(B,ve,we,"⊵","\\trianglerighteq");P(B,ve,we,"⊩","\\Vdash",!0);P(B,ve,we,"∣","\\shortmid");P(B,ve,we,"∥","\\shortparallel");P(B,ve,we,"≬","\\between",!0);P(B,ve,we,"⋔","\\pitchfork",!0);P(B,ve,we,"∝","\\varpropto");P(B,ve,we,"◀","\\blacktriangleleft");P(B,ve,we,"∴","\\therefore",!0);P(B,ve,we,"∍","\\backepsilon");P(B,ve,we,"▶","\\blacktriangleright");P(B,ve,we,"∵","\\because",!0);P(B,ve,we,"⋘","\\llless");P(B,ve,we,"⋙","\\gggtr");P(B,ve,ln,"⊲","\\lhd");P(B,ve,ln,"⊳","\\rhd");P(B,ve,we,"≂","\\eqsim",!0);P(B,K,we,"⋈","\\Join");P(B,ve,we,"≑","\\Doteq",!0);P(B,ve,ln,"∔","\\dotplus",!0);P(B,ve,ln,"∖","\\smallsetminus");P(B,ve,ln,"⋒","\\Cap",!0);P(B,ve,ln,"⋓","\\Cup",!0);P(B,ve,ln,"⩞","\\doublebarwedge",!0);P(B,ve,ln,"⊟","\\boxminus",!0);P(B,ve,ln,"⊞","\\boxplus",!0);P(B,ve,ln,"⋇","\\divideontimes",!0);P(B,ve,ln,"⋉","\\ltimes",!0);P(B,ve,ln,"⋊","\\rtimes",!0);P(B,ve,ln,"⋋","\\leftthreetimes",!0);P(B,ve,ln,"⋌","\\rightthreetimes",!0);P(B,ve,ln,"⋏","\\curlywedge",!0);P(B,ve,ln,"⋎","\\curlyvee",!0);P(B,ve,ln,"⊝","\\circleddash",!0);P(B,ve,ln,"⊛","\\circledast",!0);P(B,ve,ln,"⋅","\\centerdot");P(B,ve,ln,"⊺","\\intercal",!0);P(B,ve,ln,"⋒","\\doublecap");P(B,ve,ln,"⋓","\\doublecup");P(B,ve,ln,"⊠","\\boxtimes",!0);P(B,ve,we,"⇢","\\dashrightarrow",!0);P(B,ve,we,"⇠","\\dashleftarrow",!0);P(B,ve,we,"⇇","\\leftleftarrows",!0);P(B,ve,we,"⇆","\\leftrightarrows",!0);P(B,ve,we,"⇚","\\Lleftarrow",!0);P(B,ve,we,"↞","\\twoheadleftarrow",!0);P(B,ve,we,"↢","\\leftarrowtail",!0);P(B,ve,we,"↫","\\looparrowleft",!0);P(B,ve,we,"⇋","\\leftrightharpoons",!0);P(B,ve,we,"↶","\\curvearrowleft",!0);P(B,ve,we,"↺","\\circlearrowleft",!0);P(B,ve,we,"↰","\\Lsh",!0);P(B,ve,we,"⇈","\\upuparrows",!0);P(B,ve,we,"↿","\\upharpoonleft",!0);P(B,ve,we,"⇃","\\downharpoonleft",!0);P(B,K,we,"⊶","\\origof",!0);P(B,K,we,"⊷","\\imageof",!0);P(B,ve,we,"⊸","\\multimap",!0);P(B,ve,we,"↭","\\leftrightsquigarrow",!0);P(B,ve,we,"⇉","\\rightrightarrows",!0);P(B,ve,we,"⇄","\\rightleftarrows",!0);P(B,ve,we,"↠","\\twoheadrightarrow",!0);P(B,ve,we,"↣","\\rightarrowtail",!0);P(B,ve,we,"↬","\\looparrowright",!0);P(B,ve,we,"↷","\\curvearrowright",!0);P(B,ve,we,"↻","\\circlearrowright",!0);P(B,ve,we,"↱","\\Rsh",!0);P(B,ve,we,"⇊","\\downdownarrows",!0);P(B,ve,we,"↾","\\upharpoonright",!0);P(B,ve,we,"⇂","\\downharpoonright",!0);P(B,ve,we,"⇝","\\rightsquigarrow",!0);P(B,ve,we,"⇝","\\leadsto");P(B,ve,we,"⇛","\\Rrightarrow",!0);P(B,ve,we,"↾","\\restriction");P(B,K,Ae,"‘","`");P(B,K,Ae,"$","\\$");P(bt,K,Ae,"$","\\$");P(bt,K,Ae,"$","\\textdollar");P(B,K,Ae,"%","\\%");P(bt,K,Ae,"%","\\%");P(B,K,Ae,"_","\\_");P(bt,K,Ae,"_","\\_");P(bt,K,Ae,"_","\\textunderscore");P(B,K,Ae,"∠","\\angle",!0);P(B,K,Ae,"∞","\\infty",!0);P(B,K,Ae,"′","\\prime");P(B,K,Ae,"△","\\triangle");P(B,K,Ae,"Γ","\\Gamma",!0);P(B,K,Ae,"Δ","\\Delta",!0);P(B,K,Ae,"Θ","\\Theta",!0);P(B,K,Ae,"Λ","\\Lambda",!0);P(B,K,Ae,"Ξ","\\Xi",!0);P(B,K,Ae,"Π","\\Pi",!0);P(B,K,Ae,"Σ","\\Sigma",!0);P(B,K,Ae,"Υ","\\Upsilon",!0);P(B,K,Ae,"Φ","\\Phi",!0);P(B,K,Ae,"Ψ","\\Psi",!0);P(B,K,Ae,"Ω","\\Omega",!0);P(B,K,Ae,"A","Α");P(B,K,Ae,"B","Β");P(B,K,Ae,"E","Ε");P(B,K,Ae,"Z","Ζ");P(B,K,Ae,"H","Η");P(B,K,Ae,"I","Ι");P(B,K,Ae,"K","Κ");P(B,K,Ae,"M","Μ");P(B,K,Ae,"N","Ν");P(B,K,Ae,"O","Ο");P(B,K,Ae,"P","Ρ");P(B,K,Ae,"T","Τ");P(B,K,Ae,"X","Χ");P(B,K,Ae,"¬","\\neg",!0);P(B,K,Ae,"¬","\\lnot");P(B,K,Ae,"⊤","\\top");P(B,K,Ae,"⊥","\\bot");P(B,K,Ae,"∅","\\emptyset");P(B,ve,Ae,"∅","\\varnothing");P(B,K,Vn,"α","\\alpha",!0);P(B,K,Vn,"β","\\beta",!0);P(B,K,Vn,"γ","\\gamma",!0);P(B,K,Vn,"δ","\\delta",!0);P(B,K,Vn,"ϵ","\\epsilon",!0);P(B,K,Vn,"ζ","\\zeta",!0);P(B,K,Vn,"η","\\eta",!0);P(B,K,Vn,"θ","\\theta",!0);P(B,K,Vn,"ι","\\iota",!0);P(B,K,Vn,"κ","\\kappa",!0);P(B,K,Vn,"λ","\\lambda",!0);P(B,K,Vn,"μ","\\mu",!0);P(B,K,Vn,"ν","\\nu",!0);P(B,K,Vn,"ξ","\\xi",!0);P(B,K,Vn,"ο","\\omicron",!0);P(B,K,Vn,"π","\\pi",!0);P(B,K,Vn,"ρ","\\rho",!0);P(B,K,Vn,"σ","\\sigma",!0);P(B,K,Vn,"τ","\\tau",!0);P(B,K,Vn,"υ","\\upsilon",!0);P(B,K,Vn,"ϕ","\\phi",!0);P(B,K,Vn,"χ","\\chi",!0);P(B,K,Vn,"ψ","\\psi",!0);P(B,K,Vn,"ω","\\omega",!0);P(B,K,Vn,"ε","\\varepsilon",!0);P(B,K,Vn,"ϑ","\\vartheta",!0);P(B,K,Vn,"ϖ","\\varpi",!0);P(B,K,Vn,"ϱ","\\varrho",!0);P(B,K,Vn,"ς","\\varsigma",!0);P(B,K,Vn,"φ","\\varphi",!0);P(B,K,ln,"∗","*",!0);P(B,K,ln,"+","+");P(B,K,ln,"−","-",!0);P(B,K,ln,"⋅","\\cdot",!0);P(B,K,ln,"∘","\\circ",!0);P(B,K,ln,"÷","\\div",!0);P(B,K,ln,"±","\\pm",!0);P(B,K,ln,"×","\\times",!0);P(B,K,ln,"∩","\\cap",!0);P(B,K,ln,"∪","\\cup",!0);P(B,K,ln,"∖","\\setminus",!0);P(B,K,ln,"∧","\\land");P(B,K,ln,"∨","\\lor");P(B,K,ln,"∧","\\wedge",!0);P(B,K,ln,"∨","\\vee",!0);P(B,K,Ae,"√","\\surd");P(B,K,Xc,"⟨","\\langle",!0);P(B,K,Xc,"∣","\\lvert");P(B,K,Xc,"∥","\\lVert");P(B,K,Ml,"?","?");P(B,K,Ml,"!","!");P(B,K,Ml,"⟩","\\rangle",!0);P(B,K,Ml,"∣","\\rvert");P(B,K,Ml,"∥","\\rVert");P(B,K,we,"=","=");P(B,K,we,":",":");P(B,K,we,"≈","\\approx",!0);P(B,K,we,"≅","\\cong",!0);P(B,K,we,"≥","\\ge");P(B,K,we,"≥","\\geq",!0);P(B,K,we,"←","\\gets");P(B,K,we,">","\\gt",!0);P(B,K,we,"∈","\\in",!0);P(B,K,we,"","\\@not");P(B,K,we,"⊂","\\subset",!0);P(B,K,we,"⊃","\\supset",!0);P(B,K,we,"⊆","\\subseteq",!0);P(B,K,we,"⊇","\\supseteq",!0);P(B,ve,we,"⊈","\\nsubseteq",!0);P(B,ve,we,"⊉","\\nsupseteq",!0);P(B,K,we,"⊨","\\models");P(B,K,we,"←","\\leftarrow",!0);P(B,K,we,"≤","\\le");P(B,K,we,"≤","\\leq",!0);P(B,K,we,"<","\\lt",!0);P(B,K,we,"→","\\rightarrow",!0);P(B,K,we,"→","\\to");P(B,ve,we,"≱","\\ngeq",!0);P(B,ve,we,"≰","\\nleq",!0);P(B,K,Ap," ","\\ ");P(B,K,Ap," ","\\space");P(B,K,Ap," ","\\nobreakspace");P(bt,K,Ap," ","\\ ");P(bt,K,Ap," "," ");P(bt,K,Ap," ","\\space");P(bt,K,Ap," ","\\nobreakspace");P(B,K,Ap,null,"\\nobreak");P(B,K,Ap,null,"\\allowbreak");P(B,K,DT,",",",");P(B,K,DT,";",";");P(B,ve,ln,"⊼","\\barwedge",!0);P(B,ve,ln,"⊻","\\veebar",!0);P(B,K,ln,"⊙","\\odot",!0);P(B,K,ln,"⊕","\\oplus",!0);P(B,K,ln,"⊗","\\otimes",!0);P(B,K,Ae,"∂","\\partial",!0);P(B,K,ln,"⊘","\\oslash",!0);P(B,ve,ln,"⊚","\\circledcirc",!0);P(B,ve,ln,"⊡","\\boxdot",!0);P(B,K,ln,"△","\\bigtriangleup");P(B,K,ln,"▽","\\bigtriangledown");P(B,K,ln,"†","\\dagger");P(B,K,ln,"⋄","\\diamond");P(B,K,ln,"⋆","\\star");P(B,K,ln,"◃","\\triangleleft");P(B,K,ln,"▹","\\triangleright");P(B,K,Xc,"{","\\{");P(bt,K,Ae,"{","\\{");P(bt,K,Ae,"{","\\textbraceleft");P(B,K,Ml,"}","\\}");P(bt,K,Ae,"}","\\}");P(bt,K,Ae,"}","\\textbraceright");P(B,K,Xc,"{","\\lbrace");P(B,K,Ml,"}","\\rbrace");P(B,K,Xc,"[","\\lbrack",!0);P(bt,K,Ae,"[","\\lbrack",!0);P(B,K,Ml,"]","\\rbrack",!0);P(bt,K,Ae,"]","\\rbrack",!0);P(B,K,Xc,"(","\\lparen",!0);P(B,K,Ml,")","\\rparen",!0);P(bt,K,Ae,"<","\\textless",!0);P(bt,K,Ae,">","\\textgreater",!0);P(B,K,Xc,"⌊","\\lfloor",!0);P(B,K,Ml,"⌋","\\rfloor",!0);P(B,K,Xc,"⌈","\\lceil",!0);P(B,K,Ml,"⌉","\\rceil",!0);P(B,K,Ae,"\\","\\backslash");P(B,K,Ae,"∣","|");P(B,K,Ae,"∣","\\vert");P(bt,K,Ae,"|","\\textbar",!0);P(B,K,Ae,"∥","\\|");P(B,K,Ae,"∥","\\Vert");P(bt,K,Ae,"∥","\\textbardbl");P(bt,K,Ae,"~","\\textasciitilde");P(bt,K,Ae,"\\","\\textbackslash");P(bt,K,Ae,"^","\\textasciicircum");P(B,K,we,"↑","\\uparrow",!0);P(B,K,we,"⇑","\\Uparrow",!0);P(B,K,we,"↓","\\downarrow",!0);P(B,K,we,"⇓","\\Downarrow",!0);P(B,K,we,"↕","\\updownarrow",!0);P(B,K,we,"⇕","\\Updownarrow",!0);P(B,K,_a,"∐","\\coprod");P(B,K,_a,"⋁","\\bigvee");P(B,K,_a,"⋀","\\bigwedge");P(B,K,_a,"⨄","\\biguplus");P(B,K,_a,"⋂","\\bigcap");P(B,K,_a,"⋃","\\bigcup");P(B,K,_a,"∫","\\int");P(B,K,_a,"∫","\\intop");P(B,K,_a,"∬","\\iint");P(B,K,_a,"∭","\\iiint");P(B,K,_a,"∏","\\prod");P(B,K,_a,"∑","\\sum");P(B,K,_a,"⨂","\\bigotimes");P(B,K,_a,"⨁","\\bigoplus");P(B,K,_a,"⨀","\\bigodot");P(B,K,_a,"∮","\\oint");P(B,K,_a,"∯","\\oiint");P(B,K,_a,"∰","\\oiiint");P(B,K,_a,"⨆","\\bigsqcup");P(B,K,_a,"∫","\\smallint");P(bt,K,s5,"…","\\textellipsis");P(B,K,s5,"…","\\mathellipsis");P(bt,K,s5,"…","\\ldots",!0);P(B,K,s5,"…","\\ldots",!0);P(B,K,s5,"⋯","\\@cdots",!0);P(B,K,s5,"⋱","\\ddots",!0);P(B,K,Ae,"⋮","\\varvdots");P(bt,K,Ae,"⋮","\\varvdots");P(B,K,Es,"ˊ","\\acute");P(B,K,Es,"ˋ","\\grave");P(B,K,Es,"¨","\\ddot");P(B,K,Es,"~","\\tilde");P(B,K,Es,"ˉ","\\bar");P(B,K,Es,"˘","\\breve");P(B,K,Es,"ˇ","\\check");P(B,K,Es,"^","\\hat");P(B,K,Es,"⃗","\\vec");P(B,K,Es,"˙","\\dot");P(B,K,Es,"˚","\\mathring");P(B,K,Vn,"","\\@imath");P(B,K,Vn,"","\\@jmath");P(B,K,Ae,"ı","ı");P(B,K,Ae,"ȷ","ȷ");P(bt,K,Ae,"ı","\\i",!0);P(bt,K,Ae,"ȷ","\\j",!0);P(bt,K,Ae,"ß","\\ss",!0);P(bt,K,Ae,"æ","\\ae",!0);P(bt,K,Ae,"œ","\\oe",!0);P(bt,K,Ae,"ø","\\o",!0);P(bt,K,Ae,"Æ","\\AE",!0);P(bt,K,Ae,"Œ","\\OE",!0);P(bt,K,Ae,"Ø","\\O",!0);P(bt,K,Es,"ˊ","\\'");P(bt,K,Es,"ˋ","\\`");P(bt,K,Es,"ˆ","\\^");P(bt,K,Es,"˜","\\~");P(bt,K,Es,"ˉ","\\=");P(bt,K,Es,"˘","\\u");P(bt,K,Es,"˙","\\.");P(bt,K,Es,"¸","\\c");P(bt,K,Es,"˚","\\r");P(bt,K,Es,"ˇ","\\v");P(bt,K,Es,"¨",'\\"');P(bt,K,Es,"˝","\\H");P(bt,K,Es,"◯","\\textcircled");var k9e={"--":!0,"---":!0,"``":!0,"''":!0};P(bt,K,Ae,"–","--",!0);P(bt,K,Ae,"–","\\textendash");P(bt,K,Ae,"—","---",!0);P(bt,K,Ae,"—","\\textemdash");P(bt,K,Ae,"‘","`",!0);P(bt,K,Ae,"‘","\\textquoteleft");P(bt,K,Ae,"’","'",!0);P(bt,K,Ae,"’","\\textquoteright");P(bt,K,Ae,"“","``",!0);P(bt,K,Ae,"“","\\textquotedblleft");P(bt,K,Ae,"”","''",!0);P(bt,K,Ae,"”","\\textquotedblright");P(B,K,Ae,"°","\\degree",!0);P(bt,K,Ae,"°","\\degree");P(bt,K,Ae,"°","\\textdegree",!0);P(B,K,Ae,"£","\\pounds");P(B,K,Ae,"£","\\mathsterling",!0);P(bt,K,Ae,"£","\\pounds");P(bt,K,Ae,"£","\\textsterling",!0);P(B,ve,Ae,"✠","\\maltese");P(bt,ve,Ae,"✠","\\maltese");var Mpe='0123456789/@."';for(var jP=0;jP0)return wd(s,c,i,n,a.concat(u));if(l){var d,f;if(l==="boldsymbol"){var h=IPt(s,i,n,a,r);d=h.fontName,f=[h.fontClass]}else o?(d=E9e[l].fontName,f=[l]):(d=yS(l,n.fontWeight,n.fontShape),f=[l,n.fontWeight,n.fontShape]);if(MT(s,d,i).metrics)return wd(s,d,i,n,a.concat(f));if(k9e.hasOwnProperty(s)&&d.slice(0,10)==="Typewriter"){for(var m=[],p=0;p{if(tm(t.classes)!==tm(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var n=t.classes[0];if(n==="mbin"||n==="mord")return!1}for(var r in t.style)if(t.style.hasOwnProperty(r)&&t.style[r]!==e.style[r])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},DPt=t=>{for(var e=0;en&&(n=a.height),a.depth>r&&(r=a.depth),a.maxFontSize>i&&(i=a.maxFontSize)}e.height=n,e.depth=r,e.maxFontSize=i},Hl=function(e,n,r,i){var s=new X6(e,n,r,i);return $K(s),s},S9e=(t,e,n,r)=>new X6(t,e,n,r),MPt=function(e,n,r){var i=Hl([e],[],n);return i.height=Math.max(r||n.fontMetrics().defaultRuleThickness,n.minRuleThickness),i.style.borderBottomWidth=jt(i.height),i.maxFontSize=1,i},NPt=function(e,n,r,i){var s=new EK(e,n,r,i);return $K(s),s},C9e=function(e){var n=new J6(e);return $K(n),n},RPt=function(e,n){return e instanceof J6?Hl([],[e],n):e},LPt=function(e){if(e.positionType==="individualShift"){for(var n=e.children,r=[n[0]],i=-n[0].shift-n[0].elem.depth,s=i,a=1;a{var n=Hl(["mspace"],[],e),r=js(t,e);return n.style.marginRight=jt(r),n},yS=function(e,n,r){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var s;return n==="textbf"&&r==="textit"?s="BoldItalic":n==="textbf"?s="Bold":n==="textit"?s="Italic":s="Regular",i+"-"+s},E9e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},$9e={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},zPt=function(e,n){var[r,i,s]=$9e[e],a=new nm(r),o=new yp([a],{width:jt(i),height:jt(s),style:"width:"+jt(i),viewBox:"0 0 "+1e3*i+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),l=S9e(["overlay"],[o],n);return l.height=s,l.style.height=jt(s),l.style.width=jt(i),l},Ue={fontMap:E9e,makeSymbol:wd,mathsym:TPt,makeSpan:Hl,makeSvgSpan:S9e,makeLineSpan:MPt,makeAnchor:NPt,makeFragment:C9e,wrapFragment:RPt,makeVList:PPt,makeOrd:APt,makeGlue:jPt,staticSvg:zPt,svgData:$9e,tryCombineChars:DPt},Ds={number:3,unit:"mu"},u1={number:4,unit:"mu"},xh={number:5,unit:"mu"},FPt={mord:{mop:Ds,mbin:u1,mrel:xh,minner:Ds},mop:{mord:Ds,mop:Ds,mrel:xh,minner:Ds},mbin:{mord:u1,mop:u1,mopen:u1,minner:u1},mrel:{mord:xh,mop:xh,mopen:xh,minner:xh},mopen:{},mclose:{mop:Ds,mbin:u1,mrel:xh,minner:Ds},mpunct:{mord:Ds,mop:Ds,mrel:xh,mopen:Ds,mclose:Ds,mpunct:Ds,minner:Ds},minner:{mord:Ds,mop:Ds,mbin:u1,mrel:xh,mopen:Ds,mpunct:Ds,minner:Ds}},BPt={mord:{mop:Ds},mop:{mord:Ds,mop:Ds},mbin:{},mrel:{},mopen:{},mclose:{mop:Ds},mpunct:{},minner:{mop:Ds}},T9e={},RC={},LC={};function Qt(t){for(var{type:e,names:n,props:r,handler:i,htmlBuilder:s,mathmlBuilder:a}=t,o={type:e,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:i},l=0;l{var v=p.classes[0],x=m.classes[0];v==="mbin"&&Bn.contains(qPt,x)?p.classes[0]="mord":x==="mbin"&&Bn.contains(UPt,v)&&(m.classes[0]="mord")},{node:d},f,h),jpe(s,(m,p)=>{var v=qH(p),x=qH(m),w=v&&x?m.hasClass("mtight")?BPt[v][x]:FPt[v][x]:null;if(w)return Ue.makeGlue(w,c)},{node:d},f,h),s},jpe=function t(e,n,r,i,s){i&&e.push(i);for(var a=0;af=>{e.splice(d+1,0,f),a++})(a)}i&&e.pop()},I9e=function(e){return e instanceof J6||e instanceof EK||e instanceof X6&&e.hasClass("enclosing")?e:null},VPt=function t(e,n){var r=I9e(e);if(r){var i=r.children;if(i.length){if(n==="right")return t(i[i.length-1],"right");if(n==="left")return t(i[0],"left")}}return e},qH=function(e,n){return e?(n&&(e=VPt(e,n)),WPt[e.classes[0]]||null):null},sw=function(e,n){var r=["nulldelimiter"].concat(e.baseSizingClasses());return bp(n.concat(r))},gi=function(e,n,r){if(!e)return bp();if(RC[e.type]){var i=RC[e.type](e,n);if(r&&n.size!==r.size){i=bp(n.sizingClasses(r),[i],n);var s=n.sizeMultiplier/r.sizeMultiplier;i.height*=s,i.depth*=s}return i}else throw new Et("Got group of unknown type: '"+e.type+"'")};function bS(t,e){var n=bp(["base"],t,e),r=bp(["strut"]);return r.style.height=jt(n.height+n.depth),n.depth&&(r.style.verticalAlign=jt(-n.depth)),n.children.unshift(r),n}function HH(t,e){var n=null;t.length===1&&t[0].type==="tag"&&(n=t[0].tag,t=t[0].body);var r=Pa(t,e,"root"),i;r.length===2&&r[1].hasClass("tag")&&(i=r.pop());for(var s=[],a=[],o=0;o0&&(s.push(bS(a,e)),a=[]),s.push(r[o]));a.length>0&&s.push(bS(a,e));var c;n?(c=bS(Pa(n,e,!0)),c.classes=["tag"],s.push(c)):i&&s.push(i);var u=bp(["katex-html"],s);if(u.setAttribute("aria-hidden","true"),c){var d=c.children[0];d.style.height=jt(u.height+u.depth),u.depth&&(d.style.verticalAlign=jt(-u.depth))}return u}function A9e(t){return new J6(t)}class Nc{constructor(e,n,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=n||[],this.classes=r||[]}setAttribute(e,n){this.attributes[e]=n}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&e.setAttribute(n,this.attributes[n]);this.classes.length>0&&(e.className=tm(this.classes));for(var r=0;r0&&(e+=' class ="'+Bn.escape(tm(this.classes))+'"'),e+=">";for(var r=0;r",e}toText(){return this.children.map(e=>e.toText()).join("")}}class _f{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Bn.escape(this.toText())}toText(){return this.text}}class ZPt{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",jt(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var _t={MathNode:Nc,TextNode:_f,SpaceNode:ZPt,newDocumentFragment:A9e},Gu=function(e,n,r){return ss[n][e]&&ss[n][e].replace&&e.charCodeAt(0)!==55349&&!(k9e.hasOwnProperty(e)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(e=ss[n][e].replace),new _t.TextNode(e)},TK=function(e){return e.length===1?e[0]:new _t.MathNode("mrow",e)},IK=function(e,n){if(n.fontFamily==="texttt")return"monospace";if(n.fontFamily==="textsf")return n.fontShape==="textit"&&n.fontWeight==="textbf"?"sans-serif-bold-italic":n.fontShape==="textit"?"sans-serif-italic":n.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(n.fontShape==="textit"&&n.fontWeight==="textbf")return"bold-italic";if(n.fontShape==="textit")return"italic";if(n.fontWeight==="textbf")return"bold";var r=n.font;if(!r||r==="mathnormal")return null;var i=e.mode;if(r==="mathit")return"italic";if(r==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(r==="mathbf")return"bold";if(r==="mathbb")return"double-struck";if(r==="mathsfit")return"sans-serif-italic";if(r==="mathfrak")return"fraktur";if(r==="mathscr"||r==="mathcal")return"script";if(r==="mathsf")return"sans-serif";if(r==="mathtt")return"monospace";var s=e.text;if(Bn.contains(["\\imath","\\jmath"],s))return null;ss[i][s]&&ss[i][s].replace&&(s=ss[i][s].replace);var a=Ue.fontMap[r].fontName;return CK(s,a,i)?Ue.fontMap[r].variant:null};function UP(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof _f&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var n=t.children[0];return n instanceof _f&&n.text===","}else return!1}var gc=function(e,n,r){if(e.length===1){var i=Yi(e[0],n);return r&&i instanceof Nc&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var s=[],a,o=0;o=1&&(a.type==="mn"||UP(a))){var c=l.children[0];c instanceof Nc&&c.type==="mn"&&(c.children=[...a.children,...c.children],s.pop())}else if(a.type==="mi"&&a.children.length===1){var u=a.children[0];if(u instanceof _f&&u.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var d=l.children[0];d instanceof _f&&d.text.length>0&&(d.text=d.text.slice(0,1)+"̸"+d.text.slice(1),s.pop())}}}s.push(l),a=l}return s},rm=function(e,n,r){return TK(gc(e,n,r))},Yi=function(e,n){if(!e)return new _t.MathNode("mrow");if(LC[e.type]){var r=LC[e.type](e,n);return r}else throw new Et("Got group of unknown type: '"+e.type+"'")};function zpe(t,e,n,r,i){var s=gc(t,n),a;s.length===1&&s[0]instanceof Nc&&Bn.contains(["mrow","mtable"],s[0].type)?a=s[0]:a=new _t.MathNode("mrow",s);var o=new _t.MathNode("annotation",[new _t.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new _t.MathNode("semantics",[a,o]),c=new _t.MathNode("math",[l]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&c.setAttribute("display","block");var u=i?"katex":"katex-mathml";return Ue.makeSpan([u],[c])}var O9e=function(e){return new Ph({style:e.displayMode?Zn.DISPLAY:Zn.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},D9e=function(e,n){if(n.displayMode){var r=["katex-display"];n.leqno&&r.push("leqno"),n.fleqn&&r.push("fleqn"),e=Ue.makeSpan(r,[e])}return e},GPt=function(e,n,r){var i=O9e(r),s;if(r.output==="mathml")return zpe(e,n,i,r.displayMode,!0);if(r.output==="html"){var a=HH(e,i);s=Ue.makeSpan(["katex"],[a])}else{var o=zpe(e,n,i,r.displayMode,!1),l=HH(e,i);s=Ue.makeSpan(["katex"],[o,l])}return D9e(s,r)},KPt=function(e,n,r){var i=O9e(r),s=HH(e,i),a=Ue.makeSpan(["katex"],[s]);return D9e(a,r)},YPt={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},JPt=function(e){var n=new _t.MathNode("mo",[new _t.TextNode(YPt[e.replace(/^\\/,"")])]);return n.setAttribute("stretchy","true"),n},XPt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},QPt=function(e){return e.type==="ordgroup"?e.body.length:1},ejt=function(e,n){function r(){var o=4e5,l=e.label.slice(1);if(Bn.contains(["widehat","widecheck","widetilde","utilde"],l)){var c=e,u=QPt(c.base),d,f,h;if(u>5)l==="widehat"||l==="widecheck"?(d=420,o=2364,h=.42,f=l+"4"):(d=312,o=2340,h=.34,f="tilde4");else{var m=[1,1,2,2,3,3][u];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][m],d=[0,239,300,360,420][m],h=[0,.24,.3,.3,.36,.42][m],f=l+m):(o=[0,600,1033,2339,2340][m],d=[0,260,286,306,312][m],h=[0,.26,.286,.3,.306,.34][m],f="tilde"+m)}var p=new nm(f),v=new yp([p],{width:"100%",height:jt(h),viewBox:"0 0 "+o+" "+d,preserveAspectRatio:"none"});return{span:Ue.makeSvgSpan([],[v],n),minWidth:0,height:h}}else{var x=[],w=XPt[l],[E,S,_]=w,C=_/1e3,T=E.length,M,A;if(T===1){var $=w[3];M=["hide-tail"],A=[$]}else if(T===2)M=["halfarrow-left","halfarrow-right"],A=["xMinYMin","xMaxYMin"];else if(T===3)M=["brace-left","brace-center","brace-right"],A=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+T+" children.");for(var O=0;O0&&(i.style.minWidth=jt(s)),i},tjt=function(e,n,r,i,s){var a,o=e.height+e.depth+r+i;if(/fbox|color|angl/.test(n)){if(a=Ue.makeSpan(["stretchy",n],[],s),n==="fbox"){var l=s.color&&s.getColor();l&&(a.style.borderColor=l)}}else{var c=[];/^[bx]cancel$/.test(n)&&c.push(new BH({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(n)&&c.push(new BH({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var u=new yp(c,{width:"100%",height:jt(o)});a=Ue.makeSvgSpan([],[u],s)}return a.height=o,a.style.height=jt(o),a},xp={encloseSpan:tjt,mathMLnode:JPt,svgSpan:ejt};function Lr(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function AK(t){var e=NT(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function NT(t){return t&&(t.type==="atom"||EPt.hasOwnProperty(t.type))?t:null}var OK=(t,e)=>{var n,r,i;t&&t.type==="supsub"?(r=Lr(t.base,"accent"),n=r.base,t.base=n,i=SPt(gi(t,e)),t.base=r):(r=Lr(t,"accent"),n=r.base);var s=gi(n,e.havingCrampedStyle()),a=r.isShifty&&Bn.isCharacterBox(n),o=0;if(a){var l=Bn.getBaseElem(n),c=gi(l,e.havingCrampedStyle());o=Dpe(c).skew}var u=r.label==="\\c",d=u?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),f;if(r.isStretchy)f=xp.svgSpan(r,e),f=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:f,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+jt(2*o)+")",marginLeft:jt(2*o)}:void 0}]},e);else{var h,m;r.label==="\\vec"?(h=Ue.staticSvg("vec",e),m=Ue.svgData.vec[1]):(h=Ue.makeOrd({mode:r.mode,text:r.label},e,"textord"),h=Dpe(h),h.italic=0,m=h.width,u&&(d+=h.depth)),f=Ue.makeSpan(["accent-body"],[h]);var p=r.label==="\\textcircled";p&&(f.classes.push("accent-full"),d=s.height);var v=o;p||(v-=m/2),f.style.left=jt(v),r.label==="\\textcircled"&&(f.style.top=".2em"),f=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-d},{type:"elem",elem:f}]},e)}var x=Ue.makeSpan(["mord","accent"],[f],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},M9e=(t,e)=>{var n=t.isStretchy?xp.mathMLnode(t.label):new _t.MathNode("mo",[Gu(t.label,t.mode)]),r=new _t.MathNode("mover",[Yi(t.base,e),n]);return r.setAttribute("accent","true"),r},njt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Qt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(t,e)=>{var n=PC(e[0]),r=!njt.test(t.funcName),i=!r||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:r,isShifty:i,base:n}},htmlBuilder:OK,mathmlBuilder:M9e});Qt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(t,e)=>{var n=e[0],r=t.parser.mode;return r==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:t.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:OK,mathmlBuilder:M9e});Qt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0];return{type:"accentUnder",mode:n.mode,label:r,base:i}},htmlBuilder:(t,e)=>{var n=gi(t.base,e),r=xp.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,s=Ue.makeVList({positionType:"top",positionData:n.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:n}]},e);return Ue.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(t,e)=>{var n=xp.mathMLnode(t.label),r=new _t.MathNode("munder",[Yi(t.base,e),n]);return r.setAttribute("accentunder","true"),r}});var xS=t=>{var e=new _t.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};Qt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,n){var{parser:r,funcName:i}=t;return{type:"xArrow",mode:r.mode,label:i,body:e[0],below:n[0]}},htmlBuilder(t,e){var n=e.style,r=e.havingStyle(n.sup()),i=Ue.wrapFragment(gi(t.body,r,e),e),s=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(s+"-arrow-pad");var a;t.below&&(r=e.havingStyle(n.sub()),a=Ue.wrapFragment(gi(t.below,r,e),e),a.classes.push(s+"-arrow-pad"));var o=xp.svgSpan(t,e),l=-e.fontMetrics().axisHeight+.5*o.height,c=-e.fontMetrics().axisHeight-.5*o.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(c-=i.depth);var u;if(a){var d=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;u=Ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:d}]},e)}else u=Ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:o,shift:l}]},e);return u.children[0].children[0].children[1].classes.push("svg-align"),Ue.makeSpan(["mrel","x-arrow"],[u],e)},mathmlBuilder(t,e){var n=xp.mathMLnode(t.label);n.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var r;if(t.body){var i=xS(Yi(t.body,e));if(t.below){var s=xS(Yi(t.below,e));r=new _t.MathNode("munderover",[n,s,i])}else r=new _t.MathNode("mover",[n,i])}else if(t.below){var a=xS(Yi(t.below,e));r=new _t.MathNode("munder",[n,a])}else r=xS(),r=new _t.MathNode("mover",[n,r]);return r}});var rjt=Ue.makeSpan;function N9e(t,e){var n=Pa(t.body,e,!0);return rjt([t.mclass],n,e)}function R9e(t,e){var n,r=gc(t.body,e);return t.mclass==="minner"?n=new _t.MathNode("mpadded",r):t.mclass==="mord"?t.isCharacterBox?(n=r[0],n.type="mi"):n=new _t.MathNode("mi",r):(t.isCharacterBox?(n=r[0],n.type="mo"):n=new _t.MathNode("mo",r),t.mclass==="mbin"?(n.attributes.lspace="0.22em",n.attributes.rspace="0.22em"):t.mclass==="mpunct"?(n.attributes.lspace="0em",n.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(n.attributes.lspace="0em",n.attributes.rspace="0em"):t.mclass==="minner"&&(n.attributes.lspace="0.0556em",n.attributes.width="+0.1111em")),n}Qt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:n,funcName:r}=t,i=e[0];return{type:"mclass",mode:n.mode,mclass:"m"+r.slice(5),body:sa(i),isCharacterBox:Bn.isCharacterBox(i)}},htmlBuilder:N9e,mathmlBuilder:R9e});var RT=t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};Qt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:n}=t;return{type:"mclass",mode:n.mode,mclass:RT(e[0]),body:sa(e[1]),isCharacterBox:Bn.isCharacterBox(e[1])}}});Qt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:n,funcName:r}=t,i=e[1],s=e[0],a;r!=="\\stackrel"?a=RT(i):a="mrel";var o={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!=="\\stackrel",body:sa(i)},l={type:"supsub",mode:s.mode,base:o,sup:r==="\\underset"?null:s,sub:r==="\\underset"?s:null};return{type:"mclass",mode:n.mode,mclass:a,body:[l],isCharacterBox:Bn.isCharacterBox(l)}},htmlBuilder:N9e,mathmlBuilder:R9e});Qt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:n}=t;return{type:"pmb",mode:n.mode,mclass:RT(e[0]),body:sa(e[0])}},htmlBuilder(t,e){var n=Pa(t.body,e,!0),r=Ue.makeSpan([t.mclass],n,e);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(t,e){var n=gc(t.body,e),r=new _t.MathNode("mstyle",n);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});var ijt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Fpe=()=>({type:"styling",body:[],mode:"math",style:"display"}),Bpe=t=>t.type==="textord"&&t.text==="@",sjt=(t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e;function ajt(t,e,n){var r=ijt[t];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return n.callFunction(r,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=n.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:r,mode:"math",family:"rel"},a=n.callFunction("\\Big",[s],[]),o=n.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[i,a,o]};return n.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return n.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var c={type:"textord",text:"\\Vert",mode:"math"};return n.callFunction("\\Big",[c],[])}default:return{type:"textord",text:" ",mode:"math"}}}function ojt(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var n=t.fetch().text;if(n==="&"||n==="\\\\")t.consume();else if(n==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new Et("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var r=[],i=[r],s=0;s-1))if("<>AV".indexOf(c)>-1)for(var d=0;d<2;d++){for(var f=!0,h=l+1;hAV=|." after @',a[l]);var m=ajt(c,u,t),p={type:"styling",body:[m],mode:"math",style:"display"};r.push(p),o=Fpe()}s%2===0?r.push(o):r.shift(),r=[],i.push(r)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}Qt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:n,funcName:r}=t;return{type:"cdlabel",mode:n.mode,side:r.slice(4),label:e[0]}},htmlBuilder(t,e){var n=e.havingStyle(e.style.sup()),r=Ue.wrapFragment(gi(t.label,n,e),e);return r.classes.push("cd-label-"+t.side),r.style.bottom=jt(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(t,e){var n=new _t.MathNode("mrow",[Yi(t.label,e)]);return n=new _t.MathNode("mpadded",[n]),n.setAttribute("width","0"),t.side==="left"&&n.setAttribute("lspace","-1width"),n.setAttribute("voffset","0.7em"),n=new _t.MathNode("mstyle",[n]),n.setAttribute("displaystyle","false"),n.setAttribute("scriptlevel","1"),n}});Qt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:n}=t;return{type:"cdlabelparent",mode:n.mode,fragment:e[0]}},htmlBuilder(t,e){var n=Ue.wrapFragment(gi(t.fragment,e),e);return n.classes.push("cd-vert-arrow"),n},mathmlBuilder(t,e){return new _t.MathNode("mrow",[Yi(t.fragment,e)])}});Qt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:n}=t,r=Lr(e[0],"ordgroup"),i=r.body,s="",a=0;a=1114111)throw new Et("\\@char with invalid code point "+s);return l<=65535?c=String.fromCharCode(l):(l-=65536,c=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:n.mode,text:c}}});var L9e=(t,e)=>{var n=Pa(t.body,e.withColor(t.color),!1);return Ue.makeFragment(n)},P9e=(t,e)=>{var n=gc(t.body,e.withColor(t.color)),r=new _t.MathNode("mstyle",n);return r.setAttribute("mathcolor",t.color),r};Qt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:n}=t,r=Lr(e[0],"color-token").color,i=e[1];return{type:"color",mode:n.mode,color:r,body:sa(i)}},htmlBuilder:L9e,mathmlBuilder:P9e});Qt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:n,breakOnTokenText:r}=t,i=Lr(e[0],"color-token").color;n.gullet.macros.set("\\current@color",i);var s=n.parseExpression(!0,r);return{type:"color",mode:n.mode,color:i,body:s}},htmlBuilder:L9e,mathmlBuilder:P9e});Qt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,n){var{parser:r}=t,i=r.gullet.future().text==="["?r.parseSizeGroup(!0):null,s=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:s,size:i&&Lr(i,"size").value}},htmlBuilder(t,e){var n=Ue.makeSpan(["mspace"],[],e);return t.newLine&&(n.classes.push("newline"),t.size&&(n.style.marginTop=jt(js(t.size,e)))),n},mathmlBuilder(t,e){var n=new _t.MathNode("mspace");return t.newLine&&(n.setAttribute("linebreak","newline"),t.size&&n.setAttribute("height",jt(js(t.size,e)))),n}});var WH={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},j9e=t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new Et("Expected a control sequence",t);return e},ljt=t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},z9e=(t,e,n,r)=>{var i=t.gullet.macros.get(n.text);i==null&&(n.noexpand=!0,i={tokens:[n],numArgs:0,unexpandable:!t.gullet.isExpandable(n.text)}),t.gullet.macros.set(e,i,r)};Qt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:n}=t;e.consumeSpaces();var r=e.fetch();if(WH[r.text])return(n==="\\global"||n==="\\\\globallong")&&(r.text=WH[r.text]),Lr(e.parseFunction(),"internal");throw new Et("Invalid token after macro prefix",r)}});Qt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:n}=t,r=e.gullet.popToken(),i=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new Et("Expected a control sequence",r);for(var s=0,a,o=[[]];e.gullet.future().text!=="{";)if(r=e.gullet.popToken(),r.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[s].push("{");break}if(r=e.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new Et('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==s+1)throw new Et('Argument number "'+r.text+'" out of order');s++,o.push([])}else{if(r.text==="EOF")throw new Et("Expected a macro definition");o[s].push(r.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(n==="\\edef"||n==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(i,{tokens:l,numArgs:s,delimiters:o},n===WH[n]),{type:"internal",mode:e.mode}}});Qt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:n}=t,r=j9e(e.gullet.popToken());e.gullet.consumeSpaces();var i=ljt(e);return z9e(e,r,i,n==="\\\\globallet"),{type:"internal",mode:e.mode}}});Qt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:n}=t,r=j9e(e.gullet.popToken()),i=e.gullet.popToken(),s=e.gullet.popToken();return z9e(e,r,s,n==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});var w4=function(e,n,r){var i=ss.math[e]&&ss.math[e].replace,s=CK(i||e,n,r);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+n+".");return s},DK=function(e,n,r,i){var s=r.havingBaseStyle(n),a=Ue.makeSpan(i.concat(s.sizingClasses(r)),[e],r),o=s.sizeMultiplier/r.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=s.sizeMultiplier,a},F9e=function(e,n,r){var i=n.havingBaseStyle(r),s=(1-n.sizeMultiplier/i.sizeMultiplier)*n.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=jt(s),e.height-=s,e.depth+=s},cjt=function(e,n,r,i,s,a){var o=Ue.makeSymbol(e,"Main-Regular",s,i),l=DK(o,n,i,a);return r&&F9e(l,i,n),l},ujt=function(e,n,r,i){return Ue.makeSymbol(e,"Size"+n+"-Regular",r,i)},B9e=function(e,n,r,i,s,a){var o=ujt(e,n,s,i),l=DK(Ue.makeSpan(["delimsizing","size"+n],[o],i),Zn.TEXT,i,a);return r&&F9e(l,i,Zn.TEXT),l},qP=function(e,n,r){var i;n==="Size1-Regular"?i="delim-size1":i="delim-size4";var s=Ue.makeSpan(["delimsizinginner",i],[Ue.makeSpan([],[Ue.makeSymbol(e,n,r)])]);return{type:"elem",elem:s}},HP=function(e,n,r){var i=wf["Size4-Regular"][e.charCodeAt(0)]?wf["Size4-Regular"][e.charCodeAt(0)][4]:wf["Size1-Regular"][e.charCodeAt(0)][4],s=new nm("inner",gPt(e,Math.round(1e3*n))),a=new yp([s],{width:jt(i),height:jt(n),style:"width:"+jt(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*n),preserveAspectRatio:"xMinYMin"}),o=Ue.makeSvgSpan([],[a],r);return o.height=n,o.style.height=jt(n),o.style.width=jt(i),{type:"elem",elem:o}},VH=.008,wS={type:"kern",size:-1*VH},djt=["|","\\lvert","\\rvert","\\vert"],fjt=["\\|","\\lVert","\\rVert","\\Vert"],U9e=function(e,n,r,i,s,a){var o,l,c,u,d="",f=0;o=c=u=e,l=null;var h="Size1-Regular";e==="\\uparrow"?c=u="⏐":e==="\\Uparrow"?c=u="‖":e==="\\downarrow"?o=c="⏐":e==="\\Downarrow"?o=c="‖":e==="\\updownarrow"?(o="\\uparrow",c="⏐",u="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",c="‖",u="\\Downarrow"):Bn.contains(djt,e)?(c="∣",d="vert",f=333):Bn.contains(fjt,e)?(c="∥",d="doublevert",f=556):e==="["||e==="\\lbrack"?(o="⎡",c="⎢",u="⎣",h="Size4-Regular",d="lbrack",f=667):e==="]"||e==="\\rbrack"?(o="⎤",c="⎥",u="⎦",h="Size4-Regular",d="rbrack",f=667):e==="\\lfloor"||e==="⌊"?(c=o="⎢",u="⎣",h="Size4-Regular",d="lfloor",f=667):e==="\\lceil"||e==="⌈"?(o="⎡",c=u="⎢",h="Size4-Regular",d="lceil",f=667):e==="\\rfloor"||e==="⌋"?(c=o="⎥",u="⎦",h="Size4-Regular",d="rfloor",f=667):e==="\\rceil"||e==="⌉"?(o="⎤",c=u="⎥",h="Size4-Regular",d="rceil",f=667):e==="("||e==="\\lparen"?(o="⎛",c="⎜",u="⎝",h="Size4-Regular",d="lparen",f=875):e===")"||e==="\\rparen"?(o="⎞",c="⎟",u="⎠",h="Size4-Regular",d="rparen",f=875):e==="\\{"||e==="\\lbrace"?(o="⎧",l="⎨",u="⎩",c="⎪",h="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="⎫",l="⎬",u="⎭",c="⎪",h="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(o="⎧",u="⎩",c="⎪",h="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(o="⎫",u="⎭",c="⎪",h="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(o="⎧",u="⎭",c="⎪",h="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(o="⎫",u="⎩",c="⎪",h="Size4-Regular");var m=w4(o,h,s),p=m.height+m.depth,v=w4(c,h,s),x=v.height+v.depth,w=w4(u,h,s),E=w.height+w.depth,S=0,_=1;if(l!==null){var C=w4(l,h,s);S=C.height+C.depth,_=2}var T=p+E+S,M=Math.max(0,Math.ceil((n-T)/(_*x))),A=T+M*_*x,$=i.fontMetrics().axisHeight;r&&($*=i.sizeMultiplier);var O=A/2-$,D=[];if(d.length>0){var N=A-p-E,R=Math.round(A*1e3),q=vPt(d,Math.round(N*1e3)),W=new nm(d,q),G=(f/1e3).toFixed(3)+"em",U=(R/1e3).toFixed(3)+"em",J=new yp([W],{width:G,height:U,viewBox:"0 0 "+f+" "+R}),F=Ue.makeSvgSpan([],[J],i);F.height=R/1e3,F.style.width=G,F.style.height=U,D.push({type:"elem",elem:F})}else{if(D.push(qP(u,h,s)),D.push(wS),l===null){var H=A-p-E+2*VH;D.push(HP(c,H,i))}else{var V=(A-p-E-S)/2+2*VH;D.push(HP(c,V,i)),D.push(wS),D.push(qP(l,h,s)),D.push(wS),D.push(HP(c,V,i))}D.push(wS),D.push(qP(o,h,s))}var L=i.havingBaseStyle(Zn.TEXT),se=Ue.makeVList({positionType:"bottom",positionData:O,children:D},L);return DK(Ue.makeSpan(["delimsizing","mult"],[se],L),Zn.TEXT,i,a)},WP=80,VP=.08,ZP=function(e,n,r,i,s){var a=mPt(e,i,r),o=new nm(e,a),l=new yp([o],{width:"400em",height:jt(n),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ue.makeSvgSpan(["hide-tail"],[l],s)},hjt=function(e,n){var r=n.havingBaseSizing(),i=V9e("\\surd",e*r.sizeMultiplier,W9e,r),s=r.sizeMultiplier,a=Math.max(0,n.minRuleThickness-n.fontMetrics().sqrtRuleThickness),o,l=0,c=0,u=0,d;return i.type==="small"?(u=1e3+1e3*a+WP,e<1?s=1:e<1.4&&(s=.7),l=(1+a+VP)/s,c=(1+a)/s,o=ZP("sqrtMain",l,u,a,n),o.style.minWidth="0.853em",d=.833/s):i.type==="large"?(u=(1e3+WP)*lx[i.size],c=(lx[i.size]+a)/s,l=(lx[i.size]+a+VP)/s,o=ZP("sqrtSize"+i.size,l,u,a,n),o.style.minWidth="1.02em",d=1/s):(l=e+a+VP,c=e+a,u=Math.floor(1e3*e+a)+WP,o=ZP("sqrtTall",l,u,a,n),o.style.minWidth="0.742em",d=1.056),o.height=c,o.style.height=jt(l),{span:o,advanceWidth:d,ruleWidth:(n.fontMetrics().sqrtRuleThickness+a)*s}},q9e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],pjt=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],H9e=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],lx=[0,1.2,1.8,2.4,3],mjt=function(e,n,r,i,s){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),Bn.contains(q9e,e)||Bn.contains(H9e,e))return B9e(e,n,!1,r,i,s);if(Bn.contains(pjt,e))return U9e(e,lx[n],!1,r,i,s);throw new Et("Illegal delimiter: '"+e+"'")},gjt=[{type:"small",style:Zn.SCRIPTSCRIPT},{type:"small",style:Zn.SCRIPT},{type:"small",style:Zn.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],vjt=[{type:"small",style:Zn.SCRIPTSCRIPT},{type:"small",style:Zn.SCRIPT},{type:"small",style:Zn.TEXT},{type:"stack"}],W9e=[{type:"small",style:Zn.SCRIPTSCRIPT},{type:"small",style:Zn.SCRIPT},{type:"small",style:Zn.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],yjt=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},V9e=function(e,n,r,i){for(var s=Math.min(2,3-i.style.size),a=s;an)return r[a]}return r[r.length-1]},Z9e=function(e,n,r,i,s,a){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var o;Bn.contains(H9e,e)?o=gjt:Bn.contains(q9e,e)?o=W9e:o=vjt;var l=V9e(e,n,o,i);return l.type==="small"?cjt(e,l.style,r,i,s,a):l.type==="large"?B9e(e,l.size,r,i,s,a):U9e(e,n,r,i,s,a)},bjt=function(e,n,r,i,s,a){var o=i.fontMetrics().axisHeight*i.sizeMultiplier,l=901,c=5/i.fontMetrics().ptPerEm,u=Math.max(n-o,r+o),d=Math.max(u/500*l,2*u-c);return Z9e(e,d,!0,i,s,a)},np={sqrtImage:hjt,sizedDelim:mjt,sizeToMaxHeight:lx,customSizedDelim:Z9e,leftRightDelim:bjt},Upe={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},xjt=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function LT(t,e){var n=NT(t);if(n&&Bn.contains(xjt,n.text))return n;throw n?new Et("Invalid delimiter '"+n.text+"' after '"+e.funcName+"'",t):new Et("Invalid delimiter type '"+t.type+"'",t)}Qt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(t,e)=>{var n=LT(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:Upe[t.funcName].size,mclass:Upe[t.funcName].mclass,delim:n.text}},htmlBuilder:(t,e)=>t.delim==="."?Ue.makeSpan([t.mclass]):np.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),mathmlBuilder:t=>{var e=[];t.delim!=="."&&e.push(Gu(t.delim,t.mode));var n=new _t.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n.setAttribute("stretchy","true");var r=jt(np.sizeToMaxHeight[t.size]);return n.setAttribute("minsize",r),n.setAttribute("maxsize",r),n}});function qpe(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Qt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var n=t.parser.gullet.macros.get("\\current@color");if(n&&typeof n!="string")throw new Et("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:LT(e[0],t).text,color:n}}});Qt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var n=LT(e[0],t),r=t.parser;++r.leftrightDepth;var i=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var s=Lr(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:i,left:n.text,right:s.delim,rightColor:s.color}},htmlBuilder:(t,e)=>{qpe(t);for(var n=Pa(t.body,e,!0,["mopen","mclose"]),r=0,i=0,s=!1,a=0;a{qpe(t);var n=gc(t.body,e);if(t.left!=="."){var r=new _t.MathNode("mo",[Gu(t.left,t.mode)]);r.setAttribute("fence","true"),n.unshift(r)}if(t.right!=="."){var i=new _t.MathNode("mo",[Gu(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),n.push(i)}return TK(n)}});Qt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var n=LT(e[0],t);if(!t.parser.leftrightDepth)throw new Et("\\middle without preceding \\left",n);return{type:"middle",mode:t.parser.mode,delim:n.text}},htmlBuilder:(t,e)=>{var n;if(t.delim===".")n=sw(e,[]);else{n=np.sizedDelim(t.delim,1,e,t.mode,[]);var r={delim:t.delim,options:e};n.isMiddle=r}return n},mathmlBuilder:(t,e)=>{var n=t.delim==="\\vert"||t.delim==="|"?Gu("|","text"):Gu(t.delim,t.mode),r=new _t.MathNode("mo",[n]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});var MK=(t,e)=>{var n=Ue.wrapFragment(gi(t.body,e),e),r=t.label.slice(1),i=e.sizeMultiplier,s,a=0,o=Bn.isCharacterBox(t.body);if(r==="sout")s=Ue.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/i,a=-.5*e.fontMetrics().xHeight;else if(r==="phase"){var l=js({number:.6,unit:"pt"},e),c=js({number:.35,unit:"ex"},e),u=e.havingBaseSizing();i=i/u.sizeMultiplier;var d=n.height+n.depth+l+c;n.style.paddingLeft=jt(d/2+l);var f=Math.floor(1e3*d*i),h=hPt(f),m=new yp([new nm("phase",h)],{width:"400em",height:jt(f/1e3),viewBox:"0 0 400000 "+f,preserveAspectRatio:"xMinYMin slice"});s=Ue.makeSvgSpan(["hide-tail"],[m],e),s.style.height=jt(d),a=n.depth+l+c}else{/cancel/.test(r)?o||n.classes.push("cancel-pad"):r==="angl"?n.classes.push("anglpad"):n.classes.push("boxpad");var p=0,v=0,x=0;/box/.test(r)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),p=e.fontMetrics().fboxsep+(r==="colorbox"?0:x),v=p):r==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),p=4*x,v=Math.max(0,.25-n.depth)):(p=o?.2:0,v=p),s=xp.encloseSpan(n,r,p,v,e),/fbox|boxed|fcolorbox/.test(r)?(s.style.borderStyle="solid",s.style.borderWidth=jt(x)):r==="angl"&&x!==.049&&(s.style.borderTopWidth=jt(x),s.style.borderRightWidth=jt(x)),a=n.depth+v,t.backgroundColor&&(s.style.backgroundColor=t.backgroundColor,t.borderColor&&(s.style.borderColor=t.borderColor))}var w;if(t.backgroundColor)w=Ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:a},{type:"elem",elem:n,shift:0}]},e);else{var E=/cancel|phase/.test(r)?["svg-align"]:[];w=Ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:s,shift:a,wrapperClasses:E}]},e)}return/cancel/.test(r)&&(w.height=n.height,w.depth=n.depth),/cancel/.test(r)&&!o?Ue.makeSpan(["mord","cancel-lap"],[w],e):Ue.makeSpan(["mord"],[w],e)},NK=(t,e)=>{var n=0,r=new _t.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Yi(t.body,e)]);switch(t.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(n=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);r.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&r.setAttribute("mathbackground",t.backgroundColor),r};Qt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,n){var{parser:r,funcName:i}=t,s=Lr(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:r.mode,label:i,backgroundColor:s,body:a}},htmlBuilder:MK,mathmlBuilder:NK});Qt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,n){var{parser:r,funcName:i}=t,s=Lr(e[0],"color-token").color,a=Lr(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:r.mode,label:i,backgroundColor:a,borderColor:s,body:o}},htmlBuilder:MK,mathmlBuilder:NK});Qt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:n}=t;return{type:"enclose",mode:n.mode,label:"\\fbox",body:e[0]}}});Qt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:n,funcName:r}=t,i=e[0];return{type:"enclose",mode:n.mode,label:r,body:i}},htmlBuilder:MK,mathmlBuilder:NK});Qt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:n}=t;return{type:"enclose",mode:n.mode,label:"\\angl",body:e[0]}}});var G9e={};function Jf(t){for(var{type:e,names:n,props:r,handler:i,htmlBuilder:s,mathmlBuilder:a}=t,o={type:e,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},l=0;l{var e=t.parser.settings;if(!e.displayMode)throw new Et("{"+t.envName+"} can be used only in display mode.")};function RK(t){if(t.indexOf("ed")===-1)return t.indexOf("*")===-1}function Rm(t,e,n){var{hskipBeforeAndAfter:r,addJot:i,cols:s,arraystretch:a,colSeparationType:o,autoTag:l,singleRow:c,emptySingleRow:u,maxNumCols:d,leqno:f}=e;if(t.gullet.beginGroup(),c||t.gullet.macros.set("\\cr","\\\\\\relax"),!a){var h=t.gullet.expandMacroAsText("\\arraystretch");if(h==null)a=1;else if(a=parseFloat(h),!a||a<0)throw new Et("Invalid \\arraystretch: "+h)}t.gullet.beginGroup();var m=[],p=[m],v=[],x=[],w=l!=null?[]:void 0;function E(){l&&t.gullet.macros.set("\\@eqnsw","1",!0)}function S(){w&&(t.gullet.macros.get("\\df@tag")?(w.push(t.subparse([new Ru("\\df@tag")])),t.gullet.macros.set("\\df@tag",void 0,!0)):w.push(!!l&&t.gullet.macros.get("\\@eqnsw")==="1"))}for(E(),x.push(Hpe(t));;){var _=t.parseExpression(!1,c?"\\end":"\\\\");t.gullet.endGroup(),t.gullet.beginGroup(),_={type:"ordgroup",mode:t.mode,body:_},n&&(_={type:"styling",mode:t.mode,style:n,body:[_]}),m.push(_);var C=t.fetch().text;if(C==="&"){if(d&&m.length===d){if(c||o)throw new Et("Too many tab characters: &",t.nextToken);t.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}t.consume()}else if(C==="\\end"){S(),m.length===1&&_.type==="styling"&&_.body[0].body.length===0&&(p.length>1||!u)&&p.pop(),x.length0&&(E+=.25),c.push({pos:E,isDashed:Lt[xn]})}for(S(a[0]),r=0;r0&&(O+=w,TLt))for(r=0;r=o)){var de=void 0;(i>0||e.hskipBeforeAndAfter)&&(de=Bn.deflt(V.pregap,f),de!==0&&(q=Ue.makeSpan(["arraycolsep"],[]),q.style.width=jt(de),R.push(q)));var le=[];for(r=0;r0){for(var Ve=Ue.makeLineSpan("hline",n,u),vt=Ue.makeLineSpan("hdashline",n,u),ft=[{type:"elem",elem:l,shift:0}];c.length>0;){var ne=c.pop(),Ye=ne.pos-D;ne.isDashed?ft.push({type:"elem",elem:vt,shift:Ye}):ft.push({type:"elem",elem:Ve,shift:Ye})}l=Ue.makeVList({positionType:"individualShift",children:ft},n)}if(G.length===0)return Ue.makeSpan(["mord"],[l],n);var Xe=Ue.makeVList({positionType:"individualShift",children:G},n);return Xe=Ue.makeSpan(["tag"],[Xe],n),Ue.makeFragment([l,Xe])},wjt={c:"center ",l:"left ",r:"right "},Qf=function(e,n){for(var r=[],i=new _t.MathNode("mtd",[],["mtr-glue"]),s=new _t.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var m=e.cols,p="",v=!1,x=0,w=m.length;m[0].type==="separator"&&(f+="top ",x=1),m[m.length-1].type==="separator"&&(f+="bottom ",w-=1);for(var E=x;E0?"left ":"",f+=M[M.length-1].length>0?"right ":"";for(var A=1;A-1?"alignat":"align",s=e.envName==="split",a=Rm(e.parser,{cols:r,addJot:!0,autoTag:s?void 0:RK(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,c={type:"ordgroup",mode:e.mode,body:[]};if(n[0]&&n[0].type==="ordgroup"){for(var u="",d=0;d0&&h&&(v=1),r[m]={type:"align",align:p,pregap:v,postgap:0}}return a.colSeparationType=h?"align":"alignat",a};Jf({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var n=NT(e[0]),r=n?[e[0]]:Lr(e[0],"ordgroup").body,i=r.map(function(a){var o=AK(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new Et("Unknown column alignment: "+l,a)}),s={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return Rm(t.parser,s,LK(t.envName))},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],n="c",r={hskipBeforeAndAfter:!1,cols:[{type:"align",align:n}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),n=i.fetch().text,"lcr".indexOf(n)===-1)throw new Et("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),r.cols=[{type:"align",align:n}]}}var s=Rm(t.parser,r,LK(t.envName)),a=Math.max(0,...s.body.map(o=>o.length));return s.cols=new Array(a).fill({type:"align",align:n}),e?{type:"leftright",mode:t.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},n=Rm(t.parser,e,"script");return n.colSeparationType="small",n},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var n=NT(e[0]),r=n?[e[0]]:Lr(e[0],"ordgroup").body,i=r.map(function(a){var o=AK(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new Et("Unknown column alignment: "+l,a)});if(i.length>1)throw new Et("{subarray} can contain only one column");var s={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=Rm(t.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new Et("{subarray} can contain only one column");return s},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},n=Rm(t.parser,e,LK(t.envName));return{type:"leftright",mode:t.mode,body:[n],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Y9e,htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){Bn.contains(["gather","gather*"],t.envName)&&PT(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:RK(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return Rm(t.parser,e,"display")},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Y9e,htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){PT(t);var e={autoTag:RK(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return Rm(t.parser,e,"display")},htmlBuilder:Xf,mathmlBuilder:Qf});Jf({type:"array",names:["CD"],props:{numArgs:0},handler(t){return PT(t),ojt(t.parser)},htmlBuilder:Xf,mathmlBuilder:Qf});ie("\\nonumber","\\gdef\\@eqnsw{0}");ie("\\notag","\\nonumber");Qt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new Et(t.funcName+" valid only within array environment")}});var Wpe=G9e;Qt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:n,funcName:r}=t,i=e[0];if(i.type!=="ordgroup")throw new Et("Invalid environment name",i);for(var s="",a=0;a{var n=t.font,r=e.withFont(n);return gi(t.body,r)},X9e=(t,e)=>{var n=t.font,r=e.withFont(n);return Yi(t.body,r)},Vpe={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Qt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=PC(e[0]),s=r;return s in Vpe&&(s=Vpe[s]),{type:"font",mode:n.mode,font:s.slice(1),body:i}},htmlBuilder:J9e,mathmlBuilder:X9e});Qt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(t,e)=>{var{parser:n}=t,r=e[0],i=Bn.isCharacterBox(r);return{type:"mclass",mode:n.mode,mclass:RT(r),body:[{type:"font",mode:n.mode,font:"boldsymbol",body:r}],isCharacterBox:i}}});Qt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{parser:n,funcName:r,breakOnTokenText:i}=t,{mode:s}=n,a=n.parseExpression(!0,i),o="math"+r.slice(1);return{type:"font",mode:s,font:o,body:{type:"ordgroup",mode:n.mode,body:a}}},htmlBuilder:J9e,mathmlBuilder:X9e});var Q9e=(t,e)=>{var n=e;return t==="display"?n=n.id>=Zn.SCRIPT.id?n.text():Zn.DISPLAY:t==="text"&&n.size===Zn.DISPLAY.size?n=Zn.TEXT:t==="script"?n=Zn.SCRIPT:t==="scriptscript"&&(n=Zn.SCRIPTSCRIPT),n},PK=(t,e)=>{var n=Q9e(t.size,e.style),r=n.fracNum(),i=n.fracDen(),s;s=e.havingStyle(r);var a=gi(t.numer,s,e);if(t.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?m=3*f:m=7*f,p=e.fontMetrics().denom1):(d>0?(h=e.fontMetrics().num2,m=f):(h=e.fontMetrics().num3,m=3*f),p=e.fontMetrics().denom2);var v;if(u){var w=e.fontMetrics().axisHeight;h-a.depth-(w+.5*d){var n=new _t.MathNode("mfrac",[Yi(t.numer,e),Yi(t.denom,e)]);if(!t.hasBarLine)n.setAttribute("linethickness","0px");else if(t.barSize){var r=js(t.barSize,e);n.setAttribute("linethickness",jt(r))}var i=Q9e(t.size,e.style);if(i.size!==e.style.size){n=new _t.MathNode("mstyle",[n]);var s=i.size===Zn.DISPLAY.size?"true":"false";n.setAttribute("displaystyle",s),n.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var a=[];if(t.leftDelim!=null){var o=new _t.MathNode("mo",[new _t.TextNode(t.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(n),t.rightDelim!=null){var l=new _t.MathNode("mo",[new _t.TextNode(t.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return TK(a)}return n};Qt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0],s=e[1],a,o=null,l=null,c="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":c="display";break;case"\\tfrac":case"\\tbinom":c="text";break}return{type:"genfrac",mode:n.mode,continued:!1,numer:i,denom:s,hasBarLine:a,leftDelim:o,rightDelim:l,size:c,barSize:null}},htmlBuilder:PK,mathmlBuilder:jK});Qt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0],s=e[1];return{type:"genfrac",mode:n.mode,continued:!0,numer:i,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});Qt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:n,token:r}=t,i;switch(n){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:r}}});var Zpe=["display","text","script","scriptscript"],Gpe=function(e){var n=null;return e.length>0&&(n=e,n=n==="."?null:n),n};Qt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:n}=t,r=e[4],i=e[5],s=PC(e[0]),a=s.type==="atom"&&s.family==="open"?Gpe(s.text):null,o=PC(e[1]),l=o.type==="atom"&&o.family==="close"?Gpe(o.text):null,c=Lr(e[2],"size"),u,d=null;c.isBlank?u=!0:(d=c.value,u=d.number>0);var f="auto",h=e[3];if(h.type==="ordgroup"){if(h.body.length>0){var m=Lr(h.body[0],"textord");f=Zpe[Number(m.text)]}}else h=Lr(h,"textord"),f=Zpe[Number(h.text)];return{type:"genfrac",mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:u,barSize:d,leftDelim:a,rightDelim:l,size:f}},htmlBuilder:PK,mathmlBuilder:jK});Qt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:n,funcName:r,token:i}=t;return{type:"infix",mode:n.mode,replaceWith:"\\\\abovefrac",size:Lr(e[0],"size").value,token:i}}});Qt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0],s=XLt(Lr(e[1],"infix").size),a=e[2],o=s.number>0;return{type:"genfrac",mode:n.mode,numer:i,denom:a,continued:!1,hasBarLine:o,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:PK,mathmlBuilder:jK});var eCe=(t,e)=>{var n=e.style,r,i;t.type==="supsub"?(r=t.sup?gi(t.sup,e.havingStyle(n.sup()),e):gi(t.sub,e.havingStyle(n.sub()),e),i=Lr(t.base,"horizBrace")):i=Lr(t,"horizBrace");var s=gi(i.base,e.havingBaseStyle(Zn.DISPLAY)),a=xp.svgSpan(i,e),o;if(i.isOver?(o=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=Ue.makeVList({positionType:"bottom",positionData:s.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),r){var l=Ue.makeSpan(["mord",i.isOver?"mover":"munder"],[o],e);i.isOver?o=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):o=Ue.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return Ue.makeSpan(["mord",i.isOver?"mover":"munder"],[o],e)},_jt=(t,e)=>{var n=xp.mathMLnode(t.label);return new _t.MathNode(t.isOver?"mover":"munder",[Yi(t.base,e),n])};Qt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:n,funcName:r}=t;return{type:"horizBrace",mode:n.mode,label:r,isOver:/^\\over/.test(r),base:e[0]}},htmlBuilder:eCe,mathmlBuilder:_jt});Qt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(t,e)=>{var{parser:n}=t,r=e[1],i=Lr(e[0],"url").url;return n.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:n.mode,href:i,body:sa(r)}:n.formatUnsupportedCmd("\\href")},htmlBuilder:(t,e)=>{var n=Pa(t.body,e,!1);return Ue.makeAnchor(t.href,[],n,e)},mathmlBuilder:(t,e)=>{var n=rm(t.body,e);return n instanceof Nc||(n=new Nc("mrow",[n])),n.setAttribute("href",t.href),n}});Qt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(t,e)=>{var{parser:n}=t,r=Lr(e[0],"url").url;if(!n.settings.isTrusted({command:"\\url",url:r}))return n.formatUnsupportedCmd("\\url");for(var i=[],s=0;s{var{parser:n,funcName:r,token:i}=t,s=Lr(e[0],"raw").string,a=e[1];n.settings.strict&&n.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(r){case"\\htmlClass":l.class=s,o={command:"\\htmlClass",class:s};break;case"\\htmlId":l.id=s,o={command:"\\htmlId",id:s};break;case"\\htmlStyle":l.style=s,o={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var c=s.split(","),u=0;u{var n=Pa(t.body,e,!1),r=["enclosing"];t.attributes.class&&r.push(...t.attributes.class.trim().split(/\s+/));var i=Ue.makeSpan(r,n,e);for(var s in t.attributes)s!=="class"&&t.attributes.hasOwnProperty(s)&&i.setAttribute(s,t.attributes[s]);return i},mathmlBuilder:(t,e)=>rm(t.body,e)});Qt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(t,e)=>{var{parser:n}=t;return{type:"htmlmathml",mode:n.mode,html:sa(e[0]),mathml:sa(e[1])}},htmlBuilder:(t,e)=>{var n=Pa(t.html,e,!1);return Ue.makeFragment(n)},mathmlBuilder:(t,e)=>rm(t.mathml,e)});var GP=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!n)throw new Et("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(n[1]+n[2]),unit:n[3]};if(!b9e(r))throw new Et("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};Qt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(t,e,n)=>{var{parser:r}=t,i={number:0,unit:"em"},s={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(n[0])for(var l=Lr(n[0],"raw").string,c=l.split(","),u=0;u{var n=js(t.height,e),r=0;t.totalheight.number>0&&(r=js(t.totalheight,e)-n);var i=0;t.width.number>0&&(i=js(t.width,e));var s={height:jt(n+r)};i>0&&(s.width=jt(i)),r>0&&(s.verticalAlign=jt(-r));var a=new _Pt(t.src,t.alt,s);return a.height=n,a.depth=r,a},mathmlBuilder:(t,e)=>{var n=new _t.MathNode("mglyph",[]);n.setAttribute("alt",t.alt);var r=js(t.height,e),i=0;if(t.totalheight.number>0&&(i=js(t.totalheight,e)-r,n.setAttribute("valign",jt(-i))),n.setAttribute("height",jt(r+i)),t.width.number>0){var s=js(t.width,e);n.setAttribute("width",jt(s))}return n.setAttribute("src",t.src),n}});Qt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:n,funcName:r}=t,i=Lr(e[0],"size");if(n.settings.strict){var s=r[1]==="m",a=i.value.unit==="mu";s?(a||n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, "+("not "+i.value.unit+" units")),n.mode!=="math"&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):a&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:n.mode,dimension:i.value}},htmlBuilder(t,e){return Ue.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var n=js(t.dimension,e);return new _t.SpaceNode(n)}});Qt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0];return{type:"lap",mode:n.mode,alignment:r.slice(5),body:i}},htmlBuilder:(t,e)=>{var n;t.alignment==="clap"?(n=Ue.makeSpan([],[gi(t.body,e)]),n=Ue.makeSpan(["inner"],[n],e)):n=Ue.makeSpan(["inner"],[gi(t.body,e)]);var r=Ue.makeSpan(["fix"],[]),i=Ue.makeSpan([t.alignment],[n,r],e),s=Ue.makeSpan(["strut"]);return s.style.height=jt(i.height+i.depth),i.depth&&(s.style.verticalAlign=jt(-i.depth)),i.children.unshift(s),i=Ue.makeSpan(["thinbox"],[i],e),Ue.makeSpan(["mord","vbox"],[i],e)},mathmlBuilder:(t,e)=>{var n=new _t.MathNode("mpadded",[Yi(t.body,e)]);if(t.alignment!=="rlap"){var r=t.alignment==="llap"?"-1":"-0.5";n.setAttribute("lspace",r+"width")}return n.setAttribute("width","0px"),n}});Qt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:n,parser:r}=t,i=r.mode;r.switchMode("math");var s=n==="\\("?"\\)":"$",a=r.parseExpression(!1,s);return r.expect(s),r.switchMode(i),{type:"styling",mode:r.mode,style:"text",body:a}}});Qt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new Et("Mismatched "+t.funcName)}});var Kpe=(t,e)=>{switch(e.style.size){case Zn.DISPLAY.size:return t.display;case Zn.TEXT.size:return t.text;case Zn.SCRIPT.size:return t.script;case Zn.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};Qt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(t,e)=>{var{parser:n}=t;return{type:"mathchoice",mode:n.mode,display:sa(e[0]),text:sa(e[1]),script:sa(e[2]),scriptscript:sa(e[3])}},htmlBuilder:(t,e)=>{var n=Kpe(t,e),r=Pa(n,e,!1);return Ue.makeFragment(r)},mathmlBuilder:(t,e)=>{var n=Kpe(t,e);return rm(n,e)}});var tCe=(t,e,n,r,i,s,a)=>{t=Ue.makeSpan([],[t]);var o=n&&Bn.isCharacterBox(n),l,c;if(e){var u=gi(e,r.havingStyle(i.sup()),r);c={elem:u,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-u.depth)}}if(n){var d=gi(n,r.havingStyle(i.sub()),r);l={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-d.height)}}var f;if(c&&l){var h=r.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+t.depth+a;f=Ue.makeVList({positionType:"bottom",positionData:h,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:jt(-s)},{type:"kern",size:l.kern},{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:jt(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else if(l){var m=t.height-a;f=Ue.makeVList({positionType:"top",positionData:m,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:jt(-s)},{type:"kern",size:l.kern},{type:"elem",elem:t}]},r)}else if(c){var p=t.depth+a;f=Ue.makeVList({positionType:"bottom",positionData:p,children:[{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:jt(s)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else return t;var v=[f];if(l&&s!==0&&!o){var x=Ue.makeSpan(["mspace"],[],r);x.style.marginRight=jt(s),v.unshift(x)}return Ue.makeSpan(["mop","op-limits"],v,r)},nCe=["\\smallint"],a5=(t,e)=>{var n,r,i=!1,s;t.type==="supsub"?(n=t.sup,r=t.sub,s=Lr(t.base,"op"),i=!0):s=Lr(t,"op");var a=e.style,o=!1;a.size===Zn.DISPLAY.size&&s.symbol&&!Bn.contains(nCe,s.name)&&(o=!0);var l;if(s.symbol){var c=o?"Size2-Regular":"Size1-Regular",u="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(u=s.name.slice(1),s.name=u==="oiint"?"\\iint":"\\iiint"),l=Ue.makeSymbol(s.name,c,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),u.length>0){var d=l.italic,f=Ue.staticSvg(u+"Size"+(o?"2":"1"),e);l=Ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:f,shift:o?.08:0}]},e),s.name="\\"+u,l.classes.unshift("mop"),l.italic=d}}else if(s.body){var h=Pa(s.body,e,!0);h.length===1&&h[0]instanceof Zu?(l=h[0],l.classes[0]="mop"):l=Ue.makeSpan(["mop"],h,e)}else{for(var m=[],p=1;p{var n;if(t.symbol)n=new Nc("mo",[Gu(t.name,t.mode)]),Bn.contains(nCe,t.name)&&n.setAttribute("largeop","false");else if(t.body)n=new Nc("mo",gc(t.body,e));else{n=new Nc("mi",[new _f(t.name.slice(1))]);var r=new Nc("mo",[Gu("⁡","text")]);t.parentIsSupSub?n=new Nc("mrow",[n,r]):n=A9e([n,r])}return n},kjt={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};Qt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=r;return i.length===1&&(i=kjt[i]),{type:"op",mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:a5,mathmlBuilder:Q6});Qt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var{parser:n}=t,r=e[0];return{type:"op",mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:sa(r)}},htmlBuilder:a5,mathmlBuilder:Q6});var Sjt={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};Qt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:n}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:a5,mathmlBuilder:Q6});Qt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:n}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:a5,mathmlBuilder:Q6});Qt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(t){var{parser:e,funcName:n}=t,r=n;return r.length===1&&(r=Sjt[r]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:a5,mathmlBuilder:Q6});var rCe=(t,e)=>{var n,r,i=!1,s;t.type==="supsub"?(n=t.sup,r=t.sub,s=Lr(t.base,"operatorname"),i=!0):s=Lr(t,"operatorname");var a;if(s.body.length>0){for(var o=s.body.map(d=>{var f=d.text;return typeof f=="string"?{type:"textord",mode:d.mode,text:f}:d}),l=Pa(o,e.withFont("mathrm"),!0),c=0;c{for(var n=gc(t.body,e.withFont("mathrm")),r=!0,i=0;iu.toText()).join("");n=[new _t.TextNode(o)]}var l=new _t.MathNode("mi",n);l.setAttribute("mathvariant","normal");var c=new _t.MathNode("mo",[Gu("⁡","text")]);return t.parentIsSupSub?new _t.MathNode("mrow",[l,c]):_t.newDocumentFragment([l,c])};Qt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(t,e)=>{var{parser:n,funcName:r}=t,i=e[0];return{type:"operatorname",mode:n.mode,body:sa(i),alwaysHandleSupSub:r==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:rCe,mathmlBuilder:Cjt});ie("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");h2({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Ue.makeFragment(Pa(t.body,e,!1)):Ue.makeSpan(["mord"],Pa(t.body,e,!0),e)},mathmlBuilder(t,e){return rm(t.body,e,!0)}});Qt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:n}=t,r=e[0];return{type:"overline",mode:n.mode,body:r}},htmlBuilder(t,e){var n=gi(t.body,e.havingCrampedStyle()),r=Ue.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,s=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r},{type:"kern",size:i}]},e);return Ue.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(t,e){var n=new _t.MathNode("mo",[new _t.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new _t.MathNode("mover",[Yi(t.body,e),n]);return r.setAttribute("accent","true"),r}});Qt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:n}=t,r=e[0];return{type:"phantom",mode:n.mode,body:sa(r)}},htmlBuilder:(t,e)=>{var n=Pa(t.body,e.withPhantom(),!1);return Ue.makeFragment(n)},mathmlBuilder:(t,e)=>{var n=gc(t.body,e);return new _t.MathNode("mphantom",n)}});Qt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:n}=t,r=e[0];return{type:"hphantom",mode:n.mode,body:r}},htmlBuilder:(t,e)=>{var n=Ue.makeSpan([],[gi(t.body,e.withPhantom())]);if(n.height=0,n.depth=0,n.children)for(var r=0;r{var n=gc(sa(t.body),e),r=new _t.MathNode("mphantom",n),i=new _t.MathNode("mpadded",[r]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i}});Qt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:n}=t,r=e[0];return{type:"vphantom",mode:n.mode,body:r}},htmlBuilder:(t,e)=>{var n=Ue.makeSpan(["inner"],[gi(t.body,e.withPhantom())]),r=Ue.makeSpan(["fix"],[]);return Ue.makeSpan(["mord","rlap"],[n,r],e)},mathmlBuilder:(t,e)=>{var n=gc(sa(t.body),e),r=new _t.MathNode("mphantom",n),i=new _t.MathNode("mpadded",[r]);return i.setAttribute("width","0px"),i}});Qt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:n}=t,r=Lr(e[0],"size").value,i=e[1];return{type:"raisebox",mode:n.mode,dy:r,body:i}},htmlBuilder(t,e){var n=gi(t.body,e),r=js(t.dy,e);return Ue.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:n}]},e)},mathmlBuilder(t,e){var n=new _t.MathNode("mpadded",[Yi(t.body,e)]),r=t.dy.number+t.dy.unit;return n.setAttribute("voffset",r),n}});Qt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Qt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,n){var{parser:r}=t,i=n[0],s=Lr(e[0],"size"),a=Lr(e[1],"size");return{type:"rule",mode:r.mode,shift:i&&Lr(i,"size").value,width:s.value,height:a.value}},htmlBuilder(t,e){var n=Ue.makeSpan(["mord","rule"],[],e),r=js(t.width,e),i=js(t.height,e),s=t.shift?js(t.shift,e):0;return n.style.borderRightWidth=jt(r),n.style.borderTopWidth=jt(i),n.style.bottom=jt(s),n.width=r,n.height=i+s,n.depth=-s,n.maxFontSize=i*1.125*e.sizeMultiplier,n},mathmlBuilder(t,e){var n=js(t.width,e),r=js(t.height,e),i=t.shift?js(t.shift,e):0,s=e.color&&e.getColor()||"black",a=new _t.MathNode("mspace");a.setAttribute("mathbackground",s),a.setAttribute("width",jt(n)),a.setAttribute("height",jt(r));var o=new _t.MathNode("mpadded",[a]);return i>=0?o.setAttribute("height",jt(i)):(o.setAttribute("height",jt(i)),o.setAttribute("depth",jt(-i))),o.setAttribute("voffset",jt(i)),o}});function iCe(t,e,n){for(var r=Pa(t,e,!1),i=e.sizeMultiplier/n.sizeMultiplier,s=0;s{var n=e.havingSize(t.size);return iCe(t.body,n,e)};Qt({type:"sizing",names:Ype,props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{breakOnTokenText:n,funcName:r,parser:i}=t,s=i.parseExpression(!1,n);return{type:"sizing",mode:i.mode,size:Ype.indexOf(r)+1,body:s}},htmlBuilder:Ejt,mathmlBuilder:(t,e)=>{var n=e.havingSize(t.size),r=gc(t.body,n),i=new _t.MathNode("mstyle",r);return i.setAttribute("mathsize",jt(n.sizeMultiplier)),i}});Qt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(t,e,n)=>{var{parser:r}=t,i=!1,s=!1,a=n[0]&&Lr(n[0],"ordgroup");if(a)for(var o="",l=0;l{var n=Ue.makeSpan([],[gi(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return n;if(t.smashHeight&&(n.height=0,n.children))for(var r=0;r{var n=new _t.MathNode("mpadded",[Yi(t.body,e)]);return t.smashHeight&&n.setAttribute("height","0px"),t.smashDepth&&n.setAttribute("depth","0px"),n}});Qt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,n){var{parser:r}=t,i=n[0],s=e[0];return{type:"sqrt",mode:r.mode,body:s,index:i}},htmlBuilder(t,e){var n=gi(t.body,e.havingCrampedStyle());n.height===0&&(n.height=e.fontMetrics().xHeight),n=Ue.wrapFragment(n,e);var r=e.fontMetrics(),i=r.defaultRuleThickness,s=i;e.style.idn.height+n.depth+a&&(a=(a+d-n.height-n.depth)/2);var f=l.height-n.height-a-c;n.style.paddingLeft=jt(u);var h=Ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+f)},{type:"elem",elem:l},{type:"kern",size:c}]},e);if(t.index){var m=e.havingStyle(Zn.SCRIPTSCRIPT),p=gi(t.index,m,e),v=.6*(h.height-h.depth),x=Ue.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:p}]},e),w=Ue.makeSpan(["root"],[x]);return Ue.makeSpan(["mord","sqrt"],[w,h],e)}else return Ue.makeSpan(["mord","sqrt"],[h],e)},mathmlBuilder(t,e){var{body:n,index:r}=t;return r?new _t.MathNode("mroot",[Yi(n,e),Yi(r,e)]):new _t.MathNode("msqrt",[Yi(n,e)])}});var Jpe={display:Zn.DISPLAY,text:Zn.TEXT,script:Zn.SCRIPT,scriptscript:Zn.SCRIPTSCRIPT};Qt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:n,funcName:r,parser:i}=t,s=i.parseExpression(!0,n),a=r.slice(1,r.length-5);return{type:"styling",mode:i.mode,style:a,body:s}},htmlBuilder(t,e){var n=Jpe[t.style],r=e.havingStyle(n).withFont("");return iCe(t.body,r,e)},mathmlBuilder(t,e){var n=Jpe[t.style],r=e.havingStyle(n),i=gc(t.body,r),s=new _t.MathNode("mstyle",i),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[t.style];return s.setAttribute("scriptlevel",o[0]),s.setAttribute("displaystyle",o[1]),s}});var $jt=function(e,n){var r=e.base;if(r)if(r.type==="op"){var i=r.limits&&(n.style.size===Zn.DISPLAY.size||r.alwaysHandleSupSub);return i?a5:null}else if(r.type==="operatorname"){var s=r.alwaysHandleSupSub&&(n.style.size===Zn.DISPLAY.size||r.limits);return s?rCe:null}else{if(r.type==="accent")return Bn.isCharacterBox(r.base)?OK:null;if(r.type==="horizBrace"){var a=!e.sub;return a===r.isOver?eCe:null}else return null}else return null};h2({type:"supsub",htmlBuilder(t,e){var n=$jt(t,e);if(n)return n(t,e);var{base:r,sup:i,sub:s}=t,a=gi(r,e),o,l,c=e.fontMetrics(),u=0,d=0,f=r&&Bn.isCharacterBox(r);if(i){var h=e.havingStyle(e.style.sup());o=gi(i,h,e),f||(u=a.height-h.fontMetrics().supDrop*h.sizeMultiplier/e.sizeMultiplier)}if(s){var m=e.havingStyle(e.style.sub());l=gi(s,m,e),f||(d=a.depth+m.fontMetrics().subDrop*m.sizeMultiplier/e.sizeMultiplier)}var p;e.style===Zn.DISPLAY?p=c.sup1:e.style.cramped?p=c.sup3:p=c.sup2;var v=e.sizeMultiplier,x=jt(.5/c.ptPerEm/v),w=null;if(l){var E=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(a instanceof Zu||E)&&(w=jt(-a.italic))}var S;if(o&&l){u=Math.max(u,p,o.depth+.25*c.xHeight),d=Math.max(d,c.sub2);var _=c.defaultRuleThickness,C=4*_;if(u-o.depth-(l.height-d)0&&(u+=T,d-=T)}var M=[{type:"elem",elem:l,shift:d,marginRight:x,marginLeft:w},{type:"elem",elem:o,shift:-u,marginRight:x}];S=Ue.makeVList({positionType:"individualShift",children:M},e)}else if(l){d=Math.max(d,c.sub1,l.height-.8*c.xHeight);var A=[{type:"elem",elem:l,marginLeft:w,marginRight:x}];S=Ue.makeVList({positionType:"shift",positionData:d,children:A},e)}else if(o)u=Math.max(u,p,o.depth+.25*c.xHeight),S=Ue.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:o,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var $=qH(a,"right")||"mord";return Ue.makeSpan([$],[a,Ue.makeSpan(["msupsub"],[S])],e)},mathmlBuilder(t,e){var n=!1,r,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(n=!0,r=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var s=[Yi(t.base,e)];t.sub&&s.push(Yi(t.sub,e)),t.sup&&s.push(Yi(t.sup,e));var a;if(n)a=r?"mover":"munder";else if(t.sub)if(t.sup){var c=t.base;c&&c.type==="op"&&c.limits&&e.style===Zn.DISPLAY||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(e.style===Zn.DISPLAY||c.limits)?a="munderover":a="msubsup"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===Zn.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===Zn.DISPLAY)?a="munder":a="msub"}else{var o=t.base;o&&o.type==="op"&&o.limits&&(e.style===Zn.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===Zn.DISPLAY)?a="mover":a="msup"}return new _t.MathNode(a,s)}});h2({type:"atom",htmlBuilder(t,e){return Ue.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var n=new _t.MathNode("mo",[Gu(t.text,t.mode)]);if(t.family==="bin"){var r=IK(t,e);r==="bold-italic"&&n.setAttribute("mathvariant",r)}else t.family==="punct"?n.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&n.setAttribute("stretchy","false");return n}});var sCe={mi:"italic",mn:"normal",mtext:"normal"};h2({type:"mathord",htmlBuilder(t,e){return Ue.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var n=new _t.MathNode("mi",[Gu(t.text,t.mode,e)]),r=IK(t,e)||"italic";return r!==sCe[n.type]&&n.setAttribute("mathvariant",r),n}});h2({type:"textord",htmlBuilder(t,e){return Ue.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var n=Gu(t.text,t.mode,e),r=IK(t,e)||"normal",i;return t.mode==="text"?i=new _t.MathNode("mtext",[n]):/[0-9]/.test(t.text)?i=new _t.MathNode("mn",[n]):t.text==="\\prime"?i=new _t.MathNode("mo",[n]):i=new _t.MathNode("mi",[n]),r!==sCe[i.type]&&i.setAttribute("mathvariant",r),i}});var KP={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},YP={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};h2({type:"spacing",htmlBuilder(t,e){if(YP.hasOwnProperty(t.text)){var n=YP[t.text].className||"";if(t.mode==="text"){var r=Ue.makeOrd(t,e,"textord");return r.classes.push(n),r}else return Ue.makeSpan(["mspace",n],[Ue.mathsym(t.text,t.mode,e)],e)}else{if(KP.hasOwnProperty(t.text))return Ue.makeSpan(["mspace",KP[t.text]],[],e);throw new Et('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var n;if(YP.hasOwnProperty(t.text))n=new _t.MathNode("mtext",[new _t.TextNode(" ")]);else{if(KP.hasOwnProperty(t.text))return new _t.MathNode("mspace");throw new Et('Unknown type of space "'+t.text+'"')}return n}});var Xpe=()=>{var t=new _t.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};h2({type:"tag",mathmlBuilder(t,e){var n=new _t.MathNode("mtable",[new _t.MathNode("mtr",[Xpe(),new _t.MathNode("mtd",[rm(t.body,e)]),Xpe(),new _t.MathNode("mtd",[rm(t.tag,e)])])]);return n.setAttribute("width","100%"),n}});var Qpe={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},e0e={"\\textbf":"textbf","\\textmd":"textmd"},Tjt={"\\textit":"textit","\\textup":"textup"},t0e=(t,e)=>{var n=t.font;if(n){if(Qpe[n])return e.withTextFontFamily(Qpe[n]);if(e0e[n])return e.withTextFontWeight(e0e[n]);if(n==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(Tjt[n])};Qt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:n,funcName:r}=t,i=e[0];return{type:"text",mode:n.mode,body:sa(i),font:r}},htmlBuilder(t,e){var n=t0e(t,e),r=Pa(t.body,n,!0);return Ue.makeSpan(["mord","text"],r,n)},mathmlBuilder(t,e){var n=t0e(t,e);return rm(t.body,n)}});Qt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:n}=t;return{type:"underline",mode:n.mode,body:e[0]}},htmlBuilder(t,e){var n=gi(t.body,e),r=Ue.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,s=Ue.makeVList({positionType:"top",positionData:n.height,children:[{type:"kern",size:i},{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n}]},e);return Ue.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(t,e){var n=new _t.MathNode("mo",[new _t.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new _t.MathNode("munder",[Yi(t.body,e),n]);return r.setAttribute("accentunder","true"),r}});Qt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:n}=t;return{type:"vcenter",mode:n.mode,body:e[0]}},htmlBuilder(t,e){var n=gi(t.body,e),r=e.fontMetrics().axisHeight,i=.5*(n.height-r-(n.depth+r));return Ue.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:n}]},e)},mathmlBuilder(t,e){return new _t.MathNode("mpadded",[Yi(t.body,e)],["vcenter"])}});Qt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,n){throw new Et("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var n=n0e(t),r=[],i=e.havingStyle(e.style.text()),s=0;st.body.replace(/ /g,t.star?"␣":" "),C0=T9e,aCe=`[ \r + ]`,Ijt="\\\\[a-zA-Z@]+",Ajt="\\\\[^\uD800-\uDFFF]",Ojt="("+Ijt+")"+aCe+"*",Djt=`\\\\( +|[ \r ]+ +?)[ \r ]*`,ZH="[̀-ͯ]",Mjt=new RegExp(ZH+"+$"),Njt="("+aCe+"+)|"+(Djt+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(ZH+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(ZH+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+Ojt)+("|"+Ajt+")");let r0e=class{constructor(e,n){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=n,this.tokenRegex=new RegExp(Njt,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,n){this.catcodes[e]=n}lex(){var e=this.input,n=this.tokenRegex.lastIndex;if(n===e.length)return new Ru("EOF",new Ic(this,n,n));var r=this.tokenRegex.exec(e);if(r===null||r.index!==n)throw new Et("Unexpected character: '"+e[n]+"'",new Ru(e[n],new Ic(this,n,n+1)));var i=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[i]===14){var s=e.indexOf(` +`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=s+1,this.lex()}return new Ru(i,new Ic(this,n,this.tokenRegex.lastIndex))}};class Rjt{constructor(e,n){e===void 0&&(e={}),n===void 0&&(n={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=n,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new Et("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var n in e)e.hasOwnProperty(n)&&(e[n]==null?delete this.current[n]:this.current[n]=e[n])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,n,r){if(r===void 0&&(r=!1),r){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=n)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}n==null?delete this.current[e]:this.current[e]=n}}var Ljt=K9e;ie("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});ie("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});ie("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});ie("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});ie("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var n=t.future();return e[0].length===1&&e[0][0].text===n.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});ie("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");ie("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var i0e={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};ie("\\char",function(t){var e=t.popToken(),n,r="";if(e.text==="'")n=8,e=t.popToken();else if(e.text==='"')n=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")r=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new Et("\\char` missing argument");r=e.text.charCodeAt(0)}else n=10;if(n){if(r=i0e[e.text],r==null||r>=n)throw new Et("Invalid base-"+n+" digit "+e.text);for(var i;(i=i0e[t.future().text])!=null&&i{var i=t.consumeArg().tokens;if(i.length!==1)throw new Et("\\newcommand's first argument must be a macro name");var s=i[0].text,a=t.isDefined(s);if(a&&!e)throw new Et("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"));if(!a&&!n)throw new Et("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");var o=0;if(i=t.consumeArg().tokens,i.length===1&&i[0].text==="["){for(var l="",c=t.expandNextToken();c.text!=="]"&&c.text!=="EOF";)l+=c.text,c=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new Et("Invalid number of arguments: "+l);o=parseInt(l),i=t.consumeArg().tokens}return a&&r||t.macros.set(s,{tokens:i,numArgs:o}),""};ie("\\newcommand",t=>zK(t,!1,!0,!1));ie("\\renewcommand",t=>zK(t,!0,!1,!1));ie("\\providecommand",t=>zK(t,!0,!0,!0));ie("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(n=>n.text).join("")),""});ie("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(n=>n.text).join("")),""});ie("\\show",t=>{var e=t.popToken(),n=e.text;return console.log(e,t.macros.get(n),C0[n],ss.math[n],ss.text[n]),""});ie("\\bgroup","{");ie("\\egroup","}");ie("~","\\nobreakspace");ie("\\lq","`");ie("\\rq","'");ie("\\aa","\\r a");ie("\\AA","\\r A");ie("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");ie("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");ie("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");ie("ℬ","\\mathscr{B}");ie("ℰ","\\mathscr{E}");ie("ℱ","\\mathscr{F}");ie("ℋ","\\mathscr{H}");ie("ℐ","\\mathscr{I}");ie("ℒ","\\mathscr{L}");ie("ℳ","\\mathscr{M}");ie("ℛ","\\mathscr{R}");ie("ℭ","\\mathfrak{C}");ie("ℌ","\\mathfrak{H}");ie("ℨ","\\mathfrak{Z}");ie("\\Bbbk","\\Bbb{k}");ie("·","\\cdotp");ie("\\llap","\\mathllap{\\textrm{#1}}");ie("\\rlap","\\mathrlap{\\textrm{#1}}");ie("\\clap","\\mathclap{\\textrm{#1}}");ie("\\mathstrut","\\vphantom{(}");ie("\\underbar","\\underline{\\text{#1}}");ie("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');ie("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");ie("\\ne","\\neq");ie("≠","\\neq");ie("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");ie("∉","\\notin");ie("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");ie("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");ie("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");ie("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");ie("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");ie("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");ie("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");ie("⟂","\\perp");ie("‼","\\mathclose{!\\mkern-0.8mu!}");ie("∌","\\notni");ie("⌜","\\ulcorner");ie("⌝","\\urcorner");ie("⌞","\\llcorner");ie("⌟","\\lrcorner");ie("©","\\copyright");ie("®","\\textregistered");ie("️","\\textregistered");ie("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');ie("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');ie("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');ie("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');ie("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");ie("⋮","\\vdots");ie("\\varGamma","\\mathit{\\Gamma}");ie("\\varDelta","\\mathit{\\Delta}");ie("\\varTheta","\\mathit{\\Theta}");ie("\\varLambda","\\mathit{\\Lambda}");ie("\\varXi","\\mathit{\\Xi}");ie("\\varPi","\\mathit{\\Pi}");ie("\\varSigma","\\mathit{\\Sigma}");ie("\\varUpsilon","\\mathit{\\Upsilon}");ie("\\varPhi","\\mathit{\\Phi}");ie("\\varPsi","\\mathit{\\Psi}");ie("\\varOmega","\\mathit{\\Omega}");ie("\\substack","\\begin{subarray}{c}#1\\end{subarray}");ie("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");ie("\\boxed","\\fbox{$\\displaystyle{#1}$}");ie("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");ie("\\implies","\\DOTSB\\;\\Longrightarrow\\;");ie("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");ie("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");ie("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var s0e={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};ie("\\dots",function(t){var e="\\dotso",n=t.expandAfterFuture().text;return n in s0e?e=s0e[n]:(n.slice(0,4)==="\\not"||n in ss.math&&Bn.contains(["bin","rel"],ss.math[n].group))&&(e="\\dotsb"),e});var FK={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};ie("\\dotso",function(t){var e=t.future().text;return e in FK?"\\ldots\\,":"\\ldots"});ie("\\dotsc",function(t){var e=t.future().text;return e in FK&&e!==","?"\\ldots\\,":"\\ldots"});ie("\\cdots",function(t){var e=t.future().text;return e in FK?"\\@cdots\\,":"\\@cdots"});ie("\\dotsb","\\cdots");ie("\\dotsm","\\cdots");ie("\\dotsi","\\!\\cdots");ie("\\dotsx","\\ldots\\,");ie("\\DOTSI","\\relax");ie("\\DOTSB","\\relax");ie("\\DOTSX","\\relax");ie("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");ie("\\,","\\tmspace+{3mu}{.1667em}");ie("\\thinspace","\\,");ie("\\>","\\mskip{4mu}");ie("\\:","\\tmspace+{4mu}{.2222em}");ie("\\medspace","\\:");ie("\\;","\\tmspace+{5mu}{.2777em}");ie("\\thickspace","\\;");ie("\\!","\\tmspace-{3mu}{.1667em}");ie("\\negthinspace","\\!");ie("\\negmedspace","\\tmspace-{4mu}{.2222em}");ie("\\negthickspace","\\tmspace-{5mu}{.277em}");ie("\\enspace","\\kern.5em ");ie("\\enskip","\\hskip.5em\\relax");ie("\\quad","\\hskip1em\\relax");ie("\\qquad","\\hskip2em\\relax");ie("\\tag","\\@ifstar\\tag@literal\\tag@paren");ie("\\tag@paren","\\tag@literal{({#1})}");ie("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new Et("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});ie("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");ie("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");ie("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");ie("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");ie("\\newline","\\\\\\relax");ie("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var oCe=jt(wf["Main-Regular"][84][1]-.7*wf["Main-Regular"][65][1]);ie("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+oCe+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");ie("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+oCe+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");ie("\\hspace","\\@ifstar\\@hspacer\\@hspace");ie("\\@hspace","\\hskip #1\\relax");ie("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");ie("\\ordinarycolon",":");ie("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");ie("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');ie("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');ie("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');ie("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');ie("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');ie("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');ie("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');ie("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');ie("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');ie("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');ie("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');ie("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');ie("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');ie("∷","\\dblcolon");ie("∹","\\eqcolon");ie("≔","\\coloneqq");ie("≕","\\eqqcolon");ie("⩴","\\Coloneqq");ie("\\ratio","\\vcentcolon");ie("\\coloncolon","\\dblcolon");ie("\\colonequals","\\coloneqq");ie("\\coloncolonequals","\\Coloneqq");ie("\\equalscolon","\\eqqcolon");ie("\\equalscoloncolon","\\Eqqcolon");ie("\\colonminus","\\coloneq");ie("\\coloncolonminus","\\Coloneq");ie("\\minuscolon","\\eqcolon");ie("\\minuscoloncolon","\\Eqcolon");ie("\\coloncolonapprox","\\Colonapprox");ie("\\coloncolonsim","\\Colonsim");ie("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ie("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");ie("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");ie("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");ie("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");ie("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");ie("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");ie("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");ie("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");ie("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");ie("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");ie("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");ie("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");ie("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");ie("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");ie("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");ie("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");ie("\\nleqq","\\html@mathml{\\@nleqq}{≰}");ie("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");ie("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");ie("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");ie("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");ie("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");ie("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");ie("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");ie("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");ie("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");ie("\\imath","\\html@mathml{\\@imath}{ı}");ie("\\jmath","\\html@mathml{\\@jmath}{ȷ}");ie("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");ie("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");ie("⟦","\\llbracket");ie("⟧","\\rrbracket");ie("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");ie("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");ie("⦃","\\lBrace");ie("⦄","\\rBrace");ie("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");ie("⦵","\\minuso");ie("\\darr","\\downarrow");ie("\\dArr","\\Downarrow");ie("\\Darr","\\Downarrow");ie("\\lang","\\langle");ie("\\rang","\\rangle");ie("\\uarr","\\uparrow");ie("\\uArr","\\Uparrow");ie("\\Uarr","\\Uparrow");ie("\\N","\\mathbb{N}");ie("\\R","\\mathbb{R}");ie("\\Z","\\mathbb{Z}");ie("\\alef","\\aleph");ie("\\alefsym","\\aleph");ie("\\Alpha","\\mathrm{A}");ie("\\Beta","\\mathrm{B}");ie("\\bull","\\bullet");ie("\\Chi","\\mathrm{X}");ie("\\clubs","\\clubsuit");ie("\\cnums","\\mathbb{C}");ie("\\Complex","\\mathbb{C}");ie("\\Dagger","\\ddagger");ie("\\diamonds","\\diamondsuit");ie("\\empty","\\emptyset");ie("\\Epsilon","\\mathrm{E}");ie("\\Eta","\\mathrm{H}");ie("\\exist","\\exists");ie("\\harr","\\leftrightarrow");ie("\\hArr","\\Leftrightarrow");ie("\\Harr","\\Leftrightarrow");ie("\\hearts","\\heartsuit");ie("\\image","\\Im");ie("\\infin","\\infty");ie("\\Iota","\\mathrm{I}");ie("\\isin","\\in");ie("\\Kappa","\\mathrm{K}");ie("\\larr","\\leftarrow");ie("\\lArr","\\Leftarrow");ie("\\Larr","\\Leftarrow");ie("\\lrarr","\\leftrightarrow");ie("\\lrArr","\\Leftrightarrow");ie("\\Lrarr","\\Leftrightarrow");ie("\\Mu","\\mathrm{M}");ie("\\natnums","\\mathbb{N}");ie("\\Nu","\\mathrm{N}");ie("\\Omicron","\\mathrm{O}");ie("\\plusmn","\\pm");ie("\\rarr","\\rightarrow");ie("\\rArr","\\Rightarrow");ie("\\Rarr","\\Rightarrow");ie("\\real","\\Re");ie("\\reals","\\mathbb{R}");ie("\\Reals","\\mathbb{R}");ie("\\Rho","\\mathrm{P}");ie("\\sdot","\\cdot");ie("\\sect","\\S");ie("\\spades","\\spadesuit");ie("\\sub","\\subset");ie("\\sube","\\subseteq");ie("\\supe","\\supseteq");ie("\\Tau","\\mathrm{T}");ie("\\thetasym","\\vartheta");ie("\\weierp","\\wp");ie("\\Zeta","\\mathrm{Z}");ie("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");ie("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");ie("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");ie("\\bra","\\mathinner{\\langle{#1}|}");ie("\\ket","\\mathinner{|{#1}\\rangle}");ie("\\braket","\\mathinner{\\langle{#1}\\rangle}");ie("\\Bra","\\left\\langle#1\\right|");ie("\\Ket","\\left|#1\\right\\rangle");var lCe=t=>e=>{var n=e.consumeArg().tokens,r=e.consumeArg().tokens,i=e.consumeArg().tokens,s=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=d=>f=>{t&&(f.macros.set("|",a),i.length&&f.macros.set("\\|",o));var h=d;if(!d&&i.length){var m=f.future();m.text==="|"&&(f.popToken(),h=!0)}return{tokens:h?i:r,numArgs:0}};e.macros.set("|",l(!1)),i.length&&e.macros.set("\\|",l(!0));var c=e.consumeArg().tokens,u=e.expandTokens([...s,...c,...n]);return e.macros.endGroup(),{tokens:u.reverse(),numArgs:0}};ie("\\bra@ket",lCe(!1));ie("\\bra@set",lCe(!0));ie("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");ie("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");ie("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");ie("\\angln","{\\angl n}");ie("\\blue","\\textcolor{##6495ed}{#1}");ie("\\orange","\\textcolor{##ffa500}{#1}");ie("\\pink","\\textcolor{##ff00af}{#1}");ie("\\red","\\textcolor{##df0030}{#1}");ie("\\green","\\textcolor{##28ae7b}{#1}");ie("\\gray","\\textcolor{gray}{#1}");ie("\\purple","\\textcolor{##9d38bd}{#1}");ie("\\blueA","\\textcolor{##ccfaff}{#1}");ie("\\blueB","\\textcolor{##80f6ff}{#1}");ie("\\blueC","\\textcolor{##63d9ea}{#1}");ie("\\blueD","\\textcolor{##11accd}{#1}");ie("\\blueE","\\textcolor{##0c7f99}{#1}");ie("\\tealA","\\textcolor{##94fff5}{#1}");ie("\\tealB","\\textcolor{##26edd5}{#1}");ie("\\tealC","\\textcolor{##01d1c1}{#1}");ie("\\tealD","\\textcolor{##01a995}{#1}");ie("\\tealE","\\textcolor{##208170}{#1}");ie("\\greenA","\\textcolor{##b6ffb0}{#1}");ie("\\greenB","\\textcolor{##8af281}{#1}");ie("\\greenC","\\textcolor{##74cf70}{#1}");ie("\\greenD","\\textcolor{##1fab54}{#1}");ie("\\greenE","\\textcolor{##0d923f}{#1}");ie("\\goldA","\\textcolor{##ffd0a9}{#1}");ie("\\goldB","\\textcolor{##ffbb71}{#1}");ie("\\goldC","\\textcolor{##ff9c39}{#1}");ie("\\goldD","\\textcolor{##e07d10}{#1}");ie("\\goldE","\\textcolor{##a75a05}{#1}");ie("\\redA","\\textcolor{##fca9a9}{#1}");ie("\\redB","\\textcolor{##ff8482}{#1}");ie("\\redC","\\textcolor{##f9685d}{#1}");ie("\\redD","\\textcolor{##e84d39}{#1}");ie("\\redE","\\textcolor{##bc2612}{#1}");ie("\\maroonA","\\textcolor{##ffbde0}{#1}");ie("\\maroonB","\\textcolor{##ff92c6}{#1}");ie("\\maroonC","\\textcolor{##ed5fa6}{#1}");ie("\\maroonD","\\textcolor{##ca337c}{#1}");ie("\\maroonE","\\textcolor{##9e034e}{#1}");ie("\\purpleA","\\textcolor{##ddd7ff}{#1}");ie("\\purpleB","\\textcolor{##c6b9fc}{#1}");ie("\\purpleC","\\textcolor{##aa87ff}{#1}");ie("\\purpleD","\\textcolor{##7854ab}{#1}");ie("\\purpleE","\\textcolor{##543b78}{#1}");ie("\\mintA","\\textcolor{##f5f9e8}{#1}");ie("\\mintB","\\textcolor{##edf2df}{#1}");ie("\\mintC","\\textcolor{##e0e5cc}{#1}");ie("\\grayA","\\textcolor{##f6f7f7}{#1}");ie("\\grayB","\\textcolor{##f0f1f2}{#1}");ie("\\grayC","\\textcolor{##e3e5e6}{#1}");ie("\\grayD","\\textcolor{##d6d8da}{#1}");ie("\\grayE","\\textcolor{##babec2}{#1}");ie("\\grayF","\\textcolor{##888d93}{#1}");ie("\\grayG","\\textcolor{##626569}{#1}");ie("\\grayH","\\textcolor{##3b3e40}{#1}");ie("\\grayI","\\textcolor{##21242c}{#1}");ie("\\kaBlue","\\textcolor{##314453}{#1}");ie("\\kaGreen","\\textcolor{##71B307}{#1}");var cCe={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class Pjt{constructor(e,n,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=n,this.expansionCount=0,this.feed(e),this.macros=new Rjt(Ljt,n.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new r0e(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var n,r,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;n=this.popToken(),{tokens:i,end:r}=this.consumeArg(["]"])}else({tokens:i,start:n,end:r}=this.consumeArg());return this.pushToken(new Ru("EOF",r.loc)),this.pushTokens(i),n.range(r,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var n=[],r=e&&e.length>0;r||this.consumeSpaces();var i=this.future(),s,a=0,o=0;do{if(s=this.popToken(),n.push(s),s.text==="{")++a;else if(s.text==="}"){if(--a,a===-1)throw new Et("Extra }",s)}else if(s.text==="EOF")throw new Et("Unexpected end of input in a macro argument, expected '"+(e&&r?e[o]:"}")+"'",s);if(e&&r)if((a===0||a===1&&e[o]==="{")&&s.text===e[o]){if(++o,o===e.length){n.splice(-o,o);break}}else o=0}while(a!==0||r);return i.text==="{"&&n[n.length-1].text==="}"&&(n.pop(),n.shift()),n.reverse(),{tokens:n,start:i,end:s}}consumeArgs(e,n){if(n){if(n.length!==e+1)throw new Et("The length of delimiters doesn't match the number of args!");for(var r=n[0],i=0;ithis.settings.maxExpand)throw new Et("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var n=this.popToken(),r=n.text,i=n.noexpand?null:this._getExpansion(r);if(i==null||e&&i.unexpandable){if(e&&i==null&&r[0]==="\\"&&!this.isDefined(r))throw new Et("Undefined control sequence: "+r);return this.pushToken(n),!1}this.countExpansion(1);var s=i.tokens,a=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){s=s.slice();for(var o=s.length-1;o>=0;--o){var l=s[o];if(l.text==="#"){if(o===0)throw new Et("Incomplete placeholder at end of macro body",l);if(l=s[--o],l.text==="#")s.splice(o+1,1);else if(/^[1-9]$/.test(l.text))s.splice(o,2,...a[+l.text-1]);else throw new Et("Not a valid argument number",l)}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Ru(e)]):void 0}expandTokens(e){var n=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),n.push(i)}return this.countExpansion(n.length),n}expandMacroAsText(e){var n=this.expandMacro(e);return n&&n.map(r=>r.text).join("")}_getExpansion(e){var n=this.macros.get(e);if(n==null)return n;if(e.length===1){var r=this.lexer.catcodes[e];if(r!=null&&r!==13)return}var i=typeof n=="function"?n(this):n;if(typeof i=="string"){var s=0;if(i.indexOf("#")!==-1)for(var a=i.replace(/##/g,"");a.indexOf("#"+(s+1))!==-1;)++s;for(var o=new r0e(i,this.settings),l=[],c=o.lex();c.text!=="EOF";)l.push(c),c=o.lex();l.reverse();var u={tokens:l,numArgs:s};return u}return i}isDefined(e){return this.macros.has(e)||C0.hasOwnProperty(e)||ss.math.hasOwnProperty(e)||ss.text.hasOwnProperty(e)||cCe.hasOwnProperty(e)}isExpandable(e){var n=this.macros.get(e);return n!=null?typeof n=="string"||typeof n=="function"||!n.unexpandable:C0.hasOwnProperty(e)&&!C0[e].primitive}}var a0e=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,_S=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),JP={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},o0e={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};let uCe=class dCe{constructor(e,n){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Pjt(e,n,this.mode),this.settings=n,this.leftrightDepth=0}expect(e,n){if(n===void 0&&(n=!0),this.fetch().text!==e)throw new Et("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());n&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var n=this.nextToken;this.consume(),this.gullet.pushToken(new Ru("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=n,r}parseExpression(e,n){for(var r=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(dCe.endOfExpression.indexOf(i.text)!==-1||n&&i.text===n||e&&C0[i.text]&&C0[i.text].infix)break;var s=this.parseAtom(n);if(s){if(s.type==="internal")continue}else break;r.push(s)}return this.mode==="text"&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var n=-1,r,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+n[0]+'" used in math mode',e);var o=ss[this.mode][n].group,l=Ic.range(e),c;if(CPt.hasOwnProperty(o)){var u=o;c={type:"atom",mode:this.mode,family:u,loc:l,text:n}}else c={type:o,mode:this.mode,loc:l,text:n};a=c}else if(n.charCodeAt(0)>=128)this.settings.strict&&(v9e(n.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+n[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+n[0]+'"'+(" ("+n.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:Ic.range(e),text:n};else return null;if(this.consume(),s)for(var d=0;d":""))+")"})}return f;function f(){let h=yCe,m,p,v;if((!e||s(l,c,u[u.length-1]||void 0))&&(h=Fjt(n(l,u)),h[0]===l0e))return h;if("children"in l&&l.children){const x=l;if(x.children&&h[0]!==bCe)for(p=(r?x.children.length:-1)+a,v=u.concat(x);p>-1&&pa&&(a=s):s=1,i=r+e.length,r=n.indexOf(e,i);return a}function Wjt(){return{enter:{mathFlow:t,mathFlowFenceMeta:e,mathText:s},exit:{mathFlow:i,mathFlowFence:r,mathFlowFenceMeta:n,mathFlowValue:o,mathText:a,mathTextData:o}};function t(l){const c={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[c]}},l)}function e(){this.buffer()}function n(){const l=this.resume(),c=this.stack[this.stack.length-1];c.type,c.meta=l}function r(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function i(l){const c=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),u=this.stack[this.stack.length-1];u.type,this.exit(l),u.value=c;const d=u.data.hChildren[0];d.type,d.tagName,d.children.push({type:"text",value:c}),this.data.mathFlowInside=void 0}function s(l){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},l),this.buffer()}function a(l){const c=this.resume(),u=this.stack[this.stack.length-1];u.type,this.exit(l),u.value=c,u.data.hChildren.push({type:"text",value:c})}function o(l){this.config.enter.data.call(this,l),this.config.exit.data.call(this,l)}}function Vjt(t){let e=(t||{}).singleDollarTextMath;return e==null&&(e=!0),r.peek=i,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` +`,inConstruct:"mathFlowMeta"},{character:"$",after:e?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:n,inlineMath:r}};function n(s,a,o,l){const c=s.value||"",u=o.createTracker(l),d="$".repeat(Math.max(Hjt(c,"$")+1,2)),f=o.enter("mathFlow");let h=u.move(d);if(s.meta){const m=o.enter("mathFlowMeta");h+=u.move(o.safe(s.meta,{after:` +`,before:h,encode:["$"],...u.current()})),m()}return h+=u.move(` +`),c&&(h+=u.move(c+` +`)),h+=u.move(d),f(),h}function r(s,a,o){let l=s.value||"",c=1;for(e||c++;new RegExp("(^|[^$])"+"\\$".repeat(c)+"([^$]|$)").test(l);)c++;const u="$".repeat(c);/[^ \r\n]/.test(l)&&(/^[ \r\n]/.test(l)&&/[ \r\n]$/.test(l)||/^\$|\$$/.test(l))&&(l=" "+l+" ");let d=-1;for(;++d-1&&t.test(String.fromCharCode(n))}}function Di(t,e,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return a;function a(l){return _i(l)?(t.enter(n),o(l)):e(l)}function o(l){return _i(l)&&s++{n.current=t},[t,...e]),n}function wCe(t,e){const n=t.filter((s,a)=>a<=(e??t.length-1)),r=n.flatMap(s=>{var a;return((a=s.contextItems)==null?void 0:a.filter(o=>{var l,c;return((l=o.uri)==null?void 0:l.type)==="file"&&((c=o.uri)==null?void 0:c.value)}))??[]}),i=n.filter(s=>s.editorState&&Array.isArray(s.editorState.content)).flatMap(s=>s.editorState.content).filter(s=>{var a,o,l,c;return(s==null?void 0:s.type)===zg.name&&((l=(o=(a=s==null?void 0:s.attrs)==null?void 0:a.item)==null?void 0:o.uri)==null?void 0:l.value)&&((c=s.attrs.item.uri)==null?void 0:c.type)==="file"}).map(s=>s.attrs.item);return[...r,...i]}const ozt=Cs("symbols/updateFromContextItems",async(t,{dispatch:e,extra:n,getState:r})=>{try{const i=Array.from(new Set(t));if(i.length>0){const s=await n.ideMessenger.request("context/getSymbolsForFiles",{uris:i});if(s.status==="error")throw new Error(s.error);e(oZe(s.content))}}catch(i){console.error("Error updating file symbols from filepaths",i,t)}}),u0e=Cs("symbols/updateFromHistory",async(t,{dispatch:e,extra:n,getState:r})=>{try{const i=r(),s=wCe(i.session.history),a=new Set(s.filter(l=>{var c,u;return((c=l==null?void 0:l.uri)==null?void 0:c.type)==="file"&&((u=l==null?void 0:l.uri)==null?void 0:u.value)}).map(l=>l.uri.value));Object.keys(i.session.symbols).forEach(l=>{a.delete(l)});const o=Array.from(a);if(o.length>0){const l=await n.ideMessenger.request("context/getSymbolsForFiles",{uris:o});if(l.status==="error")throw new Error(l.error);e(oZe(l.content))}}catch(i){console.error("Error updating file symbols from context items",i)}});function lzt({rif:t}){const e=g.useContext(qt);function n(){e.post("showLines",{filepath:t.filepath,startLine:t.range.start.line,endLine:t.range.end.line})}let r="";try{const{relativePathOrBasename:i}=Xb(t.filepath,window.workspacePaths??[]);r=i}catch{return y.jsx("span",{children:qu(t.filepath)})}return y.jsx(Ln,{place:"top",content:"/"+r,children:y.jsxs("span",{"data-tooltip-delay-show":500,className:"mx-[0.1em] mb-[0.15em] inline-flex cursor-pointer items-center gap-0.5 rounded-md pr-[0.2em] align-middle hover:ring-1",onClick:n,children:[y.jsx(t5,{filename:t.filepath,height:"20px",width:"20px"}),y.jsx("span",{className:"mb-0.5 align-baseline underline underline-offset-2",children:qu(t.filepath)})]})})}var Ia=function(){return Ia=Object.assign||function(e){for(var n,r=1,i=arguments.length;r-1&&t.splice(n,1),t.push(e)}function hzt(t,e){if(e.touches){for(;t.length;)t.pop();return}var n=_Ce(t,e);n>-1&&t.splice(n,1)}function f0e(t){t=t.slice(0);for(var e=t.pop(),n;n=t.pop();)e={clientX:(n.clientX-e.clientX)/2+e.clientX,clientY:(n.clientY-e.clientY)/2+e.clientY};return e}function nj(t){if(t.length<2)return 0;var e=t[0],n=t[1];return Math.sqrt(Math.pow(Math.abs(n.clientX-e.clientX),2)+Math.pow(Math.abs(n.clientY-e.clientY),2))}function pzt(t){for(var e=t;e&&e.parentNode;){if(e.parentNode===document)return!0;e=e.parentNode instanceof ShadowRoot?e.parentNode.host:e.parentNode}return!1}function mzt(t){return(t.getAttribute("class")||"").trim()}function gzt(t,e){return t.nodeType===1&&" ".concat(mzt(t)," ").indexOf(" ".concat(e," "))>-1}function vzt(t,e){for(var n=t;n!=null;n=n.parentNode)if(gzt(n,e.excludeClass)||e.exclude.indexOf(n)>-1)return!0;return!1}var yzt=/^http:[\w\.\/]+svg$/;function bzt(t){return yzt.test(t.namespaceURI)&&t.nodeName.toLowerCase()!=="svg"}function xzt(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var kCe={animate:!1,canvas:!1,cursor:"move",disablePan:!1,disableZoom:!1,disableXAxis:!1,disableYAxis:!1,duration:200,easing:"ease-in-out",exclude:[],excludeClass:"panzoom-exclude",handleStartEvent:function(t){t.preventDefault(),t.stopPropagation()},maxScale:4,minScale:.125,overflow:"hidden",panOnlyWhenZoomed:!1,pinchAndPan:!1,relative:!1,setTransform:fzt,startX:0,startY:0,startScale:1,step:.3,touchAction:"none"};function SCe(t,e){if(!t)throw new Error("Panzoom requires an element as an argument");if(t.nodeType!==1)throw new Error("Panzoom requires an element with a nodeType of 1");if(!pzt(t))throw new Error("Panzoom should be called on elements that have been attached to the DOM");e=Ia(Ia({},kCe),e);var n=bzt(t),r=t.parentNode;r.style.overflow=e.overflow,r.style.userSelect="none",r.style.touchAction=e.touchAction,(e.canvas?r:t).style.cursor=e.cursor,t.style.userSelect="none",t.style.touchAction=e.touchAction,Bv(t,"transformOrigin",typeof e.origin=="string"?e.origin:n?"0 0":"50% 50%");function i(){r.style.overflow="",r.style.userSelect="",r.style.touchAction="",r.style.cursor="",t.style.cursor="",t.style.userSelect="",t.style.touchAction="",Bv(t,"transformOrigin","")}function s(J){J===void 0&&(J={});for(var F in J)J.hasOwnProperty(F)&&(e[F]=J[F]);(J.hasOwnProperty("cursor")||J.hasOwnProperty("canvas"))&&(r.style.cursor=t.style.cursor="",(e.canvas?r:t).style.cursor=e.cursor),J.hasOwnProperty("overflow")&&(r.style.overflow=J.overflow),J.hasOwnProperty("touchAction")&&(r.style.touchAction=J.touchAction,t.style.touchAction=J.touchAction)}var a=0,o=0,l=1,c=!1;p(e.startScale,{animate:!1,force:!0}),setTimeout(function(){m(e.startX,e.startY,{animate:!1,force:!0})});function u(J,F,H){if(!H.silent){var V=new CustomEvent(J,{detail:F});t.dispatchEvent(V)}}function d(J,F,H){var V={x:a,y:o,scale:l,isSVG:n,originalEvent:H};return requestAnimationFrame(function(){typeof F.animate=="boolean"&&(F.animate?dzt(t,F):Bv(t,"transition","none")),F.setTransform(t,V,F),u(J,V,F),u("panzoomchange",V,F)}),V}function f(J,F,H,V){var L=Ia(Ia({},e),V),se={x:a,y:o,opts:L};if(!L.force&&(L.disablePan||L.panOnlyWhenZoomed&&l===L.startScale))return se;if(J=parseFloat(J),F=parseFloat(F),L.disableXAxis||(se.x=(L.relative?a:0)+J),L.disableYAxis||(se.y=(L.relative?o:0)+F),L.contain){var oe=QP(t),X=oe.elem.width/l,de=oe.elem.height/l,le=X*H,te=de*H,Fe=(le-X)/2,Ge=(te-de)/2;if(L.contain==="inside"){var Ve=(-oe.elem.margin.left-oe.parent.padding.left+Fe)/H,vt=(oe.parent.width-le-oe.parent.padding.left-oe.elem.margin.left-oe.parent.border.left-oe.parent.border.right+Fe)/H;se.x=Math.max(Math.min(se.x,vt),Ve);var ft=(-oe.elem.margin.top-oe.parent.padding.top+Ge)/H,ne=(oe.parent.height-te-oe.parent.padding.top-oe.elem.margin.top-oe.parent.border.top-oe.parent.border.bottom+Ge)/H;se.y=Math.max(Math.min(se.y,ne),ft)}else if(L.contain==="outside"){var Ve=(-(le-oe.parent.width)-oe.parent.padding.left-oe.parent.border.left-oe.parent.border.right+Fe)/H,vt=(Fe-oe.parent.padding.left)/H;se.x=Math.max(Math.min(se.x,vt),Ve);var ft=(-(te-oe.parent.height)-oe.parent.padding.top-oe.parent.border.top-oe.parent.border.bottom+Ge)/H,ne=(Ge-oe.parent.padding.top)/H;se.y=Math.max(Math.min(se.y,ne),ft)}}return L.roundPixels&&(se.x=Math.round(se.x),se.y=Math.round(se.y)),se}function h(J,F){var H=Ia(Ia({},e),F),V={scale:l,opts:H};if(!H.force&&H.disableZoom)return V;var L=e.minScale,se=e.maxScale;if(H.contain){var oe=QP(t),X=oe.elem.width/l,de=oe.elem.height/l;if(X>1&&de>1){var le=oe.parent.width-oe.parent.border.left-oe.parent.border.right,te=oe.parent.height-oe.parent.border.top-oe.parent.border.bottom,Fe=le/X,Ge=te/de;e.contain==="inside"?se=Math.min(se,Fe,Ge):e.contain==="outside"&&(L=Math.max(L,Fe,Ge))}}return V.scale=Math.min(Math.max(J,L),se),V}function m(J,F,H,V){var L=f(J,F,l,H);return a!==L.x||o!==L.y?(a=L.x,o=L.y,d("panzoompan",L.opts,V)):{x:a,y:o,scale:l,isSVG:n,originalEvent:V}}function p(J,F,H){var V=h(J,F),L=V.opts;if(!(!L.force&&L.disableZoom)){J=V.scale;var se=a,oe=o;if(L.focal){var X=L.focal;se=(X.x/J-X.x/l+a*J)/J,oe=(X.y/J-X.y/l+o*J)/J}var de=f(se,oe,J,{relative:!1,force:!0});return a=de.x,o=de.y,l=J,d("panzoomzoom",L,H)}}function v(J,F){var H=Ia(Ia(Ia({},e),{animate:!0}),F);return p(l*Math.exp((J?1:-1)*H.step),H)}function x(J){return v(!0,J)}function w(J){return v(!1,J)}function E(J,F,H,V){var L=QP(t),se={width:L.parent.width-L.parent.padding.left-L.parent.padding.right-L.parent.border.left-L.parent.border.right,height:L.parent.height-L.parent.padding.top-L.parent.padding.bottom-L.parent.border.top-L.parent.border.bottom},oe=F.clientX-L.parent.left-L.parent.padding.left-L.parent.border.left-L.elem.margin.left,X=F.clientY-L.parent.top-L.parent.padding.top-L.parent.border.top-L.elem.margin.top;n||(oe-=L.elem.width/l/2,X-=L.elem.height/l/2);var de={x:oe/se.width*(se.width*J),y:X/se.height*(se.height*J)};return p(J,Ia(Ia({},H),{animate:!1,focal:de}),V)}function S(J,F){J.preventDefault();var H=Ia(Ia(Ia({},e),F),{animate:!1}),V=J.deltaY===0&&J.deltaX?J.deltaX:J.deltaY,L=V<0?1:-1,se=h(l*Math.exp(L*H.step/3),H).scale;return E(se,J,H,J)}function _(J){var F=Ia(Ia(Ia({},e),{animate:!0,force:!0}),J);l=h(F.startScale,F).scale;var H=f(F.startX,F.startY,l,F);return a=H.x,o=H.y,d("panzoomreset",F)}var C,T,M,A,$,O,D=[];function N(J){if(!vzt(J.target,e)){JH(D,J),c=!0,e.handleStartEvent(J),C=a,T=o,u("panzoomstart",{x:a,y:o,scale:l,isSVG:n,originalEvent:J},e);var F=f0e(D);M=F.clientX,A=F.clientY,$=l,O=nj(D)}}function R(J){if(!(!c||C===void 0||T===void 0||M===void 0||A===void 0)){JH(D,J);var F=f0e(D),H=D.length>1,V=l;if(H){O===0&&(O=nj(D));var L=nj(D)-O;V=h(L*e.step/80+$).scale,E(V,F,{animate:!1},J)}(!H||e.pinchAndPan)&&m(C+(F.clientX-M)/V,T+(F.clientY-A)/V,{animate:!1},J)}}function q(J){D.length===1&&u("panzoomend",{x:a,y:o,scale:l,isSVG:n,originalEvent:J},e),hzt(D,J),c&&(c=!1,C=T=M=A=void 0)}var W=!1;function G(){W||(W=!0,ej("down",e.canvas?r:t,N),ej("move",document,R,{passive:!0}),ej("up",document,q,{passive:!0}))}function U(){W=!1,tj("down",e.canvas?r:t,N),tj("move",document,R),tj("up",document,q)}return e.noBind||G(),{bind:G,destroy:U,eventNames:aw,getPan:function(){return{x:a,y:o}},getScale:function(){return l},getOptions:function(){return xzt(e)},handleDown:N,handleMove:R,handleUp:q,pan:m,reset:_,resetStyle:i,setOptions:s,setStyle:function(J,F){return Bv(t,J,F)},zoom:p,zoomIn:x,zoomOut:w,zoomToPoint:E,zoomWithWheel:S}}SCe.defaultOptions=kCe;const wzt="modulepreload",_zt=function(t){return"/"+t},h0e={},Ci=function(e,n,r){let i=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=a(n.map(c=>{if(c=_zt(c),c in h0e)return;h0e[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":wzt,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return i.then(a=>{for(const o of a||[])o.status==="rejected"&&s(o.reason);return e().catch(s)})};var p0e={name:"mermaid",version:"11.11.0",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.0.4","@iconify/utils":"^3.0.1","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.11",dayjs:"^1.11.13",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^15.0.7",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.2","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",canvas:"^3.1.0",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.0.2",jison:"^0.4.18","js-base64":"^3.7.7",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.2",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.10","type-fest":"^4.35.0",typedoc:"^0.28.9","typedoc-plugin-markdown":"^4.8.0",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.0.2","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}},G8={exports:{}},kzt=G8.exports,m0e;function Szt(){return m0e||(m0e=1,(function(t,e){(function(n,r){t.exports=r()})(kzt,(function(){var n=1e3,r=6e4,i=36e5,s="millisecond",a="second",o="minute",l="hour",c="day",u="week",d="month",f="quarter",h="year",m="date",p="Invalid Date",v=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,x=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,w={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(R){var q=["th","st","nd","rd"],W=R%100;return"["+R+(q[(W-20)%10]||q[W]||q[0])+"]"}},E=function(R,q,W){var G=String(R);return!G||G.length>=q?R:""+Array(q+1-G.length).join(W)+R},S={s:E,z:function(R){var q=-R.utcOffset(),W=Math.abs(q),G=Math.floor(W/60),U=W%60;return(q<=0?"+":"-")+E(G,2,"0")+":"+E(U,2,"0")},m:function R(q,W){if(q.date()1)return R(F[0])}else{var H=q.name;C[H]=q,U=H}return!G&&U&&(_=U),U||!G&&_},$=function(R,q){if(M(R))return R.clone();var W=typeof q=="object"?q:{};return W.date=R,W.args=arguments,new D(W)},O=S;O.l=A,O.i=M,O.w=function(R,q){return $(R,{locale:q.$L,utc:q.$u,x:q.$x,$offset:q.$offset})};var D=(function(){function R(W){this.$L=A(W.locale,null,!0),this.parse(W),this.$x=this.$x||W.x||{},this[T]=!0}var q=R.prototype;return q.parse=function(W){this.$d=(function(G){var U=G.date,J=G.utc;if(U===null)return new Date(NaN);if(O.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var F=U.match(v);if(F){var H=F[2]-1||0,V=(F[7]||"0").substring(0,3);return J?new Date(Date.UTC(F[1],H,F[3]||1,F[4]||0,F[5]||0,F[6]||0,V)):new Date(F[1],H,F[3]||1,F[4]||0,F[5]||0,F[6]||0,V)}}return new Date(U)})(W),this.init()},q.init=function(){var W=this.$d;this.$y=W.getFullYear(),this.$M=W.getMonth(),this.$D=W.getDate(),this.$W=W.getDay(),this.$H=W.getHours(),this.$m=W.getMinutes(),this.$s=W.getSeconds(),this.$ms=W.getMilliseconds()},q.$utils=function(){return O},q.isValid=function(){return this.$d.toString()!==p},q.isSame=function(W,G){var U=$(W);return this.startOf(G)<=U&&U<=this.endOf(G)},q.isAfter=function(W,G){return $(W)CCe(t,"name",{value:e,configurable:!0}),$zt=(t,e)=>{for(var n in e)CCe(t,n,{get:e[n],enumerable:!0})},wh={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},mt={trace:z((...t)=>{},"trace"),debug:z((...t)=>{},"debug"),info:z((...t)=>{},"info"),warn:z((...t)=>{},"warn"),error:z((...t)=>{},"error"),fatal:z((...t)=>{},"fatal")},HK=z(function(t="fatal"){let e=wh.fatal;typeof t=="string"?t.toLowerCase()in wh&&(e=wh[t]):typeof t=="number"&&(e=t),mt.trace=()=>{},mt.debug=()=>{},mt.info=()=>{},mt.warn=()=>{},mt.error=()=>{},mt.fatal=()=>{},e<=wh.fatal&&(mt.fatal=console.error?console.error.bind(console,mu("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",mu("FATAL"))),e<=wh.error&&(mt.error=console.error?console.error.bind(console,mu("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",mu("ERROR"))),e<=wh.warn&&(mt.warn=console.warn?console.warn.bind(console,mu("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",mu("WARN"))),e<=wh.info&&(mt.info=console.info?console.info.bind(console,mu("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",mu("INFO"))),e<=wh.debug&&(mt.debug=console.debug?console.debug.bind(console,mu("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",mu("DEBUG"))),e<=wh.trace&&(mt.trace=console.debug?console.debug.bind(console,mu("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",mu("TRACE")))},"setLogLevel"),mu=z(t=>`%c${Ezt().format("ss.SSS")} : ${t} : `,"format");const K8={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},r)=>{if(!e)return n*2.55;t/=360,e/=100,n/=100;const i=n<.5?n*(1+e):n+e-n*e,s=2*n-i;switch(r){case"r":return K8.hue2rgb(s,i,t+1/3)*255;case"g":return K8.hue2rgb(s,i,t)*255;case"b":return K8.hue2rgb(s,i,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:n},r)=>{t/=255,e/=255,n/=255;const i=Math.max(t,e,n),s=Math.min(t,e,n),a=(i+s)/2;if(r==="l")return a*100;if(i===s)return 0;const o=i-s,l=a>.5?o/(2-i-s):o/(i+s);if(r==="s")return l*100;switch(i){case t:return((e-n)/o+(ee>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},Izt={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},gr={channel:K8,lang:Tzt,unit:Izt},o0={};for(let t=0;t<=255;t++)o0[t]=gr.unit.dec2hex(t);const Oo={ALL:0,RGB:1,HSL:2};class Azt{constructor(){this.type=Oo.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Oo.ALL}is(e){return this.type===e}}class Ozt{constructor(e,n){this.color=n,this.changed=!1,this.data=e,this.type=new Azt}set(e,n){return this.color=n,this.changed=!1,this.data=e,this.type.type=Oo.ALL,this}_ensureHSL(){const e=this.data,{h:n,s:r,l:i}=e;n===void 0&&(e.h=gr.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=gr.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=gr.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:n,g:r,b:i}=e;n===void 0&&(e.r=gr.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=gr.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=gr.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,n=e.r;return!this.type.is(Oo.HSL)&&n!==void 0?n:(this._ensureHSL(),gr.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,n=e.g;return!this.type.is(Oo.HSL)&&n!==void 0?n:(this._ensureHSL(),gr.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,n=e.b;return!this.type.is(Oo.HSL)&&n!==void 0?n:(this._ensureHSL(),gr.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,n=e.h;return!this.type.is(Oo.RGB)&&n!==void 0?n:(this._ensureRGB(),gr.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,n=e.s;return!this.type.is(Oo.RGB)&&n!==void 0?n:(this._ensureRGB(),gr.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,n=e.l;return!this.type.is(Oo.RGB)&&n!==void 0?n:(this._ensureRGB(),gr.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Oo.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Oo.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Oo.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Oo.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Oo.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Oo.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const zT=new Ozt({r:0,g:0,b:0,a:0},"transparent"),iy={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(iy.re);if(!e)return;const n=e[1],r=parseInt(n,16),i=n.length,s=i%4===0,a=i>4,o=a?1:17,l=a?8:4,c=s?0:-1,u=a?255:15;return zT.set({r:(r>>l*(c+3)&u)*o,g:(r>>l*(c+2)&u)*o,b:(r>>l*(c+1)&u)*o,a:s?(r&u)*o/255:1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`#${o0[Math.round(e)]}${o0[Math.round(n)]}${o0[Math.round(r)]}${o0[Math.round(i*255)]}`:`#${o0[Math.round(e)]}${o0[Math.round(n)]}${o0[Math.round(r)]}`}},z1={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(z1.hueRe);if(e){const[,n,r]=e;switch(r){case"grad":return gr.channel.clamp.h(parseFloat(n)*.9);case"rad":return gr.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return gr.channel.clamp.h(parseFloat(n)*360)}}return gr.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const n=t.match(z1.re);if(!n)return;const[,r,i,s,a,o]=n;return zT.set({h:z1._hue2deg(r),s:gr.channel.clamp.s(parseFloat(i)),l:gr.channel.clamp.l(parseFloat(s)),a:a?gr.channel.clamp.a(o?parseFloat(a)/100:parseFloat(a)):1},t)},stringify:t=>{const{h:e,s:n,l:r,a:i}=t;return i<1?`hsla(${gr.lang.round(e)}, ${gr.lang.round(n)}%, ${gr.lang.round(r)}%, ${i})`:`hsl(${gr.lang.round(e)}, ${gr.lang.round(n)}%, ${gr.lang.round(r)}%)`}},cx={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=cx.colors[t];if(e)return iy.parse(e)},stringify:t=>{const e=iy.stringify(t);for(const n in cx.colors)if(cx.colors[n]===e)return n}},_4={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const n=t.match(_4.re);if(!n)return;const[,r,i,s,a,o,l,c,u]=n;return zT.set({r:gr.channel.clamp.r(i?parseFloat(r)*2.55:parseFloat(r)),g:gr.channel.clamp.g(a?parseFloat(s)*2.55:parseFloat(s)),b:gr.channel.clamp.b(l?parseFloat(o)*2.55:parseFloat(o)),a:c?gr.channel.clamp.a(u?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`rgba(${gr.lang.round(e)}, ${gr.lang.round(n)}, ${gr.lang.round(r)}, ${gr.lang.round(i)})`:`rgb(${gr.lang.round(e)}, ${gr.lang.round(n)}, ${gr.lang.round(r)})`}},Uf={format:{keyword:cx,hex:iy,rgb:_4,rgba:_4,hsl:z1,hsla:z1},parse:t=>{if(typeof t!="string")return t;const e=iy.parse(t)||_4.parse(t)||z1.parse(t)||cx.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(Oo.HSL)||t.data.r===void 0?z1.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?_4.stringify(t):iy.stringify(t)},ECe=(t,e)=>{const n=Uf.parse(t);for(const r in e)n[r]=gr.channel.clamp[r](e[r]);return Uf.stringify(n)},ux=(t,e,n=0,r=1)=>{if(typeof t!="number")return ECe(t,{a:e});const i=zT.set({r:gr.channel.clamp.r(t),g:gr.channel.clamp.g(e),b:gr.channel.clamp.b(n),a:gr.channel.clamp.a(r)});return Uf.stringify(i)},Dzt=t=>{const{r:e,g:n,b:r}=Uf.parse(t),i=.2126*gr.channel.toLinear(e)+.7152*gr.channel.toLinear(n)+.0722*gr.channel.toLinear(r);return gr.lang.round(i)},Mzt=t=>Dzt(t)>=.5,e_=t=>!Mzt(t),$Ce=(t,e,n)=>{const r=Uf.parse(t),i=r[e],s=gr.channel.clamp[e](i+n);return i!==s&&(r[e]=s),Uf.stringify(r)},gn=(t,e)=>$Ce(t,"l",e),Pn=(t,e)=>$Ce(t,"l",-e),Pe=(t,e)=>{const n=Uf.parse(t),r={};for(const i in e)e[i]&&(r[i]=n[i]+e[i]);return ECe(t,r)},Nzt=(t,e,n=50)=>{const{r,g:i,b:s,a}=Uf.parse(t),{r:o,g:l,b:c,a:u}=Uf.parse(e),d=n/100,f=d*2-1,h=a-u,p=((f*h===-1?f:(f+h)/(1+f*h))+1)/2,v=1-p,x=r*p+o*v,w=i*p+l*v,E=s*p+c*v,S=a*d+u*(1-d);return ux(x,w,E,S)},Bt=(t,e=100)=>{const n=Uf.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,Nzt(n,t,e)};var TCe=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,dx=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Rzt=/\s*%%.*\n/gm,fy,ICe=(fy=class extends Error{constructor(e){super(e),this.name="UnknownDiagramError"}},z(fy,"UnknownDiagramError"),fy),Dg={},WK=z(function(t,e){t=t.replace(TCe,"").replace(dx,"").replace(Rzt,` +`);for(const[n,{detector:r}]of Object.entries(Dg))if(r(t,e))return n;throw new ICe(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),XH=z((...t)=>{for(const{id:e,detector:n,loader:r}of t)ACe(e,n,r)},"registerLazyLoadedDiagrams"),ACe=z((t,e,n)=>{Dg[t]&&mt.warn(`Detector with key ${t} already exists. Overwriting.`),Dg[t]={detector:e,loader:n},mt.debug(`Detector with key ${t} added${n?" with loader":""}`)},"addDetector"),Lzt=z(t=>Dg[t].loader,"getDiagramLoader"),QH=z((t,e,{depth:n=2,clobber:r=!1}={})=>{const i={depth:n,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(s=>QH(t,s,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(s=>{t.includes(s)||t.push(s)}),t):t===void 0||n<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(s=>{typeof e[s]=="object"&&(t[s]===void 0||typeof t[s]=="object")?(t[s]===void 0&&(t[s]=Array.isArray(e[s])?[]:{}),t[s]=QH(t[s],e[s],{depth:n-1,clobber:r})):(r||typeof t[s]!="object"&&typeof e[s]!="object")&&(t[s]=e[s])}),t)},"assignWithDepth"),Ra=QH,FT="#ffffff",BT="#f2f2f2",ml=z((t,e)=>e?Pe(t,{s:-40,l:10}):Pe(t,{s:-40,l:-10}),"mkBorder"),hy,Pzt=(hy=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var n,r,i,s,a,o,l,c,u,d,f,h,m,p,v,x,w,E,S,_,C;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Pe(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Pe(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ml(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ml(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ml(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ml(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Bt(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Bt(this.tertiaryColor),this.lineColor=this.lineColor||Bt(this.background),this.arrowheadColor=this.arrowheadColor||Bt(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Pn(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Pn(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Bt(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||gn(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.vertLineColor=this.vertLineColor||"navy",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||Pn(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Pn(this.mainBkg,10)):(this.rowOdd=this.rowOdd||gn(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||gn(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.darkMode)for(let T=0;T{this[r]=e[r]}),this.updateColors(),n.forEach(r=>{this[r]=e[r]})}},z(hy,"Theme"),hy),jzt=z(t=>{const e=new Pzt;return e.calculate(t),e},"getThemeVariables"),py,zzt=(py=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=gn(this.primaryColor,16),this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=Bt(this.background),this.secondaryBorderColor=ml(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ml(this.tertiaryColor,this.darkMode),this.primaryTextColor=Bt(this.primaryColor),this.secondaryTextColor=Bt(this.secondaryColor),this.tertiaryTextColor=Bt(this.tertiaryColor),this.lineColor=Bt(this.background),this.textColor=Bt(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=gn(Bt("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=ux(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Pn("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Pn(this.sectionBkgColor,10),this.taskBorderColor=ux(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=ux(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||gn(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Pn(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,n,r,i,s,a,o,l,c,u,d,f,h,m,p,v,x,w,E,S,_;this.secondBkg=gn(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=gn(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=gn(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Pe(this.primaryColor,{h:64}),this.fillType3=Pe(this.secondaryColor,{h:64}),this.fillType4=Pe(this.primaryColor,{h:-64}),this.fillType5=Pe(this.secondaryColor,{h:-64}),this.fillType6=Pe(this.primaryColor,{h:128}),this.fillType7=Pe(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330});for(let C=0;C{this[r]=e[r]}),this.updateColors(),n.forEach(r=>{this[r]=e[r]})}},z(py,"Theme"),py),Fzt=z(t=>{const e=new zzt;return e.calculate(t),e},"getThemeVariables"),my,Bzt=(my=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Pe(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=ml(this.primaryColor,this.darkMode),this.secondaryBorderColor=ml(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ml(this.tertiaryColor,this.darkMode),this.primaryTextColor=Bt(this.primaryColor),this.secondaryTextColor=Bt(this.secondaryColor),this.tertiaryTextColor=Bt(this.tertiaryColor),this.lineColor=Bt(this.background),this.textColor=Bt(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.sectionBkgColor=ux(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="navy",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,n,r,i,s,a,o,l,c,u,d,f,h,m,p,v,x,w,E,S,_;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pn(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pn(this.tertiaryColor,40);for(let C=0;C{this[r]==="calculated"&&(this[r]=void 0)}),typeof e!="object"){this.updateColors();return}const n=Object.keys(e);n.forEach(r=>{this[r]=e[r]}),this.updateColors(),n.forEach(r=>{this[r]=e[r]})}},z(my,"Theme"),my),Uzt=z(t=>{const e=new Bzt;return e.calculate(t),e},"getThemeVariables"),gy,qzt=(gy=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=gn("#cde498",10),this.primaryBorderColor=ml(this.primaryColor,this.darkMode),this.secondaryBorderColor=ml(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ml(this.tertiaryColor,this.darkMode),this.primaryTextColor=Bt(this.primaryColor),this.secondaryTextColor=Bt(this.secondaryColor),this.tertiaryTextColor=Bt(this.primaryColor),this.lineColor=Bt(this.background),this.textColor=Bt(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.vertLineColor="#00BFFF",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,n,r,i,s,a,o,l,c,u,d,f,h,m,p,v,x,w,E,S,_;this.actorBorder=Pn(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Pe(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Pe(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Pe(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Pe(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Pe(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Pe(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Pe(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Pe(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Pe(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Pn(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Pn(this.tertiaryColor,40);for(let C=0;C{this[r]=e[r]}),this.updateColors(),n.forEach(r=>{this[r]=e[r]})}},z(gy,"Theme"),gy),Hzt=z(t=>{const e=new qzt;return e.calculate(t),e},"getThemeVariables"),vy,Wzt=(vy=class{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=gn(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Pe(this.primaryColor,{h:-160}),this.primaryBorderColor=ml(this.primaryColor,this.darkMode),this.secondaryBorderColor=ml(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ml(this.tertiaryColor,this.darkMode),this.primaryTextColor=Bt(this.primaryColor),this.secondaryTextColor=Bt(this.secondaryColor),this.tertiaryTextColor=Bt(this.tertiaryColor),this.lineColor=Bt(this.background),this.textColor=Bt(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.vertLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||gn(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,n,r,i,s,a,o,l,c,u,d,f,h,m,p,v,x,w,E,S,_;this.secondBkg=gn(this.contrast,55),this.border2=this.contrast,this.actorBorder=gn(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let C=0;C{this[r]=e[r]}),this.updateColors(),n.forEach(r=>{this[r]=e[r]})}},z(vy,"Theme"),vy),Vzt=z(t=>{const e=new Wzt;return e.calculate(t),e},"getThemeVariables"),rp={base:{getThemeVariables:jzt},dark:{getThemeVariables:Fzt},default:{getThemeVariables:Uzt},forest:{getThemeVariables:Hzt},neutral:{getThemeVariables:Vzt}},tf={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200,inheritDir:!1},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,maxLabelWidth:360,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],titleColor:"",titleFontFamily:'"trebuchet ms", verdana, arial, sans-serif',titleFontSize:"4ex"},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showDataLabel:!1,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200,layoutAlgorithm:"cose-bilkent"},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1},OCe={...tf,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF",forceNodeModelOrder:!1,considerModelOrder:"NODES_AND_EDGES"},themeCSS:void 0,themeVariables:rp.default.getThemeVariables(),sequence:{...tf.sequence,messageFont:z(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:z(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:z(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...tf.gantt,tickInterval:void 0,useWidth:void 0},c4:{...tf.c4,useWidth:void 0,personFont:z(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),flowchart:{...tf.flowchart,inheritDir:!1},external_personFont:z(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:z(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:z(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:z(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:z(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:z(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:z(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:z(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:z(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:z(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:z(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:z(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:z(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:z(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:z(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:z(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:z(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:z(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:z(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:z(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:z(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...tf.pie,useWidth:984},xyChart:{...tf.xyChart,useWidth:void 0},requirement:{...tf.requirement,useWidth:void 0},packet:{...tf.packet},radar:{...tf.radar},treemap:{useMaxWidth:!0,padding:10,diagramPadding:8,showValues:!0,nodeWidth:100,nodeHeight:40,borderWidth:1,valueFontSize:12,labelFontSize:14,valueFormat:","}},DCe=z((t,e="")=>Object.keys(t).reduce((n,r)=>Array.isArray(t[r])?n:typeof t[r]=="object"&&t[r]!==null?[...n,e+r,...DCe(t[r],"")]:[...n,e+r],[]),"keyify"),Zzt=new Set(DCe(OCe,"")),MCe=OCe,jC=z(t=>{if(mt.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>jC(e));return}for(const e of Object.keys(t)){if(mt.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Zzt.has(e)||t[e]==null){mt.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){mt.debug("sanitizing object",e),jC(t[e]);continue}const n=["themeCSS","fontFamily","altFontFamily"];for(const r of n)e.includes(r)&&(mt.debug("sanitizing css option",e),t[e]=Gzt(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const n=t.themeVariables[e];n!=null&&n.match&&!n.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}mt.debug("After sanitization",t)}},"sanitizeDirective"),Gzt=z(t=>{let e=0,n=0;for(const r of t){if(e{let n=Ra({},t),r={};for(const i of e)LCe(i),r=Ra(r,i);if(n=Ra(n,r),r.theme&&r.theme in rp){const i=Ra({},zC),s=Ra(i.themeVariables||{},r.themeVariables);n.theme&&n.theme in rp&&(n.themeVariables=rp[n.theme].getThemeVariables(s))}return fx=n,PCe(fx),fx},"updateCurrentConfig"),Kzt=z(t=>(Gl=Ra({},Zy),Gl=Ra(Gl,t),t.theme&&rp[t.theme]&&(Gl.themeVariables=rp[t.theme].getThemeVariables(t.themeVariables)),UT(Gl,Mg),Gl),"setSiteConfig"),Yzt=z(t=>{zC=Ra({},t)},"saveConfigFromInitialize"),Jzt=z(t=>(Gl=Ra(Gl,t),UT(Gl,Mg),Gl),"updateSiteConfig"),NCe=z(()=>Ra({},Gl),"getSiteConfig"),RCe=z(t=>(PCe(t),Ra(fx,t),Fo()),"setConfig"),Fo=z(()=>Ra({},fx),"getConfig"),LCe=z(t=>{t&&(["secure",...Gl.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(mt.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&LCe(t[e])}))},"sanitize"),Xzt=z(t=>{var e;jC(t),t.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),Mg.push(t),UT(Gl,Mg)},"addDirective"),FC=z((t=Gl)=>{Mg=[],UT(t,Mg)},"reset"),Qzt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},g0e={},eFt=z(t=>{g0e[t]||(mt.warn(Qzt[t]),g0e[t]=!0)},"issueWarning"),PCe=z(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&eFt("LAZY_LOAD_DEPRECATED")},"checkConfig"),b$n=z(()=>{let t={};zC&&(t=Ra(t,zC));for(const e of Mg)t=Ra(t,e);return t},"getUserDefinedConfig"),t_=//gi,tFt=z(t=>t?FCe(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),nFt=(()=>{let t=!1;return()=>{t||(jCe(),t=!0)}})();function jCe(){const t="data-temp-href-target";Og.addHook("beforeSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),Og.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}z(jCe,"setupDompurifyHooks");var zCe=z(t=>(nFt(),Og.sanitize(t)),"removeScript"),v0e=z((t,e)=>{var n;if(((n=e.flowchart)==null?void 0:n.htmlLabels)!==!1){const r=e.securityLevel;r==="antiscript"||r==="strict"?t=zCe(t):r!=="loose"&&(t=FCe(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=aFt(t))}return t},"sanitizeMore"),Ku=z((t,e)=>t&&(e.dompurifyConfig?t=Og.sanitize(v0e(t,e),e.dompurifyConfig).toString():t=Og.sanitize(v0e(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),rFt=z((t,e)=>typeof t=="string"?Ku(t,e):t.flat().map(n=>Ku(n,e)),"sanitizeTextOrArray"),iFt=z(t=>t_.test(t),"hasBreaks"),sFt=z(t=>t.split(t_),"splitBreaks"),aFt=z(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),FCe=z(t=>t.replace(t_,"#br#"),"breakToPlaceholder"),BCe=z(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=CSS.escape(e)),e},"getUrl"),ja=z(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),oFt=z(function(...t){const e=t.filter(n=>!isNaN(n));return Math.max(...e)},"getMax"),lFt=z(function(...t){const e=t.filter(n=>!isNaN(n));return Math.min(...e)},"getMin"),y0e=z(function(t){const e=t.split(/(,)/),n=[];for(let r=0;r0&&r+1Math.max(0,t.split(e).length-1),"countOccurrence"),cFt=z((t,e)=>{const n=eW(t,"~"),r=eW(e,"~");return n===1&&r===1},"shouldCombineSets"),uFt=z(t=>{const e=eW(t,"~");let n=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),n=!0);const r=[...t];let i=r.indexOf("~"),s=r.lastIndexOf("~");for(;i!==-1&&s!==-1&&i!==s;)r[i]="<",r[s]=">",i=r.indexOf("~"),s=r.lastIndexOf("~");return n&&r.unshift("~"),r.join("")},"processSet"),b0e=z(()=>window.MathMLElement!==void 0,"isMathMLSupported"),tW=/\$\$(.*)\$\$/g,Gy=z(t=>{var e;return(((e=t.match(tW))==null?void 0:e.length)??0)>0},"hasKatex"),x$n=z(async(t,e)=>{const n=document.createElement("div");n.innerHTML=await VK(t,e),n.id="katex-temp",n.style.visibility="hidden",n.style.position="absolute",n.style.top="0";const r=document.querySelector("body");r==null||r.insertAdjacentElement("beforeend",n);const i={width:n.clientWidth,height:n.clientHeight};return n.remove(),i},"calculateMathMLDimensions"),dFt=z(async(t,e)=>{if(!Gy(t))return t;if(!(b0e()||e.legacyMathML||e.forceLegacyMathML))return t.replace(tW,"MathML is unsupported in this environment.");{const{default:n}=await Ci(async()=>{const{default:i}=await Promise.resolve().then(()=>jjt);return{default:i}},void 0),r=e.forceLegacyMathML||!b0e()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(t_).map(i=>Gy(i)?`
${i}
`:`
${i}
`).join("").replace(tW,(i,s)=>n.renderToString(s,{throwOnError:!0,displayMode:!0,output:r}).replace(/\n/g," ").replace(//g,""))}},"renderKatexUnsanitized"),VK=z(async(t,e)=>Ku(await dFt(t,e),e),"renderKatexSanitized"),o5={getRows:tFt,sanitizeText:Ku,sanitizeTextOrArray:rFt,hasBreaks:iFt,splitBreaks:sFt,lineBreakRegex:t_,removeScript:zCe,getUrl:BCe,evaluate:ja,getMax:oFt,getMin:lFt},fFt=z(function(t,e){for(let n of e)t.attr(n[0],n[1])},"d3Attrs"),hFt=z(function(t,e,n){let r=new Map;return n?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},"calculateSvgSizeAttrs"),UCe=z(function(t,e,n,r){const i=hFt(e,n,r);fFt(t,i)},"configureSvgSize"),pFt=z(function(t,e,n,r){const i=e.node().getBBox(),s=i.width,a=i.height;mt.info(`SVG bounds: ${s}x${a}`,i);let o=0,l=0;mt.info(`Graph bounds: ${o}x${l}`,t),o=s+n*2,l=a+n*2,mt.info(`Calculated bounds: ${o}x${l}`),UCe(e,l,o,r);const c=`${i.x-n} ${i.y-n} ${i.width+2*n} ${i.height+2*n}`;e.attr("viewBox",c)},"setupGraphViewbox"),Y8={},mFt=z((t,e,n)=>{let r="";return t in Y8&&Y8[t]?r=Y8[t](n):mt.warn(`No theme found for ${t}`),` & { + font-family: ${n.fontFamily}; + font-size: ${n.fontSize}; + fill: ${n.textColor} + } + @keyframes edge-animation-frame { + from { + stroke-dashoffset: 0; + } + } + @keyframes dash { + to { + stroke-dashoffset: 0; + } + } + & .edge-animation-slow { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 50s linear infinite; + stroke-linecap: round; + } + & .edge-animation-fast { + stroke-dasharray: 9,5 !important; + stroke-dashoffset: 900; + animation: dash 20s linear infinite; + stroke-linecap: round; + } + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${n.errorBkgColor}; + } + & .error-text { + fill: ${n.errorTextColor}; + stroke: ${n.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${n.lineColor}; + stroke: ${n.lineColor}; + } + & .marker.cross { + stroke: ${n.lineColor}; + } + + & svg { + font-family: ${n.fontFamily}; + font-size: ${n.fontSize}; + } + & p { + margin: 0 + } + + ${r} + + ${e} +`},"getStyles"),gFt=z((t,e)=>{e!==void 0&&(Y8[t]=e)},"addStylesForDiagram"),vFt=mFt,qCe={};$zt(qCe,{clear:()=>yFt,getAccDescription:()=>_Ft,getAccTitle:()=>xFt,getDiagramTitle:()=>SFt,setAccDescription:()=>wFt,setAccTitle:()=>bFt,setDiagramTitle:()=>kFt});var ZK="",GK="",KK="",YK=z(t=>Ku(t,Fo()),"sanitizeText"),yFt=z(()=>{ZK="",KK="",GK=""},"clear"),bFt=z(t=>{ZK=YK(t).replace(/^\s+/g,"")},"setAccTitle"),xFt=z(()=>ZK,"getAccTitle"),wFt=z(t=>{KK=YK(t).replace(/\n\s+/g,` +`)},"setAccDescription"),_Ft=z(()=>KK,"getAccDescription"),kFt=z(t=>{GK=YK(t)},"setDiagramTitle"),SFt=z(()=>GK,"getDiagramTitle"),x0e=mt,CFt=HK,Mi=Fo,w$n=RCe,_$n=Zy,JK=z(t=>Ku(t,Mi()),"sanitizeText"),EFt=pFt,$Ft=z(()=>qCe,"getCommonDb"),BC={},UC=z((t,e,n)=>{var r;BC[t]&&x0e.warn(`Diagram with id ${t} already registered. Overwriting.`),BC[t]=e,n&&ACe(t,n),gFt(t,e.styles),(r=e.injectUtils)==null||r.call(e,x0e,CFt,Mi,JK,EFt,$Ft(),()=>{})},"registerDiagram"),nW=z(t=>{if(t in BC)return BC[t];throw new TFt(t)},"getDiagram"),yy,TFt=(yy=class extends Error{constructor(e){super(`Diagram ${e} not found.`)}},z(yy,"DiagramNotFoundError"),yy),IFt={value:()=>{}};function HCe(){for(var t=0,e=arguments.length,n={},r;t=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}J8.prototype=HCe.prototype={constructor:J8,on:function(t,e){var n=this._,r=AFt(t+"",n),i,s=-1,a=r.length;if(arguments.length<2){for(;++s0)for(var n=new Array(i),r=0,i,s;r=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),_0e.hasOwnProperty(e)?{space:_0e[e],local:t}:t}function DFt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===rW&&e.documentElement.namespaceURI===rW?e.createElement(t):e.createElementNS(n,t)}}function MFt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function WCe(t){var e=qT(t);return(e.local?MFt:DFt)(e)}function NFt(){}function XK(t){return t==null?NFt:function(){return this.querySelector(t)}}function RFt(t){typeof t!="function"&&(t=XK(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i=E&&(E=w+1);!(_=v[E])&&++E=0;)(a=r[i])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function aBt(t){t||(t=oBt);function e(d,f){return d&&f?t(d.__data__,f.__data__):!d-!f}for(var n=this._groups,r=n.length,i=new Array(r),s=0;se?1:t>=e?0:NaN}function lBt(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function cBt(){return Array.from(this)}function uBt(){for(var t=this._groups,e=0,n=t.length;e1?this.each((e==null?wBt:typeof e=="function"?kBt:_Bt)(t,e,n??"")):Ky(this.node(),t)}function Ky(t,e){return t.style.getPropertyValue(e)||YCe(t).getComputedStyle(t,null).getPropertyValue(e)}function CBt(t){return function(){delete this[t]}}function EBt(t,e){return function(){this[t]=e}}function $Bt(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function TBt(t,e){return arguments.length>1?this.each((e==null?CBt:typeof e=="function"?$Bt:EBt)(t,e)):this.node()[t]}function JCe(t){return t.trim().split(/^|\s+/)}function QK(t){return t.classList||new XCe(t)}function XCe(t){this._node=t,this._names=JCe(t.getAttribute("class")||"")}XCe.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function QCe(t,e){for(var n=QK(t),r=-1,i=e.length;++r=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function nUt(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,s;n>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ES(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ES(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=dUt.exec(t))?new nc(e[1],e[2],e[3],1):(e=fUt.exec(t))?new nc(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=hUt.exec(t))?ES(e[1],e[2],e[3],e[4]):(e=pUt.exec(t))?ES(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=mUt.exec(t))?I0e(e[1],e[2]/100,e[3]/100,1):(e=gUt.exec(t))?I0e(e[1],e[2]/100,e[3]/100,e[4]):k0e.hasOwnProperty(t)?E0e(k0e[t]):t==="transparent"?new nc(NaN,NaN,NaN,0):null}function E0e(t){return new nc(t>>16&255,t>>8&255,t&255,1)}function ES(t,e,n,r){return r<=0&&(t=e=n=NaN),new nc(t,e,n,r)}function bUt(t){return t instanceof r_||(t=cw(t)),t?(t=t.rgb(),new nc(t.r,t.g,t.b,t.opacity)):new nc}function iW(t,e,n,r){return arguments.length===1?bUt(t):new nc(t,e,n,r??1)}function nc(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}eY(nc,iW,rEe(r_,{brighter(t){return t=t==null?HC:Math.pow(HC,t),new nc(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ow:Math.pow(ow,t),new nc(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new nc(og(this.r),og(this.g),og(this.b),WC(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$0e,formatHex:$0e,formatHex8:xUt,formatRgb:T0e,toString:T0e}));function $0e(){return`#${F1(this.r)}${F1(this.g)}${F1(this.b)}`}function xUt(){return`#${F1(this.r)}${F1(this.g)}${F1(this.b)}${F1((isNaN(this.opacity)?1:this.opacity)*255)}`}function T0e(){const t=WC(this.opacity);return`${t===1?"rgb(":"rgba("}${og(this.r)}, ${og(this.g)}, ${og(this.b)}${t===1?")":`, ${t})`}`}function WC(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function og(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function F1(t){return t=og(t),(t<16?"0":"")+t.toString(16)}function I0e(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Cd(t,e,n,r)}function iEe(t){if(t instanceof Cd)return new Cd(t.h,t.s,t.l,t.opacity);if(t instanceof r_||(t=cw(t)),!t)return new Cd;if(t instanceof Cd)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),s=Math.max(e,n,r),a=NaN,o=s-i,l=(s+i)/2;return o?(e===s?a=(n-r)/o+(n0&&l<1?0:a,new Cd(a,o,l,t.opacity)}function wUt(t,e,n,r){return arguments.length===1?iEe(t):new Cd(t,e,n,r??1)}function Cd(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}eY(Cd,wUt,rEe(r_,{brighter(t){return t=t==null?HC:Math.pow(HC,t),new Cd(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ow:Math.pow(ow,t),new Cd(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new nc(rj(t>=240?t-240:t+120,i,r),rj(t,i,r),rj(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Cd(A0e(this.h),$S(this.s),$S(this.l),WC(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=WC(this.opacity);return`${t===1?"hsl(":"hsla("}${A0e(this.h)}, ${$S(this.s)*100}%, ${$S(this.l)*100}%${t===1?")":`, ${t})`}`}}));function A0e(t){return t=(t||0)%360,t<0?t+360:t}function $S(t){return Math.max(0,Math.min(1,t||0))}function rj(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const tY=t=>()=>t;function sEe(t,e){return function(n){return t+n*e}}function _Ut(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function k$n(t,e){var n=e-t;return n?sEe(t,n>180||n<-180?n-360*Math.round(n/360):n):tY(isNaN(t)?e:t)}function kUt(t){return(t=+t)==1?aEe:function(e,n){return n-e?_Ut(e,n,t):tY(isNaN(e)?n:e)}}function aEe(t,e){var n=e-t;return n?sEe(t,n):tY(isNaN(t)?e:t)}const O0e=(function t(e){var n=kUt(e);function r(i,s){var a=n((i=iW(i)).r,(s=iW(s)).r),o=n(i.g,s.g),l=n(i.b,s.b),c=aEe(i.opacity,s.opacity);return function(u){return i.r=a(u),i.g=o(u),i.b=l(u),i.opacity=c(u),i+""}}return r.gamma=t,r})(1);function u0(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var sW=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ij=new RegExp(sW.source,"g");function SUt(t){return function(){return t}}function CUt(t){return function(e){return t(e)+""}}function EUt(t,e){var n=sW.lastIndex=ij.lastIndex=0,r,i,s,a=-1,o=[],l=[];for(t=t+"",e=e+"";(r=sW.exec(t))&&(i=ij.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),o[a]?o[a]+=s:o[++a]=s),(r=r[0])===(i=i[0])?o[a]?o[a]+=i:o[++a]=i:(o[++a]=null,l.push({i:a,x:u0(r,i)})),n=ij.lastIndex;return n180?u+=360:u-c>180&&(c+=360),f.push({i:d.push(i(d)+"rotate(",null,r)-2,x:u0(c,u)})):u&&d.push(i(d)+"rotate("+u+r)}function o(c,u,d,f){c!==u?f.push({i:d.push(i(d)+"skewX(",null,r)-2,x:u0(c,u)}):u&&d.push(i(d)+"skewX("+u+r)}function l(c,u,d,f,h,m){if(c!==d||u!==f){var p=h.push(i(h)+"scale(",null,",",null,")");m.push({i:p-4,x:u0(c,d)},{i:p-2,x:u0(u,f)})}else(d!==1||f!==1)&&h.push(i(h)+"scale("+d+","+f+")")}return function(c,u){var d=[],f=[];return c=t(c),u=t(u),s(c.translateX,c.translateY,u.translateX,u.translateY,d,f),a(c.rotate,u.rotate,d,f),o(c.skewX,u.skewX,d,f),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,d,f),c=u=null,function(h){for(var m=-1,p=f.length,v;++m=0&&t._call.call(void 0,e),t=t._next;--Yy}function M0e(){Ng=(ZC=uw.now())+HT,Yy=k4=0;try{DUt()}finally{Yy=0,NUt(),Ng=0}}function MUt(){var t=uw.now(),e=t-ZC;e>cEe&&(HT-=e,ZC=t)}function NUt(){for(var t,e=VC,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:VC=n);S4=t,oW(r)}function oW(t){if(!Yy){k4&&(k4=clearTimeout(k4));var e=t-Ng;e>24?(t<1/0&&(k4=setTimeout(M0e,t-uw.now()-HT)),f3&&(f3=clearInterval(f3))):(f3||(ZC=uw.now(),f3=setInterval(MUt,cEe)),Yy=1,uEe(M0e))}}function N0e(t,e,n){var r=new GC;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}var RUt=HCe("start","end","cancel","interrupt"),LUt=[],fEe=0,R0e=1,lW=2,X8=3,L0e=4,cW=5,Q8=6;function WT(t,e,n,r,i,s){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;PUt(t,n,{name:e,index:r,group:i,on:RUt,tween:LUt,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:fEe})}function rY(t,e){var n=Gd(t,e);if(n.state>fEe)throw new Error("too late; already scheduled");return n}function eh(t,e){var n=Gd(t,e);if(n.state>X8)throw new Error("too late; already running");return n}function Gd(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function PUt(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=dEe(s,0,n.time);function s(c){n.state=R0e,n.timer.restart(a,n.delay,n.time),n.delay<=c&&a(c-n.delay)}function a(c){var u,d,f,h;if(n.state!==R0e)return l();for(u in r)if(h=r[u],h.name===n.name){if(h.state===X8)return N0e(a);h.state===L0e?(h.state=Q8,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[u]):+ulW&&r.state=0&&(e=e.slice(0,n)),!e||e==="start"})}function pqt(t,e,n){var r,i,s=hqt(e)?rY:eh;return function(){var a=s(this,t),o=a.on;o!==r&&(i=(r=o).copy()).on(e,n),a.on=i}}function mqt(t,e){var n=this._id;return arguments.length<2?Gd(this.node(),n).on.on(t):this.each(pqt(n,t,e))}function gqt(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function vqt(){return this.on("end.remove",gqt(this._id))}function yqt(t){var e=this._name,n=this._id;typeof t!="function"&&(t=XK(t));for(var r=this._groups,i=r.length,s=new Array(i),a=0;a=0))throw new Error(`invalid digits: ${t}`);if(e>15)return gEe;const n=10**e;return function(r){this._+=r[0];for(let i=1,s=r.length;iw1)if(!(Math.abs(d*l-c*u)>w1)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let h=r-a,m=i-o,p=l*l+c*c,v=h*h+m*m,x=Math.sqrt(p),w=Math.sqrt(f),E=s*Math.tan((uW-Math.acos((p+f-v)/(2*x*w)))/2),S=E/w,_=E/x;Math.abs(S-1)>w1&&this._append`L${e+S*u},${n+S*d}`,this._append`A${s},${s},0,0,${+(d*h>u*m)},${this._x1=e+_*l},${this._y1=n+_*c}`}}arc(e,n,r,i,s,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let o=r*Math.cos(i),l=r*Math.sin(i),c=e+o,u=n+l,d=1^a,f=a?i-s:s-i;this._x1===null?this._append`M${c},${u}`:(Math.abs(this._x1-c)>w1||Math.abs(this._y1-u)>w1)&&this._append`L${c},${u}`,r&&(f<0&&(f=f%dW+dW),f>qqt?this._append`A${r},${r},0,1,${d},${e-o},${n-l}A${r},${r},0,1,${d},${this._x1=c},${this._y1=u}`:f>w1&&this._append`A${r},${r},0,${+(f>=uW)},${d},${this._x1=e+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function rv(t){return function(){return t}}const S$n=Math.abs,C$n=Math.atan2,E$n=Math.cos,$$n=Math.max,T$n=Math.min,I$n=Math.sin,A$n=Math.sqrt,P0e=1e-12,sY=Math.PI,j0e=sY/2,O$n=2*sY;function D$n(t){return t>1?0:t<-1?sY:Math.acos(t)}function M$n(t){return t>=1?j0e:t<=-1?-j0e:Math.asin(t)}function Vqt(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new Wqt(e)}function Zqt(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function vEe(t){this._context=t}vEe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function KC(t){return new vEe(t)}function Gqt(t){return t[0]}function Kqt(t){return t[1]}function Yqt(t,e){var n=rv(!0),r=null,i=KC,s=null,a=Vqt(o);t=typeof t=="function"?t:t===void 0?Gqt:rv(t),e=typeof e=="function"?e:e===void 0?Kqt:rv(e);function o(l){var c,u=(l=Zqt(l)).length,d,f=!1,h;for(r==null&&(s=i(h=a())),c=0;c<=u;++c)!(c0)for(var r=t[0],i=e[0],s=t[n]-r,a=e[n]-i,o=-1,l;++o<=n;)l=o/n,this._basis.point(this._beta*t[o]+(1-this._beta)*(r+l*s),this._beta*e[o]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Qqt=(function t(e){function n(r){return e===1?new VT(r):new kEe(r,e)}return n.beta=function(r){return t(+r)},n})(.85);function JC(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function aY(t,e){this._context=t,this._k=(1-e)/6}aY.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:JC(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:JC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const SEe=(function t(e){function n(r){return new aY(r,e)}return n.tension=function(r){return t(+r)},n})(0);function oY(t,e){this._context=t,this._k=(1-e)/6}oY.prototype={areaStart:im,areaEnd:im,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:JC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const eHt=(function t(e){function n(r){return new oY(r,e)}return n.tension=function(r){return t(+r)},n})(0);function lY(t,e){this._context=t,this._k=(1-e)/6}lY.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:JC(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const tHt=(function t(e){function n(r){return new lY(r,e)}return n.tension=function(r){return t(+r)},n})(0);function cY(t,e,n){var r=t._x1,i=t._y1,s=t._x2,a=t._y2;if(t._l01_a>P0e){var o=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*o-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*o-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>P0e){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);s=(s*c+t._x1*t._l23_2a-e*t._l12_2a)/u,a=(a*c+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(r,i,s,a,t._x2,t._y2)}function CEe(t,e){this._context=t,this._alpha=e}CEe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:cY(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const EEe=(function t(e){function n(r){return e?new CEe(r,e):new aY(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function $Ee(t,e){this._context=t,this._alpha=e}$Ee.prototype={areaStart:im,areaEnd:im,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:cY(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const nHt=(function t(e){function n(r){return e?new $Ee(r,e):new oY(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function TEe(t,e){this._context=t,this._alpha=e}TEe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:cY(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const rHt=(function t(e){function n(r){return e?new TEe(r,e):new lY(r,0)}return n.alpha=function(r){return t(+r)},n})(.5);function IEe(t){this._context=t}IEe.prototype={areaStart:im,areaEnd:im,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function iHt(t){return new IEe(t)}function z0e(t){return t<0?-1:1}function F0e(t,e,n){var r=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(r||i<0&&-0),a=(n-t._y1)/(i||r<0&&-0),o=(s*i+a*r)/(r+i);return(z0e(s)+z0e(a))*Math.min(Math.abs(s),Math.abs(a),.5*Math.abs(o))||0}function B0e(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function sj(t,e,n){var r=t._x0,i=t._y0,s=t._x1,a=t._y1,o=(s-r)/3;t._context.bezierCurveTo(r+o,i+o*e,s-o,a-o*n,s,a)}function XC(t){this._context=t}XC.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:sj(this,this._t0,B0e(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,sj(this,B0e(this,n=F0e(this,t,e)),n);break;default:sj(this,this._t0,n=F0e(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function AEe(t){this._context=new OEe(t)}(AEe.prototype=Object.create(XC.prototype)).point=function(t,e){XC.prototype.point.call(this,e,t)};function OEe(t){this._context=t}OEe.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,s){this._context.bezierCurveTo(e,t,r,n,s,i)}};function DEe(t){return new XC(t)}function MEe(t){return new AEe(t)}function NEe(t){this._context=t}NEe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=U0e(t),i=U0e(e),s=0,a=1;a=0;--e)i[e]=(a[e]-i[e+1])/s[e];for(s[n-1]=(t[n]+i[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function LEe(t){return new ZT(t,.5)}function PEe(t){return new ZT(t,0)}function jEe(t){return new ZT(t,1)}function C4(t,e,n){this.k=t,this.x=e,this.y=n}C4.prototype={constructor:C4,scale:function(t){return t===1?this:new C4(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new C4(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};C4.prototype;var sHt=z(t=>{var i;const{securityLevel:e}=Mi();let n=ui("body");if(e==="sandbox"){const a=((i=ui(`#i${t}`).node())==null?void 0:i.contentDocument)??document;n=ui(a.body)}return n.select(`#${t}`)},"selectSvgElement");function uY(t){return typeof t>"u"||t===null}z(uY,"isNothing");function zEe(t){return typeof t=="object"&&t!==null}z(zEe,"isObject");function FEe(t){return Array.isArray(t)?t:uY(t)?[]:[t]}z(FEe,"toArray");function BEe(t,e){var n,r,i,s;if(e)for(s=Object.keys(e),n=0,r=s.length;no&&(s=" ... ",e=r-o+s.length),n-r>o&&(a=" ...",n=r+o-a.length),{str:s+t.slice(e,n).replace(/\t/g,"→")+a,pos:r-e+s.length}}z(t9,"getLine");function n9(t,e){return La.repeat(" ",e-t.length)+t}z(n9,"padStart");function HEe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var n=/\r?\n|\r|\0/g,r=[0],i=[],s,a=-1;s=n.exec(t.buffer);)i.push(s.index),r.push(s.index+s[0].length),t.position<=s.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var o="",l,c,u=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(a-l<0);l++)c=t9(t.buffer,r[a-l],i[a-l],t.position-(r[a]-r[a-l]),d),o=La.repeat(" ",e.indent)+n9((t.line-l+1).toString(),u)+" | "+c.str+` +`+o;for(c=t9(t.buffer,r[a],i[a],t.position,d),o+=La.repeat(" ",e.indent)+n9((t.line+1).toString(),u)+" | "+c.str+` +`,o+=La.repeat("-",e.indent+u+3+c.pos)+`^ +`,l=1;l<=e.linesAfter&&!(a+l>=i.length);l++)c=t9(t.buffer,r[a+l],i[a+l],t.position-(r[a]-r[a+l]),d),o+=La.repeat(" ",e.indent)+n9((t.line+l+1).toString(),u)+" | "+c.str+` +`;return o.replace(/\n$/,"")}z(HEe,"makeSnippet");var fHt=HEe,hHt=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],pHt=["scalar","sequence","mapping"];function WEe(t){var e={};return t!==null&&Object.keys(t).forEach(function(n){t[n].forEach(function(r){e[String(r)]=n})}),e}z(WEe,"compileStyleAliases");function VEe(t,e){if(e=e||{},Object.keys(e).forEach(function(n){if(hHt.indexOf(n)===-1)throw new Kl('Unknown option "'+n+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(n){return n},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=WEe(e.styleAliases||null),pHt.indexOf(this.kind)===-1)throw new Kl('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}z(VEe,"Type$1");var Bo=VEe;function fW(t,e){var n=[];return t[e].forEach(function(r){var i=n.length;n.forEach(function(s,a){s.tag===r.tag&&s.kind===r.kind&&s.multi===r.multi&&(i=a)}),n[i]=r}),n}z(fW,"compileList");function ZEe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,n;function r(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(z(r,"collectType"),e=0,n=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:z(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:z(function(t){return t.toString(10)},"decimal"),hexadecimal:z(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),kHt=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function a$e(t){return!(t===null||!kHt.test(t)||t[t.length-1]==="_")}z(a$e,"resolveYamlFloat");function o$e(t){var e,n;return e=t.replace(/_/g,"").toLowerCase(),n=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:n*parseFloat(e,10)}z(o$e,"constructYamlFloat");var SHt=/^[-+]?[0-9]+e/;function l$e(t,e){var n;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(La.isNegativeZero(t))return"-0.0";return n=t.toString(10),SHt.test(n)?n.replace("e",".e"):n}z(l$e,"representYamlFloat");function c$e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||La.isNegativeZero(t))}z(c$e,"isFloat");var CHt=new Bo("tag:yaml.org,2002:float",{kind:"scalar",resolve:a$e,construct:o$e,predicate:c$e,represent:l$e,defaultStyle:"lowercase"}),u$e=bHt.extend({implicit:[xHt,wHt,_Ht,CHt]}),EHt=u$e,d$e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),f$e=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function h$e(t){return t===null?!1:d$e.exec(t)!==null||f$e.exec(t)!==null}z(h$e,"resolveYamlTimestamp");function p$e(t){var e,n,r,i,s,a,o,l=0,c=null,u,d,f;if(e=d$e.exec(t),e===null&&(e=f$e.exec(t)),e===null)throw new Error("Date resolve error");if(n=+e[1],r=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(n,r,i));if(s=+e[4],a=+e[5],o=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],d=+(e[11]||0),c=(u*60+d)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(n,r,i,s,a,o,l)),c&&f.setTime(f.getTime()-c),f}z(p$e,"constructYamlTimestamp");function m$e(t){return t.toISOString()}z(m$e,"representYamlTimestamp");var $Ht=new Bo("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:h$e,construct:p$e,instanceOf:Date,represent:m$e});function g$e(t){return t==="<<"||t===null}z(g$e,"resolveYamlMerge");var THt=new Bo("tag:yaml.org,2002:merge",{kind:"scalar",resolve:g$e}),fY=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function v$e(t){if(t===null)return!1;var e,n,r=0,i=t.length,s=fY;for(n=0;n64)){if(e<0)return!1;r+=6}return r%8===0}z(v$e,"resolveYamlBinary");function y$e(t){var e,n,r=t.replace(/[\r\n=]/g,""),i=r.length,s=fY,a=0,o=[];for(e=0;e>16&255),o.push(a>>8&255),o.push(a&255)),a=a<<6|s.indexOf(r.charAt(e));return n=i%4*6,n===0?(o.push(a>>16&255),o.push(a>>8&255),o.push(a&255)):n===18?(o.push(a>>10&255),o.push(a>>2&255)):n===12&&o.push(a>>4&255),new Uint8Array(o)}z(y$e,"constructYamlBinary");function b$e(t){var e="",n=0,r,i,s=t.length,a=fY;for(r=0;r>18&63],e+=a[n>>12&63],e+=a[n>>6&63],e+=a[n&63]),n=(n<<8)+t[r];return i=s%3,i===0?(e+=a[n>>18&63],e+=a[n>>12&63],e+=a[n>>6&63],e+=a[n&63]):i===2?(e+=a[n>>10&63],e+=a[n>>4&63],e+=a[n<<2&63],e+=a[64]):i===1&&(e+=a[n>>2&63],e+=a[n<<4&63],e+=a[64],e+=a[64]),e}z(b$e,"representYamlBinary");function x$e(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}z(x$e,"isBinary");var IHt=new Bo("tag:yaml.org,2002:binary",{kind:"scalar",resolve:v$e,construct:y$e,predicate:x$e,represent:b$e}),AHt=Object.prototype.hasOwnProperty,OHt=Object.prototype.toString;function w$e(t){if(t===null)return!0;var e=[],n,r,i,s,a,o=t;for(n=0,r=o.length;n>10)+55296,(t-65536&1023)+56320)}z(R$e,"charFromCodepoint");var L$e=new Array(256),P$e=new Array(256);for(d1=0;d1<256;d1++)L$e[d1]=pW(d1)?1:0,P$e[d1]=pW(d1);var d1;function j$e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||$$e,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}z(j$e,"State$1");function hY(t,e){var n={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return n.snippet=fHt(n),new Kl(e,n)}z(hY,"generateError");function Nn(t,e){throw hY(t,e)}z(Nn,"throwError");function dw(t,e){t.onWarning&&t.onWarning.call(null,hY(t,e))}z(dw,"throwWarning");var H0e={YAML:z(function(e,n,r){var i,s,a;e.version!==null&&Nn(e,"duplication of %YAML directive"),r.length!==1&&Nn(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Nn(e,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),a=parseInt(i[2],10),s!==1&&Nn(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=a<2,a!==1&&a!==2&&dw(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:z(function(e,n,r){var i,s;r.length!==2&&Nn(e,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],A$e.test(i)||Nn(e,"ill-formed tag handle (first argument) of the TAG directive"),sm.call(e.tagMap,i)&&Nn(e,'there is a previously declared suffix for "'+i+'" tag handle'),O$e.test(s)||Nn(e,"ill-formed tag prefix (second argument) of the TAG directive");try{s=decodeURIComponent(s)}catch{Nn(e,"tag prefix is malformed: "+s)}e.tagMap[i]=s},"handleTagDirective")};function ip(t,e,n,r){var i,s,a,o;if(e1&&(t.result+=La.repeat(` +`,e-1))}z(KT,"writeFoldedLines");function z$e(t,e,n){var r,i,s,a,o,l,c,u,d=t.kind,f=t.result,h;if(h=t.input.charCodeAt(t.position),gl(h)||B1(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(i=t.input.charCodeAt(t.position+1),gl(i)||n&&B1(i)))return!1;for(t.kind="scalar",t.result="",s=a=t.position,o=!1;h!==0;){if(h===58){if(i=t.input.charCodeAt(t.position+1),gl(i)||n&&B1(i))break}else if(h===35){if(r=t.input.charCodeAt(t.position-1),gl(r))break}else{if(t.position===t.lineStart&&i_(t)||n&&B1(h))break;if(Nd(h))if(l=t.line,c=t.lineStart,u=t.lineIndent,ra(t,!1,-1),t.lineIndent>=e){o=!0,h=t.input.charCodeAt(t.position);continue}else{t.position=a,t.line=l,t.lineStart=c,t.lineIndent=u;break}}o&&(ip(t,s,a,!1),KT(t,t.line-l),s=a=t.position,o=!1),j0(h)||(a=t.position+1),h=t.input.charCodeAt(++t.position)}return ip(t,s,a,!1),t.result?!0:(t.kind=d,t.result=f,!1)}z(z$e,"readPlainScalar");function F$e(t,e){var n,r,i;if(n=t.input.charCodeAt(t.position),n!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(n=t.input.charCodeAt(t.position))!==0;)if(n===39)if(ip(t,r,t.position,!0),n=t.input.charCodeAt(++t.position),n===39)r=t.position,t.position++,i=t.position;else return!0;else Nd(n)?(ip(t,r,i,!0),KT(t,ra(t,!1,e)),r=i=t.position):t.position===t.lineStart&&i_(t)?Nn(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Nn(t,"unexpected end of the stream within a single quoted scalar")}z(F$e,"readSingleQuotedScalar");function B$e(t,e){var n,r,i,s,a,o;if(o=t.input.charCodeAt(t.position),o!==34)return!1;for(t.kind="scalar",t.result="",t.position++,n=r=t.position;(o=t.input.charCodeAt(t.position))!==0;){if(o===34)return ip(t,n,t.position,!0),t.position++,!0;if(o===92){if(ip(t,n,t.position,!0),o=t.input.charCodeAt(++t.position),Nd(o))ra(t,!1,e);else if(o<256&&L$e[o])t.result+=P$e[o],t.position++;else if((a=M$e(o))>0){for(i=a,s=0;i>0;i--)o=t.input.charCodeAt(++t.position),(a=D$e(o))>=0?s=(s<<4)+a:Nn(t,"expected hexadecimal character");t.result+=R$e(s),t.position++}else Nn(t,"unknown escape sequence");n=r=t.position}else Nd(o)?(ip(t,n,r,!0),KT(t,ra(t,!1,e)),n=r=t.position):t.position===t.lineStart&&i_(t)?Nn(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}Nn(t,"unexpected end of the stream within a double quoted scalar")}z(B$e,"readDoubleQuotedScalar");function U$e(t,e){var n=!0,r,i,s,a=t.tag,o,l=t.anchor,c,u,d,f,h,m=Object.create(null),p,v,x,w;if(w=t.input.charCodeAt(t.position),w===91)u=93,h=!1,o=[];else if(w===123)u=125,h=!0,o={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=o),w=t.input.charCodeAt(++t.position);w!==0;){if(ra(t,!0,e),w=t.input.charCodeAt(t.position),w===u)return t.position++,t.tag=a,t.anchor=l,t.kind=h?"mapping":"sequence",t.result=o,!0;n?w===44&&Nn(t,"expected the node content, but found ','"):Nn(t,"missed comma between flow collection entries"),v=p=x=null,d=f=!1,w===63&&(c=t.input.charCodeAt(t.position+1),gl(c)&&(d=f=!0,t.position++,ra(t,!0,e))),r=t.line,i=t.lineStart,s=t.position,Rg(t,e,eE,!1,!0),v=t.tag,p=t.result,ra(t,!0,e),w=t.input.charCodeAt(t.position),(f||t.line===r)&&w===58&&(d=!0,w=t.input.charCodeAt(++t.position),ra(t,!0,e),Rg(t,e,eE,!1,!0),x=t.result),h?U1(t,o,m,v,p,x,r,i,s):d?o.push(U1(t,null,m,v,p,x,r,i,s)):o.push(p),ra(t,!0,e),w=t.input.charCodeAt(t.position),w===44?(n=!0,w=t.input.charCodeAt(++t.position)):n=!1}Nn(t,"unexpected end of the stream within a flow collection")}z(U$e,"readFlowCollection");function q$e(t,e){var n,r,i=aj,s=!1,a=!1,o=e,l=0,c=!1,u,d;if(d=t.input.charCodeAt(t.position),d===124)r=!1;else if(d===62)r=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)aj===i?i=d===43?q0e:PHt:Nn(t,"repeat of a chomping mode identifier");else if((u=N$e(d))>=0)u===0?Nn(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?Nn(t,"repeat of an indentation width identifier"):(o=e+u-1,a=!0);else break;if(j0(d)){do d=t.input.charCodeAt(++t.position);while(j0(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!Nd(d)&&d!==0)}for(;d!==0;){for(GT(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!a||t.lineIndento&&(o=t.lineIndent),Nd(d)){l++;continue}if(t.lineIndente)&&l!==0)Nn(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(a=t.line,o=t.lineStart,l=t.position),Rg(t,e,tE,!0,i)&&(v?m=t.result:p=t.result),v||(U1(t,d,f,h,m,p,a,o,l),h=m=p=null),ra(t,!0,-1),w=t.input.charCodeAt(t.position)),(t.line===s||t.lineIndent>e)&&w!==0)Nn(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,f=t.implicitTypes.length;d"),t.result!==null&&m.kind!==t.kind&&Nn(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+m.kind+'", not "'+t.kind+'"'),m.resolve(t.result,t.tag)?(t.result=m.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Nn(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}z(Rg,"composeNode");function G$e(t){var e=t.position,n,r,i,s=!1,a;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(a=t.input.charCodeAt(t.position))!==0&&(ra(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||a!==37));){for(s=!0,a=t.input.charCodeAt(++t.position),n=t.position;a!==0&&!gl(a);)a=t.input.charCodeAt(++t.position);for(r=t.input.slice(n,t.position),i=[],r.length<1&&Nn(t,"directive name must not be less than one character in length");a!==0;){for(;j0(a);)a=t.input.charCodeAt(++t.position);if(a===35){do a=t.input.charCodeAt(++t.position);while(a!==0&&!Nd(a));break}if(Nd(a))break;for(n=t.position;a!==0&&!gl(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(n,t.position))}a!==0&>(t),sm.call(H0e,r)?H0e[r](t,r,i):dw(t,'unknown document directive "'+r+'"')}if(ra(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,ra(t,!0,-1)):s&&Nn(t,"directives end mark is expected"),Rg(t,t.lineIndent-1,tE,!1,!0),ra(t,!0,-1),t.checkLineBreaks&&zHt.test(t.input.slice(e,t.position))&&dw(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&i_(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,ra(t,!0,-1));return}if(t.position"u"&&(n=e,e=null);var r=pY(t,n);if(typeof e!="function")return r;for(var i=0,s=r.length;i=55296&&n<=56319&&e+1=56320&&r<=57343)?(n-55296)*1024+r-56320+65536:n}z(Uv,"codePointAt");function gY(t){var e=/^\n* /;return e.test(t)}z(gY,"needIndentIndicator");var cTe=1,wW=2,uTe=3,dTe=4,Sv=5;function fTe(t,e,n,r,i,s,a,o){var l,c=0,u=null,d=!1,f=!1,h=r!==-1,m=-1,p=oTe(Uv(t,0))&&lTe(Uv(t,t.length-1));if(e||a)for(l=0;l=65536?l+=2:l++){if(c=Uv(t,l),!Xy(c))return Sv;p=p&&xW(c,u,o),u=c}else{for(l=0;l=65536?l+=2:l++){if(c=Uv(t,l),c===fw)d=!0,h&&(f=f||l-m-1>r&&t[m+1]!==" ",m=l);else if(!Xy(c))return Sv;p=p&&xW(c,u,o),u=c}f=f||h&&l-m-1>r&&t[m+1]!==" "}return!d&&!f?p&&!a&&!i(t)?cTe:s===hw?Sv:wW:n>9&&gY(t)?Sv:a?s===hw?Sv:wW:f?dTe:uTe}z(fTe,"chooseScalarStyle");function hTe(t,e,n,r,i){t.dump=(function(){if(e.length===0)return t.quotingType===hw?'""':"''";if(!t.noCompatMode&&(aWt.indexOf(e)!==-1||oWt.test(e)))return t.quotingType===hw?'"'+e+'"':"'"+e+"'";var s=t.indent*Math.max(1,n),a=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-s),o=r||t.flowLevel>-1&&n>=t.flowLevel;function l(c){return aTe(t,c)}switch(z(l,"testAmbiguity"),fTe(e,o,t.indent,a,l,t.quotingType,t.forceQuotes&&!r,i)){case cTe:return e;case wW:return"'"+e.replace(/'/g,"''")+"'";case uTe:return"|"+_W(e,t.indent)+kW(yW(e,s));case dTe:return">"+_W(e,t.indent)+kW(yW(pTe(e,a),s));case Sv:return'"'+mTe(e)+'"';default:throw new Kl("impossible error: invalid scalar style")}})()}z(hTe,"writeScalar");function _W(t,e){var n=gY(t)?String(e):"",r=t[t.length-1]===` +`,i=r&&(t[t.length-2]===` +`||t===` +`),s=i?"+":r?"":"-";return n+s+` +`}z(_W,"blockHeader");function kW(t){return t[t.length-1]===` +`?t.slice(0,-1):t}z(kW,"dropEndingNewline");function pTe(t,e){for(var n=/(\n+)([^\n]*)/g,r=(function(){var c=t.indexOf(` +`);return c=c!==-1?c:t.length,n.lastIndex=c,SW(t.slice(0,c),e)})(),i=t[0]===` +`||t[0]===" ",s,a;a=n.exec(t);){var o=a[1],l=a[2];s=l[0]===" ",r+=o+(!i&&!s&&l!==""?` +`:"")+SW(l,e),i=s}return r}z(pTe,"foldString");function SW(t,e){if(t===""||t[0]===" ")return t;for(var n=/ [^ ]/g,r,i=0,s,a=0,o=0,l="";r=n.exec(t);)o=r.index,o-i>e&&(s=a>i?a:o,l+=` +`+t.slice(i,s),i=s+1),a=o;return l+=` +`,t.length-i>e&&a>i?l+=t.slice(i,a)+` +`+t.slice(a+1):l+=t.slice(i),l.slice(1)}z(SW,"foldLine");function mTe(t){for(var e="",n=0,r,i=0;i=65536?i+=2:i++)n=Uv(t,i),r=Yo[n],!r&&Xy(n)?(e+=t[i],n>=65536&&(e+=t[i+1])):e+=r||iTe(n);return e}z(mTe,"escapeString");function gTe(t,e,n){var r="",i=t.tag,s,a,o;for(s=0,a=n.length;s"u"&&qf(t,e,null,!1,!1))&&(r!==""&&(r+=","+(t.condenseFlow?"":" ")),r+=t.dump);t.tag=i,t.dump="["+r+"]"}z(gTe,"writeFlowSequence");function CW(t,e,n,r){var i="",s=t.tag,a,o,l;for(a=0,o=n.length;a"u"&&qf(t,e+1,null,!0,!0,!1,!0))&&((!r||i!=="")&&(i+=rE(t,e)),t.dump&&fw===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=s,t.dump=i||"[]"}z(CW,"writeBlockSequence");function vTe(t,e,n){var r="",i=t.tag,s=Object.keys(n),a,o,l,c,u;for(a=0,o=s.length;a1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),qf(t,e,c,!1,!1)&&(u+=t.dump,r+=u));t.tag=i,t.dump="{"+r+"}"}z(vTe,"writeFlowMapping");function yTe(t,e,n,r){var i="",s=t.tag,a=Object.keys(n),o,l,c,u,d,f;if(t.sortKeys===!0)a.sort();else if(typeof t.sortKeys=="function")a.sort(t.sortKeys);else if(t.sortKeys)throw new Kl("sortKeys must be a boolean or a function");for(o=0,l=a.length;o1024,d&&(t.dump&&fw===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,d&&(f+=rE(t,e)),qf(t,e+1,u,!0,d)&&(t.dump&&fw===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,i+=f));t.tag=s,t.dump=i||"{}"}z(yTe,"writeBlockMapping");function EW(t,e,n){var r,i,s,a,o,l;for(i=n?t.explicitTypes:t.implicitTypes,s=0,a=i.length;s tag resolver accepts not "'+l+'" style');t.dump=r}return!0}return!1}z(EW,"detectType");function qf(t,e,n,r,i,s,a){t.tag=null,t.dump=n,EW(t,n,!1)||EW(t,n,!0);var o=Y$e.call(t.dump),l=r,c;r&&(r=t.flowLevel<0||t.flowLevel>e);var u=o==="[object Object]"||o==="[object Array]",d,f;if(u&&(d=t.duplicates.indexOf(n),f=d!==-1),(t.tag!==null&&t.tag!=="?"||f||t.indent!==2&&e>0)&&(i=!1),f&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(u&&f&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),o==="[object Object]")r&&Object.keys(t.dump).length!==0?(yTe(t,e,t.dump,i),f&&(t.dump="&ref_"+d+t.dump)):(vTe(t,e,t.dump),f&&(t.dump="&ref_"+d+" "+t.dump));else if(o==="[object Array]")r&&t.dump.length!==0?(t.noArrayIndent&&!a&&e>0?CW(t,e-1,t.dump,i):CW(t,e,t.dump,i),f&&(t.dump="&ref_"+d+t.dump)):(gTe(t,e,t.dump),f&&(t.dump="&ref_"+d+" "+t.dump));else if(o==="[object String]")t.tag!=="?"&&hTe(t,t.dump,e,s,l);else{if(o==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Kl("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(c=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?c="!"+c:c.slice(0,18)==="tag:yaml.org,2002:"?c="!!"+c.slice(18):c="!<"+c+">",t.dump=c+" "+t.dump)}return!0}z(qf,"writeNode");function bTe(t,e){var n=[],r=[],i,s;for(iE(t,n,r),i=0,s=r.length;iArray.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),hWt=z(t=>({x:z(function(e,n,r){let i=0;const s=ws(r[0]).x=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(gu,t.arrowTypeEnd)){const{angle:h,deltaX:m}=E4(r[r.length-1],r[r.length-2]);i=gu[t.arrowTypeEnd]*Math.cos(h)*(m>=0?1:-1)}const a=Math.abs(ws(e).x-ws(r[r.length-1]).x),o=Math.abs(ws(e).y-ws(r[r.length-1]).y),l=Math.abs(ws(e).x-ws(r[0]).x),c=Math.abs(ws(e).y-ws(r[0]).y),u=gu[t.arrowTypeStart],d=gu[t.arrowTypeEnd],f=1;if(a0&&o0&&c=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(gu,t.arrowTypeEnd)){const{angle:h,deltaY:m}=E4(r[r.length-1],r[r.length-2]);i=gu[t.arrowTypeEnd]*Math.abs(Math.sin(h))*(m>=0?1:-1)}const a=Math.abs(ws(e).y-ws(r[r.length-1]).y),o=Math.abs(ws(e).x-ws(r[r.length-1]).x),l=Math.abs(ws(e).y-ws(r[0]).y),c=Math.abs(ws(e).x-ws(r[0]).x),u=gu[t.arrowTypeStart],d=gu[t.arrowTypeEnd],f=1;if(a0&&o0&&c{var i,s;const e=((i=t==null?void 0:t.subGraphTitleMargin)==null?void 0:i.top)??0,n=((s=t==null?void 0:t.subGraphTitleMargin)==null?void 0:s.bottom)??0,r=e+n;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:n,subGraphTitleTotalMargin:r}},"getSubGraphTitleMargins"),pWt=z(t=>{const{handDrawnSeed:e}=Mi();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),l5=z(t=>{const e=mWt([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),mWt=z(t=>{const e=new Map;return t.forEach(n=>{const[r,i]=n.split(":");e.set(r.trim(),i==null?void 0:i.trim())}),e},"styles2Map"),xTe=z(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),Cn=z(t=>{const{stylesArray:e}=l5(t),n=[],r=[],i=[],s=[];return e.forEach(a=>{const o=a[0];xTe(o)?n.push(a.join(":")+" !important"):(r.push(a.join(":")+" !important"),o.includes("stroke")&&i.push(a.join(":")+" !important"),o==="fill"&&s.push(a.join(":")+" !important"))}),{labelStyles:n.join(";"),nodeStyles:r.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:s}},"styles2String"),bn=z((t,e)=>{var l;const{themeVariables:n,handDrawnSeed:r}=Mi(),{nodeBorder:i,mainBkg:s}=n,{stylesMap:a}=l5(t);return Object.assign({roughness:.7,fill:a.get("fill")||s,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:a.get("stroke")||i,seed:r,strokeWidth:((l=a.get("stroke-width"))==null?void 0:l.replace("px",""))||1.3,fillLineDash:[0,0],strokeLineDash:gWt(a.get("stroke-dasharray"))},e)},"userNodeOverrides"),gWt=z(t=>{if(!t)return[0,0];const e=t.trim().split(/\s+/).map(Number);if(e.length===1){const i=isNaN(e[0])?0:e[0];return[i,i]}const n=isNaN(e[0])?0:e[0],r=isNaN(e[1])?0:e[1];return[n,r]},"getStrokeDashArray"),h3={},$a={},W0e;function vWt(){return W0e||(W0e=1,Object.defineProperty($a,"__esModule",{value:!0}),$a.BLANK_URL=$a.relativeFirstCharacters=$a.whitespaceEscapeCharsRegex=$a.urlSchemeRegex=$a.ctrlCharactersRegex=$a.htmlCtrlEntityRegex=$a.htmlEntitiesRegex=$a.invalidProtocolRegex=void 0,$a.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,$a.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,$a.htmlCtrlEntityRegex=/&(newline|tab);/gi,$a.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,$a.urlSchemeRegex=/^.+(:|:)/gim,$a.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,$a.relativeFirstCharacters=[".","/"],$a.BLANK_URL="about:blank"),$a}var V0e;function yWt(){if(V0e)return h3;V0e=1,Object.defineProperty(h3,"__esModule",{value:!0}),h3.sanitizeUrl=void 0;var t=vWt();function e(a){return t.relativeFirstCharacters.indexOf(a[0])>-1}function n(a){var o=a.replace(t.ctrlCharactersRegex,"");return o.replace(t.htmlEntitiesRegex,function(l,c){return String.fromCharCode(c)})}function r(a){return URL.canParse(a)}function i(a){try{return decodeURIComponent(a)}catch{return a}}function s(a){if(!a)return t.BLANK_URL;var o,l=i(a.trim());do l=n(l).replace(t.htmlCtrlEntityRegex,"").replace(t.ctrlCharactersRegex,"").replace(t.whitespaceEscapeCharsRegex,"").trim(),l=i(l),o=l.match(t.ctrlCharactersRegex)||l.match(t.htmlEntitiesRegex)||l.match(t.htmlCtrlEntityRegex)||l.match(t.whitespaceEscapeCharsRegex);while(o&&o.length>0);var c=l;if(!c)return t.BLANK_URL;if(e(c))return c;var u=c.trimStart(),d=u.match(t.urlSchemeRegex);if(!d)return c;var f=d[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(f))return t.BLANK_URL;var h=u.replace(/\\/g,"/");if(f==="mailto:"||f.includes("://"))return h;if(f==="http:"||f==="https:"){if(!r(h))return t.BLANK_URL;var m=new URL(h);return m.protocol=m.protocol.toLowerCase(),m.hostname=m.hostname.toLowerCase(),m.toString()}return h}return h3.sanitizeUrl=s,h3}var bWt=yWt(),wTe=typeof global=="object"&&global&&global.Object===Object&&global,xWt=typeof self=="object"&&self&&self.Object===Object&&self,th=wTe||xWt||Function("return this")(),sE=th.Symbol,_Te=Object.prototype,wWt=_Te.hasOwnProperty,_Wt=_Te.toString,p3=sE?sE.toStringTag:void 0;function kWt(t){var e=wWt.call(t,p3),n=t[p3];try{t[p3]=void 0;var r=!0}catch{}var i=_Wt.call(t);return r&&(e?t[p3]=n:delete t[p3]),i}var SWt=Object.prototype,CWt=SWt.toString;function EWt(t){return CWt.call(t)}var $Wt="[object Null]",TWt="[object Undefined]",Z0e=sE?sE.toStringTag:void 0;function c5(t){return t==null?t===void 0?TWt:$Wt:Z0e&&Z0e in Object(t)?kWt(t):EWt(t)}function p2(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var IWt="[object AsyncFunction]",AWt="[object Function]",OWt="[object GeneratorFunction]",DWt="[object Proxy]";function yY(t){if(!p2(t))return!1;var e=c5(t);return e==AWt||e==OWt||e==IWt||e==DWt}var oj=th["__core-js_shared__"],G0e=(function(){var t=/[^.]+$/.exec(oj&&oj.keys&&oj.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function MWt(t){return!!G0e&&G0e in t}var NWt=Function.prototype,RWt=NWt.toString;function m2(t){if(t!=null){try{return RWt.call(t)}catch{}try{return t+""}catch{}}return""}var LWt=/[\\^$.*+?()[\]{}|]/g,PWt=/^\[object .+?Constructor\]$/,jWt=Function.prototype,zWt=Object.prototype,FWt=jWt.toString,BWt=zWt.hasOwnProperty,UWt=RegExp("^"+FWt.call(BWt).replace(LWt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qWt(t){if(!p2(t)||MWt(t))return!1;var e=yY(t)?UWt:PWt;return e.test(m2(t))}function HWt(t,e){return t==null?void 0:t[e]}function g2(t,e){var n=HWt(t,e);return qWt(n)?n:void 0}var mw=g2(Object,"create");function WWt(){this.__data__=mw?mw(null):{},this.size=0}function VWt(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ZWt="__lodash_hash_undefined__",GWt=Object.prototype,KWt=GWt.hasOwnProperty;function YWt(t){var e=this.__data__;if(mw){var n=e[t];return n===ZWt?void 0:n}return KWt.call(e,t)?e[t]:void 0}var JWt=Object.prototype,XWt=JWt.hasOwnProperty;function QWt(t){var e=this.__data__;return mw?e[t]!==void 0:XWt.call(e,t)}var eVt="__lodash_hash_undefined__";function tVt(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=mw&&e===void 0?eVt:e,this}function Lg(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e-1}function lVt(t,e){var n=this.__data__,r=JT(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function Op(t){var e=-1,n=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=RVt}function eI(t){return t!=null&&$Te(t.length)&&!yY(t)}function LVt(t){return a_(t)&&eI(t)}function PVt(){return!1}var TTe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tme=TTe&&typeof module=="object"&&module&&!module.nodeType&&module,jVt=tme&&tme.exports===TTe,nme=jVt?th.Buffer:void 0,zVt=nme?nme.isBuffer:void 0,xY=zVt||PVt,FVt="[object Object]",BVt=Function.prototype,UVt=Object.prototype,ITe=BVt.toString,qVt=UVt.hasOwnProperty,HVt=ITe.call(Object);function WVt(t){if(!a_(t)||c5(t)!=FVt)return!1;var e=CTe(t);if(e===null)return!0;var n=qVt.call(e,"constructor")&&e.constructor;return typeof n=="function"&&n instanceof n&&ITe.call(n)==HVt}var VVt="[object Arguments]",ZVt="[object Array]",GVt="[object Boolean]",KVt="[object Date]",YVt="[object Error]",JVt="[object Function]",XVt="[object Map]",QVt="[object Number]",eZt="[object Object]",tZt="[object RegExp]",nZt="[object Set]",rZt="[object String]",iZt="[object WeakMap]",sZt="[object ArrayBuffer]",aZt="[object DataView]",oZt="[object Float32Array]",lZt="[object Float64Array]",cZt="[object Int8Array]",uZt="[object Int16Array]",dZt="[object Int32Array]",fZt="[object Uint8Array]",hZt="[object Uint8ClampedArray]",pZt="[object Uint16Array]",mZt="[object Uint32Array]",ds={};ds[oZt]=ds[lZt]=ds[cZt]=ds[uZt]=ds[dZt]=ds[fZt]=ds[hZt]=ds[pZt]=ds[mZt]=!0;ds[VVt]=ds[ZVt]=ds[sZt]=ds[GVt]=ds[aZt]=ds[KVt]=ds[YVt]=ds[JVt]=ds[XVt]=ds[QVt]=ds[eZt]=ds[tZt]=ds[nZt]=ds[rZt]=ds[iZt]=!1;function gZt(t){return a_(t)&&$Te(t.length)&&!!ds[c5(t)]}function vZt(t){return function(e){return t(e)}}var ATe=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hx=ATe&&typeof module=="object"&&module&&!module.nodeType&&module,yZt=hx&&hx.exports===ATe,lj=yZt&&wTe.process,rme=(function(){try{var t=hx&&hx.require&&hx.require("util").types;return t||lj&&lj.binding&&lj.binding("util")}catch{}})(),ime=rme&&rme.isTypedArray,wY=ime?vZt(ime):gZt;function TW(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var bZt=Object.prototype,xZt=bZt.hasOwnProperty;function wZt(t,e,n){var r=t[e];(!(xZt.call(t,e)&&YT(r,n))||n===void 0&&!(e in t))&&bY(t,e,n)}function _Zt(t,e,n,r){var i=!n;n||(n={});for(var s=-1,a=e.length;++s-1&&t%1==0&&t0){if(++e>=zZt)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var qZt=UZt(jZt);function HZt(t,e){return qZt(LZt(t,e,NTe),t+"")}function WZt(t,e,n){if(!p2(n))return!1;var r=typeof e;return(r=="number"?eI(n)&&OTe(e,n.length):r=="string"&&e in n)?YT(n[e],t):!1}function VZt(t){return HZt(function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(s=t.length>3&&typeof s=="function"?(i--,s):void 0,a&&WZt(n[0],n[1],a)&&(s=i<3?void 0:s,i=1),e=Object(e);++ro.args);jC(a),r=Ra(r,[...a])}else r=n.args;if(!r)return;let i=WK(t,e);const s="config";return r[s]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),r[i]=r[s],delete r[s]),r},"detectInit"),RTe=z(function(t,e=null){var n,r;try{const i=new RegExp(`[%]{2}(?![{]${YZt.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),mt.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let s;const a=[];for(;(s=dx.exec(t))!==null;)if(s.index===dx.lastIndex&&dx.lastIndex++,s&&!e||e&&((n=s[1])!=null&&n.match(e))||e&&((r=s[2])!=null&&r.match(e))){const o=s[1]?s[1]:s[2],l=s[3]?s[3].trim():s[4]?JSON.parse(s[4].trim()):null;a.push({type:o,args:l})}return a.length===0?{type:t,args:null}:a.length===1?a[0]:a}catch(i){return mt.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),XZt=z(function(t){return t.replace(dx,"")},"removeDirectives"),QZt=z(function(t,e){for(const[n,r]of e.entries())if(r.match(t))return n;return-1},"isSubstringInArray");function _Y(t,e){if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return KZt[n]??e}z(_Y,"interpolateToCurve");function LTe(t,e){const n=t.trim();if(n)return e.securityLevel!=="loose"?bWt.sanitizeUrl(n):n}z(LTe,"formatUrl");var eGt=z((t,...e)=>{const n=t.split("."),r=n.length-1,i=n[r];let s=window;for(let a=0;a{n+=kY(i,e),e=i});const r=n/2;return SY(t,r)}z(PTe,"traverseEdge");function jTe(t){return t.length===1?t[0]:PTe(t)}z(jTe,"calcLabelPosition");var ame=z((t,e=2)=>{const n=Math.pow(10,e);return Math.round(t*n)/n},"roundNumber"),SY=z((t,e)=>{let n,r=e;for(const i of t){if(n){const s=kY(i,n);if(s===0)return n;if(s=1)return{x:i.x,y:i.y};if(a>0&&a<1)return{x:ame((1-a)*n.x+a*i.x,5),y:ame((1-a)*n.y+a*i.y,5)}}}n=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),tGt=z((t,e,n)=>{mt.info(`our points ${JSON.stringify(e)}`),e[0]!==n&&(e=e.reverse());const i=SY(e,25),s=t?10:5,a=Math.atan2(e[0].y-i.y,e[0].x-i.x),o={x:0,y:0};return o.x=Math.sin(a)*s+(e[0].x+i.x)/2,o.y=-Math.cos(a)*s+(e[0].y+i.y)/2,o},"calcCardinalityPosition");function zTe(t,e,n){const r=structuredClone(n);mt.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const i=25+t,s=SY(r,i),a=10+t*.5,o=Math.atan2(r[0].y-s.y,r[0].x-s.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(o+Math.PI)*a+(r[0].x+s.x)/2,l.y=-Math.cos(o+Math.PI)*a+(r[0].y+s.y)/2):e==="end_right"?(l.x=Math.sin(o-Math.PI)*a+(r[0].x+s.x)/2-5,l.y=-Math.cos(o-Math.PI)*a+(r[0].y+s.y)/2-5):e==="end_left"?(l.x=Math.sin(o)*a+(r[0].x+s.x)/2-5,l.y=-Math.cos(o)*a+(r[0].y+s.y)/2-5):(l.x=Math.sin(o)*a+(r[0].x+s.x)/2,l.y=-Math.cos(o)*a+(r[0].y+s.y)/2),l}z(zTe,"calcTerminalLabelPosition");function FTe(t){let e="",n="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?n=n+r+";":e=e+r+";");return{style:e,labelStyle:n}}z(FTe,"getStylesFromArray");var ome=0,nGt=z(()=>(ome++,"id-"+Math.random().toString(36).substr(2,12)+"-"+ome),"generateId");function BTe(t){let e="";const n="0123456789abcdef",r=n.length;for(let i=0;iBTe(t.length),"random"),iGt=z(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),sGt=z(function(t,e){const n=e.text.replace(o5.lineBreakRegex," "),[,r]=tI(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",r),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);const s=i.append("tspan");return s.attr("x",e.x+e.textMargin*2),s.attr("fill",e.fill),s.text(n),i},"drawSimpleText"),aGt=s_((t,e,n)=>{if(!t||(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},n),o5.lineBreakRegex.test(t)))return t;const r=t.split(" ").filter(Boolean),i=[];let s="";return r.forEach((a,o)=>{const l=_p(`${a} `,n),c=_p(s,n);if(l>e){const{hyphenatedStrings:f,remainingWord:h}=oGt(a,e,"-",n);i.push(s,...f),s=h}else c+l>=e?(i.push(s),s=a):s=[s,a].filter(Boolean).join(" ");o+1===r.length&&i.push(s)}),i.filter(a=>a!=="").join(n.joinWith)},(t,e,n)=>`${t}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`),oGt=s_((t,e,n="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const i=[...t],s=[];let a="";return i.forEach((o,l)=>{const c=`${a}${o}`;if(_p(c,r)>=e){const d=l+1,f=i.length===d,h=`${c}${n}`;s.push(f?c:h),a=""}else a=c}),{hyphenatedStrings:s,remainingWord:a}},(t,e,n="-",r)=>`${t}${e}${n}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function UTe(t,e){return CY(t,e).height}z(UTe,"calculateTextHeight");function _p(t,e){return CY(t,e).width}z(_p,"calculateTextWidth");var CY=s_((t,e)=>{const{fontSize:n=12,fontFamily:r="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};const[,s]=tI(n),a=["sans-serif",r],o=t.split(o5.lineBreakRegex),l=[],c=ui("body");if(!c.remove)return{width:0,height:0,lineHeight:0};const u=c.append("svg");for(const f of a){let h=0;const m={width:0,height:0,lineHeight:0};for(const p of o){const v=iGt();v.text=p||GZt;const x=sGt(u,v).style("font-size",s).style("font-weight",i).style("font-family",f),w=(x._groups||x)[0][0].getBBox();if(w.width===0&&w.height===0)throw new Error("svg element not in render tree");m.width=Math.round(Math.max(m.width,w.width)),h=Math.round(w.height),m.height+=h,m.lineHeight=Math.round(Math.max(m.lineHeight,h))}l.push(m)}u.remove();const d=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),by,lGt=(by=class{constructor(e=!1,n){this.count=0,this.count=n?n.length:0,this.next=e?()=>this.count++:()=>Date.now()}},z(by,"InitIDGenerator"),by),IS,cGt=z(function(t){return IS=IS||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),IS.innerHTML=t,unescape(IS.textContent)},"entityDecode");function EY(t){return"str"in t}z(EY,"isDetailedError");var uGt=z((t,e,n,r)=>{var s;if(!r)return;const i=(s=t.node())==null?void 0:s.getBBox();i&&t.append("text").text(r).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-n).attr("class",e)},"insertTitle"),tI=z(t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");function $Y(t,e){return ZZt({},t,e)}z($Y,"cleanAndMerge");var Ed={assignWithDepth:Ra,wrapLabel:aGt,calculateTextHeight:UTe,calculateTextWidth:_p,calculateTextDimensions:CY,cleanAndMerge:$Y,detectInit:JZt,detectDirective:RTe,isSubstringInArray:QZt,interpolateToCurve:_Y,calcLabelPosition:jTe,calcCardinalityPosition:tGt,calcTerminalLabelPosition:zTe,formatUrl:LTe,getStylesFromArray:FTe,generateId:nGt,random:rGt,runFunc:eGt,entityDecode:cGt,insertTitle:uGt,isLabelCoordinateInPath:qTe,parseFontSize:tI,InitIDGenerator:lGt},dGt=z(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(n){return n.substring(0,n.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(n){return n.substring(0,n.length-1)}),e=e.replace(/#\w+;/g,function(n){const r=n.substring(1,n.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},"encodeEntities"),v2=z(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),N$n=z((t,e,{counter:n=0,prefix:r,suffix:i},s)=>s||`${r?`${r}_`:""}${t}_${e}_${n}${i?`_${i}`:""}`,"getEdgeId");function Uo(t){return t??null}z(Uo,"handleUndefinedAttr");function qTe(t,e){const n=Math.round(t.x),r=Math.round(t.y),i=e.replace(/(\d+\.\d+)/g,s=>Math.round(parseFloat(s)).toString());return i.includes(n.toString())||i.includes(r.toString())}z(qTe,"isLabelCoordinateInPath");const fGt=Object.freeze({left:0,top:0,width:16,height:16}),cE=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),HTe=Object.freeze({...fGt,...cE}),hGt=Object.freeze({...HTe,body:"",hidden:!1}),pGt=Object.freeze({width:null,height:null}),mGt=Object.freeze({...pGt,...cE}),gGt=(t,e,n,r="")=>{const i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;r=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){const o=i.pop(),l=i.pop(),c={provider:i.length>0?i[0]:r,prefix:l,name:o};return cj(c)?c:null}const s=i[0],a=s.split("-");if(a.length>1){const o={provider:r,prefix:a.shift(),name:a.join("-")};return cj(o)?o:null}if(n&&r===""){const o={provider:r,prefix:"",name:s};return cj(o,n)?o:null}return null},cj=(t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1;function vGt(t,e){const n={};!t.hFlip!=!e.hFlip&&(n.hFlip=!0),!t.vFlip!=!e.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(e.rotate||0))%4;return r&&(n.rotate=r),n}function lme(t,e){const n=vGt(t,e);for(const r in hGt)r in cE?r in t&&!(r in n)&&(n[r]=cE[r]):r in e?n[r]=e[r]:r in t&&(n[r]=t[r]);return n}function yGt(t,e){const n=t.icons,r=t.aliases||Object.create(null),i=Object.create(null);function s(a){if(n[a])return i[a]=[];if(!(a in i)){i[a]=null;const o=r[a]&&r[a].parent,l=o&&s(o);l&&(i[a]=[o].concat(l))}return i[a]}return(e||Object.keys(n).concat(Object.keys(r))).forEach(s),i}function cme(t,e,n){const r=t.icons,i=t.aliases||Object.create(null);let s={};function a(o){s=lme(r[o]||i[o],s)}return a(e),n.forEach(a),lme(t,s)}function bGt(t,e){if(t.icons[e])return cme(t,e,[]);const n=yGt(t,[e])[e];return n?cme(t,e,n):null}const xGt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,wGt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function ume(t,e,n){if(e===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*e*n)/n;if(typeof t!="string")return t;const r=t.split(xGt);if(r===null||!r.length)return t;const i=[];let s=r.shift(),a=wGt.test(s);for(;;){if(a){const o=parseFloat(s);isNaN(o)?i.push(s):i.push(Math.ceil(o*e*n)/n)}else i.push(s);if(s=r.shift(),s===void 0)return i.join("");a=!a}}function _Gt(t,e="defs"){let n="";const r=t.indexOf("<"+e);for(;r>=0;){const i=t.indexOf(">",r),s=t.indexOf("",s);if(a===-1)break;n+=t.slice(i+1,s).trim(),t=t.slice(0,r).trim()+t.slice(a+1)}return{defs:n,content:t}}function kGt(t,e){return t?""+t+""+e:e}function SGt(t,e,n){const r=_Gt(t);return kGt(r.defs,e+r.content+n)}const CGt=t=>t==="unset"||t==="undefined"||t==="none";function EGt(t,e){const n={...HTe,...t},r={...mGt,...e},i={left:n.left,top:n.top,width:n.width,height:n.height};let s=n.body;[n,r].forEach(p=>{const v=[],x=p.hFlip,w=p.vFlip;let E=p.rotate;x?w?E+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):w&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let S;switch(E<0&&(E-=Math.floor(E/4)*4),E=E%4,E){case 1:S=i.height/2+i.top,v.unshift("rotate(90 "+S.toString()+" "+S.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:S=i.width/2+i.left,v.unshift("rotate(-90 "+S.toString()+" "+S.toString()+")");break}E%2===1&&(i.left!==i.top&&(S=i.left,i.left=i.top,i.top=S),i.width!==i.height&&(S=i.width,i.width=i.height,i.height=S)),v.length&&(s=SGt(s,'',""))});const a=r.width,o=r.height,l=i.width,c=i.height;let u,d;a===null?(d=o===null?"1em":o==="auto"?c:o,u=ume(d,l/c)):(u=a==="auto"?l:a,d=o===null?ume(u,c/l):o==="auto"?c:o);const f={},h=(p,v)=>{CGt(v)||(f[p]=v.toString())};h("width",u),h("height",d);const m=[i.left,i.top,l,c];return f.viewBox=m.join(" "),{attributes:f,viewBox:m,body:s}}const $Gt=/\sid="(\S+)"/g,TGt="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let IGt=0;function AGt(t,e=TGt){const n=[];let r;for(;r=$Gt.exec(t);)n.push(r[1]);if(!n.length)return t;const i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(s=>{const a=typeof e=="function"?e(s):e+(IGt++).toString(),o=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+o+')([")]|\\.[a-z])',"g"),"$1"+a+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}function OGt(t,e){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in e)n+=" "+r+'="'+e[r]+'"';return'"+t+""}function TY(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var y2=TY();function WTe(t){y2=t}var px={exec:()=>null};function Li(t,e=""){let n=typeof t=="string"?t:t.source;const r={replace:(i,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(vl.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,e)};return r}var vl={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},DGt=/^(?:[ \t]*(?:\n|$))+/,MGt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,NGt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,o_=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,RGt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,IY=/(?:[*+-]|\d{1,9}[.)])/,VTe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ZTe=Li(VTe).replace(/bull/g,IY).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),LGt=Li(VTe).replace(/bull/g,IY).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),AY=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,PGt=/^[^\n]+/,OY=/(?!\s*\])(?:\\.|[^\[\]\\])+/,jGt=Li(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",OY).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),zGt=Li(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,IY).getRegex(),nI="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|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",DY=/|$))/,FGt=Li("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",DY).replace("tag",nI).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),GTe=Li(AY).replace("hr",o_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",nI).getRegex(),BGt=Li(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",GTe).getRegex(),MY={blockquote:BGt,code:MGt,def:jGt,fences:NGt,heading:RGt,hr:o_,html:FGt,lheading:ZTe,list:zGt,newline:DGt,paragraph:GTe,table:px,text:PGt},dme=Li("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",o_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",nI).getRegex(),UGt={...MY,lheading:LGt,table:dme,paragraph:Li(AY).replace("hr",o_).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",dme).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",nI).getRegex()},qGt={...MY,html:Li(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",DY).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:px,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Li(AY).replace("hr",o_).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",ZTe).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},HGt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,WGt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,KTe=/^( {2,}|\\)\n(?!\s*$)/,VGt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,XTe=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,JGt=Li(XTe,"u").replace(/punct/g,rI).getRegex(),XGt=Li(XTe,"u").replace(/punct/g,JTe).getRegex(),QTe="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",QGt=Li(QTe,"gu").replace(/notPunctSpace/g,YTe).replace(/punctSpace/g,NY).replace(/punct/g,rI).getRegex(),eKt=Li(QTe,"gu").replace(/notPunctSpace/g,KGt).replace(/punctSpace/g,GGt).replace(/punct/g,JTe).getRegex(),tKt=Li("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,YTe).replace(/punctSpace/g,NY).replace(/punct/g,rI).getRegex(),nKt=Li(/\\(punct)/,"gu").replace(/punct/g,rI).getRegex(),rKt=Li(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),iKt=Li(DY).replace("(?:-->|$)","-->").getRegex(),sKt=Li("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",iKt).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),uE=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,aKt=Li(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",uE).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),eIe=Li(/^!?\[(label)\]\[(ref)\]/).replace("label",uE).replace("ref",OY).getRegex(),tIe=Li(/^!?\[(ref)\](?:\[\])?/).replace("ref",OY).getRegex(),oKt=Li("reflink|nolink(?!\\()","g").replace("reflink",eIe).replace("nolink",tIe).getRegex(),RY={_backpedal:px,anyPunctuation:nKt,autolink:rKt,blockSkip:YGt,br:KTe,code:WGt,del:px,emStrongLDelim:JGt,emStrongRDelimAst:QGt,emStrongRDelimUnd:tKt,escape:HGt,link:aKt,nolink:tIe,punctuation:ZGt,reflink:eIe,reflinkSearch:oKt,tag:sKt,text:VGt,url:px},lKt={...RY,link:Li(/^!?\[(label)\]\((.*?)\)/).replace("label",uE).getRegex(),reflink:Li(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",uE).getRegex()},IW={...RY,emStrongRDelimAst:eKt,emStrongLDelim:XGt,url:Li(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},fme=t=>uKt[t];function sf(t,e){if(e){if(vl.escapeTest.test(t))return t.replace(vl.escapeReplace,fme)}else if(vl.escapeTestNoEncode.test(t))return t.replace(vl.escapeReplaceNoEncode,fme);return t}function hme(t){try{t=encodeURI(t).replace(vl.percentDecode,"%")}catch{return null}return t}function pme(t,e){var s;const n=t.replace(vl.findPipe,(a,o,l)=>{let c=!1,u=o;for(;--u>=0&&l[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(vl.splitPipe);let i=0;if(r[0].trim()||r.shift(),r.length>0&&!((s=r.at(-1))!=null&&s.trim())&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length0?-2:-1}function mme(t,e,n,r,i){const s=e.href,a=e.title||null,o=t[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;const l={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,l}function fKt(t,e,n){const r=t.match(n.other.indentCodeCompensation);if(r===null)return e;const i=r[1];return e.split(` +`).map(s=>{const a=s.match(n.other.beginningSpace);if(a===null)return s;const[o]=a;return o.length>=i.length?s.slice(i.length):s}).join(` +`)}var dE=class{constructor(t){Wt(this,"options");Wt(this,"rules");Wt(this,"lexer");this.options=t||y2}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const n=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:g3(n,` +`)}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const n=e[0],r=fKt(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){const r=g3(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:g3(e[0],` +`)}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){let n=g3(e[0],` +`).split(` +`),r="",i="";const s=[];for(;n.length>0;){let a=!1;const o=[];let l;for(l=0;l1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");const s=this.rules.other.listItemRegex(n);let a=!1;for(;t;){let l=!1,c="",u="";if(!(e=s.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let d=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,x=>" ".repeat(3*x.length)),f=t.split(` +`,1)[0],h=!d.trim(),m=0;if(this.options.pedantic?(m=2,u=d.trimStart()):h?m=e[1].length+1:(m=e[2].search(this.rules.other.nonSpaceChar),m=m>4?1:m,u=d.slice(m),m+=e[1].length),h&&this.rules.other.blankLine.test(f)&&(c+=f+` +`,t=t.substring(f.length+1),l=!0),!l){const x=this.rules.other.nextBulletRegex(m),w=this.rules.other.hrRegex(m),E=this.rules.other.fencesBeginRegex(m),S=this.rules.other.headingBeginRegex(m),_=this.rules.other.htmlBeginRegex(m);for(;t;){const C=t.split(` +`,1)[0];let T;if(f=C,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),T=f):T=f.replace(this.rules.other.tabCharGlobal," "),E.test(f)||S.test(f)||_.test(f)||x.test(f)||w.test(f))break;if(T.search(this.rules.other.nonSpaceChar)>=m||!f.trim())u+=` +`+T.slice(m);else{if(h||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||E.test(d)||S.test(d)||w.test(d))break;u+=` +`+f}!h&&!f.trim()&&(h=!0),c+=C+` +`,t=t.substring(C.length+1),d=T.slice(m)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0));let p=null,v;this.options.gfm&&(p=this.rules.other.listIsTask.exec(u),p&&(v=p[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:c,task:!!p,checked:v,loose:!1,text:u,tokens:[]}),i.raw+=c}const o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l=0;ld.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=u}if(i.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:s.align[c]})));return s}}lheading(t){const e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){const e=this.rules.block.paragraph.exec(t);if(e){const n=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){const e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){const e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){const e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;const s=g3(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{const s=dKt(e[2],"()");if(s===-2)return;if(s>-1){const o=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,o).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){const s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),mme(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){const r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[r.toLowerCase()];if(!i){const s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return mme(n,i,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const s=[...r[0]].length-1;let a,o,l=s,c=0;const u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);(r=u.exec(e))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){l+=o;continue}else if((r[5]||r[6])&&s%3&&!((s+o)%3)){c+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+c);const d=[...r[0]][0].length,f=t.slice(0,s+r.index+d+o);if(Math.min(s,o)%2){const m=f.slice(1,-1);return{type:"em",raw:f,text:m,tokens:this.lexer.inlineTokens(m)}}const h=f.slice(2,-2);return{type:"strong",raw:f,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," ");const r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){const e=this.rules.inline.autolink.exec(t);if(e){let n,r;return e[2]==="@"?(n=e[1],r="mailto:"+n):(n=e[1],r=n),{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(t){var n;let e;if(e=this.rules.inline.url.exec(t)){let r,i;if(e[2]==="@")r=e[0],i="mailto:"+r;else{let s;do s=e[0],e[0]=((n=this.rules.inline._backpedal.exec(e[0]))==null?void 0:n[0])??"";while(s!==e[0]);r=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t){const e=this.rules.inline.text.exec(t);if(e){const n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},Vh=class AW{constructor(e){Wt(this,"tokens");Wt(this,"options");Wt(this,"state");Wt(this,"tokenizer");Wt(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||y2,this.options.tokenizer=this.options.tokenizer||new dE,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={other:vl,block:AS.normal,inline:m3.normal};this.options.pedantic?(n.block=AS.pedantic,n.inline=m3.pedantic):this.options.gfm&&(n.block=AS.gfm,this.options.breaks?n.inline=m3.breaks:n.inline=m3.gfm),this.tokenizer.rules=n}static get rules(){return{block:AS,inline:m3}}static lex(e,n){return new AW(n).lex(e)}static lexInline(e,n){return new AW(n).inlineTokens(e)}lex(e){e=e.replace(vl.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let n=0;n(o=c.call({lexer:this},e,n))?(e=e.substring(o.raw.length),n.push(o),!0):!1))continue;if(o=this.tokenizer.space(e)){e=e.substring(o.raw.length);const c=n.at(-1);o.raw.length===1&&c!==void 0?c.raw+=` +`:n.push(o);continue}if(o=this.tokenizer.code(e)){e=e.substring(o.raw.length);const c=n.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=` +`+o.raw,c.text+=` +`+o.text,this.inlineQueue.at(-1).src=c.text):n.push(o);continue}if(o=this.tokenizer.fences(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.heading(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.hr(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.blockquote(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.list(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.html(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.def(e)){e=e.substring(o.raw.length);const c=n.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=` +`+o.raw,c.text+=` +`+o.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title});continue}if(o=this.tokenizer.table(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.lheading(e)){e=e.substring(o.raw.length),n.push(o);continue}let l=e;if((a=this.options.extensions)!=null&&a.startBlock){let c=1/0;const u=e.slice(1);let d;this.options.extensions.startBlock.forEach(f=>{d=f.call({lexer:this},u),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(l=e.substring(0,c+1))}if(this.state.top&&(o=this.tokenizer.paragraph(l))){const c=n.at(-1);r&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=` +`+o.raw,c.text+=` +`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(o),r=l.length!==e.length,e=e.substring(o.raw.length);continue}if(o=this.tokenizer.text(e)){e=e.substring(o.raw.length);const c=n.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=` +`+o.raw,c.text+=` +`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(o);continue}if(e){const c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){var o,l,c;let r=e,i=null;if(this.tokens.links){const u=Object.keys(this.tokens.links);if(u.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null;)u.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!=null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!=null;)r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let s=!1,a="";for(;e;){s||(a=""),s=!1;let u;if((l=(o=this.options.extensions)==null?void 0:o.inline)!=null&&l.some(f=>(u=f.call({lexer:this},e,n))?(e=e.substring(u.raw.length),n.push(u),!0):!1))continue;if(u=this.tokenizer.escape(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.tag(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.link(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(u.raw.length);const f=n.at(-1);u.type==="text"&&(f==null?void 0:f.type)==="text"?(f.raw+=u.raw,f.text+=u.text):n.push(u);continue}if(u=this.tokenizer.emStrong(e,r,a)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.codespan(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.br(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.del(e)){e=e.substring(u.raw.length),n.push(u);continue}if(u=this.tokenizer.autolink(e)){e=e.substring(u.raw.length),n.push(u);continue}if(!this.state.inLink&&(u=this.tokenizer.url(e))){e=e.substring(u.raw.length),n.push(u);continue}let d=e;if((c=this.options.extensions)!=null&&c.startInline){let f=1/0;const h=e.slice(1);let m;this.options.extensions.startInline.forEach(p=>{m=p.call({lexer:this},h),typeof m=="number"&&m>=0&&(f=Math.min(f,m))}),f<1/0&&f>=0&&(d=e.substring(0,f+1))}if(u=this.tokenizer.inlineText(d)){e=e.substring(u.raw.length),u.raw.slice(-1)!=="_"&&(a=u.raw.slice(-1)),s=!0;const f=n.at(-1);(f==null?void 0:f.type)==="text"?(f.raw+=u.raw,f.text+=u.text):n.push(u);continue}if(e){const f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return n}},fE=class{constructor(t){Wt(this,"options");Wt(this,"parser");this.options=t||y2}space(t){return""}code({text:t,lang:e,escaped:n}){var s;const r=(s=(e||"").match(vl.notSpaceStart))==null?void 0:s[0],i=t.replace(vl.endingNewline,"")+` +`;return r?'
'+(n?i:sf(i,!0))+`
+`:"
"+(n?i:sf(i,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){const e=t.ordered,n=t.start;let r="";for(let a=0;a +`+r+" +`}listitem(t){var n;let e="";if(t.task){const r=this.checkbox({checked:!!t.checked});t.loose?((n=t.tokens[0])==null?void 0:n.type)==="paragraph"?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=r+" "+sf(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" ",escaped:!0}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",n="";for(let i=0;i${r}`),` + +`+e+` +`+r+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){const e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${sf(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:n}){const r=this.parser.parseInline(n),i=hme(t);if(i===null)return r;t=i;let s='
    ",s}image({href:t,title:e,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));const i=hme(t);if(i===null)return sf(n);t=i;let s=`${n}{const l=a[o].flat(1/0);n=n.concat(this.walkTokens(l,e))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,e)))}}return n}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{const r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){const s=e.renderers[i.name];s?e.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const s=e[i.level];s?s.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),r.extensions=e),n.renderer){const i=this.defaults.renderer||new fE(this.defaults);for(const s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;const a=s,o=n.renderer[a],l=i[a];i[a]=(...c)=>{let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u||""}}r.renderer=i}if(n.tokenizer){const i=this.defaults.tokenizer||new dE(this.defaults);for(const s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;const a=s,o=n.tokenizer[a],l=i[a];i[a]=(...c)=>{let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.tokenizer=i}if(n.hooks){const i=this.defaults.hooks||new r9;for(const s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;const a=s,o=n.hooks[a],l=i[a];r9.passThroughHooks.has(s)?i[a]=c=>{if(this.defaults.async)return Promise.resolve(o.call(i,c)).then(d=>l.call(i,d));const u=o.call(i,c);return l.call(i,u)}:i[a]=(...c)=>{let u=o.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.hooks=i}if(n.walkTokens){const i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Vh.lex(t,e??this.defaults)}parser(t,e){return Zh.parse(t,e??this.defaults)}parseMarkdown(t){return(n,r)=>{const i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=t);const o=s.hooks?s.hooks.provideLexer():t?Vh.lex:Vh.lexInline,l=s.hooks?s.hooks.provideParser():t?Zh.parse:Zh.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(c=>o(c,s)).then(c=>s.hooks?s.hooks.processAllTokens(c):c).then(c=>s.walkTokens?Promise.all(this.walkTokens(c,s.walkTokens)).then(()=>c):c).then(c=>l(c,s)).then(c=>s.hooks?s.hooks.postprocess(c):c).catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let c=o(n,s);s.hooks&&(c=s.hooks.processAllTokens(c)),s.walkTokens&&this.walkTokens(c,s.walkTokens);let u=l(c,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(c){return a(c)}}}onError(t,e){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t){const r="

    An error occurred:

    "+sf(n.message+"",!0)+"
    ";return e?Promise.resolve(r):r}if(e)return Promise.reject(n);throw n}}},Pg=new hKt;function Ni(t,e){return Pg.parse(t,e)}Ni.options=Ni.setOptions=function(t){return Pg.setOptions(t),Ni.defaults=Pg.defaults,WTe(Ni.defaults),Ni};Ni.getDefaults=TY;Ni.defaults=y2;Ni.use=function(...t){return Pg.use(...t),Ni.defaults=Pg.defaults,WTe(Ni.defaults),Ni};Ni.walkTokens=function(t,e){return Pg.walkTokens(t,e)};Ni.parseInline=Pg.parseInline;Ni.Parser=Zh;Ni.parser=Zh.parse;Ni.Renderer=fE;Ni.TextRenderer=LY;Ni.Lexer=Vh;Ni.lexer=Vh.lex;Ni.Tokenizer=dE;Ni.Hooks=r9;Ni.parse=Ni;Ni.options;Ni.setOptions;Ni.use;Ni.walkTokens;Ni.parseInline;Zh.parse;Vh.lex;function nIe(t){for(var e=[],n=1;n?',height:80,width:80},DW=new Map,rIe=new Map,mKt=z(t=>{for(const e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(mt.debug("Registering icon pack:",e.name),"loader"in e)rIe.set(e.name,e.loader);else if("icons"in e)DW.set(e.name,e.icons);else throw mt.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),iIe=z(async(t,e)=>{const n=gGt(t,!0,e!==void 0);if(!n)throw new Error(`Invalid icon name: ${t}`);const r=n.prefix||e;if(!r)throw new Error(`Icon name must contain a prefix: ${t}`);let i=DW.get(r);if(!i){const a=rIe.get(r);if(!a)throw new Error(`Icon set not found: ${n.prefix}`);try{i={...await a(),prefix:r},DW.set(r,i)}catch(o){throw mt.error(o),new Error(`Failed to load icon set: ${n.prefix}`)}}const s=bGt(i,n.name);if(!s)throw new Error(`Icon not found: ${t}`);return s},"getRegisteredIconData"),gKt=z(async t=>{try{return await iIe(t),!0}catch{return!1}},"isIconAvailable"),l_=z(async(t,e,n)=>{let r;try{r=await iIe(t,e==null?void 0:e.fallbackPrefix)}catch(a){mt.error(a),r=pKt}const i=EGt(r,e),s=OGt(AGt(i.body),{...i.attributes,...n});return Ku(s,Fo())},"getIconSVG");function sIe(t,{markdownAutoWrap:e}){const r=t.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=nIe(r);return e===!1?i.replace(/ /g," "):i}z(sIe,"preprocessMarkdown");function aIe(t,e={}){const n=sIe(t,e),r=Ni.lexer(n),i=[[]];let s=0;function a(o,l="normal"){o.type==="text"?o.text.split(` +`).forEach((u,d)=>{d!==0&&(s++,i.push([])),u.split(" ").forEach(f=>{f=f.replace(/'/g,"'"),f&&i[s].push({content:f,type:l})})}):o.type==="strong"||o.type==="em"?o.tokens.forEach(c=>{a(c,o.type)}):o.type==="html"&&i[s].push({content:o.text,type:"normal"})}return z(a,"processNode"),r.forEach(o=>{var l;o.type==="paragraph"?(l=o.tokens)==null||l.forEach(c=>{a(c)}):o.type==="html"?i[s].push({content:o.text,type:"normal"}):i[s].push({content:o.raw,type:"normal"})}),i}z(aIe,"markdownToLines");function oIe(t,{markdownAutoWrap:e}={}){const n=Ni.lexer(t);function r(i){var s,a,o;return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${(s=i.tokens)==null?void 0:s.map(r).join("")}`:i.type==="em"?`${(a=i.tokens)==null?void 0:a.map(r).join("")}`:i.type==="paragraph"?`

    ${(o=i.tokens)==null?void 0:o.map(r).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:(mt.warn(`Unsupported markdown: ${i.type}`),i.raw)}return z(r,"output"),n.map(r).join("")}z(oIe,"markdownToHTML");function lIe(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}z(lIe,"splitTextToChars");function cIe(t,e){const n=lIe(e.content);return PY(t,[],n,e.type)}z(cIe,"splitWordToFitWidth");function PY(t,e,n,r){if(n.length===0)return[{content:e.join(""),type:r},{content:"",type:r}];const[i,...s]=n,a=[...e,i];return t([{content:a.join(""),type:r}])?PY(t,a,s,r):(e.length===0&&i&&(e.push(i),n.shift()),[{content:e.join(""),type:r},{content:n.join(""),type:r}])}z(PY,"splitWordToFitWidthRecursion");function uIe(t,e){if(t.some(({content:n})=>n.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return hE(t,e)}z(uIe,"splitLineToFitWidth");function hE(t,e,n=[],r=[]){if(t.length===0)return r.length>0&&n.push(r),n.length>0?n:[];let i="";t[0].content===" "&&(i=" ",t.shift());const s=t.shift()??{content:" ",type:"normal"},a=[...r];if(i!==""&&a.push({content:i,type:"normal"}),a.push(s),e(a))return hE(t,e,n,a);if(r.length>0)n.push(r),t.unshift(s);else if(s.content){const[o,l]=cIe(e,s);n.push([o]),l.content&&t.unshift(l)}return hE(t,e,n)}z(hE,"splitLineToFitWidthRecursion");function MW(t,e){e&&t.attr("style",e)}z(MW,"applyStyle");async function dIe(t,e,n,r,i=!1,s=Fo()){const a=t.append("foreignObject");a.attr("width",`${10*n}px`),a.attr("height",`${10*n}px`);const o=a.append("xhtml:div"),l=Gy(e.label)?await VK(e.label.replace(o5.lineBreakRegex,` +`),s):Ku(e.label,s),c=e.isNode?"nodeLabel":"edgeLabel",u=o.append("span");u.html(l),MW(u,e.labelStyle),u.attr("class",`${c} ${r}`),MW(o,e.labelStyle),o.style("display","table-cell"),o.style("white-space","nowrap"),o.style("line-height","1.5"),o.style("max-width",n+"px"),o.style("text-align","center"),o.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&o.attr("class","labelBkg");let d=o.node().getBoundingClientRect();return d.width===n&&(o.style("display","table"),o.style("white-space","break-spaces"),o.style("width",n+"px"),d=o.node().getBoundingClientRect()),a.node()}z(dIe,"addHtmlSpan");function iI(t,e,n){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*n-.1+"em").attr("dy",n+"em")}z(iI,"createTspan");function fIe(t,e,n){const r=t.append("text"),i=iI(r,1,e);sI(i,n);const s=i.node().getComputedTextLength();return r.remove(),s}z(fIe,"computeWidthOfText");function vKt(t,e,n){var a;const r=t.append("text"),i=iI(r,1,e);sI(i,[{content:n,type:"normal"}]);const s=(a=i.node())==null?void 0:a.getBoundingClientRect();return s&&r.remove(),s}z(vKt,"computeDimensionOfText");function hIe(t,e,n,r=!1){const s=e.append("g"),a=s.insert("rect").attr("class","background").attr("style","stroke: none"),o=s.append("text").attr("y","-10.1");let l=0;for(const c of n){const u=z(f=>fIe(s,1.1,f)<=t,"checkWidth"),d=u(c)?[c]:uIe(c,u);for(const f of d){const h=iI(o,l,1.1);sI(h,f),l++}}if(r){const c=o.node().getBBox(),u=2;return a.attr("x",c.x-u).attr("y",c.y-u).attr("width",c.width+2*u).attr("height",c.height+2*u),s.node()}else return o.node()}z(hIe,"createFormattedText");function sI(t,e){t.text(""),e.forEach((n,r)=>{const i=t.append("tspan").attr("font-style",n.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",n.type==="strong"?"bold":"normal");r===0?i.text(n.content):i.text(" "+n.content)})}z(sI,"updateTextContentAndStyles");async function pIe(t,e={}){const n=[];t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(i,s,a)=>(n.push((async()=>{const o=`${s}:${a}`;return await gKt(o)?await l_(o,void 0,{class:"label-icon"}):``})()),i));const r=await Promise.all(n);return t.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>r.shift()??"")}z(pIe,"replaceIconSubstring");var jm=z(async(t,e="",{style:n="",isTitle:r=!1,classes:i="",useHtmlLabels:s=!0,isNode:a=!0,width:o=200,addSvgBackground:l=!1}={},c)=>{if(mt.debug("XYZ createText",e,n,r,i,s,a,"addSvgBackground: ",l),s){const u=oIe(e,c),d=await pIe(v2(u),c),f=e.replace(/\\\\/g,"\\"),h={isNode:a,label:Gy(e)?f:d,labelStyle:n.replace("fill:","color:")};return await dIe(t,h,o,i,l,c)}else{const u=e.replace(//g,"
    "),d=aIe(u.replace("
    ","
    "),c),f=hIe(o,t,d,e?l:!1);if(a){/stroke:/.exec(n)&&(n=n.replace("stroke:","lineColor:"));const h=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ui(f).attr("style",h)}else{const h=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");ui(f).select("rect").attr("style",h.replace(/background:/g,"fill:"));const m=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ui(f).select("text").attr("style",m)}return f}},"createText");function uj(t,e,n){if(t&&t.length){const[r,i]=e,s=Math.PI/180*n,a=Math.cos(s),o=Math.sin(s);for(const l of t){const[c,u]=l;l[0]=(c-r)*a-(u-i)*o+r,l[1]=(c-r)*o+(u-i)*a+i}}}function yKt(t,e){return t[0]===e[0]&&t[1]===e[1]}function bKt(t,e,n,r=1){const i=n,s=Math.max(e,.1),a=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,o=[0,0];if(i)for(const c of a)uj(c,o,i);const l=(function(c,u,d){const f=[];for(const w of c){const E=[...w];yKt(E[0],E[E.length-1])||E.push([E[0][0],E[0][1]]),E.length>2&&f.push(E)}const h=[];u=Math.max(u,.1);const m=[];for(const w of f)for(let E=0;Ew.yminE.ymin?1:w.xE.x?1:w.ymax===E.ymax?0:(w.ymax-E.ymax)/Math.abs(w.ymax-E.ymax))),!m.length)return h;let p=[],v=m[0].ymin,x=0;for(;p.length||m.length;){if(m.length){let w=-1;for(let E=0;Ev);E++)w=E;m.splice(0,w+1).forEach((E=>{p.push({s:v,edge:E})}))}if(p=p.filter((w=>!(w.edge.ymax<=v))),p.sort(((w,E)=>w.edge.x===E.edge.x?0:(w.edge.x-E.edge.x)/Math.abs(w.edge.x-E.edge.x))),(d!==1||x%u==0)&&p.length>1)for(let w=0;w=p.length)break;const S=p[w].edge,_=p[E].edge;h.push([[Math.round(S.x),v],[Math.round(_.x),v]])}v+=d,p.forEach((w=>{w.edge.x=w.edge.x+d*w.edge.islope})),x++}return h})(a,s,r);if(i){for(const c of a)uj(c,o,-i);(function(c,u,d){const f=[];c.forEach((h=>f.push(...h))),uj(f,u,d)})(l,o,-i)}return l}function c_(t,e){var n;const r=e.hachureAngle+90;let i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let s=1;return e.roughness>=1&&(((n=e.randomizer)===null||n===void 0?void 0:n.next())||Math.random())>.7&&(s=i),bKt(t,i,r,s||1)}class jY{constructor(e){this.helper=e}fillPolygons(e,n){return this._fillPolygons(e,n)}_fillPolygons(e,n){const r=c_(e,n);return{type:"fillSketch",ops:this.renderLines(r,n)}}renderLines(e,n){const r=[];for(const i of e)r.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],n));return r}}function aI(t){const e=t[0],n=t[1];return Math.sqrt(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2))}let xKt=class extends jY{fillPolygons(e,n){let r=n.hachureGap;r<0&&(r=4*n.strokeWidth),r=Math.max(r,.1);const i=c_(e,Object.assign({},n,{hachureGap:r})),s=Math.PI/180*n.hachureAngle,a=[],o=.5*r*Math.cos(s),l=.5*r*Math.sin(s);for(const[c,u]of i)aI([c,u])&&a.push([[c[0]-o,c[1]+l],[...u]],[[c[0]+o,c[1]-l],[...u]]);return{type:"fillSketch",ops:this.renderLines(a,n)}}},wKt=class extends jY{fillPolygons(e,n){const r=this._fillPolygons(e,n),i=Object.assign({},n,{hachureAngle:n.hachureAngle+90}),s=this._fillPolygons(e,i);return r.ops=r.ops.concat(s.ops),r}};class _Kt{constructor(e){this.helper=e}fillPolygons(e,n){const r=c_(e,n=Object.assign({},n,{hachureAngle:0}));return this.dotsOnLines(r,n)}dotsOnLines(e,n){const r=[];let i=n.hachureGap;i<0&&(i=4*n.strokeWidth),i=Math.max(i,.1);let s=n.fillWeight;s<0&&(s=n.strokeWidth/2);const a=i/4;for(const o of e){const l=aI(o),c=l/i,u=Math.ceil(c)-1,d=l-u*i,f=(o[0][0]+o[1][0])/2-i/4,h=Math.min(o[0][1],o[1][1]);for(let m=0;m{const o=aI(a),l=Math.floor(o/(r+i)),c=(o+i-l*(r+i))/2;let u=a[0],d=a[1];u[0]>d[0]&&(u=a[1],d=a[0]);const f=Math.atan((d[1]-u[1])/(d[0]-u[0]));for(let h=0;h{const a=aI(s),o=Math.round(a/(2*n));let l=s[0],c=s[1];l[0]>c[0]&&(l=s[1],c=s[0]);const u=Math.atan((c[1]-l[1])/(c[0]-l[0]));for(let d=0;du%2?c+n:c+e));s.push({key:"C",data:l}),e=l[4],n=l[5];break}case"Q":s.push({key:"Q",data:[...o]}),e=o[2],n=o[3];break;case"q":{const l=o.map(((c,u)=>u%2?c+n:c+e));s.push({key:"Q",data:l}),e=l[2],n=l[3];break}case"A":s.push({key:"A",data:[...o]}),e=o[5],n=o[6];break;case"a":e+=o[5],n+=o[6],s.push({key:"A",data:[o[0],o[1],o[2],o[3],o[4],e,n]});break;case"H":s.push({key:"H",data:[...o]}),e=o[0];break;case"h":e+=o[0],s.push({key:"H",data:[e]});break;case"V":s.push({key:"V",data:[...o]}),n=o[0];break;case"v":n+=o[0],s.push({key:"V",data:[n]});break;case"S":s.push({key:"S",data:[...o]}),e=o[2],n=o[3];break;case"s":{const l=o.map(((c,u)=>u%2?c+n:c+e));s.push({key:"S",data:l}),e=l[2],n=l[3];break}case"T":s.push({key:"T",data:[...o]}),e=o[0],n=o[1];break;case"t":e+=o[0],n+=o[1],s.push({key:"T",data:[e,n]});break;case"Z":case"z":s.push({key:"Z",data:[]}),e=r,n=i}return s}function gIe(t){const e=[];let n="",r=0,i=0,s=0,a=0,o=0,l=0;for(const{key:c,data:u}of t){switch(c){case"M":e.push({key:"M",data:[...u]}),[r,i]=u,[s,a]=u;break;case"C":e.push({key:"C",data:[...u]}),r=u[4],i=u[5],o=u[2],l=u[3];break;case"L":e.push({key:"L",data:[...u]}),[r,i]=u;break;case"H":r=u[0],e.push({key:"L",data:[r,i]});break;case"V":i=u[0],e.push({key:"L",data:[r,i]});break;case"S":{let d=0,f=0;n==="C"||n==="S"?(d=r+(r-o),f=i+(i-l)):(d=r,f=i),e.push({key:"C",data:[d,f,...u]}),o=u[0],l=u[1],r=u[2],i=u[3];break}case"T":{const[d,f]=u;let h=0,m=0;n==="Q"||n==="T"?(h=r+(r-o),m=i+(i-l)):(h=r,m=i);const p=r+2*(h-r)/3,v=i+2*(m-i)/3,x=d+2*(h-d)/3,w=f+2*(m-f)/3;e.push({key:"C",data:[p,v,x,w,d,f]}),o=h,l=m,r=d,i=f;break}case"Q":{const[d,f,h,m]=u,p=r+2*(d-r)/3,v=i+2*(f-i)/3,x=h+2*(d-h)/3,w=m+2*(f-m)/3;e.push({key:"C",data:[p,v,x,w,h,m]}),o=d,l=f,r=h,i=m;break}case"A":{const d=Math.abs(u[0]),f=Math.abs(u[1]),h=u[2],m=u[3],p=u[4],v=u[5],x=u[6];d===0||f===0?(e.push({key:"C",data:[r,i,v,x,v,x]}),r=v,i=x):(r!==v||i!==x)&&(vIe(r,i,v,x,d,f,h,m,p).forEach((function(w){e.push({key:"C",data:w})})),r=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),r=s,i=a}n=c}return e}function v3(t,e,n){return[t*Math.cos(n)-e*Math.sin(n),t*Math.sin(n)+e*Math.cos(n)]}function vIe(t,e,n,r,i,s,a,o,l,c){const u=(d=a,Math.PI*d/180);var d;let f=[],h=0,m=0,p=0,v=0;if(c)[h,m,p,v]=c;else{[t,e]=v3(t,e,-u),[n,r]=v3(n,r,-u);const N=(t-n)/2,R=(e-r)/2;let q=N*N/(i*i)+R*R/(s*s);q>1&&(q=Math.sqrt(q),i*=q,s*=q);const W=i*i,G=s*s,U=W*G-W*R*R-G*N*N,J=W*R*R+G*N*N,F=(o===l?-1:1)*Math.sqrt(Math.abs(U/J));p=F*i*R/s+(t+n)/2,v=F*-s*N/i+(e+r)/2,h=Math.asin(parseFloat(((e-v)/s).toFixed(9))),m=Math.asin(parseFloat(((r-v)/s).toFixed(9))),tm&&(h-=2*Math.PI),!l&&m>h&&(m-=2*Math.PI)}let x=m-h;if(Math.abs(x)>120*Math.PI/180){const N=m,R=n,q=r;m=l&&m>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,f=vIe(n=p+i*Math.cos(m),r=v+s*Math.sin(m),R,q,i,s,a,0,l,[m,N,p,v])}x=m-h;const w=Math.cos(h),E=Math.sin(h),S=Math.cos(m),_=Math.sin(m),C=Math.tan(x/4),T=4/3*i*C,M=4/3*s*C,A=[t,e],$=[t+T*E,e-M*w],O=[n+T*_,r-M*S],D=[n,r];if($[0]=2*A[0]-$[0],$[1]=2*A[1]-$[1],c)return[$,O,D].concat(f);{f=[$,O,D].concat(f);const N=[];for(let R=0;R2){const i=[];for(let s=0;s2*Math.PI&&(h=0,m=2*Math.PI);const p=2*Math.PI/l.curveStepCount,v=Math.min(p/2,(m-h)/2),x=_me(v,c,u,d,f,h,m,1,l);if(!l.disableMultiStroke){const w=_me(v,c,u,d,f,h,m,1.5,l);x.push(...w)}return a&&(o?x.push(...am(c,u,c+d*Math.cos(h),u+f*Math.sin(h),l),...am(c,u,c+d*Math.cos(m),u+f*Math.sin(m),l)):x.push({op:"lineTo",data:[c,u]},{op:"lineTo",data:[c+d*Math.cos(h),u+f*Math.sin(h)]})),{type:"path",ops:x}}function bme(t,e){const n=gIe(mIe(zY(t))),r=[];let i=[0,0],s=[0,0];for(const{key:a,data:o}of n)switch(a){case"M":s=[o[0],o[1]],i=[o[0],o[1]];break;case"L":r.push(...am(s[0],s[1],o[0],o[1],e)),s=[o[0],o[1]];break;case"C":{const[l,c,u,d,f,h]=o;r.push(...IKt(l,c,u,d,f,h,s,e)),s=[f,h];break}case"Z":r.push(...am(s[0],s[1],i[0],i[1],e)),s=[i[0],i[1]]}return{type:"path",ops:r}}function hj(t,e){const n=[];for(const r of t)if(r.length){const i=e.maxRandomnessOffset||0,s=r.length;if(s>2){n.push({op:"move",data:[r[0][0]+or(i,e),r[0][1]+or(i,e)]});for(let a=1;a500?.4:-.0016668*l+1.233334;let u=i.maxRandomnessOffset||0;u*u*100>o&&(u=l/10);const d=u/2,f=.2+.2*xIe(i);let h=i.bowing*i.maxRandomnessOffset*(r-e)/200,m=i.bowing*i.maxRandomnessOffset*(t-n)/200;h=or(h,i,c),m=or(m,i,c);const p=[],v=()=>or(d,i,c),x=()=>or(u,i,c),w=i.preserveVertices;return a?p.push({op:"move",data:[t+(w?0:v()),e+(w?0:v())]}):p.push({op:"move",data:[t+(w?0:or(u,i,c)),e+(w?0:or(u,i,c))]}),a?p.push({op:"bcurveTo",data:[h+t+(n-t)*f+v(),m+e+(r-e)*f+v(),h+t+2*(n-t)*f+v(),m+e+2*(r-e)*f+v(),n+(w?0:v()),r+(w?0:v())]}):p.push({op:"bcurveTo",data:[h+t+(n-t)*f+x(),m+e+(r-e)*f+x(),h+t+2*(n-t)*f+x(),m+e+2*(r-e)*f+x(),n+(w?0:x()),r+(w?0:x())]}),p}function DS(t,e,n){if(!t.length)return[];const r=[];r.push([t[0][0]+or(e,n),t[0][1]+or(e,n)]),r.push([t[0][0]+or(e,n),t[0][1]+or(e,n)]);for(let i=1;i3){const s=[],a=1-n.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let o=1;o+21&&i.push(o)):i.push(o),i.push(t[e+3])}else{const l=t[e+0],c=t[e+1],u=t[e+2],d=t[e+3],f=_1(l,c,.5),h=_1(c,u,.5),m=_1(u,d,.5),p=_1(f,h,.5),v=_1(h,m,.5),x=_1(p,v,.5);LW([l,f,p,x],0,n,i),LW([x,v,m,d],0,n,i)}var s,a;return i}function OKt(t,e){return gE(t,0,t.length,e)}function gE(t,e,n,r,i){const s=i||[],a=t[e],o=t[n-1];let l=0,c=1;for(let u=e+1;ul&&(l=d,c=u)}return Math.sqrt(l)>r?(gE(t,e,c+1,r,s),gE(t,c,n,r,s)):(s.length||s.push(a),s.push(o)),s}function pj(t,e=.15,n){const r=[],i=(t.length-1)/3;for(let s=0;s0?gE(r,0,r.length,n):r}const Ec="none";let vE=class{constructor(e){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(e){return e?Object.assign({},this.defaultOptions,e):this.defaultOptions}_d(e,n,r){return{shape:e,sets:n||[],options:r||this.defaultOptions}}line(e,n,r,i,s){const a=this._o(s);return this._d("line",[yIe(e,n,r,i,a)],a)}rectangle(e,n,r,i,s){const a=this._o(s),o=[],l=TKt(e,n,r,i,a);if(a.fill){const c=[[e,n],[e+r,n],[e+r,n+i],[e,n+i]];a.fillStyle==="solid"?o.push(hj([c],a)):o.push(iv([c],a))}return a.stroke!==Ec&&o.push(l),this._d("rectangle",o,a)}ellipse(e,n,r,i,s){const a=this._o(s),o=[],l=bIe(r,i,a),c=NW(e,n,a,l);if(a.fill)if(a.fillStyle==="solid"){const u=NW(e,n,a,l).opset;u.type="fillPath",o.push(u)}else o.push(iv([c.estimatedPoints],a));return a.stroke!==Ec&&o.push(c.opset),this._d("ellipse",o,a)}circle(e,n,r,i){const s=this.ellipse(e,n,r,r,i);return s.shape="circle",s}linearPath(e,n){const r=this._o(n);return this._d("linearPath",[i9(e,!1,r)],r)}arc(e,n,r,i,s,a,o=!1,l){const c=this._o(l),u=[],d=yme(e,n,r,i,s,a,o,!0,c);if(o&&c.fill)if(c.fillStyle==="solid"){const f=Object.assign({},c);f.disableMultiStroke=!0;const h=yme(e,n,r,i,s,a,!0,!1,f);h.type="fillPath",u.push(h)}else u.push((function(f,h,m,p,v,x,w){const E=f,S=h;let _=Math.abs(m/2),C=Math.abs(p/2);_+=or(.01*_,w),C+=or(.01*C,w);let T=v,M=x;for(;T<0;)T+=2*Math.PI,M+=2*Math.PI;M-T>2*Math.PI&&(T=0,M=2*Math.PI);const A=(M-T)/w.curveStepCount,$=[];for(let O=T;O<=M;O+=A)$.push([E+_*Math.cos(O),S+C*Math.sin(O)]);return $.push([E+_*Math.cos(M),S+C*Math.sin(M)]),$.push([E,S]),iv([$],w)})(e,n,r,i,s,a,c));return c.stroke!==Ec&&u.push(d),this._d("arc",u,c)}curve(e,n){const r=this._o(n),i=[],s=vme(e,r);if(r.fill&&r.fill!==Ec)if(r.fillStyle==="solid"){const a=vme(e,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(a.ops)})}else{const a=[],o=e;if(o.length){const l=typeof o[0][0]=="number"?[o]:o;for(const c of l)c.length<3?a.push(...c):c.length===3?a.push(...pj(kme([c[0],c[0],c[1],c[2]]),10,(1+r.roughness)/2)):a.push(...pj(kme(c),10,(1+r.roughness)/2))}a.length&&i.push(iv([a],r))}return r.stroke!==Ec&&i.push(s),this._d("curve",i,r)}polygon(e,n){const r=this._o(n),i=[],s=i9(e,!0,r);return r.fill&&(r.fillStyle==="solid"?i.push(hj([e],r)):i.push(iv([e],r))),r.stroke!==Ec&&i.push(s),this._d("polygon",i,r)}path(e,n){const r=this._o(n),i=[];if(!e)return this._d("path",i,r);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const s=r.fill&&r.fill!=="transparent"&&r.fill!==Ec,a=r.stroke!==Ec,o=!!(r.simplification&&r.simplification<1),l=(function(u,d,f){const h=gIe(mIe(zY(u))),m=[];let p=[],v=[0,0],x=[];const w=()=>{x.length>=4&&p.push(...pj(x,d)),x=[]},E=()=>{w(),p.length&&(m.push(p),p=[])};for(const{key:_,data:C}of h)switch(_){case"M":E(),v=[C[0],C[1]],p.push(v);break;case"L":w(),p.push([C[0],C[1]]);break;case"C":if(!x.length){const T=p.length?p[p.length-1]:v;x.push([T[0],T[1]])}x.push([C[0],C[1]]),x.push([C[2],C[3]]),x.push([C[4],C[5]]);break;case"Z":w(),p.push([v[0],v[1]])}if(E(),!f)return m;const S=[];for(const _ of m){const C=OKt(_,f);C.length&&S.push(C)}return S})(e,1,o?4-4*(r.simplification||1):(1+r.roughness)/2),c=bme(e,r);if(s)if(r.fillStyle==="solid")if(l.length===1){const u=bme(e,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(u.ops)})}else i.push(hj(l,r));else i.push(iv(l,r));return a&&(o?l.forEach((u=>{i.push(i9(u,!1,r))})):i.push(c)),this._d("path",i,r)}opsToPath(e,n){let r="";for(const i of e.ops){const s=typeof n=="number"&&n>=0?i.data.map((a=>+a.toFixed(n))):i.data;switch(i.op){case"move":r+=`M${s[0]} ${s[1]} `;break;case"bcurveTo":r+=`C${s[0]} ${s[1]}, ${s[2]} ${s[3]}, ${s[4]} ${s[5]} `;break;case"lineTo":r+=`L${s[0]} ${s[1]} `}}return r.trim()}toPaths(e){const n=e.sets||[],r=e.options||this.defaultOptions,i=[];for(const s of n){let a=null;switch(s.type){case"path":a={d:this.opsToPath(s),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:Ec};break;case"fillPath":a={d:this.opsToPath(s),stroke:Ec,strokeWidth:0,fill:r.fill||Ec};break;case"fillSketch":a=this.fillSketch(s,r)}a&&i.push(a)}return i}fillSketch(e,n){let r=n.fillWeight;return r<0&&(r=n.strokeWidth/2),{d:this.opsToPath(e),stroke:n.fill||Ec,strokeWidth:r,fill:Ec}}_mergedShape(e){return e.filter(((n,r)=>r===0||n.op!=="move"))}},DKt=class{constructor(e,n){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new vE(n)}draw(e){const n=e.sets||[],r=e.options||this.getDefaultOptions(),i=this.ctx,s=e.options.fixedDecimalPlaceDigits;for(const a of n)switch(a.type){case"path":i.save(),i.strokeStyle=r.stroke==="none"?"transparent":r.stroke,i.lineWidth=r.strokeWidth,r.strokeLineDash&&i.setLineDash(r.strokeLineDash),r.strokeLineDashOffset&&(i.lineDashOffset=r.strokeLineDashOffset),this._drawToContext(i,a,s),i.restore();break;case"fillPath":{i.save(),i.fillStyle=r.fill||"";const o=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,a,s,o),i.restore();break}case"fillSketch":this.fillSketch(i,a,r)}}fillSketch(e,n,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2),e.save(),r.fillLineDash&&e.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(e.lineDashOffset=r.fillLineDashOffset),e.strokeStyle=r.fill||"",e.lineWidth=i,this._drawToContext(e,n,r.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,n,r,i="nonzero"){e.beginPath();for(const s of n.ops){const a=typeof r=="number"&&r>=0?s.data.map((o=>+o.toFixed(r))):s.data;switch(s.op){case"move":e.moveTo(a[0],a[1]);break;case"bcurveTo":e.bezierCurveTo(a[0],a[1],a[2],a[3],a[4],a[5]);break;case"lineTo":e.lineTo(a[0],a[1])}}n.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,n,r,i,s){const a=this.gen.line(e,n,r,i,s);return this.draw(a),a}rectangle(e,n,r,i,s){const a=this.gen.rectangle(e,n,r,i,s);return this.draw(a),a}ellipse(e,n,r,i,s){const a=this.gen.ellipse(e,n,r,i,s);return this.draw(a),a}circle(e,n,r,i){const s=this.gen.circle(e,n,r,i);return this.draw(s),s}linearPath(e,n){const r=this.gen.linearPath(e,n);return this.draw(r),r}polygon(e,n){const r=this.gen.polygon(e,n);return this.draw(r),r}arc(e,n,r,i,s,a,o=!1,l){const c=this.gen.arc(e,n,r,i,s,a,o,l);return this.draw(c),c}curve(e,n){const r=this.gen.curve(e,n);return this.draw(r),r}path(e,n){const r=this.gen.path(e,n);return this.draw(r),r}};const MS="http://www.w3.org/2000/svg";let MKt=class{constructor(e,n){this.svg=e,this.gen=new vE(n)}draw(e){const n=e.sets||[],r=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,s=i.createElementNS(MS,"g"),a=e.options.fixedDecimalPlaceDigits;for(const o of n){let l=null;switch(o.type){case"path":l=i.createElementNS(MS,"path"),l.setAttribute("d",this.opsToPath(o,a)),l.setAttribute("stroke",r.stroke),l.setAttribute("stroke-width",r.strokeWidth+""),l.setAttribute("fill","none"),r.strokeLineDash&&l.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&l.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break;case"fillPath":l=i.createElementNS(MS,"path"),l.setAttribute("d",this.opsToPath(o,a)),l.setAttribute("stroke","none"),l.setAttribute("stroke-width","0"),l.setAttribute("fill",r.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||l.setAttribute("fill-rule","evenodd");break;case"fillSketch":l=this.fillSketch(i,o,r)}l&&s.appendChild(l)}return s}fillSketch(e,n,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);const s=e.createElementNS(MS,"path");return s.setAttribute("d",this.opsToPath(n,r.fixedDecimalPlaceDigits)),s.setAttribute("stroke",r.fill||""),s.setAttribute("stroke-width",i+""),s.setAttribute("fill","none"),r.fillLineDash&&s.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&s.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),s}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,n){return this.gen.opsToPath(e,n)}line(e,n,r,i,s){const a=this.gen.line(e,n,r,i,s);return this.draw(a)}rectangle(e,n,r,i,s){const a=this.gen.rectangle(e,n,r,i,s);return this.draw(a)}ellipse(e,n,r,i,s){const a=this.gen.ellipse(e,n,r,i,s);return this.draw(a)}circle(e,n,r,i){const s=this.gen.circle(e,n,r,i);return this.draw(s)}linearPath(e,n){const r=this.gen.linearPath(e,n);return this.draw(r)}polygon(e,n){const r=this.gen.polygon(e,n);return this.draw(r)}arc(e,n,r,i,s,a,o=!1,l){const c=this.gen.arc(e,n,r,i,s,a,o,l);return this.draw(c)}curve(e,n){const r=this.gen.curve(e,n);return this.draw(r)}path(e,n){const r=this.gen.path(e,n);return this.draw(r)}};var vn={canvas:(t,e)=>new DKt(t,e),svg:(t,e)=>new MKt(t,e),generator:t=>new vE(t),newSeed:()=>vE.newSeed()},Xn=z(async(t,e,n)=>{var d,f;let r;const i=e.useHtmlLabels||ja((d=Mi())==null?void 0:d.htmlLabels);n?r=n:r="node default";const s=t.insert("g").attr("class",r).attr("id",e.domId||e.id),a=s.insert("g").attr("class","label").attr("style",Uo(e.labelStyle));let o;e.label===void 0?o="":o=typeof e.label=="string"?e.label:e.label[0];const l=await jm(a,Ku(v2(o),Mi()),{useHtmlLabels:i,width:e.width||((f=Mi().flowchart)==null?void 0:f.wrappingWidth),cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img});let c=l.getBBox();const u=((e==null?void 0:e.padding)??0)/2;if(i){const h=l.children[0],m=ui(l),p=h.getElementsByTagName("img");if(p){const v=o.replace(/]*>/g,"").trim()==="";await Promise.all([...p].map(x=>new Promise(w=>{function E(){if(x.style.display="flex",x.style.flexDirection="column",v){const S=Mi().fontSize?Mi().fontSize:window.getComputedStyle(document.body).fontSize,_=5,[C=MCe.fontSize]=tI(S),T=C*_+"px";x.style.minWidth=T,x.style.maxWidth=T}else x.style.width="100%";w(x)}z(E,"setupImage"),setTimeout(()=>{x.complete&&E()}),x.addEventListener("error",E),x.addEventListener("load",E)})))}c=h.getBoundingClientRect(),m.attr("width",c.width),m.attr("height",c.height)}return i?a.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"):a.attr("transform","translate(0, "+-c.height/2+")"),e.centerLabel&&a.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),a.insert("rect",":first-child"),{shapeSvg:s,bbox:c,halfPadding:u,label:a}},"labelHelper"),mj=z(async(t,e,n)=>{var l,c,u,d,f,h;const r=n.useHtmlLabels||ja((c=(l=Mi())==null?void 0:l.flowchart)==null?void 0:c.htmlLabels),i=t.insert("g").attr("class","label").attr("style",n.labelStyle||""),s=await jm(i,Ku(v2(e),Mi()),{useHtmlLabels:r,width:n.width||((d=(u=Mi())==null?void 0:u.flowchart)==null?void 0:d.wrappingWidth),style:n.labelStyle,addSvgBackground:!!n.icon||!!n.img});let a=s.getBBox();const o=n.padding/2;if(ja((h=(f=Mi())==null?void 0:f.flowchart)==null?void 0:h.htmlLabels)){const m=s.children[0],p=ui(s);a=m.getBoundingClientRect(),p.attr("width",a.width),p.attr("height",a.height)}return r?i.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"):i.attr("transform","translate(0, "+-a.height/2+")"),n.centerLabel&&i.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:a,halfPadding:o,label:i}},"insertLabel"),Sn=z((t,e)=>{const n=e.node().getBBox();t.width=n.width,t.height=n.height},"updateNodeBounds"),Wn=z((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");function Qr(t){const e=t.map((n,r)=>`${r===0?"M":"L"}${n.x},${n.y}`);return e.push("Z"),e.join(" ")}z(Qr,"createPathFromPoints");function om(t,e,n,r,i,s){const a=[],l=n-t,c=r-e,u=l/s,d=2*Math.PI/u,f=e+c/2;for(let h=0;h<=50;h++){const m=h/50,p=t+m*l,v=f+i*Math.sin(d*(p-t));a.push({x:p,y:v})}return a}z(om,"generateFullSineWavePoints");function vw(t,e,n,r,i,s){const a=[],o=i*Math.PI/180,u=(s*Math.PI/180-o)/(r-1);for(let d=0;d{var n=t.x,r=t.y,i=e.x-n,s=e.y-r,a=t.width/2,o=t.height/2,l,c;return Math.abs(s)*a>Math.abs(i)*o?(s<0&&(o=-o),l=s===0?0:o*i/s,c=o):(i<0&&(a=-a),l=a,c=i===0?0:a*s/i),{x:n+l,y:r+c}},"intersectRect"),d5=NKt;function wIe(t,e){e&&t.attr("style",e)}z(wIe,"applyStyle");async function _Ie(t){const e=ui(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=e.append("xhtml:div"),r=Mi();let i=t.label;t.label&&Gy(t.label)&&(i=await VK(t.label.replace(o5.lineBreakRegex,` +`),r));const a='"+i+"";return n.html(Ku(a,r)),wIe(n,t.labelStyle),n.style("display","inline-block"),n.style("padding-right","1px"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}z(_Ie,"addHtmlLabel");var RKt=z(async(t,e,n,r)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),ja(Mi().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),mt.info("vertexText"+i);const s={isNode:r,label:v2(i).replace(/fa[blrs]?:fa-[\w-]+/g,o=>``),labelStyle:e&&e.replace("fill:","color:")};return await _Ie(s)}else{const s=document.createElementNS("http://www.w3.org/2000/svg","text");s.setAttribute("style",e.replace("color:","fill:"));let a=[];typeof i=="string"?a=i.split(/\\n|\n|/gi):Array.isArray(i)?a=i:a=[];for(const o of a){const l=document.createElementNS("http://www.w3.org/2000/svg","tspan");l.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),l.setAttribute("dy","1em"),l.setAttribute("x","0"),n?l.setAttribute("class","title-row"):l.setAttribute("class","row"),l.textContent=o.trim(),s.appendChild(l)}return s}},"createLabel"),q1=RKt,zm=z((t,e,n,r,i)=>["M",t+i,e,"H",t+n-i,"A",i,i,0,0,1,t+n,e+i,"V",e+r-i,"A",i,i,0,0,1,t+n-i,e+r,"H",t+i,"A",i,i,0,0,1,t,e+r-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD"),kIe=z(async(t,e)=>{mt.info("Creating subgraph rect for ",e.id,e);const n=Mi(),{themeVariables:r,handDrawnSeed:i}=n,{clusterBkg:s,clusterBorder:a}=r,{labelStyles:o,nodeStyles:l,borderStyles:c,backgroundStyles:u}=Cn(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),f=ja(n.flowchart.htmlLabels),h=d.insert("g").attr("class","cluster-label "),m=await jm(h,e.label,{style:e.labelStyle,useHtmlLabels:f,isNode:!0});let p=m.getBBox();if(ja(n.flowchart.htmlLabels)){const T=m.children[0],M=ui(m);p=T.getBoundingClientRect(),M.attr("width",p.width),M.attr("height",p.height)}const v=e.width<=p.width+e.padding?p.width+e.padding:e.width;e.width<=p.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;const x=e.height,w=e.x-v/2,E=e.y-x/2;mt.trace("Data ",e,JSON.stringify(e));let S;if(e.look==="handDrawn"){const T=vn.svg(d),M=bn(e,{roughness:.7,fill:s,stroke:a,fillWeight:3,seed:i}),A=T.path(zm(w,E,v,x,0),M);S=d.insert(()=>(mt.debug("Rough node insert CXC",A),A),":first-child"),S.select("path:nth-child(2)").attr("style",c.join(";")),S.select("path").attr("style",u.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",l).attr("rx",e.rx).attr("ry",e.ry).attr("x",w).attr("y",E).attr("width",v).attr("height",x);const{subGraphTitleTopMargin:_}=vY(n);if(h.attr("transform",`translate(${e.x-p.width/2}, ${e.y-e.height/2+_})`),o){const T=h.select("span");T&&T.attr("style",o)}const C=S.node().getBBox();return e.offsetX=0,e.width=C.width,e.height=C.height,e.offsetY=p.height-e.padding/2,e.intersect=function(T){return d5(e,T)},{cluster:d,labelBBox:p}},"rect"),LKt=z((t,e)=>{const n=t.insert("g").attr("class","note-cluster").attr("id",e.id),r=n.insert("rect",":first-child"),i=0*e.padding,s=i/2;r.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-s).attr("y",e.y-e.height/2-s).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");const a=r.node().getBBox();return e.width=a.width,e.height=a.height,e.intersect=function(o){return d5(e,o)},{cluster:n,labelBBox:{width:0,height:0}}},"noteGroup"),PKt=z(async(t,e)=>{const n=Mi(),{themeVariables:r,handDrawnSeed:i}=n,{altBackground:s,compositeBackground:a,compositeTitleBackground:o,nodeBorder:l}=r,c=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),u=c.insert("g",":first-child"),d=c.insert("g").attr("class","cluster-label");let f=c.append("rect");const h=d.node().appendChild(await q1(e.label,e.labelStyle,void 0,!0));let m=h.getBBox();if(ja(n.flowchart.htmlLabels)){const A=h.children[0],$=ui(h);m=A.getBoundingClientRect(),$.attr("width",m.width),$.attr("height",m.height)}const p=0*e.padding,v=p/2,x=(e.width<=m.width+e.padding?m.width+e.padding:e.width)+p;e.width<=m.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;const w=e.height+p,E=e.height+p-m.height-6,S=e.x-x/2,_=e.y-w/2;e.width=x;const C=e.y-e.height/2-v+m.height+2;let T;if(e.look==="handDrawn"){const A=e.cssClasses.includes("statediagram-cluster-alt"),$=vn.svg(c),O=e.rx||e.ry?$.path(zm(S,_,x,w,10),{roughness:.7,fill:o,fillStyle:"solid",stroke:l,seed:i}):$.rectangle(S,_,x,w,{seed:i});T=c.insert(()=>O,":first-child");const D=$.rectangle(S,C,x,E,{fill:A?s:a,fillStyle:A?"hachure":"solid",stroke:l,seed:i});T=c.insert(()=>O,":first-child"),f=c.insert(()=>D)}else T=u.insert("rect",":first-child"),T.attr("class","outer").attr("x",S).attr("y",_).attr("width",x).attr("height",w).attr("data-look",e.look),f.attr("class","inner").attr("x",S).attr("y",C).attr("width",x).attr("height",E);d.attr("transform",`translate(${e.x-m.width/2}, ${_+1-(ja(n.flowchart.htmlLabels)?0:3)})`);const M=T.node().getBBox();return e.height=M.height,e.offsetX=0,e.offsetY=m.height-e.padding/2,e.labelBBox=m,e.intersect=function(A){return d5(e,A)},{cluster:c,labelBBox:m}},"roundedWithTitle"),jKt=z(async(t,e)=>{mt.info("Creating subgraph rect for ",e.id,e);const n=Mi(),{themeVariables:r,handDrawnSeed:i}=n,{clusterBkg:s,clusterBorder:a}=r,{labelStyles:o,nodeStyles:l,borderStyles:c,backgroundStyles:u}=Cn(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),f=ja(n.flowchart.htmlLabels),h=d.insert("g").attr("class","cluster-label "),m=await jm(h,e.label,{style:e.labelStyle,useHtmlLabels:f,isNode:!0,width:e.width});let p=m.getBBox();if(ja(n.flowchart.htmlLabels)){const T=m.children[0],M=ui(m);p=T.getBoundingClientRect(),M.attr("width",p.width),M.attr("height",p.height)}const v=e.width<=p.width+e.padding?p.width+e.padding:e.width;e.width<=p.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;const x=e.height,w=e.x-v/2,E=e.y-x/2;mt.trace("Data ",e,JSON.stringify(e));let S;if(e.look==="handDrawn"){const T=vn.svg(d),M=bn(e,{roughness:.7,fill:s,stroke:a,fillWeight:4,seed:i}),A=T.path(zm(w,E,v,x,e.rx),M);S=d.insert(()=>(mt.debug("Rough node insert CXC",A),A),":first-child"),S.select("path:nth-child(2)").attr("style",c.join(";")),S.select("path").attr("style",u.join(";").replace("fill","stroke"))}else S=d.insert("rect",":first-child"),S.attr("style",l).attr("rx",e.rx).attr("ry",e.ry).attr("x",w).attr("y",E).attr("width",v).attr("height",x);const{subGraphTitleTopMargin:_}=vY(n);if(h.attr("transform",`translate(${e.x-p.width/2}, ${e.y-e.height/2+_})`),o){const T=h.select("span");T&&T.attr("style",o)}const C=S.node().getBBox();return e.offsetX=0,e.width=C.width,e.height=C.height,e.offsetY=p.height-e.padding/2,e.intersect=function(T){return d5(e,T)},{cluster:d,labelBBox:p}},"kanbanSection"),zKt=z((t,e)=>{const n=Mi(),{themeVariables:r,handDrawnSeed:i}=n,{nodeBorder:s}=r,a=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),o=a.insert("g",":first-child"),l=0*e.padding,c=e.width+l;e.diff=-e.padding;const u=e.height+l,d=e.x-c/2,f=e.y-u/2;e.width=c;let h;if(e.look==="handDrawn"){const v=vn.svg(a).rectangle(d,f,c,u,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:s,seed:i});h=a.insert(()=>v,":first-child")}else h=o.insert("rect",":first-child"),h.attr("class","divider").attr("x",d).attr("y",f).attr("width",c).attr("height",u).attr("data-look",e.look);const m=h.node().getBBox();return e.height=m.height,e.offsetX=0,e.offsetY=0,e.intersect=function(p){return d5(e,p)},{cluster:a,labelBBox:{}}},"divider"),FKt=kIe,BKt={rect:kIe,squareRect:FKt,roundedWithTitle:PKt,noteGroup:LKt,divider:zKt,kanbanSection:jKt},SIe=new Map,UKt=z(async(t,e)=>{const n=e.shape||"rect",r=await BKt[n](t,e);return SIe.set(e.id,r),r},"insertCluster"),U$n=z(()=>{SIe=new Map},"clear");function CIe(t,e){return t.intersect(e)}z(CIe,"intersectNode");var qKt=CIe;function EIe(t,e,n,r){var i=t.x,s=t.y,a=i-r.x,o=s-r.y,l=Math.sqrt(e*e*o*o+n*n*a*a),c=Math.abs(e*n*a/l);r.x0}z(PW,"sameSign");var WKt=IIe;function AIe(t,e,n){let r=t.x,i=t.y,s=[],a=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(u){a=Math.min(a,u.x),o=Math.min(o,u.y)}):(a=Math.min(a,e.x),o=Math.min(o,e.y));let l=r-t.width/2-a,c=i-t.height/2-o;for(let u=0;u1&&s.sort(function(u,d){let f=u.x-n.x,h=u.y-n.y,m=Math.sqrt(f*f+h*h),p=d.x-n.x,v=d.y-n.y,x=Math.sqrt(p*p+v*v);return mu,":first-child");return d.attr("class","anchor").attr("style",Uo(o)),Sn(e,d),e.intersect=function(f){return mt.info("Circle intersect",e,a,f),rn.circle(e,a,f)},s}z(OIe,"anchor");function jW(t,e,n,r,i,s,a){const l=(t+n)/2,c=(e+r)/2,u=Math.atan2(r-e,n-t),d=(n-t)/2,f=(r-e)/2,h=d/i,m=f/s,p=Math.sqrt(h**2+m**2);if(p>1)throw new Error("The given radii are too small to create an arc between the points.");const v=Math.sqrt(1-p**2),x=l+v*s*Math.sin(u)*(a?-1:1),w=c-v*i*Math.cos(u)*(a?-1:1),E=Math.atan2((e-w)/s,(t-x)/i);let _=Math.atan2((r-w)/s,(n-x)/i)-E;a&&_<0&&(_+=2*Math.PI),!a&&_>0&&(_-=2*Math.PI);const C=[];for(let T=0;T<20;T++){const M=T/19,A=E+M*_,$=x+i*Math.cos(A),O=w+s*Math.sin(A);C.push({x:$,y:O})}return C}z(jW,"generateArcPoints");async function DIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.width+e.padding+20,o=s.height+e.padding,l=o/2,c=l/(2.5+o/50),{cssStyles:u}=e,d=[{x:a/2,y:-o/2},{x:-a/2,y:-o/2},...jW(-a/2,-o/2,-a/2,o/2,c,l,!1),{x:a/2,y:o/2},...jW(a/2,o/2,a/2,-o/2,c,l,!0)],f=vn.svg(i),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=Qr(d),p=f.path(m,h),v=i.insert(()=>p,":first-child");return v.attr("class","basic label-container"),u&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",u),r&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",r),v.attr("transform",`translate(${c/2}, 0)`),Sn(e,v),e.intersect=function(x){return rn.polygon(e,d,x)},i}z(DIe,"bowTieRect");function Fm(t,e,n,r){return t.insert("polygon",":first-child").attr("points",r.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+n/2+")")}z(Fm,"insertPolygonShape");async function MIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.height+e.padding,o=12,l=s.width+e.padding+o,c=0,u=l,d=-a,f=0,h=[{x:c+o,y:d},{x:u,y:d},{x:u,y:f},{x:c,y:f},{x:c,y:d+o},{x:c+o,y:d}];let m;const{cssStyles:p}=e;if(e.look==="handDrawn"){const v=vn.svg(i),x=bn(e,{}),w=Qr(h),E=v.path(w,x);m=i.insert(()=>E,":first-child").attr("transform",`translate(${-l/2}, ${a/2})`),p&&m.attr("style",p)}else m=Fm(i,l,a,h);return r&&m.attr("style",r),Sn(e,m),e.intersect=function(v){return rn.polygon(e,h,v)},i}z(MIe,"card");function NIe(t,e){const{nodeStyles:n}=Cn(e);e.label="";const r=t.insert("g").attr("class",Wn(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,s=Math.max(28,e.width??0),a=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}],o=vn.svg(r),l=bn(e,{});e.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=Qr(a),u=o.path(c,l),d=r.insert(()=>u,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),n&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",n),e.width=28,e.height=28,e.intersect=function(f){return rn.polygon(e,a,f)},r}z(NIe,"choice");async function FY(t,e,n){const{labelStyles:r,nodeStyles:i}=Cn(e);e.labelStyle=r;const{shapeSvg:s,bbox:a,halfPadding:o}=await Xn(t,e,Wn(e)),l=(n==null?void 0:n.padding)??o,c=a.width/2+l;let u;const{cssStyles:d}=e;if(e.look==="handDrawn"){const f=vn.svg(s),h=bn(e,{}),m=f.circle(0,0,c*2,h);u=s.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",Uo(d))}else u=s.insert("circle",":first-child").attr("class","basic label-container").attr("style",i).attr("r",c).attr("cx",0).attr("cy",0);return Sn(e,u),e.calcIntersect=function(f,h){const m=f.width/2;return rn.circle(f,m,h)},e.intersect=function(f){return mt.info("Circle intersect",e,c,f),rn.circle(e,c,f)},s}z(FY,"circle");function RIe(t){const e=Math.cos(Math.PI/4),n=Math.sin(Math.PI/4),r=t*2,i={x:r/2*e,y:r/2*n},s={x:-(r/2)*e,y:r/2*n},a={x:-(r/2)*e,y:-(r/2)*n},o={x:r/2*e,y:-(r/2)*n};return`M ${s.x},${s.y} L ${o.x},${o.y} + M ${i.x},${i.y} L ${a.x},${a.y}`}z(RIe,"createLine");function LIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n,e.label="";const i=t.insert("g").attr("class",Wn(e)).attr("id",e.domId??e.id),s=Math.max(30,(e==null?void 0:e.width)??0),{cssStyles:a}=e,o=vn.svg(i),l=bn(e,{});e.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=o.circle(0,0,s*2,l),u=RIe(s),d=o.path(u,l),f=i.insert(()=>c,":first-child");return f.insert(()=>d),a&&e.look!=="handDrawn"&&f.selectAll("path").attr("style",a),r&&e.look!=="handDrawn"&&f.selectAll("path").attr("style",r),Sn(e,f),e.intersect=function(h){return mt.info("crossedCircle intersect",e,{radius:s,point:h}),rn.circle(e,s,h)},i}z(LIe,"crossedCircle");function Eh(t,e,n,r=100,i=0,s=180){const a=[],o=i*Math.PI/180,u=(s*Math.PI/180-o)/(r-1);for(let d=0;dE,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),u&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",u),r&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",r),S.attr("transform",`translate(${c}, 0)`),a.attr("transform",`translate(${-o/2+c-(s.x-(s.left??0))},${-l/2+(e.padding??0)/2-(s.y-(s.top??0))})`),Sn(e,S),e.intersect=function(_){return rn.polygon(e,f,_)},i}z(PIe,"curlyBraceLeft");function $h(t,e,n,r=100,i=0,s=180){const a=[],o=i*Math.PI/180,u=(s*Math.PI/180-o)/(r-1);for(let d=0;dE,":first-child").attr("stroke-opacity",0),S.insert(()=>x,":first-child"),S.attr("class","text"),u&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",u),r&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",r),S.attr("transform",`translate(${-c}, 0)`),a.attr("transform",`translate(${-o/2+(e.padding??0)/2-(s.x-(s.left??0))},${-l/2+(e.padding??0)/2-(s.y-(s.top??0))})`),Sn(e,S),e.intersect=function(_){return rn.polygon(e,f,_)},i}z(jIe,"curlyBraceRight");function ao(t,e,n,r=100,i=0,s=180){const a=[],o=i*Math.PI/180,u=(s*Math.PI/180-o)/(r-1);for(let d=0;dT,":first-child").attr("stroke-opacity",0),M.insert(()=>w,":first-child"),M.insert(()=>_,":first-child"),M.attr("class","text"),u&&e.look!=="handDrawn"&&M.selectAll("path").attr("style",u),r&&e.look!=="handDrawn"&&M.selectAll("path").attr("style",r),M.attr("transform",`translate(${c-c/4}, 0)`),a.attr("transform",`translate(${-o/2+(e.padding??0)/2-(s.x-(s.left??0))},${-l/2+(e.padding??0)/2-(s.y-(s.top??0))})`),Sn(e,M),e.intersect=function(A){return rn.polygon(e,h,A)},i}z(zIe,"curlyBraces");async function FIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=80,o=20,l=Math.max(a,(s.width+(e.padding??0)*2)*1.25,(e==null?void 0:e.width)??0),c=Math.max(o,s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),u=c/2,{cssStyles:d}=e,f=vn.svg(i),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=l,p=c,v=m-u,x=p/4,w=[{x:v,y:0},{x,y:0},{x:0,y:p/2},{x,y:p},{x:v,y:p},...vw(-v,-p/2,u,50,270,90)],E=Qr(w),S=f.path(E,h),_=i.insert(()=>S,":first-child");return _.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&_.selectChildren("path").attr("style",d),r&&e.look!=="handDrawn"&&_.selectChildren("path").attr("style",r),_.attr("transform",`translate(${-l/2}, ${-c/2})`),Sn(e,_),e.intersect=function(C){return rn.polygon(e,w,C)},i}z(FIe,"curvedTrapezoid");var ZKt=z((t,e,n,r,i,s)=>[`M${t},${e+s}`,`a${i},${s} 0,0,0 ${n},0`,`a${i},${s} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${s} 0,0,0 ${n},0`,`l0,${-r}`].join(" "),"createCylinderPathD"),GKt=z((t,e,n,r,i,s)=>[`M${t},${e+s}`,`M${t+n},${e+s}`,`a${i},${s} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${s} 0,0,0 ${n},0`,`l0,${-r}`].join(" "),"createOuterCylinderPathD"),KKt=z((t,e,n,r,i,s)=>[`M${t-n/2},${-r/2}`,`a${i},${s} 0,0,0 ${n},0`].join(" "),"createInnerCylinderPathD");async function BIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+e.padding,e.width??0),l=o/2,c=l/(2.5+o/50),u=Math.max(s.height+c+e.padding,e.height??0);let d;const{cssStyles:f}=e;if(e.look==="handDrawn"){const h=vn.svg(i),m=GKt(0,0,o,u,l,c),p=KKt(0,c,o,u,l,c),v=h.path(m,bn(e,{})),x=h.path(p,bn(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),f&&d.attr("style",f)}else{const h=ZKt(0,0,o,u,l,c);d=i.insert("path",":first-child").attr("d",h).attr("class","basic label-container").attr("style",Uo(f)).attr("style",r)}return d.attr("label-offset-y",c),d.attr("transform",`translate(${-o/2}, ${-(u/2+c)})`),Sn(e,d),a.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${-(s.height/2)+(e.padding??0)/1.5-(s.y-(s.top??0))})`),e.intersect=function(h){const m=rn.rect(e,h),p=m.x-(e.x??0);if(l!=0&&(Math.abs(p)<(e.width??0)/2||Math.abs(p)==(e.width??0)/2&&Math.abs(m.y-(e.y??0))>(e.height??0)/2-c)){let v=c*c*(1-p*p/(l*l));v>0&&(v=Math.sqrt(v)),v=c-v,h.y-(e.y??0)>0&&(v=-v),m.y+=v}return m},i}z(BIe,"cylinder");async function UIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=s.width+e.padding,l=s.height+e.padding,c=l*.2,u=-o/2,d=-l/2-c/2,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const p=[{x:u,y:d+c},{x:-u,y:d+c},{x:-u,y:-d},{x:u,y:-d},{x:u,y:d},{x:-u,y:d},{x:-u,y:d+c}],v=h.polygon(p.map(w=>[w.x,w.y]),m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",f),r&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",r),a.attr("transform",`translate(${u+(e.padding??0)/2-(s.x-(s.left??0))}, ${d+c+(e.padding??0)/2-(s.y-(s.top??0))})`),Sn(e,x),e.intersect=function(w){return rn.rect(e,w)},i}z(UIe,"dividedRectangle");async function qIe(t,e){var f,h;const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,halfPadding:a}=await Xn(t,e,Wn(e)),l=s.width/2+a+5,c=s.width/2+a;let u;const{cssStyles:d}=e;if(e.look==="handDrawn"){const m=vn.svg(i),p=bn(e,{roughness:.2,strokeWidth:2.5}),v=bn(e,{roughness:.2,strokeWidth:1.5}),x=m.circle(0,0,l*2,p),w=m.circle(0,0,c*2,v);u=i.insert("g",":first-child"),u.attr("class",Uo(e.cssClasses)).attr("style",Uo(d)),(f=u.node())==null||f.appendChild(x),(h=u.node())==null||h.appendChild(w)}else{u=i.insert("g",":first-child");const m=u.insert("circle",":first-child"),p=u.insert("circle");u.attr("class","basic label-container").attr("style",r),m.attr("class","outer-circle").attr("style",r).attr("r",l).attr("cx",0).attr("cy",0),p.attr("class","inner-circle").attr("style",r).attr("r",c).attr("cx",0).attr("cy",0)}return Sn(e,u),e.intersect=function(m){return mt.info("DoubleCircle intersect",e,l,m),rn.circle(e,l,m)},i}z(qIe,"doublecircle");function HIe(t,e,{config:{themeVariables:n}}){const{labelStyles:r,nodeStyles:i}=Cn(e);e.label="",e.labelStyle=r;const s=t.insert("g").attr("class",Wn(e)).attr("id",e.domId??e.id),a=7,{cssStyles:o}=e,l=vn.svg(s),{nodeBorder:c}=n,u=bn(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(u.roughness=0);const d=l.circle(0,0,a*2,u),f=s.insert(()=>d,":first-child");return f.selectAll("path").attr("style",`fill: ${c} !important;`),o&&o.length>0&&e.look!=="handDrawn"&&f.selectAll("path").attr("style",o),i&&e.look!=="handDrawn"&&f.selectAll("path").attr("style",i),Sn(e,f),e.intersect=function(h){return mt.info("filledCircle intersect",e,{radius:a,point:h}),rn.circle(e,a,h)},s}z(HIe,"filledCircle");async function WIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=s.width+(e.padding??0),l=o+s.height,c=o+s.height,u=[{x:0,y:-l},{x:c,y:-l},{x:c/2,y:0}],{cssStyles:d}=e,f=vn.svg(i),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=Qr(u),p=f.path(m,h),v=i.insert(()=>p,":first-child").attr("transform",`translate(${-l/2}, ${l/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),r&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",r),e.width=o,e.height=l,Sn(e,v),a.attr("transform",`translate(${-s.width/2-(s.x-(s.left??0))}, ${-l/2+(e.padding??0)/2+(s.y-(s.top??0))})`),e.intersect=function(x){return mt.info("Triangle intersect",e,u,x),rn.polygon(e,u,x)},i}z(WIe,"flippedTriangle");function VIe(t,e,{dir:n,config:{state:r,themeVariables:i}}){const{nodeStyles:s}=Cn(e);e.label="";const a=t.insert("g").attr("class",Wn(e)).attr("id",e.domId??e.id),{cssStyles:o}=e;let l=Math.max(70,(e==null?void 0:e.width)??0),c=Math.max(10,(e==null?void 0:e.height)??0);n==="LR"&&(l=Math.max(10,(e==null?void 0:e.width)??0),c=Math.max(70,(e==null?void 0:e.height)??0));const u=-1*l/2,d=-1*c/2,f=vn.svg(a),h=bn(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=f.rectangle(u,d,l,c,h),p=a.insert(()=>m,":first-child");o&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",o),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),Sn(e,p);const v=(r==null?void 0:r.padding)??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return rn.rect(e,x)},a}z(VIe,"forkJoin");async function ZIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const i=80,s=50,{shapeSvg:a,bbox:o}=await Xn(t,e,Wn(e)),l=Math.max(i,o.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),c=Math.max(s,o.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),u=c/2,{cssStyles:d}=e,f=vn.svg(a),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=[{x:-l/2,y:-c/2},{x:l/2-u,y:-c/2},...vw(-l/2+u,0,u,50,90,270),{x:l/2-u,y:c/2},{x:-l/2,y:c/2}],p=Qr(m),v=f.path(p,h),x=a.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),r&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",r),Sn(e,x),e.intersect=function(w){return mt.info("Pill intersect",e,{radius:u,point:w}),rn.polygon(e,m,w)},a}z(ZIe,"halfRoundedRectangle");async function GIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.height+(e.padding??0),o=s.width+(e.padding??0)*2.5,{cssStyles:l}=e,c=vn.svg(i),u=bn(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let d=o/2;const f=d/6;d=d+f;const h=a/2,m=h/2,p=d-m,v=[{x:-p,y:-h},{x:0,y:-h},{x:p,y:-h},{x:d,y:0},{x:p,y:h},{x:0,y:h},{x:-p,y:h},{x:-d,y:0}],x=Qr(v),w=c.path(x,u),E=i.insert(()=>w,":first-child");return E.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&E.selectChildren("path").attr("style",l),r&&e.look!=="handDrawn"&&E.selectChildren("path").attr("style",r),e.width=o,e.height=a,Sn(e,E),e.intersect=function(S){return rn.polygon(e,v,S)},i}z(GIe,"hexagon");async function KIe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.label="",e.labelStyle=n;const{shapeSvg:i}=await Xn(t,e,Wn(e)),s=Math.max(30,(e==null?void 0:e.width)??0),a=Math.max(30,(e==null?void 0:e.height)??0),{cssStyles:o}=e,l=vn.svg(i),c=bn(e,{});e.look!=="handDrawn"&&(c.roughness=0,c.fillStyle="solid");const u=[{x:0,y:0},{x:s,y:0},{x:0,y:a},{x:s,y:a}],d=Qr(u),f=l.path(d,c),h=i.insert(()=>f,":first-child");return h.attr("class","basic label-container"),o&&e.look!=="handDrawn"&&h.selectChildren("path").attr("style",o),r&&e.look!=="handDrawn"&&h.selectChildren("path").attr("style",r),h.attr("transform",`translate(${-s/2}, ${-a/2})`),Sn(e,h),e.intersect=function(m){return mt.info("Pill intersect",e,{points:u}),rn.polygon(e,u,m)},i}z(KIe,"hourglass");async function YIe(t,e,{config:{themeVariables:n,flowchart:r}}){const{labelStyles:i}=Cn(e);e.labelStyle=i;const s=e.assetHeight??48,a=e.assetWidth??48,o=Math.max(s,a),l=r==null?void 0:r.wrappingWidth;e.width=Math.max(o,l??0);const{shapeSvg:c,bbox:u,label:d}=await Xn(t,e,"icon-shape default"),f=e.pos==="t",h=o,m=o,{nodeBorder:p}=n,{stylesMap:v}=l5(e),x=-m/2,w=-h/2,E=e.label?8:0,S=vn.svg(c),_=bn(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");const C=S.rectangle(x,w,m,h,_),T=Math.max(m,u.width),M=h+u.height+E,A=S.rectangle(-T/2,-M/2,T,M,{..._,fill:"transparent",stroke:"none"}),$=c.insert(()=>C,":first-child"),O=c.insert(()=>A);if(e.icon){const D=c.append("g");D.html(`${await l_(e.icon,{height:o,width:o,fallbackPrefix:""})}`);const N=D.node().getBBox(),R=N.width,q=N.height,W=N.x,G=N.y;D.attr("transform",`translate(${-R/2-W},${f?u.height/2+E/2-q/2-G:-u.height/2-E/2-q/2-G})`),D.attr("style",`color: ${v.get("stroke")??p};`)}return d.attr("transform",`translate(${-u.width/2-(u.x-(u.left??0))},${f?-M/2:M/2-u.height})`),$.attr("transform",`translate(0,${f?u.height/2+E/2:-u.height/2-E/2})`),Sn(e,O),e.intersect=function(D){if(mt.info("iconSquare intersect",e,D),!e.label)return rn.rect(e,D);const N=e.x??0,R=e.y??0,q=e.height??0;let W=[];return f?W=[{x:N-u.width/2,y:R-q/2},{x:N+u.width/2,y:R-q/2},{x:N+u.width/2,y:R-q/2+u.height+E},{x:N+m/2,y:R-q/2+u.height+E},{x:N+m/2,y:R+q/2},{x:N-m/2,y:R+q/2},{x:N-m/2,y:R-q/2+u.height+E},{x:N-u.width/2,y:R-q/2+u.height+E}]:W=[{x:N-m/2,y:R-q/2},{x:N+m/2,y:R-q/2},{x:N+m/2,y:R-q/2+h},{x:N+u.width/2,y:R-q/2+h},{x:N+u.width/2/2,y:R+q/2},{x:N-u.width/2,y:R+q/2},{x:N-u.width/2,y:R-q/2+h},{x:N-m/2,y:R-q/2+h}],rn.polygon(e,W,D)},c}z(YIe,"icon");async function JIe(t,e,{config:{themeVariables:n,flowchart:r}}){const{labelStyles:i}=Cn(e);e.labelStyle=i;const s=e.assetHeight??48,a=e.assetWidth??48,o=Math.max(s,a),l=r==null?void 0:r.wrappingWidth;e.width=Math.max(o,l??0);const{shapeSvg:c,bbox:u,label:d}=await Xn(t,e,"icon-shape default"),f=20,h=e.label?8:0,m=e.pos==="t",{nodeBorder:p,mainBkg:v}=n,{stylesMap:x}=l5(e),w=vn.svg(c),E=bn(e,{});e.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");const S=x.get("fill");E.stroke=S??v;const _=c.append("g");e.icon&&_.html(`${await l_(e.icon,{height:o,width:o,fallbackPrefix:""})}`);const C=_.node().getBBox(),T=C.width,M=C.height,A=C.x,$=C.y,O=Math.max(T,M)*Math.SQRT2+f*2,D=w.circle(0,0,O,E),N=Math.max(O,u.width),R=O+u.height+h,q=w.rectangle(-N/2,-R/2,N,R,{...E,fill:"transparent",stroke:"none"}),W=c.insert(()=>D,":first-child"),G=c.insert(()=>q);return _.attr("transform",`translate(${-T/2-A},${m?u.height/2+h/2-M/2-$:-u.height/2-h/2-M/2-$})`),_.attr("style",`color: ${x.get("stroke")??p};`),d.attr("transform",`translate(${-u.width/2-(u.x-(u.left??0))},${m?-R/2:R/2-u.height})`),W.attr("transform",`translate(0,${m?u.height/2+h/2:-u.height/2-h/2})`),Sn(e,G),e.intersect=function(U){return mt.info("iconSquare intersect",e,U),rn.rect(e,U)},c}z(JIe,"iconCircle");async function XIe(t,e,{config:{themeVariables:n,flowchart:r}}){const{labelStyles:i}=Cn(e);e.labelStyle=i;const s=e.assetHeight??48,a=e.assetWidth??48,o=Math.max(s,a),l=r==null?void 0:r.wrappingWidth;e.width=Math.max(o,l??0);const{shapeSvg:c,bbox:u,halfPadding:d,label:f}=await Xn(t,e,"icon-shape default"),h=e.pos==="t",m=o+d*2,p=o+d*2,{nodeBorder:v,mainBkg:x}=n,{stylesMap:w}=l5(e),E=-p/2,S=-m/2,_=e.label?8:0,C=vn.svg(c),T=bn(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");const M=w.get("fill");T.stroke=M??x;const A=C.path(zm(E,S,p,m,5),T),$=Math.max(p,u.width),O=m+u.height+_,D=C.rectangle(-$/2,-O/2,$,O,{...T,fill:"transparent",stroke:"none"}),N=c.insert(()=>A,":first-child").attr("class","icon-shape2"),R=c.insert(()=>D);if(e.icon){const q=c.append("g");q.html(`${await l_(e.icon,{height:o,width:o,fallbackPrefix:""})}`);const W=q.node().getBBox(),G=W.width,U=W.height,J=W.x,F=W.y;q.attr("transform",`translate(${-G/2-J},${h?u.height/2+_/2-U/2-F:-u.height/2-_/2-U/2-F})`),q.attr("style",`color: ${w.get("stroke")??v};`)}return f.attr("transform",`translate(${-u.width/2-(u.x-(u.left??0))},${h?-O/2:O/2-u.height})`),N.attr("transform",`translate(0,${h?u.height/2+_/2:-u.height/2-_/2})`),Sn(e,R),e.intersect=function(q){if(mt.info("iconSquare intersect",e,q),!e.label)return rn.rect(e,q);const W=e.x??0,G=e.y??0,U=e.height??0;let J=[];return h?J=[{x:W-u.width/2,y:G-U/2},{x:W+u.width/2,y:G-U/2},{x:W+u.width/2,y:G-U/2+u.height+_},{x:W+p/2,y:G-U/2+u.height+_},{x:W+p/2,y:G+U/2},{x:W-p/2,y:G+U/2},{x:W-p/2,y:G-U/2+u.height+_},{x:W-u.width/2,y:G-U/2+u.height+_}]:J=[{x:W-p/2,y:G-U/2},{x:W+p/2,y:G-U/2},{x:W+p/2,y:G-U/2+m},{x:W+u.width/2,y:G-U/2+m},{x:W+u.width/2/2,y:G+U/2},{x:W-u.width/2,y:G+U/2},{x:W-u.width/2,y:G-U/2+m},{x:W-p/2,y:G-U/2+m}],rn.polygon(e,J,q)},c}z(XIe,"iconRounded");async function QIe(t,e,{config:{themeVariables:n,flowchart:r}}){const{labelStyles:i}=Cn(e);e.labelStyle=i;const s=e.assetHeight??48,a=e.assetWidth??48,o=Math.max(s,a),l=r==null?void 0:r.wrappingWidth;e.width=Math.max(o,l??0);const{shapeSvg:c,bbox:u,halfPadding:d,label:f}=await Xn(t,e,"icon-shape default"),h=e.pos==="t",m=o+d*2,p=o+d*2,{nodeBorder:v,mainBkg:x}=n,{stylesMap:w}=l5(e),E=-p/2,S=-m/2,_=e.label?8:0,C=vn.svg(c),T=bn(e,{});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");const M=w.get("fill");T.stroke=M??x;const A=C.path(zm(E,S,p,m,.1),T),$=Math.max(p,u.width),O=m+u.height+_,D=C.rectangle(-$/2,-O/2,$,O,{...T,fill:"transparent",stroke:"none"}),N=c.insert(()=>A,":first-child"),R=c.insert(()=>D);if(e.icon){const q=c.append("g");q.html(`${await l_(e.icon,{height:o,width:o,fallbackPrefix:""})}`);const W=q.node().getBBox(),G=W.width,U=W.height,J=W.x,F=W.y;q.attr("transform",`translate(${-G/2-J},${h?u.height/2+_/2-U/2-F:-u.height/2-_/2-U/2-F})`),q.attr("style",`color: ${w.get("stroke")??v};`)}return f.attr("transform",`translate(${-u.width/2-(u.x-(u.left??0))},${h?-O/2:O/2-u.height})`),N.attr("transform",`translate(0,${h?u.height/2+_/2:-u.height/2-_/2})`),Sn(e,R),e.intersect=function(q){if(mt.info("iconSquare intersect",e,q),!e.label)return rn.rect(e,q);const W=e.x??0,G=e.y??0,U=e.height??0;let J=[];return h?J=[{x:W-u.width/2,y:G-U/2},{x:W+u.width/2,y:G-U/2},{x:W+u.width/2,y:G-U/2+u.height+_},{x:W+p/2,y:G-U/2+u.height+_},{x:W+p/2,y:G+U/2},{x:W-p/2,y:G+U/2},{x:W-p/2,y:G-U/2+u.height+_},{x:W-u.width/2,y:G-U/2+u.height+_}]:J=[{x:W-p/2,y:G-U/2},{x:W+p/2,y:G-U/2},{x:W+p/2,y:G-U/2+m},{x:W+u.width/2,y:G-U/2+m},{x:W+u.width/2/2,y:G+U/2},{x:W-u.width/2,y:G+U/2},{x:W-u.width/2,y:G-U/2+m},{x:W-p/2,y:G-U/2+m}],rn.polygon(e,J,q)},c}z(QIe,"iconSquare");async function eAe(t,e,{config:{flowchart:n}}){const r=new Image;r.src=(e==null?void 0:e.img)??"",await r.decode();const i=Number(r.naturalWidth.toString().replace("px","")),s=Number(r.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/s;const{labelStyles:a}=Cn(e);e.labelStyle=a;const o=n==null?void 0:n.wrappingWidth;e.defaultWidth=n==null?void 0:n.wrappingWidth;const l=Math.max(e.label?o??0:0,(e==null?void 0:e.assetWidth)??i),c=e.constraint==="on"&&e!=null&&e.assetHeight?e.assetHeight*e.imageAspectRatio:l,u=e.constraint==="on"?c/e.imageAspectRatio:(e==null?void 0:e.assetHeight)??s;e.width=Math.max(c,o??0);const{shapeSvg:d,bbox:f,label:h}=await Xn(t,e,"image-shape default"),m=e.pos==="t",p=-c/2,v=-u/2,x=e.label?8:0,w=vn.svg(d),E=bn(e,{});e.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");const S=w.rectangle(p,v,c,u,E),_=Math.max(c,f.width),C=u+f.height+x,T=w.rectangle(-_/2,-C/2,_,C,{...E,fill:"none",stroke:"none"}),M=d.insert(()=>S,":first-child"),A=d.insert(()=>T);if(e.img){const $=d.append("image");$.attr("href",e.img),$.attr("width",c),$.attr("height",u),$.attr("preserveAspectRatio","none"),$.attr("transform",`translate(${-c/2},${m?C/2-u:-C/2})`)}return h.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-u/2-f.height/2-x/2:u/2-f.height/2+x/2})`),M.attr("transform",`translate(0,${m?f.height/2+x/2:-f.height/2-x/2})`),Sn(e,A),e.intersect=function($){if(mt.info("iconSquare intersect",e,$),!e.label)return rn.rect(e,$);const O=e.x??0,D=e.y??0,N=e.height??0;let R=[];return m?R=[{x:O-f.width/2,y:D-N/2},{x:O+f.width/2,y:D-N/2},{x:O+f.width/2,y:D-N/2+f.height+x},{x:O+c/2,y:D-N/2+f.height+x},{x:O+c/2,y:D+N/2},{x:O-c/2,y:D+N/2},{x:O-c/2,y:D-N/2+f.height+x},{x:O-f.width/2,y:D-N/2+f.height+x}]:R=[{x:O-c/2,y:D-N/2},{x:O+c/2,y:D-N/2},{x:O+c/2,y:D-N/2+u},{x:O+f.width/2,y:D-N/2+u},{x:O+f.width/2/2,y:D+N/2},{x:O-f.width/2,y:D+N/2},{x:O-f.width/2,y:D-N/2+u},{x:O-c/2,y:D-N/2+u}],rn.polygon(e,R,$)},d}z(eAe,"imageSquare");async function tAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),o=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),l=[{x:0,y:0},{x:a,y:0},{x:a+3*o/6,y:-o},{x:-3*o/6,y:-o}];let c;const{cssStyles:u}=e;if(e.look==="handDrawn"){const d=vn.svg(i),f=bn(e,{}),h=Qr(l),m=d.path(h,f);c=i.insert(()=>m,":first-child").attr("transform",`translate(${-a/2}, ${o/2})`),u&&c.attr("style",u)}else c=Fm(i,a,o,l);return r&&c.attr("style",r),e.width=a,e.height=o,Sn(e,c),e.intersect=function(d){return rn.polygon(e,l,d)},i}z(tAe,"inv_trapezoid");async function oI(t,e,n){const{labelStyles:r,nodeStyles:i}=Cn(e);e.labelStyle=r;const{shapeSvg:s,bbox:a}=await Xn(t,e,Wn(e)),o=Math.max(a.width+n.labelPaddingX*2,(e==null?void 0:e.width)||0),l=Math.max(a.height+n.labelPaddingY*2,(e==null?void 0:e.height)||0),c=-o/2,u=-l/2;let d,{rx:f,ry:h}=e;const{cssStyles:m}=e;if(n!=null&&n.rx&&n.ry&&(f=n.rx,h=n.ry),e.look==="handDrawn"){const p=vn.svg(s),v=bn(e,{}),x=f||h?p.path(zm(c,u,o,l,f||0),v):p.rectangle(c,u,o,l,v);d=s.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Uo(m))}else d=s.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Uo(f)).attr("ry",Uo(h)).attr("x",c).attr("y",u).attr("width",o).attr("height",l);return Sn(e,d),e.calcIntersect=function(p,v){return rn.rect(p,v)},e.intersect=function(p){return rn.rect(e,p)},s}z(oI,"drawRect");async function nAe(t,e){const{shapeSvg:n,bbox:r,label:i}=await Xn(t,e,"label"),s=n.insert("rect",":first-child");return s.attr("width",.1).attr("height",.1),n.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(r.width/2)-(r.x-(r.left??0))}, ${-(r.height/2)-(r.y-(r.top??0))})`),Sn(e,s),e.intersect=function(l){return rn.rect(e,l)},n}z(nAe,"labelRect");async function rAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=Math.max(s.width+(e.padding??0),(e==null?void 0:e.width)??0),o=Math.max(s.height+(e.padding??0),(e==null?void 0:e.height)??0),l=[{x:0,y:0},{x:a+3*o/6,y:0},{x:a,y:-o},{x:-(3*o)/6,y:-o}];let c;const{cssStyles:u}=e;if(e.look==="handDrawn"){const d=vn.svg(i),f=bn(e,{}),h=Qr(l),m=d.path(h,f);c=i.insert(()=>m,":first-child").attr("transform",`translate(${-a/2}, ${o/2})`),u&&c.attr("style",u)}else c=Fm(i,a,o,l);return r&&c.attr("style",r),e.width=a,e.height=o,Sn(e,c),e.intersect=function(d){return rn.polygon(e,l,d)},i}z(rAe,"lean_left");async function iAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=Math.max(s.width+(e.padding??0),(e==null?void 0:e.width)??0),o=Math.max(s.height+(e.padding??0),(e==null?void 0:e.height)??0),l=[{x:-3*o/6,y:0},{x:a,y:0},{x:a+3*o/6,y:-o},{x:0,y:-o}];let c;const{cssStyles:u}=e;if(e.look==="handDrawn"){const d=vn.svg(i),f=bn(e,{}),h=Qr(l),m=d.path(h,f);c=i.insert(()=>m,":first-child").attr("transform",`translate(${-a/2}, ${o/2})`),u&&c.attr("style",u)}else c=Fm(i,a,o,l);return r&&c.attr("style",r),e.width=a,e.height=o,Sn(e,c),e.intersect=function(d){return rn.polygon(e,l,d)},i}z(iAe,"lean_right");function sAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.label="",e.labelStyle=n;const i=t.insert("g").attr("class",Wn(e)).attr("id",e.domId??e.id),{cssStyles:s}=e,a=Math.max(35,(e==null?void 0:e.width)??0),o=Math.max(35,(e==null?void 0:e.height)??0),l=7,c=[{x:a,y:0},{x:0,y:o+l/2},{x:a-2*l,y:o+l/2},{x:0,y:2*o},{x:a,y:o-l/2},{x:2*l,y:o-l/2}],u=vn.svg(i),d=bn(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");const f=Qr(c),h=u.path(f,d),m=i.insert(()=>h,":first-child");return s&&e.look!=="handDrawn"&&m.selectAll("path").attr("style",s),r&&e.look!=="handDrawn"&&m.selectAll("path").attr("style",r),m.attr("transform",`translate(-${a/2},${-o})`),Sn(e,m),e.intersect=function(p){return mt.info("lightningBolt intersect",e,p),rn.polygon(e,c,p)},i}z(sAe,"lightningBolt");var YKt=z((t,e,n,r,i,s,a)=>[`M${t},${e+s}`,`a${i},${s} 0,0,0 ${n},0`,`a${i},${s} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${s} 0,0,0 ${n},0`,`l0,${-r}`,`M${t},${e+s+a}`,`a${i},${s} 0,0,0 ${n},0`].join(" "),"createCylinderPathD"),JKt=z((t,e,n,r,i,s,a)=>[`M${t},${e+s}`,`M${t+n},${e+s}`,`a${i},${s} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${s} 0,0,0 ${n},0`,`l0,${-r}`,`M${t},${e+s+a}`,`a${i},${s} 0,0,0 ${n},0`].join(" "),"createOuterCylinderPathD"),XKt=z((t,e,n,r,i,s)=>[`M${t-n/2},${-r/2}`,`a${i},${s} 0,0,0 ${n},0`].join(" "),"createInnerCylinderPathD");async function aAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0),e.width??0),l=o/2,c=l/(2.5+o/50),u=Math.max(s.height+c+(e.padding??0),e.height??0),d=u*.1;let f;const{cssStyles:h}=e;if(e.look==="handDrawn"){const m=vn.svg(i),p=JKt(0,0,o,u,l,c,d),v=XKt(0,c,o,u,l,c),x=bn(e,{}),w=m.path(p,x),E=m.path(v,x);i.insert(()=>E,":first-child").attr("class","line"),f=i.insert(()=>w,":first-child"),f.attr("class","basic label-container"),h&&f.attr("style",h)}else{const m=YKt(0,0,o,u,l,c,d);f=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Uo(h)).attr("style",r)}return f.attr("label-offset-y",c),f.attr("transform",`translate(${-o/2}, ${-(u/2+c)})`),Sn(e,f),a.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${-(s.height/2)+c-(s.y-(s.top??0))})`),e.intersect=function(m){const p=rn.rect(e,m),v=p.x-(e.x??0);if(l!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(p.y-(e.y??0))>(e.height??0)/2-c)){let x=c*c*(1-v*v/(l*l));x>0&&(x=Math.sqrt(x)),x=c-x,m.y-(e.y??0)>0&&(x=-x),p.y+=x}return p},i}z(aAe,"linedCylinder");async function oAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=l/4,u=l+c,{cssStyles:d}=e,f=vn.svg(i),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=[{x:-o/2-o/2*.1,y:-u/2},{x:-o/2-o/2*.1,y:u/2},...om(-o/2-o/2*.1,u/2,o/2+o/2*.1,u/2,c,.8),{x:o/2+o/2*.1,y:-u/2},{x:-o/2-o/2*.1,y:-u/2},{x:-o/2,y:-u/2},{x:-o/2,y:u/2*1.1},{x:-o/2,y:-u/2}],p=f.polygon(m.map(x=>[x.x,x.y]),h),v=i.insert(()=>p,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),r&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",r),v.attr("transform",`translate(0,${-c/2})`),a.attr("transform",`translate(${-o/2+(e.padding??0)+o/2*.1/2-(s.x-(s.left??0))},${-l/2+(e.padding??0)-c/2-(s.y-(s.top??0))})`),Sn(e,v),e.intersect=function(x){return rn.polygon(e,m,x)},i}z(oAe,"linedWaveEdgedRect");async function lAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=5,u=-o/2,d=-l/2,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{}),p=[{x:u-c,y:d+c},{x:u-c,y:d+l+c},{x:u+o-c,y:d+l+c},{x:u+o-c,y:d+l},{x:u+o,y:d+l},{x:u+o,y:d+l-c},{x:u+o+c,y:d+l-c},{x:u+o+c,y:d-c},{x:u+c,y:d-c},{x:u+c,y:d},{x:u,y:d},{x:u,y:d+c}],v=[{x:u,y:d+c},{x:u+o-c,y:d+c},{x:u+o-c,y:d+l},{x:u+o,y:d+l},{x:u+o,y:d},{x:u,y:d}];e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const x=Qr(p),w=h.path(x,m),E=Qr(v),S=h.path(E,{...m,fill:"none"}),_=i.insert(()=>S,":first-child");return _.insert(()=>w,":first-child"),_.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),r&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",r),a.attr("transform",`translate(${-(s.width/2)-c-(s.x-(s.left??0))}, ${-(s.height/2)+c-(s.y-(s.top??0))})`),Sn(e,_),e.intersect=function(C){return rn.polygon(e,p,C)},i}z(lAe,"multiRect");async function cAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=l/4,u=l+c,d=-o/2,f=-u/2,h=5,{cssStyles:m}=e,p=om(d-h,f+u+h,d+o-h,f+u+h,c,.8),v=p==null?void 0:p[p.length-1],x=[{x:d-h,y:f+h},{x:d-h,y:f+u+h},...p,{x:d+o-h,y:v.y-h},{x:d+o,y:v.y-h},{x:d+o,y:v.y-2*h},{x:d+o+h,y:v.y-2*h},{x:d+o+h,y:f-h},{x:d+h,y:f-h},{x:d+h,y:f},{x:d,y:f},{x:d,y:f+h}],w=[{x:d,y:f+h},{x:d+o-h,y:f+h},{x:d+o-h,y:v.y-h},{x:d+o,y:v.y-h},{x:d+o,y:f},{x:d,y:f}],E=vn.svg(i),S=bn(e,{});e.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");const _=Qr(x),C=E.path(_,S),T=Qr(w),M=E.path(T,S),A=i.insert(()=>C,":first-child");return A.insert(()=>M),A.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",m),r&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",r),A.attr("transform",`translate(0,${-c/2})`),a.attr("transform",`translate(${-(s.width/2)-h-(s.x-(s.left??0))}, ${-(s.height/2)+h-c/2-(s.y-(s.top??0))})`),Sn(e,A),e.intersect=function($){return rn.polygon(e,x,$)},i}z(cAe,"multiWaveEdgedRectangle");async function uAe(t,e,{config:{themeVariables:n}}){var w;const{labelStyles:r,nodeStyles:i}=Cn(e);e.labelStyle=r,e.useHtmlLabels||((w=Fo().flowchart)==null?void 0:w.htmlLabels)!==!1||(e.centerLabel=!0);const{shapeSvg:a,bbox:o,label:l}=await Xn(t,e,Wn(e)),c=Math.max(o.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),u=Math.max(o.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),d=-c/2,f=-u/2,{cssStyles:h}=e,m=vn.svg(a),p=bn(e,{fill:n.noteBkgColor,stroke:n.noteBorderColor});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const v=m.rectangle(d,f,c,u,p),x=a.insert(()=>v,":first-child");return x.attr("class","basic label-container"),h&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",h),i&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",i),l.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),Sn(e,x),e.intersect=function(E){return rn.rect(e,E)},a}z(uAe,"note");var QKt=z((t,e,n)=>[`M${t+n/2},${e}`,`L${t+n},${e-n/2}`,`L${t+n/2},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createDecisionBoxPathD");async function dAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.width+e.padding,o=s.height+e.padding,l=a+o,c=.5,u=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}];let d;const{cssStyles:f}=e;if(e.look==="handDrawn"){const h=vn.svg(i),m=bn(e,{}),p=QKt(0,0,l),v=h.path(p,m);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-l/2+c}, ${l/2})`),f&&d.attr("style",f)}else d=Fm(i,l,l,u),d.attr("transform",`translate(${-l/2+c}, ${l/2})`);return r&&d.attr("style",r),Sn(e,d),e.calcIntersect=function(h,m){const p=h.width,v=[{x:p/2,y:0},{x:p,y:-p/2},{x:p/2,y:-p},{x:0,y:-p/2}],x=rn.polygon(h,v,m);return{x:x.x-.5,y:x.y-.5}},e.intersect=function(h){return this.calcIntersect(e,h)},i}z(dAe,"question");async function fAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0),(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0),(e==null?void 0:e.height)??0),c=-o/2,u=-l/2,d=u/2,f=[{x:c+d,y:u},{x:c,y:0},{x:c+d,y:-u},{x:-c,y:-u},{x:-c,y:u}],{cssStyles:h}=e,m=vn.svg(i),p=bn(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const v=Qr(f),x=m.path(v,p),w=i.insert(()=>x,":first-child");return w.attr("class","basic label-container"),h&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",h),r&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",r),w.attr("transform",`translate(${-d/2},0)`),a.attr("transform",`translate(${-d/2-s.width/2-(s.x-(s.left??0))}, ${-(s.height/2)-(s.y-(s.top??0))})`),Sn(e,w),e.intersect=function(E){return rn.polygon(e,f,E)},i}z(fAe,"rect_left_inv_arrow");async function hAe(t,e){var M,A;const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";const s=t.insert("g").attr("class",i).attr("id",e.domId||e.id),a=s.insert("g"),o=s.insert("g").attr("class","label").attr("style",r),l=e.description,c=e.label,u=o.node().appendChild(await q1(c,e.labelStyle,!0,!0));let d={width:0,height:0};if(ja((A=(M=Mi())==null?void 0:M.flowchart)==null?void 0:A.htmlLabels)){const $=u.children[0],O=ui(u);d=$.getBoundingClientRect(),O.attr("width",d.width),O.attr("height",d.height)}mt.info("Text 2",l);const f=l||[],h=u.getBBox(),m=o.node().appendChild(await q1(f.join?f.join("
    "):f,e.labelStyle,!0,!0)),p=m.children[0],v=ui(m);d=p.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);const x=(e.padding||0)/2;ui(m).attr("transform","translate( "+(d.width>h.width?0:(h.width-d.width)/2)+", "+(h.height+x+5)+")"),ui(u).attr("transform","translate( "+(d.width(mt.debug("Rough node insert CXC",D),N),":first-child"),C=s.insert(()=>(mt.debug("Rough node insert CXC",D),D),":first-child")}else C=a.insert("rect",":first-child"),T=a.insert("line"),C.attr("class","outer title-state").attr("style",r).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),T.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+h.height+x).attr("y2",-d.height/2-x+h.height+x);return Sn(e,C),e.intersect=function($){return rn.rect(e,$)},s}z(hAe,"rectWithTitle");function $4(t,e,n,r,i,s,a){const l=(t+n)/2,c=(e+r)/2,u=Math.atan2(r-e,n-t),d=(n-t)/2,f=(r-e)/2,h=d/i,m=f/s,p=Math.sqrt(h**2+m**2);if(p>1)throw new Error("The given radii are too small to create an arc between the points.");const v=Math.sqrt(1-p**2),x=l+v*s*Math.sin(u)*(a?-1:1),w=c-v*i*Math.cos(u)*(a?-1:1),E=Math.atan2((e-w)/s,(t-x)/i);let _=Math.atan2((r-w)/s,(n-x)/i)-E;a&&_<0&&(_+=2*Math.PI),!a&&_>0&&(_-=2*Math.PI);const C=[];for(let T=0;T<20;T++){const M=T/19,A=E+M*_,$=x+i*Math.cos(A),O=w+s*Math.sin(A);C.push({x:$,y:O})}return C}z($4,"generateArcPoints");async function pAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=(e==null?void 0:e.padding)??0,o=(e==null?void 0:e.padding)??0,l=(e!=null&&e.width?e==null?void 0:e.width:s.width)+a*2,c=(e!=null&&e.height?e==null?void 0:e.height:s.height)+o*2,u=e.radius||5,d=e.taper||5,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{});e.stroke&&(m.stroke=e.stroke),e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const p=[{x:-l/2+d,y:-c/2},{x:l/2-d,y:-c/2},...$4(l/2-d,-c/2,l/2,-c/2+d,u,u,!0),{x:l/2,y:-c/2+d},{x:l/2,y:c/2-d},...$4(l/2,c/2-d,l/2-d,c/2,u,u,!0),{x:l/2-d,y:c/2},{x:-l/2+d,y:c/2},...$4(-l/2+d,c/2,-l/2,c/2-d,u,u,!0),{x:-l/2,y:c/2-d},{x:-l/2,y:-c/2+d},...$4(-l/2,-c/2+d,-l/2+d,-c/2,u,u,!0)],v=Qr(p),x=h.path(v,m),w=i.insert(()=>x,":first-child");return w.attr("class","basic label-container outer-path"),f&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",f),r&&e.look!=="handDrawn"&&w.selectChildren("path").attr("style",r),Sn(e,w),e.intersect=function(E){return rn.polygon(e,p,E)},i}z(pAe,"roundedRect");async function mAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=(e==null?void 0:e.padding)??0,l=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),c=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),u=-s.width/2-o,d=-s.height/2-o,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const p=[{x:u,y:d},{x:u+l+8,y:d},{x:u+l+8,y:d+c},{x:u-8,y:d+c},{x:u-8,y:d},{x:u,y:d},{x:u,y:d+c}],v=h.polygon(p.map(w=>[w.x,w.y]),m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Uo(f)),r&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",r),f&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",r),a.attr("transform",`translate(${-l/2+4+(e.padding??0)-(s.x-(s.left??0))},${-c/2+(e.padding??0)-(s.y-(s.top??0))})`),Sn(e,x),e.intersect=function(w){return rn.rect(e,w)},i}z(mAe,"shadedProcess");async function gAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=-o/2,u=-l/2,{cssStyles:d}=e,f=vn.svg(i),h=bn(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");const m=[{x:c,y:u},{x:c,y:u+l},{x:c+o,y:u+l},{x:c+o,y:u-l/2}],p=Qr(m),v=f.path(p,h),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),r&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",r),x.attr("transform",`translate(0, ${l/4})`),a.attr("transform",`translate(${-o/2+(e.padding??0)-(s.x-(s.left??0))}, ${-l/4+(e.padding??0)-(s.y-(s.top??0))})`),Sn(e,x),e.intersect=function(w){return rn.polygon(e,m,w)},i}z(gAe,"slopedRect");async function vAe(t,e){const n={rx:0,ry:0,labelPaddingX:e.labelPaddingX??((e==null?void 0:e.padding)||0)*2,labelPaddingY:((e==null?void 0:e.padding)||0)*1};return oI(t,e,n)}z(vAe,"squareRect");async function yAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.height+e.padding,o=s.width+a/4+e.padding,l=a/2,{cssStyles:c}=e,u=vn.svg(i),d=bn(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");const f=[{x:-o/2+l,y:-a/2},{x:o/2-l,y:-a/2},...vw(-o/2+l,0,l,50,90,270),{x:o/2-l,y:a/2},...vw(o/2-l,0,l,50,270,450)],h=Qr(f),m=u.path(h,d),p=i.insert(()=>m,":first-child");return p.attr("class","basic label-container outer-path"),c&&e.look!=="handDrawn"&&p.selectChildren("path").attr("style",c),r&&e.look!=="handDrawn"&&p.selectChildren("path").attr("style",r),Sn(e,p),e.intersect=function(v){return rn.polygon(e,f,v)},i}z(yAe,"stadium");async function bAe(t,e){return oI(t,e,{rx:5,ry:5})}z(bAe,"state");function xAe(t,e,{config:{themeVariables:n}}){const{labelStyles:r,nodeStyles:i}=Cn(e);e.labelStyle=r;const{cssStyles:s}=e,{lineColor:a,stateBorder:o,nodeBorder:l}=n,c=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),u=vn.svg(c),d=bn(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");const f=u.circle(0,0,14,{...d,stroke:a,strokeWidth:2}),h=o??l,m=u.circle(0,0,5,{...d,fill:h,stroke:h,strokeWidth:2,fillStyle:"solid"}),p=c.insert(()=>f,":first-child");return p.insert(()=>m),s&&p.selectAll("path").attr("style",s),i&&p.selectAll("path").attr("style",i),Sn(e,p),e.intersect=function(v){return rn.circle(e,7,v)},c}z(xAe,"stateEnd");function wAe(t,e,{config:{themeVariables:n}}){const{lineColor:r}=n,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let s;if(e.look==="handDrawn"){const o=vn.svg(i).circle(0,0,14,pWt(r));s=i.insert(()=>o),s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else s=i.insert("circle",":first-child"),s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return Sn(e,s),e.intersect=function(a){return rn.circle(e,7,a)},i}z(wAe,"stateStart");async function _Ae(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=((e==null?void 0:e.padding)||0)/2,o=s.width+e.padding,l=s.height+e.padding,c=-s.width/2-a,u=-s.height/2-a,d=[{x:0,y:0},{x:o,y:0},{x:o,y:-l},{x:0,y:-l},{x:0,y:0},{x:-8,y:0},{x:o+8,y:0},{x:o+8,y:-l},{x:-8,y:-l},{x:-8,y:0}];if(e.look==="handDrawn"){const f=vn.svg(i),h=bn(e,{}),m=f.rectangle(c-8,u,o+16,l,h),p=f.line(c,u,c,u+l,h),v=f.line(c+o,u,c+o,u+l,h);i.insert(()=>p,":first-child"),i.insert(()=>v,":first-child");const x=i.insert(()=>m,":first-child"),{cssStyles:w}=e;x.attr("class","basic label-container").attr("style",Uo(w)),Sn(e,x)}else{const f=Fm(i,o,l,d);r&&f.attr("style",r),Sn(e,f)}return e.intersect=function(f){return rn.polygon(e,d,f)},i}z(_Ae,"subroutine");async function kAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),o=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),l=-a/2,c=-o/2,u=.2*o,d=.2*o,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{}),p=[{x:l-u/2,y:c},{x:l+a+u/2,y:c},{x:l+a+u/2,y:c+o},{x:l-u/2,y:c+o}],v=[{x:l+a-u/2,y:c+o},{x:l+a+u/2,y:c+o},{x:l+a+u/2,y:c+o-d}];e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const x=Qr(p),w=h.path(x,m),E=Qr(v),S=h.path(E,{...m,fillStyle:"solid"}),_=i.insert(()=>S,":first-child");return _.insert(()=>w,":first-child"),_.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),r&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",r),Sn(e,_),e.intersect=function(C){return rn.polygon(e,p,C)},i}z(kAe,"taggedRect");async function SAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=l/4,u=.2*o,d=.2*l,f=l+c,{cssStyles:h}=e,m=vn.svg(i),p=bn(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");const v=[{x:-o/2-o/2*.1,y:f/2},...om(-o/2-o/2*.1,f/2,o/2+o/2*.1,f/2,c,.8),{x:o/2+o/2*.1,y:-f/2},{x:-o/2-o/2*.1,y:-f/2}],x=-o/2+o/2*.1,w=-f/2-d*.4,E=[{x:x+o-u,y:(w+l)*1.4},{x:x+o,y:w+l-d},{x:x+o,y:(w+l)*.9},...om(x+o,(w+l)*1.3,x+o-u,(w+l)*1.5,-l*.03,.5)],S=Qr(v),_=m.path(S,p),C=Qr(E),T=m.path(C,{...p,fillStyle:"solid"}),M=i.insert(()=>T,":first-child");return M.insert(()=>_,":first-child"),M.attr("class","basic label-container"),h&&e.look!=="handDrawn"&&M.selectAll("path").attr("style",h),r&&e.look!=="handDrawn"&&M.selectAll("path").attr("style",r),M.attr("transform",`translate(0,${-c/2})`),a.attr("transform",`translate(${-o/2+(e.padding??0)-(s.x-(s.left??0))},${-l/2+(e.padding??0)-c/2-(s.y-(s.top??0))})`),Sn(e,M),e.intersect=function(A){return rn.polygon(e,v,A)},i}z(SAe,"taggedWaveEdgedRectangle");async function CAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=Math.max(s.width+e.padding,(e==null?void 0:e.width)||0),o=Math.max(s.height+e.padding,(e==null?void 0:e.height)||0),l=-a/2,c=-o/2,u=i.insert("rect",":first-child");return u.attr("class","text").attr("style",r).attr("rx",0).attr("ry",0).attr("x",l).attr("y",c).attr("width",a).attr("height",o),Sn(e,u),e.intersect=function(d){return rn.rect(e,d)},i}z(CAe,"text");var eYt=z((t,e,n,r,i,s)=>`M${t},${e} + a${i},${s} 0,0,1 0,${-r} + l${n},0 + a${i},${s} 0,0,1 0,${r} + M${n},${-r} + a${i},${s} 0,0,0 0,${r} + l${-n},0`,"createCylinderPathD"),tYt=z((t,e,n,r,i,s)=>[`M${t},${e}`,`M${t+n},${e}`,`a${i},${s} 0,0,0 0,${-r}`,`l${-n},0`,`a${i},${s} 0,0,0 0,${r}`,`l${n},0`].join(" "),"createOuterCylinderPathD"),nYt=z((t,e,n,r,i,s)=>[`M${t+n/2},${-r/2}`,`a${i},${s} 0,0,0 0,${r}`].join(" "),"createInnerCylinderPathD");async function EAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a,halfPadding:o}=await Xn(t,e,Wn(e)),l=e.look==="neo"?o*2:o,c=s.height+l,u=c/2,d=u/(2.5+c/50),f=s.width+d+l,{cssStyles:h}=e;let m;if(e.look==="handDrawn"){const p=vn.svg(i),v=tYt(0,0,f,c,d,u),x=nYt(0,0,f,c,d,u),w=p.path(v,bn(e,{})),E=p.path(x,bn(e,{fill:"none"}));m=i.insert(()=>E,":first-child"),m=i.insert(()=>w,":first-child"),m.attr("class","basic label-container"),h&&m.attr("style",h)}else{const p=eYt(0,0,f,c,d,u);m=i.insert("path",":first-child").attr("d",p).attr("class","basic label-container").attr("style",Uo(h)).attr("style",r),m.attr("class","basic label-container"),h&&m.selectAll("path").attr("style",h),r&&m.selectAll("path").attr("style",r)}return m.attr("label-offset-x",d),m.attr("transform",`translate(${-f/2}, ${c/2} )`),a.attr("transform",`translate(${-(s.width/2)-d-(s.x-(s.left??0))}, ${-(s.height/2)-(s.y-(s.top??0))})`),Sn(e,m),e.intersect=function(p){const v=rn.rect(e,p),x=v.y-(e.y??0);if(u!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let w=d*d*(1-x*x/(u*u));w!=0&&(w=Math.sqrt(Math.abs(w))),w=d-w,p.x-(e.x??0)>0&&(w=-w),v.x+=w}return v},i}z(EAe,"tiltedCylinder");async function $Ae(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=s.width+e.padding,o=s.height+e.padding,l=[{x:-3*o/6,y:0},{x:a+3*o/6,y:0},{x:a,y:-o},{x:0,y:-o}];let c;const{cssStyles:u}=e;if(e.look==="handDrawn"){const d=vn.svg(i),f=bn(e,{}),h=Qr(l),m=d.path(h,f);c=i.insert(()=>m,":first-child").attr("transform",`translate(${-a/2}, ${o/2})`),u&&c.attr("style",u)}else c=Fm(i,a,o,l);return r&&c.attr("style",r),e.width=a,e.height=o,Sn(e,c),e.intersect=function(d){return rn.polygon(e,l,d)},i}z($Ae,"trapezoid");async function TAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=60,o=20,l=Math.max(a,s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),c=Math.max(o,s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),{cssStyles:u}=e,d=vn.svg(i),f=bn(e,{});e.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");const h=[{x:-l/2*.8,y:-c/2},{x:l/2*.8,y:-c/2},{x:l/2,y:-c/2*.6},{x:l/2,y:c/2},{x:-l/2,y:c/2},{x:-l/2,y:-c/2*.6}],m=Qr(h),p=d.path(m,f),v=i.insert(()=>p,":first-child");return v.attr("class","basic label-container"),u&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",u),r&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",r),Sn(e,v),e.intersect=function(x){return rn.polygon(e,h,x)},i}z(TAe,"trapezoidalPentagon");async function IAe(t,e){var w;const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=ja((w=Mi().flowchart)==null?void 0:w.htmlLabels),l=s.width+(e.padding??0),c=l+s.height,u=l+s.height,d=[{x:0,y:0},{x:u,y:0},{x:u/2,y:-c}],{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const p=Qr(d),v=h.path(p,m),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-c/2}, ${c/2})`);return f&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",f),r&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",r),e.width=l,e.height=c,Sn(e,x),a.attr("transform",`translate(${-s.width/2-(s.x-(s.left??0))}, ${c/2-(s.height+(e.padding??0)/(o?2:1)-(s.y-(s.top??0)))})`),e.intersect=function(E){return mt.info("Triangle intersect",e,d,E),rn.polygon(e,d,E)},i}z(IAe,"triangle");async function AAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=l/8,u=l+c,{cssStyles:d}=e,h=70-o,m=h>0?h/2:0,p=vn.svg(i),v=bn(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");const x=[{x:-o/2-m,y:u/2},...om(-o/2-m,u/2,o/2+m,u/2,c,.8),{x:o/2+m,y:-u/2},{x:-o/2-m,y:-u/2}],w=Qr(x),E=p.path(w,v),S=i.insert(()=>E,":first-child");return S.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",d),r&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",r),S.attr("transform",`translate(0,${-c/2})`),a.attr("transform",`translate(${-o/2+(e.padding??0)-(s.x-(s.left??0))},${-l/2+(e.padding??0)-c-(s.y-(s.top??0))})`),Sn(e,S),e.intersect=function(_){return rn.polygon(e,x,_)},i}z(AAe,"waveEdgedRectangle");async function OAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s}=await Xn(t,e,Wn(e)),a=100,o=50,l=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),c=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),u=l/c;let d=l,f=c;d>f*u?f=d/u:d=f*u,d=Math.max(d,a),f=Math.max(f,o);const h=Math.min(f*.2,f/4),m=f+h*2,{cssStyles:p}=e,v=vn.svg(i),x=bn(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");const w=[{x:-d/2,y:m/2},...om(-d/2,m/2,d/2,m/2,h,1),{x:d/2,y:-m/2},...om(d/2,-m/2,-d/2,-m/2,h,-1)],E=Qr(w),S=v.path(E,x),_=i.insert(()=>S,":first-child");return _.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",p),r&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",r),Sn(e,_),e.intersect=function(C){return rn.polygon(e,w,C)},i}z(OAe,"waveRectangle");async function DAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,label:a}=await Xn(t,e,Wn(e)),o=Math.max(s.width+(e.padding??0)*2,(e==null?void 0:e.width)??0),l=Math.max(s.height+(e.padding??0)*2,(e==null?void 0:e.height)??0),c=5,u=-o/2,d=-l/2,{cssStyles:f}=e,h=vn.svg(i),m=bn(e,{}),p=[{x:u-c,y:d-c},{x:u-c,y:d+l},{x:u+o,y:d+l},{x:u+o,y:d-c}],v=`M${u-c},${d-c} L${u+o},${d-c} L${u+o},${d+l} L${u-c},${d+l} L${u-c},${d-c} + M${u-c},${d} L${u+o},${d} + M${u},${d-c} L${u},${d+l}`;e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const x=h.path(v,m),w=i.insert(()=>x,":first-child");return w.attr("transform",`translate(${c/2}, ${c/2})`),w.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",f),r&&e.look!=="handDrawn"&&w.selectAll("path").attr("style",r),a.attr("transform",`translate(${-(s.width/2)+c/2-(s.x-(s.left??0))}, ${-(s.height/2)+c/2-(s.y-(s.top??0))})`),Sn(e,w),e.intersect=function(E){return rn.polygon(e,p,E)},i}z(DAe,"windowPane");async function BY(t,e){var V,L,se,oe;const n=e;if(n.alias&&(e.label=n.alias),e.look==="handDrawn"){const{themeVariables:X}=Fo(),{background:de}=X,le={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${de}`]};await BY(t,le)}const r=Fo();e.useHtmlLabels=r.htmlLabels;let i=((V=r.er)==null?void 0:V.diagramPadding)??10,s=((L=r.er)==null?void 0:L.entityPadding)??6;const{cssStyles:a}=e,{labelStyles:o,nodeStyles:l}=Cn(e);if(n.attributes.length===0&&e.label){const X={rx:0,ry:0,labelPaddingX:i,labelPaddingY:i*1.5};_p(e.label,r)+X.labelPaddingX*20){const X=d.width+i*2-(p+v+x+w);p+=X/_,v+=X/_,x>0&&(x+=X/_),w>0&&(w+=X/_)}const T=p+v+x+w,M=vn.svg(u),A=bn(e,{});e.look!=="handDrawn"&&(A.roughness=0,A.fillStyle="solid");let $=0;m.length>0&&($=m.reduce((X,de)=>X+((de==null?void 0:de.rowHeight)??0),0));const O=Math.max(C.width+i*2,(e==null?void 0:e.width)||0,T),D=Math.max(($??0)+d.height,(e==null?void 0:e.height)||0),N=-O/2,R=-D/2;u.selectAll("g:not(:first-child)").each((X,de,le)=>{const te=ui(le[de]),Fe=te.attr("transform");let Ge=0,Ve=0;if(Fe){const ft=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(Fe);ft&&(Ge=parseFloat(ft[1]),Ve=parseFloat(ft[2]),te.attr("class").includes("attribute-name")?Ge+=p:te.attr("class").includes("attribute-keys")?Ge+=p+v:te.attr("class").includes("attribute-comment")&&(Ge+=p+v+x))}te.attr("transform",`translate(${N+i/2+Ge}, ${Ve+R+d.height+s/2})`)}),u.select(".name").attr("transform","translate("+-d.width/2+", "+(R+s/2)+")");const q=M.rectangle(N,R,O,D,A),W=u.insert(()=>q,":first-child").attr("style",a.join("")),{themeVariables:G}=Fo(),{rowEven:U,rowOdd:J,nodeBorder:F}=G;h.push(0);for(const[X,de]of m.entries()){const te=(X+1)%2===0&&de.yOffset!==0,Fe=M.rectangle(N,d.height+R+(de==null?void 0:de.yOffset),O,de==null?void 0:de.rowHeight,{...A,fill:te?U:J,stroke:F});u.insert(()=>Fe,"g.label").attr("style",a.join("")).attr("class",`row-rect-${te?"even":"odd"}`)}let H=M.line(N,d.height+R,O+N,d.height+R,A);u.insert(()=>H).attr("class","divider"),H=M.line(p+N,d.height+R,p+N,D+R,A),u.insert(()=>H).attr("class","divider"),E&&(H=M.line(p+v+N,d.height+R,p+v+N,D+R,A),u.insert(()=>H).attr("class","divider")),S&&(H=M.line(p+v+x+N,d.height+R,p+v+x+N,D+R,A),u.insert(()=>H).attr("class","divider"));for(const X of h)H=M.line(N,d.height+R+X,O+N,d.height+R+X,A),u.insert(()=>H).attr("class","divider");if(Sn(e,W),l&&e.look!=="handDrawn"){const X=l.split(";"),de=(oe=X==null?void 0:X.filter(le=>le.includes("stroke")))==null?void 0:oe.map(le=>`${le}`).join("; ");u.selectAll("path").attr("style",de??""),u.selectAll(".row-rect-even path").attr("style",l)}return e.intersect=function(X){return rn.rect(e,X)},u}z(BY,"erBox");async function Cv(t,e,n,r=0,i=0,s=[],a=""){const o=t.insert("g").attr("class",`label ${s.join(" ")}`).attr("transform",`translate(${r}, ${i})`).attr("style",a);e!==y0e(e)&&(e=y0e(e),e=e.replaceAll("<","<").replaceAll(">",">"));const l=o.node().appendChild(await jm(o,e,{width:_p(e,n)+100,style:a,useHtmlLabels:n.htmlLabels},n));if(e.includes("<")||e.includes(">")){let u=l.children[0];for(u.textContent=u.textContent.replaceAll("<","<").replaceAll(">",">");u.childNodes[0];)u=u.childNodes[0],u.textContent=u.textContent.replaceAll("<","<").replaceAll(">",">")}let c=l.getBBox();if(ja(n.htmlLabels)){const u=l.children[0];u.style.textAlign="start";const d=ui(l);c=u.getBoundingClientRect(),d.attr("width",c.width),d.attr("height",c.height)}return c}z(Cv,"addText");async function MAe(t,e,n,r,i=n.class.padding??12){const s=r?0:3,a=t.insert("g").attr("class",Wn(e)).attr("id",e.domId||e.id);let o=null,l=null,c=null,u=null,d=0,f=0,h=0;if(o=a.insert("g").attr("class","annotation-group text"),e.annotations.length>0){const w=e.annotations[0];await T4(o,{text:`«${w}»`},0),d=o.node().getBBox().height}l=a.insert("g").attr("class","label-group text"),await T4(l,e,0,["font-weight: bolder"]);const m=l.node().getBBox();f=m.height,c=a.insert("g").attr("class","members-group text");let p=0;for(const w of e.members){const E=await T4(c,w,p,[w.parseClassifier()]);p+=E+s}h=c.node().getBBox().height,h<=0&&(h=i/2),u=a.insert("g").attr("class","methods-group text");let v=0;for(const w of e.methods){const E=await T4(u,w,v,[w.parseClassifier()]);v+=E+s}let x=a.node().getBBox();if(o!==null){const w=o.node().getBBox();o.attr("transform",`translate(${-w.width/2})`)}return l.attr("transform",`translate(${-m.width/2}, ${d})`),x=a.node().getBBox(),c.attr("transform",`translate(0, ${d+f+i*2})`),x=a.node().getBBox(),u.attr("transform",`translate(0, ${d+f+(h?h+i*4:i*2)})`),x=a.node().getBBox(),{shapeSvg:a,bbox:x}}z(MAe,"textHelper");async function T4(t,e,n,r=[]){const i=t.insert("g").attr("class","label").attr("style",r.join("; ")),s=Fo();let a="useHtmlLabels"in e?e.useHtmlLabels:ja(s.htmlLabels)??!0,o="";"text"in e?o=e.text:o=e.label,!a&&o.startsWith("\\")&&(o=o.substring(1)),Gy(o)&&(a=!0);const l=await jm(i,JK(v2(o)),{width:_p(o,s)+50,classes:"markdown-node-label",useHtmlLabels:a},s);let c,u=1;if(a){const d=l.children[0],f=ui(l);u=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(u+=d.innerHTML.split("").length-1);const h=d.getElementsByTagName("img");if(h){const m=o.replace(/]*>/g,"").trim()==="";await Promise.all([...h].map(p=>new Promise(v=>{function x(){var w;if(p.style.display="flex",p.style.flexDirection="column",m){const E=((w=s.fontSize)==null?void 0:w.toString())??window.getComputedStyle(document.body).fontSize,_=parseInt(E,10)*5+"px";p.style.minWidth=_,p.style.maxWidth=_}else p.style.width="100%";v(p)}z(x,"setupImage"),setTimeout(()=>{p.complete&&x()}),p.addEventListener("error",x),p.addEventListener("load",x)})))}c=d.getBoundingClientRect(),f.attr("width",c.width),f.attr("height",c.height)}else{r.includes("font-weight: bolder")&&ui(l).selectAll("tspan").attr("font-weight",""),u=l.children.length;const d=l.children[0];(l.textContent===""||l.textContent.includes(">"))&&(d.textContent=o[0]+o.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),o[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),c=l.getBBox()}return i.attr("transform","translate(0,"+(-c.height/(2*u)+n)+")"),c.height}z(T4,"addText");async function NAe(t,e){var A,$;const n=Mi(),r=n.class.padding??12,i=r,s=e.useHtmlLabels??ja(n.htmlLabels)??!0,a=e;a.annotations=a.annotations??[],a.members=a.members??[],a.methods=a.methods??[];const{shapeSvg:o,bbox:l}=await MAe(t,e,n,s,i),{labelStyles:c,nodeStyles:u}=Cn(e);e.labelStyle=c,e.cssStyles=a.styles||"";const d=((A=a.styles)==null?void 0:A.join(";"))||u||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));const f=a.members.length===0&&a.methods.length===0&&!(($=n.class)!=null&&$.hideEmptyMembersBox),h=vn.svg(o),m=bn(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const p=l.width;let v=l.height;a.members.length===0&&a.methods.length===0?v+=i:a.members.length>0&&a.methods.length===0&&(v+=i*2);const x=-p/2,w=-v/2,E=h.rectangle(x-r,w-r-(f?r:a.members.length===0&&a.methods.length===0?-r/2:0),p+2*r,v+2*r+(f?r*2:a.members.length===0&&a.methods.length===0?-r:0),m),S=o.insert(()=>E,":first-child");S.attr("class","basic label-container");const _=S.node().getBBox();o.selectAll(".text").each((O,D,N)=>{var J;const R=ui(N[D]),q=R.attr("transform");let W=0;if(q){const H=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(q);H&&(W=parseFloat(H[2]))}let G=W+w+r-(f?r:a.members.length===0&&a.methods.length===0?-r/2:0);s||(G-=4);let U=x;(R.attr("class").includes("label-group")||R.attr("class").includes("annotation-group"))&&(U=-((J=R.node())==null?void 0:J.getBBox().width)/2||0,o.selectAll("text").each(function(F,H,V){window.getComputedStyle(V[H]).textAnchor==="middle"&&(U=0)})),R.attr("transform",`translate(${U}, ${G})`)});const C=o.select(".annotation-group").node().getBBox().height-(f?r/2:0)||0,T=o.select(".label-group").node().getBBox().height-(f?r/2:0)||0,M=o.select(".members-group").node().getBBox().height-(f?r/2:0)||0;if(a.members.length>0||a.methods.length>0||f){const O=h.line(_.x,C+T+w+r,_.x+_.width,C+T+w+r,m);o.insert(()=>O).attr("class","divider").attr("style",d)}if(f||a.members.length>0||a.methods.length>0){const O=h.line(_.x,C+T+M+w+i*2+r,_.x+_.width,C+T+M+w+r+i*2,m);o.insert(()=>O).attr("class","divider").attr("style",d)}if(a.look!=="handDrawn"&&o.selectAll("path").attr("style",d),S.select(":nth-child(2)").attr("style",d),o.selectAll(".divider").select("path").attr("style",d),e.labelStyle?o.selectAll("span").attr("style",e.labelStyle):o.selectAll("span").attr("style",d),!s){const O=RegExp(/color\s*:\s*([^;]*)/),D=O.exec(d);if(D){const N=D[0].replace("color","fill");o.selectAll("tspan").attr("style",N)}else if(c){const N=O.exec(c);if(N){const R=N[0].replace("color","fill");o.selectAll("tspan").attr("style",R)}}}return Sn(e,S),e.intersect=function(O){return rn.rect(e,O)},o}z(NAe,"classBox");async function RAe(t,e){var C,T;const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const i=e,s=e,a=20,o=20,l="verifyMethod"in e,c=Wn(e),u=t.insert("g").attr("class",c).attr("id",e.domId??e.id);let d;l?d=await af(u,`<<${i.type}>>`,0,e.labelStyle):d=await af(u,"<<Element>>",0,e.labelStyle);let f=d;const h=await af(u,i.name,f,e.labelStyle+"; font-weight: bold;");if(f+=h+o,l){const M=await af(u,`${i.requirementId?`ID: ${i.requirementId}`:""}`,f,e.labelStyle);f+=M;const A=await af(u,`${i.text?`Text: ${i.text}`:""}`,f,e.labelStyle);f+=A;const $=await af(u,`${i.risk?`Risk: ${i.risk}`:""}`,f,e.labelStyle);f+=$,await af(u,`${i.verifyMethod?`Verification: ${i.verifyMethod}`:""}`,f,e.labelStyle)}else{const M=await af(u,`${s.type?`Type: ${s.type}`:""}`,f,e.labelStyle);f+=M,await af(u,`${s.docRef?`Doc Ref: ${s.docRef}`:""}`,f,e.labelStyle)}const m=(((C=u.node())==null?void 0:C.getBBox().width)??200)+a,p=(((T=u.node())==null?void 0:T.getBBox().height)??200)+a,v=-m/2,x=-p/2,w=vn.svg(u),E=bn(e,{});e.look!=="handDrawn"&&(E.roughness=0,E.fillStyle="solid");const S=w.rectangle(v,x,m,p,E),_=u.insert(()=>S,":first-child");if(_.attr("class","basic label-container").attr("style",r),u.selectAll(".label").each((M,A,$)=>{const O=ui($[A]),D=O.attr("transform");let N=0,R=0;if(D){const U=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(D);U&&(N=parseFloat(U[1]),R=parseFloat(U[2]))}const q=R-p/2;let W=v+a/2;(A===0||A===1)&&(W=N),O.attr("transform",`translate(${W}, ${q+a})`)}),f>d+h+o){const M=w.line(v,x+d+h+o,v+m,x+d+h+o,E);u.insert(()=>M).attr("style",r)}return Sn(e,_),e.intersect=function(M){return rn.rect(e,M)},u}z(RAe,"requirementBox");async function af(t,e,n,r=""){if(e==="")return 0;const i=t.insert("g").attr("class","label").attr("style",r),s=Mi(),a=s.htmlLabels??!0,o=await jm(i,JK(v2(e)),{width:_p(e,s)+50,classes:"markdown-node-label",useHtmlLabels:a,style:r},s);let l;if(a){const c=o.children[0],u=ui(o);l=c.getBoundingClientRect(),u.attr("width",l.width),u.attr("height",l.height)}else{const c=o.children[0];for(const u of c.children)u.textContent=u.textContent.replaceAll(">",">").replaceAll("<","<"),r&&u.setAttribute("style",r);l=o.getBBox(),l.height+=6}return i.attr("transform",`translate(${-l.width/2},${-l.height/2+n})`),l.height}z(af,"addText");var rYt=z(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");async function LAe(t,e,{config:n}){var D,N;const{labelStyles:r,nodeStyles:i}=Cn(e);e.labelStyle=r||"";const s=10,a=e.width;e.width=(e.width??200)-10;const{shapeSvg:o,bbox:l,label:c}=await Xn(t,e,Wn(e)),u=e.padding||10;let d="",f;"ticket"in e&&e.ticket&&((D=n==null?void 0:n.kanban)!=null&&D.ticketBaseUrl)&&(d=(N=n==null?void 0:n.kanban)==null?void 0:N.ticketBaseUrl.replace("#TICKET#",e.ticket),f=o.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));const h={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1};let m,p;f?{label:m,bbox:p}=await mj(f,"ticket"in e&&e.ticket||"",h):{label:m,bbox:p}=await mj(o,"ticket"in e&&e.ticket||"",h);const{label:v,bbox:x}=await mj(o,"assigned"in e&&e.assigned||"",h);e.width=a;const w=10,E=(e==null?void 0:e.width)||0,S=Math.max(p.height,x.height)/2,_=Math.max(l.height+w*2,(e==null?void 0:e.height)||0)+S,C=-E/2,T=-_/2;c.attr("transform","translate("+(u-E/2)+", "+(-S-l.height/2)+")"),m.attr("transform","translate("+(u-E/2)+", "+(-S+l.height/2)+")"),v.attr("transform","translate("+(u+E/2-x.width-2*s)+", "+(-S+l.height/2)+")");let M;const{rx:A,ry:$}=e,{cssStyles:O}=e;if(e.look==="handDrawn"){const R=vn.svg(o),q=bn(e,{}),W=A||$?R.path(zm(C,T,E,_,A||0),q):R.rectangle(C,T,E,_,q);M=o.insert(()=>W,":first-child"),M.attr("class","basic label-container").attr("style",O||null)}else{M=o.insert("rect",":first-child"),M.attr("class","basic label-container __APA__").attr("style",i).attr("rx",A??5).attr("ry",$??5).attr("x",C).attr("y",T).attr("width",E).attr("height",_);const R="priority"in e&&e.priority;if(R){const q=o.append("line"),W=C+2,G=T+Math.floor((A??0)/2),U=T+_-Math.floor((A??0)/2);q.attr("x1",W).attr("y1",G).attr("x2",W).attr("y2",U).attr("stroke-width","4").attr("stroke",rYt(R))}}return Sn(e,M),e.height=_,e.intersect=function(R){return rn.rect(e,R)},o}z(LAe,"kanbanItem");async function PAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,halfPadding:a,label:o}=await Xn(t,e,Wn(e)),l=s.width+10*a,c=s.height+8*a,u=.15*l,{cssStyles:d}=e,f=s.width+20,h=s.height+20,m=Math.max(l,f),p=Math.max(c,h);o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`);let v;const x=`M0 0 + a${u},${u} 1 0,0 ${m*.25},${-1*p*.1} + a${u},${u} 1 0,0 ${m*.25},0 + a${u},${u} 1 0,0 ${m*.25},0 + a${u},${u} 1 0,0 ${m*.25},${p*.1} + + a${u},${u} 1 0,0 ${m*.15},${p*.33} + a${u*.8},${u*.8} 1 0,0 0,${p*.34} + a${u},${u} 1 0,0 ${-1*m*.15},${p*.33} + + a${u},${u} 1 0,0 ${-1*m*.25},${p*.15} + a${u},${u} 1 0,0 ${-1*m*.25},0 + a${u},${u} 1 0,0 ${-1*m*.25},0 + a${u},${u} 1 0,0 ${-1*m*.25},${-1*p*.15} + + a${u},${u} 1 0,0 ${-1*m*.1},${-1*p*.33} + a${u*.8},${u*.8} 1 0,0 0,${-1*p*.34} + a${u},${u} 1 0,0 ${m*.1},${-1*p*.33} + H0 V0 Z`;if(e.look==="handDrawn"){const w=vn.svg(i),E=bn(e,{}),S=w.path(x,E);v=i.insert(()=>S,":first-child"),v.attr("class","basic label-container").attr("style",Uo(d))}else v=i.insert("path",":first-child").attr("class","basic label-container").attr("style",r).attr("d",x);return v.attr("transform",`translate(${-m/2}, ${-p/2})`),Sn(e,v),e.calcIntersect=function(w,E){return rn.rect(w,E)},e.intersect=function(w){return mt.info("Bang intersect",e,w),rn.rect(e,w)},i}z(PAe,"bang");async function jAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,halfPadding:a,label:o}=await Xn(t,e,Wn(e)),l=s.width+2*a,c=s.height+2*a,u=.15*l,d=.25*l,f=.35*l,h=.2*l,{cssStyles:m}=e;let p;const v=`M0 0 + a${u},${u} 0 0,1 ${l*.25},${-1*l*.1} + a${f},${f} 1 0,1 ${l*.4},${-1*l*.1} + a${d},${d} 1 0,1 ${l*.35},${l*.2} + + a${u},${u} 1 0,1 ${l*.15},${c*.35} + a${h},${h} 1 0,1 ${-1*l*.15},${c*.65} + + a${d},${u} 1 0,1 ${-1*l*.25},${l*.15} + a${f},${f} 1 0,1 ${-1*l*.5},0 + a${u},${u} 1 0,1 ${-1*l*.25},${-1*l*.15} + + a${u},${u} 1 0,1 ${-1*l*.1},${-1*c*.35} + a${h},${h} 1 0,1 ${l*.1},${-1*c*.65} + H0 V0 Z`;if(e.look==="handDrawn"){const x=vn.svg(i),w=bn(e,{}),E=x.path(v,w);p=i.insert(()=>E,":first-child"),p.attr("class","basic label-container").attr("style",Uo(m))}else p=i.insert("path",":first-child").attr("class","basic label-container").attr("style",r).attr("d",v);return o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),p.attr("transform",`translate(${-l/2}, ${-c/2})`),Sn(e,p),e.calcIntersect=function(x,w){return rn.rect(x,w)},e.intersect=function(x){return mt.info("Cloud intersect",e,x),rn.rect(e,x)},i}z(jAe,"cloud");async function zAe(t,e){const{labelStyles:n,nodeStyles:r}=Cn(e);e.labelStyle=n;const{shapeSvg:i,bbox:s,halfPadding:a,label:o}=await Xn(t,e,Wn(e)),l=s.width+8*a,c=s.height+2*a,u=5,d=` + M${-l/2} ${c/2-u} + v${-c+2*u} + q0,-${u} ${u},-${u} + h${l-2*u} + q${u},0 ${u},${u} + v${c-2*u} + q0,${u} -${u},${u} + h${-l+2*u} + q-${u},0 -${u},-${u} + Z + `,f=i.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("style",r).attr("d",d);return i.append("line").attr("class","node-line-").attr("x1",-l/2).attr("y1",c/2).attr("x2",l/2).attr("y2",c/2),o.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),i.append(()=>o.node()),Sn(e,f),e.calcIntersect=function(h,m){return rn.rect(h,m)},e.intersect=function(h){return rn.rect(e,h)},i}z(zAe,"defaultMindmapNode");async function FAe(t,e){const n={padding:e.padding??0};return FY(t,e,n)}z(FAe,"mindmapCircle");var iYt=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:vAe},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:pAe},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:yAe},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:_Ae},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:BIe},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:FY},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:PAe},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:jAe},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:dAe},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:GIe},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:iAe},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:rAe},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:$Ae},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:tAe},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:qIe},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:CAe},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:MIe},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:mAe},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:wAe},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:xAe},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:VIe},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:KIe},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:PIe},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:jIe},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:zIe},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:sAe},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:AAe},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:ZIe},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:EAe},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:aAe},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:FIe},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:UIe},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:IAe},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:DAe},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:HIe},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:TAe},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:WIe},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:gAe},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:cAe},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:lAe},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:DIe},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:LIe},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:SAe},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:kAe},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:OAe},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:fAe},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:oAe}],sYt=z(()=>{const e=[...Object.entries({state:bAe,choice:NIe,note:uAe,rectWithTitle:hAe,labelRect:nAe,iconSquare:QIe,iconCircle:JIe,icon:YIe,iconRounded:XIe,imageSquare:eAe,anchor:OIe,kanbanItem:LAe,mindmapCircle:FAe,defaultMindmapNode:zAe,classBox:NAe,erBox:BY,requirementBox:RAe}),...iYt.flatMap(n=>[n.shortName,..."aliases"in n?n.aliases:[],..."internalAliases"in n?n.internalAliases:[]].map(i=>[i,n.handler]))];return Object.fromEntries(e)},"generateShapeMap"),BAe=sYt();function aYt(t){return t in BAe}z(aYt,"isValidShape");var lI=new Map;async function UAe(t,e,n){let r,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");const s=e.shape?BAe[e.shape]:void 0;if(!s)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let a;n.config.securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),r=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a??null),i=await s(r,e,n)}else i=await s(t,e,n),r=i;return e.tooltip&&i.attr("title",e.tooltip),lI.set(e.id,r),e.haveCallback&&r.attr("class",r.attr("class")+" clickable"),r}z(UAe,"insertNode");var q$n=z((t,e)=>{lI.set(e.id,t)},"setNodeElem"),H$n=z(()=>{lI.clear()},"clear"),W$n=z(t=>{const e=lI.get(t.id);mt.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const n=8,r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-n)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode"),oYt=z((t,e,n,r,i,s)=>{e.arrowTypeStart&&Sme(t,"start",e.arrowTypeStart,n,r,i,s),e.arrowTypeEnd&&Sme(t,"end",e.arrowTypeEnd,n,r,i,s)},"addEdgeMarkers"),lYt={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},Sme=z((t,e,n,r,i,s,a)=>{var d;const o=lYt[n];if(!o){mt.warn(`Unknown arrow type: ${n}`);return}const l=o.type,u=`${i}_${s}-${l}${e==="start"?"Start":"End"}`;if(a&&a.trim()!==""){const f=a.replace(/[^\dA-Za-z]/g,"_"),h=`${u}_${f}`;if(!document.getElementById(h)){const m=document.getElementById(u);if(m){const p=m.cloneNode(!0);p.id=h,p.querySelectorAll("path, circle, line").forEach(x=>{x.setAttribute("stroke",a),o.fill&&x.setAttribute("fill",a)}),(d=m.parentNode)==null||d.appendChild(p)}}t.attr(`marker-${e}`,`url(${r}#${h})`)}else t.attr(`marker-${e}`,`url(${r}#${u})`)},"addEdgeMarker"),yE=new Map,co=new Map,V$n=z(()=>{yE.clear(),co.clear()},"clear"),b3=z(t=>t?t.reduce((n,r)=>n+";"+r,""):"","getLabelStyles"),cYt=z(async(t,e)=>{let n=ja(Mi().flowchart.htmlLabels);const r=await jm(t,e.label,{style:b3(e.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1});mt.info("abc82",e,e.labelType);const i=t.insert("g").attr("class","edgeLabel"),s=i.insert("g").attr("class","label");s.node().appendChild(r);let a=r.getBBox();if(n){const l=r.children[0],c=ui(r);a=l.getBoundingClientRect(),c.attr("width",a.width),c.attr("height",a.height)}s.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),yE.set(e.id,i),e.width=a.width,e.height=a.height;let o;if(e.startLabelLeft){const l=await q1(e.startLabelLeft,b3(e.labelStyle)),c=t.insert("g").attr("class","edgeTerminals"),u=c.insert("g").attr("class","inner");o=u.node().appendChild(l);const d=l.getBBox();u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),co.get(e.id)||co.set(e.id,{}),co.get(e.id).startLeft=c,I4(o,e.startLabelLeft)}if(e.startLabelRight){const l=await q1(e.startLabelRight,b3(e.labelStyle)),c=t.insert("g").attr("class","edgeTerminals"),u=c.insert("g").attr("class","inner");o=c.node().appendChild(l),u.node().appendChild(l);const d=l.getBBox();u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),co.get(e.id)||co.set(e.id,{}),co.get(e.id).startRight=c,I4(o,e.startLabelRight)}if(e.endLabelLeft){const l=await q1(e.endLabelLeft,b3(e.labelStyle)),c=t.insert("g").attr("class","edgeTerminals"),u=c.insert("g").attr("class","inner");o=u.node().appendChild(l);const d=l.getBBox();u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),c.node().appendChild(l),co.get(e.id)||co.set(e.id,{}),co.get(e.id).endLeft=c,I4(o,e.endLabelLeft)}if(e.endLabelRight){const l=await q1(e.endLabelRight,b3(e.labelStyle)),c=t.insert("g").attr("class","edgeTerminals"),u=c.insert("g").attr("class","inner");o=u.node().appendChild(l);const d=l.getBBox();u.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),c.node().appendChild(l),co.get(e.id)||co.set(e.id,{}),co.get(e.id).endRight=c,I4(o,e.endLabelRight)}return r},"insertEdgeLabel");function I4(t,e){Mi().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}z(I4,"setTerminalWidth");var uYt=z((t,e)=>{mt.debug("Moving label abc88 ",t.id,t.label,yE.get(t.id),e);let n=e.updatedPath?e.updatedPath:e.originalPath;const r=Mi(),{subGraphTitleTotalMargin:i}=vY(r);if(t.label){const s=yE.get(t.id);let a=t.x,o=t.y;if(n){const l=Ed.calcLabelPosition(n);mt.debug("Moving label "+t.label+" from (",a,",",o,") to (",l.x,",",l.y,") abc88"),e.updatedPath&&(a=l.x,o=l.y)}s.attr("transform",`translate(${a}, ${o+i/2})`)}if(t.startLabelLeft){const s=co.get(t.id).startLeft;let a=t.x,o=t.y;if(n){const l=Ed.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);a=l.x,o=l.y}s.attr("transform",`translate(${a}, ${o})`)}if(t.startLabelRight){const s=co.get(t.id).startRight;let a=t.x,o=t.y;if(n){const l=Ed.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);a=l.x,o=l.y}s.attr("transform",`translate(${a}, ${o})`)}if(t.endLabelLeft){const s=co.get(t.id).endLeft;let a=t.x,o=t.y;if(n){const l=Ed.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);a=l.x,o=l.y}s.attr("transform",`translate(${a}, ${o})`)}if(t.endLabelRight){const s=co.get(t.id).endRight;let a=t.x,o=t.y;if(n){const l=Ed.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);a=l.x,o=l.y}s.attr("transform",`translate(${a}, ${o})`)}},"positionEdgeLabel"),dYt=z((t,e)=>{const n=t.x,r=t.y,i=Math.abs(e.x-n),s=Math.abs(e.y-r),a=t.width/2,o=t.height/2;return i>=a||s>=o},"outsideNode"),fYt=z((t,e,n)=>{mt.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(n)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const r=t.x,i=t.y,s=Math.abs(r-n.x),a=t.width/2;let o=n.xMath.abs(r-e.x)*l){let d=n.y{mt.warn("abc88 cutPathAtIntersect",t,e);let n=[],r=t[0],i=!1;return t.forEach(s=>{if(mt.info("abc88 checking point",s,e),!dYt(e,s)&&!i){const a=fYt(e,r,s);mt.debug("abc88 inside",s,r,a),mt.debug("abc88 intersection",a,e);let o=!1;n.forEach(l=>{o=o||l.x===a.x&&l.y===a.y}),n.some(l=>l.x===a.x&&l.y===a.y)?mt.warn("abc88 no intersect",a,n):n.push(a),i=!0}else mt.warn("abc88 outside",s,r),r=s,i||n.push(s)}),mt.debug("returning points",n),n},"cutPathAtIntersect");function qAe(t){const e=[],n=[];for(let r=1;r5&&Math.abs(s.y-i.y)>5||i.y===s.y&&s.x===a.x&&Math.abs(s.x-i.x)>5&&Math.abs(s.y-a.y)>5)&&(e.push(s),n.push(r))}return{cornerPoints:e,cornerPointPositions:n}}z(qAe,"extractCornerPoints");var Eme=z(function(t,e,n){const r=e.x-t.x,i=e.y-t.y,s=Math.sqrt(r*r+i*i),a=n/s;return{x:e.x-a*r,y:e.y-a*i}},"findAdjacentPoint"),hYt=z(function(t){const{cornerPointPositions:e}=qAe(t),n=[];for(let r=0;r10&&Math.abs(s.y-i.y)>=10){mt.debug("Corner point fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));const h=5;a.x===o.x?f={x:c<0?o.x-h+d:o.x+h-d,y:u<0?o.y-d:o.y+d}:f={x:c<0?o.x-d:o.x+d,y:u<0?o.y-h+d:o.y+h-d}}else mt.debug("Corner point skipping fixing",Math.abs(s.x-i.x),Math.abs(s.y-i.y));n.push(f,l)}else n.push(t[r]);return n},"fixCorners"),pYt=z(function(t,e,n,r,i,s,a){var O;const{handDrawnSeed:o}=Mi();let l=e.points,c=!1;const u=i;var d=s;const f=[];for(const D in e.cssCompiledStyles)xTe(D)||f.push(e.cssCompiledStyles[D]);d.intersect&&u.intersect&&(l=l.slice(1,e.points.length-1),l.unshift(u.intersect(l[0])),mt.debug("Last point APA12",e.start,"-->",e.end,l[l.length-1],d,d.intersect(l[l.length-1])),l.push(d.intersect(l[l.length-1]))),e.toCluster&&(mt.info("to cluster abc88",n.get(e.toCluster)),l=Cme(e.points,n.get(e.toCluster).node),c=!0),e.fromCluster&&(mt.debug("from cluster abc88",n.get(e.fromCluster),JSON.stringify(l,null,2)),l=Cme(l.reverse(),n.get(e.fromCluster).node).reverse(),c=!0);let h=l.filter(D=>!Number.isNaN(D.y));h=hYt(h);let m=e9;switch(m=KC,e.curve){case"linear":m=KC;break;case"basis":m=e9;break;case"cardinal":m=SEe;break;case"bumpX":m=bEe;break;case"bumpY":m=xEe;break;case"catmullRom":m=EEe;break;case"monotoneX":m=DEe;break;case"monotoneY":m=MEe;break;case"natural":m=REe;break;case"step":m=LEe;break;case"stepAfter":m=jEe;break;case"stepBefore":m=PEe;break;default:m=e9}const{x:p,y:v}=hWt(e),x=Yqt().x(p).y(v).curve(m);let w;switch(e.thickness){case"normal":w="edge-thickness-normal";break;case"thick":w="edge-thickness-thick";break;case"invisible":w="edge-thickness-invisible";break;default:w="edge-thickness-normal"}switch(e.pattern){case"solid":w+=" edge-pattern-solid";break;case"dotted":w+=" edge-pattern-dotted";break;case"dashed":w+=" edge-pattern-dashed";break;default:w+=" edge-pattern-solid"}let E,S=x(h);const _=Array.isArray(e.style)?e.style:e.style?[e.style]:[];let C=_.find(D=>D==null?void 0:D.startsWith("stroke:"));if(e.look==="handDrawn"){const D=vn.svg(t);Object.assign([],h);const N=D.path(S,{roughness:.3,seed:o});w+=" transition",E=ui(N).select("path").attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((q,W)=>q+";"+W,""):"");let R=E.attr("d");E.attr("d",R),t.node().appendChild(E.node())}else{const D=f.join(";"),N=_?_.reduce((W,G)=>W+G+";",""):"";let R="";e.animate&&(R=" edge-animation-fast"),e.animation&&(R=" edge-animation-"+e.animation);const q=D?D+";"+N+";":N;E=t.append("path").attr("d",S).attr("id",e.id).attr("class"," "+w+(e.classes?" "+e.classes:"")+(R??"")).attr("style",q),C=(O=q.match(/stroke:([^;]+)/))==null?void 0:O[1]}let T="";(Mi().flowchart.arrowMarkerAbsolute||Mi().state.arrowMarkerAbsolute)&&(T=BCe(!0)),mt.info("arrowTypeStart",e.arrowTypeStart),mt.info("arrowTypeEnd",e.arrowTypeEnd),oYt(E,e,T,a,r,C);const M=Math.floor(l.length/2),A=l[M];Ed.isLabelCoordinateInPath(A,E.attr("d"))||(c=!0);let $={};return c&&($.updatedPath=l),$.originalPath=e.points,$},"insertEdge"),mYt=z((t,e,n,r)=>{e.forEach(i=>{OYt[i](t,n,r)})},"insertMarkers"),gYt=z((t,e,n)=>{mt.trace("Making markers for ",n),t.append("defs").append("marker").attr("id",n+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",n+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),vYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",n+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),yYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",n+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),bYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",n+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),xYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",n+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),wYt=z((t,e,n)=>{t.append("marker").attr("id",n+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",n+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),_Yt=z((t,e,n)=>{t.append("marker").attr("id",n+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",n+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),kYt=z((t,e,n)=>{t.append("marker").attr("id",n+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",n+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),SYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),CYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",n+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),EYt=z((t,e,n)=>{const r=t.append("defs").append("marker").attr("id",n+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("d","M9,0 L9,18");const i=t.append("defs").append("marker").attr("id",n+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),$Yt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",n+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),TYt=z((t,e,n)=>{const r=t.append("defs").append("marker").attr("id",n+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const i=t.append("defs").append("marker").attr("id",n+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),IYt=z((t,e,n)=>{t.append("defs").append("marker").attr("id",n+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 + L20,10 + M20,10 + L0,20`)},"requirement_arrow"),AYt=z((t,e,n)=>{const r=t.append("defs").append("marker").attr("id",n+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");r.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),r.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),r.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),OYt={extension:gYt,composition:vYt,aggregation:yYt,dependency:bYt,lollipop:xYt,point:wYt,circle:_Yt,cross:kYt,barb:SYt,only_one:CYt,zero_or_one:EYt,one_or_more:$Yt,zero_or_more:TYt,requirement_arrow:IYt,requirement_contains:AYt},DYt=mYt,MYt={common:o5,getConfig:Fo,insertCluster:UKt,insertEdge:pYt,insertEdgeLabel:cYt,insertMarkers:DYt,insertNode:UAe,interpolateToCurve:_Y,labelHelper:Xn,log:mt,positionEdgeLabel:uYt},yw={},HAe=z(t=>{for(const e of t)yw[e.name]=e},"registerLayoutLoaders"),NYt=z(()=>{HAe([{name:"dagre",loader:z(async()=>await Ci(()=>import("./dagre-5GWH7T2D.js"),__vite__mapDeps([0,1,2,3,4,5,6])),"loader")},{name:"cose-bilkent",loader:z(async()=>await Ci(()=>import("./cose-bilkent-S5V4N54A.js"),__vite__mapDeps([7,8,6])),"loader")}])},"registerDefaultLayoutLoaders");NYt();var Z$n=z(async(t,e)=>{if(!(t.layoutAlgorithm in yw))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);const n=yw[t.layoutAlgorithm];return(await n.loader()).render(t,e,MYt,{algorithm:n.algorithm})},"render"),G$n=z((t="",{fallback:e="dagre"}={})=>{if(t in yw)return t;if(e in yw)return mt.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm"),WAe="comm",VAe="rule",ZAe="decl",RYt="@import",LYt="@namespace",PYt="@keyframes",jYt="@layer",GAe=Math.abs,UY=String.fromCharCode;function KAe(t){return t.trim()}function a9(t,e,n){return t.replace(e,n)}function zYt(t,e,n){return t.indexOf(e,n)}function ay(t,e){return t.charCodeAt(e)|0}function Qy(t,e,n){return t.slice(e,n)}function df(t){return t.length}function FYt(t){return t.length}function NS(t,e){return e.push(t),t}var cI=1,eb=1,YAe=0,Yu=0,ma=0,f5="";function qY(t,e,n,r,i,s,a,o){return{value:t,root:e,parent:n,type:r,props:i,children:s,line:cI,column:eb,length:a,return:"",siblings:o}}function BYt(){return ma}function UYt(){return ma=Yu>0?ay(f5,--Yu):0,eb--,ma===10&&(eb=1,cI--),ma}function Rd(){return ma=Yu2||bw(ma)>3?"":" "}function VYt(t,e){for(;--e&&Rd()&&!(ma<48||ma>102||ma>57&&ma<65||ma>70&&ma<97););return uI(t,o9()+(e<6&&E0()==32&&Rd()==32))}function zW(t){for(;Rd();)switch(ma){case t:return Yu;case 34:case 39:t!==34&&t!==39&&zW(ma);break;case 40:t===41&&zW(t);break;case 92:Rd();break}return Yu}function ZYt(t,e){for(;Rd()&&t+ma!==57;)if(t+ma===84&&E0()===47)break;return"/*"+uI(e,Yu-1)+"*"+UY(t===47?t:Rd())}function GYt(t){for(;!bw(E0());)Rd();return uI(t,Yu)}function KYt(t){return HYt(l9("",null,null,null,[""],t=qYt(t),0,[0],t))}function l9(t,e,n,r,i,s,a,o,l){for(var c=0,u=0,d=a,f=0,h=0,m=0,p=1,v=1,x=1,w=0,E="",S=i,_=s,C=r,T=E;v;)switch(m=w,w=Rd()){case 40:if(m!=108&&ay(T,d-1)==58){zYt(T+=a9(gj(w),"&","&\f"),"&\f",GAe(c?o[c-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:T+=gj(w);break;case 9:case 10:case 13:case 32:T+=WYt(m);break;case 92:T+=VYt(o9()-1,7);continue;case 47:switch(E0()){case 42:case 47:NS(YYt(ZYt(Rd(),o9()),e,n,l),l),(bw(m||1)==5||bw(E0()||1)==5)&&df(T)&&Qy(T,-1,void 0)!==" "&&(T+=" ");break;default:T+="/"}break;case 123*p:o[c++]=df(T)*x;case 125*p:case 59:case 0:switch(w){case 0:case 125:v=0;case 59+u:x==-1&&(T=a9(T,/\f/g,"")),h>0&&(df(T)-d||p===0&&m===47)&&NS(h>32?Tme(T+";",r,n,d-1,l):Tme(a9(T," ","")+";",r,n,d-2,l),l);break;case 59:T+=";";default:if(NS(C=$me(T,e,n,c,u,i,o,E,S=[],_=[],d,s),s),w===123)if(u===0)l9(T,e,C,C,S,s,d,o,_);else{switch(f){case 99:if(ay(T,3)===110)break;case 108:if(ay(T,2)===97)break;default:u=0;case 100:case 109:case 115:}u?l9(t,C,C,r&&NS($me(t,C,C,0,0,i,o,E,i,S=[],d,_),_),i,_,d,o,r?S:_):l9(T,C,C,C,[""],_,0,o,_)}}c=u=h=0,p=x=1,E=T="",d=a;break;case 58:d=1+df(T),h=m;default:if(p<1){if(w==123)--p;else if(w==125&&p++==0&&UYt()==125)continue}switch(T+=UY(w),w*p){case 38:x=u>0?1:(T+="\f",-1);break;case 44:o[c++]=(df(T)-1)*x,x=1;break;case 64:E0()===45&&(T+=gj(Rd())),f=E0(),u=d=df(E=T+=GYt(o9())),w++;break;case 45:m===45&&df(T)==2&&(p=0)}}return s}function $me(t,e,n,r,i,s,a,o,l,c,u,d){for(var f=i-1,h=i===0?s:[""],m=FYt(h),p=0,v=0,x=0;p0?h[w]+" "+E:a9(E,/&\f/g,h[w])))&&(l[x++]=S);return qY(t,e,n,i===0?VAe:o,l,c,u,d)}function YYt(t,e,n,r){return qY(t,e,n,WAe,UY(BYt()),Qy(t,2,-2),0,r)}function Tme(t,e,n,r,i){return qY(t,e,n,ZAe,Qy(t,0,r),Qy(t,r+1,-1),r,i)}function FW(t,e){for(var n="",r=0;r/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),hJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./c4Diagram-FPNF74CW.js");return{diagram:e}},__vite__mapDeps([9,10,6]));return{id:JAe,diagram:t}},"loader"),pJt={id:JAe,detector:fJt,loader:hJt},mJt=pJt,XAe="flowchart",gJt=z((t,e)=>{var n,r;return((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},"detector"),vJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./flowDiagram-PVAE7QVJ.js");return{diagram:e}},__vite__mapDeps([11,12,13,14,15,6]));return{id:XAe,diagram:t}},"loader"),yJt={id:XAe,detector:gJt,loader:vJt},bJt=yJt,QAe="flowchart-v2",xJt=z((t,e)=>{var n,r,i;return((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-d3"?!1:(((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t))},"detector"),wJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./flowDiagram-PVAE7QVJ.js");return{diagram:e}},__vite__mapDeps([11,12,13,14,15,6]));return{id:QAe,diagram:t}},"loader"),_Jt={id:QAe,detector:xJt,loader:wJt},kJt=_Jt,eOe="er",SJt=z(t=>/^\s*erDiagram/.test(t),"detector"),CJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./erDiagram-AWTI2OKA.js");return{diagram:e}},__vite__mapDeps([16,13,14,15,6]));return{id:eOe,diagram:t}},"loader"),EJt={id:eOe,detector:SJt,loader:CJt},$Jt=EJt,tOe="gitGraph",TJt=z(t=>/^\s*gitGraph/.test(t),"detector"),IJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./gitGraphDiagram-NY62KEGX.js");return{diagram:e}},__vite__mapDeps([17,18,19,20,2,4,5,6]));return{id:tOe,diagram:t}},"loader"),AJt={id:tOe,detector:TJt,loader:IJt},OJt=AJt,nOe="gantt",DJt=z(t=>/^\s*gantt/.test(t),"detector"),MJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./ganttDiagram-OWAHRB6G.js");return{diagram:e}},__vite__mapDeps([21,6,22,23,24]));return{id:nOe,diagram:t}},"loader"),NJt={id:nOe,detector:DJt,loader:MJt},RJt=NJt,rOe="info",LJt=z(t=>/^\s*info/.test(t),"detector"),PJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./infoDiagram-STP46IZ2.js");return{diagram:e}},__vite__mapDeps([25,20,2,4,5,6]));return{id:rOe,diagram:t}},"loader"),jJt={id:rOe,detector:LJt,loader:PJt},iOe="pie",zJt=z(t=>/^\s*pie/.test(t),"detector"),FJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./pieDiagram-ADFJNKIX.js");return{diagram:e}},__vite__mapDeps([26,18,20,2,4,5,27,28,23,6]));return{id:iOe,diagram:t}},"loader"),BJt={id:iOe,detector:zJt,loader:FJt},sOe="quadrantChart",UJt=z(t=>/^\s*quadrantChart/.test(t),"detector"),qJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./quadrantDiagram-LMRXKWRM.js");return{diagram:e}},__vite__mapDeps([29,22,23,24,6]));return{id:sOe,diagram:t}},"loader"),HJt={id:sOe,detector:UJt,loader:qJt},WJt=HJt,aOe="xychart",VJt=z(t=>/^\s*xychart(-beta)?/.test(t),"detector"),ZJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./xychartDiagram-6GGTOJPD.js");return{diagram:e}},__vite__mapDeps([30,23,28,22,24,6]));return{id:aOe,diagram:t}},"loader"),GJt={id:aOe,detector:VJt,loader:ZJt},KJt=GJt,oOe="requirement",YJt=z(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),JJt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./requirementDiagram-4UW4RH46.js");return{diagram:e}},__vite__mapDeps([31,13,14,6]));return{id:oOe,diagram:t}},"loader"),XJt={id:oOe,detector:YJt,loader:JJt},QJt=XJt,lOe="sequence",eXt=z(t=>/^\s*sequenceDiagram/.test(t),"detector"),tXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./sequenceDiagram-C3RYC4MD.js");return{diagram:e}},__vite__mapDeps([32,10,19,6]));return{id:lOe,diagram:t}},"loader"),nXt={id:lOe,detector:eXt,loader:tXt},rXt=nXt,cOe="class",iXt=z((t,e)=>{var n;return((n=e==null?void 0:e.class)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},"detector"),sXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./classDiagram-KNZD7YFC.js");return{diagram:e}},__vite__mapDeps([33,34,12,13,14,6]));return{id:cOe,diagram:t}},"loader"),aXt={id:cOe,detector:iXt,loader:sXt},oXt=aXt,uOe="classDiagram",lXt=z((t,e)=>{var n;return/^\s*classDiagram/.test(t)&&((n=e==null?void 0:e.class)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},"detector"),cXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./classDiagram-v2-RKCZMP56.js");return{diagram:e}},__vite__mapDeps([35,34,12,13,14,6]));return{id:uOe,diagram:t}},"loader"),uXt={id:uOe,detector:lXt,loader:cXt},dXt=uXt,dOe="state",fXt=z((t,e)=>{var n;return((n=e==null?void 0:e.state)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},"detector"),hXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./stateDiagram-KXAO66HF.js");return{diagram:e}},__vite__mapDeps([36,37,13,14,1,2,3,4,6]));return{id:dOe,diagram:t}},"loader"),pXt={id:dOe,detector:fXt,loader:hXt},mXt=pXt,fOe="stateDiagram",gXt=z((t,e)=>{var n;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((n=e==null?void 0:e.state)==null?void 0:n.defaultRenderer)==="dagre-wrapper")},"detector"),vXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./stateDiagram-v2-UMBNRL4Z.js");return{diagram:e}},__vite__mapDeps([38,37,13,14,6]));return{id:fOe,diagram:t}},"loader"),yXt={id:fOe,detector:gXt,loader:vXt},bXt=yXt,hOe="journey",xXt=z(t=>/^\s*journey/.test(t),"detector"),wXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./journeyDiagram-BIP6EPQ6.js");return{diagram:e}},__vite__mapDeps([39,10,12,27,6]));return{id:hOe,diagram:t}},"loader"),_Xt={id:hOe,detector:xXt,loader:wXt},kXt=_Xt,SXt=z((t,e,n)=>{mt.debug(`rendering svg for syntax error +`);const r=sHt(e),i=r.append("g");r.attr("viewBox","0 0 2412 512"),UCe(r,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${n}`)},"draw"),pOe={draw:SXt},CXt=pOe,EXt={db:{},renderer:pOe,parser:{parse:z(()=>{},"parse")}},$Xt=EXt,mOe="flowchart-elk",TXt=z((t,e={})=>{var n;return/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"?(e.layout="elk",!0):!1},"detector"),IXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./flowDiagram-PVAE7QVJ.js");return{diagram:e}},__vite__mapDeps([11,12,13,14,15,6]));return{id:mOe,diagram:t}},"loader"),AXt={id:mOe,detector:TXt,loader:IXt},OXt=AXt,gOe="timeline",DXt=z(t=>/^\s*timeline/.test(t),"detector"),MXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./timeline-definition-XQNQX7LJ.js");return{diagram:e}},__vite__mapDeps([40,27,6]));return{id:gOe,diagram:t}},"loader"),NXt={id:gOe,detector:DXt,loader:MXt},RXt=NXt,vOe="mindmap",LXt=z(t=>/^\s*mindmap/.test(t),"detector"),PXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./mindmap-definition-Q6HEUPPD.js");return{diagram:e}},__vite__mapDeps([41,13,14,6]));return{id:vOe,diagram:t}},"loader"),jXt={id:vOe,detector:LXt,loader:PXt},zXt=jXt,yOe="kanban",FXt=z(t=>/^\s*kanban/.test(t),"detector"),BXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./kanban-definition-6OIFK2YF.js");return{diagram:e}},__vite__mapDeps([42,12,6]));return{id:yOe,diagram:t}},"loader"),UXt={id:yOe,detector:FXt,loader:BXt},qXt=UXt,bOe="sankey",HXt=z(t=>/^\s*sankey(-beta)?/.test(t),"detector"),WXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./sankeyDiagram-GR3RE2ED.js");return{diagram:e}},__vite__mapDeps([43,28,23,6]));return{id:bOe,diagram:t}},"loader"),VXt={id:bOe,detector:HXt,loader:WXt},ZXt=VXt,xOe="packet",GXt=z(t=>/^\s*packet(-beta)?/.test(t),"detector"),KXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./diagram-S2PKOQOG.js");return{diagram:e}},__vite__mapDeps([44,18,20,2,4,5,6]));return{id:xOe,diagram:t}},"loader"),YXt={id:xOe,detector:GXt,loader:KXt},wOe="radar",JXt=z(t=>/^\s*radar-beta/.test(t),"detector"),XXt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./diagram-QEK2KX5R.js");return{diagram:e}},__vite__mapDeps([45,18,20,2,4,5,6]));return{id:wOe,diagram:t}},"loader"),QXt={id:wOe,detector:JXt,loader:XXt},_Oe="block",eQt=z(t=>/^\s*block(-beta)?/.test(t),"detector"),tQt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./blockDiagram-QIGZ2CNN.js");return{diagram:e}},__vite__mapDeps([46,12,5,2,1,15,6]));return{id:_Oe,diagram:t}},"loader"),nQt={id:_Oe,detector:eQt,loader:tQt},rQt=nQt,kOe="architecture",iQt=z(t=>/^\s*architecture/.test(t),"detector"),sQt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./architectureDiagram-W76B3OCA.js");return{diagram:e}},__vite__mapDeps([47,18,20,2,4,5,8,6]));return{id:kOe,diagram:t}},"loader"),aQt={id:kOe,detector:iQt,loader:sQt},oQt=aQt,SOe="treemap",lQt=z(t=>/^\s*treemap/.test(t),"detector"),cQt=z(async()=>{const{diagram:t}=await Ci(async()=>{const{diagram:e}=await import("./diagram-N5W7TBWH.js");return{diagram:e}},__vite__mapDeps([48,14,18,20,2,4,5,24,28,23,6]));return{id:SOe,diagram:t}},"loader"),uQt={id:SOe,detector:lQt,loader:cQt},Rme=!1,dI=z(()=>{Rme||(Rme=!0,UC("error",$Xt,t=>t.toLowerCase().trim()==="error"),UC("---",{db:{clear:z(()=>{},"clear")},styles:{},renderer:{draw:z(()=>{},"draw")},parser:{parse:z(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:z(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),XH(OXt,zXt,oQt),XH(mJt,qXt,dXt,oXt,$Jt,RJt,jJt,BJt,QJt,rXt,kJt,bJt,RXt,OJt,bXt,mXt,kXt,WJt,ZXt,YXt,KJt,rQt,QXt,uQt))},"addDiagrams"),dQt=z(async()=>{mt.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Dg).map(async([n,{detector:r,loader:i}])=>{if(i)try{nW(n)}catch{try{const{diagram:s,id:a}=await i();UC(a,s,r)}catch(s){throw mt.error(`Failed to load external diagram with key ${n}. Removing from detectors.`),delete Dg[n],s}}}))).filter(n=>n.status==="rejected");if(e.length>0){mt.error(`Failed to load ${e.length} external diagrams`);for(const n of e)mt.error(n);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams"),fQt="graphics-document document";function COe(t,e){t.attr("role",fQt),e!==""&&t.attr("aria-roledescription",e)}z(COe,"setA11yDiagramInfo");function EOe(t,e,n,r){if(t.insert!==void 0){if(n){const i=`chart-desc-${r}`;t.attr("aria-describedby",i),t.insert("desc",":first-child").attr("id",i).text(n)}if(e){const i=`chart-title-${r}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}z(EOe,"addSVGa11yTitleDescription");var pg,WW=(pg=class{constructor(e,n,r,i,s){this.type=e,this.text=n,this.db=r,this.parser=i,this.renderer=s}static async fromText(e,n={}){var c,u;const r=Fo(),i=WK(e,r);e=dGt(e)+` +`;try{nW(i)}catch{const d=Lzt(i);if(!d)throw new ICe(`Diagram ${i} not found.`);const{id:f,diagram:h}=await d();UC(f,h)}const{db:s,parser:a,renderer:o,init:l}=nW(i);return a.parser&&(a.parser.yy=s),(c=s.clear)==null||c.call(s),l==null||l(r),n.title&&((u=s.setDiagramTitle)==null||u.call(s,n.title)),await a.parse(e),new pg(i,e,s,a,o)}async render(e,n){await this.renderer.draw(this.text,e,n,this)}getParser(){return this.parser}getType(){return this.type}},z(pg,"Diagram"),pg),Lme=[],hQt=z(()=>{Lme.forEach(t=>{t()}),Lme=[]},"attachFunctions"),pQt=z(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function $Oe(t){const e=t.match(TCe);if(!e)return{text:t,metadata:{}};let n=fWt(e[1],{schema:dWt})??{};n=typeof n=="object"&&!Array.isArray(n)?n:{};const r={};return n.displayMode&&(r.displayMode=n.displayMode.toString()),n.title&&(r.title=n.title.toString()),n.config&&(r.config=n.config),{text:t.slice(e[0].length),metadata:r}}z($Oe,"extractFrontMatter");var mQt=z(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,n,r)=>"<"+n+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),gQt=z(t=>{const{text:e,metadata:n}=$Oe(t),{displayMode:r,title:i,config:s={}}=n;return r&&(s.gantt||(s.gantt={}),s.gantt.displayMode=r),{title:i,config:s,text:e}},"processFrontmatter"),vQt=z(t=>{const e=Ed.detectInit(t)??{},n=Ed.detectDirective(t,"wrap");return Array.isArray(n)?e.wrap=n.some(({type:r})=>r==="wrap"):(n==null?void 0:n.type)==="wrap"&&(e.wrap=!0),{text:XZt(t),directive:e}},"processDirectives");function HY(t){const e=mQt(t),n=gQt(e),r=vQt(n.text),i=$Y(n.config,r.directive);return t=pQt(r.text),{code:t,title:n.title,config:i}}z(HY,"preprocessDiagram");function TOe(t){const e=new TextEncoder().encode(t),n=Array.from(e,r=>String.fromCodePoint(r)).join("");return btoa(n)}z(TOe,"toBase64");var yQt=5e4,bQt="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",xQt="sandbox",wQt="loose",_Qt="http://www.w3.org/2000/svg",kQt="http://www.w3.org/1999/xlink",SQt="http://www.w3.org/1999/xhtml",CQt="100%",EQt="100%",$Qt="border:0;margin:0;",TQt="margin:0",IQt="allow-top-navigation-by-user-activation allow-popups",AQt='The "iframe" tag is not supported by your browser.',OQt=["foreignobject"],DQt=["dominant-baseline"];function WY(t){const e=HY(t);return FC(),Xzt(e.config??{}),e}z(WY,"processAndSetConfigs");async function IOe(t,e){dI();try{const{code:n,config:r}=WY(t);return{diagramType:(await OOe(n)).type,config:r}}catch(n){if(e!=null&&e.suppressErrors)return!1;throw n}}z(IOe,"parse");var Pme=z((t,e,n=[])=>` +.${t} ${e} { ${n.join(" !important; ")} !important; }`,"cssImportantStyles"),MQt=z((t,e=new Map)=>{var r;let n="";if(t.themeCSS!==void 0&&(n+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(n+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(n+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){const o=t.htmlLabels??((r=t.flowchart)==null?void 0:r.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{Nme(l.styles)||o.forEach(c=>{n+=Pme(l.id,c,l.styles)}),Nme(l.textStyles)||(n+=Pme(l.id,"tspan",((l==null?void 0:l.textStyles)||[]).map(c=>c.replace("color","fill"))))})}return n},"createCssStyles"),NQt=z((t,e,n,r)=>{const i=MQt(t,n),s=vFt(e,i,t.themeVariables);return FW(KYt(`${r}{${s}}`),JYt)},"createUserStyles"),RQt=z((t="",e,n)=>{let r=t;return!n&&!e&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=v2(r),r=r.replace(/
    /g,"
    "),r},"cleanUpSvgCode"),LQt=z((t="",e)=>{var i,s;const n=(s=(i=e==null?void 0:e.viewBox)==null?void 0:i.baseVal)!=null&&s.height?e.viewBox.baseVal.height+"px":EQt,r=TOe(`${t}`);return``},"putIntoIFrame"),jme=z((t,e,n,r,i)=>{const s=t.append("div");s.attr("id",n),r&&s.attr("style",r);const a=s.append("svg").attr("id",e).attr("width","100%").attr("xmlns",_Qt);return i&&a.attr("xmlns:xlink",i),a.append("g"),t},"appendDivSvgG");function VW(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}z(VW,"sandboxedIframe");var PQt=z((t,e,n,r)=>{var i,s,a;(i=t.getElementById(e))==null||i.remove(),(s=t.getElementById(n))==null||s.remove(),(a=t.getElementById(r))==null||a.remove()},"removeExistingElements"),jQt=z(async function(t,e,n){var D,N,R,q,W,G;dI();const r=WY(e);e=r.code;const i=Fo();mt.debug(i),e.length>((i==null?void 0:i.maxTextSize)??yQt)&&(e=bQt);const s="#"+t,a="i"+t,o="#"+a,l="d"+t,c="#"+l,u=z(()=>{const J=ui(f?o:c).node();J&&"remove"in J&&J.remove()},"removeTempElements");let d=ui("body");const f=i.securityLevel===xQt,h=i.securityLevel===wQt,m=i.fontFamily;if(n!==void 0){if(n&&(n.innerHTML=""),f){const U=VW(ui(n),a);d=ui(U.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ui(n);jme(d,t,l,`font-family: ${m}`,kQt)}else{if(PQt(document,t,l,a),f){const U=VW(ui("body"),a);d=ui(U.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ui("body");jme(d,t,l)}let p,v;try{p=await WW.fromText(e,{title:r.title})}catch(U){if(i.suppressErrorRendering)throw u(),U;p=await WW.fromText("error"),v=U}const x=d.select(c).node(),w=p.type,E=x.firstChild,S=E.firstChild,_=(N=(D=p.renderer).getClasses)==null?void 0:N.call(D,e,p),C=NQt(i,w,_,s),T=document.createElement("style");T.innerHTML=C,E.insertBefore(T,S);try{await p.renderer.draw(e,t,p0e.version,p)}catch(U){throw i.suppressErrorRendering?u():CXt.draw(e,t,p0e.version),U}const M=d.select(`${c} svg`),A=(q=(R=p.db).getAccTitle)==null?void 0:q.call(R),$=(G=(W=p.db).getAccDescription)==null?void 0:G.call(W);DOe(w,M,A,$),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",SQt);let O=d.select(c).node().innerHTML;if(mt.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),O=RQt(O,f,ja(i.arrowMarkerAbsolute)),f){const U=d.select(c+" svg").node();O=LQt(O,U)}else h||(O=Og.sanitize(O,{ADD_TAGS:OQt,ADD_ATTR:DQt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(hQt(),v)throw v;return u(),{diagramType:w,svg:O,bindFunctions:p.db.bindFunctions}},"render");function AOe(t={}){var r;const e=Ra({},t);e!=null&&e.fontFamily&&!((r=e.themeVariables)!=null&&r.fontFamily)&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),Yzt(e),e!=null&&e.theme&&e.theme in rp?e.themeVariables=rp[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=rp.default.getThemeVariables(e.themeVariables));const n=typeof e=="object"?Kzt(e):NCe();HK(n.logLevel),dI()}z(AOe,"initialize");var OOe=z((t,e={})=>{const{code:n}=HY(t);return WW.fromText(n,e)},"getDiagramFromText");function DOe(t,e,n,r){COe(e,t),EOe(e,n,r,e.attr("id"))}z(DOe,"addA11yInfo");var jg=Object.freeze({render:jQt,parse:IOe,getDiagramFromText:OOe,initialize:AOe,getConfig:Fo,setConfig:RCe,getSiteConfig:NCe,updateSiteConfig:Jzt,reset:z(()=>{FC()},"reset"),globalReset:z(()=>{FC(Zy)},"globalReset"),defaultConfig:Zy});HK(Fo().logLevel);FC(Fo());var zQt=z((t,e,n)=>{mt.warn(t),EY(t)?(n&&n(t.str,t.hash),e.push({...t,message:t.str,error:t})):(n&&n(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),MOe=z(async function(t={querySelector:".mermaid"}){try{await FQt(t)}catch(e){if(EY(e)&&mt.error(e.str),Uc.parseError&&Uc.parseError(e),!t.suppressErrors)throw mt.error("Use the suppressErrors option to suppress these errors"),e}},"run"),FQt=z(async function({postRenderCallback:t,querySelector:e,nodes:n}={querySelector:".mermaid"}){const r=jg.getConfig();mt.debug(`${t?"":"No "}Callback function found`);let i;if(n)i=n;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");mt.debug(`Found ${i.length} diagrams`),(r==null?void 0:r.startOnLoad)!==void 0&&(mt.debug("Start On Load: "+(r==null?void 0:r.startOnLoad)),jg.updateSiteConfig({startOnLoad:r==null?void 0:r.startOnLoad}));const s=new Ed.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed);let a;const o=[];for(const l of Array.from(i)){if(mt.info("Rendering diagram: "+l.id),l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const c=`mermaid-${s.next()}`;a=l.innerHTML,a=nIe(Ed.entityDecode(a)).trim().replace(//gi,"
    ");const u=Ed.detectInit(a);u&&mt.debug("Detected early reinit: ",u);try{const{svg:d,bindFunctions:f}=await POe(c,a,l);l.innerHTML=d,t&&await t(c),f&&f(l)}catch(d){zQt(d,o,Uc.parseError)}}if(o.length>0)throw o[0]},"runThrowsErrors"),NOe=z(function(t){jg.initialize(t)},"initialize"),BQt=z(async function(t,e,n){mt.warn("mermaid.init is deprecated. Please use run instead."),t&&NOe(t);const r={postRenderCallback:n,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await MOe(r)},"init"),UQt=z(async(t,{lazyLoad:e=!0}={})=>{dI(),XH(...t),e===!1&&await dQt()},"registerExternalDiagrams"),ROe=z(function(){if(Uc.startOnLoad){const{startOnLoad:t}=jg.getConfig();t&&Uc.run().catch(e=>mt.error("Mermaid failed to initialize",e))}},"contentLoaded");typeof document<"u"&&window.addEventListener("load",ROe,!1);var qQt=z(function(t){Uc.parseError=t},"setParseErrorHandler"),bE=[],vj=!1,LOe=z(async()=>{if(!vj){for(vj=!0;bE.length>0;){const t=bE.shift();if(t)try{await t()}catch(e){mt.error("Error executing queue",e)}}vj=!1}},"executeQueue"),HQt=z(async(t,e)=>new Promise((n,r)=>{const i=z(()=>new Promise((s,a)=>{jg.parse(t,e).then(o=>{s(o),n(o)},o=>{var l;mt.error("Error parsing",o),(l=Uc.parseError)==null||l.call(Uc,o),a(o),r(o)})}),"performCall");bE.push(i),LOe().catch(r)}),"parse"),POe=z((t,e,n)=>new Promise((r,i)=>{const s=z(()=>new Promise((a,o)=>{jg.render(t,e,n).then(l=>{a(l),r(l)},l=>{var c;mt.error("Error parsing",l),(c=Uc.parseError)==null||c.call(Uc,l),o(l),i(l)})}),"performCall");bE.push(s),LOe().catch(i)}),"render"),WQt=z(()=>Object.keys(Dg).map(t=>({id:t})),"getRegisteredDiagramsMetadata"),Uc={startOnLoad:!0,mermaidAPI:jg,parse:HQt,render:POe,init:BQt,run:MOe,registerExternalDiagrams:UQt,registerLayoutLoaders:HAe,initialize:NOe,parseError:void 0,contentLoaded:ROe,setParseErrorHandler:qQt,detectType:WK,registerIconPacks:mKt,getRegisteredDiagramsMetadata:WQt},ZW=Uc;/*! Check if previously processed *//*! + * Wait for document loaded before starting the execution + */function VQt(t,e=500){const[n,r]=g.useState(t);return g.useEffect(()=>{const i=setTimeout(()=>{r(t)},e);return()=>{clearTimeout(i)}},[t,e]),n}function ZQt(t,e,n){const r=g.useRef(null),i=g.useRef(()=>{});g.useEffect(()=>{i.current=t},[t]),g.useEffect(()=>(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{i.current()},e),()=>{r.current&&clearTimeout(r.current)}),[e,...n])}const yj=.05,GQt={background:"#1e1e1e",primaryColor:"#4d8bf0",primaryTextColor:"#ffffff",primaryBorderColor:"#4d8bf0",secondaryColor:"#3a6db3",secondaryTextColor:"#ffffff",secondaryBorderColor:"#3a6db3",tertiaryColor:"#59bc89",tertiaryTextColor:"#ffffff",tertiaryBorderColor:"#59bc89",noteBkgColor:"#2d2d2d",noteTextColor:"#e6e6e6",noteBorderColor:"#555555",lineColor:"#8c8c8c",textColor:"#e6e6e6",mainBkg:"#252525",errorBkgColor:"#f44336",errorTextColor:"#ffffff",nodeBorder:"#555555",clusterBkg:"#2a2a2a",clusterBorder:"#555555",defaultLinkColor:"#8c8c8c",titleColor:"#e6e6e6",edgeLabelBackground:"#252525",activeTaskBkgColor:"#4caf50",activeTaskBorderColor:"#388e3c",doneTaskBkgColor:"#388e3c",doneTaskBorderColor:"#2e7d32",critBkgColor:"#f44336",critBorderColor:"#d32f2f",taskTextColor:"#e6e6e6",taskTextOutsideColor:"#e6e6e6",taskTextLightColor:"#b3b3b3",sectionBkgColor:"#2a2a2a",altSectionBkgColor:"#303030",sectionBkgColor2:"#252525",excludeBkgColor:"#2d2d2d",fillType0:"#264f78",fillType1:"#3a6db3",fillType2:"#59bc89",fillType3:"#4d8bf0",fillType4:"#3a6db3",fillType5:"#264f78",fillType6:"#59bc89",fillType7:"#4d8bf0"};ZW.initialize({startOnLoad:!1,securityLevel:"loose",theme:"dark",themeVariables:{...GQt,fontSize:"14px",fontFamily:"var(--vscode-font-family)"}});function KQt({code:t}){const e=g.useRef(null),n=g.useRef(null),r=g.useRef(null),i=g.useRef(null),[s,a]=g.useState(!1),[o,l]=g.useState("");return g.useEffect(()=>{a(!0)},[t]),ZQt(()=>{e.current&&(e.current.innerHTML="");const c=`mermaid-id-${Math.random().toString(36).substring(2)}`;(async()=>{var u,d,f,h;if(e.current){try{await ZW.parse(t);const m=await ZW.render(c,t);e.current.innerHTML=m.svg,l("");const p=SCe(e.current,{step:yj});(u=n.current)==null||u.addEventListener("click",()=>p.zoomIn({step:yj*4})),(d=r.current)==null||d.addEventListener("click",()=>p.zoomOut({step:yj*4})),(f=i.current)==null||f.addEventListener("click",()=>p.reset()),(h=e.current.parentElement)==null||h.addEventListener("wheel",v=>{v.shiftKey&&p.zoomWithWheel(v)})}catch(m){m.message?l(m.message):l("Unknown error when parsing or rendering the Mermaid diagram.")}a(!1)}})()},500,[t]),y.jsxs(y.Fragment,{children:[s&&y.jsx("div",{className:"text-vsc-foreground text-xs",children:"Generating diagram..."}),o?y.jsx("div",{className:"text-error whitespace-pre text-sm",children:o}):y.jsxs("div",{className:"mermaid relative",children:[y.jsxs("div",{className:"absolute right-0 z-10 m-2 flex items-center gap-x-1",children:[y.jsx(Ln,{content:"Zoom In",children:y.jsx(K6e,{ref:n,className:"h-4 w-4 cursor-pointer"})}),y.jsx(Ln,{content:"Zoom Out",children:y.jsx(G6e,{ref:r,className:"h-4 w-4 cursor-pointer"})}),y.jsx(Ln,{content:"Reset Zoom",children:y.jsx(w6e,{ref:i,className:"h-4 w-4 cursor-pointer"})})]}),y.jsx("div",{className:"flex min-h-5 justify-center",ref:e})]})]})}function YQt(t){const e="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+e+"]["+e+"0-9/;:$#]*",r="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",i={$pattern:n,built_in:r+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},s={begin:n,relevance:0},a={scope:"number",relevance:0,variants:[{match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{match:/[-+]?([1-9][0-9]*|0)N?/}]},o={scope:"character",variants:[{match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/,relevance:0}]},l={scope:"regex",begin:/#"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.QUOTE_STRING_MODE,{illegal:null}),u={scope:"punctuation",match:/,/,relevance:0},d=t.COMMENT(";","$",{relevance:0}),f={className:"literal",begin:/\b(true|false|nil)\b/},h={begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},m={className:"symbol",begin:"[:]{1,2}"+n},p={begin:"\\(",end:"\\)"},v={endsWithParent:!0,relevance:0},x={keywords:i,className:"name",begin:n,relevance:0,starts:v},w=[u,p,o,l,c,d,m,h,a,f,s],E={beginKeywords:r,keywords:{$pattern:n,keyword:r},end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n,relevance:0,excludeEnd:!0,endsParent:!0}].concat(w)};return p.contains=[E,x,v],v.contains=w,h.contains=w,{name:"Clojure",aliases:["clj","edn"],illegal:/\S/,contains:[u,p,o,l,c,d,m,h,a,f]}}function JQt(t){const e=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],n=[t.C_LINE_COMMENT_MODE,t.COMMENT(/\{/,/\}/,{relevance:0}),t.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"number",relevance:0,variants:[{match:/\b\d[\d_]*(\.\d[\d_]*)?/},{match:/\$[\dA-Fa-f_]+/},{match:/\$/,relevance:0},{match:/&[0-7][0-7_]*/},{match:/%[01_]+/},{match:/%/,relevance:0}]},a={className:"string",variants:[{match:/#\d[\d_]*/},{match:/#\$[\dA-Fa-f][\dA-Fa-f_]*/},{match:/#&[0-7][0-7_]*/},{match:/#%[01][01_]*/}]},o={begin:t.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[t.TITLE_MODE]},l={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:e,contains:[i,a,r].concat(n)},r].concat(n)};return{name:"Delphi",aliases:["dpr","dfm","pas","pascal"],case_insensitive:!0,keywords:e,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[i,a,s,o,l,r].concat(n)}}function XQt(t){const e=t.regex,n="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",r="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={$pattern:n,keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],literal:["false","nil","true"]},o={className:"subst",begin:/#\{/,end:/\}/,keywords:a},l={className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},u={match:/\\[\s\S]/,scope:"char.escape",relevance:0},d=`[/|([{<"']`,f=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin://}],h=_=>({scope:"char.escape",begin:e.concat(/\\/,_),relevance:0}),m={className:"string",begin:"~[a-z](?="+d+")",contains:f.map(_=>t.inherit(_,{contains:[h(_.end),u,o]}))},p={className:"string",begin:"~[A-Z](?="+d+")",contains:f.map(_=>t.inherit(_,{contains:[h(_.end)]}))},v={className:"regex",variants:[{begin:"~r(?="+d+")",contains:f.map(_=>t.inherit(_,{end:e.concat(_.end,/[uismxfU]{0,7}/),contains:[h(_.end),u,o]}))},{begin:"~R(?="+d+")",contains:f.map(_=>t.inherit(_,{end:e.concat(_.end,/[uismxfU]{0,7}/),contains:[h(_.end)]}))}]},x={className:"string",contains:[t.BACKSLASH_ESCAPE,o],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},w={className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/,contains:[t.inherit(t.TITLE_MODE,{begin:n,endsParent:!0})]},E=t.inherit(w,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),S=[x,v,p,m,t.HASH_COMMENT_MODE,E,w,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[x,{begin:r}],relevance:0},{className:"symbol",begin:n+":(?!:)",relevance:0},{className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},l,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}];return o.contains=S,{name:"Elixir",aliases:["ex","exs"],keywords:a,contains:S}}function QQt(t){const e="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",s={$pattern:e,keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"],literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","π","ℯ"],built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"]},a={keywords:s,illegal:/<\//},o={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},l={className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},c={className:"subst",begin:/\$\(/,end:/\)/,keywords:s},u={className:"variable",begin:"\\$"+e},d={className:"string",contains:[t.BACKSLASH_ESCAPE,c,u],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},f={className:"string",contains:[t.BACKSLASH_ESCAPE,c,u],begin:"`",end:"`"},h={className:"meta",begin:"@"+e},m={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return a.name="Julia",a.contains=[o,l,d,f,h,m,t.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],c.contains=a.contains,a}function een(t){const e="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",n="\\|[^]*?\\|",r="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",i={className:"literal",begin:"\\b(t{1}|nil)\\b"},s={className:"number",variants:[{begin:r,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+r+" +"+r,end:"\\)"}]},a=t.inherit(t.QUOTE_STRING_MODE,{illegal:null}),o=t.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+e},u={begin:e,relevance:0},d={begin:n},h={contains:[s,a,l,c,{begin:"\\(",end:"\\)",contains:["self",i,a,s,u]},u],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+n}]},m={variants:[{begin:"'"+e},{begin:"#'"+e+"(::"+e+")*"}]},p={begin:"\\(\\s*",end:"\\)"},v={endsWithParent:!0,relevance:0};return p.contains=[{className:"name",variants:[{begin:e,relevance:0},{begin:n}]},v],v.contains=[h,m,p,i,s,a,o,l,c,d,u],{name:"Lisp",illegal:/\S/,contains:[s,t.SHEBANG(),i,a,o,h,m,p,u]}}function ten(t){const e="('|\\.')+",n={relevance:0,contains:[{begin:e}]};return{name:"Matlab",keywords:{keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell "},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[t.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{className:"built_in",begin:/true|false/,relevance:0,starts:n},{begin:"[a-zA-Z][a-zA-Z_0-9]*"+e,relevance:0},{className:"number",begin:t.C_NUMBER_RE,relevance:0,starts:n},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:n},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}],starts:n},t.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),t.COMMENT("%","$")]}}function nen(t){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},t.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},t.inherit(t.APOS_STRING_MODE,{className:"string",relevance:0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}function ren(t){const e=["string","char","byte","int","long","bool","decimal","single","double","DateTime","xml","array","hashtable","void"],n="Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",r="-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",i={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},s=/\w[\w\d]*((-)[\w\d]+)*/,a={begin:"`[\\s\\S]",relevance:0},o={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},l={className:"literal",begin:/\$(null|true|false)\b/},c={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[a,o,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},u={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},d={className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]},f=t.inherit(t.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[d]}),h={className:"built_in",variants:[{begin:"(".concat(n,")+(-)[\\w\\d]+")}]},m={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[t.TITLE_MODE]},p={className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:s,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[o]}]},v={begin:/using\s/,end:/$/,returnBegin:!0,contains:[c,u,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},x={variants:[{className:"operator",begin:"(".concat(r,")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},w={className:"selector-tag",begin:/@\B/,relevance:0},E={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(i.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},t.inherit(t.TITLE_MODE,{endsParent:!0})]},S=[E,f,a,t.NUMBER_MODE,c,u,h,o,l,w],_={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",S,{begin:"("+e.join("|")+")",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return E.contains.unshift(_),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:i,contains:S.concat(m,p,v,x,_)}}function ien(t){const e=["package","import","option","optional","required","repeated","group","oneof"],n=["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],r={match:[/(message|enum|service)\s+/,t.IDENT_RE],scope:{1:"keyword",2:"title.class"}};return{name:"Protocol Buffers",aliases:["proto"],keywords:{keyword:e,type:n,literal:["true","false"]},contains:[t.QUOTE_STRING_MODE,t.NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,r,{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}function sen(t){const e=t.regex,n={$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","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","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},r=["__FILE__","__LINE__"],i=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:n,contains:[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.QUOTE_STRING_MODE,{scope:"number",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:e.concat(/`/,e.either(...r))},{scope:"meta",begin:e.concat(/`/,e.either(...i)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:i}]}}function aen(t){const e=t.regex,n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+e.optional(i)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},f={className:"title",begin:e.optional(i)+t.IDENT_RE,relevance:0},h=e.optional(i)+t.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],p=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],x=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],S={type:p,keyword:m,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},_={className:"function.dispatch",relevance:0,keywords:{_hint:x},begin:e.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,t.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},C=[_,d,o,n,t.C_BLOCK_COMMENT_MODE,u,c],T={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:S,contains:C.concat([{begin:/\(/,end:/\)/,keywords:S,contains:C.concat(["self"]),relevance:0}]),relevance:0},M={className:"function",begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:S,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:S,relevance:0},{begin:h,returnBegin:!0,contains:[f],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,u]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,c,u,o,{begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:["self",n,t.C_BLOCK_COMMENT_MODE,c,u,o]}]},o,n,t.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:S,illegal:"",keywords:S,contains:["self",o]},{begin:t.IDENT_RE+"::",keywords:S},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function oen(t){const e={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=aen(t),r=n.keywords;return r.type=[...r.type,...e.type],r.literal=[...r.literal,...e.literal],r.built_in=[...r.built_in,...e.built_in],r._hints=e._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function len(t){const e=t.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},s=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,n,i]};i.contains.push(o);const l={match:/\\"/},c={className:"string",begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,n]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=t.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},p=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],v=["true","false"],x={match:/(\/[a-z._-]+)+/},w=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],E=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],S=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],_=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:p,literal:v,built_in:[...w,...E,"set","shopt",...S,..._]},contains:[h,t.SHEBANG(),m,d,s,a,x,o,l,c,u,n]}}function cen(t){const e=t.regex,n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="("+r+"|"+e.optional(i)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",o={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},f={className:"title",begin:e.optional(i)+t.IDENT_RE,relevance:0},h=e.optional(i)+t.IDENT_RE+"\\s*\\(",v={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},x=[d,o,n,t.C_BLOCK_COMMENT_MODE,u,c],w={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:v,contains:x.concat([{begin:/\(/,end:/\)/,keywords:v,contains:x.concat(["self"]),relevance:0}]),relevance:0},E={begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:v,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:v,relevance:0},{begin:h,returnBegin:!0,contains:[t.inherit(f,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,c,u,o,{begin:/\(/,end:/\)/,keywords:v,relevance:0,contains:["self",n,t.C_BLOCK_COMMENT_MODE,c,u,o]}]},o,n,t.C_BLOCK_COMMENT_MODE,d]};return{name:"C",aliases:["h"],keywords:v,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:d,strings:c,keywords:v}}}function uen(t){const e=t.regex,n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="(?!struct)("+r+"|"+e.optional(i)+"[a-zA-Z_]\\w*"+e.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},f={className:"title",begin:e.optional(i)+t.IDENT_RE,relevance:0},h=e.optional(i)+t.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],p=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],v=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],x=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],S={type:p,keyword:m,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:v},_={className:"function.dispatch",relevance:0,keywords:{_hint:x},begin:e.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,t.IDENT_RE,e.lookahead(/(<[^<>]+>|)\s*\(/))},C=[_,d,o,n,t.C_BLOCK_COMMENT_MODE,u,c],T={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:S,contains:C.concat([{begin:/\(/,end:/\)/,keywords:S,contains:C.concat(["self"]),relevance:0}]),relevance:0},M={className:"function",begin:"("+a+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:S,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:S,relevance:0},{begin:h,returnBegin:!0,contains:[f],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[c,u]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,c,u,o,{begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:["self",n,t.C_BLOCK_COMMENT_MODE,c,u,o]}]},o,n,t.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:S,illegal:"",keywords:S,contains:["self",o]},{begin:t.IDENT_RE+"::",keywords:S},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function den(t){const e=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],s=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],a={keyword:i.concat(s),built_in:e,literal:r},o=t.inherit(t.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},u={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},d=t.inherit(u,{illegal:/\n/}),f={className:"subst",begin:/\{/,end:/\}/,keywords:a},h=t.inherit(f,{illegal:/\n/}),m={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,h]},p={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},f]},v=t.inherit(p,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},h]});f.contains=[p,m,u,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,l,t.C_BLOCK_COMMENT_MODE],h.contains=[v,m,d,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,l,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const x={variants:[c,p,m,u,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},w={begin:"<",end:">",contains:[{beginKeywords:"in out"},o]},E=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",S={begin:"@"+t.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:a,illegal:/::/,contains:[t.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},x,l,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},o,w,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,w,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+E+"\\s+)+"+t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:a,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[t.TITLE_MODE,w],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,relevance:0,contains:[x,l,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},S]}}const fen=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),hen=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],pen=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],men=[...hen,...pen],gen=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ven=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),yen=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ben=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function xen(t){const e=t.regex,n=fen(t),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",s=/@-?\w[\w]*(-\w+)*/,a="[a-zA-Z-][a-zA-Z0-9_-]*",o=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+a,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ven.join("|")+")"},{begin:":(:)?("+yen.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ben.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:s},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:gen.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+men.join("|")+")\\b"}]}}function wen(t){const e=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:e.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:e.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function _en(t){const s={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:s,illegal:"jOe(t,e,n-1))}function Cen(t){const e=t.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+jOe("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),l={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},c={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},u={className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[t.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:l,illegal:/<\/|#/,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[t.BACKSLASH_ESCAPE]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[e.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[u,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",t.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:l,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[c,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,zme,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},zme,c]}}const Fme="[A-Za-z$_][0-9A-Za-z$_]*",Een=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],$en=["true","false","null","undefined","NaN","Infinity"],zOe=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],FOe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],BOe=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ten=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Ien=[].concat(BOe,zOe,FOe);function Aen(t){const e=t.regex,n=(U,{after:J})=>{const F="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(U,J)=>{const F=U[0].length+U.index,H=U.input[F];if(H==="<"||H===","){J.ignoreMatch();return}H===">"&&(n(U,{after:F})||J.ignoreMatch());let V;const L=U.input.substring(F);if(V=L.match(/^\s*=/)){J.ignoreMatch();return}if((V=L.match(/^\s+extends\s+/))&&V.index===0){J.ignoreMatch();return}}},o={$pattern:Fme,keyword:Een,literal:$en,built_in:Ien,"variable.language":Ten},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},f={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"xml"}},m={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"css"}},p={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"graphql"}},v={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,f]},w={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},E=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,m,p,v,{match:/\$\d+/},d];f.contains=E.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(E)});const S=[].concat(w,f.contains),_=S.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(S)}]),C={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:_},T={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,e.concat(r,"(",e.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},M={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...zOe,...FOe]}},A={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},$={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[C],illegal:/%/},O={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function D(U){return e.concat("(?!",U.join("|"),")")}const N={match:e.concat(/\b/,D([...BOe,"super","import"].map(U=>`${U}\\s*\\(`)),r,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},R={begin:e.concat(/\./,e.lookahead(e.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},q={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},C]},W="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",G={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(W)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[C]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:_,CLASS_REFERENCE:M},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),A,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,m,p,v,w,{match:/\$\d+/},d,M,{scope:"attr",match:r+e.lookahead(":"),relevance:0},G,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[w,t.REGEXP_MODE,{className:"function",begin:W,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:_}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},$,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[C,t.inherit(t.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},R,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[C]},N,O,T,q,{match:/\$[(.]/}]}}function Oen(t){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:r},contains:[e,n,t.QUOTE_STRING_MODE,i,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var $v="[0-9](_*[0-9])*",PS=`\\.(${$v})`,jS="[0-9a-fA-F](_*[0-9a-fA-F])*",Den={className:"number",variants:[{begin:`(\\b(${$v})((${PS})|\\.)?|(${PS}))[eE][+-]?(${$v})[fFdD]?\\b`},{begin:`\\b(${$v})((${PS})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${PS})[fFdD]?\\b`},{begin:`\\b(${$v})[fFdD]\\b`},{begin:`\\b0[xX]((${jS})\\.?|(${jS})?\\.(${jS}))[pP][+-]?(${$v})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${jS})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Men(t){const e={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[t.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+t.UNDERSCORE_IDENT_RE},a={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[t.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(a);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+t.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+t.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[t.inherit(a,{className:"string"}),"self"]}]},c=Den,u=t.COMMENT("/\\*","\\*/",{contains:[t.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:"type",begin:t.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},f=d;return f.variants[1].contains=[d],d.variants[1].contains=[f],{name:"Kotlin",aliases:["kt","kts"],keywords:e,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),t.C_LINE_COMMENT_MODE,u,n,r,o,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:e,relevance:5,contains:[{begin:t.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[t.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:e,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,t.C_LINE_COMMENT_MODE,u],relevance:0},t.C_LINE_COMMENT_MODE,u,o,l,a,t.C_NUMBER_MODE]},u]},{begin:[/class|interface|trait/,/\s+/,t.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},t.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,l]},a,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},c]}}const Nen=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Ren=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Len=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Pen=[...Ren,...Len],jen=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),UOe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),qOe=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),zen=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),Fen=UOe.concat(qOe).sort().reverse();function Ben(t){const e=Nen(t),n=Fen,r="and or not only",i="[\\w-]+",s="("+i+"|@\\{"+i+"\\})",a=[],o=[],l=function(E){return{className:"string",begin:"~?"+E+".*?"+E}},c=function(E,S,_){return{className:E,begin:S,relevance:_}},u={$pattern:/[a-z-]+/,keyword:r,attribute:jen.join(" ")},d={begin:"\\(",end:"\\)",contains:o,keywords:u,relevance:0};o.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,l("'"),l('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},e.HEXCOLOR,d,c("variable","@@?"+i,10),c("variable","@\\{"+i+"\\}"),c("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},e.IMPORTANT,{beginKeywords:"and not"},e.FUNCTION_DISPATCH);const f=o.concat({begin:/\{/,end:/\}/,contains:a}),h={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(o)},m={begin:s+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},e.CSS_VARIABLE,{className:"attribute",begin:"\\b("+zen.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:o}}]},p={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:o,relevance:0}},v={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:f}},x={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:s,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,h,c("keyword","all\\b"),c("variable","@\\{"+i+"\\}"),{begin:"\\b("+Pen.join("|")+")\\b",className:"selector-tag"},e.CSS_NUMBER_MODE,c("selector-tag",s,0),c("selector-id","#"+s),c("selector-class","\\."+s,0),c("selector-tag","&",0),e.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+UOe.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+qOe.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:f},{begin:"!important"},e.FUNCTION_DISPATCH]},w={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[x]};return a.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,p,v,w,m,x,h,e.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:a}}function Uen(t){const e="\\[=*\\[",n="\\]=*\\]",r={begin:e,end:n,contains:["self"]},i=[t.COMMENT("--(?!"+e+")","$"),t.COMMENT("--"+e,n,{contains:[r],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:t.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[t.inherit(t.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:e,end:n,contains:[r],relevance:5}])}}function qen(t){const e={className:"variable",variants:[{begin:"\\$\\("+t.UNDERSCORE_IDENT_RE+"\\)",contains:[t.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},a={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,o,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},d=t.inherit(c,{contains:[]}),f=t.inherit(u,{contains:[]});c.contains.push(f),u.contains.push(d);let h=[n,l];return[c,u,d,f].forEach(x=>{x.contains=x.contains.concat(h)}),h=h.concat(c,u),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},n,s,c,u,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},i,r,l,a,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function Wen(t){const e={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,o={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},l={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:o,illegal:"/,end:/$/,illegal:"\\n"},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+l.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:l,contains:[t.UNDERSCORE_TITLE_MODE]},{begin:"\\."+t.UNDERSCORE_IDENT_RE,relevance:0}]}}function Ven(t){const e=t.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},s={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},a={begin:/->\{/,end:/\}/},o={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},l={scope:"variable",variants:[{begin:/\$\d/},{begin:e.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[o]},c={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},u=[t.BACKSLASH_ESCAPE,s,l],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],f=(p,v,x="\\1")=>{const w=x==="\\1"?x:e.concat(x,v);return e.concat(e.concat("(?:",p,")"),v,/(?:\\.|[^\\\/])*?/,w,/(?:\\.|[^\\\/])*?/,x,r)},h=(p,v,x)=>e.concat(e.concat("(?:",p,")"),v,/(?:\\.|[^\\\/])*?/,x,r),m=[l,t.HASH_COMMENT_MODE,t.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),a,{className:"string",contains:u,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},c,{begin:"(\\/\\/|"+t.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[t.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:f("s|tr|y",e.either(...d,{capture:!0}))},{begin:f("s|tr|y","\\(","\\)")},{begin:f("s|tr|y","\\[","\\]")},{begin:f("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:h("(?:m|qr)?",/\//,/\//)},{begin:h("m|qr",e.either(...d,{capture:!0}),/\1/)},{begin:h("m|qr",/\(/,/\)/)},{begin:h("m|qr",/\[/,/\]/)},{begin:h("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,o]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,o,c]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return s.contains=m,a.contains=m,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:m}}function Zen(t){const e=t.regex,n=/(?![A-Za-z0-9])(?![$])/,r=e.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=e.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),s=e.concat(/[A-Z]+/,n),a={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=t.inherit(t.APOS_STRING_MODE,{illegal:null}),u=t.inherit(t.QUOTE_STRING_MODE,{illegal:null,contains:t.QUOTE_STRING_MODE.contains.concat(l)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:t.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(R,q)=>{q.data._beginMatch=R[1]||R[2]},"on:end":(R,q)=>{q.data._beginMatch!==R[1]&&q.ignoreMatch()}},f=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),h=`[ +]`,m={scope:"string",variants:[u,c,d,f]},p={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},v=["false","null","true"],x=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],w=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],S={keyword:x,literal:(R=>{const q=[];return R.forEach(W=>{q.push(W),W.toLowerCase()===W?q.push(W.toUpperCase()):q.push(W.toLowerCase())}),q})(v),built_in:w},_=R=>R.map(q=>q.replace(/\|\d+$/,"")),C={variants:[{match:[/new/,e.concat(h,"+"),e.concat("(?!",_(w).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},T=e.concat(r,"\\b(?!\\()"),M={variants:[{match:[e.concat(/::/,e.lookahead(/(?!class\b)/)),T],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,e.concat(/::/,e.lookahead(/(?!class\b)/)),T],scope:{1:"title.class",3:"variable.constant"}},{match:[i,e.concat("::",e.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},A={scope:"attr",match:e.concat(r,e.lookahead(":"),e.lookahead(/(?!::)/))},$={relevance:0,begin:/\(/,end:/\)/,keywords:S,contains:[A,a,M,t.C_BLOCK_COMMENT_MODE,m,p,C]},O={relevance:0,match:[/\b/,e.concat("(?!fn\\b|function\\b|",_(x).join("\\b|"),"|",_(w).join("\\b|"),"\\b)"),r,e.concat(h,"*"),e.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[$]};$.contains.push(O);const D=[A,M,t.C_BLOCK_COMMENT_MODE,m,p,C],N={begin:e.concat(/#\[\s*\\?/,e.either(i,s)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:v,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:v,keyword:["new","array"]},contains:["self",...D]},...D,{scope:"meta",variants:[{match:i},{match:s}]}]};return{case_insensitive:!1,keywords:S,contains:[N,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},o,{scope:"variable.language",match:/\$this\b/},a,O,M,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},C,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:S,contains:["self",N,a,M,t.C_BLOCK_COMMENT_MODE,m,p]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},m,p]}}function Gen(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function Ken(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function Yen(t){const e=t.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],o={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},l={className:"meta",begin:/^(>>>|\.\.\.) /},c={className:"subst",begin:/\{/,end:/\}/,keywords:o,illegal:/#/},u={begin:/\{\{/,relevance:0},d={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,l,u,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,u,c]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,u,c]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},f="[0-9](_?[0-9])*",h=`(\\b(${f}))?\\.(${f})|\\b(${f})\\.`,m=`\\b|${r.join("|")}`,p={className:"number",relevance:0,variants:[{begin:`(\\b(${f})|(${h}))[eE][+-]?(${f})[jJ]?(?=${m})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${m})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${m})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${m})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${m})`},{begin:`\\b(${f})[jJ](?=${m})`}]},v={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},x={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:["self",l,p,d,t.HASH_COMMENT_MODE]}]};return c.contains=[d,p,l],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:o,illegal:/(<\/|\?)|=>/,contains:[l,p,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},d,v,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[x]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[p,x,d]}]}}function Jen(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function Xen(t){const e=t.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=e.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,s=e.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:e.lookahead(e.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[s,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:s},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function Qen(t){const e=t.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=e.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=e.concat(r,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},o={className:"doctag",begin:"@[A-Za-z]+"},l={begin:"#<",end:">"},c=[t.COMMENT("#","$",{contains:[o]}),t.COMMENT("^=begin","^=end",{contains:[o],relevance:10}),t.COMMENT("^__END__",t.MATCH_NOTHING_RE)],u={className:"subst",begin:/#\{/,end:/\}/,keywords:a},d={className:"string",contains:[t.BACKSLASH_ESCAPE,u],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:e.concat(/<<[-~]?'?/,e.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[t.BACKSLASH_ESCAPE,u]})]}]},f="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",m={className:"number",relevance:0,variants:[{begin:`\\b(${f})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},p={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},C=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:a},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[p]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:n}],relevance:0},m,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+t.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[t.BACKSLASH_ESCAPE,u],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(l,c),relevance:0}].concat(l,c);u.contains=C,p.contains=C;const $=[{begin:/^\s*=>/,starts:{end:"$",contains:C}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:a,contains:C}}];return c.unshift(l),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat($).concat(c).concat(C)}}function etn(t){const e=t.regex,n=/(r#)?/,r=e.concat(n,t.UNDERSCORE_IDENT_RE),i=e.concat(n,t.IDENT_RE),s={className:"title.function.invoke",relevance:0,begin:e.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,e.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(32|64))?",o=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],l=["true","false","Some","None","Ok","Err"],c=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],u=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:u,keyword:o,literal:l,built_in:c},illegal:""},s]}}const ttn=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),ntn=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],rtn=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],itn=[...ntn,...rtn],stn=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),atn=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),otn=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),ltn=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function ctn(t){const e=ttn(t),n=otn,r=atn,i="@[a-z-]+",s="and or not only",o={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,e.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},e.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+itn.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},o,{begin:/\(/,end:/\)/,contains:[e.CSS_NUMBER_MODE]},e.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ltn.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[e.BLOCK_COMMENT,o,e.HEXCOLOR,e.CSS_NUMBER_MODE,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,e.IMPORTANT,e.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:stn.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},o,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,e.HEXCOLOR,e.CSS_NUMBER_MODE]},e.FUNCTION_DISPATCH]}}function utn(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function dtn(t){const e=t.regex,n=t.COMMENT("--","$"),r={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},i={begin:/"/,end:/"/,contains:[{match:/""/}]},s=["true","false","unknown"],a=["double precision","large object","with timezone","without timezone"],o=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],l=["add","asc","collation","desc","final","first","last","view"],c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],u=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],f=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=u,m=[...c,...l].filter(_=>!u.includes(_)),p={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},v={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},x={match:e.concat(/\b/,e.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function w(_){return e.concat(/\b/,e.either(..._.map(C=>C.replace(/\s+/,"\\s+"))),/\b/)}const E={scope:"keyword",match:w(f),relevance:0};function S(_,{exceptions:C,when:T}={}){const M=T;return C=C||[],_.map(A=>A.match(/\|\d+$/)||C.includes(A)?A:M(A)?`${A}|0`:A)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:S(m,{when:_=>_.length<3}),literal:s,type:o,built_in:d},contains:[{scope:"type",match:w(a)},E,x,p,r,i,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,n,v]}}function HOe(t){return t?typeof t=="string"?t:t.source:null}function x3(t){return Hi("(?=",t,")")}function Hi(...t){return t.map(n=>HOe(n)).join("")}function ftn(t){const e=t[t.length-1];return typeof e=="object"&&e.constructor===Object?(t.splice(t.length-1,1),e):{}}function ul(...t){return"("+(ftn(t).capture?"":"?:")+t.map(r=>HOe(r)).join("|")+")"}const VY=t=>Hi(/\b/,t,/\w$/.test(t)?/\b/:/\B/),htn=["Protocol","Type"].map(VY),Bme=["init","self"].map(VY),ptn=["Any","Self"],bj=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ume=["false","nil","true"],mtn=["assignment","associativity","higherThan","left","lowerThan","none","right"],gtn=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],qme=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],WOe=ul(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),VOe=ul(WOe,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),xj=Hi(WOe,VOe,"*"),ZOe=ul(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),xE=ul(ZOe,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),of=Hi(ZOe,xE,"*"),zS=Hi(/[A-Z]/,xE,"*"),vtn=["attached","autoclosure",Hi(/convention\(/,ul("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Hi(/objc\(/,of,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],ytn=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function btn(t){const e={match:/\s+/,relevance:0},n=t.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[t.C_LINE_COMMENT_MODE,n],i={match:[/\./,ul(...htn,...Bme)],className:{2:"keyword"}},s={match:Hi(/\./,ul(...bj)),relevance:0},a=bj.filter(Ye=>typeof Ye=="string").concat(["_|0"]),o=bj.filter(Ye=>typeof Ye!="string").concat(ptn).map(VY),l={variants:[{className:"keyword",match:ul(...o,...Bme)}]},c={$pattern:ul(/\b\w+/,/#\w+/),keyword:a.concat(gtn),literal:Ume},u=[i,s,l],d={match:Hi(/\./,ul(...qme)),relevance:0},f={className:"built_in",match:Hi(/\b/,ul(...qme),/(?=\()/)},h=[d,f],m={match:/->/,relevance:0},p={className:"operator",relevance:0,variants:[{match:xj},{match:`\\.(\\.|${VOe})+`}]},v=[m,p],x="([0-9]_*)+",w="([0-9a-fA-F]_*)+",E={className:"number",relevance:0,variants:[{match:`\\b(${x})(\\.(${x}))?([eE][+-]?(${x}))?\\b`},{match:`\\b0x(${w})(\\.(${w}))?([pP][+-]?(${x}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},S=(Ye="")=>({className:"subst",variants:[{match:Hi(/\\/,Ye,/[0\\tnr"']/)},{match:Hi(/\\/,Ye,/u\{[0-9a-fA-F]{1,8}\}/)}]}),_=(Ye="")=>({className:"subst",match:Hi(/\\/,Ye,/[\t ]*(?:[\r\n]|\r\n)/)}),C=(Ye="")=>({className:"subst",label:"interpol",begin:Hi(/\\/,Ye,/\(/),end:/\)/}),T=(Ye="")=>({begin:Hi(Ye,/"""/),end:Hi(/"""/,Ye),contains:[S(Ye),_(Ye),C(Ye)]}),M=(Ye="")=>({begin:Hi(Ye,/"/),end:Hi(/"/,Ye),contains:[S(Ye),C(Ye)]}),A={className:"string",variants:[T(),T("#"),T("##"),T("###"),M(),M("#"),M("##"),M("###")]},$=[t.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[t.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:$},D=Ye=>{const Xe=Hi(Ye,/\//),Lt=Hi(/\//,Ye);return{begin:Xe,end:Lt,contains:[...$,{scope:"comment",begin:`#(?!.*${Lt})`,end:/$/}]}},N={scope:"regexp",variants:[D("###"),D("##"),D("#"),O]},R={match:Hi(/`/,of,/`/)},q={className:"variable",match:/\$\d+/},W={className:"variable",match:`\\$${xE}+`},G=[R,q,W],U={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:ytn,contains:[...v,E,A]}]}},J={scope:"keyword",match:Hi(/@/,ul(...vtn),x3(ul(/\(/,/\s+/)))},F={scope:"meta",match:Hi(/@/,of)},H=[U,J,F],V={match:x3(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Hi(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,xE,"+")},{className:"type",match:zS,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Hi(/\s+&\s+/,x3(zS)),relevance:0}]},L={begin://,keywords:c,contains:[...r,...u,...H,m,V]};V.contains.push(L);const se={match:Hi(of,/\s*:/),keywords:"_|0",relevance:0},oe={begin:/\(/,end:/\)/,relevance:0,keywords:c,contains:["self",se,...r,N,...u,...h,...v,E,A,...G,...H,V]},X={begin://,keywords:"repeat each",contains:[...r,V]},de={begin:ul(x3(Hi(of,/\s*:/)),x3(Hi(of,/\s+/,of,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:of}]},le={begin:/\(/,end:/\)/,keywords:c,contains:[de,...r,...u,...v,E,A,...H,V,oe],endsParent:!0,illegal:/["']/},te={match:[/(func|macro)/,/\s+/,ul(R.match,of,xj)],className:{1:"keyword",3:"title.function"},contains:[X,le,e],illegal:[/\[/,/%/]},Fe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[X,le,e],illegal:/\[|%/},Ge={match:[/operator/,/\s+/,xj],className:{1:"keyword",3:"title"}},Ve={begin:[/precedencegroup/,/\s+/,zS],className:{1:"keyword",3:"title"},contains:[V],keywords:[...mtn,...Ume],end:/}/},vt={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},ft={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},ne={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,of,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:c,contains:[X,...u,{begin:/:/,end:/\{/,keywords:c,contains:[{scope:"title.class.inherited",match:zS},...u],relevance:0}]};for(const Ye of A.variants){const Xe=Ye.contains.find(xn=>xn.label==="interpol");Xe.keywords=c;const Lt=[...u,...h,...v,E,A,...G];Xe.contains=[...Lt,{begin:/\(/,end:/\)/,contains:["self",...Lt]}]}return{name:"Swift",keywords:c,contains:[...r,te,Fe,vt,ft,ne,Ge,Ve,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},N,...u,...h,...v,E,A,...G,...H,V,oe]}}const wE="[A-Za-z$_][0-9A-Za-z$_]*",GOe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],KOe=["true","false","null","undefined","NaN","Infinity"],YOe=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],JOe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],XOe=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],QOe=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],eDe=[].concat(XOe,YOe,JOe);function xtn(t){const e=t.regex,n=(U,{after:J})=>{const F="",end:""},s=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(U,J)=>{const F=U[0].length+U.index,H=U.input[F];if(H==="<"||H===","){J.ignoreMatch();return}H===">"&&(n(U,{after:F})||J.ignoreMatch());let V;const L=U.input.substring(F);if(V=L.match(/^\s*=/)){J.ignoreMatch();return}if((V=L.match(/^\s+extends\s+/))&&V.index===0){J.ignoreMatch();return}}},o={$pattern:wE,keyword:GOe,literal:KOe,built_in:eDe,"variable.language":QOe},l="[0-9](_?[0-9])*",c=`\\.(${l})`,u="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${u})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${u})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},f={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"xml"}},m={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"css"}},p={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,f],subLanguage:"graphql"}},v={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,f]},w={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},E=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,m,p,v,{match:/\$\d+/},d];f.contains=E.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(E)});const S=[].concat(w,f.contains),_=S.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(S)}]),C={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:_},T={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,e.concat(r,"(",e.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},M={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...YOe,...JOe]}},A={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},$={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[C],illegal:/%/},O={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function D(U){return e.concat("(?!",U.join("|"),")")}const N={match:e.concat(/\b/,D([...XOe,"super","import"].map(U=>`${U}\\s*\\(`)),r,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},R={begin:e.concat(/\./,e.lookahead(e.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},q={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},C]},W="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",G={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(W)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[C]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:_,CLASS_REFERENCE:M},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),A,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,m,p,v,w,{match:/\$\d+/},d,M,{scope:"attr",match:r+e.lookahead(":"),relevance:0},G,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[w,t.REGEXP_MODE,{className:"function",begin:W,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:_}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:s},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},$,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[C,t.inherit(t.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},R,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[C]},N,O,T,q,{match:/\$[(.]/}]}}function wtn(t){const e=t.regex,n=xtn(t),r=wE,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],s={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:i},contains:[n.exports.CLASS_REFERENCE]},o={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],c={$pattern:wE,keyword:GOe.concat(l),literal:KOe,built_in:eDe.concat(i),"variable.language":QOe},u={className:"meta",begin:"@"+r},d=(p,v,x)=>{const w=p.contains.findIndex(E=>E.label===v);if(w===-1)throw new Error("can not find mode to replace");p.contains.splice(w,1,x)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(u);const f=n.contains.find(p=>p.scope==="attr"),h=Object.assign({},f,{match:e.concat(r,e.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,f,h]),n.contains=n.contains.concat([u,s,a,h]),d(n,"shebang",t.SHEBANG()),d(n,"use_strict",o);const m=n.contains.find(p=>p.label==="func.def");return m.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function _tn(t){const e=t.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,s=/\d{4}-\d{1,2}-\d{1,2}/,a=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,o=/\d{1,2}(:\d{1,2}){1,2}/,l={className:"literal",variants:[{begin:e.concat(/# */,e.either(s,i),/ *#/)},{begin:e.concat(/# */,o,/ *#/)},{begin:e.concat(/# */,a,/ *#/)},{begin:e.concat(/# */,e.either(s,i),/ +/,e.either(a,o),/ *#/)}]},c={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:"label",begin:/^\w+:/},d=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),f=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,l,c,u,d,f,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[f]}]}}function ktn(t){t.regex;const e=t.COMMENT(/\(;/,/;\)/);e.contains.push("self");const n=t.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},s={className:"variable",begin:/\$[\w_]+/},a={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},o={className:"number",relevance:0,match:/[+-]?\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/},l={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},c={className:"keyword",match:/\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|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,e,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},s,a,i,t.QUOTE_STRING_MODE,l,c,o]}}function Stn(t){const e=t.regex,n=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},s={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=t.inherit(s,{begin:/\(/,end:/\)/}),o=t.inherit(t.APOS_STRING_MODE,{className:"string"}),l=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),c={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[s,l,o,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[s,a,l,o]}]}]},t.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:c}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Ctn(t){const e="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},s={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},a={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,i]},o=t.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),f={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},m={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},p={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},v=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},f,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},m,p,s,a],x=[...v];return x.pop(),x.push(o),h.contains=x,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:v}}const tDe={arduino:oen,bash:len,c:cen,cpp:uen,csharp:den,css:xen,diff:wen,go:_en,graphql:ken,ini:Sen,java:Cen,javascript:Aen,json:Oen,kotlin:Men,less:Ben,lua:Uen,makefile:qen,markdown:Hen,objectivec:Wen,perl:Ven,php:Zen,"php-template":Gen,plaintext:Ken,python:Yen,"python-repl":Jen,r:Xen,ruby:Qen,rust:etn,scss:ctn,shell:utn,sql:dtn,swift:btn,typescript:wtn,vbnet:_tn,wasm:ktn,xml:Stn,yaml:Ctn};var wj,Hme;function Etn(){if(Hme)return wj;Hme=1;function t(ce){return ce instanceof Map?ce.clear=ce.delete=ce.set=function(){throw new Error("map is read-only")}:ce instanceof Set&&(ce.add=ce.clear=ce.delete=function(){throw new Error("set is read-only")}),Object.freeze(ce),Object.getOwnPropertyNames(ce).forEach(Me=>{const We=ce[Me],rt=typeof We;(rt==="object"||rt==="function")&&!Object.isFrozen(We)&&t(We)}),ce}class e{constructor(Me){Me.data===void 0&&(Me.data={}),this.data=Me.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(ce){return ce.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(ce,...Me){const We=Object.create(null);for(const rt in ce)We[rt]=ce[rt];return Me.forEach(function(rt){for(const kt in rt)We[kt]=rt[kt]}),We}const i="",s=ce=>!!ce.scope,a=(ce,{prefix:Me})=>{if(ce.startsWith("language:"))return ce.replace("language:","language-");if(ce.includes(".")){const We=ce.split(".");return[`${Me}${We.shift()}`,...We.map((rt,kt)=>`${rt}${"_".repeat(kt+1)}`)].join(" ")}return`${Me}${ce}`};class o{constructor(Me,We){this.buffer="",this.classPrefix=We.classPrefix,Me.walk(this)}addText(Me){this.buffer+=n(Me)}openNode(Me){if(!s(Me))return;const We=a(Me.scope,{prefix:this.classPrefix});this.span(We)}closeNode(Me){s(Me)&&(this.buffer+=i)}value(){return this.buffer}span(Me){this.buffer+=``}}const l=(ce={})=>{const Me={children:[]};return Object.assign(Me,ce),Me};class c{constructor(){this.rootNode=l(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Me){this.top.children.push(Me)}openNode(Me){const We=l({scope:Me});this.add(We),this.stack.push(We)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Me){return this.constructor._walk(Me,this.rootNode)}static _walk(Me,We){return typeof We=="string"?Me.addText(We):We.children&&(Me.openNode(We),We.children.forEach(rt=>this._walk(Me,rt)),Me.closeNode(We)),Me}static _collapse(Me){typeof Me!="string"&&Me.children&&(Me.children.every(We=>typeof We=="string")?Me.children=[Me.children.join("")]:Me.children.forEach(We=>{c._collapse(We)}))}}class u extends c{constructor(Me){super(),this.options=Me}addText(Me){Me!==""&&this.add(Me)}startScope(Me){this.openNode(Me)}endScope(){this.closeNode()}__addSublanguage(Me,We){const rt=Me.root;We&&(rt.scope=`language:${We}`),this.add(rt)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function d(ce){return ce?typeof ce=="string"?ce:ce.source:null}function f(ce){return p("(?=",ce,")")}function h(ce){return p("(?:",ce,")*")}function m(ce){return p("(?:",ce,")?")}function p(...ce){return ce.map(We=>d(We)).join("")}function v(ce){const Me=ce[ce.length-1];return typeof Me=="object"&&Me.constructor===Object?(ce.splice(ce.length-1,1),Me):{}}function x(...ce){return"("+(v(ce).capture?"":"?:")+ce.map(rt=>d(rt)).join("|")+")"}function w(ce){return new RegExp(ce.toString()+"|").exec("").length-1}function E(ce,Me){const We=ce&&ce.exec(Me);return We&&We.index===0}const S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function _(ce,{joinWith:Me}){let We=0;return ce.map(rt=>{We+=1;const kt=We;let wn=d(rt),Nt="";for(;wn.length>0;){const ee=S.exec(wn);if(!ee){Nt+=wn;break}Nt+=wn.substring(0,ee.index),wn=wn.substring(ee.index+ee[0].length),ee[0][0]==="\\"&&ee[1]?Nt+="\\"+String(Number(ee[1])+kt):(Nt+=ee[0],ee[0]==="("&&We++)}return Nt}).map(rt=>`(${rt})`).join(Me)}const C=/\b\B/,T="[a-zA-Z]\\w*",M="[a-zA-Z_]\\w*",A="\\b\\d+(\\.\\d+)?",$="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",D="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",N=(ce={})=>{const Me=/^#![ ]*\//;return ce.binary&&(ce.begin=p(Me,/.*\b/,ce.binary,/\b.*/)),r({scope:"meta",begin:Me,end:/$/,relevance:0,"on:begin":(We,rt)=>{We.index!==0&&rt.ignoreMatch()}},ce)},R={begin:"\\\\[\\s\\S]",relevance:0},q={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[R]},W={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[R]},G={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},U=function(ce,Me,We={}){const rt=r({scope:"comment",begin:ce,end:Me,contains:[]},We);rt.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const kt=x("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return rt.contains.push({begin:p(/[ ]+/,"(",kt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),rt},J=U("//","$"),F=U("/\\*","\\*/"),H=U("#","$"),V={scope:"number",begin:A,relevance:0},L={scope:"number",begin:$,relevance:0},se={scope:"number",begin:O,relevance:0},oe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[R,{begin:/\[/,end:/\]/,relevance:0,contains:[R]}]},X={scope:"title",begin:T,relevance:0},de={scope:"title",begin:M,relevance:0},le={begin:"\\.\\s*"+M,relevance:0};var Fe=Object.freeze({__proto__:null,APOS_STRING_MODE:q,BACKSLASH_ESCAPE:R,BINARY_NUMBER_MODE:se,BINARY_NUMBER_RE:O,COMMENT:U,C_BLOCK_COMMENT_MODE:F,C_LINE_COMMENT_MODE:J,C_NUMBER_MODE:L,C_NUMBER_RE:$,END_SAME_AS_BEGIN:function(ce){return Object.assign(ce,{"on:begin":(Me,We)=>{We.data._beginMatch=Me[1]},"on:end":(Me,We)=>{We.data._beginMatch!==Me[1]&&We.ignoreMatch()}})},HASH_COMMENT_MODE:H,IDENT_RE:T,MATCH_NOTHING_RE:C,METHOD_GUARD:le,NUMBER_MODE:V,NUMBER_RE:A,PHRASAL_WORDS_MODE:G,QUOTE_STRING_MODE:W,REGEXP_MODE:oe,RE_STARTERS_RE:D,SHEBANG:N,TITLE_MODE:X,UNDERSCORE_IDENT_RE:M,UNDERSCORE_TITLE_MODE:de});function Ge(ce,Me){ce.input[ce.index-1]==="."&&Me.ignoreMatch()}function Ve(ce,Me){ce.className!==void 0&&(ce.scope=ce.className,delete ce.className)}function vt(ce,Me){Me&&ce.beginKeywords&&(ce.begin="\\b("+ce.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",ce.__beforeBegin=Ge,ce.keywords=ce.keywords||ce.beginKeywords,delete ce.beginKeywords,ce.relevance===void 0&&(ce.relevance=0))}function ft(ce,Me){Array.isArray(ce.illegal)&&(ce.illegal=x(...ce.illegal))}function ne(ce,Me){if(ce.match){if(ce.begin||ce.end)throw new Error("begin & end are not supported with match");ce.begin=ce.match,delete ce.match}}function Ye(ce,Me){ce.relevance===void 0&&(ce.relevance=1)}const Xe=(ce,Me)=>{if(!ce.beforeMatch)return;if(ce.starts)throw new Error("beforeMatch cannot be used with starts");const We=Object.assign({},ce);Object.keys(ce).forEach(rt=>{delete ce[rt]}),ce.keywords=We.keywords,ce.begin=p(We.beforeMatch,f(We.begin)),ce.starts={relevance:0,contains:[Object.assign(We,{endsParent:!0})]},ce.relevance=0,delete We.beforeMatch},Lt=["of","and","for","in","not","or","if","then","parent","list","value"],xn="keyword";function It(ce,Me,We=xn){const rt=Object.create(null);return typeof ce=="string"?kt(We,ce.split(" ")):Array.isArray(ce)?kt(We,ce):Object.keys(ce).forEach(function(wn){Object.assign(rt,It(ce[wn],Me,wn))}),rt;function kt(wn,Nt){Me&&(Nt=Nt.map(ee=>ee.toLowerCase())),Nt.forEach(function(ee){const ue=ee.split("|");rt[ue[0]]=[wn,me(ue[0],ue[1])]})}}function me(ce,Me){return Me?Number(Me):Ce(ce)?0:1}function Ce(ce){return Lt.includes(ce.toLowerCase())}const Ie={},je=ce=>{console.error(ce)},Ze=(ce,...Me)=>{console.log(`WARN: ${ce}`,...Me)},ge=(ce,Me)=>{Ie[`${ce}/${Me}`]||(console.log(`Deprecated as of ${ce}. ${Me}`),Ie[`${ce}/${Me}`]=!0)},Oe=new Error;function et(ce,Me,{key:We}){let rt=0;const kt=ce[We],wn={},Nt={};for(let ee=1;ee<=Me.length;ee++)Nt[ee+rt]=kt[ee],wn[ee+rt]=!0,rt+=w(Me[ee-1]);ce[We]=Nt,ce[We]._emit=wn,ce[We]._multi=!0}function ut(ce){if(Array.isArray(ce.begin)){if(ce.skip||ce.excludeBegin||ce.returnBegin)throw je("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Oe;if(typeof ce.beginScope!="object"||ce.beginScope===null)throw je("beginScope must be object"),Oe;et(ce,ce.begin,{key:"beginScope"}),ce.begin=_(ce.begin,{joinWith:""})}}function zt(ce){if(Array.isArray(ce.end)){if(ce.skip||ce.excludeEnd||ce.returnEnd)throw je("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Oe;if(typeof ce.endScope!="object"||ce.endScope===null)throw je("endScope must be object"),Oe;et(ce,ce.end,{key:"endScope"}),ce.end=_(ce.end,{joinWith:""})}}function Un(ce){ce.scope&&typeof ce.scope=="object"&&ce.scope!==null&&(ce.beginScope=ce.scope,delete ce.scope)}function Qn(ce){Un(ce),typeof ce.beginScope=="string"&&(ce.beginScope={_wrap:ce.beginScope}),typeof ce.endScope=="string"&&(ce.endScope={_wrap:ce.endScope}),ut(ce),zt(ce)}function yn(ce){function Me(Nt,ee){return new RegExp(d(Nt),"m"+(ce.case_insensitive?"i":"")+(ce.unicodeRegex?"u":"")+(ee?"g":""))}class We{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(ee,ue){ue.position=this.position++,this.matchIndexes[this.matchAt]=ue,this.regexes.push([ue,ee]),this.matchAt+=w(ee)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const ee=this.regexes.map(ue=>ue[1]);this.matcherRe=Me(_(ee,{joinWith:"|"}),!0),this.lastIndex=0}exec(ee){this.matcherRe.lastIndex=this.lastIndex;const ue=this.matcherRe.exec(ee);if(!ue)return null;const _e=ue.findIndex((Y,he)=>he>0&&Y!==void 0),Q=this.matchIndexes[_e];return ue.splice(0,_e),Object.assign(ue,Q)}}class rt{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(ee){if(this.multiRegexes[ee])return this.multiRegexes[ee];const ue=new We;return this.rules.slice(ee).forEach(([_e,Q])=>ue.addRule(_e,Q)),ue.compile(),this.multiRegexes[ee]=ue,ue}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(ee,ue){this.rules.push([ee,ue]),ue.type==="begin"&&this.count++}exec(ee){const ue=this.getMatcher(this.regexIndex);ue.lastIndex=this.lastIndex;let _e=ue.exec(ee);if(this.resumingScanAtSamePosition()&&!(_e&&_e.index===this.lastIndex)){const Q=this.getMatcher(0);Q.lastIndex=this.lastIndex+1,_e=Q.exec(ee)}return _e&&(this.regexIndex+=_e.position+1,this.regexIndex===this.count&&this.considerAll()),_e}}function kt(Nt){const ee=new rt;return Nt.contains.forEach(ue=>ee.addRule(ue.begin,{rule:ue,type:"begin"})),Nt.terminatorEnd&&ee.addRule(Nt.terminatorEnd,{type:"end"}),Nt.illegal&&ee.addRule(Nt.illegal,{type:"illegal"}),ee}function wn(Nt,ee){const ue=Nt;if(Nt.isCompiled)return ue;[Ve,ne,Qn,Xe].forEach(Q=>Q(Nt,ee)),ce.compilerExtensions.forEach(Q=>Q(Nt,ee)),Nt.__beforeBegin=null,[vt,ft,Ye].forEach(Q=>Q(Nt,ee)),Nt.isCompiled=!0;let _e=null;return typeof Nt.keywords=="object"&&Nt.keywords.$pattern&&(Nt.keywords=Object.assign({},Nt.keywords),_e=Nt.keywords.$pattern,delete Nt.keywords.$pattern),_e=_e||/\w+/,Nt.keywords&&(Nt.keywords=It(Nt.keywords,ce.case_insensitive)),ue.keywordPatternRe=Me(_e,!0),ee&&(Nt.begin||(Nt.begin=/\B|\b/),ue.beginRe=Me(ue.begin),!Nt.end&&!Nt.endsWithParent&&(Nt.end=/\B|\b/),Nt.end&&(ue.endRe=Me(ue.end)),ue.terminatorEnd=d(ue.end)||"",Nt.endsWithParent&&ee.terminatorEnd&&(ue.terminatorEnd+=(Nt.end?"|":"")+ee.terminatorEnd)),Nt.illegal&&(ue.illegalRe=Me(Nt.illegal)),Nt.contains||(Nt.contains=[]),Nt.contains=[].concat(...Nt.contains.map(function(Q){return Be(Q==="self"?Nt:Q)})),Nt.contains.forEach(function(Q){wn(Q,ue)}),Nt.starts&&wn(Nt.starts,ee),ue.matcher=kt(ue),ue}if(ce.compilerExtensions||(ce.compilerExtensions=[]),ce.contains&&ce.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return ce.classNameAliases=r(ce.classNameAliases||{}),wn(ce)}function pe(ce){return ce?ce.endsWithParent||pe(ce.starts):!1}function Be(ce){return ce.variants&&!ce.cachedVariants&&(ce.cachedVariants=ce.variants.map(function(Me){return r(ce,{variants:null},Me)})),ce.cachedVariants?ce.cachedVariants:pe(ce)?r(ce,{starts:ce.starts?r(ce.starts):null}):Object.isFrozen(ce)?r(ce):ce}var lt="11.11.1";class Rt extends Error{constructor(Me,We){super(Me),this.name="HTMLInjectionError",this.html=We}}const At=n,yr=r,Or=Symbol("nomatch"),Dr=7,ri=function(ce){const Me=Object.create(null),We=Object.create(null),rt=[];let kt=!0;const wn="Could not find the language '{}', did you forget to load/include a language module?",Nt={disableAutodetect:!0,name:"Plain text",contains:[]};let ee={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:u};function ue(pt){return ee.noHighlightRe.test(pt)}function _e(pt){let ot=pt.className+" ";ot+=pt.parentNode?pt.parentNode.className:"";const nn=ee.languageDetectRe.exec(ot);if(nn){const ur=Qe(nn[1]);return ur||(Ze(wn.replace("{}",nn[1])),Ze("Falling back to no-highlight mode for this block.",pt)),ur?nn[1]:"no-highlight"}return ot.split(/\s+/).find(ur=>ue(ur)||Qe(ur))}function Q(pt,ot,nn){let ur="",mi="";typeof ot=="object"?(ur=pt,nn=ot.ignoreIllegals,mi=ot.language):(ge("10.7.0","highlight(lang, code, ...args) has been deprecated."),ge("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),mi=pt,ur=ot),nn===void 0&&(nn=!0);const Zr={code:ur,language:mi};ii("before:highlight",Zr);const Ys=Zr.result?Zr.result:Y(Zr.language,Zr.code,nn);return Ys.code=Zr.code,ii("after:highlight",Ys),Ys}function Y(pt,ot,nn,ur){const mi=Object.create(null);function Zr(Vt,On){return Vt.keywords[On]}function Ys(){if(!er.keywords){ua.addText(Fi);return}let Vt=0;er.keywordPatternRe.lastIndex=0;let On=er.keywordPatternRe.exec(Fi),Mr="";for(;On;){Mr+=Fi.substring(Vt,On.index);const vi=bc.case_insensitive?On[0].toLowerCase():On[0],Fa=Zr(er,vi);if(Fa){const[ud,zO]=Fa;if(ua.addText(Mr),Mr="",mi[vi]=(mi[vi]||0)+1,mi[vi]<=Dr&&(Vm+=zO),ud.startsWith("_"))Mr+=On[0];else{const FO=bc.classNameAliases[ud]||ud;ka(On[0],FO)}}else Mr+=On[0];Vt=er.keywordPatternRe.lastIndex,On=er.keywordPatternRe.exec(Fi)}Mr+=Fi.substring(Vt),ua.addText(Mr)}function Xo(){if(Fi==="")return;let Vt=null;if(typeof er.subLanguage=="string"){if(!Me[er.subLanguage]){ua.addText(Fi);return}Vt=Y(er.subLanguage,Fi,!0,I5[er.subLanguage]),I5[er.subLanguage]=Vt._top}else Vt=$e(Fi,er.subLanguage.length?er.subLanguage:null);er.relevance>0&&(Vm+=Vt.relevance),ua.__addSublanguage(Vt._emitter,Vt.language)}function As(){er.subLanguage!=null?Xo():Ys(),Fi=""}function ka(Vt,On){Vt!==""&&(ua.startScope(On),ua.addText(Vt),ua.endScope())}function Hm(Vt,On){let Mr=1;const vi=On.length-1;for(;Mr<=vi;){if(!Vt._emit[Mr]){Mr++;continue}const Fa=bc.classNameAliases[Vt[Mr]]||Vt[Mr],ud=On[Mr];Fa?ka(ud,Fa):(Fi=ud,Ys(),Fi=""),Mr++}}function zp(Vt,On){return Vt.scope&&typeof Vt.scope=="string"&&ua.openNode(bc.classNameAliases[Vt.scope]||Vt.scope),Vt.beginScope&&(Vt.beginScope._wrap?(ka(Fi,bc.classNameAliases[Vt.beginScope._wrap]||Vt.beginScope._wrap),Fi=""):Vt.beginScope._multi&&(Hm(Vt.beginScope,On),Fi="")),er=Object.create(Vt,{parent:{value:er}}),er}function yc(Vt,On,Mr){let vi=E(Vt.endRe,Mr);if(vi){if(Vt["on:end"]){const Fa=new e(Vt);Vt["on:end"](On,Fa),Fa.isMatchIgnored&&(vi=!1)}if(vi){for(;Vt.endsParent&&Vt.parent;)Vt=Vt.parent;return Vt}}if(Vt.endsWithParent)return yc(Vt.parent,On,Mr)}function Dk(Vt){return er.matcher.regexIndex===0?(Fi+=Vt[0],1):(D2=!0,0)}function jO(Vt){const On=Vt[0],Mr=Vt.rule,vi=new e(Mr),Fa=[Mr.__beforeBegin,Mr["on:begin"]];for(const ud of Fa)if(ud&&(ud(Vt,vi),vi.isMatchIgnored))return Dk(On);return Mr.skip?Fi+=On:(Mr.excludeBegin&&(Fi+=On),As(),!Mr.returnBegin&&!Mr.excludeBegin&&(Fi=On)),zp(Mr,Vt),Mr.returnBegin?0:On.length}function Mk(Vt){const On=Vt[0],Mr=ot.substring(Vt.index),vi=yc(er,Vt,Mr);if(!vi)return Or;const Fa=er;er.endScope&&er.endScope._wrap?(As(),ka(On,er.endScope._wrap)):er.endScope&&er.endScope._multi?(As(),Hm(er.endScope,Vt)):Fa.skip?Fi+=On:(Fa.returnEnd||Fa.excludeEnd||(Fi+=On),As(),Fa.excludeEnd&&(Fi=On));do er.scope&&ua.closeNode(),!er.skip&&!er.subLanguage&&(Vm+=er.relevance),er=er.parent;while(er!==vi.parent);return vi.starts&&zp(vi.starts,Vt),Fa.returnEnd?0:On.length}function Nk(){const Vt=[];for(let On=er;On!==bc;On=On.parent)On.scope&&Vt.unshift(On.scope);Vt.forEach(On=>ua.openNode(On))}let Fp={};function Rk(Vt,On){const Mr=On&&On[0];if(Fi+=Vt,Mr==null)return As(),0;if(Fp.type==="begin"&&On.type==="end"&&Fp.index===On.index&&Mr===""){if(Fi+=ot.slice(On.index,On.index+1),!kt){const vi=new Error(`0 width match regex (${pt})`);throw vi.languageName=pt,vi.badRule=Fp.rule,vi}return 1}if(Fp=On,On.type==="begin")return jO(On);if(On.type==="illegal"&&!nn){const vi=new Error('Illegal lexeme "'+Mr+'" for mode "'+(er.scope||"")+'"');throw vi.mode=er,vi}else if(On.type==="end"){const vi=Mk(On);if(vi!==Or)return vi}if(On.type==="illegal"&&Mr==="")return Fi+=` +`,1;if(O2>1e5&&O2>On.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Fi+=Mr,Mr.length}const bc=Qe(pt);if(!bc)throw je(wn.replace("{}",pt)),new Error('Unknown language: "'+pt+'"');const T5=yn(bc);let Wm="",er=ur||T5;const I5={},ua=new ee.__emitter(ee);Nk();let Fi="",Vm=0,Yd=0,O2=0,D2=!1;try{if(bc.__emitTokens)bc.__emitTokens(ot,ua);else{for(er.matcher.considerAll();;){O2++,D2?D2=!1:er.matcher.considerAll(),er.matcher.lastIndex=Yd;const Vt=er.matcher.exec(ot);if(!Vt)break;const On=ot.substring(Yd,Vt.index),Mr=Rk(On,Vt);Yd=Vt.index+Mr}Rk(ot.substring(Yd))}return ua.finalize(),Wm=ua.toHTML(),{language:pt,value:Wm,relevance:Vm,illegal:!1,_emitter:ua,_top:er}}catch(Vt){if(Vt.message&&Vt.message.includes("Illegal"))return{language:pt,value:At(ot),illegal:!0,relevance:0,_illegalBy:{message:Vt.message,index:Yd,context:ot.slice(Yd-100,Yd+100),mode:Vt.mode,resultSoFar:Wm},_emitter:ua};if(kt)return{language:pt,value:At(ot),illegal:!1,relevance:0,errorRaised:Vt,_emitter:ua,_top:er};throw Vt}}function he(pt){const ot={value:At(pt),illegal:!1,relevance:0,_top:Nt,_emitter:new ee.__emitter(ee)};return ot._emitter.addText(pt),ot}function $e(pt,ot){ot=ot||ee.languages||Object.keys(Me);const nn=he(pt),ur=ot.filter(Qe).filter(Xt).map(As=>Y(As,pt,!1));ur.unshift(nn);const mi=ur.sort((As,ka)=>{if(As.relevance!==ka.relevance)return ka.relevance-As.relevance;if(As.language&&ka.language){if(Qe(As.language).supersetOf===ka.language)return 1;if(Qe(ka.language).supersetOf===As.language)return-1}return 0}),[Zr,Ys]=mi,Xo=Zr;return Xo.secondBest=Ys,Xo}function ke(pt,ot,nn){const ur=ot&&We[ot]||nn;pt.classList.add("hljs"),pt.classList.add(`language-${ur}`)}function Je(pt){let ot=null;const nn=_e(pt);if(ue(nn))return;if(ii("before:highlightElement",{el:pt,language:nn}),pt.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",pt);return}if(pt.children.length>0&&(ee.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(pt)),ee.throwUnescapedHTML))throw new Rt("One of your code blocks includes unescaped HTML.",pt.innerHTML);ot=pt;const ur=ot.textContent,mi=nn?Q(ur,{language:nn,ignoreIllegals:!0}):$e(ur);pt.innerHTML=mi.value,pt.dataset.highlighted="yes",ke(pt,nn,mi.language),pt.result={language:mi.language,re:mi.relevance,relevance:mi.relevance},mi.secondBest&&(pt.secondBest={language:mi.secondBest.language,relevance:mi.secondBest.relevance}),ii("after:highlightElement",{el:pt,result:mi,text:ur})}function qe(pt){ee=yr(ee,pt)}const gt=()=>{dn(),ge("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ht(){dn(),ge("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let hn=!1;function dn(){function pt(){dn()}if(document.readyState==="loading"){hn||window.addEventListener("DOMContentLoaded",pt,!1),hn=!0;return}document.querySelectorAll(ee.cssSelector).forEach(Je)}function _n(pt,ot){let nn=null;try{nn=ot(ce)}catch(ur){if(je("Language definition for '{}' could not be registered.".replace("{}",pt)),kt)je(ur);else throw ur;nn=Nt}nn.name||(nn.name=pt),Me[pt]=nn,nn.rawDefinition=ot.bind(null,ce),nn.aliases&&it(nn.aliases,{languageName:pt})}function ct(pt){delete Me[pt];for(const ot of Object.keys(We))We[ot]===pt&&delete We[ot]}function fe(){return Object.keys(Me)}function Qe(pt){return pt=(pt||"").toLowerCase(),Me[pt]||Me[We[pt]]}function it(pt,{languageName:ot}){typeof pt=="string"&&(pt=[pt]),pt.forEach(nn=>{We[nn.toLowerCase()]=ot})}function Xt(pt){const ot=Qe(pt);return ot&&!ot.disableAutodetect}function mr(pt){pt["before:highlightBlock"]&&!pt["before:highlightElement"]&&(pt["before:highlightElement"]=ot=>{pt["before:highlightBlock"](Object.assign({block:ot.el},ot))}),pt["after:highlightBlock"]&&!pt["after:highlightElement"]&&(pt["after:highlightElement"]=ot=>{pt["after:highlightBlock"](Object.assign({block:ot.el},ot))})}function xr(pt){mr(pt),rt.push(pt)}function Vr(pt){const ot=rt.indexOf(pt);ot!==-1&&rt.splice(ot,1)}function ii(pt,ot){const nn=pt;rt.forEach(function(ur){ur[nn]&&ur[nn](ot)})}function bs(pt){return ge("10.7.0","highlightBlock will be removed entirely in v12.0"),ge("10.7.0","Please use highlightElement now."),Je(pt)}Object.assign(ce,{highlight:Q,highlightAuto:$e,highlightAll:dn,highlightElement:Je,highlightBlock:bs,configure:qe,initHighlighting:gt,initHighlightingOnLoad:Ht,registerLanguage:_n,unregisterLanguage:ct,listLanguages:fe,getLanguage:Qe,registerAliases:it,autoDetection:Xt,inherit:yr,addPlugin:xr,removePlugin:Vr}),ce.debugMode=function(){kt=!1},ce.safeMode=function(){kt=!0},ce.versionString=lt,ce.regex={concat:p,lookahead:f,either:x,optional:m,anyNumberOfTimes:h};for(const pt in Fe)typeof Fe[pt]=="object"&&t(Fe[pt]);return Object.assign(ce,Fe),ce},ze=ri({});return ze.newInstance=()=>ri({}),wj=ze,ze.HighlightJS=ze,ze.default=ze,wj}var $tn=Etn();const Ttn=Ol($tn),Wme={},Itn="hljs-";function Atn(t){const e=Ttn.newInstance();return t&&s(t),{highlight:n,highlightAuto:r,listLanguages:i,register:s,registerAlias:a,registered:o};function n(l,c,u){const d=u||Wme,f=typeof d.prefix=="string"?d.prefix:Itn;if(!e.getLanguage(l))throw new Error("Unknown language: `"+l+"` is not registered");e.configure({__emitter:Otn,classPrefix:f});const h=e.highlight(c,{ignoreIllegals:!0,language:l});if(h.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:h.errorRaised});const m=h._emitter.root,p=m.data;return p.language=h.language,p.relevance=h.relevance,m}function r(l,c){const d=(c||Wme).subset||i();let f=-1,h=0,m;for(;++fh&&(h=v.data.relevance,m=v)}return m||{type:"root",children:[],data:{language:void 0,relevance:h}}}function i(){return e.listLanguages()}function s(l,c){if(typeof l=="string")e.registerLanguage(l,c);else{let u;for(u in l)Object.hasOwn(l,u)&&e.registerLanguage(u,l[u])}}function a(l,c){if(typeof l=="string")e.registerAliases(typeof c=="string"?c:[...c],{languageName:l});else{let u;for(u in l)if(Object.hasOwn(l,u)){const d=l[u];e.registerAliases(typeof d=="string"?d:[...d],{languageName:u})}}}function o(l){return!!e.getLanguage(l)}}class Otn{constructor(e){this.options=e,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(e){if(e==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=e:n.children.push({type:"text",value:e})}startScope(e){this.openNode(String(e))}endScope(){this.closeNode()}__addSublanguage(e,n){const r=this.stack[this.stack.length-1],i=e.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(e){const n=this,r=e.split(".").map(function(a,o){return o?a+"_".repeat(o):n.options.classPrefix+a}),i=this.stack[this.stack.length-1],s={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(s),this.stack.push(s)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const Dtn={};function Mtn(t){const e=t||Dtn,n=e.aliases,r=e.detect||!1,i=e.languages||tDe,s=e.plainText,a=e.prefix,o=e.subset;let l="hljs";const c=Atn(i);if(n&&c.registerAlias(n),a){const u=a.indexOf("-");l=u===-1?a:a.slice(0,u)}return function(u,d){Vy(u,"element",function(f,h,m){if(f.tagName!=="code"||!m||m.type!=="element"||m.tagName!=="pre")return;const p=Ntn(f);if(p===!1||!p&&!r||p&&s&&s.includes(p))return;Array.isArray(f.properties.className)||(f.properties.className=[]),f.properties.className.includes(l)||f.properties.className.unshift(l);const v=f9e(f,{whitespace:"pre"});let x;try{x=p?c.highlight(p,v,{prefix:a}):c.highlightAuto(v,{prefix:a,subset:o})}catch(w){const E=w;if(p&&/Unknown language/.test(E.message)){d.message("Cannot highlight as `"+p+"`, it’s not registered",{ancestors:[m,f],cause:E,place:f.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw E}!p&&x.data&&x.data.language&&f.properties.className.push("language-"+x.data.language),x.children.length>0&&(f.children=x.children)})}}function Ntn(t){const e=t.properties.className;let n=-1;if(!Array.isArray(e))return;let r;for(;++n{const[i,s]=g.useState(!1),[a,o]=g.useState(!1);if(!t)return y.jsx("span",{children:"[Invalid image: no source]"});let l={},c=!1;try{const u=new URL(t,window.location.href);new URLSearchParams(u.search).forEach((f,h)=>{l[h]=f,c=!0})}catch{const d=t.indexOf("?");d>-1&&(c=!0,new URLSearchParams(t.substring(d)).forEach((h,m)=>{l[m]=h}))}return i&&!a?y.jsx(Btn,{className:r,children:y.jsx("img",{src:t,alt:e||"",title:n,onError:()=>{o(!0),s(!1)}})}):y.jsxs(Ltn,{children:[y.jsx(Ptn,{children:"Image blocked for security. External images can leak data through URL parameters. Click to load if you trust the source."}),y.jsxs(jtn,{children:[y.jsx("strong",{children:"URL:"})," ",t]}),c&&y.jsxs(ztn,{children:[y.jsx("strong",{children:"Warning: URL contains query parameters:"}),y.jsx("pre",{style:{margin:"4px 0",fontSize:"11px"},children:JSON.stringify(l,null,2)})]}),a&&y.jsx("div",{style:{color:gs,fontSize:"12px",marginTop:"8px"},children:"Failed to load image. The URL may be invalid or inaccessible."}),y.jsx(Ftn,{onClick:()=>s(!0),children:"Load Image"})]})};var FS={},_j,Vme;function qtn(){return Vme||(Vme=1,_j=function(e){return e.map(function(n){return n===""?"''":n&&typeof n=="object"?n.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(n)&&!/'/.test(n)?"'"+n.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(n)?'"'+n.replace(/(["\\$`!])/g,"\\$1")+'"':String(n).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}),_j}var kj,Zme;function Htn(){if(Zme)return kj;Zme=1;for(var t="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",e=new RegExp("^"+t+"$"),n="|&;()<> \\t",r='"((\\\\"|[^"])*?)"',i="'((\\\\'|[^'])*?)'",s=/^#$/,a="'",o='"',l="$",c="",u=4294967296,d=0;d<4;d++)c+=(u*Math.random()).toString(16);var f=new RegExp("^"+c);function h(v,x){for(var w=x.lastIndex,E=[],S;S=x.exec(v);)E.push(S),x.lastIndex===S.index&&(x.lastIndex+=1);return x.lastIndex=w,E}function m(v,x,w){var E=typeof v=="function"?v(w):v[w];return typeof E>"u"&&w!=""?E="":typeof E>"u"&&(E="$"),typeof E=="object"?x+c+JSON.stringify(E)+c:x+E}function p(v,x,w){w||(w={});var E=w.escape||"\\",S="(\\"+E+`['"`+n+`]|[^\\s'"`+n+"])+",_=new RegExp(["("+t+")","("+S+"|"+r+"|"+i+")+"].join("|"),"g"),C=h(v,_);if(C.length===0)return[];x||(x={});var T=!1;return C.map(function(M){var A=M[0];if(!A||T)return;if(e.test(A))return{op:A};var $=!1,O=!1,D="",N=!1,R;function q(){R+=1;var U,J,F=A.charAt(R);if(F==="{"){if(R+=1,A.charAt(R)==="}")throw new Error("Bad substitution: "+A.slice(R-2,R+1));if(U=A.indexOf("}",R),U<0)throw new Error("Bad substitution: "+A.slice(R));J=A.slice(R,U),R=U}else if(/[*@#?$!_-]/.test(F))J=F,R+=1;else{var H=A.slice(R);U=H.match(/[^\w\d_]/),U?(J=H.slice(0,U.index),R+=U.index-1):(J=H,R=A.length)}return m(x,"",J)}for(R=0;R"u"?M:M.concat(A)},[])}return kj=function(x,w,E){var S=p(x,w,E);return typeof w!="function"?S:S.reduce(function(_,C){if(typeof C=="object")return _.concat(C);var T=C.split(RegExp("("+c+".*?"+c+")","g"));return T.length===1?_.concat(T[0]):_.concat(T.filter(Boolean).map(function(M){return f.test(M)?JSON.parse(M.split(c)[1]):M}))},[])},kj}var Gme;function Wtn(){return Gme||(Gme=1,FS.quote=qtn(),FS.parse=Htn()),FS}var Kme=Wtn();function GW(t,e){if(!e||typeof e!="string")return t;const n=e.trim();if(n==="")return t;try{const r=n.split(/\r?\n|\r/);if(r.length>1){let s=t;for(const a of r){const o=a.trim();if(o==="")continue;const l=Kme.parse(o),c=Yme(l,t,o);if(s=O1(s,c),s==="disabled")return"disabled"}return s}const i=Kme.parse(n);return Yme(i,t,n)}catch(r){return console.error("Failed to parse command:",r),"allowedWithPermission"}}function KW(t){return typeof t=="object"&&"op"in t&&t.op!=="glob"}function nDe(t){return typeof t=="object"&&"op"in t&&t.op==="glob"}function rDe(t){return typeof t=="object"&&"comment"in t}function Yme(t,e,n){if(t.some(i=>typeof i=="string"&&i==="")){const i=n.includes('""')||n.includes("''"),s=/\$[\w{]/.test(n);if(!i||s){const a=Sj(t,e,n),o=t.filter(c=>c!==""),l=o.length>0?Sj(o,e,n):e;return O1(a,l,"allowedWithPermission")}}return Sj(t,e,n)}function Sj(t,e,n){let r=e,i=[];for(let s=0;s0){const o=Jme(i,n);if(r=O1(r,o),r==="disabled")return"disabled"}if(i=[],a.op==="|"){const o=Vtn(t,s);if(r=O1(r,o),r==="disabled")return"disabled"}}else nDe(a)?i.push(a.pattern):typeof a=="string"&&i.push(a)}if(i.length>0){const s=Jme(i,n);r=O1(r,s)}if(vnn(n)){const s=iDe(n);for(const a of s){const o=GW(e,a);if(r=O1(r,o),r==="disabled")return"disabled"}r==="allowedWithoutPermission"&&(r="allowedWithPermission")}return bnn(n)&&(r=O1(r,"allowedWithPermission")),r}function O1(...t){return t.some(e=>e==="disabled")?"disabled":t.some(e=>e==="allowedWithPermission")?"allowedWithPermission":"allowedWithoutPermission"}function Vtn(t,e){let n=e+1;for(;n=t.length)return"allowedWithoutPermission";const r=[];for(let i=n;i0){const i=r[0].toLowerCase();if(["sh","bash","zsh","python","perl","ruby","node"].includes(i)||i==="curl"||i==="wget"||i==="nc"||i==="netcat")return"allowedWithPermission"}return"allowedWithoutPermission"}function Jme(t,e){if(t.length===0)return"allowedWithoutPermission";const n=t[0].toLowerCase(),r=t.slice(1);return Ztn(n,r)?"disabled":n.startsWith("$")||mnn(n,r,e)?"allowedWithPermission":gnn(n,r)?"allowedWithoutPermission":"allowedWithPermission"}function Ztn(t,e){if(t.startsWith("mkfs"))return!0;const n=[t,...e],r=n.some(o=>o==="-rf"||o==="-fr"||o.startsWith("-")&&o.includes("r")&&o.includes("f"))||n.includes("-r")&&n.includes("-f")||n.includes("--recursive")&&n.includes("--force"),i=n.some(o=>o==="/"||o==="/*"||o==="~"||o==="~/*"||o==="/usr"||o==="/etc"||o==="/bin"||o==="/sbin"||o.startsWith("/usr/")||o.startsWith("/etc/")||o.startsWith("/bin/")||o.startsWith("/sbin/"));if(r&&i)return!0;if(t==="rm"){const o=["/etc/passwd","/etc/shadow","/etc/sudoers","/etc/hosts","/boot/","/sys/","/proc/","/dev/","/bin/","/sbin/","/usr/bin/","/usr/sbin/","/lib/","/lib64/"];if(e.some(l=>o.some(c=>l.includes(c))))return!0}if(t==="del"){const o=e.includes("/s")&&e.includes("/q"),l=e.some(c=>c.toLowerCase().includes("c:\\")||c.includes("c:/"));if(o||l)return!0}return!!(t==="format"||t==="cipher"||t==="dd"&&e.some(o=>o.includes("of=/dev/")||o.includes("of=/dev/sda")||o.includes("of=/dev/disk"))||["sudo","su","doas","runas","gsudo","psexec"].includes(t)||t==="chmod"&&e.some(o=>o==="777"||o==="776"||o==="775"||o==="+s"||o==="u+s"||o==="g+s")||t==="chown"&&e.some(o=>o.includes("root"))||t==="icacls"&&e.some(o=>o.toLowerCase().includes("everyone:f")||o.includes("*s-1-1-0:(oi)(ci)f"))||t==="takeown"||["insmod","modprobe","rmmod","iptables","ip6tables","nftables"].includes(t)||t==="eval"||t==="exec")}function Gtn(t,e){if(["npm","yarn","pnpm","pip","pip3","gem","cargo","go","apt","apt-get","yum","dnf","zypper","pacman","brew","choco","scoop","winget"].includes(t)){const r=["install","add","i"];if(e.length>0&&r.includes(e[0]))return!0}return!1}function Ktn(t){return["curl","wget","nc","netcat","ncat","telnet","ssh","scp","rsync","ftp","sftp","tftp","socat"].includes(t)}function Ytn(t,e){if(["sh","bash","zsh","fish","ksh","csh","tcsh","dash","python","python3","python2","ruby","perl","php","node","nodejs","deno","bun","lua","tcl","powershell","pwsh"].includes(t)){if(e.length===1&&(e[0]==="--help"||e[0]==="--version"))return!1;if(e.includes("-c")||e.length>0)return!0}return!1}function Jtn(t){return t.startsWith("./")||t.endsWith(".sh")||t.endsWith(".py")||t.endsWith(".rb")||t.endsWith(".pl")||t.endsWith(".ps1")||t.endsWith(".bat")||t.endsWith(".cmd")}function Xtn(t,e){if(t==="export"||t==="setx"||t==="set"){const n=["PATH","LD_PRELOAD","LD_LIBRARY_PATH","PYTHONPATH","NODE_PATH","PERL5LIB","RUBYLIB"];if(e.some(r=>n.some(i=>r.includes(i))))return!0}return!1}function Qtn(t){return["kill","killall","pkill","taskkill","pskill"].includes(t)}function enn(t){return t==="systemctl"||t==="service"||t==="launchctl"||t==="sc"}function tnn(t,e){if(t==="mv"||t==="cp"||t==="copy"){const n=["/etc/","/usr/","/bin/","/sbin/","c:\\windows","c:\\program"];if(e.some(r=>n.some(i=>r.toLowerCase().includes(i))))return!0}return!1}function nnn(t,e){if(t==="rm"){const n=e.some(i=>i==="-rf"||i==="-fr"),r=e.some(i=>["/etc/","/usr/","/bin/","/sbin/"].some(s=>i.includes(s)));if(!n&&!r)return!0}return!1}function rnn(t,e){return!!((t==="tar"||t==="unzip"||t==="7z")&&e.some((r,i)=>{if((r==="-C"||r==="-d"||r==="-o")&&in.includes("HIST")))}function hnn(t){return t==="dig"||t==="nslookup"||t==="host"}function pnn(t,e){return!!(t==="defaults"&&e.some(n=>n.includes("/Library/"))||t==="pmset"||t==="csrutil")}function mnn(t,e,n){return!!(Gtn(t,e)||Ktn(t)||Ytn(t,e)||Jtn(t)||Xtn(t,e)||t==="alias"||ynn([t,...e],n)||Qtn(t)||enn(t)||tnn(t,e)||nnn(t,e)||rnn(t,e)||inn(t)||snn(t)||ann(t)||onn(t)||lnn(t)||cnn(t)||unn(t)||dnn(t)||fnn(t,e)||hnn(t)||pnn(t,e))}function gnn(t,e){if(["ls","dir","pwd","whoami","id","hostname","uname","date","uptime","df","du","free","top","htop","ps","jobs","which","whereis","type","file","stat","wc","head","tail"].includes(t)||["cat","less","more","nl","od","strings"].includes(t)||t==="echo"||t==="grep"&&!e.includes("--exec"))return!0;if(t==="find"){const s=["-exec","-execdir","-ok","-okdir","-delete"];if(!e.some(a=>s.includes(a)))return!0}if(t==="git"){const s=["status","log","diff","show","branch","remote"];if(e.length>0&&s.includes(e[0]))return!0}if(t==="npm"||t==="yarn"||t==="pnpm"){const s=["test","build","start","run"];if(e.length>0&&s.includes(e[0])){const a=["preinstall","postinstall","prepare","prepublish"];if(e.length>1&&!a.includes(e[1]))return!0}}if(["make","gradle","mvn","cargo"].includes(t)){const s=["build","compile","test","check","clean"];if(e.some(a=>s.includes(a)))return!0}return!!(t==="tar"&&e.some(s=>s.includes("c"))&&!e.some((s,a)=>s==="-C"&&as.startsWith("-d/")))}function vnn(t){return!!(t.includes("`")||t.includes("$(")||t.match(/<\(|>\(/))}function iDe(t){const e=[],n=t.match(/`([^`]+)`/g);n&&e.push(...n.map(i=>i.slice(1,-1)));let r=0;for(;r0;)t[a]==="("?s++:t[a]===")"&&s--,a++;if(s===0){const o=t.slice(i+2,a-1);e.push(o),(o.includes("$(")||o.includes("`"))&&e.push(...iDe(o))}r=a}return e}function ynn(t,e){return!!(t.length>0&&t[0]==="function"||[/^\s*\w+\s*\(\)\s*\{/,/^\s*function\s+\w+\s*\{/,/^\s*function\s+\w+\s*\(\)/].some(r=>r.test(e)))}function bnn(t){return!!(t.match(/base64\s+-d|base64\s+--decode/)||t.match(/\\x[0-9a-f]{2}/i)||t.match(/\\u[0-9a-f]{4}/i)||t.match(/\\[0-7]{3}/)||t.includes("echo")&&t.includes("-e")&&t.match(/\\[xnu0-7]/)||t.includes("printf")&&t.match(/\\[xnu0-7]/)||t.includes("xxd")&&t.includes("-r")||t.includes("od")&&(t.includes("-x")||t.includes("-o")))}async function fI(t,e,n){const r=n??await e.getWorkspaceDirs();for(const i of r){const s=NG(i,t);if(await e.fileExists(s))return s}}async function Xme(t,e,n){const r=t.trim().replaceAll("\\","/"),i=await e.getWorkspaceDirs();if(i.length===0)throw new Error("inferResolvedUriFromRelativePath: no dirs provided");const s=i7e(r).split("/"),a=[];for(let l=s.length-1;l>=0;l--)a.push(s.slice(l).join("/"));for(const l of a){const u=i.map(h=>({dir:h,partialUri:Cce(h,l)})).map(async({partialUri:h,dir:m})=>{const p=await e.fileExists(h);return{dir:m,partialUri:h,exists:p}}),f=(await Promise.all(u)).filter(({exists:h})=>h);if(f.length===1)return Cce(f[0].dir,s.join("/"))}const o=await e.getCurrentFile();return o&&o.path.endsWith(r)?o.path:NG(i[0],r)}function xnn(t,e){const n=g.useContext(qt),[r,i]=g.useState(null),[s,a]=g.useState(!1);async function o(){if(!e){i(null);return}a(!0);try{const l=await n.request(t,e);l.status==="success"?i(l.content):(console.error(`Error in ${t} request:`,l.error),i(null))}finally{a(!1)}}return g.useEffect(()=>{o()},[e,t]),{result:r,isLoading:s,refresh:o}}function wnn(t){return GY(t).length>0}function ZY(t,e){return GY(t).filter(n=>n.status===e)}function GY(t){let e=!1,n=!1;for(let r=t.length-1;r>=0;r--){const i=t[r];if(i.message.role==="user")return[];if(i.message.role==="assistant"||i.message.role==="thinking"){if(e=!0,i.toolCallStates&&i.toolCallStates.length>0)return i.toolCallStates}else e&&(n=!0);if(n)return[]}return[]}function Oc(t,e){for(let n=t.length-1;n>=0;n--){const r=t[n];if(r.toolCallStates){const i=r.toolCallStates.find(s=>s.toolCallId===e);if(i)return i}}}function _nn(t,e){return t.findLast(n=>n.message.role==="tool"&&n.message.toolCallId===e)}function tb(t,e,n,r,i){var s,a,o;r.post("devdata/log",{name:"toolUsage",data:{toolCallId:t.toolCallId,functionName:((a=(s=t.tool)==null?void 0:s.function)==null?void 0:a.name)||t.toolCall.function.name,functionParams:(o=t.tool)==null?void 0:o.function.parameters,toolCallArgs:t.toolCall.function.arguments,accepted:e,output:i||t.output||[],succeeded:n}})}const YW=So(t=>t.session.history,t=>GY(t));So(t=>t.session.history,t=>wnn(t));const sDe=So([t=>t.session.history,(t,e)=>e],(t,e)=>ZY(t,e)),knn=So(t=>t.session.history,t=>ZY(t,"generated")[0]||void 0),KY=So([t=>t.session.history,(t,e)=>e],(t,e)=>Oc(t,e)),aDe=So([t=>t.session.codeBlockApplyStates,(t,e)=>e],(t,e)=>t.states.findLast(n=>n.toolCallId===e)),lg=So(t=>t.session.history,t=>ZY(t,"generated")),Snn=So(t=>t.session.codeBlockApplyStates.states,t=>t.filter(e=>e.status==="done")),Cnn=["bash","sh"],Enn=["npm","pnpm","yarn","bun","deno","npx","cd","ls","pwd","pip","python","node","git","curl","wget","rbenv","gem","ruby","bundle"];function Qme(t,e){return t&&Cnn.includes(t)||(!t||(t==null?void 0:t.length)===0)&&(e.trim().split(` +`).length===1||Enn.some(n=>e.trim().startsWith(n)))}function $nn(t,e,n){if(n.length&&t.includes(".")&&t.length>2){const s=n.find(a=>a.filepath.split("/").pop()===t);if(s)return s}const r=e.find(s=>s.name===t);if(r)return r;const i=e.find(s=>t.startsWith(s.name));if(i)return i}function Tnn(t){return t.type!==void 0}const fl=Dn.span` + padding: 0 ${t=>t.px??4}px; + padding-top: 2px; + padding-bottom: 2px; + cursor: pointer; + transition: + color 200ms, + background-color 200ms, + box-shadow 200ms; +`;function xw({onClick:t,children:e,tooltipContent:n,"data-testid":r}){return y.jsx(Ln,{place:"top",content:n,children:y.jsx("div",{onClick:i=>{i.stopPropagation(),t()},"data-testid":r,className:"hover:description-muted/30 flex cursor-pointer select-none items-center justify-center rounded bg-transparent px-0.5 py-0.5 hover:opacity-80",children:e})})}function oDe(t){var n,r;function e(){t.onClickReject()}switch(t.applyState?t.applyState.status:null){case"streaming":return y.jsx("div",{className:"bg-badge flex select-none items-center rounded pl-2 pr-1",children:y.jsxs("span",{className:"text-lightgray inline-flex items-center gap-2 text-center text-xs",children:["Applying",y.jsx(aT,{})]})});case"done":return y.jsxs("div",{className:"bg-badge flex select-none items-center rounded sm:gap-1 md:px-1.5",children:[y.jsx("span",{className:"text-lightgray flex items-center text-center text-xs max-md:hidden",children:`${((n=t.applyState)==null?void 0:n.numDiffs)===1?"1 diff":`${(r=t.applyState)==null?void 0:r.numDiffs} diffs`}`}),y.jsxs("div",{className:"flex items-center",children:[y.jsx(xw,{"data-testid":"codeblock-toolbar-reject",onClick:e,tooltipContent:`Reject all (${Ho()}⇧⌫)`,children:y.jsx(Hd,{className:"text-error h-3.5 w-3.5 flex-shrink-0 hover:brightness-125"})}),y.jsx(xw,{"data-testid":"codeblock-toolbar-accept",onClick:t.onClickAccept,tooltipContent:`Accept all (${Ho()}⇧⏎)`,children:y.jsx(Ql,{className:"text-success h-3.5 w-3.5 flex-shrink-0 hover:brightness-125"})})]})]});case"closed":default:return t.disableManualApply?null:y.jsx(Ln,{place:"top",content:"Apply Code",children:y.jsx(fl,{"data-tooltip-id":"codeblock-apply-code-button-tooltip",className:"!p-0",children:y.jsx("button",{"data-testid":"codeblock-toolbar-apply",className:"text-lightgray flex cursor-pointer items-center border-none bg-transparent pl-0 text-xs outline-none hover:brightness-125",onClick:t.onClickApply,children:y.jsxs("div",{className:"text-lightgray flex items-center gap-1",children:[y.jsx(iG,{className:"h-3.5 w-3.5"}),y.jsx("span",{className:"xs:inline hidden",children:"Apply"})]})})})})}}function Inn({children:t,maxHeight:e="max-h-40",className:n="",collapsible:r=!1}){const[i,s]=g.useState(!1);return r?y.jsxs("div",{className:`relative ${n}`,children:[y.jsx("div",{className:`overflow-hidden ${i?"":e}`,children:t}),!i&&y.jsx("div",{className:"from-editor absolute bottom-0 left-0 right-0 h-12 bg-gradient-to-t to-transparent",children:y.jsx("div",{onClick:()=>s(!0),className:"group flex h-full cursor-pointer items-end justify-center pb-2",children:y.jsx("span",{title:"Expand to show full content",children:y.jsx(eo,{className:"text-lightgray group-hover:text-foreground h-4 w-4"})})})}),i&&y.jsx("div",{onClick:()=>s(!1),className:"group mt-2 flex cursor-pointer justify-center",children:y.jsx("span",{title:"Collapse to compact view",children:y.jsx(eo,{className:"text-lightgray group-hover:text-foreground h-4 w-4 rotate-180"})})})]}):y.jsx("div",{className:n,children:t})}function lDe(t){const[e,n]=g.useState(!1),r=g.useContext(qt),i=g.useCallback(()=>{const s=typeof t=="string"?t:t();Go()?r.post("copyText",{text:s}):navigator.clipboard.writeText(s),n(!0),setTimeout(()=>n(!1),2e3)},[t,r]);return{copied:e,copyText:i}}function cDe({text:t}){const{copyText:e,copied:n}=lDe(t);return y.jsx(Ln,{place:"top",content:"Copy Code",children:y.jsx(fl,{className:"!p-0",children:y.jsx("div",{className:"text-lightgray flex cursor-pointer items-center border-none bg-transparent text-xs outline-none hover:brightness-125",onClick:e,children:y.jsx("div",{className:"flex items-center gap-1 transition-colors duration-200 hover:brightness-125",children:n?y.jsx(Ql,{className:"h-3.5 w-3.5 text-green-500 hover:brightness-125"}):y.jsx(N6,{className:"h-3.5 w-3.5 hover:brightness-125"})})})})})}function Ann({onClick:t}){return y.jsx(Ln,{place:"top",content:"Create File with Code",children:y.jsx(fl,{className:"!p-0",children:y.jsx("button",{"data-testid":"codeblock-toolbar-create",className:`text-lightgray flex items-center border-none bg-transparent pl-0 text-xs text-[${fs}] cursor-pointer outline-none hover:brightness-125`,onClick:t,children:y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsx(j6e,{className:"h-3.5 w-3.5 shrink-0"}),y.jsx("span",{className:"line-clamp-1 select-none break-all",children:"Create file"})]})})})})}const uDe=({filepath:t,range:e,onClick:n})=>y.jsx(Ln,{style:{maxWidth:"200px",textAlign:"left",whiteSpace:"normal",wordBreak:"break-word"},content:t,place:"top-end",children:y.jsxs("div",{className:`flex select-none flex-row items-center gap-0.5 ${n&&"cursor-pointer hover:underline"}`,onClick:n,children:[y.jsx("div",{children:y.jsx(t5,{height:"20px",width:"20px",filename:t})}),y.jsxs("span",{className:"line-clamp-1 break-all",children:[Wx(t,1),e&&` ${e}`]})]})});function Onn({onInsert:t}){return y.jsx(fl,{"data-tooltip-id":"codeblock-insert-button-tooltip",className:"!p-0",children:y.jsx(Ln,{place:"top",content:"Insert Code",children:y.jsx("div",{className:"text-lightgray flex cursor-pointer items-center border-none bg-transparent text-xs outline-none hover:brightness-125",onClick:t,children:y.jsx("div",{className:"max-2xs:hidden flex items-center gap-1 transition-colors duration-200",children:y.jsx(x6e,{className:"h-3.5 w-3.5"})})})})})}function Dnn(t){if(!t||t.trim()==="")return"";if(t=t.replace(/\/\*[\s\S]*?\*\//g," "),t.includes("$")){const r=t.match(/\$\s*([^\n]+)/);if(r)return r[1].trim()}const e=t.split(` +`).map(r=>r.replace(/^\s*#.*$/,"").replace(/^\s*\/\/.*$/,"")).map(r=>r.trim()).filter(r=>r);let n="";for(let r=0;rle.session.history),[v,x]=g.useState(d??!0),[w,E]=g.useState(null),S=g.useMemo(()=>w?{filepath:w}:null,[w]),{result:_,refresh:C,isLoading:T}=xnn("fileExists",S),M=He(le=>le.session.codeBlockApplyStates.curIndex),A=He(le=>V3n(le,o)),$=He(le=>Z3n(le,l)),O=He(le=>l?KY(le,l):void 0),D=t&&((O==null?void 0:O.status)==="canceled"||(O==null?void 0:O.status)==="errored"||(O==null?void 0:O.status)==="done")?y.jsx("div",{className:`mr-1 h-4 w-4 flex-shrink-0 ${O.output?"cursor-pointer":""}`,onClick:()=>{O.output&&m.post("showVirtualFile",{name:"Edit output",content:l2(O.output)})},children:vC(O.status)}):null,[N,R]=g.useState(void 0),q=M===s,W=r&&/\.[0-9a-z]+$/i.test(r),G=He(le=>le.session.isStreaming),J=g.useMemo(()=>i===p.length-1,[p.length,i])&&a&&G,F=g.useMemo(()=>{if(Qme(n,e)){const le=GW("allowedWithoutPermission",e);if(le==="disabled"||le==="allowedWithPermission")return!0;const te=e.split(` +`);for(const Fe of te){const Ge=Fe.trim();if(!Ge||Ge.startsWith("#"))continue;const Ve=GW("allowedWithoutPermission",Ge);if(Ve==="disabled"||Ve==="allowedWithPermission")return!0}}return!1},[n,e]),H=r??N;Er("applyCodeFromChat",async()=>L(),[q,e],!q),g.useEffect(()=>{(async()=>{if(r){const te=await Xme(r,m.ide);E(te)}})()},[r,m.ide]);async function V(){if(N)return N;if(w)return w;const le=await m.ide.getCurrentFile();if(le)return le.path}async function L(){const le=await V();if(!le){m.ide.showToast("error","Could not resolve filepath to apply changes");return}m.post("applyToFile",{streamId:o,filepath:le,text:e}),R(le),C()}function se(){m.post("insertAtCursor",{text:e})}async function oe(le){const te=await V();if(!te){m.ide.showToast("error",`Could not resolve filepath to ${le} changes`);return}m.post(`${le}Diff`,{filepath:te,streamId:o}),R(void 0)}async function X(){if(N&&m.post("showFile",{filepath:N}),r){const le=await Xme(r,m.ide);m.post("showFile",{filepath:le})}}const de=()=>{const le=($==null?void 0:$.status)==="not-started";if(J||le){const te=e.split(` +`).length,Fe=te===1?"":"s";return J?y.jsx("span",{className:"text-lightgray inline-flex items-center gap-2 text-right",children:y.jsx("div",{children:y.jsx(aT,{})})}):y.jsx("span",{className:"text-lightgray inline-flex items-center gap-2 text-right",children:`${te} line${Fe} pending`})}return Qme(n,e)?y.jsx(dDe,{command:e}):T?null:_||!r?y.jsx(oDe,{disableManualApply:f,applyState:$??A,onClickApply:L,onClickAccept:()=>oe("accept"),onClickReject:()=>oe("reject")}):y.jsx(Ann,{onClick:L})};return r&&!W?u:y.jsxs("div",{className:"outline-command-border -outline-offset-0.5 rounded-default bg-editor !my-2 flex min-w-0 flex-col outline outline-1",children:[F&&y.jsxs("div",{className:"bg-warning/10 border-warning/30 text-warning flex items-center gap-2 border-b px-2 py-1.5 text-sm",children:[y.jsx(mp,{className:"h-4 w-4 flex-shrink-0"}),y.jsx("span",{children:Mnn})]}),y.jsxs("div",{className:`find-widget-skip bg-editor sticky -top-2 z-10 m-0 flex items-center justify-between gap-3 px-1.5 py-1 ${v?"rounded-t-default border-command-border border-b":"rounded-default"}`,style:{fontSize:`${la()-2}px`},children:[y.jsxs("div",{className:"flex max-w-[50%] flex-row items-center",children:[D,y.jsx(eo,{"data-testid":"toggle-codeblock",onClick:()=>x(!v),className:`text-lightgray h-3.5 w-3.5 flex-shrink-0 cursor-pointer hover:brightness-125 ${v?"rotate-0":"-rotate-90"}`}),H?y.jsx(uDe,{filepath:H,range:c,onClick:_?X:void 0}):y.jsx("span",{className:"text-lightgray ml-2 select-none capitalize",children:n})]}),y.jsxs("div",{className:"flex items-center gap-2.5",children:[!J&&y.jsxs("div",{className:"xs:flex hidden items-center gap-2.5",children:[y.jsx(Onn,{onInsert:se}),y.jsx(cDe,{text:e})]}),de()]})]}),v&&y.jsx(Inn,{collapsible:h,children:u})]})}function Rnn({symbol:t,content:e}){const n=g.useContext(qt);function r(){n.post("showLines",{filepath:t.filepath,startLine:t.range.start.line,endLine:t.range.end.line})}const i=g.useMemo(()=>{let s=t.content;return s.length>200?s.slice(0,196)+` +...`:s},[t]);return y.jsx(Ln,{place:"top",className:"m-0 p-0",content:y.jsx("pre",{className:"text-left",children:i??t.filepath}),children:y.jsx("span",{className:"mx-[0.1em] mb-[0.15em] inline-flex cursor-pointer flex-row items-center gap-[0.2rem] rounded-md align-middle hover:ring-1",onClick:r,"data-tooltip-delay-show":500,children:y.jsx("code",{className:"text-link align-middle",children:e})})})}function Lnn(t){t.startsWith("#")&&(t=t.slice(1)),t.length>6&&(t=t.slice(0,6));const e=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16);return{r:e,g:n,b:r}}const e1e={".hljs-comment":["comment"],".hljs-tag":["tag"],".hljs-doctag":["keyword"],".hljs-keyword":["keyword"],".hljs-meta .hljs-keyword":["keyword"],".hljs-template-tag":["keyword"],".hljs-template-variable":["keyword"],".hljs-type":["keyword"],".hljs-variable.language_":["keyword"],".hljs-title":["title","function","class"],".hljs-title.class_":["title","function","class","variable"],".hljs-title.class_.inherited__":["title","function","class","variable"],".hljs-title.function_":["support.function","entity.name.function","title","function","class"],".hljs-built_in":["support.function","entity.name.function","title","function","class"],".hljs-name":["constant"],".hljs-attr":["variable","operator","number"],".hljs-attribute":["attribute","variable","operator","number"],".hljs-literal":["variable","operator","number"],".hljs-meta":["variable","operator","number"],".hljs-number":["constant.numeric","number","variable","operator"],".hljs-operator":["variable","operator","number"],".hljs-variable":["variable","operator","number"],".hljs-selector-attr":["variable","operator","number"],".hljs-selector-class":["variable","operator","number"],".hljs-selector-id":["variable","operator","number"],".hljs-regexp":["string"],".hljs-string":["string"],".hljs-meta .hljs-string":["string"],".hljs-params":["variable","operator","number"]};function fDe(t){const e=(t==null?void 0:t.rules)||[],n={};e.forEach(({token:i,foreground:s})=>{!s||!i||(n[i]=s)});const r={};return Object.keys(e1e).forEach(i=>{const s=e1e[i];for(const a of s)if(n[a]){r[i]=n[a];break}}),Object.keys(r).length===0?Pnn():r}function Pnn(){const e=getComputedStyle(document.body).getPropertyValue("--vscode-editor-background"),{r:n,g:r,b:i}=Lnn(e);return(n+r+i)/3>=128?{".hljs-comment":"#008000",".hljs-doctag":"#0000ff",".hljs-keyword":"#0000ff",".hljs-meta .hljs-keyword":"#0000ff",".hljs-template-tag":"#0000ff",".hljs-template-variable":"#0000ff",".hljs-type":"#0000ff",".hljs-variable.language_":"#0000ff",".hljs-title.class_":"#001080",".hljs-title.class_.inherited__":"#001080",".hljs-title.function_":"#795E26",".hljs-built_in":"#795E26",".hljs-attr":"#001080",".hljs-attribute":"#001080",".hljs-literal":"#001080",".hljs-meta":"#001080",".hljs-number":"#098658",".hljs-operator":"#001080",".hljs-variable":"#001080",".hljs-selector-attr":"#001080",".hljs-selector-class":"#001080",".hljs-selector-id":"#001080",".hljs-regexp":"#a31515",".hljs-string":"#a31515",".hljs-meta .hljs-string":"#a31515",".hljs-params":"#001080"}:{".hljs-comment":"#6A9955",".hljs-doctag":"#569cd6",".hljs-keyword":"#569cd6",".hljs-meta .hljs-keyword":"#569cd6",".hljs-template-tag":"#569cd6",".hljs-template-variable":"#569cd6",".hljs-type":"#569cd6",".hljs-variable.language_":"#569cd6",".hljs-title.class_":"#9CDCFE",".hljs-title.class_.inherited__":"#9CDCFE",".hljs-title.function_":"#DCDCAA",".hljs-built_in":"#DCDCAA",".hljs-attr":"#9CDCFE",".hljs-attribute":"#9CDCFE",".hljs-literal":"#9CDCFE",".hljs-meta":"#9CDCFE",".hljs-number":"#b5cea8",".hljs-operator":"#9CDCFE",".hljs-variable":"#9CDCFE",".hljs-selector-attr":"#9CDCFE",".hljs-selector-class":"#9CDCFE",".hljs-selector-id":"#9CDCFE",".hljs-regexp":"#ce9178",".hljs-string":"#ce9178",".hljs-meta .hljs-string":"#ce9178",".hljs-params":"#9CDCFE"}}const hDe={theme:fDe(window.fullColorTheme||{})},pDe=g.createContext(hDe),jnn=({children:t})=>{const[e,n]=g.useState(hDe.theme);return Er("setTheme",async r=>{window.fullColorTheme=r.theme,n(fDe(r.theme))}),y.jsx(pDe.Provider,{value:{theme:e},children:t})},znn=t=>Object.keys(t).map(e=>` + & ${e} { + color: ${t[e]}; + } + `).join(""),Fnn=Dn.pre` + & .hljs { + color: ${fs}; + } + + margin-top: 0; + margin-bottom: 0; + border-radius: 0 0 ${oa} ${oa} !important; + max-height: 40vh; + overflow-y: scroll !important; + + ${t=>znn(t.theme)} +`,t1e=t=>{const e=g.useContext(pDe);return y.jsx(Fnn,{...t,theme:e.theme})};function Bnn(t){const e=/\$\$(?:\r?\n)(.*?)(?:\r?\n)\$\$/gms;return t.replace(e,"$$$$$1$$$$")}function mDe(t){var e,n,r;return t==="md"||t==="markdown"||t==="gfm"||t==="github-markdown"||t.includes(" md")||t.includes(" markdown")||t.includes(" gfm")||t.includes(" github-markdown")||((e=t.split(" ")[0])==null?void 0:e.split(".").pop())==="md"||((n=t.split(" ")[0])==null?void 0:n.split(".").pop())==="markdown"||((r=t.split(" ")[0])==null?void 0:r.split(".").pop())==="gfm"}class Unn{constructor(e){Wt(this,"trimmedLines");Wt(this,"bareBacktickPositions");Wt(this,"markdownNestCount",0);Wt(this,"lastProcessedIndex",-1);this.trimmedLines=e.map(n=>n.trim()),this.bareBacktickPositions=[];for(let n=0;n0)if(r.match(/^`+$/)){if(n===e&&this.getRemainingBareBackticksAfter(n)===0)return this.markdownNestCount=0,this.lastProcessedIndex=n,!0}else r.startsWith("```")&&this.markdownNestCount++;else if(r.startsWith("```")){const i=r.replaceAll("`","");mDe(i)&&(this.markdownNestCount=1)}}return this.lastProcessedIndex=e,!1}getRemainingBareBackticksAfter(e){return this.bareBacktickPositions.filter(n=>n>e).length}isBareBacktickLine(e){return this.bareBacktickPositions.includes(e)}getTrimmedLines(){return this.trimmedLines}}const qnn=t=>{if(!t.match(/```(\w*|.*)(md|markdown|gfm|github-markdown)/))return t;let e=0;const n=t.split(` +`),r=new Unn(n),i=r.getTrimmedLines();for(let s=0;s0)r.isBareBacktickLine(s)?r.getRemainingBareBackticksAfter(s)===0&&(e=0,n[s]="~~~"):a.startsWith("```")&&e++;else if(a.startsWith("```")){const o=a.replaceAll("`","");mDe(o)&&(e=1,n[s]=n[s].replaceAll("`","~"))}}return n.join(` +`)};function Hnn(){return t=>{Vy(t,"paragraph",(e,n,r)=>{const i=[];e.children.forEach(f=>{i.push(f)});let s="";const a=[];function o(f){return f?Array.isArray(f.children)?f.children.map(o).join(""):typeof f.value=="string"?f.value:"":""}i.forEach(f=>{const h=s.length,m=o(f);s+=m,a.push({start:h,end:s.length,node:f})});const l=/((?:\| *[^|\r\n]+ *)+\|)(?:\r?\n)((?:\|[ :]?-+[ :]?)+\|)((?:(?:\r?\n)(?:\| *[^|\r\n]+ *)+\|)+)/g;if(!s.match(l))return;let c;const u=[];let d=!1;for(;(c=l.exec(s))!==null;){const f=c[0],h=c[1],m=c[2],p=c[3];if(!f||!h||!m||!p){console.error("Markdown table regex failed to yield table groups"),d=!0;break}const v=Cj(h),x=Cj(m).map(E=>E.startsWith(":")&&E.endsWith(":")?"center":E.endsWith(":")?"right":E.startsWith(":")?"left":null),w=p.trim().split(` +`).map(E=>Cj(E));try{const E={type:"table",align:x,data:{hProperties:{class:"markdown-table"}},children:[{type:"tableRow",children:v.map((M,A)=>({type:"element",tagName:"th",align:x[A],children:[{type:"text",value:M}]}))},...w.map((M,A)=>({type:"tableRow",data:{hProperties:{key:A}},children:M.map(($,O)=>({type:"tableCell",align:x[O],children:[{type:"text",value:$.trim()}]}))}))]},S=c.index,_=c.index+f.length,C=[],T=[];a.forEach(M=>{if(M.end<=S)C.push(M.node);else if(M.start>=_)T.push(M.node);else if(M.node.type==="text"){const A=M.node.value.slice(0,Math.max(0,S-M.start)),$=M.node.value.slice(Math.max(0,_-M.start));A&&C.push({type:"text",value:A}),$&&T.push({type:"text",value:$})}else M.start_&&T.push(M.node)}),u.push(...C),u.push(E),u.push(...T),a.length=0}catch(E){console.error("Failed to parse markdown table after regex match",E),u.push({type:"text",value:f})}}d||u.length>0&&r.children.splice(n,1,...u)})}}function Cj(t){return t.trim().replace(/^\||\|$/g,"").split("|").map(e=>e.trim())}const Wnn=Dn.div` + h1 { + font-size: 1.25em; + } + + h2 { + font-size: 1.15em; + } + + h3 { + font-size: 1.05em; + } + + h4 { + font-size: 1em; + } + + h5 { + font-size: 0.95em; + } + + h6 { + font-size: 0.9em; + } + + pre { + white-space: ${t=>t.whiteSpace}; + background-color: ${Cx}; + border-radius: ${oa}; + + max-width: calc(100vw - 24px); + overflow-x: scroll; + overflow-y: hidden; + + padding: 8px; + } + + code { + span.line:empty { + display: none; + } + word-wrap: break-word; + border-radius: 0.3125rem; + background-color: ${Cx}; + font-size: ${la()-2}px; + font-family: var(--vscode-editor-font-family); + } + + ul ul, + ul ol, + ol ul, + ol ol { + padding-left: 1.5em; + margin-top: 1em; + } + + li { + margin-bottom: 0.8em; + } + li:last-child { + margin-bottom: 0; + } + + ul, + ol { + padding-left: 2em; + } + + code:not(pre > code) { + font-family: var(--vscode-editor-font-family); + } + + background-color: ${t=>t.bgColor}; + font-family: + var(--vscode-font-family), + system-ui, + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + Oxygen, + Ubuntu, + Cantarell, + "Open Sans", + "Helvetica Neue", + sans-serif; + font-size: ${t=>t.fontSize||la()}px; + padding-left: 8px; + padding-right: 8px; + color: ${fs}; + + p, + li, + ol, + ul { + line-height: 1.5; + } + + * { + word-break: break-word; + } + + > *:last-child { + margin-bottom: 0; + } +`,Vnn="language-";function Znn(t){var n;return!t||typeof t!="string"?null:((n=t.split(" ").find(r=>r.startsWith(Vnn)))==null?void 0:n.split("-")[1])??null}function Gnn(t){if(typeof t=="string")return t;if(Array.isArray(t)&&t.length>0&&typeof t[0]=="string")return t[0]}const h5=g.memo(function(e){const n=He(f=>f.session.history),r=He(f=>f.session.symbols),i=g.useMemo(()=>{const f=e.itemIndex;if(f===void 0)return{symbols:[],rifs:[]};const h=wCe(n,f),m=h.map(v=>wT(v,!0));return{symbols:Object.entries(r).filter(v=>h.find(x=>x.uri.value===v[0])).map(v=>v[1]).flat(),rifs:m}},[e.itemIndex,n,r]),s=Ac(i),a=Ac(e.itemIndex),o=g.useRef([]),[l,c]=eLt({remarkPlugins:[Hnn,[azt,{singleDollarTextMath:!1}],()=>f=>{const h=f.children[f.children.length-1],m=h.type==="code"?h:null;Vy(f,"code",p=>{if(p.lang?p.lang.includes(".")&&(p.lang=p.lang.split(".").slice(-1)[0]):p.lang="",p.data=p.data||{},p.data.hProperties=p.data.hProperties||{},p.data.hProperties["data-islastcodeblock"]=m===p,p.data.hProperties["data-codeblockcontent"]=p.value,p.meta){let v=p.meta.split(" ");p.data.hProperties["data-relativefilepath"]=v[0],p.data.hProperties.range=v[1]}})}],rehypePlugins:[qjt,{},Rtn(),()=>{let f=0;return h=>{Vy(h,{tagName:"pre"},m=>{m.properties={"data-codeblockindex":f},f++})}},{}],rehypeReactOptions:{components:{a:({...f})=>y.jsx(Ln,{place:"top",className:"m-0 p-0",content:f.href,children:y.jsx("a",{href:f.href,target:"_blank",className:"hover:underline",children:f.children})}),pre:({...f})=>{var _,C;const h=f["data-codeblockindex"],m=((C=(_=f==null?void 0:f.children)==null?void 0:_[0])==null?void 0:C.props)??{},{className:p,range:v}=m,x=m["data-relativefilepath"],w=m["data-codeblockcontent"];if(!e.isRenderingInStepContainer)return y.jsx(t1e,{...f});const E=Znn(p),S=m["data-islastcodeblock"];return o.current[h]===void 0&&(o.current[h]=Ma()),y.jsx(Nnn,{showToolCallStatusIcon:e.showToolCallStatusIcon,codeBlockContent:w,itemIndex:a.current,codeBlockIndex:h,language:E,relativeFilepath:x,isLastCodeblock:S,range:v,codeBlockStreamId:o.current[h],forceToolCallId:e.toolCallId,expanded:e.expandCodeblocks,disableManualApply:e.disableManualApply,collapsible:e.collapsible,children:y.jsx(t1e,{...f})})},code:({...f})=>{var m;const h=Gnn(f.children);if(h){const{symbols:p,rifs:v}=s.current,x=$nn(h,p,v);if(x)return Tnn(x)?y.jsx(Rnn,{content:h,symbol:x}):y.jsx(lzt,{rif:x})}if((m=f.className)!=null&&m.includes("language-mermaid")){const p=String(f.children||"");return y.jsx(KQt,{code:p})}return y.jsx("code",{...f,children:f.children})},img:({...f})=>y.jsx(Utn,{src:f.src,alt:f.alt,title:f.title,className:f.className})}}});g.useEffect(()=>{c(Bnn(qnn(e.source??"")))},[e.source,r]);const u=He(y4e),d=u!=null&&u.codeWrap?"pre-wrap":"pre";return y.jsx(Wnn,{fontSize:la(),whiteSpace:d,bgColor:e.useParentBackgroundColor?"":qo,children:l})}),zs=wt.forwardRef((t,e)=>y.jsx(Ln,{place:t.tooltipPlacement??"bottom",content:y.jsx("span",{className:"text-xs",children:t.text}),children:y.jsx(Q3e,{hoverBackgroundColor:t.hoverBackgroundColor,backgroundColor:t.backgroundColor,"data-testid":t.testId,inverted:t.inverted,disabled:t.disabled,onClick:t.onClick,onKeyDown:t.onKeyDown,className:t.className,style:t.style,ref:e,tabIndex:t.tabIndex,children:t.children})})),_E=100,Knn=_E*3,Ynn=Dn.div` + background-color: ${Cx}; + border-radius: ${oa}; + border: 0.5px solid ${t=>t.borderColor||gs}; + margin-top: 4px; + margin-bottom: 4px; + overflow: hidden; + position: relative; + + & div { + background-color: ${Cx}; + } +`,Jnn=Dn.div` + position: relative; + max-height: ${t=>t.expanded?`${Knn}px`:`${_E}px`}; + overflow: hidden; + display: flex; + flex-direction: column; +`,Xnn=Dn.div` + overflow-y: auto; + padding-bottom: ${t=>t.shouldShowChevron?"24px":"0px"}; +`,Qnn=Dn.div` + position: sticky; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + background: ${Cx}; + padding: 4px 0; + z-index: 10; +`;function gDe(t){const e=He(d=>t.inputId?d.session.newestToolbarPreviewForInput[t.inputId]:void 0),n=g.useMemo(()=>t.initiallyHidden===!1?!1:t.inputId&&t.itemId?e!==t.itemId:t.initiallyHidden??!1,[e,t.inputId,t.itemId,t.initiallyHidden]),[r,i]=g.useState(n),[s,a]=g.useState(!1),[o,l]=g.useState(null),[c,u]=g.useState({width:0,height:0});return g.useEffect(()=>{t.initiallyHidden!==!1&&i(n)},[n,t.initiallyHidden]),g.useEffect(()=>{if(!o)return;const d=new ResizeObserver(()=>{u({width:o.scrollWidth,height:o.scrollHeight})});return d.observe(o),()=>{d.disconnect()}},[o]),y.jsxs(Ynn,{spellCheck:!1,borderColor:t.isSelected?rZ:iZ,className:"find-widget-skip !my-0",contentEditable:!1,children:[y.jsxs("div",{className:"border-b-command-border m-0 flex cursor-pointer items-center justify-between break-all border-0 border-b-[1px] border-solid px-[5px] py-1.5 hover:opacity-90",style:{fontSize:la()-3},onClick:()=>{i(!r)},children:[y.jsxs("div",{className:`flex items-center gap-1 text-[11px] ${t.onTitleClick?"hover:underline":""}`,onClick:d=>{d.stopPropagation(),t.onTitleClick&&t.onTitleClick(d)},children:[t.icon,t.title]}),y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsx(zs,{text:r?"Show":"Hide",children:!!t.children&&(r?y.jsx(Cwt,{className:"h-2.5 w-2.5"}):y.jsx(U6e,{className:"h-2.5 w-2.5"}))}),t.onDelete&&y.jsx(zs,{text:"Delete",onClick:d=>{var f;d.stopPropagation(),(f=t.onDelete)==null||f.call(t)},children:y.jsx(Hd,{className:"h-2.5 w-2.5"})})]})]}),!r&&!!t.children&&y.jsxs(Jnn,{expanded:s,children:[y.jsx(Xnn,{ref:l,shouldShowChevron:c.height>_E,children:t.children}),c.height>_E&&y.jsx(Qnn,{children:y.jsx(zs,{text:s?"Collapse":"Expand",children:y.jsx(eo,{className:"h-3 w-3 transition-all",style:{transform:s?"rotate(180deg)":""},onClick:()=>a(d=>!d)})})})]})]})}const vDe=({children:t})=>y.jsx(iAt,{className:"my-1.5",as:"p",children:t}),ern=/`{3,}/gm,trn=({node:t,deleteNode:e,selected:n})=>{const r=t.attrs.item,i=t.attrs.inputId,s=g.useContext(qt),a=g.useMemo(()=>uAt`${r.content}`,[r.content]),o=g.useMemo(()=>{const c=a.match(ern);return c?c.sort().at(-1)+"`":"```"},[a]),l=c=>{var u;if(c.stopPropagation(),r.id.providerTitle==="file"&&((u=r.uri)!=null&&u.value))s.post("showFile",{filepath:r.uri.value});else if(r.id.providerTitle==="code"){const d=wT(r,!0);s.ide.showLines(d.filepath,d.range.start.line,d.range.end.line)}else s.post("showVirtualFile",{content:r.content,name:r.name})};return y.jsx(vDe,{children:y.jsx(gDe,{isSelected:n,title:r.name,icon:y.jsx(t5,{height:"16px",width:"16px",filename:r.name}),inputId:i,itemId:r.id.itemId,onDelete:()=>e(),borderColor:n?rZ:void 0,onTitleClick:l,children:a?y.jsx(h5,{source:`${o}${hK(r.name)} ${r.description} +${a} +${o}`}):null})})},zg=Am.create({name:"code-block",group:"block",content:"inline*",atom:!0,selectable:!0,parseHTML(){return[{tag:"code-block"}]},addAttributes(){return{item:{default:""},inputId:{default:""}}},renderHTML({HTMLAttributes:t}){return["code-block",e5(t),0]},addNodeView(){return g8e(trn)}});function nrn(t){var e;const{char:n,allowSpaces:r,allowToIncludeChar:i,allowedPrefixes:s,startOfLine:a,$position:o}=t,l=r&&!i,c=nTt(n),u=new RegExp(`\\s${c}$`),d=a?"^":"",f=i?"":c,h=l?new RegExp(`${d}${c}.*?(?=\\s${f}|$)`,"gm"):new RegExp(`${d}(?:^)?${c}[^\\s${f}]*`,"gm"),m=((e=o.nodeBefore)===null||e===void 0?void 0:e.isText)&&o.nodeBefore.text;if(!m)return null;const p=o.pos-m.length,v=Array.from(m.matchAll(h)).pop();if(!v||v.input===void 0||v.index===void 0)return null;const x=v.input.slice(Math.max(0,v.index-1),v.index),w=new RegExp(`^[${s==null?void 0:s.join("")}\0]?$`).test(x);if(s!==null&&!w)return null;const E=p+v.index;let S=E+v[0].length;return l&&u.test(m.slice(S-1,S+1))&&(v[0]+=" ",S+=1),E=o.pos?{range:{from:E,to:S},query:v[0].slice(n.length),text:v[0]}:null}const rrn=new Jc("suggestion");function yDe({pluginKey:t=rrn,editor:e,char:n="@",allowSpaces:r=!1,allowToIncludeChar:i=!1,allowedPrefixes:s=[" "],startOfLine:a=!1,decorationTag:o="span",decorationClass:l="suggestion",decorationContent:c="",decorationEmptyClass:u="is-empty",command:d=()=>null,items:f=()=>[],render:h=()=>({}),allow:m=()=>!0,findSuggestionMatch:p=nrn}){let v;const x=h==null?void 0:h(),w=new kl({key:t,view(){return{update:async(E,S)=>{var _,C,T,M,A,$,O;const D=(_=this.key)===null||_===void 0?void 0:_.getState(S),N=(C=this.key)===null||C===void 0?void 0:C.getState(E.state),R=D.active&&N.active&&D.range.from!==N.range.from,q=!D.active&&N.active,W=D.active&&!N.active,G=!q&&!W&&D.query!==N.query,U=q||R&&G,J=G||R,F=W||R&&G;if(!U&&!J&&!F)return;const H=F&&!U?D:N,V=E.dom.querySelector(`[data-decoration-id="${H.decorationId}"]`);v={editor:e,range:H.range,query:H.query,text:H.text,items:[],command:L=>d({editor:e,range:H.range,props:L}),decorationNode:V,clientRect:V?()=>{var L;const{decorationId:se}=(L=this.key)===null||L===void 0?void 0:L.getState(e.state),oe=E.dom.querySelector(`[data-decoration-id="${se}"]`);return(oe==null?void 0:oe.getBoundingClientRect())||null}:null},U&&((T=x==null?void 0:x.onBeforeStart)===null||T===void 0||T.call(x,v)),J&&((M=x==null?void 0:x.onBeforeUpdate)===null||M===void 0||M.call(x,v)),(J||U)&&(v.items=await f({editor:e,query:H.query})),F&&((A=x==null?void 0:x.onExit)===null||A===void 0||A.call(x,v)),J&&(($=x==null?void 0:x.onUpdate)===null||$===void 0||$.call(x,v)),U&&((O=x==null?void 0:x.onStart)===null||O===void 0||O.call(x,v))},destroy:()=>{var E;v&&((E=x==null?void 0:x.onExit)===null||E===void 0||E.call(x,v))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(E,S,_,C){const{isEditable:T}=e,{composing:M}=e.view,{selection:A}=E,{empty:$,from:O}=A,D={...S};if(D.composing=M,T&&($||e.view.composing)){(OS.range.to)&&!M&&!S.composing&&(D.active=!1);const N=p({char:n,allowSpaces:r,allowToIncludeChar:i,allowedPrefixes:s,startOfLine:a,$position:A.$from}),R=`id_${Math.floor(Math.random()*4294967295)}`;N&&m({editor:e,state:C,range:N.range,isActive:S.active})?(D.active=!0,D.decorationId=S.decorationId?S.decorationId:R,D.range=N.range,D.query=N.query,D.text=N.text):D.active=!1}else D.active=!1;return D.active||(D.decorationId=null,D.range={from:0,to:0},D.query=null,D.text=null),D}},props:{handleKeyDown(E,S){var _;const{active:C,range:T}=w.getState(E.state);return C&&((_=x==null?void 0:x.onKeyDown)===null||_===void 0?void 0:_.call(x,{view:E,event:S,range:T}))||!1},decorations(E){const{active:S,range:_,decorationId:C,query:T}=w.getState(E);if(!S)return null;const M=!(T!=null&&T.length),A=[l];return M&&A.push(u),Vs.create(E.doc,[tc.inline(_.from,_.to,{nodeName:o,class:A.join(" "),"data-decoration-id":C,"data-decoration-content":c})])}}});return w}const YY=Am.create({name:"mention",addOptions(){return{HTMLAttributes:{class:"mention"},renderHTML({options:t,node:e}){return["span",this.HTMLAttributes,`${t.suggestion.char}${e.attrs.label??e.attrs.id}`]},suggestion:{char:"@",pluginKey:new Jc(this.name),command:({editor:t,range:e,props:n})=>{var s,a;const r=t.view.state.selection.$to.nodeAfter;((s=r==null?void 0:r.text)==null?void 0:s.startsWith(" "))&&(e.to+=1),t.chain().focus().insertContentAt(e,[{type:this.name,attrs:n},{type:"text",text:" "}]).run(),(a=window.getSelection())==null||a.collapseToEnd()},allow:({state:t,range:e})=>{const n=t.doc.resolve(e.from),r=t.schema.nodes[this.name],i=!!n.parent.type.contentMatch.matchType(r),s=e.from,a=t.selection.$to.pos,l=t.doc.textBetween(s,a).includes(" ");return i&&!l}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:t=>t.getAttribute("data-id"),renderHTML:t=>t.id?{"data-id":t.id}:{}},label:{default:null,parseHTML:t=>t.getAttribute("data-label"),renderHTML:t=>t.label?{"data-label":t.label}:{}},renderInlineAs:{default:null,parseHTML:t=>t.getAttribute("data-renderInlineAs"),renderHTML:t=>typeof t.renderInlineAs!="string"?{}:{"data-renderInlineAs":t.renderInlineAs}},query:{default:null,parseHTML:t=>t.getAttribute("data-query"),renderHTML:t=>t.query?{"data-query":t.query}:{}},itemType:{default:null,parseHTML:t=>t.getAttribute("data-itemType"),renderHTML:t=>t.itemType?{"data-itemType":t.itemType}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:t,HTMLAttributes:e}){const n=this.options.renderHTML({options:this.options,node:t});return typeof n=="string"?["span",e5({"data-type":this.name},this.options.HTMLAttributes,e),n]:n},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:t,state:e})=>{let n=!1;const{selection:r}=e,{empty:i,anchor:s}=r;return i?(e.doc.nodesBetween(s-1,s,(a,o)=>{if(a.type.name===this.name)return n=!0,t.insertText(this.options.suggestion.char||"",o,o+a.nodeSize),!1}),n):!1})}},addProseMirrorPlugins(){return[yDe({editor:this.editor,...this.options.suggestion})]}}),irn=g.createContext(null),Ej={didCatch:!1,error:null};class srn extends g.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Ej}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var n,r,i=arguments.length,s=new Array(i),a=0;a0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((n,r)=>!Object.is(n,e[r]))}const orn=(t,e,n)=>{const r=t.current;if(!r||!e)return{results:[],closestToMiddle:null};const i=n.caseSensitive?e:e.toLowerCase(),s=[],a=document.createTreeWalker(r,NodeFilter.SHOW_ALL,{acceptNode:h=>{if(h.nodeType===Node.ELEMENT_NODE)return h.classList.contains("find-widget-skip")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT;if(h.nodeType===Node.TEXT_NODE){if(!h.nodeValue)return NodeFilter.FILTER_REJECT;if((n.caseSensitive?h.nodeValue:h.nodeValue.toLowerCase()).includes(i))return NodeFilter.FILTER_ACCEPT}return NodeFilter.FILTER_REJECT}});for(;a.nextNode();)a.currentNode.nodeType!==Node.ELEMENT_NODE&&s.push(a.currentNode);const o=[];s.forEach((h,m)=>{var w;const p=(w=h.parentElement)==null?void 0:w.className.includes("hljs");let v=n.caseSensitive?h.nodeValue:h.nodeValue.toLowerCase(),x=0;for(;(x=v.indexOf(i,x))!==-1;){const E=document.createRange();E.setStart(h,x);const S=x+i.length;E.setEnd(h,S);const _=E.getBoundingClientRect();E.detach(),x=S;const C=_.top+r.clientTop+r.scrollTop-n.offsetHeight,T=_.left+r.clientLeft+r.scrollLeft,M={index:0,textNode:h,overlayRectangle:{top:C,left:p?2:T,width:p?r.clientWidth-4:_.width,height:_.height}};if(o.push(M),p)break}});const l=Object.fromEntries(o.map(h=>[JSON.stringify(h.overlayRectangle),h])),c=Object.values(l).map((h,m)=>({...h,index:m})),u=r.scrollTop+r.clientHeight/2;let d=1/0,f=null;return c.forEach(h=>{const m=Math.abs(u-h.overlayRectangle.top);m{const[n,r]=g.useState({clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0,isResizing:!1}),i=g.useCallback(s=>{let a;return r(o=>({...o,isResizing:!0})),a=setTimeout(()=>{r({...s,isResizing:!1})},e),()=>clearTimeout(a)},[e]);return g.useEffect(()=>{if(!t.current)return;const s=()=>{const o=t.current;if(!o)return;const l={clientWidth:o.clientWidth,clientHeight:o.clientHeight,scrollWidth:o.scrollWidth,scrollHeight:o.scrollHeight};i(l)},a=new ResizeObserver(()=>{s()});return a.observe(t.current),s(),()=>{a.disconnect()}},[t,i]),n},lrn=t=>{const{top:e,left:n,width:r,height:i}=t.rectangle;return y.jsx("div",{className:t.isCurrent?"bg-findMatch-selected":"bg-findMatch",style:{position:"absolute",top:e,left:n,width:r,height:i,pointerEvents:"none",zIndex:10}},`highlight-${e}-${n}`)},crn=(t,e,n)=>{const r=g.useRef(null),[i,s]=g.useState(""),a=VQt(i,300),[o,l]=g.useState(!1),c=g.useCallback(()=>{var D;l(!0),(D=r==null?void 0:r.current)==null||D.select()},[r]),[u,d]=g.useState(!1),[f,h]=g.useState(!1),[m,p]=g.useState([]),[v,x]=g.useState(void 0),w=g.useCallback(D=>{var N;x(D),(N=t==null?void 0:t.current)==null||N.scrollTo({top:D.overlayRectangle.top-t.current.clientHeight/2,left:D.overlayRectangle.left-t.current.clientWidth/2,behavior:"smooth"})},[t]),E=g.useCallback(()=>{if(!v||m.length===0)return;const D=(v.index+1)%m.length,N=m[D];w(N)},[w,v,m]),S=g.useCallback(()=>{if(!v||m.length===0)return;const D=v.index===0?m.length-1:v.index-1,N=m[D];w(N)},[w,v,m]);g.useEffect(()=>{const D=N=>{N.metaKey&&N.key.toLowerCase()==="f"&&!N.shiftKey?(N.preventDefault(),N.stopPropagation(),c()):document.activeElement===r.current&&(N.key==="Escape"?(N.preventDefault(),N.stopPropagation(),l(!1)):N.key==="Enter"&&(N.preventDefault(),N.stopPropagation(),N.shiftKey?S():E()))};return document.addEventListener("keydown",D),()=>{document.removeEventListener("keydown",D)}},[r,m,E]);const{clientHeight:_,isResizing:C}=n1e(e),{isResizing:T}=n1e(t),M=g.useMemo(()=>T||C,[T,C]),A=g.useCallback((D="none")=>{const{results:N,closestToMiddle:R}=orn(t,a,{caseSensitive:u,offsetHeight:_});p(N),a.length>1&&N.length&&(D==="first"&&w(N[0]),D==="closest"&&R&&w(R),D==="none"&&x(R||N[0]))},[a,u,f,t,_,w]);g.useEffect(()=>{n||M||!o?p([]):A("closest")},[A,o,n,M]),g.useEffect(()=>{const D=t.current;if(!o||!D)return;const N=()=>{setTimeout(()=>{A("none")},150)};return D.addEventListener("click",N),()=>{D.removeEventListener("click",N)}},[t,A,o]);const $=y.jsxs("div",{className:`fixed top-0 z-50 transition-all ${o?"":"-translate-y-full"} bg-vsc-background right-0 flex flex-row items-center gap-1.5 rounded-bl-lg border-0 border-b border-l border-solid border-zinc-700 pl-[3px] pr-3 sm:gap-2`,children:[y.jsx(Nf,{disabled:n,type:"text",ref:r,value:i,onChange:D=>{s(D.target.value)},placeholder:"Search..."}),y.jsx("p",{className:"xs:block hidden min-w-12 whitespace-nowrap px-1 text-center text-xs",children:m.length===0?"No results":`${((v==null?void 0:v.index)??0)+1} of ${m.length}`}),y.jsxs("div",{className:"hidden flex-row gap-0.5 sm:flex",children:[y.jsx(zs,{tooltipPlacement:"top-end",text:"Previous Match",onClick:D=>{D.stopPropagation(),S()},className:"h-4 w-4 focus:ring",disabled:m.length<2||n,children:y.jsx(k6e,{className:"h-4 w-4"})}),y.jsx(zs,{tooltipPlacement:"top-end",text:"Next Match",onClick:D=>{D.stopPropagation(),E()},className:"h-4 w-4 focus:ring",disabled:m.length<2||n,children:y.jsx(b6e,{className:"h-4 w-4"})})]}),y.jsx(zs,{disabled:n,inverted:u,tooltipPlacement:"top-end",text:u?"Turn off case sensitivity":"Turn on case sensitivity",onClick:D=>{D.stopPropagation(),d(N=>!N)},className:"h-5 w-6 rounded-full border text-xs focus:outline-none focus:ring",children:"Aa"}),y.jsx(Q3e,{inverted:!1,onClick:()=>l(!1),className:"focus:ring",children:y.jsx(Hd,{className:"h-4 w-4"})})]});return{highlights:g.useMemo(()=>m.map(D=>y.jsx(lrn,{rectangle:D.overlayRectangle,isCurrent:(v==null?void 0:v.index)===D.index})),[m,v]),widget:$}},urn=Dn.div` + background-color: ${qo}; + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + flex-grow: 0; + margin-left: 13px; + cursor: pointer; +`,drn=Dn.div` + margin-top: 8px; + margin-bottom: 8px; + margin-left: 8px; + display: flex; + align-items: center; + gap: 4px; + font-size: ${t=>t.fontSize||la()}px; + min-height: 16px; +`;function r1e(t){return t.open?t.children:y.jsxs(drn,{fontSize:la(),children:[y.jsx(urn,{onClick:()=>{t.onToggle()},children:t.iconElement||y.jsx(sC,{width:"16px",height:"16px"})}),y.jsxs("span",{style:{color:gs},children:[t.item.message.role," Message"]})]})}const frn=Dn.div` + width: fit-content; + margin-right: auto; + margin-left: 6px; + margin-top: 2px; + margin-bottom: 8px; + font-size: ${la()-2}px; + + border-radius: ${oa}; + padding: 2px 6px; + color: ${gs}; + + &:hover { + background-color: ${gs}33; + color: ${fs}; + } + + cursor: pointer; +`,hrn=nZ` + 0% { width: 0; } + 33% { width: 0.33em; } + 66% { width: 0.66em; } + 100% { width: 1em; } +`,u_=Dn.span` + display: inline-block; + width: 1em; /* Fixed width to match the maximum animation width */ + + &::after { + content: "..."; + display: inline-block; + overflow: hidden; + vertical-align: bottom; + animation: ${hrn} 2s infinite; + width: 0; + } +`,prn=Dn.div` + & > div > *:first-child { + margin-top: 0 !important; + } +`;function bDe({content:t,redactedThinking:e,index:n,prevItem:r,inProgress:i,tokens:s}){const[a,o]=g.useState(!1),[l,c]=g.useState(null),[u,d]=g.useState(""),f=r&&r.message.role==="thinking"&&e&&r.message.redactedThinking;return g.useEffect(()=>{if(i)c(Date.now()),d("");else if(l){const p=`${((Date.now()-l)/1e3).toFixed(1)}s`;d(p)}},[i]),f?null:y.jsx("div",{className:"thread-message",children:y.jsxs("div",{className:"mt-1 flex flex-col px-4",children:[y.jsx("div",{children:y.jsxs(ai,{variant:"outline",className:"text-description flex-0 border-border m-0 mb-2 flex min-w-0 cursor-pointer flex-row items-center gap-1.5 rounded-full border-[0.5px] border-solid px-3 text-xs transition-colors duration-200 ease-in-out hover:brightness-125","data-testid":"thinking-block-peek","aria-expanded":a,"aria-controls":`thinking-block-content-${n}`,onClick:()=>o(!a),children:[i?y.jsxs("span",{children:[e?"Redacted Thinking":"Thinking",y.jsx(u_,{})]}):e?"Redacted Thinking":"Thought"+(u?` for ${u}`:"")+(s?` (${s} tokens)`:""),a?y.jsx(w_e,{className:"h-3 w-3"}):y.jsx(eo,{className:"h-3 w-3"})]})}),y.jsx("div",{id:`thinking-block-content-${n}`,className:`overflow-y-auto transition-all duration-300 ease-in-out ${a?"max-h-[50vh] opacity-100":"max-h-0 opacity-0"}`,children:e?y.jsx("div",{className:"text-description pl-5 text-xs italic",children:"Thinking content redacted due to safety reasons."}):y.jsx(prn,{children:y.jsx(h5,{isRenderingInStepContainer:!0,source:t,itemIndex:n})})})]})})}const mrn=So([t=>t.config.config.slashCommands],t=>(t==null?void 0:t.map(e=>{let n=e.prompt;return e.source==="mcp-prompt"&&!n&&(n="[MCP Prompt - failed to load content during startup]"),{title:e.name,description:e.description,type:"slashCommand",content:n,source:e.source}}))||[]);So([t=>t.config.config.slashCommands],t=>t||[]);const grn=So([t=>t.config.config.contextProviders],t=>(t==null?void 0:t.filter(e=>e.type==="submenu"))||[]);So([t=>{var e;return(e=t.config.config.experimental)==null?void 0:e.defaultContext}],t=>t??[]);const xDe=So([t=>{var e;return(e=t.config.config.experimental)==null?void 0:e.defaultContext}],t=>t==null?void 0:t.includes("activeFile")),wDe=({src:t,height:e,width:n,className:r,fallback:i})=>{const[s,a]=g.useState(!1),[o,l]=g.useState(null);g.useEffect(()=>{const u=localStorage.getItem(t);u?(console.log("Using cached image"),l(u)):fetch(t).then(d=>d.blob()).then(d=>{const f=new FileReader;f.onloadend=()=>{localStorage.setItem(t,f.result),l(f.result)},f.readAsDataURL(d)}).catch(d=>{})},[t]);const c=()=>{a(!0),l(null)};return y.jsx(y.Fragment,{children:s?i:y.jsx("img",{src:o||t,height:e,width:n,className:r,onError:c})})};function JY({children:t,title:e,icon:n,testId:r="context-items-peek",defaultOpen:i=!1}){const[s,a]=g.useState(i),[o,l]=g.useState(!1);return y.jsxs("div",{className:"pl-2",style:{backgroundColor:qo},children:[y.jsxs("div",{className:"text-description flex cursor-pointer items-center justify-start text-xs hover:brightness-125",onClick:()=>a(c=>!c),onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),"data-testid":r,children:[y.jsx("div",{className:"relative h-4 w-4",children:n&&!o&&!s?y.jsx(n,{className:"absolute h-4 w-4"}):y.jsxs(y.Fragment,{children:[y.jsx($b,{className:`absolute h-4 w-4 transition-all duration-200 ease-in-out ${s?"rotate-90 opacity-0":"rotate-0 opacity-100"}`}),y.jsx(eo,{className:`absolute h-4 w-4 transition-all duration-200 ease-in-out ${s?"rotate-0 opacity-100":"-rotate-90 opacity-0"}`})]})}),y.jsx("span",{className:"ml-1 text-xs transition-colors duration-200",children:e})]}),y.jsx("div",{className:`mt-2 overflow-y-auto transition-all duration-300 ease-in-out ${s?"max-h-[50vh] opacity-100":"max-h-0 opacity-0"}`,children:t})]})}const vrn={indexing:{statuses:{},hiddenChatPeekTypes:{docs:!1}}},_De=e2({name:"indexing",initialState:vrn,reducers:{updateIndexingStatus:(t,{payload:e})=>{t.indexing.statuses={...t.indexing.statuses,[e.id]:e},Object.values(t.indexing.statuses).filter(r=>r.type===e.type&&r.status==="indexing").length===0&&(t.indexing.hiddenChatPeekTypes={...t.indexing.hiddenChatPeekTypes,[e.type]:!1})},setIndexingChatPeekHidden:(t,{payload:e})=>{t.indexing.hiddenChatPeekTypes={...t.indexing.hiddenChatPeekTypes,[e.type]:e.hidden}}}}),{updateIndexingStatus:XY,setIndexingChatPeekHidden:K$n}=_De.actions,yrn=_De.reducer;function brn({status:t}){wa();const e=Dl(),n=g.useMemo(()=>Math.min(100,Math.max(0,t.progress*100)),[t.progress]);return y.jsxs("div",{className:"text-lightgray flex cursor-pointer flex-row items-center gap-2 rounded-md px-1 hover:bg-gray-700/10",onClick:()=>{e(hi(!1)),e(Ri(void 0))},children:[y.jsx("p",{className:"text-lightgray m-0 p-0 group-hover:underline",children:t.title}),y.jsx("div",{className:"my-2 h-1.5 flex-1 rounded-md border border-solid border-gray-400",children:y.jsx("div",{className:"h-full rounded-lg bg-stone-500 transition-all duration-200 ease-in-out",style:{width:`${n}%`}})}),y.jsx("div",{className:"xs:flex text-lightgray hidden flex-row items-center gap-1",children:y.jsxs("span",{className:"text-xs no-underline",children:[n.toFixed(0),"%"]})})]})}function xrn({statuses:t}){return y.jsx("div",{className:"border-vsc-input-border mt-2 flex flex-col border-0 border-t border-solid pt-2",children:y.jsx("div",{className:"max-h-[100px] overflow-y-auto pr-2",children:t.map(e=>y.jsx(brn,{status:e},e.id))})})}function kDe(){const t=s2(),e=Dl(),n=g.useRef(null),r=g.useRef(null),[i,s]=g.useState(""),[a,o]=g.useState(""),[l,c]=g.useState(""),u=g.useContext(qt),d=He(p=>p.indexing.indexing.statuses),f=g.useMemo(()=>Object.values(d).filter(p=>p.type==="docs"&&p.status==="indexing"),[d]),h=a&&i;g.useLayoutEffect(()=>{setTimeout(()=>{n.current&&n.current.focus()},100)},[n]);function m(p){p.preventDefault();const v={startUrl:a,title:i,faviconUrl:l};u.post("context/addDocs",v),s(""),o(""),c(""),t.capture("add_docs_gui",{url:a}),e(XY({type:"docs",description:"Initializing",id:a,progress:0,status:"indexing",title:i,url:a}))}return y.jsxs("div",{className:"px-2 pt-4 sm:px-4",children:[y.jsxs("div",{className:"",children:[y.jsx("h1",{className:"mb-0 hidden sm:block",children:"Add documentation"}),y.jsx("h1",{className:"sm:hidden",children:"Add docs"}),y.jsx("p",{className:"m-0 mt-2 p-0 text-stone-500",children:"Common documentation sites are cached for faster loading"}),y.jsx("div",{className:"mt-3",children:y.jsxs("form",{onSubmit:m,className:"flex flex-col gap-1",children:[y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsxs("label",{className:"flex w-full flex-col gap-1",children:[y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[y.jsx("span",{children:"Title"}),y.jsx("div",{children:y.jsx(Ln,{place:"top",content:"The title that will be displayed to users in the `@docs` submenu",children:y.jsx(Td,{className:"text-lightgray h-3.5 w-3.5 select-none"})})})]}),y.jsx(Nf,{type:"text",placeholder:"Title",value:i,ref:n,onChange:p=>s(p.target.value)})]}),y.jsxs("label",{className:"flex w-full flex-col gap-1",children:[y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[y.jsx("span",{className:"line-clamp-1 whitespace-nowrap",children:"Start URL"}),y.jsx("div",{children:y.jsx(Ln,{place:"top",content:"The starting location to begin crawling the documentation site",children:y.jsx(Td,{className:"text-lightgray h-3.5 w-3.5 select-none"})})})]}),y.jsx(Nf,{ref:r,type:"url",placeholder:"Start URL",value:a,onChange:p=>{o(p.target.value)}})]})]}),y.jsx("div",{className:"flex flex-row justify-end gap-2",children:y.jsx(Pd,{className:"min-w-16",disabled:!h,type:"submit",children:"Add"})})]})})]}),f.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(xrn,{statuses:f}),y.jsx("p",{className:"mt-2 flex flex-row items-center gap-1 p-0 px-1 text-center text-xs text-stone-500",children:"Closing this dialog will not affect indexing progress"})]})]})}function wrn({size:t=24,className:e,...n}){return y.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:e,...n,children:y.jsx("path",{d:"M20.317 4.369a19.791 19.791 0 00-4.885-1.515.074.074 0 00-.079.038 13.875 13.875 0 00-.6 1.235 18.337 18.337 0 00-5.487 0 13.872 13.872 0 00-.601-1.235.076.076 0 00-.079-.038A19.736 19.736 0 003.677 4.369a.069.069 0 00-.032.027C.533 9.104-.32 13.726.099 18.306a.082.082 0 00.031.054 19.911 19.911 0 005.993 3.04.078.078 0 00.084-.027 14.345 14.345 0 001.273-2.084.076.076 0 00-.041-.105 13.134 13.134 0 01-1.872-.891.077.077 0 01-.008-.128c.126-.094.252-.192.373-.291a.074.074 0 01.077-.01c3.927 1.794 8.18 1.794 12.061 0a.074.074 0 01.078.009c.121.099.247.198.374.292a.077.077 0 01-.006.127 12.48 12.48 0 01-1.873.891.076.076 0 00-.04.106 14.504 14.504 0 001.273 2.083.077.077 0 00.084.028 19.888 19.888 0 005.993-3.04.077.077 0 00.031-.054c.5-5.177-.838-9.772-3.576-13.91a.061.061 0 00-.032-.028zM9.237 15.335c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.418 2.156-2.418 1.21 0 2.184 1.085 2.156 2.418.001 1.334-.946 2.419-2.156 2.419zm5.526 0c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.418 2.156-2.418 1.21 0 2.184 1.085 2.156 2.418 0 1.334-.946 2.419-2.156 2.419z",fill:"currentColor",strokeWidth:"0"})})}function ww({size:t=24,className:e,...n}){return y.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:e,...n,children:y.jsx("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.17 6.839 9.49.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.604-3.369-1.341-3.369-1.341-.454-1.155-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0112 6.836c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.167 22 16.418 22 12c0-5.523-4.477-10-10-10z",fill:"currentColor",strokeWidth:"0"})})}function _rn({size:t=24,className:e,...n}){return y.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:e,...n,children:y.jsx("path",{d:"M22.363 14.565l-2.555-7.876A.684.684 0 0019.151 6a.684.684 0 00-.657.488l-2.555 7.878H7.935l-2.556-7.878A.684.684 0 004.722 6a.684.684 0 00-.657.488L1.51 14.564a.679.679 0 00.255.754l9.555 6.947a.686.686 0 00.79 0l9.555-6.947a.681.681 0 00.255-.754z",fill:"currentColor"})})}function krn({size:t=24,className:e,...n}){return y.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:e,...n,children:y.jsx("path",{d:"M21.805 10.023H12v4h5.641C16.864 16.504 14.072 18 12 18c-3.309 0-6-2.691-6-6s2.691-6 6-6c1.58 0 3.031 0.594 4.137 1.563l3.1-3.1C17.389 3.565 14.833 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10c5.377 0 10-4.623 10-10 0-.666-.07-1.313-.195-1.977z",fill:"currentColor"})})}const SDe={file:Z4,code:JZ,terminal:Dy,diff:K0,search:nG,url:tg,open:H6e,codebase:R6,problems:mp,folder:Z4,docs:I6e,web:tg,clipboard:J6e,database:Bx,postgres:Bx,debugger:O6e,os:R6e,tree:E6e,rules:Em,"prompt-files":XZ,"repo-map":Z4,"/clear":kg,"/share":_6e,"/cmd":Dy,issue:ww,discord:wrn,google:krn,"gitlab-mr":_rn,http:tg,trash:kg,toolCall:L6};function QY(t,e){const n=e==="contextProvider"?V$:M6;return t?SDe[t]??n:n}function i1e(t){if(t.item.type==="action")return y.jsx(K0,{className:t.className+" h-3 w-3"});const e=t.item.type==="contextProvider"||t.item.type==="slashCommand"?t.item.id:t.item.type,n=QY(e,t.item.type),r=y.jsx(n,{className:`${t.className} flex-shrink-0`,height:"1.2em",width:"1.2em"});return t.item.icon?y.jsx(wDe,{className:"flex-shrink-0 pr-2",src:t.item.icon,height:"18em",width:"18em",fallback:r}):r}const Srn=Dn.div` + border-radius: ${oa}; + box-shadow: + 0 0 0 1px rgba(0, 0, 0, 0.05), + 0px 10px 20px rgba(0, 0, 0, 0.1); + font-size: ${vo(-2)}; + overflow-x: hidden; + overflow-y: auto; + max-height: 330px; + padding: 0.2rem; + position: relative; // absolute to test tippy.js bug + + background-color: ${Xit}; + /* backdrop-filter: blur(12px); */ +`,BS=Dn.div` + background: transparent; + border: 1px solid transparent; + border-radius: 0.4rem; + display: block; + margin: 0; + padding: 2px 4px; + text-align: left; + width: 100%; + color: ${fs}; + font-size: ${vo(-2)}; + + &.is-selected { + background-color: ${est}; + color: ${tst}; + } +`,Crn=Dn.textarea` + background-color: #fff1; + border: 1px solid ${gs}; + border-radius: ${oa}; + overflow: hidden; + + padding: 0.2rem 0.4rem; + width: 240px; + + color: ${fs}; + + &:focus { + outline: none; + } + + font-family: inherit; + resize: none; +`,Ern=t=>t>1e9?`${(t/1e9).toFixed(1)} GB`:t>1e6?`${(t/1e6).toFixed(1)} MB`:t>1e3?`${(t/1e3).toFixed(1)} KB`:`${t} byte${t>1?"s":""}`,$rn=g.forwardRef((t,e)=>{const n=Dl(),r=g.useContext(qt),i=He(A=>A.session.mode==="agent"),[s,a]=g.useState(0),[o,l]=g.useState(void 0),[c,u]=g.useState(void 0),[d,f]=g.useState(void 0),[h,m]=g.useState([]);async function p(A,$){const O=[],D=await r.request("context/getContextItems",{name:A,query:$,fullInput:"",selectedCode:O,isInAgentMode:i});if(D.status==="error")return[!1,-1];const N=D.content[0],R=await r.request("isItemTooBig",{item:N});if(R.status==="error")return[!1,-1];const q=new Blob([N.content]).size;return[R.content,q]}function v(A,$,O){A?(t.editor.chain().focus().command(({tr:D,state:N})=>{const q=N.doc.textBetween(0,N.selection.from,` +`,` +`).lastIndexOf("@");return q!==-1?(D.delete(q+1,N.selection.from),!0):!1}).run(),r.ide.showToast("warning",$>0?"File exceeds model's context length":"Error loading file",{modal:!0,detail:$>0?`'${O.title}' cannot be added because it exceeds the model's allowed context length. File size: ${Ern($)}`:`'${O.title}' could not be loaded. Please check if the file exists and has the correct permissions.`})):t.command({...O,itemType:O.type})}g.useEffect(()=>{const A=[...t.items];o==="Type to search docs"?A.push({title:"Add Docs",type:"action",action:()=>{n(hi(!0)),n(Ri(y.jsx(kDe,{})));const{tr:$}=t.editor.view.state,D=$.doc.textBetween(0,$.selection.from).lastIndexOf("@");t.editor.view.dispatch($.delete(D,$.selection.from).scrollIntoView())},description:""}):o===".prompt files"?A.push({title:"New .prompt file",type:"action",action:()=>{r.post("config/newPromptFile",void 0);const{tr:$}=t.editor.view.state,D=$.doc.textBetween(0,$.selection.from).lastIndexOf("@");D!==-1&&t.editor.view.dispatch($.delete(D,$.selection.from).scrollIntoView()),t.onClose()},description:"Create a new .prompt file"}):o==="Mention rules files"&&A.push({title:"Add new rule",type:"action",action:()=>{r.request("config/addLocalWorkspaceBlock",{blockType:"rules"});const{tr:$}=t.editor.view.state,D=$.doc.textBetween(0,$.selection.from).lastIndexOf("@");D!==-1&&t.editor.view.dispatch($.delete(D,$.selection.from).scrollIntoView()),t.onClose()},description:"Creates a rule file"}),f(A.find($=>$.id==="loading")),m(A.filter($=>$.id!=="loading"))},[o,t.items,t.editor]);const x=g.useRef(null);g.useEffect(()=>{x.current&&x.current.focus()},[c,x]);const w=A=>{var O,D,N;const $=h[A];if($.type==="action"&&$.action){$.action();return}if($.type==="contextProvider"&&((O=$.contextProvider)==null?void 0:O.type)==="submenu"){l($.description),$.id&&((D=t.enterSubmenu)==null||D.call(t,t.editor,$.id));return}if(((N=$.contextProvider)==null?void 0:N.type)==="query"){const{tr:R}=t.editor.view.state,q=R.doc.textBetween(0,R.selection.from),W=q.slice(q.lastIndexOf("@")+1),G=$.title.slice(W.length);t.editor.view.dispatch(R.insertText(G,R.selection.from)),l($.description),u($);return}$&&($.type==="file"&&$.query?p($.type,$.query).then(([R,q])=>v(R,q,$)):t.command({...$,itemType:$.type}))},E=h.length,S=g.useRef([]),_=()=>{a(A=>{var O;const $=A-1>=0?A-1:0;return(O=S.current[$])==null||O.scrollIntoView({behavior:"instant",block:"nearest"}),$})},C=()=>{a(A=>{var O;const $=A+1{w(s)};g.useEffect(()=>a(0),[h]),g.useImperativeHandle(e,()=>({onKeyDown:({event:A})=>A.key==="ArrowUp"?(_(),!0):A.key==="ArrowDown"?(C(),!0):A.key==="Enter"||A.key==="Tab"?(T(),A.stopPropagation(),A.preventDefault(),!0):A.key==="Escape"?(A.preventDefault(),A.stopPropagation(),!0):A.key===" "&&h.length===1?(T(),!0):!1}));const M=A=>["file","code"].includes(A.type);return g.useEffect(()=>{S.current=S.current.slice(0,h.length)},[h]),y.jsx(Srn,{children:c?y.jsxs("span",{className:"flex items-center gap-x-1",children:[y.jsx(Crn,{wrap:"off",onClick:A=>{A.stopPropagation()},rows:1,ref:x,placeholder:c.description,onKeyDown:A=>{x.current&&(A.key==="Enter"?A.shiftKey?x.current.innerText+=` +`:t.command({...c,itemType:c.type,query:x.current.value,label:`${c.label}: ${x.current.value}`}):A.key==="Escape"&&(u(void 0),l(void 0)))}}),y.jsx(ai,{variant:"secondary",size:"sm",className:"m-0",disabled:!x.current,onClick:()=>t.command({...c,itemType:c.type,query:x.current.value,label:`${c.label}: ${x.current.value}`}),children:"⏎"})]}):y.jsxs(y.Fragment,{children:[o&&y.jsx(BS,{className:"mb-2",children:o}),d&&y.jsx(BS,{children:y.jsxs("span",{className:"flex w-full items-center justify-between",children:[y.jsxs("div",{className:"flex items-center justify-center",children:[y.jsx(i1e,{item:d,className:"mr-2"}),y.jsx("span",{children:d.title})," "]}),y.jsx("span",{style:{color:gs,float:"right",textAlign:"right",minWidth:"30px"},className:"ml-2 flex items-center overflow-hidden overflow-ellipsis whitespace-nowrap",children:d.description})]})}),h.length?h.map((A,$)=>{var D,N;const O=$===s;return y.jsx(BS,{as:"button",ref:R=>S.current[$]=R,className:`item cursor-pointer ${O?"is-selected":""}`,onClick:R=>{R.stopPropagation(),w($)},onMouseEnter:()=>a($),"data-testid":"context-provider-dropdown-item",children:y.jsxs("span",{className:"flex w-full items-center justify-between",children:[y.jsxs("div",{className:"flex items-center justify-center",children:[M(A)?y.jsx(t5,{height:"20px",width:"20px",filename:A.description}):y.jsx(i1e,{item:A,className:"mr-2"}),y.jsx("span",{title:A.id,className:"whitespace-nowrap",children:A.title})," "]}),y.jsxs("span",{style:{color:gs,float:"right",textAlign:"right",opacity:o||A.type!=="contextProvider"||O?1:0,minWidth:"30px"},className:"ml-2 flex items-center overflow-hidden overflow-ellipsis whitespace-nowrap",children:[A.description,A.type==="contextProvider"&&((D=A.contextProvider)==null?void 0:D.type)==="submenu"&&y.jsx(W$,{className:"ml-2 flex-shrink-0",width:"1.2em",height:"1.2em"}),(N=A.subActions)==null?void 0:N.map(R=>{const q=QY(R.icon,"action");return y.jsx(zs,{onClick:W=>{R.action(A),W.stopPropagation(),W.preventDefault(),t.onClose()},text:void 0,children:y.jsx(q,{width:"1.2em",height:"1.2em"})})})]})]})},$)}):y.jsx(BS,{className:"item whitespace-nowrap",children:"No results"})]})})});function eJ(t,e){const{uri:n,name:r,content:i}=t;if(n&&(n==null?void 0:n.type)==="file")if(r.includes(" (")&&r.endsWith(")")){const a=wT(t,!0);e.ide.showLines(a.filepath,a.range.start.line,a.range.end.line)}else e.ide.openFile(n.value);else e.ide.showVirtualFile(r,i)}function CDe({contextItem:t}){var i,s;const e=g.useContext(qt),n=((i=t.uri)==null?void 0:i.type)==="url";function r(){var c,u;const a="18px";if(t.icon){const d=t.icon?SDe[t.icon]:void 0;return y.jsx(wDe,{className:"mr-2 flex-shrink-0 rounded-md p-1",src:t.icon,height:a,width:a,fallback:d?y.jsx("div",{className:"mr-2 flex-shrink-0",style:{height:a,width:a},children:y.jsx(d,{})}):null})}if(t.content.includes("```")||((c=t.uri)==null?void 0:c.type)==="file")return y.jsx("div",{className:"mr-2 flex-shrink-0",children:y.jsx(t5,{filename:((u=t.description.split(" ").shift())==null?void 0:u.split("#").shift())||"",height:a,width:a})});const l=QY(t.id.providerTitle,"contextProvider");return y.jsx(l,{className:"mr-2 flex-shrink-0",height:a,width:a})}return y.jsxs("div",{onClick:()=>eJ(t,e),className:"mr-2 flex cursor-pointer flex-row items-center gap-1.5 whitespace-nowrap rounded px-1.5 py-1 text-xs hover:bg-white/10","data-testid":"context-items-peek-item",children:[r(),y.jsx("span",{className:"line-clamp-1 max-w-[130px] flex-shrink-0",children:t.name}),y.jsxs("div",{className:`text-description-muted group flex flex-row items-center gap-1.5 pr-1.5 text-xs ${n?"hover:underline":""}`,onClick:n?a=>{var o;(o=t.uri)!=null&&o.value?(a.stopPropagation(),e.post("openUrl",t.uri.value)):console.error("Couldn't open url",t.uri)}:void 0,children:[y.jsx("span",{className:"line-clamp-1 flex-1 break-all",children:((s=t.uri)==null?void 0:s.type)==="file"?qu(t.description):t.description}),n&&y.jsx(Wb,{className:"text-description-muted h-3 w-3 flex-shrink-0 opacity-80 group-hover:opacity-100"})]})]})}function Trn({contextItems:t,isCurrentContextPeek:e,icon:n,title:r}){const i=g.useMemo(()=>(t==null?void 0:t.filter(o=>!o.hidden))??[],[t]),s=He(d4n),a=e&&s;return(!i||i.length===0)&&!a?null:y.jsx(JY,{icon:n,title:r??(s?y.jsxs(y.Fragment,{children:["Gathering context",y.jsx(u_,{})]}):`${i.length} context ${i.length>1?"items":"item"}`),children:i.length?i.map((o,l)=>y.jsx(CDe,{contextItem:o},l)):y.jsx("div",{className:"text-description-muted pl-2 text-xs italic",children:"No results"})})}function Irn(t){return t.name?t.name:EDe(t)}function EDe(t){switch(t.source){case".continuerules":return"Project rules";case"default-chat":return"Default chat system message";case"default-plan":return"Default plan mode system message";case"default-agent":return"Default agent system message";case"json-systemMessage":return"System Message (JSON)";case"model-options-agent":return"Base System Agent Message";case"model-options-plan":return"Base System Plan Message";case"model-options-chat":return"Base System Chat Message";case"agentFile":return t.sourceFile?Wx(t.sourceFile,2):"Agent file";case"colocated-markdown":return t.sourceFile?Wx(t.sourceFile,2):"rules.md";case"rules-block":return"Rules Block";default:return t.source}}const Arn="https://github.com/continuedev/continue/blob/main/core/llm/defaultSystemMessages.ts",tJ=` Always include the language and file name in the info string when you write code blocks. + If you are editing "src/main.py" for example, your code block should start with '\`\`\`python src/main.py' +`,Orn=` When addressing code modification requests, present a concise code snippet that + emphasizes only the necessary changes and uses abbreviated placeholders for + unmodified sections. For example: + + \`\`\`language /path/to/file + // ... existing code ... + + {{ modified code here }} + + // ... existing code ... + + {{ another modification }} + + // ... rest of code ... + \`\`\` + + In existing files, you should always restate the function or class that the snippet belongs to: + + \`\`\`language /path/to/file + // ... existing code ... + + function exampleFunction() { + // ... existing code ... + + {{ modified code here }} + + // ... rest of function ... + } + + // ... rest of code ... + \`\`\` + + Since users have access to their complete file, they prefer reading only the + relevant modifications. It's perfectly acceptable to omit unmodified portions + at the beginning, middle, or end of files using these "lazy" comments. Only + provide the complete file when explicitly requested. Include a concise explanation + of changes unless the user specifically asks for code only. +`,$De="For larger codeblocks (>20 lines), use brief language-appropriate placeholders for unmodified sections, e.g. '// ... existing code ...'",TDe=` + You are in chat mode. + + If the user asks to make changes to files offer that they can use the Apply Button on the code block, or switch to Agent Mode to make the suggested updates automatically. + If needed concisely explain to the user they can switch to agent mode using the Mode Selector dropdown and provide no other details. + +${tJ} +${Orn} +`,IDe=` + You are in agent mode. + + If you need to use multiple tools, you can call multiple read-only tools simultaneously. + +${tJ} + +${$De} + +However, only output codeblocks for suggestion and demonstration purposes, for example, when enumerating multiple hypothetical options. For implementing changes, use the edit tools. + +`,ADe=` + You are in plan mode, in which you help the user understand and construct a plan. + Only use read-only tools. Do not use any tools that would write to non-temporary files. + If the user wants to make changes, offer that they can switch to Agent mode to give you access to write tools to make the suggested updates. + +${tJ} + +${$De} + +However, only output codeblocks for suggestion and planning purposes. When ready to implement changes, request to switch to Agent mode. + + In plan mode, only write code when directly suggesting changes. Prioritize understanding and developing a plan. +`;function d_(){const t=g.useContext(qt),{selectedProfile:e}=as();return(n,r)=>{var i;n?t.post("controlPlane/openUrl",{path:`${n}/new-version`,orgSlug:void 0}):r?t.post("openFile",{path:r}):(e==null?void 0:e.profileType)==="local"&&(e!=null&&e.uri)?t.post("openFile",{path:e.uri}):(i=e==null?void 0:e.fullSlug)!=null&&i.ownerSlug&&(e!=null&&e.fullSlug.packageSlug)?t.post("controlPlane/openUrl",{path:`${e.fullSlug.ownerSlug}/${e.fullSlug.packageSlug}/new-version`,orgSlug:void 0}):t.post("config/openProfile",{profileId:void 0})}}function ODe(){const t=d_();return e=>{t(void 0,e==null?void 0:e.sourceFile)}}function Drn(){const t=d_();return e=>{if(!e){t(void 0,void 0);return}"name"in e?t(void 0,e.sourceFile):t(e.uses,void 0)}}function DDe(){const t=d_(),e=g.useContext(qt);return n=>{n.source==="default-chat"||n.source==="default-plan"||n.source==="default-agent"?e.post("openUrl",Arn):t(n==null?void 0:n.slug,n==null?void 0:n.sourceFile)}}function Mrn({rule:t}){const e=t.alwaysApply??!t.globs,n=DDe();return y.jsxs("div",{className:"group mr-2 flex flex-col overflow-hidden rounded px-1.5 py-1 text-xs hover:bg-white/10","data-testid":"rules-peek-item",onClick:()=>n(t),children:[y.jsxs("div",{className:"flex w-full items-center",children:[e?y.jsx(tg,{className:"text-description-muted mr-2 h-4 w-4 flex-shrink-0"}):y.jsx(XZ,{className:"text-description-muted mr-2 h-4 w-4 flex-shrink-0"}),y.jsxs("div",{className:"flex min-w-0 flex-1 gap-2 text-xs",children:[y.jsx("div",{className:"max-w-[50%] flex-shrink-0 truncate font-medium",children:t.name||"Agent rule"}),y.jsx("div",{className:"min-w-0 flex-1 overflow-hidden truncate whitespace-nowrap text-xs text-gray-500",children:e?"Always applied":`Pattern: ${typeof t.globs=="string"?t.globs:Array.isArray(t.globs)?t.globs.join(", "):""}`})]})]}),y.jsxs("div",{className:"mt-1 pl-6 pr-2 text-xs text-gray-500",children:["Source: ",EDe(t)]})]})}function Nrn({appliedRules:t,icon:e}){const n=g.useMemo(()=>t??[],[t]);return!n||n.length===0?null:y.jsx(JY,{icon:e,title:`${n.length} rule${n.length>1?"s":""}`,testId:"rules-peek",children:n.map((r,i)=>y.jsx(Mrn,{rule:r},`rule-${i}`))})}const Rrn=nZ` + 0% { + background-position: 0px 0; + } + 100% { + background-position: 100em 0; + } +`,Lrn=Dn.div` + border-radius: ${t=>t.borderRadius||"0"}; + padding: 1px; + background: ${t=>t.borderColor?t.borderColor:`repeating-linear-gradient( + 101.79deg, + #1BBE84 0%, + #331BBE 16%, + #BE1B55 33%, + #A6BE1B 55%, + #BE1B55 67%, + #331BBE 85%, + #1BBE84 99% + )`}; + animation: ${t=>t.loading?Rrn:""} 6s linear infinite; + background-size: 200% 200%; + width: 100%; + display: flex; + flex-direction: row; + align-items: center; + margin-top: ${t=>t.loading?"8px":""}; +`;class zo extends Error{constructor(n,r){super(r);Wt(this,"reason");this.reason=n,this.name="ContinueError"}}var xo=(t=>(t.FindAndReplaceIdenticalOldAndNewStrings="find_and_replace_identical_old_and_new_strings",t.FindAndReplaceMissingOldString="find_and_replace_missing_old_string",t.FindAndReplaceNonFirstEmptyOldString="find_and_replace_non_first_empty_old_string",t.FindAndReplaceMissingNewString="find_and_replace_missing_new_string",t.FindAndReplaceInvalidReplaceAll="find_and_replace_invalid_replace_all",t.FindAndReplaceOldStringNotFound="find_and_replace_old_string_not_found",t.FindAndReplaceMultipleOccurrences="find_and_replace_multiple_occurrences",t.FindAndReplaceMissingFilepath="find_and_replace_missing_filepath",t.MultiEditEditsArrayRequired="multi_edit_edits_array_required",t.MultiEditEditsArrayEmpty="multi_edit_edits_array_empty",t.MultiEditSubsequentEditsOnCreation="multi_edit_subsequent_edits_on_creation",t.MultiEditEmptyOldStringNotFirst="multi_edit_empty_old_string_not_first",t.EditToolFileNotRead="edit_tool_file_not_yet_read",t.FileAlreadyExists="file_already_exists",t.FileNotFound="file_not_found",t.FileWriteError="file_write_error",t.FileIsSecurityConcern="file_is_security_concern",t.ParentDirectoryNotFound="parent_directory_not_found",t.FileTooLarge="file_too_large",t.PathResolutionFailed="path_resolution_failed",t.InvalidLineNumber="invalid_line_number",t.DirectoryNotFound="directory_not_found",t.CommandExecutionFailed="command_execution_failed",t.CommandNotAvailableInRemote="command_not_available_in_remote",t.SearchExecutionFailed="search_execution_failed",t.RuleNotFound="rule_not_found",t.SkillNotFound="skill_not_found",t.Unspecified="unspecified",t.Unknown="unknown",t))(xo||{});function Prn(t,e,n){var s;const r=t.find(a=>{var o;return a.message.role==="assistant"&&((o=a.message.toolCalls)==null?void 0:o.some(l=>l.id===n.toolCallId))});if((r==null?void 0:r.message.role)==="assistant"&&"model"in r.message&&r.message.model){const a=String(r.message.model).split("::");return{modelProvider:a[0]||"unknown",modelName:a[1]||String(r.message.model),modelTitle:a[1]||String(r.message.model)}}const i=(s=e==null?void 0:e.selectedModelByRole)==null?void 0:s.chat;return{modelProvider:(i==null?void 0:i.provider)||"unknown",modelName:(i==null?void 0:i.model)||"unknown",modelTitle:(i==null?void 0:i.model)||"unknown"}}function jrn(t,e){const n=t.findIndex(r=>{var i;return r.message.role==="assistant"&&((i=r.message.toolCalls)==null?void 0:i.some(s=>s.id===e.toolCallId))});if(n>=0){const r=t[n];let i=null;for(let o=n-1;o>=0;o--)if(t[o].message.role==="user"){i=t[o];break}const s=i?Array.isArray(i.message.content)?i.message.content.map(o=>typeof o=="string"?o:o.type==="text"&&o.text||"").join(""):i.message.content||"":"",a=Array.isArray(r.message.content)?r.message.content.map(o=>typeof o=="string"?o:o.type==="text"&&o.text||"").join(""):r.message.content||"";return{prompt:s,completion:a}}return{prompt:"Unknown prompt",completion:"Unknown completion"}}function zrn(t){const e=t.originalFileContent||"",n=t.fileContent||"",r=e===""?0:e.split(` +`).length,i=n===""?0:n.split(` +`).length,s=i-r;return{previousCode:e,newCode:n,previousCodeLines:r,newCodeLines:i,lineChange:s}}function Frn(t,e,n,r,i){const s=Prn(t,e,n),a=jrn(t,n),o=zrn(r);return{streamId:r.streamId,timestamp:new Date().toISOString(),modelProvider:s.modelProvider,modelName:s.modelName,modelTitle:s.modelName,prompt:a.prompt,completion:a.completion,previousCode:o.previousCode,newCode:o.newCode,filepath:r.filepath||"",previousCodeLines:o.previousCodeLines,newCodeLines:o.newCodeLines,lineChange:o.lineChange,accepted:i}}async function Brn(t,e,n,r,i,s){const a=Frn(t,e,n,r,i);s.post("devdata/log",{name:"editOutcome",data:a})}var $j,s1e;function Urn(){if(s1e)return $j;s1e=1,$j=t;function t(r,i,s){r instanceof RegExp&&(r=e(r,s)),i instanceof RegExp&&(i=e(i,s));var a=n(r,i,s);return a&&{start:a[0],end:a[1],pre:s.slice(0,a[0]),body:s.slice(a[0]+r.length,a[1]),post:s.slice(a[1]+i.length)}}function e(r,i){var s=i.match(r);return s?s[0]:null}t.range=n;function n(r,i,s){var a,o,l,c,u,d=s.indexOf(r),f=s.indexOf(i,d+1),h=d;if(d>=0&&f>0){if(r===i)return[d,f];for(a=[],l=s.length;h>=0&&!u;)h==d?(a.push(h),d=s.indexOf(r,h+1)):a.length==1?u=[a.pop(),f]:(o=a.pop(),o=0?d:f;a.length&&(u=[l,c])}return u}return $j}var Tj,a1e;function qrn(){if(a1e)return Tj;a1e=1;var t=Urn();Tj=u;var e="\0SLASH"+Math.random()+"\0",n="\0OPEN"+Math.random()+"\0",r="\0CLOSE"+Math.random()+"\0",i="\0COMMA"+Math.random()+"\0",s="\0PERIOD"+Math.random()+"\0";function a(v){return parseInt(v,10)==v?parseInt(v,10):v.charCodeAt(0)}function o(v){return v.split("\\\\").join(e).split("\\{").join(n).split("\\}").join(r).split("\\,").join(i).split("\\.").join(s)}function l(v){return v.split(e).join("\\").split(n).join("{").split(r).join("}").split(i).join(",").split(s).join(".")}function c(v){if(!v)return[""];var x=[],w=t("{","}",v);if(!w)return v.split(",");var E=w.pre,S=w.body,_=w.post,C=E.split(",");C[C.length-1]+="{"+S+"}";var T=c(_);return _.length&&(C[C.length-1]+=T.shift(),C.push.apply(C,T)),x.push.apply(x,C),x}function u(v){return v?(v.substr(0,2)==="{}"&&(v="\\{\\}"+v.substr(2)),p(o(v),!0).map(l)):[]}function d(v){return"{"+v+"}"}function f(v){return/^-?0\d/.test(v)}function h(v,x){return v<=x}function m(v,x){return v>=x}function p(v,x){var w=[],E=t("{","}",v);if(!E)return[v];var S=E.pre,_=E.post.length?p(E.post,!1):[""];if(/\$$/.test(E.pre))for(var C=0;C<_.length;C++){var T=S+"{"+E.body+"}"+_[C];w.push(T)}else{var M=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(E.body),A=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(E.body),$=M||A,O=E.body.indexOf(",")>=0;if(!$&&!O)return E.post.match(/,(?!,).*\}/)?(v=E.pre+"{"+E.body+r+E.post,p(v)):[v];var D;if($)D=E.body.split(/\.\./);else if(D=c(E.body),D.length===1&&(D=p(D[0],!1).map(d),D.length===1))return _.map(function(X){return E.pre+D[0]+X});var N;if($){var R=a(D[0]),q=a(D[1]),W=Math.max(D[0].length,D[1].length),G=D.length==3?Math.abs(a(D[2])):1,U=h,J=q0){var se=new Array(L+1).join("0");H<0?V="-"+se+V.slice(1):V=se+V}}N.push(V)}}else{N=[];for(var oe=0;oe{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>Vrn)throw new TypeError("pattern is too long")},Zrn={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},w3=t=>t.replace(/[[\]\\-]/g,"\\$&"),Grn=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),o1e=t=>t.join(""),Krn=(t,e)=>{const n=e;if(t.charAt(n)!=="[")throw new Error("not in a brace expression");const r=[],i=[];let s=n+1,a=!1,o=!1,l=!1,c=!1,u=n,d="";e:for(;sd?r.push(w3(d)+"-"+w3(p)):p===d&&r.push(w3(p)),d="",s++;continue}if(t.startsWith("-]",s+1)){r.push(w3(p+"-")),s+=2;continue}if(t.startsWith("-",s+1)){d=p,s+=2;continue}r.push(w3(p)),s++}if(ue?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"),Yrn=new Set(["!","?","+","*","@"]),l1e=t=>Yrn.has(t),Jrn="(?!(?:^|/)\\.\\.?(?:$|/))",US="(?!\\.)",Xrn=new Set(["[","."]),Qrn=new Set(["..","."]),ein=new Set("().*{}+?[]^$\\!"),tin=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),nJ="[^/]",c1e=nJ+"*?",u1e=nJ+"+?";var Oa,qa,Fh,ks,fa,v0,K1,y0,ff,Y1,m6,Xg,MDe,B0,c9,JW,NDe;const ll=class ll{constructor(e,n,r={}){zl(this,Xg);Wt(this,"type");zl(this,Oa);zl(this,qa);zl(this,Fh,!1);zl(this,ks,[]);zl(this,fa);zl(this,v0);zl(this,K1);zl(this,y0,!1);zl(this,ff);zl(this,Y1);zl(this,m6,!1);this.type=e,e&&Qs(this,qa,!0),Qs(this,fa,n),Qs(this,Oa,Pt(this,fa)?Pt(Pt(this,fa),Oa):this),Qs(this,ff,Pt(this,Oa)===this?r:Pt(Pt(this,Oa),ff)),Qs(this,K1,Pt(this,Oa)===this?[]:Pt(Pt(this,Oa),K1)),e==="!"&&!Pt(Pt(this,Oa),y0)&&Pt(this,K1).push(this),Qs(this,v0,Pt(this,fa)?Pt(Pt(this,fa),ks).length:0)}get hasMagic(){if(Pt(this,qa)!==void 0)return Pt(this,qa);for(const e of Pt(this,ks))if(typeof e!="string"&&(e.type||e.hasMagic))return Qs(this,qa,!0);return Pt(this,qa)}toString(){return Pt(this,Y1)!==void 0?Pt(this,Y1):this.type?Qs(this,Y1,this.type+"("+Pt(this,ks).map(e=>String(e)).join("|")+")"):Qs(this,Y1,Pt(this,ks).map(e=>String(e)).join(""))}push(...e){for(const n of e)if(n!==""){if(typeof n!="string"&&!(n instanceof ll&&Pt(n,fa)===this))throw new Error("invalid part: "+n);Pt(this,ks).push(n)}}toJSON(){var n;const e=this.type===null?Pt(this,ks).slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...Pt(this,ks).map(r=>r.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===Pt(this,Oa)||Pt(Pt(this,Oa),y0)&&((n=Pt(this,fa))==null?void 0:n.type)==="!")&&e.push({}),e}isStart(){var n;if(Pt(this,Oa)===this)return!0;if(!((n=Pt(this,fa))!=null&&n.isStart()))return!1;if(Pt(this,v0)===0)return!0;const e=Pt(this,fa);for(let r=0;r{var E;const[p,v,x,w]=typeof m=="string"?Yp(E=ll,B0,NDe).call(E,m,Pt(this,qa),c):m.toRegExpSource(e);return Qs(this,qa,Pt(this,qa)||x),Qs(this,Fh,Pt(this,Fh)||w),p}).join("");let d="";if(this.isStart()&&typeof Pt(this,ks)[0]=="string"&&!(Pt(this,ks).length===1&&Qrn.has(Pt(this,ks)[0]))){const p=Xrn,v=n&&p.has(u.charAt(0))||u.startsWith("\\.")&&p.has(u.charAt(2))||u.startsWith("\\.\\.")&&p.has(u.charAt(4)),x=!n&&!e&&p.has(u.charAt(0));d=v?Jrn:x?US:""}let f="";return this.isEnd()&&Pt(Pt(this,Oa),y0)&&((l=Pt(this,fa))==null?void 0:l.type)==="!"&&(f="(?:$|\\/)"),[d+u+f,A4(u),Qs(this,qa,!!Pt(this,qa)),Pt(this,Fh)]}const r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:";let s=Yp(this,Xg,JW).call(this,n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){const c=this.toString();return Qs(this,ks,[c]),this.type=null,Qs(this,qa,void 0),[c,A4(this.toString()),!1,!1]}let a=!r||e||n||!US?"":Yp(this,Xg,JW).call(this,!0);a===s&&(a=""),a&&(s=`(?:${s})(?:${a})*?`);let o="";if(this.type==="!"&&Pt(this,m6))o=(this.isStart()&&!n?US:"")+u1e;else{const c=this.type==="!"?"))"+(this.isStart()&&!n&&!e?US:"")+c1e+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&a?")":this.type==="*"&&a?")?":`)${this.type}`;o=i+s+c}return[o,A4(s),Qs(this,qa,!!Pt(this,qa)),Pt(this,Fh)]}};Oa=new WeakMap,qa=new WeakMap,Fh=new WeakMap,ks=new WeakMap,fa=new WeakMap,v0=new WeakMap,K1=new WeakMap,y0=new WeakMap,ff=new WeakMap,Y1=new WeakMap,m6=new WeakMap,Xg=new WeakSet,MDe=function(){if(this!==Pt(this,Oa))throw new Error("should only call on root");if(Pt(this,y0))return this;this.toString(),Qs(this,y0,!0);let e;for(;e=Pt(this,K1).pop();){if(e.type!=="!")continue;let n=e,r=Pt(n,fa);for(;r;){for(let i=Pt(n,v0)+1;!r.type&&i{if(typeof n=="string")throw new Error("string type in extglob ast??");const[r,i,s,a]=n.toRegExpSource(e);return Qs(this,Fh,Pt(this,Fh)||a),r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")},NDe=function(e,n,r=!1){let i=!1,s="",a=!1;for(let o=0;oe?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&");var Ij={};const va=(t,e,n={})=>(kE(e),!n.nocomment&&e.charAt(0)==="#"?!1:new hI(e,n).match(t)),rin=/^\*+([^+@!?\*\[\(]*)$/,iin=t=>e=>!e.startsWith(".")&&e.endsWith(t),sin=t=>e=>e.endsWith(t),ain=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),oin=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),lin=/^\*+\.\*+$/,cin=t=>!t.startsWith(".")&&t.includes("."),uin=t=>t!=="."&&t!==".."&&t.includes("."),din=/^\.\*+$/,fin=t=>t!=="."&&t!==".."&&t.startsWith("."),hin=/^\*+$/,pin=t=>t.length!==0&&!t.startsWith("."),min=t=>t.length!==0&&t!=="."&&t!=="..",gin=/^\?+([^+@!?\*\[\(]*)?$/,vin=([t,e=""])=>{const n=RDe([t]);return e?(e=e.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(e)):n},yin=([t,e=""])=>{const n=LDe([t]);return e?(e=e.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(e)):n},bin=([t,e=""])=>{const n=LDe([t]);return e?r=>n(r)&&r.endsWith(e):n},xin=([t,e=""])=>{const n=RDe([t]);return e?r=>n(r)&&r.endsWith(e):n},RDe=([t])=>{const e=t.length;return n=>n.length===e&&!n.startsWith(".")},LDe=([t])=>{const e=t.length;return n=>n.length===e&&n!=="."&&n!==".."},PDe=typeof process=="object"&&process?typeof Ij=="object"&&Ij&&Ij.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",d1e={win32:{sep:"\\"},posix:{sep:"/"}},win=PDe==="win32"?d1e.win32.sep:d1e.posix.sep;va.sep=win;const yu=Symbol("globstar **");va.GLOBSTAR=yu;const _in="[^/]",kin=_in+"*?",Sin="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Cin="(?:(?!(?:\\/|^)\\.).)*?",Ein=(t,e={})=>n=>va(n,t,e);va.filter=Ein;const vu=(t,e={})=>Object.assign({},t,e),$in=t=>{if(!t||typeof t!="object"||!Object.keys(t).length)return va;const e=va;return Object.assign((r,i,s={})=>e(r,i,vu(t,s)),{Minimatch:class extends e.Minimatch{constructor(i,s={}){super(i,vu(t,s))}static defaults(i){return e.defaults(vu(t,i)).Minimatch}},AST:class extends e.AST{constructor(i,s,a={}){super(i,s,vu(t,a))}static fromGlob(i,s={}){return e.AST.fromGlob(i,vu(t,s))}},unescape:(r,i={})=>e.unescape(r,vu(t,i)),escape:(r,i={})=>e.escape(r,vu(t,i)),filter:(r,i={})=>e.filter(r,vu(t,i)),defaults:r=>e.defaults(vu(t,r)),makeRe:(r,i={})=>e.makeRe(r,vu(t,i)),braceExpand:(r,i={})=>e.braceExpand(r,vu(t,i)),match:(r,i,s={})=>e.match(r,i,vu(t,s)),sep:e.sep,GLOBSTAR:yu})};va.defaults=$in;const jDe=(t,e={})=>(kE(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:Wrn(t));va.braceExpand=jDe;const Tin=(t,e={})=>new hI(t,e).makeRe();va.makeRe=Tin;const Iin=(t,e,n={})=>{const r=new hI(e,n);return t=t.filter(i=>r.match(i)),r.options.nonull&&!t.length&&t.push(e),t};va.match=Iin;const f1e=/[?*]|[+@!]\(.*?\)|\[|\]/,Ain=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class hI{constructor(e,n={}){Wt(this,"options");Wt(this,"set");Wt(this,"pattern");Wt(this,"windowsPathsNoEscape");Wt(this,"nonegate");Wt(this,"negate");Wt(this,"comment");Wt(this,"empty");Wt(this,"preserveMultipleSlashes");Wt(this,"partial");Wt(this,"globSet");Wt(this,"globParts");Wt(this,"nocase");Wt(this,"isWindows");Wt(this,"platform");Wt(this,"windowsNoMagicRoot");Wt(this,"regexp");kE(e),n=n||{},this.options=n,this.pattern=e,this.platform=n.platform||PDe,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const e of this.set)for(const n of e)if(typeof n!="string")return!0;return!1}debug(...e){}make(){const e=this.pattern,n=this.options;if(!n.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);const r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,a,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){const l=s[0]===""&&s[1]===""&&(s[2]==="?"||!f1e.test(s[2]))&&!f1e.test(s[3]),c=/^[a-z]:/i.test(s[0]);if(l)return[...s.slice(0,4),...s.slice(4).map(u=>this.parse(u))];if(c)return[s[0],...s.slice(1).map(u=>this.parse(u))]}return s.map(l=>this.parse(l))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):n>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(e){return e.map(n=>(n=n.reduce((r,i)=>{const s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,a-i);let o=r[i+1];const l=r[i+2],c=r[i+3];if(o!==".."||!l||l==="."||l===".."||!c||c==="."||c==="..")continue;n=!0,r.splice(i,1);const u=r.slice(0);u[i]="**",e.push(u),i--}if(!this.preserveMultipleSlashes){for(let a=1;an.length)}partsMatch(e,n,r=!1){let i=0,s=0,a=[],o="";for(;iE?n=n.slice(S):E>S&&(e=e.slice(E)))}}const{optimizationLevel:s=1}=this.options;s>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:n}),this.debug("matchOne",e.length,n.length);for(var a=0,o=0,l=e.length,c=n.length;a>> no match, partial?`,e,f,n,h),f===l))}let p;if(typeof u=="string"?(p=d===u,this.debug("string match",u,d,p)):(p=u.test(d),this.debug("pattern match",u,d,p)),!p)return!1}if(a===l&&o===c)return!0;if(a===l)return r;if(o===c)return a===l-1&&e[a]==="";throw new Error("wtf?")}braceExpand(){return jDe(this.pattern,this.options)}parse(e){kE(e);const n=this.options;if(e==="**")return yu;if(e==="")return"";let r,i=null;(r=e.match(hin))?i=n.dot?min:pin:(r=e.match(rin))?i=(n.nocase?n.dot?oin:ain:n.dot?sin:iin)(r[1]):(r=e.match(gin))?i=(n.nocase?n.dot?yin:vin:n.dot?bin:xin)(r):(r=e.match(lin))?i=n.dot?uin:cin:(r=e.match(din))&&(i=fin);const s=SE.fromGlob(e,this.options).toMMPattern();return i&&typeof s=="object"&&Reflect.defineProperty(s,"test",{value:i}),s}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;const e=this.set;if(!e.length)return this.regexp=!1,this.regexp;const n=this.options,r=n.noglobstar?kin:n.dot?Sin:Cin,i=new Set(n.nocase?["i"]:[]);let s=e.map(l=>{const c=l.map(u=>{if(u instanceof RegExp)for(const d of u.flags.split(""))i.add(d);return typeof u=="string"?Ain(u):u===yu?yu:u._src});return c.forEach((u,d)=>{const f=c[d+1],h=c[d-1];u!==yu||h===yu||(h===void 0?f!==void 0&&f!==yu?c[d+1]="(?:\\/|"+r+"\\/)?"+f:c[d]=r:f===void 0?c[d-1]=h+"(?:\\/|"+r+")?":f!==yu&&(c[d-1]=h+"(?:\\/|\\/"+r+"\\/)"+f,c[d+1]=yu))}),c.filter(u=>u!==yu).join("/")}).join("|");const[a,o]=e.length>1?["(?:",")"]:["",""];s="^"+a+s+o+"$",this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,n=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&n)return!0;const r=this.options;this.isWindows&&(e=e.split("\\").join("/"));const i=this.slashSplit(e);this.debug(this.pattern,"split",i);const s=this.set;this.debug(this.pattern,"set",s);let a=i[i.length-1];if(!a)for(let o=i.length-2;!a&&o>=0;o--)a=i[o];for(let o=0;o{if(!e)return!0;if(typeof e=="string")return e.startsWith("!")?!va(t,e.substring(1)):va(t,e);if(Array.isArray(e)){const n=e.filter(i=>!i.startsWith("!")),r=e.filter(i=>i.startsWith("!")).map(i=>i.substring(1));return n.length===0?!r.some(i=>va(t,i)):n.some(i=>va(t,i))&&!r.some(i=>va(t,i))}return!1},Nin=(t,e)=>{if(typeof e=="string")try{return new RegExp(e).test(t)}catch(n){return console.error(`Invalid regex pattern: ${e}`,n),!1}return Array.isArray(e)?e.length===0?!0:e.some(n=>{try{return new RegExp(n).test(t)}catch(r){return console.error(`Invalid regex pattern: ${n}`,r),!1}}):!1},Rin=(t,e)=>{let n=t.replace(/\\/g,"/"),r=e.replace(/\\/g,"/");n=n.replace(/^file:\/\//,""),r=r.replace(/^file:\/\//,"");const i=r.split("/"),s=i[i.length-1];return n.includes(`${s}/`)},zDe=t=>!t.sourceFile||t.sourceFile.includes(".continue/"),Lin=t=>!!(t.alwaysApply===!0||zDe(t)&&!t.globs&&!t.regex&&t.alwaysApply!==!1),h1e=({rule:t,filePaths:e,fileContents:n})=>{const r=t.globs?e.filter(i=>Min(i,t.globs)):e;return r.length===0?!1:t.regex?r.some(i=>{const s=n[i];return s?Nin(s,t.regex):!1}):r.length>0},Pin=(t,e,n={},r={})=>{if(n[t.name||""]==="off")return!1;if(Lin(t))return!0;if(e.length===0)return!1;if(!zDe(t)&&t.sourceFile){const a=gC(t.sourceFile),o=a.lastIndexOf("/"),l=o!==-1?a.substring(0,o):"",c=e.filter(u=>Rin(u,l));return h1e({filePaths:c,fileContents:r,rule:t})}return t.alwaysApply===!1&&t.globs===void 0&&t.regex===void 0?!1:h1e({filePaths:e,fileContents:r,rule:t})},jin=(t,e,n,r={})=>{const i=t?Din(Q0(t)):[],s=n.filter(c=>{var u,d;return((u=c.uri)==null?void 0:u.type)==="file"&&((d=c.uri)==null?void 0:d.value)}).map(c=>c.uri.value),a=[...i,...s],o={};if(n.forEach(c=>{var u,d;((u=c.uri)==null?void 0:u.type)==="file"&&((d=c.uri)!=null&&d.value)&&(o[c.uri.value]=c.content)}),t){const c=Q0(t);i.forEach(u=>{if(!o[u]){const d=Oin(c,u);d&&(o[u]=d)}})}return e.filter(c=>Pin(c,a,r,o))};function zin(t){return t.slug??t.sourceFile??t.name??t.source}const Fin=({baseSystemMessage:t,userMessage:e,availableRules:n,contextItems:r,rulePolicies:i={}})=>{const s=jin(e,n,r,i);let a=t??"";for(const l of s)a&&(a+=` + +`),a+=l.rule;const o=s.map(({rule:l,...c})=>c);return{systemMessage:a,appliedRules:o}},Bin=So([t=>t.session.mode,t=>t.config.config.tools,t=>t.ui.toolSettings,t=>t.ui.toolGroupSettings],(t,e,n,r)=>{if(t==="chat")return[];{const i=e.filter(s=>(n[s.function.name]??s.defaultToolPolicy??mC)!=="disabled"&&r[s.group]!=="exclude");return t==="plan"?i.filter(s=>s.group!==Hb||s.readonly):i}});function FDe(t){switch(t.role){case"system":case"user":return typeof t.content=="string"&&t.content.trim()==="";case"assistant":return typeof t.content=="string"&&t.content.trim()===""&&!t.toolCalls;case"thinking":case"tool":return!1}}const BDe="No tool output",UDe="The user cancelled this tool call.",Uin="There was an error calling the tool.";function qin(t){var n;let e=`Tool output for ${t.toolCall.function.name} tool call: + +`;return t.status==="canceled"?e+=UDe:(n=t.output)!=null&&n.length?e+=l2(t.output):e+=BDe,e}function Hin(t,e,n){const r=MG(t);t.toolCalls&&r.push(...e.map(o=>({type:"text",text:n.toolCallStateToSystemToolCall(o)})));const i={...t,content:r,toolCalls:void 0},s=[];if(e)for(const o of e)s.push({type:"text",text:qin(o)});return s.length===0&&s.push({type:"text",text:"Error: no tool output for tool calls"}),{assistantMessage:i,userMessage:{role:"user",content:s}}}function qDe(t,e){let n=-1;for(let r=t.length-1;r>=0;r--)if(e(t[r])){n=r;break}return n}function Win(t,e){for(let n=t.length-1;n>=0;n--)if(e(t[n]))return t[n]}function HDe(t,e,n,r,i){var E,S,_,C,T;let s="",a=t;for(let M=t.length-1;M>=0;M--){const A=t[M].conversationSummary;if(A){s=A,a=t.slice(M+1);break}}const o=[...a],l=[];let c=-1,u=-1;for(const M of o)if(u++,!(M.message.role==="system"||M.message.role==="tool"||FDe(M.message))){if(M.message.role==="user"){c=u;let A=MG(M.message);A=[...M.contextItems.map(O=>({type:"text",text:`${O.content} +`})).filter(O=>!!O.text.trim()),...A],l.push({ctxItems:M.contextItems,message:{...M.message,content:A}})}else if(M.message.role==="thinking")l.push({ctxItems:M.contextItems,message:M.message});else if(M.message.role==="assistant"){if((E=M.toolCallStates)!=null&&E.length&&i){const{userMessage:A,assistantMessage:$}=Hin(M.message,M.toolCallStates??[],i);l.push({message:$,ctxItems:[]}),l.push({message:A,ctxItems:[]});continue}if(l.push({ctxItems:M.contextItems,message:M.message}),(S=M.toolCallStates)!=null&&S.length)for(const A of M.toolCallStates){const{output:$,status:O,toolCall:D}=A;let N=BDe;O==="canceled"?N=UDe:$?((_=D.function)==null?void 0:_.name)==ti.RunTerminalCommand?N=FSt($):N=l2($):A.status==="errored"&&(N=Uin),l.push({ctxItems:RG(A),message:{role:"tool",content:N,toolCallId:D.id}})}else M.toolCallStates&&M.toolCallStates.length>0&&console.error("ERROR constructMessages: Assistant message has toolCallStates but no message.toolCalls:",{toolCallStates:M.toolCallStates.length,toolCallIds:M.toolCallStates.map(A=>A.toolCallId),messageContent:typeof M.message.content=="string"?((C=M.message.content)==null?void 0:C.substring(0,50))+"...":"Non-string content"})}}const d=(T=Win(l,M=>M.message.role==="user"||M.message.role==="tool"))==null?void 0:T.message,f=qDe(l,M=>M.message.role==="user"),m=l.slice(f,l.length).filter(M=>M.message.role==="tool"||M.message.role==="user").map(M=>M.ctxItems).flat(),{systemMessage:p,appliedRules:v}=Fin({baseSystemMessage:e,availableRules:n,userMessage:d,contextItems:m,rulePolicies:r});let x=p;return s&&(x=p?`${p} + +Previous conversation summary: + + ${s}`:`Previous conversation summary: + + ${s}`),x.trim()&&l.unshift({ctxItems:[],message:{role:"system",content:x}}),{messages:l.map(M=>M.message),appliedRules:v,appliedRuleIndex:c}}var p1e;(function(t){t.Latest="latest"})(p1e||(p1e={}));var Aa;(function(t){t.User="user",t.Package="package",t.Organization="organization",t.NotFound="not_found",t.ModelsAddOn="models_add_on",t.FreeTrial="free_trial",t.LocalEnv="local_env",t.ProcessEnv="process_env"})(Aa||(Aa={}));function Vin(t){const[e,n]=t.split(":"),r=n.split("/"),i=r[r.length-1];switch(e){case Aa.Organization:return{secretType:Aa.Organization,orgSlug:r[0],secretName:i};case Aa.User:return{secretType:Aa.User,userSlug:r[0],secretName:i};case Aa.Package:return{secretType:Aa.Package,packageSlug:{ownerSlug:r[0],packageSlug:r[1]},secretName:i};case Aa.NotFound:return{secretType:Aa.NotFound,secretName:i};case Aa.ModelsAddOn:return{secretType:Aa.ModelsAddOn,secretName:i,blockSlug:{ownerSlug:r[0],packageSlug:r[1]}};case Aa.FreeTrial:return{secretType:Aa.FreeTrial,secretName:i,blockSlug:{ownerSlug:r[0],packageSlug:r[1]}};case Aa.LocalEnv:return{secretType:Aa.LocalEnv,secretName:i};case Aa.ProcessEnv:return{secretType:Aa.ProcessEnv,secretName:i};default:throw new Error(`Invalid secret type: ${e}`)}}var di;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function n(i){throw new Error}t.assertNever=n,t.arrayToEnum=i=>{const s={};for(const a of i)s[a]=a;return s},t.getValidEnumValues=i=>{const s=t.objectKeys(i).filter(o=>typeof i[i[o]]!="number"),a={};for(const o of s)a[o]=i[o];return t.objectValues(a)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&s.push(a);return s},t.find=(i,s)=>{for(const a of i)if(s(a))return a},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(di||(di={}));var XW;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(XW||(XW={}));const an=di.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),jh=t=>{switch(typeof t){case"undefined":return an.undefined;case"string":return an.string;case"number":return Number.isNaN(t)?an.nan:an.number;case"boolean":return an.boolean;case"function":return an.function;case"bigint":return an.bigint;case"symbol":return an.symbol;case"object":return Array.isArray(t)?an.array:t===null?an.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?an.promise:typeof Map<"u"&&t instanceof Map?an.map:typeof Set<"u"&&t instanceof Set?an.set:typeof Date<"u"&&t instanceof Date?an.date:an.object;default:return an.unknown}},St=di.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Zin=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:");let Lu=class WDe extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},i=s=>{for(const a of s.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let o=r,l=0;for(;ln.message){const n={},r=[];for(const i of this.issues)if(i.path.length>0){const s=i.path[0];n[s]=n[s]||[],n[s].push(e(i))}else r.push(e(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Lu.create=t=>new Lu(t);const nb=(t,e)=>{let n;switch(t.code){case St.invalid_type:t.received===an.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case St.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,di.jsonStringifyReplacer)}`;break;case St.unrecognized_keys:n=`Unrecognized key(s) in object: ${di.joinValues(t.keys,", ")}`;break;case St.invalid_union:n="Invalid input";break;case St.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${di.joinValues(t.options)}`;break;case St.invalid_enum_value:n=`Invalid enum value. Expected ${di.joinValues(t.options)}, received '${t.received}'`;break;case St.invalid_arguments:n="Invalid function arguments";break;case St.invalid_return_type:n="Invalid function return type";break;case St.invalid_date:n="Invalid date";break;case St.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:di.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case St.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case St.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case St.custom:n="Invalid input";break;case St.invalid_intersection_types:n="Intersection results could not be merged";break;case St.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case St.not_finite:n="Number must be finite";break;default:n=e.defaultError,di.assertNever(t)}return{message:n}};let VDe=nb;function Gin(t){VDe=t}function CE(){return VDe}const EE=t=>{const{data:e,path:n,errorMaps:r,issueData:i}=t,s=[...n,...i.path||[]],a={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let o="";const l=r.filter(c=>!!c).slice().reverse();for(const c of l)o=c(a,{data:e,defaultError:o}).message;return{...i,path:s,message:o}},Kin=[];function Yt(t,e){const n=CE(),r=EE({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===nb?void 0:nb].filter(i=>!!i)});t.common.issues.push(r)}let uc=class ZDe{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const i of n){if(i.status==="aborted")return rr;i.status==="dirty"&&e.dirty(),r.push(i.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const i of n){const s=await i.key,a=await i.value;r.push({key:s,value:a})}return ZDe.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const i of n){const{key:s,value:a}=i;if(s.status==="aborted"||a.status==="aborted")return rr;s.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[s.value]=a.value)}return{status:e.value,value:r}}};const rr=Object.freeze({status:"aborted"}),qv=t=>({status:"dirty",value:t}),Il=t=>({status:"valid",value:t}),QW=t=>t.status==="aborted",eV=t=>t.status==="dirty",Fg=t=>t.status==="valid",_w=t=>typeof Promise<"u"&&t instanceof Promise;var In;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(In||(In={}));let Hf=class{constructor(e,n,r,i){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};const m1e=(t,e)=>{if(Fg(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new Lu(t.common.issues);return this._error=n,this._error}}};function $r(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:i}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(a,o)=>{const{message:l}=t;return a.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??r??o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:l??n??o.defaultError}},description:i}}let jr=class{get description(){return this._def.description}_getType(e){return jh(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:jh(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new uc,ctx:{common:e.parent.common,data:e.data,parsedType:jh(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(_w(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jh(e)},i=this._parseSync({data:e,path:r.path,parent:r});return m1e(r,i)}"~validate"(e){var r,i;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jh(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return Fg(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(i=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&i.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>Fg(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:jh(e)},i=this._parse({data:e,path:r.path,parent:r}),s=await(_w(i)?i:Promise.resolve(i));return m1e(r,s)}refine(e,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{const a=e(i),o=()=>s.addIssue({code:St.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(l=>l?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,n){return this._refinement((r,i)=>e(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(e){return new Bd({schema:this,typeName:lr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return If.create(this,this._def)}nullable(){return cm.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Bg.create(this)}promise(){return sb.create(this,this._def)}or(e){return Iw.create([this,e],this._def)}and(e){return Aw.create(this,e,this._def)}transform(e){return new Bd({...$r(this._def),schema:this,typeName:lr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new Nw({...$r(this._def),innerType:this,defaultValue:n,typeName:lr.ZodDefault})}brand(){return new rJ({typeName:lr.ZodBranded,type:this,...$r(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new Rw({...$r(this._def),innerType:this,catchValue:n,typeName:lr.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return iJ.create(this,e)}readonly(){return Lw.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const Yin=/^c[^\s-]{8,}$/i,Jin=/^[0-9a-z]+$/,Xin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qin=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,esn=/^[a-z0-9_-]{21}$/i,tsn=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,nsn=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,rsn=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,isn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Aj;const ssn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,asn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,osn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,lsn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,csn=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,usn=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,GDe="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",dsn=new RegExp(`^${GDe}$`);function KDe(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function fsn(t){return new RegExp(`^${KDe(t)}$`)}function YDe(t){let e=`${GDe}T${KDe(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function hsn(t,e){return!!((e==="v4"||!e)&&ssn.test(t)||(e==="v6"||!e)&&osn.test(t))}function psn(t,e){if(!tsn.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function msn(t,e){return!!((e==="v4"||!e)&&asn.test(t)||(e==="v6"||!e)&&lsn.test(t))}let rb=class O4 extends jr{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==an.string){const s=this._getOrReturnCtx(e);return Yt(s,{code:St.invalid_type,expected:an.string,received:s.parsedType}),rr}const r=new uc;let i;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),Yt(i,{code:St.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const a=e.data.length>s.value,o=e.data.lengthe.test(i),{validation:n,code:St.invalid_string,...In.errToObj(r)})}_addCheck(e){return new O4({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...In.errToObj(e)})}url(e){return this._addCheck({kind:"url",...In.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...In.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...In.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...In.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...In.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...In.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...In.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...In.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...In.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...In.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...In.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...In.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...In.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...In.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...In.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...In.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...In.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...In.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...In.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...In.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...In.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...In.errToObj(n)})}nonempty(e){return this.min(1,In.errToObj(e))}trim(){return new O4({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new O4({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new O4({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew rb({checks:[],typeName:lr.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...$r(t)});function gsn(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(t.toFixed(i).replace(".","")),a=Number.parseInt(e.toFixed(i).replace(".",""));return s%a/10**i}let kw=class tV extends jr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==an.number){const s=this._getOrReturnCtx(e);return Yt(s,{code:St.invalid_type,expected:an.number,received:s.parsedType}),rr}let r;const i=new uc;for(const s of this._def.checks)s.kind==="int"?di.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?gsn(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.not_finite,message:s.message}),i.dirty()):di.assertNever(s);return{status:i.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,In.toString(n))}gt(e,n){return this.setLimit("min",e,!1,In.toString(n))}lte(e,n){return this.setLimit("max",e,!0,In.toString(n))}lt(e,n){return this.setLimit("max",e,!1,In.toString(n))}setLimit(e,n,r,i){return new tV({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:In.toString(i)}]})}_addCheck(e){return new tV({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:In.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:In.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:In.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:In.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:In.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:In.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:In.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:In.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:In.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&di.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew kw({checks:[],typeName:lr.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...$r(t)});let Sw=class nV extends jr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==an.bigint)return this._getInvalidInput(e);let r;const i=new uc;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Yt(r,{code:St.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):di.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return Yt(n,{code:St.invalid_type,expected:an.bigint,received:n.parsedType}),rr}gte(e,n){return this.setLimit("min",e,!0,In.toString(n))}gt(e,n){return this.setLimit("min",e,!1,In.toString(n))}lte(e,n){return this.setLimit("max",e,!0,In.toString(n))}lt(e,n){return this.setLimit("max",e,!1,In.toString(n))}setLimit(e,n,r,i){return new nV({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:In.toString(i)}]})}_addCheck(e){return new nV({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:In.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:In.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:In.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:In.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:In.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Sw({checks:[],typeName:lr.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...$r(t)});let Cw=class extends jr{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==an.boolean){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.boolean,received:r.parsedType}),rr}return Il(e.data)}};Cw.create=t=>new Cw({typeName:lr.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...$r(t)});let Ew=class JDe extends jr{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==an.date){const s=this._getOrReturnCtx(e);return Yt(s,{code:St.invalid_type,expected:an.date,received:s.parsedType}),rr}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return Yt(s,{code:St.invalid_date}),rr}const r=new uc;let i;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),Yt(i,{code:St.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):di.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new JDe({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:In.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:In.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Ew({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:lr.ZodDate,...$r(t)});let $E=class extends jr{_parse(e){if(this._getType(e)!==an.symbol){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.symbol,received:r.parsedType}),rr}return Il(e.data)}};$E.create=t=>new $E({typeName:lr.ZodSymbol,...$r(t)});let $w=class extends jr{_parse(e){if(this._getType(e)!==an.undefined){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.undefined,received:r.parsedType}),rr}return Il(e.data)}};$w.create=t=>new $w({typeName:lr.ZodUndefined,...$r(t)});let Tw=class extends jr{_parse(e){if(this._getType(e)!==an.null){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.null,received:r.parsedType}),rr}return Il(e.data)}};Tw.create=t=>new Tw({typeName:lr.ZodNull,...$r(t)});let ib=class extends jr{constructor(){super(...arguments),this._any=!0}_parse(e){return Il(e.data)}};ib.create=t=>new ib({typeName:lr.ZodAny,...$r(t)});let cg=class extends jr{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Il(e.data)}};cg.create=t=>new cg({typeName:lr.ZodUnknown,...$r(t)});let kp=class extends jr{_parse(e){const n=this._getOrReturnCtx(e);return Yt(n,{code:St.invalid_type,expected:an.never,received:n.parsedType}),rr}};kp.create=t=>new kp({typeName:lr.ZodNever,...$r(t)});let TE=class extends jr{_parse(e){if(this._getType(e)!==an.undefined){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.void,received:r.parsedType}),rr}return Il(e.data)}};TE.create=t=>new TE({typeName:lr.ZodVoid,...$r(t)});let Bg=class u9 extends jr{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),i=this._def;if(n.parsedType!==an.array)return Yt(n,{code:St.invalid_type,expected:an.array,received:n.parsedType}),rr;if(i.exactLength!==null){const a=n.data.length>i.exactLength.value,o=n.data.lengthi.maxLength.value&&(Yt(n,{code:St.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,o)=>i.type._parseAsync(new Hf(n,a,n.path,o)))).then(a=>uc.mergeArray(r,a));const s=[...n.data].map((a,o)=>i.type._parseSync(new Hf(n,a,n.path,o)));return uc.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new u9({...this._def,minLength:{value:e,message:In.toString(n)}})}max(e,n){return new u9({...this._def,maxLength:{value:e,message:In.toString(n)}})}length(e,n){return new u9({...this._def,exactLength:{value:e,message:In.toString(n)}})}nonempty(e){return this.min(1,e)}};Bg.create=(t,e)=>new Bg({type:t,minLength:null,maxLength:null,exactLength:null,typeName:lr.ZodArray,...$r(e)});function Tv(t){if(t instanceof Ju){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=If.create(Tv(r))}return new Ju({...t._def,shape:()=>e})}else return t instanceof Bg?new Bg({...t._def,type:Tv(t.element)}):t instanceof If?If.create(Tv(t.unwrap())):t instanceof cm?cm.create(Tv(t.unwrap())):t instanceof lm?lm.create(t.items.map(e=>Tv(e))):t}let Ju=class yd extends jr{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=di.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==an.object){const c=this._getOrReturnCtx(e);return Yt(c,{code:St.invalid_type,expected:an.object,received:c.parsedType}),rr}const{status:r,ctx:i}=this._processInputParams(e),{shape:s,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof kp&&this._def.unknownKeys==="strip"))for(const c in i.data)a.includes(c)||o.push(c);const l=[];for(const c of a){const u=s[c],d=i.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new Hf(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof kp){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:i.data[u]}});else if(c==="strict")o.length>0&&(Yt(i,{code:St.unrecognized_keys,keys:o}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of o){const d=i.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new Hf(i,d,i.path,u)),alwaysSet:u in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of l){const d=await u.key,f=await u.value;c.push({key:d,value:f,alwaysSet:u.alwaysSet})}return c}).then(c=>uc.mergeObjectSync(r,c)):uc.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(e){return In.errToObj,new yd({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,a;const i=((a=(s=this._def).errorMap)==null?void 0:a.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:In.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new yd({...this._def,unknownKeys:"strip"})}passthrough(){return new yd({...this._def,unknownKeys:"passthrough"})}extend(e){return new yd({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new yd({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:lr.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new yd({...this._def,catchall:e})}pick(e){const n={};for(const r of di.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new yd({...this._def,shape:()=>n})}omit(e){const n={};for(const r of di.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new yd({...this._def,shape:()=>n})}deepPartial(){return Tv(this)}partial(e){const n={};for(const r of di.objectKeys(this.shape)){const i=this.shape[r];e&&!e[r]?n[r]=i:n[r]=i.optional()}return new yd({...this._def,shape:()=>n})}required(e){const n={};for(const r of di.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof If;)s=s._def.innerType;n[r]=s}return new yd({...this._def,shape:()=>n})}keyof(){return rMe(di.objectKeys(this.shape))}};Ju.create=(t,e)=>new Ju({shape:()=>t,unknownKeys:"strip",catchall:kp.create(),typeName:lr.ZodObject,...$r(e)});Ju.strictCreate=(t,e)=>new Ju({shape:()=>t,unknownKeys:"strict",catchall:kp.create(),typeName:lr.ZodObject,...$r(e)});Ju.lazycreate=(t,e)=>new Ju({shape:t,unknownKeys:"strip",catchall:kp.create(),typeName:lr.ZodObject,...$r(e)});let Iw=class extends jr{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function i(s){for(const o of s)if(o.result.status==="valid")return o.result;for(const o of s)if(o.result.status==="dirty")return n.common.issues.push(...o.ctx.common.issues),o.result;const a=s.map(o=>new Lu(o.ctx.common.issues));return Yt(n,{code:St.invalid_union,unionErrors:a}),rr}if(n.common.async)return Promise.all(r.map(async s=>{const a={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let s;const a=[];for(const l of r){const c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&a.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const o=a.map(l=>new Lu(l));return Yt(n,{code:St.invalid_union,unionErrors:o}),rr}}get options(){return this._def.options}};Iw.create=(t,e)=>new Iw({options:t,typeName:lr.ZodUnion,...$r(e)});const Th=t=>t instanceof Ow?Th(t.schema):t instanceof Bd?Th(t.innerType()):t instanceof Dw?[t.value]:t instanceof f_?t.options:t instanceof Mw?di.objectValues(t.enum):t instanceof Nw?Th(t._def.innerType):t instanceof $w?[void 0]:t instanceof Tw?[null]:t instanceof If?[void 0,...Th(t.unwrap())]:t instanceof cm?[null,...Th(t.unwrap())]:t instanceof rJ||t instanceof Lw?Th(t.unwrap()):t instanceof Rw?Th(t._def.innerType):[];let XDe=class QDe extends jr{_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==an.object)return Yt(n,{code:St.invalid_type,expected:an.object,received:n.parsedType}),rr;const r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Yt(n,{code:St.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),rr)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){const i=new Map;for(const s of n){const a=Th(s.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const o of a){if(i.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);i.set(o,s)}}return new QDe({typeName:lr.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:i,...$r(r)})}};function rV(t,e){const n=jh(t),r=jh(e);if(t===e)return{valid:!0,data:t};if(n===an.object&&r===an.object){const i=di.objectKeys(e),s=di.objectKeys(t).filter(o=>i.indexOf(o)!==-1),a={...t,...e};for(const o of s){const l=rV(t[o],e[o]);if(!l.valid)return{valid:!1};a[o]=l.data}return{valid:!0,data:a}}else if(n===an.array&&r===an.array){if(t.length!==e.length)return{valid:!1};const i=[];for(let s=0;s{if(QW(s)||QW(a))return rr;const o=rV(s.value,a.value);return o.valid?((eV(s)||eV(a))&&n.dirty(),{status:n.value,value:o.data}):(Yt(r,{code:St.invalid_intersection_types}),rr)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,a])=>i(s,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Aw.create=(t,e,n)=>new Aw({left:t,right:e,typeName:lr.ZodIntersection,...$r(n)});let lm=class eMe extends jr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==an.array)return Yt(r,{code:St.invalid_type,expected:an.array,received:r.parsedType}),rr;if(r.data.lengththis._def.items.length&&(Yt(r,{code:St.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((a,o)=>{const l=this._def.items[o]||this._def.rest;return l?l._parse(new Hf(r,a,r.path,o)):null}).filter(a=>!!a);return r.common.async?Promise.all(s).then(a=>uc.mergeArray(n,a)):uc.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new eMe({...this._def,rest:e})}};lm.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new lm({items:t,typeName:lr.ZodTuple,rest:null,...$r(e)})};let tMe=class iV extends jr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==an.object)return Yt(r,{code:St.invalid_type,expected:an.object,received:r.parsedType}),rr;const i=[],s=this._def.keyType,a=this._def.valueType;for(const o in r.data)i.push({key:s._parse(new Hf(r,o,r.path,o)),value:a._parse(new Hf(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?uc.mergeObjectAsync(n,i):uc.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof jr?new iV({keyType:e,valueType:n,typeName:lr.ZodRecord,...$r(r)}):new iV({keyType:rb.create(),valueType:e,typeName:lr.ZodRecord,...$r(n)})}},IE=class extends jr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==an.map)return Yt(r,{code:St.invalid_type,expected:an.map,received:r.parsedType}),rr;const i=this._def.keyType,s=this._def.valueType,a=[...r.data.entries()].map(([o,l],c)=>({key:i._parse(new Hf(r,o,r.path,[c,"key"])),value:s._parse(new Hf(r,l,r.path,[c,"value"]))}));if(r.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const l of a){const c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return rr;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),o.set(c.value,u.value)}return{status:n.value,value:o}})}else{const o=new Map;for(const l of a){const c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return rr;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),o.set(c.value,u.value)}return{status:n.value,value:o}}}};IE.create=(t,e,n)=>new IE({valueType:e,keyType:t,typeName:lr.ZodMap,...$r(n)});let AE=class sV extends jr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==an.set)return Yt(r,{code:St.invalid_type,expected:an.set,received:r.parsedType}),rr;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Yt(r,{code:St.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const s=this._def.valueType;function a(l){const c=new Set;for(const u of l){if(u.status==="aborted")return rr;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}const o=[...r.data.values()].map((l,c)=>s._parse(new Hf(r,l,r.path,c)));return r.common.async?Promise.all(o).then(l=>a(l)):a(o)}min(e,n){return new sV({...this._def,minSize:{value:e,message:In.toString(n)}})}max(e,n){return new sV({...this._def,maxSize:{value:e,message:In.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}};AE.create=(t,e)=>new AE({valueType:t,minSize:null,maxSize:null,typeName:lr.ZodSet,...$r(e)});let nMe=class d9 extends jr{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==an.function)return Yt(n,{code:St.invalid_type,expected:an.function,received:n.parsedType}),rr;function r(o,l){return EE({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,CE(),nb].filter(c=>!!c),issueData:{code:St.invalid_arguments,argumentsError:l}})}function i(o,l){return EE({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,CE(),nb].filter(c=>!!c),issueData:{code:St.invalid_return_type,returnTypeError:l}})}const s={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof sb){const o=this;return Il(async function(...l){const c=new Lu([]),u=await o._def.args.parseAsync(l,s).catch(h=>{throw c.addIssue(r(l,h)),c}),d=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(d,s).catch(h=>{throw c.addIssue(i(d,h)),c})})}else{const o=this;return Il(function(...l){const c=o._def.args.safeParse(l,s);if(!c.success)throw new Lu([r(l,c.error)]);const u=Reflect.apply(a,this,c.data),d=o._def.returns.safeParse(u,s);if(!d.success)throw new Lu([i(u,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new d9({...this._def,args:lm.create(e).rest(cg.create())})}returns(e){return new d9({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new d9({args:e||lm.create([]).rest(cg.create()),returns:n||cg.create(),typeName:lr.ZodFunction,...$r(r)})}},Ow=class extends jr{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Ow.create=(t,e)=>new Ow({getter:t,typeName:lr.ZodLazy,...$r(e)});let Dw=class extends jr{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return Yt(n,{received:n.data,code:St.invalid_literal,expected:this._def.value}),rr}return{status:"valid",value:e.data}}get value(){return this._def.value}};Dw.create=(t,e)=>new Dw({value:t,typeName:lr.ZodLiteral,...$r(e)});function rMe(t,e){return new f_({values:t,typeName:lr.ZodEnum,...$r(e)})}let f_=class aV extends jr{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return Yt(n,{expected:di.joinValues(r),received:n.parsedType,code:St.invalid_type}),rr}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return Yt(n,{received:n.data,code:St.invalid_enum_value,options:r}),rr}return Il(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return aV.create(e,{...this._def,...n})}exclude(e,n=this._def){return aV.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}};f_.create=rMe;let Mw=class extends jr{_parse(e){const n=di.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==an.string&&r.parsedType!==an.number){const i=di.objectValues(n);return Yt(r,{expected:di.joinValues(i),received:r.parsedType,code:St.invalid_type}),rr}if(this._cache||(this._cache=new Set(di.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const i=di.objectValues(n);return Yt(r,{received:r.data,code:St.invalid_enum_value,options:i}),rr}return Il(e.data)}get enum(){return this._def.values}};Mw.create=(t,e)=>new Mw({values:t,typeName:lr.ZodNativeEnum,...$r(e)});let sb=class extends jr{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==an.promise&&n.common.async===!1)return Yt(n,{code:St.invalid_type,expected:an.promise,received:n.parsedType}),rr;const r=n.parsedType===an.promise?n.data:Promise.resolve(n.data);return Il(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};sb.create=(t,e)=>new sb({type:t,typeName:lr.ZodPromise,...$r(e)});let Bd=class extends jr{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===lr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:a=>{Yt(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const a=i.transform(r.data,s);if(r.common.async)return Promise.resolve(a).then(async o=>{if(n.value==="aborted")return rr;const l=await this._def.schema._parseAsync({data:o,path:r.path,parent:r});return l.status==="aborted"?rr:l.status==="dirty"||n.value==="dirty"?qv(l.value):l});{if(n.value==="aborted")return rr;const o=this._def.schema._parseSync({data:a,path:r.path,parent:r});return o.status==="aborted"?rr:o.status==="dirty"||n.value==="dirty"?qv(o.value):o}}if(i.type==="refinement"){const a=o=>{const l=i.refinement(o,s);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?rr:(o.status==="dirty"&&n.dirty(),a(o.value),{status:n.value,value:o.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>o.status==="aborted"?rr:(o.status==="dirty"&&n.dirty(),a(o.value).then(()=>({status:n.value,value:o.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Fg(a))return rr;const o=i.transform(a.value,s);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:o}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Fg(a)?Promise.resolve(i.transform(a.value,s)).then(o=>({status:n.value,value:o})):rr);di.assertNever(i)}};Bd.create=(t,e,n)=>new Bd({schema:t,typeName:lr.ZodEffects,effect:e,...$r(n)});Bd.createWithPreprocess=(t,e,n)=>new Bd({schema:e,effect:{type:"preprocess",transform:t},typeName:lr.ZodEffects,...$r(n)});let If=class extends jr{_parse(e){return this._getType(e)===an.undefined?Il(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};If.create=(t,e)=>new If({innerType:t,typeName:lr.ZodOptional,...$r(e)});let cm=class extends jr{_parse(e){return this._getType(e)===an.null?Il(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};cm.create=(t,e)=>new cm({innerType:t,typeName:lr.ZodNullable,...$r(e)});let Nw=class extends jr{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===an.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Nw.create=(t,e)=>new Nw({innerType:t,typeName:lr.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...$r(e)});let Rw=class extends jr{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return _w(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Lu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Lu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Rw.create=(t,e)=>new Rw({innerType:t,typeName:lr.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...$r(e)});let OE=class extends jr{_parse(e){if(this._getType(e)!==an.nan){const r=this._getOrReturnCtx(e);return Yt(r,{code:St.invalid_type,expected:an.nan,received:r.parsedType}),rr}return{status:"valid",value:e.data}}};OE.create=t=>new OE({typeName:lr.ZodNaN,...$r(t)});const vsn=Symbol("zod_brand");let rJ=class extends jr{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},iJ=class iMe extends jr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?rr:s.status==="dirty"?(n.dirty(),qv(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?rr:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(e,n){return new iMe({in:e,out:n,typeName:lr.ZodPipeline})}},Lw=class extends jr{_parse(e){const n=this._def.innerType._parse(e),r=i=>(Fg(i)&&(i.value=Object.freeze(i.value)),i);return _w(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Lw.create=(t,e)=>new Lw({innerType:t,typeName:lr.ZodReadonly,...$r(e)});function g1e(t,e){const n=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof n=="string"?{message:n}:n}function sMe(t,e={},n){return t?ib.create().superRefine((r,i)=>{const s=t(r);if(s instanceof Promise)return s.then(a=>{if(!a){const o=g1e(e,r),l=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:l})}});if(!s){const a=g1e(e,r),o=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:o})}}):ib.create()}const ysn={object:Ju.lazycreate};var lr;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(lr||(lr={}));const bsn=(t,e={message:`Input not instance of ${t.name}`})=>sMe(n=>n instanceof t,e),Te=rb.create,fr=kw.create,xsn=OE.create,wsn=Sw.create,qn=Cw.create,_sn=Ew.create,ksn=$E.create,Ssn=$w.create,Csn=Tw.create,um=ib.create,Esn=cg.create,$sn=kp.create,Tsn=TE.create,Kn=Bg.create,Yn=Ju.create,Isn=Ju.strictCreate,Ja=Iw.create,Asn=XDe.create,Osn=Aw.create,aMe=lm.create,Xa=tMe.create,Dsn=IE.create,Msn=AE.create,Nsn=nMe.create,Rsn=Ow.create,Af=Dw.create,Bm=f_.create,Lsn=Mw.create,Psn=sb.create,v1e=Bd.create,jsn=If.create,zsn=cm.create,Fsn=Bd.createWithPreprocess,Bsn=iJ.create,Usn=()=>Te().optional(),qsn=()=>fr().optional(),Hsn=()=>qn().optional(),Wsn={string:(t=>rb.create({...t,coerce:!0})),number:(t=>kw.create({...t,coerce:!0})),boolean:(t=>Cw.create({...t,coerce:!0})),bigint:(t=>Sw.create({...t,coerce:!0})),date:(t=>Ew.create({...t,coerce:!0}))},Vsn=rr,Hn=Object.freeze(Object.defineProperty({__proto__:null,BRAND:vsn,DIRTY:qv,EMPTY_PATH:Kin,INVALID:rr,NEVER:Vsn,OK:Il,ParseStatus:uc,Schema:jr,ZodAny:ib,ZodArray:Bg,ZodBigInt:Sw,ZodBoolean:Cw,ZodBranded:rJ,ZodCatch:Rw,ZodDate:Ew,ZodDefault:Nw,ZodDiscriminatedUnion:XDe,ZodEffects:Bd,ZodEnum:f_,ZodError:Lu,get ZodFirstPartyTypeKind(){return lr},ZodFunction:nMe,ZodIntersection:Aw,ZodIssueCode:St,ZodLazy:Ow,ZodLiteral:Dw,ZodMap:IE,ZodNaN:OE,ZodNativeEnum:Mw,ZodNever:kp,ZodNull:Tw,ZodNullable:cm,ZodNumber:kw,ZodObject:Ju,ZodOptional:If,ZodParsedType:an,ZodPipeline:iJ,ZodPromise:sb,ZodReadonly:Lw,ZodRecord:tMe,ZodSchema:jr,ZodSet:AE,ZodString:rb,ZodSymbol:$E,ZodTransformer:Bd,ZodTuple:lm,ZodType:jr,ZodUndefined:$w,ZodUnion:Iw,ZodUnknown:cg,ZodVoid:TE,addIssueToContext:Yt,any:um,array:Kn,bigint:wsn,boolean:qn,coerce:Wsn,custom:sMe,date:_sn,datetimeRegex:YDe,defaultErrorMap:nb,discriminatedUnion:Asn,effect:v1e,enum:Bm,function:Nsn,getErrorMap:CE,getParsedType:jh,instanceof:bsn,intersection:Osn,isAborted:QW,isAsync:_w,isDirty:eV,isValid:Fg,late:ysn,lazy:Rsn,literal:Af,makeIssue:EE,map:Dsn,nan:xsn,nativeEnum:Lsn,never:$sn,null:Csn,nullable:zsn,number:fr,object:Yn,get objectUtil(){return XW},oboolean:Hsn,onumber:qsn,optional:jsn,ostring:Usn,pipeline:Bsn,preprocess:Fsn,promise:Psn,quotelessJson:Zin,record:Xa,set:Msn,setErrorMap:Gin,strictObject:Isn,string:Te,symbol:ksn,transformer:v1e,tuple:aMe,undefined:Ssn,union:Ja,unknown:Esn,get util(){return di},void:Tsn},Symbol.toStringTag,{value:"Module"})),sJ=Symbol.for("yaml.alias"),oV=Symbol.for("yaml.document"),z0=Symbol.for("yaml.map"),oMe=Symbol.for("yaml.pair"),Wf=Symbol.for("yaml.scalar"),p5=Symbol.for("yaml.seq"),Xu=Symbol.for("yaml.node.type"),b2=t=>!!t&&typeof t=="object"&&t[Xu]===sJ,h_=t=>!!t&&typeof t=="object"&&t[Xu]===oV,p_=t=>!!t&&typeof t=="object"&&t[Xu]===z0,ca=t=>!!t&&typeof t=="object"&&t[Xu]===oMe,ls=t=>!!t&&typeof t=="object"&&t[Xu]===Wf,m_=t=>!!t&&typeof t=="object"&&t[Xu]===p5;function ia(t){if(t&&typeof t=="object")switch(t[Xu]){case z0:case p5:return!0}return!1}function aa(t){if(t&&typeof t=="object")switch(t[Xu]){case sJ:case z0:case Wf:case p5:return!0}return!1}const lMe=t=>(ls(t)||ia(t))&&!!t.anchor,S1=Symbol("break visit"),Zsn=Symbol("skip children"),mx=Symbol("remove node");function m5(t,e){const n=Gsn(e);h_(t)?Hv(null,t.contents,n,Object.freeze([t]))===mx&&(t.contents=null):Hv(null,t,n,Object.freeze([]))}m5.BREAK=S1;m5.SKIP=Zsn;m5.REMOVE=mx;function Hv(t,e,n,r){const i=Ksn(t,e,n,r);if(aa(i)||ca(i))return Ysn(t,r,i),Hv(t,i,n,r);if(typeof i!="symbol"){if(ia(e)){r=Object.freeze(r.concat(e));for(let s=0;st.replace(/[!,[\]{}]/g,e=>Jsn[e]);class dl{constructor(e,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},dl.defaultYaml,e),this.tags=Object.assign({},dl.defaultTags,n)}clone(){const e=new dl(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){const e=new dl(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:dl.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},dl.defaultTags);break}return e}add(e,n){this.atNextDocument&&(this.yaml={explicit:dl.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},dl.defaultTags),this.atNextDocument=!1);const r=e.trim().split(/[ \t]+/),i=r.shift();switch(i){case"%TAG":{if(r.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;const[s,a]=r;return this.tags[s]=a,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=r;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const a=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,a),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,n){if(e==="!")return"!";if(e[0]!=="!")return n(`Not a valid tag: ${e}`),null;if(e[1]==="<"){const a=e.slice(2,-1);return a==="!"||a==="!!"?(n(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&n("Verbatim tags must end with a >"),a)}const[,r,i]=e.match(/^(.*!)([^!]*)$/s);i||n(`The ${e} tag has no suffix`);const s=this.tags[r];if(s)try{return s+decodeURIComponent(i)}catch(a){return n(String(a)),null}return r==="!"?e:(n(`Could not resolve tag: ${e}`),null)}tagString(e){for(const[n,r]of Object.entries(this.tags))if(e.startsWith(r))return n+Xsn(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags);let i;if(e&&r.length>0&&aa(e.contents)){const s={};m5(e.contents,(a,o)=>{aa(o)&&o.tag&&(s[o.tag]=!0)}),i=Object.keys(s)}else i=[];for(const[s,a]of r)s==="!!"&&a==="tag:yaml.org,2002:"||(!e||i.some(o=>o.startsWith(a)))&&n.push(`%TAG ${s} ${a}`);return n.join(` +`)}}dl.defaultYaml={explicit:!1,version:"1.2"};dl.defaultTags={"!!":"tag:yaml.org,2002:"};function cMe(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(n)}return!0}function uMe(t){const e=new Set;return m5(t,{Value(n,r){r.anchor&&e.add(r.anchor)}}),e}function dMe(t,e){for(let n=1;;++n){const r=`${t}${n}`;if(!e.has(r))return r}}function Qsn(t,e){const n=[],r=new Map;let i=null;return{onAnchor:s=>{n.push(s),i??(i=uMe(t));const a=dMe(e,i);return i.add(a),a},setAnchors:()=>{for(const s of n){const a=r.get(s);if(typeof a=="object"&&a.anchor&&(ls(a.node)||ia(a.node)))a.node.anchor=a.anchor;else{const o=new Error("Failed to resolve repeated object (this should not happen)");throw o.source=s,o}}},sourceObjects:r}}function Wv(t,e,n,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let i=0,s=r.length;iPu(r,String(i),n));if(t&&typeof t.toJSON=="function"){if(!n||!lMe(t))return t.toJSON(e,n);const r={aliasCount:0,count:1,res:void 0};n.anchors.set(t,r),n.onCreate=s=>{r.res=s,delete n.onCreate};const i=t.toJSON(e,n);return n.onCreate&&n.onCreate(i),i}return typeof t=="bigint"&&!(n!=null&&n.keep)?Number(t):t}class aJ{constructor(e){Object.defineProperty(this,Xu,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:s}={}){if(!h_(e))throw new TypeError("A document argument is required");const a={anchors:new Map,doc:e,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},o=Pu(this,"",a);if(typeof i=="function")for(const{count:l,res:c}of a.anchors.values())i(c,l);return typeof s=="function"?Wv(s,{"":o},"",o):o}}class oJ extends aJ{constructor(e){super(sJ),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,n){let r;n!=null&&n.aliasResolveCache?r=n.aliasResolveCache:(r=[],m5(e,{Node:(s,a)=>{(b2(a)||lMe(a))&&r.push(a)}}),n&&(n.aliasResolveCache=r));let i;for(const s of r){if(s===this)break;s.anchor===this.source&&(i=s)}return i}toJSON(e,n){if(!n)return{source:this.source};const{anchors:r,doc:i,maxAliasCount:s}=n,a=this.resolve(i,n);if(!a){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let o=r.get(a);if(o||(Pu(a,null,n),o=r.get(a)),(o==null?void 0:o.res)===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=f9(i,a,r)),o.count*o.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return o.res}toString(e,n,r){const i=`*${this.source}`;if(e){if(cMe(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(e.implicitKey)return`${i} `}return i}}function f9(t,e,n){if(b2(e)){const r=e.resolve(t),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(ia(e)){let r=0;for(const i of e.items){const s=f9(t,i,n);s>r&&(r=s)}return r}else if(ca(e)){const r=f9(t,e.key,n),i=f9(t,e.value,n);return Math.max(r,i)}return 1}const fMe=t=>!t||typeof t!="function"&&typeof t!="object";class Cr extends aJ{constructor(e){super(Wf),this.value=e}toJSON(e,n){return n!=null&&n.keep?this.value:Pu(this.value,e,n)}toString(){return String(this.value)}}Cr.BLOCK_FOLDED="BLOCK_FOLDED";Cr.BLOCK_LITERAL="BLOCK_LITERAL";Cr.PLAIN="PLAIN";Cr.QUOTE_DOUBLE="QUOTE_DOUBLE";Cr.QUOTE_SINGLE="QUOTE_SINGLE";const ean="tag:yaml.org,2002:";function tan(t,e,n){if(e){const r=n.filter(s=>s.tag===e),i=r.find(s=>!s.format)??r[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return n.find(r=>{var i;return((i=r.identify)==null?void 0:i.call(r,t))&&!r.format})}function Pw(t,e,n){var d,f,h;if(h_(t)&&(t=t.contents),aa(t))return t;if(ca(t)){const m=(f=(d=n.schema[z0]).createNode)==null?void 0:f.call(d,n.schema,null,n);return m.items.push(t),m}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());const{aliasDuplicateObjects:r,onAnchor:i,onTagObj:s,schema:a,sourceObjects:o}=n;let l;if(r&&t&&typeof t=="object"){if(l=o.get(t),l)return l.anchor??(l.anchor=i(t)),new oJ(l.anchor);l={anchor:null,node:null},o.set(t,l)}e!=null&&e.startsWith("!!")&&(e=ean+e.slice(2));let c=tan(t,e,a.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){const m=new Cr(t);return l&&(l.node=m),m}c=t instanceof Map?a[z0]:Symbol.iterator in Object(t)?a[p5]:a[z0]}s&&(s(c),delete n.onTagObj);const u=c!=null&&c.createNode?c.createNode(n.schema,t,n):typeof((h=c==null?void 0:c.nodeClass)==null?void 0:h.from)=="function"?c.nodeClass.from(n.schema,t,n):new Cr(t);return e?u.tag=e:c.default||(u.tag=c.tag),l&&(l.node=u),u}function DE(t,e,n){let r=n;for(let i=e.length-1;i>=0;--i){const s=e[i];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const a=[];a[s]=r,r=a}else r=new Map([[s,r]])}return Pw(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}const D4=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done;class hMe extends aJ{constructor(e,n){super(e),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(e){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(n.schema=e),n.items=n.items.map(r=>aa(r)||ca(r)?r.clone(e):r),this.range&&(n.range=this.range.slice()),n}addIn(e,n){if(D4(e))this.add(n);else{const[r,...i]=e,s=this.get(r,!0);if(ia(s))s.addIn(i,n);else if(s===void 0&&this.schema)this.set(r,DE(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}deleteIn(e){const[n,...r]=e;if(r.length===0)return this.delete(n);const i=this.get(n,!0);if(ia(i))return i.deleteIn(r);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}getIn(e,n){const[r,...i]=e,s=this.get(r,!0);return i.length===0?!n&&ls(s)?s.value:s:ia(s)?s.getIn(i,n):void 0}hasAllNullValues(e){return this.items.every(n=>{if(!ca(n))return!1;const r=n.value;return r==null||e&&ls(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){const[n,...r]=e;if(r.length===0)return this.has(n);const i=this.get(n,!0);return ia(i)?i.hasIn(r):!1}setIn(e,n){const[r,...i]=e;if(i.length===0)this.set(r,n);else{const s=this.get(r,!0);if(ia(s))s.setIn(i,n);else if(s===void 0&&this.schema)this.set(r,DE(this.schema,i,n));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${i}`)}}}const nan=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function Gh(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}const H1=(t,e,n)=>t.endsWith(` +`)?Gh(n,e):n.includes(` +`)?` +`+Gh(n,e):(t.endsWith(" ")?"":" ")+n,pMe="flow",lV="block",h9="quoted";function pI(t,e,n="flow",{indentAtStart:r,lineWidth:i=80,minContentWidth:s=20,onFold:a,onOverflow:o}={}){if(!i||i<0)return t;ii-Math.max(2,s)?c.push(0):d=i-r);let f,h,m=!1,p=-1,v=-1,x=-1;n===lV&&(p=y1e(t,p,e.length),p!==-1&&(d=p+l));for(let E;E=t[p+=1];){if(n===h9&&E==="\\"){switch(v=p,t[p+1]){case"x":p+=3;break;case"u":p+=5;break;case"U":p+=9;break;default:p+=1}x=p}if(E===` +`)n===lV&&(p=y1e(t,p,e.length)),d=p+e.length+l,f=void 0;else{if(E===" "&&h&&h!==" "&&h!==` +`&&h!==" "){const S=t[p+1];S&&S!==" "&&S!==` +`&&S!==" "&&(f=p)}if(p>=d)if(f)c.push(f),d=f+l,f=void 0;else if(n===h9){for(;h===" "||h===" ";)h=E,E=t[p+=1],m=!0;const S=p>x+1?p-2:v-1;if(u[S])return t;c.push(S),u[S]=!0,d=S+l,f=void 0}else m=!0}h=E}if(m&&o&&o(),c.length===0)return t;a&&a();let w=t.slice(0,c[0]);for(let E=0;E({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),gI=t=>/^(%|---|\.\.\.)/m.test(t);function ran(t,e,n){if(!e||e<0)return!1;const r=e-n,i=t.length;if(i<=r)return!1;for(let s=0,a=0;sr)return!0;if(a=s+1,i-a<=r)return!1}return!0}function gx(t,e){const n=JSON.stringify(t);if(e.options.doubleQuotedAsJSON)return n;const{implicitKey:r}=e,i=e.options.doubleQuotedMinMultiLineLength,s=e.indent||(gI(t)?" ":"");let a="",o=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(a+=n.slice(o,l)+"\\ ",l+=1,o=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{a+=n.slice(o,l);const u=n.substr(l+2,4);switch(u){case"0000":a+="\\0";break;case"0007":a+="\\a";break;case"000b":a+="\\v";break;case"001b":a+="\\e";break;case"0085":a+="\\N";break;case"00a0":a+="\\_";break;case"2028":a+="\\L";break;case"2029":a+="\\P";break;default:u.substr(0,2)==="00"?a+="\\x"+u.substr(2):a+=n.substr(l,6)}l+=5,o=l+1}break;case"n":if(r||n[l+2]==='"'||n.length +`;let d,f;for(f=n.length;f>0;--f){const _=n[f-1];if(_!==` +`&&_!==" "&&_!==" ")break}let h=n.substring(f);const m=h.indexOf(` +`);m===-1?d="-":n===h||m!==h.length-1?(d="+",s&&s()):d="",h&&(n=n.slice(0,-h.length),h[h.length-1]===` +`&&(h=h.slice(0,-1)),h=h.replace(uV,`$&${c}`));let p=!1,v,x=-1;for(v=0;v{C=!0});const M=pI(`${w}${_}${h}`,c,lV,T);if(!C)return`>${S} +${c}${M}`}return n=n.replace(/\n+/g,`$&${c}`),`|${S} +${c}${w}${n}${h}`}function ian(t,e,n,r){const{type:i,value:s}=t,{actualString:a,implicitKey:o,indent:l,indentStep:c,inFlow:u}=e;if(o&&s.includes(` +`)||u&&/[[\]{},]/.test(s))return Vv(s,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return o||u||!s.includes(` +`)?Vv(s,e):p9(t,e,n,r);if(!o&&!u&&i!==Cr.PLAIN&&s.includes(` +`))return p9(t,e,n,r);if(gI(s)){if(l==="")return e.forceBlockIndent=!0,p9(t,e,n,r);if(o&&l===c)return Vv(s,e)}const d=s.replace(/\n+/g,`$& +${l}`);if(a){const f=p=>{var v;return p.default&&p.tag!=="tag:yaml.org,2002:str"&&((v=p.test)==null?void 0:v.test(d))},{compat:h,tags:m}=e.doc.schema;if(m.some(f)||h!=null&&h.some(f))return Vv(s,e)}return o?d:pI(d,l,pMe,mI(e,!1))}function lJ(t,e,n,r){const{implicitKey:i,inFlow:s}=e,a=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)});let{type:o}=t;o!==Cr.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(a.value)&&(o=Cr.QUOTE_DOUBLE);const l=u=>{switch(u){case Cr.BLOCK_FOLDED:case Cr.BLOCK_LITERAL:return i||s?Vv(a.value,e):p9(a,e,n,r);case Cr.QUOTE_DOUBLE:return gx(a.value,e);case Cr.QUOTE_SINGLE:return cV(a.value,e);case Cr.PLAIN:return ian(a,e,n,r);default:return null}};let c=l(o);if(c===null){const{defaultKeyType:u,defaultStringType:d}=e.options,f=i&&u||d;if(c=l(f),c===null)throw new Error(`Unsupported default string type ${f}`)}return c}function mMe(t,e){const n=Object.assign({blockQuote:!0,commentString:nan,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},t.schema.toStringOptions,e);let r;switch(n.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:t,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:r,options:n}}function san(t,e){var i;if(e.tag){const s=t.filter(a=>a.tag===e.tag);if(s.length>0)return s.find(a=>a.format===e.format)??s[0]}let n,r;if(ls(e)){r=e.value;let s=t.filter(a=>{var o;return(o=a.identify)==null?void 0:o.call(a,r)});if(s.length>1){const a=s.filter(o=>o.test);a.length>0&&(s=a)}n=s.find(a=>a.format===e.format)??s.find(a=>!a.format)}else r=e,n=t.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!n){const s=((i=r==null?void 0:r.constructor)==null?void 0:i.name)??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return n}function aan(t,e,{anchors:n,doc:r}){if(!r.directives)return"";const i=[],s=(ls(t)||ia(t))&&t.anchor;s&&cMe(s)&&(n.add(s),i.push(`&${s}`));const a=t.tag??(e.default?null:e.tag);return a&&i.push(r.directives.tagString(a)),i.join(" ")}function ab(t,e,n,r){var l;if(ca(t))return t.toString(e,n,r);if(b2(t)){if(e.doc.directives)return t.toString(e);if((l=e.resolvedAliases)!=null&&l.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(t):e.resolvedAliases=new Set([t]),t=t.resolve(e.doc)}let i;const s=aa(t)?t:e.doc.createNode(t,{onTagObj:c=>i=c});i??(i=san(e.doc.schema.tags,s));const a=aan(s,i,e);a.length>0&&(e.indentAtStart=(e.indentAtStart??0)+a.length+1);const o=typeof i.stringify=="function"?i.stringify(s,e,n,r):ls(s)?lJ(s,e,n,r):s.toString(e,n,r);return a?ls(s)||o[0]==="{"||o[0]==="["?`${a} ${o}`:`${a} +${e.indent}${o}`:o}function oan({key:t,value:e},n,r,i){const{allNullValues:s,doc:a,indent:o,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:d}}=n;let f=aa(t)&&t.comment||null;if(d){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(ia(t)||!aa(t)&&typeof t=="object"){const T="With simple keys, collection cannot be used as a key value";throw new Error(T)}}let h=!d&&(!t||f&&e==null&&!n.inFlow||ia(t)||(ls(t)?t.type===Cr.BLOCK_FOLDED||t.type===Cr.BLOCK_LITERAL:typeof t=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!h&&(d||!s),indent:o+l});let m=!1,p=!1,v=ab(t,n,()=>m=!0,()=>p=!0);if(!h&&!n.inFlow&&v.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(n.inFlow){if(s||e==null)return m&&r&&r(),v===""?"?":h?`? ${v}`:v}else if(s&&!d||e==null&&h)return v=`? ${v}`,f&&!m?v+=H1(v,n.indent,c(f)):p&&i&&i(),v;m&&(f=null),h?(f&&(v+=H1(v,n.indent,c(f))),v=`? ${v} +${o}:`):(v=`${v}:`,f&&(v+=H1(v,n.indent,c(f))));let x,w,E;aa(e)?(x=!!e.spaceBefore,w=e.commentBefore,E=e.comment):(x=!1,w=null,E=null,e&&typeof e=="object"&&(e=a.createNode(e))),n.implicitKey=!1,!h&&!f&&ls(e)&&(n.indentAtStart=v.length+1),p=!1,!u&&l.length>=2&&!n.inFlow&&!h&&m_(e)&&!e.flow&&!e.tag&&!e.anchor&&(n.indent=n.indent.substring(2));let S=!1;const _=ab(e,n,()=>S=!0,()=>p=!0);let C=" ";if(f||x||w){if(C=x?` +`:"",w){const T=c(w);C+=` +${Gh(T,n.indent)}`}_===""&&!n.inFlow?C===` +`&&E&&(C=` + +`):C+=` +${n.indent}`}else if(!h&&ia(e)){const T=_[0],M=_.indexOf(` +`),A=M!==-1,$=n.inFlow??e.flow??e.items.length===0;if(A||!$){let O=!1;if(A&&(T==="&"||T==="!")){let D=_.indexOf(" ");T==="&"&&D!==-1&&Dt===qS||typeof t=="symbol"&&t.description===qS,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Cr(Symbol(qS)),{addToJSMap:vMe}),stringify:()=>qS},lan=(t,e)=>(sp.identify(e)||ls(e)&&(!e.type||e.type===Cr.PLAIN)&&sp.identify(e.value))&&(t==null?void 0:t.doc.schema.tags.some(n=>n.tag===sp.tag&&n.default));function vMe(t,e,n){if(n=t&&b2(n)?n.resolve(t.doc):n,m_(n))for(const r of n.items)Oj(t,e,r);else if(Array.isArray(n))for(const r of n)Oj(t,e,r);else Oj(t,e,n)}function Oj(t,e,n){const r=t&&b2(n)?n.resolve(t.doc):n;if(!p_(r))throw new Error("Merge sources must be maps or map aliases");const i=r.toJSON(null,t,Map);for(const[s,a]of i)e instanceof Map?e.has(s)||e.set(s,a):e instanceof Set?e.add(s):Object.prototype.hasOwnProperty.call(e,s)||Object.defineProperty(e,s,{value:a,writable:!0,enumerable:!0,configurable:!0});return e}function yMe(t,e,{key:n,value:r}){if(aa(n)&&n.addToJSMap)n.addToJSMap(t,e,r);else if(lan(t,n))vMe(t,e,r);else{const i=Pu(n,"",t);if(e instanceof Map)e.set(i,Pu(r,i,t));else if(e instanceof Set)e.add(i);else{const s=can(n,i,t),a=Pu(r,s,t);s in e?Object.defineProperty(e,s,{value:a,writable:!0,enumerable:!0,configurable:!0}):e[s]=a}}return e}function can(t,e,n){if(e===null)return"";if(typeof e!="object")return String(e);if(aa(t)&&(n!=null&&n.doc)){const r=mMe(n.doc,{});r.anchors=new Set;for(const s of n.anchors.keys())r.anchors.add(s.anchor);r.inFlow=!0,r.inStringifyKey=!0;const i=t.toString(r);if(!n.mapKeyWarned){let s=JSON.stringify(i);s.length>40&&(s=s.substring(0,36)+'..."'),gMe(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(e)}function cJ(t,e,n){const r=Pw(t,void 0,n),i=Pw(e,void 0,n);return new xl(r,i)}class xl{constructor(e,n=null){Object.defineProperty(this,Xu,{value:oMe}),this.key=e,this.value=n}clone(e){let{key:n,value:r}=this;return aa(n)&&(n=n.clone(e)),aa(r)&&(r=r.clone(e)),new xl(n,r)}toJSON(e,n){const r=n!=null&&n.mapAsMap?new Map:{};return yMe(n,r,this)}toString(e,n,r){return e!=null&&e.doc?oan(this,e,n,r):JSON.stringify(this)}}function bMe(t,e,n){return(e.inFlow??t.flow?dan:uan)(t,e,n)}function uan({comment:t,items:e},n,{blockItemPrefix:r,flowChars:i,itemIndent:s,onChompKeep:a,onComment:o}){const{indent:l,options:{commentString:c}}=n,u=Object.assign({},n,{indent:s,type:null});let d=!1;const f=[];for(let m=0;mv=null,()=>d=!0);v&&(x+=H1(x,s,c(v))),d&&v&&(d=!1),f.push(r+x)}let h;if(f.length===0)h=i.start+i.end;else{h=f[0];for(let m=1;mv=null);mu||x.includes(` +`))&&(c=!0),d.push(x),u=d.length}const{start:f,end:h}=n;if(d.length===0)return f+h;if(!c){const m=d.reduce((p,v)=>p+v.length+2,2);c=e.options.lineWidth>0&&m>e.options.lineWidth}if(c){let m=f;for(const p of d)m+=p?` +${s}${i}${p}`:` +`;return`${m} +${i}${h}`}else return`${f}${a}${d.join(" ")}${a}${h}`}function ME({indent:t,options:{commentString:e}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,"")),r){const s=Gh(e(r),t);n.push(s.trimStart())}}function W1(t,e){const n=ls(e)?e.value:e;for(const r of t)if(ca(r)&&(r.key===e||r.key===n||ls(r.key)&&r.key.value===n))return r}class ku extends hMe{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(z0,e),this.items=[]}static from(e,n,r){const{keepUndefined:i,replacer:s}=r,a=new this(e),o=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||i)&&a.items.push(cJ(l,c,r))};if(n instanceof Map)for(const[l,c]of n)o(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))o(l,n[l]);return typeof e.sortMapEntries=="function"&&a.items.sort(e.sortMapEntries),a}add(e,n){var a;let r;ca(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new xl(e,e==null?void 0:e.value):r=new xl(e.key,e.value);const i=W1(this.items,r.key),s=(a=this.schema)==null?void 0:a.sortMapEntries;if(i){if(!n)throw new Error(`Key ${r.key} already set`);ls(i.value)&&fMe(r.value)?i.value.value=r.value:i.value=r.value}else if(s){const o=this.items.findIndex(l=>s(r,l)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(e){const n=W1(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){const r=W1(this.items,e),i=r==null?void 0:r.value;return(!n&&ls(i)?i.value:i)??void 0}has(e){return!!W1(this.items,e)}set(e,n){this.add(new xl(e,n),!0)}toJSON(e,n,r){const i=r?new r:n!=null&&n.mapAsMap?new Map:{};n!=null&&n.onCreate&&n.onCreate(i);for(const s of this.items)yMe(n,i,s);return i}toString(e,n,r){if(!e)return JSON.stringify(this);for(const i of this.items)if(!ca(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),bMe(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:n})}}const g5={collection:"map",default:!0,nodeClass:ku,tag:"tag:yaml.org,2002:map",resolve(t,e){return p_(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,n)=>ku.from(t,e,n)};class Ug extends hMe{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(p5,e),this.items=[]}add(e){this.items.push(e)}delete(e){const n=HS(e);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(e,n){const r=HS(e);if(typeof r!="number")return;const i=this.items[r];return!n&&ls(i)?i.value:i}has(e){const n=HS(e);return typeof n=="number"&&n=0?e:null}const v5={collection:"seq",default:!0,nodeClass:Ug,tag:"tag:yaml.org,2002:seq",resolve(t,e){return m_(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,n)=>Ug.from(t,e,n)},vI={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,e,n,r){return e=Object.assign({actualString:!0},e),lJ(t,e,n,r)}},yI={identify:t=>t==null,createNode:()=>new Cr(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Cr(null),stringify:({source:t},e)=>typeof t=="string"&&yI.test.test(t)?t:e.options.nullStr},uJ={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new Cr(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},n){if(t&&uJ.test.test(t)){const r=t[0]==="t"||t[0]==="T";if(e===r)return t}return e?n.options.trueStr:n.options.falseStr}};function Kd({format:t,minFractionDigits:e,tag:n,value:r}){if(typeof r=="bigint")return String(r);const i=typeof r=="number"?r:Number(r);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let s=Object.is(r,-0)?"-0":JSON.stringify(r);if(!t&&e&&(!n||n==="tag:yaml.org,2002:float")&&/^\d/.test(s)){let a=s.indexOf(".");a<0&&(a=s.length,s+=".");let o=e-(s.length-a-1);for(;o-- >0;)s+="0"}return s}const xMe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Kd},wMe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){const e=Number(t.value);return isFinite(e)?e.toExponential():Kd(t)}},_Me={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){const e=new Cr(parseFloat(t)),n=t.indexOf(".");return n!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-n-1),e},stringify:Kd},bI=t=>typeof t=="bigint"||Number.isInteger(t),dJ=(t,e,n,{intAsBigInt:r})=>r?BigInt(t):parseInt(t.substring(e),n);function kMe(t,e,n){const{value:r}=t;return bI(r)&&r>=0?n+r.toString(e):Kd(t)}const SMe={identify:t=>bI(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,n)=>dJ(t,2,8,n),stringify:t=>kMe(t,8,"0o")},CMe={identify:bI,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,n)=>dJ(t,0,10,n),stringify:Kd},EMe={identify:t=>bI(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,n)=>dJ(t,2,16,n),stringify:t=>kMe(t,16,"0x")},fan=[g5,v5,vI,yI,uJ,SMe,CMe,EMe,xMe,wMe,_Me];function b1e(t){return typeof t=="bigint"||Number.isInteger(t)}const WS=({value:t})=>JSON.stringify(t),han=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:WS},{identify:t=>t==null,createNode:()=>new Cr(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:WS},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:WS},{identify:b1e,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,e,{intAsBigInt:n})=>n?BigInt(t):parseInt(t,10),stringify:({value:t})=>b1e(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:WS}],pan={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},man=[g5,v5].concat(han,pan),fJ={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof atob=="function"){const n=atob(t.replace(/[\n\r]/g,"")),r=new Uint8Array(n.length);for(let i=0;i1&&e("Each pair must have its own sequence indicator");const i=r.items[0]||new xl(new Cr(null));if(r.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${r.commentBefore} +${i.key.commentBefore}`:r.commentBefore),r.comment){const s=i.value??i.key;s.comment=s.comment?`${r.comment} +${s.comment}`:r.comment}r=i}t.items[n]=ca(r)?r:new xl(r)}}else e("Expected a sequence for this tag");return t}function TMe(t,e,n){const{replacer:r}=n,i=new Ug(t);i.tag="tag:yaml.org,2002:pairs";let s=0;if(e&&Symbol.iterator in Object(e))for(let a of e){typeof r=="function"&&(a=r.call(e,String(s++),a));let o,l;if(Array.isArray(a))if(a.length===2)o=a[0],l=a[1];else throw new TypeError(`Expected [key, value] tuple: ${a}`);else if(a&&a instanceof Object){const c=Object.keys(a);if(c.length===1)o=c[0],l=a[o];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else o=a;i.items.push(cJ(o,l,n))}return i}const hJ={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:$Me,createNode:TMe};class oy extends Ug{constructor(){super(),this.add=ku.prototype.add.bind(this),this.delete=ku.prototype.delete.bind(this),this.get=ku.prototype.get.bind(this),this.has=ku.prototype.has.bind(this),this.set=ku.prototype.set.bind(this),this.tag=oy.tag}toJSON(e,n){if(!n)return super.toJSON(e);const r=new Map;n!=null&&n.onCreate&&n.onCreate(r);for(const i of this.items){let s,a;if(ca(i)?(s=Pu(i.key,"",n),a=Pu(i.value,s,n)):s=Pu(i,"",n),r.has(s))throw new Error("Ordered maps must not include duplicate keys");r.set(s,a)}return r}static from(e,n,r){const i=TMe(e,n,r),s=new this;return s.items=i.items,s}}oy.tag="tag:yaml.org,2002:omap";const pJ={collection:"seq",identify:t=>t instanceof Map,nodeClass:oy,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){const n=$Me(t,e),r=[];for(const{key:i}of n.items)ls(i)&&(r.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):r.push(i.value));return Object.assign(new oy,n)},createNode:(t,e,n)=>oy.from(t,e,n)};function IMe({value:t,source:e},n){return e&&(t?AMe:OMe).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}const AMe={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Cr(!0),stringify:IMe},OMe={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Cr(!1),stringify:IMe},gan={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Kd},van={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){const e=Number(t.value);return isFinite(e)?e.toExponential():Kd(t)}},yan={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){const e=new Cr(parseFloat(t.replace(/_/g,""))),n=t.indexOf(".");if(n!==-1){const r=t.substring(n+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:Kd},g_=t=>typeof t=="bigint"||Number.isInteger(t);function xI(t,e,n,{intAsBigInt:r}){const i=t[0];if((i==="-"||i==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),r){switch(n){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}const a=BigInt(t);return i==="-"?BigInt(-1)*a:a}const s=parseInt(t,n);return i==="-"?-1*s:s}function mJ(t,e,n){const{value:r}=t;if(g_(r)){const i=r.toString(e);return r<0?"-"+n+i.substr(1):n+i}return Kd(t)}const ban={identify:g_,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>xI(t,2,2,n),stringify:t=>mJ(t,2,"0b")},xan={identify:g_,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>xI(t,1,8,n),stringify:t=>mJ(t,8,"0")},wan={identify:g_,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>xI(t,0,10,n),stringify:Kd},_an={identify:g_,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>xI(t,2,16,n),stringify:t=>mJ(t,16,"0x")};class ly extends ku{constructor(e){super(e),this.tag=ly.tag}add(e){let n;ca(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new xl(e.key,null):n=new xl(e,null),W1(this.items,n.key)||this.items.push(n)}get(e,n){const r=W1(this.items,e);return!n&&ca(r)?ls(r.key)?r.key.value:r.key:r}set(e,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const r=W1(this.items,e);r&&!n?this.items.splice(this.items.indexOf(r),1):!r&&n&&this.items.push(new xl(e))}toJSON(e,n){return super.toJSON(e,n,Set)}toString(e,n,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),n,r);throw new Error("Set items must all have null values")}static from(e,n,r){const{replacer:i}=r,s=new this(e);if(n&&Symbol.iterator in Object(n))for(let a of n)typeof i=="function"&&(a=i.call(n,a,a)),s.items.push(cJ(a,null,r));return s}}ly.tag="tag:yaml.org,2002:set";const gJ={collection:"map",identify:t=>t instanceof Set,nodeClass:ly,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>ly.from(t,e,n),resolve(t,e){if(p_(t)){if(t.hasAllNullValues(!0))return Object.assign(new ly,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};function vJ(t,e){const n=t[0],r=n==="-"||n==="+"?t.substring(1):t,i=a=>e?BigInt(a):Number(a),s=r.replace(/_/g,"").split(":").reduce((a,o)=>a*i(60)+i(o),i(0));return n==="-"?i(-1)*s:s}function DMe(t){let{value:e}=t,n=a=>a;if(typeof e=="bigint")n=a=>BigInt(a);else if(isNaN(e)||!isFinite(e))return Kd(t);let r="";e<0&&(r="-",e*=n(-1));const i=n(60),s=[e%i];return e<60?s.unshift(0):(e=(e-s[0])/i,s.unshift(e%i),e>=60&&(e=(e-s[0])/i,s.unshift(e))),r+s.map(a=>String(a).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const MMe={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:n})=>vJ(t,n),stringify:DMe},NMe={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>vJ(t,!1),stringify:DMe},wI={identify:t=>t instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(t){const e=t.match(wI.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,r,i,s,a,o]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0;let c=Date.UTC(n,r-1,i,s||0,a||0,o||0,l);const u=e[8];if(u&&u!=="Z"){let d=vJ(u,!1);Math.abs(d)<30&&(d*=60),c-=6e4*d}return new Date(c)},stringify:({value:t})=>(t==null?void 0:t.toISOString().replace(/(T00:00:00)?\.000Z$/,""))??""},x1e=[g5,v5,vI,yI,AMe,OMe,ban,xan,wan,_an,gan,van,yan,fJ,sp,pJ,hJ,gJ,MMe,NMe,wI],w1e=new Map([["core",fan],["failsafe",[g5,v5,vI]],["json",man],["yaml11",x1e],["yaml-1.1",x1e]]),_1e={binary:fJ,bool:uJ,float:_Me,floatExp:wMe,floatNaN:xMe,floatTime:NMe,int:CMe,intHex:EMe,intOct:SMe,intTime:MMe,map:g5,merge:sp,null:yI,omap:pJ,pairs:hJ,seq:v5,set:gJ,timestamp:wI},kan={"tag:yaml.org,2002:binary":fJ,"tag:yaml.org,2002:merge":sp,"tag:yaml.org,2002:omap":pJ,"tag:yaml.org,2002:pairs":hJ,"tag:yaml.org,2002:set":gJ,"tag:yaml.org,2002:timestamp":wI};function Dj(t,e,n){const r=w1e.get(e);if(r&&!t)return n&&!r.includes(sp)?r.concat(sp):r.slice();let i=r;if(!i)if(Array.isArray(t))i=[];else{const s=Array.from(w1e.keys()).filter(a=>a!=="yaml11").map(a=>JSON.stringify(a)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${s} or define customTags array`)}if(Array.isArray(t))for(const s of t)i=i.concat(s);else typeof t=="function"&&(i=t(i.slice()));return n&&(i=i.concat(sp)),i.reduce((s,a)=>{const o=typeof a=="string"?_1e[a]:a;if(!o){const l=JSON.stringify(a),c=Object.keys(_1e).map(u=>JSON.stringify(u)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(o)||s.push(o),s},[])}const San=(t,e)=>t.keye.key?1:0;class yJ{constructor({compat:e,customTags:n,merge:r,resolveKnownTags:i,schema:s,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?Dj(e,"compat"):e?Dj(null,e):null,this.name=typeof s=="string"&&s||"core",this.knownTags=i?kan:{},this.tags=Dj(n,this.name,r),this.toStringOptions=o??null,Object.defineProperty(this,z0,{value:g5}),Object.defineProperty(this,Wf,{value:vI}),Object.defineProperty(this,p5,{value:v5}),this.sortMapEntries=typeof a=="function"?a:a===!0?San:null}clone(){const e=Object.create(yJ.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}}function Can(t,e){var l;const n=[];let r=e.directives===!0;if(e.directives!==!1&&t.directives){const c=t.directives.toString(t);c?(n.push(c),r=!0):t.directives.docStart&&(r=!0)}r&&n.push("---");const i=mMe(t,e),{commentString:s}=i.options;if(t.commentBefore){n.length!==1&&n.unshift("");const c=s(t.commentBefore);n.unshift(Gh(c,""))}let a=!1,o=null;if(t.contents){if(aa(t.contents)){if(t.contents.spaceBefore&&r&&n.push(""),t.contents.commentBefore){const d=s(t.contents.commentBefore);n.push(Gh(d,""))}i.forceBlockIndent=!!t.comment,o=t.contents.comment}const c=o?void 0:()=>a=!0;let u=ab(t.contents,i,()=>o=null,c);o&&(u+=H1(u,"",s(o))),(u[0]==="|"||u[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${u}`:n.push(u)}else n.push(ab(t.contents,i));if((l=t.directives)!=null&&l.docEnd)if(t.comment){const c=s(t.comment);c.includes(` +`)?(n.push("..."),n.push(Gh(c,""))):n.push(`... ${c}`)}else n.push("...");else{let c=t.comment;c&&a&&(c=c.replace(/^\n+/,"")),c&&((!a||o)&&n[n.length-1]!==""&&n.push(""),n.push(Gh(s(c),"")))}return n.join(` +`)+` +`}let bJ=class RMe{constructor(e,n,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Xu,{value:oV});let i=null;typeof n=="function"||Array.isArray(n)?i=n:r===void 0&&n&&(r=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=s;let{version:a}=s;r!=null&&r._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new dl({version:a}),this.setSchema(a,r),this.contents=e===void 0?null:this.createNode(e,i,r)}clone(){const e=Object.create(RMe.prototype,{[Xu]:{value:oV}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=aa(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){sv(this.contents)&&this.contents.add(e)}addIn(e,n){sv(this.contents)&&this.contents.addIn(e,n)}createAlias(e,n){if(!e.anchor){const r=uMe(this);e.anchor=!n||r.has(n)?dMe(n||"a",r):n}return new oJ(e.anchor)}createNode(e,n,r){let i;if(typeof n=="function")e=n.call({"":e},"",e),i=n;else if(Array.isArray(n)){const v=w=>typeof w=="number"||w instanceof String||w instanceof Number,x=n.filter(v).map(String);x.length>0&&(n=n.concat(x)),i=n}else r===void 0&&n&&(r=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:a,flow:o,keepUndefined:l,onTagObj:c,tag:u}=r??{},{onAnchor:d,setAnchors:f,sourceObjects:h}=Qsn(this,a||"a"),m={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:d,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:h},p=Pw(e,u,m);return o&&ia(p)&&(p.flow=!0),f(),p}createPair(e,n,r={}){const i=this.createNode(e,null,r),s=this.createNode(n,null,r);return new xl(i,s)}delete(e){return sv(this.contents)?this.contents.delete(e):!1}deleteIn(e){return D4(e)?this.contents==null?!1:(this.contents=null,!0):sv(this.contents)?this.contents.deleteIn(e):!1}get(e,n){return ia(this.contents)?this.contents.get(e,n):void 0}getIn(e,n){return D4(e)?!n&&ls(this.contents)?this.contents.value:this.contents:ia(this.contents)?this.contents.getIn(e,n):void 0}has(e){return ia(this.contents)?this.contents.has(e):!1}hasIn(e){return D4(e)?this.contents!==void 0:ia(this.contents)?this.contents.hasIn(e):!1}set(e,n){this.contents==null?this.contents=DE(this.schema,[e],n):sv(this.contents)&&this.contents.set(e,n)}setIn(e,n){D4(e)?this.contents=n:this.contents==null?this.contents=DE(this.schema,Array.from(e),n):sv(this.contents)&&this.contents.setIn(e,n)}setSchema(e,n={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new dl({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new dl({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{const i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(r)this.schema=new yJ(Object.assign(r,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:n,mapAsMap:r,maxAliasCount:i,onAnchor:s,reviver:a}={}){const o={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Pu(this.contents,n??"",o);if(typeof s=="function")for(const{count:c,res:u}of o.anchors.values())s(u,c);return typeof a=="function"?Wv(a,{"":l},"",l):l}toJSON(e,n){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:n})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const n=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return Can(this,e)}};function sv(t){if(ia(t))return!0;throw new Error("Expected a YAML collection as document contents")}class LMe extends Error{constructor(e,n,r,i){super(),this.name=e,this.code=r,this.message=i,this.pos=n}}class M4 extends LMe{constructor(e,n,r){super("YAMLParseError",e,n,r)}}class Ean extends LMe{constructor(e,n,r){super("YAMLWarning",e,n,r)}}const k1e=(t,e)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(o=>e.linePos(o));const{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let s=i-1,a=t.substring(e.lineStarts[r-1],e.lineStarts[r]).replace(/[\n\r]+$/,"");if(s>=60&&a.length>80){const o=Math.min(s-39,a.length-79);a="…"+a.substring(o),s-=o-1}if(a.length>80&&(a=a.substring(0,79)+"…"),r>1&&/^ *$/.test(a.substring(0,s))){let o=t.substring(e.lineStarts[r-2],e.lineStarts[r-1]);o.length>80&&(o=o.substring(0,79)+`… +`),a=o+a}if(/[^ ]/.test(a)){let o=1;const l=n.linePos[1];(l==null?void 0:l.line)===r&&l.col>i&&(o=Math.max(1,Math.min(l.col-i,80-s)));const c=" ".repeat(s)+"^".repeat(o);n.message+=`: + +${a} +${c} +`}};function ob(t,{flow:e,indicator:n,next:r,offset:i,onError:s,parentIndent:a,startOnNewline:o}){let l=!1,c=o,u=o,d="",f="",h=!1,m=!1,p=null,v=null,x=null,w=null,E=null,S=null,_=null;for(const M of t)switch(m&&(M.type!=="space"&&M.type!=="newline"&&M.type!=="comma"&&s(M.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),p&&(c&&M.type!=="comment"&&M.type!=="newline"&&s(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),p=null),M.type){case"space":!e&&(n!=="doc-start"||(r==null?void 0:r.type)!=="flow-collection")&&M.source.includes(" ")&&(p=M),u=!0;break;case"comment":{u||s(M,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const A=M.source.substring(1)||" ";d?d+=f+A:d=A,f="",c=!1;break}case"newline":c?d?d+=M.source:(!S||n!=="seq-item-ind")&&(l=!0):f+=M.source,c=!0,h=!0,(v||x)&&(w=M),u=!0;break;case"anchor":v&&s(M,"MULTIPLE_ANCHORS","A node can have at most one anchor"),M.source.endsWith(":")&&s(M.offset+M.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),v=M,_??(_=M.offset),c=!1,u=!1,m=!0;break;case"tag":{x&&s(M,"MULTIPLE_TAGS","A node can have at most one tag"),x=M,_??(_=M.offset),c=!1,u=!1,m=!0;break}case n:(v||x)&&s(M,"BAD_PROP_ORDER",`Anchors and tags must be after the ${M.source} indicator`),S&&s(M,"UNEXPECTED_TOKEN",`Unexpected ${M.source} in ${e??"collection"}`),S=M,c=n==="seq-item-ind"||n==="explicit-key-ind",u=!1;break;case"comma":if(e){E&&s(M,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),E=M,c=!1,u=!1;break}default:s(M,"UNEXPECTED_TOKEN",`Unexpected ${M.type} token`),c=!1,u=!1}const C=t[t.length-1],T=C?C.offset+C.source.length:i;return m&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&s(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p&&(c&&p.indent<=a||(r==null?void 0:r.type)==="block-map"||(r==null?void 0:r.type)==="block-seq")&&s(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:E,found:S,spaceBefore:l,comment:d,hasNewline:h,anchor:v,tag:x,newlineAfterProp:w,end:T,start:_??T}}function jw(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(` +`))return!0;if(t.end){for(const e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(const e of t.items){for(const n of e.start)if(n.type==="newline")return!0;if(e.sep){for(const n of e.sep)if(n.type==="newline")return!0}if(jw(e.key)||jw(e.value))return!0}return!1;default:return!0}}function dV(t,e,n){if((e==null?void 0:e.type)==="flow-collection"){const r=e.end[0];r.indent===t&&(r.source==="]"||r.source==="}")&&jw(e)&&n(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function PMe(t,e,n){const{uniqueKeys:r}=t.options;if(r===!1)return!1;const i=typeof r=="function"?r:(s,a)=>s===a||ls(s)&&ls(a)&&s.value===a.value;return e.some(s=>i(s.key,n))}const S1e="All mapping items must start at the same column";function $an({composeNode:t,composeEmptyNode:e},n,r,i,s){var u;const a=(s==null?void 0:s.nodeClass)??ku,o=new a(n.schema);n.atRoot&&(n.atRoot=!1);let l=r.offset,c=null;for(const d of r.items){const{start:f,key:h,sep:m,value:p}=d,v=ob(f,{indicator:"explicit-key-ind",next:h??(m==null?void 0:m[0]),offset:l,onError:i,parentIndent:r.indent,startOnNewline:!0}),x=!v.found;if(x){if(h&&(h.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in h&&h.indent!==r.indent&&i(l,"BAD_INDENT",S1e)),!v.anchor&&!v.tag&&!m){c=v.end,v.comment&&(o.comment?o.comment+=` +`+v.comment:o.comment=v.comment);continue}(v.newlineAfterProp||jw(h))&&i(h??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((u=v.found)==null?void 0:u.indent)!==r.indent&&i(l,"BAD_INDENT",S1e);n.atKey=!0;const w=v.end,E=h?t(n,h,v,i):e(n,w,f,null,v,i);n.schema.compat&&dV(r.indent,h,i),n.atKey=!1,PMe(n,o.items,E)&&i(w,"DUPLICATE_KEY","Map keys must be unique");const S=ob(m??[],{indicator:"map-value-ind",next:p,offset:E.range[2],onError:i,parentIndent:r.indent,startOnNewline:!h||h.type==="block-scalar"});if(l=S.end,S.found){x&&((p==null?void 0:p.type)==="block-map"&&!S.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&v.startt&&(t.type==="block-map"||t.type==="block-seq");function Ian({composeNode:t,composeEmptyNode:e},n,r,i,s){var v;const a=r.start.source==="{",o=a?"flow map":"flow sequence",l=(s==null?void 0:s.nodeClass)??(a?ku:Ug),c=new l(n.schema);c.flow=!0;const u=n.atRoot;u&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let d=r.offset+r.start.source.length;for(let x=0;x0){const x=v_(m,p,n.options.strict,i);x.comment&&(c.comment?c.comment+=` +`+x.comment:c.comment=x.comment),c.range=[r.offset,p,x.offset]}else c.range=[r.offset,p,p];return c}function Rj(t,e,n,r,i,s){const a=n.type==="block-map"?$an(t,e,n,r,s):n.type==="block-seq"?Tan(t,e,n,r,s):Ian(t,e,n,r,s),o=a.constructor;return i==="!"||i===o.tagName?(a.tag=o.tagName,a):(i&&(a.tag=i),a)}function Aan(t,e,n,r,i){var f;const s=r.tag,a=s?e.directives.tagName(s.source,h=>i(s,"TAG_RESOLVE_FAILED",h)):null;if(n.type==="block-seq"){const{anchor:h,newlineAfterProp:m}=r,p=h&&s?h.offset>s.offset?h:s:h??s;p&&(!m||m.offseth.tag===a&&h.collection===o);if(!l){const h=e.schema.knownTags[a];if((h==null?void 0:h.collection)===o)e.schema.tags.push(Object.assign({},h,{default:!1})),l=h;else return h?i(s,"BAD_COLLECTION_TYPE",`${h.tag} used for ${o} collection, but expects ${h.collection??"scalar"}`,!0):i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${a}`,!0),Rj(t,e,n,i,a)}const c=Rj(t,e,n,i,a,l),u=((f=l.resolve)==null?void 0:f.call(l,c,h=>i(s,"TAG_RESOLVE_FAILED",h),e.options))??c,d=aa(u)?u:new Cr(u);return d.range=c.range,d.tag=a,l!=null&&l.format&&(d.format=l.format),d}function Oan(t,e,n){const r=e.offset,i=Dan(e,t.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[r,r,r]};const s=i.mode===">"?Cr.BLOCK_FOLDED:Cr.BLOCK_LITERAL,a=e.source?Man(e.source):[];let o=a.length;for(let p=a.length-1;p>=0;--p){const v=a[p][1];if(v===""||v==="\r")o=p;else break}if(o===0){const p=i.chomp==="+"&&a.length>0?` +`.repeat(Math.max(1,a.length-1)):"";let v=r+i.length;return e.source&&(v+=e.source.length),{value:p,type:s,comment:i.comment,range:[r,v,v]}}let l=e.indent+i.indent,c=e.offset+i.length,u=0;for(let p=0;pl&&(l=v.length);else{v.length=o;--p)a[p][0].length>l&&(o=p+1);let d="",f="",h=!1;for(let p=0;pl||x[0]===" "?(f===" "?f=` +`:!h&&f===` +`&&(f=` + +`),d+=f+v.slice(l)+x,f=` +`,h=!0):x===""?f===` +`?d+=` +`:f=` +`:(d+=f+x,f=" ",h=!1)}switch(i.chomp){case"-":break;case"+":for(let p=o;pn(r+f,h,m);switch(i){case"scalar":o=Cr.PLAIN,l=Ran(s,c);break;case"single-quoted-scalar":o=Cr.QUOTE_SINGLE,l=Lan(s,c);break;case"double-quoted-scalar":o=Cr.QUOTE_DOUBLE,l=Pan(s,c);break;default:return n(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[r,r+s.length,r+s.length]}}const u=r+s.length,d=v_(a,u,e,n);return{value:l,type:o,comment:d.comment,range:[r,u,d.offset]}}function Ran(t,e){let n="";switch(t[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${t[0]}`;break}case"@":case"`":{n=`reserved character ${t[0]}`;break}}return n&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),jMe(t)}function Lan(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),jMe(t.slice(1,-1)).replace(/''/g,"'")}function jMe(t){let e,n;try{e=new RegExp(`(.*?)(?s?t.slice(s,r+1):i)}else n+=i}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),n}function jan(t,e){let n="",r=t[e+1];for(;(r===" "||r===" "||r===` +`||r==="\r")&&!(r==="\r"&&t[e+2]!==` +`);)r===` +`&&(n+=` +`),e+=1,r=t[e+1];return n||(n=" "),{fold:n,offset:e}}const zan={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` +`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Fan(t,e,n,r){const i=t.substr(e,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(a)){const o=t.substr(e-2,n+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${o}`),o}return String.fromCodePoint(a)}function zMe(t,e,n,r){const{value:i,type:s,comment:a,range:o}=e.type==="block-scalar"?Oan(t,e,r):Nan(e,t.options.strict,r),l=n?t.directives.tagName(n.source,d=>r(n,"TAG_RESOLVE_FAILED",d)):null;let c;t.options.stringKeys&&t.atKey?c=t.schema[Wf]:l?c=Ban(t.schema,i,l,n,r):e.type==="scalar"?c=Uan(t,i,e,r):c=t.schema[Wf];let u;try{const d=c.resolve(i,f=>r(n??e,"TAG_RESOLVE_FAILED",f),t.options);u=ls(d)?d:new Cr(d)}catch(d){const f=d instanceof Error?d.message:String(d);r(n??e,"TAG_RESOLVE_FAILED",f),u=new Cr(i)}return u.range=o,u.source=i,s&&(u.type=s),l&&(u.tag=l),c.format&&(u.format=c.format),a&&(u.comment=a),u}function Ban(t,e,n,r,i){var o;if(n==="!")return t[Wf];const s=[];for(const l of t.tags)if(!l.collection&&l.tag===n)if(l.default&&l.test)s.push(l);else return l;for(const l of s)if((o=l.test)!=null&&o.test(e))return l;const a=t.knownTags[n];return a&&!a.collection?(t.tags.push(Object.assign({},a,{default:!1,test:void 0})),a):(i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),t[Wf])}function Uan({atKey:t,directives:e,schema:n},r,i,s){const a=n.tags.find(o=>{var l;return(o.default===!0||t&&o.default==="key")&&((l=o.test)==null?void 0:l.test(r))})||n[Wf];if(n.compat){const o=n.compat.find(l=>{var c;return l.default&&((c=l.test)==null?void 0:c.test(r))})??n[Wf];if(a.tag!==o.tag){const l=e.tagString(a.tag),c=e.tagString(o.tag),u=`Value may be parsed as either ${l} or ${c}`;s(i,"TAG_RESOLVE_FAILED",u,!0)}}return a}function qan(t,e,n){if(e){n??(n=e.length);for(let r=n-1;r>=0;--r){let i=e[r];switch(i.type){case"space":case"comment":case"newline":t-=i.source.length;continue}for(i=e[++r];(i==null?void 0:i.type)==="space";)t+=i.source.length,i=e[++r];break}}return t}const Han={composeNode:FMe,composeEmptyNode:xJ};function FMe(t,e,n,r){const i=t.atKey,{spaceBefore:s,comment:a,anchor:o,tag:l}=n;let c,u=!0;switch(e.type){case"alias":c=Wan(t,e,r),(o||l)&&r(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=zMe(t,e,l,r),o&&(c.anchor=o.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=Aan(Han,t,e,n,r),o&&(c.anchor=o.source.substring(1));break;default:{const d=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",d),c=xJ(t,e.offset,void 0,null,n,r),u=!1}}return o&&c.anchor===""&&r(o,"BAD_ALIAS","Anchor cannot be an empty string"),i&&t.options.stringKeys&&(!ls(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),a&&(e.type==="scalar"&&e.source===""?c.comment=a:c.commentBefore=a),t.options.keepSourceTokens&&u&&(c.srcToken=e),c}function xJ(t,e,n,r,{spaceBefore:i,comment:s,anchor:a,tag:o,end:l},c){const u={type:"scalar",offset:qan(e,n,r),indent:-1,source:""},d=zMe(t,u,o,c);return a&&(d.anchor=a.source.substring(1),d.anchor===""&&c(a,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(d.spaceBefore=!0),s&&(d.comment=s,d.range[2]=l),d}function Wan({options:t},{offset:e,source:n,end:r},i){const s=new oJ(n.substring(1));s.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&i(e+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const a=e+n.length,o=v_(r,a,t.strict,i);return s.range=[e,a,o.offset],o.comment&&(s.comment=o.comment),s}function Van(t,e,{offset:n,start:r,value:i,end:s},a){const o=Object.assign({_directives:e},t),l=new bJ(void 0,o),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=ob(r,{indicator:"doc-start",next:i??(s==null?void 0:s[0]),offset:n,onError:a,parentIndent:0,startOnNewline:!0});u.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!u.hasNewline&&a(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?FMe(c,i,u,a):xJ(c,u.end,r,null,u,a);const d=l.contents.range[2],f=v_(s,d,!1,a);return f.comment&&(l.comment=f.comment),l.range=[n,d,f.offset],l}function _3(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];const{offset:e,source:n}=t;return[e,e+(typeof n=="string"?n.length:1)]}function C1e(t){var i;let e="",n=!1,r=!1;for(let s=0;s{const a=_3(n);s?this.warnings.push(new Ean(a,r,i)):this.errors.push(new M4(a,r,i))},this.directives=new dl({version:e.version||"1.2"}),this.options=e}decorate(e,n){const{comment:r,afterEmptyLine:i}=C1e(this.prelude);if(r){const s=e.contents;if(n)e.comment=e.comment?`${e.comment} +${r}`:r;else if(i||e.directives.docStart||!s)e.commentBefore=r;else if(ia(s)&&!s.flow&&s.items.length>0){let a=s.items[0];ca(a)&&(a=a.key);const o=a.commentBefore;a.commentBefore=o?`${r} +${o}`:r}else{const a=s.commentBefore;s.commentBefore=a?`${r} +${a}`:r}}n?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:C1e(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,n=!1,r=-1){for(const i of e)yield*this.next(i);yield*this.end(n,r)}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(n,r,i)=>{const s=_3(e);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",r,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{const n=Van(this.options,this.directives,e,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const n=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,r=new M4(_3(e),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const r="Unexpected doc-end without preceding document";this.errors.push(new M4(_3(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;const n=v_(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const r=this.doc.comment;this.doc.comment=r?`${r} +${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new M4(_3(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){const r=Object.assign({_directives:this.directives},this.options),i=new bJ(void 0,r);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}}const BMe="\uFEFF",UMe="",qMe="",fV="";function Gan(t){switch(t){case BMe:return"byte-order-mark";case UMe:return"doc-mode";case qMe:return"flow-error-end";case fV:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +`:case`\r +`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(t[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function gd(t){switch(t){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}const E1e=new Set("0123456789ABCDEFabcdef"),Kan=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),VS=new Set(",[]{}"),Yan=new Set(` ,[]{} +\r `),Lj=t=>!t||Yan.has(t);class Jan{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,n=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!n;let r=this.next??"stream";for(;r&&(n||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos,n=this.buffer[e];for(;n===" "||n===" ";)n=this.buffer[++e];return!n||n==="#"||n===` +`?!0:n==="\r"?this.buffer[e+1]===` +`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let n=this.buffer[e];if(this.indentNext>0){let r=0;for(;n===" ";)n=this.buffer[++r+e];if(n==="\r"){const i=this.buffer[r+e+1];if(i===` +`||!i&&!this.atEnd)return e+r+1}return n===` +`||r>=this.indentNext||!n&&!this.atEnd?e+r:-1}if(n==="-"||n==="."){const r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&gd(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&ethis.indentValue&&!gd(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[e,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&gd(n)){const r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const e=this.getLine();if(e===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(e[n]){case"#":yield*this.pushCount(e.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Lj),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,n,r=-1;do e=yield*this.pushNewline(),e>0?(n=yield*this.pushSpaces(!1),this.indentValue=r=n):n=0,n+=yield*this.pushSpaces(!0);while(e+n>0);const i=this.getLine();if(i===null)return this.setNext("flow");if((r!==-1&&r"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>gd(n)||n==="#")}*parseBlockScalar(){let e=this.pos-1,n=0,r;e:for(let s=this.pos;r=this.buffer[s];++s)switch(r){case" ":n+=1;break;case` +`:e=s,n=0;break;case"\r":{const a=this.buffer[s+1];if(!a&&!this.atEnd)return this.setNext("block-scalar");if(a===` +`)break}default:break e}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(e+1);if(s===-1)break;e=this.buffer.indexOf(` +`,s)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let i=e+1;for(r=this.buffer[i];r===" ";)r=this.buffer[++i];if(r===" "){for(;r===" "||r===" "||r==="\r"||r===` +`;)r=this.buffer[++i];e=i-1}else if(!this.blockScalarKeep)do{let s=e-1,a=this.buffer[s];a==="\r"&&(a=this.buffer[--s]);const o=s;for(;a===" ";)a=this.buffer[--s];if(a===` +`&&s>=this.pos&&s+1+n>o)e=s;else break}while(!0);return yield fV,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let n=this.pos-1,r=this.pos-1,i;for(;i=this.buffer[++r];)if(i===":"){const s=this.buffer[r+1];if(gd(s)||e&&VS.has(s))break;n=r}else if(gd(i)){let s=this.buffer[r+1];if(i==="\r"&&(s===` +`?(r+=1,i=` +`,s=this.buffer[r+1]):n=r),s==="#"||e&&VS.has(s))break;if(i===` +`){const a=this.continueScalar(r+1);if(a===-1)break;r=Math.max(r,a-2)}}else{if(e&&VS.has(i))break;n=r}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield fV,yield*this.pushToIndex(n+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,n){const r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.length):(n&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Lj))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0,n=this.charAt(1);if(gd(n)||e&&VS.has(n))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,n=this.buffer[e];for(;!gd(n)&&n!==">";)n=this.buffer[++e];return yield*this.pushToIndex(n===">"?e+1:e,!1)}else{let e=this.pos+1,n=this.buffer[e];for(;n;)if(Kan.has(n))n=this.buffer[++e];else if(n==="%"&&E1e.has(this.buffer[e+1])&&E1e.has(this.buffer[e+2]))n=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){const e=this.buffer[this.pos];return e===` +`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===` +`?yield*this.pushCount(2):0}*pushSpaces(e){let n=this.pos-1,r;do r=this.buffer[++n];while(r===" "||e&&r===" ");const i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(e){let n=this.pos,r=this.buffer[n];for(;!e(r);)r=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class Xan{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let n=0,r=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(t[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((n=t[++e])==null?void 0:n.type)==="space";);return t.splice(e,t.length)}function T1e(t){if(t.start.type==="flow-seq-start")for(const e of t.items)e.sep&&!e.value&&!d0(e.start,"explicit-key-ind")&&!d0(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,HMe(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}class Qan{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Jan,this.onNewLine=e}*parse(e,n=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(const r of this.lexer.lex(e,n))yield*this.next(r);n||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}const n=Gan(e);if(n)if(n==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=n,yield*this.step(),n){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{const r=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:r,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(e==null?void 0:e.type)!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const n=e??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const r=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in r?r.indent:0:n.type==="flow-collection"&&r.type==="document"&&(n.indent=0),n.type==="flow-collection"&&T1e(n),r.type){case"document":r.value=n;break;case"block-scalar":r.props.push(n);break;case"block-map":{const i=r.items[r.items.length-1];if(i.value){r.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{const i=r.items[r.items.length-1];i.value?r.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{const i=r.items[r.items.length-1];!i||i.value?r.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&$1e(i.start)===-1&&(n.indent===0||i.start.every(s=>s.type!=="comment"||s.indent=e.indent){const i=!this.onKeyLine&&this.indent===e.indent,s=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let a=[];if(s&&n.sep&&!n.value){const o=[];for(let l=0;le.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(a=n.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||n.value?(a.push(this.sourceToken),e.items.push({start:a}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):s||n.value?(a.push(this.sourceToken),e.items.push({start:a,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(d0(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]});else if(HMe(n.key)&&!d0(n.sep,"newline")){const o=av(n.start),l=n.key,c=n.sep;c.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:l,sep:c}]})}else a.length>0?n.sep=n.sep.concat(a,this.sourceToken):n.sep.push(this.sourceToken);else if(d0(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const o=av(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||s?e.items.push({start:a,key:null,sep:[this.sourceToken]}):d0(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const o=this.flowScalar(this.type);s||n.value?(e.items.push({start:a,key:o,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(o):(Object.assign(n,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{const o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!n.explicitKey&&n.sep&&!d0(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&e.items.push({start:a});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){var r;const n=e.items[e.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,e.indent)){const i=e.items[e.items.length-2],s=(r=i==null?void 0:i.value)==null?void 0:r.end;if(Array.isArray(s)){Array.prototype.push.apply(s,n.start),s.push(this.sourceToken),e.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=e.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;n.value||d0(n.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>e.indent){const i=this.startBlockValue(e);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){const n=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while((r==null?void 0:r.type)==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?e.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!n||n.value?e.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{const r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){const i=ZS(r),s=av(i);T1e(e);const a=e.end.splice(1,e.end.length);a.push(this.sourceToken);const o={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:a}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=o}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let n=this.source.indexOf(` +`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` +`,n)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=ZS(e),r=av(n);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=ZS(e),r=av(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,n){return this.type!=="comment"||this.indent<=n?!1:e.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function eon(t){const e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new Xan||null,prettyErrors:e}}function ton(t,e={}){const{lineCounter:n,prettyErrors:r}=eon(e),i=new Qan(n==null?void 0:n.addNewLine),s=new Zan(e);let a=null;for(const o of s.compose(i.parse(t),!0,t.length))if(!a)a=o;else if(a.options.logLevel!=="silent"){a.errors.push(new M4(o.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&n&&(a.errors.forEach(k1e(t,n)),a.warnings.forEach(k1e(t,n))),a}function non(t,e,n){let r;const i=ton(t,n);if(!i)return null;if(i.warnings.forEach(s=>gMe(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function ron(t,e,n){let r=null;if(Array.isArray(e)&&(r=e),t===void 0){const{keepUndefined:i}={};if(!i)return}return h_(t)&&!r?t.toString(n):new bJ(t,r,n).toString(n)}const ion="md";function son(t){return t.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function aon(t,e){return`--- +${ron(t).trim()} +--- + +${e}`}function oon(t,e,n={}){const r={};return n.globs&&(r.globs=typeof n.globs=="string"?n.globs.trim():n.globs),n.regex&&(r.regex=typeof n.regex=="string"?n.regex.trim():n.regex),n.description&&(r.description=n.description.trim()),n.invokable!==void 0&&(r.invokable=n.invokable),n.alwaysApply!==void 0&&(r.alwaysApply=n.alwaysApply),aon(r,e)}var Za;(function(t){t.Always="Always",t.AutoAttached="Auto Attached",t.AgentRequested="Agent Requested",t.Manual="Manual"})(Za||(Za={}));const lon={[Za.Always]:"Always included in model context",[Za.AutoAttached]:"Included when files matching a glob pattern are referenced",[Za.AgentRequested]:"Available to AI, which decides whether to include it. Must provide a description",[Za.Manual]:"Only included when explicitly mentioned using @ruleName"};function con(t){const e=t.globs&&(Array.isArray(t.globs)?t.globs.length>0:t.globs.trim().length>0),n=t.regex&&(Array.isArray(t.regex)?t.regex.length>0:t.regex.trim().length>0);if(e||n)return Za.AutoAttached;const r=t.description&&t.description.trim().length>0;return r&&t.alwaysApply===!1?Za.AgentRequested:t.alwaysApply===!1&&!r?Za.Manual:Za.Always}const uon=Hn.object({name:Hn.string().min(1,"Name cannot be empty"),description:Hn.string().optional(),model:Hn.string().optional(),tools:Hn.string().optional(),rules:Hn.string().optional()});uon.extend({prompt:Hn.string()});const don=["anthropic/claude-sonnet-4-6","anthropic/claude-opus-4-6","anthropic/claude-sonnet-4","togetherai/llama-4-maverick-instruct-17bx128e","google/gemini-2.5-pro","mistral/codestral","voyageai/voyage-code-3","anthropic/claude-sonnet-4-5","relace/instant-apply","xai/grok-2","openai/gpt-4o","togetherai/llama-4-scout-instruct-17bx16e","anthropic/claude-haiku-4-5","google/gemini-2.0-flash","voyageai/rerank-2","anthropic/claude-opus-4-1","ollama/deepseek-r1","morphllm/morph-v0","lmstudio/deepseek-r1","openai/o3-mini","voyageai/voyage-code-2","ollama/qwen2.5-coder-1.5b","openai/gpt-4o-mini","openai/o1","mistral/mistral-embed","ollama/nomic-embed-text-latest","lmstudio/deepseek-r1-8b","mistral/mistral-large","lmstudio/qwen2.5-coder-1.5b","ollama/deepseek-r1-8b","openai/text-embedding-3-large"],fon=Yn({cert:Te(),key:Te(),passphrase:Te().optional()}),y_=Yn({timeout:fr().optional(),verifySsl:qn().optional(),caBundlePath:Ja([Te(),Kn(Te())]).optional(),proxy:Te().optional(),headers:Xa(Te()).optional(),extraBodyProperties:Xa(um()).optional(),noProxy:Kn(Te()).optional(),clientCertificate:fon.optional()}),hon=Bm(["chat","autocomplete","embed","rerank","edit","apply","summarize","subagent"]),pon=Ja([Af("tool_use"),Af("image_input"),Af("next_edit"),Te()]),WMe=Yn({contextLength:fr().optional(),maxTokens:fr().optional(),temperature:fr().optional(),topP:fr().optional(),topK:fr().optional(),minP:fr().optional(),presencePenalty:fr().optional(),frequencyPenalty:fr().optional(),stop:Kn(Te()).optional(),n:fr().optional(),reasoning:qn().optional(),reasoningBudgetTokens:fr().optional(),promptCaching:qn().optional(),stream:qn().optional()}),mon=Ja([Af("chunk"),Af("query")]),gon=Xa(mon,Te()),von=Yn({cacheSystemMessage:qn().optional(),cacheConversation:qn().optional()}),yon=Yn({maxChunkSize:fr().optional(),maxBatchSize:fr().optional(),embeddingPrefixes:gon.optional()}),bon=Yn({prefix:Te().optional(),exampleArgs:Kn(aMe([Te(),Ja([Te(),fr()])])).optional()}),xon=Yn({description:Te().optional(),displayTitle:Te().optional(),wouldLikeTo:Te().optional(),isCurrently:Te().optional(),hasAlready:Te().optional(),systemMessageDescription:bon.optional(),disabled:qn().optional()}),won=Yn({baseSystemMessage:Te().optional(),baseAgentSystemMessage:Te().optional(),basePlanSystemMessage:Te().optional(),toolOverrides:Xa(Te(),xon).optional()}),_on=Bm(["llama2","alpaca","zephyr","phi2","phind","anthropic","chatml","none","openchat","deepseek","xwin-coder","neural-chat","codellama-70b","llava","gemma","granite","llama3","codestral"]),kon=Yn({disable:qn().optional(),maxPromptTokens:fr().optional(),debounceDelay:fr().optional(),modelTimeout:fr().optional(),maxSuffixPercentage:fr().optional(),prefixPercentage:fr().optional(),transform:qn().optional(),template:Te().optional(),onlyMyCode:qn().optional(),useCache:qn().optional(),useImports:qn().optional(),useRecentlyEdited:qn().optional(),useRecentlyOpened:qn().optional(),experimental_includeClipboard:qn().optional(),experimental_includeRecentlyVisitedRanges:qn().optional(),experimental_includeRecentlyEditedRanges:qn().optional(),experimental_includeDiff:qn().optional(),experimental_enableStaticContextualization:qn().optional()}),Son=Yn({apply:Te().optional(),chat:_on.optional(),edit:Te().optional(),autocomplete:Te().optional()}),NE={name:Te(),model:Te(),apiKey:Te().optional(),apiBase:Te().optional(),maxStopWords:fr().optional(),roles:hon.array().optional(),capabilities:pon.array().optional(),defaultCompletionOptions:WMe.optional(),cacheBehavior:von.optional(),requestOptions:y_.optional(),embedOptions:yon.optional(),chatOptions:won.optional(),promptTemplates:Son.optional(),useLegacyCompletionsEndpoint:qn().optional(),env:Xa(Te(),Ja([Te(),qn(),fr()])).optional(),autocompleteOptions:kon.optional()},b_=Ja([Yn({...NE,provider:Af("continue-proxy"),apiKeyLocation:Te().optional(),envSecretLocations:Xa(Te(),Te()).optional(),orgScopeId:Te().nullable(),onPremProxyUrl:Te().nullable()}),Yn({...NE,provider:Te().refine(t=>t!=="continue-proxy"),sourceFile:Te().optional()})]),Con=Ja([Yn({...NE,provider:Af("continue-proxy"),apiKeyLocation:Te().optional(),envSecretLocations:Xa(Te(),Te()).optional()}).partial(),Yn({...NE,provider:Te().refine(t=>t!=="continue-proxy")}).partial()]),Dp=Yn({eventName:Te(),schema:Te(),timestamp:Te().datetime(),userId:Te(),userAgent:Te(),selectedProfileId:Te()}),wJ=Dp.extend({disable:qn(),useFileSuffix:qn(),maxPromptTokens:fr(),debounceDelay:fr(),maxSuffixPercentage:fr(),prefixPercentage:fr(),transform:qn().optional(),template:Te().optional(),multilineCompletions:Bm(["always","never","auto"]),slidingWindowPrefixPercentage:fr(),slidingWindowSize:fr(),useCache:qn(),onlyMyCode:qn(),useRecentlyEdited:qn(),useImports:qn().optional(),accepted:qn().optional(),time:fr(),prefix:Te(),suffix:Te(),prompt:Te(),completion:Te(),modelProvider:Te(),modelName:Te(),cacheHit:qn(),filepath:Te(),gitRepo:Te().optional(),completionId:Te(),uniqueId:Te(),timestamp:Te(),enabledStaticContextualization:qn().optional(),completionOptions:WMe.optional(),disableInFiles:Kn(Te()).optional()}),Eon=wJ.pick({disable:!0,useFileSuffix:!0,maxPromptTokens:!0,debounceDelay:!0,maxSuffixPercentage:!0,prefixPercentage:!0,transform:!0,template:!0,multilineCompletions:!0,slidingWindowPrefixPercentage:!0,slidingWindowSize:!0,useCache:!0,onlyMyCode:!0,useRecentlyEdited:!0,disableInFiles:!0,useImports:!0,accepted:!0,time:!0,prefix:!0,suffix:!0,prompt:!0,completion:!0,modelProvider:!0,modelName:!0,completionOptions:!0,cacheHit:!0,filepath:!0,gitRepo:!0,completionId:!0,uniqueId:!0,timestamp:!0});Eon.omit({prefix:!0,suffix:!0,prompt:!0,completion:!0});const $on=wJ.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,disable:!0,maxPromptTokens:!0,debounceDelay:!0,maxSuffixPercentage:!0,prefixPercentage:!0,transform:!0,template:!0,multilineCompletions:!0,slidingWindowPrefixPercentage:!0,slidingWindowSize:!0,useCache:!0,onlyMyCode:!0,useRecentlyEdited:!0,useImports:!0,accepted:!0,time:!0,prefix:!0,suffix:!0,prompt:!0,completion:!0,modelProvider:!0,modelName:!0,cacheHit:!0,filepath:!0,gitRepo:!0,completionId:!0,uniqueId:!0,enabledStaticContextualization:!0});$on.omit({prefix:!0,suffix:!0,prompt:!0,completion:!0});const _J=Dp.extend({modelProvider:Te(),modelName:Te(),modelTitle:Te(),completionOptions:Yn({}),prompt:Te(),completion:Te(),feedback:qn().optional(),sessionId:Te().uuid()}),Ton=_J.pick({modelName:!0,completionOptions:!0,prompt:!0,completion:!0,feedback:!0,sessionId:!0});Ton.omit({prompt:!0,completion:!0});const Ion=_J.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,prompt:!0,completion:!0,modelProvider:!0,modelName:!0,modelTitle:!0,feedback:!0,sessionId:!0});Ion.omit({prompt:!0,completion:!0});const VMe=Dp.extend({modelProvider:Te(),modelName:Te(),modelTitle:Te(),prompt:Te(),completion:Te(),sessionId:Te(),tools:Kn(Te()).optional(),rules:Kn(Yn({id:Te(),slug:Te().optional()})).optional()}),Aon=VMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,prompt:!0,completion:!0,modelName:!0,modelTitle:!0,modelProvider:!0,sessionId:!0,tools:!0,rules:!0});Aon.omit({prompt:!0,completion:!0});const ZMe=Dp.extend({modelProvider:Te(),modelName:Te(),modelTitle:Te(),prompt:Te(),completion:Te(),filepath:Te()}),Oon=ZMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,prompt:!0,completion:!0,modelName:!0,modelTitle:!0,modelProvider:!0,filepath:!0});Oon.omit({prompt:!0,completion:!0});const GMe=Dp.extend({modelProvider:Te(),modelName:Te(),modelTitle:Te(),prompt:Te(),completion:Te(),previousCode:Te(),newCode:Te(),previousCodeLines:fr(),newCodeLines:fr(),lineChange:fr(),accepted:qn(),filepath:Te()}),Don=GMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,prompt:!0,completion:!0,modelName:!0,modelTitle:!0,modelProvider:!0,accepted:!0,previousCode:!0,newCode:!0,previousCodeLines:!0,newCodeLines:!0,lineChange:!0,filepath:!0});Don.omit({prompt:!0,completion:!0,previousCode:!0,newCode:!0});const KMe=Dp.extend({elapsed:fr(),completionOptions:um(),completionId:Te(),requestId:Te().optional(),gitRepo:Te().optional(),uniqueId:Te(),timestamp:fr(),fileUri:Te(),workspaceDirUri:Te(),prompt:Te(),userEdits:Te(),userExcerpts:Te(),originalEditableRange:Te(),completion:Te(),cursorPosition:Yn({line:fr(),character:fr()}),accepted:qn().optional(),aborted:qn().optional(),modelProvider:Te(),modelName:Te()}),Mon=KMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,elapsed:!0,completionOptions:!0,completionId:!0,requestId:!0,gitRepo:!0,uniqueId:!0,fileUri:!0,workspaceDirUri:!0,prompt:!0,userEdits:!0,userExcerpts:!0,originalEditableRange:!0,completion:!0,cursorPosition:!0,accepted:!0,aborted:!0,modelProvider:!0,modelName:!0});Mon.omit({fileUri:!0,workspaceDirUri:!0,prompt:!0,userEdits:!0,userExcerpts:!0,originalEditableRange:!0,completion:!0});const YMe=Dp.extend({previousEdits:Kn(Yn({filename:Te(),diff:Te()})),fileURI:Te(),workspaceDirURI:Te(),beforeContent:Te(),afterContent:Te(),beforeCursorPos:Yn({line:fr(),character:fr()}),afterCursorPos:Yn({line:fr(),character:fr()}),context:Te(),modelProvider:Te(),modelName:Te(),modelTitle:Te()}),Non=YMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,previousEdits:!0,fileURI:!0,workspaceDirURI:!0,beforeContent:!0,afterContent:!0,beforeCursorPos:!0,afterCursorPos:!0,context:!0,modelProvider:!0,modelName:!0,modelTitle:!0});Non.omit({previousEdits:!0,fileURI:!0,workspaceDirURI:!0,beforeContent:!0,afterContent:!0,context:!0});const JMe=Yn({prompt:Te(),path:Te().optional(),label:Te(),diffs:Kn(Yn({type:Bm(["new","old","same"]),line:Te()})).optional(),model:Te().optional()}),Ron=JMe.pick({prompt:!0,path:!0,label:!0,diffs:!0,model:!0});Ron.omit({prompt:!0,path:!0,diffs:!0});const kJ=Dp.extend({model:Te(),provider:Te(),promptTokens:fr(),generatedTokens:fr()});kJ.pick({model:!0,provider:!0,promptTokens:!0,generatedTokens:!0});kJ.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,model:!0,provider:!0,promptTokens:!0,generatedTokens:!0});const XMe=Dp.extend({toolCallId:Te(),functionName:Te(),functionParams:Xa(Te(),um()).optional(),toolCallArgs:Te(),accepted:qn(),succeeded:qn(),output:Kn(um()).optional()}),Lon=XMe.pick({timestamp:!0,userId:!0,userAgent:!0,selectedProfileId:!0,eventName:!0,schema:!0,toolCallId:!0,functionName:!0,functionParams:!0,toolCallArgs:!0,accepted:!0,succeeded:!0,output:!0});Lon.omit({functionParams:!0,toolCallArgs:!0,output:!0});const Pon=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,jon=Ja([Af("all"),Af("noCode")]),_I=Yn({name:Te(),destination:Te(),schema:Te().regex(Pon,{message:"Version must follow semver format, e.g. 0.2.0"}),level:jon.optional(),events:Kn(Te()).optional(),requestOptions:y_.optional(),apiKey:Te().optional()}),zon=Yn({autocomplete:wJ,quickEdit:JMe,chatFeedback:_J,tokensGenerated:kJ,chatInteraction:VMe,editInteraction:ZMe,editOutcome:GMe,nextEditOutcome:KMe,nextEditWithHistory:YMe,toolUsage:XMe});Object.keys(zon.shape);const QMe=Hn.object({name:Hn.string(),serverName:Hn.string().optional(),faviconUrl:Hn.string().optional(),sourceFile:Hn.string().optional(),sourceSlug:Hn.string().optional(),connectionTimeout:Hn.number().gt(0).optional()}),eNe=QMe.extend({command:Hn.string(),type:Hn.literal("stdio").optional(),args:Hn.array(Hn.string()).optional(),env:Hn.record(Hn.string()).optional(),cwd:Hn.string().optional()}),tNe=QMe.extend({url:Hn.string(),type:Hn.union([Hn.literal("sse"),Hn.literal("streamable-http")]).optional(),apiKey:Hn.string().optional(),requestOptions:y_.optional()}),kI=Hn.union([eNe,tNe]),Fon=Hn.union([eNe.partial(),tNe.partial()]),SI=Yn({name:Te().optional(),provider:Te(),params:um().optional()}),CI=Yn({name:Te(),description:Te().optional(),prompt:Te(),sourceFile:Te().optional()}),EI=Yn({name:Te(),startUrl:Te(),rootUrl:Te().optional(),faviconUrl:Te().optional(),useLocalCrawling:qn().optional(),sourceFile:Te().optional()}),nNe=Yn({name:Te(),rule:Te(),description:Te().optional(),globs:Ja([Te(),Kn(Te())]).optional(),regex:Ja([Te(),Kn(Te())]).optional(),alwaysApply:qn().optional(),invokable:qn().optional(),sourceFile:Te().optional()}),$I=Ja([Te(),nNe]);Yn({name:Te(),version:Te(),author:Te().optional(),license:Te().optional(),rules:Xa(Te(),Te()).optional()});const RE=Te(),Bon=(t,e=RE)=>Yn({uses:e,with:Xa(Te()).optional(),override:t.partial().optional()}),GS=(t,e=RE)=>Ja([t,Bon(t,e)]),Uon=Yn({tags:Te().optional(),sourceCodeUrl:Te().optional(),description:Te().optional(),author:Te().optional(),license:Te().optional(),iconUrl:Te().optional()}),rNe=Xa(Te(),Ja([Te(),fr(),qn()])),TI=Yn({name:Te(),version:Te(),schema:Te().optional(),metadata:Xa(Te()).and(Uon.partial()).optional(),env:rNe.optional(),requestOptions:y_.optional()}),qon=Te().or(Bm(don)),Hon=TI.extend({models:Kn(Ja([b_,Yn({uses:qon,with:Xa(Te()).optional(),override:Con.optional()})])).optional(),context:Kn(GS(SI)).optional(),data:Kn(GS(_I)).optional(),mcpServers:Kn(Ja([kI,Yn({uses:RE,with:Xa(Te()).optional(),override:Fon.optional()})])).optional(),rules:Kn(Ja([$I,Yn({uses:RE,with:Xa(Te()).optional()})])).optional(),prompts:Kn(GS(CI)).optional(),docs:Kn(GS(EI)).optional()});TI.extend({models:Kn(b_.nullable()).optional(),context:Kn(SI.nullable()).optional(),data:Kn(_I.nullable()).optional(),mcpServers:Kn(kI.nullable()).optional(),rules:Kn($I.nullable()).optional(),prompts:Kn(CI.nullable()).optional(),docs:Kn(EI.nullable()).optional()});TI.extend({models:Kn(b_).optional(),context:Kn(SI).optional(),data:Kn(_I).optional(),mcpServers:Kn(kI).optional(),rules:Kn($I).optional(),prompts:Kn(CI).optional(),docs:Kn(EI).optional()});TI.and(Ja([Yn({models:Kn(b_).length(1)}),Yn({context:Kn(SI).length(1)}),Yn({data:Kn(_I).length(1)}),Yn({mcpServers:Kn(kI).length(1)}),Yn({rules:Kn($I).length(1)}),Yn({prompts:Kn(CI).length(1)}),Yn({docs:Kn(EI).length(1)})]));const Won=Yn({name:Te(),description:Te().optional(),prompt:Te(),placeholders:Kn(Te()).optional(),context:Te().optional(),contextWindowSize:fr().optional(),model:Te().optional(),systemMessage:Te().optional(),slashCommand:Te().optional(),hideFromCommandPalette:qn().optional(),hideFromSlashCommands:qn().optional(),mode:Bm(["insert","replace","diff"]).optional(),addEnhancedContext:qn().optional()}),Von=Yn({language:Te(),markers:Kn(Te())}),Zon=Yn({enabled:qn().optional(),defaultOpen:qn().optional(),defaultWidth:fr().optional(),showButtonsThreshold:fr().optional()}),Gon=Yn({name:Te(),description:Te(),defaultIcon:Te().optional()}),Kon=Kn(Te());Yn({models:Kn(b_).optional(),defaultModel:Te().optional(),defaultRecentMessages:fr().optional(),commands:Kn(Won).optional(),tools:Kn(Gon).optional(),contextProviders:Kn(um()).optional(),langMarkers:Kn(Von).optional(),sidebar:Zon.optional(),tabAutocompleteModel:Te().optional(),rules:Kn(nNe).optional(),doneWithBannerForever:qn().optional(),autoindentExtensions:Kon.optional(),proxy:Te().optional(),api_base:Te().optional(),api_key:Te().optional(),env:rNe.optional(),requestOptions:y_.optional()});const Yon=["models","context","data","mcpServers","rules","prompts","docs"];Bm(Yon);function II(t){try{const e=non(t),n=Hon.safeParse(e);if(n.success)return n.data;throw new Error(I1e(n.error),{cause:"result.success was false"})}catch(e){throw e instanceof Error&&"cause"in e&&e.cause==="result.success was false"?new Error(`Failed to parse config: ${e.message}`):e instanceof Lu?new Error(`Failed to parse config: ${I1e(e)}`):new Error(`Failed to parse config: ${e instanceof Error?e.message:e}`)}}function I1e(t){return t.errors&&Array.isArray(t.errors)?t.errors.map(e=>`${e.path.length>0?`${e.path.join(".")}: `:""}${e.message}`).join(", "):t.message||"Validation failed"}Yn({apiKeyLocation:Te().optional(),envSecretLocations:Xa(Te(),Te()).optional(),apiBase:Te().optional(),orgScopeId:Te().nullable(),env:Xa(Te(),um()).optional()});function Jon(t){const e=t.split("/"),[n,r,i,...s]=e,a=s.join("/");if(!i||!a)throw new Error("Invalid model format");return{provider:i,model:a,ownerSlug:n,packageSlug:r}}const Xon=Hn.object({type:Hn.union([Hn.literal("sse"),Hn.literal("http")]).optional(),url:Hn.string(),headers:Hn.record(Hn.string(),Hn.string()).optional()}),Qon=Hn.object({type:Hn.literal("stdio").optional(),command:Hn.string(),args:Hn.array(Hn.string()).optional(),env:Hn.record(Hn.string(),Hn.string()).optional(),envFile:Hn.string().optional()}),eln=Hn.union([Xon,Qon]),hV=Hn.record(Hn.string(),eln);Hn.object({mcpServers:hV});Hn.object({mcpServers:hV.optional(),projects:Hn.record(Hn.string(),Hn.object({mcpServers:hV.optional()}))});Yn({allowAnonymousTelemetry:qn().optional(),allowOtherOrgs:qn().optional(),allowCodebaseIndexing:qn().optional(),allowMcpServers:qn().optional()});const pV={"continue-proxy":t=>{try{const{provider:e,model:n}=Jon(t);if(e&&n&&e!=="continue-proxy"){const r=pV[e];if(r)return r(n)}}catch{}return["claude","gpt-4","o3","gemini","gemma"].some(e=>t.toLowerCase().startsWith(e))},anthropic:t=>t.includes("claude-2")||t.includes("claude-instant")?!1:!!["claude"].some(e=>t.toLowerCase().startsWith(e)),azure:t=>!!(t.toLowerCase().startsWith("gpt-4")||t.toLowerCase().startsWith("o3")),openai:t=>{const e=t.toLowerCase();if(e.startsWith("gpt-4")||e.startsWith("gpt-5")||e.startsWith("o3")||e.includes("exaone")||e.includes("gpt-oss")||e.startsWith("gemma"))return!0;if(t.startsWith("accounts/fireworks/models/"))switch(t.substring(26)){case"llama-v3p1-405b-instruct":case"llama-v3p1-70b-instruct":case"qwen2p5-72b-instruct":case"firefunction-v1":case"firefunction-v2":return!0;default:return!1}return!1},cohere:t=>{const e=t.toLowerCase();return e.startsWith("command-a-vision")?!1:e.startsWith("command")},gemini:t=>t.toLowerCase().includes("gemini"),vertexai:t=>{const e=t.toLowerCase();return e.includes("lite")?!1:["claude","gemini"].some(n=>e.includes(n))},xAI:t=>{const e=t.toLowerCase();return["grok-3","grok-4","grok-4-1","grok-code"].some(n=>e.includes(n))},bedrock:t=>t.includes("claude-2")||t.includes("claude-instant")?!1:!!["claude","nova-lite","nova-pro","nova-micro","nova-premier","gpt-oss"].some(e=>t.toLowerCase().includes(e)),mistral:t=>!t.toLowerCase().includes("mamba")&&["devstral","codestral","mistral-large","mistral-small","pixtral","ministral","mistral-nemo","devstral"].some(e=>t.toLowerCase().includes(e)),ollama:t=>{let e="";if(t.includes("/")){let n=t.split("/");e=n[n.length-1]}else e=t;return["vision","math","guard","mistrallite","mistral-openorca"].some(n=>e.toLowerCase().includes(n))?!1:!!["cogito","llama3.3","qwq","llama3.2","llama3.1","qwen2","qwen3","mixtral","command-r","command-a","smollm2","hermes3","athene-v2","nemotron","llama3-groq","granite3","granite-3","granite4","granite-4","aya-expanse","firefunction-v2","mistral","devstral","exaone","gpt-oss"].some(n=>e.toLowerCase().includes(n))},lmstudio:t=>{const e=t.toLowerCase(),n=e.replace(/-/g,""),r=["vision","math","guard","mistrallite","mistral-openorca"],i=a=>r.some(o=>a.includes(o)||a.includes(o.replace(/-/g,"")));if(i(e)||i(n))return!1;const s=pV.ollama;return s(t)||s(n)},sambanova:t=>!!(t.toLowerCase().startsWith("meta-llama-3")||t.toLowerCase().includes("llama-4")||t.toLowerCase().includes("deepseek")||t.toLowerCase().includes("gpt")||t.toLowerCase().includes("qwen")),deepseek:t=>t==="deepseek-reasoner"||t==="deepseek-chat",watsonx:t=>t.toLowerCase().includes("guard")?!1:!!["llama-3","llama-4","mistral","codestral","granite-3","devstral"].some(e=>t.toLowerCase().includes(e)),openrouter:t=>{if(t.toLowerCase()==="moonshotai/kimi-k2:free"||["vision","math","guard","mistrallite","mistral-openorca"].some(i=>t.toLowerCase().includes(i)))return!1;const e=["openai/gpt-3.5","openai/gpt-4","openai/o1","openai/o3","openai/o4","openai/gpt-oss","anthropic/claude","microsoft/phi-3","google/gemini-flash-1.5","google/gemini-2","google/gemini-pro","x-ai/grok","qwen/qwen3","qwen/qwen-","cohere/command-r","cohere/command-a","ai21/jamba-1.6","mistralai/mistral","mistralai/ministral","mistralai/codestral","mistralai/mixtral","mistral/ministral","mistral/devstral","mistralai/pixtral","meta-llama/llama-3.3","amazon/nova","deepseek/deepseek-r1","deepseek/deepseek-chat","meta-llama/llama-4","all-hands/openhands-lm-32b","lgai-exaone/exaone"];for(const i of e)if(t.toLowerCase().startsWith(i))return!0;const n=["qwen/qwq-32b","qwen/qwen-2.5-72b-instruct","meta-llama/llama-3.2-3b-instruct","meta-llama/llama-3-8b-instruct","meta-llama/llama-3-70b-instruct","arcee-ai/caller-large","nousresearch/hermes-3-llama-3.1-70b","moonshotai/kimi-k2"];for(const i of n)if(i.toLowerCase()===i)return!0;const r=["llama-3.1"];for(const i of r)if(i.toLowerCase().includes(i))return!0;return!1},moonshot:t=>!!(t.toLowerCase().startsWith("kimi")&&t.toLowerCase()!=="kimi-thinking-preview"||t.toLowerCase().startsWith("moonshot")),novita:t=>{const e=t.toLowerCase();if(["deepseek/deepseek-r1-0528","deepseek/deepseek-r1-turbo","deepseek/deepseek-v3-0324","deepseek/deepseek-v3-turbo","meta-llama/llama-3.3-70b-instruct","qwen/qwen-2.5-72b-instruct","zai-org/glm-4.5","moonshotai/kimi-k2-instruct"].includes(e))return!0;const r=["qwen/qwen3","openai/gpt-oss"];for(const i of r)if(e.startsWith(i))return!0;return!1},ovhcloud:t=>{const e=t.toLowerCase();return!!["llama-3.1-8b-instruct","qwen3-32b","qwen3-coder-30b-a3b-instruct","meta-llama-3_3-70b-instruct","deepseek-r1-distill-llama-70b","mistral-small-3.2-24b-instruct-2506","gpt-oss-120b","mistral-nemo-instruct-2407","gpt-oss-20b","qwen2.5-coder-32b-instruct"].some(r=>e===r)}};function tln(t){const e=[[/o[134]/],[/deepseek/,/r1|reasoner/],[/gemini/,/2\.5/,/pro/],[/gemini/,/3-pro/],[/gpt/,/-5|5\.1/],[/claude/,/sonnet/,/3\.7|3-7|-4/],[/claude/,/opus/,/-4/],[/grok-code/],[/grok-4-1|grok-4\.1/],[/claude/,/4-5/]];for(const n of e)if(n.every(r=>t.toLowerCase().match(r)))return!0;return!1}function iNe(t){var n;if(((n=t.capabilities)==null?void 0:n.tools)!==void 0)return t.capabilities.tools;const e=pV[t.provider];return e?e(t.model)??!1:!1}function nln(t){return`",sln=(t,e)=>{if(t.length===0)return"";const n=t.filter(s=>!!s.systemMessageDescription),r=t.filter(s=>!s.systemMessageDescription),i=[];if(i.push(A1e),i.push(e.systemMessagePrefix),n.length>0){i.push(` +The following tools are available to you:`);for(const s of n){const a=e.createSystemMessageExampleCall(s.function.name,s.systemMessageDescription.prefix,s.systemMessageDescription.exampleArgs);i.push(` +${a}`)}}if(r.length>0){i.push(` +Also, these additional tool definitions show other tools you can call with the same syntax:`);for(const s of t)try{const a=e.toolToSystemToolDefinition(s);i.push(` +${a}`)}catch{console.error(`Failed to convert tool to system message tool: +`+JSON.stringify(s))}i.push(` +For example, this tool definition: +`),i.push(e.exampleDynamicToolDefinition),i.push(` +Can be called like this: +`),i.push(e.exampleDynamicToolCall)}return i.push(` +`+e.systemMessageSuffix),i.push(`${nln(A1e)}`),i.join(` +`)};function aln(t,e,n){let r=e;if(n.length>0){const i=sln(n,t);r+=` + +${i}`}return r}function oln(t,e){const n=e.acceptedToolCallStarts;let r=t,i=!1,s=!1;const a=t.toLowerCase();for(let o=0;o({toolCallId:sNe(),isWithinArgStart:!1,currentArgName:void 0,currentArgChunks:[],currentLineIndex:0,processedArgNames:new Set,lineChunks:[],done:!1});async function*cln(t,e,n){let r="",i;for(;;){const s=await t.next();if(s.done)return i&&!i.done&&i.processedArgNames.size&&(yield[{role:"assistant",content:"",toolCalls:[Iv("","}",i.toolCallId)]}]),s.value;for await(const a of s.value){if(e.signal.aborted||i!=null&&i.done)break;if(a.role!=="assistant"||a.toolCalls){yield[a];continue}const o=MG(a);if(o.find(c=>c.type==="imageUrl")){yield[a];continue}const l=o.map(c=>rln(c.text)).flat();for(const c of l){if(r+=c,!i){const{isInPartialStart:u,isInToolCall:d,modifiedBuffer:f}=oln(r,n);if(u)continue;d&&(i=lln(),r=f)}if(i&&!i.done){const u=n.handleToolCallBuffer(r,i);u&&(yield[{...a,content:"",toolCalls:[u]}])}else{if(i)continue;yield[{...a,content:[{type:"text",text:r}]}]}r=""}}}}function uln(t,e){const n=e.currentLineIndex;e.lineChunks[n]||(e.lineChunks[n]=[]),e.lineChunks[n].push(t);const r=t===` +`;r&&e.currentLineIndex++;const i=e.lineChunks[n].join("");switch(n){case 0:const s=i.split(` +`);s[0]&&(e.lineChunks[0]=[s[0],` +`]),s[1]&&(e.lineChunks[1]=[s[1]]),e.currentLineIndex=1;case 1:if(r){const a=(i.split(/tool_?name:/i)[1]??"").trim();if(!a)throw new Error("Invalid tool name");return Iv(a,"",e.toolCallId)}return;default:if(e.isWithinArgStart){if(r){const a=(i.split(/begin_?arg:/i)[1]??"").trim();if(!a)throw new Error("Invalid begin arg line");e.currentArgName=a,e.isWithinArgStart=!1;const o=e.processedArgNames.size===0?"{":",";return Iv("",`${o}"${a}":`,e.toolCallId)}}else if(e.currentArgName){if(r)if(i.match(/end_?arg/i)){let o=e.currentArgChunks.join("").trim();e.currentArgChunks.length=0,e.processedArgNames.add(e.currentArgName),e.currentArgName=void 0;try{(o.startsWith("[")||o.startsWith("{"))&&(o=o.replace(/"((?:\\[\s\S]|[^"\\])*?)"/g,u=>'"'+u.slice(1,-1).replace(/([^\\])\n/g,"$1\\n").replace(/^\n/g,"\\n")+'"'));const l=JSON.parse(o),c=JSON.stringify(l);return Iv("",c,e.toolCallId)}catch{const c=JSON.stringify(o);return Iv("",c,e.toolCallId)}}else e.currentArgChunks.push(i)}else if(i.match(/begin_?arg:/i)&&(e.isWithinArgStart=!0),(i==="```"||r)&&(e.done=!0,e.processedArgNames.size>0))return Iv("","}",e.toolCallId)}}class dln{constructor(){Wt(this,"acceptedToolCallStarts",[["```tool\n","```tool\n"],["tool_name:","```tool\nTOOL_NAME:"]]);Wt(this,"handleToolCallBuffer",uln);Wt(this,"systemMessagePrefix",'You have access to several "tools" that you can use at any time to retrieve information and/or perform tasks for the User.\nTo use a tool, respond with a tool code block (```tool) using the syntax shown in the examples below:');Wt(this,"systemMessageSuffix","If it seems like the User's request could be solved with one of the tools, choose the BEST one for the job based on the user's request and the tool descriptions\nThen send the ```tool codeblock (YOU call the tool, not the user). Always start the codeblock on a new line.\nDo not perform actions with/for hypothetical files. Ask the user or use tools to deduce which files are relevant.\nYou can only call ONE tool at at time. The tool codeblock should be the last thing you say; stop your response after the tool codeblock.");Wt(this,"exampleDynamicToolDefinition",` +\`\`\`tool_definition +TOOL_NAME: example_tool +TOOL_ARG: arg_1 (string, required) +Description of the first argument +END_ARG +TOOL_ARG: arg_2 (number, optional) +END_ARG +\`\`\``.trim());Wt(this,"exampleDynamicToolCall",` +\`\`\`tool +TOOL_NAME: example_tool +BEGIN_ARG: arg_1 +The value +of arg 1 +END_ARG +BEGIN_ARG: arg_2 +3 +END_ARG +\`\`\``.trim())}toolCallStateToSystemToolCall(e){let n=["```tool"];n.push(`TOOL_NAME: ${e.toolCall.function.name}`);try{for(const r in e.parsedArgs)n.push(`BEGIN_ARG: ${r}`),n.push(JSON.stringify(e.parsedArgs[r])),n.push("END_ARG")}catch{console.log("Failed to stringify json args",e.parsedArgs)}return n.push("```"),n.join(` +`)}toolToSystemToolDefinition(e){var r;let n=`\`\`\`tool_definition +TOOL_NAME: ${e.function.name} +`;if(e.function.description&&(n+=`TOOL_DESCRIPTION: +${e.function.description} +`),e.function.parameters&&"properties"in e.function.parameters)for(const[i,s]of Object.entries(e.function.parameters.properties)){const o=((r=e.function.parameters.required)==null?void 0:r.includes(i))?"required":"optional";let l="string";"type"in s&&(l=s.type);let c="";"description"in s&&(c=s.description),n+=`TOOL_ARG: ${i} (${l}, ${o}) +`,c&&(n+=c+` +`),n+=`END_ARG +`}return n+="```",n.trim()}createSystemMessageExampleCall(e,n,r=[]){let i=`\`\`\`tool +TOOL_NAME: ${e}`;for(const[s,a]of r)i+=` +BEGIN_ARG: ${s} +${a} +END_ARG`;return i+="\n```",`${n.trim()} +${i}`}}const fln=` + +THE USER HAS NOT PROVIDED ANY TOOLS, DO NOT ATTEMPT TO USE ANY TOOLS. STOP AND LET THE USER KNOW THAT THERE ARE NO TOOLS AVAILABLE. The user can provide tools by enabling them in the Tool Policies section of the notch (wrench icon)`;function hln(t,e,n){let r;return t==="agent"?r=e.baseAgentSystemMessage??IDe:t==="plan"?r=e.basePlanSystemMessage??ADe:r=e.baseChatSystemMessage??TDe,t!=="chat"&&(!n||n.length===0)&&(r+=fln),r}async function pln(t,e,n,r){var c;if(a7e(n.toolCall.function.name))return{policy:"allowedWithoutPermission",toolCallState:n};const i=r[n.toolCall.function.name]??((c=e.find(u=>u.function.name===n.toolCall.function.name))==null?void 0:c.defaultToolPolicy)??mC,s=n.toolCall.function.name,a=await t.request("tools/evaluatePolicy",{toolName:s,basePolicy:i,parsedArgs:n.parsedArgs,processedArgs:n.processedArgs});if(a.status==="error")return console.error(`Error evaluating tool policy for ${s}`,a.error),{policy:"disabled",toolCallState:n};const o=a.content.policy,l=a.content.displayValue;return i==="disabled"?{policy:"disabled",displayValue:l,toolCallState:n}:i==="allowedWithPermission"&&o==="allowedWithoutPermission"?{policy:"allowedWithPermission",displayValue:l,toolCallState:n}:{policy:o,displayValue:l,toolCallState:n}}async function mln(t,e,n,r,i){const s=await Promise.all(r.map(o=>pln(e,n,o,i))),a=s.filter(({policy:o})=>o==="disabled");for(const{displayValue:o,toolCallState:l}of a){t(Sk({toolCallId:l.toolCallId}));const c=o||l.toolCall.function.name;t(Fu({toolCallId:l.toolCallId,contextItems:[{icon:"problems",name:"Security Policy Violation",description:"Command Disabled",content:`This command has been disabled by security policy: + +${c} + +This command cannot be executed as it may pose a security risk.`,hidden:!1}]}))}return s}async function gln(t,e,n){await Promise.all(n.map(async r=>{let i,s,a;const o=await e.request("tools/preprocessArgs",{toolName:r.toolCall.function.name,args:r.parsedArgs});o.status==="success"?(a=o.content.preprocessedArgs,s=o.content.errorMessage,i=o.content.errorReason):(s=o.error,i=xo.Unknown),i?(ta.capture("tool_call_outcome",{succeeded:!1,toolName:r.toolCall.function.name,errorReason:i,duration_ms:0}),t(Sk({toolCallId:r.toolCallId})),t(Fu({toolCallId:r.toolCallId,contextItems:[{icon:"problems",name:"Invalid Tool Call",description:"",content:`${r.toolCall.function.name} failed because the arguments were invalid, with the following message: ${s} + +Please try something else or request further instructions.`,hidden:!1}]}))):a&&t(s4n({toolCallId:r.toolCallId,newArgs:a}))}))}function vln(t,e,n){var i;if(e===void 0)return t;const r={...t,reasoning:!!e};return e&&n.underlyingProviderName!=="ollama"&&(r.reasoningBudgetTokens=((i=n.completionOptions)==null?void 0:i.reasoningBudgetTokens)??2048),r}const aNe=Cs("chat/streamNormalInput",async({legacySlashCommandData:t,depth:e=0},{dispatch:n,extra:r,getState:i})=>{var U;const s=i(),a=dc(s);if(!a)throw new Error("No chat model selected");const o=Bin(s),l=(U=s.config.config.experimental)!=null&&U.onlyUseSystemMessageTools?!1:iNe(a),c=l?void 0:new dln;let u={};l&&o.length>0&&(u={tools:o}),u=vln(u,s.session.hasReasoningEnabled,a);const d=hln(s.session.mode,a,o),f=c?aln(c,d,o):d,h=s.session.history.map(J=>{const{id:F,...H}=J.message;return{...J,message:H}}),{messages:m,appliedRules:p,appliedRuleIndex:v}=HDe(h,f,s.config.config.rules,s.ui.ruleSettings,c);n(K3n({index:v,appliedRules:p})),n(cZe()),n(OV(void 0));const x=await r.ideMessenger.request("llm/compileChat",{messages:m,options:u});if(x.status==="error")if(x.error.includes("Not enough context")){n(OV("out-of-context")),n(cy());return}else throw new Error(x.error);const{compiledChatMessages:w,didPrune:E,contextPercentage:S}=x.content;n(c4n(E)),n(u4n(S));const _=Date.now(),C=s.session.streamAborter;try{let J=r.ideMessenger.llmStreamChat({completionOptions:u,title:a.title,messages:w,legacySlashCommandData:t,messageOptions:{precompiled:!0}},C.signal);c&&o.length>0&&(J=cln(J,C,c));let F=await J.next();for(;!F.done;){if(!i().session.isStreaming){n(ene());break}n(lZe(F.value)),F=await J.next()}if(F.done&&F.value){n(Y3n([F.value]));try{r.ideMessenger.post("devdata/log",{name:"chatInteraction",data:{prompt:F.value.prompt,completion:F.value.completion,modelProvider:a.underlyingProviderName,modelName:a.title,modelTitle:a.title,sessionId:s.session.id,...!!o.length&&{tools:o.map(H=>H.function.name)},...p.length>0&&{rules:p.map(H=>({id:zin(H),slug:H.slug}))}}})}catch(H){console.error("Failed to send dev data interaction log",H)}}}catch(J){const F=YW(i());if(ta.capture("stream_premature_close_error",{duration:(Date.now()-_)/1e3,model:a.model,provider:a.underlyingProviderName,context:t?"slash_command":"regular_chat",...t&&{command:t.command.name}}),F.length>0&&J instanceof Error&&J.message.toLowerCase().includes("premature close"))for(const H of F)n(Sk({toolCallId:H.toolCallId,output:[{name:"Tool Call Error",description:"Premature Close",content:'"Premature Close" error: this tool call was aborted mid-stream because the arguments took too long to stream or there were network issues. Please re-attempt by breaking the operation into smaller chunks or trying something else',icon:"problems"}]}));else throw J}const T=i();if(C.signal.aborted||!T.session.isStreaming)return;const M=YW(T),A=M.filter(J=>J.status==="generating");for(const{toolCallId:J}of A)n(i4n({toolCallId:J,tools:T.config.config.tools}));const $=i();if(C.signal.aborted||!$.session.isStreaming)return;const O=lg($);await gln(n,r.ideMessenger,O);const D=i();if(C.signal.aborted||!D.session.isStreaming)return;const N=lg(D),R=D.ui.toolSettings,q=await mln(n,r.ideMessenger,o,N,R),W=q.filter(({policy:J})=>J==="allowedWithoutPermission"),G=q.filter(({policy:J})=>J==="allowedWithPermission");if(M.length===0)n(cy());else if(G.length>0){const J=W.filter(({toolCallState:F})=>{var H,V;return((H=F.tool)==null?void 0:H.group)===Hb&&((V=F.tool)==null?void 0:V.readonly)});if(J.length>0){const F=i();if(C.signal.aborted||!F.session.isStreaming)return;await Promise.all(J.map(async({toolCallState:H})=>{Kh(await n(PE({toolCallId:H.toolCallId,isAutoApproved:!0,depth:e+1})))}))}n(cy())}else{const J=i(),F=lg(J);if(C.signal.aborted||!J.session.isStreaming)return;if(F.length>0)await Promise.all(F.map(async({toolCallId:H})=>{Kh(await n(PE({toolCallId:H,isAutoApproved:!0,depth:e+1})))}));else for(const{toolCallId:H}of M)Kh(await n(w_({toolCallId:H,depth:e+1})))}});function yln(t){if(!t||typeof t!="string"||!t.includes(` + +`))return t;const e=t.split(` + +`).slice(1).join(` + +`);try{const n=JSON.parse(e);return n.error!==void 0&&n.error!==null?JSON.stringify(n.error):n.message!==void 0&&n.message!==null?JSON.stringify(n.message):e}catch{return e}}function oNe(t,e){const n=t==null?void 0:t.message,r=yln(typeof n=="string"?n:"");let i="Chat model",s="the model provider",a;if(e){i=e.title,s=e.underlyingProviderName;const c=Object.values(Wa).find(u=>(u==null?void 0:u.provider)===e.underlyingProviderName);c&&(s=c.title,c.apiKeyUrl&&(a=c.apiKeyUrl))}let o,l;if(t&&(t instanceof Error||typeof t=="object")&&"message"in t&&typeof t.message=="string"){o=t.message;const c=(o==null?void 0:o.split(" "))??[];if(c.length===1){const u=c[0].trim();if(u!==""){const d=Number(u);Number.isNaN(d)||(l=d)}}else if(c.length>1){const u=c[0]==="HTTP"?c[1]:c[0];if(u){const d=Number(u);Number.isNaN(d)||(l=d)}}}return{parsedError:r,statusCode:l,message:o,modelTitle:i,providerName:s,apiKeyUrl:a}}function bln(){const t=g.useContext(qt);return y.jsxs("div",{className:"flex flex-col gap-1 px-3 pb-2 pt-3",children:[y.jsx("p",{className:"m-0 p-0 text-lg",children:"You're out of credits!"}),y.jsxs("div",{className:"mt-2 flex flex-col gap-1.5",children:[y.jsx("span",{children:"To purchase more or set up auto top-up, click below to visit the billing page:"}),y.jsx("div",{className:"flex flex-row flex-wrap items-center gap-2",children:y.jsxs(Pd,{className:"flex flex-row items-center gap-2 hover:opacity-70",onClick:()=>{t.post("controlPlane/openUrl",{path:"/settings/billing"})},children:[y.jsx(L6e,{className:"h-5 w-5"}),y.jsx("span",{className:"xs:flex hidden",children:"Purchase Credits"})]})})]})]})}const xln=({error:t})=>{const e=vr(),n=g.useContext(qt),r=He(dc),i=He(mZ),{session:s,refreshProfiles:a}=as(),{mainEditor:o}=nh(),{parsedError:l,statusCode:c,message:u,modelTitle:d,providerName:f,apiKeyUrl:h}=g.useMemo(()=>oNe(t,r),[t,r]),m=()=>{a("Clicked reload config from stream error dialog"),e(hi(!1)),e(Ri(void 0))},p=()=>{navigator.clipboard.writeText(l)},v=He(C=>C.session.history),x=h?y.jsxs(Ah,{className:"flex items-center",onClick:()=>n.ide.openUrl(h),children:[y.jsx(tG,{className:"mr-1.5 h-3.5 w-3.5"}),y.jsx("span",{children:"View key"})]}):null,w=ODe(),E=y.jsxs(Ah,{className:"flex items-center",onClick:()=>w(r),children:[y.jsx(Wc,{className:"mr-1.5 h-3.5 w-3.5"}),y.jsx("span",{children:"View config"})]}),S=y.jsxs(Ah,{className:"flex items-center",onClick:()=>{let C=-1;for(let M=v.length-1;M>=0;M--)if(v[M].message.role==="user"||v[M].message.role==="tool"){C=M;break}if(!o){console.error("Main editor not found, cannot resubmit message.");return}const T=C===-1?o.getJSON():v[C].editorState;e(wO({editorState:T,modifiers:{noContext:!0,useCodebase:!1},index:C===-1?0:C})),e(hi(!1)),e(Ri(void 0))},children:[y.jsx(rd,{className:"mr-1.5 h-3.5 w-3.5"}),y.jsx("span",{children:"Resubmit last message"})]});if(l.includes("You're out of credits!"))return y.jsx(bln,{});let _=y.jsx("div",{className:"mb-1 mt-3",children:y.jsxs("div",{className:"m-0 p-0",children:[y.jsxs("p",{className:"m-0 mb-2 p-0",children:["There was an error handling the response from"," ",(r==null?void 0:r.title)||"the model","."]}),y.jsx("p",{className:"m-0 p-0",children:"Please try to submit your message again, and if the error persists, let us know by reporting the issue using the buttons below."}),y.jsx("div",{className:"mt-3",children:S})]})});return c===429&&(_=y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsx("span",{children:`This might mean your ${d} usage has been rate limited + by ${f}.`}),y.jsxs("div",{className:"flex flex-row flex-wrap justify-start gap-3 py-4",children:[x,E]})]})),c===404&&(_=y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsx("span",{children:"Likely causes:"}),y.jsxs("ul",{className:"m-0",children:[y.jsxs("li",{children:[y.jsx("span",{children:"Invalid"}),y.jsx("code",{children:"apiBase"}),r&&y.jsxs(y.Fragment,{children:[y.jsx("span",{children:": "}),y.jsx("code",{children:r.apiBase})]})]}),y.jsxs("li",{children:[y.jsx("span",{children:"Model/deployment not found"}),r&&y.jsxs(y.Fragment,{children:[y.jsx("span",{children:" for: "}),y.jsx("code",{children:r.model})]})]})]}),y.jsx("div",{children:E})]})),c===401&&(_=y.jsxs("div",{className:"flex flex-col gap-2",children:[s&&i&&!t4e(i)&&y.jsxs("div",{className:"flex flex-col gap-1",children:[y.jsx("span",{children:"If your hub secret values may have changed, refresh your agents"}),y.jsx(Pd,{onClick:m,children:"Refresh agent secrets"})]}),y.jsx("span",{children:"It's possible that your API key is invalid."}),y.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[x,E]})]})),c===403&&(_=y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsx("span",{children:"Likely cause: not authorized to access the model deployment."}),y.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[x,E]})]})),u&&(u.toLowerCase().includes("overloaded")||u.toLowerCase().includes("malformed json"))&&(_=y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsx("span",{children:"Most likely, the provider's server(s) are overloaded and streaming was interrupted. Try again later"}),r?y.jsxs("span",{children:["Provider: ",y.jsx("code",{children:r.underlyingProviderName})]}):null]})),y.jsxs("div",{className:"flex flex-col gap-4 px-3 pb-3 pt-3",children:[y.jsx("h3",{className:"text-error m-0 p-0 text-lg font-medium",children:"Error handling model response"}),_,u&&y.jsx("div",{className:"mb-2",children:y.jsx(JY,{title:"View error output",testId:"error-output-toggle",defaultOpen:!0,children:y.jsxs("div",{className:"flex flex-col gap-0 rounded-sm",children:[y.jsx("code",{className:"text-editor-foreground block max-h-48 overflow-y-auto p-3 font-mono text-xs",children:l}),y.jsxs("div",{className:"flex flex-row items-center justify-end gap-2 p-2",children:[y.jsxs(Ah,{onClick:p,className:"flex items-center",children:[y.jsx(N6,{className:"mr-1.5 h-3.5 w-3.5"}),y.jsx("span",{children:"Copy output"})]}),y.jsxs(Ah,{onClick:()=>{n.post("toggleDevTools",void 0)},className:"flex items-center",children:[y.jsx(Wb,{className:"mr-1.5 h-4 w-4"}),y.jsx("span",{className:"text-xs",children:"View Logs"})]})]})]})})}),y.jsxs("div",{children:[y.jsx("span",{className:"text-base font-medium",children:"Report this error"}),y.jsxs("div",{className:"mt-2 flex flex-row flex-wrap items-center gap-2",children:[y.jsxs(Ah,{className:"flex flex-row items-center gap-2 rounded px-3 py-1.5",onClick:()=>{const C=`Error: ${(r==null?void 0:r.title)||"Model"} - ${c||"Unknown error"}`,T=`**Error Details** + +Model: ${(r==null?void 0:r.title)||"Unknown"} +Provider: ${r?`${r.underlyingProviderName}${r.provider==="continue-proxy"?" (continue-proxy)":""}`:"Unknown"} +Status Code: ${c||"N/A"} + +**Error Output** +\`\`\` +${l} +\`\`\` + +**Additional Context** +Please add any additional context about the error here +`,M=`https://github.com/continuedev/continue/issues/new?title=${encodeURIComponent(C)}&body=${encodeURIComponent(T)}`;n.post("openUrl",M)},children:[y.jsx(ww,{className:"h-5 w-5"}),y.jsx("span",{className:"xs:flex hidden",children:"Open GitHub issue"})]}),y.jsxs(Ah,{className:"flex flex-row items-center gap-2 rounded px-3 py-1.5",onClick:()=>{n.post("openUrl",r7e)},children:[y.jsx(ww,{className:"h-5 w-5"}),y.jsx("span",{className:"xs:flex hidden",children:"Discussions"})]})]})]})]})},ap=Cs("chat/cancelStream",async(t,{dispatch:e,extra:n,getState:r})=>{e(cy()),e(ene()),e(e4n())}),O1e=100;async function LE(t,e){const n=await t.request("history/load",{id:e});if(n.status==="error")throw new Error(n.error);return n.content}async function wln(t,e){const n=await t.request("history/loadRemote",{remoteId:e});if(n.status==="error")throw new Error(n.error);return n.content}const AI=Cs("session/refreshMetadata",async({offset:t,limit:e},{dispatch:n,extra:r})=>{const i=await r.ideMessenger.request("history/list",{limit:e,offset:t});if(i.status==="error")throw new Error(i.error);return n(fZe(!1)),n(hZe(i.content)),i.content}),_ln=Cs("session/delete",async(t,{getState:e,dispatch:n,extra:r})=>{n(o4n(t));const i=e();t===i.session.id&&await n(CJ());const s=await r.ideMessenger.request("history/delete",{id:t});if(s.status==="error")throw new Error(s.error);n(AI({}))}),lNe=Cs("session/update",async(t,{extra:e,dispatch:n})=>{n(a4n({sessionId:t.sessionId,title:t.title})),await e.ideMessenger.request("history/save",t),await n(AI({}))}),x_=Cs("session/load",async({sessionId:t,saveCurrentSession:e},{extra:n,dispatch:r})=>{e&&r(Qu({openNewSession:!1,generateTitle:!0}));const i=await LE(n.ideMessenger,t);r(nd(i)),i.chatModelTitle&&r(SJ(i.chatModelTitle))}),kln=Cs("session/loadRemote",async({remoteId:t,saveCurrentSession:e},{extra:n,dispatch:r,getState:i})=>{if(e){const a=await r(Qu({openNewSession:!1,generateTitle:!0}));Kh(a)}const s=await wln(n.ideMessenger,t);r(nd(s)),s.chatModelTitle&&r(SJ(s.chatModelTitle))}),SJ=Cs("session/selectModelForCurrentProfile",async(t,{extra:e,dispatch:n,getState:r})=>{var o,l,c;const i=r(),s=(c=(l=(o=i.config.config)==null?void 0:o.modelsByRole)==null?void 0:l.chat)==null?void 0:c.find(u=>u.title===t),a=mZ(i);a&&s&&await n(My({role:"chat",modelTitle:t,selectedProfile:a}))}),CJ=Cs("session/loadLast",async(t,{extra:e,dispatch:n,getState:r})=>{let i=r().session.lastSessionId;if(!i){n(nd());return}let s;try{s=await LE(e.ideMessenger,i)}catch{await new Promise(a=>setTimeout(a,1e3)),s=await LE(e.ideMessenger,i)}n(nd(s)),s.chatModelTitle&&n(SJ(s.chatModelTitle))});function Sln(t){const e=Q0(t).split(` +`).filter(n=>n.trim()!=="").slice(-1)[0]||"";return e.length>O1e?e.slice(0,O1e-3)+"...":e}const Qu=Cs("session/saveCurrent",async({openNewSession:t,generateTitle:e},{dispatch:n,extra:r,getState:i})=>{var u,d,f,h,m,p;const s=i().session;if(s.history.length===0)return;t&&n(nd());const a=dc(i());let o=s.title;if(o===X4){if(!((u=i().config.config)!=null&&u.disableSessionTitles)&&a){let v=(m=(h=(f=(d=s.history)==null?void 0:d.filter(x=>x.message.role==="assistant")[0])==null?void 0:f.message)==null?void 0:h.content)==null?void 0:m.toString();if(v&&e)try{const x=await r.ideMessenger.request("chatDescriber/describe",{text:v});x.status==="success"&&x.content&&(o=x.content)}catch(x){console.error("Error generating chat title",x)}}o===X4&&(o=Sln(s.history[0].message))}if(!o.length){const v=s.allSessionMetadata.find(x=>x.sessionId===s.id);v!=null&&v.title&&(o=v.title)}o.length||(o=X4);const l={sessionId:s.id,title:o,workspaceDirectory:((p=window.workspacePaths)==null?void 0:p[0])||"",history:s.history,mode:s.mode,chatModelTitle:(a==null?void 0:a.title)??null},c=await n(lNe(l));Kh(c)}),D1e=3,Cln=1e3;function Eln(t){if(!t)return!1;const e=t.toLowerCase();return e.includes("overloaded")||e.includes("malformed json")}const EJ=Cs("chat/streamWrapper",async(t,{dispatch:e,getState:n})=>{for(let r=0;r<=D1e;r++)try{await t(),n().session.isInEdit||await e(Qu({openNewSession:!1,generateTitle:!0}));return}catch(i){const s=n(),a=dc(s),{parsedError:o,statusCode:l,message:c,modelTitle:u,providerName:d}=oNe(i,a);if(Eln(c)&&rsetTimeout(m,h)),await e(ap())}else{await e(ap()),e(Ri(y.jsx(xln,{error:i}))),e(hi(!0));const h={error_type:l?`HTTP ${l}`:"Unknown",error_message:o,model_provider:d,model_title:u};ta.capture("gui_stream_error",h);return}}});function $ln(t,e){return t.toolCallStates?t.toolCallStates.filter(r=>r.status==="done"||r.status==="errored"||e&&r.status==="canceled").length===t.toolCallStates.length:!0}const w_=Cs("chat/streamAfterToolCall",async({toolCallId:t,depth:e=0},{dispatch:n,getState:r})=>{await n(EJ(async()=>{var d;const i=r(),a=YW(i).find(f=>f.toolCallId===t);if(!a)return;const o=a.output??[];n(uZe());const l={role:"tool",content:l2(o),toolCallId:t};n(lZe([l]));const u=r().session.history.findLast(f=>{var h;return f.message.role==="assistant"&&((h=f.toolCallStates)==null?void 0:h.some(m=>m.toolCallId===t))});u&&$ln(u,(d=i.config.config.ui)==null?void 0:d.continueAfterToolRejection)&&Kh(await n(aNe({depth:e+1})))}))}),cNe=Cs("apply/handleStateUpdate",async(t,{dispatch:e,getState:n,extra:r})=>{if(t.streamId===h6e){if(e(GZ(t)),t.status==="closed"){const i=Oc(n().session.history,t.toolCallId);i&&tb(i,!0,!0,r.ideMessenger),e(Of({}))}}else if(e(dZe(t)),t.toolCallId){const i=Oc(n().session.history,t.toolCallId);if(t.status==="done"&&(i!=null&&i.toolCall.function.name)&&n().ui.toolSettings[i.toolCall.function.name]==="allowedWithoutPermission"&&r.ideMessenger.post("acceptDiff",{streamId:t.streamId,filepath:t.filepath}),t.status==="closed"&&i){const s=i.status!=="canceled";tb(i,s,!0,r.ideMessenger);const a=n().session.codeBlockApplyStates.states.find(l=>l.streamId===t.streamId),o=n();a&&Brn(o.session.history,o.config.config,i,a,s,r.ideMessenger),s&&(i.status!=="errored"?(e(tne({toolCallId:t.toolCallId})),t.autoFormattingDiff?e(Fu({toolCallId:t.toolCallId,contextItems:[{icon:"info",name:"Auto-formatting Applied",description:"Editor auto-formatting changes",content:`Along with your edits, the editor applied the following auto-formatting: + +${t.autoFormattingDiff} + +(Note: Pay close attention to changes such as single quotes being converted to double quotes, semicolons being removed or added, long lines being broken into multiple lines, adjusting indentation style, adding/removing trailing commas, etc. This will help you ensure future SEARCH/REPLACE operations to this file are accurate.)`,hidden:!1}]})):e(Fu({toolCallId:t.toolCallId,contextItems:[{name:"Edit Success",content:`Successfully edited ${t.filepath}`,description:"",hidden:!0}]}))):e(Fu({toolCallId:t.toolCallId,contextItems:[{name:"Edit Failed",content:`Failed to edit ${t.filepath}. To continue working with the file, read it again to see the most up-to-date contents`,description:"",hidden:!0}]})),e(w_({toolCallId:t.toolCallId})))}}}),$J=Cs("apply/editTool",async(t,{dispatch:e,getState:n,extra:r})=>{const{toolCallId:i,streamId:s}=t;e(dZe({streamId:s,toolCallId:i,status:"not-started"}));let a=!1;try{(await r.ideMessenger.request("applyToFile",t)).status==="error"&&(a=!0)}catch{a=!0}if(a){const o=n(),l=KY(o,i),c=aDe(o,i);l&&c&&c.status!=="closed"&&l.status==="calling"&&(e(Sk({toolCallId:i})),e(Fu({toolCallId:i,contextItems:[{icon:"problems",name:"Apply Error",description:"Failed to apply changes",content:`Error editing file: failed to apply changes to file. + +Please try again with correct args or notify the user and request further instructions.`,hidden:!1}]})),e(cNe({status:"closed",streamId:c.streamId,toolCallId:i})))}}),Tln=async(t,e,n)=>{if(!t.filepath||!t.changes)throw new Error("`filepath` and `changes` arguments are required to edit an existing file.");let r=t.filepath;r.startsWith("./")&&(r=r.slice(2));let i=await fI(r,n.ideMessenger.ide);if(!i){const a=await n.ideMessenger.ide.getOpenFiles();for(const o of a)if(o.endsWith(r)){i=o;break}}if(!i)throw new Error(`${r} does not exist`);const s=Ma();return n.dispatch($J({streamId:s,text:t.changes,toolCallId:e,filepath:i})),{respondImmediately:!1,output:void 0}};function uNe(t,e,n,r){const i=r!==void 0?`edit at index ${r}: `:"";if(t===void 0||typeof t!="string")throw new zo(xo.FindAndReplaceMissingOldString,`${i}string old_string is required`);if(e===void 0||typeof e!="string")throw new zo(xo.FindAndReplaceMissingNewString,`${i}string new_string is required`);if(t===e)throw new zo(xo.FindAndReplaceIdenticalOldAndNewStrings,`${i}old_string and new_string must be different`);if(n!==void 0&&typeof n!="boolean")throw new zo(xo.FindAndReplaceInvalidReplaceAll,`${i}replace_all must be a valid boolean`);return{oldString:t,newString:e,replaceAll:n}}function M1e({lines:t,fromEnd:e}){t=e?t.slice().reverse():t.slice();const n=[];let r=!0;for(let i=0;i0&&r.old_string==="")throw new zo(xo.FindAndReplaceNonFirstEmptyOldString,`Edit at index ${n}: old_string cannot be empty. Only the first edit can have an empty old_string for insertion at the beginning of the file.`)}return{edits:e}}function Aln(t,e){const n=t.indexOf(e);return n!==-1?{startIndex:n,endIndex:n+e.length}:null}function Oln(t,e){const n=e.trim(),r=t.indexOf(n);return r!==-1?{startIndex:r,endIndex:r+n.length}:null}function Dln(t,e){const n=t.toLowerCase(),r=e.toLowerCase(),i=n.indexOf(r);return i!==-1?{startIndex:i,endIndex:i+e.length}:null}function Mln(t,e){const n=t.replace(/\s/g,""),r=e.replace(/\s/g,"");if(r==="")return null;const i=n.indexOf(r);if(i===-1)return null;let s=-1,a=0;for(let c=0;c0;){const s=Rln(r,e);if(s===null)break;const a={startIndex:s.startIndex+i,endIndex:s.endIndex+i,strategyName:s.strategyName};if(n.length>0&&a.startIndex<=n[n.length-1].startIndex)break;n.push(a),i=a.endIndex,r=t.slice(i)}return n}function TJ(t,e,n,r,i=0){const s=Lln(t,e);if(s.length===0)throw new zo(xo.FindAndReplaceOldStringNotFound,`Edit at index ${i}: string not found in file: "${e}"`);if(r){let a=t;for(let o=s.length-1;o>=0;o--){const l=s[o];a=a.substring(0,l.startIndex)+n+a.substring(l.endIndex)}return a}else{if(s.length>1)throw new zo(xo.FindAndReplaceMultipleOccurrences,`Edit at index ${i}: String "${e}" appears ${s.length} times in the file. Either provide a more specific string with surrounding context to make it unique, or use replace_all=true to replace all occurrences.`);const a=s[0];return t.substring(0,a.startIndex)+n+t.substring(a.endIndex)}}function Pln(t,e){let n=t;for(let r=0;r{const{edits:r}=Iln(t),i=await dNe(t.filepath,n.ideMessenger.ide),s=await n.ideMessenger.ide.readFile(i),a=Pln(s,r),o=Ma();return n.dispatch($J({streamId:o,toolCallId:e,text:a,filepath:i,isSearchAndReplace:!0})),{respondImmediately:!1,output:void 0}},zln=async(t,e,n)=>{const{oldString:r,newString:i,replaceAll:s}=uNe(t.old_string,t.new_string,t.replace_all),a=await dNe(t.filepath,n.ideMessenger.ide),o=await n.ideMessenger.ide.readFile(a),l=TJ(o,r,i,s??!1,0),c=Ma();return n.dispatch($J({streamId:c,toolCallId:e,text:l,filepath:a,isSearchAndReplace:!0})),{respondImmediately:!1,output:void 0}};async function Fln(t,e){const{toolCall:n,parsedArgs:r}=t;try{let i;switch(n.function.name){case ti.EditExistingFile:i=await Tln(r,n.id,e);break;case ti.SingleFindAndReplace:i=await zln(r,n.id,e);break;case ti.MultiEdit:i=await jln(r,n.id,e);break;default:throw new Error(`Invalid client tool name ${n.function.name}`)}return i}catch(i){return{respondImmediately:!0,error:i instanceof zo?i:i instanceof Error?new zo(xo.Unspecified,i.message):new zo(xo.Unknown,String(i)),output:void 0}}}const PE=Cs("chat/callTool",async(t,{dispatch:e,extra:n,getState:r})=>{const{toolCallId:i,isAutoApproved:s,depth:a=0}=t,o=r(),l=Oc(o.session.history,i);if(!l){console.warn(`Tool call with ID ${i} not found`);return}if(l.status!=="generated")return;const c=Date.now(),u=dc(o);if(ta.capture("tool_call_decision",{model:u,decision:s?"auto_accept":"accept",toolName:l.toolCall.function.name,toolCallId:i}),!u)throw new Error("No model selected");e(r4n({toolCallId:i}));let d,f,h,m;if(z0t.find(v=>v===l.toolCall.function.name)){const{output:v,respondImmediately:x,error:w}=await Fln(l,{dispatch:e,ideMessenger:n.ideMessenger,getState:r});d=v,h=w,m=x}else{const v=await n.ideMessenger.request("tools/call",{toolCall:l.toolCall});if(v.status==="error")throw new Error(v.error);d=v.content.contextItems,f=v.content.mcpUiState,h=v.content.errorMessage?new zo(v.content.errorReason||xo.Unspecified,v.content.errorMessage):void 0,m=!0}h?e(Fu({toolCallId:i,contextItems:[{icon:"problems",name:"Tool Call Error",description:"Tool Call Failed",content:`${l.toolCall.function.name} failed with the message: ${h.message} + +Please try something else or request further instructions.`,hidden:!1}]})):d!=null&&d.length&&e(Fu({toolCallId:i,contextItems:d,mcpUiState:f}));const p=Date.now()-c;if(ta.capture("tool_call_outcome",{model:u,succeeded:!h,toolName:l.toolCall.function.name,errorReason:h==null?void 0:h.reason,duration_ms:p}),m){h?(tb(l,!1,!1,n.ideMessenger,d),e(Sk({toolCallId:i}))):(tb(l,!0,!0,n.ideMessenger,d),e(tne({toolCallId:i})));const v=await e(w_({toolCallId:i,depth:a+1}));Kh(v)}else e(cy())});function Bln({label:t,current:e,total:n}){const r=Math.min(e/n*100,100);return y.jsxs("div",{className:"mb-4",children:[y.jsxs("div",{className:"mb-1 flex justify-between text-xs",children:[y.jsx("span",{children:t}),y.jsxs("span",{children:["$",(e/100).toFixed(2)," / $",(n/100).toFixed(2)]})]}),y.jsx("div",{className:"h-2 w-full rounded-full bg-gray-700",children:y.jsx("div",{className:"h-2 rounded-full transition-all duration-300",style:{width:`${r}%`,backgroundColor:k$}})})]})}function Uln({creditStatus:t}){const n=50-(t.creditBalance??0);return y.jsx(Bln,{label:"Starter credits usage",current:n,total:50})}function qln({creditStatus:t,refreshCreditStatus:e,children:n}){const r=g.useContext(qt),{refreshProfiles:i}=as(),[s,a]=g.useState(!1),o=async()=>{await r.request("controlPlane/openUrl",{path:"setup-models/api-keys",orgSlug:void 0})},l=async()=>{await r.request("controlPlane/openUrl",{path:"settings/billing",orgSlug:void 0})},c=async()=>{jd("hasExitedFreeTrial",!0)},u=async()=>{if(s)return;a(!0);const d=[i("Manual refresh from starter credits button")];e&&d.push(e());try{await Promise.all(d)}finally{a(!1)}};return y.jsxs(Vd,{children:[y.jsx(Uu,{as:"span",className:"!m-0 !flex-none !gap-0 !border-none !bg-transparent !p-0",children:n}),y.jsx(sT,{children:y.jsx(Zd,{className:"pb-0",children:y.jsxs("div",{className:"relative max-w-96 px-4 pb-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(eG,{className:"h-4 w-4"}),y.jsx("h3",{className:"text-sm font-semibold",children:"Starter credits"})]}),y.jsxs("div",{className:"absolute right-3 top-3 flex items-center gap-1",children:[y.jsx(xw,{onClick:()=>{u()},tooltipContent:"Refresh credit usage",children:y.jsx(rd,{className:_l("h-3 w-3",s&&"animate-spin-slow")})}),y.jsx(xw,{onClick:c,tooltipContent:"Hide starter credits usage",children:y.jsx(Hd,{className:"h-3 w-3"})})]}),y.jsx("div",{className:"mb-4",children:y.jsxs("span",{className:"text-description",children:["You are currently using starter credits for Continue, which allows you to use a variety of frontier models at cost. Read more"," ",y.jsx("span",{onClick:async()=>{await r.request("controlPlane/openUrl",{path:"pricing",orgSlug:void 0})},className:"cursor-pointer text-blue-400 underline hover:text-blue-300",children:"here"}),"."]})}),t?y.jsx(Uln,{creditStatus:t}):y.jsx("div",{className:"mb-4 flex items-center justify-center py-8",children:y.jsx("span",{className:"text-description",children:"Loading credit usage..."})}),y.jsxs("div",{className:"mt-4 flex gap-2",children:[y.jsx(Pd,{className:"flex-1",onClick:o,children:"Setup API Keys"}),y.jsx(op,{className:"flex-1",onClick:l,children:"Purchase Credits"})]})]})})})]})}function Hln(t){if(!t)return!1;const e=t.modelsByRole,n=[...Object.values(e)].flat();try{return n==null?void 0:n.some(Wln)}catch(r){console.error("Error checking for free trial API key:",r)}return!1}const Wln=t=>t.apiKeyLocation?Vin(t.apiKeyLocation).secretType===Aa.FreeTrial:!1;function Vln(t,e){return t&&!e.hasCredits&&!e.hasPurchasedCredits}function Zln(){const t=He(c=>c.config.config),e=g.useContext(qt),[n,r]=g.useState(null),i=to("hasExitedFreeTrial"),s=Hln(t),a=s&&!i,o=n?Vln(s,n):!1,l=g.useCallback(async()=>{try{const c=await e.request("controlPlane/getCreditStatus",void 0);c.status==="success"&&r(c.content)}catch(c){console.error("Failed to refresh credit status",c)}},[e]);return g.useEffect(()=>{l();let c=null;return a&&(c=setInterval(()=>{l()},15e3)),()=>{c&&clearInterval(c)}},[a,l]),{creditStatus:n,outOfStarterCredits:o,isUsingFreeTrial:a,refreshCreditStatus:l}}const Yl={HOME:"/",HOME_INDEX:"/index.html",CONFIG:"/config",THEME:"/theme",STATS:"/stats"},k3=t=>t?`${Yl.CONFIG}?tab=${t}`:Yl.CONFIG,Rc={MODELS:k3("models"),RULES:k3("rules"),TOOLS:k3("tools"),CONFIGS:k3("configs"),ORGANIZATIONS:k3("organizations")};function OI(t){return t!==void 0&&t.AUTH_TYPE==="on-prem"}function IJ({assistant:t,size:e="h-4 w-4"}){return t4e(t)?y.jsx(N6e,{className:`text-foreground ${e} flex-shrink-0`}):t.iconUrl?y.jsx("img",{src:t.iconUrl,className:`${e} flex-shrink-0 rounded-full`,alt:""}):y.jsx(R6,{className:`${e} flex-shrink-0`})}function Gln({profile:t,selected:e,onClick:n}){var l;jf(-4);const r=wa(),i=vr(),s=g.useContext(qt),a=g.useMemo(()=>{var c;return!!((c=t.errors)!=null&&c.find(u=>u.fatal))},[t.errors]);function o(){i(Kv(t.id)),s.post("didChangeSelectedProfile",{id:t.id}),n()}return y.jsx(Zs,{value:t.id,disabled:a,onClick:a?void 0:o,fontSizeModifier:-2,className:`group ${e?"bg-list-active text-list-active-foreground":""}`,children:y.jsxs("div",{className:"flex w-full items-center justify-between gap-10 py-0.5",children:[y.jsxs("div",{className:"flex w-full items-center gap-3",children:[y.jsx("div",{className:"flex h-4 w-4 flex-shrink-0 items-center justify-center",children:y.jsx(IJ,{assistant:t})}),y.jsx("span",{className:`line-clamp-1 flex-1 ${e?"font-semibold":""} ${t.errors&&t.errors.length>0?"text-error":""}`,children:t.title})]}),y.jsxs("div",{className:"flex flex-row items-center gap-1.5",children:[y.jsx(ai,{variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-4 w-4 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:c=>{c.stopPropagation(),s.post("config/openProfile",{profileId:t.id}),n()},children:y.jsx(Wc,{className:"h-3.5 w-3.5"})}),t.errors&&((l=t.errors)==null?void 0:l.length)>0&&y.jsx(Ln,{content:"View errors",children:y.jsx(ai,{variant:"ghost",size:"sm",className:"text-error hover:enabled:text-error my-0 h-4 w-4 p-0",onClick:c=>{c.stopPropagation(),r(Rc.CONFIGS)},children:y.jsx(mp,{className:"h-3.5 w-3.5"})})})]})]})})}function Kln({selectedProfileId:t,onClose:e}){const{profiles:n}=as();return y.jsx("div",{className:"thin-scrollbar flex max-h-32 flex-col overflow-y-auto",children:(n==null?void 0:n.length)===0?y.jsx("div",{className:"text-vsc-foreground px-3 py-2 opacity-70",children:"No config found"}):n==null?void 0:n.map((r,i)=>y.jsx(Gln,{profile:r,onClick:e,selected:r.id===t},i))})}function Yln(t,e="sm"){const n=e==="sm"?"h-3.5 w-3.5":"xs:h-4 xs:w-4 h-3 w-3";if(t.iconUrl)return y.jsx("img",{src:t.iconUrl,alt:"",className:`${n} flex-shrink-0 rounded-full`});const r=t.name==="Personal"?e==="md"?__e:zq:x_e;return y.jsx(r,{className:`${n} flex-shrink-0`})}function Jln({organization:t,onClose:e}){const n=vr(),r=wa(),i=g.useContext(qt),a=He(l=>l.profiles.selectedOrganizationId)===t.id;function o(){n(pZ(t.id)),i.post("didChangeSelectedOrg",{id:t.id}),e()}return y.jsx(Zs,{value:t.id,onClick:o,fontSizeModifier:-2,className:`group ${a?"bg-list-active text-list-active-foreground":""}`,children:y.jsxs("div",{className:"flex w-full items-center justify-between gap-10 py-0.5",children:[y.jsxs("div",{className:"flex w-full items-center gap-3",children:[y.jsx("div",{className:"flex h-4 w-4 flex-shrink-0 items-center justify-center",children:Yln(t,"sm")}),y.jsx("span",{className:`line-clamp-1 flex-1 ${a?"font-semibold":""}`,children:t.name})]}),y.jsx("div",{className:"flex flex-row items-center gap-1.5",children:y.jsx(ai,{variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-4 w-4 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:l=>{l.stopPropagation(),r(Rc.ORGANIZATIONS),e()},children:y.jsx(Wc,{className:"h-3.5 w-3.5"})})})]})})}function Xln({onClose:t}){const{organizations:e}=as();return y.jsx("div",{className:"thin-scrollbar flex max-h-24 flex-col overflow-y-auto",children:e.map(n=>y.jsx(Jln,{organization:n,onClose:t},n.id))})}function Qln({selectedProfile:t,variant:e}){const n=He(o=>o.config.loading),r=e==="sidebar",i=r?"h-4 w-4":"h-3 w-3",s=r?"px-2 py-1.5":"px-0 py-0.5",a=r?{}:{fontSize:vo(-3)};return y.jsx(Uu,{"data-testid":"assistant-select-button",className:`text-description overflow-hidden border-none bg-transparent hover:brightness-110 ${r?"w-full justify-start":"gap-1.5"} ${s}`,style:a,children:y.jsxs("div",{className:`flex flex-row items-center ${r?"w-full justify-between":"gap-1.5"}`,children:[y.jsx("div",{className:"flex min-w-0 flex-1 flex-row items-center gap-2",children:t===null?"Set up config file":n?y.jsxs("span",{className:"text-description flex flex-row items-center",children:[y.jsx(mwt,{className:_l(`text-description mr-1.5 ${i}`,n&&"animate-spin-slow")}),"Loading"]}):y.jsxs(y.Fragment,{children:[t.iconUrl&&y.jsx(IJ,{assistant:t,size:i}),y.jsx("span",{className:"xs:line-clamp-1 hidden select-none text-xs",children:t.title})]})}),y.jsx(eo,{className:`text-description ml-0.5 h-3 w-3 flex-shrink-0 select-none ${r&&"hidden md:block"}`,"aria-hidden":"true"})]})})}function fNe({variant:t="sidebar"}){const e=vr(),n=wa(),r=g.useRef(null),i=He(cp),s=g.useContext(qt),{profiles:a,selectedProfile:o,session:l,logout:c,login:u,organizations:d,refreshProfiles:f}=as(),h=He(_=>_.config.loading),m=jf(-4),p=l&&d.length>1&&!OI(l);function v(){const _=new KeyboardEvent("keydown",{key:"Escape"});document.dispatchEvent(_)}function x(){l?s.request("controlPlane/openUrl",{path:"/new",orgSlug:i==null?void 0:i.slug}):s.request("config/newAssistantFile",void 0),v()}function w(){s.request("controlPlane/openUrl",{path:"/organizations/new"}),v()}function E(){n(Rc.CONFIGS),v()}function S(){n(Rc.ORGANIZATIONS),v()}return g.useEffect(()=>{let _=0;const C=800,T=M=>{if(M.key==="'"&&mg(M)&&M.shiftKey){const A=Date.now();if(A-_>=C){_=A;const $=(a==null?void 0:a.map(D=>D.id))??[];if($.length<2)return;let O=$[0];if(o){const N=($.indexOf(o.id)+1)%$.length;O=$[N]}e(Kv(O)),s.post("didChangeSelectedProfile",{id:O})}}};return window.addEventListener("keydown",T),()=>{window.removeEventListener("keydown",T)}},[i,o]),y.jsx(Vd,{children:y.jsxs("div",{className:"relative",ref:r,children:[y.jsx(Qln,{selectedProfile:o,variant:t}),y.jsx(sT,{children:y.jsxs(Zd,{className:"max-h-32 scale-x-[97%] overflow-y-auto pb-0",style:{zIndex:200},children:[y.jsxs("div",{className:"flex items-center justify-between px-1.5 py-1",children:[y.jsx("span",{className:"text-description text-xs font-medium",children:"Configs"}),y.jsxs("div",{className:"flex items-center gap-0.5",children:[y.jsx(ai,{onClick:_=>{_.stopPropagation(),x()},variant:"ghost",size:"sm",className:"my-0 h-5 w-5 p-0",children:y.jsx(K0,{className:"text-description h-3.5 w-3.5"})}),y.jsx(ai,{onClick:_=>{_.stopPropagation(),E()},variant:"ghost",size:"sm",className:"my-0 h-5 w-5 p-0",children:y.jsx(Wc,{className:"text-description h-3.5 w-3.5"})})]})]}),y.jsx(Kln,{selectedProfileId:o==null?void 0:o.id,onClose:v}),p&&y.jsxs(y.Fragment,{children:[y.jsx(bo,{className:"!mb-0.5 !mt-0"}),y.jsxs("div",{className:"flex items-center justify-between px-1.5 py-1",children:[y.jsx("span",{className:"text-description text-xs font-medium",children:"Organizations"}),y.jsxs("div",{className:"flex items-center gap-0.5",children:[y.jsx(ai,{onClick:_=>{_.stopPropagation(),w()},variant:"ghost",size:"sm",className:"my-0 h-5 w-5 p-0",children:y.jsx(K0,{className:"text-description h-3.5 w-3.5"})}),y.jsx(ai,{onClick:_=>{_.stopPropagation(),S()},variant:"ghost",size:"sm",className:"my-0 h-5 w-5 p-0",children:y.jsx(Wc,{className:"text-description h-3.5 w-3.5"})})]})]}),y.jsx(Xln,{onClose:v}),y.jsx(bo,{className:"!mb-0 mt-0.5"})]}),t!=="sidebar"&&y.jsxs("div",{children:[y.jsx(ai,{onClick:_=>{_.stopPropagation(),f("Manual refresh from assistant list")},variant:"ghost",size:"sm",className:"text-description hover:bg-input my-0 w-full justify-start py-1.5 pl-1 text-left",children:y.jsxs("div",{className:"flex w-full items-center",children:[y.jsx(rd,{className:_l("ml-1.5 mr-2 h-3.5 w-3.5 flex-shrink-0",h&&"animate-spin-slow")}),y.jsx("span",{className:"text-2xs",children:"Reload"})]})}),l?y.jsx(ai,{onClick:_=>{_.stopPropagation(),c(),v()},variant:"ghost",size:"sm",className:"text-description hover:bg-input my-0 w-full justify-start py-1.5 pl-1 text-left",children:y.jsxs("div",{className:"flex w-full items-center",children:[y.jsx(iC,{className:"ml-1.5 mr-2 h-3.5 w-3.5 flex-shrink-0"}),y.jsx("span",{className:"text-2xs",children:"Log out"})]})}):y.jsx(ai,{onClick:_=>{_.stopPropagation(),u(!1),v()},variant:"ghost",size:"sm",className:"text-description hover:bg-input my-0 w-full justify-start py-1.5 pl-1 text-left",children:y.jsxs("div",{className:"flex w-full items-center",children:[y.jsx(iC,{className:"ml-1.5 mr-2 h-3.5 w-3.5 flex-shrink-0 rotate-180"}),y.jsx("span",{className:"text-2xs",children:"Log in"})]})}),y.jsx(bo,{className:"!mt-0"})]}),y.jsx("div",{children:y.jsx("div",{className:"text-description flex items-center justify-start px-2 py-1",children:y.jsxs("span",{className:"block",style:{fontSize:m},children:[y.jsxs("code",{children:[Ho()," ⇧ '"]})," to toggle config"]})})})]})})]})})}function ecn(){const t=wa(),e=vr(),{selectedProfile:n}=as(),r=He(p=>p.config.configError),i=g.useContext(qt),s=He(lg),a=He(p=>sDe(p,"calling")),o=s.length>0||a.length>0,l=r&&(r==null?void 0:r.length)>0,{creditStatus:c,isUsingFreeTrial:u,refreshCreditStatus:d}=Zln(),f=()=>{n&&(e(Kv(n.id)),i.post("didChangeSelectedProfile",{id:n.id})),t(Rc.RULES)},h=()=>{n&&(e(Kv(n.id)),i.post("didChangeSelectedProfile",{id:n.id})),t(Rc.TOOLS)},m=()=>{n&&(e(Kv(n.id)),i.post("didChangeSelectedProfile",{id:n.id})),t(Rc.MODELS)};return y.jsxs("div",{className:"flex flex-1 items-center justify-between gap-3",children:[y.jsxs("div",{className:"flex items-center gap-1",children:[l&&y.jsx(Ln,{delayShow:700,content:"View configuration errors",children:y.jsx("div",{role:"button",tabIndex:0,onClick:()=>t(Rc.CONFIGS),onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),t(Rc.CONFIGS))},"data-testid":"block-settings-toolbar-icon-error",className:"relative flex cursor-pointer select-none items-center rounded-full px-1.5 py-1 sm:px-1.5",children:y.jsx(mp,{className:"text-warning h-[13px] w-[13px] flex-shrink-0","aria-hidden":"true"})})}),!o&&y.jsxs("div",{className:"flex items-center gap-1.5",children:[u&&y.jsx(Ln,{content:"View remaining starter credits",children:y.jsx(qln,{creditStatus:c,refreshCreditStatus:d,children:y.jsx(fl,{px:2,children:y.jsx(eG,{className:"text-description-muted h-3 w-3 hover:brightness-125"})})})}),y.jsx(Ln,{content:"Configure rules",children:y.jsx(fl,{onClick:f,px:2,children:y.jsx(Em,{className:"text-description-muted h-3 w-3 hover:brightness-125"})})}),y.jsx(Ln,{content:"Configure tools",children:y.jsx(fl,{onClick:h,px:2,children:y.jsx(L6,{className:"text-description-muted h-3 w-3 hover:brightness-125"})})}),y.jsx(Ln,{content:"Configure models",children:y.jsx(fl,{onClick:m,px:2,children:y.jsx(_g,{className:"text-description-muted h-3 w-3 hover:brightness-125"})})})]})]}),y.jsx(Ln,{place:"top",content:"Select Config",children:y.jsx("div",{children:y.jsx(fNe,{variant:"lump"})})})]})}function hNe({applyStates:t,onAcceptOrReject:e}){const n=t.filter(l=>l.status==="done"),r=g.useContext(qt),i=vr();async function s(l){if(l==="rejectDiff")for(const c of n)c.toolCallId&&c.status==="done"&&i(e6({toolCallId:c.toolCallId}));for(const{filepath:c="",streamId:u}of n)r.post(l,{filepath:c,streamId:u});e&&e(l)}const a=`${Ho()}⇧⌫`,o=`${Ho()}⇧⏎`;return y.jsxs("div",{className:"flex flex-row items-center justify-evenly gap-3 px-3","data-testid":"accept-reject-all-buttons",children:[y.jsx(Ln,{content:`Reject All (${a})`,children:y.jsx("button",{className:"text-foreground flex cursor-pointer flex-row flex-wrap justify-center gap-1 border-none bg-transparent p-0 text-xs opacity-80 hover:opacity-100 hover:brightness-125",onClick:()=>s("rejectDiff"),"data-testid":"edit-reject-button",children:y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[y.jsx(Hd,{className:"text-error h-4 w-4"}),y.jsx("span",{className:"hidden sm:inline",children:"Reject"}),y.jsx("span",{className:"text-lightgray -ml-1.5 hidden scale-75 text-xs md:inline",children:a})]})})}),y.jsx(Ln,{content:`Accept All (${o})`,children:y.jsx("button",{className:"text-foreground flex cursor-pointer flex-row flex-wrap justify-center gap-1 border-none bg-transparent p-0 text-xs opacity-80 hover:opacity-100 hover:brightness-125",onClick:()=>s("acceptDiff"),"data-testid":"edit-accept-button",children:y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[y.jsx(Ql,{className:"text-success h-4 w-4"}),y.jsx("span",{className:"hidden sm:inline",children:"Accept"}),y.jsx("span",{className:"text-lightgray -ml-1.5 hidden scale-75 text-xs md:inline",children:o})]})})})]})}function tcn(){const t=vr(),e=He(i=>i.editModeState.applyState),{mainEditor:n}=nh(),r=g.useContext(qt);return y.jsxs("div",{className:"text-description-muted flex items-center justify-between py-0.5 text-xs",children:[y.jsx("div",{className:"bg-badge rounded px-1.5",children:y.jsx("span",{children:`${e.numDiffs} diff${e.numDiffs!==1?"s":""}`})}),y.jsx(hNe,{applyStates:[e],onAcceptOrReject:async i=>{i==="acceptDiff"?(await t(Of({})),r.post("focusEditor",void 0)):n==null||n.commands.focus()}})]})}function ncn(t){let n=`${qu(t.filepath)}`;if("range"in t){const r=t.range.start.line+1,i=t.range.end.line+1;n+=r===i?` - Inserting at line ${r}`:` (${r} - ${i})`}return n}function rcn(){const t=vr(),e=g.useContext(qt),n=He(s=>s.session.mode),r=He(s=>s.editModeState.codeToEdit[0]),i=async()=>{t(Of({})),e.post("focusEditor",void 0)};return y.jsxs("div",{className:"text-description-muted flex items-center justify-between gap-3 text-xs",children:[y.jsxs("span",{className:"flex cursor-pointer items-center whitespace-nowrap hover:brightness-125",onClick:i,children:[y.jsx(D6,{className:"mr-1 h-2.5 w-2.5"}),"Back to ",n.charAt(0).toUpperCase()+n.slice(1)]}),y.jsxs("span",{className:"truncate",children:["Editing:"," ",y.jsx("span",{className:"italic",children:ncn(r)})]})]})}function AJ({text:t="Generating",testId:e}){return y.jsxs("div",{className:"text-description flex items-center","data-testid":e,children:[y.jsx("span",{className:"text-xs",children:t}),y.jsx(u_,{})]})}const icn=()=>{const t=g.useContext(qt),e=vr(),n=window.location.protocol==="jb-api:";return y.jsxs("div",{className:"flex w-full items-center justify-between",children:[y.jsx(AJ,{text:"Applying",testId:"notch-applying-text"}),y.jsxs("div",{"data-testid":"notch-applying-cancel-button",className:"text-description text-2xs cursor-pointer p-0.5 pr-1 hover:brightness-125",onClick:()=>{e(ap()),t.post("rejectDiff",{})},children:[n?S$():Ho()," ⌫ Cancel"]})]})};function scn({pendingApplyStates:t}){const e=t.reduce((n,r)=>{const i=r.filepath||"";return n[i]||(n[i]=[]),n[i].push(r),n},{});return y.jsx("div",{className:"flex flex-col gap-2",children:Object.entries(e).map(([n,r])=>y.jsxs("div",{className:"flex justify-between gap-3",children:[n&&y.jsxs("span",{className:"bg-badge flex min-w-0 max-w-[75%] items-center gap-1 truncate rounded pr-1 text-xs",children:[y.jsx(t5,{filename:n,height:"18px",width:"18px"}),y.jsx("span",{className:"truncate",children:qu(n)})]}),y.jsx(hNe,{applyStates:r,onAcceptOrReject:async()=>{}})]},n))})}const acn=`The user skipped the tool call. +If the tool call is optional or non-critical to the main goal, skip it and continue with the next step. +If the tool call is essential, try an alternative approach. +If no alternatives exist, offer to pause here.`,ocn=Cs("chat/cancelToolCall",async({toolCallId:t},{dispatch:e,getState:n})=>{var o;const r=n(),i=dc(r),s=(o=r.config.config.ui)==null?void 0:o.continueAfterToolRejection,a=Oc(r.session.history,t);a&&ta.capture("tool_call_decision",{model:i,decision:"reject",toolName:a.toolCall.function.name,toolCallId:t}),s&&e(Fu({toolCallId:t,contextItems:[{icon:"problems",name:"Tool Call Rejected",description:"User skipped the tool call",content:acn,hidden:!0}]})),e(e6({toolCallId:t})),e(w_({toolCallId:t}))}),N1e=(t,e)=>`${t}-tool-call-button-${e}`;function lcn(){const t=vr(),e=Go(),n=He(lg),r=nh();if(n.length===0)return null;const i=a=>{t(PE({toolCallId:a}))},s=a=>{var o;n.length===1&&((o=r.mainEditor)==null||o.commands.focus()),t(ocn({toolCallId:a}))};return y.jsx("div",{className:"flex w-full flex-col pb-0.5",children:n.map((a,o)=>{var l;return y.jsxs("div",{className:"border-input bg-input flex items-center gap-2 rounded border",children:[y.jsx("span",{className:"text-description flex-1 truncate text-xs italic",children:((l=a.tool)==null?void 0:l.displayTitle)??a.toolCall.function.name}),y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsxs(ai,{variant:"ghost",size:"sm",className:"text-description-muted my-1 font-medium",onClick:()=>s(a.toolCallId),"data-testid":N1e("reject",a.toolCallId),children:[o===0&&y.jsxs("span",{className:"text-2xs mr-1",children:[e?S$():Ho(),"⌫"]}),y.jsx("span",{children:"Reject"})]}),y.jsxs(ai,{variant:"primary",size:"sm",className:"my-1 font-medium",onClick:()=>i(a.toolCallId),"data-testid":N1e("accept",a.toolCallId),children:[o===0&&y.jsxs("span",{className:"text-2xs mr-1",children:[Ho(),"⏎"]}),y.jsx("span",{children:"Accept"})]})]})]},a.toolCallId)})})}function R1e({onStop:t,displayText:e="Stop"}){const n=Go();return y.jsxs("div",{className:"flex w-full items-center justify-between",children:[y.jsx(AJ,{}),y.jsxs("div",{onClick:t,className:"text-2xs cursor-pointer px-1.5 py-0.5 hover:brightness-125",children:[y.jsx("span",{className:"text-description",children:e}),y.jsxs("span",{className:"text-description-muted ml-1 opacity-75",children:[n?S$():Ho(),"⌫"]})]})]})}const ccn=Dn.div` + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +`,ucn=Dn.div` + font-size: ${la()-3}px; + padding: 2px; + padding-right: 4px; + cursor: pointer; +`;function dcn(){const t=g.useContext(qt);return y.jsxs(ccn,{children:[y.jsx(AJ,{}),y.jsx(ucn,{className:"text-description",onClick:()=>{t.post("tts/kill",void 0)},children:"■ Stop TTS"})]})}const fcn=t=>(t.metaKey||t.ctrlKey)&&t.key==="Enter",hcn=(t,e)=>{const n=t.metaKey||t.ctrlKey,r=t.altKey;return(e?r:n)&&t.key==="Backspace"},pcn=t=>{var e,n;return((n=(e=t==null?void 0:t.toolCall)==null?void 0:e.function)==null?void 0:n.name)===ti.RunTerminalCommand};function mcn(){const t=vr(),e=g.useContext(qt),n=He(w=>w.ui.ttsActive),r=He(w=>w.session.isStreaming),i=He(w=>w.session.isInEdit),s=Go(),a=He(lg),o=He(knn),l=He(w=>w.editModeState.applyState),c=He(w=>w.session.codeBlockApplyStates.states),u=c.filter(w=>w.status==="done"),d=c.some(w=>w.status==="streaming"),f=nh(),m=He(w=>sDe(w,"calling")).filter(pcn),p=m.length>0,v=async()=>{if(m.length===0)return;const w=m.map(async E=>{try{await e.request("process/killTerminalProcess",{toolCallId:E.toolCallId}),t(e6({toolCallId:E.toolCallId})),tb(E,!1,!0,e)}catch(S){console.error(`Failed to cancel terminal command ${E.toolCallId}:`,S)}});await Promise.all(w)},x=async()=>{p&&await v(),r&&t(ap())};if(g.useEffect(()=>{if(!o&&!p)return;const w=E=>{var S;fcn(E)&&o?(E.preventDefault(),E.stopPropagation(),t(PE({toolCallId:o.toolCallId}))):hcn(E,s)&&(E.preventDefault(),E.stopPropagation(),p?x():o&&(a.length===1&&((S=f.mainEditor)==null||S.commands.focus()),t(e6({toolCallId:o.toolCallId})),tb(o,!1,!0,e)))};return document.addEventListener("keydown",w),()=>{document.removeEventListener("keydown",w)}},[o,a,f,p,m]),d)return y.jsx(icn,{});if(i)return l.status==="done"?y.jsx(tcn,{}):y.jsx(rcn,{});if(n)return y.jsx(dcn,{});if(p){const w=m.length,E=`Stop Terminal${w>1?` (${w})`:""}`;return y.jsx(R1e,{onStop:x,displayText:E})}return r?y.jsx(R1e,{onStop:()=>t(ap())}):a.length>0?y.jsx(lcn,{}):u.length>0?y.jsx(scn,{pendingApplyStates:u}):y.jsx(ecn,{})}function gcn(){return y.jsx("div",{className:"bg-input rounded-t-default border-command-border mx-1.5 border-l border-r border-t",children:y.jsx("div",{className:"xs:px-2 px-1 py-0.5",children:y.jsx(mcn,{})})})}const vcn=["codebase","tree","open","web","diff","folder","search","debugger","repo-map"],ycn=["yaml-prompt-block","mcp-prompt","prompt-file-v1","prompt-file-v2","invokable-rule","json-custom-command"];function bcn(t){const e=He(h=>h.session.isStreaming),n=He(mrn),r=He(h=>h.config.config.contextProviders),i=He(h=>h.session.isInEdit),s=He(h=>h.editModeState),a=g.useMemo(()=>i?n.filter(h=>h.slashCommandSource?ycn.includes(h.slashCommandSource):!1):n,[i,n]),o=g.useMemo(()=>i?(r==null?void 0:r.filter(h=>!vcn.includes(h.title)))??[]:r??[],[r,i]),l=i?"edit":"chat",c=i?"Edit selected code":void 0,u=g.useMemo(()=>i?{hideAddContext:!1,hideImageUpload:!1,hideUseCodebase:!0,hideSelectModel:!1,enterText:s.applyState.status==="done"?"Retry":"Edit"}:{},[i,s.applyState.status]),{appliedRules:d=[],contextItems:f=[]}=t;return y.jsxs("div",{className:`${t.hidden?"hidden":""}`,"data-testid":`continue-input-box-${t.inputId}`,children:[y.jsxs("div",{className:"relative flex flex-col px-2",children:[t.isMainInput&&y.jsx(gcn,{}),y.jsx(Lrn,{loading:e&&(t.isLastUserInput||i)?1:0,borderColor:e&&(t.isLastUserInput||i)?void 0:qo,borderRadius:oa,children:y.jsx($xn,{editorState:t.editorState,onEnter:t.onEnter,placeholder:c,isMainInput:t.isMainInput??!1,availableContextProviders:o,availableSlashCommands:a,historyKey:l,toolbarOptions:u,inputId:t.inputId})})]}),(d.length>0||f.length>0)&&y.jsxs("div",{className:"mt-2 flex flex-col",children:[y.jsx(Nrn,{appliedRules:t.appliedRules}),y.jsx(Trn,{contextItems:t.contextItems,isCurrentContextPeek:t.isLastUserInput})]})]})}const L1e=g.memo(bcn),pNe=()=>{const t=vr(),e=g.useContext(qt),n=He(r=>r.session.id);return async r=>{if(n)try{t(o2e({index:r,loading:!0})),await e.request("conversation/compact",{index:r,sessionId:n}),t(x_({sessionId:n,saveCurrentSession:!1}))}catch(i){console.error("Error compacting conversation:",i)}finally{t(o2e({index:r,loading:!1}))}}},xcn=()=>{const t=vr();return e=>{t(n4n(e)),t(Qu({openNewSession:!1,generateTitle:!1}))}};function wcn(t){const[e,n]=g.useState(!0),r=He(s=>s.session.compactionLoading[t.index]||!1),i=xcn();return!t.item.conversationSummary&&!r?null:r?y.jsx("div",{className:"mx-1.5 mb-4 mt-2",children:y.jsx("div",{className:"bg-vsc-input-background rounded-md shadow-sm",children:y.jsxs("div",{className:"text-description flex items-center justify-start px-3 py-2 text-xs",children:[y.jsx("span",{children:"Generating conversation summary"}),y.jsx(u_,{})]})})}):y.jsx("div",{className:"mx-1.5 mb-4 mt-2",children:y.jsxs("div",{className:"bg-vsc-input-background rounded-md shadow-sm",children:[y.jsxs("div",{className:"text-description flex cursor-pointer items-center gap-2 px-3 py-2 text-xs transition-colors duration-200 hover:brightness-105",onClick:()=>n(!e),children:[e?y.jsx(w_e,{className:"h-3 w-3"}):y.jsx(_wt,{className:"h-3 w-3"}),y.jsx("span",{className:"flex-1",children:"Conversation Summary"}),y.jsx(zs,{text:"Delete summary",onClick:s=>{s.stopPropagation(),i(t.index)},children:y.jsx(kg,{className:"text-description-muted h-3 w-3"})})]}),e&&y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"border-border border-0 border-t border-solid"}),y.jsx("div",{className:"max-h-[400px] overflow-y-auto px-3 pb-3 pt-2",children:y.jsx(h5,{isRenderingInStepContainer:!0,source:t.item.conversationSummary,itemIndex:t.index,useParentBackgroundColor:!0})})]})]})})}function _cn({item:t}){const[e,n]=g.useState(void 0),r=g.useContext(qt),i=He(a=>a.session.id),s=a=>{var o;if(n(a),(o=t.promptLogs)!=null&&o.length)for(const l of t.promptLogs){const{modelTitle:c,modelProvider:u,...d}=l;r.post("devdata/log",{name:"chatFeedback",data:{...d,completionOptions:{},modelProvider:u||"unknown",modelName:c,modelTitle:c,feedback:a,sessionId:i}})}};return y.jsxs(y.Fragment,{children:[y.jsx(zs,{text:"Helpful",tabIndex:-1,onClick:()=>s(!0),children:y.jsx(V6e,{className:`mx-0.5 h-3.5 w-3.5 ${e===!0?"text-success":"text-description-muted"}`})}),y.jsx(zs,{text:"Unhelpful",tabIndex:-1,onClick:()=>s(!1),children:y.jsx(W6e,{className:`h-3.5 w-3.5 ${e===!1?"text-error":"text-description-muted"}`})})]})}function kcn(t){return[".continue","rules",`${son(t)}.${ion}`]}function Scn(t,e){return NG(t,...kcn(e))}const P1e="Short, descriptive name summarizing the rule's purpose (e.g. 'React Standards', 'Type Hints')",j1e="Clear, imperative instruction for future code generation (e.g. 'Use named exports', 'Add Python type hints'). Each rule should focus on one specific standard.",z1e="Description of when this rule should be applied. Required for Agent Requested rules (AI decides when to apply). Optional for other types.",F1e="Optional file patterns to which this rule applies (e.g. ['**/*.{ts,tsx}'] or ['src/**/*.ts', 'tests/**/*.ts'])",Ccn="Optional regex patterns to match against file content. Rule applies only to files whose content matches the pattern (e.g. 'useEffect' for React hooks or '\\bclass\\b' for class definitions)",B1e="Whether this rule should always be applied. Set to false for Agent Requested and Manual rules. Omit or set to true for Always and Auto Attached rules.",Ecn={type:"function",displayTitle:"Create Rule Block",wouldLikeTo:'create a rule block for "{{{ name }}}"',isCurrently:'creating a rule block for "{{{ name }}}"',hasAlready:'created a rule block for "{{{ name }}}"',readonly:!1,isInstant:!0,group:Hb,function:{name:ti.CreateRuleBlock,description:`Creates a "rule" that can be referenced in future conversations. This should be used whenever you want to establish code standards / preferences that should be applied consistently, or when you want to avoid making a mistake again. To modify existing rules, use the edit tool instead. + +Rule Types: +- Always: Include only "rule" (always included in model context) +- Auto Attached: Include "rule", "globs", and/or "regex" (included when files match patterns) +- Agent Requested: Include "rule" and "description" (AI decides when to apply based on description) +- Manual: Include only "rule" (only included when explicitly mentioned using @ruleName)`,parameters:{type:"object",required:["name","rule"],properties:{name:{type:"string",description:P1e},rule:{type:"string",description:j1e},description:{type:"string",description:z1e},globs:{type:"string",description:F1e},regex:{type:"string",description:Ccn},alwaysApply:{type:"boolean",description:B1e}}}},defaultToolPolicy:"disabled",systemMessageDescription:{prefix:`Sometimes the user will provide feedback or guidance on your output. If you were not aware of these "rules", consider using the ${ti.CreateRuleBlock} tool to persist the rule for future interactions. +This tool cannot be used to edit existing rules, but you can search in the ".continue/rules" folder and use the edit tool to manage rules. +To create a rule, respond with a ${ti.CreateRuleBlock} tool call and the following arguments: +- name: ${P1e} +- rule: ${j1e} +- description: ${z1e} +- globs: ${F1e} +- alwaysApply: ${B1e} +For example:`,exampleArgs:[["name","Use PropTypes"],["rule","Always use PropTypes when declaring React component properties"],["description","Ensure that all prop types are explicitly declared for better type safety and code maintainability in React components."],["globs","**/*.js"],["alwaysApply","false"]]},toolCallIcon:"PencilIcon"},$cn=`You are an expert at creating effective rules for AI coding assistants. Create concise, actionable rules that follow these guidelines: + +FOCUS: +- Keep rules focused on a single, specific concern +- Be specific and actionable - avoid vague guidance +- Write in imperative language ("Use X", "Always do Y", "Avoid Z") + +EXAMPLES FROM CHAT HISTORY: +- Use concrete examples from the chat history when possible +- If they say "don't do X", find instances where "X" was done incorrectly +- Include before/after code examples using this format: + +**Example** +\`\`\`typescript +// Bad: Don't do this +const badExample = "from chat history"; + +// Good: Do this instead +const goodExample = "corrected version"; +\`\`\` + +Be concise but comprehensive. The chat history contains real examples of what to do or avoid.`;function Tcn(t,e){const[n,r]=g.useState(!1),[i,s]=g.useState(null),a=g.useContext(qt),o=He(d=>d.session.history),l=He(dc),c=g.useCallback(async()=>{var d;if(!l){s("No chat model selected");return}r(!0),s(null);try{const f=[{message:{role:"system",content:$cn},contextItems:[]},...o,{message:{role:"user",content:`The user has requested that we write a new rule. You MUST USE the create_rule_block tool to generate a well-structured rule. Do not say anything else, only call this tool. Here is their request: ${t}`},contextItems:[]}],{messages:h}=HDe(f,void 0,[],{}),m=new AbortController,p=a.llmStreamChat({messages:h,completionOptions:{tools:[Ecn]},title:l.title},m.signal);let v;for await(const x of p)for(const w of x)if(w.role==="assistant"&&((d=w.toolCalls)!=null&&d.length)){const E=w.toolCalls[0];v=LG(E,v),v!=null&&v.parsedArgs&&(e==null||e(v.parsedArgs))}}catch(f){s(f instanceof Error?f.message:"An error occurred")}finally{r(!1)}},[a,o,l,t]),u=g.useCallback(()=>{s(null),r(!1)},[]);return{generateRule:c,isGenerating:n,error:i,reset:u}}function Icn({inputPrompt:t,onBack:e,onSuccess:n,isManualMode:r=!1}){const i=g.useContext(qt),{register:s,watch:a,setValue:o,reset:l}=vG({defaultValues:{name:"",description:"",globs:"",alwaysApply:void 0,rule:""}}),c=a(),[u,d]=g.useState(Za.Always),[f,h]=g.useState(null),{generateRule:m,isGenerating:p,error:v}=Tcn(t,S=>{p||(l(S),x(con(S)))});g.useEffect(()=>{r||m()},[r]);const x=S=>{d(S);const _=S===Za.Always;o("alwaysApply",_)},w=async()=>{if(h(null),!c.name){h("Rule name is required");return}if(!c.rule){h("Rule content is required");return}try{const S={alwaysApply:c.alwaysApply};c.description&&(S.description=c.description),c.globs&&(S.globs=c.globs);const _=oon(c.name,c.rule,S),C=await i.request("getWorkspaceDirs",void 0);if(C.status!=="success"){h("Failed to get workspace directory");return}const T=C.content[0],M=Scn(T,c.name);await i.request("writeFile",{path:M,contents:_}),i.post("openFile",{path:M}),n()}catch(S){const _=S instanceof Error?S.message:"Unknown error occurred";h(`Failed to create rule file: ${_}`)}},E=p&&!c.name&&!r;return y.jsx("div",{className:"px-2 pb-2 pt-4 sm:px-4",children:y.jsxs("div",{children:[y.jsxs("div",{className:"text-center",children:[y.jsx("h2",{className:"mb-0",children:"Your rule"}),y.jsx("p",{className:"text-description m-0 mt-2 p-0",children:"Review and edit your generated rule below"})]}),y.jsx("div",{className:"mt-5",children:y.jsxs("div",{className:"flex flex-col gap-4",children:[y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{className:"space-y-1",children:[y.jsx("label",{className:"text-foreground text-sm font-medium",children:"Rule Name"}),y.jsxs("div",{className:"relative",children:[y.jsx("input",{type:"text",className:"border-input-border bg-input text-input-foreground placeholder:text-input-placeholder focus:border-border-focus box-border w-full rounded-md border px-3 py-2 text-xs focus:outline-none",placeholder:E?"":"Enter rule name...",disabled:p&&!r,...s("name")}),E&&y.jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2",children:y.jsx(aT,{})})]})]}),y.jsxs("div",{className:"space-y-1",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("label",{className:"text-foreground text-sm font-medium",children:"Rule Type"}),y.jsx(Ln,{style:{zIndex:100001},content:lon[u],children:y.jsx(Td,{className:"h-4 w-4 text-gray-500"})})]}),y.jsx("div",{className:"relative",children:y.jsx("select",{className:"border-input-border bg-input text-input-foreground focus:border-border-focus w-full rounded-md border px-3 py-2 text-xs focus:outline-none",value:p?"":u,onChange:S=>x(S.target.value),disabled:p&&!r,children:p&&!r?y.jsx("option",{value:""}):y.jsxs(y.Fragment,{children:[y.jsx("option",{value:Za.Always,children:"Always"}),y.jsx("option",{value:Za.AutoAttached,children:"Auto Attached"}),y.jsx("option",{value:Za.AgentRequested,children:"Agent Requested"}),y.jsx("option",{value:Za.Manual,children:"Manual"})]})})})]}),y.jsxs("div",{className:`space-y-1 ${u===Za.AgentRequested?"":"hidden"}`,children:[y.jsx("label",{className:"text-foreground text-sm font-medium",children:"Description"}),y.jsx("textarea",{className:"border-input-border bg-input text-input-foreground placeholder:text-input-placeholder focus:border-border-focus box-border w-full resize-none rounded-md border px-3 py-2 text-xs focus:outline-none",rows:3,placeholder:"Description of the task this rule is helpful for...",...s("description")})]}),y.jsxs("div",{className:`space-y-1 ${u===Za.AutoAttached?"":"hidden"}`,children:[y.jsx("label",{className:"text-foreground text-sm font-medium",children:"File pattern matches"}),y.jsx("input",{type:"text",className:"border-input-border bg-input text-input-foreground placeholder:text-input-placeholder focus:border-border-focus box-border w-full rounded-md border px-3 py-2 font-mono text-xs focus:outline-none",placeholder:"*.tsx, **/*.{ts,tsx}, tests/**/*.ts ...",...s("globs")})]})]}),y.jsxs("div",{className:"relative",children:[y.jsx("label",{className:"text-foreground text-sm font-medium",children:"Rule Content"}),y.jsx("textarea",{className:"border-input-border bg-input text-input-foreground placeholder:text-input-placeholder focus:border-border-focus mt-1 box-border w-full resize-none rounded border p-2 text-xs focus:outline-none",rows:10,disabled:p&&!r,placeholder:"Your rule content...",...s("rule")})]}),v&&y.jsx("p",{className:"text-sm text-red-500",children:v}),y.jsxs("div",{className:"my-4 flex flex-col items-center gap-2",children:[y.jsxs("div",{className:"flex flex-row justify-center gap-3",children:[y.jsx(ai,{type:"button",className:"min-w-16",onClick:e,variant:"outline",disabled:p&&!r,children:"Back"}),y.jsx(ai,{className:"min-w-16",onClick:w,disabled:p&&!r||!c.rule&&!v||!c.name,children:"Continue"})]}),f&&y.jsxs("span",{className:"text-error text-center text-xs",children:["Error creating rule: ",f]})]})]})})]})})}function Acn({icon:t,text:e,onClick:n}){return y.jsxs(ai,{type:"button",onClick:n,className:"flex items-center gap-2",variant:"secondary",children:[y.jsx(t,{className:"h-3 w-3"}),y.jsx("span",{className:"text-xs",children:e})]})}const Ocn=[{icon:tg,title:"Always Applied",template:"Create an always applied rule where for all files..."},{icon:JZ,title:"Auto attached",template:"Create an auto-attached rule where for all {FILE_EXTENSIONS} files..."},{icon:R6,title:"Agent Requested",template:"Create an agent requested rule where..."},{icon:V$,title:"Manual",template:"Create a manually requested rule where..."}];function Dcn({inputPrompt:t,onInputChange:e,onGenerate:n,onCancel:r,onManualWrite:i}){const s=o=>{o.preventDefault(),t.trim()&&n(t)},a=o=>{e(o.template)};return y.jsx("div",{className:"px-2 pb-2 pt-4 sm:px-4",children:y.jsxs("div",{children:[y.jsxs("div",{className:"text-center",children:[y.jsx("h2",{className:"mb-0",children:"Generate Rule"}),y.jsx("p",{className:"text-description m-0 mt-2 p-0",children:"This will generate a new rule using the content of your chat history"})]}),y.jsx("div",{className:"mt-5",children:y.jsxs("form",{onSubmit:s,className:"flex flex-col gap-1",children:[y.jsx("div",{className:"mb-2 flex flex-wrap items-center justify-center gap-x-3",children:Ocn.map((o,l)=>y.jsx(Acn,{icon:o.icon,text:o.title,onClick:()=>a(o)},l))}),y.jsx("div",{className:"flex flex-col gap-2",children:y.jsx("textarea",{className:"border-input-border bg-input text-input-foreground placeholder:text-input-placeholder focus:border-border-focus box-border w-full resize-none rounded border p-2 text-xs focus:outline-none",placeholder:"Describe your rule...",rows:5,value:t,onChange:o=>e(o.target.value)})}),y.jsxs("div",{className:"my-4 flex flex-col items-center gap-2",children:[y.jsxs("div",{className:"flex flex-row justify-center gap-3",children:[y.jsx(ai,{type:"button",className:"min-w-16",onClick:r,variant:"outline",children:"Cancel"}),y.jsx(ai,{className:"min-w-16",disabled:!t.trim(),children:"Generate"})]}),y.jsx("span",{className:"text-description cursor-pointer text-xs underline",onClick:i,children:"Or, write a rule from scratch"})]})]})})]})})}function mNe(){const t=Dl(),[e,n]=g.useState("input"),[r,i]=g.useState(""),[s,a]=g.useState(!1),o=()=>{n("input"),i(""),a(!1),t(Ri(void 0)),t(hi(!1))},l=f=>{i(f),a(!1),n("generation")},c=()=>{a(!0),n("generation")},u=()=>{n("input")},d=()=>{o()};return e==="input"?y.jsx(Dcn,{inputPrompt:r,onInputChange:i,onGenerate:l,onCancel:o,onManualWrite:c}):y.jsx(Icn,{inputPrompt:r,onBack:u,onSuccess:d,isManualMode:s})}function mV({text:t,tabIndex:e,checkIconClassName:n="h-4 w-4 text-green-400",clipboardIconClassName:r="h-4 w-4 text-gray-400",tooltipPlacement:i="bottom"}){const{copyText:s,copied:a}=lDe(t);return y.jsx(y.Fragment,{children:y.jsx(zs,{tooltipPlacement:i,tabIndex:e,text:a?"Copied":"Copy",onClick:s,children:a?y.jsx(Ql,{className:n}):y.jsx(N6,{className:r})})})}function Mcn({onContinueGeneration:t,index:e,item:n,isTruncated:r,onDelete:i,isLast:s}){const a=vr(),o=He(dc),l=He(v=>v.session.contextPercentage),c=He(v=>v.session.isPruned),u=g.useMemo(()=>o&&iNe(o),[o]),d=Math.round((l??0)*100),f=s&&(c||d>80)?"text-warning":"text-description-muted",h=s&&(c||d>=60),m=pNe(),p=()=>{a(hi(!0)),a(Ri(y.jsx(mNe,{})))};return y.jsxs("div",{className:"text-description-muted mx-2 flex cursor-default items-center justify-end space-x-1 bg-transparent pb-0 text-xs",children:[y.jsx(zs,{testId:`compact-button-${e}`,text:h?"Summarize conversation to reduce context length":"Compact conversation",tabIndex:-1,onClick:()=>m(e),children:y.jsxs("div",{className:"flex items-center space-x-1",children:[y.jsx(S6e,{className:`h-3.5 w-3.5 ${f}`}),h&&y.jsx("span",{className:`text-xs ${f}`,children:"Compact conversation"})]})}),s&&u&&y.jsx(zs,{tabIndex:-1,text:"Generate rule",onClick:p,children:y.jsx(rG,{className:"text-description-muted h-3.5 w-3.5"})}),r&&y.jsx(zs,{tabIndex:-1,text:"Continue generation",onClick:t,children:y.jsx($6e,{className:"text-description-muted h-3.5 w-3.5"})}),y.jsx(zs,{testId:`delete-button-${e}`,text:"Delete",tabIndex:-1,onClick:i,children:y.jsx(kg,{className:"text-description-muted h-3.5 w-3.5"})}),y.jsx(mV,{tabIndex:-1,text:Q0(n.message),clipboardIconClassName:"h-3.5 w-3.5 text-description-muted",checkIconClassName:"h-3.5 w-3.5 text-success"}),y.jsx(_cn,{item:n})]})}const Ncn=({historyItem:t})=>{const[e,n]=g.useState(2);g.useEffect(()=>{const l=setInterval(()=>{n(c=>c===2?0:c+1)},600);return()=>{clearInterval(l)}},[]);const r=He(dc),i=He(l=>l.session.isStreaming),s=Array.isArray(t.message.content)?!!t.message.content.length:!!t.message.content,a=r==null?void 0:r.model.startsWith("o1");return!(i&&!t.isGatheringContext&&!s)||!a?null:y.jsx("div",{className:"px-2 py-2",children:y.jsx("span",{className:"text-lightgray",children:`Thinking.${".".repeat(e)}`})})};function U1e(t){var h,m;const e=Dl(),[n,r]=g.useState(!1),i=He(p=>p.session.isStreaming),s=He(y4e),a=t.latestSummaryIndex??-1,o=a!==-1&&t.index<=a,l=a!==-1&&t.index===a,c=He(p=>p.session.history[t.index+1]),u=(t.isLast||(c==null?void 0:c.message.role)==="user")&&!(t.isLast&&(i||t.item.toolCallStates));g.useEffect(()=>{if(!i){const p=Q0(t.item.message).trim(),v=[".","?","!","```",":"];p.trim()!==""&&!(v.some(x=>p.endsWith(x))||new RegExp("\\p{Emoji}","u").test(p.slice(-2)))?r(!0):r(!1)}},[t.item.message.content,i]);function d(){e(t4n(t.index))}function f(){window.postMessage({messageType:"userInput",data:{input:"Continue your response exactly where you left off:"}},"*")}return y.jsxs("div",{children:[y.jsxs("div",{className:`bg-background p-1 px-1.5 ${o?"opacity-35":""}`,children:[s!=null&&s.displayRawMarkdown?y.jsx("pre",{className:"text-2xs max-w-full overflow-x-auto whitespace-pre-wrap break-words p-4",children:Q0(t.item.message)}):y.jsxs(y.Fragment,{children:[((h=t.item.reasoning)==null?void 0:h.text)&&y.jsx(bDe,{content:t.item.reasoning.text,index:t.index,prevItem:t.index>0?t.item:null,inProgress:!((m=t.item.reasoning)!=null&&m.endAt)}),y.jsx(h5,{isRenderingInStepContainer:!0,source:Ly(t.item.message.content),itemIndex:t.index})]}),t.isLast&&y.jsx(Ncn,{historyItem:t.item})]}),u&&y.jsx("div",{className:`mt-2 h-7 transition-opacity duration-300 ease-in-out ${o||i?"opacity-35":""} ${i&&"pointer-events-none cursor-not-allowed"}`,children:y.jsx(Mcn,{isTruncated:n,onDelete:d,onContinueGeneration:f,index:t.index,item:t.item,isLast:t.isLast})}),l&&y.jsx("div",{className:"mx-1.5 my-5",children:y.jsxs("div",{className:"flex items-center",children:[y.jsx("div",{className:"border-border flex-1 border-t border-solid"}),y.jsx("span",{className:"text-description mx-3 text-xs",children:"Previous Conversation Compacted"}),y.jsx("div",{className:"border-border flex-1 border-t border-solid"})]})}),y.jsx(wcn,{item:t.item,index:t.index})]})}const Rcn={tabs:[{id:Date.now().toString(36)+Math.random().toString(36).substring(2),title:"Chat 1",isActive:!0}]},gNe=e2({name:"tabs",initialState:Rcn,reducers:{setTabs:(t,e)=>{t.tabs=e.payload},updateTab:(t,e)=>{const{id:n,updates:r}=e.payload;t.tabs=t.tabs.map(i=>i.id===n?{...i,...r}:i)},addTab:(t,e)=>{t.tabs=t.tabs.map(n=>({...n,isActive:e.payload.isActive?!1:n.isActive})).concat(e.payload)},removeTab:(t,e)=>{t.tabs=t.tabs.filter(n=>n.id!==e.payload)},setActiveTab:(t,e)=>{t.tabs=t.tabs.map(n=>({...n,isActive:n.id===e.payload}))},handleSessionChange:(t,e)=>{const{currentSessionId:n,currentSessionTitle:r,newTabId:i}=e.payload,s=t.tabs.find(o=>o.isActive);if(!s)return;if(s.sessionId===n){t.tabs=t.tabs.map(o=>o.id===s.id?{...o,title:r}:o);return}const a=t.tabs.find(o=>o.sessionId===n);if(a){t.tabs=t.tabs.filter(o=>o.sessionId||o.id===a.id).map(o=>({...o,isActive:o.id===a.id,title:o.sessionId===n?r:o.title}));return}s.sessionId?t.tabs=t.tabs.map(o=>({...o,isActive:!1})).concat({id:i||Date.now().toString(36)+Math.random().toString(36).substring(2),title:r,isActive:!0,sessionId:n}):t.tabs=t.tabs.map(o=>o.id===s.id?{...o,sessionId:n,title:r}:o)}}}),{setTabs:q1e,updateTab:kTn,addTab:Lcn,removeTab:Pcn,setActiveTab:jcn,handleSessionChange:zcn}=gNe.actions,Fcn=gNe.reducer,m9=ki("border"),OJ=ki("background"),Bcn=ki("foreground"),vNe=ki("list-hover"),Ucn=ki("foreground"),H1e=ki("background"),W1e=ki("foreground"),qcn=ki("accent"),Hcn=Dn.div` + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + flex-grow: 0; + background-color: ${OJ}; + border-bottom: none; + position: relative; + margin-top: 2px; + max-height: 100px; + overflow: auto; + + /* Hide scrollbar but keep functionality */ + scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } +`,yNe=Dn.div` + display: flex; + align-items: center; + box-sizing: border-box; + padding: 0 5px 0 12px; + flex-grow: 1; + width: 100px; + max-width: 150px; + height: 25px; + background-color: ${t=>t.isActive?H1e:OJ}; + color: ${t=>t.isActive?W1e:Bcn}; + cursor: pointer; + border: 1px solid ${m9}; + border-bottom: ${t=>t.isActive?"none":`1px solid ${m9}`}; + user-select: none; + position: relative; + transition: background-color 0.2s; + border-top: ${t=>t.isActive?`1px solid ${qcn}`:`1px solid ${m9}`}; + &:first-child { + border-left: none; + } + & + & { + border-left: none; + } + + &:hover { + background-color: ${t=>t.isActive?H1e:vNe}; + color: ${t=>t.isActive?W1e:Ucn}; + } +`,Wcn=Dn.span` + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 13px; +`,Vcn=Dn.button` + display: flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + margin-left: 4px; + border: none; + background: transparent; + color: inherit; + opacity: 0.7; + cursor: pointer; + border-radius: ${oa}; + padding: 2px; + visibility: hidden; + + &:hover { + opacity: 1; + background-color: ${vNe}; + } + + ${yNe}:hover & { + visibility: visible; + } + + &[disabled] { + display: none !important; + } +`,Zcn=Dn.div` + flex: 1; + display: flex; + border-bottom: 1px solid ${m9}; + background-color: ${OJ}; +`,Gcn=wt.forwardRef((t,e)=>{const n=Dl(),r=n4(d=>d.session.id),i=n4(d=>d.session.title),s=n4(d=>d.session.history.length>0),a=n4(d=>d.tabs.tabs),o=g.useCallback(()=>Date.now().toString(36)+Math.random().toString(36).substring(2),[]);g.useEffect(()=>{r&&n(zcn({currentSessionId:r,currentSessionTitle:i,newTabId:o()}))},[r,i]);const l=async()=>{s&&await n(Qu({openNewSession:!1,generateTitle:!0})),n(nd()),n(Lcn({id:o(),title:`Chat ${a.length+1}`,isActive:!0,sessionId:void 0}))};g.useEffect(()=>{a.length||l()},[a.map(d=>d.id).join(",")]);const c=async d=>{const f=a.find(h=>h.id===d);f&&(f.sessionId&&await n(x_({sessionId:f.sessionId,saveCurrentSession:s})),n(jcn(d)))},u=async d=>{var m;const f=(m=a.find(p=>p.id===d))==null?void 0:m.isActive,h=a.filter(p=>p.id!==d);if(f){const p=h[h.length-1];h.length?(await c(p.id),n(q1e(h.map((v,x)=>({...v,isActive:x===h.length-1}))))):(n(q1e([])),n(nd()))}else n(Pcn(d))};return y.jsxs(Hcn,{ref:e,style:{display:a.length===1?"none":"flex"},children:[a.map(d=>y.jsxs(yNe,{isActive:d.isActive,onClick:()=>c(d.id),onAuxClick:f=>{f.button===1&&(f.preventDefault(),u(d.id))},children:[y.jsx(Wcn,{children:d.title}),y.jsx(Vcn,{onClick:f=>{f.stopPropagation(),u(d.id)},children:y.jsx(Hd,{width:12,height:12})})]},d.id)),y.jsx(Zcn,{})]})});function Kcn(t){if(!t.fileContents)return null;const e=`\`\`\`${hK(t.relativeFilepath??"output.txt")} ${t.relativeFilepath} +${t.fileContents??""} +\`\`\``;return t.relativeFilepath?y.jsx(h5,{isRenderingInStepContainer:!0,disableManualApply:!0,source:e,itemIndex:t.historyIndex}):null}function Ycn(t){if(!t.relativeFilePath)return null;const e=`\`\`\`${hK(t.relativeFilePath)} ${t.relativeFilePath}${t.changes?` +`+t.changes+` +`:` +`}\`\`\``;return y.jsx(h5,{showToolCallStatusIcon:t.showToolCallStatusIcon,expandCodeblocks:!1,isRenderingInStepContainer:!0,disableManualApply:!0,source:e,toolCallId:t.toolCallId,itemIndex:t.historyIndex,collapsible:!0})}class Jcn{diff(e,n,r={}){let i;typeof r=="function"?(i=r,r={}):"callback"in r&&(i=r.callback);const s=this.castInput(e,r),a=this.castInput(n,r),o=this.removeEmpty(this.tokenize(s,r)),l=this.removeEmpty(this.tokenize(a,r));return this.diffWithOptionsObj(o,l,r,i)}diffWithOptionsObj(e,n,r,i){var s;const a=w=>{if(w=this.postProcess(w,r),i){setTimeout(function(){i(w)},0);return}else return w},o=n.length,l=e.length;let c=1,u=o+l;r.maxEditLength!=null&&(u=Math.min(u,r.maxEditLength));const d=(s=r.timeout)!==null&&s!==void 0?s:1/0,f=Date.now()+d,h=[{oldPos:-1,lastComponent:void 0}];let m=this.extractCommon(h[0],n,e,0,r);if(h[0].oldPos+1>=l&&m+1>=o)return a(this.buildValues(h[0].lastComponent,n,e));let p=-1/0,v=1/0;const x=()=>{for(let w=Math.max(p,-c);w<=Math.min(v,c);w+=2){let E;const S=h[w-1],_=h[w+1];S&&(h[w-1]=void 0);let C=!1;if(_){const M=_.oldPos-w;C=_&&0<=M&&M=l&&m+1>=o)return a(this.buildValues(E.lastComponent,n,e))||!0;h[w]=E,E.oldPos+1>=l&&(v=Math.min(v,w-1)),m+1>=o&&(p=Math.max(p,w+1))}c++};if(i)(function w(){setTimeout(function(){if(c>u||Date.now()>f)return i(void 0);x()||w()},0)})();else for(;c<=u&&Date.now()<=f;){const w=x();if(w)return w}}addToPath(e,n,r,i,s){const a=e.lastComponent;return a&&!s.oneChangePerToken&&a.added===n&&a.removed===r?{oldPos:e.oldPos+i,lastComponent:{count:a.count+1,added:n,removed:r,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+i,lastComponent:{count:1,added:n,removed:r,previousComponent:a}}}extractCommon(e,n,r,i,s){const a=n.length,o=r.length;let l=e.oldPos,c=l-i,u=0;for(;c+1f.length?m:f}),u.value=this.join(d)}else u.value=this.join(n.slice(l,l+u.count));l+=u.count,u.added||(c+=u.count)}}return i}}class Xcn extends Jcn{constructor(){super(...arguments),this.tokenize=tun}equals(e,n,r){return r.ignoreWhitespace?((!r.newlineIsToken||!e.includes(` +`))&&(e=e.trim()),(!r.newlineIsToken||!n.includes(` +`))&&(n=n.trim())):r.ignoreNewlineAtEof&&!r.newlineIsToken&&(e.endsWith(` +`)&&(e=e.slice(0,-1)),n.endsWith(` +`)&&(n=n.slice(0,-1))),super.equals(e,n,r)}}const Qcn=new Xcn;function eun(t,e,n){return Qcn.diff(t,e,n)}function tun(t,e){e.stripTrailingCr&&(t=t.replace(/\r\n/g,` +`));const n=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(let i=0;i{const a=s===t.length-1;return i===""&&a?null:y.jsxs("div",{className:_l("text-foreground px-3 py-px font-mono",e),children:[y.jsx("span",{className:_l("mr-2 select-none",r),children:n}),i]},s)})})}function nun({added:t,removed:e}){return t===0&&e===0?null:y.jsxs("div",{className:"flex items-center gap-1 font-mono text-xs",children:[t>0&&y.jsxs("span",{className:"text-success",children:["+",t]}),e>0&&y.jsxs("span",{className:"text-error",children:["-",e]})]})}function V1e({fileUri:t,newFileContents:e,relativeFilePath:n,editingFileContents:r,edits:i,toolCallId:s,historyIndex:a}){var S,_,C;const[o,l]=g.useState(void 0),c=g.useContext(qt),u=He(T=>aDe(T,s)),d=He(T=>KY(T,s)),f=o??(d==null?void 0:d.status)==="generated",h=He(T=>T.config.config),m=g.useMemo(()=>t?qu(t):n?Wx(n,1):"",[t,n]),p=g.useMemo(()=>r||(Array.isArray(i)?i.map(T=>T.old_string??"").join(` +`):""),[r,i]),v=g.useMemo(()=>{try{let T=e;if(typeof T>"u"){T=p;for(let A=0;A{if(!(v!=null&&v.diff))return{added:0,removed:0};let T=0,M=0;return v.diff.forEach(A=>{const $=A.value.split(` +`),O=$[$.length-1]===""?$.length-1:$.length;A.added?T+=O:A.removed&&(M+=O)}),{added:T,removed:M}},[v==null?void 0:v.diff]),w=g.useMemo(()=>{const T=d==null?void 0:d.status;if(T)return y.jsx("div",{className:`mr-1 h-4 w-4 flex-shrink-0 ${d.output?"cursor-pointer":""}`,onClick:M=>{d.output&&(M.stopPropagation(),c.post("showVirtualFile",{name:"Edit output",content:l2(d.output)}))},children:vC(T)})},[d==null?void 0:d.status,d==null?void 0:d.output]),E=T=>y.jsxs("div",{className:"outline-command-border -outline-offset-0.5 rounded-default bg-editor mx-2 my-1 flex min-w-0 flex-col outline outline-1",children:[y.jsxs("div",{className:`find-widget-skip bg-editor sticky -top-2 z-10 m-0 flex cursor-pointer items-center justify-between gap-3 px-1.5 py-1 ${f?"rounded-t-default border-command-border border-b":"rounded-default"}`,onClick:()=>{l(!f)},children:[y.jsxs("div",{className:"flex min-w-0 flex-1 flex-row items-center gap-2 text-xs",children:[y.jsxs("div",{className:"flex min-w-0 flex-row items-center",children:[w,y.jsx(eo,{"data-testid":"toggle-find-and-replace-diff",className:`text-lightgray h-3.5 w-3.5 flex-shrink-0 cursor-pointer select-none transition-all hover:brightness-125 ${f?"rotate-0":"-rotate-90"}`}),y.jsx(uDe,{filepath:m||"...",onClick:M=>{t&&(M.stopPropagation(),c.post("openFile",{path:t}))}})]}),y.jsx(nun,{added:x.added,removed:x.removed})]}),u&&y.jsx(oDe,{onClickAccept:()=>{c.post("acceptDiff",{filepath:t,streamId:u.streamId})},onClickReject:()=>{c.post("rejectDiff",{filepath:t,streamId:u.streamId})},disableManualApply:!0,applyState:u})]}),f?T:null]});return v!=null&&v.error?y.jsx("div",{className:"text-description mt-2 px-3",children:"The searched string was not found in the file"}):!(v!=null&&v.diff)||v.diff.length===1&&!v.diff[0].added&&!v.diff[0].removed?E(y.jsx("div",{className:"text-description-muted p-3",children:"No changes to display"})):E(y.jsx("div",{className:`${(S=h==null?void 0:h.ui)!=null&&S.showChatScrollbar?"thin-scrollbar":"no-scrollbar"} max-h-72 overflow-auto`,children:y.jsx("pre",{className:`bg-editor m-0 w-fit min-w-full text-xs leading-tight ${(_=h==null?void 0:h.ui)!=null&&_.codeWrap?"whitespace-pre-wrap":"whitespace-pre"}`,children:(C=v.diff)==null?void 0:C.map((T,M)=>{if(T.removed)return y.jsx(KS,{lines:T.value.split(` +`),className:"border-l-4 border-red-900 bg-red-900/30",diffCharClass:"text-red-600",diffChar:"-"},M);if(T.added)return y.jsx(KS,{lines:T.value.split(` +`),diffCharClass:"text-green-600",className:"border-l-4 border-green-600 bg-green-600/20",diffChar:"+"},M);{const A=M===0,$=M===v.diff.length-1,O=T.value.split(` +`),D=A&&O.length>ov,N=$&&O.length>ov,R=!A&&!$&&O.length>ov*2+1;let q=D?O.slice(-ov):R||N?O.slice(0,ov):O;q=M1e({lines:q,fromEnd:!1});let W=R?O.slice(-ov):[];return W=M1e({lines:W,fromEnd:!0}),y.jsxs("div",{children:[D&&y.jsx(Pj,{}),y.jsx(KS,{lines:q}),R&&y.jsx(Pj,{}),y.jsx(KS,{lines:W}),N&&y.jsx(Pj,{})]},M)}})})}))}var jj,Z1e;function run(){if(Z1e)return jj;Z1e=1;var t=(function(){function s(a,o){for(var l=0;l\"]/gm,function(l){return l=="&"?"&":l=='"'?""":l=="<"?"<":l==">"?">":""})}},{key:"linkify",value:function(o){return o.replace(r,function(l){return'
    '+l+""})}},{key:"ansiToHtml",value:function(o,l){return this.process(o,l,!0)}},{key:"ansiToJson",value:function(o,l){return l=l||{},l.json=!0,l.clearLine=!1,this.process(o,l,!0)}},{key:"ansiToText",value:function(o){return this.process(o,{},!1)}},{key:"process",value:function(o,l,c){var u=this,d=this,f=o.split(/\033\[/),h=f.shift();l==null&&(l={}),l.clearLine=/\r/.test(o);var m=f.map(function(v){return u.processChunk(v,l,c)});if(l&&l.json){var p=d.processChunkJson("");return p.content=h,p.clearLine=l.clearLine,m.unshift(p),l.remove_empty&&(m=m.filter(function(v){return!v.isEmpty()})),m}else m.unshift(h);return m.join("")}},{key:"processChunkJson",value:function(o,l,c){l=typeof l>"u"?{}:l;var u=l.use_classes=typeof l.use_classes<"u"&&l.use_classes,d=l.key=u?"class":"color",f={content:o,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,isInverted:!1,clearLine:l.clearLine,decoration:null,decorations:[],was_processed:!1,isEmpty:function(){return!f.content}},h=o.match(/^([!\x3c-\x3f]*)([\d;]*)([\x20-\x2c]*[\x40-\x7e])([\s\S]*)/m);if(!h)return f;f.content=h[4];var m=h[2].split(";");if(h[1]!==""||h[3]!=="m"||!c)return f;for(var p=this;m.length>0;){var v=m.shift(),x=parseInt(v);if(isNaN(x)||x===0)p.fg=p.bg=null,p.decorations=[];else if(x===1)p.decorations.push("bold");else if(x===2)p.decorations.push("dim");else if(x===3)p.decorations.push("italic");else if(x===4)p.decorations.push("underline");else if(x===5)p.decorations.push("blink");else if(x===7)p.decorations.push("reverse");else if(x===8)p.decorations.push("hidden");else if(x===9)p.decorations.push("strikethrough");else if(x===21)p.removeDecoration("bold");else if(x===22)p.removeDecoration("bold"),p.removeDecoration("dim");else if(x===23)p.removeDecoration("italic");else if(x===24)p.removeDecoration("underline");else if(x===25)p.removeDecoration("blink");else if(x===27)p.removeDecoration("reverse");else if(x===28)p.removeDecoration("hidden");else if(x===29)p.removeDecoration("strikethrough");else if(x===39)p.fg=null;else if(x===49)p.bg=null;else if(x>=30&&x<38)p.fg=n[0][x%10][d];else if(x>=90&&x<98)p.fg=n[1][x%10][d];else if(x>=40&&x<48)p.bg=n[0][x%10][d];else if(x>=100&&x<108)p.bg=n[1][x%10][d];else if(x===38||x===48){var w=x===38;if(m.length>=1){var E=m.shift();if(E==="5"&&m.length>=1){var S=parseInt(m.shift());if(S>=0&&S<=255)if(!u)this.PALETTE_COLORS||p.setupPalette(),w?p.fg=this.PALETTE_COLORS[S]:p.bg=this.PALETTE_COLORS[S];else{var _=S>=16?"ansi-palette-"+S:n[S>7?1:0][S%8].class;w?p.fg=_:p.bg=_}}else if(E==="2"&&m.length>=3){var C=parseInt(m.shift()),T=parseInt(m.shift()),M=parseInt(m.shift());if(C>=0&&C<=255&&T>=0&&T<=255&&M>=0&&M<=255){var A=C+", "+T+", "+M;u?w?(p.fg="ansi-truecolor",p.fg_truecolor=A):(p.bg="ansi-truecolor",p.bg_truecolor=A):w?p.fg=A:p.bg=A}}}}}return p.fg===null&&p.bg===null&&p.decorations.length===0||(f.fg=p.fg,f.bg=p.bg,f.fg_truecolor=p.fg_truecolor,f.bg_truecolor=p.bg_truecolor,f.decorations=p.decorations,f.decoration=p.decorations.slice(-1).pop()||null,f.was_processed=!0),f}},{key:"processChunk",value:function(o,l,c){var u=this;l=l||{};var d=this.processChunkJson(o,l,c),f=l.use_classes;if(d.decorations=d.decorations.filter(function(w){if(w==="reverse"){d.fg||(d.fg=n[0][7][f?"class":"color"]),d.bg||(d.bg=n[0][0][f?"class":"color"]);var E=d.fg;d.fg=d.bg,d.bg=E;var S=d.fg_truecolor;return d.fg_truecolor=d.bg_truecolor,d.bg_truecolor=S,d.isInverted=!0,!1}return!0}),l.json)return d;if(d.isEmpty())return"";if(!d.was_processed)return d.content;var h=[],m=[],p=[],v={},x=function(E){var S=[],_=void 0;for(_ in E)E.hasOwnProperty(_)&&S.push("data-"+_+'="'+u.escapeForHtml(E[_])+'"');return S.length>0?" "+S.join(" "):""};return d.isInverted&&(v["ansi-is-inverted"]="true"),d.fg&&(f?(h.push(d.fg+"-fg"),d.fg_truecolor!==null&&(v["ansi-truecolor-fg"]=d.fg_truecolor,d.fg_truecolor=null)):h.push("color:rgb("+d.fg+")")),d.bg&&(f?(h.push(d.bg+"-bg"),d.bg_truecolor!==null&&(v["ansi-truecolor-bg"]=d.bg_truecolor,d.bg_truecolor=null)):h.push("background-color:rgb("+d.bg+")")),d.decorations.forEach(function(w){if(f){m.push("ansi-"+w);return}w==="bold"?m.push("font-weight:bold"):w==="dim"?m.push("opacity:0.5"):w==="italic"?m.push("font-style:italic"):w==="hidden"?m.push("visibility:hidden"):w==="strikethrough"?p.push("line-through"):p.push(w)}),p.length&&m.push("text-decoration:"+p.join(" ")),f?'"+d.content+"":'"+d.content+""}},{key:"removeDecoration",value:function(o){var l=this.decorations.indexOf(o);l>=0&&this.decorations.splice(l,1)}}]),s})();return jj=i,jj}var iun=run();const sun=Ol(iun);var S3={exports:{}},G1e;function aun(){if(G1e)return S3.exports;G1e=1;function t(i){if(!i)return"";if(!/\r/.test(i))return i;for(i=i.replace(/\r+\n/gm,` +`);/\r./.test(i);)i=i.replace(/^([^\r\n]*)\r+([^\r\n]+)/gm,function(s,a,o){return o+a.slice(o.length)});return i}function e(i){for(var s=0,a=0;a0;){var o=e(s);a.push(s[o]),s=s.slice(o+1)}return a.join("\r")}function r(i){if(!i)return"";if(!/\r/.test(i))return i;if(!/\n/.test(i))return n(i);i=i.replace(/\r+\n/gm,` +`);var s=i.lastIndexOf(` +`);return t(i.slice(0,s))+` +`+n(i.slice(s+1))}return S3.exports=t,S3.exports.escapeCarriageReturn=t,S3.exports.escapeCarriageReturnSafe=r,S3.exports}var oun=aun();const lun=Cs("chat/moveTerminalProcessToBackground",async({toolCallId:t},{dispatch:e,getState:n,extra:r})=>{var u;const i=n(),s=Oc(i.session.history,t);if(!s){console.error("Could not find tool call with ID:",t);return}const a=(u=s.output)==null?void 0:u.find(d=>d.name==="Terminal"),c=[{name:"Terminal",description:"Terminal command output",content:(a==null?void 0:a.content)||"",status:"Command moved to background. Further output will be ignored."}];e(ene()),e(Fu({toolCallId:t,contextItems:c})),await r.ideMessenger.request("process/markAsBackgrounded",{toolCallId:t}),e(tne({toolCallId:t})),e(Fu({toolCallId:t,contextItems:c})),e(w_({toolCallId:t}))}),cun=Dn.div` + background-color: ${qo}; + width: fit-content; + margin: 8px 6px 0px 2px; + font-size: ${la()-2}px; + border: 0.5px solid ${gs}; + border-radius: ${oa}; + padding: 4px 8px; + color: ${gs}; + cursor: pointer; + box-shadow: + 0 4px 6px rgba(0, 0, 0, 0.1), + 0 1px 3px rgba(0, 0, 0, 0.08); + transition: box-shadow 0.3s ease; + + &:hover { + box-shadow: + 0 6px 8px rgba(0, 0, 0, 0.15), + 0 3px 6px rgba(0, 0, 0, 0.1); + } +`,uun=Dn.div` + display: flex; + align-items: center; + gap: 6px; +`,dun=nZ` + 0%, 50% { opacity: 1; } + 51%, 100% { opacity: 0; } +`,fun=Dn.span` + &::after { + content: "█"; + animation: ${dun} 1s infinite; + color: var(--foreground); + } +`,K1e=Dn.span` + ${({bg:t})=>t&&`background-color: rgb(${t});`} + ${({fg:t})=>t&&`color: rgb(${t});`} + ${({decoration:t})=>{switch(t){case"bold":return"font-weight: bold;";case"dim":return"opacity: 0.5;";case"italic":return"font-style: italic;";case"hidden":return"visibility: hidden;";case"strikethrough":return"text-decoration: line-through;";case"underline":return"text-decoration: underline;";case"blink":return"text-decoration: blink;";default:return""}}} +`,hun=Dn.a` + color: var(--link); + text-decoration: none; + &:hover { + text-decoration: underline; + } +`,pun=Dn.div` + background-color: var(--background); + font-family: + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + "Helvetica Neue", + Arial, + "Noto Sans", + sans-serif; + font-size: ${t=>t.fontSize||la()}px; + color: var(--foreground); + line-height: 1.5; + + > *:last-child { + margin-bottom: 0; + } +`,mun=Dn.div` + pre { + white-space: pre-wrap; + max-width: calc(100vw - 24px); + overflow-x: scroll; + overflow-y: hidden; + padding: 8px; + margin: 0; + } + + code { + span.line:empty { + display: none; + } + word-wrap: break-word; + border-radius: 0.5rem; + background-color: var(--editor-background); + font-size: ${la()-2}px; + font-family: + ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", + Menlo, monospace; + } + + code:not(pre > code) { + font-family: + ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", + Menlo, monospace; + color: var(--input-placeholder); + } +`;function gun(t,e=!1){return t=oun.escapeCarriageReturn(yun(t)),sun.ansiToJson(t,{json:!0,remove_empty:!0,use_classes:e})}function vun(t,e,n,r){const i=n.decoration?String(n.decoration):void 0;if(!t)return y.jsx(K1e,{className:void 0,bg:n.bg,fg:n.fg,decoration:i,children:n.content},r);const s=[],a=/(\s|^)(https?:\/\/(?:www\.|(?!www))[^\s.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/g;let o=0,l;for(;(l=a.exec(n.content))!==null;){const[,c,u]=l,d=l.index+c.length;d>o&&s.push(n.content.substring(o,d));const f=u.startsWith("www.")?`http://${u}`:u;s.push(y.jsx(hun,{href:f,target:"_blank",children:u},o)),o=a.lastIndex}return ovun(e,!1,r,i));return y.jsx(y.Fragment,{children:n})}function bun({status:t}){const e=()=>{switch(t){case"running":return"bg-success";case"completed":return"bg-success";case"background":return"bg-accent";case"failed":return"bg-error";default:return"bg-success"}};return y.jsx("span",{className:`mr-2 h-2 w-2 rounded-full ${e()} ${t==="running"?"animate-pulse":""}`})}function xun({hiddenLinesCount:t,isExpanded:e,onToggle:n}){return y.jsx("div",{className:"flex justify-center",children:y.jsx(cun,{onClick:n,children:y.jsxs(uun,{children:[y.jsx("span",{children:e?"Collapse":`+${t} more lines`}),y.jsx(eo,{className:`h-3 w-3 ${e?"rotate-180":""}`})]})})})}function wun({limitedContent:t,fullContent:e,isExpanded:n,onToggle:r}){return y.jsxs("div",{className:"relative",children:[!n&&y.jsx("div",{className:"from-editor pointer-events-none absolute left-0 right-0 top-0 z-[5] h-[100px] rounded-t-md bg-gradient-to-b to-transparent"}),y.jsx("div",{onClick:r,className:"cursor-pointer",children:y.jsx("div",{children:y.jsx(bNe,{linkify:!0,children:n?e:t})})})]})}function _un({command:t,output:e="",status:n="completed",statusMessage:r="",toolCallState:i,toolCallId:s,displayLines:a=15}){const o=vr(),[l,c]=g.useState(!0),[u,d]=g.useState(!1),f=(i==null?void 0:i.status)==="calling"||n==="running",h=e.length>0,m=g.useMemo(()=>{if(!e)return{fullContent:"",limitedContent:"",totalLines:0,isLimited:!1,hiddenLinesCount:0};const w=e.split(` +`),E=w.length;if(E>a){const S=w.slice(-a);return{fullContent:e,limitedContent:S.join(` +`),totalLines:E,isLimited:!0,hiddenLinesCount:E-a}}return{fullContent:e,limitedContent:e,totalLines:E,isLimited:!1,hiddenLinesCount:0}},[e,a]);let p=n;f?p="running":r!=null&&r.includes("failed")?p="failed":r!=null&&r.includes("background")&&(p="background");const v=()=>{s&&o(lun({toolCallId:s}))},x=g.useMemo(()=>{let w=`$ ${t}`;return h&&(w+=` + +${e}`),w},[t,e,h]);return y.jsx(pun,{fontSize:la(),className:"mx-2 mb-4","data-testid":"terminal-container",children:y.jsxs("div",{className:"outline-command-border rounded-default bg-editor !my-2 flex min-w-0 flex-col outline outline-1",children:[y.jsxs("div",{className:`find-widget-skip bg-editor sticky -top-2 z-10 m-0 flex items-center justify-between gap-3 px-1.5 py-1 ${l?"rounded-t-default border-command-border border-b":"rounded-default"}`,style:{fontSize:`${la()-2}px`},children:[y.jsxs("div",{className:"flex max-w-[50%] flex-row items-center",children:[y.jsx(eo,{onClick:()=>c(!l),className:`text-description h-3.5 w-3.5 flex-shrink-0 cursor-pointer hover:brightness-125 ${l?"rotate-0":"-rotate-90"}`}),y.jsx("span",{className:"text-description ml-2 select-none",children:"Terminal"})]}),y.jsx("div",{className:"flex items-center gap-2.5",children:!f&&y.jsxs("div",{className:"xs:flex hidden items-center gap-2.5",children:[y.jsx(cDe,{text:x}),y.jsx(dDe,{command:t})]})})]}),l&&y.jsx(mun,{children:y.jsx("pre",{className:"bg-editor",children:y.jsxs("code",{children:[y.jsxs("div",{className:"text-terminal pb-2",children:["$ ",t]}),f&&!h&&y.jsx("div",{className:"mt-1 flex items-center gap-1",children:y.jsx(fun,{})}),h&&y.jsxs("div",{className:"mt-1",children:[m.isLimited&&y.jsx(xun,{hiddenLinesCount:m.hiddenLinesCount,isExpanded:u,onToggle:()=>d(!u)}),y.jsx("div",{className:"pt-2",children:m.isLimited?y.jsx(wun,{limitedContent:m.limitedContent,fullContent:m.fullContent,isExpanded:u,onToggle:()=>d(!u)}):y.jsx("div",{children:y.jsx(bNe,{linkify:!0,children:m.fullContent})})})]})]})})}),(r||f)&&y.jsxs("div",{className:"text-description flex items-center px-2 pb-2 pt-2 text-xs",style:{borderTop:"1px solid var(--vscode-commandCenter-inactiveBorder, #555555)"},children:[y.jsx(bun,{status:p}),f?"Running":r,f&&s&&y.jsx("a",{href:"#",onClick:w=>{w.preventDefault(),v()},className:"text-link ml-3 cursor-pointer text-xs no-underline hover:underline",children:"Move to background"})]})]})})}function kun(t){var o,l;const e=t.toolCallState.status==="errored",n=e?(o=t.toolCallState.output)==null?void 0:o[0]:(l=t.toolCallState.output)==null?void 0:l.find(c=>c.name==="Terminal"),r=(n==null?void 0:n.content)||"",i=(n==null?void 0:n.status)||"",s=t.toolCallState.status==="calling";let a="completed";return s?a="running":e||i!=null&&i.includes("failed")?a="failed":i!=null&&i.includes("background")&&(a="background"),y.jsx(_un,{command:t.command,output:r,status:a,statusMessage:i,toolCallState:t.toolCallState,toolCallId:t.toolCallId})}function Y1e({toolCallState:t,historyIndex:e}){var s;const n=t.parsedArgs,r=t.processedArgs,i=t.toolCall;switch((s=i.function)==null?void 0:s.name){case ti.CreateNewFile:return y.jsx(Kcn,{relativeFilepath:(n==null?void 0:n.filepath)??"",fileContents:(n==null?void 0:n.contents)??"",historyIndex:e});case ti.EditExistingFile:return y.jsx(Ycn,{relativeFilePath:(r==null?void 0:r.filepath)??(n==null?void 0:n.filepath)??"",changes:(r==null?void 0:r.changes)??(n==null?void 0:n.changes)??"",toolCallId:i.id,historyIndex:e});case ti.SingleFindAndReplace:const a=[{old_string:(r==null?void 0:r.old_string)??(n==null?void 0:n.old_string)??"",new_string:(r==null?void 0:r.new_string)??(n==null?void 0:n.new_string)??"",replace_all:(r==null?void 0:r.replace_all)??(n==null?void 0:n.replace_all)}];return y.jsx(V1e,{editingFileContents:r==null?void 0:r.editingFileContents,fileUri:(r==null?void 0:r.fileUri)??"",newFileContents:r==null?void 0:r.newFileContents,relativeFilePath:(r==null?void 0:r.filepath)??(n==null?void 0:n.filepath)??"",edits:a,toolCallId:i.id,historyIndex:e});case ti.MultiEdit:return y.jsx(V1e,{editingFileContents:r==null?void 0:r.editingFileContents,relativeFilePath:(r==null?void 0:r.filepath)??(n==null?void 0:n.filepath)??"",fileUri:(r==null?void 0:r.fileUri)??"",newFileContents:r==null?void 0:r.newFileContents,edits:(r==null?void 0:r.edits)??(n==null?void 0:n.edits)??[],toolCallId:i.id,historyIndex:e});case ti.RunTerminalCommand:return y.jsx(kun,{command:(n==null?void 0:n.command)??"",toolCallState:t,toolCallId:i.id});default:return null}}function xNe({icon:t,isToggleable:e=!1,open:n=!1,onClick:r,className:i="",isClickable:s=!1}){const[a,o]=g.useState(!1),l=e&&(a||n);function c(){(e||s)&&r&&r()}function u(){return!t&&!e?null:l?y.jsx($b,{className:`text-description h-4 w-4 transition-transform duration-200 ease-in-out ${n?"rotate-90":"rotate-0"}`}):t?y.jsx(t,{className:"text-description h-4 w-4"}):null}return y.jsx("div",{className:`flex h-4 w-4 flex-shrink-0 flex-col items-center justify-center ${i}`,onClick:e||s?c:void 0,onMouseEnter:e?()=>o(!0):void 0,onMouseLeave:e?()=>o(!1):void 0,children:u()})}function Sun({toolCallStates:t,activeCalls:e,open:n,onToggle:r}){return y.jsx("div",{className:"mb-2",children:y.jsxs("div",{className:"text-description flex cursor-pointer items-center gap-1.5 transition-colors duration-200 ease-in-out hover:brightness-125","data-testid":"performing-actions",onClick:r,children:[y.jsx(xNe,{isToggleable:!0,icon:Z4,open:n,onClick:r}),QSt(t)," ",e.length," ",e.length===1?"action":"actions"]})})}function at(t,e,n){function r(o,l){var c;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(c=o._zod).traits??(c.traits=new Set),o._zod.traits.add(t),e(o,l);for(const u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=l}const i=(n==null?void 0:n.Parent)??Object;class s extends i{}Object.defineProperty(s,"name",{value:t});function a(o){var l;const c=n!=null&&n.Parent?new s:this;r(c,o),(l=c._zod).deferred??(l.deferred=[]);for(const u of c._zod.deferred)u();return c}return Object.defineProperty(a,"init",{value:r}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>{var l,c;return n!=null&&n.Parent&&o instanceof n.Parent?!0:(c=(l=o==null?void 0:o._zod)==null?void 0:l.traits)==null?void 0:c.has(t)}}),Object.defineProperty(a,"name",{value:t}),a}class zw extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const wNe={};function dm(t){return wNe}function Cun(t){const e=Object.values(t).filter(r=>typeof r=="number");return Object.entries(t).filter(([r,i])=>e.indexOf(+r)===-1).map(([r,i])=>i)}function Eun(t,e){return typeof e=="bigint"?e.toString():e}function DJ(t){return{get value(){{const e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function MJ(t){return t==null}function NJ(t){const e=t.startsWith("^")?1:0,n=t.endsWith("$")?t.length-1:t.length;return t.slice(e,n)}function $un(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(t.toFixed(i).replace(".","")),a=Number.parseInt(e.toFixed(i).replace(".",""));return s%a/10**i}function ms(t,e,n){Object.defineProperty(t,e,{get(){{const r=n();return t[e]=r,r}},set(r){Object.defineProperty(t,e,{value:r})},configurable:!0})}function DI(t,e,n){Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0})}function C3(t){return JSON.stringify(t)}const _Ne=Error.captureStackTrace?Error.captureStackTrace:(...t)=>{};function jE(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}const Tun=DJ(()=>{var t;if(typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)!=null&&t.includes("Cloudflare")))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function zE(t){if(jE(t)===!1)return!1;const e=t.constructor;if(e===void 0)return!0;const n=e.prototype;return!(jE(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}const Iun=new Set(["string","number","symbol"]);function __(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function x2(t,e,n){const r=new t._zod.constr(e??t._zod.def);return(!e||n!=null&&n.parent)&&(r._zod.parent=t),r}function Mn(t){const e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if((e==null?void 0:e.message)!==void 0){if((e==null?void 0:e.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function Aun(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}const Oun={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Dun(t,e){const n={},r=t._zod.def;for(const i in e){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&(n[i]=r.shape[i])}return x2(t,{...t._zod.def,shape:n,checks:[]})}function Mun(t,e){const n={...t._zod.def.shape},r=t._zod.def;for(const i in e){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);e[i]&&delete n[i]}return x2(t,{...t._zod.def,shape:n,checks:[]})}function Nun(t,e){if(!zE(e))throw new Error("Invalid input to extend: expected a plain object");const n={...t._zod.def,get shape(){const r={...t._zod.def.shape,...e};return DI(this,"shape",r),r},checks:[]};return x2(t,n)}function Run(t,e){return x2(t,{...t._zod.def,get shape(){const n={...t._zod.def.shape,...e._zod.def.shape};return DI(this,"shape",n),n},catchall:e._zod.def.catchall,checks:[]})}function Lun(t,e,n){const r=e._zod.def.shape,i={...r};if(n)for(const s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=t?new t({type:"optional",innerType:r[s]}):r[s])}else for(const s in r)i[s]=t?new t({type:"optional",innerType:r[s]}):r[s];return x2(e,{...e._zod.def,shape:i,checks:[]})}function Pun(t,e,n){const r=e._zod.def.shape,i={...r};if(n)for(const s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new t({type:"nonoptional",innerType:r[s]}))}else for(const s in r)i[s]=new t({type:"nonoptional",innerType:r[s]});return x2(e,{...e._zod.def,shape:i,checks:[]})}function vx(t,e=0){var n;for(let r=e;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(t),n})}function YS(t){return typeof t=="string"?t:t==null?void 0:t.message}function fm(t,e,n){var i,s,a,o,l,c;const r={...t,path:t.path??[]};if(!t.message){const u=YS((a=(s=(i=t.inst)==null?void 0:i._zod.def)==null?void 0:s.error)==null?void 0:a.call(s,t))??YS((o=e==null?void 0:e.error)==null?void 0:o.call(e,t))??YS((l=n.customError)==null?void 0:l.call(n,t))??YS((c=n.localeError)==null?void 0:c.call(n,t))??"Invalid input";r.message=u}return delete r.inst,delete r.continue,e!=null&&e.reportInput||delete r.input,r}function RJ(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function Fw(...t){const[e,n,r]=t;return typeof e=="string"?{message:e,code:"custom",input:n,inst:r}:{...e}}const kNe=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,Eun,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},SNe=at("$ZodError",kNe),CNe=at("$ZodError",kNe,{Parent:Error});function jun(t,e=n=>n.message){const n={},r=[];for(const i of t.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(e(i))):r.push(e(i));return{formErrors:r,fieldErrors:n}}function zun(t,e){const n=e||function(s){return s.message},r={_errors:[]},i=s=>{for(const a of s.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>i({issues:o}));else if(a.code==="invalid_key")i({issues:a.issues});else if(a.code==="invalid_element")i({issues:a.issues});else if(a.path.length===0)r._errors.push(n(a));else{let o=r,l=0;for(;l(e,n,r,i)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new zw;if(a.issues.length){const o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>fm(l,s,dm())));throw _Ne(o,i==null?void 0:i.callee),o}return a.value},Bun=t=>async(e,n,r,i)=>{const s=r?Object.assign(r,{async:!0}):{async:!0};let a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise&&(a=await a),a.issues.length){const o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>fm(l,s,dm())));throw _Ne(o,i==null?void 0:i.callee),o}return a.value},ENe=t=>(e,n,r)=>{const i=r?{...r,async:!1}:{async:!1},s=e._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new zw;return s.issues.length?{success:!1,error:new(t??SNe)(s.issues.map(a=>fm(a,i,dm())))}:{success:!0,data:s.value}},$Ne=ENe(CNe),TNe=t=>async(e,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let s=e._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(a=>fm(a,i,dm())))}:{success:!0,data:s.value}},Uun=TNe(CNe),qun=/^[cC][^\s-]{8,}$/,Hun=/^[0-9a-z]+$/,Wun=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Vun=/^[0-9a-vA-V]{20}$/,Zun=/^[A-Za-z0-9]{27}$/,Gun=/^[a-zA-Z0-9_-]{21}$/,Kun=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Yun=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,J1e=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,Jun=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Xun="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Qun(){return new RegExp(Xun,"u")}const edn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,tdn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,ndn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,rdn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,idn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,INe=/^[A-Za-z0-9_-]*$/,sdn=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,adn=/^\+(?:[0-9]){6,14}[0-9]$/,ANe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",odn=new RegExp(`^${ANe}$`);function ONe(t){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ldn(t){return new RegExp(`^${ONe(t)}$`)}function cdn(t){const e=ONe({precision:t.precision}),n=["Z"];t.local&&n.push(""),t.offset&&n.push("([+-]\\d{2}:\\d{2})");const r=`${e}(?:${n.join("|")})`;return new RegExp(`^${ANe}T(?:${r})$`)}const udn=t=>{const e=t?`[\\s\\S]{${(t==null?void 0:t.minimum)??0},${(t==null?void 0:t.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},ddn=/^\d+$/,fdn=/^-?\d+(?:\.\d+)?/i,hdn=/true|false/i,pdn=/null/i,mdn=/^[^A-Z]*$/,gdn=/^[^a-z]*$/,vc=at("$ZodCheck",(t,e)=>{var n;t._zod??(t._zod={}),t._zod.def=e,(n=t._zod).onattach??(n.onattach=[])}),DNe={number:"number",bigint:"bigint",object:"date"},MNe=at("$ZodCheckLessThan",(t,e)=>{vc.init(t,e);const n=DNe[typeof e.value];t._zod.onattach.push(r=>{const i=r._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?r.value<=e.value:r.value{vc.init(t,e);const n=DNe[typeof e.value];t._zod.onattach.push(r=>{const i=r._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=r=>{(e.inclusive?r.value>=e.value:r.value>e.value)||r.issues.push({origin:n,code:"too_small",minimum:e.value,input:r.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),vdn=at("$ZodCheckMultipleOf",(t,e)=>{vc.init(t,e),t._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=e.value)}),t._zod.check=n=>{if(typeof n.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%e.value===BigInt(0):$un(n.value,e.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:e.value,input:n.value,inst:t,continue:!e.abort})}}),ydn=at("$ZodCheckNumberFormat",(t,e)=>{var a;vc.init(t,e),e.format=e.format||"float64";const n=(a=e.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,s]=Oun[e.format];t._zod.onattach.push(o=>{const l=o._zod.bag;l.format=e.format,l.minimum=i,l.maximum=s,n&&(l.pattern=ddn)}),t._zod.check=o=>{const l=o.value;if(n){if(!Number.isInteger(l)){o.issues.push({expected:r,format:e.format,code:"invalid_type",input:l,inst:t});return}if(!Number.isSafeInteger(l)){l>0?o.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,continue:!e.abort}):o.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,continue:!e.abort});return}}ls&&o.issues.push({origin:"number",input:l,code:"too_big",maximum:s,inst:t})}}),bdn=at("$ZodCheckMaxLength",(t,e)=>{var n;vc.init(t,e),(n=t._zod.def).when??(n.when=r=>{const i=r.value;return!MJ(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{const i=r.value;if(i.length<=e.maximum)return;const a=RJ(i);r.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),xdn=at("$ZodCheckMinLength",(t,e)=>{var n;vc.init(t,e),(n=t._zod.def).when??(n.when=r=>{const i=r.value;return!MJ(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{const i=r.value;if(i.length>=e.minimum)return;const a=RJ(i);r.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),wdn=at("$ZodCheckLengthEquals",(t,e)=>{var n;vc.init(t,e),(n=t._zod.def).when??(n.when=r=>{const i=r.value;return!MJ(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=r=>{const i=r.value,s=i.length;if(s===e.length)return;const a=RJ(i),o=s>e.length;r.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),MI=at("$ZodCheckStringFormat",(t,e)=>{var n,r;vc.init(t,e),t._zod.onattach.push(i=>{const s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(n=t._zod).check??(n.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(r=t._zod).check??(r.check=()=>{})}),_dn=at("$ZodCheckRegex",(t,e)=>{MI.init(t,e),t._zod.check=n=>{e.pattern.lastIndex=0,!e.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),kdn=at("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=mdn),MI.init(t,e)}),Sdn=at("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=gdn),MI.init(t,e)}),Cdn=at("$ZodCheckIncludes",(t,e)=>{vc.init(t,e);const n=__(e.includes),r=new RegExp(typeof e.position=="number"?`^.{${e.position}}${n}`:n);e.pattern=r,t._zod.onattach.push(i=>{const s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),Edn=at("$ZodCheckStartsWith",(t,e)=>{vc.init(t,e);const n=new RegExp(`^${__(e.prefix)}.*`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.startsWith(e.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:r.value,inst:t,continue:!e.abort})}}),$dn=at("$ZodCheckEndsWith",(t,e)=>{vc.init(t,e);const n=new RegExp(`.*${__(e.suffix)}$`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.endsWith(e.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:r.value,inst:t,continue:!e.abort})}}),Tdn=at("$ZodCheckOverwrite",(t,e)=>{vc.init(t,e),t._zod.check=n=>{n.value=e.tx(n.value)}});class Idn{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const r=e.split(` +`).filter(a=>a),i=Math.min(...r.map(a=>a.length-a.trimStart().length)),s=r.map(a=>a.slice(i)).map(a=>" ".repeat(this.indent*2)+a);for(const a of s)this.content.push(a)}compile(){const e=Function,n=this==null?void 0:this.args,i=[...((this==null?void 0:this.content)??[""]).map(s=>` ${s}`)];return new e(...n,i.join(` +`))}}const Adn={major:4,minor:0,patch:0},vs=at("$ZodType",(t,e)=>{var i;var n;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=Adn;const r=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&r.unshift(t);for(const s of r)for(const a of s._zod.onattach)a(t);if(r.length===0)(n=t._zod).deferred??(n.deferred=[]),(i=t._zod.deferred)==null||i.push(()=>{t._zod.run=t._zod.parse});else{const s=(a,o,l)=>{let c=vx(a),u;for(const d of o){if(d._zod.def.when){if(!d._zod.def.when(a))continue}else if(c)continue;const f=a.issues.length,h=d._zod.check(a);if(h instanceof Promise&&(l==null?void 0:l.async)===!1)throw new zw;if(u||h instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await h,a.issues.length!==f&&(c||(c=vx(a,f)))});else{if(a.issues.length===f)continue;c||(c=vx(a,f))}}return u?u.then(()=>a):a};t._zod.run=(a,o)=>{const l=t._zod.parse(a,o);if(l instanceof Promise){if(o.async===!1)throw new zw;return l.then(c=>s(c,r,o))}return s(l,r,o)}}t["~standard"]={validate:s=>{var a;try{const o=$Ne(t,s);return o.success?{value:o.data}:{issues:(a=o.error)==null?void 0:a.issues}}catch{return Uun(t,s).then(l=>{var c;return l.success?{value:l.data}:{issues:(c=l.error)==null?void 0:c.issues}})}},vendor:"zod",version:1}}),LJ=at("$ZodString",(t,e)=>{var n;vs.init(t,e),t._zod.pattern=[...((n=t==null?void 0:t._zod.bag)==null?void 0:n.patterns)??[]].pop()??udn(t._zod.bag),t._zod.parse=(r,i)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),$s=at("$ZodStringFormat",(t,e)=>{MI.init(t,e),LJ.init(t,e)}),Odn=at("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Yun),$s.init(t,e)}),Ddn=at("$ZodUUID",(t,e)=>{if(e.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(r===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=J1e(r))}else e.pattern??(e.pattern=J1e());$s.init(t,e)}),Mdn=at("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Jun),$s.init(t,e)}),Ndn=at("$ZodURL",(t,e)=>{$s.init(t,e),t._zod.check=n=>{try{const r=n.value,i=new URL(r),s=i.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:sdn.source,input:n.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:n.value,inst:t,continue:!e.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:t,continue:!e.abort})}}}),Rdn=at("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Qun()),$s.init(t,e)}),Ldn=at("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=Gun),$s.init(t,e)}),Pdn=at("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=qun),$s.init(t,e)}),jdn=at("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=Hun),$s.init(t,e)}),zdn=at("$ZodULID",(t,e)=>{e.pattern??(e.pattern=Wun),$s.init(t,e)}),Fdn=at("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Vun),$s.init(t,e)}),Bdn=at("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=Zun),$s.init(t,e)}),Udn=at("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=cdn(e)),$s.init(t,e)}),qdn=at("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=odn),$s.init(t,e)}),Hdn=at("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=ldn(e)),$s.init(t,e)}),Wdn=at("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=Kun),$s.init(t,e)}),Vdn=at("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=edn),$s.init(t,e),t._zod.onattach.push(n=>{const r=n._zod.bag;r.format="ipv4"})}),Zdn=at("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=tdn),$s.init(t,e),t._zod.onattach.push(n=>{const r=n._zod.bag;r.format="ipv6"}),t._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:t,continue:!e.abort})}}}),Gdn=at("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=ndn),$s.init(t,e)}),Kdn=at("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=rdn),$s.init(t,e),t._zod.check=n=>{const[r,i]=n.value.split("/");try{if(!i)throw new Error;const s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:t,continue:!e.abort})}}});function RNe(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}const Ydn=at("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=idn),$s.init(t,e),t._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),t._zod.check=n=>{RNe(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:t,continue:!e.abort})}});function Jdn(t){if(!INe.test(t))return!1;const e=t.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=e.padEnd(Math.ceil(e.length/4)*4,"=");return RNe(n)}const Xdn=at("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=INe),$s.init(t,e),t._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),t._zod.check=n=>{Jdn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:t,continue:!e.abort})}}),Qdn=at("$ZodE164",(t,e)=>{e.pattern??(e.pattern=adn),$s.init(t,e)});function efn(t,e=null){try{const n=t.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}const tfn=at("$ZodJWT",(t,e)=>{$s.init(t,e),t._zod.check=n=>{efn(n.value,e.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:t,continue:!e.abort})}}),LNe=at("$ZodNumber",(t,e)=>{vs.init(t,e),t._zod.pattern=t._zod.bag.pattern??fdn,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),n}}),nfn=at("$ZodNumber",(t,e)=>{ydn.init(t,e),LNe.init(t,e)}),rfn=at("$ZodBoolean",(t,e)=>{vs.init(t,e),t._zod.pattern=hdn,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),n}}),ifn=at("$ZodNull",(t,e)=>{vs.init(t,e),t._zod.pattern=pdn,t._zod.values=new Set([null]),t._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),n}}),sfn=at("$ZodUnknown",(t,e)=>{vs.init(t,e),t._zod.parse=n=>n}),afn=at("$ZodNever",(t,e)=>{vs.init(t,e),t._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:t}),n)});function X1e(t,e,n){t.issues.length&&e.issues.push(...V1(n,t.issues)),e.value[n]=t.value}const ofn=at("$ZodArray",(t,e)=>{vs.init(t,e),t._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),n;n.value=Array(i.length);const s=[];for(let a=0;aX1e(c,n,a))):X1e(l,n,a)}return s.length?Promise.all(s).then(()=>n):n}});function JS(t,e,n){t.issues.length&&e.issues.push(...V1(n,t.issues)),e.value[n]=t.value}function Q1e(t,e,n,r){t.issues.length?r[n]===void 0?n in r?e.value[n]=void 0:e.value[n]=t.value:e.issues.push(...V1(n,t.issues)):t.value===void 0?n in r&&(e.value[n]=void 0):e.value[n]=t.value}const lfn=at("$ZodObject",(t,e)=>{vs.init(t,e);const n=DJ(()=>{const d=Object.keys(e.shape);for(const h of d)if(!(e.shape[h]instanceof vs))throw new Error(`Invalid element at key "${h}": expected a Zod schema`);const f=Aun(e.shape);return{shape:e.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ms(t._zod,"propValues",()=>{const d=e.shape,f={};for(const h in d){const m=d[h]._zod;if(m.values){f[h]??(f[h]=new Set);for(const p of m.values)f[h].add(p)}}return f});const r=d=>{const f=new Idn(["shape","payload","ctx"]),h=n.value,m=w=>{const E=C3(w);return`shape[${E}]._zod.run({ value: input[${E}], issues: [] }, ctx)`};f.write("const input = payload.value;");const p=Object.create(null);let v=0;for(const w of h.keys)p[w]=`key_${v++}`;f.write("const newResult = {}");for(const w of h.keys)if(h.optionalKeys.has(w)){const E=p[w];f.write(`const ${E} = ${m(w)};`);const S=C3(w);f.write(` + if (${E}.issues.length) { + if (input[${S}] === undefined) { + if (${S} in input) { + newResult[${S}] = undefined; + } + } else { + payload.issues = payload.issues.concat( + ${E}.issues.map((iss) => ({ + ...iss, + path: iss.path ? [${S}, ...iss.path] : [${S}], + })) + ); + } + } else if (${E}.value === undefined) { + if (${S} in input) newResult[${S}] = undefined; + } else { + newResult[${S}] = ${E}.value; + } + `)}else{const E=p[w];f.write(`const ${E} = ${m(w)};`),f.write(` + if (${E}.issues.length) payload.issues = payload.issues.concat(${E}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C3(w)}, ...iss.path] : [${C3(w)}] + })));`),f.write(`newResult[${C3(w)}] = ${E}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");const x=f.compile();return(w,E)=>x(d,w,E)};let i;const s=jE,a=!wNe.jitless,l=a&&Tun.value,c=e.catchall;let u;t._zod.parse=(d,f)=>{u??(u=n.value);const h=d.value;if(!s(h))return d.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),d;const m=[];if(a&&l&&(f==null?void 0:f.async)===!1&&f.jitless!==!0)i||(i=r(e.shape)),d=i(d,f);else{d.value={};const E=u.shape;for(const S of u.keys){const _=E[S],C=_._zod.run({value:h[S],issues:[]},f),T=_._zod.optin==="optional"&&_._zod.optout==="optional";C instanceof Promise?m.push(C.then(M=>T?Q1e(M,d,S,h):JS(M,d,S))):T?Q1e(C,d,S,h):JS(C,d,S)}}if(!c)return m.length?Promise.all(m).then(()=>d):d;const p=[],v=u.keySet,x=c._zod,w=x.def.type;for(const E of Object.keys(h)){if(v.has(E))continue;if(w==="never"){p.push(E);continue}const S=x.run({value:h[E],issues:[]},f);S instanceof Promise?m.push(S.then(_=>JS(_,d,E))):JS(S,d,E)}return p.length&&d.issues.push({code:"unrecognized_keys",keys:p,input:h,inst:t}),m.length?Promise.all(m).then(()=>d):d}});function ege(t,e,n,r){for(const i of t)if(i.issues.length===0)return e.value=i.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:t.map(i=>i.issues.map(s=>fm(s,r,dm())))}),e}const PNe=at("$ZodUnion",(t,e)=>{vs.init(t,e),ms(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ms(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ms(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),ms(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){const n=e.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>NJ(r.source)).join("|")})$`)}}),t._zod.parse=(n,r)=>{let i=!1;const s=[];for(const a of e.options){const o=a._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)s.push(o),i=!0;else{if(o.issues.length===0)return o;s.push(o)}}return i?Promise.all(s).then(a=>ege(a,n,t,r)):ege(s,n,t,r)}}),cfn=at("$ZodDiscriminatedUnion",(t,e)=>{PNe.init(t,e);const n=t._zod.parse;ms(t._zod,"propValues",()=>{const i={};for(const s of e.options){const a=s._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(const[o,l]of Object.entries(a)){i[o]||(i[o]=new Set);for(const c of l)i[o].add(c)}}return i});const r=DJ(()=>{const i=e.options,s=new Map;for(const a of i){const o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(const l of o){if(s.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);s.set(l,a)}}return s});t._zod.parse=(i,s)=>{const a=i.value;if(!jE(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),i;const o=r.value.get(a==null?void 0:a[e.discriminator]);return o?o._zod.run(i,s):e.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),i)}}),ufn=at("$ZodIntersection",(t,e)=>{vs.init(t,e),t._zod.parse=(n,r)=>{const i=n.value,s=e.left._zod.run({value:i,issues:[]},r),a=e.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||a instanceof Promise?Promise.all([s,a]).then(([l,c])=>tge(n,l,c)):tge(n,s,a)}});function gV(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(zE(t)&&zE(e)){const n=Object.keys(e),r=Object.keys(t).filter(s=>n.indexOf(s)!==-1),i={...t,...e};for(const s of r){const a=gV(t[s],e[s]);if(!a.valid)return{valid:!1,mergeErrorPath:[s,...a.mergeErrorPath]};i[s]=a.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{vs.init(t,e),t._zod.parse=(n,r)=>{const i=n.value;if(!zE(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),n;const s=[];if(e.keyType._zod.values){const a=e.keyType._zod.values;n.value={};for(const l of a)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){const c=e.valueType._zod.run({value:i[l],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...V1(l,u.issues)),n.value[l]=u.value})):(c.issues.length&&n.issues.push(...V1(l,c.issues)),n.value[l]=c.value)}let o;for(const l in i)a.has(l)||(o=o??[],o.push(l));o&&o.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:o})}else{n.value={};for(const a of Reflect.ownKeys(i)){if(a==="__proto__")continue;const o=e.keyType._zod.run({value:a,issues:[]},r);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(c=>fm(c,r,dm())),input:a,path:[a],inst:t}),n.value[o.value]=o.value;continue}const l=e.valueType._zod.run({value:i[a],issues:[]},r);l instanceof Promise?s.push(l.then(c=>{c.issues.length&&n.issues.push(...V1(a,c.issues)),n.value[o.value]=c.value})):(l.issues.length&&n.issues.push(...V1(a,l.issues)),n.value[o.value]=l.value)}}return s.length?Promise.all(s).then(()=>n):n}}),ffn=at("$ZodEnum",(t,e)=>{vs.init(t,e);const n=Cun(e.entries);t._zod.values=new Set(n),t._zod.pattern=new RegExp(`^(${n.filter(r=>Iun.has(typeof r)).map(r=>typeof r=="string"?__(r):r.toString()).join("|")})$`),t._zod.parse=(r,i)=>{const s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:t}),r}}),hfn=at("$ZodLiteral",(t,e)=>{vs.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?__(n):n?n.toString():String(n)).join("|")})$`),t._zod.parse=(n,r)=>{const i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}}),pfn=at("$ZodTransform",(t,e)=>{vs.init(t,e),t._zod.parse=(n,r)=>{const i=e.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(a=>(n.value=a,n));if(i instanceof Promise)throw new zw;return n.value=i,n}}),mfn=at("$ZodOptional",(t,e)=>{vs.init(t,e),t._zod.optin="optional",t._zod.optout="optional",ms(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),ms(t._zod,"pattern",()=>{const n=e.innerType._zod.pattern;return n?new RegExp(`^(${NJ(n.source)})?$`):void 0}),t._zod.parse=(n,r)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(n,r):n.value===void 0?n:e.innerType._zod.run(n,r)}),gfn=at("$ZodNullable",(t,e)=>{vs.init(t,e),ms(t._zod,"optin",()=>e.innerType._zod.optin),ms(t._zod,"optout",()=>e.innerType._zod.optout),ms(t._zod,"pattern",()=>{const n=e.innerType._zod.pattern;return n?new RegExp(`^(${NJ(n.source)}|null)$`):void 0}),ms(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(n,r)=>n.value===null?n:e.innerType._zod.run(n,r)}),vfn=at("$ZodDefault",(t,e)=>{vs.init(t,e),t._zod.optin="optional",ms(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=e.defaultValue,n;const i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>nge(s,e)):nge(i,e)}});function nge(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}const yfn=at("$ZodPrefault",(t,e)=>{vs.init(t,e),t._zod.optin="optional",ms(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>(n.value===void 0&&(n.value=e.defaultValue),e.innerType._zod.run(n,r))}),bfn=at("$ZodNonOptional",(t,e)=>{vs.init(t,e),ms(t._zod,"values",()=>{const n=e.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),t._zod.parse=(n,r)=>{const i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>rge(s,t)):rge(i,t)}});function rge(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}const xfn=at("$ZodCatch",(t,e)=>{vs.init(t,e),t._zod.optin="optional",ms(t._zod,"optout",()=>e.innerType._zod.optout),ms(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{const i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=e.catchValue({...n,error:{issues:s.issues.map(a=>fm(a,r,dm()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=e.catchValue({...n,error:{issues:i.issues.map(s=>fm(s,r,dm()))},input:n.value}),n.issues=[]),n)}}),wfn=at("$ZodPipe",(t,e)=>{vs.init(t,e),ms(t._zod,"values",()=>e.in._zod.values),ms(t._zod,"optin",()=>e.in._zod.optin),ms(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(n,r)=>{const i=e.in._zod.run(n,r);return i instanceof Promise?i.then(s=>ige(s,e,r)):ige(i,e,r)}});function ige(t,e,n){return vx(t)?t:e.out._zod.run({value:t.value,issues:t.issues},n)}const _fn=at("$ZodReadonly",(t,e)=>{vs.init(t,e),ms(t._zod,"propValues",()=>e.innerType._zod.propValues),ms(t._zod,"values",()=>e.innerType._zod.values),ms(t._zod,"optin",()=>e.innerType._zod.optin),ms(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(n,r)=>{const i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(sge):sge(i)}});function sge(t){return t.value=Object.freeze(t.value),t}const kfn=at("$ZodCustom",(t,e)=>{vc.init(t,e),vs.init(t,e),t._zod.parse=(n,r)=>n,t._zod.check=n=>{const r=n.value,i=e.fn(r);if(i instanceof Promise)return i.then(s=>age(s,n,r,t));age(i,n,r,t)}});function age(t,e,n,r){if(!t){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),e.issues.push(Fw(i))}}class Sfn{constructor(){this._map=new Map,this._idmap=new Map}add(e,...n){const r=n[0];if(this._map.set(e,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){const n=this._map.get(e);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(e),this}get(e){const n=e._zod.parent;if(n){const r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}}function Cfn(){return new Sfn}const XS=Cfn();function Efn(t,e){return new t({type:"string",...Mn(e)})}function $fn(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Mn(e)})}function oge(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Mn(e)})}function Tfn(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Mn(e)})}function Ifn(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Mn(e)})}function Afn(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Mn(e)})}function Ofn(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Mn(e)})}function Dfn(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Mn(e)})}function Mfn(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Mn(e)})}function Nfn(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Mn(e)})}function Rfn(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Mn(e)})}function Lfn(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Mn(e)})}function Pfn(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Mn(e)})}function jfn(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Mn(e)})}function zfn(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Mn(e)})}function Ffn(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Mn(e)})}function Bfn(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Mn(e)})}function Ufn(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Mn(e)})}function qfn(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Mn(e)})}function Hfn(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Mn(e)})}function Wfn(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Mn(e)})}function Vfn(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Mn(e)})}function Zfn(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Mn(e)})}function Gfn(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Mn(e)})}function Kfn(t,e){return new t({type:"string",format:"date",check:"string_format",...Mn(e)})}function Yfn(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...Mn(e)})}function Jfn(t,e){return new t({type:"string",format:"duration",check:"string_format",...Mn(e)})}function Xfn(t,e){return new t({type:"number",checks:[],...Mn(e)})}function Qfn(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Mn(e)})}function ehn(t,e){return new t({type:"boolean",...Mn(e)})}function thn(t,e){return new t({type:"null",...Mn(e)})}function nhn(t){return new t({type:"unknown"})}function rhn(t,e){return new t({type:"never",...Mn(e)})}function lge(t,e){return new MNe({check:"less_than",...Mn(e),value:t,inclusive:!1})}function zj(t,e){return new MNe({check:"less_than",...Mn(e),value:t,inclusive:!0})}function cge(t,e){return new NNe({check:"greater_than",...Mn(e),value:t,inclusive:!1})}function Fj(t,e){return new NNe({check:"greater_than",...Mn(e),value:t,inclusive:!0})}function uge(t,e){return new vdn({check:"multiple_of",...Mn(e),value:t})}function jNe(t,e){return new bdn({check:"max_length",...Mn(e),maximum:t})}function FE(t,e){return new xdn({check:"min_length",...Mn(e),minimum:t})}function zNe(t,e){return new wdn({check:"length_equals",...Mn(e),length:t})}function ihn(t,e){return new _dn({check:"string_format",format:"regex",...Mn(e),pattern:t})}function shn(t){return new kdn({check:"string_format",format:"lowercase",...Mn(t)})}function ahn(t){return new Sdn({check:"string_format",format:"uppercase",...Mn(t)})}function ohn(t,e){return new Cdn({check:"string_format",format:"includes",...Mn(e),includes:t})}function lhn(t,e){return new Edn({check:"string_format",format:"starts_with",...Mn(e),prefix:t})}function chn(t,e){return new $dn({check:"string_format",format:"ends_with",...Mn(e),suffix:t})}function k_(t){return new Tdn({check:"overwrite",tx:t})}function uhn(t){return k_(e=>e.normalize(t))}function dhn(){return k_(t=>t.trim())}function fhn(){return k_(t=>t.toLowerCase())}function hhn(){return k_(t=>t.toUpperCase())}function phn(t,e,n){return new t({type:"array",element:e,...Mn(n)})}function mhn(t,e,n){const r=Mn(n);return r.abort??(r.abort=!0),new t({type:"custom",check:"custom",fn:e,...r})}function ghn(t,e,n){return new t({type:"custom",check:"custom",fn:e,...Mn(n)})}function PJ(t){return!!t._zod}function FNe(t,e){return PJ(t)?$Ne(t,e):t.safeParse(e)}function vhn(t){var n,r;if(!t)return;let e;if(PJ(t)?e=(r=(n=t._zod)==null?void 0:n.def)==null?void 0:r.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function yhn(t){var i;if(PJ(t)){const a=(i=t._zod)==null?void 0:i.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}const n=t._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}const r=t.value;if(r!==void 0)return r}const bhn=at("ZodISODateTime",(t,e)=>{Udn.init(t,e),qs.init(t,e)});function BNe(t){return Gfn(bhn,t)}const xhn=at("ZodISODate",(t,e)=>{qdn.init(t,e),qs.init(t,e)});function whn(t){return Kfn(xhn,t)}const _hn=at("ZodISOTime",(t,e)=>{Hdn.init(t,e),qs.init(t,e)});function khn(t){return Yfn(_hn,t)}const Shn=at("ZodISODuration",(t,e)=>{Wdn.init(t,e),qs.init(t,e)});function Chn(t){return Jfn(Shn,t)}const Ehn=(t,e)=>{SNe.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:n=>zun(t,n)},flatten:{value:n=>jun(t,n)},addIssue:{value:n=>t.issues.push(n)},addIssues:{value:n=>t.issues.push(...n)},isEmpty:{get(){return t.issues.length===0}}})},NI=at("ZodError",Ehn,{Parent:Error}),$hn=Fun(NI),Thn=Bun(NI),Ihn=ENe(NI),Ahn=TNe(NI),Us=at("ZodType",(t,e)=>(vs.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...n)=>t.clone({...e,checks:[...e.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),t.clone=(n,r)=>x2(t,n,r),t.brand=()=>t,t.register=((n,r)=>(n.add(t,r),t)),t.parse=(n,r)=>$hn(t,n,r,{callee:t.parse}),t.safeParse=(n,r)=>Ihn(t,n,r),t.parseAsync=async(n,r)=>Thn(t,n,r,{callee:t.parseAsync}),t.safeParseAsync=async(n,r)=>Ahn(t,n,r),t.spa=t.safeParseAsync,t.refine=(n,r)=>t.check(xpn(n,r)),t.superRefine=n=>t.check(wpn(n)),t.overwrite=n=>t.check(k_(n)),t.optional=()=>Gs(t),t.nullable=()=>hge(t),t.nullish=()=>Gs(hge(t)),t.nonoptional=n=>fpn(t,n),t.array=()=>pi(t),t.or=n=>ys([t,n]),t.and=n=>jJ(t,n),t.transform=n=>yV(t,GNe(n)),t.default=n=>cpn(t,n),t.prefault=n=>dpn(t,n),t.catch=n=>ppn(t,n),t.pipe=n=>yV(t,n),t.readonly=()=>vpn(t),t.describe=n=>{const r=t.clone();return XS.add(r,{description:n}),r},Object.defineProperty(t,"description",{get(){var n;return(n=XS.get(t))==null?void 0:n.description},configurable:!0}),t.meta=(...n)=>{if(n.length===0)return XS.get(t);const r=t.clone();return XS.add(r,n[0]),r},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),UNe=at("_ZodString",(t,e)=>{LJ.init(t,e),Us.init(t,e);const n=t._zod.bag;t.format=n.format??null,t.minLength=n.minimum??null,t.maxLength=n.maximum??null,t.regex=(...r)=>t.check(ihn(...r)),t.includes=(...r)=>t.check(ohn(...r)),t.startsWith=(...r)=>t.check(lhn(...r)),t.endsWith=(...r)=>t.check(chn(...r)),t.min=(...r)=>t.check(FE(...r)),t.max=(...r)=>t.check(jNe(...r)),t.length=(...r)=>t.check(zNe(...r)),t.nonempty=(...r)=>t.check(FE(1,...r)),t.lowercase=r=>t.check(shn(r)),t.uppercase=r=>t.check(ahn(r)),t.trim=()=>t.check(dhn()),t.normalize=(...r)=>t.check(uhn(...r)),t.toLowerCase=()=>t.check(fhn()),t.toUpperCase=()=>t.check(hhn())}),Ohn=at("ZodString",(t,e)=>{LJ.init(t,e),UNe.init(t,e),t.email=n=>t.check($fn(Dhn,n)),t.url=n=>t.check(Dfn(Mhn,n)),t.jwt=n=>t.check(Zfn(Ghn,n)),t.emoji=n=>t.check(Mfn(Nhn,n)),t.guid=n=>t.check(oge(dge,n)),t.uuid=n=>t.check(Tfn(QS,n)),t.uuidv4=n=>t.check(Ifn(QS,n)),t.uuidv6=n=>t.check(Afn(QS,n)),t.uuidv7=n=>t.check(Ofn(QS,n)),t.nanoid=n=>t.check(Nfn(Rhn,n)),t.guid=n=>t.check(oge(dge,n)),t.cuid=n=>t.check(Rfn(Lhn,n)),t.cuid2=n=>t.check(Lfn(Phn,n)),t.ulid=n=>t.check(Pfn(jhn,n)),t.base64=n=>t.check(Hfn(Whn,n)),t.base64url=n=>t.check(Wfn(Vhn,n)),t.xid=n=>t.check(jfn(zhn,n)),t.ksuid=n=>t.check(zfn(Fhn,n)),t.ipv4=n=>t.check(Ffn(Bhn,n)),t.ipv6=n=>t.check(Bfn(Uhn,n)),t.cidrv4=n=>t.check(Ufn(qhn,n)),t.cidrv6=n=>t.check(qfn(Hhn,n)),t.e164=n=>t.check(Vfn(Zhn,n)),t.datetime=n=>t.check(BNe(n)),t.date=n=>t.check(whn(n)),t.time=n=>t.check(khn(n)),t.duration=n=>t.check(Chn(n))});function nt(t){return Efn(Ohn,t)}const qs=at("ZodStringFormat",(t,e)=>{$s.init(t,e),UNe.init(t,e)}),Dhn=at("ZodEmail",(t,e)=>{Mdn.init(t,e),qs.init(t,e)}),dge=at("ZodGUID",(t,e)=>{Odn.init(t,e),qs.init(t,e)}),QS=at("ZodUUID",(t,e)=>{Ddn.init(t,e),qs.init(t,e)}),Mhn=at("ZodURL",(t,e)=>{Ndn.init(t,e),qs.init(t,e)}),Nhn=at("ZodEmoji",(t,e)=>{Rdn.init(t,e),qs.init(t,e)}),Rhn=at("ZodNanoID",(t,e)=>{Ldn.init(t,e),qs.init(t,e)}),Lhn=at("ZodCUID",(t,e)=>{Pdn.init(t,e),qs.init(t,e)}),Phn=at("ZodCUID2",(t,e)=>{jdn.init(t,e),qs.init(t,e)}),jhn=at("ZodULID",(t,e)=>{zdn.init(t,e),qs.init(t,e)}),zhn=at("ZodXID",(t,e)=>{Fdn.init(t,e),qs.init(t,e)}),Fhn=at("ZodKSUID",(t,e)=>{Bdn.init(t,e),qs.init(t,e)}),Bhn=at("ZodIPv4",(t,e)=>{Vdn.init(t,e),qs.init(t,e)}),Uhn=at("ZodIPv6",(t,e)=>{Zdn.init(t,e),qs.init(t,e)}),qhn=at("ZodCIDRv4",(t,e)=>{Gdn.init(t,e),qs.init(t,e)}),Hhn=at("ZodCIDRv6",(t,e)=>{Kdn.init(t,e),qs.init(t,e)}),Whn=at("ZodBase64",(t,e)=>{Ydn.init(t,e),qs.init(t,e)}),Vhn=at("ZodBase64URL",(t,e)=>{Xdn.init(t,e),qs.init(t,e)}),Zhn=at("ZodE164",(t,e)=>{Qdn.init(t,e),qs.init(t,e)}),Ghn=at("ZodJWT",(t,e)=>{tfn.init(t,e),qs.init(t,e)}),qNe=at("ZodNumber",(t,e)=>{LNe.init(t,e),Us.init(t,e),t.gt=(r,i)=>t.check(cge(r,i)),t.gte=(r,i)=>t.check(Fj(r,i)),t.min=(r,i)=>t.check(Fj(r,i)),t.lt=(r,i)=>t.check(lge(r,i)),t.lte=(r,i)=>t.check(zj(r,i)),t.max=(r,i)=>t.check(zj(r,i)),t.int=r=>t.check(fge(r)),t.safe=r=>t.check(fge(r)),t.positive=r=>t.check(cge(0,r)),t.nonnegative=r=>t.check(Fj(0,r)),t.negative=r=>t.check(lge(0,r)),t.nonpositive=r=>t.check(zj(0,r)),t.multipleOf=(r,i)=>t.check(uge(r,i)),t.step=(r,i)=>t.check(uge(r,i)),t.finite=()=>t;const n=t._zod.bag;t.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),t.isFinite=!0,t.format=n.format??null});function Wi(t){return Xfn(qNe,t)}const Khn=at("ZodNumberFormat",(t,e)=>{nfn.init(t,e),qNe.init(t,e)});function fge(t){return Qfn(Khn,t)}const Yhn=at("ZodBoolean",(t,e)=>{rfn.init(t,e),Us.init(t,e)});function wo(t){return ehn(Yhn,t)}const Jhn=at("ZodNull",(t,e)=>{ifn.init(t,e),Us.init(t,e)});function HNe(t){return thn(Jhn,t)}const Xhn=at("ZodUnknown",(t,e)=>{sfn.init(t,e),Us.init(t,e)});function Fs(){return nhn(Xhn)}const Qhn=at("ZodNever",(t,e)=>{afn.init(t,e),Us.init(t,e)});function epn(t){return rhn(Qhn,t)}const tpn=at("ZodArray",(t,e)=>{ofn.init(t,e),Us.init(t,e),t.element=e.element,t.min=(n,r)=>t.check(FE(n,r)),t.nonempty=n=>t.check(FE(1,n)),t.max=(n,r)=>t.check(jNe(n,r)),t.length=(n,r)=>t.check(zNe(n,r)),t.unwrap=()=>t.element});function pi(t,e){return phn(tpn,t,e)}const WNe=at("ZodObject",(t,e)=>{lfn.init(t,e),Us.init(t,e),ms(t,"shape",()=>e.shape),t.keyof=()=>Qc(Object.keys(t._zod.def.shape)),t.catchall=n=>t.clone({...t._zod.def,catchall:n}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Fs()}),t.loose=()=>t.clone({...t._zod.def,catchall:Fs()}),t.strict=()=>t.clone({...t._zod.def,catchall:epn()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=n=>Nun(t,n),t.merge=n=>Run(t,n),t.pick=n=>Dun(t,n),t.omit=n=>Mun(t,n),t.partial=(...n)=>Lun(KNe,t,n[0]),t.required=(...n)=>Pun(YNe,t,n[0])});function un(t,e){const n={type:"object",get shape(){return DI(this,"shape",{...t}),this.shape},...Mn(e)};return new WNe(n)}function rc(t,e){return new WNe({type:"object",get shape(){return DI(this,"shape",{...t}),this.shape},catchall:Fs(),...Mn(e)})}const VNe=at("ZodUnion",(t,e)=>{PNe.init(t,e),Us.init(t,e),t.options=e.options});function ys(t,e){return new VNe({type:"union",options:t,...Mn(e)})}const npn=at("ZodDiscriminatedUnion",(t,e)=>{VNe.init(t,e),cfn.init(t,e)});function ZNe(t,e,n){return new npn({type:"union",options:e,discriminator:t,...Mn(n)})}const rpn=at("ZodIntersection",(t,e)=>{ufn.init(t,e),Us.init(t,e)});function jJ(t,e){return new rpn({type:"intersection",left:t,right:e})}const ipn=at("ZodRecord",(t,e)=>{dfn.init(t,e),Us.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Bs(t,e,n){return new ipn({type:"record",keyType:t,valueType:e,...Mn(n)})}const vV=at("ZodEnum",(t,e)=>{ffn.init(t,e),Us.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);const n=new Set(Object.keys(e.entries));t.extract=(r,i)=>{const s={};for(const a of r)if(n.has(a))s[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new vV({...e,checks:[],...Mn(i),entries:s})},t.exclude=(r,i)=>{const s={...e.entries};for(const a of r)if(n.has(a))delete s[a];else throw new Error(`Key ${a} not found in enum`);return new vV({...e,checks:[],...Mn(i),entries:s})}});function Qc(t,e){const n=Array.isArray(t)?Object.fromEntries(t.map(r=>[r,r])):t;return new vV({type:"enum",entries:n,...Mn(e)})}const spn=at("ZodLiteral",(t,e)=>{hfn.init(t,e),Us.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function Rn(t,e){return new spn({type:"literal",values:Array.isArray(t)?t:[t],...Mn(e)})}const apn=at("ZodTransform",(t,e)=>{pfn.init(t,e),Us.init(t,e),t._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(Fw(s,n.value,e));else{const a=s;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),n.issues.push(Fw(a))}};const i=e.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});function GNe(t){return new apn({type:"transform",transform:t})}const KNe=at("ZodOptional",(t,e)=>{mfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Gs(t){return new KNe({type:"optional",innerType:t})}const opn=at("ZodNullable",(t,e)=>{gfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType});function hge(t){return new opn({type:"nullable",innerType:t})}const lpn=at("ZodDefault",(t,e)=>{vfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function cpn(t,e){return new lpn({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}const upn=at("ZodPrefault",(t,e)=>{yfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType});function dpn(t,e){return new upn({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}const YNe=at("ZodNonOptional",(t,e)=>{bfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType});function fpn(t,e){return new YNe({type:"nonoptional",innerType:t,...Mn(e)})}const hpn=at("ZodCatch",(t,e)=>{xfn.init(t,e),Us.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function ppn(t,e){return new hpn({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}const mpn=at("ZodPipe",(t,e)=>{wfn.init(t,e),Us.init(t,e),t.in=e.in,t.out=e.out});function yV(t,e){return new mpn({type:"pipe",in:t,out:e})}const gpn=at("ZodReadonly",(t,e)=>{_fn.init(t,e),Us.init(t,e)});function vpn(t){return new gpn({type:"readonly",innerType:t})}const JNe=at("ZodCustom",(t,e)=>{kfn.init(t,e),Us.init(t,e)});function ypn(t){const e=new vc({check:"custom"});return e._zod.check=t,e}function bpn(t,e){return mhn(JNe,t??(()=>!0),e)}function xpn(t,e={}){return ghn(JNe,t,e)}function wpn(t){const e=ypn(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(Fw(r,n.value,e._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),n.issues.push(Fw(i))}},t(n.value,n)));return e}function XNe(t,e){return yV(GNe(t),e)}const C1="io.modelcontextprotocol/related-task",RI="2.0",_o=bpn(t=>t!==null&&(typeof t=="object"||typeof t=="function")),QNe=ys([nt(),Wi().int()]),eRe=nt();rc({ttl:ys([Wi(),HNe()]).optional(),pollInterval:Wi().optional()});const _pn=un({ttl:Wi().optional()}),kpn=un({taskId:nt()}),zJ=rc({progressToken:QNe.optional(),[C1]:kpn.optional()}),eu=un({_meta:zJ.optional()}),S_=eu.extend({task:_pn.optional()}),Spn=t=>S_.safeParse(t).success,Eo=un({method:nt(),params:eu.loose().optional()}),ad=un({_meta:zJ.optional()}),od=un({method:nt(),params:ad.loose().optional()}),$o=rc({_meta:zJ.optional()}),y5=ys([nt(),Wi().int()]),tRe=un({jsonrpc:Rn(RI),id:y5,...Eo.shape}).strict(),pge=t=>tRe.safeParse(t).success,nRe=un({jsonrpc:Rn(RI),...od.shape}).strict(),Cpn=t=>nRe.safeParse(t).success,FJ=un({jsonrpc:Rn(RI),id:y5,result:$o}).strict(),e8=t=>FJ.safeParse(t).success;var qi;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(qi||(qi={}));const BJ=un({jsonrpc:Rn(RI),id:y5.optional(),error:un({code:Wi().int(),message:nt(),data:Fs().optional()})}).strict(),Epn=t=>BJ.safeParse(t).success,$pn=ys([tRe,nRe,FJ,BJ]);ys([FJ,BJ]);const rRe=$o.strict(),Tpn=ad.extend({requestId:y5.optional(),reason:nt().optional()}),UJ=od.extend({method:Rn("notifications/cancelled"),params:Tpn}),Ipn=un({src:nt(),mimeType:nt().optional(),sizes:pi(nt()).optional(),theme:Qc(["light","dark"]).optional()}),C_=un({icons:pi(Ipn).optional()}),lb=un({name:nt(),title:nt().optional()}),b5=lb.extend({...lb.shape,...C_.shape,version:nt(),websiteUrl:nt().optional(),description:nt().optional()}),Apn=jJ(un({applyDefaults:wo().optional()}),Bs(nt(),Fs())),Opn=XNe(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,jJ(un({form:Apn.optional(),url:_o.optional()}),Bs(nt(),Fs()).optional())),Dpn=rc({list:_o.optional(),cancel:_o.optional(),requests:rc({sampling:rc({createMessage:_o.optional()}).optional(),elicitation:rc({create:_o.optional()}).optional()}).optional()}),Mpn=rc({list:_o.optional(),cancel:_o.optional(),requests:rc({tools:rc({call:_o.optional()}).optional()}).optional()}),Npn=un({experimental:Bs(nt(),_o).optional(),sampling:un({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:Opn.optional(),roots:un({listChanged:wo().optional()}).optional(),tasks:Dpn.optional()}),Rpn=eu.extend({protocolVersion:nt(),capabilities:Npn,clientInfo:b5}),Lpn=Eo.extend({method:Rn("initialize"),params:Rpn}),Ppn=un({experimental:Bs(nt(),_o).optional(),logging:_o.optional(),completions:_o.optional(),prompts:un({listChanged:wo().optional()}).optional(),resources:un({subscribe:wo().optional(),listChanged:wo().optional()}).optional(),tools:un({listChanged:wo().optional()}).optional(),tasks:Mpn.optional()}),jpn=$o.extend({protocolVersion:nt(),capabilities:Ppn,serverInfo:b5,instructions:nt().optional()}),zpn=od.extend({method:Rn("notifications/initialized"),params:ad.optional()}),LI=Eo.extend({method:Rn("ping"),params:eu.optional()}),Fpn=un({progress:Wi(),total:Gs(Wi()),message:Gs(nt())}),Bpn=un({...ad.shape,...Fpn.shape,progressToken:QNe}),qJ=od.extend({method:Rn("notifications/progress"),params:Bpn}),Upn=eu.extend({cursor:eRe.optional()}),E_=Eo.extend({params:Upn.optional()}),$_=$o.extend({nextCursor:eRe.optional()}),qpn=Qc(["working","input_required","completed","failed","cancelled"]),T_=un({taskId:nt(),status:qpn,ttl:ys([Wi(),HNe()]),createdAt:nt(),lastUpdatedAt:nt(),pollInterval:Gs(Wi()),statusMessage:Gs(nt())}),HJ=$o.extend({task:T_}),Hpn=ad.merge(T_),BE=od.extend({method:Rn("notifications/tasks/status"),params:Hpn}),WJ=Eo.extend({method:Rn("tasks/get"),params:eu.extend({taskId:nt()})}),VJ=$o.merge(T_),ZJ=Eo.extend({method:Rn("tasks/result"),params:eu.extend({taskId:nt()})});$o.loose();const GJ=E_.extend({method:Rn("tasks/list")}),KJ=$_.extend({tasks:pi(T_)}),YJ=Eo.extend({method:Rn("tasks/cancel"),params:eu.extend({taskId:nt()})}),Wpn=$o.merge(T_),iRe=un({uri:nt(),mimeType:Gs(nt()),_meta:Bs(nt(),Fs()).optional()}),sRe=iRe.extend({text:nt()}),JJ=nt().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),aRe=iRe.extend({blob:JJ}),I_=Qc(["user","assistant"]),x5=un({audience:pi(I_).optional(),priority:Wi().min(0).max(1).optional(),lastModified:BNe({offset:!0}).optional()}),oRe=un({...lb.shape,...C_.shape,uri:nt(),description:Gs(nt()),mimeType:Gs(nt()),annotations:x5.optional(),_meta:Gs(rc({}))}),Vpn=un({...lb.shape,...C_.shape,uriTemplate:nt(),description:Gs(nt()),mimeType:Gs(nt()),annotations:x5.optional(),_meta:Gs(rc({}))}),lRe=E_.extend({method:Rn("resources/list")}),cRe=$_.extend({resources:pi(oRe)}),uRe=E_.extend({method:Rn("resources/templates/list")}),dRe=$_.extend({resourceTemplates:pi(Vpn)}),XJ=eu.extend({uri:nt()}),Zpn=XJ,fRe=Eo.extend({method:Rn("resources/read"),params:Zpn}),hRe=$o.extend({contents:pi(ys([sRe,aRe]))}),pRe=od.extend({method:Rn("notifications/resources/list_changed"),params:ad.optional()}),Gpn=XJ,Kpn=Eo.extend({method:Rn("resources/subscribe"),params:Gpn}),Ypn=XJ,Jpn=Eo.extend({method:Rn("resources/unsubscribe"),params:Ypn}),Xpn=ad.extend({uri:nt()}),Qpn=od.extend({method:Rn("notifications/resources/updated"),params:Xpn}),e0n=un({name:nt(),description:Gs(nt()),required:Gs(wo())}),t0n=un({...lb.shape,...C_.shape,description:Gs(nt()),arguments:Gs(pi(e0n)),_meta:Gs(rc({}))}),mRe=E_.extend({method:Rn("prompts/list")}),gRe=$_.extend({prompts:pi(t0n)}),n0n=eu.extend({name:nt(),arguments:Bs(nt(),nt()).optional()}),r0n=Eo.extend({method:Rn("prompts/get"),params:n0n}),QJ=un({type:Rn("text"),text:nt(),annotations:x5.optional(),_meta:Bs(nt(),Fs()).optional()}),eX=un({type:Rn("image"),data:JJ,mimeType:nt(),annotations:x5.optional(),_meta:Bs(nt(),Fs()).optional()}),tX=un({type:Rn("audio"),data:JJ,mimeType:nt(),annotations:x5.optional(),_meta:Bs(nt(),Fs()).optional()}),i0n=un({type:Rn("tool_use"),name:nt(),id:nt(),input:Bs(nt(),Fs()),_meta:Bs(nt(),Fs()).optional()}),s0n=un({type:Rn("resource"),resource:ys([sRe,aRe]),annotations:x5.optional(),_meta:Bs(nt(),Fs()).optional()}),a0n=oRe.extend({type:Rn("resource_link")}),w2=ys([QJ,eX,tX,a0n,s0n]),o0n=un({role:I_,content:w2}),l0n=$o.extend({description:nt().optional(),messages:pi(o0n)}),vRe=od.extend({method:Rn("notifications/prompts/list_changed"),params:ad.optional()}),c0n=un({title:nt().optional(),readOnlyHint:wo().optional(),destructiveHint:wo().optional(),idempotentHint:wo().optional(),openWorldHint:wo().optional()}),u0n=un({taskSupport:Qc(["required","optional","forbidden"]).optional()}),PI=un({...lb.shape,...C_.shape,description:nt().optional(),inputSchema:un({type:Rn("object"),properties:Bs(nt(),_o).optional(),required:pi(nt()).optional()}).catchall(Fs()),outputSchema:un({type:Rn("object"),properties:Bs(nt(),_o).optional(),required:pi(nt()).optional()}).catchall(Fs()).optional(),annotations:c0n.optional(),execution:u0n.optional(),_meta:Bs(nt(),Fs()).optional()}),d0n=E_.extend({method:Rn("tools/list")}),f0n=$_.extend({tools:pi(PI)}),A_=$o.extend({content:pi(w2).default([]),structuredContent:Bs(nt(),Fs()).optional(),isError:wo().optional()});A_.or($o.extend({toolResult:Fs()}));const h0n=S_.extend({name:nt(),arguments:Bs(nt(),Fs()).optional()}),yRe=Eo.extend({method:Rn("tools/call"),params:h0n}),bRe=od.extend({method:Rn("notifications/tools/list_changed"),params:ad.optional()});un({autoRefresh:wo().default(!0),debounceMs:Wi().int().nonnegative().default(300)});const xRe=Qc(["debug","info","notice","warning","error","critical","alert","emergency"]),p0n=eu.extend({level:xRe}),m0n=Eo.extend({method:Rn("logging/setLevel"),params:p0n}),g0n=ad.extend({level:xRe,logger:nt().optional(),data:Fs()}),wRe=od.extend({method:Rn("notifications/message"),params:g0n}),v0n=un({name:nt().optional()}),y0n=un({hints:pi(v0n).optional(),costPriority:Wi().min(0).max(1).optional(),speedPriority:Wi().min(0).max(1).optional(),intelligencePriority:Wi().min(0).max(1).optional()}),b0n=un({mode:Qc(["auto","required","none"]).optional()}),x0n=un({type:Rn("tool_result"),toolUseId:nt().describe("The unique identifier for the corresponding tool call."),content:pi(w2).default([]),structuredContent:un({}).loose().optional(),isError:wo().optional(),_meta:Bs(nt(),Fs()).optional()}),w0n=ZNe("type",[QJ,eX,tX]),UE=ZNe("type",[QJ,eX,tX,i0n,x0n]),_0n=un({role:I_,content:ys([UE,pi(UE)]),_meta:Bs(nt(),Fs()).optional()}),k0n=S_.extend({messages:pi(_0n),modelPreferences:y0n.optional(),systemPrompt:nt().optional(),includeContext:Qc(["none","thisServer","allServers"]).optional(),temperature:Wi().optional(),maxTokens:Wi().int(),stopSequences:pi(nt()).optional(),metadata:_o.optional(),tools:pi(PI).optional(),toolChoice:b0n.optional()}),S0n=Eo.extend({method:Rn("sampling/createMessage"),params:k0n}),C0n=$o.extend({model:nt(),stopReason:Gs(Qc(["endTurn","stopSequence","maxTokens"]).or(nt())),role:I_,content:w0n}),E0n=$o.extend({model:nt(),stopReason:Gs(Qc(["endTurn","stopSequence","maxTokens","toolUse"]).or(nt())),role:I_,content:ys([UE,pi(UE)])}),$0n=un({type:Rn("boolean"),title:nt().optional(),description:nt().optional(),default:wo().optional()}),T0n=un({type:Rn("string"),title:nt().optional(),description:nt().optional(),minLength:Wi().optional(),maxLength:Wi().optional(),format:Qc(["email","uri","date","date-time"]).optional(),default:nt().optional()}),I0n=un({type:Qc(["number","integer"]),title:nt().optional(),description:nt().optional(),minimum:Wi().optional(),maximum:Wi().optional(),default:Wi().optional()}),A0n=un({type:Rn("string"),title:nt().optional(),description:nt().optional(),enum:pi(nt()),default:nt().optional()}),O0n=un({type:Rn("string"),title:nt().optional(),description:nt().optional(),oneOf:pi(un({const:nt(),title:nt()})),default:nt().optional()}),D0n=un({type:Rn("string"),title:nt().optional(),description:nt().optional(),enum:pi(nt()),enumNames:pi(nt()).optional(),default:nt().optional()}),M0n=ys([A0n,O0n]),N0n=un({type:Rn("array"),title:nt().optional(),description:nt().optional(),minItems:Wi().optional(),maxItems:Wi().optional(),items:un({type:Rn("string"),enum:pi(nt())}),default:pi(nt()).optional()}),R0n=un({type:Rn("array"),title:nt().optional(),description:nt().optional(),minItems:Wi().optional(),maxItems:Wi().optional(),items:un({anyOf:pi(un({const:nt(),title:nt()}))}),default:pi(nt()).optional()}),L0n=ys([N0n,R0n]),P0n=ys([D0n,M0n,L0n]),j0n=ys([P0n,$0n,T0n,I0n]),z0n=S_.extend({mode:Rn("form").optional(),message:nt(),requestedSchema:un({type:Rn("object"),properties:Bs(nt(),j0n),required:pi(nt()).optional()})}),F0n=S_.extend({mode:Rn("url"),message:nt(),elicitationId:nt(),url:nt().url()}),B0n=ys([z0n,F0n]),U0n=Eo.extend({method:Rn("elicitation/create"),params:B0n}),q0n=ad.extend({elicitationId:nt()}),H0n=od.extend({method:Rn("notifications/elicitation/complete"),params:q0n}),W0n=$o.extend({action:Qc(["accept","decline","cancel"]),content:XNe(t=>t===null?void 0:t,Bs(nt(),ys([nt(),Wi(),wo(),pi(nt())])).optional())}),V0n=un({type:Rn("ref/resource"),uri:nt()}),Z0n=un({type:Rn("ref/prompt"),name:nt()}),G0n=eu.extend({ref:ys([Z0n,V0n]),argument:un({name:nt(),value:nt()}),context:un({arguments:Bs(nt(),nt()).optional()}).optional()}),K0n=Eo.extend({method:Rn("completion/complete"),params:G0n}),Y0n=$o.extend({completion:rc({values:pi(nt()).max(100),total:Gs(Wi().int()),hasMore:Gs(wo())})}),J0n=un({uri:nt().startsWith("file://"),name:nt().optional(),_meta:Bs(nt(),Fs()).optional()}),X0n=Eo.extend({method:Rn("roots/list"),params:eu.optional()}),Q0n=$o.extend({roots:pi(J0n)}),emn=od.extend({method:Rn("notifications/roots/list_changed"),params:ad.optional()});ys([LI,Lpn,K0n,m0n,r0n,mRe,lRe,uRe,fRe,Kpn,Jpn,yRe,d0n,WJ,ZJ,GJ,YJ]);ys([UJ,qJ,zpn,emn,BE]);ys([rRe,C0n,E0n,W0n,Q0n,VJ,KJ,HJ]);ys([LI,S0n,U0n,X0n,WJ,ZJ,GJ,YJ]);ys([UJ,qJ,wRe,Qpn,pRe,bRe,vRe,BE,H0n]);ys([rRe,jpn,Y0n,l0n,gRe,cRe,dRe,hRe,A_,f0n,VJ,KJ,HJ]);class yi extends Error{constructor(e,n,r){super(`MCP error ${e}: ${n}`),this.code=e,this.data=r,this.name="McpError"}static fromError(e,n,r){if(e===qi.UrlElicitationRequired&&r){const i=r;if(i.elicitations)return new tmn(i.elicitations,n)}return new yi(e,n,r)}}class tmn extends yi{constructor(e,n=`URL elicitation${e.length>1?"s":""} required`){super(qi.UrlElicitationRequired,n,{elicitations:e})}get elicitations(){var e;return((e=this.data)==null?void 0:e.elicitations)??[]}}function f1(t){return t==="completed"||t==="failed"||t==="cancelled"}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function mge(t){const e=vhn(t),n=e==null?void 0:e.method;if(!n)throw new Error("Schema is missing a method literal");const r=yhn(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function gge(t,e){const n=FNe(t,e);if(!n.success)throw n.error;return n.data}const nmn=6e4;class rmn{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(UJ,n=>{this._oncancel(n)}),this.setNotificationHandler(qJ,n=>{this._onprogress(n)}),this.setRequestHandler(LI,n=>({})),this._taskStore=e==null?void 0:e.taskStore,this._taskMessageQueue=e==null?void 0:e.taskMessageQueue,this._taskStore&&(this.setRequestHandler(WJ,async(n,r)=>{const i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new yi(qi.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(ZJ,async(n,r)=>{const i=async()=>{var o;const s=n.params.taskId;if(this._taskMessageQueue){let l;for(;l=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(l.type==="response"||l.type==="error"){const c=l.message,u=c.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),l.type==="response")d(c);else{const f=c,h=new yi(f.error.code,f.error.message,f.error.data);d(h)}else{const f=l.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${u}`))}continue}await((o=this._transport)==null?void 0:o.send(l.message,{relatedRequestId:r.requestId}))}}const a=await this._taskStore.getTask(s,r.sessionId);if(!a)throw new yi(qi.InvalidParams,`Task not found: ${s}`);if(!f1(a.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(f1(a.status)){const l=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...l,_meta:{...l._meta,[C1]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(GJ,async(n,r)=>{var i;try{const{tasks:s,nextCursor:a}=await this._taskStore.listTasks((i=n.params)==null?void 0:i.cursor,r.sessionId);return{tasks:s,nextCursor:a,_meta:{}}}catch(s){throw new yi(qi.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(YJ,async(n,r)=>{try{const i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new yi(qi.InvalidParams,`Task not found: ${n.params.taskId}`);if(f1(i.status))throw new yi(qi.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);const s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new yi(qi.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof yi?i:new yi(qi.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;const n=this._requestHandlerAbortControllers.get(e.params.requestId);n==null||n.abort(e.params.reason)}_setupTimeout(e,n,r,i,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(e){const n=this._timeoutInfo.get(e);if(!n)return!1;const r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(e),yi.fromError(qi.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(e){const n=this._timeoutInfo.get(e);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var s,a,o;this._transport=e;const n=(s=this.transport)==null?void 0:s.onclose;this._transport.onclose=()=>{n==null||n(),this._onclose()};const r=(a=this.transport)==null?void 0:a.onerror;this._transport.onerror=l=>{r==null||r(l),this._onerror(l)};const i=(o=this._transport)==null?void 0:o.onmessage;this._transport.onmessage=(l,c)=>{i==null||i(l,c),e8(l)||Epn(l)?this._onresponse(l):pge(l)?this._onrequest(l,c):Cpn(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var r;const e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();const n=yi.fromError(qi.ConnectionClosed,"Connection closed");this._transport=void 0,(r=this.onclose)==null||r.call(this);for(const i of e.values())i(n)}_onerror(e){var n;(n=this.onerror)==null||n.call(this,e)}_onnotification(e){const n=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(e)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(e,n){var u,d,f,h;const r=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,s=(f=(d=(u=e.params)==null?void 0:u._meta)==null?void 0:d[C1])==null?void 0:f.taskId;if(r===void 0){const m={jsonrpc:"2.0",id:e.id,error:{code:qi.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:m,timestamp:Date.now()},i==null?void 0:i.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):i==null||i.send(m).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}const a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);const o=Spn(e.params)?e.params.task:void 0,l=this._taskStore?this.requestTaskStore(e,i==null?void 0:i.sessionId):void 0,c={signal:a.signal,sessionId:i==null?void 0:i.sessionId,_meta:(h=e.params)==null?void 0:h._meta,sendNotification:async m=>{const p={relatedRequestId:e.id};s&&(p.relatedTask={taskId:s}),await this.notification(m,p)},sendRequest:async(m,p,v)=>{var E;const x={...v,relatedRequestId:e.id};s&&!x.relatedTask&&(x.relatedTask={taskId:s});const w=((E=x.relatedTask)==null?void 0:E.taskId)??s;return w&&l&&await l.updateTaskStatus(w,"input_required"),await this.request(m,p,x)},authInfo:n==null?void 0:n.authInfo,requestId:e.id,requestInfo:n==null?void 0:n.requestInfo,taskId:s,taskStore:l,taskRequestedTtl:o==null?void 0:o.ttl,closeSSEStream:n==null?void 0:n.closeSSEStream,closeStandaloneSSEStream:n==null?void 0:n.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>r(e,c)).then(async m=>{if(a.signal.aborted)return;const p={result:m,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:p,timestamp:Date.now()},i==null?void 0:i.sessionId):await(i==null?void 0:i.send(p))},async m=>{if(a.signal.aborted)return;const p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(m.code)?m.code:qi.InternalError,message:m.message??"Internal error",...m.data!==void 0&&{data:m.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:p,timestamp:Date.now()},i==null?void 0:i.sessionId):await(i==null?void 0:i.send(p))}).catch(m=>this._onerror(new Error(`Failed to send response: ${m}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){const{progressToken:n,...r}=e.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}const a=this._responseHandlers.get(i),o=this._timeoutInfo.get(i);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(l){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),a(l);return}s(r)}_onresponse(e){const n=Number(e.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),e8(e))r(e);else{const a=new yi(e.error.code,e.error.message,e.error.data);r(a)}return}const i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(e8(e)&&e.result&&typeof e.result=="object"){const a=e.result;if(a.task&&typeof a.task=="object"){const o=a.task;typeof o.taskId=="string"&&(s=!0,this._taskProgressTokens.set(o.taskId,n))}}if(s||this._progressHandlers.delete(n),e8(e))i(e);else{const a=yi.fromError(e.error.code,e.error.message,e.error.data);i(a)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)==null?void 0:e.close())}async*requestStream(e,n,r){var a,o;const{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(e,n,r)}}catch(l){yield{type:"error",error:l instanceof yi?l:new yi(qi.InternalError,String(l))}}return}let s;try{const l=await this.request(e,HJ,r);if(l.task)s=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new yi(qi.InternalError,"Task creation did not return a task");for(;;){const c=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:c},f1(c.status)){c.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:c.status==="failed"?yield{type:"error",error:new yi(qi.InternalError,`Task ${s} failed`)}:c.status==="cancelled"&&(yield{type:"error",error:new yi(qi.InternalError,`Task ${s} was cancelled`)});return}if(c.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}const u=c.pollInterval??((a=this._options)==null?void 0:a.defaultTaskPollInterval)??1e3;await new Promise(d=>setTimeout(d,u)),(o=r==null?void 0:r.signal)==null||o.throwIfAborted()}}catch(l){yield{type:"error",error:l instanceof yi?l:new yi(qi.InternalError,String(l))}}}request(e,n,r){const{relatedRequestId:i,resumptionToken:s,onresumptiontoken:a,task:o,relatedTask:l}=r??{};return new Promise((c,u)=>{var w,E,S,_,C;const d=T=>{u(T)};if(!this._transport){d(new Error("Not connected"));return}if(((w=this._options)==null?void 0:w.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(T){d(T);return}(E=r==null?void 0:r.signal)==null||E.throwIfAborted();const f=this._requestMessageId++,h={...e,jsonrpc:"2.0",id:f};r!=null&&r.onprogress&&(this._progressHandlers.set(f,r.onprogress),h.params={...e.params,_meta:{...((S=e.params)==null?void 0:S._meta)||{},progressToken:f}}),o&&(h.params={...h.params,task:o}),l&&(h.params={...h.params,_meta:{...((_=h.params)==null?void 0:_._meta)||{},[C1]:l}});const m=T=>{var A;this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),(A=this._transport)==null||A.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(T)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:a}).catch($=>this._onerror(new Error(`Failed to send cancellation: ${$}`)));const M=T instanceof yi?T:new yi(qi.RequestTimeout,String(T));u(M)};this._responseHandlers.set(f,T=>{var M;if(!((M=r==null?void 0:r.signal)!=null&&M.aborted)){if(T instanceof Error)return u(T);try{const A=FNe(n,T.result);A.success?c(A.data):u(A.error)}catch(A){u(A)}}}),(C=r==null?void 0:r.signal)==null||C.addEventListener("abort",()=>{var T;m((T=r==null?void 0:r.signal)==null?void 0:T.reason)});const p=(r==null?void 0:r.timeout)??nmn,v=()=>m(yi.fromError(qi.RequestTimeout,"Request timed out",{timeout:p}));this._setupTimeout(f,p,r==null?void 0:r.maxTotalTimeout,v,(r==null?void 0:r.resetTimeoutOnProgress)??!1);const x=l==null?void 0:l.taskId;if(x){const T=M=>{const A=this._responseHandlers.get(f);A?A(M):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,T),this._enqueueTaskMessage(x,{type:"request",message:h,timestamp:Date.now()}).catch(M=>{this._cleanupTimeout(f),u(M)})}else this._transport.send(h,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:a}).catch(T=>{this._cleanupTimeout(f),u(T)})})}async getTask(e,n){return this.request({method:"tasks/get",params:e},VJ,n)}async getTaskResult(e,n,r){return this.request({method:"tasks/result",params:e},n,r)}async listTasks(e,n){return this.request({method:"tasks/list",params:e},KJ,n)}async cancelTask(e,n){return this.request({method:"tasks/cancel",params:e},Wpn,n)}async notification(e,n){var o,l,c,u;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);const r=(o=n==null?void 0:n.relatedTask)==null?void 0:o.taskId;if(r){const d={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...((l=e.params)==null?void 0:l._meta)||{},[C1]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:d,timestamp:Date.now()});return}if((((c=this._options)==null?void 0:c.debouncedNotificationMethods)??[]).includes(e.method)&&!e.params&&!(n!=null&&n.relatedRequestId)&&!(n!=null&&n.relatedTask)){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var f,h;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let d={...e,jsonrpc:"2.0"};n!=null&&n.relatedTask&&(d={...d,params:{...d.params,_meta:{...((f=d.params)==null?void 0:f._meta)||{},[C1]:n.relatedTask}}}),(h=this._transport)==null||h.send(d,n).catch(m=>this._onerror(m))});return}let a={...e,jsonrpc:"2.0"};n!=null&&n.relatedTask&&(a={...a,params:{...a.params,_meta:{...((u=a.params)==null?void 0:u._meta)||{},[C1]:n.relatedTask}}}),await this._transport.send(a,n)}setRequestHandler(e,n){const r=mge(e);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{const a=gge(e,i);return Promise.resolve(n(a,s))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,n){const r=mge(e);this._notificationHandlers.set(r,i=>{const s=gge(e,i);return Promise.resolve(n(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){const n=this._taskProgressTokens.get(e);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,n,r){var s;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");const i=(s=this._options)==null?void 0:s.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,n,r,i)}async _clearTaskQueue(e,n){if(this._taskMessageQueue){const r=await this._taskMessageQueue.dequeueAll(e,n);for(const i of r)if(i.type==="request"&&pge(i.message)){const s=i.message.id,a=this._requestResolvers.get(s);a?(a(new yi(qi.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,n){var i,s;let r=((i=this._options)==null?void 0:i.defaultTaskPollInterval)??1e3;try{const a=await((s=this._taskStore)==null?void 0:s.getTask(e));a!=null&&a.pollInterval&&(r=a.pollInterval)}catch{}return new Promise((a,o)=>{if(n.aborted){o(new yi(qi.InvalidRequest,"Request cancelled"));return}const l=setTimeout(a,r);n.addEventListener("abort",()=>{clearTimeout(l),o(new yi(qi.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,n){const r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await r.createTask(i,e.id,{method:e.method,params:e.params},n)},getTask:async i=>{const s=await r.getTask(i,n);if(!s)throw new yi(qi.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,a)=>{await r.storeTaskResult(i,s,a,n);const o=await r.getTask(i,n);if(o){const l=BE.parse({method:"notifications/tasks/status",params:o});await this.notification(l),f1(o.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,a)=>{const o=await r.getTask(i,n);if(!o)throw new yi(qi.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(f1(o.status))throw new yi(qi.InvalidParams,`Cannot update task "${i}" from terminal status "${o.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,a,n);const l=await r.getTask(i,n);if(l){const c=BE.parse({method:"notifications/tasks/status",params:l});await this.notification(c),f1(l.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}var imn=Object.defineProperty,Mp=(t,e)=>{for(var n in e)imn(t,n,{get:e[n],enumerable:!0,configurable:!0,set:r=>e[n]=()=>r})};let smn=class{constructor(e=window.parent,n){Wt(this,"eventTarget");Wt(this,"eventSource");Wt(this,"messageListener");Wt(this,"onclose");Wt(this,"onerror");Wt(this,"onmessage");Wt(this,"sessionId");Wt(this,"setProtocolVersion");this.eventTarget=e,this.eventSource=n,this.messageListener=r=>{var s,a;if(n&&r.source!==this.eventSource){console.debug("Ignoring message from unknown source",r);return}let i=$pn.safeParse(r.data);i.success?(console.debug("Parsed message",i.data),(s=this.onmessage)==null||s.call(this,i.data)):(console.error("Failed to parse message",i.error.message,r),(a=this.onerror)==null||a.call(this,Error("Invalid JSON-RPC message received: "+i.error.message)))}}async start(){window.addEventListener("message",this.messageListener)}async send(e,n){console.debug("Sending message",e),this.eventTarget.postMessage(e,"*")}async close(){var e;window.removeEventListener("message",this.messageListener),(e=this.onclose)==null||e.call(this)}};var be={};Mp(be,{xor:()=>jFe,xid:()=>oFe,void:()=>DFe,uuidv7:()=>Qze,uuidv6:()=>Xze,uuidv4:()=>Jze,uuid:()=>Yze,util:()=>Yr,url:()=>eFe,uppercase:()=>VI,unknown:()=>Wg,union:()=>_A,undefined:()=>AFe,ulid:()=>aFe,uint64:()=>TFe,uint32:()=>CFe,tuple:()=>kQ,trim:()=>XI,treeifyError:()=>LRe,transform:()=>SA,toUpperCase:()=>eA,toLowerCase:()=>QI,toJSONSchema:()=>Tze,templateLiteral:()=>JFe,symbol:()=>IFe,superRefine:()=>YQ,success:()=>GFe,stringbool:()=>iBe,stringFormat:()=>yFe,string:()=>KE,strictObject:()=>LFe,startsWith:()=>GI,slugify:()=>tA,size:()=>F_,setErrorMap:()=>E2n,set:()=>qFe,safeParseAsync:()=>zze,safeParse:()=>jze,safeEncodeAsync:()=>Vze,safeEncode:()=>Hze,safeDecodeAsync:()=>Zze,safeDecode:()=>Wze,registry:()=>$X,regexes:()=>k2,regex:()=>HI,refine:()=>KQ,record:()=>SQ,readonly:()=>qQ,property:()=>XX,promise:()=>XFe,prettifyError:()=>jRe,preprocess:()=>aBe,prefault:()=>LQ,positive:()=>GX,pipe:()=>Ww,partialRecord:()=>FFe,parseAsync:()=>Pze,parse:()=>Lze,overwrite:()=>Rp,optional:()=>qw,object:()=>RFe,number:()=>oQ,nullish:()=>ZFe,nullable:()=>Hw,null:()=>fQ,normalize:()=>JI,nonpositive:()=>YX,nonoptional:()=>PQ,nonnegative:()=>JX,never:()=>xA,negative:()=>KX,nativeEnum:()=>HFe,nanoid:()=>rFe,nan:()=>KFe,multipleOf:()=>db,minSize:()=>mm,minLength:()=>Hg,mime:()=>YI,meta:()=>nBe,maxSize:()=>w5,maxLength:()=>B_,map:()=>UFe,mac:()=>uFe,lte:()=>ju,lt:()=>hm,lowercase:()=>WI,looseRecord:()=>BFe,looseObject:()=>PFe,locales:()=>EX,literal:()=>WFe,length:()=>U_,lazy:()=>VQ,ksuid:()=>lFe,keyof:()=>NFe,jwt:()=>vFe,json:()=>sBe,iso:()=>tQ,ipv6:()=>dFe,ipv4:()=>cFe,intersection:()=>wQ,int64:()=>$Fe,int32:()=>SFe,int:()=>YE,instanceof:()=>rBe,includes:()=>ZI,httpUrl:()=>tFe,hostname:()=>bFe,hex:()=>xFe,hash:()=>wFe,guid:()=>Kze,gte:()=>Jl,gt:()=>pm,globalRegistry:()=>Eu,getErrorMap:()=>$2n,function:()=>JE,fromJSONSchema:()=>O2n,formatError:()=>aX,float64:()=>kFe,float32:()=>_Fe,flattenError:()=>sX,file:()=>VFe,exactOptional:()=>OQ,enum:()=>kA,endsWith:()=>KI,encodeAsync:()=>Uze,encode:()=>Fze,emoji:()=>nFe,email:()=>Gze,e164:()=>gFe,discriminatedUnion:()=>zFe,describe:()=>tBe,decodeAsync:()=>qze,decode:()=>Bze,date:()=>MFe,custom:()=>eBe,cuid2:()=>sFe,cuid:()=>iFe,core:()=>_Re,config:()=>Wo,coerce:()=>lBe,codec:()=>YFe,clone:()=>ld,cidrv6:()=>hFe,cidrv4:()=>fFe,check:()=>QFe,catch:()=>FQ,boolean:()=>lQ,bigint:()=>EFe,base64url:()=>mFe,base64:()=>pFe,array:()=>K_,any:()=>OFe,_function:()=>JE,_default:()=>NQ,_ZodString:()=>nA,ZodXor:()=>yQ,ZodXID:()=>cA,ZodVoid:()=>gQ,ZodUnknown:()=>pQ,ZodUnion:()=>J_,ZodUndefined:()=>uQ,ZodUUID:()=>kf,ZodURL:()=>W_,ZodULID:()=>lA,ZodType:()=>Ir,ZodTuple:()=>_Q,ZodTransform:()=>IQ,ZodTemplateLiteral:()=>HQ,ZodSymbol:()=>cQ,ZodSuccess:()=>jQ,ZodStringFormat:()=>Xi,ZodString:()=>H_,ZodSet:()=>EQ,ZodRecord:()=>X_,ZodRealError:()=>nu,ZodReadonly:()=>UQ,ZodPromise:()=>ZQ,ZodPrefault:()=>RQ,ZodPipe:()=>$A,ZodOptional:()=>CA,ZodObject:()=>Y_,ZodNumberFormat:()=>S2,ZodNumber:()=>V_,ZodNullable:()=>DQ,ZodNull:()=>dQ,ZodNonOptional:()=>EA,ZodNever:()=>mQ,ZodNanoID:()=>sA,ZodNaN:()=>BQ,ZodMap:()=>CQ,ZodMAC:()=>aQ,ZodLiteral:()=>$Q,ZodLazy:()=>WQ,ZodKSUID:()=>uA,ZodJWT:()=>yA,ZodIssueCode:()=>C2n,ZodIntersection:()=>xQ,ZodISOTime:()=>iQ,ZodISODuration:()=>sQ,ZodISODateTime:()=>nQ,ZodISODate:()=>rQ,ZodIPv6:()=>fA,ZodIPv4:()=>dA,ZodGUID:()=>Uw,ZodFunction:()=>GQ,ZodFirstPartyTypeKind:()=>SV,ZodFile:()=>TQ,ZodExactOptional:()=>AQ,ZodError:()=>S2n,ZodEnum:()=>mb,ZodEmoji:()=>iA,ZodEmail:()=>rA,ZodE164:()=>vA,ZodDiscriminatedUnion:()=>bQ,ZodDefault:()=>MQ,ZodDate:()=>wA,ZodCustomStringFormat:()=>_5,ZodCustom:()=>Q_,ZodCodec:()=>TA,ZodCatch:()=>zQ,ZodCUID2:()=>oA,ZodCUID:()=>aA,ZodCIDRv6:()=>pA,ZodCIDRv4:()=>hA,ZodBoolean:()=>Z_,ZodBigIntFormat:()=>bA,ZodBigInt:()=>G_,ZodBase64URL:()=>gA,ZodBase64:()=>mA,ZodArray:()=>vQ,ZodAny:()=>hQ,TimePrecision:()=>oje,NEVER:()=>kRe,$output:()=>tje,$input:()=>nje,$brand:()=>SRe});var _Re={};Mp(_Re,{version:()=>jLe,util:()=>Yr,treeifyError:()=>LRe,toJSONSchema:()=>Tze,toDotPath:()=>PRe,safeParseAsync:()=>FRe,safeParse:()=>zRe,safeEncodeAsync:()=>jmn,safeEncode:()=>Lmn,safeDecodeAsync:()=>zmn,safeDecode:()=>Pmn,registry:()=>$X,regexes:()=>k2,process:()=>Vi,prettifyError:()=>jRe,parseAsync:()=>wV,parse:()=>xV,meta:()=>Uje,locales:()=>EX,isValidJWT:()=>cPe,isValidBase64URL:()=>aPe,isValidBase64:()=>bX,initializeContext:()=>fb,globalRegistry:()=>Eu,globalConfig:()=>qE,formatError:()=>aX,flattenError:()=>sX,finalize:()=>pb,extractDefs:()=>hb,encodeAsync:()=>Nmn,encode:()=>Dmn,describe:()=>Bje,decodeAsync:()=>Rmn,decode:()=>Mmn,createToJSONSchemaMethod:()=>Hje,createStandardJSONSchemaMethod:()=>Bw,config:()=>Wo,clone:()=>ld,_xor:()=>Qgn,_xid:()=>jX,_void:()=>Oje,_uuidv7:()=>DX,_uuidv6:()=>OX,_uuidv4:()=>AX,_uuid:()=>IX,_url:()=>qI,_uppercase:()=>VI,_unknown:()=>Ije,_union:()=>Xgn,_undefined:()=>Eje,_ulid:()=>PX,_uint64:()=>Sje,_uint32:()=>yje,_tuple:()=>n2n,_trim:()=>XI,_transform:()=>c2n,_toUpperCase:()=>eA,_toLowerCase:()=>QI,_templateLiteral:()=>y2n,_symbol:()=>Cje,_superRefine:()=>zje,_success:()=>p2n,_stringbool:()=>qje,_stringFormat:()=>q_,_string:()=>ije,_startsWith:()=>GI,_slugify:()=>tA,_size:()=>F_,_set:()=>s2n,_safeParseAsync:()=>R_,_safeParse:()=>N_,_safeEncodeAsync:()=>hX,_safeEncode:()=>dX,_safeDecodeAsync:()=>pX,_safeDecode:()=>fX,_regex:()=>HI,_refine:()=>jje,_record:()=>r2n,_readonly:()=>v2n,_property:()=>XX,_promise:()=>x2n,_positive:()=>GX,_pipe:()=>g2n,_parseAsync:()=>M_,_parse:()=>D_,_overwrite:()=>Rp,_optional:()=>u2n,_number:()=>fje,_nullable:()=>d2n,_null:()=>$je,_normalize:()=>JI,_nonpositive:()=>YX,_nonoptional:()=>h2n,_nonnegative:()=>JX,_never:()=>Aje,_negative:()=>KX,_nativeEnum:()=>o2n,_nanoid:()=>NX,_nan:()=>Nje,_multipleOf:()=>db,_minSize:()=>mm,_minLength:()=>Hg,_min:()=>Jl,_mime:()=>YI,_maxSize:()=>w5,_maxLength:()=>B_,_max:()=>ju,_map:()=>i2n,_mac:()=>aje,_lte:()=>ju,_lt:()=>hm,_lowercase:()=>WI,_literal:()=>l2n,_length:()=>U_,_lazy:()=>b2n,_ksuid:()=>zX,_jwt:()=>ZX,_isoTime:()=>uje,_isoDuration:()=>dje,_isoDateTime:()=>lje,_isoDate:()=>cje,_ipv6:()=>BX,_ipv4:()=>FX,_intersection:()=>t2n,_int64:()=>kje,_int32:()=>vje,_int:()=>pje,_includes:()=>ZI,_guid:()=>GE,_gte:()=>Jl,_gt:()=>pm,_float64:()=>gje,_float32:()=>mje,_file:()=>Lje,_enum:()=>a2n,_endsWith:()=>KI,_encodeAsync:()=>cX,_encode:()=>oX,_emoji:()=>MX,_email:()=>TX,_e164:()=>VX,_discriminatedUnion:()=>e2n,_default:()=>f2n,_decodeAsync:()=>uX,_decode:()=>lX,_date:()=>Dje,_custom:()=>Pje,_cuid2:()=>LX,_cuid:()=>RX,_coercedString:()=>sje,_coercedNumber:()=>hje,_coercedDate:()=>Mje,_coercedBoolean:()=>xje,_coercedBigint:()=>_je,_cidrv6:()=>qX,_cidrv4:()=>UX,_check:()=>Fje,_catch:()=>m2n,_boolean:()=>bje,_bigint:()=>wje,_base64url:()=>WX,_base64:()=>HX,_array:()=>Rje,_any:()=>Tje,TimePrecision:()=>oje,NEVER:()=>kRe,JSONSchemaGenerator:()=>_2n,JSONSchema:()=>k2n,Doc:()=>PLe,$output:()=>tje,$input:()=>nje,$constructor:()=>Re,$brand:()=>SRe,$ZodXor:()=>$Pe,$ZodXID:()=>GLe,$ZodVoid:()=>xPe,$ZodUnknown:()=>yPe,$ZodUnion:()=>UI,$ZodUndefined:()=>mPe,$ZodUUID:()=>FLe,$ZodURL:()=>ULe,$ZodULID:()=>ZLe,$ZodType:()=>_r,$ZodTuple:()=>kX,$ZodTransform:()=>LPe,$ZodTemplateLiteral:()=>ZPe,$ZodSymbol:()=>pPe,$ZodSuccess:()=>UPe,$ZodStringFormat:()=>Ji,$ZodString:()=>z_,$ZodSet:()=>DPe,$ZodRegistry:()=>rje,$ZodRecord:()=>APe,$ZodRealError:()=>tu,$ZodReadonly:()=>VPe,$ZodPromise:()=>KPe,$ZodPrefault:()=>FPe,$ZodPipe:()=>WPe,$ZodOptional:()=>SX,$ZodObjectJIT:()=>EPe,$ZodObject:()=>CPe,$ZodNumberFormat:()=>fPe,$ZodNumber:()=>xX,$ZodNullable:()=>jPe,$ZodNull:()=>gPe,$ZodNonOptional:()=>BPe,$ZodNever:()=>bPe,$ZodNanoID:()=>HLe,$ZodNaN:()=>HPe,$ZodMap:()=>OPe,$ZodMAC:()=>nPe,$ZodLiteral:()=>NPe,$ZodLazy:()=>YPe,$ZodKSUID:()=>KLe,$ZodJWT:()=>uPe,$ZodIntersection:()=>IPe,$ZodISOTime:()=>XLe,$ZodISODuration:()=>QLe,$ZodISODateTime:()=>YLe,$ZodISODate:()=>JLe,$ZodIPv6:()=>tPe,$ZodIPv4:()=>ePe,$ZodGUID:()=>zLe,$ZodFunction:()=>GPe,$ZodFile:()=>RPe,$ZodExactOptional:()=>PPe,$ZodError:()=>iX,$ZodEnum:()=>MPe,$ZodEncodeError:()=>jI,$ZodEmoji:()=>qLe,$ZodEmail:()=>BLe,$ZodE164:()=>lPe,$ZodDiscriminatedUnion:()=>TPe,$ZodDefault:()=>zPe,$ZodDate:()=>wPe,$ZodCustomStringFormat:()=>dPe,$ZodCustom:()=>JPe,$ZodCodec:()=>CX,$ZodCheckUpperCase:()=>ALe,$ZodCheckStringFormat:()=>j_,$ZodCheckStartsWith:()=>DLe,$ZodCheckSizeEquals:()=>SLe,$ZodCheckRegex:()=>TLe,$ZodCheckProperty:()=>NLe,$ZodCheckOverwrite:()=>LLe,$ZodCheckNumberFormat:()=>xLe,$ZodCheckMultipleOf:()=>bLe,$ZodCheckMinSize:()=>kLe,$ZodCheckMinLength:()=>ELe,$ZodCheckMimeType:()=>RLe,$ZodCheckMaxSize:()=>_Le,$ZodCheckMaxLength:()=>CLe,$ZodCheckLowerCase:()=>ILe,$ZodCheckLessThan:()=>vX,$ZodCheckLengthEquals:()=>$Le,$ZodCheckIncludes:()=>OLe,$ZodCheckGreaterThan:()=>yX,$ZodCheckEndsWith:()=>MLe,$ZodCheckBigIntFormat:()=>wLe,$ZodCheck:()=>Ts,$ZodCatch:()=>qPe,$ZodCUID2:()=>VLe,$ZodCUID:()=>WLe,$ZodCIDRv6:()=>iPe,$ZodCIDRv4:()=>rPe,$ZodBoolean:()=>wX,$ZodBigIntFormat:()=>hPe,$ZodBigInt:()=>_X,$ZodBase64URL:()=>oPe,$ZodBase64:()=>sPe,$ZodAsyncError:()=>ug,$ZodArray:()=>_Pe,$ZodAny:()=>vPe});var kRe=Object.freeze({status:"aborted"});function Re(t,e,n){function r(o,l){if(o._zod||Object.defineProperty(o,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),o._zod.traits.has(t))return;o._zod.traits.add(t),e(o,l);let c=a.prototype,u=Object.keys(c);for(let d=0;d{var l,c;return n!=null&&n.Parent&&o instanceof n.Parent?!0:(c=(l=o==null?void 0:o._zod)==null?void 0:l.traits)==null?void 0:c.has(t)}}),Object.defineProperty(a,"name",{value:t}),a}var SRe=Symbol("zod_brand");let ug=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},jI=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};var qE={};function Wo(t){return t&&Object.assign(qE,t),qE}var Yr={};Mp(Yr,{unwrapMessage:()=>N4,uint8ArrayToHex:()=>Amn,uint8ArrayToBase64url:()=>Tmn,uint8ArrayToBase64:()=>NRe,stringifyPrimitive:()=>sr,slugify:()=>ERe,shallowClone:()=>TRe,safeExtend:()=>_mn,required:()=>Cmn,randomString:()=>mmn,propertyKeyTypes:()=>WE,promiseAllObject:()=>pmn,primitiveTypes:()=>IRe,prefixIssues:()=>Od,pick:()=>bmn,partial:()=>Smn,parsedType:()=>hr,optionalKeys:()=>ARe,omit:()=>xmn,objectClone:()=>dmn,numKeys:()=>gmn,nullish:()=>_2,normalizeParams:()=>Dt,mergeDefs:()=>Np,merge:()=>kmn,jsonStringifyReplacer:()=>HE,joinValues:()=>$t,issue:()=>VE,isPlainObject:()=>qg,isObject:()=>cb,hexToUint8Array:()=>Imn,getSizableOrigin:()=>FI,getParsedType:()=>vmn,getLengthableOrigin:()=>BI,getEnumValues:()=>nX,getElementAtPath:()=>hmn,floatSafeRemainder:()=>CRe,finalizeIssue:()=>ed,extend:()=>wmn,escapeRegex:()=>Sp,esc:()=>bV,defineLazy:()=>Ur,createTransparentProxy:()=>ymn,cloneDef:()=>fmn,clone:()=>ld,cleanRegex:()=>zI,cleanEnum:()=>Emn,captureStackTrace:()=>rX,cached:()=>O_,base64urlToUint8Array:()=>$mn,base64ToUint8Array:()=>MRe,assignProp:()=>Um,assertNotEqual:()=>omn,assertNever:()=>cmn,assertIs:()=>lmn,assertEqual:()=>amn,assert:()=>umn,allowsEval:()=>$Re,aborted:()=>Z1,NUMBER_FORMAT_RANGES:()=>ORe,Class:()=>Omn,BIGINT_FORMAT_RANGES:()=>DRe});function amn(t){return t}function omn(t){return t}function lmn(t){}function cmn(t){throw Error("Unexpected value in exhaustive check")}function umn(t){}function nX(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,r])=>e.indexOf(+n)===-1).map(([n,r])=>r)}function $t(t,e="|"){return t.map(n=>sr(n)).join(e)}function HE(t,e){return typeof e=="bigint"?e.toString():e}function O_(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function _2(t){return t==null}function zI(t){let e=t.startsWith("^")?1:0,n=t.endsWith("$")?t.length-1:t.length;return t.slice(e,n)}function CRe(t,e){let n=(t.toString().split(".")[1]||"").length,r=e.toString(),i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){let l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}let s=n>i?n:i,a=Number.parseInt(t.toFixed(s).replace(".","")),o=Number.parseInt(e.toFixed(s).replace(".",""));return a%o/10**s}var vge=Symbol("evaluating");function Ur(t,e,n){let r;Object.defineProperty(t,e,{get(){if(r!==vge)return r===void 0&&(r=vge,r=n()),r},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function dmn(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function Um(t,e,n){Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Np(...t){let e={};for(let n of t){let r=Object.getOwnPropertyDescriptors(n);Object.assign(e,r)}return Object.defineProperties({},e)}function fmn(t){return Np(t._zod.def)}function hmn(t,e){return e?e.reduce((n,r)=>n==null?void 0:n[r],t):t}function pmn(t){let e=Object.keys(t),n=e.map(r=>t[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;s{};function cb(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var $Re=O_(()=>{var t;if(typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)!=null&&t.includes("Cloudflare")))return!1;try{return new Function(""),!0}catch{return!1}});function qg(t){if(cb(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let n=e.prototype;return!(cb(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function TRe(t){return qg(t)?{...t}:Array.isArray(t)?[...t]:t}function gmn(t){let e=0;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}var vmn=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},WE=new Set(["string","number","symbol"]),IRe=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Sp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ld(t,e,n){let r=new t._zod.constr(e??t._zod.def);return(!e||n!=null&&n.parent)&&(r._zod.parent=t),r}function Dt(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if((e==null?void 0:e.message)!==void 0){if((e==null?void 0:e.error)!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function ymn(t){let e;return new Proxy({},{get(n,r,i){return e??(e=t()),Reflect.get(e,r,i)},set(n,r,i,s){return e??(e=t()),Reflect.set(e,r,i,s)},has(n,r){return e??(e=t()),Reflect.has(e,r)},deleteProperty(n,r){return e??(e=t()),Reflect.deleteProperty(e,r)},ownKeys(n){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(n,r){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,r)},defineProperty(n,r,i){return e??(e=t()),Reflect.defineProperty(e,r,i)}})}function sr(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function ARe(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var ORe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},DRe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function bmn(t,e){let n=t._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let i=Np(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in n.shape))throw Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=n.shape[a])}return Um(this,"shape",s),s},checks:[]});return ld(t,i)}function xmn(t,e){let n=t._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let i=Np(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in n.shape))throw Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return Um(this,"shape",s),s},checks:[]});return ld(t,i)}function wmn(t,e){if(!qg(e))throw Error("Invalid input to extend: expected a plain object");let n=t._zod.def.checks;if(n&&n.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let r=Np(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return Um(this,"shape",i),i}});return ld(t,r)}function _mn(t,e){if(!qg(e))throw Error("Invalid input to safeExtend: expected a plain object");let n=Np(t._zod.def,{get shape(){let r={...t._zod.def.shape,...e};return Um(this,"shape",r),r}});return ld(t,n)}function kmn(t,e){let n=Np(t._zod.def,{get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return Um(this,"shape",r),r},get catchall(){return e._zod.def.catchall},checks:[]});return ld(t,n)}function Smn(t,e,n){let r=e._zod.def.checks;if(r&&r.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let i=Np(e._zod.def,{get shape(){let s=e._zod.def.shape,a={...s};if(n)for(let o in n){if(!(o in s))throw Error(`Unrecognized key: "${o}"`);n[o]&&(a[o]=t?new t({type:"optional",innerType:s[o]}):s[o])}else for(let o in s)a[o]=t?new t({type:"optional",innerType:s[o]}):s[o];return Um(this,"shape",a),a},checks:[]});return ld(e,i)}function Cmn(t,e,n){let r=Np(e._zod.def,{get shape(){let i=e._zod.def.shape,s={...i};if(n)for(let a in n){if(!(a in s))throw Error(`Unrecognized key: "${a}"`);n[a]&&(s[a]=new t({type:"nonoptional",innerType:i[a]}))}else for(let a in i)s[a]=new t({type:"nonoptional",innerType:i[a]});return Um(this,"shape",s),s}});return ld(e,r)}function Z1(t,e=0){var n;if(t.aborted===!0)return!0;for(let r=e;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(t),n})}function N4(t){return typeof t=="string"?t:t==null?void 0:t.message}function ed(t,e,n){var i,s,a,o,l,c;let r={...t,path:t.path??[]};if(!t.message){let u=N4((a=(s=(i=t.inst)==null?void 0:i._zod.def)==null?void 0:s.error)==null?void 0:a.call(s,t))??N4((o=e==null?void 0:e.error)==null?void 0:o.call(e,t))??N4((l=n.customError)==null?void 0:l.call(n,t))??N4((c=n.localeError)==null?void 0:c.call(n,t))??"Invalid input";r.message=u}return delete r.inst,delete r.continue,!(e!=null&&e.reportInput)&&delete r.input,r}function FI(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function BI(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function hr(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let n=t;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return e}function VE(...t){let[e,n,r]=t;return typeof e=="string"?{message:e,code:"custom",input:n,inst:r}:{...e}}function Emn(t){return Object.entries(t).filter(([e,n])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function MRe(t){let e=atob(t),n=new Uint8Array(e.length);for(let r=0;re.toString(16).padStart(2,"0")).join("")}class Omn{constructor(...e){}}var RRe=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,HE,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},iX=Re("$ZodError",RRe),tu=Re("$ZodError",RRe,{Parent:Error});function sX(t,e=n=>n.message){let n={},r=[];for(let i of t.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(e(i))):r.push(e(i));return{formErrors:r,fieldErrors:n}}function aX(t,e=n=>n.message){let n={_errors:[]},r=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>r({issues:a}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(e(s));else{let a=n,o=0;for(;on.message){let n={errors:[]},r=(i,s=[])=>{var a,o;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{let c=[...s,...l.path];if(c.length===0){n.errors.push(e(l));continue}let u=n,d=0;for(;dtypeof r=="object"?r.key:r);for(let r of n)typeof r=="number"?e.push(`[${r}]`):typeof r=="symbol"?e.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?e.push(`[${JSON.stringify(r)}]`):(e.length&&e.push("."),e.push(r));return e.join("")}function jRe(t){var r;let e=[],n=[...t.issues].sort((i,s)=>(i.path??[]).length-(s.path??[]).length);for(let i of n)e.push(`✖ ${i.message}`),(r=i.path)!=null&&r.length&&e.push(` → at ${PRe(i.path)}`);return e.join(` +`)}var D_=t=>(e,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new ug;if(a.issues.length){let o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>ed(l,s,Wo())));throw rX(o,i==null?void 0:i.callee),o}return a.value},xV=D_(tu),M_=t=>async(e,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>ed(l,s,Wo())));throw rX(o,i==null?void 0:i.callee),o}return a.value},wV=M_(tu),N_=t=>(e,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=e._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new ug;return s.issues.length?{success:!1,error:new(t??iX)(s.issues.map(a=>ed(a,i,Wo())))}:{success:!0,data:s.value}},zRe=N_(tu),R_=t=>async(e,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=e._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(a=>ed(a,i,Wo())))}:{success:!0,data:s.value}},FRe=R_(tu),oX=t=>(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return D_(t)(e,n,i)},Dmn=oX(tu),lX=t=>(e,n,r)=>D_(t)(e,n,r),Mmn=lX(tu),cX=t=>async(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return M_(t)(e,n,i)},Nmn=cX(tu),uX=t=>async(e,n,r)=>M_(t)(e,n,r),Rmn=uX(tu),dX=t=>(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return N_(t)(e,n,i)},Lmn=dX(tu),fX=t=>(e,n,r)=>N_(t)(e,n,r),Pmn=fX(tu),hX=t=>async(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return R_(t)(e,n,i)},jmn=hX(tu),pX=t=>async(e,n,r)=>R_(t)(e,n,r),zmn=pX(tu),k2={};Mp(k2,{xid:()=>HRe,uuid7:()=>qmn,uuid6:()=>Umn,uuid4:()=>Bmn,uuid:()=>ub,uppercase:()=>vLe,unicodeEmail:()=>YRe,undefined:()=>mLe,ulid:()=>qRe,time:()=>lLe,string:()=>uLe,sha512_hex:()=>u1n,sha512_base64url:()=>f1n,sha512_base64:()=>d1n,sha384_hex:()=>o1n,sha384_base64url:()=>c1n,sha384_base64:()=>l1n,sha256_hex:()=>i1n,sha256_base64url:()=>a1n,sha256_base64:()=>s1n,sha1_hex:()=>t1n,sha1_base64url:()=>r1n,sha1_base64:()=>n1n,rfc5322Email:()=>Wmn,number:()=>gX,null:()=>pLe,nanoid:()=>VRe,md5_hex:()=>Xmn,md5_base64url:()=>e1n,md5_base64:()=>Qmn,mac:()=>eLe,lowercase:()=>gLe,ksuid:()=>WRe,ipv6:()=>QRe,ipv4:()=>XRe,integer:()=>fLe,idnEmail:()=>Vmn,html5Email:()=>Hmn,hostname:()=>Kmn,hex:()=>Jmn,guid:()=>GRe,extendedDuration:()=>Fmn,emoji:()=>JRe,email:()=>KRe,e164:()=>iLe,duration:()=>ZRe,domain:()=>Ymn,datetime:()=>cLe,date:()=>aLe,cuid2:()=>URe,cuid:()=>BRe,cidrv6:()=>nLe,cidrv4:()=>tLe,browserEmail:()=>Zmn,boolean:()=>hLe,bigint:()=>dLe,base64url:()=>mX,base64:()=>rLe});var BRe=/^[cC][^\s-]{8,}$/,URe=/^[0-9a-z]+$/,qRe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,HRe=/^[0-9a-vA-V]{20}$/,WRe=/^[A-Za-z0-9]{27}$/,VRe=/^[a-zA-Z0-9_-]{21}$/,ZRe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Fmn=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,GRe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ub=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Bmn=ub(4),Umn=ub(6),qmn=ub(7),KRe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Hmn=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Wmn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,YRe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Vmn=YRe,Zmn=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Gmn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function JRe(){return new RegExp(Gmn,"u")}var XRe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,QRe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,eLe=t=>{let e=Sp(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},tLe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,nLe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rLe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,mX=/^[A-Za-z0-9_-]*$/,Kmn=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Ymn=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,iLe=/^\+[1-9]\d{6,14}$/,sLe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",aLe=new RegExp(`^${sLe}$`);function oLe(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function lLe(t){return new RegExp(`^${oLe(t)}$`)}function cLe(t){let e=oLe({precision:t.precision}),n=["Z"];t.local&&n.push(""),t.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${e}(?:${n.join("|")})`;return new RegExp(`^${sLe}T(?:${r})$`)}var uLe=t=>{let e=t?`[\\s\\S]{${(t==null?void 0:t.minimum)??0},${(t==null?void 0:t.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},dLe=/^-?\d+n?$/,fLe=/^-?\d+$/,gX=/^-?\d+(?:\.\d+)?$/,hLe=/^(?:true|false)$/i,pLe=/^null$/i,mLe=/^undefined$/i,gLe=/^[^A-Z]*$/,vLe=/^[^a-z]*$/,Jmn=/^[0-9a-fA-F]*$/;function L_(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function P_(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var Xmn=/^[0-9a-fA-F]{32}$/,Qmn=L_(22,"=="),e1n=P_(22),t1n=/^[0-9a-fA-F]{40}$/,n1n=L_(27,"="),r1n=P_(27),i1n=/^[0-9a-fA-F]{64}$/,s1n=L_(43,"="),a1n=P_(43),o1n=/^[0-9a-fA-F]{96}$/,l1n=L_(64,""),c1n=P_(64),u1n=/^[0-9a-fA-F]{128}$/,d1n=L_(86,"=="),f1n=P_(86),Ts=Re("$ZodCheck",(t,e)=>{var n;t._zod??(t._zod={}),t._zod.def=e,(n=t._zod).onattach??(n.onattach=[])}),yLe={number:"number",bigint:"bigint",object:"date"},vX=Re("$ZodCheckLessThan",(t,e)=>{Ts.init(t,e);let n=yLe[typeof e.value];t._zod.onattach.push(r=>{let i=r._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?r.value<=e.value:r.value{Ts.init(t,e);let n=yLe[typeof e.value];t._zod.onattach.push(r=>{let i=r._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=r=>{(e.inclusive?r.value>=e.value:r.value>e.value)||r.issues.push({origin:n,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:r.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),bLe=Re("$ZodCheckMultipleOf",(t,e)=>{Ts.init(t,e),t._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=e.value)}),t._zod.check=n=>{if(typeof n.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%e.value===BigInt(0):CRe(n.value,e.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:e.value,input:n.value,inst:t,continue:!e.abort})}}),xLe=Re("$ZodCheckNumberFormat",(t,e)=>{var a;Ts.init(t,e),e.format=e.format||"float64";let n=(a=e.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,s]=ORe[e.format];t._zod.onattach.push(o=>{let l=o._zod.bag;l.format=e.format,l.minimum=i,l.maximum=s,n&&(l.pattern=fLe)}),t._zod.check=o=>{let l=o.value;if(n){if(!Number.isInteger(l)){o.issues.push({expected:r,format:e.format,code:"invalid_type",continue:!1,input:l,inst:t});return}if(!Number.isSafeInteger(l)){l>0?o.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,inclusive:!0,continue:!e.abort}):o.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,inclusive:!0,continue:!e.abort});return}}ls&&o.issues.push({origin:"number",input:l,code:"too_big",maximum:s,inclusive:!0,inst:t,continue:!e.abort})}}),wLe=Re("$ZodCheckBigIntFormat",(t,e)=>{Ts.init(t,e);let[n,r]=DRe[e.format];t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,s.minimum=n,s.maximum=r}),t._zod.check=i=>{let s=i.value;sr&&i.issues.push({origin:"bigint",input:s,code:"too_big",maximum:r,inclusive:!0,inst:t,continue:!e.abort})}}),_Le=Re("$ZodCheckMaxSize",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=r.value;i.size<=e.maximum||r.issues.push({origin:FI(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),kLe=Re("$ZodCheckMinSize",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let i=r.value;i.size>=e.minimum||r.issues.push({origin:FI(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),SLe=Re("$ZodCheckSizeEquals",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=e.size,i.maximum=e.size,i.size=e.size}),t._zod.check=r=>{let i=r.value,s=i.size;if(s===e.size)return;let a=s>e.size;r.issues.push({origin:FI(i),...a?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),CLe=Re("$ZodCheckMaxLength",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=r.value;if(i.length<=e.maximum)return;let s=BI(i);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),ELe=Re("$ZodCheckMinLength",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let i=r.value;if(i.length>=e.minimum)return;let s=BI(i);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),$Le=Re("$ZodCheckLengthEquals",(t,e)=>{var n;Ts.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!_2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=r=>{let i=r.value,s=i.length;if(s===e.length)return;let a=BI(i),o=s>e.length;r.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),j_=Re("$ZodCheckStringFormat",(t,e)=>{var n,r;Ts.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(n=t._zod).check??(n.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(r=t._zod).check??(r.check=()=>{})}),TLe=Re("$ZodCheckRegex",(t,e)=>{j_.init(t,e),t._zod.check=n=>{e.pattern.lastIndex=0,!e.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),ILe=Re("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=gLe),j_.init(t,e)}),ALe=Re("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=vLe),j_.init(t,e)}),OLe=Re("$ZodCheckIncludes",(t,e)=>{Ts.init(t,e);let n=Sp(e.includes),r=new RegExp(typeof e.position=="number"?`^.{${e.position}}${n}`:n);e.pattern=r,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),DLe=Re("$ZodCheckStartsWith",(t,e)=>{Ts.init(t,e);let n=new RegExp(`^${Sp(e.prefix)}.*`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.startsWith(e.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:r.value,inst:t,continue:!e.abort})}}),MLe=Re("$ZodCheckEndsWith",(t,e)=>{Ts.init(t,e);let n=new RegExp(`.*${Sp(e.suffix)}$`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.endsWith(e.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:r.value,inst:t,continue:!e.abort})}});function yge(t,e,n){t.issues.length&&e.issues.push(...Od(n,t.issues))}var NLe=Re("$ZodCheckProperty",(t,e)=>{Ts.init(t,e),t._zod.check=n=>{let r=e.schema._zod.run({value:n.value[e.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>yge(i,n,e.property));yge(r,n,e.property)}}),RLe=Re("$ZodCheckMimeType",(t,e)=>{Ts.init(t,e);let n=new Set(e.mime);t._zod.onattach.push(r=>{r._zod.bag.mime=e.mime}),t._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:e.mime,input:r.value.type,inst:t,continue:!e.abort})}}),LLe=Re("$ZodCheckOverwrite",(t,e)=>{Ts.init(t,e),t._zod.check=n=>{n.value=e.tx(n.value)}});let PLe=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`).filter(s=>s),r=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(r)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let e=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new e(...n,r.join(` +`))}};var jLe={major:4,minor:3,patch:5},_r=Re("$ZodType",(t,e)=>{var i;var n;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=jLe;let r=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&r.unshift(t);for(let s of r)for(let a of s._zod.onattach)a(t);if(r.length===0)(n=t._zod).deferred??(n.deferred=[]),(i=t._zod.deferred)==null||i.push(()=>{t._zod.run=t._zod.parse});else{let s=(o,l,c)=>{let u=Z1(o),d;for(let f of l){if(f._zod.def.when){if(!f._zod.def.when(o))continue}else if(u)continue;let h=o.issues.length,m=f._zod.check(o);if(m instanceof Promise&&(c==null?void 0:c.async)===!1)throw new ug;if(d||m instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await m,o.issues.length!==h&&(u||(u=Z1(o,h)))});else{if(o.issues.length===h)continue;u||(u=Z1(o,h))}}return d?d.then(()=>o):o},a=(o,l,c)=>{if(Z1(o))return o.aborted=!0,o;let u=s(l,r,c);if(u instanceof Promise){if(c.async===!1)throw new ug;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(o,l)=>{if(l.skipChecks)return t._zod.parse(o,l);if(l.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...l,skipChecks:!0});return u instanceof Promise?u.then(d=>a(d,o,l)):a(u,o,l)}let c=t._zod.parse(o,l);if(c instanceof Promise){if(l.async===!1)throw new ug;return c.then(u=>s(u,r,l))}return s(c,r,l)}}Ur(t,"~standard",()=>({validate:s=>{var a;try{let o=zRe(t,s);return o.success?{value:o.data}:{issues:(a=o.error)==null?void 0:a.issues}}catch{return FRe(t,s).then(l=>{var c;return l.success?{value:l.data}:{issues:(c=l.error)==null?void 0:c.issues}})}},vendor:"zod",version:1}))}),z_=Re("$ZodString",(t,e)=>{var n;_r.init(t,e),t._zod.pattern=[...((n=t==null?void 0:t._zod.bag)==null?void 0:n.patterns)??[]].pop()??uLe(t._zod.bag),t._zod.parse=(r,i)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Ji=Re("$ZodStringFormat",(t,e)=>{j_.init(t,e),z_.init(t,e)}),zLe=Re("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=GRe),Ji.init(t,e)}),FLe=Re("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=ub(n))}else e.pattern??(e.pattern=ub());Ji.init(t,e)}),BLe=Re("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=KRe),Ji.init(t,e)}),ULe=Re("$ZodURL",(t,e)=>{Ji.init(t,e),t._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);e.hostname&&(e.hostname.lastIndex=0,!e.hostname.test(i.hostname)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:n.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,!e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:n.value,inst:t,continue:!e.abort})),e.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:t,continue:!e.abort})}}}),qLe=Re("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=JRe()),Ji.init(t,e)}),HLe=Re("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=VRe),Ji.init(t,e)}),WLe=Re("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=BRe),Ji.init(t,e)}),VLe=Re("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=URe),Ji.init(t,e)}),ZLe=Re("$ZodULID",(t,e)=>{e.pattern??(e.pattern=qRe),Ji.init(t,e)}),GLe=Re("$ZodXID",(t,e)=>{e.pattern??(e.pattern=HRe),Ji.init(t,e)}),KLe=Re("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=WRe),Ji.init(t,e)}),YLe=Re("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=cLe(e)),Ji.init(t,e)}),JLe=Re("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=aLe),Ji.init(t,e)}),XLe=Re("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=lLe(e)),Ji.init(t,e)}),QLe=Re("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=ZRe),Ji.init(t,e)}),ePe=Re("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=XRe),Ji.init(t,e),t._zod.bag.format="ipv4"}),tPe=Re("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=QRe),Ji.init(t,e),t._zod.bag.format="ipv6",t._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:t,continue:!e.abort})}}}),nPe=Re("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=eLe(e.delimiter)),Ji.init(t,e),t._zod.bag.format="mac"}),rPe=Re("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=tLe),Ji.init(t,e)}),iPe=Re("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=nLe),Ji.init(t,e),t._zod.check=n=>{let r=n.value.split("/");try{if(r.length!==2)throw Error();let[i,s]=r;if(!s)throw Error();let a=Number(s);if(`${a}`!==s||a<0||a>128)throw Error();new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:t,continue:!e.abort})}}});function bX(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var sPe=Re("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=rLe),Ji.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=n=>{bX(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:t,continue:!e.abort})}});function aPe(t){if(!mX.test(t))return!1;let e=t.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=e.padEnd(Math.ceil(e.length/4)*4,"=");return bX(n)}var oPe=Re("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=mX),Ji.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=n=>{aPe(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:t,continue:!e.abort})}}),lPe=Re("$ZodE164",(t,e)=>{e.pattern??(e.pattern=iLe),Ji.init(t,e)});function cPe(t,e=null){try{let n=t.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var uPe=Re("$ZodJWT",(t,e)=>{Ji.init(t,e),t._zod.check=n=>{cPe(n.value,e.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:t,continue:!e.abort})}}),dPe=Re("$ZodCustomStringFormat",(t,e)=>{Ji.init(t,e),t._zod.check=n=>{e.fn(n.value)||n.issues.push({code:"invalid_format",format:e.format,input:n.value,inst:t,continue:!e.abort})}}),xX=Re("$ZodNumber",(t,e)=>{_r.init(t,e),t._zod.pattern=t._zod.bag.pattern??gX,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),n}}),fPe=Re("$ZodNumberFormat",(t,e)=>{xLe.init(t,e),xX.init(t,e)}),wX=Re("$ZodBoolean",(t,e)=>{_r.init(t,e),t._zod.pattern=hLe,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),n}}),_X=Re("$ZodBigInt",(t,e)=>{_r.init(t,e),t._zod.pattern=dLe,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:t}),n}}),hPe=Re("$ZodBigIntFormat",(t,e)=>{wLe.init(t,e),_X.init(t,e)}),pPe=Re("$ZodSymbol",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:t}),n}}),mPe=Re("$ZodUndefined",(t,e)=>{_r.init(t,e),t._zod.pattern=mLe,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(n,r)=>{let i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:t}),n}}),gPe=Re("$ZodNull",(t,e)=>{_r.init(t,e),t._zod.pattern=pLe,t._zod.values=new Set([null]),t._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),n}}),vPe=Re("$ZodAny",(t,e)=>{_r.init(t,e),t._zod.parse=n=>n}),yPe=Re("$ZodUnknown",(t,e)=>{_r.init(t,e),t._zod.parse=n=>n}),bPe=Re("$ZodNever",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:t}),n)}),xPe=Re("$ZodVoid",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:t}),n}}),wPe=Re("$ZodDate",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,s=i instanceof Date;return s&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...s?{received:"Invalid Date"}:{},inst:t}),n}});function bge(t,e,n){t.issues.length&&e.issues.push(...Od(n,t.issues)),e.value[n]=t.value}var _Pe=Re("$ZodArray",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),n;n.value=Array(i.length);let s=[];for(let a=0;abge(c,n,a))):bge(l,n,a)}return s.length?Promise.all(s).then(()=>n):n}});function ZE(t,e,n,r,i){if(t.issues.length){if(i&&!(n in r))return;e.issues.push(...Od(n,t.issues))}t.value===void 0?n in r&&(e.value[n]=void 0):e.value[n]=t.value}function kPe(t){var r,i,s,a;let e=Object.keys(t.shape);for(let o of e)if(!((a=(s=(i=(r=t.shape)==null?void 0:r[o])==null?void 0:i._zod)==null?void 0:s.traits)!=null&&a.has("$ZodType")))throw Error(`Invalid element at key "${o}": expected a Zod schema`);let n=ARe(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(n)}}function SPe(t,e,n,r,i,s){let a=[],o=i.keySet,l=i.catchall._zod,c=l.def.type,u=l.optout==="optional";for(let d in e){if(o.has(d))continue;if(c==="never"){a.push(d);continue}let f=l.run({value:e[d],issues:[]},r);f instanceof Promise?t.push(f.then(h=>ZE(h,n,d,e,u))):ZE(f,n,d,e,u)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:e,inst:s}),t.length?Promise.all(t).then(()=>n):n}var CPe=Re("$ZodObject",(t,e)=>{var a;if(_r.init(t,e),!((a=Object.getOwnPropertyDescriptor(e,"shape"))!=null&&a.get)){let o=e.shape;Object.defineProperty(e,"shape",{get:()=>{let l={...o};return Object.defineProperty(e,"shape",{value:l}),l}})}let n=O_(()=>kPe(e));Ur(t._zod,"propValues",()=>{let o=e.shape,l={};for(let c in o){let u=o[c]._zod;if(u.values){l[c]??(l[c]=new Set);for(let d of u.values)l[c].add(d)}}return l});let r=cb,i=e.catchall,s;t._zod.parse=(o,l)=>{s??(s=n.value);let c=o.value;if(!r(c))return o.issues.push({expected:"object",code:"invalid_type",input:c,inst:t}),o;o.value={};let u=[],d=s.shape;for(let f of s.keys){let h=d[f],m=h._zod.optout==="optional",p=h._zod.run({value:c[f],issues:[]},l);p instanceof Promise?u.push(p.then(v=>ZE(v,o,f,c,m))):ZE(p,o,f,c,m)}return i?SPe(u,c,o,l,n.value,t):u.length?Promise.all(u).then(()=>o):o}}),EPe=Re("$ZodObjectJIT",(t,e)=>{CPe.init(t,e);let n=t._zod.parse,r=O_(()=>kPe(e)),i=d=>{var w,E;let f=new PLe(["shape","payload","ctx"]),h=r.value,m=S=>{let _=bV(S);return`shape[${_}]._zod.run({ value: input[${_}], issues: [] }, ctx)`};f.write("const input = payload.value;");let p=Object.create(null),v=0;for(let S of h.keys)p[S]=`key_${v++}`;f.write("const newResult = {};");for(let S of h.keys){let _=p[S],C=bV(S),T=((E=(w=d[S])==null?void 0:w._zod)==null?void 0:E.optout)==="optional";f.write(`const ${_} = ${m(S)};`),T?f.write(` + if (${_}.issues.length) { + if (${C} in input) { + payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + } + + if (${_}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${_}.value; + } + + `):f.write(` + if (${_}.issues.length) { + payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + if (${_}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${_}.value; + } + + `)}f.write("payload.value = newResult;"),f.write("return payload;");let x=f.compile();return(S,_)=>x(d,S,_)},s,a=cb,o=!qE.jitless,l=o&&$Re.value,c=e.catchall,u;t._zod.parse=(d,f)=>{u??(u=r.value);let h=d.value;return a(h)?o&&l&&(f==null?void 0:f.async)===!1&&f.jitless!==!0?(s||(s=i(e.shape)),d=s(d,f),c?SPe([],h,d,f,u,t):d):n(d,f):(d.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),d)}});function xge(t,e,n,r){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;let i=t.filter(s=>!Z1(s));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:t.map(s=>s.issues.map(a=>ed(a,r,Wo())))}),e)}var UI=Re("$ZodUnion",(t,e)=>{_r.init(t,e),Ur(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),Ur(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),Ur(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),Ur(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(s=>s._zod.pattern);return new RegExp(`^(${i.map(s=>zI(s.source)).join("|")})$`)}});let n=e.options.length===1,r=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(n)return r(i,s);let a=!1,o=[];for(let l of e.options){let c=l._zod.run({value:i.value,issues:[]},s);if(c instanceof Promise)o.push(c),a=!0;else{if(c.issues.length===0)return c;o.push(c)}}return a?Promise.all(o).then(l=>xge(l,i,t,s)):xge(o,i,t,s)}});function wge(t,e,n,r){let i=t.filter(s=>s.issues.length===0);return i.length===1?(e.value=i[0].value,e):(i.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:t.map(s=>s.issues.map(a=>ed(a,r,Wo())))}):e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:[],inclusive:!1}),e)}var $Pe=Re("$ZodXor",(t,e)=>{UI.init(t,e),e.inclusive=!1;let n=e.options.length===1,r=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(n)return r(i,s);let a=!1,o=[];for(let l of e.options){let c=l._zod.run({value:i.value,issues:[]},s);c instanceof Promise?(o.push(c),a=!0):o.push(c)}return a?Promise.all(o).then(l=>wge(l,i,t,s)):wge(o,i,t,s)}}),TPe=Re("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,UI.init(t,e);let n=t._zod.parse;Ur(t._zod,"propValues",()=>{let i={};for(let s of e.options){let a=s._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[o,l]of Object.entries(a)){i[o]||(i[o]=new Set);for(let c of l)i[o].add(c)}}return i});let r=O_(()=>{var a;let i=e.options,s=new Map;for(let o of i){let l=(a=o._zod.propValues)==null?void 0:a[e.discriminator];if(!l||l.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of l){if(s.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let a=i.value;if(!cb(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),i;let o=r.value.get(a==null?void 0:a[e.discriminator]);return o?o._zod.run(i,s):e.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:a,path:[e.discriminator],inst:t}),i)}}),IPe=Re("$ZodIntersection",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value,s=e.left._zod.run({value:i,issues:[]},r),a=e.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||a instanceof Promise?Promise.all([s,a]).then(([o,l])=>_ge(n,o,l)):_ge(n,s,a)}});function _V(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(qg(t)&&qg(e)){let n=Object.keys(e),r=Object.keys(t).filter(s=>n.indexOf(s)!==-1),i={...t,...e};for(let s of r){let a=_V(t[s],e[s]);if(!a.valid)return{valid:!1,mergeErrorPath:[s,...a.mergeErrorPath]};i[s]=a.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;ro.l&&o.r).map(([o])=>o);if(s.length&&i&&t.issues.push({...i,keys:s}),Z1(t))return t;let a=_V(e.value,n.value);if(!a.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return t.value=a.data,t}var kX=Re("$ZodTuple",(t,e)=>{_r.init(t,e);let n=e.items;t._zod.parse=(r,i)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({input:s,inst:t,expected:"tuple",code:"invalid_type"}),r;r.value=[];let a=[],o=[...n].reverse().findIndex(u=>u._zod.optin!=="optional"),l=o===-1?0:n.length-o;if(!e.rest){let u=s.length>n.length,d=s.length=s.length&&c>=l)continue;let d=u._zod.run({value:s[c],issues:[]},i);d instanceof Promise?a.push(d.then(f=>t8(f,r,c))):t8(d,r,c)}if(e.rest){let u=s.slice(n.length);for(let d of u){c++;let f=e.rest._zod.run({value:d,issues:[]},i);f instanceof Promise?a.push(f.then(h=>t8(h,r,c))):t8(f,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function t8(t,e,n){t.issues.length&&e.issues.push(...Od(n,t.issues)),e.value[n]=t.value}var APe=Re("$ZodRecord",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!qg(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),n;let s=[],a=e.keyType._zod.values;if(a){n.value={};let o=new Set;for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){o.add(typeof c=="number"?c.toString():c);let u=e.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(d=>{d.issues.length&&n.issues.push(...Od(c,d.issues)),n.value[c]=d.value})):(u.issues.length&&n.issues.push(...Od(c,u.issues)),n.value[c]=u.value)}let l;for(let c in i)o.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:l})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let l=e.keyType._zod.run({value:o,issues:[]},r);if(l instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof o=="string"&&gX.test(o)&&l.issues.length&&l.issues.some(u=>u.code==="invalid_type"&&u.expected==="number")){let u=e.keyType._zod.run({value:Number(o),issues:[]},r);if(u instanceof Promise)throw Error("Async schemas not supported in object keys currently");u.issues.length===0&&(l=u)}if(l.issues.length){e.mode==="loose"?n.value[o]=i[o]:n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(u=>ed(u,r,Wo())),input:o,path:[o],inst:t});continue}let c=e.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...Od(o,u.issues)),n.value[l.value]=u.value})):(c.issues.length&&n.issues.push(...Od(o,c.issues)),n.value[l.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),OPe=Re("$ZodMap",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:t}),n;let s=[];n.value=new Map;for(let[a,o]of i){let l=e.keyType._zod.run({value:a,issues:[]},r),c=e.valueType._zod.run({value:o,issues:[]},r);l instanceof Promise||c instanceof Promise?s.push(Promise.all([l,c]).then(([u,d])=>{kge(u,d,n,a,i,t,r)})):kge(l,c,n,a,i,t,r)}return s.length?Promise.all(s).then(()=>n):n}});function kge(t,e,n,r,i,s,a){t.issues.length&&(WE.has(typeof r)?n.issues.push(...Od(r,t.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:s,issues:t.issues.map(o=>ed(o,a,Wo()))})),e.issues.length&&(WE.has(typeof r)?n.issues.push(...Od(r,e.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:s,key:r,issues:e.issues.map(o=>ed(o,a,Wo()))})),n.value.set(t.value,e.value)}var DPe=Re("$ZodSet",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:t,expected:"set",code:"invalid_type"}),n;let s=[];n.value=new Set;for(let a of i){let o=e.valueType._zod.run({value:a,issues:[]},r);o instanceof Promise?s.push(o.then(l=>Sge(l,n))):Sge(o,n)}return s.length?Promise.all(s).then(()=>n):n}});function Sge(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var MPe=Re("$ZodEnum",(t,e)=>{_r.init(t,e);let n=nX(e.entries),r=new Set(n);t._zod.values=r,t._zod.pattern=new RegExp(`^(${n.filter(i=>WE.has(typeof i)).map(i=>typeof i=="string"?Sp(i):i.toString()).join("|")})$`),t._zod.parse=(i,s)=>{let a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:t}),i}}),NPe=Re("$ZodLiteral",(t,e)=>{if(_r.init(t,e),e.values.length===0)throw Error("Cannot create literal schema with no valid values");let n=new Set(e.values);t._zod.values=n,t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Sp(r):r?Sp(r.toString()):String(r)).join("|")})$`),t._zod.parse=(r,i)=>{let s=r.value;return n.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),RPe=Re("$ZodFile",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:t}),n}}),LPe=Re("$ZodTransform",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new jI(t.constructor.name);let i=e.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(s=>(n.value=s,n));if(i instanceof Promise)throw new ug;return n.value=i,n}});function Cge(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var SX=Re("$ZodOptional",(t,e)=>{_r.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Ur(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Ur(t._zod,"pattern",()=>{let n=e.innerType._zod.pattern;return n?new RegExp(`^(${zI(n.source)})?$`):void 0}),t._zod.parse=(n,r)=>{if(e.innerType._zod.optin==="optional"){let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Cge(s,n.value)):Cge(i,n.value)}return n.value===void 0?n:e.innerType._zod.run(n,r)}}),PPe=Re("$ZodExactOptional",(t,e)=>{SX.init(t,e),Ur(t._zod,"values",()=>e.innerType._zod.values),Ur(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(n,r)=>e.innerType._zod.run(n,r)}),jPe=Re("$ZodNullable",(t,e)=>{_r.init(t,e),Ur(t._zod,"optin",()=>e.innerType._zod.optin),Ur(t._zod,"optout",()=>e.innerType._zod.optout),Ur(t._zod,"pattern",()=>{let n=e.innerType._zod.pattern;return n?new RegExp(`^(${zI(n.source)}|null)$`):void 0}),Ur(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(n,r)=>n.value===null?n:e.innerType._zod.run(n,r)}),zPe=Re("$ZodDefault",(t,e)=>{_r.init(t,e),t._zod.optin="optional",Ur(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);if(n.value===void 0)return n.value=e.defaultValue,n;let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Ege(s,e)):Ege(i,e)}});function Ege(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var FPe=Re("$ZodPrefault",(t,e)=>{_r.init(t,e),t._zod.optin="optional",Ur(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=e.defaultValue),e.innerType._zod.run(n,r))}),BPe=Re("$ZodNonOptional",(t,e)=>{_r.init(t,e),Ur(t._zod,"values",()=>{let n=e.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),t._zod.parse=(n,r)=>{let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>$ge(s,t)):$ge(i,t)}});function $ge(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var UPe=Re("$ZodSuccess",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new jI("ZodSuccess");let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),qPe=Re("$ZodCatch",(t,e)=>{_r.init(t,e),Ur(t._zod,"optin",()=>e.innerType._zod.optin),Ur(t._zod,"optout",()=>e.innerType._zod.optout),Ur(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=e.catchValue({...n,error:{issues:s.issues.map(a=>ed(a,r,Wo()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=e.catchValue({...n,error:{issues:i.issues.map(s=>ed(s,r,Wo()))},input:n.value}),n.issues=[]),n)}}),HPe=Re("$ZodNaN",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:t,expected:"nan",code:"invalid_type"}),n)}),WPe=Re("$ZodPipe",(t,e)=>{_r.init(t,e),Ur(t._zod,"values",()=>e.in._zod.values),Ur(t._zod,"optin",()=>e.in._zod.optin),Ur(t._zod,"optout",()=>e.out._zod.optout),Ur(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(n,r)=>{if(r.direction==="backward"){let s=e.out._zod.run(n,r);return s instanceof Promise?s.then(a=>n8(a,e.in,r)):n8(s,e.in,r)}let i=e.in._zod.run(n,r);return i instanceof Promise?i.then(s=>n8(s,e.out,r)):n8(i,e.out,r)}});function n8(t,e,n){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},n)}var CX=Re("$ZodCodec",(t,e)=>{_r.init(t,e),Ur(t._zod,"values",()=>e.in._zod.values),Ur(t._zod,"optin",()=>e.in._zod.optin),Ur(t._zod,"optout",()=>e.out._zod.optout),Ur(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){let i=e.in._zod.run(n,r);return i instanceof Promise?i.then(s=>r8(s,e,r)):r8(i,e,r)}else{let i=e.out._zod.run(n,r);return i instanceof Promise?i.then(s=>r8(s,e,r)):r8(i,e,r)}}});function r8(t,e,n){if(t.issues.length)return t.aborted=!0,t;if((n.direction||"forward")==="forward"){let r=e.transform(t.value,t);return r instanceof Promise?r.then(i=>i8(t,i,e.out,n)):i8(t,r,e.out,n)}else{let r=e.reverseTransform(t.value,t);return r instanceof Promise?r.then(i=>i8(t,i,e.in,n)):i8(t,r,e.in,n)}}function i8(t,e,n,r){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:e,issues:t.issues},r)}var VPe=Re("$ZodReadonly",(t,e)=>{_r.init(t,e),Ur(t._zod,"propValues",()=>e.innerType._zod.propValues),Ur(t._zod,"values",()=>e.innerType._zod.values),Ur(t._zod,"optin",()=>{var n,r;return(r=(n=e.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),Ur(t._zod,"optout",()=>{var n,r;return(r=(n=e.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(Tge):Tge(i)}});function Tge(t){return t.value=Object.freeze(t.value),t}var ZPe=Re("$ZodTemplateLiteral",(t,e)=>{_r.init(t,e);let n=[];for(let r of e.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);let i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw Error(`Invalid template literal part: ${r._zod.traits}`);let s=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(s,a))}else if(r===null||IRe.has(typeof r))n.push(Sp(`${r}`));else throw Error(`Invalid template literal part: ${r}`);t._zod.pattern=new RegExp(`^${n.join("")}$`),t._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:t,expected:"string",code:"invalid_type"}),r):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:t,code:"invalid_format",format:e.format??"template_literal",pattern:t._zod.pattern.source}),r)}),GPe=Re("$ZodFunction",(t,e)=>(_r.init(t,e),t._def=e,t._zod.def=e,t.implement=n=>{if(typeof n!="function")throw Error("implement() must be called with a function");return function(...r){let i=t._def.input?xV(t._def.input,r):r,s=Reflect.apply(n,this,i);return t._def.output?xV(t._def.output,s):s}},t.implementAsync=n=>{if(typeof n!="function")throw Error("implementAsync() must be called with a function");return async function(...r){let i=t._def.input?await wV(t._def.input,r):r,s=await Reflect.apply(n,this,i);return t._def.output?await wV(t._def.output,s):s}},t._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:t}),n):(t._def.output&&t._def.output._zod.def.type==="promise"?n.value=t.implementAsync(n.value):n.value=t.implement(n.value),n),t.input=(...n)=>{let r=t.constructor;return Array.isArray(n[0])?new r({type:"function",input:new kX({type:"tuple",items:n[0],rest:n[1]}),output:t._def.output}):new r({type:"function",input:n[0],output:t._def.output})},t.output=n=>new t.constructor({type:"function",input:t._def.input,output:n}),t)),KPe=Re("$ZodPromise",(t,e)=>{_r.init(t,e),t._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>e.innerType._zod.run({value:i,issues:[]},r))}),YPe=Re("$ZodLazy",(t,e)=>{_r.init(t,e),Ur(t._zod,"innerType",()=>e.getter()),Ur(t._zod,"pattern",()=>{var n,r;return(r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),Ur(t._zod,"propValues",()=>{var n,r;return(r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),Ur(t._zod,"optin",()=>{var n,r;return((r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),Ur(t._zod,"optout",()=>{var n,r;return((r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),t._zod.parse=(n,r)=>t._zod.innerType._zod.run(n,r)}),JPe=Re("$ZodCustom",(t,e)=>{Ts.init(t,e),_r.init(t,e),t._zod.parse=(n,r)=>n,t._zod.check=n=>{let r=n.value,i=e.fn(r);if(i instanceof Promise)return i.then(s=>Ige(s,n,r,t));Ige(i,n,r,t)}});function Ige(t,e,n,r){if(!t){let i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),e.issues.push(VE(i))}}var EX={};Mp(EX,{zhTW:()=>Kgn,zhCN:()=>Zgn,yo:()=>Jgn,vi:()=>Wgn,uz:()=>qgn,ur:()=>Bgn,uk:()=>eje,ua:()=>zgn,tr:()=>Pgn,th:()=>Rgn,ta:()=>Mgn,sv:()=>Ogn,sl:()=>Ign,ru:()=>$gn,pt:()=>Cgn,ps:()=>wgn,pl:()=>kgn,ota:()=>bgn,no:()=>vgn,nl:()=>mgn,ms:()=>hgn,mk:()=>dgn,lt:()=>cgn,ko:()=>ogn,km:()=>QPe,kh:()=>sgn,ka:()=>rgn,ja:()=>tgn,it:()=>Q1n,is:()=>J1n,id:()=>K1n,hy:()=>Z1n,hu:()=>W1n,he:()=>q1n,frCA:()=>B1n,fr:()=>z1n,fi:()=>P1n,fa:()=>R1n,es:()=>M1n,eo:()=>O1n,en:()=>XPe,de:()=>T1n,da:()=>E1n,cs:()=>S1n,ca:()=>_1n,bg:()=>x1n,be:()=>y1n,az:()=>g1n,ar:()=>p1n});var h1n=()=>{let t={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function e(i){return t[i]??null}let n={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`مدخلات غير مقبولة: يفترض إدخال instanceof ${i.expected}، ولكن تم إدخال ${o}`:`مدخلات غير مقبولة: يفترض إدخال ${s}، ولكن تم إدخال ${o}`}case"invalid_value":return i.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${sr(i.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?` أكبر من اللازم: يفترض أن تكون ${i.origin??"القيمة"} ${s} ${i.maximum.toString()} ${a.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${i.origin??"القيمة"} ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`أصغر من اللازم: يفترض لـ ${i.origin} أن يكون ${s} ${i.minimum.toString()} ${a.unit}`:`أصغر من اللازم: يفترض لـ ${i.origin} أن يكون ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${i.prefix}"`:s.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${s.suffix}"`:s.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${s.includes}"`:s.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${s.pattern}`:`${n[s.format]??i.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${i.divisor}`;case"unrecognized_keys":return`معرف${i.keys.length>1?"ات":""} غريب${i.keys.length>1?"ة":""}: ${$t(i.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${i.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${i.origin}`;default:return"مدخل غير مقبول"}}};function p1n(){return{localeError:h1n()}}var m1n=()=>{let t={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function e(i){return t[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Yanlış dəyər: gözlənilən instanceof ${i.expected}, daxil olan ${o}`:`Yanlış dəyər: gözlənilən ${s}, daxil olan ${o}`}case"invalid_value":return i.values.length===1?`Yanlış dəyər: gözlənilən ${sr(i.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Çox böyük: gözlənilən ${i.origin??"dəyər"} ${s}${i.maximum.toString()} ${a.unit??"element"}`:`Çox böyük: gözlənilən ${i.origin??"dəyər"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Çox kiçik: gözlənilən ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`Çox kiçik: gözlənilən ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Yanlış mətn: "${s.prefix}" ilə başlamalıdır`:s.format==="ends_with"?`Yanlış mətn: "${s.suffix}" ilə bitməlidir`:s.format==="includes"?`Yanlış mətn: "${s.includes}" daxil olmalıdır`:s.format==="regex"?`Yanlış mətn: ${s.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${n[s.format]??i.format}`}case"not_multiple_of":return`Yanlış ədəd: ${i.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${i.keys.length>1?"lar":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${i.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function g1n(){return{localeError:m1n()}}function Age(t,e,n,r){let i=Math.abs(t),s=i%10,a=i%100;return a>=11&&a<=19?r:s===1?e:s>=2&&s<=4?n:r}var v1n=()=>{let t={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function e(i){return t[i]??null}let n={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"},r={nan:"NaN",number:"лік",array:"масіў"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Няправільны ўвод: чакаўся instanceof ${i.expected}, атрымана ${o}`:`Няправільны ўвод: чакаўся ${s}, атрымана ${o}`}case"invalid_value":return i.values.length===1?`Няправільны ўвод: чакалася ${sr(i.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Age(o,a.unit.one,a.unit.few,a.unit.many);return`Занадта вялікі: чакалася, што ${i.origin??"значэнне"} павінна ${a.verb} ${s}${i.maximum.toString()} ${l}`}return`Занадта вялікі: чакалася, што ${i.origin??"значэнне"} павінна быць ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Age(o,a.unit.one,a.unit.few,a.unit.many);return`Занадта малы: чакалася, што ${i.origin} павінна ${a.verb} ${s}${i.minimum.toString()} ${l}`}return`Занадта малы: чакалася, што ${i.origin} павінна быць ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${s.prefix}"`:s.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${s.suffix}"`:s.format==="includes"?`Няправільны радок: павінен змяшчаць "${s.includes}"`:s.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${s.pattern}`:`Няправільны ${n[s.format]??i.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${i.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${i.keys.length>1?"ключы":"ключ"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${i.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${i.origin}`;default:return"Няправільны ўвод"}}};function y1n(){return{localeError:v1n()}}var b1n=()=>{let t={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function e(i){return t[i]??null}let n={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"},r={nan:"NaN",number:"число",array:"масив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Невалиден вход: очакван instanceof ${i.expected}, получен ${o}`:`Невалиден вход: очакван ${s}, получен ${o}`}case"invalid_value":return i.values.length===1?`Невалиден вход: очакван ${sr(i.values[0])}`:`Невалидна опция: очаквано едно от ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Твърде голямо: очаква се ${i.origin??"стойност"} да съдържа ${s}${i.maximum.toString()} ${a.unit??"елемента"}`:`Твърде голямо: очаква се ${i.origin??"стойност"} да бъде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Твърде малко: очаква се ${i.origin} да съдържа ${s}${i.minimum.toString()} ${a.unit}`:`Твърде малко: очаква се ${i.origin} да бъде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;if(s.format==="starts_with")return`Невалиден низ: трябва да започва с "${s.prefix}"`;if(s.format==="ends_with")return`Невалиден низ: трябва да завършва с "${s.suffix}"`;if(s.format==="includes")return`Невалиден низ: трябва да включва "${s.includes}"`;if(s.format==="regex")return`Невалиден низ: трябва да съвпада с ${s.pattern}`;let a="Невалиден";return s.format==="emoji"&&(a="Невалидно"),s.format==="datetime"&&(a="Невалидно"),s.format==="date"&&(a="Невалидна"),s.format==="time"&&(a="Невалидно"),s.format==="duration"&&(a="Невалидна"),`${a} ${n[s.format]??i.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${i.divisor}`;case"unrecognized_keys":return`Неразпознат${i.keys.length>1?"и":""} ключ${i.keys.length>1?"ове":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${i.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${i.origin}`;default:return"Невалиден вход"}}};function x1n(){return{localeError:b1n()}}var w1n=()=>{let t={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(i){return t[i]??null}let n={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Tipus invàlid: s'esperava instanceof ${i.expected}, s'ha rebut ${o}`:`Tipus invàlid: s'esperava ${s}, s'ha rebut ${o}`}case"invalid_value":return i.values.length===1?`Valor invàlid: s'esperava ${sr(i.values[0])}`:`Opció invàlida: s'esperava una de ${$t(i.values," o ")}`;case"too_big":{let s=i.inclusive?"com a màxim":"menys de",a=e(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingués ${s} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"com a mínim":"més de",a=e(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingués ${s} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Format invàlid: ha de començar amb "${s.prefix}"`:s.format==="ends_with"?`Format invàlid: ha d'acabar amb "${s.suffix}"`:s.format==="includes"?`Format invàlid: ha d'incloure "${s.includes}"`:s.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${s.pattern}`:`Format invàlid per a ${n[s.format]??i.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${i.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${i.origin}`;default:return"Entrada invàlida"}}};function _1n(){return{localeError:w1n()}}var k1n=()=>{let t={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function e(i){return t[i]??null}let n={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"},r={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Neplatný vstup: očekáváno instanceof ${i.expected}, obdrženo ${o}`:`Neplatný vstup: očekáváno ${s}, obdrženo ${o}`}case"invalid_value":return i.values.length===1?`Neplatný vstup: očekáváno ${sr(i.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Hodnota je příliš velká: ${i.origin??"hodnota"} musí mít ${s}${i.maximum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš velká: ${i.origin??"hodnota"} musí být ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Hodnota je příliš malá: ${i.origin??"hodnota"} musí mít ${s}${i.minimum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš malá: ${i.origin??"hodnota"} musí být ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Neplatný řetězec: musí začínat na "${s.prefix}"`:s.format==="ends_with"?`Neplatný řetězec: musí končit na "${s.suffix}"`:s.format==="includes"?`Neplatný řetězec: musí obsahovat "${s.includes}"`:s.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${s.pattern}`:`Neplatný formát ${n[s.format]??i.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${i.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${$t(i.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${i.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${i.origin}`;default:return"Neplatný vstup"}}};function S1n(){return{localeError:k1n()}}var C1n=()=>{let t={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function e(i){return t[i]??null}let n={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},r={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ugyldigt input: forventede instanceof ${i.expected}, fik ${o}`:`Ugyldigt input: forventede ${s}, fik ${o}`}case"invalid_value":return i.values.length===1?`Ugyldig værdi: forventede ${sr(i.values[0])}`:`Ugyldigt valg: forventede en af følgende ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=r[i.origin]??i.origin;return a?`For stor: forventede ${o??"value"} ${a.verb} ${s} ${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor: forventede ${o??"value"} havde ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=r[i.origin]??i.origin;return a?`For lille: forventede ${o} ${a.verb} ${s} ${i.minimum.toString()} ${a.unit}`:`For lille: forventede ${o} havde ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche mønsteret ${s.pattern}`:`Ugyldig ${n[s.format]??i.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${i.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${i.origin}`;default:return"Ugyldigt input"}}};function E1n(){return{localeError:C1n()}}var $1n=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(i){return t[i]??null}let n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},r={nan:"NaN",number:"Zahl",array:"Array"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ungültige Eingabe: erwartet instanceof ${i.expected}, erhalten ${o}`:`Ungültige Eingabe: erwartet ${s}, erhalten ${o}`}case"invalid_value":return i.values.length===1?`Ungültige Eingabe: erwartet ${sr(i.values[0])}`:`Ungültige Option: erwartet eine von ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Zu groß: erwartet, dass ${i.origin??"Wert"} ${s}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${i.origin??"Wert"} ${s}${i.maximum.toString()} ist`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${s}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${s}${i.minimum.toString()} ist`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ungültiger String: muss mit "${s.prefix}" beginnen`:s.format==="ends_with"?`Ungültiger String: muss mit "${s.suffix}" enden`:s.format==="includes"?`Ungültiger String: muss "${s.includes}" enthalten`:s.format==="regex"?`Ungültiger String: muss dem Muster ${s.pattern} entsprechen`:`Ungültig: ${n[s.format]??i.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${i.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${i.origin}`;default:return"Ungültige Eingabe"}}};function T1n(){return{localeError:$1n()}}var I1n=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(i){return t[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return`Invalid input: expected ${s}, received ${o}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${sr(i.values[0])}`:`Invalid option: expected one of ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${a.unit}`:`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function XPe(){return{localeError:I1n()}}var A1n=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(i){return t[i]??null}let n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},r={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Nevalida enigo: atendiĝis instanceof ${i.expected}, riceviĝis ${o}`:`Nevalida enigo: atendiĝis ${s}, riceviĝis ${o}`}case"invalid_value":return i.values.length===1?`Nevalida enigo: atendiĝis ${sr(i.values[0])}`:`Nevalida opcio: atendiĝis unu el ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Tro granda: atendiĝis ke ${i.origin??"valoro"} havu ${s}${i.maximum.toString()} ${a.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${i.origin??"valoro"} havu ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Tro malgranda: atendiĝis ke ${i.origin} havu ${s}${i.minimum.toString()} ${a.unit}`:`Tro malgranda: atendiĝis ke ${i.origin} estu ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${n[s.format]??i.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${i.divisor}`;case"unrecognized_keys":return`Nekonata${i.keys.length>1?"j":""} ŝlosilo${i.keys.length>1?"j":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${i.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${i.origin}`;default:return"Nevalida enigo"}}};function O1n(){return{localeError:A1n()}}var D1n=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(i){return t[i]??null}let n={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrada inválida: se esperaba instanceof ${i.expected}, recibido ${o}`:`Entrada inválida: se esperaba ${s}, recibido ${o}`}case"invalid_value":return i.values.length===1?`Entrada inválida: se esperaba ${sr(i.values[0])}`:`Opción inválida: se esperaba una de ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=r[i.origin]??i.origin;return a?`Demasiado grande: se esperaba que ${o??"valor"} tuviera ${s}${i.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${o??"valor"} fuera ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=r[i.origin]??i.origin;return a?`Demasiado pequeño: se esperaba que ${o} tuviera ${s}${i.minimum.toString()} ${a.unit}`:`Demasiado pequeño: se esperaba que ${o} fuera ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Cadena inválida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inválida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inválida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${s.pattern}`:`Inválido ${n[s.format]??i.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${i.divisor}`;case"unrecognized_keys":return`Llave${i.keys.length>1?"s":""} desconocida${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Llave inválida en ${r[i.origin]??i.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${r[i.origin]??i.origin}`;default:return"Entrada inválida"}}};function M1n(){return{localeError:D1n()}}var N1n=()=>{let t={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function e(i){return t[i]??null}let n={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"},r={nan:"NaN",number:"عدد",array:"آرایه"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ورودی نامعتبر: می‌بایست instanceof ${i.expected} می‌بود، ${o} دریافت شد`:`ورودی نامعتبر: می‌بایست ${s} می‌بود، ${o} دریافت شد`}case"invalid_value":return i.values.length===1?`ورودی نامعتبر: می‌بایست ${sr(i.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${$t(i.values,"|")} می‌بود`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`خیلی بزرگ: ${i.origin??"مقدار"} باید ${s}${i.maximum.toString()} ${a.unit??"عنصر"} باشد`:`خیلی بزرگ: ${i.origin??"مقدار"} باید ${s}${i.maximum.toString()} باشد`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`خیلی کوچک: ${i.origin} باید ${s}${i.minimum.toString()} ${a.unit} باشد`:`خیلی کوچک: ${i.origin} باید ${s}${i.minimum.toString()} باشد`}case"invalid_format":{let s=i;return s.format==="starts_with"?`رشته نامعتبر: باید با "${s.prefix}" شروع شود`:s.format==="ends_with"?`رشته نامعتبر: باید با "${s.suffix}" تمام شود`:s.format==="includes"?`رشته نامعتبر: باید شامل "${s.includes}" باشد`:s.format==="regex"?`رشته نامعتبر: باید با الگوی ${s.pattern} مطابقت داشته باشد`:`${n[s.format]??i.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${i.divisor} باشد`;case"unrecognized_keys":return`کلید${i.keys.length>1?"های":""} ناشناس: ${$t(i.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${i.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${i.origin}`;default:return"ورودی نامعتبر"}}};function R1n(){return{localeError:N1n()}}var L1n=()=>{let t={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function e(i){return t[i]??null}let n={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Virheellinen tyyppi: odotettiin instanceof ${i.expected}, oli ${o}`:`Virheellinen tyyppi: odotettiin ${s}, oli ${o}`}case"invalid_value":return i.values.length===1?`Virheellinen syöte: täytyy olla ${sr(i.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Liian suuri: ${a.subject} täytyy olla ${s}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon täytyy olla ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Liian pieni: ${a.subject} täytyy olla ${s}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon täytyy olla ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${s.prefix}"`:s.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${s.suffix}"`:s.format==="includes"?`Virheellinen syöte: täytyy sisältää "${s.includes}"`:s.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${s.pattern}`:`Virheellinen ${n[s.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${$t(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function P1n(){return{localeError:L1n()}}var j1n=()=>{let t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function e(i){return t[i]??null}let n={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},r={nan:"NaN",number:"nombre",array:"tableau"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrée invalide : instanceof ${i.expected} attendu, ${o} reçu`:`Entrée invalide : ${s} attendu, ${o} reçu`}case"invalid_value":return i.values.length===1?`Entrée invalide : ${sr(i.values[0])} attendu`:`Option invalide : une valeur parmi ${$t(i.values,"|")} attendue`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"élément(s)"}`:`Trop grand : ${i.origin??"valeur"} doit être ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit être ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chaîne invalide : doit commencer par "${s.prefix}"`:s.format==="ends_with"?`Chaîne invalide : doit se terminer par "${s.suffix}"`:s.format==="includes"?`Chaîne invalide : doit inclure "${s.includes}"`:s.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${s.pattern}`:`${n[s.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${i.divisor}`;case"unrecognized_keys":return`Clé${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${$t(i.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${i.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entrée invalide"}}};function z1n(){return{localeError:j1n()}}var F1n=()=>{let t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function e(i){return t[i]??null}let n={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrée invalide : attendu instanceof ${i.expected}, reçu ${o}`:`Entrée invalide : attendu ${s}, reçu ${o}`}case"invalid_value":return i.values.length===1?`Entrée invalide : attendu ${sr(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"≤":"<",a=e(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${s}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"≥":">",a=e(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${s}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chaîne invalide : doit commencer par "${s.prefix}"`:s.format==="ends_with"?`Chaîne invalide : doit se terminer par "${s.suffix}"`:s.format==="includes"?`Chaîne invalide : doit inclure "${s.includes}"`:s.format==="regex"?`Chaîne invalide : doit correspondre au motif ${s.pattern}`:`${n[s.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${i.divisor}`;case"unrecognized_keys":return`Clé${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${$t(i.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${i.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entrée invalide"}}};function B1n(){return{localeError:F1n()}}var U1n=()=>{let t={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},e={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},n=c=>c?t[c]:void 0,r=c=>{let u=n(c);return u?u.label:c??t.unknown.label},i=c=>`ה${r(c)}`,s=c=>{var u;return(((u=n(c))==null?void 0:u.gender)??"m")==="f"?"צריכה להיות":"צריך להיות"},a=c=>c?e[c]??null:null,o={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}},l={nan:"NaN"};return c=>{var u;switch(c.code){case"invalid_type":{let d=c.expected,f=l[d??""]??r(d),h=hr(c.input),m=l[h]??((u=t[h])==null?void 0:u.label)??h;return/^[A-Z]/.test(c.expected)?`קלט לא תקין: צריך להיות instanceof ${c.expected}, התקבל ${m}`:`קלט לא תקין: צריך להיות ${f}, התקבל ${m}`}case"invalid_value":{if(c.values.length===1)return`ערך לא תקין: הערך חייב להיות ${sr(c.values[0])}`;let d=c.values.map(h=>sr(h));if(c.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${d[0]} או ${d[1]}`;let f=d[d.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${d.slice(0,-1).join(", ")} או ${f}`}case"too_big":{let d=a(c.origin),f=i(c.origin??"value");if(c.origin==="string")return`${(d==null?void 0:d.longLabel)??"ארוך"} מדי: ${f} צריכה להכיל ${c.maximum.toString()} ${(d==null?void 0:d.unit)??""} ${c.inclusive?"או פחות":"לכל היותר"}`.trim();if(c.origin==="number"){let p=c.inclusive?`קטן או שווה ל-${c.maximum}`:`קטן מ-${c.maximum}`;return`גדול מדי: ${f} צריך להיות ${p}`}if(c.origin==="array"||c.origin==="set"){let p=c.origin==="set"?"צריכה":"צריך",v=c.inclusive?`${c.maximum} ${(d==null?void 0:d.unit)??""} או פחות`:`פחות מ-${c.maximum} ${(d==null?void 0:d.unit)??""}`;return`גדול מדי: ${f} ${p} להכיל ${v}`.trim()}let h=c.inclusive?"<=":"<",m=s(c.origin??"value");return d!=null&&d.unit?`${d.longLabel} מדי: ${f} ${m} ${h}${c.maximum.toString()} ${d.unit}`:`${(d==null?void 0:d.longLabel)??"גדול"} מדי: ${f} ${m} ${h}${c.maximum.toString()}`}case"too_small":{let d=a(c.origin),f=i(c.origin??"value");if(c.origin==="string")return`${(d==null?void 0:d.shortLabel)??"קצר"} מדי: ${f} צריכה להכיל ${c.minimum.toString()} ${(d==null?void 0:d.unit)??""} ${c.inclusive?"או יותר":"לפחות"}`.trim();if(c.origin==="number"){let p=c.inclusive?`גדול או שווה ל-${c.minimum}`:`גדול מ-${c.minimum}`;return`קטן מדי: ${f} צריך להיות ${p}`}if(c.origin==="array"||c.origin==="set"){let p=c.origin==="set"?"צריכה":"צריך";if(c.minimum===1&&c.inclusive){let x=(c.origin==="set","לפחות פריט אחד");return`קטן מדי: ${f} ${p} להכיל ${x}`}let v=c.inclusive?`${c.minimum} ${(d==null?void 0:d.unit)??""} או יותר`:`יותר מ-${c.minimum} ${(d==null?void 0:d.unit)??""}`;return`קטן מדי: ${f} ${p} להכיל ${v}`.trim()}let h=c.inclusive?">=":">",m=s(c.origin??"value");return d!=null&&d.unit?`${d.shortLabel} מדי: ${f} ${m} ${h}${c.minimum.toString()} ${d.unit}`:`${(d==null?void 0:d.shortLabel)??"קטן"} מדי: ${f} ${m} ${h}${c.minimum.toString()}`}case"invalid_format":{let d=c;if(d.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${d.prefix}"`;if(d.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${d.suffix}"`;if(d.format==="includes")return`המחרוזת חייבת לכלול "${d.includes}"`;if(d.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${d.pattern}`;let f=o[d.format],h=(f==null?void 0:f.label)??d.format,m=((f==null?void 0:f.gender)??"m")==="f"?"תקינה":"תקין";return`${h} לא ${m}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${c.divisor}`;case"unrecognized_keys":return`מפתח${c.keys.length>1?"ות":""} לא מזוה${c.keys.length>1?"ים":"ה"}: ${$t(c.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${i(c.origin??"array")}`;default:return"קלט לא תקין"}}};function q1n(){return{localeError:U1n()}}var H1n=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(i){return t[i]??null}let n={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"},r={nan:"NaN",number:"szám",array:"tömb"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Érvénytelen bemenet: a várt érték instanceof ${i.expected}, a kapott érték ${o}`:`Érvénytelen bemenet: a várt érték ${s}, a kapott érték ${o}`}case"invalid_value":return i.values.length===1?`Érvénytelen bemenet: a várt érték ${sr(i.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Túl nagy: ${i.origin??"érték"} mérete túl nagy ${s}${i.maximum.toString()} ${a.unit??"elem"}`:`Túl nagy: a bemeneti érték ${i.origin??"érték"} túl nagy: ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Túl kicsi: a bemeneti érték ${i.origin} mérete túl kicsi ${s}${i.minimum.toString()} ${a.unit}`:`Túl kicsi: a bemeneti érték ${i.origin} túl kicsi ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Érvénytelen string: "${s.prefix}" értékkel kell kezdődnie`:s.format==="ends_with"?`Érvénytelen string: "${s.suffix}" értékkel kell végződnie`:s.format==="includes"?`Érvénytelen string: "${s.includes}" értéket kell tartalmaznia`:s.format==="regex"?`Érvénytelen string: ${s.pattern} mintának kell megfelelnie`:`Érvénytelen ${n[s.format]??i.format}`}case"not_multiple_of":return`Érvénytelen szám: ${i.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${i.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${i.origin}`;default:return"Érvénytelen bemenet"}}};function W1n(){return{localeError:H1n()}}function Oge(t,e,n){return Math.abs(t)===1?e:n}function lv(t){if(!t)return"";let e=["ա","ե","ը","ի","ո","ու","օ"],n=t[t.length-1];return t+(e.includes(n)?"ն":"ը")}var V1n=()=>{let t={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function e(i){return t[i]??null}let n={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",jwt:"JWT",template_literal:"մուտք"},r={nan:"NaN",number:"թիվ",array:"զանգված"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Սխալ մուտքագրում․ սպասվում էր instanceof ${i.expected}, ստացվել է ${o}`:`Սխալ մուտքագրում․ սպասվում էր ${s}, ստացվել է ${o}`}case"invalid_value":return i.values.length===1?`Սխալ մուտքագրում․ սպասվում էր ${sr(i.values[1])}`:`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Oge(o,a.unit.one,a.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${lv(i.origin??"արժեք")} կունենա ${s}${i.maximum.toString()} ${l}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${lv(i.origin??"արժեք")} լինի ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Oge(o,a.unit.one,a.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${lv(i.origin)} կունենա ${s}${i.minimum.toString()} ${l}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${lv(i.origin)} լինի ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Սխալ տող․ պետք է սկսվի "${s.prefix}"-ով`:s.format==="ends_with"?`Սխալ տող․ պետք է ավարտվի "${s.suffix}"-ով`:s.format==="includes"?`Սխալ տող․ պետք է պարունակի "${s.includes}"`:s.format==="regex"?`Սխալ տող․ պետք է համապատասխանի ${s.pattern} ձևաչափին`:`Սխալ ${n[s.format]??i.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${i.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${i.keys.length>1?"ներ":""}. ${$t(i.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${lv(i.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${lv(i.origin)}-ում`;default:return"Սխալ մուտքագրում"}}};function Z1n(){return{localeError:V1n()}}var G1n=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(i){return t[i]??null}let n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input tidak valid: diharapkan instanceof ${i.expected}, diterima ${o}`:`Input tidak valid: diharapkan ${s}, diterima ${o}`}case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${sr(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${s}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${s}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`String tidak valid: harus dimulai dengan "${s.prefix}"`:s.format==="ends_with"?`String tidak valid: harus berakhir dengan "${s.suffix}"`:s.format==="includes"?`String tidak valid: harus menyertakan "${s.includes}"`:s.format==="regex"?`String tidak valid: harus sesuai pola ${s.pattern}`:`${n[s.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function K1n(){return{localeError:G1n()}}var Y1n=()=>{let t={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function e(i){return t[i]??null}let n={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"},r={nan:"NaN",number:"númer",array:"fylki"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Rangt gildi: Þú slóst inn ${o} þar sem á að vera instanceof ${i.expected}`:`Rangt gildi: Þú slóst inn ${o} þar sem á að vera ${s}`}case"invalid_value":return i.values.length===1?`Rangt gildi: gert ráð fyrir ${sr(i.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Of stórt: gert er ráð fyrir að ${i.origin??"gildi"} hafi ${s}${i.maximum.toString()} ${a.unit??"hluti"}`:`Of stórt: gert er ráð fyrir að ${i.origin??"gildi"} sé ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Of lítið: gert er ráð fyrir að ${i.origin} hafi ${s}${i.minimum.toString()} ${a.unit}`:`Of lítið: gert er ráð fyrir að ${i.origin} sé ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ógildur strengur: verður að byrja á "${s.prefix}"`:s.format==="ends_with"?`Ógildur strengur: verður að enda á "${s.suffix}"`:s.format==="includes"?`Ógildur strengur: verður að innihalda "${s.includes}"`:s.format==="regex"?`Ógildur strengur: verður að fylgja mynstri ${s.pattern}`:`Rangt ${n[s.format]??i.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${i.divisor}`;case"unrecognized_keys":return`Óþekkt ${i.keys.length>1?"ir lyklar":"ur lykill"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${i.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${i.origin}`;default:return"Rangt gildi"}}};function J1n(){return{localeError:Y1n()}}var X1n=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(i){return t[i]??null}let n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"numero",array:"vettore"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input non valido: atteso instanceof ${i.expected}, ricevuto ${o}`:`Input non valido: atteso ${s}, ricevuto ${o}`}case"invalid_value":return i.values.length===1?`Input non valido: atteso ${sr(i.values[0])}`:`Opzione non valida: atteso uno tra ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${s}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${s}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Stringa non valida: deve iniziare con "${s.prefix}"`:s.format==="ends_with"?`Stringa non valida: deve terminare con "${s.suffix}"`:s.format==="includes"?`Stringa non valida: deve includere "${s.includes}"`:s.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function Q1n(){return{localeError:X1n()}}var egn=()=>{let t={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function e(i){return t[i]??null}let n={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"},r={nan:"NaN",number:"数値",array:"配列"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`無効な入力: instanceof ${i.expected}が期待されましたが、${o}が入力されました`:`無効な入力: ${s}が期待されましたが、${o}が入力されました`}case"invalid_value":return i.values.length===1?`無効な入力: ${sr(i.values[0])}が期待されました`:`無効な選択: ${$t(i.values,"、")}のいずれかである必要があります`;case"too_big":{let s=i.inclusive?"以下である":"より小さい",a=e(i.origin);return a?`大きすぎる値: ${i.origin??"値"}は${i.maximum.toString()}${a.unit??"要素"}${s}必要があります`:`大きすぎる値: ${i.origin??"値"}は${i.maximum.toString()}${s}必要があります`}case"too_small":{let s=i.inclusive?"以上である":"より大きい",a=e(i.origin);return a?`小さすぎる値: ${i.origin}は${i.minimum.toString()}${a.unit}${s}必要があります`:`小さすぎる値: ${i.origin}は${i.minimum.toString()}${s}必要があります`}case"invalid_format":{let s=i;return s.format==="starts_with"?`無効な文字列: "${s.prefix}"で始まる必要があります`:s.format==="ends_with"?`無効な文字列: "${s.suffix}"で終わる必要があります`:s.format==="includes"?`無効な文字列: "${s.includes}"を含む必要があります`:s.format==="regex"?`無効な文字列: パターン${s.pattern}に一致する必要があります`:`無効な${n[s.format]??i.format}`}case"not_multiple_of":return`無効な数値: ${i.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${i.keys.length>1?"群":""}: ${$t(i.keys,"、")}`;case"invalid_key":return`${i.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${i.origin}内の無効な値`;default:return"無効な入力"}}};function tgn(){return{localeError:egn()}}var ngn=()=>{let t={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function e(i){return t[i]??null}let n={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"},r={nan:"NaN",number:"რიცხვი",string:"სტრინგი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`არასწორი შეყვანა: მოსალოდნელი instanceof ${i.expected}, მიღებული ${o}`:`არასწორი შეყვანა: მოსალოდნელი ${s}, მიღებული ${o}`}case"invalid_value":return i.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${sr(i.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${$t(i.values,"|")}-დან`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ზედმეტად დიდი: მოსალოდნელი ${i.origin??"მნიშვნელობა"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${i.origin??"მნიშვნელობა"} იყოს ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`ზედმეტად პატარა: მოსალოდნელი ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${i.origin} იყოს ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`არასწორი სტრინგი: უნდა იწყებოდეს "${s.prefix}"-ით`:s.format==="ends_with"?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${s.suffix}"-ით`:s.format==="includes"?`არასწორი სტრინგი: უნდა შეიცავდეს "${s.includes}"-ს`:s.format==="regex"?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${s.pattern}`:`არასწორი ${n[s.format]??i.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${i.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${i.keys.length>1?"ები":"ი"}: ${$t(i.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${i.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${i.origin}-ში`;default:return"არასწორი შეყვანა"}}};function rgn(){return{localeError:ngn()}}var ign=()=>{let t={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function e(i){return t[i]??null}let n={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"},r={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${i.expected} ប៉ុន្តែទទួលបាន ${o}`:`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${s} ប៉ុន្តែទទួលបាន ${o}`}case"invalid_value":return i.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${sr(i.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ធំពេក៖ ត្រូវការ ${i.origin??"តម្លៃ"} ${s} ${i.maximum.toString()} ${a.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${i.origin??"តម្លៃ"} ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`តូចពេក៖ ត្រូវការ ${i.origin} ${s} ${i.minimum.toString()} ${a.unit}`:`តូចពេក៖ ត្រូវការ ${i.origin} ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${s.prefix}"`:s.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${s.suffix}"`:s.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${s.includes}"`:s.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${s.pattern}`:`មិនត្រឹមត្រូវ៖ ${n[s.format]??i.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${i.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${$t(i.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${i.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${i.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function QPe(){return{localeError:ign()}}function sgn(){return QPe()}var agn=()=>{let t={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function e(i){return t[i]??null}let n={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`잘못된 입력: 예상 타입은 instanceof ${i.expected}, 받은 타입은 ${o}입니다`:`잘못된 입력: 예상 타입은 ${s}, 받은 타입은 ${o}입니다`}case"invalid_value":return i.values.length===1?`잘못된 입력: 값은 ${sr(i.values[0])} 이어야 합니다`:`잘못된 옵션: ${$t(i.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{let s=i.inclusive?"이하":"미만",a=s==="미만"?"이어야 합니다":"여야 합니다",o=e(i.origin),l=(o==null?void 0:o.unit)??"요소";return o?`${i.origin??"값"}이 너무 큽니다: ${i.maximum.toString()}${l} ${s}${a}`:`${i.origin??"값"}이 너무 큽니다: ${i.maximum.toString()} ${s}${a}`}case"too_small":{let s=i.inclusive?"이상":"초과",a=s==="이상"?"이어야 합니다":"여야 합니다",o=e(i.origin),l=(o==null?void 0:o.unit)??"요소";return o?`${i.origin??"값"}이 너무 작습니다: ${i.minimum.toString()}${l} ${s}${a}`:`${i.origin??"값"}이 너무 작습니다: ${i.minimum.toString()} ${s}${a}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`잘못된 문자열: "${s.prefix}"(으)로 시작해야 합니다`:s.format==="ends_with"?`잘못된 문자열: "${s.suffix}"(으)로 끝나야 합니다`:s.format==="includes"?`잘못된 문자열: "${s.includes}"을(를) 포함해야 합니다`:s.format==="regex"?`잘못된 문자열: 정규식 ${s.pattern} 패턴과 일치해야 합니다`:`잘못된 ${n[s.format]??i.format}`}case"not_multiple_of":return`잘못된 숫자: ${i.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${$t(i.keys,", ")}`;case"invalid_key":return`잘못된 키: ${i.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${i.origin}`;default:return"잘못된 입력"}}};function ogn(){return{localeError:agn()}}var E3=t=>t.charAt(0).toUpperCase()+t.slice(1);function Dge(t){let e=Math.abs(t),n=e%10,r=e%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}var lgn=()=>{let t={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function e(i,s,a,o){let l=t[i]??null;return l===null?l:{unit:l.unit[s],verb:l.verb[o][a?"inclusive":"notInclusive"]}}let n={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"},r={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Gautas tipas ${o}, o tikėtasi - instanceof ${i.expected}`:`Gautas tipas ${o}, o tikėtasi - ${s}`}case"invalid_value":return i.values.length===1?`Privalo būti ${sr(i.values[0])}`:`Privalo būti vienas iš ${$t(i.values,"|")} pasirinkimų`;case"too_big":{let s=r[i.origin]??i.origin,a=e(i.origin,Dge(Number(i.maximum)),i.inclusive??!1,"smaller");if(a!=null&&a.verb)return`${E3(s??i.origin??"reikšmė")} ${a.verb} ${i.maximum.toString()} ${a.unit??"elementų"}`;let o=i.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${E3(s??i.origin??"reikšmė")} turi būti ${o} ${i.maximum.toString()} ${a==null?void 0:a.unit}`}case"too_small":{let s=r[i.origin]??i.origin,a=e(i.origin,Dge(Number(i.minimum)),i.inclusive??!1,"bigger");if(a!=null&&a.verb)return`${E3(s??i.origin??"reikšmė")} ${a.verb} ${i.minimum.toString()} ${a.unit??"elementų"}`;let o=i.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${E3(s??i.origin??"reikšmė")} turi būti ${o} ${i.minimum.toString()} ${a==null?void 0:a.unit}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Eilutė privalo prasidėti "${s.prefix}"`:s.format==="ends_with"?`Eilutė privalo pasibaigti "${s.suffix}"`:s.format==="includes"?`Eilutė privalo įtraukti "${s.includes}"`:s.format==="regex"?`Eilutė privalo atitikti ${s.pattern}`:`Neteisingas ${n[s.format]??i.format}`}case"not_multiple_of":return`Skaičius privalo būti ${i.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${i.keys.length>1?"i":"as"} rakt${i.keys.length>1?"ai":"as"}: ${$t(i.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{let s=r[i.origin]??i.origin;return`${E3(s??i.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function cgn(){return{localeError:lgn()}}var ugn=()=>{let t={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function e(i){return t[i]??null}let n={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"},r={nan:"NaN",number:"број",array:"низа"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Грешен внес: се очекува instanceof ${i.expected}, примено ${o}`:`Грешен внес: се очекува ${s}, примено ${o}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${sr(i.values[0])}`:`Грешана опција: се очекува една ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Премногу голем: се очекува ${i.origin??"вредноста"} да има ${s}${i.maximum.toString()} ${a.unit??"елементи"}`:`Премногу голем: се очекува ${i.origin??"вредноста"} да биде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Премногу мал: се очекува ${i.origin} да има ${s}${i.minimum.toString()} ${a.unit}`:`Премногу мал: се очекува ${i.origin} да биде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неважечка низа: мора да започнува со "${s.prefix}"`:s.format==="ends_with"?`Неважечка низа: мора да завршува со "${s.suffix}"`:s.format==="includes"?`Неважечка низа: мора да вклучува "${s.includes}"`:s.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${i.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${i.origin}`;default:return"Грешен внес"}}};function dgn(){return{localeError:ugn()}}var fgn=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(i){return t[i]??null}let n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"nombor"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input tidak sah: dijangka instanceof ${i.expected}, diterima ${o}`:`Input tidak sah: dijangka ${s}, diterima ${o}`}case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${sr(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`String tidak sah: mesti bermula dengan "${s.prefix}"`:s.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${s.suffix}"`:s.format==="includes"?`String tidak sah: mesti mengandungi "${s.includes}"`:s.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${s.pattern}`:`${n[s.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${$t(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function hgn(){return{localeError:fgn()}}var pgn=()=>{let t={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function e(i){return t[i]??null}let n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},r={nan:"NaN",number:"getal"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ongeldige invoer: verwacht instanceof ${i.expected}, ontving ${o}`:`Ongeldige invoer: verwacht ${s}, ontving ${o}`}case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${sr(i.values[0])}`:`Ongeldige optie: verwacht één van ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=i.origin==="date"?"laat":i.origin==="string"?"lang":"groot";return a?`Te ${o}: verwacht dat ${i.origin??"waarde"} ${s}${i.maximum.toString()} ${a.unit??"elementen"} ${a.verb}`:`Te ${o}: verwacht dat ${i.origin??"waarde"} ${s}${i.maximum.toString()} is`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=i.origin==="date"?"vroeg":i.origin==="string"?"kort":"klein";return a?`Te ${o}: verwacht dat ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ${a.verb}`:`Te ${o}: verwacht dat ${i.origin} ${s}${i.minimum.toString()} is`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ongeldige tekst: moet met "${s.prefix}" beginnen`:s.format==="ends_with"?`Ongeldige tekst: moet op "${s.suffix}" eindigen`:s.format==="includes"?`Ongeldige tekst: moet "${s.includes}" bevatten`:s.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${s.pattern}`:`Ongeldig: ${n[s.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function mgn(){return{localeError:pgn()}}var ggn=()=>{let t={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function e(i){return t[i]??null}let n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"tall",array:"liste"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ugyldig input: forventet instanceof ${i.expected}, fikk ${o}`:`Ugyldig input: forventet ${s}, fikk ${o}`}case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${sr(i.values[0])}`:`Ugyldig valg: forventet en av ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til å ha ${s}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til å ha ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`For lite(n): forventet ${i.origin} til å ha ${s}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til å ha ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ugyldig streng: må starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: må ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: må inneholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: må matche mønsteret ${s.pattern}`:`Ugyldig ${n[s.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function vgn(){return{localeError:ggn()}}var ygn=()=>{let t={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function e(i){return t[i]??null}let n={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"},r={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Fâsit giren: umulan instanceof ${i.expected}, alınan ${o}`:`Fâsit giren: umulan ${s}, alınan ${o}`}case"invalid_value":return i.values.length===1?`Fâsit giren: umulan ${sr(i.values[0])}`:`Fâsit tercih: mûteberler ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Fazla büyük: ${i.origin??"value"}, ${s}${i.maximum.toString()} ${a.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${i.origin??"value"}, ${s}${i.maximum.toString()} olmalıydı.`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Fazla küçük: ${i.origin}, ${s}${i.minimum.toString()} ${a.unit} sahip olmalıydı.`:`Fazla küçük: ${i.origin}, ${s}${i.minimum.toString()} olmalıydı.`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Fâsit metin: "${s.prefix}" ile başlamalı.`:s.format==="ends_with"?`Fâsit metin: "${s.suffix}" ile bitmeli.`:s.format==="includes"?`Fâsit metin: "${s.includes}" ihtivâ etmeli.`:s.format==="regex"?`Fâsit metin: ${s.pattern} nakşına uymalı.`:`Fâsit ${n[s.format]??i.format}`}case"not_multiple_of":return`Fâsit sayı: ${i.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${i.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function bgn(){return{localeError:ygn()}}var xgn=()=>{let t={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function e(i){return t[i]??null}let n={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"},r={nan:"NaN",number:"عدد",array:"ارې"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ناسم ورودي: باید instanceof ${i.expected} وای, مګر ${o} ترلاسه شو`:`ناسم ورودي: باید ${s} وای, مګر ${o} ترلاسه شو`}case"invalid_value":return i.values.length===1?`ناسم ورودي: باید ${sr(i.values[0])} وای`:`ناسم انتخاب: باید یو له ${$t(i.values,"|")} څخه وای`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ډیر لوی: ${i.origin??"ارزښت"} باید ${s}${i.maximum.toString()} ${a.unit??"عنصرونه"} ولري`:`ډیر لوی: ${i.origin??"ارزښت"} باید ${s}${i.maximum.toString()} وي`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`ډیر کوچنی: ${i.origin} باید ${s}${i.minimum.toString()} ${a.unit} ولري`:`ډیر کوچنی: ${i.origin} باید ${s}${i.minimum.toString()} وي`}case"invalid_format":{let s=i;return s.format==="starts_with"?`ناسم متن: باید د "${s.prefix}" سره پیل شي`:s.format==="ends_with"?`ناسم متن: باید د "${s.suffix}" سره پای ته ورسيږي`:s.format==="includes"?`ناسم متن: باید "${s.includes}" ولري`:s.format==="regex"?`ناسم متن: باید د ${s.pattern} سره مطابقت ولري`:`${n[s.format]??i.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${i.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${i.keys.length>1?"کلیډونه":"کلیډ"}: ${$t(i.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${i.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${i.origin} کې`;default:return"ناسمه ورودي"}}};function wgn(){return{localeError:xgn()}}var _gn=()=>{let t={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function e(i){return t[i]??null}let n={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"},r={nan:"NaN",number:"liczba",array:"tablica"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${i.expected}, otrzymano ${o}`:`Nieprawidłowe dane wejściowe: oczekiwano ${s}, otrzymano ${o}`}case"invalid_value":return i.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${sr(i.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Za duża wartość: oczekiwano, że ${i.origin??"wartość"} będzie mieć ${s}${i.maximum.toString()} ${a.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${i.origin??"wartość"} będzie wynosić ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Za mała wartość: oczekiwano, że ${i.origin??"wartość"} będzie mieć ${s}${i.minimum.toString()} ${a.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${i.origin??"wartość"} będzie wynosić ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${s.prefix}"`:s.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${s.suffix}"`:s.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${s.includes}"`:s.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${s.pattern}`:`Nieprawidłow(y/a/e) ${n[s.format]??i.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${i.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${i.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function kgn(){return{localeError:_gn()}}var Sgn=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(i){return t[i]??null}let n={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN",number:"número",null:"nulo"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Tipo inválido: esperado instanceof ${i.expected}, recebido ${o}`:`Tipo inválido: esperado ${s}, recebido ${o}`}case"invalid_value":return i.values.length===1?`Entrada inválida: esperado ${sr(i.values[0])}`:`Opção inválida: esperada uma das ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${s}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${s}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Texto inválido: deve começar com "${s.prefix}"`:s.format==="ends_with"?`Texto inválido: deve terminar com "${s.suffix}"`:s.format==="includes"?`Texto inválido: deve incluir "${s.includes}"`:s.format==="regex"?`Texto inválido: deve corresponder ao padrão ${s.pattern}`:`${n[s.format]??i.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Chave inválida em ${i.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${i.origin}`;default:return"Campo inválido"}}};function Cgn(){return{localeError:Sgn()}}function Mge(t,e,n,r){let i=Math.abs(t),s=i%10,a=i%100;return a>=11&&a<=19?r:s===1?e:s>=2&&s<=4?n:r}var Egn=()=>{let t={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function e(i){return t[i]??null}let n={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"},r={nan:"NaN",number:"число",array:"массив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Неверный ввод: ожидалось instanceof ${i.expected}, получено ${o}`:`Неверный ввод: ожидалось ${s}, получено ${o}`}case"invalid_value":return i.values.length===1?`Неверный ввод: ожидалось ${sr(i.values[0])}`:`Неверный вариант: ожидалось одно из ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Mge(o,a.unit.one,a.unit.few,a.unit.many);return`Слишком большое значение: ожидалось, что ${i.origin??"значение"} будет иметь ${s}${i.maximum.toString()} ${l}`}return`Слишком большое значение: ожидалось, что ${i.origin??"значение"} будет ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Mge(o,a.unit.one,a.unit.few,a.unit.many);return`Слишком маленькое значение: ожидалось, что ${i.origin} будет иметь ${s}${i.minimum.toString()} ${l}`}return`Слишком маленькое значение: ожидалось, что ${i.origin} будет ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неверная строка: должна начинаться с "${s.prefix}"`:s.format==="ends_with"?`Неверная строка: должна заканчиваться на "${s.suffix}"`:s.format==="includes"?`Неверная строка: должна содержать "${s.includes}"`:s.format==="regex"?`Неверная строка: должна соответствовать шаблону ${s.pattern}`:`Неверный ${n[s.format]??i.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${i.divisor}`;case"unrecognized_keys":return`Нераспознанн${i.keys.length>1?"ые":"ый"} ключ${i.keys.length>1?"и":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${i.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${i.origin}`;default:return"Неверные входные данные"}}};function $gn(){return{localeError:Egn()}}var Tgn=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(i){return t[i]??null}let n={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"},r={nan:"NaN",number:"število",array:"tabela"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Neveljaven vnos: pričakovano instanceof ${i.expected}, prejeto ${o}`:`Neveljaven vnos: pričakovano ${s}, prejeto ${o}`}case"invalid_value":return i.values.length===1?`Neveljaven vnos: pričakovano ${sr(i.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Preveliko: pričakovano, da bo ${i.origin??"vrednost"} imelo ${s}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${i.origin??"vrednost"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Premajhno: pričakovano, da bo ${i.origin} imelo ${s}${i.minimum.toString()} ${a.unit}`:`Premajhno: pričakovano, da bo ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Neveljaven niz: mora se začeti z "${s.prefix}"`:s.format==="ends_with"?`Neveljaven niz: mora se končati z "${s.suffix}"`:s.format==="includes"?`Neveljaven niz: mora vsebovati "${s.includes}"`:s.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${s.pattern}`:`Neveljaven ${n[s.format]??i.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i ključi":" ključ"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function Ign(){return{localeError:Tgn()}}var Agn=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function e(i){return t[i]??null}let n={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},r={nan:"NaN",number:"antal",array:"lista"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ogiltig inmatning: förväntat instanceof ${i.expected}, fick ${o}`:`Ogiltig inmatning: förväntat ${s}, fick ${o}`}case"invalid_value":return i.values.length===1?`Ogiltig inmatning: förväntat ${sr(i.values[0])}`:`Ogiltigt val: förväntade en av ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`För stor(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.maximum.toString()} ${a.unit??"element"}`:`För stor(t): förväntat ${i.origin??"värdet"} att ha ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`För lite(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.minimum.toString()} ${a.unit}`:`För lite(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ogiltig sträng: måste börja med "${s.prefix}"`:s.format==="ends_with"?`Ogiltig sträng: måste sluta med "${s.suffix}"`:s.format==="includes"?`Ogiltig sträng: måste innehålla "${s.includes}"`:s.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${s.pattern}"`:`Ogiltig(t) ${n[s.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${$t(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${i.origin??"värdet"}`;default:return"Ogiltig input"}}};function Ogn(){return{localeError:Agn()}}var Dgn=()=>{let t={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function e(i){return t[i]??null}let n={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${i.expected}, பெறப்பட்டது ${o}`:`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${s}, பெறப்பட்டது ${o}`}case"invalid_value":return i.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${sr(i.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${$t(i.values,"|")} இல் ஒன்று`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${i.origin??"மதிப்பு"} ${s}${i.maximum.toString()} ${a.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${i.origin??"மதிப்பு"} ${s}${i.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${i.origin} ${s}${i.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{let s=i;return s.format==="starts_with"?`தவறான சரம்: "${s.prefix}" இல் தொடங்க வேண்டும்`:s.format==="ends_with"?`தவறான சரம்: "${s.suffix}" இல் முடிவடைய வேண்டும்`:s.format==="includes"?`தவறான சரம்: "${s.includes}" ஐ உள்ளடக்க வேண்டும்`:s.format==="regex"?`தவறான சரம்: ${s.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${n[s.format]??i.format}`}case"not_multiple_of":return`தவறான எண்: ${i.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${i.keys.length>1?"கள்":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${i.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function Mgn(){return{localeError:Dgn()}}var Ngn=()=>{let t={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function e(i){return t[i]??null}let n={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"},r={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${i.expected} แต่ได้รับ ${o}`:`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${s} แต่ได้รับ ${o}`}case"invalid_value":return i.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${sr(i.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"ไม่เกิน":"น้อยกว่า",a=e(i.origin);return a?`เกินกำหนด: ${i.origin??"ค่า"} ควรมี${s} ${i.maximum.toString()} ${a.unit??"รายการ"}`:`เกินกำหนด: ${i.origin??"ค่า"} ควรมี${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"อย่างน้อย":"มากกว่า",a=e(i.origin);return a?`น้อยกว่ากำหนด: ${i.origin} ควรมี${s} ${i.minimum.toString()} ${a.unit}`:`น้อยกว่ากำหนด: ${i.origin} ควรมี${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${s.prefix}"`:s.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${s.suffix}"`:s.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${s.includes}" อยู่ในข้อความ`:s.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${s.pattern}`:`รูปแบบไม่ถูกต้อง: ${n[s.format]??i.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${i.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${$t(i.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${i.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${i.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function Rgn(){return{localeError:Ngn()}}var Lgn=()=>{let t={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function e(i){return t[i]??null}let n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Geçersiz değer: beklenen instanceof ${i.expected}, alınan ${o}`:`Geçersiz değer: beklenen ${s}, alınan ${o}`}case"invalid_value":return i.values.length===1?`Geçersiz değer: beklenen ${sr(i.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Çok büyük: beklenen ${i.origin??"değer"} ${s}${i.maximum.toString()} ${a.unit??"öğe"}`:`Çok büyük: beklenen ${i.origin??"değer"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Çok küçük: beklenen ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`Çok küçük: beklenen ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Geçersiz metin: "${s.prefix}" ile başlamalı`:s.format==="ends_with"?`Geçersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Geçersiz metin: "${s.includes}" içermeli`:s.format==="regex"?`Geçersiz metin: ${s.pattern} desenine uymalı`:`Geçersiz ${n[s.format]??i.format}`}case"not_multiple_of":return`Geçersiz sayı: ${i.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${i.keys.length>1?"lar":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${i.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Pgn(){return{localeError:Lgn()}}var jgn=()=>{let t={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function e(i){return t[i]??null}let n={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"},r={nan:"NaN",number:"число",array:"масив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Неправильні вхідні дані: очікується instanceof ${i.expected}, отримано ${o}`:`Неправильні вхідні дані: очікується ${s}, отримано ${o}`}case"invalid_value":return i.values.length===1?`Неправильні вхідні дані: очікується ${sr(i.values[0])}`:`Неправильна опція: очікується одне з ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Занадто велике: очікується, що ${i.origin??"значення"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"елементів"}`:`Занадто велике: очікується, що ${i.origin??"значення"} буде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Занадто мале: очікується, що ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Занадто мале: очікується, що ${i.origin} буде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неправильний рядок: повинен починатися з "${s.prefix}"`:s.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${s.suffix}"`:s.format==="includes"?`Неправильний рядок: повинен містити "${s.includes}"`:s.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${s.pattern}`:`Неправильний ${n[s.format]??i.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${i.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${i.keys.length>1?"і":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${i.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${i.origin}`;default:return"Неправильні вхідні дані"}}};function eje(){return{localeError:jgn()}}function zgn(){return eje()}var Fgn=()=>{let t={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function e(i){return t[i]??null}let n={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"},r={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`غلط ان پٹ: instanceof ${i.expected} متوقع تھا، ${o} موصول ہوا`:`غلط ان پٹ: ${s} متوقع تھا، ${o} موصول ہوا`}case"invalid_value":return i.values.length===1?`غلط ان پٹ: ${sr(i.values[0])} متوقع تھا`:`غلط آپشن: ${$t(i.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`بہت بڑا: ${i.origin??"ویلیو"} کے ${s}${i.maximum.toString()} ${a.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${i.origin??"ویلیو"} کا ${s}${i.maximum.toString()} ہونا متوقع تھا`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`بہت چھوٹا: ${i.origin} کے ${s}${i.minimum.toString()} ${a.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${i.origin} کا ${s}${i.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{let s=i;return s.format==="starts_with"?`غلط سٹرنگ: "${s.prefix}" سے شروع ہونا چاہیے`:s.format==="ends_with"?`غلط سٹرنگ: "${s.suffix}" پر ختم ہونا چاہیے`:s.format==="includes"?`غلط سٹرنگ: "${s.includes}" شامل ہونا چاہیے`:s.format==="regex"?`غلط سٹرنگ: پیٹرن ${s.pattern} سے میچ ہونا چاہیے`:`غلط ${n[s.format]??i.format}`}case"not_multiple_of":return`غلط نمبر: ${i.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${i.keys.length>1?"ز":""}: ${$t(i.keys,"، ")}`;case"invalid_key":return`${i.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${i.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function Bgn(){return{localeError:Fgn()}}var Ugn=()=>{let t={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"}};function e(i){return t[i]??null}let n={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},r={nan:"NaN",number:"raqam",array:"massiv"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Noto‘g‘ri kirish: kutilgan instanceof ${i.expected}, qabul qilingan ${o}`:`Noto‘g‘ri kirish: kutilgan ${s}, qabul qilingan ${o}`}case"invalid_value":return i.values.length===1?`Noto‘g‘ri kirish: kutilgan ${sr(i.values[0])}`:`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Juda katta: kutilgan ${i.origin??"qiymat"} ${s}${i.maximum.toString()} ${a.unit} ${a.verb}`:`Juda katta: kutilgan ${i.origin??"qiymat"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Juda kichik: kutilgan ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ${a.verb}`:`Juda kichik: kutilgan ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Noto‘g‘ri satr: "${s.prefix}" bilan boshlanishi kerak`:s.format==="ends_with"?`Noto‘g‘ri satr: "${s.suffix}" bilan tugashi kerak`:s.format==="includes"?`Noto‘g‘ri satr: "${s.includes}" ni o‘z ichiga olishi kerak`:s.format==="regex"?`Noto‘g‘ri satr: ${s.pattern} shabloniga mos kelishi kerak`:`Noto‘g‘ri ${n[s.format]??i.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${i.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${i.keys.length>1?"lar":""}: ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${i.origin} da noto‘g‘ri qiymat`;default:return"Noto‘g‘ri kirish"}}};function qgn(){return{localeError:Ugn()}}var Hgn=()=>{let t={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function e(i){return t[i]??null}let n={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"},r={nan:"NaN",number:"số",array:"mảng"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Đầu vào không hợp lệ: mong đợi instanceof ${i.expected}, nhận được ${o}`:`Đầu vào không hợp lệ: mong đợi ${s}, nhận được ${o}`}case"invalid_value":return i.values.length===1?`Đầu vào không hợp lệ: mong đợi ${sr(i.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Quá lớn: mong đợi ${i.origin??"giá trị"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"phần tử"}`:`Quá lớn: mong đợi ${i.origin??"giá trị"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Quá nhỏ: mong đợi ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Quá nhỏ: mong đợi ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${s.prefix}"`:s.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${s.suffix}"`:s.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${s.includes}"`:s.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${s.pattern}`:`${n[s.format]??i.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${i.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${$t(i.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${i.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${i.origin}`;default:return"Đầu vào không hợp lệ"}}};function Wgn(){return{localeError:Hgn()}}var Vgn=()=>{let t={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function e(i){return t[i]??null}let n={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"},r={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`无效输入:期望 instanceof ${i.expected},实际接收 ${o}`:`无效输入:期望 ${s},实际接收 ${o}`}case"invalid_value":return i.values.length===1?`无效输入:期望 ${sr(i.values[0])}`:`无效选项:期望以下之一 ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`数值过大:期望 ${i.origin??"值"} ${s}${i.maximum.toString()} ${a.unit??"个元素"}`:`数值过大:期望 ${i.origin??"值"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`数值过小:期望 ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`数值过小:期望 ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`无效字符串:必须以 "${s.prefix}" 开头`:s.format==="ends_with"?`无效字符串:必须以 "${s.suffix}" 结尾`:s.format==="includes"?`无效字符串:必须包含 "${s.includes}"`:s.format==="regex"?`无效字符串:必须满足正则表达式 ${s.pattern}`:`无效${n[s.format]??i.format}`}case"not_multiple_of":return`无效数字:必须是 ${i.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${$t(i.keys,", ")}`;case"invalid_key":return`${i.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${i.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Zgn(){return{localeError:Vgn()}}var Ggn=()=>{let t={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function e(i){return t[i]??null}let n={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`無效的輸入值:預期為 instanceof ${i.expected},但收到 ${o}`:`無效的輸入值:預期為 ${s},但收到 ${o}`}case"invalid_value":return i.values.length===1?`無效的輸入值:預期為 ${sr(i.values[0])}`:`無效的選項:預期為以下其中之一 ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`數值過大:預期 ${i.origin??"值"} 應為 ${s}${i.maximum.toString()} ${a.unit??"個元素"}`:`數值過大:預期 ${i.origin??"值"} 應為 ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`數值過小:預期 ${i.origin} 應為 ${s}${i.minimum.toString()} ${a.unit}`:`數值過小:預期 ${i.origin} 應為 ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`無效的字串:必須以 "${s.prefix}" 開頭`:s.format==="ends_with"?`無效的字串:必須以 "${s.suffix}" 結尾`:s.format==="includes"?`無效的字串:必須包含 "${s.includes}"`:s.format==="regex"?`無效的字串:必須符合格式 ${s.pattern}`:`無效的 ${n[s.format]??i.format}`}case"not_multiple_of":return`無效的數字:必須為 ${i.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${i.keys.length>1?"們":""}:${$t(i.keys,"、")}`;case"invalid_key":return`${i.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${i.origin} 中有無效的值`;default:return"無效的輸入值"}}};function Kgn(){return{localeError:Ggn()}}var Ygn=()=>{let t={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function e(i){return t[i]??null}let n={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"},r={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=hr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${i.expected}, àmọ̀ a rí ${o}`:`Ìbáwọlé aṣìṣe: a ní láti fi ${s}, àmọ̀ a rí ${o}`}case"invalid_value":return i.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${sr(i.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${$t(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Tó pọ̀ jù: a ní láti jẹ́ pé ${i.origin??"iye"} ${a.verb} ${s}${i.maximum} ${a.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${s}${i.maximum}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Kéré ju: a ní láti jẹ́ pé ${i.origin} ${a.verb} ${s}${i.minimum} ${a.unit}`:`Kéré ju: a ní láti jẹ́ ${s}${i.minimum}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${s.prefix}"`:s.format==="ends_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${s.suffix}"`:s.format==="includes"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${s.includes}"`:s.format==="regex"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${s.pattern}`:`Aṣìṣe: ${n[s.format]??i.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${i.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${$t(i.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${i.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${i.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function Jgn(){return{localeError:Ygn()}}var Nge,tje=Symbol("ZodOutput"),nje=Symbol("ZodInput");let rje=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...n){let r=n[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let n=this._map.get(e);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(e),this}get(e){let n=e._zod.parent;if(n){let r={...this.get(n)??{}};delete r.id;let i={...r,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function $X(){return new rje}(Nge=globalThis).__zod_globalRegistry??(Nge.__zod_globalRegistry=$X());var Eu=globalThis.__zod_globalRegistry;function ije(t,e){return new t({type:"string",...Dt(e)})}function sje(t,e){return new t({type:"string",coerce:!0,...Dt(e)})}function TX(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Dt(e)})}function GE(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(e)})}function IX(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(e)})}function AX(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(e)})}function OX(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(e)})}function DX(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(e)})}function qI(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Dt(e)})}function MX(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(e)})}function NX(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(e)})}function RX(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(e)})}function LX(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(e)})}function PX(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(e)})}function jX(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(e)})}function zX(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(e)})}function FX(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(e)})}function BX(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(e)})}function aje(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Dt(e)})}function UX(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(e)})}function qX(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(e)})}function HX(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(e)})}function WX(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(e)})}function VX(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(e)})}function ZX(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(e)})}var oje={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function lje(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(e)})}function cje(t,e){return new t({type:"string",format:"date",check:"string_format",...Dt(e)})}function uje(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...Dt(e)})}function dje(t,e){return new t({type:"string",format:"duration",check:"string_format",...Dt(e)})}function fje(t,e){return new t({type:"number",checks:[],...Dt(e)})}function hje(t,e){return new t({type:"number",coerce:!0,checks:[],...Dt(e)})}function pje(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(e)})}function mje(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Dt(e)})}function gje(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Dt(e)})}function vje(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Dt(e)})}function yje(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Dt(e)})}function bje(t,e){return new t({type:"boolean",...Dt(e)})}function xje(t,e){return new t({type:"boolean",coerce:!0,...Dt(e)})}function wje(t,e){return new t({type:"bigint",...Dt(e)})}function _je(t,e){return new t({type:"bigint",coerce:!0,...Dt(e)})}function kje(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Dt(e)})}function Sje(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Dt(e)})}function Cje(t,e){return new t({type:"symbol",...Dt(e)})}function Eje(t,e){return new t({type:"undefined",...Dt(e)})}function $je(t,e){return new t({type:"null",...Dt(e)})}function Tje(t){return new t({type:"any"})}function Ije(t){return new t({type:"unknown"})}function Aje(t,e){return new t({type:"never",...Dt(e)})}function Oje(t,e){return new t({type:"void",...Dt(e)})}function Dje(t,e){return new t({type:"date",...Dt(e)})}function Mje(t,e){return new t({type:"date",coerce:!0,...Dt(e)})}function Nje(t,e){return new t({type:"nan",...Dt(e)})}function hm(t,e){return new vX({check:"less_than",...Dt(e),value:t,inclusive:!1})}function ju(t,e){return new vX({check:"less_than",...Dt(e),value:t,inclusive:!0})}function pm(t,e){return new yX({check:"greater_than",...Dt(e),value:t,inclusive:!1})}function Jl(t,e){return new yX({check:"greater_than",...Dt(e),value:t,inclusive:!0})}function GX(t){return pm(0,t)}function KX(t){return hm(0,t)}function YX(t){return ju(0,t)}function JX(t){return Jl(0,t)}function db(t,e){return new bLe({check:"multiple_of",...Dt(e),value:t})}function w5(t,e){return new _Le({check:"max_size",...Dt(e),maximum:t})}function mm(t,e){return new kLe({check:"min_size",...Dt(e),minimum:t})}function F_(t,e){return new SLe({check:"size_equals",...Dt(e),size:t})}function B_(t,e){return new CLe({check:"max_length",...Dt(e),maximum:t})}function Hg(t,e){return new ELe({check:"min_length",...Dt(e),minimum:t})}function U_(t,e){return new $Le({check:"length_equals",...Dt(e),length:t})}function HI(t,e){return new TLe({check:"string_format",format:"regex",...Dt(e),pattern:t})}function WI(t){return new ILe({check:"string_format",format:"lowercase",...Dt(t)})}function VI(t){return new ALe({check:"string_format",format:"uppercase",...Dt(t)})}function ZI(t,e){return new OLe({check:"string_format",format:"includes",...Dt(e),includes:t})}function GI(t,e){return new DLe({check:"string_format",format:"starts_with",...Dt(e),prefix:t})}function KI(t,e){return new MLe({check:"string_format",format:"ends_with",...Dt(e),suffix:t})}function XX(t,e,n){return new NLe({check:"property",property:t,schema:e,...Dt(n)})}function YI(t,e){return new RLe({check:"mime_type",mime:t,...Dt(e)})}function Rp(t){return new LLe({check:"overwrite",tx:t})}function JI(t){return Rp(e=>e.normalize(t))}function XI(){return Rp(t=>t.trim())}function QI(){return Rp(t=>t.toLowerCase())}function eA(){return Rp(t=>t.toUpperCase())}function tA(){return Rp(t=>ERe(t))}function Rje(t,e,n){return new t({type:"array",element:e,...Dt(n)})}function Xgn(t,e,n){return new t({type:"union",options:e,...Dt(n)})}function Qgn(t,e,n){return new t({type:"union",options:e,inclusive:!1,...Dt(n)})}function e2n(t,e,n,r){return new t({type:"union",options:n,discriminator:e,...Dt(r)})}function t2n(t,e,n){return new t({type:"intersection",left:e,right:n})}function n2n(t,e,n,r){let i=n instanceof _r;return new t({type:"tuple",items:e,rest:i?n:null,...Dt(i?r:n)})}function r2n(t,e,n,r){return new t({type:"record",keyType:e,valueType:n,...Dt(r)})}function i2n(t,e,n,r){return new t({type:"map",keyType:e,valueType:n,...Dt(r)})}function s2n(t,e,n){return new t({type:"set",valueType:e,...Dt(n)})}function a2n(t,e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(i=>[i,i])):e;return new t({type:"enum",entries:r,...Dt(n)})}function o2n(t,e,n){return new t({type:"enum",entries:e,...Dt(n)})}function l2n(t,e,n){return new t({type:"literal",values:Array.isArray(e)?e:[e],...Dt(n)})}function Lje(t,e){return new t({type:"file",...Dt(e)})}function c2n(t,e){return new t({type:"transform",transform:e})}function u2n(t,e){return new t({type:"optional",innerType:e})}function d2n(t,e){return new t({type:"nullable",innerType:e})}function f2n(t,e,n){return new t({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():TRe(n)}})}function h2n(t,e,n){return new t({type:"nonoptional",innerType:e,...Dt(n)})}function p2n(t,e){return new t({type:"success",innerType:e})}function m2n(t,e,n){return new t({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}function g2n(t,e,n){return new t({type:"pipe",in:e,out:n})}function v2n(t,e){return new t({type:"readonly",innerType:e})}function y2n(t,e,n){return new t({type:"template_literal",parts:e,...Dt(n)})}function b2n(t,e){return new t({type:"lazy",getter:e})}function x2n(t,e){return new t({type:"promise",innerType:e})}function Pje(t,e,n){let r=Dt(n);return r.abort??(r.abort=!0),new t({type:"custom",check:"custom",fn:e,...r})}function jje(t,e,n){return new t({type:"custom",check:"custom",fn:e,...Dt(n)})}function zje(t){let e=Fje(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(VE(r,n.value,e._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),n.issues.push(VE(i))}},t(n.value,n)));return e}function Fje(t,e){let n=new Ts({check:"custom",...Dt(e)});return n._zod.check=t,n}function Bje(t){let e=new Ts({check:"describe"});return e._zod.onattach=[n=>{let r=Eu.get(n)??{};Eu.add(n,{...r,description:t})}],e._zod.check=()=>{},e}function Uje(t){let e=new Ts({check:"meta"});return e._zod.onattach=[n=>{let r=Eu.get(n)??{};Eu.add(n,{...r,...t})}],e._zod.check=()=>{},e}function qje(t,e){let n=Dt(e),r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(f=>typeof f=="string"?f.toLowerCase():f),i=i.map(f=>typeof f=="string"?f.toLowerCase():f));let s=new Set(r),a=new Set(i),o=t.Codec??CX,l=t.Boolean??wX,c=new(t.String??z_)({type:"string",error:n.error}),u=new l({type:"boolean",error:n.error}),d=new o({type:"pipe",in:c,out:u,transform:(f,h)=>{let m=f;return n.case!=="sensitive"&&(m=m.toLowerCase()),s.has(m)?!0:a.has(m)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...a],input:h.value,inst:d,continue:!1}),{})},reverseTransform:(f,h)=>f===!0?r[0]||"true":i[0]||"false",error:n.error});return d}function q_(t,e,n,r={}){let i=Dt(r),s={...Dt(r),check:"string_format",type:"string",format:e,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(s.pattern=n),new t(s)}function fb(t){let e=(t==null?void 0:t.target)??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:(t==null?void 0:t.metadata)??Eu,target:e,unrepresentable:(t==null?void 0:t.unrepresentable)??"throw",override:(t==null?void 0:t.override)??(()=>{}),io:(t==null?void 0:t.io)??"output",counter:0,seen:new Map,cycles:(t==null?void 0:t.cycles)??"ref",reused:(t==null?void 0:t.reused)??"inline",external:(t==null?void 0:t.external)??void 0}}function Vi(t,e,n={path:[],schemaPath:[]}){var c,u;var r;let i=t._zod.def,s=e.seen.get(t);if(s)return s.count++,n.schemaPath.includes(t)&&(s.cycle=n.path),s.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};e.seen.set(t,a);let o=(u=(c=t._zod).toJSONSchema)==null?void 0:u.call(c);if(o)a.schema=o;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,a.schema,d);else{let h=a.schema,m=e.processors[i.type];if(!m)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);m(t,e,h,d)}let f=t._zod.parent;f&&(a.ref||(a.ref=f),Vi(f,e,d),e.seen.get(f).isParent=!0)}let l=e.metadataRegistry.get(t);return l&&Object.assign(a.schema,l),e.io==="input"&&al(t)&&(delete a.schema.examples,delete a.schema.default),e.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,e.seen.get(t).schema}function hb(t,e){var a,o,l,c;let n=t.seen.get(e);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=new Map;for(let u of t.seen.entries()){let d=(a=t.metadataRegistry.get(u[0]))==null?void 0:a.id;if(d){let f=r.get(d);if(f&&f!==u[0])throw Error(`Duplicate schema id "${d}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(d,u[0])}}let i=u=>{var m;let d=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let p=(m=t.external.registry.get(u[0]))==null?void 0:m.id,v=t.external.uri??(w=>w);if(p)return{ref:v(p)};let x=u[1].defId??u[1].schema.id??`schema${t.counter++}`;return u[1].defId=x,{defId:x,ref:`${v("__shared")}#/${d}/${x}`}}if(u[1]===n)return{ref:"#"};let f=`#/${d}/`,h=u[1].schema.id??`__schema${t.counter++}`;return{defId:h,ref:f+h}},s=u=>{if(u[1].schema.$ref)return;let d=u[1],{ref:f,defId:h}=i(u);d.def={...d.schema},h&&(d.defId=h);let m=d.schema;for(let p in m)delete m[p];m.$ref=f};if(t.cycles==="throw")for(let u of t.seen.entries()){let d=u[1];if(d.cycle)throw Error(`Cycle detected: #/${(o=d.cycle)==null?void 0:o.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of t.seen.entries()){let d=u[1];if(e===u[0]){s(u);continue}if(t.external){let f=(l=t.external.registry.get(u[0]))==null?void 0:l.id;if(e!==u[0]&&f){s(u);continue}}if((c=t.metadataRegistry.get(u[0]))!=null&&c.id){s(u);continue}if(d.cycle){s(u);continue}if(d.count>1&&t.reused==="ref"){s(u);continue}}}function pb(t,e){var a,o,l;let n=t.seen.get(e);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=c=>{let u=t.seen.get(c);if(u.ref===null)return;let d=u.def??u.schema,f={...d},h=u.ref;if(u.ref=null,h){r(h);let p=t.seen.get(h),v=p.schema;if(v.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(v)):Object.assign(d,v),Object.assign(d,f),c._zod.parent===h)for(let x in d)x==="$ref"||x==="allOf"||x in f||delete d[x];if(v.$ref)for(let x in d)x==="$ref"||x==="allOf"||x in p.def&&JSON.stringify(d[x])===JSON.stringify(p.def[x])&&delete d[x]}let m=c._zod.parent;if(m&&m!==h){r(m);let p=t.seen.get(m);if(p!=null&&p.schema.$ref&&(d.$ref=p.schema.$ref,p.def))for(let v in d)v==="$ref"||v==="allOf"||v in p.def&&JSON.stringify(d[v])===JSON.stringify(p.def[v])&&delete d[v]}t.override({zodSchema:c,jsonSchema:d,path:u.path??[]})};for(let c of[...t.seen.entries()].reverse())r(c[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,(a=t.external)!=null&&a.uri){let c=(o=t.external.registry.get(e))==null?void 0:o.id;if(!c)throw Error("Schema is missing an `id` property");i.$id=t.external.uri(c)}Object.assign(i,n.def??n.schema);let s=((l=t.external)==null?void 0:l.defs)??{};for(let c of t.seen.entries()){let u=c[1];u.def&&u.defId&&(s[u.defId]=u.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{let c=JSON.parse(JSON.stringify(i));return Object.defineProperty(c,"~standard",{value:{...e["~standard"],jsonSchema:{input:Bw(e,"input",t.processors),output:Bw(e,"output",t.processors)}},enumerable:!1,writable:!1}),c}catch{throw Error("Error converting schema to JSON.")}}function al(t,e){let n=e??{seen:new Set};if(n.seen.has(t))return!1;n.seen.add(t);let r=t._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return al(r.element,n);if(r.type==="set")return al(r.valueType,n);if(r.type==="lazy")return al(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return al(r.innerType,n);if(r.type==="intersection")return al(r.left,n)||al(r.right,n);if(r.type==="record"||r.type==="map")return al(r.keyType,n)||al(r.valueType,n);if(r.type==="pipe")return al(r.in,n)||al(r.out,n);if(r.type==="object"){for(let i in r.shape)if(al(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(let i of r.options)if(al(i,n))return!0;return!1}if(r.type==="tuple"){for(let i of r.items)if(al(i,n))return!0;return!!(r.rest&&al(r.rest,n))}return!1}var Hje=(t,e={})=>n=>{let r=fb({...n,processors:e});return Vi(t,r),hb(r,t),pb(r,t)},Bw=(t,e,n={})=>r=>{let{libraryOptions:i,target:s}=r??{},a=fb({...i??{},target:s,io:e,processors:n});return Vi(t,a),hb(a,t),pb(a,t)},w2n={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Wje=(t,e,n,r)=>{let i=n;i.type="string";let{minimum:s,maximum:a,format:o,patterns:l,contentEncoding:c}=t._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof a=="number"&&(i.maxLength=a),o&&(i.format=w2n[o]??o,i.format===""&&delete i.format,o==="time"&&delete i.format),c&&(i.contentEncoding=c),l&&l.size>0){let u=[...l];u.length===1?i.pattern=u[0].source:u.length>1&&(i.allOf=[...u.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Vje=(t,e,n,r)=>{let i=n,{minimum:s,maximum:a,format:o,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:u}=t._zod.bag;typeof o=="string"&&o.includes("int")?i.type="integer":i.type="number",typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof s=="number"&&(i.minimum=s,typeof u=="number"&&e.target!=="draft-04"&&(u>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof c=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c),typeof a=="number"&&(i.maximum=a,typeof c=="number"&&e.target!=="draft-04"&&(c<=a?delete i.maximum:delete i.exclusiveMaximum)),typeof l=="number"&&(i.multipleOf=l)},Zje=(t,e,n,r)=>{n.type="boolean"},Gje=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},Kje=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},Yje=(t,e,n,r)=>{e.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},Jje=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},Xje=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},Qje=(t,e,n,r)=>{n.not={}},eze=(t,e,n,r)=>{},tze=(t,e,n,r)=>{},nze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},rze=(t,e,n,r)=>{let i=t._zod.def,s=nX(i.entries);s.every(a=>typeof a=="number")&&(n.type="number"),s.every(a=>typeof a=="string")&&(n.type="string"),n.enum=s},ize=(t,e,n,r)=>{let i=t._zod.def,s=[];for(let a of i.values)if(a===void 0){if(e.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(e.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(a))}else s.push(a);if(s.length!==0)if(s.length===1){let a=s[0];n.type=a===null?"null":typeof a,e.target==="draft-04"||e.target==="openapi-3.0"?n.enum=[a]:n.const=a}else s.every(a=>typeof a=="number")&&(n.type="number"),s.every(a=>typeof a=="string")&&(n.type="string"),s.every(a=>typeof a=="boolean")&&(n.type="boolean"),s.every(a=>a===null)&&(n.type="null"),n.enum=s},sze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},aze=(t,e,n,r)=>{let i=n,s=t._zod.pattern;if(!s)throw Error("Pattern not found in template literal");i.type="string",i.pattern=s.source},oze=(t,e,n,r)=>{let i=n,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:o,mime:l}=t._zod.bag;a!==void 0&&(s.minLength=a),o!==void 0&&(s.maxLength=o),l?l.length===1?(s.contentMediaType=l[0],Object.assign(i,s)):(Object.assign(i,s),i.anyOf=l.map(c=>({contentMediaType:c}))):Object.assign(i,s)},lze=(t,e,n,r)=>{n.type="boolean"},cze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},uze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},dze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},fze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},hze=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},pze=(t,e,n,r)=>{let i=n,s=t._zod.def,{minimum:a,maximum:o}=t._zod.bag;typeof a=="number"&&(i.minItems=a),typeof o=="number"&&(i.maxItems=o),i.type="array",i.items=Vi(s.element,e,{...r,path:[...r.path,"items"]})},mze=(t,e,n,r)=>{var c;let i=n,s=t._zod.def;i.type="object",i.properties={};let a=s.shape;for(let u in a)i.properties[u]=Vi(a[u],e,{...r,path:[...r.path,"properties",u]});let o=new Set(Object.keys(a)),l=new Set([...o].filter(u=>{let d=s.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));l.size>0&&(i.required=Array.from(l)),((c=s.catchall)==null?void 0:c._zod.def.type)==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=Vi(s.catchall,e,{...r,path:[...r.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},QX=(t,e,n,r)=>{let i=t._zod.def,s=i.inclusive===!1,a=i.options.map((o,l)=>Vi(o,e,{...r,path:[...r.path,s?"oneOf":"anyOf",l]}));s?n.oneOf=a:n.anyOf=a},gze=(t,e,n,r)=>{let i=t._zod.def,s=Vi(i.left,e,{...r,path:[...r.path,"allOf",0]}),a=Vi(i.right,e,{...r,path:[...r.path,"allOf",1]}),o=c=>"allOf"in c&&Object.keys(c).length===1,l=[...o(s)?s.allOf:[s],...o(a)?a.allOf:[a]];n.allOf=l},vze=(t,e,n,r)=>{let i=n,s=t._zod.def;i.type="array";let a=e.target==="draft-2020-12"?"prefixItems":"items",o=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",l=s.items.map((f,h)=>Vi(f,e,{...r,path:[...r.path,a,h]})),c=s.rest?Vi(s.rest,e,{...r,path:[...r.path,o,...e.target==="openapi-3.0"?[s.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=l,c&&(i.items=c)):e.target==="openapi-3.0"?(i.items={anyOf:l},c&&i.items.anyOf.push(c),i.minItems=l.length,!c&&(i.maxItems=l.length)):(i.items=l,c&&(i.additionalItems=c));let{minimum:u,maximum:d}=t._zod.bag;typeof u=="number"&&(i.minItems=u),typeof d=="number"&&(i.maxItems=d)},yze=(t,e,n,r)=>{var c;let i=n,s=t._zod.def;i.type="object";let a=s.keyType,o=(c=a._zod.bag)==null?void 0:c.patterns;if(s.mode==="loose"&&o&&o.size>0){let u=Vi(s.valueType,e,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(let d of o)i.patternProperties[d.source]=u}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=Vi(s.keyType,e,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=Vi(s.valueType,e,{...r,path:[...r.path,"additionalProperties"]});let l=a._zod.values;if(l){let u=[...l].filter(d=>typeof d=="string"||typeof d=="number");u.length>0&&(i.required=u)}},bze=(t,e,n,r)=>{let i=t._zod.def,s=Vi(i.innerType,e,r),a=e.seen.get(t);e.target==="openapi-3.0"?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},xze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},wze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},_ze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,e.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},kze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType;let a;try{a=i.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}n.default=a},Sze=(t,e,n,r)=>{let i=t._zod.def,s=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;Vi(s,e,r);let a=e.seen.get(t);a.ref=s},Cze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,n.readOnly=!0},Eze=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},eQ=(t,e,n,r)=>{let i=t._zod.def;Vi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},$ze=(t,e,n,r)=>{let i=t._zod.innerType;Vi(i,e,r);let s=e.seen.get(t);s.ref=i},kV={string:Wje,number:Vje,boolean:Zje,bigint:Gje,symbol:Kje,null:Yje,undefined:Jje,void:Xje,never:Qje,any:eze,unknown:tze,date:nze,enum:rze,literal:ize,nan:sze,template_literal:aze,file:oze,success:lze,custom:cze,function:uze,transform:dze,map:fze,set:hze,array:pze,object:mze,union:QX,intersection:gze,tuple:vze,record:yze,nullable:bze,nonoptional:xze,default:wze,prefault:_ze,catch:kze,pipe:Sze,readonly:Cze,promise:Eze,optional:eQ,lazy:$ze};function Tze(t,e){if("_idmap"in t){let r=t,i=fb({...e,processors:kV}),s={};for(let l of r._idmap.entries()){let[c,u]=l;Vi(u,i)}let a={},o={registry:r,uri:e==null?void 0:e.uri,defs:s};i.external=o;for(let l of r._idmap.entries()){let[c,u]=l;hb(i,u),a[c]=pb(i,u)}if(Object.keys(s).length>0){let l=i.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[l]:s}}return{schemas:a}}let n=fb({...e,processors:kV});return Vi(t,n),hb(n,t),pb(n,t)}let _2n=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(e){this.ctx.counter=e}get seen(){return this.ctx.seen}constructor(e){let n=(e==null?void 0:e.target)??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=fb({processors:kV,target:n,...(e==null?void 0:e.metadata)&&{metadata:e.metadata},...(e==null?void 0:e.unrepresentable)&&{unrepresentable:e.unrepresentable},...(e==null?void 0:e.override)&&{override:e.override},...(e==null?void 0:e.io)&&{io:e.io}})}process(e,n={path:[],schemaPath:[]}){return Vi(e,this.ctx,n)}emit(e,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),hb(this.ctx,e);let r=pb(this.ctx,e),{"~standard":i,...s}=r;return s}};var k2n={},Ize={};Mp(Ize,{xor:()=>jFe,xid:()=>oFe,void:()=>DFe,uuidv7:()=>Qze,uuidv6:()=>Xze,uuidv4:()=>Jze,uuid:()=>Yze,url:()=>eFe,unknown:()=>Wg,union:()=>_A,undefined:()=>AFe,ulid:()=>aFe,uint64:()=>TFe,uint32:()=>CFe,tuple:()=>kQ,transform:()=>SA,templateLiteral:()=>JFe,symbol:()=>IFe,superRefine:()=>YQ,success:()=>GFe,stringbool:()=>iBe,stringFormat:()=>yFe,string:()=>KE,strictObject:()=>LFe,set:()=>qFe,refine:()=>KQ,record:()=>SQ,readonly:()=>qQ,promise:()=>XFe,preprocess:()=>aBe,prefault:()=>LQ,pipe:()=>Ww,partialRecord:()=>FFe,optional:()=>qw,object:()=>RFe,number:()=>oQ,nullish:()=>ZFe,nullable:()=>Hw,null:()=>fQ,nonoptional:()=>PQ,never:()=>xA,nativeEnum:()=>HFe,nanoid:()=>rFe,nan:()=>KFe,meta:()=>nBe,map:()=>UFe,mac:()=>uFe,looseRecord:()=>BFe,looseObject:()=>PFe,literal:()=>WFe,lazy:()=>VQ,ksuid:()=>lFe,keyof:()=>NFe,jwt:()=>vFe,json:()=>sBe,ipv6:()=>dFe,ipv4:()=>cFe,intersection:()=>wQ,int64:()=>$Fe,int32:()=>SFe,int:()=>YE,instanceof:()=>rBe,httpUrl:()=>tFe,hostname:()=>bFe,hex:()=>xFe,hash:()=>wFe,guid:()=>Kze,function:()=>JE,float64:()=>kFe,float32:()=>_Fe,file:()=>VFe,exactOptional:()=>OQ,enum:()=>kA,emoji:()=>nFe,email:()=>Gze,e164:()=>gFe,discriminatedUnion:()=>zFe,describe:()=>tBe,date:()=>MFe,custom:()=>eBe,cuid2:()=>sFe,cuid:()=>iFe,codec:()=>YFe,cidrv6:()=>hFe,cidrv4:()=>fFe,check:()=>QFe,catch:()=>FQ,boolean:()=>lQ,bigint:()=>EFe,base64url:()=>mFe,base64:()=>pFe,array:()=>K_,any:()=>OFe,_function:()=>JE,_default:()=>NQ,_ZodString:()=>nA,ZodXor:()=>yQ,ZodXID:()=>cA,ZodVoid:()=>gQ,ZodUnknown:()=>pQ,ZodUnion:()=>J_,ZodUndefined:()=>uQ,ZodUUID:()=>kf,ZodURL:()=>W_,ZodULID:()=>lA,ZodType:()=>Ir,ZodTuple:()=>_Q,ZodTransform:()=>IQ,ZodTemplateLiteral:()=>HQ,ZodSymbol:()=>cQ,ZodSuccess:()=>jQ,ZodStringFormat:()=>Xi,ZodString:()=>H_,ZodSet:()=>EQ,ZodRecord:()=>X_,ZodReadonly:()=>UQ,ZodPromise:()=>ZQ,ZodPrefault:()=>RQ,ZodPipe:()=>$A,ZodOptional:()=>CA,ZodObject:()=>Y_,ZodNumberFormat:()=>S2,ZodNumber:()=>V_,ZodNullable:()=>DQ,ZodNull:()=>dQ,ZodNonOptional:()=>EA,ZodNever:()=>mQ,ZodNanoID:()=>sA,ZodNaN:()=>BQ,ZodMap:()=>CQ,ZodMAC:()=>aQ,ZodLiteral:()=>$Q,ZodLazy:()=>WQ,ZodKSUID:()=>uA,ZodJWT:()=>yA,ZodIntersection:()=>xQ,ZodIPv6:()=>fA,ZodIPv4:()=>dA,ZodGUID:()=>Uw,ZodFunction:()=>GQ,ZodFile:()=>TQ,ZodExactOptional:()=>AQ,ZodEnum:()=>mb,ZodEmoji:()=>iA,ZodEmail:()=>rA,ZodE164:()=>vA,ZodDiscriminatedUnion:()=>bQ,ZodDefault:()=>MQ,ZodDate:()=>wA,ZodCustomStringFormat:()=>_5,ZodCustom:()=>Q_,ZodCodec:()=>TA,ZodCatch:()=>zQ,ZodCUID2:()=>oA,ZodCUID:()=>aA,ZodCIDRv6:()=>pA,ZodCIDRv4:()=>hA,ZodBoolean:()=>Z_,ZodBigIntFormat:()=>bA,ZodBigInt:()=>G_,ZodBase64URL:()=>gA,ZodBase64:()=>mA,ZodArray:()=>vQ,ZodAny:()=>hQ});var Aze={};Mp(Aze,{uppercase:()=>VI,trim:()=>XI,toUpperCase:()=>eA,toLowerCase:()=>QI,startsWith:()=>GI,slugify:()=>tA,size:()=>F_,regex:()=>HI,property:()=>XX,positive:()=>GX,overwrite:()=>Rp,normalize:()=>JI,nonpositive:()=>YX,nonnegative:()=>JX,negative:()=>KX,multipleOf:()=>db,minSize:()=>mm,minLength:()=>Hg,mime:()=>YI,maxSize:()=>w5,maxLength:()=>B_,lte:()=>ju,lt:()=>hm,lowercase:()=>WI,length:()=>U_,includes:()=>ZI,gte:()=>Jl,gt:()=>pm,endsWith:()=>KI});var tQ={};Mp(tQ,{time:()=>Mze,duration:()=>Nze,datetime:()=>Oze,date:()=>Dze,ZodISOTime:()=>iQ,ZodISODuration:()=>sQ,ZodISODateTime:()=>nQ,ZodISODate:()=>rQ});var nQ=Re("ZodISODateTime",(t,e)=>{YLe.init(t,e),Xi.init(t,e)});function Oze(t){return lje(nQ,t)}var rQ=Re("ZodISODate",(t,e)=>{JLe.init(t,e),Xi.init(t,e)});function Dze(t){return cje(rQ,t)}var iQ=Re("ZodISOTime",(t,e)=>{XLe.init(t,e),Xi.init(t,e)});function Mze(t){return uje(iQ,t)}var sQ=Re("ZodISODuration",(t,e)=>{QLe.init(t,e),Xi.init(t,e)});function Nze(t){return dje(sQ,t)}var Rze=(t,e)=>{iX.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:n=>aX(t,n)},flatten:{value:n=>sX(t,n)},addIssue:{value:n=>{t.issues.push(n),t.message=JSON.stringify(t.issues,HE,2)}},addIssues:{value:n=>{t.issues.push(...n),t.message=JSON.stringify(t.issues,HE,2)}},isEmpty:{get(){return t.issues.length===0}}})},S2n=Re("ZodError",Rze),nu=Re("ZodError",Rze,{Parent:Error}),Lze=D_(nu),Pze=M_(nu),jze=N_(nu),zze=R_(nu),Fze=oX(nu),Bze=lX(nu),Uze=cX(nu),qze=uX(nu),Hze=dX(nu),Wze=fX(nu),Vze=hX(nu),Zze=pX(nu),Ir=Re("ZodType",(t,e)=>(_r.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Bw(t,"input"),output:Bw(t,"output")}}),t.toJSONSchema=Hje(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...n)=>t.clone(Yr.mergeDefs(e,{checks:[...e.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),t.with=t.check,t.clone=(n,r)=>ld(t,n,r),t.brand=()=>t,t.register=(n,r)=>(n.add(t,r),t),t.parse=(n,r)=>Lze(t,n,r,{callee:t.parse}),t.safeParse=(n,r)=>jze(t,n,r),t.parseAsync=async(n,r)=>Pze(t,n,r,{callee:t.parseAsync}),t.safeParseAsync=async(n,r)=>zze(t,n,r),t.spa=t.safeParseAsync,t.encode=(n,r)=>Fze(t,n,r),t.decode=(n,r)=>Bze(t,n,r),t.encodeAsync=async(n,r)=>Uze(t,n,r),t.decodeAsync=async(n,r)=>qze(t,n,r),t.safeEncode=(n,r)=>Hze(t,n,r),t.safeDecode=(n,r)=>Wze(t,n,r),t.safeEncodeAsync=async(n,r)=>Vze(t,n,r),t.safeDecodeAsync=async(n,r)=>Zze(t,n,r),t.refine=(n,r)=>t.check(KQ(n,r)),t.superRefine=n=>t.check(YQ(n)),t.overwrite=n=>t.check(Rp(n)),t.optional=()=>qw(t),t.exactOptional=()=>OQ(t),t.nullable=()=>Hw(t),t.nullish=()=>qw(Hw(t)),t.nonoptional=n=>PQ(t,n),t.array=()=>K_(t),t.or=n=>_A([t,n]),t.and=n=>wQ(t,n),t.transform=n=>Ww(t,SA(n)),t.default=n=>NQ(t,n),t.prefault=n=>LQ(t,n),t.catch=n=>FQ(t,n),t.pipe=n=>Ww(t,n),t.readonly=()=>qQ(t),t.describe=n=>{let r=t.clone();return Eu.add(r,{description:n}),r},Object.defineProperty(t,"description",{get(){var n;return(n=Eu.get(t))==null?void 0:n.description},configurable:!0}),t.meta=(...n)=>{if(n.length===0)return Eu.get(t);let r=t.clone();return Eu.add(r,n[0]),r},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=n=>n(t),t)),nA=Re("_ZodString",(t,e)=>{z_.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(r,i,s)=>Wje(t,r,i);let n=t._zod.bag;t.format=n.format??null,t.minLength=n.minimum??null,t.maxLength=n.maximum??null,t.regex=(...r)=>t.check(HI(...r)),t.includes=(...r)=>t.check(ZI(...r)),t.startsWith=(...r)=>t.check(GI(...r)),t.endsWith=(...r)=>t.check(KI(...r)),t.min=(...r)=>t.check(Hg(...r)),t.max=(...r)=>t.check(B_(...r)),t.length=(...r)=>t.check(U_(...r)),t.nonempty=(...r)=>t.check(Hg(1,...r)),t.lowercase=r=>t.check(WI(r)),t.uppercase=r=>t.check(VI(r)),t.trim=()=>t.check(XI()),t.normalize=(...r)=>t.check(JI(...r)),t.toLowerCase=()=>t.check(QI()),t.toUpperCase=()=>t.check(eA()),t.slugify=()=>t.check(tA())}),H_=Re("ZodString",(t,e)=>{z_.init(t,e),nA.init(t,e),t.email=n=>t.check(TX(rA,n)),t.url=n=>t.check(qI(W_,n)),t.jwt=n=>t.check(ZX(yA,n)),t.emoji=n=>t.check(MX(iA,n)),t.guid=n=>t.check(GE(Uw,n)),t.uuid=n=>t.check(IX(kf,n)),t.uuidv4=n=>t.check(AX(kf,n)),t.uuidv6=n=>t.check(OX(kf,n)),t.uuidv7=n=>t.check(DX(kf,n)),t.nanoid=n=>t.check(NX(sA,n)),t.guid=n=>t.check(GE(Uw,n)),t.cuid=n=>t.check(RX(aA,n)),t.cuid2=n=>t.check(LX(oA,n)),t.ulid=n=>t.check(PX(lA,n)),t.base64=n=>t.check(HX(mA,n)),t.base64url=n=>t.check(WX(gA,n)),t.xid=n=>t.check(jX(cA,n)),t.ksuid=n=>t.check(zX(uA,n)),t.ipv4=n=>t.check(FX(dA,n)),t.ipv6=n=>t.check(BX(fA,n)),t.cidrv4=n=>t.check(UX(hA,n)),t.cidrv6=n=>t.check(qX(pA,n)),t.e164=n=>t.check(VX(vA,n)),t.datetime=n=>t.check(Oze(n)),t.date=n=>t.check(Dze(n)),t.time=n=>t.check(Mze(n)),t.duration=n=>t.check(Nze(n))});function KE(t){return ije(H_,t)}var Xi=Re("ZodStringFormat",(t,e)=>{Ji.init(t,e),nA.init(t,e)}),rA=Re("ZodEmail",(t,e)=>{BLe.init(t,e),Xi.init(t,e)});function Gze(t){return TX(rA,t)}var Uw=Re("ZodGUID",(t,e)=>{zLe.init(t,e),Xi.init(t,e)});function Kze(t){return GE(Uw,t)}var kf=Re("ZodUUID",(t,e)=>{FLe.init(t,e),Xi.init(t,e)});function Yze(t){return IX(kf,t)}function Jze(t){return AX(kf,t)}function Xze(t){return OX(kf,t)}function Qze(t){return DX(kf,t)}var W_=Re("ZodURL",(t,e)=>{ULe.init(t,e),Xi.init(t,e)});function eFe(t){return qI(W_,t)}function tFe(t){return qI(W_,{protocol:/^https?$/,hostname:k2.domain,...Yr.normalizeParams(t)})}var iA=Re("ZodEmoji",(t,e)=>{qLe.init(t,e),Xi.init(t,e)});function nFe(t){return MX(iA,t)}var sA=Re("ZodNanoID",(t,e)=>{HLe.init(t,e),Xi.init(t,e)});function rFe(t){return NX(sA,t)}var aA=Re("ZodCUID",(t,e)=>{WLe.init(t,e),Xi.init(t,e)});function iFe(t){return RX(aA,t)}var oA=Re("ZodCUID2",(t,e)=>{VLe.init(t,e),Xi.init(t,e)});function sFe(t){return LX(oA,t)}var lA=Re("ZodULID",(t,e)=>{ZLe.init(t,e),Xi.init(t,e)});function aFe(t){return PX(lA,t)}var cA=Re("ZodXID",(t,e)=>{GLe.init(t,e),Xi.init(t,e)});function oFe(t){return jX(cA,t)}var uA=Re("ZodKSUID",(t,e)=>{KLe.init(t,e),Xi.init(t,e)});function lFe(t){return zX(uA,t)}var dA=Re("ZodIPv4",(t,e)=>{ePe.init(t,e),Xi.init(t,e)});function cFe(t){return FX(dA,t)}var aQ=Re("ZodMAC",(t,e)=>{nPe.init(t,e),Xi.init(t,e)});function uFe(t){return aje(aQ,t)}var fA=Re("ZodIPv6",(t,e)=>{tPe.init(t,e),Xi.init(t,e)});function dFe(t){return BX(fA,t)}var hA=Re("ZodCIDRv4",(t,e)=>{rPe.init(t,e),Xi.init(t,e)});function fFe(t){return UX(hA,t)}var pA=Re("ZodCIDRv6",(t,e)=>{iPe.init(t,e),Xi.init(t,e)});function hFe(t){return qX(pA,t)}var mA=Re("ZodBase64",(t,e)=>{sPe.init(t,e),Xi.init(t,e)});function pFe(t){return HX(mA,t)}var gA=Re("ZodBase64URL",(t,e)=>{oPe.init(t,e),Xi.init(t,e)});function mFe(t){return WX(gA,t)}var vA=Re("ZodE164",(t,e)=>{lPe.init(t,e),Xi.init(t,e)});function gFe(t){return VX(vA,t)}var yA=Re("ZodJWT",(t,e)=>{uPe.init(t,e),Xi.init(t,e)});function vFe(t){return ZX(yA,t)}var _5=Re("ZodCustomStringFormat",(t,e)=>{dPe.init(t,e),Xi.init(t,e)});function yFe(t,e,n={}){return q_(_5,t,e,n)}function bFe(t){return q_(_5,"hostname",k2.hostname,t)}function xFe(t){return q_(_5,"hex",k2.hex,t)}function wFe(t,e){let n=(e==null?void 0:e.enc)??"hex",r=`${t}_${n}`,i=k2[r];if(!i)throw Error(`Unrecognized hash format: ${r}`);return q_(_5,r,i,e)}var V_=Re("ZodNumber",(t,e)=>{xX.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(r,i,s)=>Vje(t,r,i),t.gt=(r,i)=>t.check(pm(r,i)),t.gte=(r,i)=>t.check(Jl(r,i)),t.min=(r,i)=>t.check(Jl(r,i)),t.lt=(r,i)=>t.check(hm(r,i)),t.lte=(r,i)=>t.check(ju(r,i)),t.max=(r,i)=>t.check(ju(r,i)),t.int=r=>t.check(YE(r)),t.safe=r=>t.check(YE(r)),t.positive=r=>t.check(pm(0,r)),t.nonnegative=r=>t.check(Jl(0,r)),t.negative=r=>t.check(hm(0,r)),t.nonpositive=r=>t.check(ju(0,r)),t.multipleOf=(r,i)=>t.check(db(r,i)),t.step=(r,i)=>t.check(db(r,i)),t.finite=()=>t;let n=t._zod.bag;t.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),t.isFinite=!0,t.format=n.format??null});function oQ(t){return fje(V_,t)}var S2=Re("ZodNumberFormat",(t,e)=>{fPe.init(t,e),V_.init(t,e)});function YE(t){return pje(S2,t)}function _Fe(t){return mje(S2,t)}function kFe(t){return gje(S2,t)}function SFe(t){return vje(S2,t)}function CFe(t){return yje(S2,t)}var Z_=Re("ZodBoolean",(t,e)=>{wX.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Zje(t,n,r)});function lQ(t){return bje(Z_,t)}var G_=Re("ZodBigInt",(t,e)=>{_X.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(r,i,s)=>Gje(t,r),t.gte=(r,i)=>t.check(Jl(r,i)),t.min=(r,i)=>t.check(Jl(r,i)),t.gt=(r,i)=>t.check(pm(r,i)),t.gte=(r,i)=>t.check(Jl(r,i)),t.min=(r,i)=>t.check(Jl(r,i)),t.lt=(r,i)=>t.check(hm(r,i)),t.lte=(r,i)=>t.check(ju(r,i)),t.max=(r,i)=>t.check(ju(r,i)),t.positive=r=>t.check(pm(BigInt(0),r)),t.negative=r=>t.check(hm(BigInt(0),r)),t.nonpositive=r=>t.check(ju(BigInt(0),r)),t.nonnegative=r=>t.check(Jl(BigInt(0),r)),t.multipleOf=(r,i)=>t.check(db(r,i));let n=t._zod.bag;t.minValue=n.minimum??null,t.maxValue=n.maximum??null,t.format=n.format??null});function EFe(t){return wje(G_,t)}var bA=Re("ZodBigIntFormat",(t,e)=>{hPe.init(t,e),G_.init(t,e)});function $Fe(t){return kje(bA,t)}function TFe(t){return Sje(bA,t)}var cQ=Re("ZodSymbol",(t,e)=>{pPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Kje(t,n)});function IFe(t){return Cje(cQ,t)}var uQ=Re("ZodUndefined",(t,e)=>{mPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Jje(t,n)});function AFe(t){return Eje(uQ,t)}var dQ=Re("ZodNull",(t,e)=>{gPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Yje(t,n,r)});function fQ(t){return $je(dQ,t)}var hQ=Re("ZodAny",(t,e)=>{vPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>eze()});function OFe(){return Tje(hQ)}var pQ=Re("ZodUnknown",(t,e)=>{yPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>tze()});function Wg(){return Ije(pQ)}var mQ=Re("ZodNever",(t,e)=>{bPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Qje(t,n,r)});function xA(t){return Aje(mQ,t)}var gQ=Re("ZodVoid",(t,e)=>{xPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Xje(t,n)});function DFe(t){return Oje(gQ,t)}var wA=Re("ZodDate",(t,e)=>{wPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(r,i,s)=>nze(t,r),t.min=(r,i)=>t.check(Jl(r,i)),t.max=(r,i)=>t.check(ju(r,i));let n=t._zod.bag;t.minDate=n.minimum?new Date(n.minimum):null,t.maxDate=n.maximum?new Date(n.maximum):null});function MFe(t){return Dje(wA,t)}var vQ=Re("ZodArray",(t,e)=>{_Pe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>pze(t,n,r,i),t.element=e.element,t.min=(n,r)=>t.check(Hg(n,r)),t.nonempty=n=>t.check(Hg(1,n)),t.max=(n,r)=>t.check(B_(n,r)),t.length=(n,r)=>t.check(U_(n,r)),t.unwrap=()=>t.element});function K_(t,e){return Rje(vQ,t,e)}function NFe(t){let e=t._zod.def.shape;return kA(Object.keys(e))}var Y_=Re("ZodObject",(t,e)=>{EPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>mze(t,n,r,i),Yr.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>kA(Object.keys(t._zod.def.shape)),t.catchall=n=>t.clone({...t._zod.def,catchall:n}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Wg()}),t.loose=()=>t.clone({...t._zod.def,catchall:Wg()}),t.strict=()=>t.clone({...t._zod.def,catchall:xA()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=n=>Yr.extend(t,n),t.safeExtend=n=>Yr.safeExtend(t,n),t.merge=n=>Yr.merge(t,n),t.pick=n=>Yr.pick(t,n),t.omit=n=>Yr.omit(t,n),t.partial=(...n)=>Yr.partial(CA,t,n[0]),t.required=(...n)=>Yr.required(EA,t,n[0])});function RFe(t,e){let n={type:"object",shape:t??{},...Yr.normalizeParams(e)};return new Y_(n)}function LFe(t,e){return new Y_({type:"object",shape:t,catchall:xA(),...Yr.normalizeParams(e)})}function PFe(t,e){return new Y_({type:"object",shape:t,catchall:Wg(),...Yr.normalizeParams(e)})}var J_=Re("ZodUnion",(t,e)=>{UI.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>QX(t,n,r,i),t.options=e.options});function _A(t,e){return new J_({type:"union",options:t,...Yr.normalizeParams(e)})}var yQ=Re("ZodXor",(t,e)=>{J_.init(t,e),$Pe.init(t,e),t._zod.processJSONSchema=(n,r,i)=>QX(t,n,r,i),t.options=e.options});function jFe(t,e){return new yQ({type:"union",options:t,inclusive:!1,...Yr.normalizeParams(e)})}var bQ=Re("ZodDiscriminatedUnion",(t,e)=>{J_.init(t,e),TPe.init(t,e)});function zFe(t,e,n){return new bQ({type:"union",options:e,discriminator:t,...Yr.normalizeParams(n)})}var xQ=Re("ZodIntersection",(t,e)=>{IPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>gze(t,n,r,i)});function wQ(t,e){return new xQ({type:"intersection",left:t,right:e})}var _Q=Re("ZodTuple",(t,e)=>{kX.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>vze(t,n,r,i),t.rest=n=>t.clone({...t._zod.def,rest:n})});function kQ(t,e,n){let r=e instanceof _r,i=r?n:e;return new _Q({type:"tuple",items:t,rest:r?e:null,...Yr.normalizeParams(i)})}var X_=Re("ZodRecord",(t,e)=>{APe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>yze(t,n,r,i),t.keyType=e.keyType,t.valueType=e.valueType});function SQ(t,e,n){return new X_({type:"record",keyType:t,valueType:e,...Yr.normalizeParams(n)})}function FFe(t,e,n){let r=ld(t);return r._zod.values=void 0,new X_({type:"record",keyType:r,valueType:e,...Yr.normalizeParams(n)})}function BFe(t,e,n){return new X_({type:"record",keyType:t,valueType:e,mode:"loose",...Yr.normalizeParams(n)})}var CQ=Re("ZodMap",(t,e)=>{OPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>fze(t,n),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...n)=>t.check(mm(...n)),t.nonempty=n=>t.check(mm(1,n)),t.max=(...n)=>t.check(w5(...n)),t.size=(...n)=>t.check(F_(...n))});function UFe(t,e,n){return new CQ({type:"map",keyType:t,valueType:e,...Yr.normalizeParams(n)})}var EQ=Re("ZodSet",(t,e)=>{DPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>hze(t,n),t.min=(...n)=>t.check(mm(...n)),t.nonempty=n=>t.check(mm(1,n)),t.max=(...n)=>t.check(w5(...n)),t.size=(...n)=>t.check(F_(...n))});function qFe(t,e){return new EQ({type:"set",valueType:t,...Yr.normalizeParams(e)})}var mb=Re("ZodEnum",(t,e)=>{MPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(r,i,s)=>rze(t,r,i),t.enum=e.entries,t.options=Object.values(e.entries);let n=new Set(Object.keys(e.entries));t.extract=(r,i)=>{let s={};for(let a of r)if(n.has(a))s[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new mb({...e,checks:[],...Yr.normalizeParams(i),entries:s})},t.exclude=(r,i)=>{let s={...e.entries};for(let a of r)if(n.has(a))delete s[a];else throw Error(`Key ${a} not found in enum`);return new mb({...e,checks:[],...Yr.normalizeParams(i),entries:s})}});function kA(t,e){let n=Array.isArray(t)?Object.fromEntries(t.map(r=>[r,r])):t;return new mb({type:"enum",entries:n,...Yr.normalizeParams(e)})}function HFe(t,e){return new mb({type:"enum",entries:t,...Yr.normalizeParams(e)})}var $Q=Re("ZodLiteral",(t,e)=>{NPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>ize(t,n,r),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function WFe(t,e){return new $Q({type:"literal",values:Array.isArray(t)?t:[t],...Yr.normalizeParams(e)})}var TQ=Re("ZodFile",(t,e)=>{RPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>oze(t,n,r),t.min=(n,r)=>t.check(mm(n,r)),t.max=(n,r)=>t.check(w5(n,r)),t.mime=(n,r)=>t.check(YI(Array.isArray(n)?n:[n],r))});function VFe(t){return Lje(TQ,t)}var IQ=Re("ZodTransform",(t,e)=>{LPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>dze(t,n),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new jI(t.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(Yr.issue(s,n.value,e));else{let a=s;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=t),n.issues.push(Yr.issue(a))}};let i=e.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});function SA(t){return new IQ({type:"transform",transform:t})}var CA=Re("ZodOptional",(t,e)=>{SX.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>eQ(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function qw(t){return new CA({type:"optional",innerType:t})}var AQ=Re("ZodExactOptional",(t,e)=>{PPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>eQ(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function OQ(t){return new AQ({type:"optional",innerType:t})}var DQ=Re("ZodNullable",(t,e)=>{jPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>bze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Hw(t){return new DQ({type:"nullable",innerType:t})}function ZFe(t){return qw(Hw(t))}var MQ=Re("ZodDefault",(t,e)=>{zPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>wze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function NQ(t,e){return new MQ({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Yr.shallowClone(e)}})}var RQ=Re("ZodPrefault",(t,e)=>{FPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>_ze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function LQ(t,e){return new RQ({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Yr.shallowClone(e)}})}var EA=Re("ZodNonOptional",(t,e)=>{BPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>xze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function PQ(t,e){return new EA({type:"nonoptional",innerType:t,...Yr.normalizeParams(e)})}var jQ=Re("ZodSuccess",(t,e)=>{UPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>lze(t,n,r),t.unwrap=()=>t._zod.def.innerType});function GFe(t){return new jQ({type:"success",innerType:t})}var zQ=Re("ZodCatch",(t,e)=>{qPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>kze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function FQ(t,e){return new zQ({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var BQ=Re("ZodNaN",(t,e)=>{HPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>sze(t,n)});function KFe(t){return Nje(BQ,t)}var $A=Re("ZodPipe",(t,e)=>{WPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Sze(t,n,r,i),t.in=e.in,t.out=e.out});function Ww(t,e){return new $A({type:"pipe",in:t,out:e})}var TA=Re("ZodCodec",(t,e)=>{$A.init(t,e),CX.init(t,e)});function YFe(t,e,n){return new TA({type:"pipe",in:t,out:e,transform:n.decode,reverseTransform:n.encode})}var UQ=Re("ZodReadonly",(t,e)=>{VPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Cze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function qQ(t){return new UQ({type:"readonly",innerType:t})}var HQ=Re("ZodTemplateLiteral",(t,e)=>{ZPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>aze(t,n,r)});function JFe(t,e){return new HQ({type:"template_literal",parts:t,...Yr.normalizeParams(e)})}var WQ=Re("ZodLazy",(t,e)=>{YPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>$ze(t,n,r,i),t.unwrap=()=>t._zod.def.getter()});function VQ(t){return new WQ({type:"lazy",getter:t})}var ZQ=Re("ZodPromise",(t,e)=>{KPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Eze(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function XFe(t){return new ZQ({type:"promise",innerType:t})}var GQ=Re("ZodFunction",(t,e)=>{GPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>uze(t,n)});function JE(t){return new GQ({type:"function",input:Array.isArray(t==null?void 0:t.input)?kQ(t==null?void 0:t.input):(t==null?void 0:t.input)??K_(Wg()),output:(t==null?void 0:t.output)??Wg()})}var Q_=Re("ZodCustom",(t,e)=>{JPe.init(t,e),Ir.init(t,e),t._zod.processJSONSchema=(n,r,i)=>cze(t,n)});function QFe(t){let e=new Ts({check:"custom"});return e._zod.check=t,e}function eBe(t,e){return Pje(Q_,t??(()=>!0),e)}function KQ(t,e={}){return jje(Q_,t,e)}function YQ(t){return zje(t)}var tBe=Bje,nBe=Uje;function rBe(t,e={}){let n=new Q_({type:"custom",check:"custom",fn:r=>r instanceof t,abort:!0,...Yr.normalizeParams(e)});return n._zod.bag.Class=t,n._zod.check=r=>{r.value instanceof t||r.issues.push({code:"invalid_type",expected:t.name,input:r.value,inst:n,path:[...n._zod.def.path??[]]})},n}var iBe=(...t)=>qje({Codec:TA,Boolean:Z_,String:H_},...t);function sBe(t){let e=VQ(()=>_A([KE(t),oQ(),lQ(),fQ(),K_(e),SQ(KE(),e)]));return e}function aBe(t,e){return Ww(SA(t),e)}var C2n={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function E2n(t){Wo({customError:t})}function $2n(){return Wo().customError}var SV;SV||(SV={});var Gt={...Ize,...Aze,iso:tQ},T2n=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function I2n(t,e){let n=t.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":e??"draft-2020-12"}function A2n(t,e){if(!t.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let n=t.slice(1).split("/").filter(Boolean);if(n.length===0)return e.rootSchema;let r=e.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===r){let i=n[1];if(!i||!e.defs[i])throw Error(`Reference not found: ${t}`);return e.defs[i]}throw Error(`Reference not found: ${t}`)}function oBe(t,e){if(t.not!==void 0){if(typeof t.not=="object"&&Object.keys(t.not).length===0)return Gt.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(t.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(t.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(t.if!==void 0||t.then!==void 0||t.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(t.dependentSchemas!==void 0||t.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(t.$ref){let i=t.$ref;if(e.refs.has(i))return e.refs.get(i);if(e.processing.has(i))return Gt.lazy(()=>{if(!e.refs.has(i))throw Error(`Circular reference not resolved: ${i}`);return e.refs.get(i)});e.processing.add(i);let s=A2n(i,e),a=Do(s,e);return e.refs.set(i,a),e.processing.delete(i),a}if(t.enum!==void 0){let i=t.enum;if(e.version==="openapi-3.0"&&t.nullable===!0&&i.length===1&&i[0]===null)return Gt.null();if(i.length===0)return Gt.never();if(i.length===1)return Gt.literal(i[0]);if(i.every(a=>typeof a=="string"))return Gt.enum(i);let s=i.map(a=>Gt.literal(a));return s.length<2?s[0]:Gt.union([s[0],s[1],...s.slice(2)])}if(t.const!==void 0)return Gt.literal(t.const);let n=t.type;if(Array.isArray(n)){let i=n.map(s=>{let a={...t,type:s};return oBe(a,e)});return i.length===0?Gt.never():i.length===1?i[0]:Gt.union(i)}if(!n)return Gt.any();let r;switch(n){case"string":{let i=Gt.string();if(t.format){let s=t.format;s==="email"?i=i.check(Gt.email()):s==="uri"||s==="uri-reference"?i=i.check(Gt.url()):s==="uuid"||s==="guid"?i=i.check(Gt.uuid()):s==="date-time"?i=i.check(Gt.iso.datetime()):s==="date"?i=i.check(Gt.iso.date()):s==="time"?i=i.check(Gt.iso.time()):s==="duration"?i=i.check(Gt.iso.duration()):s==="ipv4"?i=i.check(Gt.ipv4()):s==="ipv6"?i=i.check(Gt.ipv6()):s==="mac"?i=i.check(Gt.mac()):s==="cidr"?i=i.check(Gt.cidrv4()):s==="cidr-v6"?i=i.check(Gt.cidrv6()):s==="base64"?i=i.check(Gt.base64()):s==="base64url"?i=i.check(Gt.base64url()):s==="e164"?i=i.check(Gt.e164()):s==="jwt"?i=i.check(Gt.jwt()):s==="emoji"?i=i.check(Gt.emoji()):s==="nanoid"?i=i.check(Gt.nanoid()):s==="cuid"?i=i.check(Gt.cuid()):s==="cuid2"?i=i.check(Gt.cuid2()):s==="ulid"?i=i.check(Gt.ulid()):s==="xid"?i=i.check(Gt.xid()):s==="ksuid"&&(i=i.check(Gt.ksuid()))}typeof t.minLength=="number"&&(i=i.min(t.minLength)),typeof t.maxLength=="number"&&(i=i.max(t.maxLength)),t.pattern&&(i=i.regex(new RegExp(t.pattern))),r=i;break}case"number":case"integer":{let i=n==="integer"?Gt.number().int():Gt.number();typeof t.minimum=="number"&&(i=i.min(t.minimum)),typeof t.maximum=="number"&&(i=i.max(t.maximum)),typeof t.exclusiveMinimum=="number"?i=i.gt(t.exclusiveMinimum):t.exclusiveMinimum===!0&&typeof t.minimum=="number"&&(i=i.gt(t.minimum)),typeof t.exclusiveMaximum=="number"?i=i.lt(t.exclusiveMaximum):t.exclusiveMaximum===!0&&typeof t.maximum=="number"&&(i=i.lt(t.maximum)),typeof t.multipleOf=="number"&&(i=i.multipleOf(t.multipleOf)),r=i;break}case"boolean":{r=Gt.boolean();break}case"null":{r=Gt.null();break}case"object":{let i={},s=t.properties||{},a=new Set(t.required||[]);for(let[l,c]of Object.entries(s)){let u=Do(c,e);i[l]=a.has(l)?u:u.optional()}if(t.propertyNames){let l=Do(t.propertyNames,e),c=t.additionalProperties&&typeof t.additionalProperties=="object"?Do(t.additionalProperties,e):Gt.any();if(Object.keys(i).length===0){r=Gt.record(l,c);break}let u=Gt.object(i).passthrough(),d=Gt.looseRecord(l,c);r=Gt.intersection(u,d);break}if(t.patternProperties){let l=t.patternProperties,c=Object.keys(l),u=[];for(let f of c){let h=Do(l[f],e),m=Gt.string().regex(new RegExp(f));u.push(Gt.looseRecord(m,h))}let d=[];if(Object.keys(i).length>0&&d.push(Gt.object(i).passthrough()),d.push(...u),d.length===0)r=Gt.object({}).passthrough();else if(d.length===1)r=d[0];else{let f=Gt.intersection(d[0],d[1]);for(let h=2;hDo(l,e)),o=s&&typeof s=="object"&&!Array.isArray(s)?Do(s,e):void 0;o?r=Gt.tuple(a).rest(o):r=Gt.tuple(a),typeof t.minItems=="number"&&(r=r.check(Gt.minLength(t.minItems))),typeof t.maxItems=="number"&&(r=r.check(Gt.maxLength(t.maxItems)))}else if(Array.isArray(s)){let a=s.map(l=>Do(l,e)),o=t.additionalItems&&typeof t.additionalItems=="object"?Do(t.additionalItems,e):void 0;o?r=Gt.tuple(a).rest(o):r=Gt.tuple(a),typeof t.minItems=="number"&&(r=r.check(Gt.minLength(t.minItems))),typeof t.maxItems=="number"&&(r=r.check(Gt.maxLength(t.maxItems)))}else if(s!==void 0){let a=Do(s,e),o=Gt.array(a);typeof t.minItems=="number"&&(o=o.min(t.minItems)),typeof t.maxItems=="number"&&(o=o.max(t.maxItems)),r=o}else r=Gt.array(Gt.any());break}default:throw Error(`Unsupported type: ${n}`)}return t.description&&(r=r.describe(t.description)),t.default!==void 0&&(r=r.default(t.default)),r}function Do(t,e){if(typeof t=="boolean")return t?Gt.any():Gt.never();let n=oBe(t,e),r=t.type||t.enum!==void 0||t.const!==void 0;if(t.anyOf&&Array.isArray(t.anyOf)){let o=t.anyOf.map(c=>Do(c,e)),l=Gt.union(o);n=r?Gt.intersection(n,l):l}if(t.oneOf&&Array.isArray(t.oneOf)){let o=t.oneOf.map(c=>Do(c,e)),l=Gt.xor(o);n=r?Gt.intersection(n,l):l}if(t.allOf&&Array.isArray(t.allOf))if(t.allOf.length===0)n=r?n:Gt.any();else{let o=r?n:Do(t.allOf[0],e),l=r?0:1;for(let c=l;c0&&e.registry.add(n,i),n}function O2n(t,e){if(typeof t=="boolean")return t?Gt.any():Gt.never();let n=I2n(t,e==null?void 0:e.defaultTarget),r=t.$defs||t.definitions||{},i={version:n,defs:r,refs:new Map,processing:new Set,rootSchema:t,registry:(e==null?void 0:e.registry)??Eu};return Do(t,i)}var lBe={};Mp(lBe,{string:()=>D2n,number:()=>M2n,date:()=>L2n,boolean:()=>N2n,bigint:()=>R2n});function D2n(t){return sje(H_,t)}function M2n(t){return hje(V_,t)}function N2n(t){return xje(Z_,t)}function R2n(t){return _je(G_,t)}function L2n(t){return Mje(wA,t)}Wo(XPe());var P2n=be.union([be.literal("light"),be.literal("dark")]).describe("Color theme preference for the host environment."),Vw=be.union([be.literal("inline"),be.literal("fullscreen"),be.literal("pip")]).describe("Display mode for UI presentation."),j2n=be.union([be.literal("--color-background-primary"),be.literal("--color-background-secondary"),be.literal("--color-background-tertiary"),be.literal("--color-background-inverse"),be.literal("--color-background-ghost"),be.literal("--color-background-info"),be.literal("--color-background-danger"),be.literal("--color-background-success"),be.literal("--color-background-warning"),be.literal("--color-background-disabled"),be.literal("--color-text-primary"),be.literal("--color-text-secondary"),be.literal("--color-text-tertiary"),be.literal("--color-text-inverse"),be.literal("--color-text-ghost"),be.literal("--color-text-info"),be.literal("--color-text-danger"),be.literal("--color-text-success"),be.literal("--color-text-warning"),be.literal("--color-text-disabled"),be.literal("--color-text-ghost"),be.literal("--color-border-primary"),be.literal("--color-border-secondary"),be.literal("--color-border-tertiary"),be.literal("--color-border-inverse"),be.literal("--color-border-ghost"),be.literal("--color-border-info"),be.literal("--color-border-danger"),be.literal("--color-border-success"),be.literal("--color-border-warning"),be.literal("--color-border-disabled"),be.literal("--color-ring-primary"),be.literal("--color-ring-secondary"),be.literal("--color-ring-inverse"),be.literal("--color-ring-info"),be.literal("--color-ring-danger"),be.literal("--color-ring-success"),be.literal("--color-ring-warning"),be.literal("--font-sans"),be.literal("--font-mono"),be.literal("--font-weight-normal"),be.literal("--font-weight-medium"),be.literal("--font-weight-semibold"),be.literal("--font-weight-bold"),be.literal("--font-text-xs-size"),be.literal("--font-text-sm-size"),be.literal("--font-text-md-size"),be.literal("--font-text-lg-size"),be.literal("--font-heading-xs-size"),be.literal("--font-heading-sm-size"),be.literal("--font-heading-md-size"),be.literal("--font-heading-lg-size"),be.literal("--font-heading-xl-size"),be.literal("--font-heading-2xl-size"),be.literal("--font-heading-3xl-size"),be.literal("--font-text-xs-line-height"),be.literal("--font-text-sm-line-height"),be.literal("--font-text-md-line-height"),be.literal("--font-text-lg-line-height"),be.literal("--font-heading-xs-line-height"),be.literal("--font-heading-sm-line-height"),be.literal("--font-heading-md-line-height"),be.literal("--font-heading-lg-line-height"),be.literal("--font-heading-xl-line-height"),be.literal("--font-heading-2xl-line-height"),be.literal("--font-heading-3xl-line-height"),be.literal("--border-radius-xs"),be.literal("--border-radius-sm"),be.literal("--border-radius-md"),be.literal("--border-radius-lg"),be.literal("--border-radius-xl"),be.literal("--border-radius-full"),be.literal("--border-width-regular"),be.literal("--shadow-hairline"),be.literal("--shadow-sm"),be.literal("--shadow-md"),be.literal("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),z2n=be.record(j2n.describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),be.union([be.string(),be.undefined()]).describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`)).describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);be.object({method:be.literal("ui/open-link"),params:be.object({url:be.string().describe("URL to open in the host's browser")})});be.object({isError:be.boolean().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough();be.object({isError:be.boolean().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();be.object({method:be.literal("ui/notifications/sandbox-proxy-ready"),params:be.object({})});var JQ=be.object({connectDomains:be.array(be.string()).optional().describe("Origins for network requests (fetch/XHR/WebSocket)."),resourceDomains:be.array(be.string()).optional().describe("Origins for static resources (scripts, images, styles, fonts)."),frameDomains:be.array(be.string()).optional().describe("Origins for nested iframes (frame-src directive)."),baseUriDomains:be.array(be.string()).optional().describe("Allowed base URIs for the document (base-uri directive).")}),XQ=be.object({camera:be.object({}).optional().describe("Request camera access (Permission Policy `camera` feature)."),microphone:be.object({}).optional().describe("Request microphone access (Permission Policy `microphone` feature)."),geolocation:be.object({}).optional().describe("Request geolocation access (Permission Policy `geolocation` feature)."),clipboardWrite:be.object({}).optional().describe("Request clipboard write access (Permission Policy `clipboard-write` feature).")});be.object({method:be.literal("ui/notifications/size-changed"),params:be.object({width:be.number().optional().describe("New width in pixels."),height:be.number().optional().describe("New height in pixels.")})});be.object({method:be.literal("ui/notifications/tool-input"),params:be.object({arguments:be.record(be.string(),be.unknown().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})});be.object({method:be.literal("ui/notifications/tool-input-partial"),params:be.object({arguments:be.record(be.string(),be.unknown().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})});be.object({method:be.literal("ui/notifications/tool-cancelled"),params:be.object({reason:be.string().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})});var F2n=be.object({fonts:be.string().optional()}),B2n=be.object({variables:z2n.optional().describe("CSS variables for theming the app."),css:F2n.optional().describe("CSS blocks that apps can inject.")});be.object({method:be.literal("ui/resource-teardown"),params:be.object({})});be.record(be.string(),be.unknown());var Rge=be.object({text:be.object({}).optional().describe("Host supports text content blocks."),image:be.object({}).optional().describe("Host supports image content blocks."),audio:be.object({}).optional().describe("Host supports audio content blocks."),resource:be.object({}).optional().describe("Host supports resource content blocks."),resourceLink:be.object({}).optional().describe("Host supports resource link content blocks."),structuredContent:be.object({}).optional().describe("Host supports structured content.")}),U2n=be.object({experimental:be.object({}).optional().describe("Experimental features (structure TBD)."),openLinks:be.object({}).optional().describe("Host supports opening external URLs."),serverTools:be.object({listChanged:be.boolean().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:be.object({listChanged:be.boolean().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:be.object({}).optional().describe("Host accepts log messages."),sandbox:be.object({permissions:XQ.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:JQ.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:Rge.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:Rge.optional().describe("Host supports receiving content messages (ui/message) from the view.")}),q2n=be.object({experimental:be.object({}).optional().describe("Experimental features (structure TBD)."),tools:be.object({listChanged:be.boolean().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:be.array(Vw).optional().describe("Display modes the app supports.")});be.object({method:be.literal("ui/notifications/initialized"),params:be.object({}).optional()});be.object({csp:JQ.optional().describe("Content Security Policy configuration."),permissions:XQ.optional().describe("Sandbox permissions requested by the UI."),domain:be.string().optional().describe("Dedicated origin for view sandbox."),prefersBorder:be.boolean().optional().describe("Visual boundary preference - true if UI prefers a visible border.")});be.object({method:be.literal("ui/request-display-mode"),params:be.object({mode:Vw.describe("The display mode being requested.")})});be.object({mode:Vw.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough();var H2n=be.union([be.literal("model"),be.literal("app")]).describe("Tool visibility scope - who can access the tool.");be.object({resourceUri:be.string().optional(),visibility:be.array(H2n).optional().describe(`Who can access this tool. Default: ["model", "app"] +- "model": Tool visible to and callable by the agent +- "app": Tool callable by the app from this server only`)});be.object({mimeTypes:be.array(be.string()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});be.object({method:be.literal("ui/message"),params:be.object({role:be.literal("user").describe('Message role, currently only "user" is supported.'),content:be.array(w2).describe("Message content blocks (text, image, etc.).")})});be.object({method:be.literal("ui/notifications/sandbox-resource-ready"),params:be.object({html:be.string().describe("HTML content to load into the inner iframe."),sandbox:be.string().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:JQ.optional().describe("CSP configuration from resource metadata."),permissions:XQ.optional().describe("Sandbox permissions from resource metadata.")})});be.object({method:be.literal("ui/notifications/tool-result"),params:A_.describe("Standard MCP tool execution result.")});var cBe=be.object({toolInfo:be.object({id:y5.optional().describe("JSON-RPC id of the tools/call request."),tool:PI.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:P2n.optional().describe("Current color theme preference."),styles:B2n.optional().describe("Style configuration for theming the app."),displayMode:Vw.optional().describe("How the UI is currently displayed."),availableDisplayModes:be.array(Vw).optional().describe("Display modes the host supports."),containerDimensions:be.union([be.object({height:be.number().describe("Fixed container height in pixels.")}),be.object({maxHeight:be.union([be.number(),be.undefined()]).optional().describe("Maximum container height in pixels.")})]).and(be.union([be.object({width:be.number().describe("Fixed container width in pixels.")}),be.object({maxWidth:be.union([be.number(),be.undefined()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other +container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:be.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:be.string().optional().describe("User's timezone in IANA format."),userAgent:be.string().optional().describe("Host application identifier."),platform:be.union([be.literal("web"),be.literal("desktop"),be.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:be.object({touch:be.boolean().optional().describe("Whether the device supports touch input."),hover:be.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:be.object({top:be.number().describe("Top safe area inset in pixels."),right:be.number().describe("Right safe area inset in pixels."),bottom:be.number().describe("Bottom safe area inset in pixels."),left:be.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough();be.object({method:be.literal("ui/notifications/host-context-changed"),params:cBe.describe("Partial context update containing only changed fields.")});be.object({method:be.literal("ui/update-model-context"),params:be.object({content:be.array(w2).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:be.record(be.string(),be.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});be.object({method:be.literal("ui/initialize"),params:be.object({appInfo:b5.describe("App identification (name and version)."),appCapabilities:q2n.describe("Features and capabilities this app provides."),protocolVersion:be.string().describe("Protocol version this app supports.")})});be.object({protocolVersion:be.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:b5.describe("Host application identification and version."),hostCapabilities:U2n.describe("Features and capabilities provided by the host."),hostContext:cBe.describe("Rich context about the host environment.")}).passthrough();var W2n=Object.defineProperty,Lp=(t,e)=>{for(var n in e)W2n(t,n,{get:e[n],enumerable:!0,configurable:!0,set:r=>e[n]=()=>r})},uBe="2026-01-26",xe={};Lp(xe,{xor:()=>$Ve,xid:()=>YWe,void:()=>wVe,uuidv7:()=>UWe,uuidv6:()=>BWe,uuidv4:()=>FWe,uuid:()=>zWe,util:()=>Jr,url:()=>qWe,uppercase:()=>PA,unknown:()=>Gg,union:()=>hO,undefined:()=>bVe,ulid:()=>KWe,uint64:()=>vVe,uint32:()=>pVe,tuple:()=>xte,trim:()=>qA,treeifyError:()=>CBe,transform:()=>mO,toUpperCase:()=>WA,toLowerCase:()=>HA,toJSONSchema:()=>vWe,templateLiteral:()=>FVe,symbol:()=>yVe,superRefine:()=>Zte,success:()=>PVe,stringbool:()=>ZVe,stringFormat:()=>oVe,string:()=>i$,strictObject:()=>CVe,startsWith:()=>zA,slugify:()=>VA,size:()=>ck,setErrorMap:()=>f5n,set:()=>DVe,safeParseAsync:()=>TWe,safeParse:()=>$We,safeEncodeAsync:()=>RWe,safeEncode:()=>MWe,safeDecodeAsync:()=>LWe,safeDecode:()=>NWe,registry:()=>See,regexes:()=>E2,regex:()=>RA,refine:()=>Vte,record:()=>wte,readonly:()=>Fte,property:()=>Kee,promise:()=>BVe,prettifyError:()=>$Be,preprocess:()=>KVe,prefault:()=>Mte,positive:()=>Wee,pipe:()=>Jw,partialRecord:()=>IVe,parseAsync:()=>EWe,parse:()=>CWe,overwrite:()=>jp,optional:()=>Kw,object:()=>SVe,number:()=>ite,nullish:()=>LVe,nullable:()=>Yw,null:()=>cte,normalize:()=>UA,nonpositive:()=>Zee,nonoptional:()=>Nte,nonnegative:()=>Gee,never:()=>dO,negative:()=>Vee,nativeEnum:()=>MVe,nanoid:()=>VWe,nan:()=>jVe,multipleOf:()=>yb,minSize:()=>ym,minLength:()=>Zg,mime:()=>BA,meta:()=>WVe,maxSize:()=>k5,maxLength:()=>uk,map:()=>OVe,mac:()=>QWe,lte:()=>zu,lt:()=>gm,lowercase:()=>LA,looseRecord:()=>AVe,looseObject:()=>EVe,locales:()=>kee,literal:()=>NVe,length:()=>dk,lazy:()=>qte,ksuid:()=>JWe,keyof:()=>kVe,jwt:()=>aVe,json:()=>GVe,iso:()=>Xee,ipv6:()=>eVe,ipv4:()=>XWe,intersection:()=>yte,int64:()=>gVe,int32:()=>hVe,int:()=>s$,instanceof:()=>VVe,includes:()=>jA,httpUrl:()=>HWe,hostname:()=>lVe,hex:()=>cVe,hash:()=>uVe,guid:()=>jWe,gte:()=>Xl,gt:()=>vm,globalRegistry:()=>$u,getErrorMap:()=>h5n,function:()=>a$,fromJSONSchema:()=>v5n,formatError:()=>ree,float64:()=>fVe,float32:()=>dVe,flattenError:()=>nee,file:()=>RVe,exactOptional:()=>Tte,enum:()=>pO,endsWith:()=>FA,encodeAsync:()=>OWe,encode:()=>IWe,emoji:()=>WWe,email:()=>PWe,e164:()=>sVe,discriminatedUnion:()=>TVe,describe:()=>HVe,decodeAsync:()=>DWe,decode:()=>AWe,date:()=>_Ve,custom:()=>qVe,cuid2:()=>GWe,cuid:()=>ZWe,core:()=>dBe,config:()=>Vo,coerce:()=>JVe,codec:()=>zVe,clone:()=>cd,cidrv6:()=>nVe,cidrv4:()=>tVe,check:()=>UVe,catch:()=>Pte,boolean:()=>ste,bigint:()=>mVe,base64url:()=>iVe,base64:()=>rVe,array:()=>yk,any:()=>xVe,_function:()=>a$,_default:()=>Ote,_ZodString:()=>ZA,ZodXor:()=>mte,ZodXID:()=>eO,ZodVoid:()=>hte,ZodUnknown:()=>dte,ZodUnion:()=>xk,ZodUndefined:()=>ote,ZodUUID:()=>Sf,ZodURL:()=>pk,ZodULID:()=>QA,ZodType:()=>Ar,ZodTuple:()=>bte,ZodTransform:()=>Ete,ZodTemplateLiteral:()=>Bte,ZodSymbol:()=>ate,ZodSuccess:()=>Rte,ZodStringFormat:()=>es,ZodString:()=>hk,ZodSet:()=>kte,ZodRecord:()=>wk,ZodRealError:()=>iu,ZodReadonly:()=>zte,ZodPromise:()=>Hte,ZodPrefault:()=>Dte,ZodPipe:()=>yO,ZodOptional:()=>gO,ZodObject:()=>bk,ZodNumberFormat:()=>$2,ZodNumber:()=>mk,ZodNullable:()=>Ite,ZodNull:()=>lte,ZodNonOptional:()=>vO,ZodNever:()=>fte,ZodNanoID:()=>YA,ZodNaN:()=>jte,ZodMap:()=>_te,ZodMAC:()=>rte,ZodLiteral:()=>Ste,ZodLazy:()=>Ute,ZodKSUID:()=>tO,ZodJWT:()=>cO,ZodIssueCode:()=>d5n,ZodIntersection:()=>vte,ZodISOTime:()=>tte,ZodISODuration:()=>nte,ZodISODateTime:()=>Qee,ZodISODate:()=>ete,ZodIPv6:()=>rO,ZodIPv4:()=>nO,ZodGUID:()=>Gw,ZodFunction:()=>Wte,ZodFirstPartyTypeKind:()=>AV,ZodFile:()=>Cte,ZodExactOptional:()=>$te,ZodError:()=>u5n,ZodEnum:()=>_b,ZodEmoji:()=>KA,ZodEmail:()=>GA,ZodE164:()=>lO,ZodDiscriminatedUnion:()=>gte,ZodDefault:()=>Ate,ZodDate:()=>fO,ZodCustomStringFormat:()=>S5,ZodCustom:()=>_k,ZodCodec:()=>bO,ZodCatch:()=>Lte,ZodCUID2:()=>XA,ZodCUID:()=>JA,ZodCIDRv6:()=>sO,ZodCIDRv4:()=>iO,ZodBoolean:()=>gk,ZodBigIntFormat:()=>uO,ZodBigInt:()=>vk,ZodBase64URL:()=>oO,ZodBase64:()=>aO,ZodArray:()=>pte,ZodAny:()=>ute,TimePrecision:()=>Yqe,NEVER:()=>fBe,$output:()=>Hqe,$input:()=>Wqe,$brand:()=>hBe});var dBe={};Lp(dBe,{version:()=>$Ue,util:()=>Jr,treeifyError:()=>CBe,toJSONSchema:()=>vWe,toDotPath:()=>EBe,safeParseAsync:()=>IBe,safeParse:()=>TBe,safeEncodeAsync:()=>Svn,safeEncode:()=>_vn,safeDecodeAsync:()=>Cvn,safeDecode:()=>kvn,registry:()=>See,regexes:()=>E2,process:()=>Zi,prettifyError:()=>$Be,parseAsync:()=>$V,parse:()=>EV,meta:()=>OHe,locales:()=>kee,isValidJWT:()=>XUe,isValidBase64URL:()=>KUe,isValidBase64:()=>gee,initializeContext:()=>bb,globalRegistry:()=>$u,globalConfig:()=>XE,formatError:()=>ree,flattenError:()=>nee,finalize:()=>wb,extractDefs:()=>xb,encodeAsync:()=>xvn,encode:()=>yvn,describe:()=>AHe,decodeAsync:()=>wvn,decode:()=>bvn,createToJSONSchemaMethod:()=>MHe,createStandardJSONSchemaMethod:()=>Zw,config:()=>Vo,clone:()=>cd,_xor:()=>zbn,_xid:()=>Ree,_void:()=>xHe,_uuidv7:()=>Iee,_uuidv6:()=>Tee,_uuidv4:()=>$ee,_uuid:()=>Eee,_url:()=>NA,_uppercase:()=>PA,_unknown:()=>yHe,_union:()=>jbn,_undefined:()=>mHe,_ulid:()=>Nee,_uint64:()=>hHe,_uint32:()=>oHe,_tuple:()=>Ubn,_trim:()=>qA,_transform:()=>Kbn,_toUpperCase:()=>WA,_toLowerCase:()=>HA,_templateLiteral:()=>i5n,_symbol:()=>pHe,_superRefine:()=>THe,_success:()=>e5n,_stringbool:()=>DHe,_stringFormat:()=>fk,_string:()=>Zqe,_startsWith:()=>zA,_slugify:()=>VA,_size:()=>ck,_set:()=>Wbn,_safeParseAsync:()=>ik,_safeParse:()=>rk,_safeEncodeAsync:()=>uee,_safeEncode:()=>lee,_safeDecodeAsync:()=>dee,_safeDecode:()=>cee,_regex:()=>RA,_refine:()=>$He,_record:()=>qbn,_readonly:()=>r5n,_property:()=>Kee,_promise:()=>a5n,_positive:()=>Wee,_pipe:()=>n5n,_parseAsync:()=>nk,_parse:()=>tk,_overwrite:()=>jp,_optional:()=>Ybn,_number:()=>tHe,_nullable:()=>Jbn,_null:()=>gHe,_normalize:()=>UA,_nonpositive:()=>Zee,_nonoptional:()=>Qbn,_nonnegative:()=>Gee,_never:()=>bHe,_negative:()=>Vee,_nativeEnum:()=>Zbn,_nanoid:()=>Oee,_nan:()=>kHe,_multipleOf:()=>yb,_minSize:()=>ym,_minLength:()=>Zg,_min:()=>Xl,_mime:()=>BA,_maxSize:()=>k5,_maxLength:()=>uk,_max:()=>zu,_map:()=>Hbn,_mac:()=>Kqe,_lte:()=>zu,_lt:()=>gm,_lowercase:()=>LA,_literal:()=>Gbn,_length:()=>dk,_lazy:()=>s5n,_ksuid:()=>Lee,_jwt:()=>Hee,_isoTime:()=>Qqe,_isoDuration:()=>eHe,_isoDateTime:()=>Jqe,_isoDate:()=>Xqe,_ipv6:()=>jee,_ipv4:()=>Pee,_intersection:()=>Bbn,_int64:()=>fHe,_int32:()=>aHe,_int:()=>rHe,_includes:()=>jA,_guid:()=>r$,_gte:()=>Xl,_gt:()=>vm,_float64:()=>sHe,_float32:()=>iHe,_file:()=>CHe,_enum:()=>Vbn,_endsWith:()=>FA,_encodeAsync:()=>aee,_encode:()=>iee,_emoji:()=>Aee,_email:()=>Cee,_e164:()=>qee,_discriminatedUnion:()=>Fbn,_default:()=>Xbn,_decodeAsync:()=>oee,_decode:()=>see,_date:()=>wHe,_custom:()=>EHe,_cuid2:()=>Mee,_cuid:()=>Dee,_coercedString:()=>Gqe,_coercedNumber:()=>nHe,_coercedDate:()=>_He,_coercedBoolean:()=>cHe,_coercedBigint:()=>dHe,_cidrv6:()=>Fee,_cidrv4:()=>zee,_check:()=>IHe,_catch:()=>t5n,_boolean:()=>lHe,_bigint:()=>uHe,_base64url:()=>Uee,_base64:()=>Bee,_array:()=>SHe,_any:()=>vHe,TimePrecision:()=>Yqe,NEVER:()=>fBe,JSONSchemaGenerator:()=>l5n,JSONSchema:()=>c5n,Doc:()=>EUe,$output:()=>Hqe,$input:()=>Wqe,$constructor:()=>Le,$brand:()=>hBe,$ZodXor:()=>gqe,$ZodXID:()=>PUe,$ZodVoid:()=>cqe,$ZodUnknown:()=>oqe,$ZodUnion:()=>MA,$ZodUndefined:()=>iqe,$ZodUUID:()=>IUe,$ZodURL:()=>OUe,$ZodULID:()=>LUe,$ZodType:()=>kr,$ZodTuple:()=>xee,$ZodTransform:()=>Cqe,$ZodTemplateLiteral:()=>Lqe,$ZodSymbol:()=>rqe,$ZodSuccess:()=>Oqe,$ZodStringFormat:()=>Qi,$ZodString:()=>lk,$ZodSet:()=>wqe,$ZodRegistry:()=>Vqe,$ZodRecord:()=>bqe,$ZodRealError:()=>ru,$ZodReadonly:()=>Rqe,$ZodPromise:()=>jqe,$ZodPrefault:()=>Iqe,$ZodPipe:()=>Nqe,$ZodOptional:()=>wee,$ZodObjectJIT:()=>mqe,$ZodObject:()=>pqe,$ZodNumberFormat:()=>tqe,$ZodNumber:()=>vee,$ZodNullable:()=>$qe,$ZodNull:()=>sqe,$ZodNonOptional:()=>Aqe,$ZodNever:()=>lqe,$ZodNanoID:()=>MUe,$ZodNaN:()=>Mqe,$ZodMap:()=>xqe,$ZodMAC:()=>WUe,$ZodLiteral:()=>kqe,$ZodLazy:()=>zqe,$ZodKSUID:()=>jUe,$ZodJWT:()=>QUe,$ZodIntersection:()=>yqe,$ZodISOTime:()=>BUe,$ZodISODuration:()=>UUe,$ZodISODateTime:()=>zUe,$ZodISODate:()=>FUe,$ZodIPv6:()=>HUe,$ZodIPv4:()=>qUe,$ZodGUID:()=>TUe,$ZodFunction:()=>Pqe,$ZodFile:()=>Sqe,$ZodExactOptional:()=>Eqe,$ZodError:()=>tee,$ZodEnum:()=>_qe,$ZodEncodeError:()=>IA,$ZodEmoji:()=>DUe,$ZodEmail:()=>AUe,$ZodE164:()=>JUe,$ZodDiscriminatedUnion:()=>vqe,$ZodDefault:()=>Tqe,$ZodDate:()=>uqe,$ZodCustomStringFormat:()=>eqe,$ZodCustom:()=>Fqe,$ZodCodec:()=>_ee,$ZodCheckUpperCase:()=>bUe,$ZodCheckStringFormat:()=>ok,$ZodCheckStartsWith:()=>wUe,$ZodCheckSizeEquals:()=>hUe,$ZodCheckRegex:()=>vUe,$ZodCheckProperty:()=>kUe,$ZodCheckOverwrite:()=>CUe,$ZodCheckNumberFormat:()=>cUe,$ZodCheckMultipleOf:()=>lUe,$ZodCheckMinSize:()=>fUe,$ZodCheckMinLength:()=>mUe,$ZodCheckMimeType:()=>SUe,$ZodCheckMaxSize:()=>dUe,$ZodCheckMaxLength:()=>pUe,$ZodCheckLowerCase:()=>yUe,$ZodCheckLessThan:()=>pee,$ZodCheckLengthEquals:()=>gUe,$ZodCheckIncludes:()=>xUe,$ZodCheckGreaterThan:()=>mee,$ZodCheckEndsWith:()=>_Ue,$ZodCheckBigIntFormat:()=>uUe,$ZodCheck:()=>Is,$ZodCatch:()=>Dqe,$ZodCUID2:()=>RUe,$ZodCUID:()=>NUe,$ZodCIDRv6:()=>ZUe,$ZodCIDRv4:()=>VUe,$ZodBoolean:()=>yee,$ZodBigIntFormat:()=>nqe,$ZodBigInt:()=>bee,$ZodBase64URL:()=>YUe,$ZodBase64:()=>GUe,$ZodAsyncError:()=>dg,$ZodArray:()=>dqe,$ZodAny:()=>aqe});var fBe=Object.freeze({status:"aborted"});function Le(t,e,n){function r(o,l){if(o._zod||Object.defineProperty(o,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),o._zod.traits.has(t))return;o._zod.traits.add(t),e(o,l);let c=a.prototype,u=Object.keys(c);for(let d=0;d{var l,c;return n!=null&&n.Parent&&o instanceof n.Parent?!0:(c=(l=o==null?void 0:o._zod)==null?void 0:l.traits)==null?void 0:c.has(t)}}),Object.defineProperty(a,"name",{value:t}),a}var hBe=Symbol("zod_brand");class dg extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class IA extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}var XE={};function Vo(t){return t&&Object.assign(XE,t),XE}var Jr={};Lp(Jr,{unwrapMessage:()=>R4,uint8ArrayToHex:()=>gvn,uint8ArrayToBase64url:()=>pvn,uint8ArrayToBase64:()=>kBe,stringifyPrimitive:()=>ar,slugify:()=>mBe,shallowClone:()=>vBe,safeExtend:()=>lvn,required:()=>dvn,randomString:()=>tvn,propertyKeyTypes:()=>e$,promiseAllObject:()=>evn,primitiveTypes:()=>yBe,prefixIssues:()=>Dd,pick:()=>svn,partial:()=>uvn,parsedType:()=>pr,optionalKeys:()=>bBe,omit:()=>avn,objectClone:()=>J2n,numKeys:()=>nvn,nullish:()=>C2,normalizeParams:()=>Mt,mergeDefs:()=>Pp,merge:()=>cvn,jsonStringifyReplacer:()=>QE,joinValues:()=>Tt,issue:()=>t$,isPlainObject:()=>Vg,isObject:()=>gb,hexToUint8Array:()=>mvn,getSizableOrigin:()=>OA,getParsedType:()=>rvn,getLengthableOrigin:()=>DA,getEnumValues:()=>QQ,getElementAtPath:()=>Q2n,floatSafeRemainder:()=>pBe,finalizeIssue:()=>td,extend:()=>ovn,escapeRegex:()=>Cp,esc:()=>CV,defineLazy:()=>qr,createTransparentProxy:()=>ivn,cloneDef:()=>X2n,clone:()=>cd,cleanRegex:()=>AA,cleanEnum:()=>fvn,captureStackTrace:()=>eee,cached:()=>ek,base64urlToUint8Array:()=>hvn,base64ToUint8Array:()=>_Be,assignProp:()=>qm,assertNotEqual:()=>Z2n,assertNever:()=>K2n,assertIs:()=>G2n,assertEqual:()=>V2n,assert:()=>Y2n,allowsEval:()=>gBe,aborted:()=>G1,NUMBER_FORMAT_RANGES:()=>xBe,Class:()=>vvn,BIGINT_FORMAT_RANGES:()=>wBe});function V2n(t){return t}function Z2n(t){return t}function G2n(t){}function K2n(t){throw Error("Unexpected value in exhaustive check")}function Y2n(t){}function QQ(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,r])=>e.indexOf(+n)===-1).map(([n,r])=>r)}function Tt(t,e="|"){return t.map(n=>ar(n)).join(e)}function QE(t,e){return typeof e=="bigint"?e.toString():e}function ek(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function C2(t){return t==null}function AA(t){let e=t.startsWith("^")?1:0,n=t.endsWith("$")?t.length-1:t.length;return t.slice(e,n)}function pBe(t,e){let n=(t.toString().split(".")[1]||"").length,r=e.toString(),i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){let l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}let s=n>i?n:i,a=Number.parseInt(t.toFixed(s).replace(".","")),o=Number.parseInt(e.toFixed(s).replace(".",""));return a%o/10**s}var Lge=Symbol("evaluating");function qr(t,e,n){let r;Object.defineProperty(t,e,{get(){if(r!==Lge)return r===void 0&&(r=Lge,r=n()),r},set(i){Object.defineProperty(t,e,{value:i})},configurable:!0})}function J2n(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function qm(t,e,n){Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Pp(...t){let e={};for(let n of t){let r=Object.getOwnPropertyDescriptors(n);Object.assign(e,r)}return Object.defineProperties({},e)}function X2n(t){return Pp(t._zod.def)}function Q2n(t,e){return e?e.reduce((n,r)=>n==null?void 0:n[r],t):t}function evn(t){let e=Object.keys(t),n=e.map(r=>t[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;s{};function gb(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var gBe=ek(()=>{var t;if(typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)!=null&&t.includes("Cloudflare")))return!1;try{return new Function(""),!0}catch{return!1}});function Vg(t){if(gb(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let n=e.prototype;return!(gb(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function vBe(t){return Vg(t)?{...t}:Array.isArray(t)?[...t]:t}function nvn(t){let e=0;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}var rvn=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},e$=new Set(["string","number","symbol"]),yBe=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Cp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function cd(t,e,n){let r=new t._zod.constr(e??t._zod.def);return(!e||n!=null&&n.parent)&&(r._zod.parent=t),r}function Mt(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if((e==null?void 0:e.message)!==void 0){if((e==null?void 0:e.error)!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function ivn(t){let e;return new Proxy({},{get(n,r,i){return e??(e=t()),Reflect.get(e,r,i)},set(n,r,i,s){return e??(e=t()),Reflect.set(e,r,i,s)},has(n,r){return e??(e=t()),Reflect.has(e,r)},deleteProperty(n,r){return e??(e=t()),Reflect.deleteProperty(e,r)},ownKeys(n){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(n,r){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,r)},defineProperty(n,r,i){return e??(e=t()),Reflect.defineProperty(e,r,i)}})}function ar(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function bBe(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var xBe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},wBe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function svn(t,e){let n=t._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let i=Pp(t._zod.def,{get shape(){let s={};for(let a in e){if(!(a in n.shape))throw Error(`Unrecognized key: "${a}"`);e[a]&&(s[a]=n.shape[a])}return qm(this,"shape",s),s},checks:[]});return cd(t,i)}function avn(t,e){let n=t._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let i=Pp(t._zod.def,{get shape(){let s={...t._zod.def.shape};for(let a in e){if(!(a in n.shape))throw Error(`Unrecognized key: "${a}"`);e[a]&&delete s[a]}return qm(this,"shape",s),s},checks:[]});return cd(t,i)}function ovn(t,e){if(!Vg(e))throw Error("Invalid input to extend: expected a plain object");let n=t._zod.def.checks;if(n&&n.length>0){let i=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let r=Pp(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return qm(this,"shape",i),i}});return cd(t,r)}function lvn(t,e){if(!Vg(e))throw Error("Invalid input to safeExtend: expected a plain object");let n=Pp(t._zod.def,{get shape(){let r={...t._zod.def.shape,...e};return qm(this,"shape",r),r}});return cd(t,n)}function cvn(t,e){let n=Pp(t._zod.def,{get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return qm(this,"shape",r),r},get catchall(){return e._zod.def.catchall},checks:[]});return cd(t,n)}function uvn(t,e,n){let r=e._zod.def.checks;if(r&&r.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let i=Pp(e._zod.def,{get shape(){let s=e._zod.def.shape,a={...s};if(n)for(let o in n){if(!(o in s))throw Error(`Unrecognized key: "${o}"`);n[o]&&(a[o]=t?new t({type:"optional",innerType:s[o]}):s[o])}else for(let o in s)a[o]=t?new t({type:"optional",innerType:s[o]}):s[o];return qm(this,"shape",a),a},checks:[]});return cd(e,i)}function dvn(t,e,n){let r=Pp(e._zod.def,{get shape(){let i=e._zod.def.shape,s={...i};if(n)for(let a in n){if(!(a in s))throw Error(`Unrecognized key: "${a}"`);n[a]&&(s[a]=new t({type:"nonoptional",innerType:i[a]}))}else for(let a in i)s[a]=new t({type:"nonoptional",innerType:i[a]});return qm(this,"shape",s),s}});return cd(e,r)}function G1(t,e=0){var n;if(t.aborted===!0)return!0;for(let r=e;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(t),n})}function R4(t){return typeof t=="string"?t:t==null?void 0:t.message}function td(t,e,n){var i,s,a,o,l,c;let r={...t,path:t.path??[]};if(!t.message){let u=R4((a=(s=(i=t.inst)==null?void 0:i._zod.def)==null?void 0:s.error)==null?void 0:a.call(s,t))??R4((o=e==null?void 0:e.error)==null?void 0:o.call(e,t))??R4((l=n.customError)==null?void 0:l.call(n,t))??R4((c=n.localeError)==null?void 0:c.call(n,t))??"Invalid input";r.message=u}return delete r.inst,delete r.continue,!(e!=null&&e.reportInput)&&delete r.input,r}function OA(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function DA(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function pr(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let n=t;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return e}function t$(...t){let[e,n,r]=t;return typeof e=="string"?{message:e,code:"custom",input:n,inst:r}:{...e}}function fvn(t){return Object.entries(t).filter(([e,n])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function _Be(t){let e=atob(t),n=new Uint8Array(e.length);for(let r=0;re.toString(16).padStart(2,"0")).join("")}class vvn{constructor(...e){}}var SBe=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,QE,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},tee=Le("$ZodError",SBe),ru=Le("$ZodError",SBe,{Parent:Error});function nee(t,e=n=>n.message){let n={},r=[];for(let i of t.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(e(i))):r.push(e(i));return{formErrors:r,fieldErrors:n}}function ree(t,e=n=>n.message){let n={_errors:[]},r=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>r({issues:a}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(e(s));else{let a=n,o=0;for(;on.message){let n={errors:[]},r=(i,s=[])=>{var a,o;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{let c=[...s,...l.path];if(c.length===0){n.errors.push(e(l));continue}let u=n,d=0;for(;dtypeof r=="object"?r.key:r);for(let r of n)typeof r=="number"?e.push(`[${r}]`):typeof r=="symbol"?e.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?e.push(`[${JSON.stringify(r)}]`):(e.length&&e.push("."),e.push(r));return e.join("")}function $Be(t){var r;let e=[],n=[...t.issues].sort((i,s)=>(i.path??[]).length-(s.path??[]).length);for(let i of n)e.push(`✖ ${i.message}`),(r=i.path)!=null&&r.length&&e.push(` → at ${EBe(i.path)}`);return e.join(` +`)}var tk=t=>(e,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new dg;if(a.issues.length){let o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>td(l,s,Vo())));throw eee(o,i==null?void 0:i.callee),o}return a.value},EV=tk(ru),nk=t=>async(e,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},a=e._zod.run({value:n,issues:[]},s);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new((i==null?void 0:i.Err)??t)(a.issues.map(l=>td(l,s,Vo())));throw eee(o,i==null?void 0:i.callee),o}return a.value},$V=nk(ru),rk=t=>(e,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=e._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new dg;return s.issues.length?{success:!1,error:new(t??tee)(s.issues.map(a=>td(a,i,Vo())))}:{success:!0,data:s.value}},TBe=rk(ru),ik=t=>async(e,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=e._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new t(s.issues.map(a=>td(a,i,Vo())))}:{success:!0,data:s.value}},IBe=ik(ru),iee=t=>(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return tk(t)(e,n,i)},yvn=iee(ru),see=t=>(e,n,r)=>tk(t)(e,n,r),bvn=see(ru),aee=t=>async(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return nk(t)(e,n,i)},xvn=aee(ru),oee=t=>async(e,n,r)=>nk(t)(e,n,r),wvn=oee(ru),lee=t=>(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return rk(t)(e,n,i)},_vn=lee(ru),cee=t=>(e,n,r)=>rk(t)(e,n,r),kvn=cee(ru),uee=t=>async(e,n,r)=>{let i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ik(t)(e,n,i)},Svn=uee(ru),dee=t=>async(e,n,r)=>ik(t)(e,n,r),Cvn=dee(ru),E2={};Lp(E2,{xid:()=>MBe,uuid7:()=>Ivn,uuid6:()=>Tvn,uuid4:()=>$vn,uuid:()=>vb,uppercase:()=>aUe,unicodeEmail:()=>zBe,undefined:()=>iUe,ulid:()=>DBe,time:()=>JBe,string:()=>QBe,sha512_hex:()=>Yvn,sha512_base64url:()=>Xvn,sha512_base64:()=>Jvn,sha384_hex:()=>Zvn,sha384_base64url:()=>Kvn,sha384_base64:()=>Gvn,sha256_hex:()=>Hvn,sha256_base64url:()=>Vvn,sha256_base64:()=>Wvn,sha1_hex:()=>Bvn,sha1_base64url:()=>qvn,sha1_base64:()=>Uvn,rfc5322Email:()=>Ovn,number:()=>hee,null:()=>rUe,nanoid:()=>RBe,md5_hex:()=>jvn,md5_base64url:()=>Fvn,md5_base64:()=>zvn,mac:()=>qBe,lowercase:()=>sUe,ksuid:()=>NBe,ipv6:()=>UBe,ipv4:()=>BBe,integer:()=>tUe,idnEmail:()=>Dvn,html5Email:()=>Avn,hostname:()=>Rvn,hex:()=>Pvn,guid:()=>PBe,extendedDuration:()=>Evn,emoji:()=>FBe,email:()=>jBe,e164:()=>ZBe,duration:()=>LBe,domain:()=>Lvn,datetime:()=>XBe,date:()=>KBe,cuid2:()=>OBe,cuid:()=>ABe,cidrv6:()=>WBe,cidrv4:()=>HBe,browserEmail:()=>Mvn,boolean:()=>nUe,bigint:()=>eUe,base64url:()=>fee,base64:()=>VBe});var ABe=/^[cC][^\s-]{8,}$/,OBe=/^[0-9a-z]+$/,DBe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,MBe=/^[0-9a-vA-V]{20}$/,NBe=/^[A-Za-z0-9]{27}$/,RBe=/^[a-zA-Z0-9_-]{21}$/,LBe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Evn=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,PBe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,vb=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,$vn=vb(4),Tvn=vb(6),Ivn=vb(7),jBe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Avn=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ovn=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,zBe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Dvn=zBe,Mvn=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Nvn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function FBe(){return new RegExp(Nvn,"u")}var BBe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,UBe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,qBe=t=>{let e=Cp(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},HBe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,WBe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,VBe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fee=/^[A-Za-z0-9_-]*$/,Rvn=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Lvn=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,ZBe=/^\+[1-9]\d{6,14}$/,GBe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",KBe=new RegExp(`^${GBe}$`);function YBe(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function JBe(t){return new RegExp(`^${YBe(t)}$`)}function XBe(t){let e=YBe({precision:t.precision}),n=["Z"];t.local&&n.push(""),t.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let r=`${e}(?:${n.join("|")})`;return new RegExp(`^${GBe}T(?:${r})$`)}var QBe=t=>{let e=t?`[\\s\\S]{${(t==null?void 0:t.minimum)??0},${(t==null?void 0:t.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},eUe=/^-?\d+n?$/,tUe=/^-?\d+$/,hee=/^-?\d+(?:\.\d+)?$/,nUe=/^(?:true|false)$/i,rUe=/^null$/i,iUe=/^undefined$/i,sUe=/^[^A-Z]*$/,aUe=/^[^a-z]*$/,Pvn=/^[0-9a-fA-F]*$/;function sk(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function ak(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var jvn=/^[0-9a-fA-F]{32}$/,zvn=sk(22,"=="),Fvn=ak(22),Bvn=/^[0-9a-fA-F]{40}$/,Uvn=sk(27,"="),qvn=ak(27),Hvn=/^[0-9a-fA-F]{64}$/,Wvn=sk(43,"="),Vvn=ak(43),Zvn=/^[0-9a-fA-F]{96}$/,Gvn=sk(64,""),Kvn=ak(64),Yvn=/^[0-9a-fA-F]{128}$/,Jvn=sk(86,"=="),Xvn=ak(86),Is=Le("$ZodCheck",(t,e)=>{var n;t._zod??(t._zod={}),t._zod.def=e,(n=t._zod).onattach??(n.onattach=[])}),oUe={number:"number",bigint:"bigint",object:"date"},pee=Le("$ZodCheckLessThan",(t,e)=>{Is.init(t,e);let n=oUe[typeof e.value];t._zod.onattach.push(r=>{let i=r._zod.bag,s=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?r.value<=e.value:r.value{Is.init(t,e);let n=oUe[typeof e.value];t._zod.onattach.push(r=>{let i=r._zod.bag,s=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>s&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=r=>{(e.inclusive?r.value>=e.value:r.value>e.value)||r.issues.push({origin:n,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:r.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),lUe=Le("$ZodCheckMultipleOf",(t,e)=>{Is.init(t,e),t._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=e.value)}),t._zod.check=n=>{if(typeof n.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%e.value===BigInt(0):pBe(n.value,e.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:e.value,input:n.value,inst:t,continue:!e.abort})}}),cUe=Le("$ZodCheckNumberFormat",(t,e)=>{var a;Is.init(t,e),e.format=e.format||"float64";let n=(a=e.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,s]=xBe[e.format];t._zod.onattach.push(o=>{let l=o._zod.bag;l.format=e.format,l.minimum=i,l.maximum=s,n&&(l.pattern=tUe)}),t._zod.check=o=>{let l=o.value;if(n){if(!Number.isInteger(l)){o.issues.push({expected:r,format:e.format,code:"invalid_type",continue:!1,input:l,inst:t});return}if(!Number.isSafeInteger(l)){l>0?o.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,inclusive:!0,continue:!e.abort}):o.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:r,inclusive:!0,continue:!e.abort});return}}ls&&o.issues.push({origin:"number",input:l,code:"too_big",maximum:s,inclusive:!0,inst:t,continue:!e.abort})}}),uUe=Le("$ZodCheckBigIntFormat",(t,e)=>{Is.init(t,e);let[n,r]=wBe[e.format];t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,s.minimum=n,s.maximum=r}),t._zod.check=i=>{let s=i.value;sr&&i.issues.push({origin:"bigint",input:s,code:"too_big",maximum:r,inclusive:!0,inst:t,continue:!e.abort})}}),dUe=Le("$ZodCheckMaxSize",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=r.value;i.size<=e.maximum||r.issues.push({origin:OA(i),code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),fUe=Le("$ZodCheckMinSize",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let i=r.value;i.size>=e.minimum||r.issues.push({origin:OA(i),code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),hUe=Le("$ZodCheckSizeEquals",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.size!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=e.size,i.maximum=e.size,i.size=e.size}),t._zod.check=r=>{let i=r.value,s=i.size;if(s===e.size)return;let a=s>e.size;r.issues.push({origin:OA(i),...a?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),pUe=Le("$ZodCheckMaxLength",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let i=r.value;if(i.length<=e.maximum)return;let s=DA(i);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),mUe=Le("$ZodCheckMinLength",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let i=r.value;if(i.length>=e.minimum)return;let s=DA(i);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),gUe=Le("$ZodCheckLengthEquals",(t,e)=>{var n;Is.init(t,e),(n=t._zod.def).when??(n.when=r=>{let i=r.value;return!C2(i)&&i.length!==void 0}),t._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=r=>{let i=r.value,s=i.length;if(s===e.length)return;let a=DA(i),o=s>e.length;r.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),ok=Le("$ZodCheckStringFormat",(t,e)=>{var n,r;Is.init(t,e),t._zod.onattach.push(i=>{let s=i._zod.bag;s.format=e.format,e.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(e.pattern))}),e.pattern?(n=t._zod).check??(n.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(r=t._zod).check??(r.check=()=>{})}),vUe=Le("$ZodCheckRegex",(t,e)=>{ok.init(t,e),t._zod.check=n=>{e.pattern.lastIndex=0,!e.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),yUe=Le("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=sUe),ok.init(t,e)}),bUe=Le("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=aUe),ok.init(t,e)}),xUe=Le("$ZodCheckIncludes",(t,e)=>{Is.init(t,e);let n=Cp(e.includes),r=new RegExp(typeof e.position=="number"?`^.{${e.position}}${n}`:n);e.pattern=r,t._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),wUe=Le("$ZodCheckStartsWith",(t,e)=>{Is.init(t,e);let n=new RegExp(`^${Cp(e.prefix)}.*`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.startsWith(e.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:r.value,inst:t,continue:!e.abort})}}),_Ue=Le("$ZodCheckEndsWith",(t,e)=>{Is.init(t,e);let n=new RegExp(`.*${Cp(e.suffix)}$`);e.pattern??(e.pattern=n),t._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=r=>{r.value.endsWith(e.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:r.value,inst:t,continue:!e.abort})}});function Pge(t,e,n){t.issues.length&&e.issues.push(...Dd(n,t.issues))}var kUe=Le("$ZodCheckProperty",(t,e)=>{Is.init(t,e),t._zod.check=n=>{let r=e.schema._zod.run({value:n.value[e.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>Pge(i,n,e.property));Pge(r,n,e.property)}}),SUe=Le("$ZodCheckMimeType",(t,e)=>{Is.init(t,e);let n=new Set(e.mime);t._zod.onattach.push(r=>{r._zod.bag.mime=e.mime}),t._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:e.mime,input:r.value.type,inst:t,continue:!e.abort})}}),CUe=Le("$ZodCheckOverwrite",(t,e)=>{Is.init(t,e),t._zod.check=n=>{n.value=e.tx(n.value)}});class EUe{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`).filter(s=>s),r=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(r)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let e=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new e(...n,r.join(` +`))}}var $Ue={major:4,minor:3,patch:5},kr=Le("$ZodType",(t,e)=>{var i;var n;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=$Ue;let r=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&r.unshift(t);for(let s of r)for(let a of s._zod.onattach)a(t);if(r.length===0)(n=t._zod).deferred??(n.deferred=[]),(i=t._zod.deferred)==null||i.push(()=>{t._zod.run=t._zod.parse});else{let s=(o,l,c)=>{let u=G1(o),d;for(let f of l){if(f._zod.def.when){if(!f._zod.def.when(o))continue}else if(u)continue;let h=o.issues.length,m=f._zod.check(o);if(m instanceof Promise&&(c==null?void 0:c.async)===!1)throw new dg;if(d||m instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await m,o.issues.length!==h&&(u||(u=G1(o,h)))});else{if(o.issues.length===h)continue;u||(u=G1(o,h))}}return d?d.then(()=>o):o},a=(o,l,c)=>{if(G1(o))return o.aborted=!0,o;let u=s(l,r,c);if(u instanceof Promise){if(c.async===!1)throw new dg;return u.then(d=>t._zod.parse(d,c))}return t._zod.parse(u,c)};t._zod.run=(o,l)=>{if(l.skipChecks)return t._zod.parse(o,l);if(l.direction==="backward"){let u=t._zod.parse({value:o.value,issues:[]},{...l,skipChecks:!0});return u instanceof Promise?u.then(d=>a(d,o,l)):a(u,o,l)}let c=t._zod.parse(o,l);if(c instanceof Promise){if(l.async===!1)throw new dg;return c.then(u=>s(u,r,l))}return s(c,r,l)}}qr(t,"~standard",()=>({validate:s=>{var a;try{let o=TBe(t,s);return o.success?{value:o.data}:{issues:(a=o.error)==null?void 0:a.issues}}catch{return IBe(t,s).then(l=>{var c;return l.success?{value:l.data}:{issues:(c=l.error)==null?void 0:c.issues}})}},vendor:"zod",version:1}))}),lk=Le("$ZodString",(t,e)=>{var n;kr.init(t,e),t._zod.pattern=[...((n=t==null?void 0:t._zod.bag)==null?void 0:n.patterns)??[]].pop()??QBe(t._zod.bag),t._zod.parse=(r,i)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Qi=Le("$ZodStringFormat",(t,e)=>{ok.init(t,e),lk.init(t,e)}),TUe=Le("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=PBe),Qi.init(t,e)}),IUe=Le("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=vb(n))}else e.pattern??(e.pattern=vb());Qi.init(t,e)}),AUe=Le("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=jBe),Qi.init(t,e)}),OUe=Le("$ZodURL",(t,e)=>{Qi.init(t,e),t._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);e.hostname&&(e.hostname.lastIndex=0,!e.hostname.test(i.hostname)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:n.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,!e.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)&&n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:n.value,inst:t,continue:!e.abort})),e.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:t,continue:!e.abort})}}}),DUe=Le("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=FBe()),Qi.init(t,e)}),MUe=Le("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=RBe),Qi.init(t,e)}),NUe=Le("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=ABe),Qi.init(t,e)}),RUe=Le("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=OBe),Qi.init(t,e)}),LUe=Le("$ZodULID",(t,e)=>{e.pattern??(e.pattern=DBe),Qi.init(t,e)}),PUe=Le("$ZodXID",(t,e)=>{e.pattern??(e.pattern=MBe),Qi.init(t,e)}),jUe=Le("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=NBe),Qi.init(t,e)}),zUe=Le("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=XBe(e)),Qi.init(t,e)}),FUe=Le("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=KBe),Qi.init(t,e)}),BUe=Le("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=JBe(e)),Qi.init(t,e)}),UUe=Le("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=LBe),Qi.init(t,e)}),qUe=Le("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=BBe),Qi.init(t,e),t._zod.bag.format="ipv4"}),HUe=Le("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=UBe),Qi.init(t,e),t._zod.bag.format="ipv6",t._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:t,continue:!e.abort})}}}),WUe=Le("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=qBe(e.delimiter)),Qi.init(t,e),t._zod.bag.format="mac"}),VUe=Le("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=HBe),Qi.init(t,e)}),ZUe=Le("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=WBe),Qi.init(t,e),t._zod.check=n=>{let r=n.value.split("/");try{if(r.length!==2)throw Error();let[i,s]=r;if(!s)throw Error();let a=Number(s);if(`${a}`!==s||a<0||a>128)throw Error();new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:t,continue:!e.abort})}}});function gee(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var GUe=Le("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=VBe),Qi.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=n=>{gee(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:t,continue:!e.abort})}});function KUe(t){if(!fee.test(t))return!1;let e=t.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=e.padEnd(Math.ceil(e.length/4)*4,"=");return gee(n)}var YUe=Le("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=fee),Qi.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=n=>{KUe(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:t,continue:!e.abort})}}),JUe=Le("$ZodE164",(t,e)=>{e.pattern??(e.pattern=ZBe),Qi.init(t,e)});function XUe(t,e=null){try{let n=t.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}var QUe=Le("$ZodJWT",(t,e)=>{Qi.init(t,e),t._zod.check=n=>{XUe(n.value,e.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:t,continue:!e.abort})}}),eqe=Le("$ZodCustomStringFormat",(t,e)=>{Qi.init(t,e),t._zod.check=n=>{e.fn(n.value)||n.issues.push({code:"invalid_format",format:e.format,input:n.value,inst:t,continue:!e.abort})}}),vee=Le("$ZodNumber",(t,e)=>{kr.init(t,e),t._zod.pattern=t._zod.bag.pattern??hee,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...s?{received:s}:{}}),n}}),tqe=Le("$ZodNumberFormat",(t,e)=>{cUe.init(t,e),vee.init(t,e)}),yee=Le("$ZodBoolean",(t,e)=>{kr.init(t,e),t._zod.pattern=nUe,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),n}}),bee=Le("$ZodBigInt",(t,e)=>{kr.init(t,e),t._zod.pattern=eUe,t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:t}),n}}),nqe=Le("$ZodBigIntFormat",(t,e)=>{uUe.init(t,e),bee.init(t,e)}),rqe=Le("$ZodSymbol",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:t}),n}}),iqe=Le("$ZodUndefined",(t,e)=>{kr.init(t,e),t._zod.pattern=iUe,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(n,r)=>{let i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:t}),n}}),sqe=Le("$ZodNull",(t,e)=>{kr.init(t,e),t._zod.pattern=rUe,t._zod.values=new Set([null]),t._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:t}),n}}),aqe=Le("$ZodAny",(t,e)=>{kr.init(t,e),t._zod.parse=n=>n}),oqe=Le("$ZodUnknown",(t,e)=>{kr.init(t,e),t._zod.parse=n=>n}),lqe=Le("$ZodNever",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:t}),n)}),cqe=Le("$ZodVoid",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:t}),n}}),uqe=Le("$ZodDate",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{if(e.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,s=i instanceof Date;return s&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...s?{received:"Invalid Date"}:{},inst:t}),n}});function jge(t,e,n){t.issues.length&&e.issues.push(...Dd(n,t.issues)),e.value[n]=t.value}var dqe=Le("$ZodArray",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),n;n.value=Array(i.length);let s=[];for(let a=0;ajge(c,n,a))):jge(l,n,a)}return s.length?Promise.all(s).then(()=>n):n}});function n$(t,e,n,r,i){if(t.issues.length){if(i&&!(n in r))return;e.issues.push(...Dd(n,t.issues))}t.value===void 0?n in r&&(e.value[n]=void 0):e.value[n]=t.value}function fqe(t){var r,i,s,a;let e=Object.keys(t.shape);for(let o of e)if(!((a=(s=(i=(r=t.shape)==null?void 0:r[o])==null?void 0:i._zod)==null?void 0:s.traits)!=null&&a.has("$ZodType")))throw Error(`Invalid element at key "${o}": expected a Zod schema`);let n=bBe(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(n)}}function hqe(t,e,n,r,i,s){let a=[],o=i.keySet,l=i.catchall._zod,c=l.def.type,u=l.optout==="optional";for(let d in e){if(o.has(d))continue;if(c==="never"){a.push(d);continue}let f=l.run({value:e[d],issues:[]},r);f instanceof Promise?t.push(f.then(h=>n$(h,n,d,e,u))):n$(f,n,d,e,u)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:e,inst:s}),t.length?Promise.all(t).then(()=>n):n}var pqe=Le("$ZodObject",(t,e)=>{var a;if(kr.init(t,e),!((a=Object.getOwnPropertyDescriptor(e,"shape"))!=null&&a.get)){let o=e.shape;Object.defineProperty(e,"shape",{get:()=>{let l={...o};return Object.defineProperty(e,"shape",{value:l}),l}})}let n=ek(()=>fqe(e));qr(t._zod,"propValues",()=>{let o=e.shape,l={};for(let c in o){let u=o[c]._zod;if(u.values){l[c]??(l[c]=new Set);for(let d of u.values)l[c].add(d)}}return l});let r=gb,i=e.catchall,s;t._zod.parse=(o,l)=>{s??(s=n.value);let c=o.value;if(!r(c))return o.issues.push({expected:"object",code:"invalid_type",input:c,inst:t}),o;o.value={};let u=[],d=s.shape;for(let f of s.keys){let h=d[f],m=h._zod.optout==="optional",p=h._zod.run({value:c[f],issues:[]},l);p instanceof Promise?u.push(p.then(v=>n$(v,o,f,c,m))):n$(p,o,f,c,m)}return i?hqe(u,c,o,l,n.value,t):u.length?Promise.all(u).then(()=>o):o}}),mqe=Le("$ZodObjectJIT",(t,e)=>{pqe.init(t,e);let n=t._zod.parse,r=ek(()=>fqe(e)),i=d=>{var w,E;let f=new EUe(["shape","payload","ctx"]),h=r.value,m=S=>{let _=CV(S);return`shape[${_}]._zod.run({ value: input[${_}], issues: [] }, ctx)`};f.write("const input = payload.value;");let p=Object.create(null),v=0;for(let S of h.keys)p[S]=`key_${v++}`;f.write("const newResult = {};");for(let S of h.keys){let _=p[S],C=CV(S),T=((E=(w=d[S])==null?void 0:w._zod)==null?void 0:E.optout)==="optional";f.write(`const ${_} = ${m(S)};`),T?f.write(` + if (${_}.issues.length) { + if (${C} in input) { + payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + } + + if (${_}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${_}.value; + } + + `):f.write(` + if (${_}.issues.length) { + payload.issues = payload.issues.concat(${_}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + if (${_}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${_}.value; + } + + `)}f.write("payload.value = newResult;"),f.write("return payload;");let x=f.compile();return(S,_)=>x(d,S,_)},s,a=gb,o=!XE.jitless,l=o&&gBe.value,c=e.catchall,u;t._zod.parse=(d,f)=>{u??(u=r.value);let h=d.value;return a(h)?o&&l&&(f==null?void 0:f.async)===!1&&f.jitless!==!0?(s||(s=i(e.shape)),d=s(d,f),c?hqe([],h,d,f,u,t):d):n(d,f):(d.issues.push({expected:"object",code:"invalid_type",input:h,inst:t}),d)}});function zge(t,e,n,r){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;let i=t.filter(s=>!G1(s));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:t.map(s=>s.issues.map(a=>td(a,r,Vo())))}),e)}var MA=Le("$ZodUnion",(t,e)=>{kr.init(t,e),qr(t._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),qr(t._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),qr(t._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),qr(t._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){let i=e.options.map(s=>s._zod.pattern);return new RegExp(`^(${i.map(s=>AA(s.source)).join("|")})$`)}});let n=e.options.length===1,r=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(n)return r(i,s);let a=!1,o=[];for(let l of e.options){let c=l._zod.run({value:i.value,issues:[]},s);if(c instanceof Promise)o.push(c),a=!0;else{if(c.issues.length===0)return c;o.push(c)}}return a?Promise.all(o).then(l=>zge(l,i,t,s)):zge(o,i,t,s)}});function Fge(t,e,n,r){let i=t.filter(s=>s.issues.length===0);return i.length===1?(e.value=i[0].value,e):(i.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:t.map(s=>s.issues.map(a=>td(a,r,Vo())))}):e.issues.push({code:"invalid_union",input:e.value,inst:n,errors:[],inclusive:!1}),e)}var gqe=Le("$ZodXor",(t,e)=>{MA.init(t,e),e.inclusive=!1;let n=e.options.length===1,r=e.options[0]._zod.run;t._zod.parse=(i,s)=>{if(n)return r(i,s);let a=!1,o=[];for(let l of e.options){let c=l._zod.run({value:i.value,issues:[]},s);c instanceof Promise?(o.push(c),a=!0):o.push(c)}return a?Promise.all(o).then(l=>Fge(l,i,t,s)):Fge(o,i,t,s)}}),vqe=Le("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,MA.init(t,e);let n=t._zod.parse;qr(t._zod,"propValues",()=>{let i={};for(let s of e.options){let a=s._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[o,l]of Object.entries(a)){i[o]||(i[o]=new Set);for(let c of l)i[o].add(c)}}return i});let r=ek(()=>{var a;let i=e.options,s=new Map;for(let o of i){let l=(a=o._zod.propValues)==null?void 0:a[e.discriminator];if(!l||l.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let c of l){if(s.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});t._zod.parse=(i,s)=>{let a=i.value;if(!gb(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),i;let o=r.value.get(a==null?void 0:a[e.discriminator]);return o?o._zod.run(i,s):e.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:a,path:[e.discriminator],inst:t}),i)}}),yqe=Le("$ZodIntersection",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value,s=e.left._zod.run({value:i,issues:[]},r),a=e.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||a instanceof Promise?Promise.all([s,a]).then(([o,l])=>Bge(n,o,l)):Bge(n,s,a)}});function TV(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Vg(t)&&Vg(e)){let n=Object.keys(e),r=Object.keys(t).filter(s=>n.indexOf(s)!==-1),i={...t,...e};for(let s of r){let a=TV(t[s],e[s]);if(!a.valid)return{valid:!1,mergeErrorPath:[s,...a.mergeErrorPath]};i[s]=a.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;ro.l&&o.r).map(([o])=>o);if(s.length&&i&&t.issues.push({...i,keys:s}),G1(t))return t;let a=TV(e.value,n.value);if(!a.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return t.value=a.data,t}var xee=Le("$ZodTuple",(t,e)=>{kr.init(t,e);let n=e.items;t._zod.parse=(r,i)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({input:s,inst:t,expected:"tuple",code:"invalid_type"}),r;r.value=[];let a=[],o=[...n].reverse().findIndex(u=>u._zod.optin!=="optional"),l=o===-1?0:n.length-o;if(!e.rest){let u=s.length>n.length,d=s.length=s.length&&c>=l)continue;let d=u._zod.run({value:s[c],issues:[]},i);d instanceof Promise?a.push(d.then(f=>s8(f,r,c))):s8(d,r,c)}if(e.rest){let u=s.slice(n.length);for(let d of u){c++;let f=e.rest._zod.run({value:d,issues:[]},i);f instanceof Promise?a.push(f.then(h=>s8(h,r,c))):s8(f,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function s8(t,e,n){t.issues.length&&e.issues.push(...Dd(n,t.issues)),e.value[n]=t.value}var bqe=Le("$ZodRecord",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!Vg(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:t}),n;let s=[],a=e.keyType._zod.values;if(a){n.value={};let o=new Set;for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){o.add(typeof c=="number"?c.toString():c);let u=e.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(d=>{d.issues.length&&n.issues.push(...Dd(c,d.issues)),n.value[c]=d.value})):(u.issues.length&&n.issues.push(...Dd(c,u.issues)),n.value[c]=u.value)}let l;for(let c in i)o.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:t,keys:l})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let l=e.keyType._zod.run({value:o,issues:[]},r);if(l instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof o=="string"&&hee.test(o)&&l.issues.length&&l.issues.some(u=>u.code==="invalid_type"&&u.expected==="number")){let u=e.keyType._zod.run({value:Number(o),issues:[]},r);if(u instanceof Promise)throw Error("Async schemas not supported in object keys currently");u.issues.length===0&&(l=u)}if(l.issues.length){e.mode==="loose"?n.value[o]=i[o]:n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(u=>td(u,r,Vo())),input:o,path:[o],inst:t});continue}let c=e.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...Dd(o,u.issues)),n.value[l.value]=u.value})):(c.issues.length&&n.issues.push(...Dd(o,c.issues)),n.value[l.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),xqe=Le("$ZodMap",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:t}),n;let s=[];n.value=new Map;for(let[a,o]of i){let l=e.keyType._zod.run({value:a,issues:[]},r),c=e.valueType._zod.run({value:o,issues:[]},r);l instanceof Promise||c instanceof Promise?s.push(Promise.all([l,c]).then(([u,d])=>{Uge(u,d,n,a,i,t,r)})):Uge(l,c,n,a,i,t,r)}return s.length?Promise.all(s).then(()=>n):n}});function Uge(t,e,n,r,i,s,a){t.issues.length&&(e$.has(typeof r)?n.issues.push(...Dd(r,t.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:s,issues:t.issues.map(o=>td(o,a,Vo()))})),e.issues.length&&(e$.has(typeof r)?n.issues.push(...Dd(r,e.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:s,key:r,issues:e.issues.map(o=>td(o,a,Vo()))})),n.value.set(t.value,e.value)}var wqe=Le("$ZodSet",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:t,expected:"set",code:"invalid_type"}),n;let s=[];n.value=new Set;for(let a of i){let o=e.valueType._zod.run({value:a,issues:[]},r);o instanceof Promise?s.push(o.then(l=>qge(l,n))):qge(o,n)}return s.length?Promise.all(s).then(()=>n):n}});function qge(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var _qe=Le("$ZodEnum",(t,e)=>{kr.init(t,e);let n=QQ(e.entries),r=new Set(n);t._zod.values=r,t._zod.pattern=new RegExp(`^(${n.filter(i=>e$.has(typeof i)).map(i=>typeof i=="string"?Cp(i):i.toString()).join("|")})$`),t._zod.parse=(i,s)=>{let a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:t}),i}}),kqe=Le("$ZodLiteral",(t,e)=>{if(kr.init(t,e),e.values.length===0)throw Error("Cannot create literal schema with no valid values");let n=new Set(e.values);t._zod.values=n,t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?Cp(r):r?Cp(r.toString()):String(r)).join("|")})$`),t._zod.parse=(r,i)=>{let s=r.value;return n.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),Sqe=Le("$ZodFile",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{let i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:t}),n}}),Cqe=Le("$ZodTransform",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new IA(t.constructor.name);let i=e.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(s=>(n.value=s,n));if(i instanceof Promise)throw new dg;return n.value=i,n}});function Hge(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var wee=Le("$ZodOptional",(t,e)=>{kr.init(t,e),t._zod.optin="optional",t._zod.optout="optional",qr(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),qr(t._zod,"pattern",()=>{let n=e.innerType._zod.pattern;return n?new RegExp(`^(${AA(n.source)})?$`):void 0}),t._zod.parse=(n,r)=>{if(e.innerType._zod.optin==="optional"){let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Hge(s,n.value)):Hge(i,n.value)}return n.value===void 0?n:e.innerType._zod.run(n,r)}}),Eqe=Le("$ZodExactOptional",(t,e)=>{wee.init(t,e),qr(t._zod,"values",()=>e.innerType._zod.values),qr(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(n,r)=>e.innerType._zod.run(n,r)}),$qe=Le("$ZodNullable",(t,e)=>{kr.init(t,e),qr(t._zod,"optin",()=>e.innerType._zod.optin),qr(t._zod,"optout",()=>e.innerType._zod.optout),qr(t._zod,"pattern",()=>{let n=e.innerType._zod.pattern;return n?new RegExp(`^(${AA(n.source)}|null)$`):void 0}),qr(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(n,r)=>n.value===null?n:e.innerType._zod.run(n,r)}),Tqe=Le("$ZodDefault",(t,e)=>{kr.init(t,e),t._zod.optin="optional",qr(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);if(n.value===void 0)return n.value=e.defaultValue,n;let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Wge(s,e)):Wge(i,e)}});function Wge(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Iqe=Le("$ZodPrefault",(t,e)=>{kr.init(t,e),t._zod.optin="optional",qr(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=e.defaultValue),e.innerType._zod.run(n,r))}),Aqe=Le("$ZodNonOptional",(t,e)=>{kr.init(t,e),qr(t._zod,"values",()=>{let n=e.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),t._zod.parse=(n,r)=>{let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Vge(s,t)):Vge(i,t)}});function Vge(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var Oqe=Le("$ZodSuccess",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new IA("ZodSuccess");let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),Dqe=Le("$ZodCatch",(t,e)=>{kr.init(t,e),qr(t._zod,"optin",()=>e.innerType._zod.optin),qr(t._zod,"optout",()=>e.innerType._zod.optout),qr(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=e.catchValue({...n,error:{issues:s.issues.map(a=>td(a,r,Vo()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=e.catchValue({...n,error:{issues:i.issues.map(s=>td(s,r,Vo()))},input:n.value}),n.issues=[]),n)}}),Mqe=Le("$ZodNaN",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:t,expected:"nan",code:"invalid_type"}),n)}),Nqe=Le("$ZodPipe",(t,e)=>{kr.init(t,e),qr(t._zod,"values",()=>e.in._zod.values),qr(t._zod,"optin",()=>e.in._zod.optin),qr(t._zod,"optout",()=>e.out._zod.optout),qr(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(n,r)=>{if(r.direction==="backward"){let s=e.out._zod.run(n,r);return s instanceof Promise?s.then(a=>a8(a,e.in,r)):a8(s,e.in,r)}let i=e.in._zod.run(n,r);return i instanceof Promise?i.then(s=>a8(s,e.out,r)):a8(i,e.out,r)}});function a8(t,e,n){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},n)}var _ee=Le("$ZodCodec",(t,e)=>{kr.init(t,e),qr(t._zod,"values",()=>e.in._zod.values),qr(t._zod,"optin",()=>e.in._zod.optin),qr(t._zod,"optout",()=>e.out._zod.optout),qr(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){let i=e.in._zod.run(n,r);return i instanceof Promise?i.then(s=>o8(s,e,r)):o8(i,e,r)}else{let i=e.out._zod.run(n,r);return i instanceof Promise?i.then(s=>o8(s,e,r)):o8(i,e,r)}}});function o8(t,e,n){if(t.issues.length)return t.aborted=!0,t;if((n.direction||"forward")==="forward"){let r=e.transform(t.value,t);return r instanceof Promise?r.then(i=>l8(t,i,e.out,n)):l8(t,r,e.out,n)}else{let r=e.reverseTransform(t.value,t);return r instanceof Promise?r.then(i=>l8(t,i,e.in,n)):l8(t,r,e.in,n)}}function l8(t,e,n,r){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:e,issues:t.issues},r)}var Rqe=Le("$ZodReadonly",(t,e)=>{kr.init(t,e),qr(t._zod,"propValues",()=>e.innerType._zod.propValues),qr(t._zod,"values",()=>e.innerType._zod.values),qr(t._zod,"optin",()=>{var n,r;return(r=(n=e.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),qr(t._zod,"optout",()=>{var n,r;return(r=(n=e.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),t._zod.parse=(n,r)=>{if(r.direction==="backward")return e.innerType._zod.run(n,r);let i=e.innerType._zod.run(n,r);return i instanceof Promise?i.then(Zge):Zge(i)}});function Zge(t){return t.value=Object.freeze(t.value),t}var Lqe=Le("$ZodTemplateLiteral",(t,e)=>{kr.init(t,e);let n=[];for(let r of e.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);let i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw Error(`Invalid template literal part: ${r._zod.traits}`);let s=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(s,a))}else if(r===null||yBe.has(typeof r))n.push(Cp(`${r}`));else throw Error(`Invalid template literal part: ${r}`);t._zod.pattern=new RegExp(`^${n.join("")}$`),t._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:t,expected:"string",code:"invalid_type"}),r):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:t,code:"invalid_format",format:e.format??"template_literal",pattern:t._zod.pattern.source}),r)}),Pqe=Le("$ZodFunction",(t,e)=>(kr.init(t,e),t._def=e,t._zod.def=e,t.implement=n=>{if(typeof n!="function")throw Error("implement() must be called with a function");return function(...r){let i=t._def.input?EV(t._def.input,r):r,s=Reflect.apply(n,this,i);return t._def.output?EV(t._def.output,s):s}},t.implementAsync=n=>{if(typeof n!="function")throw Error("implementAsync() must be called with a function");return async function(...r){let i=t._def.input?await $V(t._def.input,r):r,s=await Reflect.apply(n,this,i);return t._def.output?await $V(t._def.output,s):s}},t._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:t}),n):(t._def.output&&t._def.output._zod.def.type==="promise"?n.value=t.implementAsync(n.value):n.value=t.implement(n.value),n),t.input=(...n)=>{let r=t.constructor;return Array.isArray(n[0])?new r({type:"function",input:new xee({type:"tuple",items:n[0],rest:n[1]}),output:t._def.output}):new r({type:"function",input:n[0],output:t._def.output})},t.output=n=>new t.constructor({type:"function",input:t._def.input,output:n}),t)),jqe=Le("$ZodPromise",(t,e)=>{kr.init(t,e),t._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>e.innerType._zod.run({value:i,issues:[]},r))}),zqe=Le("$ZodLazy",(t,e)=>{kr.init(t,e),qr(t._zod,"innerType",()=>e.getter()),qr(t._zod,"pattern",()=>{var n,r;return(r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),qr(t._zod,"propValues",()=>{var n,r;return(r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),qr(t._zod,"optin",()=>{var n,r;return((r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),qr(t._zod,"optout",()=>{var n,r;return((r=(n=t._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),t._zod.parse=(n,r)=>t._zod.innerType._zod.run(n,r)}),Fqe=Le("$ZodCustom",(t,e)=>{Is.init(t,e),kr.init(t,e),t._zod.parse=(n,r)=>n,t._zod.check=n=>{let r=n.value,i=e.fn(r);if(i instanceof Promise)return i.then(s=>Gge(s,n,r,t));Gge(i,n,r,t)}});function Gge(t,e,n,r){if(!t){let i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),e.issues.push(t$(i))}}var kee={};Lp(kee,{zhTW:()=>Rbn,zhCN:()=>Mbn,yo:()=>Pbn,vi:()=>Obn,uz:()=>Ibn,ur:()=>$bn,uk:()=>qqe,ua:()=>Cbn,tr:()=>kbn,th:()=>wbn,ta:()=>bbn,sv:()=>vbn,sl:()=>mbn,ru:()=>hbn,pt:()=>dbn,ps:()=>obn,pl:()=>cbn,ota:()=>sbn,no:()=>rbn,nl:()=>tbn,ms:()=>Qyn,mk:()=>Jyn,lt:()=>Kyn,ko:()=>Zyn,km:()=>Uqe,kh:()=>Wyn,ka:()=>qyn,ja:()=>Byn,it:()=>zyn,is:()=>Pyn,id:()=>Ryn,hy:()=>Myn,hu:()=>Oyn,he:()=>Iyn,frCA:()=>$yn,fr:()=>Cyn,fi:()=>kyn,fa:()=>wyn,es:()=>byn,eo:()=>vyn,en:()=>Bqe,de:()=>pyn,da:()=>fyn,cs:()=>uyn,ca:()=>lyn,bg:()=>ayn,be:()=>iyn,az:()=>nyn,ar:()=>eyn});var Qvn=()=>{let t={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function e(i){return t[i]??null}let n={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`مدخلات غير مقبولة: يفترض إدخال instanceof ${i.expected}، ولكن تم إدخال ${o}`:`مدخلات غير مقبولة: يفترض إدخال ${s}، ولكن تم إدخال ${o}`}case"invalid_value":return i.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${ar(i.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?` أكبر من اللازم: يفترض أن تكون ${i.origin??"القيمة"} ${s} ${i.maximum.toString()} ${a.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${i.origin??"القيمة"} ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`أصغر من اللازم: يفترض لـ ${i.origin} أن يكون ${s} ${i.minimum.toString()} ${a.unit}`:`أصغر من اللازم: يفترض لـ ${i.origin} أن يكون ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${i.prefix}"`:s.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${s.suffix}"`:s.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${s.includes}"`:s.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${s.pattern}`:`${n[s.format]??i.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${i.divisor}`;case"unrecognized_keys":return`معرف${i.keys.length>1?"ات":""} غريب${i.keys.length>1?"ة":""}: ${Tt(i.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${i.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${i.origin}`;default:return"مدخل غير مقبول"}}};function eyn(){return{localeError:Qvn()}}var tyn=()=>{let t={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function e(i){return t[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Yanlış dəyər: gözlənilən instanceof ${i.expected}, daxil olan ${o}`:`Yanlış dəyər: gözlənilən ${s}, daxil olan ${o}`}case"invalid_value":return i.values.length===1?`Yanlış dəyər: gözlənilən ${ar(i.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Çox böyük: gözlənilən ${i.origin??"dəyər"} ${s}${i.maximum.toString()} ${a.unit??"element"}`:`Çox böyük: gözlənilən ${i.origin??"dəyər"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Çox kiçik: gözlənilən ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`Çox kiçik: gözlənilən ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Yanlış mətn: "${s.prefix}" ilə başlamalıdır`:s.format==="ends_with"?`Yanlış mətn: "${s.suffix}" ilə bitməlidir`:s.format==="includes"?`Yanlış mətn: "${s.includes}" daxil olmalıdır`:s.format==="regex"?`Yanlış mətn: ${s.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${n[s.format]??i.format}`}case"not_multiple_of":return`Yanlış ədəd: ${i.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${i.keys.length>1?"lar":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${i.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function nyn(){return{localeError:tyn()}}function Kge(t,e,n,r){let i=Math.abs(t),s=i%10,a=i%100;return a>=11&&a<=19?r:s===1?e:s>=2&&s<=4?n:r}var ryn=()=>{let t={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function e(i){return t[i]??null}let n={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"},r={nan:"NaN",number:"лік",array:"масіў"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Няправільны ўвод: чакаўся instanceof ${i.expected}, атрымана ${o}`:`Няправільны ўвод: чакаўся ${s}, атрымана ${o}`}case"invalid_value":return i.values.length===1?`Няправільны ўвод: чакалася ${ar(i.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Kge(o,a.unit.one,a.unit.few,a.unit.many);return`Занадта вялікі: чакалася, што ${i.origin??"значэнне"} павінна ${a.verb} ${s}${i.maximum.toString()} ${l}`}return`Занадта вялікі: чакалася, што ${i.origin??"значэнне"} павінна быць ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Kge(o,a.unit.one,a.unit.few,a.unit.many);return`Занадта малы: чакалася, што ${i.origin} павінна ${a.verb} ${s}${i.minimum.toString()} ${l}`}return`Занадта малы: чакалася, што ${i.origin} павінна быць ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${s.prefix}"`:s.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${s.suffix}"`:s.format==="includes"?`Няправільны радок: павінен змяшчаць "${s.includes}"`:s.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${s.pattern}`:`Няправільны ${n[s.format]??i.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${i.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${i.keys.length>1?"ключы":"ключ"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${i.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${i.origin}`;default:return"Няправільны ўвод"}}};function iyn(){return{localeError:ryn()}}var syn=()=>{let t={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function e(i){return t[i]??null}let n={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"},r={nan:"NaN",number:"число",array:"масив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Невалиден вход: очакван instanceof ${i.expected}, получен ${o}`:`Невалиден вход: очакван ${s}, получен ${o}`}case"invalid_value":return i.values.length===1?`Невалиден вход: очакван ${ar(i.values[0])}`:`Невалидна опция: очаквано едно от ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Твърде голямо: очаква се ${i.origin??"стойност"} да съдържа ${s}${i.maximum.toString()} ${a.unit??"елемента"}`:`Твърде голямо: очаква се ${i.origin??"стойност"} да бъде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Твърде малко: очаква се ${i.origin} да съдържа ${s}${i.minimum.toString()} ${a.unit}`:`Твърде малко: очаква се ${i.origin} да бъде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;if(s.format==="starts_with")return`Невалиден низ: трябва да започва с "${s.prefix}"`;if(s.format==="ends_with")return`Невалиден низ: трябва да завършва с "${s.suffix}"`;if(s.format==="includes")return`Невалиден низ: трябва да включва "${s.includes}"`;if(s.format==="regex")return`Невалиден низ: трябва да съвпада с ${s.pattern}`;let a="Невалиден";return s.format==="emoji"&&(a="Невалидно"),s.format==="datetime"&&(a="Невалидно"),s.format==="date"&&(a="Невалидна"),s.format==="time"&&(a="Невалидно"),s.format==="duration"&&(a="Невалидна"),`${a} ${n[s.format]??i.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${i.divisor}`;case"unrecognized_keys":return`Неразпознат${i.keys.length>1?"и":""} ключ${i.keys.length>1?"ове":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${i.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${i.origin}`;default:return"Невалиден вход"}}};function ayn(){return{localeError:syn()}}var oyn=()=>{let t={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(i){return t[i]??null}let n={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Tipus invàlid: s'esperava instanceof ${i.expected}, s'ha rebut ${o}`:`Tipus invàlid: s'esperava ${s}, s'ha rebut ${o}`}case"invalid_value":return i.values.length===1?`Valor invàlid: s'esperava ${ar(i.values[0])}`:`Opció invàlida: s'esperava una de ${Tt(i.values," o ")}`;case"too_big":{let s=i.inclusive?"com a màxim":"menys de",a=e(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingués ${s} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"com a mínim":"més de",a=e(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingués ${s} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Format invàlid: ha de començar amb "${s.prefix}"`:s.format==="ends_with"?`Format invàlid: ha d'acabar amb "${s.suffix}"`:s.format==="includes"?`Format invàlid: ha d'incloure "${s.includes}"`:s.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${s.pattern}`:`Format invàlid per a ${n[s.format]??i.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${i.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${i.origin}`;default:return"Entrada invàlida"}}};function lyn(){return{localeError:oyn()}}var cyn=()=>{let t={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function e(i){return t[i]??null}let n={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"},r={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Neplatný vstup: očekáváno instanceof ${i.expected}, obdrženo ${o}`:`Neplatný vstup: očekáváno ${s}, obdrženo ${o}`}case"invalid_value":return i.values.length===1?`Neplatný vstup: očekáváno ${ar(i.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Hodnota je příliš velká: ${i.origin??"hodnota"} musí mít ${s}${i.maximum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš velká: ${i.origin??"hodnota"} musí být ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Hodnota je příliš malá: ${i.origin??"hodnota"} musí mít ${s}${i.minimum.toString()} ${a.unit??"prvků"}`:`Hodnota je příliš malá: ${i.origin??"hodnota"} musí být ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Neplatný řetězec: musí začínat na "${s.prefix}"`:s.format==="ends_with"?`Neplatný řetězec: musí končit na "${s.suffix}"`:s.format==="includes"?`Neplatný řetězec: musí obsahovat "${s.includes}"`:s.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${s.pattern}`:`Neplatný formát ${n[s.format]??i.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${i.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${Tt(i.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${i.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${i.origin}`;default:return"Neplatný vstup"}}};function uyn(){return{localeError:cyn()}}var dyn=()=>{let t={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function e(i){return t[i]??null}let n={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},r={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ugyldigt input: forventede instanceof ${i.expected}, fik ${o}`:`Ugyldigt input: forventede ${s}, fik ${o}`}case"invalid_value":return i.values.length===1?`Ugyldig værdi: forventede ${ar(i.values[0])}`:`Ugyldigt valg: forventede en af følgende ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=r[i.origin]??i.origin;return a?`For stor: forventede ${o??"value"} ${a.verb} ${s} ${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor: forventede ${o??"value"} havde ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=r[i.origin]??i.origin;return a?`For lille: forventede ${o} ${a.verb} ${s} ${i.minimum.toString()} ${a.unit}`:`For lille: forventede ${o} havde ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche mønsteret ${s.pattern}`:`Ugyldig ${n[s.format]??i.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${i.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${i.origin}`;default:return"Ugyldigt input"}}};function fyn(){return{localeError:dyn()}}var hyn=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(i){return t[i]??null}let n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},r={nan:"NaN",number:"Zahl",array:"Array"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ungültige Eingabe: erwartet instanceof ${i.expected}, erhalten ${o}`:`Ungültige Eingabe: erwartet ${s}, erhalten ${o}`}case"invalid_value":return i.values.length===1?`Ungültige Eingabe: erwartet ${ar(i.values[0])}`:`Ungültige Option: erwartet eine von ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Zu groß: erwartet, dass ${i.origin??"Wert"} ${s}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${i.origin??"Wert"} ${s}${i.maximum.toString()} ist`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${s}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${s}${i.minimum.toString()} ist`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ungültiger String: muss mit "${s.prefix}" beginnen`:s.format==="ends_with"?`Ungültiger String: muss mit "${s.suffix}" enden`:s.format==="includes"?`Ungültiger String: muss "${s.includes}" enthalten`:s.format==="regex"?`Ungültiger String: muss dem Muster ${s.pattern} entsprechen`:`Ungültig: ${n[s.format]??i.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${i.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${i.origin}`;default:return"Ungültige Eingabe"}}};function pyn(){return{localeError:hyn()}}var myn=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(i){return t[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return`Invalid input: expected ${s}, received ${o}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${ar(i.values[0])}`:`Invalid option: expected one of ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${a.unit}`:`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function Bqe(){return{localeError:myn()}}var gyn=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(i){return t[i]??null}let n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},r={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Nevalida enigo: atendiĝis instanceof ${i.expected}, riceviĝis ${o}`:`Nevalida enigo: atendiĝis ${s}, riceviĝis ${o}`}case"invalid_value":return i.values.length===1?`Nevalida enigo: atendiĝis ${ar(i.values[0])}`:`Nevalida opcio: atendiĝis unu el ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Tro granda: atendiĝis ke ${i.origin??"valoro"} havu ${s}${i.maximum.toString()} ${a.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${i.origin??"valoro"} havu ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Tro malgranda: atendiĝis ke ${i.origin} havu ${s}${i.minimum.toString()} ${a.unit}`:`Tro malgranda: atendiĝis ke ${i.origin} estu ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${n[s.format]??i.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${i.divisor}`;case"unrecognized_keys":return`Nekonata${i.keys.length>1?"j":""} ŝlosilo${i.keys.length>1?"j":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${i.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${i.origin}`;default:return"Nevalida enigo"}}};function vyn(){return{localeError:gyn()}}var yyn=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(i){return t[i]??null}let n={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrada inválida: se esperaba instanceof ${i.expected}, recibido ${o}`:`Entrada inválida: se esperaba ${s}, recibido ${o}`}case"invalid_value":return i.values.length===1?`Entrada inválida: se esperaba ${ar(i.values[0])}`:`Opción inválida: se esperaba una de ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=r[i.origin]??i.origin;return a?`Demasiado grande: se esperaba que ${o??"valor"} tuviera ${s}${i.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${o??"valor"} fuera ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=r[i.origin]??i.origin;return a?`Demasiado pequeño: se esperaba que ${o} tuviera ${s}${i.minimum.toString()} ${a.unit}`:`Demasiado pequeño: se esperaba que ${o} fuera ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Cadena inválida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inválida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inválida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${s.pattern}`:`Inválido ${n[s.format]??i.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${i.divisor}`;case"unrecognized_keys":return`Llave${i.keys.length>1?"s":""} desconocida${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Llave inválida en ${r[i.origin]??i.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${r[i.origin]??i.origin}`;default:return"Entrada inválida"}}};function byn(){return{localeError:yyn()}}var xyn=()=>{let t={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function e(i){return t[i]??null}let n={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"},r={nan:"NaN",number:"عدد",array:"آرایه"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ورودی نامعتبر: می‌بایست instanceof ${i.expected} می‌بود، ${o} دریافت شد`:`ورودی نامعتبر: می‌بایست ${s} می‌بود، ${o} دریافت شد`}case"invalid_value":return i.values.length===1?`ورودی نامعتبر: می‌بایست ${ar(i.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${Tt(i.values,"|")} می‌بود`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`خیلی بزرگ: ${i.origin??"مقدار"} باید ${s}${i.maximum.toString()} ${a.unit??"عنصر"} باشد`:`خیلی بزرگ: ${i.origin??"مقدار"} باید ${s}${i.maximum.toString()} باشد`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`خیلی کوچک: ${i.origin} باید ${s}${i.minimum.toString()} ${a.unit} باشد`:`خیلی کوچک: ${i.origin} باید ${s}${i.minimum.toString()} باشد`}case"invalid_format":{let s=i;return s.format==="starts_with"?`رشته نامعتبر: باید با "${s.prefix}" شروع شود`:s.format==="ends_with"?`رشته نامعتبر: باید با "${s.suffix}" تمام شود`:s.format==="includes"?`رشته نامعتبر: باید شامل "${s.includes}" باشد`:s.format==="regex"?`رشته نامعتبر: باید با الگوی ${s.pattern} مطابقت داشته باشد`:`${n[s.format]??i.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${i.divisor} باشد`;case"unrecognized_keys":return`کلید${i.keys.length>1?"های":""} ناشناس: ${Tt(i.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${i.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${i.origin}`;default:return"ورودی نامعتبر"}}};function wyn(){return{localeError:xyn()}}var _yn=()=>{let t={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function e(i){return t[i]??null}let n={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Virheellinen tyyppi: odotettiin instanceof ${i.expected}, oli ${o}`:`Virheellinen tyyppi: odotettiin ${s}, oli ${o}`}case"invalid_value":return i.values.length===1?`Virheellinen syöte: täytyy olla ${ar(i.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Liian suuri: ${a.subject} täytyy olla ${s}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon täytyy olla ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Liian pieni: ${a.subject} täytyy olla ${s}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon täytyy olla ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${s.prefix}"`:s.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${s.suffix}"`:s.format==="includes"?`Virheellinen syöte: täytyy sisältää "${s.includes}"`:s.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${s.pattern}`:`Virheellinen ${n[s.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${Tt(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function kyn(){return{localeError:_yn()}}var Syn=()=>{let t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function e(i){return t[i]??null}let n={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},r={nan:"NaN",number:"nombre",array:"tableau"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrée invalide : instanceof ${i.expected} attendu, ${o} reçu`:`Entrée invalide : ${s} attendu, ${o} reçu`}case"invalid_value":return i.values.length===1?`Entrée invalide : ${ar(i.values[0])} attendu`:`Option invalide : une valeur parmi ${Tt(i.values,"|")} attendue`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"élément(s)"}`:`Trop grand : ${i.origin??"valeur"} doit être ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit être ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chaîne invalide : doit commencer par "${s.prefix}"`:s.format==="ends_with"?`Chaîne invalide : doit se terminer par "${s.suffix}"`:s.format==="includes"?`Chaîne invalide : doit inclure "${s.includes}"`:s.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${s.pattern}`:`${n[s.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${i.divisor}`;case"unrecognized_keys":return`Clé${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${Tt(i.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${i.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entrée invalide"}}};function Cyn(){return{localeError:Syn()}}var Eyn=()=>{let t={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function e(i){return t[i]??null}let n={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Entrée invalide : attendu instanceof ${i.expected}, reçu ${o}`:`Entrée invalide : attendu ${s}, reçu ${o}`}case"invalid_value":return i.values.length===1?`Entrée invalide : attendu ${ar(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"≤":"<",a=e(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${s}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"≥":">",a=e(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${s}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chaîne invalide : doit commencer par "${s.prefix}"`:s.format==="ends_with"?`Chaîne invalide : doit se terminer par "${s.suffix}"`:s.format==="includes"?`Chaîne invalide : doit inclure "${s.includes}"`:s.format==="regex"?`Chaîne invalide : doit correspondre au motif ${s.pattern}`:`${n[s.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${i.divisor}`;case"unrecognized_keys":return`Clé${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${Tt(i.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${i.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entrée invalide"}}};function $yn(){return{localeError:Eyn()}}var Tyn=()=>{let t={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},e={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},n=c=>c?t[c]:void 0,r=c=>{let u=n(c);return u?u.label:c??t.unknown.label},i=c=>`ה${r(c)}`,s=c=>{var u;return(((u=n(c))==null?void 0:u.gender)??"m")==="f"?"צריכה להיות":"צריך להיות"},a=c=>c?e[c]??null:null,o={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}},l={nan:"NaN"};return c=>{var u;switch(c.code){case"invalid_type":{let d=c.expected,f=l[d??""]??r(d),h=pr(c.input),m=l[h]??((u=t[h])==null?void 0:u.label)??h;return/^[A-Z]/.test(c.expected)?`קלט לא תקין: צריך להיות instanceof ${c.expected}, התקבל ${m}`:`קלט לא תקין: צריך להיות ${f}, התקבל ${m}`}case"invalid_value":{if(c.values.length===1)return`ערך לא תקין: הערך חייב להיות ${ar(c.values[0])}`;let d=c.values.map(h=>ar(h));if(c.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${d[0]} או ${d[1]}`;let f=d[d.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${d.slice(0,-1).join(", ")} או ${f}`}case"too_big":{let d=a(c.origin),f=i(c.origin??"value");if(c.origin==="string")return`${(d==null?void 0:d.longLabel)??"ארוך"} מדי: ${f} צריכה להכיל ${c.maximum.toString()} ${(d==null?void 0:d.unit)??""} ${c.inclusive?"או פחות":"לכל היותר"}`.trim();if(c.origin==="number"){let p=c.inclusive?`קטן או שווה ל-${c.maximum}`:`קטן מ-${c.maximum}`;return`גדול מדי: ${f} צריך להיות ${p}`}if(c.origin==="array"||c.origin==="set"){let p=c.origin==="set"?"צריכה":"צריך",v=c.inclusive?`${c.maximum} ${(d==null?void 0:d.unit)??""} או פחות`:`פחות מ-${c.maximum} ${(d==null?void 0:d.unit)??""}`;return`גדול מדי: ${f} ${p} להכיל ${v}`.trim()}let h=c.inclusive?"<=":"<",m=s(c.origin??"value");return d!=null&&d.unit?`${d.longLabel} מדי: ${f} ${m} ${h}${c.maximum.toString()} ${d.unit}`:`${(d==null?void 0:d.longLabel)??"גדול"} מדי: ${f} ${m} ${h}${c.maximum.toString()}`}case"too_small":{let d=a(c.origin),f=i(c.origin??"value");if(c.origin==="string")return`${(d==null?void 0:d.shortLabel)??"קצר"} מדי: ${f} צריכה להכיל ${c.minimum.toString()} ${(d==null?void 0:d.unit)??""} ${c.inclusive?"או יותר":"לפחות"}`.trim();if(c.origin==="number"){let p=c.inclusive?`גדול או שווה ל-${c.minimum}`:`גדול מ-${c.minimum}`;return`קטן מדי: ${f} צריך להיות ${p}`}if(c.origin==="array"||c.origin==="set"){let p=c.origin==="set"?"צריכה":"צריך";if(c.minimum===1&&c.inclusive){let x=(c.origin==="set","לפחות פריט אחד");return`קטן מדי: ${f} ${p} להכיל ${x}`}let v=c.inclusive?`${c.minimum} ${(d==null?void 0:d.unit)??""} או יותר`:`יותר מ-${c.minimum} ${(d==null?void 0:d.unit)??""}`;return`קטן מדי: ${f} ${p} להכיל ${v}`.trim()}let h=c.inclusive?">=":">",m=s(c.origin??"value");return d!=null&&d.unit?`${d.shortLabel} מדי: ${f} ${m} ${h}${c.minimum.toString()} ${d.unit}`:`${(d==null?void 0:d.shortLabel)??"קטן"} מדי: ${f} ${m} ${h}${c.minimum.toString()}`}case"invalid_format":{let d=c;if(d.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${d.prefix}"`;if(d.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${d.suffix}"`;if(d.format==="includes")return`המחרוזת חייבת לכלול "${d.includes}"`;if(d.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${d.pattern}`;let f=o[d.format],h=(f==null?void 0:f.label)??d.format,m=((f==null?void 0:f.gender)??"m")==="f"?"תקינה":"תקין";return`${h} לא ${m}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${c.divisor}`;case"unrecognized_keys":return`מפתח${c.keys.length>1?"ות":""} לא מזוה${c.keys.length>1?"ים":"ה"}: ${Tt(c.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${i(c.origin??"array")}`;default:return"קלט לא תקין"}}};function Iyn(){return{localeError:Tyn()}}var Ayn=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(i){return t[i]??null}let n={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"},r={nan:"NaN",number:"szám",array:"tömb"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Érvénytelen bemenet: a várt érték instanceof ${i.expected}, a kapott érték ${o}`:`Érvénytelen bemenet: a várt érték ${s}, a kapott érték ${o}`}case"invalid_value":return i.values.length===1?`Érvénytelen bemenet: a várt érték ${ar(i.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Túl nagy: ${i.origin??"érték"} mérete túl nagy ${s}${i.maximum.toString()} ${a.unit??"elem"}`:`Túl nagy: a bemeneti érték ${i.origin??"érték"} túl nagy: ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Túl kicsi: a bemeneti érték ${i.origin} mérete túl kicsi ${s}${i.minimum.toString()} ${a.unit}`:`Túl kicsi: a bemeneti érték ${i.origin} túl kicsi ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Érvénytelen string: "${s.prefix}" értékkel kell kezdődnie`:s.format==="ends_with"?`Érvénytelen string: "${s.suffix}" értékkel kell végződnie`:s.format==="includes"?`Érvénytelen string: "${s.includes}" értéket kell tartalmaznia`:s.format==="regex"?`Érvénytelen string: ${s.pattern} mintának kell megfelelnie`:`Érvénytelen ${n[s.format]??i.format}`}case"not_multiple_of":return`Érvénytelen szám: ${i.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${i.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${i.origin}`;default:return"Érvénytelen bemenet"}}};function Oyn(){return{localeError:Ayn()}}function Yge(t,e,n){return Math.abs(t)===1?e:n}function cv(t){if(!t)return"";let e=["ա","ե","ը","ի","ո","ու","օ"],n=t[t.length-1];return t+(e.includes(n)?"ն":"ը")}var Dyn=()=>{let t={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function e(i){return t[i]??null}let n={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",jwt:"JWT",template_literal:"մուտք"},r={nan:"NaN",number:"թիվ",array:"զանգված"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Սխալ մուտքագրում․ սպասվում էր instanceof ${i.expected}, ստացվել է ${o}`:`Սխալ մուտքագրում․ սպասվում էր ${s}, ստացվել է ${o}`}case"invalid_value":return i.values.length===1?`Սխալ մուտքագրում․ սպասվում էր ${ar(i.values[1])}`:`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Yge(o,a.unit.one,a.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${cv(i.origin??"արժեք")} կունենա ${s}${i.maximum.toString()} ${l}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${cv(i.origin??"արժեք")} լինի ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Yge(o,a.unit.one,a.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${cv(i.origin)} կունենա ${s}${i.minimum.toString()} ${l}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${cv(i.origin)} լինի ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Սխալ տող․ պետք է սկսվի "${s.prefix}"-ով`:s.format==="ends_with"?`Սխալ տող․ պետք է ավարտվի "${s.suffix}"-ով`:s.format==="includes"?`Սխալ տող․ պետք է պարունակի "${s.includes}"`:s.format==="regex"?`Սխալ տող․ պետք է համապատասխանի ${s.pattern} ձևաչափին`:`Սխալ ${n[s.format]??i.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${i.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${i.keys.length>1?"ներ":""}. ${Tt(i.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${cv(i.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${cv(i.origin)}-ում`;default:return"Սխալ մուտքագրում"}}};function Myn(){return{localeError:Dyn()}}var Nyn=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(i){return t[i]??null}let n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input tidak valid: diharapkan instanceof ${i.expected}, diterima ${o}`:`Input tidak valid: diharapkan ${s}, diterima ${o}`}case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${ar(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${s}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${s}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`String tidak valid: harus dimulai dengan "${s.prefix}"`:s.format==="ends_with"?`String tidak valid: harus berakhir dengan "${s.suffix}"`:s.format==="includes"?`String tidak valid: harus menyertakan "${s.includes}"`:s.format==="regex"?`String tidak valid: harus sesuai pola ${s.pattern}`:`${n[s.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function Ryn(){return{localeError:Nyn()}}var Lyn=()=>{let t={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function e(i){return t[i]??null}let n={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"},r={nan:"NaN",number:"númer",array:"fylki"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Rangt gildi: Þú slóst inn ${o} þar sem á að vera instanceof ${i.expected}`:`Rangt gildi: Þú slóst inn ${o} þar sem á að vera ${s}`}case"invalid_value":return i.values.length===1?`Rangt gildi: gert ráð fyrir ${ar(i.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Of stórt: gert er ráð fyrir að ${i.origin??"gildi"} hafi ${s}${i.maximum.toString()} ${a.unit??"hluti"}`:`Of stórt: gert er ráð fyrir að ${i.origin??"gildi"} sé ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Of lítið: gert er ráð fyrir að ${i.origin} hafi ${s}${i.minimum.toString()} ${a.unit}`:`Of lítið: gert er ráð fyrir að ${i.origin} sé ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ógildur strengur: verður að byrja á "${s.prefix}"`:s.format==="ends_with"?`Ógildur strengur: verður að enda á "${s.suffix}"`:s.format==="includes"?`Ógildur strengur: verður að innihalda "${s.includes}"`:s.format==="regex"?`Ógildur strengur: verður að fylgja mynstri ${s.pattern}`:`Rangt ${n[s.format]??i.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${i.divisor}`;case"unrecognized_keys":return`Óþekkt ${i.keys.length>1?"ir lyklar":"ur lykill"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${i.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${i.origin}`;default:return"Rangt gildi"}}};function Pyn(){return{localeError:Lyn()}}var jyn=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(i){return t[i]??null}let n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"numero",array:"vettore"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input non valido: atteso instanceof ${i.expected}, ricevuto ${o}`:`Input non valido: atteso ${s}, ricevuto ${o}`}case"invalid_value":return i.values.length===1?`Input non valido: atteso ${ar(i.values[0])}`:`Opzione non valida: atteso uno tra ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${s}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${s}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Stringa non valida: deve iniziare con "${s.prefix}"`:s.format==="ends_with"?`Stringa non valida: deve terminare con "${s.suffix}"`:s.format==="includes"?`Stringa non valida: deve includere "${s.includes}"`:s.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function zyn(){return{localeError:jyn()}}var Fyn=()=>{let t={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function e(i){return t[i]??null}let n={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"},r={nan:"NaN",number:"数値",array:"配列"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`無効な入力: instanceof ${i.expected}が期待されましたが、${o}が入力されました`:`無効な入力: ${s}が期待されましたが、${o}が入力されました`}case"invalid_value":return i.values.length===1?`無効な入力: ${ar(i.values[0])}が期待されました`:`無効な選択: ${Tt(i.values,"、")}のいずれかである必要があります`;case"too_big":{let s=i.inclusive?"以下である":"より小さい",a=e(i.origin);return a?`大きすぎる値: ${i.origin??"値"}は${i.maximum.toString()}${a.unit??"要素"}${s}必要があります`:`大きすぎる値: ${i.origin??"値"}は${i.maximum.toString()}${s}必要があります`}case"too_small":{let s=i.inclusive?"以上である":"より大きい",a=e(i.origin);return a?`小さすぎる値: ${i.origin}は${i.minimum.toString()}${a.unit}${s}必要があります`:`小さすぎる値: ${i.origin}は${i.minimum.toString()}${s}必要があります`}case"invalid_format":{let s=i;return s.format==="starts_with"?`無効な文字列: "${s.prefix}"で始まる必要があります`:s.format==="ends_with"?`無効な文字列: "${s.suffix}"で終わる必要があります`:s.format==="includes"?`無効な文字列: "${s.includes}"を含む必要があります`:s.format==="regex"?`無効な文字列: パターン${s.pattern}に一致する必要があります`:`無効な${n[s.format]??i.format}`}case"not_multiple_of":return`無効な数値: ${i.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${i.keys.length>1?"群":""}: ${Tt(i.keys,"、")}`;case"invalid_key":return`${i.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${i.origin}内の無効な値`;default:return"無効な入力"}}};function Byn(){return{localeError:Fyn()}}var Uyn=()=>{let t={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function e(i){return t[i]??null}let n={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"},r={nan:"NaN",number:"რიცხვი",string:"სტრინგი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`არასწორი შეყვანა: მოსალოდნელი instanceof ${i.expected}, მიღებული ${o}`:`არასწორი შეყვანა: მოსალოდნელი ${s}, მიღებული ${o}`}case"invalid_value":return i.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${ar(i.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${Tt(i.values,"|")}-დან`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ზედმეტად დიდი: მოსალოდნელი ${i.origin??"მნიშვნელობა"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${i.origin??"მნიშვნელობა"} იყოს ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`ზედმეტად პატარა: მოსალოდნელი ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${i.origin} იყოს ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`არასწორი სტრინგი: უნდა იწყებოდეს "${s.prefix}"-ით`:s.format==="ends_with"?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${s.suffix}"-ით`:s.format==="includes"?`არასწორი სტრინგი: უნდა შეიცავდეს "${s.includes}"-ს`:s.format==="regex"?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${s.pattern}`:`არასწორი ${n[s.format]??i.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${i.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${i.keys.length>1?"ები":"ი"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${i.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${i.origin}-ში`;default:return"არასწორი შეყვანა"}}};function qyn(){return{localeError:Uyn()}}var Hyn=()=>{let t={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function e(i){return t[i]??null}let n={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"},r={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${i.expected} ប៉ុន្តែទទួលបាន ${o}`:`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${s} ប៉ុន្តែទទួលបាន ${o}`}case"invalid_value":return i.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${ar(i.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ធំពេក៖ ត្រូវការ ${i.origin??"តម្លៃ"} ${s} ${i.maximum.toString()} ${a.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${i.origin??"តម្លៃ"} ${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`តូចពេក៖ ត្រូវការ ${i.origin} ${s} ${i.minimum.toString()} ${a.unit}`:`តូចពេក៖ ត្រូវការ ${i.origin} ${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${s.prefix}"`:s.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${s.suffix}"`:s.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${s.includes}"`:s.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${s.pattern}`:`មិនត្រឹមត្រូវ៖ ${n[s.format]??i.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${i.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${Tt(i.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${i.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${i.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function Uqe(){return{localeError:Hyn()}}function Wyn(){return Uqe()}var Vyn=()=>{let t={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function e(i){return t[i]??null}let n={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`잘못된 입력: 예상 타입은 instanceof ${i.expected}, 받은 타입은 ${o}입니다`:`잘못된 입력: 예상 타입은 ${s}, 받은 타입은 ${o}입니다`}case"invalid_value":return i.values.length===1?`잘못된 입력: 값은 ${ar(i.values[0])} 이어야 합니다`:`잘못된 옵션: ${Tt(i.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{let s=i.inclusive?"이하":"미만",a=s==="미만"?"이어야 합니다":"여야 합니다",o=e(i.origin),l=(o==null?void 0:o.unit)??"요소";return o?`${i.origin??"값"}이 너무 큽니다: ${i.maximum.toString()}${l} ${s}${a}`:`${i.origin??"값"}이 너무 큽니다: ${i.maximum.toString()} ${s}${a}`}case"too_small":{let s=i.inclusive?"이상":"초과",a=s==="이상"?"이어야 합니다":"여야 합니다",o=e(i.origin),l=(o==null?void 0:o.unit)??"요소";return o?`${i.origin??"값"}이 너무 작습니다: ${i.minimum.toString()}${l} ${s}${a}`:`${i.origin??"값"}이 너무 작습니다: ${i.minimum.toString()} ${s}${a}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`잘못된 문자열: "${s.prefix}"(으)로 시작해야 합니다`:s.format==="ends_with"?`잘못된 문자열: "${s.suffix}"(으)로 끝나야 합니다`:s.format==="includes"?`잘못된 문자열: "${s.includes}"을(를) 포함해야 합니다`:s.format==="regex"?`잘못된 문자열: 정규식 ${s.pattern} 패턴과 일치해야 합니다`:`잘못된 ${n[s.format]??i.format}`}case"not_multiple_of":return`잘못된 숫자: ${i.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${Tt(i.keys,", ")}`;case"invalid_key":return`잘못된 키: ${i.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${i.origin}`;default:return"잘못된 입력"}}};function Zyn(){return{localeError:Vyn()}}var $3=t=>t.charAt(0).toUpperCase()+t.slice(1);function Jge(t){let e=Math.abs(t),n=e%10,r=e%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}var Gyn=()=>{let t={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function e(i,s,a,o){let l=t[i]??null;return l===null?l:{unit:l.unit[s],verb:l.verb[o][a?"inclusive":"notInclusive"]}}let n={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"},r={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Gautas tipas ${o}, o tikėtasi - instanceof ${i.expected}`:`Gautas tipas ${o}, o tikėtasi - ${s}`}case"invalid_value":return i.values.length===1?`Privalo būti ${ar(i.values[0])}`:`Privalo būti vienas iš ${Tt(i.values,"|")} pasirinkimų`;case"too_big":{let s=r[i.origin]??i.origin,a=e(i.origin,Jge(Number(i.maximum)),i.inclusive??!1,"smaller");if(a!=null&&a.verb)return`${$3(s??i.origin??"reikšmė")} ${a.verb} ${i.maximum.toString()} ${a.unit??"elementų"}`;let o=i.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${$3(s??i.origin??"reikšmė")} turi būti ${o} ${i.maximum.toString()} ${a==null?void 0:a.unit}`}case"too_small":{let s=r[i.origin]??i.origin,a=e(i.origin,Jge(Number(i.minimum)),i.inclusive??!1,"bigger");if(a!=null&&a.verb)return`${$3(s??i.origin??"reikšmė")} ${a.verb} ${i.minimum.toString()} ${a.unit??"elementų"}`;let o=i.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${$3(s??i.origin??"reikšmė")} turi būti ${o} ${i.minimum.toString()} ${a==null?void 0:a.unit}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Eilutė privalo prasidėti "${s.prefix}"`:s.format==="ends_with"?`Eilutė privalo pasibaigti "${s.suffix}"`:s.format==="includes"?`Eilutė privalo įtraukti "${s.includes}"`:s.format==="regex"?`Eilutė privalo atitikti ${s.pattern}`:`Neteisingas ${n[s.format]??i.format}`}case"not_multiple_of":return`Skaičius privalo būti ${i.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${i.keys.length>1?"i":"as"} rakt${i.keys.length>1?"ai":"as"}: ${Tt(i.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{let s=r[i.origin]??i.origin;return`${$3(s??i.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function Kyn(){return{localeError:Gyn()}}var Yyn=()=>{let t={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function e(i){return t[i]??null}let n={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"},r={nan:"NaN",number:"број",array:"низа"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Грешен внес: се очекува instanceof ${i.expected}, примено ${o}`:`Грешен внес: се очекува ${s}, примено ${o}`}case"invalid_value":return i.values.length===1?`Invalid input: expected ${ar(i.values[0])}`:`Грешана опција: се очекува една ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Премногу голем: се очекува ${i.origin??"вредноста"} да има ${s}${i.maximum.toString()} ${a.unit??"елементи"}`:`Премногу голем: се очекува ${i.origin??"вредноста"} да биде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Премногу мал: се очекува ${i.origin} да има ${s}${i.minimum.toString()} ${a.unit}`:`Премногу мал: се очекува ${i.origin} да биде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неважечка низа: мора да започнува со "${s.prefix}"`:s.format==="ends_with"?`Неважечка низа: мора да завршува со "${s.suffix}"`:s.format==="includes"?`Неважечка низа: мора да вклучува "${s.includes}"`:s.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${s.pattern}`:`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${i.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${i.origin}`;default:return"Грешен внес"}}};function Jyn(){return{localeError:Yyn()}}var Xyn=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(i){return t[i]??null}let n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"nombor"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Input tidak sah: dijangka instanceof ${i.expected}, diterima ${o}`:`Input tidak sah: dijangka ${s}, diterima ${o}`}case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${ar(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`String tidak sah: mesti bermula dengan "${s.prefix}"`:s.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${s.suffix}"`:s.format==="includes"?`String tidak sah: mesti mengandungi "${s.includes}"`:s.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${s.pattern}`:`${n[s.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${Tt(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function Qyn(){return{localeError:Xyn()}}var ebn=()=>{let t={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function e(i){return t[i]??null}let n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},r={nan:"NaN",number:"getal"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ongeldige invoer: verwacht instanceof ${i.expected}, ontving ${o}`:`Ongeldige invoer: verwacht ${s}, ontving ${o}`}case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${ar(i.values[0])}`:`Ongeldige optie: verwacht één van ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin),o=i.origin==="date"?"laat":i.origin==="string"?"lang":"groot";return a?`Te ${o}: verwacht dat ${i.origin??"waarde"} ${s}${i.maximum.toString()} ${a.unit??"elementen"} ${a.verb}`:`Te ${o}: verwacht dat ${i.origin??"waarde"} ${s}${i.maximum.toString()} is`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin),o=i.origin==="date"?"vroeg":i.origin==="string"?"kort":"klein";return a?`Te ${o}: verwacht dat ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ${a.verb}`:`Te ${o}: verwacht dat ${i.origin} ${s}${i.minimum.toString()} is`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ongeldige tekst: moet met "${s.prefix}" beginnen`:s.format==="ends_with"?`Ongeldige tekst: moet op "${s.suffix}" eindigen`:s.format==="includes"?`Ongeldige tekst: moet "${s.includes}" bevatten`:s.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${s.pattern}`:`Ongeldig: ${n[s.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function tbn(){return{localeError:ebn()}}var nbn=()=>{let t={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function e(i){return t[i]??null}let n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"tall",array:"liste"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ugyldig input: forventet instanceof ${i.expected}, fikk ${o}`:`Ugyldig input: forventet ${s}, fikk ${o}`}case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${ar(i.values[0])}`:`Ugyldig valg: forventet en av ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til å ha ${s}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til å ha ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`For lite(n): forventet ${i.origin} til å ha ${s}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til å ha ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ugyldig streng: må starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: må ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: må inneholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: må matche mønsteret ${s.pattern}`:`Ugyldig ${n[s.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function rbn(){return{localeError:nbn()}}var ibn=()=>{let t={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function e(i){return t[i]??null}let n={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"},r={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Fâsit giren: umulan instanceof ${i.expected}, alınan ${o}`:`Fâsit giren: umulan ${s}, alınan ${o}`}case"invalid_value":return i.values.length===1?`Fâsit giren: umulan ${ar(i.values[0])}`:`Fâsit tercih: mûteberler ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Fazla büyük: ${i.origin??"value"}, ${s}${i.maximum.toString()} ${a.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${i.origin??"value"}, ${s}${i.maximum.toString()} olmalıydı.`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Fazla küçük: ${i.origin}, ${s}${i.minimum.toString()} ${a.unit} sahip olmalıydı.`:`Fazla küçük: ${i.origin}, ${s}${i.minimum.toString()} olmalıydı.`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Fâsit metin: "${s.prefix}" ile başlamalı.`:s.format==="ends_with"?`Fâsit metin: "${s.suffix}" ile bitmeli.`:s.format==="includes"?`Fâsit metin: "${s.includes}" ihtivâ etmeli.`:s.format==="regex"?`Fâsit metin: ${s.pattern} nakşına uymalı.`:`Fâsit ${n[s.format]??i.format}`}case"not_multiple_of":return`Fâsit sayı: ${i.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${i.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function sbn(){return{localeError:ibn()}}var abn=()=>{let t={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function e(i){return t[i]??null}let n={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"},r={nan:"NaN",number:"عدد",array:"ارې"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ناسم ورودي: باید instanceof ${i.expected} وای, مګر ${o} ترلاسه شو`:`ناسم ورودي: باید ${s} وای, مګر ${o} ترلاسه شو`}case"invalid_value":return i.values.length===1?`ناسم ورودي: باید ${ar(i.values[0])} وای`:`ناسم انتخاب: باید یو له ${Tt(i.values,"|")} څخه وای`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`ډیر لوی: ${i.origin??"ارزښت"} باید ${s}${i.maximum.toString()} ${a.unit??"عنصرونه"} ولري`:`ډیر لوی: ${i.origin??"ارزښت"} باید ${s}${i.maximum.toString()} وي`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`ډیر کوچنی: ${i.origin} باید ${s}${i.minimum.toString()} ${a.unit} ولري`:`ډیر کوچنی: ${i.origin} باید ${s}${i.minimum.toString()} وي`}case"invalid_format":{let s=i;return s.format==="starts_with"?`ناسم متن: باید د "${s.prefix}" سره پیل شي`:s.format==="ends_with"?`ناسم متن: باید د "${s.suffix}" سره پای ته ورسيږي`:s.format==="includes"?`ناسم متن: باید "${s.includes}" ولري`:s.format==="regex"?`ناسم متن: باید د ${s.pattern} سره مطابقت ولري`:`${n[s.format]??i.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${i.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${i.keys.length>1?"کلیډونه":"کلیډ"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${i.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${i.origin} کې`;default:return"ناسمه ورودي"}}};function obn(){return{localeError:abn()}}var lbn=()=>{let t={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function e(i){return t[i]??null}let n={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"},r={nan:"NaN",number:"liczba",array:"tablica"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${i.expected}, otrzymano ${o}`:`Nieprawidłowe dane wejściowe: oczekiwano ${s}, otrzymano ${o}`}case"invalid_value":return i.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${ar(i.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Za duża wartość: oczekiwano, że ${i.origin??"wartość"} będzie mieć ${s}${i.maximum.toString()} ${a.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${i.origin??"wartość"} będzie wynosić ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Za mała wartość: oczekiwano, że ${i.origin??"wartość"} będzie mieć ${s}${i.minimum.toString()} ${a.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${i.origin??"wartość"} będzie wynosić ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${s.prefix}"`:s.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${s.suffix}"`:s.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${s.includes}"`:s.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${s.pattern}`:`Nieprawidłow(y/a/e) ${n[s.format]??i.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${i.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${i.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function cbn(){return{localeError:lbn()}}var ubn=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(i){return t[i]??null}let n={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},r={nan:"NaN",number:"número",null:"nulo"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Tipo inválido: esperado instanceof ${i.expected}, recebido ${o}`:`Tipo inválido: esperado ${s}, recebido ${o}`}case"invalid_value":return i.values.length===1?`Entrada inválida: esperado ${ar(i.values[0])}`:`Opção inválida: esperada uma das ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${s}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${s}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Texto inválido: deve começar com "${s.prefix}"`:s.format==="ends_with"?`Texto inválido: deve terminar com "${s.suffix}"`:s.format==="includes"?`Texto inválido: deve incluir "${s.includes}"`:s.format==="regex"?`Texto inválido: deve corresponder ao padrão ${s.pattern}`:`${n[s.format]??i.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Chave inválida em ${i.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${i.origin}`;default:return"Campo inválido"}}};function dbn(){return{localeError:ubn()}}function Xge(t,e,n,r){let i=Math.abs(t),s=i%10,a=i%100;return a>=11&&a<=19?r:s===1?e:s>=2&&s<=4?n:r}var fbn=()=>{let t={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function e(i){return t[i]??null}let n={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"},r={nan:"NaN",number:"число",array:"массив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Неверный ввод: ожидалось instanceof ${i.expected}, получено ${o}`:`Неверный ввод: ожидалось ${s}, получено ${o}`}case"invalid_value":return i.values.length===1?`Неверный ввод: ожидалось ${ar(i.values[0])}`:`Неверный вариант: ожидалось одно из ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);if(a){let o=Number(i.maximum),l=Xge(o,a.unit.one,a.unit.few,a.unit.many);return`Слишком большое значение: ожидалось, что ${i.origin??"значение"} будет иметь ${s}${i.maximum.toString()} ${l}`}return`Слишком большое значение: ожидалось, что ${i.origin??"значение"} будет ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);if(a){let o=Number(i.minimum),l=Xge(o,a.unit.one,a.unit.few,a.unit.many);return`Слишком маленькое значение: ожидалось, что ${i.origin} будет иметь ${s}${i.minimum.toString()} ${l}`}return`Слишком маленькое значение: ожидалось, что ${i.origin} будет ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неверная строка: должна начинаться с "${s.prefix}"`:s.format==="ends_with"?`Неверная строка: должна заканчиваться на "${s.suffix}"`:s.format==="includes"?`Неверная строка: должна содержать "${s.includes}"`:s.format==="regex"?`Неверная строка: должна соответствовать шаблону ${s.pattern}`:`Неверный ${n[s.format]??i.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${i.divisor}`;case"unrecognized_keys":return`Нераспознанн${i.keys.length>1?"ые":"ый"} ключ${i.keys.length>1?"и":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${i.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${i.origin}`;default:return"Неверные входные данные"}}};function hbn(){return{localeError:fbn()}}var pbn=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(i){return t[i]??null}let n={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"},r={nan:"NaN",number:"število",array:"tabela"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Neveljaven vnos: pričakovano instanceof ${i.expected}, prejeto ${o}`:`Neveljaven vnos: pričakovano ${s}, prejeto ${o}`}case"invalid_value":return i.values.length===1?`Neveljaven vnos: pričakovano ${ar(i.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Preveliko: pričakovano, da bo ${i.origin??"vrednost"} imelo ${s}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${i.origin??"vrednost"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Premajhno: pričakovano, da bo ${i.origin} imelo ${s}${i.minimum.toString()} ${a.unit}`:`Premajhno: pričakovano, da bo ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Neveljaven niz: mora se začeti z "${s.prefix}"`:s.format==="ends_with"?`Neveljaven niz: mora se končati z "${s.suffix}"`:s.format==="includes"?`Neveljaven niz: mora vsebovati "${s.includes}"`:s.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${s.pattern}`:`Neveljaven ${n[s.format]??i.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i ključi":" ključ"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function mbn(){return{localeError:pbn()}}var gbn=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function e(i){return t[i]??null}let n={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},r={nan:"NaN",number:"antal",array:"lista"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ogiltig inmatning: förväntat instanceof ${i.expected}, fick ${o}`:`Ogiltig inmatning: förväntat ${s}, fick ${o}`}case"invalid_value":return i.values.length===1?`Ogiltig inmatning: förväntat ${ar(i.values[0])}`:`Ogiltigt val: förväntade en av ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`För stor(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.maximum.toString()} ${a.unit??"element"}`:`För stor(t): förväntat ${i.origin??"värdet"} att ha ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`För lite(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.minimum.toString()} ${a.unit}`:`För lite(t): förväntade ${i.origin??"värdet"} att ha ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ogiltig sträng: måste börja med "${s.prefix}"`:s.format==="ends_with"?`Ogiltig sträng: måste sluta med "${s.suffix}"`:s.format==="includes"?`Ogiltig sträng: måste innehålla "${s.includes}"`:s.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${s.pattern}"`:`Ogiltig(t) ${n[s.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${i.origin??"värdet"}`;default:return"Ogiltig input"}}};function vbn(){return{localeError:gbn()}}var ybn=()=>{let t={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function e(i){return t[i]??null}let n={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"},r={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${i.expected}, பெறப்பட்டது ${o}`:`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${s}, பெறப்பட்டது ${o}`}case"invalid_value":return i.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${ar(i.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${Tt(i.values,"|")} இல் ஒன்று`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${i.origin??"மதிப்பு"} ${s}${i.maximum.toString()} ${a.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${i.origin??"மதிப்பு"} ${s}${i.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${i.origin} ${s}${i.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{let s=i;return s.format==="starts_with"?`தவறான சரம்: "${s.prefix}" இல் தொடங்க வேண்டும்`:s.format==="ends_with"?`தவறான சரம்: "${s.suffix}" இல் முடிவடைய வேண்டும்`:s.format==="includes"?`தவறான சரம்: "${s.includes}" ஐ உள்ளடக்க வேண்டும்`:s.format==="regex"?`தவறான சரம்: ${s.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${n[s.format]??i.format}`}case"not_multiple_of":return`தவறான எண்: ${i.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${i.keys.length>1?"கள்":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${i.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function bbn(){return{localeError:ybn()}}var xbn=()=>{let t={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function e(i){return t[i]??null}let n={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"},r={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${i.expected} แต่ได้รับ ${o}`:`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${s} แต่ได้รับ ${o}`}case"invalid_value":return i.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${ar(i.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"ไม่เกิน":"น้อยกว่า",a=e(i.origin);return a?`เกินกำหนด: ${i.origin??"ค่า"} ควรมี${s} ${i.maximum.toString()} ${a.unit??"รายการ"}`:`เกินกำหนด: ${i.origin??"ค่า"} ควรมี${s} ${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?"อย่างน้อย":"มากกว่า",a=e(i.origin);return a?`น้อยกว่ากำหนด: ${i.origin} ควรมี${s} ${i.minimum.toString()} ${a.unit}`:`น้อยกว่ากำหนด: ${i.origin} ควรมี${s} ${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${s.prefix}"`:s.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${s.suffix}"`:s.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${s.includes}" อยู่ในข้อความ`:s.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${s.pattern}`:`รูปแบบไม่ถูกต้อง: ${n[s.format]??i.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${i.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${Tt(i.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${i.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${i.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function wbn(){return{localeError:xbn()}}var _bn=()=>{let t={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function e(i){return t[i]??null}let n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Geçersiz değer: beklenen instanceof ${i.expected}, alınan ${o}`:`Geçersiz değer: beklenen ${s}, alınan ${o}`}case"invalid_value":return i.values.length===1?`Geçersiz değer: beklenen ${ar(i.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Çok büyük: beklenen ${i.origin??"değer"} ${s}${i.maximum.toString()} ${a.unit??"öğe"}`:`Çok büyük: beklenen ${i.origin??"değer"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Çok küçük: beklenen ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`Çok küçük: beklenen ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Geçersiz metin: "${s.prefix}" ile başlamalı`:s.format==="ends_with"?`Geçersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Geçersiz metin: "${s.includes}" içermeli`:s.format==="regex"?`Geçersiz metin: ${s.pattern} desenine uymalı`:`Geçersiz ${n[s.format]??i.format}`}case"not_multiple_of":return`Geçersiz sayı: ${i.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${i.keys.length>1?"lar":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${i.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function kbn(){return{localeError:_bn()}}var Sbn=()=>{let t={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function e(i){return t[i]??null}let n={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"},r={nan:"NaN",number:"число",array:"масив"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Неправильні вхідні дані: очікується instanceof ${i.expected}, отримано ${o}`:`Неправильні вхідні дані: очікується ${s}, отримано ${o}`}case"invalid_value":return i.values.length===1?`Неправильні вхідні дані: очікується ${ar(i.values[0])}`:`Неправильна опція: очікується одне з ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Занадто велике: очікується, що ${i.origin??"значення"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"елементів"}`:`Занадто велике: очікується, що ${i.origin??"значення"} буде ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Занадто мале: очікується, що ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Занадто мале: очікується, що ${i.origin} буде ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Неправильний рядок: повинен починатися з "${s.prefix}"`:s.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${s.suffix}"`:s.format==="includes"?`Неправильний рядок: повинен містити "${s.includes}"`:s.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${s.pattern}`:`Неправильний ${n[s.format]??i.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${i.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${i.keys.length>1?"і":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${i.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${i.origin}`;default:return"Неправильні вхідні дані"}}};function qqe(){return{localeError:Sbn()}}function Cbn(){return qqe()}var Ebn=()=>{let t={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function e(i){return t[i]??null}let n={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"},r={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`غلط ان پٹ: instanceof ${i.expected} متوقع تھا، ${o} موصول ہوا`:`غلط ان پٹ: ${s} متوقع تھا، ${o} موصول ہوا`}case"invalid_value":return i.values.length===1?`غلط ان پٹ: ${ar(i.values[0])} متوقع تھا`:`غلط آپشن: ${Tt(i.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`بہت بڑا: ${i.origin??"ویلیو"} کے ${s}${i.maximum.toString()} ${a.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${i.origin??"ویلیو"} کا ${s}${i.maximum.toString()} ہونا متوقع تھا`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`بہت چھوٹا: ${i.origin} کے ${s}${i.minimum.toString()} ${a.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${i.origin} کا ${s}${i.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{let s=i;return s.format==="starts_with"?`غلط سٹرنگ: "${s.prefix}" سے شروع ہونا چاہیے`:s.format==="ends_with"?`غلط سٹرنگ: "${s.suffix}" پر ختم ہونا چاہیے`:s.format==="includes"?`غلط سٹرنگ: "${s.includes}" شامل ہونا چاہیے`:s.format==="regex"?`غلط سٹرنگ: پیٹرن ${s.pattern} سے میچ ہونا چاہیے`:`غلط ${n[s.format]??i.format}`}case"not_multiple_of":return`غلط نمبر: ${i.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${i.keys.length>1?"ز":""}: ${Tt(i.keys,"، ")}`;case"invalid_key":return`${i.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${i.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function $bn(){return{localeError:Ebn()}}var Tbn=()=>{let t={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"}};function e(i){return t[i]??null}let n={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},r={nan:"NaN",number:"raqam",array:"massiv"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Noto‘g‘ri kirish: kutilgan instanceof ${i.expected}, qabul qilingan ${o}`:`Noto‘g‘ri kirish: kutilgan ${s}, qabul qilingan ${o}`}case"invalid_value":return i.values.length===1?`Noto‘g‘ri kirish: kutilgan ${ar(i.values[0])}`:`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Juda katta: kutilgan ${i.origin??"qiymat"} ${s}${i.maximum.toString()} ${a.unit} ${a.verb}`:`Juda katta: kutilgan ${i.origin??"qiymat"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Juda kichik: kutilgan ${i.origin} ${s}${i.minimum.toString()} ${a.unit} ${a.verb}`:`Juda kichik: kutilgan ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Noto‘g‘ri satr: "${s.prefix}" bilan boshlanishi kerak`:s.format==="ends_with"?`Noto‘g‘ri satr: "${s.suffix}" bilan tugashi kerak`:s.format==="includes"?`Noto‘g‘ri satr: "${s.includes}" ni o‘z ichiga olishi kerak`:s.format==="regex"?`Noto‘g‘ri satr: ${s.pattern} shabloniga mos kelishi kerak`:`Noto‘g‘ri ${n[s.format]??i.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${i.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${i.keys.length>1?"lar":""}: ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${i.origin} da noto‘g‘ri qiymat`;default:return"Noto‘g‘ri kirish"}}};function Ibn(){return{localeError:Tbn()}}var Abn=()=>{let t={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function e(i){return t[i]??null}let n={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"},r={nan:"NaN",number:"số",array:"mảng"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Đầu vào không hợp lệ: mong đợi instanceof ${i.expected}, nhận được ${o}`:`Đầu vào không hợp lệ: mong đợi ${s}, nhận được ${o}`}case"invalid_value":return i.values.length===1?`Đầu vào không hợp lệ: mong đợi ${ar(i.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Quá lớn: mong đợi ${i.origin??"giá trị"} ${a.verb} ${s}${i.maximum.toString()} ${a.unit??"phần tử"}`:`Quá lớn: mong đợi ${i.origin??"giá trị"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Quá nhỏ: mong đợi ${i.origin} ${a.verb} ${s}${i.minimum.toString()} ${a.unit}`:`Quá nhỏ: mong đợi ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${s.prefix}"`:s.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${s.suffix}"`:s.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${s.includes}"`:s.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${s.pattern}`:`${n[s.format]??i.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${i.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${Tt(i.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${i.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${i.origin}`;default:return"Đầu vào không hợp lệ"}}};function Obn(){return{localeError:Abn()}}var Dbn=()=>{let t={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function e(i){return t[i]??null}let n={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"},r={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`无效输入:期望 instanceof ${i.expected},实际接收 ${o}`:`无效输入:期望 ${s},实际接收 ${o}`}case"invalid_value":return i.values.length===1?`无效输入:期望 ${ar(i.values[0])}`:`无效选项:期望以下之一 ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`数值过大:期望 ${i.origin??"值"} ${s}${i.maximum.toString()} ${a.unit??"个元素"}`:`数值过大:期望 ${i.origin??"值"} ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`数值过小:期望 ${i.origin} ${s}${i.minimum.toString()} ${a.unit}`:`数值过小:期望 ${i.origin} ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`无效字符串:必须以 "${s.prefix}" 开头`:s.format==="ends_with"?`无效字符串:必须以 "${s.suffix}" 结尾`:s.format==="includes"?`无效字符串:必须包含 "${s.includes}"`:s.format==="regex"?`无效字符串:必须满足正则表达式 ${s.pattern}`:`无效${n[s.format]??i.format}`}case"not_multiple_of":return`无效数字:必须是 ${i.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${Tt(i.keys,", ")}`;case"invalid_key":return`${i.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${i.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Mbn(){return{localeError:Dbn()}}var Nbn=()=>{let t={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function e(i){return t[i]??null}let n={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"},r={nan:"NaN"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`無效的輸入值:預期為 instanceof ${i.expected},但收到 ${o}`:`無效的輸入值:預期為 ${s},但收到 ${o}`}case"invalid_value":return i.values.length===1?`無效的輸入值:預期為 ${ar(i.values[0])}`:`無效的選項:預期為以下其中之一 ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`數值過大:預期 ${i.origin??"值"} 應為 ${s}${i.maximum.toString()} ${a.unit??"個元素"}`:`數值過大:預期 ${i.origin??"值"} 應為 ${s}${i.maximum.toString()}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`數值過小:預期 ${i.origin} 應為 ${s}${i.minimum.toString()} ${a.unit}`:`數值過小:預期 ${i.origin} 應為 ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`無效的字串:必須以 "${s.prefix}" 開頭`:s.format==="ends_with"?`無效的字串:必須以 "${s.suffix}" 結尾`:s.format==="includes"?`無效的字串:必須包含 "${s.includes}"`:s.format==="regex"?`無效的字串:必須符合格式 ${s.pattern}`:`無效的 ${n[s.format]??i.format}`}case"not_multiple_of":return`無效的數字:必須為 ${i.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${i.keys.length>1?"們":""}:${Tt(i.keys,"、")}`;case"invalid_key":return`${i.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${i.origin} 中有無效的值`;default:return"無效的輸入值"}}};function Rbn(){return{localeError:Nbn()}}var Lbn=()=>{let t={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function e(i){return t[i]??null}let n={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"},r={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return i=>{switch(i.code){case"invalid_type":{let s=r[i.expected]??i.expected,a=pr(i.input),o=r[a]??a;return/^[A-Z]/.test(i.expected)?`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${i.expected}, àmọ̀ a rí ${o}`:`Ìbáwọlé aṣìṣe: a ní láti fi ${s}, àmọ̀ a rí ${o}`}case"invalid_value":return i.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${ar(i.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${Tt(i.values,"|")}`;case"too_big":{let s=i.inclusive?"<=":"<",a=e(i.origin);return a?`Tó pọ̀ jù: a ní láti jẹ́ pé ${i.origin??"iye"} ${a.verb} ${s}${i.maximum} ${a.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${s}${i.maximum}`}case"too_small":{let s=i.inclusive?">=":">",a=e(i.origin);return a?`Kéré ju: a ní láti jẹ́ pé ${i.origin} ${a.verb} ${s}${i.minimum} ${a.unit}`:`Kéré ju: a ní láti jẹ́ ${s}${i.minimum}`}case"invalid_format":{let s=i;return s.format==="starts_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${s.prefix}"`:s.format==="ends_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${s.suffix}"`:s.format==="includes"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${s.includes}"`:s.format==="regex"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${s.pattern}`:`Aṣìṣe: ${n[s.format]??i.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${i.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${Tt(i.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${i.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${i.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function Pbn(){return{localeError:Lbn()}}var Qge,Hqe=Symbol("ZodOutput"),Wqe=Symbol("ZodInput");class Vqe{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...n){let r=n[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let n=this._map.get(e);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(e),this}get(e){let n=e._zod.parent;if(n){let r={...this.get(n)??{}};delete r.id;let i={...r,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function See(){return new Vqe}(Qge=globalThis).__zod_globalRegistry??(Qge.__zod_globalRegistry=See());var $u=globalThis.__zod_globalRegistry;function Zqe(t,e){return new t({type:"string",...Mt(e)})}function Gqe(t,e){return new t({type:"string",coerce:!0,...Mt(e)})}function Cee(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Mt(e)})}function r$(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Mt(e)})}function Eee(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Mt(e)})}function $ee(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Mt(e)})}function Tee(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Mt(e)})}function Iee(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Mt(e)})}function NA(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Mt(e)})}function Aee(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Mt(e)})}function Oee(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Mt(e)})}function Dee(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Mt(e)})}function Mee(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Mt(e)})}function Nee(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Mt(e)})}function Ree(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Mt(e)})}function Lee(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Mt(e)})}function Pee(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Mt(e)})}function jee(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Mt(e)})}function Kqe(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Mt(e)})}function zee(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Mt(e)})}function Fee(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Mt(e)})}function Bee(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Mt(e)})}function Uee(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Mt(e)})}function qee(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Mt(e)})}function Hee(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Mt(e)})}var Yqe={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Jqe(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Mt(e)})}function Xqe(t,e){return new t({type:"string",format:"date",check:"string_format",...Mt(e)})}function Qqe(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...Mt(e)})}function eHe(t,e){return new t({type:"string",format:"duration",check:"string_format",...Mt(e)})}function tHe(t,e){return new t({type:"number",checks:[],...Mt(e)})}function nHe(t,e){return new t({type:"number",coerce:!0,checks:[],...Mt(e)})}function rHe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Mt(e)})}function iHe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Mt(e)})}function sHe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Mt(e)})}function aHe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Mt(e)})}function oHe(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Mt(e)})}function lHe(t,e){return new t({type:"boolean",...Mt(e)})}function cHe(t,e){return new t({type:"boolean",coerce:!0,...Mt(e)})}function uHe(t,e){return new t({type:"bigint",...Mt(e)})}function dHe(t,e){return new t({type:"bigint",coerce:!0,...Mt(e)})}function fHe(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Mt(e)})}function hHe(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Mt(e)})}function pHe(t,e){return new t({type:"symbol",...Mt(e)})}function mHe(t,e){return new t({type:"undefined",...Mt(e)})}function gHe(t,e){return new t({type:"null",...Mt(e)})}function vHe(t){return new t({type:"any"})}function yHe(t){return new t({type:"unknown"})}function bHe(t,e){return new t({type:"never",...Mt(e)})}function xHe(t,e){return new t({type:"void",...Mt(e)})}function wHe(t,e){return new t({type:"date",...Mt(e)})}function _He(t,e){return new t({type:"date",coerce:!0,...Mt(e)})}function kHe(t,e){return new t({type:"nan",...Mt(e)})}function gm(t,e){return new pee({check:"less_than",...Mt(e),value:t,inclusive:!1})}function zu(t,e){return new pee({check:"less_than",...Mt(e),value:t,inclusive:!0})}function vm(t,e){return new mee({check:"greater_than",...Mt(e),value:t,inclusive:!1})}function Xl(t,e){return new mee({check:"greater_than",...Mt(e),value:t,inclusive:!0})}function Wee(t){return vm(0,t)}function Vee(t){return gm(0,t)}function Zee(t){return zu(0,t)}function Gee(t){return Xl(0,t)}function yb(t,e){return new lUe({check:"multiple_of",...Mt(e),value:t})}function k5(t,e){return new dUe({check:"max_size",...Mt(e),maximum:t})}function ym(t,e){return new fUe({check:"min_size",...Mt(e),minimum:t})}function ck(t,e){return new hUe({check:"size_equals",...Mt(e),size:t})}function uk(t,e){return new pUe({check:"max_length",...Mt(e),maximum:t})}function Zg(t,e){return new mUe({check:"min_length",...Mt(e),minimum:t})}function dk(t,e){return new gUe({check:"length_equals",...Mt(e),length:t})}function RA(t,e){return new vUe({check:"string_format",format:"regex",...Mt(e),pattern:t})}function LA(t){return new yUe({check:"string_format",format:"lowercase",...Mt(t)})}function PA(t){return new bUe({check:"string_format",format:"uppercase",...Mt(t)})}function jA(t,e){return new xUe({check:"string_format",format:"includes",...Mt(e),includes:t})}function zA(t,e){return new wUe({check:"string_format",format:"starts_with",...Mt(e),prefix:t})}function FA(t,e){return new _Ue({check:"string_format",format:"ends_with",...Mt(e),suffix:t})}function Kee(t,e,n){return new kUe({check:"property",property:t,schema:e,...Mt(n)})}function BA(t,e){return new SUe({check:"mime_type",mime:t,...Mt(e)})}function jp(t){return new CUe({check:"overwrite",tx:t})}function UA(t){return jp(e=>e.normalize(t))}function qA(){return jp(t=>t.trim())}function HA(){return jp(t=>t.toLowerCase())}function WA(){return jp(t=>t.toUpperCase())}function VA(){return jp(t=>mBe(t))}function SHe(t,e,n){return new t({type:"array",element:e,...Mt(n)})}function jbn(t,e,n){return new t({type:"union",options:e,...Mt(n)})}function zbn(t,e,n){return new t({type:"union",options:e,inclusive:!1,...Mt(n)})}function Fbn(t,e,n,r){return new t({type:"union",options:n,discriminator:e,...Mt(r)})}function Bbn(t,e,n){return new t({type:"intersection",left:e,right:n})}function Ubn(t,e,n,r){let i=n instanceof kr;return new t({type:"tuple",items:e,rest:i?n:null,...Mt(i?r:n)})}function qbn(t,e,n,r){return new t({type:"record",keyType:e,valueType:n,...Mt(r)})}function Hbn(t,e,n,r){return new t({type:"map",keyType:e,valueType:n,...Mt(r)})}function Wbn(t,e,n){return new t({type:"set",valueType:e,...Mt(n)})}function Vbn(t,e,n){let r=Array.isArray(e)?Object.fromEntries(e.map(i=>[i,i])):e;return new t({type:"enum",entries:r,...Mt(n)})}function Zbn(t,e,n){return new t({type:"enum",entries:e,...Mt(n)})}function Gbn(t,e,n){return new t({type:"literal",values:Array.isArray(e)?e:[e],...Mt(n)})}function CHe(t,e){return new t({type:"file",...Mt(e)})}function Kbn(t,e){return new t({type:"transform",transform:e})}function Ybn(t,e){return new t({type:"optional",innerType:e})}function Jbn(t,e){return new t({type:"nullable",innerType:e})}function Xbn(t,e,n){return new t({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():vBe(n)}})}function Qbn(t,e,n){return new t({type:"nonoptional",innerType:e,...Mt(n)})}function e5n(t,e){return new t({type:"success",innerType:e})}function t5n(t,e,n){return new t({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}function n5n(t,e,n){return new t({type:"pipe",in:e,out:n})}function r5n(t,e){return new t({type:"readonly",innerType:e})}function i5n(t,e,n){return new t({type:"template_literal",parts:e,...Mt(n)})}function s5n(t,e){return new t({type:"lazy",getter:e})}function a5n(t,e){return new t({type:"promise",innerType:e})}function EHe(t,e,n){let r=Mt(n);return r.abort??(r.abort=!0),new t({type:"custom",check:"custom",fn:e,...r})}function $He(t,e,n){return new t({type:"custom",check:"custom",fn:e,...Mt(n)})}function THe(t){let e=IHe(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(t$(r,n.value,e._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),i.continue??(i.continue=!e._zod.def.abort),n.issues.push(t$(i))}},t(n.value,n)));return e}function IHe(t,e){let n=new Is({check:"custom",...Mt(e)});return n._zod.check=t,n}function AHe(t){let e=new Is({check:"describe"});return e._zod.onattach=[n=>{let r=$u.get(n)??{};$u.add(n,{...r,description:t})}],e._zod.check=()=>{},e}function OHe(t){let e=new Is({check:"meta"});return e._zod.onattach=[n=>{let r=$u.get(n)??{};$u.add(n,{...r,...t})}],e._zod.check=()=>{},e}function DHe(t,e){let n=Mt(e),r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(f=>typeof f=="string"?f.toLowerCase():f),i=i.map(f=>typeof f=="string"?f.toLowerCase():f));let s=new Set(r),a=new Set(i),o=t.Codec??_ee,l=t.Boolean??yee,c=new(t.String??lk)({type:"string",error:n.error}),u=new l({type:"boolean",error:n.error}),d=new o({type:"pipe",in:c,out:u,transform:(f,h)=>{let m=f;return n.case!=="sensitive"&&(m=m.toLowerCase()),s.has(m)?!0:a.has(m)?!1:(h.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...a],input:h.value,inst:d,continue:!1}),{})},reverseTransform:(f,h)=>f===!0?r[0]||"true":i[0]||"false",error:n.error});return d}function fk(t,e,n,r={}){let i=Mt(r),s={...Mt(r),check:"string_format",type:"string",format:e,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(s.pattern=n),new t(s)}function bb(t){let e=(t==null?void 0:t.target)??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:(t==null?void 0:t.metadata)??$u,target:e,unrepresentable:(t==null?void 0:t.unrepresentable)??"throw",override:(t==null?void 0:t.override)??(()=>{}),io:(t==null?void 0:t.io)??"output",counter:0,seen:new Map,cycles:(t==null?void 0:t.cycles)??"ref",reused:(t==null?void 0:t.reused)??"inline",external:(t==null?void 0:t.external)??void 0}}function Zi(t,e,n={path:[],schemaPath:[]}){var c,u;var r;let i=t._zod.def,s=e.seen.get(t);if(s)return s.count++,n.schemaPath.includes(t)&&(s.cycle=n.path),s.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};e.seen.set(t,a);let o=(u=(c=t._zod).toJSONSchema)==null?void 0:u.call(c);if(o)a.schema=o;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,a.schema,d);else{let h=a.schema,m=e.processors[i.type];if(!m)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);m(t,e,h,d)}let f=t._zod.parent;f&&(a.ref||(a.ref=f),Zi(f,e,d),e.seen.get(f).isParent=!0)}let l=e.metadataRegistry.get(t);return l&&Object.assign(a.schema,l),e.io==="input"&&ol(t)&&(delete a.schema.examples,delete a.schema.default),e.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,e.seen.get(t).schema}function xb(t,e){var a,o,l,c;let n=t.seen.get(e);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=new Map;for(let u of t.seen.entries()){let d=(a=t.metadataRegistry.get(u[0]))==null?void 0:a.id;if(d){let f=r.get(d);if(f&&f!==u[0])throw Error(`Duplicate schema id "${d}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(d,u[0])}}let i=u=>{var m;let d=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let p=(m=t.external.registry.get(u[0]))==null?void 0:m.id,v=t.external.uri??(w=>w);if(p)return{ref:v(p)};let x=u[1].defId??u[1].schema.id??`schema${t.counter++}`;return u[1].defId=x,{defId:x,ref:`${v("__shared")}#/${d}/${x}`}}if(u[1]===n)return{ref:"#"};let f=`#/${d}/`,h=u[1].schema.id??`__schema${t.counter++}`;return{defId:h,ref:f+h}},s=u=>{if(u[1].schema.$ref)return;let d=u[1],{ref:f,defId:h}=i(u);d.def={...d.schema},h&&(d.defId=h);let m=d.schema;for(let p in m)delete m[p];m.$ref=f};if(t.cycles==="throw")for(let u of t.seen.entries()){let d=u[1];if(d.cycle)throw Error(`Cycle detected: #/${(o=d.cycle)==null?void 0:o.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of t.seen.entries()){let d=u[1];if(e===u[0]){s(u);continue}if(t.external){let f=(l=t.external.registry.get(u[0]))==null?void 0:l.id;if(e!==u[0]&&f){s(u);continue}}if((c=t.metadataRegistry.get(u[0]))!=null&&c.id){s(u);continue}if(d.cycle){s(u);continue}if(d.count>1&&t.reused==="ref"){s(u);continue}}}function wb(t,e){var a,o,l;let n=t.seen.get(e);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=c=>{let u=t.seen.get(c);if(u.ref===null)return;let d=u.def??u.schema,f={...d},h=u.ref;if(u.ref=null,h){r(h);let p=t.seen.get(h),v=p.schema;if(v.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(v)):Object.assign(d,v),Object.assign(d,f),c._zod.parent===h)for(let x in d)x==="$ref"||x==="allOf"||x in f||delete d[x];if(v.$ref)for(let x in d)x==="$ref"||x==="allOf"||x in p.def&&JSON.stringify(d[x])===JSON.stringify(p.def[x])&&delete d[x]}let m=c._zod.parent;if(m&&m!==h){r(m);let p=t.seen.get(m);if(p!=null&&p.schema.$ref&&(d.$ref=p.schema.$ref,p.def))for(let v in d)v==="$ref"||v==="allOf"||v in p.def&&JSON.stringify(d[v])===JSON.stringify(p.def[v])&&delete d[v]}t.override({zodSchema:c,jsonSchema:d,path:u.path??[]})};for(let c of[...t.seen.entries()].reverse())r(c[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,(a=t.external)!=null&&a.uri){let c=(o=t.external.registry.get(e))==null?void 0:o.id;if(!c)throw Error("Schema is missing an `id` property");i.$id=t.external.uri(c)}Object.assign(i,n.def??n.schema);let s=((l=t.external)==null?void 0:l.defs)??{};for(let c of t.seen.entries()){let u=c[1];u.def&&u.defId&&(s[u.defId]=u.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{let c=JSON.parse(JSON.stringify(i));return Object.defineProperty(c,"~standard",{value:{...e["~standard"],jsonSchema:{input:Zw(e,"input",t.processors),output:Zw(e,"output",t.processors)}},enumerable:!1,writable:!1}),c}catch{throw Error("Error converting schema to JSON.")}}function ol(t,e){let n=e??{seen:new Set};if(n.seen.has(t))return!1;n.seen.add(t);let r=t._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ol(r.element,n);if(r.type==="set")return ol(r.valueType,n);if(r.type==="lazy")return ol(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return ol(r.innerType,n);if(r.type==="intersection")return ol(r.left,n)||ol(r.right,n);if(r.type==="record"||r.type==="map")return ol(r.keyType,n)||ol(r.valueType,n);if(r.type==="pipe")return ol(r.in,n)||ol(r.out,n);if(r.type==="object"){for(let i in r.shape)if(ol(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(let i of r.options)if(ol(i,n))return!0;return!1}if(r.type==="tuple"){for(let i of r.items)if(ol(i,n))return!0;return!!(r.rest&&ol(r.rest,n))}return!1}var MHe=(t,e={})=>n=>{let r=bb({...n,processors:e});return Zi(t,r),xb(r,t),wb(r,t)},Zw=(t,e,n={})=>r=>{let{libraryOptions:i,target:s}=r??{},a=bb({...i??{},target:s,io:e,processors:n});return Zi(t,a),xb(a,t),wb(a,t)},o5n={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},NHe=(t,e,n,r)=>{let i=n;i.type="string";let{minimum:s,maximum:a,format:o,patterns:l,contentEncoding:c}=t._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof a=="number"&&(i.maxLength=a),o&&(i.format=o5n[o]??o,i.format===""&&delete i.format,o==="time"&&delete i.format),c&&(i.contentEncoding=c),l&&l.size>0){let u=[...l];u.length===1?i.pattern=u[0].source:u.length>1&&(i.allOf=[...u.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},RHe=(t,e,n,r)=>{let i=n,{minimum:s,maximum:a,format:o,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:u}=t._zod.bag;typeof o=="string"&&o.includes("int")?i.type="integer":i.type="number",typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof s=="number"&&(i.minimum=s,typeof u=="number"&&e.target!=="draft-04"&&(u>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof c=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c),typeof a=="number"&&(i.maximum=a,typeof c=="number"&&e.target!=="draft-04"&&(c<=a?delete i.maximum:delete i.exclusiveMaximum)),typeof l=="number"&&(i.multipleOf=l)},LHe=(t,e,n,r)=>{n.type="boolean"},PHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},jHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},zHe=(t,e,n,r)=>{e.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},FHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},BHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},UHe=(t,e,n,r)=>{n.not={}},qHe=(t,e,n,r)=>{},HHe=(t,e,n,r)=>{},WHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},VHe=(t,e,n,r)=>{let i=t._zod.def,s=QQ(i.entries);s.every(a=>typeof a=="number")&&(n.type="number"),s.every(a=>typeof a=="string")&&(n.type="string"),n.enum=s},ZHe=(t,e,n,r)=>{let i=t._zod.def,s=[];for(let a of i.values)if(a===void 0){if(e.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(e.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(a))}else s.push(a);if(s.length!==0)if(s.length===1){let a=s[0];n.type=a===null?"null":typeof a,e.target==="draft-04"||e.target==="openapi-3.0"?n.enum=[a]:n.const=a}else s.every(a=>typeof a=="number")&&(n.type="number"),s.every(a=>typeof a=="string")&&(n.type="string"),s.every(a=>typeof a=="boolean")&&(n.type="boolean"),s.every(a=>a===null)&&(n.type="null"),n.enum=s},GHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},KHe=(t,e,n,r)=>{let i=n,s=t._zod.pattern;if(!s)throw Error("Pattern not found in template literal");i.type="string",i.pattern=s.source},YHe=(t,e,n,r)=>{let i=n,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:o,mime:l}=t._zod.bag;a!==void 0&&(s.minLength=a),o!==void 0&&(s.maxLength=o),l?l.length===1?(s.contentMediaType=l[0],Object.assign(i,s)):(Object.assign(i,s),i.anyOf=l.map(c=>({contentMediaType:c}))):Object.assign(i,s)},JHe=(t,e,n,r)=>{n.type="boolean"},XHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},QHe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},eWe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},tWe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},nWe=(t,e,n,r)=>{if(e.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},rWe=(t,e,n,r)=>{let i=n,s=t._zod.def,{minimum:a,maximum:o}=t._zod.bag;typeof a=="number"&&(i.minItems=a),typeof o=="number"&&(i.maxItems=o),i.type="array",i.items=Zi(s.element,e,{...r,path:[...r.path,"items"]})},iWe=(t,e,n,r)=>{var c;let i=n,s=t._zod.def;i.type="object",i.properties={};let a=s.shape;for(let u in a)i.properties[u]=Zi(a[u],e,{...r,path:[...r.path,"properties",u]});let o=new Set(Object.keys(a)),l=new Set([...o].filter(u=>{let d=s.shape[u]._zod;return e.io==="input"?d.optin===void 0:d.optout===void 0}));l.size>0&&(i.required=Array.from(l)),((c=s.catchall)==null?void 0:c._zod.def.type)==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=Zi(s.catchall,e,{...r,path:[...r.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},Yee=(t,e,n,r)=>{let i=t._zod.def,s=i.inclusive===!1,a=i.options.map((o,l)=>Zi(o,e,{...r,path:[...r.path,s?"oneOf":"anyOf",l]}));s?n.oneOf=a:n.anyOf=a},sWe=(t,e,n,r)=>{let i=t._zod.def,s=Zi(i.left,e,{...r,path:[...r.path,"allOf",0]}),a=Zi(i.right,e,{...r,path:[...r.path,"allOf",1]}),o=c=>"allOf"in c&&Object.keys(c).length===1,l=[...o(s)?s.allOf:[s],...o(a)?a.allOf:[a]];n.allOf=l},aWe=(t,e,n,r)=>{let i=n,s=t._zod.def;i.type="array";let a=e.target==="draft-2020-12"?"prefixItems":"items",o=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",l=s.items.map((f,h)=>Zi(f,e,{...r,path:[...r.path,a,h]})),c=s.rest?Zi(s.rest,e,{...r,path:[...r.path,o,...e.target==="openapi-3.0"?[s.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=l,c&&(i.items=c)):e.target==="openapi-3.0"?(i.items={anyOf:l},c&&i.items.anyOf.push(c),i.minItems=l.length,!c&&(i.maxItems=l.length)):(i.items=l,c&&(i.additionalItems=c));let{minimum:u,maximum:d}=t._zod.bag;typeof u=="number"&&(i.minItems=u),typeof d=="number"&&(i.maxItems=d)},oWe=(t,e,n,r)=>{var c;let i=n,s=t._zod.def;i.type="object";let a=s.keyType,o=(c=a._zod.bag)==null?void 0:c.patterns;if(s.mode==="loose"&&o&&o.size>0){let u=Zi(s.valueType,e,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(let d of o)i.patternProperties[d.source]=u}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=Zi(s.keyType,e,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=Zi(s.valueType,e,{...r,path:[...r.path,"additionalProperties"]});let l=a._zod.values;if(l){let u=[...l].filter(d=>typeof d=="string"||typeof d=="number");u.length>0&&(i.required=u)}},lWe=(t,e,n,r)=>{let i=t._zod.def,s=Zi(i.innerType,e,r),a=e.seen.get(t);e.target==="openapi-3.0"?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},cWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},uWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},dWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,e.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},fWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType;let a;try{a=i.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}n.default=a},hWe=(t,e,n,r)=>{let i=t._zod.def,s=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;Zi(s,e,r);let a=e.seen.get(t);a.ref=s},pWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType,n.readOnly=!0},mWe=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},Jee=(t,e,n,r)=>{let i=t._zod.def;Zi(i.innerType,e,r);let s=e.seen.get(t);s.ref=i.innerType},gWe=(t,e,n,r)=>{let i=t._zod.innerType;Zi(i,e,r);let s=e.seen.get(t);s.ref=i},IV={string:NHe,number:RHe,boolean:LHe,bigint:PHe,symbol:jHe,null:zHe,undefined:FHe,void:BHe,never:UHe,any:qHe,unknown:HHe,date:WHe,enum:VHe,literal:ZHe,nan:GHe,template_literal:KHe,file:YHe,success:JHe,custom:XHe,function:QHe,transform:eWe,map:tWe,set:nWe,array:rWe,object:iWe,union:Yee,intersection:sWe,tuple:aWe,record:oWe,nullable:lWe,nonoptional:cWe,default:uWe,prefault:dWe,catch:fWe,pipe:hWe,readonly:pWe,promise:mWe,optional:Jee,lazy:gWe};function vWe(t,e){if("_idmap"in t){let r=t,i=bb({...e,processors:IV}),s={};for(let l of r._idmap.entries()){let[c,u]=l;Zi(u,i)}let a={},o={registry:r,uri:e==null?void 0:e.uri,defs:s};i.external=o;for(let l of r._idmap.entries()){let[c,u]=l;xb(i,u),a[c]=wb(i,u)}if(Object.keys(s).length>0){let l=i.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[l]:s}}return{schemas:a}}let n=bb({...e,processors:IV});return Zi(t,n),xb(n,t),wb(n,t)}class l5n{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(e){this.ctx.counter=e}get seen(){return this.ctx.seen}constructor(e){let n=(e==null?void 0:e.target)??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=bb({processors:IV,target:n,...(e==null?void 0:e.metadata)&&{metadata:e.metadata},...(e==null?void 0:e.unrepresentable)&&{unrepresentable:e.unrepresentable},...(e==null?void 0:e.override)&&{override:e.override},...(e==null?void 0:e.io)&&{io:e.io}})}process(e,n={path:[],schemaPath:[]}){return Zi(e,this.ctx,n)}emit(e,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),xb(this.ctx,e);let r=wb(this.ctx,e),{"~standard":i,...s}=r;return s}}var c5n={},yWe={};Lp(yWe,{xor:()=>$Ve,xid:()=>YWe,void:()=>wVe,uuidv7:()=>UWe,uuidv6:()=>BWe,uuidv4:()=>FWe,uuid:()=>zWe,url:()=>qWe,unknown:()=>Gg,union:()=>hO,undefined:()=>bVe,ulid:()=>KWe,uint64:()=>vVe,uint32:()=>pVe,tuple:()=>xte,transform:()=>mO,templateLiteral:()=>FVe,symbol:()=>yVe,superRefine:()=>Zte,success:()=>PVe,stringbool:()=>ZVe,stringFormat:()=>oVe,string:()=>i$,strictObject:()=>CVe,set:()=>DVe,refine:()=>Vte,record:()=>wte,readonly:()=>Fte,promise:()=>BVe,preprocess:()=>KVe,prefault:()=>Mte,pipe:()=>Jw,partialRecord:()=>IVe,optional:()=>Kw,object:()=>SVe,number:()=>ite,nullish:()=>LVe,nullable:()=>Yw,null:()=>cte,nonoptional:()=>Nte,never:()=>dO,nativeEnum:()=>MVe,nanoid:()=>VWe,nan:()=>jVe,meta:()=>WVe,map:()=>OVe,mac:()=>QWe,looseRecord:()=>AVe,looseObject:()=>EVe,literal:()=>NVe,lazy:()=>qte,ksuid:()=>JWe,keyof:()=>kVe,jwt:()=>aVe,json:()=>GVe,ipv6:()=>eVe,ipv4:()=>XWe,intersection:()=>yte,int64:()=>gVe,int32:()=>hVe,int:()=>s$,instanceof:()=>VVe,httpUrl:()=>HWe,hostname:()=>lVe,hex:()=>cVe,hash:()=>uVe,guid:()=>jWe,function:()=>a$,float64:()=>fVe,float32:()=>dVe,file:()=>RVe,exactOptional:()=>Tte,enum:()=>pO,emoji:()=>WWe,email:()=>PWe,e164:()=>sVe,discriminatedUnion:()=>TVe,describe:()=>HVe,date:()=>_Ve,custom:()=>qVe,cuid2:()=>GWe,cuid:()=>ZWe,codec:()=>zVe,cidrv6:()=>nVe,cidrv4:()=>tVe,check:()=>UVe,catch:()=>Pte,boolean:()=>ste,bigint:()=>mVe,base64url:()=>iVe,base64:()=>rVe,array:()=>yk,any:()=>xVe,_function:()=>a$,_default:()=>Ote,_ZodString:()=>ZA,ZodXor:()=>mte,ZodXID:()=>eO,ZodVoid:()=>hte,ZodUnknown:()=>dte,ZodUnion:()=>xk,ZodUndefined:()=>ote,ZodUUID:()=>Sf,ZodURL:()=>pk,ZodULID:()=>QA,ZodType:()=>Ar,ZodTuple:()=>bte,ZodTransform:()=>Ete,ZodTemplateLiteral:()=>Bte,ZodSymbol:()=>ate,ZodSuccess:()=>Rte,ZodStringFormat:()=>es,ZodString:()=>hk,ZodSet:()=>kte,ZodRecord:()=>wk,ZodReadonly:()=>zte,ZodPromise:()=>Hte,ZodPrefault:()=>Dte,ZodPipe:()=>yO,ZodOptional:()=>gO,ZodObject:()=>bk,ZodNumberFormat:()=>$2,ZodNumber:()=>mk,ZodNullable:()=>Ite,ZodNull:()=>lte,ZodNonOptional:()=>vO,ZodNever:()=>fte,ZodNanoID:()=>YA,ZodNaN:()=>jte,ZodMap:()=>_te,ZodMAC:()=>rte,ZodLiteral:()=>Ste,ZodLazy:()=>Ute,ZodKSUID:()=>tO,ZodJWT:()=>cO,ZodIntersection:()=>vte,ZodIPv6:()=>rO,ZodIPv4:()=>nO,ZodGUID:()=>Gw,ZodFunction:()=>Wte,ZodFile:()=>Cte,ZodExactOptional:()=>$te,ZodEnum:()=>_b,ZodEmoji:()=>KA,ZodEmail:()=>GA,ZodE164:()=>lO,ZodDiscriminatedUnion:()=>gte,ZodDefault:()=>Ate,ZodDate:()=>fO,ZodCustomStringFormat:()=>S5,ZodCustom:()=>_k,ZodCodec:()=>bO,ZodCatch:()=>Lte,ZodCUID2:()=>XA,ZodCUID:()=>JA,ZodCIDRv6:()=>sO,ZodCIDRv4:()=>iO,ZodBoolean:()=>gk,ZodBigIntFormat:()=>uO,ZodBigInt:()=>vk,ZodBase64URL:()=>oO,ZodBase64:()=>aO,ZodArray:()=>pte,ZodAny:()=>ute});var bWe={};Lp(bWe,{uppercase:()=>PA,trim:()=>qA,toUpperCase:()=>WA,toLowerCase:()=>HA,startsWith:()=>zA,slugify:()=>VA,size:()=>ck,regex:()=>RA,property:()=>Kee,positive:()=>Wee,overwrite:()=>jp,normalize:()=>UA,nonpositive:()=>Zee,nonnegative:()=>Gee,negative:()=>Vee,multipleOf:()=>yb,minSize:()=>ym,minLength:()=>Zg,mime:()=>BA,maxSize:()=>k5,maxLength:()=>uk,lte:()=>zu,lt:()=>gm,lowercase:()=>LA,length:()=>dk,includes:()=>jA,gte:()=>Xl,gt:()=>vm,endsWith:()=>FA});var Xee={};Lp(Xee,{time:()=>_We,duration:()=>kWe,datetime:()=>xWe,date:()=>wWe,ZodISOTime:()=>tte,ZodISODuration:()=>nte,ZodISODateTime:()=>Qee,ZodISODate:()=>ete});var Qee=Le("ZodISODateTime",(t,e)=>{zUe.init(t,e),es.init(t,e)});function xWe(t){return Jqe(Qee,t)}var ete=Le("ZodISODate",(t,e)=>{FUe.init(t,e),es.init(t,e)});function wWe(t){return Xqe(ete,t)}var tte=Le("ZodISOTime",(t,e)=>{BUe.init(t,e),es.init(t,e)});function _We(t){return Qqe(tte,t)}var nte=Le("ZodISODuration",(t,e)=>{UUe.init(t,e),es.init(t,e)});function kWe(t){return eHe(nte,t)}var SWe=(t,e)=>{tee.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:n=>ree(t,n)},flatten:{value:n=>nee(t,n)},addIssue:{value:n=>{t.issues.push(n),t.message=JSON.stringify(t.issues,QE,2)}},addIssues:{value:n=>{t.issues.push(...n),t.message=JSON.stringify(t.issues,QE,2)}},isEmpty:{get(){return t.issues.length===0}}})},u5n=Le("ZodError",SWe),iu=Le("ZodError",SWe,{Parent:Error}),CWe=tk(iu),EWe=nk(iu),$We=rk(iu),TWe=ik(iu),IWe=iee(iu),AWe=see(iu),OWe=aee(iu),DWe=oee(iu),MWe=lee(iu),NWe=cee(iu),RWe=uee(iu),LWe=dee(iu),Ar=Le("ZodType",(t,e)=>(kr.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Zw(t,"input"),output:Zw(t,"output")}}),t.toJSONSchema=MHe(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...n)=>t.clone(Jr.mergeDefs(e,{checks:[...e.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),t.with=t.check,t.clone=(n,r)=>cd(t,n,r),t.brand=()=>t,t.register=(n,r)=>(n.add(t,r),t),t.parse=(n,r)=>CWe(t,n,r,{callee:t.parse}),t.safeParse=(n,r)=>$We(t,n,r),t.parseAsync=async(n,r)=>EWe(t,n,r,{callee:t.parseAsync}),t.safeParseAsync=async(n,r)=>TWe(t,n,r),t.spa=t.safeParseAsync,t.encode=(n,r)=>IWe(t,n,r),t.decode=(n,r)=>AWe(t,n,r),t.encodeAsync=async(n,r)=>OWe(t,n,r),t.decodeAsync=async(n,r)=>DWe(t,n,r),t.safeEncode=(n,r)=>MWe(t,n,r),t.safeDecode=(n,r)=>NWe(t,n,r),t.safeEncodeAsync=async(n,r)=>RWe(t,n,r),t.safeDecodeAsync=async(n,r)=>LWe(t,n,r),t.refine=(n,r)=>t.check(Vte(n,r)),t.superRefine=n=>t.check(Zte(n)),t.overwrite=n=>t.check(jp(n)),t.optional=()=>Kw(t),t.exactOptional=()=>Tte(t),t.nullable=()=>Yw(t),t.nullish=()=>Kw(Yw(t)),t.nonoptional=n=>Nte(t,n),t.array=()=>yk(t),t.or=n=>hO([t,n]),t.and=n=>yte(t,n),t.transform=n=>Jw(t,mO(n)),t.default=n=>Ote(t,n),t.prefault=n=>Mte(t,n),t.catch=n=>Pte(t,n),t.pipe=n=>Jw(t,n),t.readonly=()=>Fte(t),t.describe=n=>{let r=t.clone();return $u.add(r,{description:n}),r},Object.defineProperty(t,"description",{get(){var n;return(n=$u.get(t))==null?void 0:n.description},configurable:!0}),t.meta=(...n)=>{if(n.length===0)return $u.get(t);let r=t.clone();return $u.add(r,n[0]),r},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=n=>n(t),t)),ZA=Le("_ZodString",(t,e)=>{lk.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(r,i,s)=>NHe(t,r,i);let n=t._zod.bag;t.format=n.format??null,t.minLength=n.minimum??null,t.maxLength=n.maximum??null,t.regex=(...r)=>t.check(RA(...r)),t.includes=(...r)=>t.check(jA(...r)),t.startsWith=(...r)=>t.check(zA(...r)),t.endsWith=(...r)=>t.check(FA(...r)),t.min=(...r)=>t.check(Zg(...r)),t.max=(...r)=>t.check(uk(...r)),t.length=(...r)=>t.check(dk(...r)),t.nonempty=(...r)=>t.check(Zg(1,...r)),t.lowercase=r=>t.check(LA(r)),t.uppercase=r=>t.check(PA(r)),t.trim=()=>t.check(qA()),t.normalize=(...r)=>t.check(UA(...r)),t.toLowerCase=()=>t.check(HA()),t.toUpperCase=()=>t.check(WA()),t.slugify=()=>t.check(VA())}),hk=Le("ZodString",(t,e)=>{lk.init(t,e),ZA.init(t,e),t.email=n=>t.check(Cee(GA,n)),t.url=n=>t.check(NA(pk,n)),t.jwt=n=>t.check(Hee(cO,n)),t.emoji=n=>t.check(Aee(KA,n)),t.guid=n=>t.check(r$(Gw,n)),t.uuid=n=>t.check(Eee(Sf,n)),t.uuidv4=n=>t.check($ee(Sf,n)),t.uuidv6=n=>t.check(Tee(Sf,n)),t.uuidv7=n=>t.check(Iee(Sf,n)),t.nanoid=n=>t.check(Oee(YA,n)),t.guid=n=>t.check(r$(Gw,n)),t.cuid=n=>t.check(Dee(JA,n)),t.cuid2=n=>t.check(Mee(XA,n)),t.ulid=n=>t.check(Nee(QA,n)),t.base64=n=>t.check(Bee(aO,n)),t.base64url=n=>t.check(Uee(oO,n)),t.xid=n=>t.check(Ree(eO,n)),t.ksuid=n=>t.check(Lee(tO,n)),t.ipv4=n=>t.check(Pee(nO,n)),t.ipv6=n=>t.check(jee(rO,n)),t.cidrv4=n=>t.check(zee(iO,n)),t.cidrv6=n=>t.check(Fee(sO,n)),t.e164=n=>t.check(qee(lO,n)),t.datetime=n=>t.check(xWe(n)),t.date=n=>t.check(wWe(n)),t.time=n=>t.check(_We(n)),t.duration=n=>t.check(kWe(n))});function i$(t){return Zqe(hk,t)}var es=Le("ZodStringFormat",(t,e)=>{Qi.init(t,e),ZA.init(t,e)}),GA=Le("ZodEmail",(t,e)=>{AUe.init(t,e),es.init(t,e)});function PWe(t){return Cee(GA,t)}var Gw=Le("ZodGUID",(t,e)=>{TUe.init(t,e),es.init(t,e)});function jWe(t){return r$(Gw,t)}var Sf=Le("ZodUUID",(t,e)=>{IUe.init(t,e),es.init(t,e)});function zWe(t){return Eee(Sf,t)}function FWe(t){return $ee(Sf,t)}function BWe(t){return Tee(Sf,t)}function UWe(t){return Iee(Sf,t)}var pk=Le("ZodURL",(t,e)=>{OUe.init(t,e),es.init(t,e)});function qWe(t){return NA(pk,t)}function HWe(t){return NA(pk,{protocol:/^https?$/,hostname:E2.domain,...Jr.normalizeParams(t)})}var KA=Le("ZodEmoji",(t,e)=>{DUe.init(t,e),es.init(t,e)});function WWe(t){return Aee(KA,t)}var YA=Le("ZodNanoID",(t,e)=>{MUe.init(t,e),es.init(t,e)});function VWe(t){return Oee(YA,t)}var JA=Le("ZodCUID",(t,e)=>{NUe.init(t,e),es.init(t,e)});function ZWe(t){return Dee(JA,t)}var XA=Le("ZodCUID2",(t,e)=>{RUe.init(t,e),es.init(t,e)});function GWe(t){return Mee(XA,t)}var QA=Le("ZodULID",(t,e)=>{LUe.init(t,e),es.init(t,e)});function KWe(t){return Nee(QA,t)}var eO=Le("ZodXID",(t,e)=>{PUe.init(t,e),es.init(t,e)});function YWe(t){return Ree(eO,t)}var tO=Le("ZodKSUID",(t,e)=>{jUe.init(t,e),es.init(t,e)});function JWe(t){return Lee(tO,t)}var nO=Le("ZodIPv4",(t,e)=>{qUe.init(t,e),es.init(t,e)});function XWe(t){return Pee(nO,t)}var rte=Le("ZodMAC",(t,e)=>{WUe.init(t,e),es.init(t,e)});function QWe(t){return Kqe(rte,t)}var rO=Le("ZodIPv6",(t,e)=>{HUe.init(t,e),es.init(t,e)});function eVe(t){return jee(rO,t)}var iO=Le("ZodCIDRv4",(t,e)=>{VUe.init(t,e),es.init(t,e)});function tVe(t){return zee(iO,t)}var sO=Le("ZodCIDRv6",(t,e)=>{ZUe.init(t,e),es.init(t,e)});function nVe(t){return Fee(sO,t)}var aO=Le("ZodBase64",(t,e)=>{GUe.init(t,e),es.init(t,e)});function rVe(t){return Bee(aO,t)}var oO=Le("ZodBase64URL",(t,e)=>{YUe.init(t,e),es.init(t,e)});function iVe(t){return Uee(oO,t)}var lO=Le("ZodE164",(t,e)=>{JUe.init(t,e),es.init(t,e)});function sVe(t){return qee(lO,t)}var cO=Le("ZodJWT",(t,e)=>{QUe.init(t,e),es.init(t,e)});function aVe(t){return Hee(cO,t)}var S5=Le("ZodCustomStringFormat",(t,e)=>{eqe.init(t,e),es.init(t,e)});function oVe(t,e,n={}){return fk(S5,t,e,n)}function lVe(t){return fk(S5,"hostname",E2.hostname,t)}function cVe(t){return fk(S5,"hex",E2.hex,t)}function uVe(t,e){let n=(e==null?void 0:e.enc)??"hex",r=`${t}_${n}`,i=E2[r];if(!i)throw Error(`Unrecognized hash format: ${r}`);return fk(S5,r,i,e)}var mk=Le("ZodNumber",(t,e)=>{vee.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(r,i,s)=>RHe(t,r,i),t.gt=(r,i)=>t.check(vm(r,i)),t.gte=(r,i)=>t.check(Xl(r,i)),t.min=(r,i)=>t.check(Xl(r,i)),t.lt=(r,i)=>t.check(gm(r,i)),t.lte=(r,i)=>t.check(zu(r,i)),t.max=(r,i)=>t.check(zu(r,i)),t.int=r=>t.check(s$(r)),t.safe=r=>t.check(s$(r)),t.positive=r=>t.check(vm(0,r)),t.nonnegative=r=>t.check(Xl(0,r)),t.negative=r=>t.check(gm(0,r)),t.nonpositive=r=>t.check(zu(0,r)),t.multipleOf=(r,i)=>t.check(yb(r,i)),t.step=(r,i)=>t.check(yb(r,i)),t.finite=()=>t;let n=t._zod.bag;t.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),t.isFinite=!0,t.format=n.format??null});function ite(t){return tHe(mk,t)}var $2=Le("ZodNumberFormat",(t,e)=>{tqe.init(t,e),mk.init(t,e)});function s$(t){return rHe($2,t)}function dVe(t){return iHe($2,t)}function fVe(t){return sHe($2,t)}function hVe(t){return aHe($2,t)}function pVe(t){return oHe($2,t)}var gk=Le("ZodBoolean",(t,e)=>{yee.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>LHe(t,n,r)});function ste(t){return lHe(gk,t)}var vk=Le("ZodBigInt",(t,e)=>{bee.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(r,i,s)=>PHe(t,r),t.gte=(r,i)=>t.check(Xl(r,i)),t.min=(r,i)=>t.check(Xl(r,i)),t.gt=(r,i)=>t.check(vm(r,i)),t.gte=(r,i)=>t.check(Xl(r,i)),t.min=(r,i)=>t.check(Xl(r,i)),t.lt=(r,i)=>t.check(gm(r,i)),t.lte=(r,i)=>t.check(zu(r,i)),t.max=(r,i)=>t.check(zu(r,i)),t.positive=r=>t.check(vm(BigInt(0),r)),t.negative=r=>t.check(gm(BigInt(0),r)),t.nonpositive=r=>t.check(zu(BigInt(0),r)),t.nonnegative=r=>t.check(Xl(BigInt(0),r)),t.multipleOf=(r,i)=>t.check(yb(r,i));let n=t._zod.bag;t.minValue=n.minimum??null,t.maxValue=n.maximum??null,t.format=n.format??null});function mVe(t){return uHe(vk,t)}var uO=Le("ZodBigIntFormat",(t,e)=>{nqe.init(t,e),vk.init(t,e)});function gVe(t){return fHe(uO,t)}function vVe(t){return hHe(uO,t)}var ate=Le("ZodSymbol",(t,e)=>{rqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>jHe(t,n)});function yVe(t){return pHe(ate,t)}var ote=Le("ZodUndefined",(t,e)=>{iqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>FHe(t,n)});function bVe(t){return mHe(ote,t)}var lte=Le("ZodNull",(t,e)=>{sqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>zHe(t,n,r)});function cte(t){return gHe(lte,t)}var ute=Le("ZodAny",(t,e)=>{aqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>qHe()});function xVe(){return vHe(ute)}var dte=Le("ZodUnknown",(t,e)=>{oqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>HHe()});function Gg(){return yHe(dte)}var fte=Le("ZodNever",(t,e)=>{lqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>UHe(t,n,r)});function dO(t){return bHe(fte,t)}var hte=Le("ZodVoid",(t,e)=>{cqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>BHe(t,n)});function wVe(t){return xHe(hte,t)}var fO=Le("ZodDate",(t,e)=>{uqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(r,i,s)=>WHe(t,r),t.min=(r,i)=>t.check(Xl(r,i)),t.max=(r,i)=>t.check(zu(r,i));let n=t._zod.bag;t.minDate=n.minimum?new Date(n.minimum):null,t.maxDate=n.maximum?new Date(n.maximum):null});function _Ve(t){return wHe(fO,t)}var pte=Le("ZodArray",(t,e)=>{dqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>rWe(t,n,r,i),t.element=e.element,t.min=(n,r)=>t.check(Zg(n,r)),t.nonempty=n=>t.check(Zg(1,n)),t.max=(n,r)=>t.check(uk(n,r)),t.length=(n,r)=>t.check(dk(n,r)),t.unwrap=()=>t.element});function yk(t,e){return SHe(pte,t,e)}function kVe(t){let e=t._zod.def.shape;return pO(Object.keys(e))}var bk=Le("ZodObject",(t,e)=>{mqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>iWe(t,n,r,i),Jr.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>pO(Object.keys(t._zod.def.shape)),t.catchall=n=>t.clone({...t._zod.def,catchall:n}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Gg()}),t.loose=()=>t.clone({...t._zod.def,catchall:Gg()}),t.strict=()=>t.clone({...t._zod.def,catchall:dO()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=n=>Jr.extend(t,n),t.safeExtend=n=>Jr.safeExtend(t,n),t.merge=n=>Jr.merge(t,n),t.pick=n=>Jr.pick(t,n),t.omit=n=>Jr.omit(t,n),t.partial=(...n)=>Jr.partial(gO,t,n[0]),t.required=(...n)=>Jr.required(vO,t,n[0])});function SVe(t,e){let n={type:"object",shape:t??{},...Jr.normalizeParams(e)};return new bk(n)}function CVe(t,e){return new bk({type:"object",shape:t,catchall:dO(),...Jr.normalizeParams(e)})}function EVe(t,e){return new bk({type:"object",shape:t,catchall:Gg(),...Jr.normalizeParams(e)})}var xk=Le("ZodUnion",(t,e)=>{MA.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Yee(t,n,r,i),t.options=e.options});function hO(t,e){return new xk({type:"union",options:t,...Jr.normalizeParams(e)})}var mte=Le("ZodXor",(t,e)=>{xk.init(t,e),gqe.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Yee(t,n,r,i),t.options=e.options});function $Ve(t,e){return new mte({type:"union",options:t,inclusive:!1,...Jr.normalizeParams(e)})}var gte=Le("ZodDiscriminatedUnion",(t,e)=>{xk.init(t,e),vqe.init(t,e)});function TVe(t,e,n){return new gte({type:"union",options:e,discriminator:t,...Jr.normalizeParams(n)})}var vte=Le("ZodIntersection",(t,e)=>{yqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>sWe(t,n,r,i)});function yte(t,e){return new vte({type:"intersection",left:t,right:e})}var bte=Le("ZodTuple",(t,e)=>{xee.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>aWe(t,n,r,i),t.rest=n=>t.clone({...t._zod.def,rest:n})});function xte(t,e,n){let r=e instanceof kr,i=r?n:e;return new bte({type:"tuple",items:t,rest:r?e:null,...Jr.normalizeParams(i)})}var wk=Le("ZodRecord",(t,e)=>{bqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>oWe(t,n,r,i),t.keyType=e.keyType,t.valueType=e.valueType});function wte(t,e,n){return new wk({type:"record",keyType:t,valueType:e,...Jr.normalizeParams(n)})}function IVe(t,e,n){let r=cd(t);return r._zod.values=void 0,new wk({type:"record",keyType:r,valueType:e,...Jr.normalizeParams(n)})}function AVe(t,e,n){return new wk({type:"record",keyType:t,valueType:e,mode:"loose",...Jr.normalizeParams(n)})}var _te=Le("ZodMap",(t,e)=>{xqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>tWe(t,n),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...n)=>t.check(ym(...n)),t.nonempty=n=>t.check(ym(1,n)),t.max=(...n)=>t.check(k5(...n)),t.size=(...n)=>t.check(ck(...n))});function OVe(t,e,n){return new _te({type:"map",keyType:t,valueType:e,...Jr.normalizeParams(n)})}var kte=Le("ZodSet",(t,e)=>{wqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>nWe(t,n),t.min=(...n)=>t.check(ym(...n)),t.nonempty=n=>t.check(ym(1,n)),t.max=(...n)=>t.check(k5(...n)),t.size=(...n)=>t.check(ck(...n))});function DVe(t,e){return new kte({type:"set",valueType:t,...Jr.normalizeParams(e)})}var _b=Le("ZodEnum",(t,e)=>{_qe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(r,i,s)=>VHe(t,r,i),t.enum=e.entries,t.options=Object.values(e.entries);let n=new Set(Object.keys(e.entries));t.extract=(r,i)=>{let s={};for(let a of r)if(n.has(a))s[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new _b({...e,checks:[],...Jr.normalizeParams(i),entries:s})},t.exclude=(r,i)=>{let s={...e.entries};for(let a of r)if(n.has(a))delete s[a];else throw Error(`Key ${a} not found in enum`);return new _b({...e,checks:[],...Jr.normalizeParams(i),entries:s})}});function pO(t,e){let n=Array.isArray(t)?Object.fromEntries(t.map(r=>[r,r])):t;return new _b({type:"enum",entries:n,...Jr.normalizeParams(e)})}function MVe(t,e){return new _b({type:"enum",entries:t,...Jr.normalizeParams(e)})}var Ste=Le("ZodLiteral",(t,e)=>{kqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>ZHe(t,n,r),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function NVe(t,e){return new Ste({type:"literal",values:Array.isArray(t)?t:[t],...Jr.normalizeParams(e)})}var Cte=Le("ZodFile",(t,e)=>{Sqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>YHe(t,n,r),t.min=(n,r)=>t.check(ym(n,r)),t.max=(n,r)=>t.check(k5(n,r)),t.mime=(n,r)=>t.check(BA(Array.isArray(n)?n:[n],r))});function RVe(t){return CHe(Cte,t)}var Ete=Le("ZodTransform",(t,e)=>{Cqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>eWe(t,n),t._zod.parse=(n,r)=>{if(r.direction==="backward")throw new IA(t.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(Jr.issue(s,n.value,e));else{let a=s;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=t),n.issues.push(Jr.issue(a))}};let i=e.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});function mO(t){return new Ete({type:"transform",transform:t})}var gO=Le("ZodOptional",(t,e)=>{wee.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Jee(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Kw(t){return new gO({type:"optional",innerType:t})}var $te=Le("ZodExactOptional",(t,e)=>{Eqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>Jee(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Tte(t){return new $te({type:"optional",innerType:t})}var Ite=Le("ZodNullable",(t,e)=>{$qe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>lWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Yw(t){return new Ite({type:"nullable",innerType:t})}function LVe(t){return Kw(Yw(t))}var Ate=Le("ZodDefault",(t,e)=>{Tqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>uWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function Ote(t,e){return new Ate({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Jr.shallowClone(e)}})}var Dte=Le("ZodPrefault",(t,e)=>{Iqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>dWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Mte(t,e){return new Dte({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Jr.shallowClone(e)}})}var vO=Le("ZodNonOptional",(t,e)=>{Aqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>cWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Nte(t,e){return new vO({type:"nonoptional",innerType:t,...Jr.normalizeParams(e)})}var Rte=Le("ZodSuccess",(t,e)=>{Oqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>JHe(t,n,r),t.unwrap=()=>t._zod.def.innerType});function PVe(t){return new Rte({type:"success",innerType:t})}var Lte=Le("ZodCatch",(t,e)=>{Dqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>fWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Pte(t,e){return new Lte({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var jte=Le("ZodNaN",(t,e)=>{Mqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>GHe(t,n)});function jVe(t){return kHe(jte,t)}var yO=Le("ZodPipe",(t,e)=>{Nqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>hWe(t,n,r,i),t.in=e.in,t.out=e.out});function Jw(t,e){return new yO({type:"pipe",in:t,out:e})}var bO=Le("ZodCodec",(t,e)=>{yO.init(t,e),_ee.init(t,e)});function zVe(t,e,n){return new bO({type:"pipe",in:t,out:e,transform:n.decode,reverseTransform:n.encode})}var zte=Le("ZodReadonly",(t,e)=>{Rqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>pWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function Fte(t){return new zte({type:"readonly",innerType:t})}var Bte=Le("ZodTemplateLiteral",(t,e)=>{Lqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>KHe(t,n,r)});function FVe(t,e){return new Bte({type:"template_literal",parts:t,...Jr.normalizeParams(e)})}var Ute=Le("ZodLazy",(t,e)=>{zqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>gWe(t,n,r,i),t.unwrap=()=>t._zod.def.getter()});function qte(t){return new Ute({type:"lazy",getter:t})}var Hte=Le("ZodPromise",(t,e)=>{jqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>mWe(t,n,r,i),t.unwrap=()=>t._zod.def.innerType});function BVe(t){return new Hte({type:"promise",innerType:t})}var Wte=Le("ZodFunction",(t,e)=>{Pqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>QHe(t,n)});function a$(t){return new Wte({type:"function",input:Array.isArray(t==null?void 0:t.input)?xte(t==null?void 0:t.input):(t==null?void 0:t.input)??yk(Gg()),output:(t==null?void 0:t.output)??Gg()})}var _k=Le("ZodCustom",(t,e)=>{Fqe.init(t,e),Ar.init(t,e),t._zod.processJSONSchema=(n,r,i)=>XHe(t,n)});function UVe(t){let e=new Is({check:"custom"});return e._zod.check=t,e}function qVe(t,e){return EHe(_k,t??(()=>!0),e)}function Vte(t,e={}){return $He(_k,t,e)}function Zte(t){return THe(t)}var HVe=AHe,WVe=OHe;function VVe(t,e={}){let n=new _k({type:"custom",check:"custom",fn:r=>r instanceof t,abort:!0,...Jr.normalizeParams(e)});return n._zod.bag.Class=t,n._zod.check=r=>{r.value instanceof t||r.issues.push({code:"invalid_type",expected:t.name,input:r.value,inst:n,path:[...n._zod.def.path??[]]})},n}var ZVe=(...t)=>DHe({Codec:bO,Boolean:gk,String:hk},...t);function GVe(t){let e=qte(()=>hO([i$(t),ite(),ste(),cte(),yk(e),wte(i$(),e)]));return e}function KVe(t,e){return Jw(mO(t),e)}var d5n={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function f5n(t){Vo({customError:t})}function h5n(){return Vo().customError}var AV;AV||(AV={});var Kt={...yWe,...bWe,iso:Xee},p5n=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function m5n(t,e){let n=t.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":e??"draft-2020-12"}function g5n(t,e){if(!t.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let n=t.slice(1).split("/").filter(Boolean);if(n.length===0)return e.rootSchema;let r=e.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===r){let i=n[1];if(!i||!e.defs[i])throw Error(`Reference not found: ${t}`);return e.defs[i]}throw Error(`Reference not found: ${t}`)}function YVe(t,e){if(t.not!==void 0){if(typeof t.not=="object"&&Object.keys(t.not).length===0)return Kt.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(t.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(t.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(t.if!==void 0||t.then!==void 0||t.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(t.dependentSchemas!==void 0||t.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(t.$ref){let i=t.$ref;if(e.refs.has(i))return e.refs.get(i);if(e.processing.has(i))return Kt.lazy(()=>{if(!e.refs.has(i))throw Error(`Circular reference not resolved: ${i}`);return e.refs.get(i)});e.processing.add(i);let s=g5n(i,e),a=Mo(s,e);return e.refs.set(i,a),e.processing.delete(i),a}if(t.enum!==void 0){let i=t.enum;if(e.version==="openapi-3.0"&&t.nullable===!0&&i.length===1&&i[0]===null)return Kt.null();if(i.length===0)return Kt.never();if(i.length===1)return Kt.literal(i[0]);if(i.every(a=>typeof a=="string"))return Kt.enum(i);let s=i.map(a=>Kt.literal(a));return s.length<2?s[0]:Kt.union([s[0],s[1],...s.slice(2)])}if(t.const!==void 0)return Kt.literal(t.const);let n=t.type;if(Array.isArray(n)){let i=n.map(s=>{let a={...t,type:s};return YVe(a,e)});return i.length===0?Kt.never():i.length===1?i[0]:Kt.union(i)}if(!n)return Kt.any();let r;switch(n){case"string":{let i=Kt.string();if(t.format){let s=t.format;s==="email"?i=i.check(Kt.email()):s==="uri"||s==="uri-reference"?i=i.check(Kt.url()):s==="uuid"||s==="guid"?i=i.check(Kt.uuid()):s==="date-time"?i=i.check(Kt.iso.datetime()):s==="date"?i=i.check(Kt.iso.date()):s==="time"?i=i.check(Kt.iso.time()):s==="duration"?i=i.check(Kt.iso.duration()):s==="ipv4"?i=i.check(Kt.ipv4()):s==="ipv6"?i=i.check(Kt.ipv6()):s==="mac"?i=i.check(Kt.mac()):s==="cidr"?i=i.check(Kt.cidrv4()):s==="cidr-v6"?i=i.check(Kt.cidrv6()):s==="base64"?i=i.check(Kt.base64()):s==="base64url"?i=i.check(Kt.base64url()):s==="e164"?i=i.check(Kt.e164()):s==="jwt"?i=i.check(Kt.jwt()):s==="emoji"?i=i.check(Kt.emoji()):s==="nanoid"?i=i.check(Kt.nanoid()):s==="cuid"?i=i.check(Kt.cuid()):s==="cuid2"?i=i.check(Kt.cuid2()):s==="ulid"?i=i.check(Kt.ulid()):s==="xid"?i=i.check(Kt.xid()):s==="ksuid"&&(i=i.check(Kt.ksuid()))}typeof t.minLength=="number"&&(i=i.min(t.minLength)),typeof t.maxLength=="number"&&(i=i.max(t.maxLength)),t.pattern&&(i=i.regex(new RegExp(t.pattern))),r=i;break}case"number":case"integer":{let i=n==="integer"?Kt.number().int():Kt.number();typeof t.minimum=="number"&&(i=i.min(t.minimum)),typeof t.maximum=="number"&&(i=i.max(t.maximum)),typeof t.exclusiveMinimum=="number"?i=i.gt(t.exclusiveMinimum):t.exclusiveMinimum===!0&&typeof t.minimum=="number"&&(i=i.gt(t.minimum)),typeof t.exclusiveMaximum=="number"?i=i.lt(t.exclusiveMaximum):t.exclusiveMaximum===!0&&typeof t.maximum=="number"&&(i=i.lt(t.maximum)),typeof t.multipleOf=="number"&&(i=i.multipleOf(t.multipleOf)),r=i;break}case"boolean":{r=Kt.boolean();break}case"null":{r=Kt.null();break}case"object":{let i={},s=t.properties||{},a=new Set(t.required||[]);for(let[l,c]of Object.entries(s)){let u=Mo(c,e);i[l]=a.has(l)?u:u.optional()}if(t.propertyNames){let l=Mo(t.propertyNames,e),c=t.additionalProperties&&typeof t.additionalProperties=="object"?Mo(t.additionalProperties,e):Kt.any();if(Object.keys(i).length===0){r=Kt.record(l,c);break}let u=Kt.object(i).passthrough(),d=Kt.looseRecord(l,c);r=Kt.intersection(u,d);break}if(t.patternProperties){let l=t.patternProperties,c=Object.keys(l),u=[];for(let f of c){let h=Mo(l[f],e),m=Kt.string().regex(new RegExp(f));u.push(Kt.looseRecord(m,h))}let d=[];if(Object.keys(i).length>0&&d.push(Kt.object(i).passthrough()),d.push(...u),d.length===0)r=Kt.object({}).passthrough();else if(d.length===1)r=d[0];else{let f=Kt.intersection(d[0],d[1]);for(let h=2;hMo(l,e)),o=s&&typeof s=="object"&&!Array.isArray(s)?Mo(s,e):void 0;o?r=Kt.tuple(a).rest(o):r=Kt.tuple(a),typeof t.minItems=="number"&&(r=r.check(Kt.minLength(t.minItems))),typeof t.maxItems=="number"&&(r=r.check(Kt.maxLength(t.maxItems)))}else if(Array.isArray(s)){let a=s.map(l=>Mo(l,e)),o=t.additionalItems&&typeof t.additionalItems=="object"?Mo(t.additionalItems,e):void 0;o?r=Kt.tuple(a).rest(o):r=Kt.tuple(a),typeof t.minItems=="number"&&(r=r.check(Kt.minLength(t.minItems))),typeof t.maxItems=="number"&&(r=r.check(Kt.maxLength(t.maxItems)))}else if(s!==void 0){let a=Mo(s,e),o=Kt.array(a);typeof t.minItems=="number"&&(o=o.min(t.minItems)),typeof t.maxItems=="number"&&(o=o.max(t.maxItems)),r=o}else r=Kt.array(Kt.any());break}default:throw Error(`Unsupported type: ${n}`)}return t.description&&(r=r.describe(t.description)),t.default!==void 0&&(r=r.default(t.default)),r}function Mo(t,e){if(typeof t=="boolean")return t?Kt.any():Kt.never();let n=YVe(t,e),r=t.type||t.enum!==void 0||t.const!==void 0;if(t.anyOf&&Array.isArray(t.anyOf)){let o=t.anyOf.map(c=>Mo(c,e)),l=Kt.union(o);n=r?Kt.intersection(n,l):l}if(t.oneOf&&Array.isArray(t.oneOf)){let o=t.oneOf.map(c=>Mo(c,e)),l=Kt.xor(o);n=r?Kt.intersection(n,l):l}if(t.allOf&&Array.isArray(t.allOf))if(t.allOf.length===0)n=r?n:Kt.any();else{let o=r?n:Mo(t.allOf[0],e),l=r?0:1;for(let c=l;c0&&e.registry.add(n,i),n}function v5n(t,e){if(typeof t=="boolean")return t?Kt.any():Kt.never();let n=m5n(t,e==null?void 0:e.defaultTarget),r=t.$defs||t.definitions||{},i={version:n,defs:r,refs:new Map,processing:new Set,rootSchema:t,registry:(e==null?void 0:e.registry)??$u};return Mo(t,i)}var JVe={};Lp(JVe,{string:()=>y5n,number:()=>b5n,date:()=>_5n,boolean:()=>x5n,bigint:()=>w5n});function y5n(t){return Gqe(hk,t)}function b5n(t){return nHe(mk,t)}function x5n(t){return cHe(gk,t)}function w5n(t){return dHe(vk,t)}function _5n(t){return _He(fO,t)}Vo(Bqe());var k5n=xe.union([xe.literal("light"),xe.literal("dark")]).describe("Color theme preference for the host environment."),Xw=xe.union([xe.literal("inline"),xe.literal("fullscreen"),xe.literal("pip")]).describe("Display mode for UI presentation."),S5n=xe.union([xe.literal("--color-background-primary"),xe.literal("--color-background-secondary"),xe.literal("--color-background-tertiary"),xe.literal("--color-background-inverse"),xe.literal("--color-background-ghost"),xe.literal("--color-background-info"),xe.literal("--color-background-danger"),xe.literal("--color-background-success"),xe.literal("--color-background-warning"),xe.literal("--color-background-disabled"),xe.literal("--color-text-primary"),xe.literal("--color-text-secondary"),xe.literal("--color-text-tertiary"),xe.literal("--color-text-inverse"),xe.literal("--color-text-ghost"),xe.literal("--color-text-info"),xe.literal("--color-text-danger"),xe.literal("--color-text-success"),xe.literal("--color-text-warning"),xe.literal("--color-text-disabled"),xe.literal("--color-text-ghost"),xe.literal("--color-border-primary"),xe.literal("--color-border-secondary"),xe.literal("--color-border-tertiary"),xe.literal("--color-border-inverse"),xe.literal("--color-border-ghost"),xe.literal("--color-border-info"),xe.literal("--color-border-danger"),xe.literal("--color-border-success"),xe.literal("--color-border-warning"),xe.literal("--color-border-disabled"),xe.literal("--color-ring-primary"),xe.literal("--color-ring-secondary"),xe.literal("--color-ring-inverse"),xe.literal("--color-ring-info"),xe.literal("--color-ring-danger"),xe.literal("--color-ring-success"),xe.literal("--color-ring-warning"),xe.literal("--font-sans"),xe.literal("--font-mono"),xe.literal("--font-weight-normal"),xe.literal("--font-weight-medium"),xe.literal("--font-weight-semibold"),xe.literal("--font-weight-bold"),xe.literal("--font-text-xs-size"),xe.literal("--font-text-sm-size"),xe.literal("--font-text-md-size"),xe.literal("--font-text-lg-size"),xe.literal("--font-heading-xs-size"),xe.literal("--font-heading-sm-size"),xe.literal("--font-heading-md-size"),xe.literal("--font-heading-lg-size"),xe.literal("--font-heading-xl-size"),xe.literal("--font-heading-2xl-size"),xe.literal("--font-heading-3xl-size"),xe.literal("--font-text-xs-line-height"),xe.literal("--font-text-sm-line-height"),xe.literal("--font-text-md-line-height"),xe.literal("--font-text-lg-line-height"),xe.literal("--font-heading-xs-line-height"),xe.literal("--font-heading-sm-line-height"),xe.literal("--font-heading-md-line-height"),xe.literal("--font-heading-lg-line-height"),xe.literal("--font-heading-xl-line-height"),xe.literal("--font-heading-2xl-line-height"),xe.literal("--font-heading-3xl-line-height"),xe.literal("--border-radius-xs"),xe.literal("--border-radius-sm"),xe.literal("--border-radius-md"),xe.literal("--border-radius-lg"),xe.literal("--border-radius-xl"),xe.literal("--border-radius-full"),xe.literal("--border-width-regular"),xe.literal("--shadow-hairline"),xe.literal("--shadow-sm"),xe.literal("--shadow-md"),xe.literal("--shadow-lg")]).describe("CSS variable keys available to MCP apps for theming."),C5n=xe.record(S5n.describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),xe.union([xe.string(),xe.undefined()]).describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`)).describe(`Style variables for theming MCP apps. + +Individual style keys are optional - hosts may provide any subset of these values. +Values are strings containing CSS values (colors, sizes, font stacks, etc.). + +Note: This type uses \`Record\` rather than \`Partial>\` +for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),E5n=xe.object({method:xe.literal("ui/open-link"),params:xe.object({url:xe.string().describe("URL to open in the host's browser")})});xe.object({isError:xe.boolean().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough();xe.object({isError:xe.boolean().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();var $5n=xe.object({method:xe.literal("ui/notifications/sandbox-proxy-ready"),params:xe.object({})}),Gte=xe.object({connectDomains:xe.array(xe.string()).optional().describe("Origins for network requests (fetch/XHR/WebSocket)."),resourceDomains:xe.array(xe.string()).optional().describe("Origins for static resources (scripts, images, styles, fonts)."),frameDomains:xe.array(xe.string()).optional().describe("Origins for nested iframes (frame-src directive)."),baseUriDomains:xe.array(xe.string()).optional().describe("Allowed base URIs for the document (base-uri directive).")}),Kte=xe.object({camera:xe.object({}).optional().describe("Request camera access (Permission Policy `camera` feature)."),microphone:xe.object({}).optional().describe("Request microphone access (Permission Policy `microphone` feature)."),geolocation:xe.object({}).optional().describe("Request geolocation access (Permission Policy `geolocation` feature)."),clipboardWrite:xe.object({}).optional().describe("Request clipboard write access (Permission Policy `clipboard-write` feature).")}),T5n=xe.object({method:xe.literal("ui/notifications/size-changed"),params:xe.object({width:xe.number().optional().describe("New width in pixels."),height:xe.number().optional().describe("New height in pixels.")})});xe.object({method:xe.literal("ui/notifications/tool-input"),params:xe.object({arguments:xe.record(xe.string(),xe.unknown().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})});xe.object({method:xe.literal("ui/notifications/tool-input-partial"),params:xe.object({arguments:xe.record(xe.string(),xe.unknown().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})});xe.object({method:xe.literal("ui/notifications/tool-cancelled"),params:xe.object({reason:xe.string().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})});var I5n=xe.object({fonts:xe.string().optional()}),A5n=xe.object({variables:C5n.optional().describe("CSS variables for theming the app."),css:I5n.optional().describe("CSS blocks that apps can inject.")});xe.object({method:xe.literal("ui/resource-teardown"),params:xe.object({})});var O5n=xe.record(xe.string(),xe.unknown()),e2e=xe.object({text:xe.object({}).optional().describe("Host supports text content blocks."),image:xe.object({}).optional().describe("Host supports image content blocks."),audio:xe.object({}).optional().describe("Host supports audio content blocks."),resource:xe.object({}).optional().describe("Host supports resource content blocks."),resourceLink:xe.object({}).optional().describe("Host supports resource link content blocks."),structuredContent:xe.object({}).optional().describe("Host supports structured content.")}),D5n=xe.object({experimental:xe.object({}).optional().describe("Experimental features (structure TBD)."),openLinks:xe.object({}).optional().describe("Host supports opening external URLs."),serverTools:xe.object({listChanged:xe.boolean().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:xe.object({listChanged:xe.boolean().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:xe.object({}).optional().describe("Host accepts log messages."),sandbox:xe.object({permissions:Kte.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:Gte.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:e2e.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:e2e.optional().describe("Host supports receiving content messages (ui/message) from the view.")}),M5n=xe.object({experimental:xe.object({}).optional().describe("Experimental features (structure TBD)."),tools:xe.object({listChanged:xe.boolean().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:xe.array(Xw).optional().describe("Display modes the app supports.")}),N5n=xe.object({method:xe.literal("ui/notifications/initialized"),params:xe.object({}).optional()});xe.object({csp:Gte.optional().describe("Content Security Policy configuration."),permissions:Kte.optional().describe("Sandbox permissions requested by the UI."),domain:xe.string().optional().describe("Dedicated origin for view sandbox."),prefersBorder:xe.boolean().optional().describe("Visual boundary preference - true if UI prefers a visible border.")});var t2e=xe.object({method:xe.literal("ui/request-display-mode"),params:xe.object({mode:Xw.describe("The display mode being requested.")})});xe.object({mode:Xw.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough();var R5n=xe.union([xe.literal("model"),xe.literal("app")]).describe("Tool visibility scope - who can access the tool.");xe.object({resourceUri:xe.string().optional(),visibility:xe.array(R5n).optional().describe(`Who can access this tool. Default: ["model", "app"] +- "model": Tool visible to and callable by the agent +- "app": Tool callable by the app from this server only`)});xe.object({mimeTypes:xe.array(xe.string()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});var L5n=xe.object({method:xe.literal("ui/message"),params:xe.object({role:xe.literal("user").describe('Message role, currently only "user" is supported.'),content:xe.array(w2).describe("Message content blocks (text, image, etc.).")})});xe.object({method:xe.literal("ui/notifications/sandbox-resource-ready"),params:xe.object({html:xe.string().describe("HTML content to load into the inner iframe."),sandbox:xe.string().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:Gte.optional().describe("CSP configuration from resource metadata."),permissions:Kte.optional().describe("Sandbox permissions from resource metadata.")})});xe.object({method:xe.literal("ui/notifications/tool-result"),params:A_.describe("Standard MCP tool execution result.")});var XVe=xe.object({toolInfo:xe.object({id:y5.optional().describe("JSON-RPC id of the tools/call request."),tool:PI.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:k5n.optional().describe("Current color theme preference."),styles:A5n.optional().describe("Style configuration for theming the app."),displayMode:Xw.optional().describe("How the UI is currently displayed."),availableDisplayModes:xe.array(Xw).optional().describe("Display modes the host supports."),containerDimensions:xe.union([xe.object({height:xe.number().describe("Fixed container height in pixels.")}),xe.object({maxHeight:xe.union([xe.number(),xe.undefined()]).optional().describe("Maximum container height in pixels.")})]).and(xe.union([xe.object({width:xe.number().describe("Fixed container width in pixels.")}),xe.object({maxWidth:xe.union([xe.number(),xe.undefined()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other +container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:xe.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:xe.string().optional().describe("User's timezone in IANA format."),userAgent:xe.string().optional().describe("Host application identifier."),platform:xe.union([xe.literal("web"),xe.literal("desktop"),xe.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:xe.object({touch:xe.boolean().optional().describe("Whether the device supports touch input."),hover:xe.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:xe.object({top:xe.number().describe("Top safe area inset in pixels."),right:xe.number().describe("Right safe area inset in pixels."),bottom:xe.number().describe("Bottom safe area inset in pixels."),left:xe.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough();xe.object({method:xe.literal("ui/notifications/host-context-changed"),params:XVe.describe("Partial context update containing only changed fields.")});var P5n=xe.object({method:xe.literal("ui/update-model-context"),params:xe.object({content:xe.array(w2).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:xe.record(xe.string(),xe.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})}),j5n=xe.object({method:xe.literal("ui/initialize"),params:xe.object({appInfo:b5.describe("App identification (name and version)."),appCapabilities:M5n.describe("Features and capabilities this app provides."),protocolVersion:xe.string().describe("Protocol version this app supports.")})});xe.object({protocolVersion:xe.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:b5.describe("Host application identification and version."),hostCapabilities:D5n.describe("Features and capabilities provided by the host."),hostContext:XVe.describe("Rich context about the host environment.")}).passthrough();function z5n(t){if(!t)return"";let e=[];return t.camera&&e.push("camera"),t.microphone&&e.push("microphone"),t.geolocation&&e.push("geolocation"),t.clipboardWrite&&e.push("clipboard-write"),e.join("; ")}var F5n=[uBe];class B5n extends rmn{constructor(n,r,i,s){super(s);Wt(this,"_client");Wt(this,"_hostInfo");Wt(this,"_capabilities");Wt(this,"_appCapabilities");Wt(this,"_hostContext",{});Wt(this,"_appInfo");Wt(this,"onping");Wt(this,"sendResourceTeardown",this.teardownResource);this._client=n,this._hostInfo=r,this._capabilities=i,this._hostContext=(s==null?void 0:s.hostContext)||{},this.setRequestHandler(j5n,a=>this._oninitialize(a)),this.setRequestHandler(LI,(a,o)=>{var l;return(l=this.onping)==null||l.call(this,a.params,o),{}}),this.setRequestHandler(t2e,a=>({mode:this._hostContext.displayMode??"inline"}))}getAppCapabilities(){return this._appCapabilities}getAppVersion(){return this._appInfo}set onsizechange(n){this.setNotificationHandler(T5n,r=>n(r.params))}set onsandboxready(n){this.setNotificationHandler($5n,r=>n(r.params))}set oninitialized(n){this.setNotificationHandler(N5n,r=>n(r.params))}set onmessage(n){this.setRequestHandler(L5n,async(r,i)=>n(r.params,i))}set onopenlink(n){this.setRequestHandler(E5n,async(r,i)=>n(r.params,i))}set onrequestdisplaymode(n){this.setRequestHandler(t2e,async(r,i)=>n(r.params,i))}set onloggingmessage(n){this.setNotificationHandler(wRe,async r=>{n(r.params)})}set onupdatemodelcontext(n){this.setRequestHandler(P5n,async(r,i)=>n(r.params,i))}set oncalltool(n){this.setRequestHandler(yRe,async(r,i)=>n(r.params,i))}sendToolListChanged(n={}){return this.notification({method:"notifications/tools/list_changed",params:n})}set onlistresources(n){this.setRequestHandler(lRe,async(r,i)=>n(r.params,i))}set onlistresourcetemplates(n){this.setRequestHandler(uRe,async(r,i)=>n(r.params,i))}set onreadresource(n){this.setRequestHandler(fRe,async(r,i)=>n(r.params,i))}sendResourceListChanged(n={}){return this.notification({method:"notifications/resources/list_changed",params:n})}set onlistprompts(n){this.setRequestHandler(mRe,async(r,i)=>n(r.params,i))}sendPromptListChanged(n={}){return this.notification({method:"notifications/prompts/list_changed",params:n})}assertCapabilityForMethod(n){}assertRequestHandlerCapability(n){}assertNotificationCapability(n){}assertTaskCapability(n){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(n){throw Error("Task handlers are not supported in MCP Apps")}getCapabilities(){return this._capabilities}async _oninitialize(n){let r=n.params.protocolVersion;return this._appCapabilities=n.params.appCapabilities,this._appInfo=n.params.appInfo,{protocolVersion:F5n.includes(r)?r:uBe,hostCapabilities:this.getCapabilities(),hostInfo:this._hostInfo,hostContext:this._hostContext}}setHostContext(n){let r={},i=!1;for(let s of Object.keys(n)){let a=this._hostContext[s],o=n[s];U5n(a,o)||(r[s]=o,i=!0)}i&&(this._hostContext=n,this.sendHostContextChange(r))}sendHostContextChange(n){return this.notification({method:"ui/notifications/host-context-changed",params:n})}sendToolInput(n){return this.notification({method:"ui/notifications/tool-input",params:n})}sendToolInputPartial(n){return this.notification({method:"ui/notifications/tool-input-partial",params:n})}sendToolResult(n){return this.notification({method:"ui/notifications/tool-result",params:n})}sendToolCancelled(n){return this.notification({method:"ui/notifications/tool-cancelled",params:n})}sendSandboxResourceReady(n){return this.notification({method:"ui/notifications/sandbox-resource-ready",params:n})}teardownResource(n,r){return this.request({method:"ui/resource-teardown",params:n},O5n,r)}async connect(n){if(this._client){let r=this._client.getServerCapabilities();if(!r)throw Error("Client server capabilities not available");r.tools&&(this.oncalltool=async(i,s)=>this._client.request({method:"tools/call",params:i},A_,{signal:s.signal}),r.tools.listChanged&&this._client.setNotificationHandler(bRe,i=>this.sendToolListChanged(i.params))),r.resources&&(this.onlistresources=async(i,s)=>this._client.request({method:"resources/list",params:i},cRe,{signal:s.signal}),this.onlistresourcetemplates=async(i,s)=>this._client.request({method:"resources/templates/list",params:i},dRe,{signal:s.signal}),this.onreadresource=async(i,s)=>this._client.request({method:"resources/read",params:i},hRe,{signal:s.signal}),r.resources.listChanged&&this._client.setNotificationHandler(pRe,i=>this.sendResourceListChanged(i.params))),r.prompts&&(this.onlistprompts=async(i,s)=>this._client.request({method:"prompts/list",params:i},gRe,{signal:s.signal}),r.prompts.listChanged&&this._client.setNotificationHandler(vRe,i=>this.sendPromptListChanged(i.params)))}return super.connect(n)}}function U5n(t,e){return JSON.stringify(t)===JSON.stringify(e)}function q5n(t,e){const n=t.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_+/g,"_");return e.startsWith(n)?e:`${n}_${e}`}function H5n(t){const e=(t==null?void 0:t.resourceDomains)??[],n=(t==null?void 0:t.connectDomains)??[],r=[...new Set([...e,...n])],i=["'self'","'unsafe-inline'","'unsafe-eval'","blob:","data:",...r].join(" "),s=["'self'","'unsafe-inline'","'unsafe-eval'","blob:",...r].join(" "),a=["'self'","'unsafe-inline'",...r].join(" "),o=["'self'","blob:","data:",...r].join(" "),l=["'self'","data:",...r].join(" "),c=["'self'","blob:","data:",...r].join(" "),u=["'self'","blob:","data:",...r].join(" "),d=["'self'","blob:","data:",...r].join(" "),f=["'self'","blob:",...r].join(" ");return[`default-src ${i}`,`script-src ${s}`,`style-src ${a}`,`img-src ${o}`,`font-src ${l}`,`connect-src ${c}`,`media-src ${u}`,`frame-src ${d}`,`worker-src ${f}`].join("; ")}function W5n({toolCallState:t}){var O,D,N;const e=g.useContext(qt),n=vr(),r=g.useRef(null),i=g.useRef(null),[s,a]=g.useState(300),[o,l]=g.useState(!1),[c,u]=g.useState(null),d=(O=t.mcpUiState)==null?void 0:O.content.text,f=(N=(D=t.mcpUiState)==null?void 0:D.content._meta)==null?void 0:N.ui,h=t.parsedArgs,m=t.output,p=f==null?void 0:f.csp,v=f==null?void 0:f.permissions,x=(f==null?void 0:f.prefersBorder)??!0,[w,E]=g.useState(!1),S=g.useMemo(()=>{const R=[];return v!=null&&v.microphone&&R.push("microphone"),v!=null&&v.camera&&R.push("camera"),v!=null&&v.geolocation&&R.push("geolocation"),R},[v]),_=S.length>0,C=g.useMemo(()=>["allow-scripts","allow-forms"].join(" "),[]),T=g.useMemo(()=>z5n(v)||void 0,[v]);g.useEffect(()=>{const R=new B5n(null,{name:"Continue",version:"1.0.0"},{openLinks:{},logging:{},message:{text:{}},updateModelContext:{text:{},structuredContent:{}},serverTools:{}});return R.onsizechange=q=>{q.height!==void 0&&a(Math.min(Math.max(q.height+20,100),800))},R.oninitialized=()=>{l(!0)},R.onopenlink=async q=>(q.url&&e.post("openUrl",q.url),{}),R.onmessage=async q=>{const W=q.content.filter(U=>U.type==="text"&&U.text).map(U=>U.text).join(` +`);return W?(n(wO({editorState:{type:"doc",content:[{type:"paragraph",content:[{type:"text",text:W}]}]},modifiers:{noContext:!0,useCodebase:!1}})),{}):(console.warn("[McpAppRenderer] onMessage received with no text content"),{})},R.oncalltool=async q=>{var G;const W=await e.request("tools/call",{toolCall:{function:{name:q5n(((G=t.tool)==null?void 0:G.group)??"",q.name),arguments:JSON.stringify(q.arguments)},id:sNe(),type:"function"}});if(W.status==="error")throw new Error(`Failed to call tool from MCP UI: ${W.error}`);return{content:W.content.contextItems.map(U=>({type:"text",text:l2([U])})),isError:!1}},R.onlistresources=async()=>({resources:[]}),R.onreadresource=async()=>{throw new Error("Resource reads not supported in this context")},R.onloggingmessage=q=>{(q.level==="error"||q.level==="critical"?console.error:q.level==="warning"?console.warn:console.log)(`[MCP App${q.logger?` - ${q.logger}`:""}]`,q.data)},R.onupdatemodelcontext=async()=>({}),i.current=R,()=>{i.current=null}},[e,n]);const M=g.useCallback(async()=>{const R=r.current,q=i.current;if(!(!(R!=null&&R.contentWindow)||!q))try{const W=new smn(R.contentWindow,R.contentWindow);await q.connect(W),d&&await q.sendSandboxResourceReady({html:d,csp:p,permissions:v})}catch(W){console.error("[Continue] Failed to connect bridge to MCP App UI:",W),u(W instanceof Error?W:new Error(String(W)))}},[d,p,v]);if(g.useEffect(()=>{const R=i.current;!R||!o||!h||R.sendToolInput({arguments:h})},[o,h]),g.useEffect(()=>{const R=i.current;!R||!o||!m||R.sendToolResult({content:m.map(q=>({type:"text",text:q.content}))})},[o,m]),!t.mcpUiState||!d)return null;if(c)return y.jsxs("div",{className:"rounded border border-red-500 bg-red-500/10 p-3 text-sm",children:[y.jsx("p",{className:"font-medium text-red-500",children:"MCP UI Error"}),y.jsx("p",{className:"text-red-400",children:c.message})]});const $=` + + + + + + + +${d} + +`;return y.jsxs("div",{style:{position:"relative",width:"100%"},children:[y.jsx("iframe",{ref:r,srcDoc:$,sandbox:C,allow:T,onLoad:M,className:`bg-input w-full ${x?"border-input rounded border":"border-none"}`,style:{height:s},title:`MCP App - ${t.toolCall.function.name}`}),_&&!w&&y.jsx("div",{className:`absolute inset-0 z-10 flex flex-col items-center justify-center bg-black/85 p-5 ${x?"rounded":""}`,children:y.jsxs("div",{className:"max-w-[25rem] text-center",children:[y.jsx("div",{className:"mb-3 text-2xl",children:"⚠️"}),y.jsx("p",{className:"text-foreground mb-2 text-sm font-medium",children:"Limited Functionality"}),y.jsxs("p",{className:"text-description mb-4 text-xs leading-relaxed",children:["This app requires"," ",y.jsx("strong",{className:"text-foreground",children:S.join(", ")})," ","access, which is not currently supported. Some features may not work."]}),y.jsx("button",{onClick:()=>E(!0),className:"bg-primary text-primary-foreground hover:bg-primary-hover cursor-pointer rounded border-none px-4 py-2 text-xs font-medium",children:"Continue Anyway"})]})})]})}/*! + * mustache.js - Logic-less {{mustache}} templates with JavaScript + * http://github.com/janl/mustache.js + */var V5n=Object.prototype.toString,C5=Array.isArray||function(e){return V5n.call(e)==="[object Array]"};function Yte(t){return typeof t=="function"}function Z5n(t){return C5(t)?"array":typeof t}function Bj(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function n2e(t,e){return t!=null&&typeof t=="object"&&e in t}function G5n(t,e){return t!=null&&typeof t!="object"&&t.hasOwnProperty&&t.hasOwnProperty(e)}var K5n=RegExp.prototype.test;function Y5n(t,e){return K5n.call(t,e)}var J5n=/\S/;function X5n(t){return!Y5n(J5n,t)}var Q5n={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function e3n(t){return String(t).replace(/[&<>"'`=\/]/g,function(n){return Q5n[n]})}var t3n=/\s*/,n3n=/\s+/,r2e=/\s*=/,r3n=/\s*\}/,i3n=/#|\^|\/|>|\{|&|=|!/;function s3n(t,e){if(!t)return[];var n=!1,r=[],i=[],s=[],a=!1,o=!1,l="",c=0;function u(){if(a&&!o)for(;s.length;)delete i[s.pop()];else s=[];a=!1,o=!1}var d,f,h;function m(M){if(typeof M=="string"&&(M=M.split(n3n,2)),!C5(M)||M.length!==2)throw new Error("Invalid tags: "+M);d=new RegExp(Bj(M[0])+"\\s*"),f=new RegExp("\\s*"+Bj(M[1])),h=new RegExp("\\s*"+Bj("}"+M[1]))}m(e||lc.tags);for(var p=new kk(t),v,x,w,E,S,_;!p.eos();){if(v=p.pos,w=p.scanUntil(d),w)for(var C=0,T=w.length;C"?S=[x,w,v,p.pos,l,c,n]:S=[x,w,v,p.pos],c++,i.push(S),x==="#"||x==="^")r.push(S);else if(x==="/"){if(_=r.pop(),!_)throw new Error('Unopened section "'+w+'" at '+v);if(_[1]!==w)throw new Error('Unclosed section "'+_[1]+'" at '+v)}else x==="name"||x==="{"||x==="&"?o=!0:x==="="&&m(w)}if(u(),_=r.pop(),_)throw new Error('Unclosed section "'+_[1]+'" at '+p.pos);return o3n(a3n(i))}function a3n(t){for(var e=[],n,r,i=0,s=t.length;i0?r[r.length-1][4]:e;break;default:n.push(i)}return e}function kk(t){this.string=t,this.tail=t,this.pos=0}kk.prototype.eos=function(){return this.tail===""};kk.prototype.scan=function(e){var n=this.tail.match(e);if(!n||n.index!==0)return"";var r=n[0];return this.tail=this.tail.substring(r.length),this.pos+=r.length,r};kk.prototype.scanUntil=function(e){var n=this.tail.search(e),r;switch(n){case-1:r=this.tail,this.tail="";break;case 0:r="";break;default:r=this.tail.substring(0,n),this.tail=this.tail.substring(n)}return this.pos+=r.length,r};function kb(t,e){this.view=t,this.cache={".":this.view},this.parent=e}kb.prototype.push=function(e){return new kb(e,this)};kb.prototype.lookup=function(e){var n=this.cache,r;if(n.hasOwnProperty(e))r=n[e];else{for(var i=this,s,a,o,l=!1;i;){if(e.indexOf(".")>0)for(s=i.view,a=e.split("."),o=0;s!=null&&o"?c=this.renderPartial(o,n,r,s):l==="&"?c=this.unescapedValue(o,n):l==="name"?c=this.escapedValue(o,n,s):l==="text"&&(c=this.rawValue(o)),c!==void 0&&(a+=c);return a};Nl.prototype.renderSection=function(e,n,r,i,s){var a=this,o="",l=n.lookup(e[1]);function c(f){return a.render(f,n,r,s)}if(l){if(C5(l))for(var u=0,d=l.length;u0||!r)&&(s[a]=i+s[a]);return s.join(` +`)};Nl.prototype.renderPartial=function(e,n,r,i){if(r){var s=this.getConfigTags(i),a=Yte(r)?r(e[1]):r[e[1]];if(a!=null){var o=e[6],l=e[5],c=e[4],u=a;l==0&&c&&(u=this.indentPartial(a,c,o));var d=this.parse(u,s);return this.renderTokens(d,n,r,u,i)}}};Nl.prototype.unescapedValue=function(e,n){var r=n.lookup(e[1]);if(r!=null)return r};Nl.prototype.escapedValue=function(e,n,r){var i=this.getConfigEscape(r)||lc.escape,s=n.lookup(e[1]);if(s!=null)return typeof s=="number"&&i===lc.escape?String(s):i(s)};Nl.prototype.rawValue=function(e){return e[1]};Nl.prototype.getConfigTags=function(e){return C5(e)?e:e&&typeof e=="object"?e.tags:void 0};Nl.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!C5(e))return e.escape};var lc={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(t){Qw.templateCache=t},get templateCache(){return Qw.templateCache}},Qw=new Nl;lc.clearCache=function(){return Qw.clearCache()};lc.parse=function(e,n){return Qw.parse(e,n)};lc.render=function(e,n,r,i){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+Z5n(e)+'" was given as the first argument for mustache#render(template, view, partials)');return Qw.render(e,n,r,i)};lc.escape=e3n;lc.Scanner=kk;lc.Context=kb;lc.Writer=Nl;function QVe({tool:t,toolCallState:e}){if(!t)return"Agent tool use";const r=`${t.displayTitle??t.function.name} tool`,i=t.wouldLikeTo?lc.render(t.wouldLikeTo,e.parsedArgs):`use the ${r}`;let s=XSt(e.status,t.isInstant),a="";if(e.status==="done"||t.isInstant&&e.status==="calling")a=t.hasAlready?lc.render(t.hasAlready,e.parsedArgs):`used the ${r}`;else switch(e.status){case"generating":case"generated":case"canceled":case"errored":a=i;break;case"calling":a=t.isCurrently?lc.render(t.isCurrently,e.parsedArgs):`calling the ${r}`;break;default:a=r}return y.jsx("div",{className:"text-description line-clamp-4 min-w-0 break-words","data-testid":"tool-call-title",children:`Continue ${s} ${a}`})}function eZe({historyIndex:t}){const e=He(a=>a.session.isStreaming),n=He(a=>a.session.history),r=g.useMemo(()=>qDe(n,a=>!FDe(a.message)),[n]),i=vr(),{mainEditor:s}=nh();return t===r?y.jsx("div",{className:"h-3 w-3"}):y.jsx(xw,{tooltipContent:e?"":"Trim chat to this message",onClick:()=>{e||(i(X3n({index:t})),s==null||s.commands.focus())},children:y.jsx(T6e,{className:`h-3 w-3 flex-shrink-0 opacity-60 ${e?"cursor-not-allowed":""}`})})}function l3n({icon:t,toolCallState:e,tool:n,historyIndex:r}){var h;const i=g.useContext(qt),s=g.useMemo(()=>RG(e).filter(p=>!p.hidden),[e]),[a,o]=g.useState(!1),l=s.length>1,c=s.length===1,u=l?a:!1,d=l||c;function f(){l?o(m=>!m):c&&eJ(s[0],i)}return y.jsxs("div",{className:"mt-1 flex flex-col px-4",children:[y.jsxs("div",{className:"flex min-w-0 flex-row items-center justify-between gap-2",children:[y.jsxs("div",{className:`text-description flex min-w-0 flex-row items-center justify-between gap-1.5 text-xs transition-colors duration-200 ease-in-out ${d?"cursor-pointer hover:brightness-125":""}`,onClick:d?f:void 0,"data-testid":"context-items-peek",children:[y.jsx(xNe,{icon:t,isToggleable:l,open:u,isClickable:c}),y.jsx(QVe,{tool:n,toolCallState:e})]}),!!((h=e.output)!=null&&h.length)&&y.jsx(eZe,{historyIndex:r})]}),l&&y.jsx("div",{className:`mt-2 overflow-y-auto transition-all duration-300 ease-in-out ${u?"max-h-[50vh] opacity-100":"max-h-0 opacity-0"}`,children:s.length>0?s.map((m,p)=>y.jsx(CDe,{contextItem:m},p)):y.jsx("div",{className:"text-description pl-5 text-xs italic",children:"No tool call output"})})]})}function i2e({tool:t,toolCallState:e,children:n,icon:r,historyIndex:i}){var c;const s=g.useContext(qt),a=g.useMemo(()=>RG(e).filter(d=>!d.hidden),[e]),o=a.length>0;function l(){a.length>0&&eJ(a[0],s)}return y.jsxs("div",{className:"flex flex-col justify-center px-4",children:[y.jsx("div",{className:"mb-2 flex flex-col",children:y.jsxs("div",{className:"flex flex-row items-start justify-between gap-1.5",children:[y.jsxs("div",{className:`flex min-w-0 flex-row items-center gap-2 transition-colors duration-200 ease-in-out ${o?"cursor-pointer hover:brightness-125":""}`,onClick:o?l:void 0,children:[y.jsx("div",{className:"mt-[1px] h-4 w-4 flex-shrink-0 font-semibold",children:r}),(t==null?void 0:t.faviconUrl)&&y.jsx("img",{src:t.faviconUrl,className:"h-4 w-4 rounded-sm"}),y.jsx(QVe,{tool:t,toolCallState:e})]}),!!((c=e.output)!=null&&c.length)&&y.jsx(eZe,{historyIndex:i})]})}),y.jsx("div",{children:n})]})}function c3n({toolCallStates:t,historyIndex:e}){const[n,r]=g.useState(!0),i=He(u=>u.config.config.tools);if(!(t!=null&&t.length))return null;const s=t.every(u=>u.status!=="generating"),a=t.length>1&&s,o=t.filter(u=>u.status!=="canceled"),l=t.filter(u=>u.status!=="done"),c=u=>{var m;const d=i.find(p=>{var v;return((v=u.toolCall.function)==null?void 0:v.name)===p.function.name}),f=(m=u.toolCall.function)==null?void 0:m.name,h=f&&(d!=null&&d.toolCallIcon)?e8t(d.toolCallIcon):void 0;return u.mcpUiState?y.jsx(i2e,{icon:vC(u.status),tool:d,toolCallState:u,historyIndex:e,children:y.jsx(W5n,{toolCallState:u})}):h?y.jsx(l3n,{tool:d,toolCallState:u,icon:u.status==="generated"?W$:h,historyIndex:e}):f===ti.SingleFindAndReplace||f===ti.MultiEdit||f===ti.RunTerminalCommand?y.jsx("div",{className:"flex flex-col px-1",children:y.jsx(Y1e,{toolCallState:u,historyIndex:e})}):y.jsx(i2e,{icon:vC(u.status),tool:d,toolCallState:u,historyIndex:e,children:y.jsx(Y1e,{toolCallState:u,historyIndex:e})})};return a?y.jsxs("div",{className:"border-border rounded-lg border px-4 py-3 pb-0",children:[y.jsx(Sun,{toolCallStates:t,activeCalls:l.length>0?l:o,open:n,onToggle:()=>r(!n)}),y.jsx("div",{className:`overflow-y-auto transition-all duration-300 ease-in-out ${n?"max-h-[50vh] opacity-100":"max-h-0 opacity-0"}`,children:t.map(u=>y.jsx("div",{className:"py-1 pl-6",children:c(u)},u.toolCallId))})]}):t.map(u=>y.jsx("div",{className:"py-1",children:c(u)},u.toolCallId))}function s2e(t){if(!t)return"";let e=t.trim();return e.startsWith("git@github.com:")&&(e=e.replace("git@github.com:","https://github.com/")),e.startsWith("ssh://git@github.com")&&(e=e.replace("ssh://git@github.com/","https://github.com/").replace("ssh://git@github.com:","https://github.com/")),e.includes("/")&&!/^[a-z]+:\/\//i.test(e)&&!e.startsWith("git@")&&(e=`https://github.com/${e}`),e.endsWith("/")&&(e=e.slice(0,-1)),e.endsWith(".git")&&(e=e.slice(0,-4)),e.toLowerCase()}function u3n({isCreatingAgent:t=!1}){const{session:e}=as(),n=g.useContext(qt),r=He(cp),[i,s]=g.useState(null),[a,o]=g.useState(0),[l,c]=g.useState(null),[u,d]=g.useState([]);g.useEffect(()=>{async function p(){try{const v=await n.request("getWorkspaceDirs",void 0);if(v.status==="success"&&v.content){const x=[];for(const w of v.content){const E=await n.request("getRepoName",{dir:w});if(E.status==="success"&&E.content){const S=s2e(E.content);if(S){const _=w.split("/").pop()||w;x.push({repoUrl:S,workspaceDir:w,workspaceName:_})}}}d(x)}}catch(v){console.error("Failed to fetch workspace repos:",v)}}p()},[n]),g.useEffect(()=>{async function p(){if(!e){s([]),o(0);return}try{const x=(r==null?void 0:r.id)!=="personal"?r==null?void 0:r.id:void 0,w=await n.request("listBackgroundAgents",{organizationId:x,limit:5});if("status"in w&&w.status==="success"){const E=w.content;s(E.agents||[]),o(E.totalCount||0),c(null)}else"error"in w?(c(w.error),s([]),o(0)):(s([]),o(0))}catch(x){console.error("Failed to fetch agents:",x),c(x.message||"Failed to load agents"),s([]),o(0)}}p();const v=setInterval(()=>{p()},1e4);return()=>clearInterval(v)},[e,n,r]);const f=p=>{var x;const v=[p.repoUrl,(x=p.metadata)==null?void 0:x.github_repo].filter(w=>!!w).map(s2e).filter(w=>w!=="");return u.some(w=>v.some(E=>E===w.repoUrl))},h=p=>{var x;const v=((x=p.metadata)==null?void 0:x.github_repo)||p.repoUrl;if(!v)return null;try{const E=v.replace(/\.git$/,"").split("/");return E[E.length-1]||null}catch{return null}},m=(p,v)=>{v.stopPropagation(),n.post("openAgentLocally",{agentSessionId:p.id})};return l?y.jsxs("div",{className:"text-error px-2 py-4 text-sm",children:["Error loading agents: ",l]}):i===null?y.jsx("div",{className:"flex items-center justify-center py-8",children:y.jsx(rd,{className:"text-description-muted h-6 w-6 animate-spin"})}):i.length===0?y.jsx("div",{className:"text-description-muted px-2 py-4 text-center text-sm",children:"No background tasks yet. Submit a message above to create one."}):y.jsxs("div",{className:"flex flex-col gap-2",children:[y.jsx("div",{className:"text-description-muted px-2 text-xs font-semibold",children:"Background Tasks"}),y.jsxs("div",{className:"flex flex-col gap-1 px-2",children:[i.map(p=>{var E;const x=f(p),w=h(p);return y.jsxs("div",{className:"border-command-border bg-input cursor-pointer rounded-md border p-3 shadow-md transition-colors hover:brightness-110",onClick:()=>{n.post("controlPlane/openUrl",{path:`agents/${p.id}`})},children:[y.jsxs("div",{className:"flex items-start justify-between",children:[y.jsxs("div",{className:"min-w-0 flex-1",children:[y.jsx("div",{className:"truncate text-sm font-medium",children:p.name||"Unnamed Agent"}),y.jsx("div",{className:"text-description mt-0.5 truncate text-xs",children:((E=p.metadata)==null?void 0:E.github_repo)||p.repoUrl})]}),y.jsxs("div",{className:"ml-2 flex items-center gap-2",children:[y.jsx(d3n,{status:p.status}),y.jsx(ai,{onClick:S=>x&&m(p,S),disabled:!x,variant:"icon",size:"lg",title:x?"Open this agent workflow locally":w?`This agent is for a different repository (${w}). Open that workspace to take over this workflow.`:"This agent is for a different repository. Open the correct workspace to take over this workflow.",children:y.jsx(iG,{className:"h-3 w-3"})})]})]}),y.jsx("div",{className:"text-description-muted mt-1 text-xs",children:f3n(p.createdAt)})]},p.id)}),a>i.length&&y.jsx("div",{className:"mt-2",children:y.jsxs(ai,{onClick:()=>{n.post("controlPlane/openUrl",{path:"agents"})},variant:"ghost",className:"text-link my-0 w-full py-0 text-center text-sm font-medium hover:underline",children:["See all ",a," tasks →"]})})]})]})}function d3n({status:t}){const n={running:"border-success text-success",pending:"border-warning text-warning",creating:"border-info text-info",failure:"border-error text-error",suspended:"border-description text-description"}[t]||"border-description text-description";return y.jsx("span",{className:`bg-badge inline-flex items-center rounded border px-2 py-0.5 text-xs font-medium ${n}`,children:t})}function f3n(t){try{const n=new Date(t).getTime();if(isNaN(n))return t;const i=new Date().getTime()-n,s=Math.floor(i/6e4),a=Math.floor(i/36e5),o=Math.floor(i/864e5);return s<1?"just now":s<60?`${s}m ago`:a<24?`${a}h ago`:`${o}d ago`}catch{return t}}function h3n({isCreatingAgent:t=!1}){const{session:e,login:n}=as(),r=g.useContext(qt),i=He(cp),[s,a]=g.useState(!1),[o,l]=g.useState(!1),[c,u]=g.useState(!0),d=g.useCallback(async()=>{a(!0);try{await n(!1)}catch(h){console.error("Login failed:",h)}finally{a(!1)}},[n]),f=g.useCallback(()=>{r.post("controlPlane/openUrl",{path:"settings/integrations/github",orgSlug:i==null?void 0:i.slug})},[r,i]);return g.useEffect(()=>{async function h(){var m,p,v,x;if(!e){u(!1);return}try{u(!0);const w=(i==null?void 0:i.id)!=="personal"?i==null?void 0:i.id:void 0,E=await r.request("listBackgroundAgents",{organizationId:w});"error"in E?((m=E.error)!=null&&m.includes("GitHub token")||(p=E.error)!=null&&p.includes("GitHub App"))&&l(!0):l(!1)}catch(w){((v=w==null?void 0:w.message)!=null&&v.includes("GitHub token")||(x=w==null?void 0:w.message)!=null&&x.includes("GitHub App"))&&l(!0)}finally{u(!1)}}h()},[e,r,i]),e?y.jsxs("div",{className:"flex flex-col gap-4 py-4",children:[!c&&o&&y.jsx("div",{className:"mx-2 rounded-lg border border-yellow-200 bg-yellow-50 p-4",children:y.jsxs("div",{className:"flex items-start gap-3",children:[y.jsx(mp,{className:"h-5 w-5 flex-shrink-0 text-yellow-600"}),y.jsxs("div",{className:"flex-1",children:[y.jsx("h4",{className:"text-sm font-semibold text-yellow-900",children:"Connect GitHub"}),y.jsx("p",{className:"mt-1 text-sm text-yellow-800",children:"Background agents need access to your GitHub repositories. Connect your GitHub account to get started."}),y.jsx("button",{onClick:f,className:"mt-3 rounded-md bg-yellow-600 px-4 py-2 text-sm font-medium text-white hover:bg-yellow-700",children:"Connect GitHub Account"})]})]})}),y.jsxs("div",{className:"px-2",children:[y.jsx("div",{className:"text-description text-sm",children:"Submit a task above to run a background agent. Your task will appear below in ~30 seconds once the container starts."}),t&&y.jsxs("div",{className:"text-description-muted mt-2 flex items-center gap-2 text-xs",children:[y.jsx(rd,{className:"h-3 w-3 animate-spin"}),y.jsx("span",{children:"Creating task..."})]})]}),y.jsx(u3n,{isCreatingAgent:t})]}):y.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 px-4 py-8",children:[y.jsx(sG,{className:"text-description-muted h-16 w-16"}),y.jsxs("div",{className:"max-w-md text-center",children:[y.jsx("h3",{className:"mb-2 text-lg font-semibold",children:"Background Agents"}),y.jsx("p",{className:"text-description mb-4 text-sm",children:"Trigger long-running background agents that work on your codebase autonomously. Sign in to Continue to get started."}),y.jsx("button",{onClick:d,disabled:s,className:"bg-primary text-primary-foreground hover:bg-primary-hover rounded-lg px-6 py-2 disabled:opacity-50",children:s?"Signing in...":"Sign In to Continue"})]})]})}function p3n(){const t=s2(),e=vr();return y.jsxs("div",{className:"mx-auto flex max-w-md flex-col p-6 pt-8",children:[y.jsxs("div",{className:"flex items-center gap-2 text-lg font-medium",children:[y.jsx("span",{children:"👋"}),y.jsx("span",{children:"Help us improve Continue"})]}),y.jsx("p",{className:"text-foreground text-sm leading-relaxed",children:"We're always working to make Continue better and would love to hear from you. If you're interested in sharing your experience, please enter your details below."}),y.jsxs("form",{onSubmit:n=>{n.preventDefault(),t==null||t.capture("user_interest_form",{name:n.target.elements[0].value,email:n.target.elements[1].value}),e(Ri(y.jsxs("div",{className:"p-6 text-center",children:[y.jsx("div",{className:"mb-2 text-lg",children:"✓ Thank you!"}),y.jsx("p",{className:"text-foreground text-sm",children:"We'll be in touch soon."})]}))),setTimeout(()=>{e(hi(!1)),e(Ri(void 0))},2e3)},className:"flex flex-col gap-3",children:[y.jsx(Nf,{type:"text",name:"name",placeholder:"Name",required:!0}),y.jsx(Nf,{type:"email",name:"email",placeholder:"Email",required:!0}),y.jsxs("div",{className:"mt-2 flex justify-between gap-2",children:[y.jsx(Pd,{className:"flex-1",type:"button",onClick:()=>{e(hi(!1)),e(Ri(void 0))},children:"Not now"}),y.jsx(op,{className:"flex-1",type:"submit",children:"Submit"})]})]}),y.jsx("p",{className:"text-description-muted text-xs",children:"We'll only use this information to reach out for feedback."})]})}const tZe=()=>{var d,f;const{refreshProfiles:t}=as(),e=He(h=>h.config.configError),n=g.useContext(qt),r=Tb(),i=wa(),s=g.useMemo(()=>e==null?void 0:e.some(h=>h.fatal),[e]),a=He(h=>h.config.loading),o=()=>{i(Rc.CONFIGS)},l=`${r.pathname}${r.search}`,{selectedProfile:c}=as();if(!s)return null;const u=c?c.title??`${(d=c.fullSlug)==null?void 0:d.ownerSlug}/${(f=c.fullSlug)==null?void 0:f.packageSlug}`:"config";return y.jsxs(X0,{type:"error",className:"mx-2 my-1 px-2",children:[y.jsx("span",{children:"Error loading"})," ",y.jsx("span",{className:"italic",children:u}),". ",y.jsx("span",{children:"Chat is disabled until a model is available."}),y.jsxs("div",{className:"mt-2 flex flex-row flex-wrap items-center gap-x-3 gap-y-1.5",children:[y.jsx("div",{onClick:()=>{n.post("openUrl","https://docs.continue.dev/troubleshooting")},className:"cursor-pointer underline",children:"Help"}),a?y.jsx("div",{children:"Reloading..."}):y.jsx("div",{className:"cursor-pointer underline",onClick:()=>{t("Clicked reload in fatal indicator")},children:"Reload"}),l!==Rc.CONFIGS&&y.jsx("div",{onClick:o,className:"cursor-pointer underline",children:"View"})]})]})};function m3n(){const t=vr(),e=g.useContext(qt);return He(r=>r.session.inlineErrorMessage)==="out-of-context"?y.jsxs("div",{className:"border-border relative m-2 flex flex-col rounded-md border border-solid bg-transparent p-4",children:[y.jsx("p",{className:"thread-message text-error text-center",children:"Message exceeds context limit."}),y.jsxs("div",{className:"text-description flex flex-row items-center justify-center gap-1.5 px-3",children:[y.jsxs("div",{className:"cursor-pointer text-xs hover:underline",onClick:()=>{e.post("config/openProfile",{profileId:void 0})},children:[y.jsx("span",{className:"xs:flex hidden",children:"Open config"}),y.jsx("span",{className:"xs:hidden",children:"Config"})]}),"|",y.jsx("span",{className:"cursor-pointer text-xs hover:underline",onClick:()=>{t(OV(void 0))},children:"Hide"})]})]}):null}function nZe(){const t=vr(),e=s2(),n=He(kat),r=s=>n.includes(s);return{isCommandBookmarked:r,toggleBookmark:s=>{const a=r(s.name);e.capture("toggle_bookmarked_slash_command",{isBookmarked:a}),t(a?wat({commandName:s.name}):xat({commandName:s.name}))}}}function g3n({command:t,onClick:e}){return y.jsx("div",{className:"bg-vsc-input-background mb-2 w-full rounded-md shadow-md hover:cursor-pointer hover:brightness-110",onClick:()=>e(t),children:y.jsxs("div",{className:"flex px-3 py-1.5",children:[y.jsx("div",{className:"mr-3 flex-shrink-0 self-start pt-0.5",children:y.jsx(M6,{className:"text-lightgray h-5 w-5"})}),y.jsxs("div",{className:"flex flex-1 flex-col justify-center",children:[y.jsx("div",{className:"text-xs font-medium",children:t.name}),t.description&&y.jsx("div",{className:"text-lightgray text-xs",children:t.description})]})]})})}const Uj=5;function v3n(){vr();const{mainEditor:t}=nh(),[e,n]=g.useState(!1),{isCommandBookmarked:r}=nZe(),s=He(c=>c.config.config.slashCommands??[]).filter(c=>r(c.name));function a(c){t==null||t.commands.insertPrompt({description:c.description,title:c.name,content:c.prompt})}if(s.length===0)return null;const o=e?s:s.slice(0,Uj),l=s.length-Uj;return y.jsxs("div",{className:"flex w-full max-w-full flex-col",children:[y.jsx("div",{className:"lg:grid lg:grid-cols-3 lg:gap-4",children:o.map((c,u)=>y.jsx(g3n,{command:c,onClick:a},c.name+u))}),s.length>Uj&&y.jsx("span",{className:"text-lightgray mt-1 cursor-pointer text-xs hover:underline",onClick:()=>n(!e),children:e?"Show less":`Show ${l} more...`})]})}function y3n({showOnboardingCard:t}){return t?y.jsx("div",{className:"mx-2 mt-6",children:y.jsx(e7e,{})}):y.jsx("div",{className:"mx-2 mt-2",children:y.jsx(v3n,{})})}const b3n=t=>{Er("didCloseFiles",async e=>{((e==null?void 0:e.uris)??[]).some(i=>{const s=i.toLowerCase();return s.endsWith("continue_tutorial.py")||s.endsWith("continue_tutorial.java")||s.endsWith("continue_tutorial.ts")})&&t()})},x3n=()=>{const t=vr();return b3n(()=>{jd(Ex.IsExploreDialogOpen,!0),to(Ex.HasDismissedExploreDialog)||t(DSt(!0))}),null};function w3n(t){return t.filter(e=>e.message.role==="user").length}const _3n=(t,e)=>{const[n,r]=g.useState(!1),i=g.useMemo(()=>w3n(e),[e.length]);g.useEffect(()=>{r(!1)},[i]),g.useEffect(()=>{if(!t.current||e.length===0)return;const s=()=>{const o=t.current;if(!o)return;const l=Math.abs(o.scrollHeight-o.scrollTop-o.clientHeight)<1;r(!l)},a=new ResizeObserver(()=>{const o=t.current;!o||n||(o.scrollTop=o.scrollHeight)});return t.current.addEventListener("scroll",s),a.observe(t.current),Array.from(t.current.children).forEach(o=>{a.observe(o)}),()=>{var o;a.disconnect(),(o=t.current)==null||o.removeEventListener("scroll",s)}},[t,e.length,n])};function k3n(t){for(let e=t.length-1;e>=0;e--)if(t[e].conversationSummary)return e;return-1}const S3n=Dn.div` + position: relative; + background-color: transparent; + + & > * { + position: relative; + } + + .thread-message { + margin: 0 0 0 1px; + } +`,rZe="main-editor-input";function C3n({error:t,resetErrorBoundary:e}){return y.jsxs("div",{role:"alert",className:"px-2",style:{backgroundColor:qo},children:[y.jsx("p",{children:"Something went wrong:"}),y.jsx("pre",{style:{color:"red"},children:t.message}),y.jsx("pre",{style:{color:gs},children:t.stack}),y.jsx("div",{className:"text-center",children:y.jsx(op,{onClick:e,children:"Restart"})})]})}function E3n(){const t=vr(),e=g.useContext(qt),n=b3e(),r=H$(),i=He(A=>{var $;return($=A.config.config.ui)==null?void 0:$.showSessionTabs}),s=He(A=>A.session.isStreaming),[a]=g.useState([]),[o,l]=g.useState(!1),c=g.useRef(null),u=g.useRef(null),d=g.useRef(null),f=He(A=>A.session.history),h=He(A=>{var $;return($=A.config.config.ui)==null?void 0:$.showChatScrollbar});He(A=>A.editModeState.codeToEdit);const m=He(A=>A.session.isInEdit),p=He(A=>A.session.lastSessionId);He(A=>A.session.allSessionMetadata);const v=He(A=>A.ui.hasDismissedExploreDialog),x=He(A=>A.session.mode);He(cp);const w=g.useMemo(()=>Go(),[]);_3n(u,f),g.useEffect(()=>{const A=$=>{$.key==="Backspace"&&(w?$.altKey:mg($))&&!$.shiftKey&&t(ap())};return window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}},[s,w,m]);const{widget:E,highlights:S}=crn(u,d,s),_=g.useCallback((A,$,O,D)=>{const N=n.getState(),R=lg(N),q=Snn(N),W=N.session.isInEdit,G=N.editModeState.codeToEdit,U=N.config.config.selectedModelByRole;if(N.session.mode==="background"&&!W){const V=cp(N),L=(V==null?void 0:V.id)!=="personal"?V==null?void 0:V.id:void 0;l(!0),(async()=>{var se;try{const oe=((se=N.config.config.experimental)==null?void 0:se.defaultContext)??[],{selectedContextItems:X,selectedCode:de,content:le}=await Jte({editorState:A,modifiers:$,ideMessenger:e,defaultContextProviders:oe,availableSlashCommands:N.config.config.slashCommands,dispatch:t,getState:()=>n.getState()});await e.request("createBackgroundAgent",{content:le,contextItems:X,selectedCode:de,organizationId:L}),D&&D.commands.clearContent(),l(!1)}catch(oe){console.error("Failed to create background agent:",oe),l(!1)}})();return}if(R.forEach(V=>{t(e6({toolCallId:V.toolCallId}))}),q.forEach(V=>{V.status!=="closed"&&e.post("rejectDiff",V)}),!(W?U.edit??U.chat:U.chat)||W&&G.length===0)return;W?t(Txn({editorState:A,codeToEdit:G})):(t(wO({editorState:A,modifiers:$,index:O})),D&&D.commands.clearContent());const H=to("mainTextEntryCounter");H?(jd("mainTextEntryCounter",H+1),H===300&&(t(Ri(y.jsx(p3n,{}))),t(hi(!0)))):jd("mainTextEntryCounter",1)},[t,e,n,l]);Er("newSession",async()=>{var A,$;($=(A=c.current)==null?void 0:A.focus)==null||$.call(A)},[c]),Er("toolCallPartialOutput",async A=>{t(Fu({toolCallId:A.toolCallId,contextItems:A.contextItems}))},[t]);const C=g.useCallback(A=>!f.slice(A+1).some($=>$.message.role==="user"),[f]),T=g.useCallback((A,$)=>{const{message:O,editorState:D,contextItems:N,appliedRules:R,toolCallStates:q}=A,W=k3n(f),G=W!==-1&&$_(U,J,$),isLastUserInput:C($),isMainInput:!1,editorState:D??A.message.content,contextItems:N,appliedRules:R,inputId:O.id}):O.role==="tool"?null:O.role==="assistant"?y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"thread-message",children:y.jsx(r1e,{item:A,iconElement:y.jsx(sC,{width:"16px",height:"16px"}),open:typeof a[$]>"u"?!0:a[$],onToggle:()=>{},children:y.jsx(U1e,{index:$,isLast:$===f.length-1,item:A,latestSummaryIndex:W})})}),q&&y.jsx(c3n,{toolCallStates:q,historyIndex:$})]}):O.role==="thinking"?y.jsx("div",{className:G?"opacity-50":"",children:y.jsx(bDe,{content:Q0(O),redactedThinking:O.redactedThinking,index:$,prevItem:$>0?f[$-1]:null,inProgress:$===f.length-1&&s,signature:O.signature})}):y.jsx("div",{className:"thread-message",children:y.jsx(r1e,{item:A,iconElement:y.jsx(sC,{width:"16px",height:"16px"}),open:typeof a[$]>"u"?!0:a[$],onToggle:()=>{},children:y.jsx(U1e,{index:$,isLast:$===f.length-1,item:A,latestSummaryIndex:W})})})},[_,C,f,a,s]),M=h??window.innerHeight>5e3;return y.jsxs(y.Fragment,{children:[!!i&&!m&&y.jsx(Gcn,{ref:d}),E,y.jsxs(S3n,{ref:u,className:`overflow-y-scroll pt-[8px] ${M?"thin-scrollbar":"no-scrollbar"} ${f.length>0?"flex-1":""}`,children:[S,f.filter(A=>A.message.role!=="system").map((A,$)=>y.jsxs("div",{style:{minHeight:$===f.length-1?"200px":0},children:[y.jsx(srn,{FallbackComponent:C3n,onReset:()=>{t(nd())},children:T(A,$)}),$===f.length-1&&y.jsx(m3n,{})]},A.message.id))]}),y.jsxs("div",{className:"relative",children:[y.jsx(L1e,{isMainInput:!0,isLastUserInput:!1,onEnter:(A,$,O)=>_(A,$,void 0,O),inputId:rZe}),y.jsxs("div",{style:{pointerEvents:s?"none":"auto"},children:[y.jsx("div",{className:"flex flex-row items-center justify-between pb-1 pl-0.5 pr-2",children:y.jsx("div",{className:"xs:inline hidden",children:f.length===0&&p&&!m&&y.jsxs(frn,{onClick:async()=>{await t(CJ())},className:"flex items-center gap-2",children:[y.jsx(D6,{className:"h-3 w-3"}),y.jsx("span",{className:"text-xs",children:"Last Session"})]})})}),y.jsx(tZe,{}),!v&&y.jsx(x3n,{}),x==="background"?y.jsx(h3n,{isCreatingAgent:o}):f.length===0&&y.jsx(y3n,{showOnboardingCard:r.show})]})]})]})}const $3n=({node:t,selected:e,editor:n})=>{const{item:r,inputId:i}=t.attrs,s=g.useContext(qt),a=l=>{l.stopPropagation(),s.post("showVirtualFile",{content:r.content,name:r.name})},o=()=>{n.commands.clearPrompt()};return y.jsx(vDe,{children:y.jsx(gDe,{initiallyHidden:!1,isSelected:e,title:r.name,icon:y.jsx(M6,{className:"h-3 w-3 pl-1 pr-0.5"}),inputId:i,itemId:r.id.itemId,onDelete:o,onTitleClick:r.content?a:void 0,children:r.content?y.jsx("div",{className:"whitespace-pre-wrap px-3 py-1 text-xs",contentEditable:!1,children:r.content}):null})})},xO=Am.create({name:"prompt-block",group:"block",content:"inline*",addOptions(){return{HTMLAttributes:{class:"prompt-block"}}},addAttributes(){return{item:{default:null},inputId:{default:null}}},parseHTML(){return[{tag:"prompt-block"}]},renderHTML({HTMLAttributes:t}){return["prompt-block",e5(t),0]},addNodeView(){return g8e($3n)},addCommands(){return{insertPrompt:t=>({chain:e})=>{const n={content:t.content??"",name:t.title,description:t.description,id:{providerTitle:"prompt",itemId:t.title}};return e().clearPrompt().insertContentAt(0,{type:this.name,attrs:{item:n,inputId:rZe}}).focus("end").run()},clearPrompt:()=>({state:t,commands:e})=>{const n=[];t.doc.descendants((r,i)=>r.type.name===this.name?(n.push({pos:i,node:r}),!1):!0);for(let r=n.length-1;r>=0;r--){const{pos:i,node:s}=n[r];e.deleteRange({from:i,to:i+s.nodeSize})}return n.length>0}}}}),iZe=Am.create({name:"slash-command",addOptions(){return{suggestion:{allow:({editor:t})=>t.getText().at(1)!==" ",char:"/",pluginKey:new Jc(this.name),startOfLine:!0,command:({editor:t,range:e,props:n})=>{t.chain().focus().deleteRange(e).run(),t.commands.insertPrompt(n)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{}},parseHTML(){return[]},addProseMirrorPlugins(){return[yDe({editor:this.editor,...this.options.suggestion})]}});function T3n(t){var e;return(e=t.attrs)==null?void 0:e.item.name}function I3n(t){const e=[];return[(t.content||[]).map(r=>{var i,s;switch(r.type){case VSe.name:return r.text;case YY.name:const a=r.attrs;return e.push({provider:a.itemType==="contextProvider"?a.id:a.itemType,query:a.query}),((i=r.attrs)==null?void 0:i.renderInlineAs)??((s=r.attrs)==null?void 0:s.label);default:return console.warn("Unexpected child type",r.type),""}}).join("").trimStart(),e]}function A3n(t){var s,a,o,l;const e=[],n=[];let r;const i=[];for(const c of(t==null?void 0:t.content)||[])switch(c.type){case xO.name:r=T3n(c);break;case WSe.name:const[u,d]=I3n(c);e.push(...d),u&&(((s=i[i.length-1])==null?void 0:s.type)==="text"?i[i.length-1].text+=` +`+u:i.push({type:"text",text:u}));break;case zg.name:if(!((a=c.attrs)!=null&&a.item)){console.warn("codeBlock has no item attribute");break}const f=c.attrs.item,h=wT(f,!0);if(n.push(h),f.editing)break;const{extension:m,relativePathOrBasename:p}=GSt(h.filepath,window.workspacePaths??[]),v=` +\`\`\`${m} ${p} (${h.range.start.line+1}-${h.range.end.line+1}) +${f.content} +\`\`\` +`;((o=i[i.length-1])==null?void 0:o.type)==="text"?i[i.length-1].text+=` +`+v:i.push({type:"text",text:v});break;case HSe.name:i.push({type:"imageUrl",imageUrl:{url:(l=c.attrs)==null?void 0:l.src}});break;default:console.warn("Unexpected content type",c.type)}return{parts:i,contextRequests:e,selectedCode:n,slashCommandName:r}}async function O3n(t,e,n){const r={};t.mcpArgs&&t.mcpArgs.forEach((s,a)=>{r[s.name]=""});const i=await e.request("mcp/getPrompt",{serverName:t.mcpServerName,promptName:t.name,args:r});if(i.status==="success"){let s=i.content.prompt;return n&&(s+=` + +${n}`),s}else throw new Error(`Failed to get MCP prompt for slash command ${t.name}`)}const sZe=["file","clipboard","repo-map","currentFile","os","problems","codebase","tree","open","debugger","terminal","diff"];function D3n(t){let e="";for(;t>0;){const n=(t-1)%26;e=String.fromCharCode(97+n)+e,t=Math.floor((t-1)/26)}return e}function M3n(t,e){const n={};for(const[r,i]of e)t.registerHelper(r,(...s)=>{const a=ZSe();return n[a]=i(...s),`__${a}__`});return n}async function N3n(t,e,n,r,i,s){const a=t.parse(e),o=new Map,l=new Set;let c=e,u=1;for(const f in a.body){const h=a.body[f];if(h.type==="MustacheStatement"){const m=h.path.original;if(m.toLowerCase()==="input")continue;if(!r.includes(m)){const v=D3n(u);o.set(v,m),c=c.replace(new RegExp(`{{\\s*${m}\\s*}}`),`{{${v}}}`),u++}else l.add(m)}}const d={...n};for(const[f,h]of o.entries())try{const m=await s(h);if(m){const p=await i(m);d[f]=p}else throw new Error(`File not found: ${h}`)}catch(m){console.error(`Error reading file in prompt file ${h}:`,m),d[f]=`[Error reading file "${h}"]`}return{withLetterKeys:c,templateData:d,requiredContextProviders:l}}async function R3n(t,e){await Promise.all(Object.values(e));for(const n in e)t=t.replace(`__${n}__`,await e[n]);return t}async function L3n(t,e,n,r,i,s){const a=r?M3n(t,r):{},o=(r==null?void 0:r.map(f=>f[0]))??[],{withLetterKeys:l,templateData:c}=await N3n(t,e,n,o,i,s),d=t.compile(l)(c);return R3n(d,a)}async function P3n(t,e,n,r){if(!e.prompt)return"";const i=sZe.map(c=>[c,async u=>{const d=await t.request("context/getContextItems",{fullInput:n,name:c,query:"",selectedCode:r,isInAgentMode:!1});if(d.status==="success")return d.content.map(f=>f.content).join(` + +`);throw new Error(`Failed to get context items from provider "${c}": ${d.error}`)}]),s=await t.ide.getWorkspaceDirs(),a=c=>fI(c,t.ide,s),o=(await Ci(async()=>{const{default:c}=await import("./handlebars.js").then(u=>u.h);return{default:c}},__vite__mapDeps([49,6]))).default;let l=await L3n(o,e.prompt,{input:n},i,t.ide.readFile.bind(t.ide),a);return l.includes(n)||(l=l+` + +${n}`),l.trim()}async function j3n(t,e){if(!e.prompt)return[];const n=await t.ide.getWorkspaceDirs(),r=new Set;e.sourceFile&&r.add(e.sourceFile);const i=[];async function s(a){const o=a.matchAll(/@([^\s]+)/g);for(const l of o){const c=l[1];if(sZe.includes(c)){i.push({provider:c});continue}if(c.startsWith("http")){i.push({provider:"url",query:c});continue}const u=await fI(l[1],t.ide,n);if(u){const d=await t.ide.readFile(u);if(c.endsWith(".prompt")){if(r.has(u))return[];r.add(u),await s(d)}i.push({provider:"file",query:u})}}}return await s(e.prompt),i}async function z3n(t,e,n,r,i){const s={slashedParts:n,legacyCommandWithInput:void 0,contextRequests:[]};if(!e)return s;const a=r.find(h=>h.name===e);if(!a)return s;try{ta.capture("useSlashCommand",{name:a.name,source:a.source,isLegacy:a.isLegacy})}catch(h){console.error(h)}const o=n.filter(h=>h.type!=="text"),l=n.filter(h=>h.type==="text"),c=[...o],u=Ly(l).trimStart(),d=a.isLegacy?{command:a,input:u}:void 0,f=[];switch(a.source){case"built-in-legacy":case"config-ts-slash-command":c.push({type:"text",text:`/${a.name}${a.prompt?" "+a.prompt:""}${u?" "+u:""}`});break;case"mcp-prompt":const h=await O3n(a,t,u);c.push({type:"text",text:h});break;case"prompt-file-v1":case"prompt-file-v2":case"yaml-prompt-block":case"invokable-rule":if(!a.prompt){console.warn(`Invalid/empty prompt from slash command ${a.name}`);break}let m;if(a.source==="prompt-file-v1"||a.prompt.includes("{{{ input }}}"))m=await P3n(t,a,u,i);else{const v=await j3n(t,a);f.push(...v),m=[a.prompt,u].join(` + +`).trim()}m?c.push({type:"text",text:m}):console.warn(`Invalid/empty prompt + input from slash command ${a.name}`);break;case"built-in":case"json-custom-command":if(!a.prompt){console.warn(`Slash command ${a.name} is missing prompt`);break}let p=a.prompt;u&&(p+=` + +${u}`),p?c.push({type:"text",text:p}):console.warn(`Invalid/empty prompt + input from slash command ${a.name}`)}return{slashedParts:c,legacyCommandWithInput:d,contextRequests:f}}async function Jte({editorState:t,modifiers:e,ideMessenger:n,defaultContextProviders:r,availableSlashCommands:i,dispatch:s,getState:a}){const{parts:o,contextRequests:l,selectedCode:c,slashCommandName:u}=A3n(t),{slashedParts:d,contextRequests:f,legacyCommandWithInput:h}=await z3n(n,u,o,i,c),m=[...l,...f],p=r.length>0||e.useCodebase||!e.noContext||m.length>0;p&&s(a2e(!0));const v=await F3n({contextRequests:m,modifiers:e,ideMessenger:n,defaultContextProviders:r,parts:d,selectedCode:c,getState:a});return p&&s(a2e(!1)),{selectedContextItems:v,selectedCode:c,content:d,legacyCommandWithInput:h}}async function F3n({contextRequests:t,modifiers:e,ideMessenger:n,defaultContextProviders:r,parts:i,selectedCode:s,getState:a}){var h;const o=r.map(m=>({provider:m.name,query:m.query})),c=[...t,...o].reduce((m,p)=>(m.some(v=>v.provider===p.provider&&v.query===p.query)||m.push(p),m),[]);let u=[];const d=a().session.mode==="agent";for(const m of c){const p=await n.request("context/getContextItems",{name:m.provider,query:m.query??"",fullInput:Ly(i),selectedCode:s,isInAgentMode:d});p.status==="success"&&u.push(...p.content)}if(e.useCodebase&&!c.some(m=>m.provider==="codebase")){const m=await n.request("context/getContextItems",{name:"codebase",query:"",fullInput:Ly(i),selectedCode:s,isInAgentMode:d});m.status==="success"&&u.push(...m.content)}if(!e.noContext&&!c.some(m=>m.provider==="currentFile")){const m=await n.request("context/getContextItems",{name:"currentFile",query:"non-mention-usage",fullInput:"",selectedCode:[],isInAgentMode:d});if(m.status==="success"){const p=m.content[0];(h=p==null?void 0:p.uri)!=null&&h.value&&(p.id={providerTitle:"file",itemId:p.uri.value},u.unshift(p))}}return u.reduce((m,p)=>(m.some(v=>v.id.providerTitle===p.id.providerTitle&&v.id.itemId===p.id.itemId||v.uri&&p.uri&&v.uri.type===p.uri.type&&v.uri.value===p.uri.value)||m.push(p),m),[])}const wO=Cs("chat/streamResponse",async({editorState:t,modifiers:e,index:n},{dispatch:r,extra:i,getState:s})=>{await r(EJ(async()=>{var p;const a=s(),o=dc(a),l=n??a.session.history.length;if(!o)throw new Error("No chat model selected");r(J3n({index:l,editorState:t})),r(uZe());const c=((p=a.config.config.experimental)==null?void 0:p.defaultContext)??[],{selectedContextItems:u,selectedCode:d,content:f,legacyCommandWithInput:h}=await Jte({editorState:t,modifiers:e,ideMessenger:i.ideMessenger,defaultContextProviders:c,availableSlashCommands:a.config.config.slashCommands,dispatch:r,getState:s}),m=[...u.filter(v=>{var x,w;return((x=v.uri)==null?void 0:x.type)==="file"&&((w=v==null?void 0:v.uri)==null?void 0:w.value)}).map(v=>v.uri.value),...d.map(v=>v.filepath)];r(ozt(m)),r(Q3n({index:l,updates:{message:{role:"user",content:f,id:Ma()},contextItems:u}})),ta.capture("step run",{step_name:"User Input",params:{}}),ta.capture("userInput",{}),h&&ta.capture("step run",{step_name:h.command.name,params:{}}),Kh(await r(aNe({legacySlashCommandData:h?{command:h.command,contextItems:u,historyIndex:l,input:h.input,selectedCode:d}:void 0})))}))});function aZe(t){let e=!1;return t.filter(n=>{var r,i;if((r=n.function)!=null&&r.name&&a7e((i=n.function)==null?void 0:i.name)){if(e)return!1;e=!0}return!0})}function B3n(t,e){var n;if((t.role==="assistant"||t.role==="thinking")&&((n=t.toolCalls)!=null&&n.length)){const r=aZe(t.toolCalls);e.toolCallStates=r.map(s=>LG(s,void 0));const i=e.message;i.toolCalls=e.toolCallStates.map(s=>s.toolCall)}}function U3n(t,e){let n=-1;t.id?n=e.findIndex(s=>s.toolCallId===t.id):(n=e.length-1,n<0&&(n=-1));const r=n>=0?e[n]:void 0,i=LG(t,r);n>=0?e[n]=i:e.push(i)}function q3n(t,e){var n;if(t.role==="assistant"&&((n=t.toolCalls)!=null&&n.length)&&e.message.role==="assistant"){const i=[...e.toolCallStates||[]];aZe(t.toolCalls).forEach(a=>{U3n(a,i)}),e.toolCallStates=i,e.message.toolCalls=i.map(a=>a.toolCall)}}const H3n={isSessionMetadataLoading:!1,allSessionMetadata:[],history:[],isStreaming:!1,title:X4,id:Ma(),streamAborter:new AbortController,symbols:{},mode:"agent",isInEdit:!1,codeBlockApplyStates:{states:[],curIndex:0},lastSessionId:void 0,newestToolbarPreviewForInput:{},compactionLoading:{}},Xte=e2({name:"session",initialState:H3n,reducers:{addPromptCompletionPair:(t,{payload:e})=>{var r;if(!t.history.length)return;const n=t.history[t.history.length-1];n.promptLogs=n.promptLogs?n.promptLogs.concat(e):e,(r=n.reasoning)!=null&&r.active&&(n.reasoning.active=!1,n.reasoning.endAt=Date.now())},setActive:t=>{t.isStreaming=!0},setIsGatheringContext:(t,{payload:e})=>{const n=t.history.at(-1);n&&(n.isGatheringContext=e)},clearDanglingMessages:t=>{var r;if(t.history.length<2)return;const e=JSt.findLastIndex(t.history,i=>i.message.role==="tool"||i.message.role==="user");let n=-1;for(let i=t.history.length-1;i>e;i--){const s=t.history[i],a=(r=s.toolCallStates)==null?void 0:r.some(o=>o.status!=="generating");if(s.message.content||a){n=i,s.toolCallStates&&s.toolCallStates.forEach(o=>{(o.status==="generated"||o.status==="generating")&&(o.status="canceled")});break}}if(n===-1){const i=t.history[e];i.message.role==="user"?(t.mainEditorContentTrigger=i.editorState,t.history=t.history.slice(0,e)):t.history=t.history.slice(0,e+1)}else t.history=t.history.slice(0,n+1)},setMainEditorContentTrigger:(t,e)=>{t.mainEditorContentTrigger=e.payload},updateFileSymbols:(t,e)=>{t.symbols={...t.symbols,...e.payload}},setContextItemsAtIndex:(t,{payload:{index:e,contextItems:n}})=>{t.history[e]&&(t.history[e].contextItems=n)},submitEditorAndInitAtIndex:(t,{payload:e})=>{const{index:n,editorState:r}=e;if(t.history.length&&n{const{index:n}=e;t.history.length&&n{t.history.splice(e.payload-1,2),t.inlineErrorMessage=void 0,t.isPruned=!1,t.contextPercentage=void 0},deleteCompaction:(t,e)=>{const n=t.history[e.payload];n!=null&&n.conversationSummary&&(t.history[e.payload]={...n,conversationSummary:void 0})},updateHistoryItemAtIndex:(t,{payload:e})=>{const{index:n,updates:r}=e;if(n!==0&&!t.history[n]){console.error(`attempting to update history item at nonexistent index ${n}`,r);return}t.history[n]={...t.history[n],...r}},addContextItemsAtIndex:(t,{payload:e})=>{const n=t.history[e.index];n&&(n.contextItems=[...n.contextItems,...e.contextItems])},setAppliedRulesAtIndex:(t,{payload:e})=>{t.history[e.index]&&(t.history[e.index].appliedRules=e.appliedRules)},setInactive:t=>{const e=t.history.at(-1);e&&(e.isGatheringContext=!1),t.isStreaming=!1},abortStream:t=>{t.streamAborter.abort(),t.streamAborter=new AbortController},streamUpdate:(t,e)=>{var n,r,i,s;if(t.history.length)for(const a of e.payload){let o=t.history[t.history.length-1],l=o.message;if(a.role==="thinking"&&a.redactedThinking){t.history.push({message:{role:"thinking",content:"internal reasoning is hidden due to safety reasons",redactedThinking:a.redactedThinking,id:Ma()},contextItems:[]});continue}const c=a.content?Q0(a):"";if(c&&a.role!=="tool"){const u=c.match(/([\s\S]*)<\/think>([\s\S]*)/);if(u){o.reasoning={text:u[1].trim(),startAt:Date.now(),endAt:Date.now(),active:!1},t.history.push({message:{role:"assistant",content:u[2].trim(),id:Ma()},contextItems:[]}),o=t.history[t.history.length-1],l=o.message,B3n(a,o);return}}if(l.role!==a.role||a.role==="tool"){const u={message:{...a,content:"",id:Ma()},contextItems:[]};t.history.push(u),o=t.history[t.history.length-1],l=o.message}if(c)if(c.includes("")&&a.role!=="tool")o.reasoning={startAt:Date.now(),active:!0,text:c.replace("","").trim()};else if((n=o.reasoning)!=null&&n.active&&c.includes("")){const[u,d]=c.split("");o.reasoning.text+=u.trimEnd(),o.reasoning.active=!1,o.reasoning.endAt=Date.now(),l.content+=d.trimStart()}else(r=o.reasoning)!=null&&r.active?(o.reasoning.text.length>0||c.trim().length>0)&&(o.reasoning.text+=c):(l.content.length>0||c.trim().length>0)&&(l.content+=c);else a.role==="thinking"&&a.signature?l.role==="thinking"&&(l.signature=a.signature):a.role==="assistant"&&((i=a.toolCalls)!=null&&i.length)&&l.role==="assistant"&&q3n(a,o);a.role==="assistant"&&l.role==="assistant"&&((s=a.metadata)!=null&&s.responsesOutputItemId)&&(l.metadata=l.metadata||{},l.metadata.responsesOutputItemIds||(l.metadata.responsesOutputItemIds=[]),l.metadata.responsesOutputItemIds.push(a.metadata.responsesOutputItemId),l.metadata.responsesOutputItemId=a.metadata.responsesOutputItemId),a.role==="thinking"&&a.reasoning_details&&l.role==="thinking"&&(l.reasoning_details=BSt(l.reasoning_details,a.reasoning_details))}},newSession:(t,{payload:e})=>{t.lastSessionId=t.id,t.streamAborter.abort(),t.streamAborter=new AbortController,t.isStreaming=!1,t.symbols={},t.inlineErrorMessage=void 0,t.isPruned=!1,t.contextPercentage=void 0,e?(t.history=e.history,t.title=e.title,t.id=e.sessionId,e.mode&&(t.mode=e.mode)):(t.history=[],t.title=X4,t.id=Ma())},updateSessionTitle:(t,{payload:e})=>{t.title=e},setIsSessionMetadataLoading:(t,{payload:e})=>{t.isSessionMetadataLoading=e},setAllSessionMetadata:(t,{payload:e})=>{t.allSessionMetadata=e},addSessionMetadata:(t,{payload:e})=>{t.allSessionMetadata=[...t.allSessionMetadata,e]},updateSessionMetadata:(t,{payload:e})=>{t.allSessionMetadata=t.allSessionMetadata.map(n=>n.sessionId===e.sessionId?{...n,...e}:n),e.title&&e.sessionId===t.id&&(t.title=e.title)},deleteSessionMetadata:(t,{payload:e})=>{t.allSessionMetadata=t.allSessionMetadata.filter(n=>n.sessionId!==e)},addHighlightedCode:(t,{payload:e})=>{let n=t.history[t.history.length-1].contextItems??[];n=n.map(a=>({...a,editing:!1}));const{relativePathOrBasename:r}=Xb(e.rangeInFileWithContents.filepath,window.workspacePaths??[]),i=qu(e.rangeInFileWithContents.filepath),s=`(${e.rangeInFileWithContents.range.start.line+1}-${e.rangeInFileWithContents.range.end.line+1})`;n.push({name:`${i} ${s}`,description:r,id:{providerTitle:"code",itemId:Ma()},content:e.rangeInFileWithContents.contents,editing:!0,editable:!0,uri:{type:"file",value:e.rangeInFileWithContents.filepath}}),t.history[t.history.length-1].contextItems=n},updateApplyState:(t,{payload:e})=>{const n=t.codeBlockApplyStates.states.find(r=>r.streamId===e.streamId);n?(n.status=e.status??n.status,n.numDiffs=e.numDiffs??n.numDiffs,n.filepath=e.filepath??n.filepath,n.fileContent=e.fileContent??n.fileContent,n.originalFileContent=e.originalFileContent??n.originalFileContent):t.codeBlockApplyStates.states.push(e),e.status==="done"&&t.codeBlockApplyStates.curIndex++},resetNextCodeBlockToApplyIndex:t=>{t.codeBlockApplyStates.curIndex=0},setToolGenerated:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);if(n){n.status="generated";const r=e.payload.tools.find(i=>i.function.name===n.toolCall.function.name);r&&(n.tool=r)}},updateToolCallOutput:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.output=e.payload.contextItems,n.mcpUiState=e.payload.mcpUiState);const r=_nn(t.history,e.payload.toolCallId);r&&(r.message.content=l2(e.payload.contextItems),r.contextItems=e.payload.contextItems.map(i=>s7e(i,e.payload.toolCallId)))},setProcessedToolCallArgs:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.processedArgs=e.payload.newArgs)},cancelToolCall:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.status="canceled")},errorToolCall:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.status="errored",e.payload.output&&(n.output=e.payload.output))},acceptToolCall:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.status="done")},setToolCallCalling:(t,e)=>{const n=Oc(t.history,e.payload.toolCallId);n&&(n.status="calling")},setMode:(t,e)=>{t.mode=e.payload},setIsInEdit:(t,e)=>{t.isInEdit=e.payload},setHasReasoningEnabled:(t,e)=>{t.hasReasoningEnabled=e.payload},setNewestToolbarPreviewForInput:(t,{payload:e})=>{t.newestToolbarPreviewForInput[e.inputId]=e.contextItemId},setCompactionLoading:(t,e)=>{const{index:n,loading:r}=e.payload;r?t.compactionLoading[n]=!0:delete t.compactionLoading[n]},setInlineErrorMessage:(t,e)=>{t.inlineErrorMessage=e.payload},setIsPruned:(t,e)=>{t.isPruned=e.payload},setContextPercentage:(t,e)=>{t.contextPercentage=e.payload}},selectors:{selectIsGatheringContext:t=>{const e=t.history.at(-1);return(e==null?void 0:e.isGatheringContext)||!1}},extraReducers:t=>{W3n(t,[wO])}});function W3n(t,e){e.forEach(n=>{t.addCase(n.fulfilled,(r,i)=>{}).addCase(n.rejected,(r,i)=>{}).addCase(n.pending,(r,i)=>{})})}const V3n=So([t=>t.session.codeBlockApplyStates.states,(t,e)=>e],(t,e)=>t.find(n=>n.streamId===e)),Z3n=So([t=>t.session.codeBlockApplyStates.states,(t,e)=>e],(t,e)=>{if(e)return t.find(n=>n.toolCallId===e)}),{updateFileSymbols:oZe,setContextItemsAtIndex:ATn,addContextItemsAtIndex:G3n,setAppliedRulesAtIndex:K3n,setInactive:cy,streamUpdate:lZe,newSession:nd,updateSessionTitle:OTn,addHighlightedCode:DTn,addPromptCompletionPair:Y3n,setActive:cZe,submitEditorAndInitAtIndex:J3n,truncateHistoryToMessage:X3n,updateHistoryItemAtIndex:Q3n,clearDanglingMessages:e4n,setMainEditorContentTrigger:Qte,deleteMessage:t4n,deleteCompaction:n4n,setIsGatheringContext:a2e,resetNextCodeBlockToApplyIndex:uZe,updateApplyState:dZe,abortStream:ene,setToolCallCalling:r4n,cancelToolCall:e6,errorToolCall:Sk,acceptToolCall:tne,setToolGenerated:i4n,updateToolCallOutput:Fu,setProcessedToolCallArgs:s4n,setMode:f0,setIsSessionMetadataLoading:fZe,setAllSessionMetadata:hZe,addSessionMetadata:MTn,updateSessionMetadata:a4n,deleteSessionMetadata:o4n,setNewestToolbarPreviewForInput:l4n,setIsInEdit:pZe,setHasReasoningEnabled:mZe,setInlineErrorMessage:OV,setIsPruned:c4n,setContextPercentage:u4n,setCompactionLoading:o2e}=Xte.actions,{selectIsGatheringContext:d4n}=Xte.selectors,f4n=Xte.reducer;function h4n(t){const e=t.getJSON();if(!e.content||e.content.length===0)return!0;const n=e.content[0];return n.type==="paragraph"&&(n.content||[]).length===0}function p4n(t,e){if(!h4n(t))return;const n=e.find(r=>r.title==="currentFile");if(n){const r=t.schema.nodes[YY.name].create({name:n.displayTitle,description:n.description,id:n.title,label:n.displayTitle,renderInlineAs:n.renderInlineAs,type:n.type,itemType:"contextProvider"});t.chain().insertContent([r.toJSON(),{type:"text",text:" "}]).run()}}function m4n({editor:t,onEnterRef:e,dispatch:n,historyLength:r,inputId:i,editorFocusedRef:s}){const a=He(c=>c.config.config.contextProviders),o=He(c=>{var u;return(u=c.config.config.experimental)==null?void 0:u.useCurrentFileAsContext}),l=He(c=>c.session.isInEdit);Er("isContinueInputFocused",async()=>!!s.current,[s]),Er("userInput",async c=>{t&&(t.commands.insertContent(c.input),e.current({useCodebase:!1,noContext:!0}))},[t,e.current]),Er("jetbrains/editorInsetRefresh",async()=>{t==null||t.chain().clearContent().focus().run()}),Er("focusContinueInput",async()=>{n(m6e()),r>0&&await n(Qu({openNewSession:!1,generateTitle:!0})),setTimeout(()=>{t==null||t.commands.blur(),t==null||t.commands.focus("end")},20)},[r,t,n]),Er("focusContinueInputWithoutClear",async()=>{setTimeout(()=>{t==null||t.commands.focus("end")},20)},[t]),Er("focusContinueInputWithNewSession",async()=>{await n(Qu({openNewSession:!0,generateTitle:!0})),setTimeout(()=>{t==null||t.commands.focus("end")},20)},[t,n]),Er("highlightedCode",async c=>{var f,h,m;if(!t)return;const u=lTt(c.rangeInFileWithContents);let d=0;for(const p of((f=t.getJSON())==null?void 0:f.content)??[]){if(((m=(h=p.attrs)==null?void 0:h.item)==null?void 0:m.name)===u.name)return;if(p.type===zg.name||p.type===xO.name)d+=2;else break}t.chain().insertContentAt(d,{type:zg.name,attrs:{item:u,inputId:i}}).run(),n(l4n({inputId:i,contextItemId:u.id.itemId})),c.prompt&&(t.commands.focus("end"),t.commands.insertContent(c.prompt)),c.shouldRun&&e.current({useCodebase:!1,noContext:!0}),setTimeout(()=>{t.commands.blur(),t.commands.focus("end")},20)},[t,i,e.current]),Er("isContinueInputFocused",async()=>!!s.current,[s]),Er("focusContinueSessionId",async c=>{c.sessionId&&await n(x_({sessionId:c.sessionId,saveCurrentSession:!0}))},[]),Er("newSession",async()=>{!t||l||!o||p4n(t,a)},[t,a,l,o]),Er("addToChat",async c=>{if(!t)return;let u=t.chain();for(let d of c.data)u.insertContent({type:"mention",attrs:{id:d.fullPath,query:d.fullPath,itemType:d.type,label:d.name}}).insertContent(" ");u.run()},[t])}const DV={mainEditor:null,setMainEditor:()=>{},inputId:null,setInputId:()=>{},onEnterRef:{current:()=>{}}},gZe=g.createContext(DV),g4n=({children:t})=>{const e=vr(),[n,r]=g.useState(DV.mainEditor),[i,s]=g.useState(DV.inputId),a=g.useRef(()=>{}),o=g.useRef(!1),l=He(f=>f.session.history.length),c=He(f=>f.session.mainEditorContentTrigger);g.useEffect(()=>{n&&c&&(queueMicrotask(()=>{n.commands.setContent(c)}),e(Qte(void 0)))},[n,c,e]),g.useEffect(()=>{if(n){const f=()=>{o.current=n.isFocused||!1};return n.on("focus",f),n.on("blur",f),()=>{n.off("focus",f),n.off("blur",f)}}},[n]),m4n({editor:n,onEnterRef:a,dispatch:e,historyLength:l,inputId:i||"",editorFocusedRef:o});const d={mainEditor:n,setMainEditor:f=>{r(f)},inputId:i,setInputId:s,onEnterRef:a};return y.jsx(gZe.Provider,{value:d,children:t})},nh=()=>g.useContext(gZe),v4n=["openai","ollama","lemonade","cohere","gemini","msty","anthropic","bedrock","sagemaker","continue-proxy","openrouter","venice","sambanova","vertexai","azure","scaleway","nebius","ovhcloud","watsonx"],y4n=[/llava/,/gpt-4-turbo/,/gpt-4o/,/gpt-4o-mini/,/claude-3/,/gemini-ultra/,/gemini-1\.5-pro/,/gemini-1\.5-flash/,/sonnet/,/opus/,/haiku/,/pixtral/,/llama-?3\.2/,/llama-?4/,/\bgemma-?3(?!n)/,/\b(pali|med)gemma/,/qwen(.*)vl/,/mistral-small/,/mistral-medium/];function o$(t,e,n,r){if((r==null?void 0:r.uploadImage)!==void 0)return r.uploadImage;if(!v4n.includes(t))return!1;const i=e.toLowerCase(),s=(n==null?void 0:n.toLowerCase())??"";return!!(i.includes("vision")||s.includes("vision")||y4n.some(a=>a.test(i)||a.test(s)))}function vZe(t){var e;return t?((e=t.completionOptions)==null?void 0:e.reasoning)!==void 0?t.completionOptions.reasoning:!!(t.model.includes("claude")&&!t.model.includes("-3-")&&!t.model.includes("-3.5-")||t.model.includes("command-a-reasoning")||t.model.includes("deepseek-r")):!1}BU.MERCURY_CODER,BU.INSTINCT;function yZe(){const[t,e]=g.useState(!1),n=g.useContext(qt);return g.useEffect(()=>{Go()&&(async()=>await n.request("jetbrains/isOSREnabled",void 0).then(r=>{r.status==="success"&&e(r.content)}))()},[n]),t}function l2e(t){return t!=null&&t.title?t==null?void 0:t.title:(t==null?void 0:t.model)!==void 0&&(t==null?void 0:t.model.trim())!==""?t!=null&&t.class_name?`${t==null?void 0:t.class_name} - ${t==null?void 0:t.model}`:t==null?void 0:t.model:t==null?void 0:t.class_name}function c2e(t){t&&(t.classList.add("hidden"),setTimeout(()=>{t.classList.remove("hidden")}))}function b4n({option:t,idx:e,showMissingApiKeyMsg:n,isSelected:r}){const i=wa();function s(o){n&&(o.preventDefault(),o.stopPropagation())}function a(o){o.stopPropagation(),i(Rc.MODELS)}return y.jsx(Zs,{disabled:n,value:t.value,onClick:s,className:`group ${r?"bg-list-active text-list-active-foreground":""}`,children:y.jsxs("div",{className:"flex w-full items-center justify-between gap-5",children:[y.jsxs("div",{className:"flex items-center gap-2 py-0.5",children:[y.jsx(_g,{className:"h-3 w-3 flex-shrink-0"}),y.jsxs("span",{className:"line-clamp-1",children:[t.title,t.isAutoDetected&&y.jsx("span",{className:"text-description-muted ml-1.5 text-[10px] italic",children:"(autodetected)"}),n&&y.jsx("span",{className:"ml-1.5 text-[10px] italic",children:"(Missing API key)"})]})]}),y.jsx(ai,{variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-4 w-4 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:a,children:y.jsx(Wc,{className:"h-3.5 w-3.5"})})]})},e)}function x4n(){const t=vr(),e=wa(),n=He(x=>x.session.isInEdit),r=He(x=>x.config.config),i=He(x=>x.config.loading),s=g.useRef(null),[a,o]=g.useState([]),[l,c]=g.useState([]),{selectedProfile:u}=as(),d=jf(-4);let f=null,h=null;n&&(h=r.modelsByRole.edit,f=r.selectedModelByRole.edit),f||(f=r.selectedModelByRole.chat),(!h||h.length===0)&&(h=r.modelsByRole.chat),g.useEffect(()=>{const x=a.sort((_,C)=>_.title.localeCompare(C.title)),w=x.filter(_=>_.apiKey!==""),E=x.filter(_=>_.apiKey===""),S=[...w,...E];c(S)},[a]),g.useEffect(()=>{o(h.map(x=>({value:x.title,title:l2e(x),apiKey:x.apiKey,sourceFile:x.sourceFile,isAutoDetected:x.isFromAutoDetect})))},[h]),g.useEffect(()=>{const x=w=>{if(w.key==="'"&&mg(w)&&!w.shiftKey){if(!u)return;const E=w.shiftKey?-1:1;let _=(a.findIndex(T=>T.value===(f==null?void 0:f.title))+1*E)%a.length;_<0&&(_=a.length-1);const C=a[_].value;t(My({selectedProfile:u,role:"chat",modelTitle:C}))}};return window.addEventListener("keydown",x),()=>{window.removeEventListener("keydown",x)}},[a,f]);function m(x){x.stopPropagation(),x.preventDefault(),c2e(s.current),t(hi(!0)),t(Ri(y.jsx(DG,{onDone:()=>{t(hi(!1))}})))}function p(x){x.stopPropagation(),x.preventDefault(),c2e(s.current),e(Rc.MODELS)}const v=(h==null?void 0:h.length)===0;return y.jsx(Vd,{onChange:async x=>{x!==(f==null?void 0:f.title)&&t(My({selectedProfile:u,role:n?"edit":"chat",modelTitle:x}))},children:y.jsxs("div",{className:"relative flex",children:[y.jsxs(Uu,{"data-testid":"model-select-button",ref:s,className:"text-description h-[18px] gap-1 border-none",children:[y.jsx("span",{className:"line-clamp-1 break-all hover:brightness-110",children:l2e(f)||"Select model"}),y.jsx(eo,{className:"hidden h-2 w-2 flex-shrink-0 hover:brightness-110 min-[200px]:flex","aria-hidden":"true"})]}),y.jsxs(Zd,{className:"min-w-[160px]",children:[y.jsxs("div",{className:"flex items-center justify-between px-1.5 py-1",children:[y.jsx("span",{className:"text-description text-xs font-medium",children:"Models"}),y.jsx("div",{className:"flex items-center gap-0.5",children:y.jsx(ai,{onClick:x=>{x.stopPropagation(),p(x)},variant:"ghost",size:"sm",className:"my-0 h-5 w-5 p-0",children:y.jsx(Wc,{className:"text-description h-3.5 w-3.5"})})})]}),y.jsx("div",{className:"no-scrollbar max-h-[300px] overflow-y-auto",children:i?y.jsxs("div",{className:"text-description flex items-center gap-2 px-2 pb-2 pt-1 text-xs",children:[y.jsx(rd,{className:"animate-spin-slow h-3 w-3"}),y.jsx("span",{children:"Loading config"})]}):v?y.jsx("div",{className:"text-description-muted px-2 py-4 text-center text-sm",children:"No models configured"}):l.map((x,w)=>y.jsx(b4n,{option:x,idx:w,showMissingApiKeyMsg:x.apiKey==="",isSelected:x.value===(f==null?void 0:f.title)},w))}),!i&&y.jsxs(y.Fragment,{children:[(u==null?void 0:u.profileType)==="local"&&y.jsxs(y.Fragment,{children:[y.jsx(bo,{className:"!mb-0"}),y.jsx(Zs,{onClick:m,value:"addModel",fontSizeModifier:-2,className:"px-2 py-2",children:y.jsxs("span",{className:"text-description text-2xs flex flex-row items-center",children:[y.jsx(K0,{className:"mr-1.5 h-3.5 w-3.5"}),"Add Chat model"]})},a.length)]}),y.jsx(bo,{className:"!my-0"}),y.jsx("div",{className:"text-description flex items-center justify-start p-2",children:y.jsxs("span",{className:"block",style:{fontSize:d},children:[y.jsxs("code",{children:[Ho(),"'"]})," to toggle model"]})})]})]})]})})}function T3({mode:t,className:e="xs:h-3 xs:w-3 h-3 w-3"}){switch(t){case"agent":return y.jsx(R6,{className:e});case"plan":return y.jsx(r_e,{className:e});case"chat":return y.jsx(M6,{className:e});case"background":return y.jsx(sG,{className:e})}}function w4n(){const t=vr(),e=He(d=>d.session.mode),n=He(dc),{selectedProfile:r}=as(),i=g.useMemo(()=>{if(n)return tln(n.model)},[n]),s=g.useMemo(()=>(r==null?void 0:r.profileType)==="local",[r]),{mainEditor:a}=nh(),o=g.useMemo(()=>Ho(),[]),l=g.useCallback(()=>{var d,f;t(f0(e==="chat"?"plan":e==="plan"?"agent":e==="agent"?s?"chat":"background":"chat")),(f=(d=document.activeElement)==null?void 0:d.classList)!=null&&f.contains("ProseMirror")||a==null||a.commands.focus()},[e,a,s]),c=g.useCallback(d=>{d!==e&&(t(f0(d)),a==null||a.commands.focus())},[e,a]);g.useEffect(()=>{const d=f=>{f.key==="."&&(f.metaKey||f.ctrlKey)&&(f.preventDefault(),l())};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[l]),g.useEffect(()=>{e==="background"&&s&&t(f0("agent"))},[e,s,t]);const u=d=>y.jsx(y.Fragment,{children:y.jsx(Ln,{style:{zIndex:200001},className:"flex items-center gap-1",content:`${d} might not work well with this model.`,children:y.jsx(mp,{className:"text-warning h-2.5 w-2.5"})})});return y.jsx(Vd,{value:e,onChange:c,children:y.jsxs("div",{className:"relative",children:[y.jsxs(Uu,{"data-testid":"mode-select-button",className:"xs:px-2 text-description bg-lightgray/20 gap-1 rounded-full border-none px-1.5 py-0.5 transition-colors duration-200 hover:brightness-110",children:[y.jsx(T3,{mode:e}),y.jsx("span",{className:"hidden sm:block",children:e==="chat"?"Chat":e==="agent"?"Agent":e==="background"?"Background":"Plan"}),y.jsx(eo,{className:"h-2 w-2 flex-shrink-0","aria-hidden":"true"})]}),y.jsxs(Zd,{className:"min-w-32 max-w-48",children:[y.jsxs(Zs,{value:"chat",children:[y.jsxs("div",{className:"flex flex-row items-center gap-1.5",children:[y.jsx(T3,{mode:"chat"}),y.jsx("span",{className:"",children:"Chat"}),y.jsx(Ln,{style:{zIndex:200001},content:"All tools disabled",children:y.jsx(Td,{"data-tooltip-id":"chat-tip",className:"h-2.5 w-2.5 flex-shrink-0"})}),y.jsxs("span",{className:`text-description-muted text-[${la()-3}px] mr-auto`,children:[Ho(),"L"]})]}),e==="chat"&&y.jsx(Ql,{className:"ml-auto h-3 w-3"})]}),y.jsxs(Zs,{value:"plan",className:"gap-1",children:[y.jsxs("div",{className:"flex flex-row items-center gap-1.5",children:[y.jsx(T3,{mode:"plan"}),y.jsx("span",{className:"",children:"Plan"}),y.jsx(Ln,{style:{zIndex:200001},content:"Read-only/MCP tools available",children:y.jsx(Td,{className:"h-2.5 w-2.5 flex-shrink-0"})})]}),!i&&u("Plan"),y.jsx(Ql,{className:`ml-auto h-3 w-3 ${e==="plan"?"":"opacity-0"}`})]}),y.jsxs(Zs,{value:"agent",className:"gap-1",children:[y.jsxs("div",{className:"flex flex-row items-center gap-1.5",children:[y.jsx(T3,{mode:"agent"}),y.jsx("span",{className:"",children:"Agent"}),y.jsx(Ln,{style:{zIndex:200001},content:"All tools available",children:y.jsx(Td,{className:"h-2.5 w-2.5 flex-shrink-0"})})]}),!i&&u("Agent"),y.jsx(Ql,{className:`ml-auto h-3 w-3 ${e==="agent"?"":"opacity-0"}`})]}),y.jsxs(Zs,{value:"background",className:"gap-1",disabled:s,children:[y.jsxs("div",{className:"flex flex-row items-center gap-1.5",children:[y.jsx(T3,{mode:"background"}),y.jsx("span",{className:"",children:"Background"}),y.jsx(Ln,{style:{zIndex:200001},content:"Background mode cannot be used with local agents.",children:y.jsx(Td,{className:"h-2.5 w-2.5 flex-shrink-0"})})]}),s&&y.jsx(mp,{className:"text-warning h-2.5 w-2.5"}),y.jsx(Ql,{className:`ml-auto h-3 w-3 ${e==="background"?"":"opacity-0"}`})]}),y.jsx("div",{className:"text-description-muted px-2 py-1",children:`${o} . for next mode`})]})]})})}const _4n=()=>{const t=vr(),e=He(d=>d.session.contextPercentage),n=He(d=>{var f;return(f=d.config.config.selectedModelByRole.chat)==null?void 0:f.model}),r=g.useRef(null),i=g.useRef(null),s=He(d=>d.session.history),a=Math.round((e??0)*100),o=He(d=>d.session.isPruned),l=g.useMemo(()=>n?r.current!==s.length?(r.current=s.length,i.current=n,!1):i.current!==n:!1,[s.length,n]),c=pNe();if(!o&&a<60||l)return null;const u=o?"bg-error":"bg-description";return y.jsx("div",{children:y.jsx(Ln,{closeEvents:{mouseleave:!0,click:!0,mouseup:!1},clickable:!0,content:y.jsxs("div",{className:"flex flex-col gap-0 text-left text-xs",children:[y.jsx("span",{className:"inline-block",children:`${a}% of context filled.`}),o&&y.jsx("span",{className:"inline-block",children:"Oldest messages are being removed."}),s.length>0&&y.jsx("div",{className:"flex flex-col gap-1 whitespace-pre",children:y.jsxs("div",{children:[y.jsx("span",{className:"hover:text-link inline-block cursor-pointer underline",onClick:()=>c(s.length-1),children:"Compact conversation"}),` +`,y.jsx("span",{className:"hover:text-link inline-block cursor-pointer underline",onClick:()=>{t(Qu({openNewSession:!0,generateTitle:!1}))},children:"Start a new session"})]})})]}),children:y.jsx("div",{className:"border-command-border relative h-[14px] w-[7px] rounded-[1px] border-[0.5px] border-solid md:h-[10px] md:w-[5px]",children:y.jsx("div",{className:`transition-height absolute bottom-0 left-0 w-full duration-300 ease-in-out ${u}`,style:{height:`${a}%`}})})})})};function k4n(t){var m,p,v,x;const e=vr(),n=g.useContext(qt),r=g.useRef(null),i=He(dc),s=He(xDe),a=He(w=>w.session.isInEdit),o=He(w=>w.editModeState.codeToEdit),l=He(w=>w.session.hasReasoningEnabled),c=t.disabled||a&&o.length===0,u=i&&o$(i.provider,i.model,i.title,i.capabilities),d=vZe(i),f=jf(-2),h=jf(-3);return y.jsx(y.Fragment,{children:y.jsxs("div",{onClick:t.onClick,className:`find-widget-skip bg-vsc-input-background flex select-none flex-row items-center justify-between gap-1 pt-1 ${t.hidden?"pointer-events-none h-0 cursor-default opacity-0":"pointer-events-auto mt-2 cursor-text opacity-100"}`,style:{fontSize:f},children:[y.jsxs("div",{className:"xs:gap-1.5 flex flex-row items-center gap-1",children:[!a&&y.jsx(Ln,{place:"top",content:"Select Mode",children:y.jsx(fl,{className:"!p-0",children:y.jsx(w4n,{})})}),y.jsx(Ln,{place:"top",content:"Select Model",children:y.jsx(fl,{className:"!p-0",children:y.jsx(x4n,{})})}),y.jsxs("div",{className:"xs:flex text-description -mb-1 hidden items-center transition-colors duration-200",children:[((m=t.toolbarOptions)==null?void 0:m.hideImageUpload)||u&&y.jsxs(y.Fragment,{children:[y.jsx("input",{type:"file",ref:r,style:{display:"none"},accept:".jpg,.jpeg,.png,.gif,.svg,.webp",onChange:w=>{var S,_;const E=((S=w.target)==null?void 0:S.files)??[];for(const C of E)(_=t.onImageFileSelected)==null||_.call(t,C);r.current&&(r.current.value="")}}),y.jsx(Ln,{place:"top",content:"Attach Image",children:y.jsx(fl,{className:"",children:y.jsx(Q6e,{className:"h-3 w-3 hover:brightness-125",onClick:w=>{var E;(E=r.current)==null||E.click()}})})})]}),((p=t.toolbarOptions)==null?void 0:p.hideAddContext)||y.jsx(Ln,{place:"top",content:"Attach Context",children:y.jsx(fl,{onClick:t.onAddContextItem,children:y.jsx(V$,{className:"h-3 w-3 hover:brightness-125"})})}),d&&y.jsx(fl,{onClick:()=>{e(mZe(!l)),i!=null&&i.title&&e(jSt({modelTitle:i.title,enabled:!l}))},children:y.jsx(Ln,{place:"top",content:l?"Disable model reasoning":"Enable model reasoning",children:l?y.jsx($wt,{className:"h-3 w-3 brightness-200 hover:brightness-150"}):y.jsx(Z6e,{className:"h-3 w-3 hover:brightness-150"})})})]})]}),y.jsxs("div",{className:"text-description flex items-center gap-2 whitespace-nowrap",style:{fontSize:h},children:[!a&&y.jsx(_4n,{}),!((v=t.toolbarOptions)!=null&&v.hideUseCodebase)&&!a&&y.jsx("div",{className:"hidden transition-colors duration-200 hover:underline md:flex",children:y.jsx(fl,{className:t.activeKey==="Meta"||t.activeKey==="Control"||t.activeKey==="Alt"?"underline":"",onClick:w=>{var E;return(E=t.onEnter)==null?void 0:E.call(t,{useCodebase:!1,noContext:!s})},children:y.jsx(Ln,{place:"top-end",content:`${s?"Send Without Active File":"Send With Active File"} (${Ho()}⏎)`,children:y.jsxs("span",{children:[Ho(),"⏎"," ",s?"No active file":"Active file"]})})})}),a&&y.jsx(fl,{className:"hidden hover:underline sm:flex",onClick:async()=>{e(Of({})),n.post("focusEditor",void 0)},children:y.jsxs("span",{children:[y.jsx("i",{children:"Esc"})," to exit Edit"]})}),y.jsx(Ln,{place:"top",content:"Send (⏎)",children:y.jsxs(ai,{variant:t.isMainInput?"primary":"secondary",size:"sm","data-testid":"submit-input-button",onClick:async w=>{t.onEnter&&t.onEnter({useCodebase:!1,noContext:s?mg(w)||w.altKey:!(mg(w)||w.altKey)})},disabled:c,children:[y.jsxs("span",{className:"hidden md:inline",children:["⏎ ",((x=t.toolbarOptions)==null?void 0:x.enterText)??"Enter"]}),y.jsx("span",{className:"md:hidden",children:"⏎"})]})})]})]})})}function S4n(t,e){return t===e?!0:!t||!e?!1:t.hideAddContext===e.hideAddContext&&t.hideImageUpload===e.hideImageUpload&&t.hideUseCodebase===e.hideUseCodebase&&t.hideSelectModel===e.hideSelectModel&&t.enterText===e.enterText}const C4n=g.memo(k4n,(t,e)=>t.hidden===e.hidden&&t.disabled===e.disabled&&t.isMainInput===e.isMainInput&&t.activeKey===e.activeKey&&S4n(t.toolbarOptions,e.toolbarOptions)),E4n=Dn.div` + resize: none; + font-family: inherit; + border-radius: 0.5rem; + padding-bottom: 1px; + margin: 0; + height: auto; + background-color: ${Ib}; + color: ${fs}; + + border: 1px solid ${iZ}; + transition: border-color 0.15s ease-in-out; + &:focus-within { + border: 1px solid ${rst}; + } + + outline: none; + font-size: ${la()}px; + + &:focus { + outline: none; + + border: 0.5px solid ${nst}; + } + + &::placeholder { + color: ${gs}cc; + } + + display: flex; + flex-direction: column; +`,$4n=Dn.div` + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + opacity: 0.5; + background-color: ${rZ}; + color: ${fs}; + display: flex; + align-items: center; + justify-content: center; +`,T4n=Dn.div` + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + color: ${fs}; + display: flex; + align-items: center; + justify-content: center; +`,I4n=({show:t,setShow:e})=>(g.useEffect(()=>{const n=i=>{i.shiftKey||e(!0)};window.addEventListener("dragover",n);const r=i=>{i.shiftKey?e(!1):setTimeout(()=>e(!1),2e3)};return window.addEventListener("dragleave",r),()=>{window.removeEventListener("dragover",n),window.removeEventListener("dragleave",r)}},[]),t?y.jsxs(y.Fragment,{children:[y.jsx($4n,{}),y.jsx(T4n,{children:"Hold ⇧ to drop image"})]}):null),A4n=Am.create({name:"doc",topNode:!0,content:"block+"});var l$=200,Qa=function(){};Qa.prototype.append=function(e){return e.length?(e=Qa.from(e),!this.length&&e||e.length=n?Qa.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};Qa.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};Qa.prototype.forEach=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length),n<=r?this.forEachInner(e,n,r,0):this.forEachInvertedInner(e,n,r,0)};Qa.prototype.map=function(e,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,a){return i.push(e(s,a))},n,r),i};Qa.from=function(e){return e instanceof Qa?e:e&&e.length?new bZe(e):Qa.empty};var bZe=(function(t){function e(r){t.call(this),this.values=r}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,a,o){for(var l=s;l=a;l--)if(i(this.values[l],o+l)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=l$)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=l$)return new e(i.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e})(Qa);Qa.empty=new bZe([]);var O4n=(function(t){function e(n,r){t.call(this),this.left=n,this.right=r,this.length=n.length+r.length,this.depth=Math.max(n.depth,r.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return ro&&this.right.forEachInner(r,Math.max(i-o,0),Math.min(this.length,s)-o,a+o)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,a){var o=this.left.length;if(i>o&&this.right.forEachInvertedInner(r,i-o,Math.max(s,o)-o,a+o)===!1||s=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e})(Qa);const D4n=500;class $d{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;n&&(i=this.remapping(r,this.items.length),s=i.maps.length);let a=e.tr,o,l,c=[],u=[];return this.items.forEach((d,f)=>{if(!d.step){i||(i=this.remapping(r,f+1),s=i.maps.length),s--,u.push(d);return}if(i){u.push(new lf(d.map));let h=d.step.map(i.slice(s)),m;h&&a.maybeStep(h).doc&&(m=a.mapping.maps[a.mapping.maps.length-1],c.push(new lf(m,void 0,void 0,c.length+u.length))),s--,m&&i.appendMap(m,s)}else a.maybeStep(d.step);if(d.selection)return o=i?d.selection.map(i.slice(s)):d.selection,l=new $d(this.items.slice(0,r).append(u.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:l,transform:a,selection:o}}addTransform(e,n,r,i){let s=[],a=this.eventCount,o=this.items,l=!i&&o.length?o.get(o.length-1):null;for(let u=0;uN4n&&(o=M4n(o,c),a-=c),new $d(o.append(s),a)}remapping(e,n){let r=new Gx;return this.items.forEach((i,s)=>{let a=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,a)},e,n),r}addMaps(e){return this.eventCount==0?this:new $d(this.items.append(e.map(n=>new lf(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),s=e.mapping,a=e.steps.length,o=this.eventCount;this.items.forEach(f=>{f.selection&&o--},i);let l=n;this.items.forEach(f=>{let h=s.getMirror(--l);if(h==null)return;a=Math.min(a,h);let m=s.maps[h];if(f.step){let p=e.steps[h].invert(e.docs[h]),v=f.selection&&f.selection.map(s.slice(l+1,h));v&&o++,r.push(new lf(m,p,v))}else r.push(new lf(m))},i);let c=[];for(let f=n;fD4n&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),r=n.maps.length,i=[],s=0;return this.items.forEach((a,o)=>{if(o>=e)i.push(a),a.selection&&s++;else if(a.step){let l=a.step.map(n.slice(r)),c=l&&l.getMap();if(r--,c&&n.appendMap(c,r),l){let u=a.selection&&a.selection.map(n.slice(r));u&&s++;let d=new lf(c.invert(),l,u),f,h=i.length-1;(f=i.length&&i[h].merge(d))?i[h]=f:i.push(d)}}else a.map&&r--},this.items.length,0),new $d(Qa.from(i.reverse()),s)}}$d.empty=new $d(Qa.empty,0);function M4n(t,e){let n;return t.forEach((r,i)=>{if(r.selection&&e--==0)return n=i,!1}),t.slice(n)}class lf{constructor(e,n,r,i){this.map=e,this.step=n,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new lf(n.getMap().invert(),n,this.selection)}}}class h0{constructor(e,n,r,i,s){this.done=e,this.undone=n,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}}const N4n=20;function R4n(t,e,n,r){let i=n.getMeta(fg),s;if(i)return i.historyState;n.getMeta(j4n)&&(t=new h0(t.done,t.undone,null,0,-1));let a=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(a&&a.getMeta(fg))return a.getMeta(fg).redo?new h0(t.done.addTransform(n,void 0,r,g9(e)),t.undone,u2e(n.mapping.maps),t.prevTime,t.prevComposition):new h0(t.done,t.undone.addTransform(n,void 0,r,g9(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(a&&a.getMeta("addToHistory")===!1)){let o=n.getMeta("composition"),l=t.prevTime==0||!a&&t.prevComposition!=o&&(t.prevTime<(n.time||0)-r.newGroupDelay||!L4n(n,t.prevRanges)),c=a?qj(t.prevRanges,n.mapping):u2e(n.mapping.maps);return new h0(t.done.addTransform(n,l?e.selection.getBookmark():void 0,r,g9(e)),$d.empty,c,n.time,o??t.prevComposition)}else return(s=n.getMeta("rebased"))?new h0(t.done.rebased(n,s),t.undone.rebased(n,s),qj(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new h0(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),qj(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function L4n(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((r,i)=>{for(let s=0;s=e[s]&&(n=!0)}),n}function u2e(t){let e=[];for(let n=t.length-1;n>=0&&e.length==0;n--)t[n].forEach((r,i,s,a)=>e.push(s,a));return e}function qj(t,e){if(!t)return null;let n=[];for(let r=0;r{let i=fg.getState(n);if(!i||(t?i.undone:i.done).eventCount==0)return!1;if(r){let s=P4n(i,n,t);s&&r(e?s.scrollIntoView():s)}return!0}}const wZe=xZe(!1,!0),_Ze=xZe(!0,!0),F4n=Vc.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:t,dispatch:e})=>wZe(t,e),redo:()=>({state:t,dispatch:e})=>_Ze(t,e)}},addProseMirrorPlugins(){return[z4n(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),B4n=Vc.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new kl({key:new Jc("placeholder"),props:{decorations:({doc:t,selection:e})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=e,i=[];if(!n)return null;const s=this.editor.isEmpty;return t.descendants((a,o)=>{const l=r>=o&&r<=o+a.nodeSize,c=!a.isLeaf&&xT(a);if((l||!this.options.showOnlyCurrent)&&c){const u=[this.options.emptyNodeClass];s&&u.push(this.options.emptyEditorClass);const d=tc.node(o,o+a.nodeSize,{class:u.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:a,pos:o,hasAnchor:l}):this.options.placeholder});i.push(d)}return this.options.includeChildren}),Vs.create(t,i)}}})]}}),U4n="ENTRIES",kZe="KEYS",SZe="VALUES",ho="";class Wj{constructor(e,n){const r=e._tree,i=Array.from(r.keys());this.set=e,this._type=n,this._path=i.length>0?[{node:r,keys:i}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:n}=uv(this._path);if(uv(n)===ho)return{done:!1,value:this.result()};const r=e.get(uv(n));return this._path.push({node:r,keys:Array.from(r.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=uv(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>uv(e)).filter(e=>e!==ho).join("")}value(){return uv(this._path).node.get(ho)}result(){switch(this._type){case SZe:return this.value();case kZe:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const uv=t=>t[t.length-1],q4n=(t,e,n)=>{const r=new Map;if(e===void 0)return r;const i=e.length+1,s=i+n,a=new Uint8Array(s*i).fill(n+1);for(let o=0;o{const l=s*a;e:for(const c of t.keys())if(c===ho){const u=i[l-1];u<=n&&r.set(o,[t.get(c),u])}else{let u=s;for(let d=0;dn)continue e}CZe(t.get(c),e,n,r,i,u,a,o+c)}};class $0{constructor(e=new Map,n=""){this._size=void 0,this._tree=e,this._prefix=n}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[n,r]=c$(this._tree,e.slice(this._prefix.length));if(n===void 0){const[i,s]=nne(r);for(const a of i.keys())if(a!==ho&&a.startsWith(s)){const o=new Map;return o.set(a.slice(s.length),i.get(a)),new $0(o,e)}}return new $0(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,H4n(this._tree,e)}entries(){return new Wj(this,U4n)}forEach(e){for(const[n,r]of this)e(n,r,this)}fuzzyGet(e,n){return q4n(this._tree,e,n)}get(e){const n=MV(this._tree,e);return n!==void 0?n.get(ho):void 0}has(e){const n=MV(this._tree,e);return n!==void 0&&n.has(ho)}keys(){return new Wj(this,kZe)}set(e,n){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,Vj(this._tree,e).set(ho,n),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,n){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const r=Vj(this._tree,e);return r.set(ho,n(r.get(ho))),this}fetch(e,n){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const r=Vj(this._tree,e);let i=r.get(ho);return i===void 0&&r.set(ho,i=n()),i}values(){return new Wj(this,SZe)}[Symbol.iterator](){return this.entries()}static from(e){const n=new $0;for(const[r,i]of e)n.set(r,i);return n}static fromObject(e){return $0.from(Object.entries(e))}}const c$=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const r of t.keys())if(r!==ho&&e.startsWith(r))return n.push([t,r]),c$(t.get(r),e.slice(r.length),n);return n.push([t,e]),c$(void 0,"",n)},MV=(t,e)=>{if(e.length===0||t==null)return t;for(const n of t.keys())if(n!==ho&&e.startsWith(n))return MV(t.get(n),e.slice(n.length))},Vj=(t,e)=>{const n=e.length;e:for(let r=0;t&&r{const[n,r]=c$(t,e);if(n!==void 0){if(n.delete(ho),n.size===0)EZe(r);else if(n.size===1){const[i,s]=n.entries().next().value;$Ze(r,i,s)}}},EZe=t=>{if(t.length===0)return;const[e,n]=nne(t);if(e.delete(n),e.size===0)EZe(t.slice(0,-1));else if(e.size===1){const[r,i]=e.entries().next().value;r!==ho&&$Ze(t.slice(0,-1),r,i)}},$Ze=(t,e,n)=>{if(t.length===0)return;const[r,i]=nne(t);r.set(i+e,n),r.delete(i)},nne=t=>t[t.length-1],rne="or",TZe="and",W4n="and_not";class F0{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const n=e.autoVacuum==null||e.autoVacuum===!0?Kj:e.autoVacuum;this._options={...Gj,...e,autoVacuum:n,searchOptions:{...f2e,...e.searchOptions||{}},autoSuggestOptions:{...Y4n,...e.autoSuggestOptions||{}}},this._index=new $0,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=RV,this.addFields(this._options.fields)}add(e){const{extractField:n,tokenize:r,processTerm:i,fields:s,idField:a}=this._options,o=n(e,a);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${a}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const l=this.addDocumentId(o);this.saveStoredFields(l,e);for(const c of s){const u=n(e,c);if(u==null)continue;const d=r(u.toString(),c),f=this._fieldIds[c],h=new Set(d).size;this.addFieldLength(l,f,this._documentCount-1,h);for(const m of d){const p=i(m,c);if(Array.isArray(p))for(const v of p)this.addTerm(f,l,v);else p&&this.addTerm(f,l,p)}}}addAll(e){for(const n of e)this.add(n)}addAllAsync(e,n={}){const{chunkSize:r=10}=n,i={chunk:[],promise:Promise.resolve()},{chunk:s,promise:a}=e.reduce(({chunk:o,promise:l},c,u)=>(o.push(c),(u+1)%r===0?{chunk:[],promise:l.then(()=>new Promise(d=>setTimeout(d,0))).then(()=>this.addAll(o))}:{chunk:o,promise:l}),i);return a.then(()=>this.addAll(s))}remove(e){const{tokenize:n,processTerm:r,extractField:i,fields:s,idField:a}=this._options,o=i(e,a);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${a}"`);const l=this._idToShortId.get(o);if(l==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const c of s){const u=i(e,c);if(u==null)continue;const d=n(u.toString(),c),f=this._fieldIds[c],h=new Set(d).size;this.removeFieldLength(l,f,this._documentCount,h);for(const m of d){const p=r(m,c);if(Array.isArray(p))for(const v of p)this.removeTerm(f,l,v);else p&&this.removeTerm(f,l,p)}}this._storedFields.delete(l),this._documentIds.delete(l),this._idToShortId.delete(o),this._fieldLength.delete(l),this._documentCount-=1}removeAll(e){if(e)for(const n of e)this.remove(n);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new $0,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const n=this._idToShortId.get(e);if(n==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(n),this._storedFields.delete(n),(this._fieldLength.get(n)||[]).forEach((r,i)=>{this.removeFieldLength(n,i,this._documentCount,r)}),this._fieldLength.delete(n),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:r,batchWait:i}=this._options.autoVacuum;this.conditionalVacuum({batchSize:r,batchWait:i},{minDirtCount:n,minDirtFactor:e})}discardAll(e){const n=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const r of e)this.discard(r)}finally{this._options.autoVacuum=n}this.maybeAutoVacuum()}replace(e){const{idField:n,extractField:r}=this._options,i=r(e,n);this.discard(i),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,n){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&n,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const r=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=RV,this.performVacuuming(e,r)}),this._enqueuedVacuum)):this.vacuumConditionsMet(n)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}async performVacuuming(e,n){const r=this._dirtCount;if(this.vacuumConditionsMet(n)){const i=e.batchSize||NV.batchSize,s=e.batchWait||NV.batchWait;let a=1;for(const[o,l]of this._index){for(const[c,u]of l)for(const[d]of u)this._documentIds.has(d)||(u.size<=1?l.delete(c):u.delete(d));this._index.get(o).size===0&&this._index.delete(o),a%i===0&&await new Promise(c=>setTimeout(c,s)),a+=1}this._dirtCount-=r}await null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:n,minDirtFactor:r}=e;return n=n||Kj.minDirtCount,r=r||Kj.minDirtFactor,this.dirtCount>=n&&this.dirtFactor>=r}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const n=this._idToShortId.get(e);if(n!=null)return this._storedFields.get(n)}search(e,n={}){const{searchOptions:r}=this._options,i={...r,...n},s=this.executeQuery(e,n),a=[];for(const[o,{score:l,terms:c,match:u}]of s){const d=c.length||1,f={id:this._documentIds.get(o),score:l*d,terms:Object.keys(u),queryTerms:c,match:u};Object.assign(f,this._storedFields.get(o)),(i.filter==null||i.filter(f))&&a.push(f)}return e===F0.wildcard&&i.boostDocument==null||a.sort(p2e),a}autoSuggest(e,n={}){n={...this._options.autoSuggestOptions,...n};const r=new Map;for(const{score:s,terms:a}of this.search(e,n)){const o=a.join(" "),l=r.get(o);l!=null?(l.score+=s,l.count+=1):r.set(o,{score:s,terms:a,count:1})}const i=[];for(const[s,{score:a,terms:o,count:l}]of r)i.push({suggestion:s,terms:o,score:a/l});return i.sort(p2e),i}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,n){if(n==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),n)}static async loadJSONAsync(e,n){if(n==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),n)}static getDefault(e){if(Gj.hasOwnProperty(e))return Zj(Gj,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,n){const{index:r,documentIds:i,fieldLength:s,storedFields:a,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,n);l._documentIds=c8(i),l._fieldLength=c8(s),l._storedFields=c8(a);for(const[c,u]of l._documentIds)l._idToShortId.set(u,c);for(const[c,u]of r){const d=new Map;for(const f of Object.keys(u)){let h=u[f];o===1&&(h=h.ds),d.set(parseInt(f,10),c8(h))}l._index.set(c,d)}return l}static async loadJSAsync(e,n){const{index:r,documentIds:i,fieldLength:s,storedFields:a,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,n);l._documentIds=await u8(i),l._fieldLength=await u8(s),l._storedFields=await u8(a);for(const[u,d]of l._documentIds)l._idToShortId.set(d,u);let c=0;for(const[u,d]of r){const f=new Map;for(const h of Object.keys(d)){let m=d[h];o===1&&(m=m.ds),f.set(parseInt(h,10),await u8(m))}++c%1e3===0&&await IZe(0),l._index.set(u,f)}return l}static instantiateMiniSearch(e,n){const{documentCount:r,nextId:i,fieldIds:s,averageFieldLength:a,dirtCount:o,serializationVersion:l}=e;if(l!==1&&l!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const c=new F0(n);return c._documentCount=r,c._nextId=i,c._idToShortId=new Map,c._fieldIds=s,c._avgFieldLength=a,c._dirtCount=o||0,c._index=new $0,c}executeQuery(e,n={}){if(e===F0.wildcard)return this.executeWildcardQuery(n);if(typeof e!="string"){const f={...n,...e,queries:void 0},h=e.queries.map(m=>this.executeQuery(m,f));return this.combineResults(h,f.combineWith)}const{tokenize:r,processTerm:i,searchOptions:s}=this._options,a={tokenize:r,processTerm:i,...s,...n},{tokenize:o,processTerm:l}=a,d=o(e).flatMap(f=>l(f)).filter(f=>!!f).map(K4n(a)).map(f=>this.executeQuerySpec(f,a));return this.combineResults(d,a.combineWith)}executeQuerySpec(e,n){const r={...this._options.searchOptions,...n},i=(r.fields||this._options.fields).reduce((p,v)=>({...p,[v]:Zj(r.boost,v)||1}),{}),{boostDocument:s,weights:a,maxFuzzy:o,bm25:l}=r,{fuzzy:c,prefix:u}={...f2e.weights,...a},d=this._index.get(e.term),f=this.termResults(e.term,e.term,1,e.termBoost,d,i,s,l);let h,m;if(e.prefix&&(h=this._index.atPrefix(e.term)),e.fuzzy){const p=e.fuzzy===!0?.2:e.fuzzy,v=p<1?Math.min(o,Math.round(e.term.length*p)):p;v&&(m=this._index.fuzzyGet(e.term,v))}if(h)for(const[p,v]of h){const x=p.length-e.term.length;if(!x)continue;m==null||m.delete(p);const w=u*p.length/(p.length+.3*x);this.termResults(e.term,p,w,e.termBoost,v,i,s,l,f)}if(m)for(const p of m.keys()){const[v,x]=m.get(p);if(!x)continue;const w=c*p.length/(p.length+x);this.termResults(e.term,p,w,e.termBoost,v,i,s,l,f)}return f}executeWildcardQuery(e){const n=new Map,r={...this._options.searchOptions,...e};for(const[i,s]of this._documentIds){const a=r.boostDocument?r.boostDocument(s,"",this._storedFields.get(i)):1;n.set(i,{score:a,terms:[],match:{}})}return n}combineResults(e,n=rne){if(e.length===0)return new Map;const r=n.toLowerCase(),i=V4n[r];if(!i)throw new Error(`Invalid combination operator: ${n}`);return e.reduce(i)||new Map}toJSON(){const e=[];for(const[n,r]of this._index){const i={};for(const[s,a]of r)i[s]=Object.fromEntries(a);e.push([n,i])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,n,r,i,s,a,o,l,c=new Map){if(s==null)return c;for(const u of Object.keys(a)){const d=a[u],f=this._fieldIds[u],h=s.get(f);if(h==null)continue;let m=h.size;const p=this._avgFieldLength[f];for(const v of h.keys()){if(!this._documentIds.has(v)){this.removeTerm(f,v,n),m-=1;continue}const x=o?o(this._documentIds.get(v),n,this._storedFields.get(v)):1;if(!x)continue;const w=h.get(v),E=this._fieldLength.get(v)[f],S=G4n(w,m,this._documentCount,E,p,l),_=r*i*d*x*S,C=c.get(v);if(C){C.score+=_,J4n(C.terms,e);const T=Zj(C.match,n);T?T.push(u):C.match[n]=[u]}else c.set(v,{score:_,terms:[e],match:{[n]:[u]}})}}return c}addTerm(e,n,r){const i=this._index.fetch(r,m2e);let s=i.get(e);if(s==null)s=new Map,s.set(n,1),i.set(e,s);else{const a=s.get(n);s.set(n,(a||0)+1)}}removeTerm(e,n,r){if(!this._index.has(r)){this.warnDocumentChanged(n,e,r);return}const i=this._index.fetch(r,m2e),s=i.get(e);s==null||s.get(n)==null?this.warnDocumentChanged(n,e,r):s.get(n)<=1?s.size<=1?i.delete(e):s.delete(n):s.set(n,s.get(n)-1),this._index.get(r).size===0&&this._index.delete(r)}warnDocumentChanged(e,n,r){for(const i of Object.keys(this._fieldIds))if(this._fieldIds[i]===n){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${r}" was not present in field "${i}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const n=this._nextId;return this._idToShortId.set(e,n),this._documentIds.set(n,e),this._documentCount+=1,this._nextId+=1,n}addFields(e){for(let n=0;nObject.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,V4n={[rne]:(t,e)=>{for(const n of e.keys()){const r=t.get(n);if(r==null)t.set(n,e.get(n));else{const{score:i,terms:s,match:a}=e.get(n);r.score=r.score+i,r.match=Object.assign(r.match,a),h2e(r.terms,s)}}return t},[TZe]:(t,e)=>{const n=new Map;for(const r of e.keys()){const i=t.get(r);if(i==null)continue;const{score:s,terms:a,match:o}=e.get(r);h2e(i.terms,a),n.set(r,{score:i.score+s,terms:i.terms,match:Object.assign(i.match,o)})}return n},[W4n]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},Z4n={k:1.2,b:.7,d:.5},G4n=(t,e,n,r,i,s)=>{const{k:a,b:o,d:l}=s;return Math.log(1+(n-e+.5)/(e+.5))*(l+t*(a+1)/(t+a*(1-o+o*r/i)))},K4n=t=>(e,n,r)=>{const i=typeof t.fuzzy=="function"?t.fuzzy(e,n,r):t.fuzzy||!1,s=typeof t.prefix=="function"?t.prefix(e,n,r):t.prefix===!0,a=typeof t.boostTerm=="function"?t.boostTerm(e,n,r):1;return{term:e,fuzzy:i,prefix:s,termBoost:a}},Gj={idField:"id",extractField:(t,e)=>t[e],tokenize:t=>t.split(X4n),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{typeof(console==null?void 0:console[t])=="function"&&console[t](e)},autoVacuum:!0},f2e={combineWith:rne,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Z4n},Y4n={combineWith:TZe,prefix:(t,e,n)=>e===n.length-1},NV={batchSize:1e3,batchWait:10},RV={minDirtFactor:.1,minDirtCount:20},Kj={...NV,...RV},J4n=(t,e)=>{t.includes(e)||t.push(e)},h2e=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},p2e=({score:t},{score:e})=>e-t,m2e=()=>new Map,c8=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},u8=async t=>{const e=new Map;let n=0;for(const r of Object.keys(t))e.set(parseInt(r,10),t[r]),++n%1e3===0&&await IZe(0);return e},IZe=t=>new Promise(e=>setTimeout(e,t)),X4n=/[\n\r\p{Z}\p{P}]+/u,g2e={prefix:!0,fuzzy:2},Q4n=70,exn={getSubmenuContextItems:()=>[]},AZe=g.createContext(exn);function txn(t,e){return t.split(/[^a-zA-Z0-9]+/).some(r=>r===e)}function nxn(t){const e=[".ts",".tsx",".js",".jsx",".py",".java",".cpp",".c",".h",".vue",".svelte"],n=["index","main","app","component","service","util","helper","config","types"],r=t.substring(t.lastIndexOf(".")),i=t.substring(0,t.lastIndexOf(".")).toLowerCase();return e.includes(r)||n.includes(i)}function rxn(t){return["src/","lib/","components/","utils/","helpers/","services/","pages/","views/","hooks/","store/","types/","interfaces/","models/","api/"].some(n=>t.includes(n))}function ixn(t,e){var i;const n=((i=t.match(/[A-Z]/g))==null?void 0:i.join("").toLowerCase())||"";if(n.length>0&&n.includes(e))return!0;const r=t.split(/[^a-zA-Z0-9]+/).filter(s=>s.length>0);return r.length>1?r.map(a=>a[0]).join("").toLowerCase().includes(e):!1}const sxn=({children:t})=>{const e=g.useContext(qt),n=He(grn),r=g.useRef(n),i=He(v=>v.config.config.disableIndexing),[s,a]=g.useState({}),[o,l]=g.useState({}),c=g.useRef([]);g.useEffect(()=>{function v(S,_){const C=new Set(S.map(M=>M.id)),T=new Set(_.map(M=>M.id));if(C.size!==T.size)return!0;for(const M of C)if(!T.has(M))return!0;for(const M of T)if(!C.has(M))return!0;return!1}let x=!0;const w=async()=>{if(!x)return;const S=await e.ide.getOpenFiles(),_=await e.ide.getWorkspaceDirs(),T=ZSt(S,_).map(M=>({id:M.uri,title:qu(M.uri),description:M.uniquePath,providerTitle:"file"}));v(T,c.current)&&l(M=>({...M,file:aS([...T,...M.file??[]],(A,$)=>A.id===$.id)})),c.current=T},E=setInterval(w,2e3);return w(),()=>{x=!1,clearInterval(E)}},[e]);const u=g.useRef(new Set).current,d=g.useRef(new Map).current,f=g.useCallback((v,x,w)=>{const E=v.title.toLowerCase(),S=v.description.toLowerCase(),_=x.toLowerCase();return E===_?1:w.some(C=>C.id===v.id)?2:E.startsWith(_)?3:txn(E,_)?4:nxn(E)?5:rxn(S)?6:ixn(E,_)?7:S.startsWith(_)?8:9},[]),h=g.useCallback((v,x)=>{const w=v.title.toLowerCase(),E=x.toLowerCase();let S=0;return w===E&&(S+=100),w.startsWith(E)&&(S+=50),w.includes(E)&&(S+=25),S+=Math.max(0,50-w.length),(w.endsWith(".ts")||w.endsWith(".tsx")||w.endsWith(".js")||w.endsWith(".jsx"))&&(S+=10),S},[]),m=g.useCallback((v,x,w=Q4n)=>{try{let E=[];if(v===void 0?E=Object.keys(s).flatMap(_=>s[_].search(x,g2e).map(C=>({...C,providerTitle:_,title:C.title,description:C.description}))):s[v]&&(E=s[v].search(x,g2e).map(_=>({..._,providerTitle:v,title:_.title,description:_.description}))),v==="file"||!v&&E.some(_=>_.providerTitle==="file")){const _=E.map(C=>({...C,id:C.id,title:C.title,description:C.description,providerTitle:C.providerTitle,sortPriority:f(C,x,c.current),matchQuality:h(C,x)}));_.sort((C,T)=>C.sortPriority!==T.sortPriority?C.sortPriority-T.sortPriority:C.matchQuality!==T.matchQuality?T.matchQuality-C.matchQuality:C.score!==T.score?T.score-C.score:C.description.length-T.description.length),E=_}else E.sort((_,C)=>C.score-_.score);if(E.length===0){const _=(v?o[v]??[]:[]).slice(0,w).map(C=>({...C,providerTitle:v||"unknown"}));if(_.length===0){const C=[{id:"loading",title:"Loading...",description:"Please wait while items are being loaded",providerTitle:v||"unknown"}];if(v){if(u.has(v))return C}else if(u.size>0)return C}return _}return E.slice(0,w).map(_=>({id:_.id,title:_.title,description:_.description,providerTitle:_.providerTitle}))}catch(E){return console.error("Error in getSubmenuContextItems:",E),[]}},[o,s,f,h]),p=g.useCallback(async v=>{await Promise.allSettled(n.map(async x=>{var E,S;const w=new AbortController;try{if(!(v==="all"?!0:v==="dependsOnIndexing"?x.dependsOnIndexing&&((E=x.dependsOnIndexing)==null?void 0:E.length)>0:v.includes(x.title))){v==="dependsOnIndexing"&&console.debug(`Skipping ${x.title} provider due to disabled indexing`);return}(S=d.get(x.title))==null||S.abort(),d.set(x.title,w),u.add(x.title);const C=await e.request("context/loadSubmenuItems",{title:x.title});if(C.status==="error")throw new Error(C.error);const T=C.content,M=x.title,A=x.renderInlineAs,$=T.map(N=>({...N,providerTitle:M,renderInlineAs:A})),O=new F0({fields:["title","description"],storeFields:["id","title","description","providerTitle"],tokenize:N=>aS(F0.getDefault("tokenize")(N).concat(dAt(N)),(R,q)=>R===q)}),D=aS(T.map(N=>({...N,providerTitle:M})),(N,R)=>N.id===R.id);O.addAll(D),a(N=>({...N,[M]:O})),l(M==="file"?N=>({...N,file:aS([...c.current,...$],(R,q)=>R.id===q.id)}):N=>({...N,[M]:$}))}catch(_){console.error(`Error loading items for ${x.title}:`,_),console.error("Error details:",JSON.stringify(_,Object.getOwnPropertyNames(_)))}finally{w.signal.aborted||u.delete(x.title)}}))},[n,i,u,d]);return Er("refreshSubmenuItems",async v=>{p(v.providers)},[p]),g.useEffect(()=>{if(!n.length)return;const v=n.filter(x=>!r.current.find(w=>w.title===x.title)).map(x=>x.title);v.length>0&&p(v),r.current=n},[p,n]),y.jsx(AZe.Provider,{value:{getSubmenuContextItems:m},children:t})},axn=()=>g.useContext(AZe),v2e=()=>({type:"doc",content:[{type:"paragraph",content:[{type:"text",text:""}]}]}),d8=100;function oxn(t){var h;const[e,n]=g.useState(((h=to(`inputHistory_${t}`))==null?void 0:h.slice(-d8))??[]),[r,i]=g.useState(v2e()),[s,a]=g.useState(e.length);function o(m){let p=s;if(p===e.length&&i(m),p>0&&p<=e.length)return a(v=>v-1),e[p-1]}function l(){let m=s;if(m>=0&&mp+1),m===e.length-1?r:e[m+1]}function c(m){if(i(v2e()),JSON.stringify(e[e.length-1])===JSON.stringify(m)){a(e.length);return}a(Math.min(e.length+1,d8)),n(p=>[...p,m].slice(-d8)),jd(`inputHistory_${t}`,[...e,m].slice(-d8))}const u=Ac(o,[e]),d=Ac(l,[e]),f=Ac(c,[e]);return{prevRef:u,nextRef:d,addRef:f}}function OZe(t,e=i=>{},n=()=>{},r=()=>{}){return{items:t,allowSpaces:!0,render:()=>{let i,s;const a=()=>{var o;(o=s==null?void 0:s[0])==null||o.destroy(),i==null||i.destroy(),n()};return{onStart:o=>{if(i=new m8e($rn,{props:{...o,enterSubmenu:e,onClose:a},editor:o.editor}),!o.clientRect){console.log("no client rect");return}const l=document.getElementById(MZe);if(!l){console.log("no container");return}s=Z6("body",{getReferenceClientRect:o.clientRect,appendTo:()=>l,content:i.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start",maxWidth:`${window.innerWidth-24}px`}),r()},onUpdate(o){i.updateProps({...o,enterSubmenu:e}),o.clientRect&&s[0].setProps({getReferenceClientRect:o.clientRect})},onKeyDown(o){var l;return o.event.key==="Escape"?(s[0].hide(),!0):(l=i.ref)==null?void 0:l.onKeyDown(o)},onExit:a}}}}function lxn(t,e){if(t.providerTitle==="docs")return[{label:"Open in new tab",icon:"trash",action:()=>{e.post("context/removeDocs",{startUrl:t.id})}}]}function cxn(t,e,n,r,i,s,a){return OZe(async({query:l})=>{var d;if(s.current)return e.current(s.current,l).map(h=>({...h,label:h.title,type:s.current,query:h.id,subActions:lxn(h,a)}));const c=((d=t.current)==null?void 0:d.filter(f=>f.title.toLowerCase().startsWith(l.toLowerCase())||f.displayTitle.toLowerCase().startsWith(l.toLowerCase())).map(f=>({name:f.displayTitle,description:f.description,id:f.title,title:f.displayTitle,label:f.displayTitle,renderInlineAs:f.renderInlineAs,type:"contextProvider",contextProvider:f})).sort((f,h)=>f.id==="file"?-1:1))||[];return c.length?(c.push({title:"Add more context providers",type:"action",action:()=>{a.post("openUrl","https://docs.continue.dev/customization/context-providers#built-in-context-providers")},description:""}),c):e.current(void 0,l).map(f=>({...f,label:f.title,type:f.providerTitle,query:f.id,icon:f.icon}))},n,r,i)}function uxn(t,e,n,r,i,s){return OZe(async({query:o})=>{const l=[...t.current],u=((o.length>0?l.filter(d=>{const f=d.title.toLowerCase(),h=o.toLowerCase();return f.startsWith(h)}):l)||[]).map(d=>({name:d.title,description:d.description,id:d.title,title:d.title,label:d.title,type:d.type??iZe.name,content:d.content,action:d.action}));return o.length===0&&u.length===0&&u.push({title:"Create a prompt",type:"action",action:()=>r.request("config/addLocalWorkspaceBlock",{blockType:"prompts"}),description:"",name:"",id:"",label:"",content:""}),u},void 0,e,n)}const y2e=1024;function dxn(t,e){const n=y2e,r=y2e,i=Math.min(n/e.width,r/e.height),s=document.createElement("canvas");s.width=e.width*i,s.height=e.height*i;const a=s.getContext("2d");if(!a){console.error("Error getting image data url: 2d context not found");return}return a.drawImage(e,0,0,s.width,s.height),s.toDataURL("image/jpeg",.7)}async function LV(t,e){let n=e.size/1024/1024;if(["image/jpeg","image/jpg","image/png","image/gif","image/svg","image/webp"].includes(e.type)&&n<10){let r=window.URL||window.webkitURL,i=new window.Image;return i.src=r.createObjectURL(e),await new Promise(s=>{i.onload=function(){const a=dxn(e,i);if(!a)return;let o=new window.Image;o.src=a,o.onload=function(){s([o,a])}}})}else t.post("showToast",["error","Images need to be in jpg or png format and less than 10MB in size."])}function DZe(t,e){return t||(e===0?"Ask anything, '@' to add context":"Ask a follow-up")}function fxn(t){var r,i;const e=(r=t.content)==null?void 0:r.some(s=>s.type===xO.name||s.type===zg.name);return((i=t.content)==null?void 0:i.some(s=>{var a;return(a=s.content)==null?void 0:a.some(o=>o.type==="text"&&o.text?o.text.trim().length>0:o.type==="mention")}))||e||!1}function hxn(t){const{props:e,ideMessenger:n,dispatch:r}=t,i=s2(),{getSubmenuContextItems:s}=axn(),a=He(dc),o=He(N=>N.session.isStreaming),l=He(xDe),c=He(N=>N.session.history.length),u=He(N=>N.editModeState.codeToEdit),d=He(N=>N.session.isInEdit),f=Ac(d),h=g.useRef(void 0),m=g.useRef(!1),p=Ac(a),v=Ac(o),x=Ac(s),w=Ac(e.availableContextProviders),E=Ac(c),S=Ac(e.availableSlashCommands),{prevRef:_,nextRef:C,addRef:T}=oxn(e.historyKey),M=async(N,R)=>{if(N.getText().lastIndexOf("@")===-1)return;let G=N.state.selection.anchor;for(;G>0&&N.state.doc.textBetween(G,G+1)!=="@";)G--;G++,N.commands.deleteRange({from:G,to:N.state.selection.anchor}),h.current=R,N.commands.insertContent(":"),N.commands.deleteRange({from:N.state.selection.anchor-1,to:N.state.selection.anchor})},A=()=>{h.current=void 0,m.current=!1},$=()=>{m.current=!0},O=tAt({extensions:[A4n,F4n,HSe.extend({addProseMirrorPlugins(){const N=new kl({props:{handleDOMEvents:{paste(q,W){var J;const G=p.current;if(!G)return;const U=(J=W.clipboardData)==null?void 0:J.items;if(U)for(const F of U){const H=F.getAsFile();H&&o$(G.provider,G.model,G.title,G.capabilities)&&LV(n,H).then(V=>{if(!V)return;const[L,se]=V,{schema:oe}=q.state,X=oe.nodes.image.create({src:se}),de=q.state.tr.insert(0,X);q.dispatch(de)})}}}}}),R=new kl({props:{decorations(q){const{selection:W,doc:G}=q,U=[];return W.empty?Vs.empty:(G.nodesBetween(W.from,W.to,(J,F)=>{J.type.name==="image"&&U.push(tc.node(F,F+J.nodeSize,{class:"selected-image"}))}),Vs.create(G,U))}}});return[N,R]}}).configure({HTMLAttributes:{class:"object-contain max-h-[210px] max-w-full mx-1"}}),B4n.configure({placeholder:DZe(e.placeholder,E.current)}),WSe.extend({addKeyboardShortcuts(){return{Enter:()=>m.current?!1:(D({useCodebase:!1,noContext:!l}),!0),"Mod-Enter":()=>(i.capture("gui_use_active_file_enter"),D({useCodebase:!1,noContext:!!l}),!0),"Alt-Enter":()=>(i.capture("gui_use_active_file_enter"),D({useCodebase:!1,noContext:!!l}),!0),"Mod-Backspace":()=>!!v.current,"Shift-Enter":()=>this.editor.commands.first(({commands:N})=>[()=>N.newlineInCode(),()=>N.createParagraphNear(),()=>N.liftEmptyBlock(),()=>N.splitBlock()]),"Mod-a":()=>(this.editor.commands.setTextSelection({from:0,to:this.editor.state.doc.content.size}),!0),ArrowUp:()=>{if(this.editor.state.selection.anchor>1)return!1;const N=_.current(this.editor.state.toJSON().doc);return N?(this.editor.commands.setContent(N),setTimeout(()=>{this.editor.commands.blur(),this.editor.commands.focus("start")},0),!0):!1},Escape:()=>m.current?!1:Go()?(n.post("closeSidebar",void 0),!0):(f.current&&r(Of({openNewSession:!1})),n.post("focusEditor",void 0),!0),ArrowDown:()=>{if(this.editor.state.selection.anchor{this.editor.commands.blur(),this.editor.commands.focus("end")},0),!0):!1}}}}).configure({HTMLAttributes:{class:"my-1"}}),VSe,YY.configure({suggestion:cxn(w,x,M,A,$,h,n)}),iZe.configure({suggestion:uxn(S,A,$,n,r,e.inputId)}),xO,zg],editorProps:{attributes:{"data-testid":e.isMainInput?"editor-input-main":`editor-input-${e.inputId}`,class:"ProseMirror outline-none overflow-hidden",style:`font-size: ${la()}px;`}},content:e.editorState,editable:!o||e.isMainInput}),D=N=>{if(!O||v.current||u.length===0&&d)return;const R=O.getJSON();fxn(R)&&(e.isMainInput&&T.current(R),e.onEnter(R,N,O))};return{editor:O,onEnter:D}}const ine=ost(),pxn=(t,e)=>{const n=window.getSelection(),r=t.shiftKey?"extend":"move",i=km(),s={Backspace:()=>vxn(e),ArrowLeft:()=>n==null?void 0:n.modify(r,"backward",i==="mac"?"lineboundary":"word"),ArrowRight:()=>n==null?void 0:n.modify(r,"forward",i==="mac"?"lineboundary":"word"),ArrowDown:()=>n==null?void 0:n.modify(r,"forward","documentboundary"),ArrowUp:()=>{n==null||n.modify(r,"backward","documentboundary")}};t.key in s&&(t.stopPropagation(),t.preventDefault(),s[t.key]())},mxn=async(t,e)=>{const n=e.state.doc.textBetween(e.state.selection.from,e.state.selection.to),r={x:()=>yxn(n,e),c:()=>bxn(n),v:()=>xxn(e),z:()=>t.shiftKey?_xn(e):wxn(e)};t.key in r&&(t.stopPropagation(),t.preventDefault(),await r[t.key]())},gxn=t=>{const e=t.state.doc.resolve(t.state.selection.from).parent.textContent??"",n=t.state.selection.from,r=t.state.doc.resolve(n).start(),s=e.slice(0,n-r).match(/\S+\s*$/);if(s){const a=s[0];t.commands.deleteRange({from:t.state.selection.from-a.length,to:t.state.selection.from})}},vxn=t=>{const{doc:e}=t.state;for(let n=e.content.childCount-1;n>=0;n--){const r=e.content.child(n);if(r.type.name===zg.name)continue;if(km()!=="mac"){gxn(t);break}t.commands.deleteNode(r.type.name)}t.commands.createParagraphNear()},yxn=async(t,e)=>{ine?(await navigator.clipboard.writeText(t),e.commands.deleteSelection()):document.execCommand("cut")},bxn=async t=>{ine?await navigator.clipboard.writeText(t):document.execCommand("copy")},xxn=async t=>{if(ine){const e=await navigator.clipboard.readText();t.commands.insertContent(e)}else document.execCommand("paste")},wxn=async t=>{t.commands.undo()},_xn=async t=>{t.commands.redo()};function kxn(t){const{editor:e,isOSREnabled:n,editorFocusedRef:r,setActiveKey:i}=t,s=g.useRef(!1);return{handleKeyDown:async l=>{e&&(!(r!=null&&r.current)||!mg(l)||((l.key==="Meta"||l.key==="Control"||l.key==="Alt")&&(i(l.key),s.current=!0),n?pxn(l,e):Go()||await mxn(l,e)))},handleKeyUp:()=>{s.current&&(i(null),s.current=!1)}}}const MZe="tippy-js-div";function Sxn(t){const e=vr(),n=nh(),r=g.useContext(qt),i=yZe(),s=He(dc),a=He(A=>A.session.isStreaming),o=He(A=>A.session.history.length),l=He(A=>A.session.isInEdit),{editor:c,onEnter:u}=hxn({props:t,ideMessenger:r,dispatch:e});g.useEffect(()=>{t.isMainInput&&c&&(n.setMainEditor(c),n.setInputId(t.inputId),n.onEnterRef.current=u)},[c,t.isMainInput,t.inputId,n,u,a]);const[d,f]=g.useState(!0);g.useEffect(()=>{if(!c)return;const A=DZe(t.placeholder,o),$=c.extensionManager.extensions.find(O=>O.name==="placeholder");$&&($.options.placeholder=A,c.view.dispatch(c.state.tr))},[c,t.placeholder,o]),g.useEffect(()=>{t.isMainInput&&(c==null||c.commands.clearContent(!0))},[c,t.isMainInput]),g.useEffect(()=>{l&&f(!1)},[l]);const h=Ac(c==null?void 0:c.isFocused,[c]);g.useEffect(()=>{t.isMainInput&&(c==null||c.commands.focus())},[t.isMainInput,c]),g.useEffect(()=>{c&&!a&&t.isMainInput&&document.hasFocus()&&c.commands.focus(void 0,{scrollIntoView:!1})},[t.isMainInput,a,c]),g.useEffect(()=>{if(!a&&!t.isMainInput&&c){const A=setTimeout(()=>{c&&!c.isDestroyed&&(c.setOptions({editable:!0}),c.view.dispatch(c.state.tr))},100);return()=>clearTimeout(A)}},[a,t.isMainInput]);const[m,p]=g.useState(!1),[v,x]=g.useState(null),w=g.useCallback(A=>{if(!c)return;const $=c.getText();$.endsWith(A)||($.length>0&&!$.endsWith(" ")?c.commands.insertContent(` ${A}`):c.commands.insertContent(A))},[c]),{handleKeyUp:E,handleKeyDown:S}=kxn({editor:c,isOSREnabled:i,editorFocusedRef:h,setActiveKey:x}),_=g.useRef(null),C=g.useCallback(()=>{_.current&&(clearTimeout(_.current),_.current=null)},[_]),T=g.useCallback(A=>{if(l)return;const $=A.currentTarget,O=A.relatedTarget;O&&($!=null&&$.contains(O))||(_.current=setTimeout(()=>{f(!0)},100))},[l,_]),M=g.useCallback(()=>{C(),f(!1)},[C]);return y.jsxs(E4n,{onFocus:M,onBlur:T,onKeyDown:S,onKeyUp:E,className:!t.isMainInput&&d?"cursor-pointer":"cursor-text",onClick:()=>{c==null||c.commands.focus()},onDragOver:A=>{A.preventDefault(),p(!0)},onDragLeave:A=>{A.relatedTarget===null&&(A.shiftKey?p(!1):setTimeout(()=>p(!1),2e3))},onDragEnter:()=>{p(!0)},onDrop:A=>{if(p(!1),!s||!o$(s.provider,s.model,s.title,s.capabilities))return;let $=A.dataTransfer.files[0];LV(r,$).then(O=>{if(c&&O){const[D,N]=O,{schema:R}=c.state,q=R.nodes.image.create({src:N}),W=c.state.tr.insert(0,q);c.view.dispatch(W)}}),A.preventDefault()},children:[y.jsxs("div",{className:"px-2.5 pb-1 pt-2",children:[y.jsx(WIt,{className:`scroll-container overflow-y-scroll ${t.isMainInput?"max-h-[70vh]":""}`,spellCheck:!1,editor:c,onClick:A=>{A.stopPropagation()}}),y.jsx(C4n,{isMainInput:t.isMainInput,toolbarOptions:t.toolbarOptions,activeKey:v,hidden:d&&!t.isMainInput,onAddContextItem:()=>w("@"),onEnter:u,onImageFileSelected:A=>{LV(r,A).then($=>{if(c&&$){const[O,D]=$,{schema:N}=c.state,R=N.nodes.image.create({src:D});c.commands.command(({tr:q})=>(q.insert(0,R),!0))}})},disabled:a})]}),m&&o$((s==null?void 0:s.provider)||"",(s==null?void 0:s.model)||"",s==null?void 0:s.title,s==null?void 0:s.capabilities)&&y.jsx(I4n,{show:m,setShow:p}),y.jsx("div",{id:MZe,className:"fixed z-50"})]})}function Cxn(t,e){return t===e?!0:!t||!e?!1:t.hideAddContext===e.hideAddContext&&t.hideImageUpload===e.hideImageUpload&&t.hideUseCodebase===e.hideUseCodebase&&t.hideSelectModel===e.hideSelectModel&&t.enterText===e.enterText}const Exn=g.memo(Sxn,(t,e)=>{var n,r,i,s;return t.isMainInput===e.isMainInput&&t.placeholder===e.placeholder&&t.historyKey===e.historyKey&&t.inputId===e.inputId&&Cxn(t.toolbarOptions,e.toolbarOptions)&&(((n=t.availableContextProviders)==null?void 0:n.length)||0)===(((r=e.availableContextProviders)==null?void 0:r.length)||0)&&(((i=t.availableSlashCommands)==null?void 0:i.length)||0)===(((s=e.availableSlashCommands)==null?void 0:s.length)||0)});function $xn(t){return y.jsx("div",{className:"relative w-full",children:y.jsx(Exn,{...t})})}const Txn=Cs("edit/streamResponse",async({editorState:t,codeToEdit:e},{dispatch:n,extra:r,getState:i})=>{await n(EJ(async()=>{n(cZe());const{selectedContextItems:s,content:a}=await Jte({editorState:t,modifiers:{noContext:!0,useCodebase:!1},ideMessenger:r.ideMessenger,defaultContextProviders:[],availableSlashCommands:[],dispatch:n,getState:i}),o=[...s.map(c=>c.content),Ly(a)].join(` + +`),l=await r.ideMessenger.request("edit/sendPrompt",{prompt:o,range:e[0]});if(n(cy()),l.status==="error")throw new Error(l.error)}))}),Of=Cs("edit/exit",async({openNewSession:t},{dispatch:e,extra:n,getState:r})=>{const i=r(),s=i.editModeState.codeToEdit,a=i.session.isInEdit,o=i.editModeState.previousModeEditorContent;a&&(s[0]&&i.editModeState.applyState.numDiffs&&n.ideMessenger.post("rejectDiff",{filepath:s[0].filepath}),n.ideMessenger.post("edit/clearDecorations",void 0),e(m6e()),e(GZ(ZZ)),e(pZe(!1)),o&&(e(Qte(o)),e(g6e(void 0))),t||i.editModeState.lastNonEditSessionWasEmpty?e(nd()):await e(CJ()),e(f0(i.editModeState.returnToMode)))}),Ixn=Cs("edit/enter",async({returnToMode:t,editorContent:e},{dispatch:n,extra:r,getState:i})=>{const s=i();if(!s.session.isInEdit){if(!s.editModeState.codeToEdit[0]){r.ideMessenger.post("showToast",["info","Please open a file to use Edit mode"]);return}n(Qte({})),n(g6e(e)),n(R0t(t??s.session.mode)),n(GZ(ZZ)),await n(Qu({openNewSession:!0,generateTitle:!1})),n(pZe(!0))}}),Axn=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Oxn=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Dxn={};function b2e(t,e){return(Dxn.jsx?Oxn:Axn).test(t)}const Mxn=/[ \t\n\f\r]/g;function Nxn(t){return typeof t=="object"?t.type==="text"?x2e(t.value):!1:x2e(t)}function x2e(t){return t.replace(Mxn,"")===""}var dv={},Yj,w2e;function Rxn(){if(w2e)return Yj;w2e=1;var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,e=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,o=/^\s+|\s+$/g,l=` +`,c="/",u="*",d="",f="comment",h="declaration";Yj=function(p,v){if(typeof p!="string")throw new TypeError("First argument must be a string");if(!p)return[];v=v||{};var x=1,w=1;function E(N){var R=N.match(e);R&&(x+=R.length);var q=N.lastIndexOf(l);w=~q?N.length-q:w+N.length}function S(){var N={line:x,column:w};return function(R){return R.position=new _(N),M(),R}}function _(N){this.start=N,this.end={line:x,column:w},this.source=v.source}_.prototype.content=p;function C(N){var R=new Error(v.source+":"+x+":"+w+": "+N);if(R.reason=N,R.filename=v.source,R.line=x,R.column=w,R.source=p,!v.silent)throw R}function T(N){var R=N.exec(p);if(R){var q=R[0];return E(q),p=p.slice(q.length),R}}function M(){T(n)}function A(N){var R;for(N=N||[];R=$();)R!==!1&&N.push(R);return N}function $(){var N=S();if(!(c!=p.charAt(0)||u!=p.charAt(1))){for(var R=2;d!=p.charAt(R)&&(u!=p.charAt(R)||c!=p.charAt(R+1));)++R;if(R+=2,d===p.charAt(R-1))return C("End of comment missing");var q=p.slice(2,R-2);return w+=2,E(q),p=p.slice(R),w+=2,N({type:f,comment:q})}}function O(){var N=S(),R=T(r);if(R){if($(),!T(i))return C("property missing ':'");var q=T(s),W=N({type:h,property:m(R[0].replace(t,d)),value:q?m(q[0].replace(t,d)):d});return T(a),W}}function D(){var N=[];A(N);for(var R;R=O();)R!==!1&&(N.push(R),A(N));return N}return M(),D()};function m(p){return p?p.replace(o,d):d}return Yj}var _2e;function Lxn(){if(_2e)return dv;_2e=1;var t=dv&&dv.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(dv,"__esModule",{value:!0}),dv.default=n;var e=t(Rxn());function n(r,i){var s=null;if(!r||typeof r!="string")return s;var a=(0,e.default)(r),o=typeof i=="function";return a.forEach(function(l){if(l.type==="declaration"){var c=l.property,u=l.value;o?i(c,u,l):u&&(s=s||{},s[c]=u)}}),s}return dv}var I3={},k2e;function Pxn(){if(k2e)return I3;k2e=1,Object.defineProperty(I3,"__esModule",{value:!0}),I3.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,e=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,s=function(c){return!c||n.test(c)||t.test(c)},a=function(c,u){return u.toUpperCase()},o=function(c,u){return"".concat(u,"-")},l=function(c,u){return u===void 0&&(u={}),s(c)?c:(c=c.toLowerCase(),u.reactCompat?c=c.replace(i,o):c=c.replace(r,o),c.replace(e,a))};return I3.camelCase=l,I3}var A3,S2e;function jxn(){if(S2e)return A3;S2e=1;var t=A3&&A3.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},e=t(Lxn()),n=Pxn();function r(i,s){var a={};return!i||typeof i!="string"||(0,e.default)(i,function(o,l){o&&l&&(a[(0,n.camelCase)(o,s)]=l)}),a}return r.default=r,A3=r,A3}var zxn=jxn();const Fxn=Ol(zxn),NZe=RZe("end"),sne=RZe("start");function RZe(t){return e;function e(n){const r=n&&n.position&&n.position[t]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Bxn(t){const e=sne(t),n=NZe(t);if(e&&n)return{start:e,end:n}}function yx(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?C2e(t.position):"start"in t||"end"in t?C2e(t):"line"in t||"column"in t?PV(t):""}function PV(t){return E2e(t&&t.line)+":"+E2e(t&&t.column)}function C2e(t){return PV(t&&t.start)+"-"+PV(t&&t.end)}function E2e(t){return t&&typeof t=="number"?t:1}class Jo extends Error{constructor(e,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},a=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof e=="string"?i=e:!s.cause&&e&&(a=!0,i=e.message,s.cause=e),!s.ruleId&&!s.source&&typeof r=="string"){const l=r.indexOf(":");l===-1?s.ruleId=r:(s.source=r.slice(0,l),s.ruleId=r.slice(l+1))}if(!s.place&&s.ancestors&&s.ancestors){const l=s.ancestors[s.ancestors.length-1];l&&(s.place=l.position)}const o=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=o?o.line:void 0,this.name=yx(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=a&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Jo.prototype.file="";Jo.prototype.name="";Jo.prototype.reason="";Jo.prototype.message="";Jo.prototype.stack="";Jo.prototype.column=void 0;Jo.prototype.line=void 0;Jo.prototype.ancestors=void 0;Jo.prototype.cause=void 0;Jo.prototype.fatal=void 0;Jo.prototype.place=void 0;Jo.prototype.ruleId=void 0;Jo.prototype.source=void 0;const ane={}.hasOwnProperty,Uxn=new Map,qxn=/[A-Z]/g,Hxn=new Set(["table","tbody","thead","tfoot","tr"]),Wxn=new Set(["td","th"]),LZe="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Vxn(t,e){if(!e||e.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=e.filePath||void 0;let r;if(e.development){if(typeof e.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=ewn(n,e.jsxDEV)}else{if(typeof e.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof e.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Qxn(n,e.jsx,e.jsxs)}const i={Fragment:e.Fragment,ancestors:[],components:e.components||{},create:r,elementAttributeNameCase:e.elementAttributeNameCase||"react",evaluater:e.createEvaluater?e.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:e.ignoreInvalidStyle||!1,passKeys:e.passKeys!==!1,passNode:e.passNode||!1,schema:e.space==="svg"?AT:o9e,stylePropertyNameCase:e.stylePropertyNameCase||"dom",tableCellAlignToStyle:e.tableCellAlignToStyle!==!1},s=PZe(i,t,void 0);return s&&typeof s!="string"?s:i.create(t,i.Fragment,{children:s||void 0},void 0)}function PZe(t,e,n){if(e.type==="element")return Zxn(t,e,n);if(e.type==="mdxFlowExpression"||e.type==="mdxTextExpression")return Gxn(t,e);if(e.type==="mdxJsxFlowElement"||e.type==="mdxJsxTextElement")return Yxn(t,e,n);if(e.type==="mdxjsEsm")return Kxn(t,e);if(e.type==="root")return Jxn(t,e,n);if(e.type==="text")return Xxn(t,e)}function Zxn(t,e,n){const r=t.schema;let i=r;e.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=AT,t.schema=i),t.ancestors.push(e);const s=zZe(t,e.tagName,!1),a=twn(t,e);let o=lne(t,e);return Hxn.has(e.tagName)&&(o=o.filter(function(l){return typeof l=="string"?!Nxn(l):!0})),jZe(t,a,s,e),one(a,o),t.ancestors.pop(),t.schema=r,t.create(e,s,a,n)}function Gxn(t,e){if(e.data&&e.data.estree&&t.evaluater){const r=e.data.estree.body[0];return r.type,t.evaluater.evaluateExpression(r.expression)}t6(t,e.position)}function Kxn(t,e){if(e.data&&e.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(e.data.estree);t6(t,e.position)}function Yxn(t,e,n){const r=t.schema;let i=r;e.name==="svg"&&r.space==="html"&&(i=AT,t.schema=i),t.ancestors.push(e);const s=e.name===null?t.Fragment:zZe(t,e.name,!0),a=nwn(t,e),o=lne(t,e);return jZe(t,a,s,e),one(a,o),t.ancestors.pop(),t.schema=r,t.create(e,s,a,n)}function Jxn(t,e,n){const r={};return one(r,lne(t,e)),t.create(e,t.Fragment,r,n)}function Xxn(t,e){return e.value}function jZe(t,e,n,r){typeof n!="string"&&n!==t.Fragment&&t.passNode&&(e.node=r)}function one(t,e){if(e.length>0){const n=e.length>1?e:e[0];n&&(t.children=n)}}function Qxn(t,e,n){return r;function r(i,s,a,o){const c=Array.isArray(a.children)?n:e;return o?c(s,a,o):c(s,a)}}function ewn(t,e){return n;function n(r,i,s,a){const o=Array.isArray(s.children),l=sne(r);return e(i,s,a,o,{columnNumber:l?l.column-1:void 0,fileName:t,lineNumber:l?l.line:void 0},void 0)}}function twn(t,e){const n={};let r,i;for(i in e.properties)if(i!=="children"&&ane.call(e.properties,i)){const s=rwn(t,i,e.properties[i]);if(s){const[a,o]=s;t.tableCellAlignToStyle&&a==="align"&&typeof o=="string"&&Wxn.has(e.tagName)?r=o:n[a]=o}}if(r){const s=n.style||(n.style={});s[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function nwn(t,e){const n={};for(const r of e.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&t.evaluater){const s=r.data.estree.body[0];s.type;const a=s.expression;a.type;const o=a.properties[0];o.type,Object.assign(n,t.evaluater.evaluateExpression(o.argument))}else t6(t,e.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&t.evaluater){const o=r.value.data.estree.body[0];o.type,s=t.evaluater.evaluateExpression(o.expression)}else t6(t,e.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function lne(t,e){const n=[];let r=-1;const i=t.passKeys?new Map:Uxn;for(;++ri?0:i+e:e=e>i?i:e,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(e,n),t.splice(...a);else for(n&&t.splice(e,n);s0?(Vf(t,t.length,0,e),t):e}const I2e={}.hasOwnProperty;function dwn(t){const e={};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 uy(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}function E5(t){const e=[];let n=-1,r=0,i=0;for(;++n55295&&s<57344){const o=t.charCodeAt(n+1);s<56320&&o>56319&&o<57344?(a=String.fromCharCode(s,o),i=1):a="�"}else a=String.fromCharCode(s);a&&(e.push(t.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return e.join("")+t.slice(r)}const pwn={tokenize:mwn};function mwn(t){const e=t.attempt(this.parser.constructs.contentInitial,r,i);let n;return e;function r(o){if(o===null){t.consume(o);return}return t.enter("lineEnding"),t.consume(o),t.exit("lineEnding"),Di(t,e,"linePrefix")}function i(o){return t.enter("paragraph"),s(o)}function s(o){const l=t.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=l),n=l,a(o)}function a(o){if(o===null){t.exit("chunkText"),t.exit("paragraph"),t.consume(o);return}return Fn(o)?(t.consume(o),t.exit("chunkText"),s):(t.consume(o),a)}}const gwn={tokenize:vwn},A2e={tokenize:ywn};function vwn(t){const e=this,n=[];let r=0,i,s,a;return o;function o(E){if(ra))return;const T=e.events.length;let M=T,A,$;for(;M--;)if(e.events[M][0]==="exit"&&e.events[M][1].type==="chunkFlow"){if(A){$=e.events[M][1].end;break}A=!0}for(x(r),C=T;CE;){const _=n[S];e.containerState=_[1],_[0].exit.call(e,t)}n.length=E}function w(){i.write([null]),s=void 0,i=void 0,e.containerState._closeFlow=void 0}}function ywn(t,e,n){return Di(t,t.attempt(this.parser.constructs.document,e,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function O2e(t){if(t===null||oc(t)||Jjt(t))return 1;if(Yjt(t))return 2}function une(t,e,n){const r=[];let i=-1;for(;++i1&&t[n][1].end.offset-t[n][1].start.offset>1?2:1;const d={...t[r][1].end},f={...t[n][1].start};D2e(d,-l),D2e(f,l),a={type:l>1?"strongSequence":"emphasisSequence",start:d,end:{...t[r][1].end}},o={type:l>1?"strongSequence":"emphasisSequence",start:{...t[n][1].start},end:f},s={type:l>1?"strongText":"emphasisText",start:{...t[r][1].end},end:{...t[n][1].start}},i={type:l>1?"strong":"emphasis",start:{...a.start},end:{...o.end}},t[r][1].end={...a.start},t[n][1].start={...o.end},c=[],t[r][1].end.offset-t[r][1].start.offset&&(c=wu(c,[["enter",t[r][1],e],["exit",t[r][1],e]])),c=wu(c,[["enter",i,e],["enter",a,e],["exit",a,e],["enter",s,e]]),c=wu(c,une(e.parser.constructs.insideSpan.null,t.slice(r+1,n),e)),c=wu(c,[["exit",s,e],["enter",o,e],["exit",o,e],["exit",i,e]]),t[n][1].end.offset-t[n][1].start.offset?(u=2,c=wu(c,[["enter",t[n][1],e],["exit",t[n][1],e]])):u=0,Vf(t,r-1,n-r+3,c),n=r+c.length-u-2;break}}for(n=-1;++n0&&_i(C)?Di(t,w,"linePrefix",s+1)(C):w(C)}function w(C){return C===null||Fn(C)?t.check(M2e,p,S)(C):(t.enter("codeFlowValue"),E(C))}function E(C){return C===null||Fn(C)?(t.exit("codeFlowValue"),w(C)):(t.consume(C),E)}function S(C){return t.exit("codeFenced"),e(C)}function _(C,T,M){let A=0;return $;function $(q){return C.enter("lineEnding"),C.consume(q),C.exit("lineEnding"),O}function O(q){return C.enter("codeFencedFence"),_i(q)?Di(C,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(q):D(q)}function D(q){return q===o?(C.enter("codeFencedFenceSequence"),N(q)):M(q)}function N(q){return q===o?(A++,C.consume(q),N):A>=a?(C.exit("codeFencedFenceSequence"),_i(q)?Di(C,R,"whitespace")(q):R(q)):M(q)}function R(q){return q===null||Fn(q)?(C.exit("codeFencedFence"),T(q)):M(q)}}}function Awn(t,e,n){const r=this;return i;function i(a){return a===null?n(a):(t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),s)}function s(a){return r.parser.lazy[r.now().line]?n(a):e(a)}}const Xj={name:"codeIndented",tokenize:Dwn},Own={partial:!0,tokenize:Mwn};function Dwn(t,e,n){const r=this;return i;function i(c){return t.enter("codeIndented"),Di(t,s,"linePrefix",5)(c)}function s(c){const u=r.events[r.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?a(c):n(c)}function a(c){return c===null?l(c):Fn(c)?t.attempt(Own,a,l)(c):(t.enter("codeFlowValue"),o(c))}function o(c){return c===null||Fn(c)?(t.exit("codeFlowValue"),a(c)):(t.consume(c),o)}function l(c){return t.exit("codeIndented"),e(c)}}function Mwn(t,e,n){const r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):Fn(a)?(t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),i):Di(t,s,"linePrefix",5)(a)}function s(a){const o=r.events[r.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?e(a):Fn(a)?i(a):n(a)}}const Nwn={name:"codeText",previous:Lwn,resolve:Rwn,tokenize:Pwn};function Rwn(t){let e=t.length-4,n=3,r,i;if((t[n][1].type==="lineEnding"||t[n][1].type==="space")&&(t[e][1].type==="lineEnding"||t[e][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(e,n,r){const i=n||0;this.setCursor(Math.trunc(e));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&O3(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),O3(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),O3(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?e(a):t.interrupt(r.parser.constructs.flow,n,e)(a)}}function VZe(t,e,n,r,i,s,a,o,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return d;function d(x){return x===60?(t.enter(r),t.enter(i),t.enter(s),t.consume(x),t.exit(s),f):x===null||x===32||x===41||KH(x)?n(x):(t.enter(r),t.enter(a),t.enter(o),t.enter("chunkString",{contentType:"string"}),p(x))}function f(x){return x===62?(t.enter(s),t.consume(x),t.exit(s),t.exit(i),t.exit(r),e):(t.enter(o),t.enter("chunkString",{contentType:"string"}),h(x))}function h(x){return x===62?(t.exit("chunkString"),t.exit(o),f(x)):x===null||x===60||Fn(x)?n(x):(t.consume(x),x===92?m:h)}function m(x){return x===60||x===62||x===92?(t.consume(x),h):h(x)}function p(x){return!u&&(x===null||x===41||oc(x))?(t.exit("chunkString"),t.exit(o),t.exit(a),t.exit(r),e(x)):u999||h===null||h===91||h===93&&!l||h===94&&!o&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):h===93?(t.exit(s),t.enter(i),t.consume(h),t.exit(i),t.exit(r),e):Fn(h)?(t.enter("lineEnding"),t.consume(h),t.exit("lineEnding"),u):(t.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===null||h===91||h===93||Fn(h)||o++>999?(t.exit("chunkString"),u(h)):(t.consume(h),l||(l=!_i(h)),h===92?f:d)}function f(h){return h===91||h===92||h===93?(t.consume(h),o++,d):d(h)}}function GZe(t,e,n,r,i,s){let a;return o;function o(f){return f===34||f===39||f===40?(t.enter(r),t.enter(i),t.consume(f),t.exit(i),a=f===40?41:f,l):n(f)}function l(f){return f===a?(t.enter(i),t.consume(f),t.exit(i),t.exit(r),e):(t.enter(s),c(f))}function c(f){return f===a?(t.exit(s),l(a)):f===null?n(f):Fn(f)?(t.enter("lineEnding"),t.consume(f),t.exit("lineEnding"),Di(t,c,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),u(f))}function u(f){return f===a||f===null||Fn(f)?(t.exit("chunkString"),c(f)):(t.consume(f),f===92?d:u)}function d(f){return f===a||f===92?(t.consume(f),u):u(f)}}function bx(t,e){let n;return r;function r(i){return Fn(i)?(t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),n=!0,r):_i(i)?Di(t,r,n?"linePrefix":"lineSuffix")(i):e(i)}}const Wwn={name:"definition",tokenize:Zwn},Vwn={partial:!0,tokenize:Gwn};function Zwn(t,e,n){const r=this;let i;return s;function s(h){return t.enter("definition"),a(h)}function a(h){return ZZe.call(r,t,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function o(h){return i=uy(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(t.enter("definitionMarker"),t.consume(h),t.exit("definitionMarker"),l):n(h)}function l(h){return oc(h)?bx(t,c)(h):c(h)}function c(h){return VZe(t,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function u(h){return t.attempt(Vwn,d,d)(h)}function d(h){return _i(h)?Di(t,f,"whitespace")(h):f(h)}function f(h){return h===null||Fn(h)?(t.exit("definition"),r.parser.defined.push(i),e(h)):n(h)}}function Gwn(t,e,n){return r;function r(o){return oc(o)?bx(t,i)(o):n(o)}function i(o){return GZe(t,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function s(o){return _i(o)?Di(t,a,"whitespace")(o):a(o)}function a(o){return o===null||Fn(o)?e(o):n(o)}}const Kwn={name:"hardBreakEscape",tokenize:Ywn};function Ywn(t,e,n){return r;function r(s){return t.enter("hardBreakEscape"),t.consume(s),i}function i(s){return Fn(s)?(t.exit("hardBreakEscape"),e(s)):n(s)}}const Jwn={name:"headingAtx",resolve:Xwn,tokenize:Qwn};function Xwn(t,e){let n=t.length-2,r=3,i,s;return t[r][1].type==="whitespace"&&(r+=2),n-2>r&&t[n][1].type==="whitespace"&&(n-=2),t[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&t[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:t[r][1].start,end:t[n][1].end},s={type:"chunkText",start:t[r][1].start,end:t[n][1].end,contentType:"text"},Vf(t,r,n-r+1,[["enter",i,e],["enter",s,e],["exit",s,e],["exit",i,e]])),t}function Qwn(t,e,n){let r=0;return i;function i(u){return t.enter("atxHeading"),s(u)}function s(u){return t.enter("atxHeadingSequence"),a(u)}function a(u){return u===35&&r++<6?(t.consume(u),a):u===null||oc(u)?(t.exit("atxHeadingSequence"),o(u)):n(u)}function o(u){return u===35?(t.enter("atxHeadingSequence"),l(u)):u===null||Fn(u)?(t.exit("atxHeading"),e(u)):_i(u)?Di(t,o,"whitespace")(u):(t.enter("atxHeadingText"),c(u))}function l(u){return u===35?(t.consume(u),l):(t.exit("atxHeadingSequence"),o(u))}function c(u){return u===null||u===35||oc(u)?(t.exit("atxHeadingText"),o(u)):(t.consume(u),c)}}const e6n=["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"],R2e=["pre","script","style","textarea"],t6n={concrete:!0,name:"htmlFlow",resolveTo:i6n,tokenize:s6n},n6n={partial:!0,tokenize:o6n},r6n={partial:!0,tokenize:a6n};function i6n(t){let e=t.length;for(;e--&&!(t[e][0]==="enter"&&t[e][1].type==="htmlFlow"););return e>1&&t[e-2][1].type==="linePrefix"&&(t[e][1].start=t[e-2][1].start,t[e+1][1].start=t[e-2][1].start,t.splice(e-2,2)),t}function s6n(t,e,n){const r=this;let i,s,a,o,l;return c;function c(L){return u(L)}function u(L){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(L),d}function d(L){return L===33?(t.consume(L),f):L===47?(t.consume(L),s=!0,p):L===63?(t.consume(L),i=3,r.interrupt?e:F):gf(L)?(t.consume(L),a=String.fromCharCode(L),v):n(L)}function f(L){return L===45?(t.consume(L),i=2,h):L===91?(t.consume(L),i=5,o=0,m):gf(L)?(t.consume(L),i=4,r.interrupt?e:F):n(L)}function h(L){return L===45?(t.consume(L),r.interrupt?e:F):n(L)}function m(L){const se="CDATA[";return L===se.charCodeAt(o++)?(t.consume(L),o===se.length?r.interrupt?e:D:m):n(L)}function p(L){return gf(L)?(t.consume(L),a=String.fromCharCode(L),v):n(L)}function v(L){if(L===null||L===47||L===62||oc(L)){const se=L===47,oe=a.toLowerCase();return!se&&!s&&R2e.includes(oe)?(i=1,r.interrupt?e(L):D(L)):e6n.includes(a.toLowerCase())?(i=6,se?(t.consume(L),x):r.interrupt?e(L):D(L)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):s?w(L):E(L))}return L===45||zc(L)?(t.consume(L),a+=String.fromCharCode(L),v):n(L)}function x(L){return L===62?(t.consume(L),r.interrupt?e:D):n(L)}function w(L){return _i(L)?(t.consume(L),w):$(L)}function E(L){return L===47?(t.consume(L),$):L===58||L===95||gf(L)?(t.consume(L),S):_i(L)?(t.consume(L),E):$(L)}function S(L){return L===45||L===46||L===58||L===95||zc(L)?(t.consume(L),S):_(L)}function _(L){return L===61?(t.consume(L),C):_i(L)?(t.consume(L),_):E(L)}function C(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(t.consume(L),l=L,T):_i(L)?(t.consume(L),C):M(L)}function T(L){return L===l?(t.consume(L),l=null,A):L===null||Fn(L)?n(L):(t.consume(L),T)}function M(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||oc(L)?_(L):(t.consume(L),M)}function A(L){return L===47||L===62||_i(L)?E(L):n(L)}function $(L){return L===62?(t.consume(L),O):n(L)}function O(L){return L===null||Fn(L)?D(L):_i(L)?(t.consume(L),O):n(L)}function D(L){return L===45&&i===2?(t.consume(L),W):L===60&&i===1?(t.consume(L),G):L===62&&i===4?(t.consume(L),H):L===63&&i===3?(t.consume(L),F):L===93&&i===5?(t.consume(L),J):Fn(L)&&(i===6||i===7)?(t.exit("htmlFlowData"),t.check(n6n,V,N)(L)):L===null||Fn(L)?(t.exit("htmlFlowData"),N(L)):(t.consume(L),D)}function N(L){return t.check(r6n,R,V)(L)}function R(L){return t.enter("lineEnding"),t.consume(L),t.exit("lineEnding"),q}function q(L){return L===null||Fn(L)?N(L):(t.enter("htmlFlowData"),D(L))}function W(L){return L===45?(t.consume(L),F):D(L)}function G(L){return L===47?(t.consume(L),a="",U):D(L)}function U(L){if(L===62){const se=a.toLowerCase();return R2e.includes(se)?(t.consume(L),H):D(L)}return gf(L)&&a.length<8?(t.consume(L),a+=String.fromCharCode(L),U):D(L)}function J(L){return L===93?(t.consume(L),F):D(L)}function F(L){return L===62?(t.consume(L),H):L===45&&i===2?(t.consume(L),F):D(L)}function H(L){return L===null||Fn(L)?(t.exit("htmlFlowData"),V(L)):(t.consume(L),H)}function V(L){return t.exit("htmlFlow"),e(L)}}function a6n(t,e,n){const r=this;return i;function i(a){return Fn(a)?(t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),s):n(a)}function s(a){return r.parser.lazy[r.now().line]?n(a):e(a)}}function o6n(t,e,n){return r;function r(i){return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),t.attempt(_O,e,n)}}const l6n={name:"htmlText",tokenize:c6n};function c6n(t,e,n){const r=this;let i,s,a;return o;function o(F){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(F),l}function l(F){return F===33?(t.consume(F),c):F===47?(t.consume(F),_):F===63?(t.consume(F),E):gf(F)?(t.consume(F),M):n(F)}function c(F){return F===45?(t.consume(F),u):F===91?(t.consume(F),s=0,m):gf(F)?(t.consume(F),w):n(F)}function u(F){return F===45?(t.consume(F),h):n(F)}function d(F){return F===null?n(F):F===45?(t.consume(F),f):Fn(F)?(a=d,G(F)):(t.consume(F),d)}function f(F){return F===45?(t.consume(F),h):d(F)}function h(F){return F===62?W(F):F===45?f(F):d(F)}function m(F){const H="CDATA[";return F===H.charCodeAt(s++)?(t.consume(F),s===H.length?p:m):n(F)}function p(F){return F===null?n(F):F===93?(t.consume(F),v):Fn(F)?(a=p,G(F)):(t.consume(F),p)}function v(F){return F===93?(t.consume(F),x):p(F)}function x(F){return F===62?W(F):F===93?(t.consume(F),x):p(F)}function w(F){return F===null||F===62?W(F):Fn(F)?(a=w,G(F)):(t.consume(F),w)}function E(F){return F===null?n(F):F===63?(t.consume(F),S):Fn(F)?(a=E,G(F)):(t.consume(F),E)}function S(F){return F===62?W(F):E(F)}function _(F){return gf(F)?(t.consume(F),C):n(F)}function C(F){return F===45||zc(F)?(t.consume(F),C):T(F)}function T(F){return Fn(F)?(a=T,G(F)):_i(F)?(t.consume(F),T):W(F)}function M(F){return F===45||zc(F)?(t.consume(F),M):F===47||F===62||oc(F)?A(F):n(F)}function A(F){return F===47?(t.consume(F),W):F===58||F===95||gf(F)?(t.consume(F),$):Fn(F)?(a=A,G(F)):_i(F)?(t.consume(F),A):W(F)}function $(F){return F===45||F===46||F===58||F===95||zc(F)?(t.consume(F),$):O(F)}function O(F){return F===61?(t.consume(F),D):Fn(F)?(a=O,G(F)):_i(F)?(t.consume(F),O):A(F)}function D(F){return F===null||F===60||F===61||F===62||F===96?n(F):F===34||F===39?(t.consume(F),i=F,N):Fn(F)?(a=D,G(F)):_i(F)?(t.consume(F),D):(t.consume(F),R)}function N(F){return F===i?(t.consume(F),i=void 0,q):F===null?n(F):Fn(F)?(a=N,G(F)):(t.consume(F),N)}function R(F){return F===null||F===34||F===39||F===60||F===61||F===96?n(F):F===47||F===62||oc(F)?A(F):(t.consume(F),R)}function q(F){return F===47||F===62||oc(F)?A(F):n(F)}function W(F){return F===62?(t.consume(F),t.exit("htmlTextData"),t.exit("htmlText"),e):n(F)}function G(F){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(F),t.exit("lineEnding"),U}function U(F){return _i(F)?Di(t,J,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):J(F)}function J(F){return t.enter("htmlTextData"),a(F)}}const dne={name:"labelEnd",resolveAll:h6n,resolveTo:p6n,tokenize:m6n},u6n={tokenize:g6n},d6n={tokenize:v6n},f6n={tokenize:y6n};function h6n(t){let e=-1;const n=[];for(;++e=3&&(c===null||Fn(c))?(t.exit("thematicBreak"),e(c)):n(c)}function l(c){return c===i?(t.consume(c),r++,l):(t.exit("thematicBreakSequence"),_i(c)?Di(t,o,"whitespace")(c):o(c))}}const Bl={continuation:{tokenize:T6n},exit:A6n,name:"list",tokenize:$6n},C6n={partial:!0,tokenize:O6n},E6n={partial:!0,tokenize:I6n};function $6n(t,e,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,a=0;return o;function o(h){const m=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:YH(h)){if(r.containerState.type||(r.containerState.type=m,t.enter(m,{_container:!0})),m==="listUnordered")return t.enter("listItemPrefix"),h===42||h===45?t.check(v9,n,c)(h):c(h);if(!r.interrupt||h===49)return t.enter("listItemPrefix"),t.enter("listItemValue"),l(h)}return n(h)}function l(h){return YH(h)&&++a<10?(t.consume(h),l):(!r.interrupt||a<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(t.exit("listItemValue"),c(h)):n(h)}function c(h){return t.enter("listItemMarker"),t.consume(h),t.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,t.check(_O,r.interrupt?n:u,t.attempt(C6n,f,d))}function u(h){return r.containerState.initialBlankLine=!0,s++,f(h)}function d(h){return _i(h)?(t.enter("listItemPrefixWhitespace"),t.consume(h),t.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return r.containerState.size=s+r.sliceSerialize(t.exit("listItemPrefix"),!0).length,e(h)}}function T6n(t,e,n){const r=this;return r.containerState._closeFlow=void 0,t.check(_O,i,s);function i(o){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Di(t,e,"listItemIndent",r.containerState.size+1)(o)}function s(o){return r.containerState.furtherBlankLines||!_i(o)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(o)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,t.attempt(E6n,e,a)(o))}function a(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,Di(t,t.attempt(Bl,e,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function I6n(t,e,n){const r=this;return Di(t,i,"listItemIndent",r.containerState.size+1);function i(s){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?e(s):n(s)}}function A6n(t){t.exit(this.containerState.type)}function O6n(t,e,n){const r=this;return Di(t,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const a=r.events[r.events.length-1];return!_i(s)&&a&&a[1].type==="listItemPrefixWhitespace"?e(s):n(s)}}const L2e={name:"setextUnderline",resolveTo:D6n,tokenize:M6n};function D6n(t,e){let n=t.length,r,i,s;for(;n--;)if(t[n][0]==="enter"){if(t[n][1].type==="content"){r=n;break}t[n][1].type==="paragraph"&&(i=n)}else t[n][1].type==="content"&&t.splice(n,1),!s&&t[n][1].type==="definition"&&(s=n);const a={type:"setextHeading",start:{...t[r][1].start},end:{...t[t.length-1][1].end}};return t[i][1].type="setextHeadingText",s?(t.splice(i,0,["enter",a,e]),t.splice(s+1,0,["exit",t[r][1],e]),t[r][1].end={...t[s][1].end}):t[r][1]=a,t.push(["exit",a,e]),t}function M6n(t,e,n){const r=this;let i;return s;function s(c){let u=r.events.length,d;for(;u--;)if(r.events[u][1].type!=="lineEnding"&&r.events[u][1].type!=="linePrefix"&&r.events[u][1].type!=="content"){d=r.events[u][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(t.enter("setextHeadingLine"),i=c,a(c)):n(c)}function a(c){return t.enter("setextHeadingLineSequence"),o(c)}function o(c){return c===i?(t.consume(c),o):(t.exit("setextHeadingLineSequence"),_i(c)?Di(t,l,"lineSuffix")(c):l(c))}function l(c){return c===null||Fn(c)?(t.exit("setextHeadingLine"),e(c)):n(c)}}const N6n={tokenize:R6n};function R6n(t){const e=this,n=t.attempt(_O,r,t.attempt(this.parser.constructs.flowInitial,i,Di(t,t.attempt(this.parser.constructs.flow,i,t.attempt(Fwn,i)),"linePrefix")));return n;function r(s){if(s===null){t.consume(s);return}return t.enter("lineEndingBlank"),t.consume(s),t.exit("lineEndingBlank"),e.currentConstruct=void 0,n}function i(s){if(s===null){t.consume(s);return}return t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),e.currentConstruct=void 0,n}}const L6n={resolveAll:YZe()},P6n=KZe("string"),j6n=KZe("text");function KZe(t){return{resolveAll:YZe(t==="text"?z6n:void 0),tokenize:e};function e(n){const r=this,i=this.parser.constructs[t],s=n.attempt(i,a,o);return a;function a(u){return c(u)?s(u):o(u)}function o(u){if(u===null){n.consume(u);return}return n.enter("data"),n.consume(u),l}function l(u){return c(u)?(n.exit("data"),s(u)):(n.consume(u),l)}function c(u){if(u===null)return!0;const d=i[u];let f=-1;if(d)for(;++f-1){const o=a[0];typeof o=="string"?a[0]=o.slice(r):a.shift()}s>0&&a.push(t[i].slice(0,s))}return a}function X6n(t,e){let n=-1;const r=[];let i;for(;++n0){const Un=et.tokenStack[et.tokenStack.length-1];(Un[1]||j2e).call(et,void 0,Un[0])}for(Oe.position={start:n0(ge.length>0?ge[0][1].start:{line:1,column:1,offset:0}),end:n0(ge.length>0?ge[ge.length-2][1].end:{line:1,column:1,offset:0})},zt=-1;++zt0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return e.meta&&(s.data={meta:e.meta}),t.patch(e,s),s=t.applyData(e,s),s={type:"element",tagName:"pre",properties:{},children:[s]},t.patch(e,s),s}function f_n(t,e){const n={type:"element",tagName:"del",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function h_n(t,e){const n={type:"element",tagName:"em",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function p_n(t,e){const n=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",r=String(e.identifier).toUpperCase(),i=E5(r.toLowerCase()),s=t.footnoteOrder.indexOf(r);let a,o=t.footnoteCounts.get(r);o===void 0?(o=0,t.footnoteOrder.push(r),a=t.footnoteOrder.length):a=s+1,o+=1,t.footnoteCounts.set(r,o);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};t.patch(e,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return t.patch(e,c),t.applyData(e,c)}function m_n(t,e){const n={type:"element",tagName:"h"+e.depth,properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function g_n(t,e){if(t.options.allowDangerousHtml){const n={type:"raw",value:e.value};return t.patch(e,n),t.applyData(e,n)}}function QZe(t,e){const n=e.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(e.label||e.identifier)+"]"),e.type==="imageReference")return[{type:"text",value:"!["+e.alt+r}];const i=t.all(e),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const a=i[i.length-1];return a&&a.type==="text"?a.value+=r:i.push({type:"text",value:r}),i}function v_n(t,e){const n=String(e.identifier).toUpperCase(),r=t.definitionById.get(n);if(!r)return QZe(t,e);const i={src:E5(r.url||""),alt:e.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return t.patch(e,s),t.applyData(e,s)}function y_n(t,e){const n={src:E5(e.url)};e.alt!==null&&e.alt!==void 0&&(n.alt=e.alt),e.title!==null&&e.title!==void 0&&(n.title=e.title);const r={type:"element",tagName:"img",properties:n,children:[]};return t.patch(e,r),t.applyData(e,r)}function b_n(t,e){const n={type:"text",value:e.value.replace(/\r?\n|\r/g," ")};t.patch(e,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return t.patch(e,r),t.applyData(e,r)}function x_n(t,e){const n=String(e.identifier).toUpperCase(),r=t.definitionById.get(n);if(!r)return QZe(t,e);const i={href:E5(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:t.all(e)};return t.patch(e,s),t.applyData(e,s)}function w_n(t,e){const n={href:E5(e.url)};e.title!==null&&e.title!==void 0&&(n.title=e.title);const r={type:"element",tagName:"a",properties:n,children:t.all(e)};return t.patch(e,r),t.applyData(e,r)}function __n(t,e,n){const r=t.all(e),i=n?k_n(n):eGe(e),s={},a=[];if(typeof e.checked=="boolean"){const u=r[0];let d;u&&u.type==="element"&&u.tagName==="p"?d=u:(d={type:"element",tagName:"p",properties:{},children:[]},r.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:e.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let o=-1;for(;++o1}function S_n(t,e){const n={},r=t.all(e);let i=-1;for(typeof e.start=="number"&&e.start!==1&&(n.start=e.start);++i0){const a={type:"element",tagName:"tbody",properties:{},children:t.wrap(n,!0)},o=sne(e.children[1]),l=NZe(e.children[e.children.length-1]);o&&l&&(a.position={start:o,end:l}),i.push(a)}const s={type:"element",tagName:"table",properties:{},children:t.wrap(i,!0)};return t.patch(e,s),t.applyData(e,s)}function I_n(t,e,n){const r=n?n.children:void 0,s=(r?r.indexOf(e):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,o=a?a.length:e.children.length;let l=-1;const c=[];for(;++l0,!0),r[0]),i=r.index+r[0].length,r=n.exec(e);return s.push(B2e(e.slice(i),i>0,!1)),s.join("")}function B2e(t,e,n){let r=0,i=t.length;if(e){let s=t.codePointAt(r);for(;s===z2e||s===F2e;)r++,s=t.codePointAt(r)}if(n){let s=t.codePointAt(i-1);for(;s===z2e||s===F2e;)i--,s=t.codePointAt(i-1)}return i>r?t.slice(r,i):""}function D_n(t,e){const n={type:"text",value:O_n(String(e.value))};return t.patch(e,n),t.applyData(e,n)}function M_n(t,e){const n={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(e,n),t.applyData(e,n)}const N_n={blockquote:c_n,break:u_n,code:d_n,delete:f_n,emphasis:h_n,footnoteReference:p_n,heading:m_n,html:g_n,imageReference:v_n,image:y_n,inlineCode:b_n,linkReference:x_n,link:w_n,listItem:__n,list:S_n,paragraph:C_n,root:E_n,strong:$_n,table:T_n,tableCell:A_n,tableRow:I_n,text:D_n,thematicBreak:M_n,toml:f8,yaml:f8,definition:f8,footnoteDefinition:f8};function f8(){}const tGe=-1,kO=0,xx=1,u$=2,fne=3,hne=4,pne=5,mne=6,nGe=7,rGe=8,U2e=typeof self=="object"?self:globalThis,R_n=(t,e)=>{const n=(i,s)=>(t.set(s,i),i),r=i=>{if(t.has(i))return t.get(i);const[s,a]=e[i];switch(s){case kO:case tGe:return n(a,i);case xx:{const o=n([],i);for(const l of a)o.push(r(l));return o}case u$:{const o=n({},i);for(const[l,c]of a)o[r(l)]=r(c);return o}case fne:return n(new Date(a),i);case hne:{const{source:o,flags:l}=a;return n(new RegExp(o,l),i)}case pne:{const o=n(new Map,i);for(const[l,c]of a)o.set(r(l),r(c));return o}case mne:{const o=n(new Set,i);for(const l of a)o.add(r(l));return o}case nGe:{const{name:o,message:l}=a;return n(new U2e[o](l),i)}case rGe:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:o}=new Uint8Array(a);return n(new DataView(o),a)}}return n(new U2e[s](a),i)};return r},q2e=t=>R_n(new Map,t)(0),fv="",{toString:L_n}={},{keys:P_n}=Object,D3=t=>{const e=typeof t;if(e!=="object"||!t)return[kO,e];const n=L_n.call(t).slice(8,-1);switch(n){case"Array":return[xx,fv];case"Object":return[u$,fv];case"Date":return[fne,fv];case"RegExp":return[hne,fv];case"Map":return[pne,fv];case"Set":return[mne,fv];case"DataView":return[xx,n]}return n.includes("Array")?[xx,n]:n.includes("Error")?[nGe,n]:[u$,n]},h8=([t,e])=>t===kO&&(e==="function"||e==="symbol"),j_n=(t,e,n,r)=>{const i=(a,o)=>{const l=r.push(a)-1;return n.set(o,l),l},s=a=>{if(n.has(a))return n.get(a);let[o,l]=D3(a);switch(o){case kO:{let u=a;switch(l){case"bigint":o=rGe,u=a.toString();break;case"function":case"symbol":if(t)throw new TypeError("unable to serialize "+l);u=null;break;case"undefined":return i([tGe],a)}return i([o,u],a)}case xx:{if(l){let f=a;return l==="DataView"?f=new Uint8Array(a.buffer):l==="ArrayBuffer"&&(f=new Uint8Array(a)),i([l,[...f]],a)}const u=[],d=i([o,u],a);for(const f of a)u.push(s(f));return d}case u$:{if(l)switch(l){case"BigInt":return i([l,a.toString()],a);case"Boolean":case"Number":case"String":return i([l,a.valueOf()],a)}if(e&&"toJSON"in a)return s(a.toJSON());const u=[],d=i([o,u],a);for(const f of P_n(a))(t||!h8(D3(a[f])))&&u.push([s(f),s(a[f])]);return d}case fne:return i([o,a.toISOString()],a);case hne:{const{source:u,flags:d}=a;return i([o,{source:u,flags:d}],a)}case pne:{const u=[],d=i([o,u],a);for(const[f,h]of a)(t||!(h8(D3(f))||h8(D3(h))))&&u.push([s(f),s(h)]);return d}case mne:{const u=[],d=i([o,u],a);for(const f of a)(t||!h8(D3(f)))&&u.push(s(f));return d}}const{message:c}=a;return i([o,{name:l,message:c}],a)};return s},H2e=(t,{json:e,lossy:n}={})=>{const r=[];return j_n(!(e||n),!!e,new Map,r)(t),r},d$=typeof structuredClone=="function"?(t,e)=>e&&("json"in e||"lossy"in e)?q2e(H2e(t,e)):structuredClone(t):(t,e)=>q2e(H2e(t,e));function z_n(t,e){const n=[{type:"text",value:"↩"}];return e>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(e)}]}),n}function F_n(t,e){return"Back to reference "+(t+1)+(e>1?"-"+e:"")}function B_n(t){const e=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",n=t.options.footnoteBackContent||z_n,r=t.options.footnoteBackLabel||F_n,i=t.options.footnoteLabel||"Footnotes",s=t.options.footnoteLabelTagName||"h2",a=t.options.footnoteLabelProperties||{className:["sr-only"]},o=[];let l=-1;for(;++l0&&m.push({type:"text",value:" "});let w=typeof n=="string"?n:n(l,h);typeof w=="string"&&(w={type:"text",value:w}),m.push({type:"element",tagName:"a",properties:{href:"#"+e+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(l,h),className:["data-footnote-backref"]},children:Array.isArray(w)?w:[w]})}const v=u[u.length-1];if(v&&v.type==="element"&&v.tagName==="p"){const w=v.children[v.children.length-1];w&&w.type==="text"?w.value+=" ":v.children.push({type:"text",value:" "}),v.children.push(...m)}else u.push(...m);const x={type:"element",tagName:"li",properties:{id:e+"fn-"+f},children:t.wrap(u,!0)};t.patch(c,x),o.push(x)}if(o.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...d$(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:t.wrap(o,!0)},{type:"text",value:` +`}]}}const zV={}.hasOwnProperty,U_n={};function q_n(t,e){const n=e||U_n,r=new Map,i=new Map,s=new Map,a={...N_n,...n.handlers},o={all:c,applyData:W_n,definitionById:r,footnoteById:i,footnoteCounts:s,footnoteOrder:[],handlers:a,one:l,options:n,patch:H_n,wrap:Z_n};return Vy(t,function(u){if(u.type==="definition"||u.type==="footnoteDefinition"){const d=u.type==="definition"?r:i,f=String(u.identifier).toUpperCase();d.has(f)||d.set(f,u)}}),o;function l(u,d){const f=u.type,h=o.handlers[f];if(zV.call(o.handlers,f)&&h)return h(o,u,d);if(o.options.passThrough&&o.options.passThrough.includes(f)){if("children"in u){const{children:p,...v}=u,x=d$(v);return x.children=o.all(u),x}return d$(u)}return(o.options.unknownHandler||V_n)(o,u,d)}function c(u){const d=[];if("children"in u){const f=u.children;let h=-1;for(;++h0&&n.push({type:"text",value:` +`}),n}function W2e(t){let e=0,n=t.charCodeAt(e);for(;n===9||n===32;)e++,n=t.charCodeAt(e);return t.slice(e)}function V2e(t,e){const n=q_n(t,e),r=n.one(t,void 0),i=B_n(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:` +`},i),s}function G_n(t,e){return t&&"run"in t?async function(n,r){const i=V2e(n,{file:r,...e});await t.run(i,r)}:function(n,r){return V2e(n,{file:r,...t||e})}}function Z2e(t){if(t)throw t}var K_n=_8e();const ez=Ol(K_n);function FV(t){if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)}function Y_n(){const t=[],e={run:n,use:r};return e;function n(...i){let s=-1;const a=i.pop();if(typeof a!="function")throw new TypeError("Expected function as last argument, not "+a);o(null,...i);function o(l,...c){const u=t[++s];let d=-1;if(l){a(l);return}for(;++da.length;let l;o&&a.push(i);try{l=t.apply(this,a)}catch(c){const u=c;if(o&&n)throw u;return i(u)}o||(l&&l.then&&typeof l.then=="function"?l.then(s,i):l instanceof Error?i(l):s(l))}function i(a,...o){n||(n=!0,e(a,...o))}function s(a){i(null,a)}}const cf={basename:X_n,dirname:Q_n,extname:ekn,join:tkn,sep:"/"};function X_n(t,e){if(e!==void 0&&typeof e!="string")throw new TypeError('"ext" argument must be a string');Ck(t);let n=0,r=-1,i=t.length,s;if(e===void 0||e.length===0||e.length>t.length){for(;i--;)if(t.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":t.slice(n,r)}if(e===t)return"";let a=-1,o=e.length-1;for(;i--;)if(t.codePointAt(i)===47){if(s){n=i+1;break}}else a<0&&(s=!0,a=i+1),o>-1&&(t.codePointAt(i)===e.codePointAt(o--)?o<0&&(r=i):(o=-1,r=a));return n===r?r=a:r<0&&(r=t.length),t.slice(n,r)}function Q_n(t){if(Ck(t),t.length===0)return".";let e=-1,n=t.length,r;for(;--n;)if(t.codePointAt(n)===47){if(r){e=n;break}}else r||(r=!0);return e<0?t.codePointAt(0)===47?"/":".":e===1&&t.codePointAt(0)===47?"//":t.slice(0,e)}function ekn(t){Ck(t);let e=t.length,n=-1,r=0,i=-1,s=0,a;for(;e--;){const o=t.codePointAt(e);if(o===47){if(a){r=e+1;break}continue}n<0&&(a=!0,n=e+1),o===46?i<0?i=e:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":t.slice(i,n)}function tkn(...t){let e=-1,n;for(;++e0&&t.codePointAt(t.length-1)===47&&(n+="/"),e?"/"+n:n}function rkn(t,e){let n="",r=0,i=-1,s=0,a=-1,o,l;for(;++a<=t.length;){if(a2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=a,s=0;continue}}else if(n.length>0){n="",r=0,i=a,s=0;continue}}e&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+t.slice(i+1,a):n=t.slice(i+1,a),r=a-i-1;i=a,s=0}else o===46&&s>-1?s++:s=-1}return n}function Ck(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const ikn={cwd:skn};function skn(){return"/"}function BV(t){return!!(t!==null&&typeof t=="object"&&"href"in t&&t.href&&"protocol"in t&&t.protocol&&t.auth===void 0)}function akn(t){if(typeof t=="string")t=new URL(t);else if(!BV(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if(t.protocol!=="file:"){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return okn(t)}function okn(t){if(t.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const e=t.pathname;let n=-1;for(;++n0){let[h,...m]=u;const p=r[f][1];FV(p)&&FV(h)&&(h=ez(!0,p,h)),r[f]=[c,h,...m]}}}}const dkn=new gne().freeze();function iz(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `parser`")}function sz(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `compiler`")}function az(t,e){if(e)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function K2e(t){if(!FV(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function Y2e(t,e,n){if(!n)throw new Error("`"+t+"` finished async. Use `"+e+"` instead")}function p8(t){return fkn(t)?t:new iGe(t)}function fkn(t){return!!(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function hkn(t){return typeof t=="string"||pkn(t)}function pkn(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const mkn="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",J2e=[],X2e={allowDangerousHtml:!0},gkn=/^(https?|ircs?|mailto|xmpp)$/i,vkn=[{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:"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 ykn(t){const e=bkn(t),n=xkn(t);return wkn(e.runSync(e.parse(n),n),t)}function bkn(t){const e=t.rehypePlugins||J2e,n=t.remarkPlugins||J2e,r=t.remarkRehypeOptions?{...t.remarkRehypeOptions,...X2e}:X2e;return dkn().use(l_n).use(n).use(G_n,r).use(e)}function xkn(t){const e=t.children||"",n=new iGe;return typeof e=="string"&&(n.value=e),n}function wkn(t,e){const n=e.allowedElements,r=e.allowElement,i=e.components,s=e.disallowedElements,a=e.skipHtml,o=e.unwrapDisallowed,l=e.urlTransform||_kn;for(const u of vkn)Object.hasOwn(e,u.from)&&(""+u.from+(u.to?"use `"+u.to+"` instead":"remove it")+mkn+u.id,void 0);return e.className&&(t={type:"element",tagName:"div",properties:{className:e.className},children:t.type==="root"?t.children:[t]}),Vy(t,c),Vxn(t,{Fragment:y.Fragment,components:i,ignoreInvalidStyle:!0,jsx:y.jsx,jsxs:y.jsxs,passKeys:!0,passNode:!0});function c(u,d,f){if(u.type==="raw"&&f&&typeof d=="number")return a?f.children.splice(d,1):f.children[d]={type:"text",value:u.value},d;if(u.type==="element"){let h;for(h in Jj)if(Object.hasOwn(Jj,h)&&Object.hasOwn(u.properties,h)){const m=u.properties[h],p=Jj[h];(p===null||p.includes(u.tagName))&&(u.properties[h]=l(String(m||""),h,u))}}if(u.type==="element"){let h=n?!n.includes(u.tagName):s?s.includes(u.tagName):!1;if(!h&&r&&typeof d=="number"&&(h=!r(u,d,f)),h&&f&&typeof d=="number")return o&&u.children?f.children.splice(d,1,...u.children):f.children.splice(d,1),d}}}function _kn(t){const e=t.indexOf(":"),n=t.indexOf("?"),r=t.indexOf("#"),i=t.indexOf("/");return e===-1||i!==-1&&e>i||n!==-1&&e>n||r!==-1&&e>r||gkn.test(t.slice(0,e))?t:""}const kkn=Dn.div` + position: fixed; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.35); + backdrop-filter: blur(0.5px); + z-index: 100000; + flex-direction: column; +`,Skn=Dn.div` + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: ${fs}; + background-color: ${qo}; + border-radius: ${oa}; + display: flex; + flex-direction: column; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + word-wrap: break-word; +`,Ckn=t=>{const e=n=>{n.key==="Escape"&&t.onClose()};return!g.isValidElement(t.message)&&typeof t.message!="string"?null:y.jsx(kkn,{onClick:t.onClose,hidden:!t.showDialog,onKeyDown:e,tabIndex:-1,children:y.jsxs(Skn,{className:"xs:w-[90%] no-scrollbar max-h-[95%] w-[92%] max-w-[600px] overflow-auto sm:w-[88%] md:w-[80%]",onClick:n=>{n.stopPropagation()},children:[y.jsx(e4e,{onClick:t.onClose,children:y.jsx(Hd,{className:"z-50 h-5 w-5 hover:brightness-125"})}),typeof t.message=="string"?y.jsx(ykn,{children:t.message||""}):wt.isValidElement(t.message)?t.message:null]})})},Ekn=()=>{const t=g.useContext(qt),e=yZe(),n=g.useRef(km()),[r,i]=g.useState(null),[s,a]=g.useState(!1),[o,l]=g.useState(!1),[c,u]=g.useState(!1),d=wt.useRef(null),f=g.useRef(null),h=g.useRef(null);function m(p){if(p.preventDefault(),h.current){const v=window.getSelection();v==null||v.removeAllRanges(),v==null||v.addRange(h.current)}i(null)}return g.useEffect(()=>{function p(){i(null)}function v(w){w.preventDefault()}function x(w){var E;if((E=d.current)!=null&&E.contains(w.target)||i(null),w.button===2){w.preventDefault(),h.current=null,f.current=null;const S=window.getSelection();let _=!1;if(S&&S.rangeCount>0){const A=S.getRangeAt(0),$=A.toString();if(h.current=A.cloneRange(),$.length>0&&$){f.current=$;const O=A.getClientRects();for(let D=0;D=N.left&&w.clientX<=N.right&&w.clientY>=N.top&&w.clientY<=N.bottom){_=!0;break}}}}let C=!1;w.target&&"isContentEditable"in w.target&&typeof w.target.isContentEditable=="boolean"&&(C=w.target.isContentEditable),a(!!f.current&&_),l(!!(C&&f.current&&_)),u(C);const T=w.clientX>window.innerWidth/2,M=w.clientY>window.innerHeight/2;i(T?M?{bottom:window.innerHeight-w.clientY,right:window.innerWidth-w.clientX}:{top:w.clientY,right:window.innerWidth-w.clientX}:M?{bottom:window.innerHeight-w.clientY,left:w.clientX}:{top:w.clientY,left:w.clientX})}}return i(null),e&&n.current!=="mac"&&(document.addEventListener("mousedown",x),document.addEventListener("mouseleave",p),document.addEventListener("contextmenu",v)),()=>{document.removeEventListener("mousedown",x),document.removeEventListener("mouseleave",p),document.removeEventListener("contextmenu",v)}},[e]),n.current==="mac"||!e||!r?null:y.jsxs("div",{className:"bg-vsc-editor-background absolute flex flex-col gap-1.5 overflow-hidden rounded-md border border-solid border-gray-500 px-3 py-1.5",style:{...r,zIndex:9999},ref:d,children:[s&&y.jsx("div",{className:"cursor-pointer hover:opacity-90",onClick:p=>{m(p),document.execCommand("copy")},children:"Copy"}),o&&y.jsx("div",{className:"cursor-pointer hover:opacity-90",onClick:p=>{m(p),document.execCommand("cut")},children:"Cut"}),y.jsx("div",{className:"cursor-pointer hover:opacity-90",onClick:p=>{m(p),t.post("toggleDevTools",void 0)},children:"Open Dev Tools"})]})};function $kn(){const{pathname:t}=Tb(),[e]=z3e(),n=s2();return g.useEffect(()=>{if(t&&n){let r=window.origin+t;e.toString()&&(r=r+`?${e.toString()}`),n.capture("$pageview",{$current_url:r,pathname:t})}},[t,e,n]),null}const Tkn=Dn(ist)` + height: 100%; + position: relative; + overflow-x: hidden; +`,Ikn=Dn.div` + display: grid; + grid-template-rows: 1fr auto; + height: 100vh; + overflow-x: visible; +`,Akn=()=>{const[t,e]=g.useState(!1),n=wa(),r=Tb(),i=vr(),s=H$(),a=g.useContext(qt),{mainEditor:o}=nh(),l=He(f=>f.ui.dialogMessage),c=He(f=>f.ui.showDialog),u=He(f=>f.session.isInEdit),d=r.pathname===Yl.HOME||r.pathname===Yl.HOME_INDEX;return g.useEffect(()=>{(async()=>{const f=await a.request("controlPlane/getEnvironment",void 0);f.status==="success"&&e(f.content.AUTH_TYPE.includes("staging"))})()},[]),Er("newSession",async()=>{n(Yl.HOME),u?await i(Of({})):await i(Qu({openNewSession:!0,generateTitle:!0}))},[u]),Er("isContinueInputFocused",async()=>!1,[d],d),Er("focusContinueInputWithNewSession",async()=>{n(Yl.HOME),u?await i(Of({openNewSession:!0})):await i(Qu({openNewSession:!0,generateTitle:!0}))},[d,u],d),Er("addModel",async()=>{n("/models")},[n]),Er("navigateTo",async f=>{f.toggle&&r.pathname===f.path?n("/"):n(f.path)},[r,n]),Er("setupLocalConfig",async()=>{s.open(Po.LOCAL)},[]),Er("freeTrialExceeded",async()=>{i(hi(!0)),s.setActiveTab(Po.MODELS_ADD_ON),i(Ri(y.jsx("div",{className:"flex-1",children:y.jsx(e7e,{isDialog:!0})})))},[]),Er("setupApiKey",async()=>{s.open(Po.API_KEY)},[]),Er("focusEdit",async()=>{await a.request("edit/addCurrentSelection",void 0),await i(Ixn({editorContent:o==null?void 0:o.getJSON()})),o==null||o.commands.focus()},[a,o]),Er("setCodeToEdit",async f=>{i(L0t({codeToEdit:f}))},[]),Er("exitEditMode",async()=>{await i(Of({}))},[]),Er("generateRule",async()=>{i(hi(!0)),i(Ri(y.jsx(mNe,{})))},[]),g.useEffect(()=>{const f=h=>{var m;if(mg(h)&&h.code==="KeyC"){const p=(m=window.getSelection())==null?void 0:m.toString();p&&setTimeout(()=>{navigator.clipboard.writeText(p)},100)}};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[]),g.useEffect(()=>{Pwt()&&d&&s.open()},[d]),y.jsx(Eat,{children:y.jsx(Cat,{children:y.jsx(M0t,{children:y.jsxs(Tkn,{children:[t&&y.jsx("span",{title:"Staging environment",className:"absolute right-0 mx-1.5 h-1.5 w-1.5 rounded-full",style:{backgroundColor:"var(--vscode-list-warningForeground)"}}),y.jsx(Ekn,{}),y.jsxs("div",{style:{scrollbarGutter:"stable both-edges",minHeight:"100%",display:"grid",gridTemplateRows:"1fr auto"},children:[y.jsx(Ckn,{showDialog:c,onEnter:()=>{i(hi(!1))},onClose:()=>{i(hi(!1))},message:l}),y.jsxs(Ikn,{children:[y.jsx($kn,{}),y.jsx(Yrt,{}),!d&&y.jsx(tZe,{})]})]}),y.jsx("div",{style:{fontSize:vo(-4)},id:"tooltip-portal-div"})]})})})})},Okn=["allowedWithPermission","allowedWithoutPermission","disabled"];function Dkn(t){var r,i;const e={[ti.ReadFile]:["builtin_read_file"],[ti.EditExistingFile]:["builtin_edit_existing_file"],[ti.ReadCurrentlyOpenFile]:["builtin_read_currently_open_file"],[ti.CreateNewFile]:["builtin_create_new_file"],[ti.RunTerminalCommand]:["builtin_run_terminal_command"],[ti.GrepSearch]:["builtin_grep_search"],[ti.FileGlobSearch]:["builtin_file_glob_search"],[ti.SearchWeb]:["builtin_search_web"],[ti.ViewDiff]:["builtin_view_diff"],[ti.LSTool]:["builtin_ls"],[ti.CreateRuleBlock]:["builtin_create_rule_block"],[ti.RequestRule]:["builtin_request_rule"],[ti.FetchUrlContent]:["builtin_fetch_url_content"],[ti.CodebaseTool]:["builtin_codebase"],[ti.ViewRepoMap]:["builtin_view_repo_map"],[ti.ViewSubdirectory]:["builtin_view_subdirectory"]},n=localStorage.getItem("persist:root");if(n){const s=(r=JSON.parse(n))==null?void 0:r.ui;if(s){const a=(i=JSON.parse(s))==null?void 0:i.toolSettings;if(a){let o=0;Object.entries(e).forEach(([l,c])=>{for(const u of c)u in a&&Okn.includes(a[u])&&(t(n7e({toolName:l,policy:a[u]})),t(MSt(u)),o++)}),o>0&&console.log(`Migrated ${o} tool policies successfully.`)}}}}function Mkn(t){Dkn(t)}function Nkn(){const t=vr(),e=g.useContext(qt),n=He(d=>d.session.history),r=He(d=>d.session.isInEdit),i=He(d=>d.profiles.selectedProfileId),s=He(d=>d.ui.reasoningSettings),a=g.useRef(!1),o=He(d=>d.session.id),l=He(d=>d.session.lastSessionId),[c]=g.useState(o||l),u=g.useCallback(async(d,f)=>{var C,T,M,A;const{result:h,profileId:m,organizations:p,selectedOrgId:v}=f;if(d&&a.current)return;a.current=!0,t(b4e(p)),t(pZ(v)),t(Kv(m)),t(mat(h)),m&&m!==i&&t(_at({defaultSlashCommands:[],profileId:m})),(T=(C=h.config)==null?void 0:C.ui)!=null&&T.fontSize&&(jd("fontSize",h.config.ui.fontSize),document.body.style.fontSize=`${h.config.ui.fontSize}px`);const w=(M=h.config)==null?void 0:M.selectedModelByRole.chat,E=vZe(w),S=((A=w==null?void 0:w.completionOptions)==null?void 0:A.reasoning)===!1,_=w!=null&&w.title?s[w.title]!==!1:!0;t(mZe(E&&!S&&_))},[t,a,i,s]);return g.useEffect(()=>{async function d(){t(fZe(!0)),t(D9(!0));const h=await e.request("config/getSerializedProfileInfo",void 0);h.status==="success"&&await u(!0,h.content),t(D9(!1)),c&&await t(x_({sessionId:c,saveCurrentSession:!1}))}d();const f=setInterval(()=>{a.current?(e.post("docs/initStatuses",void 0),t(u0e()),t(AI({})),clearInterval(f)):d()},2e3);return()=>clearInterval(f)},[a,e,c]),Er("configUpdate",async d=>{d&&await u(!1,d)},[u]),g.useEffect(()=>{o&&t(u0e())},[o]),g.useEffect(()=>{t(ap());const d=Go();Yit(d),d&&(e.request("jetbrains/getColors",void 0).then(f=>{f.status==="success"&&DU(f.content)}),e.request("jetbrains/onLoad",void 0).then(f=>{if(f.status==="error")return;const h=f.content;window.windowId=h.windowId,window.serverUrl=h.serverUrl,window.workspacePaths=h.workspacePaths,window.vscMachineId=h.vscMachineId,window.vscMediaUrl=h.vscMediaUrl}))},[]),Er("jetbrains/setColors",async d=>{DU(d)},[]),Er("getWebviewHistoryLength",async()=>n.length,[n]),Er("getCurrentSessionId",async()=>o,[o]),Er("setInactive",async()=>{t(ap())}),Er("loadAgentSession",async d=>{t(nd(d.session)),t(f0("agent"))}),Er("setTTSActive",async d=>{t(PSt(d))}),Er("addContextItem",async d=>{t(G3n({index:d.historyIndex,contextItems:[d.item]}))}),Er("indexing/statusUpdate",async d=>{t(XY(d))}),Er("updateApplyState",async d=>{t(cNe(d))},[]),g.useEffect(()=>{r||t(P0t(n.length===0))},[r,n]),g.useEffect(()=>{Mkn(t)},[]),y.jsx(y.Fragment,{})}function Rkn({label:t,icon:e,isActive:n,onClick:r,tabId:i}){return y.jsx(Ln,{content:t,place:"right",className:"text-xs md:!hidden",children:y.jsxs("div",{className:`flex cursor-pointer items-center justify-center gap-1.5 rounded-md hover:brightness-125 md:justify-start ${n?"bg-vsc-input-background px-2 py-2":"text-description px-2 py-2"}`,onClick:r,"data-testid":i?`tab-${i}`:void 0,children:[e,y.jsx("span",{className:"text-description hidden md:inline",children:t})]})})}function Q2e({tabs:t,activeTab:e,onTabClick:n,label:r,showTopDivider:i=!1,showBottomDivider:s=!1,className:a=""}){return y.jsxs("div",{className:a,children:[i&&y.jsx(bo,{}),r&&y.jsx("div",{className:"text-description-muted text-2xs mb-1 ml-1.5 hidden font-medium md:block md:pt-1",children:r}),t.map(o=>y.jsx(Rkn,{label:o.label,icon:o.icon,isActive:e===o.id,onClick:()=>n(o.id)},o.id)),s&&y.jsx(bo,{})]})}const Lkn=["highlightedCode","focusContinueInput","focusContinueInputWithoutClear","newSession"],sGe=()=>{const t=wa();for(const e of Lkn)Er(e,async n=>{t("/"),setTimeout(()=>{window.postMessage({messageType:e,data:n,messageId:Ma()},"*")},200)},[t])};function p0({title:t,children:e,className:n=""}){return y.jsxs("div",{className:n,children:[t&&y.jsx("h3",{className:"mb-4 text-base font-semibold",children:t}),e]})}function go({title:t,subtext:e,onAddClick:n,addButtonTooltip:r="Add item",className:i="",variant:s="default",showAddButton:a=!0}){const o=s==="sm",l=o?"mb-4":"mb-6",c=o?"text-sm font-semibold":"text-xl font-semibold",u=o?"h3":"h2";return y.jsxs("div",{className:_l(`${l} flex items-center justify-between`,i),children:[y.jsxs("div",{className:"flex flex-col",children:[y.jsx(u,{className:`my-0 ${c}`,children:t}),e&&y.jsx("p",{className:"text-description mt-1 text-sm",children:e})]}),a&&n&&y.jsx(Ln,{content:r,children:y.jsx(ai,{onClick:n,variant:"icon",size:o?"sm":"lg",children:y.jsx(K0,{className:o?"h-2.5 w-2.5":"h-3 w-3"})})})]})}function Pkn(){const{profiles:t,selectedProfile:e}=as(),n=g.useContext(qt),r=He(a=>a.config.configError);function i(){n.request("config/newAssistantFile",void 0)}function s(a){n.post("config/openProfile",{profileId:a})}return y.jsxs(y.Fragment,{children:[y.jsx(go,{title:"Configs",onAddClick:i,addButtonTooltip:"Add config"}),y.jsx(na,{children:t&&t.length>0?t.map((a,o)=>{const c=a.id===(e==null?void 0:e.id)?r:a.errors,u=c&&c.some(f=>f.fatal),d=c&&c.length>0;return y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center justify-between gap-3",children:[y.jsxs("div",{className:"flex items-baseline gap-3",children:[y.jsx("div",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center",children:y.jsx(IJ,{assistant:a})}),y.jsxs("div",{className:"flex flex-1 flex-col gap-2",children:[y.jsx("h3",{className:`my-2 text-sm font-medium ${u?"text-error":d?"text-yellow-500":""}`,children:a.title}),c&&c.length>0&&y.jsx("div",{className:"space-y-1 overflow-hidden",children:c.map((f,h)=>y.jsx("div",{onClick:m=>{f.uri&&(m.stopPropagation(),n.post("openFile",{path:f.uri}))},className:`${f.fatal?"text-error bg-error/10":"bg-yellow-500/10 text-yellow-500"} break-all rounded border border-solid border-transparent px-2 py-1 text-xs ${f.uri?"cursor-pointer "+(f.fatal?"hover:border-error":"hover:border-yellow-500"):""}`,children:f.message.split(` +`)[0]},h))})]})]}),y.jsx(Ln,{content:"Open configuration",children:y.jsx(ai,{onClick:()=>s(a.id),variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-6 w-6 p-0",children:y.jsx(Wc,{className:"h-4 w-4 flex-shrink-0"})})})]}),o({uparrow:"UpArrow ↑",downarrow:"DownArrow ↓",leftarrow:"LeftArrow ←",rightarrow:"RightArrow →",enter:"Enter ⏎",esc:"Esc",backspace:t==="mac"?"Delete ⌫":"Backspace ⌫",delete:t==="mac"?"Delete ⌫":"Backspace ⌫","⌫":t==="mac"?"Delete ⌫":"Backspace ⌫"}),Fkn=(t,e)=>{if(!t||typeof t!="string")return console.warn("Invalid shortcut provided:",t),[];const n=zkn(e);return t.split(",").map(r=>r.trim().split(" ").filter(i=>i).map(i=>{const s=i.toLowerCase();return aGe.includes(s)?Ho():oGe.includes(s)?S$():n[s]||Bkn(i)})).filter(r=>r.length>0)},Bkn=t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase(),Ukn=t=>t&&t.length===1&&/^[a-zA-Z0-9]$/.test(t),f$=({children:t})=>{const e=km();if(!t||typeof t!="string")return y.jsx("span",{children:"Error: Invalid shortcut key"});const n=Fkn(t,e);return y.jsx(y.Fragment,{children:n.map((r,i)=>y.jsxs(wt.Fragment,{children:[r.map((s,a)=>y.jsxs(wt.Fragment,{children:[y.jsx("kbd",{className:`keyboard-key ${!Ukn(s)||s==="⌫"?"keyboard-key-special":"keyboard-key-normal"}`,style:{fontSize:s&&jkn.includes(s.toLowerCase())&&e==="mac"?`${eve-2}px`:`${eve-3}px`},children:s||"?"}),a{if(!i&&r){const f=d.target;(!f.closest('button, input, textarea, select, [role="button"], [role="switch"]')||f.closest("[data-config-row]")===d.currentTarget)&&r()}};return r?y.jsxs(ai,{variant:"ghost",className:_l(o,l,c,"!my-0 text-left",a),onClick:u,disabled:i,"data-config-row":!0,children:[y.jsxs("div",{className:"flex flex-col",children:[y.jsx("span",{className:"text-sm font-medium",children:t}),y.jsx("p",{className:"mt-0.5 text-xs text-gray-500",children:e})]}),y.jsxs("div",{className:"flex items-center gap-4",children:[s,n&&y.jsx(n,{className:"h-5 w-5 flex-shrink-0 text-gray-400"})]})]}):y.jsxs("div",{className:_l(o,c,a),"data-config-row":!0,children:[y.jsxs("div",{className:"flex flex-col",children:[y.jsx("span",{className:"text-sm font-medium",children:t}),y.jsx("p",{className:"mt-0.5 text-xs text-gray-500",children:e})]}),y.jsxs("div",{className:"flex items-center gap-4",children:[s,n&&y.jsx(n,{className:"h-5 w-5 flex-shrink-0 text-gray-400"})]})]})}function qkn(t){return y.jsxs("div",{className:`flex flex-col items-start p-3 sm:flex-row sm:items-center ${t.isEven?"":"bg-vsc-editor-background/50"}`,children:[y.jsx("div",{className:"w-full flex-grow pb-2 pr-4 sm:w-auto sm:pb-0",children:y.jsxs("span",{className:"block break-words text-sm",children:[t.description,":"]})}),y.jsx("div",{className:"flex-shrink-0 whitespace-nowrap",children:y.jsx(f$,{children:t.shortcut})})]})}const Hkn=[{shortcut:"cmd '",description:"Toggle Selected Model"},{shortcut:"cmd I",description:"Edit highlighted code"},{shortcut:"cmd L",description:"New Chat / New Chat With Selected Code / Close Continue Sidebar If Chat Already In Focus"},{shortcut:"cmd backspace",description:"Cancel response"},{shortcut:"cmd shift I",description:"Toggle inline edit focus"},{shortcut:"cmd shift L",description:"Focus Current Chat / Add Selected Code To Current Chat / Close Continue Sidebar If Chat Already In Focus"},{shortcut:"cmd shift R",description:"Debug Terminal"},{shortcut:"cmd shift backspace",description:"Reject Diff"},{shortcut:"cmd shift enter",description:"Accept Diff"},{shortcut:"alt cmd N",description:"Reject Top Change in Diff"},{shortcut:"alt cmd Y",description:"Accept Top Change in Diff"},{shortcut:"cmd K cmd A",description:"Toggle Autocomplete Enabled"},{shortcut:"cmd alt space",description:"Force an Autocomplete Trigger"},{shortcut:"cmd K cmd M",description:"Toggle Full Screen"}],Wkn=[{shortcut:"cmd '",description:"Toggle Selected Model"},{shortcut:"cmd I",description:"Edit highlighted code"},{shortcut:"cmd J",description:"New Chat / New Chat With Selected Code / Close Continue Sidebar If Chat Already In Focus"},{shortcut:"cmd backspace",description:"Cancel response"},{shortcut:"cmd shift I",description:"Toggle inline edit focus"},{shortcut:"cmd shift J",description:"Focus Current Chat / Add Selected Code To Current Chat / Close Continue Sidebar If Chat Already In Focus"},{shortcut:"cmd shift backspace",description:"Reject Diff"},{shortcut:"cmd shift enter",description:"Accept Diff"},{shortcut:"alt shift J",description:"Quick Input"},{shortcut:"alt cmd J",description:"Toggle Sidebar"}];function Vkn(){const t=g.useContext(qt),e=wa(),n=vr(),r=He(a=>a.session),i=g.useMemo(()=>Go()?Wkn:Hkn,[]),s=async()=>{const a=await t.request("history/load",{id:r.id});a.status==="success"&&await t.request("showVirtualFile",{name:`${a.content.title}.json`,content:JSON.stringify(a.content,null,2)})};return y.jsxs("div",{className:"flex flex-col",children:[y.jsx(go,{title:"Help Center"}),y.jsxs("div",{className:"space-y-6",children:[y.jsxs("div",{children:[y.jsx("h3",{className:"mb-3 text-base font-medium",children:"Resources"}),y.jsx(na,{className:"!p-0",children:y.jsxs("div",{className:"flex flex-col",children:[y.jsx(hv,{title:"Documentation",description:"Learn how to configure and use Continue",icon:j8,onClick:()=>t.post("openUrl","https://docs.continue.dev/")}),y.jsx(hv,{title:"Have an issue?",description:"Let us know on GitHub and we'll do our best to resolve it",icon:j8,onClick:()=>t.post("openUrl","https://github.com/continuedev/continue/issues/new/choose")}),y.jsx(hv,{title:"Join the community!",description:"Join us on GitHub Discussions to stay up-to-date on the latest developments",icon:j8,onClick:()=>t.post("openUrl","https://github.com/continuedev/continue/discussions")})]})})]}),y.jsxs("div",{children:[y.jsx("h3",{className:"mb-3 text-base font-medium",children:"Tools"}),y.jsx(na,{className:"!p-0",children:y.jsxs("div",{className:"flex flex-col",children:[y.jsx(hv,{title:"Token usage",description:"Daily token usage across models",icon:i_e,onClick:()=>e(Yl.STATS)}),r.history.length>0&&!r.isStreaming&&y.jsx(hv,{title:"View current session history",description:"Open the current chat session file for troubleshooting",icon:Y6e,onClick:s}),y.jsx(hv,{title:"Quickstart",description:"Reopen the quickstart and tutorial file",icon:P6e,onClick:async()=>{e("/"),await n(Qu({openNewSession:!0,generateTitle:!0})),n(B8({show:!0,activeTab:void 0})),t.post("showTutorial",void 0)}}),!1]})})]}),y.jsxs("div",{children:[y.jsx("h3",{className:"mb-3 text-base font-medium",children:"Keyboard Shortcuts"}),y.jsx(na,{className:"!p-0",children:y.jsx("div",{className:"overflow-hidden rounded-md border border-gray-600",children:i.map((a,o)=>y.jsx(qkn,{shortcut:a.shortcut,description:a.description,isEven:o%2===0},o))})})]})]})]})}var fi;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function n(i){throw new Error}t.assertNever=n,t.arrayToEnum=i=>{const s={};for(const a of i)s[a]=a;return s},t.getValidEnumValues=i=>{const s=t.objectKeys(i).filter(o=>typeof i[i[o]]!="number"),a={};for(const o of s)a[o]=i[o];return t.objectValues(a)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&s.push(a);return s},t.find=(i,s)=>{for(const a of i)if(s(a))return a},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(fi||(fi={}));var UV;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(UV||(UV={}));const on=fi.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),zh=t=>{switch(typeof t){case"undefined":return on.undefined;case"string":return on.string;case"number":return Number.isNaN(t)?on.nan:on.number;case"boolean":return on.boolean;case"function":return on.function;case"bigint":return on.bigint;case"symbol":return on.symbol;case"object":return Array.isArray(t)?on.array:t===null?on.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?on.promise:typeof Map<"u"&&t instanceof Map?on.map:typeof Set<"u"&&t instanceof Set?on.set:typeof Date<"u"&&t instanceof Date?on.date:on.object;default:return on.unknown}},Ct=fi.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Zkn=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:");class qc extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},r={_errors:[]},i=s=>{for(const a of s.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let o=r,l=0;for(;ln.message){const n={},r=[];for(const i of this.issues)if(i.path.length>0){const s=i.path[0];n[s]=n[s]||[],n[s].push(e(i))}else r.push(e(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}qc.create=t=>new qc(t);const Sb=(t,e)=>{let n;switch(t.code){case Ct.invalid_type:t.received===on.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Ct.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,fi.jsonStringifyReplacer)}`;break;case Ct.unrecognized_keys:n=`Unrecognized key(s) in object: ${fi.joinValues(t.keys,", ")}`;break;case Ct.invalid_union:n="Invalid input";break;case Ct.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${fi.joinValues(t.options)}`;break;case Ct.invalid_enum_value:n=`Invalid enum value. Expected ${fi.joinValues(t.options)}, received '${t.received}'`;break;case Ct.invalid_arguments:n="Invalid function arguments";break;case Ct.invalid_return_type:n="Invalid function return type";break;case Ct.invalid_date:n="Invalid date";break;case Ct.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:fi.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Ct.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Ct.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Ct.custom:n="Invalid input";break;case Ct.invalid_intersection_types:n="Intersection results could not be merged";break;case Ct.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Ct.not_finite:n="Number must be finite";break;default:n=e.defaultError,fi.assertNever(t)}return{message:n}};let lGe=Sb;function Gkn(t){lGe=t}function h$(){return lGe}const p$=t=>{const{data:e,path:n,errorMaps:r,issueData:i}=t,s=[...n,...i.path||[]],a={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let o="";const l=r.filter(c=>!!c).slice().reverse();for(const c of l)o=c(a,{data:e,defaultError:o}).message;return{...i,path:s,message:o}},Kkn=[];function Jt(t,e){const n=h$(),r=p$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===Sb?void 0:Sb].filter(i=>!!i)});t.common.issues.push(r)}class Zo{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const r=[];for(const i of n){if(i.status==="aborted")return ir;i.status==="dirty"&&e.dirty(),r.push(i.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){const r=[];for(const i of n){const s=await i.key,a=await i.value;r.push({key:s,value:a})}return Zo.mergeObjectSync(e,r)}static mergeObjectSync(e,n){const r={};for(const i of n){const{key:s,value:a}=i;if(s.status==="aborted"||a.status==="aborted")return ir;s.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[s.value]=a.value)}return{status:e.value,value:r}}}const ir=Object.freeze({status:"aborted"}),Zv=t=>({status:"dirty",value:t}),Al=t=>({status:"valid",value:t}),qV=t=>t.status==="aborted",HV=t=>t.status==="dirty",Kg=t=>t.status==="valid",n6=t=>typeof Promise<"u"&&t instanceof Promise;var An;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(An||(An={}));class Zf{constructor(e,n,r,i){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const tve=(t,e)=>{if(Kg(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new qc(t.common.issues);return this._error=n,this._error}}};function Tr(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:r,description:i}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(a,o)=>{const{message:l}=t;return a.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??r??o.defaultError}:a.code!=="invalid_type"?{message:o.defaultError}:{message:l??n??o.defaultError}},description:i}}class zr{get description(){return this._def.description}_getType(e){return zh(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:zh(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Zo,ctx:{common:e.parent.common,data:e.data,parsedType:zh(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(n6(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){const r={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zh(e)},i=this._parseSync({data:e,path:r.path,parent:r});return tve(r,i)}"~validate"(e){var r,i;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zh(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return Kg(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(i=(r=s==null?void 0:s.message)==null?void 0:r.toLowerCase())!=null&&i.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>Kg(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:zh(e)},i=this._parse({data:e,path:r.path,parent:r}),s=await(n6(i)?i:Promise.resolve(i));return tve(r,s)}refine(e,n){const r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{const a=e(i),o=()=>s.addIssue({code:Ct.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(l=>l?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,n){return this._refinement((r,i)=>e(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(e){return new Ud({schema:this,typeName:cr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Df.create(this,this._def)}nullable(){return _m.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ld.create(this)}promise(){return Eb.create(this,this._def)}or(e){return a6.create([this,e],this._def)}and(e){return o6.create(this,e,this._def)}transform(e){return new Ud({...Tr(this._def),schema:this,typeName:cr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new f6({...Tr(this._def),innerType:this,defaultValue:n,typeName:cr.ZodDefault})}brand(){return new vne({typeName:cr.ZodBranded,type:this,...Tr(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new h6({...Tr(this._def),innerType:this,catchValue:n,typeName:cr.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return Ek.create(this,e)}readonly(){return p6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Ykn=/^c[^\s-]{8,}$/i,Jkn=/^[0-9a-z]+$/,Xkn=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qkn=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,e7n=/^[a-z0-9_-]{21}$/i,t7n=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,n7n=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,r7n=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,i7n="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let oz;const s7n=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,a7n=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,o7n=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,l7n=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,c7n=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,u7n=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,cGe="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",d7n=new RegExp(`^${cGe}$`);function uGe(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function f7n(t){return new RegExp(`^${uGe(t)}$`)}function dGe(t){let e=`${cGe}T${uGe(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function h7n(t,e){return!!((e==="v4"||!e)&&s7n.test(t)||(e==="v6"||!e)&&o7n.test(t))}function p7n(t,e){if(!t7n.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function m7n(t,e){return!!((e==="v4"||!e)&&a7n.test(t)||(e==="v6"||!e)&&l7n.test(t))}class Md extends zr{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==on.string){const s=this._getOrReturnCtx(e);return Jt(s,{code:Ct.invalid_type,expected:on.string,received:s.parsedType}),ir}const r=new Zo;let i;for(const s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(i=this._getOrReturnCtx(e,i),Jt(i,{code:Ct.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const a=e.data.length>s.value,o=e.data.lengthe.test(i),{validation:n,code:Ct.invalid_string,...An.errToObj(r)})}_addCheck(e){return new Md({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...An.errToObj(e)})}url(e){return this._addCheck({kind:"url",...An.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...An.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...An.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...An.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...An.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...An.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...An.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...An.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...An.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...An.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...An.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...An.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...An.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...An.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...An.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...An.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...An.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...An.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...An.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...An.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...An.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...An.errToObj(n)})}nonempty(e){return this.min(1,An.errToObj(e))}trim(){return new Md({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Md({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Md({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Md({checks:[],typeName:cr.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...Tr(t)});function g7n(t,e){const n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(t.toFixed(i).replace(".","")),a=Number.parseInt(e.toFixed(i).replace(".",""));return s%a/10**i}class bm extends zr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==on.number){const s=this._getOrReturnCtx(e);return Jt(s,{code:Ct.invalid_type,expected:on.number,received:s.parsedType}),ir}let r;const i=new Zo;for(const s of this._def.checks)s.kind==="int"?fi.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?g7n(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.not_finite,message:s.message}),i.dirty()):fi.assertNever(s);return{status:i.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,An.toString(n))}gt(e,n){return this.setLimit("min",e,!1,An.toString(n))}lte(e,n){return this.setLimit("max",e,!0,An.toString(n))}lt(e,n){return this.setLimit("max",e,!1,An.toString(n))}setLimit(e,n,r,i){return new bm({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:An.toString(i)}]})}_addCheck(e){return new bm({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:An.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:An.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:An.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:An.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:An.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:An.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:An.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:An.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:An.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuee.kind==="int"||e.kind==="multipleOf"&&fi.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.valuenew bm({checks:[],typeName:cr.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...Tr(t)});class xm extends zr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==on.bigint)return this._getInvalidInput(e);let r;const i=new Zo;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Jt(r,{code:Ct.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):fi.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return Jt(n,{code:Ct.invalid_type,expected:on.bigint,received:n.parsedType}),ir}gte(e,n){return this.setLimit("min",e,!0,An.toString(n))}gt(e,n){return this.setLimit("min",e,!1,An.toString(n))}lte(e,n){return this.setLimit("max",e,!0,An.toString(n))}lt(e,n){return this.setLimit("max",e,!1,An.toString(n))}setLimit(e,n,r,i){return new xm({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:An.toString(i)}]})}_addCheck(e){return new xm({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:An.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:An.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:An.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:An.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:An.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew xm({checks:[],typeName:cr.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...Tr(t)});class r6 extends zr{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==on.boolean){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.boolean,received:r.parsedType}),ir}return Al(e.data)}}r6.create=t=>new r6({typeName:cr.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...Tr(t)});class Yg extends zr{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==on.date){const s=this._getOrReturnCtx(e);return Jt(s,{code:Ct.invalid_type,expected:on.date,received:s.parsedType}),ir}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return Jt(s,{code:Ct.invalid_date}),ir}const r=new Zo;let i;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(i=this._getOrReturnCtx(e,i),Jt(i,{code:Ct.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):fi.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Yg({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:An.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:An.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.valuenew Yg({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:cr.ZodDate,...Tr(t)});class m$ extends zr{_parse(e){if(this._getType(e)!==on.symbol){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.symbol,received:r.parsedType}),ir}return Al(e.data)}}m$.create=t=>new m$({typeName:cr.ZodSymbol,...Tr(t)});class i6 extends zr{_parse(e){if(this._getType(e)!==on.undefined){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.undefined,received:r.parsedType}),ir}return Al(e.data)}}i6.create=t=>new i6({typeName:cr.ZodUndefined,...Tr(t)});class s6 extends zr{_parse(e){if(this._getType(e)!==on.null){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.null,received:r.parsedType}),ir}return Al(e.data)}}s6.create=t=>new s6({typeName:cr.ZodNull,...Tr(t)});class Cb extends zr{constructor(){super(...arguments),this._any=!0}_parse(e){return Al(e.data)}}Cb.create=t=>new Cb({typeName:cr.ZodAny,...Tr(t)});class hg extends zr{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Al(e.data)}}hg.create=t=>new hg({typeName:cr.ZodUnknown,...Tr(t)});class Ep extends zr{_parse(e){const n=this._getOrReturnCtx(e);return Jt(n,{code:Ct.invalid_type,expected:on.never,received:n.parsedType}),ir}}Ep.create=t=>new Ep({typeName:cr.ZodNever,...Tr(t)});class g$ extends zr{_parse(e){if(this._getType(e)!==on.undefined){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.void,received:r.parsedType}),ir}return Al(e.data)}}g$.create=t=>new g$({typeName:cr.ZodVoid,...Tr(t)});class Ld extends zr{_parse(e){const{ctx:n,status:r}=this._processInputParams(e),i=this._def;if(n.parsedType!==on.array)return Jt(n,{code:Ct.invalid_type,expected:on.array,received:n.parsedType}),ir;if(i.exactLength!==null){const a=n.data.length>i.exactLength.value,o=n.data.lengthi.maxLength.value&&(Jt(n,{code:Ct.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,o)=>i.type._parseAsync(new Zf(n,a,n.path,o)))).then(a=>Zo.mergeArray(r,a));const s=[...n.data].map((a,o)=>i.type._parseSync(new Zf(n,a,n.path,o)));return Zo.mergeArray(r,s)}get element(){return this._def.type}min(e,n){return new Ld({...this._def,minLength:{value:e,message:An.toString(n)}})}max(e,n){return new Ld({...this._def,maxLength:{value:e,message:An.toString(n)}})}length(e,n){return new Ld({...this._def,exactLength:{value:e,message:An.toString(n)}})}nonempty(e){return this.min(1,e)}}Ld.create=(t,e)=>new Ld({type:t,minLength:null,maxLength:null,exactLength:null,typeName:cr.ZodArray,...Tr(e)});function Av(t){if(t instanceof Rs){const e={};for(const n in t.shape){const r=t.shape[n];e[n]=Df.create(Av(r))}return new Rs({...t._def,shape:()=>e})}else return t instanceof Ld?new Ld({...t._def,type:Av(t.element)}):t instanceof Df?Df.create(Av(t.unwrap())):t instanceof _m?_m.create(Av(t.unwrap())):t instanceof Gf?Gf.create(t.items.map(e=>Av(e))):t}class Rs extends zr{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=fi.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==on.object){const c=this._getOrReturnCtx(e);return Jt(c,{code:Ct.invalid_type,expected:on.object,received:c.parsedType}),ir}const{status:r,ctx:i}=this._processInputParams(e),{shape:s,keys:a}=this._getCached(),o=[];if(!(this._def.catchall instanceof Ep&&this._def.unknownKeys==="strip"))for(const c in i.data)a.includes(c)||o.push(c);const l=[];for(const c of a){const u=s[c],d=i.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new Zf(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ep){const c=this._def.unknownKeys;if(c==="passthrough")for(const u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:i.data[u]}});else if(c==="strict")o.length>0&&(Jt(i,{code:Ct.unrecognized_keys,keys:o}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const c=this._def.catchall;for(const u of o){const d=i.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new Zf(i,d,i.path,u)),alwaysSet:u in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const c=[];for(const u of l){const d=await u.key,f=await u.value;c.push({key:d,value:f,alwaysSet:u.alwaysSet})}return c}).then(c=>Zo.mergeObjectSync(r,c)):Zo.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(e){return An.errToObj,new Rs({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{var s,a;const i=((a=(s=this._def).errorMap)==null?void 0:a.call(s,n,r).message)??r.defaultError;return n.code==="unrecognized_keys"?{message:An.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new Rs({...this._def,unknownKeys:"strip"})}passthrough(){return new Rs({...this._def,unknownKeys:"passthrough"})}extend(e){return new Rs({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new Rs({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:cr.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new Rs({...this._def,catchall:e})}pick(e){const n={};for(const r of fi.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Rs({...this._def,shape:()=>n})}omit(e){const n={};for(const r of fi.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new Rs({...this._def,shape:()=>n})}deepPartial(){return Av(this)}partial(e){const n={};for(const r of fi.objectKeys(this.shape)){const i=this.shape[r];e&&!e[r]?n[r]=i:n[r]=i.optional()}return new Rs({...this._def,shape:()=>n})}required(e){const n={};for(const r of fi.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Df;)s=s._def.innerType;n[r]=s}return new Rs({...this._def,shape:()=>n})}keyof(){return fGe(fi.objectKeys(this.shape))}}Rs.create=(t,e)=>new Rs({shape:()=>t,unknownKeys:"strip",catchall:Ep.create(),typeName:cr.ZodObject,...Tr(e)});Rs.strictCreate=(t,e)=>new Rs({shape:()=>t,unknownKeys:"strict",catchall:Ep.create(),typeName:cr.ZodObject,...Tr(e)});Rs.lazycreate=(t,e)=>new Rs({shape:t,unknownKeys:"strip",catchall:Ep.create(),typeName:cr.ZodObject,...Tr(e)});class a6 extends zr{_parse(e){const{ctx:n}=this._processInputParams(e),r=this._def.options;function i(s){for(const o of s)if(o.result.status==="valid")return o.result;for(const o of s)if(o.result.status==="dirty")return n.common.issues.push(...o.ctx.common.issues),o.result;const a=s.map(o=>new qc(o.ctx.common.issues));return Jt(n,{code:Ct.invalid_union,unionErrors:a}),ir}if(n.common.async)return Promise.all(r.map(async s=>{const a={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let s;const a=[];for(const l of r){const c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&a.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const o=a.map(l=>new qc(l));return Jt(n,{code:Ct.invalid_union,unionErrors:o}),ir}}get options(){return this._def.options}}a6.create=(t,e)=>new a6({options:t,typeName:cr.ZodUnion,...Tr(e)});const Ih=t=>t instanceof c6?Ih(t.schema):t instanceof Ud?Ih(t.innerType()):t instanceof u6?[t.value]:t instanceof wm?t.options:t instanceof d6?fi.objectValues(t.enum):t instanceof f6?Ih(t._def.innerType):t instanceof i6?[void 0]:t instanceof s6?[null]:t instanceof Df?[void 0,...Ih(t.unwrap())]:t instanceof _m?[null,...Ih(t.unwrap())]:t instanceof vne||t instanceof p6?Ih(t.unwrap()):t instanceof h6?Ih(t._def.innerType):[];class SO extends zr{_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==on.object)return Jt(n,{code:Ct.invalid_type,expected:on.object,received:n.parsedType}),ir;const r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Jt(n,{code:Ct.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),ir)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){const i=new Map;for(const s of n){const a=Ih(s.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const o of a){if(i.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);i.set(o,s)}}return new SO({typeName:cr.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:i,...Tr(r)})}}function WV(t,e){const n=zh(t),r=zh(e);if(t===e)return{valid:!0,data:t};if(n===on.object&&r===on.object){const i=fi.objectKeys(e),s=fi.objectKeys(t).filter(o=>i.indexOf(o)!==-1),a={...t,...e};for(const o of s){const l=WV(t[o],e[o]);if(!l.valid)return{valid:!1};a[o]=l.data}return{valid:!0,data:a}}else if(n===on.array&&r===on.array){if(t.length!==e.length)return{valid:!1};const i=[];for(let s=0;s{if(qV(s)||qV(a))return ir;const o=WV(s.value,a.value);return o.valid?((HV(s)||HV(a))&&n.dirty(),{status:n.value,value:o.data}):(Jt(r,{code:Ct.invalid_intersection_types}),ir)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,a])=>i(s,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}o6.create=(t,e,n)=>new o6({left:t,right:e,typeName:cr.ZodIntersection,...Tr(n)});class Gf extends zr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==on.array)return Jt(r,{code:Ct.invalid_type,expected:on.array,received:r.parsedType}),ir;if(r.data.lengththis._def.items.length&&(Jt(r,{code:Ct.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...r.data].map((a,o)=>{const l=this._def.items[o]||this._def.rest;return l?l._parse(new Zf(r,a,r.path,o)):null}).filter(a=>!!a);return r.common.async?Promise.all(s).then(a=>Zo.mergeArray(n,a)):Zo.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new Gf({...this._def,rest:e})}}Gf.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gf({items:t,typeName:cr.ZodTuple,rest:null,...Tr(e)})};class l6 extends zr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==on.object)return Jt(r,{code:Ct.invalid_type,expected:on.object,received:r.parsedType}),ir;const i=[],s=this._def.keyType,a=this._def.valueType;for(const o in r.data)i.push({key:s._parse(new Zf(r,o,r.path,o)),value:a._parse(new Zf(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?Zo.mergeObjectAsync(n,i):Zo.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof zr?new l6({keyType:e,valueType:n,typeName:cr.ZodRecord,...Tr(r)}):new l6({keyType:Md.create(),valueType:e,typeName:cr.ZodRecord,...Tr(n)})}}class v$ extends zr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==on.map)return Jt(r,{code:Ct.invalid_type,expected:on.map,received:r.parsedType}),ir;const i=this._def.keyType,s=this._def.valueType,a=[...r.data.entries()].map(([o,l],c)=>({key:i._parse(new Zf(r,o,r.path,[c,"key"])),value:s._parse(new Zf(r,l,r.path,[c,"value"]))}));if(r.common.async){const o=new Map;return Promise.resolve().then(async()=>{for(const l of a){const c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return ir;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),o.set(c.value,u.value)}return{status:n.value,value:o}})}else{const o=new Map;for(const l of a){const c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return ir;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),o.set(c.value,u.value)}return{status:n.value,value:o}}}}v$.create=(t,e,n)=>new v$({valueType:e,keyType:t,typeName:cr.ZodMap,...Tr(n)});class Jg extends zr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==on.set)return Jt(r,{code:Ct.invalid_type,expected:on.set,received:r.parsedType}),ir;const i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Jt(r,{code:Ct.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const s=this._def.valueType;function a(l){const c=new Set;for(const u of l){if(u.status==="aborted")return ir;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}const o=[...r.data.values()].map((l,c)=>s._parse(new Zf(r,l,r.path,c)));return r.common.async?Promise.all(o).then(l=>a(l)):a(o)}min(e,n){return new Jg({...this._def,minSize:{value:e,message:An.toString(n)}})}max(e,n){return new Jg({...this._def,maxSize:{value:e,message:An.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}Jg.create=(t,e)=>new Jg({valueType:t,minSize:null,maxSize:null,typeName:cr.ZodSet,...Tr(e)});class dy extends zr{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==on.function)return Jt(n,{code:Ct.invalid_type,expected:on.function,received:n.parsedType}),ir;function r(o,l){return p$({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,h$(),Sb].filter(c=>!!c),issueData:{code:Ct.invalid_arguments,argumentsError:l}})}function i(o,l){return p$({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,h$(),Sb].filter(c=>!!c),issueData:{code:Ct.invalid_return_type,returnTypeError:l}})}const s={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof Eb){const o=this;return Al(async function(...l){const c=new qc([]),u=await o._def.args.parseAsync(l,s).catch(h=>{throw c.addIssue(r(l,h)),c}),d=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(d,s).catch(h=>{throw c.addIssue(i(d,h)),c})})}else{const o=this;return Al(function(...l){const c=o._def.args.safeParse(l,s);if(!c.success)throw new qc([r(l,c.error)]);const u=Reflect.apply(a,this,c.data),d=o._def.returns.safeParse(u,s);if(!d.success)throw new qc([i(u,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new dy({...this._def,args:Gf.create(e).rest(hg.create())})}returns(e){return new dy({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new dy({args:e||Gf.create([]).rest(hg.create()),returns:n||hg.create(),typeName:cr.ZodFunction,...Tr(r)})}}class c6 extends zr{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}c6.create=(t,e)=>new c6({getter:t,typeName:cr.ZodLazy,...Tr(e)});class u6 extends zr{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return Jt(n,{received:n.data,code:Ct.invalid_literal,expected:this._def.value}),ir}return{status:"valid",value:e.data}}get value(){return this._def.value}}u6.create=(t,e)=>new u6({value:t,typeName:cr.ZodLiteral,...Tr(e)});function fGe(t,e){return new wm({values:t,typeName:cr.ZodEnum,...Tr(e)})}class wm extends zr{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),r=this._def.values;return Jt(n,{expected:fi.joinValues(r),received:n.parsedType,code:Ct.invalid_type}),ir}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),r=this._def.values;return Jt(n,{received:n.data,code:Ct.invalid_enum_value,options:r}),ir}return Al(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return wm.create(e,{...this._def,...n})}exclude(e,n=this._def){return wm.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}}wm.create=fGe;class d6 extends zr{_parse(e){const n=fi.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==on.string&&r.parsedType!==on.number){const i=fi.objectValues(n);return Jt(r,{expected:fi.joinValues(i),received:r.parsedType,code:Ct.invalid_type}),ir}if(this._cache||(this._cache=new Set(fi.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const i=fi.objectValues(n);return Jt(r,{received:r.data,code:Ct.invalid_enum_value,options:i}),ir}return Al(e.data)}get enum(){return this._def.values}}d6.create=(t,e)=>new d6({values:t,typeName:cr.ZodNativeEnum,...Tr(e)});class Eb extends zr{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==on.promise&&n.common.async===!1)return Jt(n,{code:Ct.invalid_type,expected:on.promise,received:n.parsedType}),ir;const r=n.parsedType===on.promise?n.data:Promise.resolve(n.data);return Al(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Eb.create=(t,e)=>new Eb({type:t,typeName:cr.ZodPromise,...Tr(e)});class Ud extends zr{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===cr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:r}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:a=>{Jt(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const a=i.transform(r.data,s);if(r.common.async)return Promise.resolve(a).then(async o=>{if(n.value==="aborted")return ir;const l=await this._def.schema._parseAsync({data:o,path:r.path,parent:r});return l.status==="aborted"?ir:l.status==="dirty"||n.value==="dirty"?Zv(l.value):l});{if(n.value==="aborted")return ir;const o=this._def.schema._parseSync({data:a,path:r.path,parent:r});return o.status==="aborted"?ir:o.status==="dirty"||n.value==="dirty"?Zv(o.value):o}}if(i.type==="refinement"){const a=o=>{const l=i.refinement(o,s);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?ir:(o.status==="dirty"&&n.dirty(),a(o.value),{status:n.value,value:o.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>o.status==="aborted"?ir:(o.status==="dirty"&&n.dirty(),a(o.value).then(()=>({status:n.value,value:o.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Kg(a))return ir;const o=i.transform(a.value,s);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:o}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Kg(a)?Promise.resolve(i.transform(a.value,s)).then(o=>({status:n.value,value:o})):ir);fi.assertNever(i)}}Ud.create=(t,e,n)=>new Ud({schema:t,typeName:cr.ZodEffects,effect:e,...Tr(n)});Ud.createWithPreprocess=(t,e,n)=>new Ud({schema:e,effect:{type:"preprocess",transform:t},typeName:cr.ZodEffects,...Tr(n)});class Df extends zr{_parse(e){return this._getType(e)===on.undefined?Al(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Df.create=(t,e)=>new Df({innerType:t,typeName:cr.ZodOptional,...Tr(e)});class _m extends zr{_parse(e){return this._getType(e)===on.null?Al(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}_m.create=(t,e)=>new _m({innerType:t,typeName:cr.ZodNullable,...Tr(e)});class f6 extends zr{_parse(e){const{ctx:n}=this._processInputParams(e);let r=n.data;return n.parsedType===on.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}f6.create=(t,e)=>new f6({innerType:t,typeName:cr.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Tr(e)});class h6 extends zr{_parse(e){const{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return n6(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new qc(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new qc(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}h6.create=(t,e)=>new h6({innerType:t,typeName:cr.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Tr(e)});class y$ extends zr{_parse(e){if(this._getType(e)!==on.nan){const r=this._getOrReturnCtx(e);return Jt(r,{code:Ct.invalid_type,expected:on.nan,received:r.parsedType}),ir}return{status:"valid",value:e.data}}}y$.create=t=>new y$({typeName:cr.ZodNaN,...Tr(t)});const v7n=Symbol("zod_brand");class vne extends zr{_parse(e){const{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class Ek extends zr{_parse(e){const{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?ir:s.status==="dirty"?(n.dirty(),Zv(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?ir:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(e,n){return new Ek({in:e,out:n,typeName:cr.ZodPipeline})}}class p6 extends zr{_parse(e){const n=this._def.innerType._parse(e),r=i=>(Kg(i)&&(i.value=Object.freeze(i.value)),i);return n6(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}}p6.create=(t,e)=>new p6({innerType:t,typeName:cr.ZodReadonly,...Tr(e)});function nve(t,e){const n=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof n=="string"?{message:n}:n}function hGe(t,e={},n){return t?Cb.create().superRefine((r,i)=>{const s=t(r);if(s instanceof Promise)return s.then(a=>{if(!a){const o=nve(e,r),l=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:l})}});if(!s){const a=nve(e,r),o=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:o})}}):Cb.create()}const y7n={object:Rs.lazycreate};var cr;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(cr||(cr={}));const b7n=(t,e={message:`Input not instance of ${t.name}`})=>hGe(n=>n instanceof t,e),pGe=Md.create,mGe=bm.create,x7n=y$.create,w7n=xm.create,gGe=r6.create,_7n=Yg.create,k7n=m$.create,S7n=i6.create,C7n=s6.create,E7n=Cb.create,$7n=hg.create,T7n=Ep.create,I7n=g$.create,A7n=Ld.create,O7n=Rs.create,D7n=Rs.strictCreate,M7n=a6.create,N7n=SO.create,R7n=o6.create,L7n=Gf.create,P7n=l6.create,j7n=v$.create,z7n=Jg.create,F7n=dy.create,B7n=c6.create,U7n=u6.create,q7n=wm.create,H7n=d6.create,W7n=Eb.create,rve=Ud.create,V7n=Df.create,Z7n=_m.create,G7n=Ud.createWithPreprocess,K7n=Ek.create,Y7n=()=>pGe().optional(),J7n=()=>mGe().optional(),X7n=()=>gGe().optional(),Q7n={string:(t=>Md.create({...t,coerce:!0})),number:(t=>bm.create({...t,coerce:!0})),boolean:(t=>r6.create({...t,coerce:!0})),bigint:(t=>xm.create({...t,coerce:!0})),date:(t=>Yg.create({...t,coerce:!0}))},eSn=ir,us=Object.freeze(Object.defineProperty({__proto__:null,BRAND:v7n,DIRTY:Zv,EMPTY_PATH:Kkn,INVALID:ir,NEVER:eSn,OK:Al,ParseStatus:Zo,Schema:zr,ZodAny:Cb,ZodArray:Ld,ZodBigInt:xm,ZodBoolean:r6,ZodBranded:vne,ZodCatch:h6,ZodDate:Yg,ZodDefault:f6,ZodDiscriminatedUnion:SO,ZodEffects:Ud,ZodEnum:wm,ZodError:qc,get ZodFirstPartyTypeKind(){return cr},ZodFunction:dy,ZodIntersection:o6,ZodIssueCode:Ct,ZodLazy:c6,ZodLiteral:u6,ZodMap:v$,ZodNaN:y$,ZodNativeEnum:d6,ZodNever:Ep,ZodNull:s6,ZodNullable:_m,ZodNumber:bm,ZodObject:Rs,ZodOptional:Df,ZodParsedType:on,ZodPipeline:Ek,ZodPromise:Eb,ZodReadonly:p6,ZodRecord:l6,ZodSchema:zr,ZodSet:Jg,ZodString:Md,ZodSymbol:m$,ZodTransformer:Ud,ZodTuple:Gf,ZodType:zr,ZodUndefined:i6,ZodUnion:a6,ZodUnknown:hg,ZodVoid:g$,addIssueToContext:Jt,any:E7n,array:A7n,bigint:w7n,boolean:gGe,coerce:Q7n,custom:hGe,date:_7n,datetimeRegex:dGe,defaultErrorMap:Sb,discriminatedUnion:N7n,effect:rve,enum:q7n,function:F7n,getErrorMap:h$,getParsedType:zh,instanceof:b7n,intersection:R7n,isAborted:qV,isAsync:n6,isDirty:HV,isValid:Kg,late:y7n,lazy:B7n,literal:U7n,makeIssue:p$,map:j7n,nan:x7n,nativeEnum:H7n,never:T7n,null:C7n,nullable:Z7n,number:mGe,object:O7n,get objectUtil(){return UV},oboolean:X7n,onumber:J7n,optional:V7n,ostring:Y7n,pipeline:K7n,preprocess:G7n,promise:W7n,quotelessJson:Zkn,record:P7n,set:z7n,setErrorMap:Gkn,strictObject:D7n,string:pGe,symbol:k7n,transformer:rve,tuple:L7n,undefined:S7n,union:M7n,unknown:$7n,get util(){return fi},void:I7n},Symbol.toStringTag,{value:"Module"}));us.object({allowAnonymousTelemetry:us.boolean(),disableIndexing:us.boolean(),disableSessionTitles:us.boolean(),useChromiumForDocsCrawling:us.boolean(),readResponseTTS:us.boolean(),promptPath:us.string(),useCurrentFileAsContext:us.boolean(),enableExperimentalTools:us.boolean(),onlyUseSystemMessageTools:us.boolean(),codebaseToolCallingOnly:us.boolean(),enableStaticContextualization:us.boolean(),showSessionTabs:us.boolean(),codeBlockToolbarPosition:us.enum(["top","bottom"]),fontSize:us.number(),codeWrap:us.boolean(),displayRawMarkdown:us.boolean(),showChatScrollbar:us.boolean(),continueAfterToolRejection:us.boolean(),useAutocompleteCache:us.boolean(),useAutocompleteMultilineCompletions:us.enum(["always","never","auto"]),disableAutocompleteInFiles:us.array(us.string()),modelTimeout:us.number(),debounceDelay:us.number()}).partial();function vGe(t,e){const n={...t};return n.tabAutocompleteOptions={...n.tabAutocompleteOptions},e.useAutocompleteCache!==void 0&&(n.tabAutocompleteOptions.useCache=e.useAutocompleteCache),e.useAutocompleteMultilineCompletions!==void 0&&(n.tabAutocompleteOptions.multilineCompletions=e.useAutocompleteMultilineCompletions),e.disableAutocompleteInFiles!==void 0&&(n.tabAutocompleteOptions.disableInFiles=e.disableAutocompleteInFiles),e.modelTimeout!==void 0&&(n.tabAutocompleteOptions.modelTimeout=e.modelTimeout),e.debounceDelay!==void 0&&(n.tabAutocompleteOptions.debounceDelay=e.debounceDelay),n.ui={...n.ui},e.codeBlockToolbarPosition!==void 0&&(n.ui.codeBlockToolbarPosition=e.codeBlockToolbarPosition),e.fontSize!==void 0&&(n.ui.fontSize=e.fontSize),e.codeWrap!==void 0&&(n.ui.codeWrap=e.codeWrap),e.displayRawMarkdown!==void 0&&(n.ui.displayRawMarkdown=e.displayRawMarkdown),e.showChatScrollbar!==void 0&&(n.ui.showChatScrollbar=e.showChatScrollbar),e.allowAnonymousTelemetry!==void 0&&(n.allowAnonymousTelemetry=e.allowAnonymousTelemetry),e.disableIndexing!==void 0&&(n.disableIndexing=e.disableIndexing),e.disableSessionTitles!==void 0&&(n.disableSessionTitles=e.disableSessionTitles),e.showSessionTabs!==void 0&&(n.ui.showSessionTabs=e.showSessionTabs),e.continueAfterToolRejection!==void 0&&(n.ui.continueAfterToolRejection=e.continueAfterToolRejection),n.experimental={...n.experimental},e.enableExperimentalTools!==void 0&&(n.experimental.enableExperimentalTools=e.enableExperimentalTools),e.promptPath!==void 0&&(n.experimental.promptPath=e.promptPath),e.useChromiumForDocsCrawling!==void 0&&(n.experimental.useChromiumForDocsCrawling=e.useChromiumForDocsCrawling),e.readResponseTTS!==void 0&&(n.experimental.readResponseTTS=e.readResponseTTS),e.useCurrentFileAsContext!==void 0&&(n.experimental.useCurrentFileAsContext=e.useCurrentFileAsContext),e.onlyUseSystemMessageTools!==void 0&&(n.experimental.onlyUseSystemMessageTools=e.onlyUseSystemMessageTools),e.codebaseToolCallingOnly!==void 0&&(n.experimental.codebaseToolCallingOnly=e.codebaseToolCallingOnly),e.enableStaticContextualization!==void 0&&(n.experimental.enableStaticContextualization=e.enableStaticContextualization),n}const CO=({isToggled:t,onToggle:e,text:n,size:r=16,showIfToggled:i,disabled:s=!1,tooltip:a})=>y.jsxs("div",{className:`flex select-none items-center justify-between gap-3 ${s?"cursor-not-allowed":"cursor-pointer"}`,children:[y.jsxs("span",{className:"truncate-right flex items-center gap-x-1",children:[n," ",a&&y.jsx(Ln,{content:a,children:y.jsx(Td,{className:"h-3 w-3"})})]}),y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[t&&!!i&&i,y.jsx("div",{className:"border-command-border bg-vsc-input-background relative flex items-center rounded-full border border-solid",onClick:s?void 0:o=>{o.stopPropagation(),e()},style:{height:r,width:r*2,padding:r/8},children:y.jsx("div",{className:`absolute left-1/4 transform rounded-full border-[0.2px] border-solid transition-all ${t?"translate-x-1/2 brightness-150":"-translate-x-1/2 brightness-75"}`,style:{backgroundColor:t?k$:"",height:r,width:r}})})]})]});function Ua(t){const{title:e,description:n,disabled:r=!1}=t,i=()=>{var a;switch(t.type){case"toggle":return y.jsx(CO,{isToggled:t.value,disabled:r,onToggle:()=>t.onChange(!t.value),text:""});case"number":return y.jsx("div",{className:"border-command-border bg-vsc-input-background focus-within:border-border-focus focus-within:ring-border-focus flex w-20 items-center rounded-md border border-solid focus-within:ring-1",children:y.jsx("input",{type:"number",value:t.value,onChange:o=>{const l=Number(o.target.value);t.onChange(l)},onBlur:o=>{const l=Number(o.target.value),c=t.min??0,u=t.max??100;lu&&t.onChange(u)},onKeyDown:o=>{if(o.key==="Enter"){const l=Number(o.currentTarget.value),c=t.min??0,u=t.max??100;lu&&t.onChange(u),o.currentTarget.blur()}},min:t.min??0,max:t.max??100,disabled:r,className:"text-vsc-foreground flex-1 border-none bg-transparent px-2 py-1 text-right outline-none focus:outline-none focus:ring-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"})});case"select":return y.jsxs(Vd,{value:t.value,onChange:t.onChange,disabled:r,children:[y.jsxs(Uu,{className:"border-command-border !w-20 w-20 !flex-none justify-between !rounded-md px-2 py-1",children:[((a=t.options.find(o=>o.value===t.value))==null?void 0:a.label)||t.value,y.jsx(eo,{className:"h-3 w-3"})]}),y.jsx(Zd,{className:"!w-20 !min-w-0",children:t.options.map(o=>y.jsx(Zs,{value:o.value,children:o.label},o.value))})]});case"input":return t.onSubmit?y.jsx("form",{onSubmit:o=>{var l;o.preventDefault(),(l=t.onSubmit)==null||l.call(t)},children:y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("div",{className:`border-command-border bg-vsc-input-background focus-within:border-border-focus focus-within:ring-border-focus flex w-full flex-row overflow-hidden rounded-md border border-solid focus-within:ring-1 ${t.isDirty?t.isValid?"outline outline-green-500":"outline outline-red-500":""} ${r?"cursor-not-allowed opacity-50":""}`,children:y.jsx("input",{type:"text",value:t.value,onChange:o=>t.onChange(o.target.value),placeholder:t.placeholder,disabled:r,className:"text-vsc-foreground flex-1 border-none bg-inherit px-1.5 py-1 outline-none ring-0 focus:border-none focus:outline-none focus:ring-0 disabled:cursor-not-allowed"})}),t.isDirty&&y.jsxs("div",{className:"flex flex-row items-center gap-1",children:[y.jsx(Ln,{content:"Save",children:y.jsx("div",{onClick:t.onSubmit,className:"cursor-pointer",children:y.jsx(Ql,{className:"h-4 w-4 text-green-500 hover:opacity-80"})})}),y.jsx(Ln,{content:"Cancel",children:y.jsx("div",{onClick:t.onCancel,className:"cursor-pointer",children:y.jsx(Hd,{className:"h-4 w-4 text-red-500 hover:opacity-80"})})})]})]})}):y.jsx("div",{className:`border-command-border bg-vsc-input-background focus-within:border-border-focus focus-within:ring-border-focus flex w-full flex-row overflow-hidden rounded-md border border-solid focus-within:ring-1 ${r?"cursor-not-allowed opacity-50":""}`,children:y.jsx("input",{type:"text",value:t.value,onChange:o=>t.onChange(o.target.value),disabled:r,className:"text-vsc-foreground flex-1 border-none bg-inherit px-1.5 py-1 outline-none ring-0 focus:border-none focus:outline-none focus:ring-0 disabled:cursor-not-allowed"})});default:return null}};return t.type==="input"?y.jsxs("div",{className:"flex flex-col gap-3",children:[y.jsxs("div",{className:"flex flex-col",children:[y.jsx("span",{className:"text-sm font-medium",children:e}),y.jsx("div",{className:"mt-0.5 text-xs text-gray-500",children:n})]}),i()]}):y.jsxs("div",{className:"flex items-start justify-start gap-4",children:[y.jsxs("div",{className:"flex flex-1 flex-col",children:[y.jsx("span",{className:"text-sm font-medium",children:e}),y.jsx("div",{className:"mt-0.5 text-xs text-gray-500",children:n})]}),i()]})}function yne(t){const e=Dl();return y.jsxs("div",{className:"p-4 pt-0",children:[y.jsx("h1",{className:"mb-1 text-center text-xl",children:t.title??"Confirmation"}),y.jsx("p",{className:"text-center text-base",style:{whiteSpace:"pre-wrap"},children:t.text}),y.jsxs("div",{className:"w/1/2 flex justify-end gap-2",children:[!!t.hideCancelButton||y.jsx(ai,{variant:"outline",onClick:()=>{var n;e(hi(!1)),e(Ri(void 0)),(n=t.onCancel)==null||n.call(t)},children:"Cancel"}),y.jsx(ai,{onClick:()=>{t.onConfirm(),e(hi(!1)),e(Ri(void 0))},children:t.confirmText??"Confirm"})]})]})}function tSn({update:t}){const e=t.status==="failed"?100:yGe(t.progress);return y.jsx("div",{className:"my-2 h-1.5 w-full rounded-md border border-solid border-gray-400",children:y.jsx("div",{className:`h-full rounded-lg transition-all duration-200 ease-in-out ${t.status==="failed"?"bg-red-600":"bg-stone-500"}`,style:{width:`${e}%`}})})}const nSn=(t=[])=>{const e=t.join(` +`);navigator.clipboard.writeText(e)};function rSn({update:t}){const e=g.useContext(qt),[n,r]=g.useState(!1);return He(s=>s.config.config.selectedModelByRole.embed)?t.warnings&&t.warnings.length>0&&t.status!=="failed"?y.jsxs("div",{children:[y.jsxs("div",{className:"flex cursor-pointer items-center gap-2 italic text-yellow-600",onClick:()=>r(!n),children:[y.jsxs("span",{className:"leading-relaxed",children:[t.warnings.length," warning",t.warnings.length>1?"s":""," during indexing"]}),y.jsx($b,{className:`h-3 w-3 transition-transform duration-300 ${n?"rotate-90":""}`})]}),y.jsxs("div",{className:`ml-3 overflow-hidden transition-all duration-300 ease-in-out ${n?"mt-2 max-h-96 opacity-100":"max-h-0 opacity-0"}`,children:[y.jsx("div",{className:"space-y-1",children:t.warnings.map((s,a)=>y.jsxs("div",{className:"text-xs",children:["• ",s]},a))}),y.jsxs("div",{className:"flex flex-row items-center justify-end gap-2 pt-4",children:[y.jsxs(Ah,{onClick:()=>nSn(t.warnings),className:"flex items-center !px-1.5 !py-0.5 text-xs",children:[y.jsx(N6,{className:"mr-1 h-3 w-3"}),y.jsx("span",{children:"Copy output"})]}),y.jsxs(Ah,{onClick:()=>{e.post("toggleDevTools",void 0)},className:"flex items-center !px-1.5 !py-0.5 text-xs",children:[y.jsx(Wb,{className:"mr-1 h-3 w-3"}),y.jsx("span",{children:"View Logs"})]})]})]})]}):y.jsxs("div",{className:"flex items-center gap-2 italic text-red-600",children:[y.jsx(bU,{className:"h-4 w-4"}),y.jsx("span",{className:"leading-relaxed",children:t.desc})]}):y.jsxs("div",{className:"flex items-center gap-2 italic",children:[y.jsx(bU,{className:"h-4 w-4 min-w-[10%]"}),y.jsxs("span",{className:"leading-relaxed",children:["Add an Embeddings model to enable codebase indexing. See the docs for examples:",y.jsx("a",{href:"https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers",target:"_blank",className:"cursor-pointer text-inherit underline hover:text-inherit",children:"https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers"})]})]})}const iSn={disabled:null,loading:null,waiting:null,indexing:rd,paused:X6e,done:KZ,failed:null,cancelled:null};function sSn({update:t}){const e=yGe(t.progress).toFixed(0),n=iSn[t.status],r=t.status==="indexing",i=t.status!=="disabled"&&e!=="100";return y.jsxs("div",{className:"text-lightgray flex items-center justify-between gap-1",children:[i&&y.jsxs("span",{className:"text-xs",children:[e,"%"]}),n&&y.jsx("div",{className:"flex items-center",children:y.jsx(n,{className:`text-lightgray inline-block h-4 w-4 align-top ${r?"animate-spin-slow":""}`})})]})}const aSn={done:"Click to re-index",loading:"",waiting:"",indexing:"Click to pause",paused:"Click to resume",failed:"Click to retry",disabled:"Click to open configuration",cancelled:"Click to restart"};function oSn({update:t,onClick:e}){const n=t.status==="indexing";return y.jsxs("div",{className:"flex justify-between",children:[y.jsx("span",{className:"text-lightgray inline-block cursor-pointer text-xs underline",onClick:e,children:aSn[t.status]}),y.jsx("div",{className:`${n?"w-2/3":"flex-1"}`,children:n&&y.jsx("span",{className:"text-lightgray block truncate text-right text-xs",children:t.desc})})]})}const lSn={done:"Indexing complete",loading:"Initializing",waiting:"Indexing other workspace",indexing:"Indexing in-progress",paused:"Indexing paused",failed:"Indexing failed",disabled:"Indexing disabled",cancelled:"Indexing cancelled"};function cSn({update:t}){const e=t.status==="loading";return y.jsxs("span",{children:[lSn[t.status],e&&y.jsx(u_,{})]})}function yGe(t){return Math.min(100,Math.max(0,t*100))}function uSn(){const t=g.useContext(qt),e=s2(),n=Dl(),[r,i]=g.useState(void 0),[s,a]=g.useState({desc:"Loading indexing config",progress:0,status:"loading"});let o=!1;Er("indexProgress",async u=>{a(u)}),g.useEffect(()=>{o||(t.post("index/indexingProgressBarInitialized",void 0),o=!0)},[]),g.useEffect(()=>{r!==void 0&&t.post("index/setPaused",r)},[r]);function l(){s.shouldClearIndexes&&!Go()?(n(hi(!0)),n(Ri(y.jsx(yne,{title:"Rebuild codebase index",confirmText:"Rebuild",text:`Your index appears corrupted. We recommend clearing and rebuilding it, which may take time for large codebases. + +For a faster rebuild without clearing data, press 'Shift + Command + P' to open the Command Palette, and type out 'Continue: Force Codebase Re-Indexing'`,onConfirm:()=>{e.capture("rebuild_index_clicked"),t.post("index/forceReIndex",{shouldClearIndexes:!0})}})))):t.post("index/forceReIndex",void 0)}function c(){switch(s.status){case"failed":l();break;case"indexing":case"loading":case"paused":s.progress<1&&s.progress>=0?i(u=>!u):t.post("index/forceReIndex",void 0);break;case"disabled":t.post("config/openProfile",{profileId:void 0});break;case"done":t.post("index/forceReIndex",void 0)}}return y.jsxs("div",{className:"flex flex-col",children:[y.jsxs("div",{className:"mb-0 flex justify-between text-sm",children:[y.jsx(cSn,{update:s}),!["loading","waiting"].includes(s.status)&&y.jsx(sSn,{update:s})]}),y.jsx(tSn,{update:s}),y.jsx(oSn,{update:s,onClick:c}),(s.status==="failed"||s.warnings&&s.warnings.length>0)&&y.jsx("div",{className:"mt-4",children:y.jsx(rSn,{update:s})})]})}function dSn({startUrl:t}){var f;const e=Dl(),n=g.useContext(qt),r=()=>{e(hi(!1)),e(Ri(void 0))},[i,s]=g.useState(!1),[a,o]=g.useState(!1),[l,c]=g.useState(void 0),u=g.useCallback(async()=>{s(!0),o(!1);try{const h=await n.request("docs/getDetails",{startUrl:t});if(h.status==="error")throw new Error(h.error);c(h.content)}catch{o(!0)}finally{s(!1)}},[]);g.useEffect(()=>{u()},[]);let d=y.jsx("div",{children:"Loading..."});return i||(a&&(d=y.jsxs("div",{children:[y.jsx("div",{children:"Error fetching docs details"}),y.jsx(Pd,{onClick:u,children:"Try again"})]})),l&&(d=y.jsxs("div",{className:"flex flex-col gap-0.5",children:[y.jsx("p",{className:"m-0 mt-2 p-0 text-stone-500",children:`Title: ${l.config.title}`}),(f=l.chunks)!=null&&f.length?y.jsxs("div",{className:"relative mt-2 h-[300px] overflow-auto",children:[y.jsxs("table",{className:"w-full border-collapse",children:[y.jsx("thead",{className:"bg-vsc-background sticky top-0 text-left",children:y.jsxs("tr",{children:[y.jsx("th",{className:"py-1",children:"Filepath"}),y.jsx("th",{children:"Content"})]})}),y.jsx("tbody",{className:"h-20 overflow-y-scroll",children:l.chunks.map((h,m)=>{const p=`docs-content-peek-${m}`,v=`docs-url-peek-${m}`;return y.jsx(y.Fragment,{children:y.jsxs("tr",{className:"",children:[y.jsx("td",{className:"cursor-pointer px-1","data-tooltip-id":v,"data-tooltip-delay-show":500,children:y.jsx("span",{className:"truncate-start max-w-[200px]",children:h.filepath})}),y.jsx("td",{className:"cursor-pointer px-1","data-tooltip-id":p,"data-tooltip-delay-show":500,children:y.jsx("span",{className:"line-clamp-1",children:h.content})})]},m)})})})]}),l.chunks.map((h,m)=>{const p=`docs-content-peek-${m}`,v=`docs-url-peek-${m}`;return y.jsxs(y.Fragment,{children:[y.jsx(cC,{id:v,place:"top",className:"max-w-full",children:h.filepath},v),y.jsx(cC,{id:p,place:"top",className:"max-h-[300px] max-w-[170px] overflow-y-auto",children:h.content},p)]})})]}):y.jsx("div",{children:"No article chunks"})]}))),y.jsxs("div",{className:"px-2 py-4 sm:px-4",children:[y.jsx("h3",{children:"Docs index"}),y.jsx("p",{className:"text-lightgray m-0 mt-1 cursor-pointer p-0 hover:underline",onClick:h=>{h.stopPropagation(),n.post("openUrl",t)},children:t}),d,y.jsx("div",{className:"flex flex-row justify-end",children:y.jsx(Pd,{onClick:r,children:"Close"})})]})}function fSn(t,e){return t.startsWith(e)?t.slice(e.length):t}const hSn=({pages:t,siteTitle:e,baseUrl:n})=>{const r=g.useContext(qt),i=Dl(),s=a=>{a.stopPropagation(),i(hi(!0)),i(Ri(y.jsx(dSn,{startUrl:n})))};return y.jsxs("div",{children:[y.jsxs("div",{className:"mx-1 my-2 flex items-center justify-between font-semibold",style:{fontSize:vo(-3)},children:[y.jsxs("span",{children:[e," - ",t.length," Pages Indexed"]}),y.jsx(QZ,{className:"ml-2 h-4 w-4 cursor-pointer text-red-500 transition-colors hover:text-red-400",onClick:s,title:"View detailed docs information"})]}),y.jsx("div",{className:"max-h-48 overflow-y-auto px-1",children:y.jsx("ul",{className:"list-none pl-0",children:t.map((a,o)=>y.jsx("li",{className:"my-1 cursor-pointer truncate text-left text-gray-400 hover:underline",style:{fontSize:vo(-4)},onClick:()=>{r.post("openUrl",a)},children:fSn(a,n)},o))})})]})},pSn={indexing:"bg-yellow-500",paused:"bg-blue-500",complete:"bg-green-500",aborted:"bg-gray-500",pending:"bg-gray-300",failed:"bg-red-500"};function mSn({status:t,className:e="",size:n=2,hoverMessage:r}){return t?y.jsx(Ln,{hidden:!r,content:r,children:y.jsx("div",{className:`h-${n} w-${n} rounded-full ${pSn[t]} ${t==="indexing"?"animate-pulse":""} ${e}`})}):null}function gSn({docConfig:t,docFromYaml:e}){const n=Drn(),r=g.useContext(qt),i=vr(),[s,a]=g.useState(null),[o,l]=g.useState(!1),c=He(w=>w.indexing.indexing.statuses[t.startUrl]),u=(c==null?void 0:c.status)==="complete",d=()=>r.post("indexing/reindex",{type:"docs",id:t.startUrl}),f=()=>{r.post("indexing/abort",{type:"docs",id:t.startUrl}),c&&i(XY({...c,status:"aborted",progress:0}))},[h,m]=g.useState(!1),p=g.useMemo(()=>c?Math.min(100,Math.max(0,c.progress*100)).toFixed(0):0,[c==null?void 0:c.progress]);g.useEffect(()=>{async function w(){try{const E=await r.request("docs/getIndexedPages",{startUrl:t.startUrl});if(E.status==="error")throw new Error(E.error);a(E.content.sort())}catch(E){console.error(`Unable to fetch pages list for ${t.startUrl}: ${E}`)}}u&&w()},[u,r,t.startUrl]);const v=()=>{s&&l(!0)};if(h)return null;const x=t.startUrl.replace(/[^a-zA-Z0-9_-]/g,"_");return y.jsxs("div",{className:"mt-1 flex w-full flex-col",children:[y.jsxs("div",{className:"flex flex-row items-center justify-between gap-2 text-sm",children:[y.jsx("div",{className:"flex flex-row items-center gap-1",onClick:()=>{c!=null&&c.url&&r.post("openUrl",c.url)},children:y.jsx("p",{style:{fontSize:vo(-3)},className:`m-0 line-clamp-1 p-0 text-left ${c!=null&&c.url?"cursor-pointer hover:underline":""}`,children:t.title??t.startUrl})}),y.jsx("div",{className:"flex flex-row items-center gap-2",children:y.jsxs("div",{className:"flex flex-row items-center gap-2 text-gray-400",children:[(c==null?void 0:c.status)==="indexing"&&y.jsxs("span",{className:"text-xs",style:{fontSize:vo(-3)},children:[p,"%"]}),(c==null?void 0:c.status)==="indexing"&&y.jsx(n_e,{className:"h-3 w-3 cursor-pointer text-gray-400 hover:brightness-125",onClick:f,"data-testid":"stop-indexing"}),y.jsx(Em,{className:"h-3 w-3 cursor-pointer text-gray-400 hover:brightness-125",onClick:()=>n(e)}),["aborted","complete","failed"].includes((c==null?void 0:c.status)??"")&&y.jsx(rd,{className:"h-3 w-3 cursor-pointer text-gray-400 hover:brightness-125",onClick:d,"data-testid":"reindex-docs"}),y.jsx(mSn,{status:c==null?void 0:c.status,hoverMessage:(c==null?void 0:c.status)==="failed"?c==null?void 0:c.debugInfo:void 0})]})})]}),c&&y.jsx("div",{className:"flex flex-row items-center justify-between gap-2 text-sm",children:y.jsx("p",{style:{fontSize:vo(-4)},className:`m-0 line-clamp-1 p-0 text-left text-gray-400 ${u?"cursor-pointer hover:underline":""}`,onClick:()=>{u&&v()},"data-tooltip-id":`docs-tooltip-${x}`,children:u?s?`${s.length} page${s.length===1?"":"s"} indexed`:"Loading site info...":c.description})}),s&&y.jsx(Ln,{isOpen:o,setIsOpen:l,clickable:!0,delayShow:0,openEvents:{mouseenter:!1,click:!0},closeEvents:{blur:!0,mouseleave:!1,click:!0},content:y.jsx(hSn,{pages:s,siteTitle:t.title??t.startUrl,baseUrl:t.startUrl}),children:y.jsx("div",{"data-tooltip-id":`docs-tooltip-${x}`})})]})}function vSn(){const t=He(s=>s.config.config),e=He(s=>s.indexing.indexing.statuses),{selectedProfile:n}=as(),r=g.useMemo(()=>{const s=n!=null&&n.rawYaml?II((n==null?void 0:n.rawYaml)??""):void 0;return(t.docs??[]).map((a,o)=>{var l;return{doc:a,docFromYaml:(l=s==null?void 0:s.docs)==null?void 0:l[o]}})},[t.docs,n==null?void 0:n.rawYaml]),i=g.useMemo(()=>{const s=o=>o==="complete"?0:o==="indexing"||o==="paused"?1:o==="failed"?2:o==="aborted"||o==="pending"?3:4,a=[...r];return a.sort((o,l)=>{var m,p;const c=((m=e[o.doc.startUrl])==null?void 0:m.status)??"pending",u=((p=e[l.doc.startUrl])==null?void 0:p.status)??"pending",d=s(c)-s(u);if(d!==0)return d;const f=!!o.doc.faviconUrl,h=!!l.doc.faviconUrl;return h===f?0:h?1:-1}),a},[r,e]);return i.length===0?y.jsx(Ry,{message:"No documentation sources configured. Click the + button to add your first docs."}):y.jsx("div",{className:"flex flex-col gap-1",children:y.jsx("div",{className:"flex flex-col overflow-y-auto overflow-x-hidden pr-2",children:i.map(s=>y.jsx("div",{className:"flex items-center gap-2",children:y.jsx("div",{className:"flex-grow",children:y.jsx(gSn,{docFromYaml:s.docFromYaml,docConfig:s.doc})})},s.doc.startUrl))})})}function ySn(){const t=Dl();function e(){t(hi(!0)),t(Ri(y.jsx(kDe,{})))}return y.jsxs("div",{children:[y.jsx(go,{title:"Documentation",onAddClick:e,addButtonTooltip:"Add documentation",variant:"sm"}),y.jsx(na,{children:y.jsx("div",{className:"py-2",children:y.jsx(vSn,{})})})]})}function bSn(){const t=He(e=>e.config.config);return y.jsxs("div",{children:[y.jsx("div",{className:"mb-4 flex items-center justify-between",children:y.jsx("h3",{className:"mb-0 text-sm font-semibold",children:"@codebase index"})}),y.jsx(na,{children:y.jsx("div",{className:"py-2",children:t.disableIndexing?y.jsx("div",{className:"p-1",children:y.jsx("p",{className:"text-center font-semibold",children:"Indexing is disabled"})}):y.jsx(uSn,{})})})]})}function xSn(){var o;const t=vr(),e=g.useContext(qt),n=He(l=>l.config.config),r=He(cp);function i(l){const c=vGe(n,l);t(Ax(c)),e.post("config/updateSharedConfig",l)}const s=n.disableIndexing??!1,a=((o=r==null?void 0:r.policy)==null?void 0:o.allowCodebaseIndexing)===!1;return y.jsx("div",{className:"flex flex-col gap-4",children:y.jsx(Ua,{title:"Enable indexing",type:"toggle",description:y.jsxs("div",{className:"text-foreground",children:["Allows indexing of your codebase for search and context understanding.",y.jsx("br",{}),y.jsx("br",{}),"Note that indexing can consume significant system resources, especially on larger codebases."]}),value:!s,disabled:a,onChange:l=>i({disableIndexing:!l})})})}function wSn(){const e=He(n=>n.config.config).disableIndexing??!1;return y.jsxs(y.Fragment,{children:[y.jsx(go,{title:"Indexing"}),y.jsx(X0,{type:"warning",className:"mb-6",children:y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{children:[y.jsx("div",{className:"-mt-0.5 text-sm font-medium",children:"Indexing has been deprecated"}),y.jsxs("div",{className:"mt-1 text-xs",children:["Learn how to"," ",y.jsx("a",{href:"https://docs.continue.dev/guides/codebase-documentation-awareness",target:"_blank",rel:"noopener noreferrer",className:"text-inherit underline hover:brightness-125",children:"make your agent aware of your codebase and documentation"})]})]}),y.jsx(bo,{className:"border-inherit"}),y.jsx(xSn,{})]})}),!e&&y.jsxs("div",{className:"space-y-8",children:[y.jsx(bSn,{}),y.jsx(ySn,{})]})]})}const _Sn="5",ive={3:"h-3 w-3",4:"h-4 w-4",5:"h-5 w-5",6:"h-6 w-6",8:"h-8 w-8"},kSn=({msg:t,size:e,id:n})=>{const r=ive[e]||ive[_Sn];return y.jsx(Ln,{content:t,place:"bottom",children:y.jsx(Td,{className:`${r} text-gray-500`})})},SSn=({models:t,selectedModel:e,onSelect:n,displayName:r,description:i,setupURL:s,hideTitle:a=!1})=>{const o=g.useContext(qt),l=t.every(d=>d.configurationStatus!==s4.VALID);function c(d){n(t.find(f=>f.title===d)??null)}function u(d,f){d&&(f.preventDefault(),f.stopPropagation())}return y.jsxs(y.Fragment,{children:[!a&&y.jsxs("div",{className:"mt-2 flex flex-row items-center gap-1 sm:mt-0",children:[y.jsx("span",{style:{fontSize:vo(-1)},children:r}),y.jsx(kSn,{size:"3",id:r,msg:i})]}),y.jsx(Vd,{value:(e==null?void 0:e.title)??null,onChange:c,children:y.jsx("div",{className:"relative",children:t.length===0?y.jsx(Uu,{onClick:()=>o.post("openUrl",s),className:"bg-input border-command-border hover:bg-list-active hover:text-list-active-foreground text-description w-full justify-between rounded border px-2 py-1.5 underline hover:underline",children:y.jsxs("span",{className:"line-clamp-1",style:{fontSize:vo(-1)},children:["Setup ",r," model"]})}):y.jsxs(y.Fragment,{children:[y.jsxs(Uu,{disabled:t.length===0,className:"bg-input border-command-border hover:bg-list-active hover:text-list-active-foreground w-full justify-between rounded border px-2 py-1.5",children:[t.length===0||l?y.jsx("span",{className:"text-lightgray line-clamp-1 italic",children:`No ${t.length===0?"":"valid "}${r} models${["Chat","Apply","Edit"].includes(r)?". Using Chat model":""}`}):y.jsx("span",{className:"line-clamp-1",style:{fontSize:vo(-1)},children:(e==null?void 0:e.title)??`Select ${r} model`}),t.length>0&&y.jsx("div",{className:"pointer-events-none flex items-center",children:y.jsx(YZ,{className:"h-3 w-3","aria-hidden":"true"})})]}),y.jsx(sT,{children:y.jsx(Zd,{style:{borderRadius:oa},className:"min-w-40",children:[...t].sort((d,f)=>d.title.localeCompare(f.title)).map((d,f)=>{const h=d.configurationStatus!==s4.VALID;let m="(Invalid config)";return d.configurationStatus===s4.MISSING_ENV_SECRET&&(m="(Missing env secret)"),d.configurationStatus===s4.MISSING_API_KEY&&(m="(Missing API Key)"),y.jsx(Zs,{value:d.title,disabled:h,onClick:p=>u(h,p),className:"",children:y.jsxs("div",{className:"flex w-full items-center justify-between gap-2",children:[y.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[y.jsx(_g,{className:"h-3 w-3 flex-shrink-0"}),y.jsxs("span",{className:"line-clamp-1 truncate",style:{fontSize:vo(-1)},children:[d.title,h&&y.jsx("span",{className:"ml-2 text-[10px] italic",children:m})]})]}),y.jsx("div",{className:"flex-shrink-0",children:d.title===(e==null?void 0:e.title)&&y.jsx(Ql,{className:"h-3 w-3"})})]})},f)})})})]})})})]})};function pv({role:t,displayName:e,description:n,models:r,selectedModel:i,onSelect:s,onConfigure:a,setupURL:o,shortcut:l}){return y.jsxs("div",{className:"py-6 first:pt-0 last:pb-0",children:[y.jsxs("div",{className:"mb-2",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"text-base font-medium",children:e}),l&&l]}),y.jsx("p",{className:"text-description mt-1 text-xs",children:n})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("div",{className:"flex-1",children:y.jsx(SSn,{displayName:e,description:n,models:r,selectedModel:i??null,onSelect:s,setupURL:o,hideTitle:!0})}),i&&y.jsx(Ln,{content:"Configure",children:y.jsx(ai,{variant:"ghost",size:"sm",onClick:()=>a(i),className:"text-description hover:enabled:text-foreground my-0 h-6 w-6 p-0",children:y.jsx(Wc,{className:"h-4 w-4 flex-shrink-0"})})})]})]})}function CSn(){const{selectedProfile:t}=as(),e=vr(),n=g.useContext(qt),r=He(u=>u.config.config),i=Go();Ho();const[s,a]=g.useState(!1);function o(u,d){d&&e(My({role:u,selectedProfile:t,modelTitle:d.title}))}const l=ODe();function c(){(t==null?void 0:t.profileType)==="local"?(e(hi(!0)),e(Ri(y.jsx(DG,{onDone:()=>{e(hi(!1))}})))):n.request("controlPlane/openUrl",{path:"?type=models",orgSlug:void 0})}return y.jsxs("div",{className:"space-y-4",children:[y.jsx(go,{title:"Models",onAddClick:c,addButtonTooltip:"Add model"}),y.jsxs(na,{children:[y.jsx(pv,{role:"chat",displayName:"Chat",shortcut:y.jsxs("span",{className:"text-2xs text-description-muted",children:["(",y.jsx(f$,{children:`cmd ${i?"J":"L"}`}),")"]}),description:y.jsxs("span",{children:["Used in Chat, Plan, Agent mode (",y.jsx("a",{href:"https://docs.continue.dev/features/chat/quick-start",target:"_blank",rel:"noopener noreferrer",className:"text-inherit underline hover:brightness-125",children:"Learn more"}),")"]}),models:r.modelsByRole.chat,selectedModel:r.selectedModelByRole.chat??void 0,onSelect:u=>o("chat",u),onConfigure:l,setupURL:"https://docs.continue.dev/chat/model-setup"}),y.jsx(bo,{}),y.jsx(pv,{role:"autocomplete",displayName:"Autocomplete",description:y.jsxs("span",{children:["Used in inline code completions as you type (",y.jsx("a",{href:"https://docs.continue.dev/features/autocomplete/quick-start",target:"_blank",rel:"noopener noreferrer",className:"text-inherit underline hover:brightness-125",children:"Learn more"}),")"]}),models:r.modelsByRole.autocomplete,selectedModel:r.selectedModelByRole.autocomplete??void 0,onSelect:u=>o("autocomplete",u),onConfigure:l,setupURL:"https://docs.continue.dev/autocomplete/model-setup"}),!i&&y.jsxs(y.Fragment,{children:[y.jsx(bo,{}),y.jsx(pv,{role:"edit",displayName:"Edit",shortcut:y.jsxs("span",{className:"text-2xs text-description-muted",children:["(",y.jsx(f$,{children:"cmd I"}),")"]}),description:y.jsxs("span",{children:["Used to transform a selected section of code (",y.jsx("a",{href:"https://docs.continue.dev/features/edit/quick-start",target:"_blank",rel:"noopener noreferrer",className:"text-inherit underline hover:brightness-125",children:"Learn more"}),")"]}),models:r.modelsByRole.edit,selectedModel:r.selectedModelByRole.edit??void 0,onSelect:u=>o("edit",u),onConfigure:l,setupURL:"https://docs.continue.dev/edit/model-setup"})]})]}),y.jsx(na,{children:y.jsx(Qke,{isOpen:s,onToggle:()=>a(!s),title:"Additional model roles",subtitle:"Apply, Embed, Rerank",children:y.jsxs("div",{className:"flex flex-col",children:[y.jsx(pv,{role:"apply",displayName:"Apply",description:"Used to apply generated codeblocks to files",models:r.modelsByRole.apply,selectedModel:r.selectedModelByRole.apply??void 0,onSelect:u=>o("apply",u),onConfigure:l,setupURL:"https://docs.continue.dev/customize/model-roles/apply"}),y.jsx(bo,{}),y.jsx(pv,{role:"embed",displayName:"Embed",description:"Used to generate and query embeddings for the @codebase and @docs context providers",models:r.modelsByRole.embed,selectedModel:r.selectedModelByRole.embed??void 0,onSelect:u=>o("embed",u),onConfigure:l,setupURL:"https://docs.continue.dev/customize/model-roles/embeddings"}),y.jsx(bo,{}),y.jsx(pv,{role:"rerank",displayName:"Rerank",description:"Used for reranking results from the @codebase and @docs context providers",models:r.modelsByRole.rerank,selectedModel:r.selectedModelByRole.rerank??void 0,onSelect:u=>o("rerank",u),onConfigure:l,setupURL:"https://docs.continue.dev/customize/model-roles/reranking"})]})})})]})}function ESn(t){if(t.iconUrl)return y.jsx("img",{src:t.iconUrl,alt:"",className:"h-5 w-5 flex-shrink-0 rounded-full"});const e=t.name==="Personal"?__e:x_e;return y.jsx(e,{className:"h-5 w-5 flex-shrink-0"})}function $Sn(){const{organizations:t,session:e}=as(),n=g.useContext(qt),r=e&&t.length>1&&!OI(e);function i(){n.request("controlPlane/openUrl",{path:"/organizations/new"})}function s(a){let o;a.id==="personal"||a.slug===void 0?o="/settings":o=`/organizations/${a.slug}/settings`,n.request("controlPlane/openUrl",{path:o})}return r?y.jsxs(y.Fragment,{children:[y.jsx(go,{title:"Organizations",onAddClick:i,addButtonTooltip:"Add organization"}),y.jsx(na,{children:t.map((a,o)=>y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("div",{className:"flex h-5 w-5 flex-shrink-0 items-center justify-center",children:ESn(a)}),y.jsx("div",{className:"flex-1",children:y.jsx("h3",{className:"my-2 text-sm font-medium",children:a.name})})]}),y.jsx(ai,{onClick:()=>s(a),variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-6 w-6 p-0",children:y.jsx(Wc,{className:"h-4 w-4 flex-shrink-0"})})]}),o{},children:y.jsxs("div",{className:"relative",children:[y.jsx(Ln,{content:r,children:y.jsxs(Uu,{className:"ring-offset-background focus-visible:ring-ring border-description hover:enabled:bg-input hover:enabled:text-foreground text-description inline-flex h-7 items-center justify-center gap-1 whitespace-nowrap rounded-md border border-solid bg-transparent px-1.5 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50","aria-label":r,children:[y.jsx(K0,{className:"h-3 w-3"}),y.jsx(eo,{className:"h-3 w-3"})]})}),y.jsx(Zd,{className:"min-w-32 max-w-36",anchor:"bottom end",children:e.map(c=>y.jsx(Zs,{value:c.value,className:({active:u})=>`relative flex cursor-default select-none items-center gap-3 py-2 pl-4 pr-4 ${u?"bg-list-active text-list-active-foreground":"text-foreground"}`,onClick:()=>n(c.value),children:y.jsx("span",{className:"block truncate",children:c.label})},c.value))})]})})]})}function ISn({mode:t}){const e=Dl(),n=g.useContext(qt),[r,i]=g.useState("new-rule"),[s,a]=g.useState(),[o,l]=g.useState(!1),c=g.useRef(null);g.useLayoutEffect(()=>{const h=setTimeout(()=>{c.current&&c.current.focus()},100);return()=>clearTimeout(h)},[]);const u=()=>{e(hi(!1)),e(Ri(void 0))},d=h=>{h.preventDefault();const m=r.trim();if(!m){a("Rule name is required");return}a(void 0),l(!0);try{t==="global"?n.post("config/addGlobalRule",{baseFilename:m}):n.post("config/addLocalWorkspaceBlock",{blockType:"rules",baseFilename:m}),u()}catch{l(!1),a("Failed to create rule file")}},f=t==="global"?"Add global rule":"Add workspace rule";return y.jsx("div",{className:"px-2 pt-4 sm:px-4",children:y.jsxs("div",{children:[y.jsx("h1",{className:"mb-0",children:f}),y.jsx("p",{className:"m-0 mt-2 p-0 text-stone-500",children:"Choose a name for the new rule file."}),y.jsxs("form",{onSubmit:d,className:"mt-3 flex flex-col gap-2",children:[y.jsxs("label",{className:"flex w-full flex-col gap-1",children:[y.jsx("span",{children:"Rule name"}),y.jsx(Nf,{ref:c,type:"text",placeholder:"ex: api-guidelines",value:r,onChange:h=>i(h.target.value)})]}),s&&y.jsx("p",{className:"text-xs text-red-500",children:s}),y.jsxs("div",{className:"mt-2 flex flex-row justify-end gap-2",children:[y.jsx(Pd,{className:"min-w-16",disabled:o,type:"submit",children:"Create"}),y.jsx(Pd,{type:"button",className:"min-w-16",onClick:u,children:"Cancel"})]})]})]})})}function ASn({prompt:t,isBookmarked:e,setIsBookmarked:n,onEdit:r}){const{mainEditor:i}=nh(),s=c=>{c.stopPropagation(),i==null||i.commands.insertPrompt({title:t.name,description:t.description,content:t.prompt})},a=c=>{c.stopPropagation(),n(!e)},o=c=>{c.stopPropagation(),r&&r()},l=t.source!=="built-in";return y.jsxs("div",{className:"hover:bg-list-active hover:text-list-active-foreground flex items-center justify-between gap-3 rounded-md px-2 py-1 hover:cursor-pointer",onClick:s,style:{fontSize:vo(-3)},children:[y.jsxs("div",{className:"flex min-w-0 flex-col",children:[y.jsx("span",{className:"text-vscForeground shrink-0 font-medium",children:t.name}),y.jsx("span",{className:"line-clamp-2 text-[11px] text-gray-400",children:t.description})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[l&&y.jsx(Em,{className:"h-3 w-3 cursor-pointer text-gray-400 hover:brightness-125",onClick:l?o:void 0,"aria-disabled":!l}),y.jsx("div",{onClick:a,className:"cursor-pointer pt-0.5 text-gray-400 hover:brightness-125",children:e?y.jsx(vwt,{className:"h-3 w-3"}):y.jsx(A6e,{className:"h-3 w-3"})})]})]})}const OSn=({rule:t})=>{const e=vr(),n=g.useContext(qt),r=He(h=>t.name?h.ui.ruleSettings[t.name]||iH:void 0),i=r==="off",s=DDe(),a=()=>{t.name&&e(LSt(t.name))},o=g.useMemo(()=>Irn(t),[t]);function l(){e(hi(!0)),e(Ri(y.jsxs("div",{className:"max-h-4/5 p-4",children:[y.jsx("h3",{children:o}),y.jsx("pre",{className:"max-w-full overflow-scroll",children:t.rule})]})))}const c=()=>{t.sourceFile&&(e(Ri(y.jsx(yne,{title:"Delete Rule",text:"Are you sure you want to delete this rule file?",confirmText:"Delete",onConfirm:async()=>{try{await n.request("config/deleteRule",{filepath:t.sourceFile})}catch(h){console.error("Failed to delete rule file:",h)}}}))),e(hi(!0)))},u=t.sourceFile&&!["default-chat","default-agent","default-plan"].includes(t.source),d=vo(-2),f=vo(-3);return y.jsx("div",{className:`border-border flex flex-col rounded-sm px-2 py-1.5 transition-colors ${i?"opacity-50":""}`,children:y.jsxs("div",{className:"flex flex-col",children:[y.jsxs("div",{className:"flex flex-row justify-between gap-1",children:[y.jsx("span",{className:`line-clamp-2 ${i?"text-gray-400":"text-vsc-foreground"}`,style:{fontSize:d},children:o}),y.jsxs("div",{className:"flex flex-row items-center gap-2",children:[t.name&&r&&y.jsx("div",{className:"flex cursor-pointer flex-row items-center justify-end gap-1 px-2 py-0.5",children:y.jsx(CO,{isToggled:r==="on",onToggle:()=>a(),size:10,text:""})}),y.jsxs("div",{className:"flex flex-row items-start gap-1",children:[y.jsx(zs,{onClick:l,text:"Expand",children:y.jsx(C6e,{className:"h-3 w-3 text-gray-400"})})," ",t.source==="default-chat"||t.source==="default-agent"?y.jsx(zs,{onClick:()=>s(t),text:"View",children:y.jsx(QZ,{className:"h-3 w-3 text-gray-400"})}):y.jsx(zs,{onClick:()=>s(t),text:"Edit",children:y.jsx(Em,{className:"h-3 w-3 text-gray-400"})}),u&&y.jsx(zs,{onClick:c,text:"Delete",children:y.jsx(kg,{className:"h-3 w-3 text-gray-400"})})]})]})]}),y.jsx("span",{style:{fontSize:f},className:`mt-1 line-clamp-3 ${i?"text-gray-500":"text-gray-400"}`,children:t.rule}),t.globs?y.jsxs("div",{style:{fontSize:f},className:"mt-1.5 flex flex-col gap-1",children:[y.jsx("span",{className:"italic",children:"Applies to files"}),y.jsx("code",{className:`line-clamp-1 px-1 py-0.5 ${i?"text-gray-500":"text-gray-400"}`,children:t.globs})]}):null]})})};function DSn(){const{selectedProfile:t}=as(),{isCommandBookmarked:e,toggleBookmark:n}=nZe(),r=g.useContext(qt),i=(t==null?void 0:t.profileType)==="local",s=He(u=>u.config.config.slashCommands??[]),a=d_(),o=u=>{a(u.slug,u.sourceFile)},l=()=>{i?r.request("config/addLocalWorkspaceBlock",{blockType:"prompts"}):r.request("controlPlane/openUrl",{path:"?type=prompts",orgSlug:void 0})},c=g.useMemo(()=>{const u=structuredClone(s);if(t!=null&&t.rawYaml){const f=II(t.rawYaml).prompts??[];let h=0;for(const m of u){if(m.sourceFile)continue;const p=f[h];p&&("uses"in p?m.slug=p.uses:m.slug=`${t==null?void 0:t.fullSlug.ownerSlug}/${t==null?void 0:t.fullSlug.packageSlug}`),h=h+1}}return u.sort((d,f)=>{const h=e(d.name),m=e(f.name);return h&&!m?-1:!h&&m?1:0})},[s,e,t]);return y.jsxs("div",{children:[y.jsx(go,{title:"Prompts",variant:"sm",onAddClick:l,addButtonTooltip:"Add prompt"}),c.length>0?y.jsx(na,{children:y.jsx("div",{children:c.map(u=>y.jsx(ASn,{prompt:u,isBookmarked:e(u.name),setIsBookmarked:()=>n(u),onEdit:()=>o(u)},u.name))})}):y.jsx(na,{children:y.jsx(Ry,{message:"No prompts configured. Click the + button to add your first prompt."})})]})}function MSn(t,e,n){var s,a,o;const i={chat:{customMessage:(s=n.selectedModelByRole.chat)==null?void 0:s.baseChatSystemMessage,defaultMessage:TDe,customSource:"model-options-chat",defaultSource:"default-chat"},agent:{customMessage:(a=n.selectedModelByRole.chat)==null?void 0:a.baseAgentSystemMessage,defaultMessage:IDe,customSource:"model-options-agent",defaultSource:"default-agent"},plan:{customMessage:(o=n.selectedModelByRole.chat)==null?void 0:o.basePlanSystemMessage,defaultMessage:ADe,customSource:"model-options-plan",defaultSource:"default-plan"}}[e];if(i){const l=i.customMessage||i.defaultMessage,c=i.customMessage?i.customSource:i.defaultSource;t.unshift({rule:l,source:c})}}const NSn=[{value:"workspace",label:"Current workspace"},{value:"global",label:"Global"}];function RSn(){const{selectedProfile:t}=as(),e=He(f=>f.config.config),n=He(f=>f.session.mode),r=g.useContext(qt),i=vr(),s=(t==null?void 0:t.profileType)==="local",[a,o]=g.useState("workspace"),l=He(f=>f.config.loading),c=f=>{const h=f||a;s?(i(hi(!0)),i(Ri(y.jsx(ISn,{mode:h==="global"?"global":"workspace"})))):r.request("controlPlane/openUrl",{path:"/hub?type=rules",orgSlug:void 0})},u=f=>{o(f),c(f)},d=g.useMemo(()=>{const f=[...e.rules.map(h=>({...h}))];if(t!=null&&t.rawYaml)try{const h=II(t.rawYaml),m=(h==null?void 0:h.rules)??[];let p=0;for(const v of f)if(v.source==="rules-block"){let x;const w=m[p];w&&(typeof w!="string"&&"uses"in w?x=w.uses:x=`${t==null?void 0:t.fullSlug.ownerSlug}/${t==null?void 0:t.fullSlug.packageSlug}`),x&&(v.slug=x),p++}}catch(h){console.error("Rules notch section: failed to parse selected profile",h)}return MSn(f,n,e),f},[e,t,n]);return y.jsxs("div",{children:[s?y.jsx(TSn,{title:"Rules",variant:"sm",options:NSn,onOptionClick:u,addButtonTooltip:"Add rules"}):y.jsx(go,{title:"Rules",variant:"sm",onAddClick:()=>c(),addButtonTooltip:"Add rules"}),y.jsx(na,{children:d.length>0?y.jsxs("div",{className:"flex flex-col gap-3",children:[d.map((f,h)=>y.jsx(OSn,{rule:f},h)),l&&y.jsx("div",{className:"px-2 py-1.5 text-xs opacity-65",children:"Reloading rules from your config..."})]}):y.jsx(Ry,{message:"No rules configured. Click the + button to add your first rule."})})]})}function LSn(){return y.jsxs(y.Fragment,{children:[y.jsx(go,{title:"Rules"}),y.jsxs("div",{className:"space-y-6",children:[y.jsx(RSn,{}),y.jsx(DSn,{})]})]})}function PSn(t){const e=Dl(),n=He(u=>u.ui.toolSettings[t.tool.function.name]),[r,i]=g.useState(!1),s=He(u=>u.session.mode);g.useEffect(()=>{n||e(RSt(t.tool))},[t.tool.function.name,n]);const a=g.useMemo(()=>{var u;if((u=t.tool.function.parameters)!=null&&u.properties)return Object.entries(t.tool.function.parameters.properties).map(([d,f])=>[d,f])},[t.tool.function.parameters]),o=jf(-2),l=!t.isGroupEnabled||s==="plan"&&t.tool.group===Hb&&!t.tool.readonly;if(!n)return null;const c=`disabled-note-${t.tool.group}-${t.tool.displayTitle}-${t.tool.function.name}`;return y.jsxs("div",{className:"flex flex-col",style:{fontSize:o},children:[y.jsxs("div",{className:"flex flex-col rounded px-2 py-2 hover:bg-gray-50 hover:bg-opacity-5",children:[y.jsxs("div",{className:"flex flex-row items-start justify-between",children:[y.jsxs("div",{className:"flex flex-1 cursor-pointer flex-row items-start gap-1.5",onClick:()=>i(u=>!u),children:[y.jsx($b,{className:`xs:flex hidden h-3 w-3 flex-shrink-0 pt-1 transition-all duration-200 ${r?"rotate-90":""}`}),y.jsxs("div",{className:"flex flex-col gap-1",children:[y.jsxs("div",{className:"flex items-center gap-1",children:[t.duplicatesDetected?y.jsx(Ln,{place:"bottom",className:"flex flex-wrap items-center",content:y.jsxs("p",{className:"m-0 p-0",children:[y.jsx("span",{children:"Duplicate tool name"})," ",y.jsx("code",{children:t.tool.function.name})," ",y.jsx("span",{children:"detected. Permissions will conflict and usage may be unpredictable"})]}),children:y.jsx(Td,{className:"h-3 w-3 flex-shrink-0 cursor-help text-yellow-500"})}):null,t.tool.faviconUrl&&y.jsx("img",{src:t.tool.faviconUrl,alt:t.tool.displayTitle,className:"h-3 w-3 flex-shrink-0"}),y.jsx("span",{className:"line-clamp-1 break-all text-sm",children:t.tool.originalFunctionName??t.tool.function.name})]}),y.jsx("div",{className:"text-description line-clamp-3 text-sm",children:t.tool.function.description})]})]}),y.jsx("div",{className:"flex w-20 justify-end sm:w-24",children:y.jsx(Vd,{value:l||n==="disabled"?"disabled":n,onChange:u=>{!l&&u!==n&&e(n7e({toolName:t.tool.function.name,policy:u}))},disabled:l,children:y.jsxs("div",{className:"relative",children:[y.jsxs(Uu,{className:`border-command-border h-7 w-full justify-between px-3 ${l?"cursor-not-allowed opacity-50":""}`,"data-testid":`tool-policy-item-${t.tool.function.name}`,"data-tooltip-id":l?c:void 0,children:[y.jsx("span",{className:"text-xs",children:l||n==="disabled"?"Excluded":n==="allowedWithoutPermission"?"Automatic":"Ask First"}),y.jsx(eo,{className:"h-3 w-3"})]}),!l&&y.jsxs(Zd,{className:"min-w-0",children:[y.jsx(Zs,{value:"allowedWithoutPermission",children:"Automatic"}),y.jsx(Zs,{value:"allowedWithPermission",children:"Ask First"}),y.jsx(Zs,{value:"disabled",children:"Excluded"})]})]})})})]}),y.jsx(cC,{id:c,children:s==="chat"?"Tool disabled in chat mode":t.isGroupEnabled?"Tool disabled in plan mode":"Group is turned off"})]}),y.jsxs("div",{className:`flex flex-col overflow-hidden ${r?"h-min":"h-0 opacity-0"} gap-x-1 gap-y-2 pl-2 transition-all`,children:[y.jsx("span",{className:"text-2xs mt-1.5 font-bold",children:"Description:"}),y.jsx("span",{className:"text-2xs italic",children:t.tool.function.description}),a?y.jsxs(y.Fragment,{children:[y.jsx("span",{className:"text-2xs font-bold",children:"Arguments:"}),a.map((u,d)=>y.jsxs("div",{className:"text-2xs block",children:[y.jsx("code",{className:"",children:u[0]}),y.jsx("span",{className:"ml-1",children:`(${u[1].type??"unknown"}):`}),y.jsx("span",{className:"ml-1 italic",children:u[1].description??"No description"})]},d))]}):null,y.jsx("div",{className:"h-1"})]})]})}function bGe({showIcon:t,groupName:e,displayName:n,allToolsOff:r,duplicateDetection:i}){const s=vr(),[a,o]=g.useState(!1),l=He(v=>v.config.config.tools),c=g.useMemo(()=>l.filter(v=>v.group===e),[l,e]),u=He(v=>v.ui.toolGroupSettings),d=He(v=>v.ui.toolSettings),f=g.useMemo(()=>u[e]!=="exclude",[u,e]),{enabledCount:h,totalCount:m}=g.useMemo(()=>{const v=c.length;return{enabledCount:c.filter(w=>d[w.function.name]!=="disabled").length,totalCount:v}},[c,d]),p=g.useMemo(()=>h===m?m.toString():`${h}/${m}`,[h,m]);return y.jsxs(na,{className:"flex flex-1 flex-col p-0",children:[y.jsxs("div",{className:"flex cursor-pointer items-center justify-between gap-3 rounded px-2 py-2 hover:bg-gray-50 hover:bg-opacity-5",onClick:()=>o(!a),children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx(eo,{className:`text-description h-3 w-3 transition-transform ${a?"rotate-180":""}`}),y.jsxs("div",{className:"flex items-center gap-2",children:[t&&y.jsx(L6,{className:"h-4 w-4 flex-shrink-0"}),y.jsx("span",{className:"text-sm font-semibold",children:n}),y.jsx("div",{className:"flex h-5 min-w-5 items-center justify-center rounded-md bg-gray-600 px-1 text-xs font-medium text-white",children:p})]})]}),y.jsx(Ln,{content:r?"Tools disabled in current mode":f?`Disable all tools in ${e} group`:`Enable all tools in ${e} group`,children:y.jsx("div",{children:y.jsx(CO,{isToggled:f,onToggle:()=>s(NSt(e)),text:"",size:10,disabled:r})})})]}),a&&y.jsx("div",{className:"mt-3 space-y-1 pl-2",children:c.map(v=>y.jsx(PSn,{tool:v,duplicatesDetected:i[v.function.name],isGroupEnabled:f},v.uri+v.function.name))})]})}const jSn={connected:"Active",connecting:"Connecting","not-connected":"Inactive",disabled:"Off",authenticating:"Authenticating",error:"Error"},zSn={connected:"bg-success",connecting:"bg-warning","not-connected":"bg-description-muted",disabled:"bg-description-muted",authenticating:"bg-warning",error:"bg-error"};function FSn({server:t,serverFromYaml:e,allToolsOff:n,duplicateDetection:r}){const[i,s]=g.useState({}),a=g.useContext(qt),o=He(x=>x.config.config),l=d_(),c=vr(),u=x=>{c(Ax({...o,mcpServerStatuses:o.mcpServerStatuses.map(w=>w.id===t.id?{...w,status:x}:w)}))},d=async()=>{"url"in t&&(u("authenticating"),await a.request("mcp/startAuthentication",{serverId:t.id,serverUrl:t.url}))},f=async()=>{"url"in t&&(u("authenticating"),await a.request("mcp/removeAuthentication",{serverId:t.id,serverUrl:t.url}))},h=async()=>{u("connecting"),t.status==="disabled"?await a.request("mcp/setServerEnabled",{id:t.id,enabled:!0}):await a.request("mcp/reloadServer",{id:t.id})},m=async()=>{u("disabled"),c(Ax({...o,tools:o.tools.filter(x=>x.group!==t.id)})),await a.request("mcp/setServerEnabled",{id:t.id,enabled:!1})},p=x=>{s(w=>({...w,[x]:!w[x]}))},v=({title:x,items:w,icon:E,sectionKey:S})=>{const _=i[S],C=w.length>0;return y.jsxs("div",{children:[y.jsx("div",{className:"mx-2 flex cursor-pointer items-center justify-between rounded hover:bg-gray-50 hover:bg-opacity-5",onClick:()=>p(S),children:y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx(eo,{className:`text-description h-3 w-3 transition-transform ${_?"rotate-180":""}`}),y.jsxs("div",{className:"flex items-center gap-2",children:[E,y.jsx("span",{className:"text-sm",children:x}),y.jsx("div",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-gray-600 px-0.5 text-xs font-medium text-white",children:w.length})]})]})}),_&&y.jsx("div",{className:"mx-2 my-2 mb-3",children:C?y.jsx("div",{className:"space-y-1",children:w.map((T,M)=>y.jsxs("div",{className:"text-description rounded bg-gray-50 bg-opacity-5 px-2 py-1 text-xs",children:[y.jsx("code",{children:T.name}),T.description&&y.jsx("div",{className:"mt-1 text-xs text-gray-500",children:T.description})]},M))}):y.jsxs("div",{className:"text-xs italic text-gray-500",children:["No ",x.toLowerCase()," available"]})})]})};return y.jsxs("div",{className:"",children:[y.jsxs("div",{className:"flex items-center justify-between py-1",children:[y.jsx("div",{className:"flex items-center gap-3",children:y.jsx("div",{className:"flex-1",children:y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("h3",{className:"my-0 text-sm font-medium",children:t.name}),y.jsx(Ln,{content:jSn[t.status]??"Error",children:y.jsx("div",{className:`h-2 w-2 flex-shrink-0 rounded-full ${zSn[t.status]??"bg-error"}`})})]})})}),y.jsxs("div",{className:"flex items-center gap-1",children:[t.isProtectedResource&&"url"in t&&t.status!=="connected"&&y.jsx(Ln,{content:t.status==="error"?"Authenticate":t.status==="authenticating"?"Authenticating...":"Remove authentication",children:y.jsx(ai,{onClick:t.status==="error"?d:t.status==="authenticating"?void 0:f,variant:"ghost",size:"sm",className:"text-description-muted hover:enabled:text-foreground my-0 h-6 w-6 p-0 pt-0.5",disabled:t.status==="authenticating",children:t.status==="authenticating"?y.jsx(tg,{className:"animate-spin-slow h-4 w-4 flex-shrink-0"}):y.jsx(aC,{className:"h-4 w-4 flex-shrink-0"})})}),y.jsxs(Vd,{children:[y.jsx(Uu,{children:y.jsx(F6e,{className:"h-4 w-4 flex-shrink-0"})}),y.jsxs(Zd,{className:"min-w-fit",anchor:"bottom end",children:[t.isProtectedResource&&t.status==="connected"&&y.jsxs(Zs,{value:"remove auth",onClick:f,className:"justify-start gap-x-1.5",children:[y.jsx(aC,{className:"h-4 w-4 flex-shrink-0"})," Logout"]}),y.jsxs(Zs,{value:"edit mcp",className:"justify-start gap-x-1.5",onClick:()=>l(e&&"uses"in e?e.uses:void 0,t.sourceFile),children:[y.jsx(Em,{className:"h-3.5 w-3.5 flex-shrink-0 cursor-pointer text-gray-400 text-inherit hover:brightness-125"}),"Edit"]}),t.status==="connected"&&y.jsxs(Zs,{value:"disconnect",onClick:m,className:"justify-start gap-x-1.5",children:[y.jsx(h3e,{className:"h-4 w-4 flex-shrink-0"})," ","Disconnect"]}),t.status!=="connecting"&&y.jsxs(Zs,{value:"reconnect",onClick:h,className:"justify-start gap-x-1.5",children:[t.status==="disabled"?y.jsx(e_e,{className:"h-4 w-4 flex-shrink-0"}):y.jsx(rd,{className:"h-4 w-4 flex-shrink-0"}),"Reload"]})]})]})]})]}),y.jsxs("div",{className:"mt-1",children:[y.jsx(bGe,{showIcon:!0,groupName:t.name,displayName:"Tools",allToolsOff:n,duplicateDetection:r}),t.prompts.length>0&&y.jsx(v,{title:"Prompts",items:t.prompts,icon:y.jsx(Dy,{className:"text-description h-4 w-4 flex-shrink-0"}),sectionKey:`${t.id}-prompts`}),(t.resources.length>0||t.resourceTemplates.length>0)&&y.jsx(v,{title:"Resources",items:[...t.resources,...t.resourceTemplates],icon:y.jsx(Bx,{className:"text-description h-4 w-4 flex-shrink-0"}),sectionKey:`${t.id}-resources`})]}),t.errors&&t.errors.length>0&&y.jsx("div",{className:"mt-3 space-y-2",children:t.errors.map((x,w)=>y.jsx(X0,{type:"error",size:"sm",className:"cursor-pointer transition-all hover:underline",onClick:()=>void a.ide.showVirtualFile(t.name,x),children:y.jsx("span",{className:"text-xs",children:x.length>150?x.substring(0,150)+"...":x})},w))}),t.infos&&t.infos.length>0&&y.jsx("div",{className:"mt-3 space-y-2",children:t.infos.map((x,w)=>y.jsx(X0,{type:"info",size:"sm",className:"transition-all",onClick:()=>void a.ide.showVirtualFile(t.name,x),children:y.jsx("span",{className:"text-xs",dangerouslySetInnerHTML:{__html:x}})},w))})]})}function BSn(){var h;const t=He(m=>m.config.config.tools),e=He(cp),n=He(m=>m.session.mode),r=He(m=>m.config.config.mcpServerStatuses),{selectedProfile:i}=as(),s=g.useContext(qt),a=((h=e==null?void 0:e.policy)==null?void 0:h.allowMcpServers)===!1,o=(i==null?void 0:i.profileType)==="local",l=g.useMemo(()=>{const m={};return t.forEach(p=>{m[p.function.name]?m[p.function.name]=m[p.function.name]+1:m[p.function.name]=1}),Object.fromEntries(Object.entries(m).map(([p,v])=>[p,v>1]))},[t]),c=g.useMemo(()=>{var v;const m=i!=null&&i.rawYaml?II((i==null?void 0:i.rawYaml)??""):void 0,p=new Map(((v=m==null?void 0:m.mcpServers)==null?void 0:v.filter(x=>x!=null&&"name"in x).map(x=>[x.name,x]))??[]);return(r??[]).map(x=>({block:x,blockFromYaml:p.get(x.name)}))},[r,i]),u=()=>{o?s.request("config/addLocalWorkspaceBlock",{blockType:"mcpServers"}):s.request("controlPlane/openUrl",{path:"?type=mcpServers",orgSlug:void 0})},d=g.useMemo(()=>n==="chat",[n]),f=n==="chat"?"All tools disabled in Chat, switch to Plan or Agent mode to use tools":n==="plan"?"Read-only tools available in Plan mode":"";return y.jsxs(y.Fragment,{children:[y.jsx(go,{title:"Tools",subtext:"Manage MCP servers and tool policies",className:"mb-2"}),!!f&&y.jsx("div",{className:"mb-4",children:y.jsx(X0,{type:"info",size:"sm",children:y.jsx("span",{className:"text-2xs italic",children:f})})}),y.jsxs("div",{className:"mb-4 space-y-6",children:[y.jsx(bGe,{showIcon:!1,groupName:Hb,displayName:"Built-in Tools",allToolsOff:d,duplicateDetection:l}),y.jsx(go,{className:"pr-2",title:"MCP Servers",variant:"sm",onAddClick:u,addButtonTooltip:"Add MCP server",showAddButton:!a}),a?y.jsx(na,{children:y.jsx(Ry,{message:"MCP servers are disabled in your organization"})}):y.jsxs(y.Fragment,{children:[n==="chat"&&y.jsx(X0,{type:"info",size:"sm",children:y.jsx("span",{className:"text-2xs italic",children:"All MCPs are disabled in Chat, switch to Plan or Agent mode to use MCPs"})}),c.length>0?c.map(({block:m,blockFromYaml:p})=>y.jsx(FSn,{server:m,serverFromYaml:p,allToolsOff:d,duplicateDetection:l},m.name)):y.jsx(na,{children:y.jsx(Ry,{message:"No MCP servers configured. Click the + button to add your first server."})})]})]})]})}function USn(t){return t?t.endsWith("@continue.dev"):!1}function qSn({enableStaticContextualization:t,handleEnableStaticContextualizationToggle:e}){return y.jsxs("div",{className:"flex w-full flex-col gap-y-4",children:[y.jsx("div",{className:"my-2 text-center text-xs font-medium text-slate-400",children:"🚧 INTERNAL SETTINGS 🚧"}),y.jsx("div",{className:"flex w-full flex-col gap-y-4",children:y.jsx(CO,{isToggled:t,onToggle:()=>e(!t),text:"Use Static Contextualization"})})]})}function HSn(){var G,U,J,F,H,V,L,se,oe,X,de,le,te,Fe,Ge,Ve,vt,ft;const t=vr(),e=g.useContext(qt),n=He(ne=>ne.config.config),r=He(cp),[i,s]=g.useState(!1),{session:a}=as();function o(ne){const Ye=vGe(n,ne);t(Ax(Ye)),e.post("config/updateSharedConfig",ne)}const l=(((G=n.tabAutocompleteOptions)==null?void 0:G.disableInFiles)??[]).join(", "),[c,u]=g.useState(l);g.useEffect(()=>{u(l)},[l]),(U=n.experimental)!=null&&U.promptPath;const d=ne=>{o({enableStaticContextualization:ne})},f=((J=n.ui)==null?void 0:J.showSessionTabs)??!1,h=((F=n.ui)==null?void 0:F.continueAfterToolRejection)??!1,m=((H=n.ui)==null?void 0:H.codeWrap)??!1,p=((V=n.ui)==null?void 0:V.showChatScrollbar)??!1,v=((L=n.experimental)==null?void 0:L.readResponseTTS)??!1,x=((se=n.ui)==null?void 0:se.displayRawMarkdown)??!1,w=n.disableSessionTitles??!1,E=((oe=n.experimental)==null?void 0:oe.useCurrentFileAsContext)??!1,S=((X=n.experimental)==null?void 0:X.enableExperimentalTools)??!1,_=((de=n.experimental)==null?void 0:de.onlyUseSystemMessageTools)??!1,C=((le=n.experimental)==null?void 0:le.codebaseToolCallingOnly)??!1,T=((te=n.experimental)==null?void 0:te.enableStaticContextualization)??!1,M=n.allowAnonymousTelemetry??!0,A=((Fe=n.tabAutocompleteOptions)==null?void 0:Fe.multilineCompletions)??"auto",$=((Ge=n.tabAutocompleteOptions)==null?void 0:Ge.modelTimeout)??150,O=((Ve=n.tabAutocompleteOptions)==null?void 0:Ve.debounceDelay)??250,D=jf(),N=()=>{u(l)},R=()=>{o({disableAutocompleteInFiles:c.split(",").map(ne=>ne.trim()).filter(ne=>!!ne)})},q=USn((vt=a==null?void 0:a.account)==null?void 0:vt.id),W=((ft=r==null?void 0:r.policy)==null?void 0:ft.allowAnonymousTelemetry)===!1;return y.jsx("div",{children:y.jsxs("div",{className:"flex flex-col",children:[y.jsx(go,{title:"User Settings"}),y.jsxs("div",{className:"space-y-6",children:[y.jsxs("div",{children:[y.jsx(go,{title:"Chat",variant:"sm"}),y.jsx(na,{children:y.jsxs("div",{className:"flex flex-col gap-4",children:[y.jsx(Ua,{type:"toggle",title:"Show Session Tabs",description:"Displays tabs above the chat as an alternative way to organize and access your sessions.",value:f,onChange:ne=>o({showSessionTabs:ne})}),y.jsx(Ua,{type:"toggle",title:"Wrap Codeblocks",description:"Wraps long lines in code blocks instead of showing horizontal scroll.",value:m,onChange:ne=>o({codeWrap:ne})}),y.jsx(Ua,{type:"toggle",title:"Show Chat Scrollbar",description:"Enables a scrollbar in the chat window.",value:p,onChange:ne=>o({showChatScrollbar:ne})}),y.jsx(Ua,{type:"toggle",title:"Text-to-Speech Output",description:"Reads LLM responses aloud with TTS.",value:v,onChange:ne=>o({readResponseTTS:ne})}),y.jsx(Ua,{type:"toggle",title:"Enable Session Titles",description:"Generates summary titles for each chat session after the first message, using the current Chat model.",value:!w,onChange:ne=>o({disableSessionTitles:!ne})}),y.jsx(Ua,{type:"toggle",title:"Format Markdown",description:"If off, shows responses as raw text.",value:!x,onChange:ne=>o({displayRawMarkdown:!ne})})]})})]}),y.jsxs("div",{children:[y.jsx(go,{title:"Telemetry",variant:"sm"}),y.jsx(na,{children:y.jsx("div",{className:"flex flex-col gap-4",children:y.jsx(Ua,{type:"toggle",title:"Allow Anonymous Telemetry",description:"Allows Continue to send anonymous telemetry.",value:M,disabled:W,onChange:ne=>o({allowAnonymousTelemetry:ne})})})})]}),y.jsxs("div",{children:[y.jsx(go,{title:"Appearance",variant:"sm"}),y.jsx(na,{children:y.jsx("div",{className:"flex flex-col gap-4",children:y.jsx(Ua,{type:"number",title:"Font Size",description:"Specifies base font size for UI elements.",value:D,onChange:ne=>{jd("fontSize",ne),o({fontSize:ne})},min:7,max:50})})})]}),y.jsxs("div",{children:[y.jsx(go,{title:"Autocomplete",variant:"sm"}),y.jsx(na,{children:y.jsxs("div",{className:"flex flex-col gap-4",children:[y.jsx(Ua,{type:"select",title:"Multiline Autocompletions",description:"Controls multiline completions for autocomplete.",value:A,onChange:ne=>o({useAutocompleteMultilineCompletions:ne}),options:[{label:"Auto",value:"auto"},{label:"Always",value:"always"},{label:"Never",value:"never"}]}),y.jsx(Ua,{type:"number",title:"Autocomplete Timeout (ms)",description:"Maximum time in milliseconds for autocomplete request/retrieval.",value:$,onChange:ne=>o({modelTimeout:ne}),min:100,max:5e3}),y.jsx(Ua,{type:"number",title:"Autocomplete Debounce (ms)",description:"Minimum time in milliseconds to trigger an autocomplete request after a change.",value:O,onChange:ne=>o({debounceDelay:ne}),min:0,max:2500}),y.jsx(Ua,{type:"input",title:"Disable autocomplete in files",description:"List of comma-separated glob pattern to disable autocomplete in matching files.",placeholder:"**/*.(txt,md)",value:c,onChange:u,onSubmit:R,onCancel:N,isDirty:c!==l,isValid:c.trim()!==""})]})})]}),y.jsxs("div",{children:[y.jsx(go,{title:"Experimental",variant:"sm"}),y.jsx(na,{children:y.jsx(Qke,{isOpen:i,onToggle:()=>s(!i),title:"Show Experimental Settings",children:y.jsxs("div",{className:"flex flex-col gap-x-1 gap-y-4",children:[y.jsx(Ua,{type:"toggle",title:"Add Current File by Default",description:" the currently open file is added as context in every new conversation.",value:E,onChange:ne=>o({useCurrentFileAsContext:ne})}),y.jsx(Ua,{type:"toggle",title:"Enable experimental tools",description:" enables access to experimental tools that are still in development.",value:S,onChange:ne=>o({enableExperimentalTools:ne})}),y.jsx(Ua,{type:"toggle",title:"Only use system message tools",description:" Continue will not attempt to use native tool calling and will only use system message tools.",value:_,onChange:ne=>o({onlyUseSystemMessageTools:ne})}),y.jsx(Ua,{type:"toggle",title:"@Codebase: use tool calling only",description:" @codebase context provider will only use tool calling for code retrieval.",value:C,onChange:ne=>o({codebaseToolCallingOnly:ne})}),y.jsx(Ua,{type:"toggle",title:"Stream after tool rejection",description:" streaming will continue after the tool call is rejected.",value:h,onChange:ne=>o({continueAfterToolRejection:ne})}),q&&y.jsx(qSn,{enableStaticContextualization:T,handleEnableStaticContextualizationToggle:d})]})})})]})]})]})})}const xGe=[{id:"top",tabs:[{id:"back",label:"Back",component:y.jsx("div",{}),icon:y.jsx(D6,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})}]},{id:"blocks",showTopDivider:!0,tabs:[{id:"models",label:"Models",component:y.jsx(p0,{children:y.jsx(CSn,{})}),icon:y.jsx(_g,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})},{id:"rules",label:"Rules",component:y.jsx(p0,{children:y.jsx(LSn,{})}),icon:y.jsx(Em,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})},{id:"tools",label:"Tools",component:y.jsx(p0,{children:y.jsx(BSn,{})}),icon:y.jsx(L6,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})}]},{id:"agents-orgs",showTopDivider:!0,tabs:[{id:"configs",label:"Configs",component:y.jsx(p0,{children:y.jsx(Pkn,{})}),icon:y.jsx(z6e,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})},{id:"organizations",label:"Organizations",component:y.jsx(p0,{children:y.jsx($Sn,{})}),icon:y.jsx(D6e,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})}]},{id:"indexing",showTopDivider:!0,tabs:[{id:"indexing",label:"Indexing",component:y.jsx(p0,{children:y.jsx(wSn,{})}),icon:y.jsx(Bx,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})}]}],wGe=[{id:"bottom",tabs:[{id:"settings",label:"Settings",component:y.jsx(p0,{children:y.jsx(HSn,{})}),icon:y.jsx(Wc,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})},{id:"help",label:"Help",component:y.jsx(p0,{children:y.jsx(Vkn,{})}),icon:y.jsx(t_e,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"})}]}],WSn=()=>[...xGe,...wGe].flatMap(t=>t.tabs);function VSn(){const{session:t,logout:e,login:n}=as(),r=g.useContext(qt);return OI(t)?null:t?y.jsx("div",{children:y.jsx(Vd,{children:({open:i})=>y.jsxs(y.Fragment,{children:[y.jsxs(Uu,{className:`text-description w-full justify-start gap-1 border-none px-2 py-1.5 ${i?"bg-input":"hover:bg-input bg-inherit"}`,children:[y.jsx(zq,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"}),y.jsxs("div",{className:"ml-1 flex min-w-0 flex-1 flex-col items-start overflow-hidden",children:[y.jsx("span",{className:"w-full truncate text-xs font-medium hover:brightness-110",children:t.account.label}),y.jsx("span",{className:"text-description-muted w-full truncate text-xs",children:t.account.id})]})]}),y.jsxs(Zd,{anchor:"right end",children:[y.jsxs("div",{className:"md:hidden",children:[y.jsxs("div",{className:"flex items-center gap-2 px-2 py-1",children:[y.jsx(zq,{className:"h-5 w-5 flex-shrink-0"}),y.jsxs("div",{className:"flex min-w-0 flex-col",children:[y.jsx("span",{className:"truncate text-xs font-medium",children:t.account.label}),y.jsx("span",{className:"text-description-muted truncate text-xs",children:t.account.id})]})]}),y.jsx(bo,{})]}),y.jsx(Zs,{onClick:()=>r.post("openUrl","https://continue.dev/settings"),value:"manage-account",children:y.jsxs("div",{className:"flex items-center gap-2 py-0.5",children:[y.jsx(Wc,{className:"h-3.5 w-3.5"}),y.jsx("span",{children:"Manage Account"})]})}),y.jsx(Zs,{onClick:e,value:"logout",children:y.jsxs("div",{className:"flex items-center gap-2 py-0.5",children:[y.jsx(iC,{className:"h-3.5 w-3.5"}),y.jsx("span",{children:"Log out"})]})})]})]})})}):y.jsx(Ln,{content:"Log in",className:"text-xs md:!hidden",children:y.jsxs(ai,{variant:"ghost",className:"text-description flex w-full flex-row items-center gap-2 px-2 py-1.5",onClick:()=>n(!1),children:[y.jsx(aC,{className:"xs:h-4 xs:w-4 h-3 w-3 flex-shrink-0"}),y.jsx("span",{className:"text-description hidden text-xs md:block",children:"Log in"})]})})}function ZSn(){var l;sGe();const t=wa(),[e]=z3e(),n=e.get("tab")||"settings",{session:r,organizations:i}=as(),s=WSn(),a=r&&i.length>1&&!OI(r),o=c=>{t(c==="back"?"/":`/config?tab=${c}`)};return y.jsxs("div",{className:"flex h-full flex-row overflow-hidden",children:[y.jsx("div",{className:"bg-vsc-background flex w-12 flex-shrink-0 flex-col border-0 md:w-40",children:y.jsxs("div",{className:"border-r-border flex flex-1 flex-col overflow-y-auto border-b-0 border-l-0 border-r-2 border-t-0 border-solid p-2 text-xs",children:[xGe.map((c,u)=>y.jsxs(wt.Fragment,{children:[y.jsx(Q2e,{tabs:c.tabs,activeTab:n,onTabClick:o,showTopDivider:c.showTopDivider,showBottomDivider:c.showBottomDivider,className:c.className}),u===0&&a&&y.jsxs(y.Fragment,{children:[y.jsx(bo,{}),y.jsx(fNe,{variant:"sidebar"})]})]},c.id)),y.jsx("div",{className:"flex-1"}),wGe.map(c=>y.jsx(Q2e,{tabs:c.tabs,activeTab:n,onTabClick:o,showTopDivider:c.showTopDivider,showBottomDivider:c.showBottomDivider,className:c.className},c.id)),y.jsx(bo,{}),y.jsx(VSn,{})]})}),y.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[y.jsx("div",{className:"block px-4 py-4 sm:hidden",children:y.jsx(X0,{type:"warning",className:"max-w-md",children:y.jsxs("div",{className:"flex flex-col",children:[y.jsx("div",{className:"font-medium",children:"Screen width too small"}),y.jsx("div",{className:"text-description mt-1 text-sm",children:"To view settings, please expand the sidebar by dragging the left/right border"})]})})}),y.jsx("div",{className:"thin-scrollbar relative hidden flex-1 overflow-y-auto sm:block",children:y.jsx("div",{className:"space-y-6 px-4 py-4",children:(l=s.find(c=>c.id===n))==null?void 0:l.component})})]})]})}const GSn=()=>{const t=j3e();console.error(t);const e=Dl(),n=wa(),r=g.useContext(qt),i=o=>{r&&r.post("openUrl",o)},[s,a]=g.useState(!0);return g.useEffect(()=>{setTimeout(()=>{a(!1)},500)},[]),y.jsxs("div",{className:"flex flex-col items-center justify-center px-2 py-4 text-center sm:px-8",children:[y.jsx("h1",{className:"mb-4 text-3xl font-bold",children:"Oops! Something went wrong"}),y.jsx("code",{className:"whitespace-wrap mx-2 mb-4 max-w-full break-words py-2",children:t.statusText||t.message}),y.jsxs(op,{className:"flex flex-row items-center gap-2",onClick:()=>{e(nd()),localStorage.removeItem("persist:root"),localStorage.removeItem("inputHistory_chat"),n("/")},children:[s?y.jsx(q6e,{className:"h-5 w-5 text-red-600"}):y.jsx(rd,{className:"h-5 w-5"}),"Continue"]}),y.jsx("p",{className:"mb-0 mt-6 text-lg",children:"Report the issue on GitHub or Discussions:"}),y.jsxs("div",{className:"mt-2 flex flex-row flex-wrap justify-center gap-2",children:[y.jsxs(Pd,{onClick:()=>i(USt),className:"flex items-center justify-center space-x-2 rounded-lg px-4 py-2 text-base text-white",children:[y.jsx(ww,{size:20})," ",y.jsx("span",{className:"ml-2",children:"GitHub Issues"})]}),y.jsxs(Pd,{onClick:()=>i(r7e),className:"flex items-center justify-center rounded-lg text-base",children:[y.jsx(ww,{size:20})," ",y.jsx("span",{className:"ml-2",children:"Discussions"})]})]})]})},sve=ast();function KSn({sessionMetadata:t,index:e}){const n=vr(),r=wa(),i=g.useContext(qt),[s,a]=g.useState(!1),[o,l]=g.useState(!1),[c,u]=g.useState(t.title),d=He(p=>p.session.id);g.useEffect(()=>{u(t.title)},[t]);const f=async p=>{sve&&await i.request("session/share",{sessionId:p})},h="isRemote"in t&&t.isRemote,m=async p=>{if(p.key==="Enter"){if(c!==t.title){if(h){u(t.title),l(!1);return}const v=await LE(i,t.sessionId);await n(lNe({...v,title:c}))}l(!1)}else p.key==="Escape"&&(u(t.title),l(!1))};return y.jsxs("tr",{onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),"data-testid":`history-row-${e}`,className:"hover:bg-input relative mb-2 box-border flex w-full cursor-pointer overflow-hidden rounded-lg p-3",onClick:async()=>{if(h){const p=t;await n(Of({})),await n(kln({remoteId:p.remoteId,saveCurrentSession:!0})),r("/");return}await n(Of({})),t.sessionId!==d&&await n(x_({sessionId:t.sessionId,saveCurrentSession:!0})),r("/")},children:[y.jsxs("td",{className:"flex-1 cursor-pointer space-y-1",children:[o?y.jsx("div",{children:y.jsx(Nf,{type:"text",className:"w-full",ref:p=>p&&p.focus(),value:c,onChange:p=>u(p.target.value),onKeyUp:p=>m(p),onBlur:()=>l(!1)})}):y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"line-clamp-1 break-all text-sm font-semibold",children:t.title}),h&&y.jsx("span",{className:"inline-flex items-center rounded-full bg-blue-100 px-2 py-1 text-xs font-medium text-blue-800 dark:bg-blue-900/20 dark:text-blue-300",children:"Remote"}),t.messageCount!==void 0&&y.jsx(Ln,{content:`${t.messageCount} message${t.messageCount===1?" is":"s are"} present in this session`,children:y.jsx("span",{className:"bg-vsc-background text-secondary-foreground ml-auto inline-flex items-center rounded-full px-2 py-1 text-xs font-medium",children:t.messageCount})})]}),y.jsx("div",{className:"text-description-muted flex",children:y.jsx("span",{className:"line-clamp-1 break-all text-xs",children:qu(t.workspaceDirectory||"")})})]}),s&&!o&&y.jsx("td",{className:"bg-input absolute right-2 top-12 ml-auto flex -translate-y-1/2 transform items-center gap-x-1 rounded-full px-2 py-1 shadow-md",children:h?y.jsx(zs,{text:"Open in browser",onClick:async p=>{p.stopPropagation(),await i.request("controlPlane/openUrl",{path:`/agents/${t.remoteId}`})},children:y.jsx(M6e,{width:"1em",height:"1em"})}):y.jsxs(y.Fragment,{children:[y.jsx(zs,{text:"Edit",onClick:async p=>{p.stopPropagation(),l(!0)},children:y.jsx(rG,{width:"1em",height:"1em"})}),sve&&y.jsx(zs,{text:"Save Chat as Markdown",onClick:async p=>{p.stopPropagation(),await f(t.sessionId)},children:y.jsx(y6e,{width:"1em",height:"1em"})}),y.jsx(zs,{text:"Delete",onClick:async p=>{p.stopPropagation(),await n(_ln(t.sessionId))},children:y.jsx(kg,{width:"1em",height:"1em"})})]})})]})}const Gv=t=>{let e=new Date(t);return isNaN(e.getTime())&&(e=new Date(parseInt(t))),e},YSn=t=>{const e=new Date(Date.now()-864e5),n=new Date(Date.now()-1e3*60*60*24*7),r=new Date(Date.now()-1e3*60*60*24*30),i=[],s=t.filter(c=>Gv(c.dateCreated)>e),a=t.filter(c=>{const u=Gv(c.dateCreated);return u<=e&&u>n}),o=t.filter(c=>{const u=Gv(c.dateCreated);return u<=n&&u>r}),l=t.filter(c=>Gv(c.dateCreated)<=r);return s.length>0&&i.push({label:"Today",sessions:s}),a.length>0&&i.push({label:"This Week",sessions:a}),o.length>0&&i.push({label:"This Month",sessions:o}),l.length>0&&i.push({label:"Older",sessions:l}),i};function _Ge(){const t=vr(),e=wa(),n=wt.useRef(null),r=g.useContext(qt),[i,s]=g.useState(""),a=g.useRef(new F0({fields:["title"],storeFields:["title","sessionId","id"]})).current,o=He(h=>h.session.allSessionMetadata),l=He(h=>h.session.isSessionMetadataLoading);g.useEffect(()=>{try{a.removeAll(),a.addAll(o.map(h=>({title:h.title,sessionId:h.sessionId,id:h.sessionId})))}catch(h){console.log("error adding sessions to minisearch",h)}},[o]);const c=g.useMemo(()=>km(),[]),u=g.useMemo(()=>{const h=a.search(i,{fuzzy:!1}),m=a.search(i,{fuzzy:.3}),p=a.search(i,{prefix:!0,fuzzy:.2}),v=[...h.map(S=>({...S,priority:3})),...m.map(S=>({...S,priority:2})),...p.map(S=>({...S,priority:1}))],x=new Map;v.forEach(S=>{const _=x.get(S.id);(!_||_.priority_.priority-S.priority||_.score-S.score).map(S=>S.id);return o.filter(S=>i===""||E.includes(S.sessionId)).sort((S,_)=>Gv(_.dateCreated).getTime()-Gv(S.dateCreated).getTime())},[o,i,a]),d=g.useMemo(()=>YSn(u),[u]),f=()=>{t(Ri(y.jsx(yne,{title:"Clear sessions",text:"Are you sure you want to permanently delete all chat sessions, including the current chat session?",onConfirm:async()=>{t(hZe([])),await r.request("history/clear",void 0),t(AI({})),t(nd()),e(Yl.HOME)}}))),t(hi(!0))};return y.jsxs("div",{style:{fontSize:la()},className:"flex flex-1 flex-col overflow-auto overflow-x-hidden px-1",children:[y.jsxs("div",{className:"relative my-2 mt-4 flex justify-center space-x-2",children:[y.jsx("input",{className:"bg-vsc-input-background text-vsc-foreground flex-1 rounded-md border border-none py-1 pl-2 pr-8 text-sm outline-none focus:outline-none",ref:n,placeholder:"Search past sessions",type:"text",value:i,onChange:h=>s(h.target.value)}),i&&y.jsx(Owt,{className:"text-vsc-foreground hover:bg-vsc-background duration-50 absolute right-3 top-1/2 h-5 w-5 -translate-y-1/2 transform cursor-pointer rounded-full p-0.5 transition-colors",onClick:()=>{s(""),n.current&&n.current.focus()}})]}),y.jsxs("div",{className:"thin-scrollbar flex w-full flex-1 flex-col overflow-y-auto",children:[u.length===0&&y.jsx("div",{className:"m-3 text-center",children:l?"Loading Sessions...":y.jsxs(y.Fragment,{children:['No past sessions found. To start a new session, either click the "+" button or use the keyboard shortcut:'," ",y.jsx(f$,{children:"meta L"})]})}),y.jsx("table",{className:"flex w-full flex-1 flex-col",children:y.jsx("tbody",{className:"",children:d.map((h,m)=>y.jsxs(g.Fragment,{children:[y.jsx("tr",{className:`user-select-none sticky mb-3 ml-2 flex h-6 justify-start text-left text-base font-bold opacity-75 ${m===0?"mt-2":"mt-8"}`,children:y.jsx("td",{colSpan:3,children:h.label})}),h.sessions.map((p,v)=>y.jsx(KSn,{sessionMetadata:p,index:v},p.sessionId))]},h.label))})})]}),y.jsxs("div",{className:"border-border flex flex-col items-end justify-center border-0 border-t border-solid px-2 py-3 text-xs",children:[y.jsx(ai,{variant:"secondary",size:"sm",onClick:f,children:"Clear chats"}),y.jsxs("span",{className:"text-description text-2xs","data-testid":"history-sessions-note",children:["Chat history is saved to"," ",y.jsx("span",{className:"italic",children:c==="windows"?"%USERPROFILE%/.continue":"~/.continue/sessions"})]})]})]})}function ave(){return y.jsxs("div",{className:"flex w-screen flex-row overflow-hidden",children:[y.jsx("aside",{className:"4xl:flex border-vsc-input-border no-scrollbar hidden w-96 overflow-y-auto border-0 border-r border-solid",children:y.jsx(_Ge,{})}),y.jsx("main",{className:"no-scrollbar flex flex-1 flex-col overflow-y-auto",children:y.jsx(E3n,{})})]})}function kGe({onTitleClick:t,title:e,showBorder:n=!0}){return y.jsx("div",{className:`border-command-border sticky top-0 z-20 m-0 flex items-center justify-between border border-x-0 ${n?"border-b":"border-b-0"} border-t-0 border-solid bg-inherit py-3.5`,children:y.jsxs("div",{className:"flex cursor-pointer items-center transition-colors duration-200 hover:brightness-125",onClick:t,children:[y.jsx(D6,{className:"ml-3 inline-block h-3 w-3"}),e&&y.jsx("span",{className:"mx-2 inline-block font-bold",children:e})]})})}function JSn(){const t=wa();return y.jsxs("div",{className:"flex flex-1 flex-col overflow-auto",style:{fontSize:la()},children:[y.jsx(kGe,{showBorder:!0,onTitleClick:()=>t("/"),title:"Chat"}),y.jsx(_Ge,{})]})}var h1={},M3={},N3={},p1={},m8={exports:{}},lz,ove;function XSn(){return ove||(ove=1,lz=({onlyFirst:t=!1}={})=>{const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}),lz}var cz,lve;function bne(){if(lve)return cz;lve=1;const t=XSn();return cz=e=>typeof e=="string"?e.replace(t(),""):e,cz}var g8={exports:{}},cve;function SGe(){if(cve)return g8.exports;cve=1;const t=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);return g8.exports=t,g8.exports.default=t,g8.exports}var uz,uve;function QSn(){return uve||(uve=1,uz=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}),uz}var dve;function $k(){if(dve)return m8.exports;dve=1;const t=bne(),e=SGe(),n=QSn(),r=i=>{if(typeof i!="string"||i.length===0||(i=t(i),i.length===0))return 0;i=i.replace(n()," ");let s=0;for(let a=0;a=127&&o<=159||o>=768&&o<=879||(o>65535&&a++,s+=e(o)?2:1)}return s};return m8.exports=r,m8.exports.default=r,m8.exports}var xi={},dz,fve;function e8n(){if(fve)return dz;fve=1;const t="[\uD800-\uDBFF][\uDC00-\uDFFF]";return dz=n=>n&&n.exact?new RegExp(`^${t}$`):new RegExp(t,"g"),dz}var y9={exports:{}},fz,hve;function t8n(){return hve||(hve=1,fz={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),fz}var hz,pve;function CGe(){if(pve)return hz;pve=1;const t=t8n(),e={};for(const i of Object.keys(t))e[t[i]]=i;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};hz=n;for(const i of Object.keys(n)){if(!("channels"in n[i]))throw new Error("missing channels property: "+i);if(!("labels"in n[i]))throw new Error("missing channel labels property: "+i);if(n[i].labels.length!==n[i].channels)throw new Error("channel and label counts mismatch: "+i);const{channels:s,labels:a}=n[i];delete n[i].channels,delete n[i].labels,Object.defineProperty(n[i],"channels",{value:s}),Object.defineProperty(n[i],"labels",{value:a})}n.rgb.hsl=function(i){const s=i[0]/255,a=i[1]/255,o=i[2]/255,l=Math.min(s,a,o),c=Math.max(s,a,o),u=c-l;let d,f;c===l?d=0:s===c?d=(a-o)/u:a===c?d=2+(o-s)/u:o===c&&(d=4+(s-a)/u),d=Math.min(d*60,360),d<0&&(d+=360);const h=(l+c)/2;return c===l?f=0:h<=.5?f=u/(c+l):f=u/(2-c-l),[d,f*100,h*100]},n.rgb.hsv=function(i){let s,a,o,l,c;const u=i[0]/255,d=i[1]/255,f=i[2]/255,h=Math.max(u,d,f),m=h-Math.min(u,d,f),p=function(v){return(h-v)/6/m+1/2};return m===0?(l=0,c=0):(c=m/h,s=p(u),a=p(d),o=p(f),u===h?l=o-a:d===h?l=1/3+s-o:f===h&&(l=2/3+a-s),l<0?l+=1:l>1&&(l-=1)),[l*360,c*100,h*100]},n.rgb.hwb=function(i){const s=i[0],a=i[1];let o=i[2];const l=n.rgb.hsl(i)[0],c=1/255*Math.min(s,Math.min(a,o));return o=1-1/255*Math.max(s,Math.max(a,o)),[l,c*100,o*100]},n.rgb.cmyk=function(i){const s=i[0]/255,a=i[1]/255,o=i[2]/255,l=Math.min(1-s,1-a,1-o),c=(1-s-l)/(1-l)||0,u=(1-a-l)/(1-l)||0,d=(1-o-l)/(1-l)||0;return[c*100,u*100,d*100,l*100]};function r(i,s){return(i[0]-s[0])**2+(i[1]-s[1])**2+(i[2]-s[2])**2}return n.rgb.keyword=function(i){const s=e[i];if(s)return s;let a=1/0,o;for(const l of Object.keys(t)){const c=t[l],u=r(i,c);u.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;const l=s*.4124+a*.3576+o*.1805,c=s*.2126+a*.7152+o*.0722,u=s*.0193+a*.1192+o*.9505;return[l*100,c*100,u*100]},n.rgb.lab=function(i){const s=n.rgb.xyz(i);let a=s[0],o=s[1],l=s[2];a/=95.047,o/=100,l/=108.883,a=a>.008856?a**(1/3):7.787*a+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,l=l>.008856?l**(1/3):7.787*l+16/116;const c=116*o-16,u=500*(a-o),d=200*(o-l);return[c,u,d]},n.hsl.rgb=function(i){const s=i[0]/360,a=i[1]/100,o=i[2]/100;let l,c,u;if(a===0)return u=o*255,[u,u,u];o<.5?l=o*(1+a):l=o+a-o*a;const d=2*o-l,f=[0,0,0];for(let h=0;h<3;h++)c=s+1/3*-(h-1),c<0&&c++,c>1&&c--,6*c<1?u=d+(l-d)*6*c:2*c<1?u=l:3*c<2?u=d+(l-d)*(2/3-c)*6:u=d,f[h]=u*255;return f},n.hsl.hsv=function(i){const s=i[0];let a=i[1]/100,o=i[2]/100,l=a;const c=Math.max(o,.01);o*=2,a*=o<=1?o:2-o,l*=c<=1?c:2-c;const u=(o+a)/2,d=o===0?2*l/(c+l):2*a/(o+a);return[s,d*100,u*100]},n.hsv.rgb=function(i){const s=i[0]/60,a=i[1]/100;let o=i[2]/100;const l=Math.floor(s)%6,c=s-Math.floor(s),u=255*o*(1-a),d=255*o*(1-a*c),f=255*o*(1-a*(1-c));switch(o*=255,l){case 0:return[o,f,u];case 1:return[d,o,u];case 2:return[u,o,f];case 3:return[u,d,o];case 4:return[f,u,o];case 5:return[o,u,d]}},n.hsv.hsl=function(i){const s=i[0],a=i[1]/100,o=i[2]/100,l=Math.max(o,.01);let c,u;u=(2-a)*o;const d=(2-a)*l;return c=a*l,c/=d<=1?d:2-d,c=c||0,u/=2,[s,c*100,u*100]},n.hwb.rgb=function(i){const s=i[0]/360;let a=i[1]/100,o=i[2]/100;const l=a+o;let c;l>1&&(a/=l,o/=l);const u=Math.floor(6*s),d=1-o;c=6*s-u,(u&1)!==0&&(c=1-c);const f=a+c*(d-a);let h,m,p;switch(u){default:case 6:case 0:h=d,m=f,p=a;break;case 1:h=f,m=d,p=a;break;case 2:h=a,m=d,p=f;break;case 3:h=a,m=f,p=d;break;case 4:h=f,m=a,p=d;break;case 5:h=d,m=a,p=f;break}return[h*255,m*255,p*255]},n.cmyk.rgb=function(i){const s=i[0]/100,a=i[1]/100,o=i[2]/100,l=i[3]/100,c=1-Math.min(1,s*(1-l)+l),u=1-Math.min(1,a*(1-l)+l),d=1-Math.min(1,o*(1-l)+l);return[c*255,u*255,d*255]},n.xyz.rgb=function(i){const s=i[0]/100,a=i[1]/100,o=i[2]/100;let l,c,u;return l=s*3.2406+a*-1.5372+o*-.4986,c=s*-.9689+a*1.8758+o*.0415,u=s*.0557+a*-.204+o*1.057,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,l=Math.min(Math.max(0,l),1),c=Math.min(Math.max(0,c),1),u=Math.min(Math.max(0,u),1),[l*255,c*255,u*255]},n.xyz.lab=function(i){let s=i[0],a=i[1],o=i[2];s/=95.047,a/=100,o/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;const l=116*a-16,c=500*(s-a),u=200*(a-o);return[l,c,u]},n.lab.xyz=function(i){const s=i[0],a=i[1],o=i[2];let l,c,u;c=(s+16)/116,l=a/500+c,u=c-o/200;const d=c**3,f=l**3,h=u**3;return c=d>.008856?d:(c-16/116)/7.787,l=f>.008856?f:(l-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,l*=95.047,c*=100,u*=108.883,[l,c,u]},n.lab.lch=function(i){const s=i[0],a=i[1],o=i[2];let l;l=Math.atan2(o,a)*360/2/Math.PI,l<0&&(l+=360);const u=Math.sqrt(a*a+o*o);return[s,u,l]},n.lch.lab=function(i){const s=i[0],a=i[1],l=i[2]/360*2*Math.PI,c=a*Math.cos(l),u=a*Math.sin(l);return[s,c,u]},n.rgb.ansi16=function(i,s=null){const[a,o,l]=i;let c=s===null?n.rgb.hsv(i)[2]:s;if(c=Math.round(c/50),c===0)return 30;let u=30+(Math.round(l/255)<<2|Math.round(o/255)<<1|Math.round(a/255));return c===2&&(u+=60),u},n.hsv.ansi16=function(i){return n.rgb.ansi16(n.hsv.rgb(i),i[2])},n.rgb.ansi256=function(i){const s=i[0],a=i[1],o=i[2];return s===a&&a===o?s<8?16:s>248?231:Math.round((s-8)/247*24)+232:16+36*Math.round(s/255*5)+6*Math.round(a/255*5)+Math.round(o/255*5)},n.ansi16.rgb=function(i){let s=i%10;if(s===0||s===7)return i>50&&(s+=3.5),s=s/10.5*255,[s,s,s];const a=(~~(i>50)+1)*.5,o=(s&1)*a*255,l=(s>>1&1)*a*255,c=(s>>2&1)*a*255;return[o,l,c]},n.ansi256.rgb=function(i){if(i>=232){const c=(i-232)*10+8;return[c,c,c]}i-=16;let s;const a=Math.floor(i/36)/5*255,o=Math.floor((s=i%36)/6)/5*255,l=s%6/5*255;return[a,o,l]},n.rgb.hex=function(i){const a=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(a.length)+a},n.hex.rgb=function(i){const s=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!s)return[0,0,0];let a=s[0];s[0].length===3&&(a=a.split("").map(d=>d+d).join(""));const o=parseInt(a,16),l=o>>16&255,c=o>>8&255,u=o&255;return[l,c,u]},n.rgb.hcg=function(i){const s=i[0]/255,a=i[1]/255,o=i[2]/255,l=Math.max(Math.max(s,a),o),c=Math.min(Math.min(s,a),o),u=l-c;let d,f;return u<1?d=c/(1-u):d=0,u<=0?f=0:l===s?f=(a-o)/u%6:l===a?f=2+(o-s)/u:f=4+(s-a)/u,f/=6,f%=1,[f*360,u*100,d*100]},n.hsl.hcg=function(i){const s=i[1]/100,a=i[2]/100,o=a<.5?2*s*a:2*s*(1-a);let l=0;return o<1&&(l=(a-.5*o)/(1-o)),[i[0],o*100,l*100]},n.hsv.hcg=function(i){const s=i[1]/100,a=i[2]/100,o=s*a;let l=0;return o<1&&(l=(a-o)/(1-o)),[i[0],o*100,l*100]},n.hcg.rgb=function(i){const s=i[0]/360,a=i[1]/100,o=i[2]/100;if(a===0)return[o*255,o*255,o*255];const l=[0,0,0],c=s%1*6,u=c%1,d=1-u;let f=0;switch(Math.floor(c)){case 0:l[0]=1,l[1]=u,l[2]=0;break;case 1:l[0]=d,l[1]=1,l[2]=0;break;case 2:l[0]=0,l[1]=1,l[2]=u;break;case 3:l[0]=0,l[1]=d,l[2]=1;break;case 4:l[0]=u,l[1]=0,l[2]=1;break;default:l[0]=1,l[1]=0,l[2]=d}return f=(1-a)*o,[(a*l[0]+f)*255,(a*l[1]+f)*255,(a*l[2]+f)*255]},n.hcg.hsv=function(i){const s=i[1]/100,a=i[2]/100,o=s+a*(1-s);let l=0;return o>0&&(l=s/o),[i[0],l*100,o*100]},n.hcg.hsl=function(i){const s=i[1]/100,o=i[2]/100*(1-s)+.5*s;let l=0;return o>0&&o<.5?l=s/(2*o):o>=.5&&o<1&&(l=s/(2*(1-o))),[i[0],l*100,o*100]},n.hcg.hwb=function(i){const s=i[1]/100,a=i[2]/100,o=s+a*(1-s);return[i[0],(o-s)*100,(1-o)*100]},n.hwb.hcg=function(i){const s=i[1]/100,o=1-i[2]/100,l=o-s;let c=0;return l<1&&(c=(o-l)/(1-l)),[i[0],l*100,c*100]},n.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]},n.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]},n.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]},n.gray.hsl=function(i){return[0,0,i[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(i){return[0,100,i[0]]},n.gray.cmyk=function(i){return[0,0,0,i[0]]},n.gray.lab=function(i){return[i[0],0,0]},n.gray.hex=function(i){const s=Math.round(i[0]/100*255)&255,o=((s<<16)+(s<<8)+s).toString(16).toUpperCase();return"000000".substring(o.length)+o},n.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]},hz}var pz,mve;function n8n(){if(mve)return pz;mve=1;const t=CGe();function e(){const s={},a=Object.keys(t);for(let o=a.length,l=0;l1&&(l=c),a(l))};return"conversion"in a&&(o.conversion=a.conversion),o}function s(a){const o=function(...l){const c=l[0];if(c==null)return c;c.length>1&&(l=c);const u=a(l);if(typeof u=="object")for(let d=u.length,f=0;f{n[a]={},Object.defineProperty(n[a],"channels",{value:t[a].channels}),Object.defineProperty(n[a],"labels",{value:t[a].labels});const o=e(a);Object.keys(o).forEach(c=>{const u=o[c];n[a][c]=s(u),n[a][c].raw=i(u)})}),mz=n,mz}y9.exports;var vve;function i8n(){return vve||(vve=1,(function(t){const e=(u,d)=>(...f)=>`\x1B[${u(...f)+d}m`,n=(u,d)=>(...f)=>{const h=u(...f);return`\x1B[${38+d};5;${h}m`},r=(u,d)=>(...f)=>{const h=u(...f);return`\x1B[${38+d};2;${h[0]};${h[1]};${h[2]}m`},i=u=>u,s=(u,d,f)=>[u,d,f],a=(u,d,f)=>{Object.defineProperty(u,d,{get:()=>{const h=f();return Object.defineProperty(u,d,{value:h,enumerable:!0,configurable:!0}),h},enumerable:!0,configurable:!0})};let o;const l=(u,d,f,h)=>{o===void 0&&(o=r8n());const m=h?10:0,p={};for(const[v,x]of Object.entries(o)){const w=v==="ansi16"?"ansi":v;v===d?p[w]=u(f,m):typeof x=="object"&&(p[w]=u(x[d],m))}return p};function c(){const u=new Map,d={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};d.color.gray=d.color.blackBright,d.bgColor.bgGray=d.bgColor.bgBlackBright,d.color.grey=d.color.blackBright,d.bgColor.bgGrey=d.bgColor.bgBlackBright;for(const[f,h]of Object.entries(d)){for(const[m,p]of Object.entries(h))d[m]={open:`\x1B[${p[0]}m`,close:`\x1B[${p[1]}m`},h[m]=d[m],u.set(p[0],p[1]);Object.defineProperty(d,f,{value:h,enumerable:!1})}return Object.defineProperty(d,"codes",{value:u,enumerable:!1}),d.color.close="\x1B[39m",d.bgColor.close="\x1B[49m",a(d.color,"ansi",()=>l(e,"ansi16",i,!1)),a(d.color,"ansi256",()=>l(n,"ansi256",i,!1)),a(d.color,"ansi16m",()=>l(r,"rgb",s,!1)),a(d.bgColor,"ansi",()=>l(e,"ansi16",i,!0)),a(d.bgColor,"ansi256",()=>l(n,"ansi256",i,!0)),a(d.bgColor,"ansi16m",()=>l(r,"rgb",s,!0)),d}Object.defineProperty(t,"exports",{enumerable:!0,get:c})})(y9)),y9.exports}var gz,yve;function xne(){if(yve)return gz;yve=1;const t=SGe(),e=e8n(),n=i8n(),r=["\x1B","›"],i=a=>`${r[0]}[${a}m`,s=(a,o,l)=>{let c=[];a=[...a];for(let u of a){const d=u;u.includes(";")&&(u=u.split(";")[0][0]+"0");const f=n.codes.get(Number.parseInt(u,10));if(f){const h=a.indexOf(f.toString());h===-1?c.push(i(o?f:d)):a.splice(h,1)}else if(o){c.push(i(0));break}else c.push(i(d))}if(o&&(c=c.filter((u,d)=>c.indexOf(u)===d),l!==void 0)){const u=i(n.codes.get(Number.parseInt(l,10)));c=c.reduce((d,f)=>f===u?[f,...d]:[...d,f],[])}return c.join("")};return gz=(a,o,l)=>{const c=[...a],u=[];let d=typeof l=="number"?l:c.length,f=!1,h,m=0,p="";for(const[v,x]of c.entries()){let w=!1;if(r.includes(x)){const E=/\d[^m]*/.exec(a.slice(v,v+18));h=E&&E.length>0?E[0]:void 0,mo&&m<=d)p+=x;else if(m===o&&!f&&h!==void 0)p=s(u);else if(m>=d){p+=s(u,!0,h);break}}return p},gz}var R3={},bve;function EGe(){if(bve)return R3;bve=1,Object.defineProperty(R3,"__esModule",{value:!0}),R3.getBorderCharacters=void 0;const t=e=>{if(e==="honeywell")return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(e==="norc")return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(e==="ramac")return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",headerJoin:"+",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|",joinMiddleDown:"+",joinMiddleUp:"+",joinMiddleLeft:"+",joinMiddleRight:"+"};if(e==="void")return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",headerJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:"",joinMiddleDown:"",joinMiddleUp:"",joinMiddleLeft:"",joinMiddleRight:""};throw new Error('Unknown border template "'+e+'".')};return R3.getBorderCharacters=t,R3}var xve;function To(){if(xve)return xi;xve=1;var t=xi&&xi.__importDefault||function(w){return w&&w.__esModule?w:{default:w}};Object.defineProperty(xi,"__esModule",{value:!0}),xi.isCellInRange=xi.areCellEqual=xi.calculateRangeCoordinate=xi.flatten=xi.extractTruncates=xi.sumArray=xi.sequence=xi.distributeUnevenly=xi.countSpaceSequence=xi.groupBySizes=xi.makeBorderConfig=xi.splitAnsi=xi.normalizeString=void 0;const e=t(xne()),n=t($k()),r=t(bne()),i=EGe(),s=w=>w.replace(/\r\n/g,` +`);xi.normalizeString=s;const a=w=>{const E=(0,r.default)(w).split(` +`).map(n.default),S=[];let _=0;return E.forEach(C=>{S.push(C===0?"":(0,e.default)(w,_,_+C)),_+=C+1}),S};xi.splitAnsi=a;const o=w=>({...(0,i.getBorderCharacters)("honeywell"),...w});xi.makeBorderConfig=o;const l=(w,E)=>{let S=0;return E.map(_=>{const C=w.slice(S,S+_);return S+=_,C})};xi.groupBySizes=l;const c=w=>{var E,S;return(S=(E=w.match(/\s+/g))===null||E===void 0?void 0:E.length)!==null&&S!==void 0?S:0};xi.countSpaceSequence=c;const u=(w,E)=>Array.from({length:E}).fill(Math.floor(w/E)).map((_,C)=>_+(CArray.from({length:E-w+1},(S,_)=>_+w);xi.sequence=d;const f=w=>w.reduce((E,S)=>E+S,0);xi.sumArray=f;const h=w=>w.columns.map(({truncate:E})=>E);xi.extractTruncates=h;const m=w=>[].concat(...w);xi.flatten=m;const p=w=>{const{row:E,col:S,colSpan:_=1,rowSpan:C=1}=w;return{bottomRight:{col:S+_-1,row:E+C-1},topLeft:{col:S,row:E}}};xi.calculateRangeCoordinate=p;const v=(w,E)=>w.row===E.row&&w.col===E.col;xi.areCellEqual=v;const x=(w,{topLeft:E,bottomRight:S})=>E.row<=w.row&&w.row<=S.row&&E.col<=w.col&&w.col<=S.col;return xi.isCellInRange=x,xi}var wve;function $Ge(){if(wve)return p1;wve=1;var t=p1&&p1.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(p1,"__esModule",{value:!0}),p1.alignString=void 0;const e=t($k()),n=To(),r=(l,c)=>l+" ".repeat(c),i=(l,c)=>" ".repeat(c)+l,s=(l,c)=>" ".repeat(Math.floor(c/2))+l+" ".repeat(Math.ceil(c/2)),a=(l,c)=>{const u=(0,n.countSpaceSequence)(l);if(u===0)return r(l,c);const d=(0,n.distributeUnevenly)(c,u);if(Math.max(...d)>3)return r(l,c);let f=0;return l.replace(/\s+/g,h=>h+" ".repeat(d[f++]))},o=(l,c,u)=>{const d=(0,e.default)(l);if(d===c)return l;if(d>c)throw new Error("Subject parameter value width cannot be greater than the container width.");if(d===0)return" ".repeat(c);const f=c-d;return u==="left"?r(l,f):u==="right"?i(l,f):u==="justify"?a(l,f):s(l,f)};return p1.alignString=o,p1}var _ve;function TGe(){if(_ve)return N3;_ve=1,Object.defineProperty(N3,"__esModule",{value:!0}),N3.alignTableData=void 0;const t=$Ge(),e=(n,r)=>n.map((i,s)=>i.map((a,o)=>{var l;const{width:c,alignment:u}=r.columns[o];return((l=r.spanningCellManager)===null||l===void 0?void 0:l.getContainingRange({col:o,row:s},{mapped:!0}))?a:(0,t.alignString)(a,c,u)}));return N3.alignTableData=e,N3}var L3={},P3={},j3={},m1={},kve;function s8n(){if(kve)return m1;kve=1;var t=m1&&m1.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(m1,"__esModule",{value:!0}),m1.wrapString=void 0;const e=t(xne()),n=t($k()),r=(i,s)=>{let a=i;const o=[];do o.push((0,e.default)(a,0,s)),a=(0,e.default)(a,s).trim();while((0,n.default)(a));return o};return m1.wrapString=r,m1}var g1={},Sve;function a8n(){if(Sve)return g1;Sve=1;var t=g1&&g1.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(g1,"__esModule",{value:!0}),g1.wrapWord=void 0;const e=t(xne()),n=t(bne()),r=(s,a)=>{let o=(0,n.default)(s);const l=[],c=new RegExp("(^.{1,"+String(Math.max(a,1))+"}(\\s+|$))|(^.{1,"+String(Math.max(a-1,1))+"}(\\\\|/|_|\\.|,|;|-))");do{let u;const d=c.exec(o);if(d){u=d[0],o=o.slice(u.length);const f=u.trim().length,h=u.length-f;l.push([f,h])}else u=o.slice(0,a),o=o.slice(a),l.push([u.length,0])}while(o.length);return l},i=(s,a)=>{const o=[];let l=0;return r(s,a).forEach(([c,u])=>{o.push((0,e.default)(s,l,l+c)),l+=c+u}),o};return g1.wrapWord=i,g1}var Cve;function wne(){if(Cve)return j3;Cve=1,Object.defineProperty(j3,"__esModule",{value:!0}),j3.wrapCell=void 0;const t=To(),e=s8n(),n=a8n(),r=(i,s,a)=>{const o=(0,t.splitAnsi)(i);for(let l=0;l(0,t.wrapCell)(n,r,i).length;return P3.calculateCellHeight=e,P3}var $ve;function IGe(){if($ve)return L3;$ve=1,Object.defineProperty(L3,"__esModule",{value:!0}),L3.calculateRowHeights=void 0;const t=o8n(),e=To(),n=(r,i)=>{const s=[];for(const[a,o]of r.entries()){let l=1;o.forEach((c,u)=>{var d;const f=(d=i.spanningCellManager)===null||d===void 0?void 0:d.getContainingRange({col:u,row:a});if(!f){const v=(0,t.calculateCellHeight)(c,i.columns[u].width,i.columns[u].wrapWord);l=Math.max(l,v);return}const{topLeft:h,bottomRight:m,height:p}=f;if(a===m.row){const v=(0,e.sumArray)(s.slice(h.row)),x=m.row-h.row,w=(0,e.sequence)(h.row+1,m.row).filter(S=>{var _;return!(!((_=i.drawHorizontalLine)===null||_===void 0)&&_.call(i,S,r.length))}).length,E=p-v-x+w;l=Math.max(l,E)}}),s.push(l)}return s};return L3.calculateRowHeights=n,L3}var vz={},z3={},Tve;function _ne(){if(Tve)return z3;Tve=1,Object.defineProperty(z3,"__esModule",{value:!0}),z3.drawContent=void 0;const t=e=>{const{contents:n,separatorGetter:r,drawSeparator:i,spanningCellManager:s,rowIndex:a,elementType:o}=e,l=n.length,c=[];return i(0,l)&&c.push(r(0,l)),n.forEach((u,d)=>{if((!o||o==="border"||o==="row")&&c.push(u),o==="cell"&&a===void 0&&c.push(u),o==="cell"&&a!==void 0){const f=s==null?void 0:s.getContainingRange({col:d,row:a});(!f||d===f.topLeft.col)&&c.push(u)}if(d+1{const{separator:d,horizontalBorderIndex:f,spanningCellManager:h}=u;return c.map((m,p)=>{const v=d.body.repeat(m);if(f===void 0)return v;const x=h==null?void 0:h.getContainingRange({col:p,row:f});if(!x)return v;const{topLeft:w}=x;return f===w.row?v:p!==w.col?"":x.extractBorderContent(f)})};t.drawBorderSegments=n;const r=c=>{const{separator:u,spanningCellManager:d,horizontalBorderIndex:f,rowCount:h}=c;return(m,p)=>{const v=d==null?void 0:d.inSameRange;if(f!==void 0&&v){const x={col:m,row:f-1},w={col:m-1,row:f},E={col:m-1,row:f-1},S={col:m,row:f},_=[[E,x],[x,S],[S,w],[w,E]];if(m===0)return v(S,x)&&u.bodyJoinOuter?u.bodyJoinOuter:u.left;if(m===p)return v(E,w)&&u.bodyJoinOuter?u.bodyJoinOuter:u.right;if(f===0)return v(S,w)?u.body:u.join;if(f===h)return v(x,E)?u.body:u.join;const C=_.map(T=>v(...T)).filter(Boolean).length;if(C===0)return u.join;if(C===4)return"";if(C===2)return v(..._[1])&&v(..._[3])&&u.bodyJoinInner?u.bodyJoinInner:u.body;if(C===1){if(!u.joinRight||!u.joinLeft||!u.joinUp||!u.joinDown)throw new Error(`Can not get border separator for position [${f}, ${m}]`);return v(..._[0])?u.joinDown:v(..._[1])?u.joinLeft:v(..._[2])?u.joinUp:u.joinRight}throw new Error("Invalid case")}return m===0?u.left:m===p?u.right:u.join}};t.createSeparatorGetter=r;const i=(c,u)=>{const d=(0,t.drawBorderSegments)(c,u),{drawVerticalLine:f,horizontalBorderIndex:h,spanningCellManager:m}=u;return(0,e.drawContent)({contents:d,drawSeparator:f,elementType:"border",rowIndex:h,separatorGetter:(0,t.createSeparatorGetter)(u),spanningCellManager:m})+` +`};t.drawBorder=i;const s=(c,u)=>{const{border:d}=u,f=(0,t.drawBorder)(c,{...u,separator:{body:d.topBody,join:d.topJoin,left:d.topLeft,right:d.topRight}});return f===` +`?"":f};t.drawBorderTop=s;const a=(c,u)=>{const{border:d}=u;return(0,t.drawBorder)(c,{...u,separator:{body:d.joinBody,bodyJoinInner:d.bodyJoin,bodyJoinOuter:d.bodyLeft,join:d.joinJoin,joinDown:d.joinMiddleDown,joinLeft:d.joinMiddleLeft,joinRight:d.joinMiddleRight,joinUp:d.joinMiddleUp,left:d.joinLeft,right:d.joinRight}})};t.drawBorderJoin=a;const o=(c,u)=>{const{border:d}=u;return(0,t.drawBorder)(c,{...u,separator:{body:d.bottomBody,join:d.bottomJoin,left:d.bottomLeft,right:d.bottomRight}})};t.drawBorderBottom=o;const l=(c,u)=>(d,f)=>{const h={...u,horizontalBorderIndex:d};return d===0?(0,t.drawBorderTop)(c,h):d===f?(0,t.drawBorderBottom)(c,h):(0,t.drawBorderJoin)(c,h)};t.createTableBorderGetter=l})(vz)),vz}var F3={},Ave;function OGe(){if(Ave)return F3;Ave=1,Object.defineProperty(F3,"__esModule",{value:!0}),F3.drawRow=void 0;const t=_ne(),e=(n,r)=>{const{border:i,drawVerticalLine:s,rowIndex:a,spanningCellManager:o}=r;return(0,t.drawContent)({contents:n,drawSeparator:s,elementType:"cell",rowIndex:a,separatorGetter:(l,c)=>l===0?i.bodyLeft:l===c?i.bodyRight:i.bodyJoin,spanningCellManager:o})+` +`};return F3.drawRow=e,F3}var B3={},v1={},yz={},v8={},bz,Ove;function l8n(){return Ove||(Ove=1,bz=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if(r=e.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(s=Object.keys(e),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var a=s[i];if(!t(e[a],n[a]))return!1}return!0}return e!==e&&n!==n}),bz}var Dve;function c8n(){if(Dve)return v8;Dve=1,Object.defineProperty(v8,"__esModule",{value:!0});const t=l8n();return t.code='require("ajv/dist/runtime/equal").default',v8.default=t,v8}var Mve;function u8n(){return Mve||(Mve=1,(function(t){t["config.json"]=v;const e={properties:{spanningCells:{items:{properties:{col:{type:"integer",minimum:0},row:{type:"integer",minimum:0},colSpan:{type:"integer",minimum:1},rowSpan:{type:"integer",minimum:1},alignment:{$ref:"shared.json#/definitions/alignment"},verticalAlignment:{$ref:"shared.json#/definitions/verticalAlignment"},wrapWord:{type:"boolean"},truncate:{type:"integer"},paddingLeft:{type:"integer"},paddingRight:{type:"integer"}}}}}},n={properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},headerJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"},joinMiddleUp:{$ref:"#/definitions/border"},joinMiddleDown:{$ref:"#/definitions/border"},joinMiddleLeft:{$ref:"#/definitions/border"},joinMiddleRight:{$ref:"#/definitions/border"}}},r=Object.prototype.hasOwnProperty;function i(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(typeof _!="string"){const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[D]:$.push(D),O++}return i.errors=$,O===0}function s(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const D in _)if(!r.call(n.properties,D)){const N={instancePath:C,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};$===null?$=[N]:$.push(N),O++}_.topBody!==void 0&&(i(_.topBody,{instancePath:C+"/topBody",parentData:_,parentDataProperty:"topBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topJoin!==void 0&&(i(_.topJoin,{instancePath:C+"/topJoin",parentData:_,parentDataProperty:"topJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topLeft!==void 0&&(i(_.topLeft,{instancePath:C+"/topLeft",parentData:_,parentDataProperty:"topLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topRight!==void 0&&(i(_.topRight,{instancePath:C+"/topRight",parentData:_,parentDataProperty:"topRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomBody!==void 0&&(i(_.bottomBody,{instancePath:C+"/bottomBody",parentData:_,parentDataProperty:"bottomBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomJoin!==void 0&&(i(_.bottomJoin,{instancePath:C+"/bottomJoin",parentData:_,parentDataProperty:"bottomJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomLeft!==void 0&&(i(_.bottomLeft,{instancePath:C+"/bottomLeft",parentData:_,parentDataProperty:"bottomLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomRight!==void 0&&(i(_.bottomRight,{instancePath:C+"/bottomRight",parentData:_,parentDataProperty:"bottomRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyLeft!==void 0&&(i(_.bodyLeft,{instancePath:C+"/bodyLeft",parentData:_,parentDataProperty:"bodyLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyRight!==void 0&&(i(_.bodyRight,{instancePath:C+"/bodyRight",parentData:_,parentDataProperty:"bodyRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyJoin!==void 0&&(i(_.bodyJoin,{instancePath:C+"/bodyJoin",parentData:_,parentDataProperty:"bodyJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.headerJoin!==void 0&&(i(_.headerJoin,{instancePath:C+"/headerJoin",parentData:_,parentDataProperty:"headerJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinBody!==void 0&&(i(_.joinBody,{instancePath:C+"/joinBody",parentData:_,parentDataProperty:"joinBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinLeft!==void 0&&(i(_.joinLeft,{instancePath:C+"/joinLeft",parentData:_,parentDataProperty:"joinLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinRight!==void 0&&(i(_.joinRight,{instancePath:C+"/joinRight",parentData:_,parentDataProperty:"joinRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinJoin!==void 0&&(i(_.joinJoin,{instancePath:C+"/joinJoin",parentData:_,parentDataProperty:"joinJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleUp!==void 0&&(i(_.joinMiddleUp,{instancePath:C+"/joinMiddleUp",parentData:_,parentDataProperty:"joinMiddleUp",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleDown!==void 0&&(i(_.joinMiddleDown,{instancePath:C+"/joinMiddleDown",parentData:_,parentDataProperty:"joinMiddleDown",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleLeft!==void 0&&(i(_.joinMiddleLeft,{instancePath:C+"/joinMiddleLeft",parentData:_,parentDataProperty:"joinMiddleLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleRight!==void 0&&(i(_.joinMiddleRight,{instancePath:C+"/joinMiddleRight",parentData:_,parentDataProperty:"joinMiddleRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length))}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return s.errors=$,O===0}const a={enum:["left","right","center","justify"]};c8n().default;function o(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(typeof _!="string"){const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[D]:$.push(D),O++}if(!(_==="left"||_==="right"||_==="center"||_==="justify")){const D={instancePath:C,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:a.enum},message:"must be equal to one of the allowed values"};$===null?$=[D]:$.push(D),O++}return o.errors=$,O===0}const l=new RegExp("^[0-9]+$","u");function c(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(typeof _!="string"){const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[D]:$.push(D),O++}if(!(_==="left"||_==="right"||_==="center"||_==="justify")){const D={instancePath:C,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:a.enum},message:"must be equal to one of the allowed values"};$===null?$=[D]:$.push(D),O++}return c.errors=$,O===0}const u={enum:["top","middle","bottom"]};function d(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(typeof _!="string"){const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[D]:$.push(D),O++}if(!(_==="top"||_==="middle"||_==="bottom")){const D={instancePath:C,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:u.enum},message:"must be equal to one of the allowed values"};$===null?$=[D]:$.push(D),O++}return d.errors=$,O===0}function f(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const D in _)if(!(D==="alignment"||D==="verticalAlignment"||D==="width"||D==="wrapWord"||D==="truncate"||D==="paddingLeft"||D==="paddingRight")){const N={instancePath:C,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};$===null?$=[N]:$.push(N),O++}if(_.alignment!==void 0&&(c(_.alignment,{instancePath:C+"/alignment",parentData:_,parentDataProperty:"alignment",rootData:A})||($=$===null?c.errors:$.concat(c.errors),O=$.length)),_.verticalAlignment!==void 0&&(d(_.verticalAlignment,{instancePath:C+"/verticalAlignment",parentData:_,parentDataProperty:"verticalAlignment",rootData:A})||($=$===null?d.errors:$.concat(d.errors),O=$.length)),_.width!==void 0){let D=_.width;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}if(typeof D=="number"&&isFinite(D)&&(D<1||isNaN(D))){const N={instancePath:C+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};$===null?$=[N]:$.push(N),O++}}if(_.wrapWord!==void 0&&typeof _.wrapWord!="boolean"){const D={instancePath:C+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};$===null?$=[D]:$.push(D),O++}if(_.truncate!==void 0){let D=_.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingLeft!==void 0){let D=_.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingRight!==void 0){let D=_.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return f.errors=$,O===0}function h(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;const D=O;let N=!1,R=null;const q=O;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const U in _)if(!l.test(U)){const J={instancePath:C,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:U},message:"must NOT have additional properties"};$===null?$=[J]:$.push(J),O++}for(const U in _)l.test(U)&&(f(_[U],{instancePath:C+"/"+U.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:_,parentDataProperty:U,rootData:A})||($=$===null?f.errors:$.concat(f.errors),O=$.length))}else{const U={instancePath:C,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[U]:$.push(U),O++}var G=q===O;G&&(N=!0,R=0);const W=O;if(Array.isArray(_)){const U=_.length;for(let J=0;J=",limit:1},message:"must be >= 1"};$===null?$=[N]:$.push(N),O++}}if(_.wrapWord!==void 0&&typeof _.wrapWord!="boolean"){const D={instancePath:C+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};$===null?$=[D]:$.push(D),O++}if(_.truncate!==void 0){let D=_.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingLeft!==void 0){let D=_.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingRight!==void 0){let D=_.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return m.errors=$,O===0}function p(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(typeof _!="string"){const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[D]:$.push(D),O++}if(!(_==="top"||_==="middle"||_==="bottom")){const D={instancePath:C,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:u.enum},message:"must be equal to one of the allowed values"};$===null?$=[D]:$.push(D),O++}return p.errors=$,O===0}function v(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const D in _)if(!(D==="border"||D==="header"||D==="columns"||D==="columnDefault"||D==="drawVerticalLine"||D==="drawHorizontalLine"||D==="singleLine"||D==="spanningCells")){const N={instancePath:C,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};$===null?$=[N]:$.push(N),O++}if(_.border!==void 0&&(s(_.border,{instancePath:C+"/border",parentData:_,parentDataProperty:"border",rootData:A})||($=$===null?s.errors:$.concat(s.errors),O=$.length)),_.header!==void 0){let D=_.header;if(D&&typeof D=="object"&&!Array.isArray(D)){if(D.content===void 0){const N={instancePath:C+"/header",schemaPath:"#/properties/header/required",keyword:"required",params:{missingProperty:"content"},message:"must have required property 'content'"};$===null?$=[N]:$.push(N),O++}for(const N in D)if(!(N==="content"||N==="alignment"||N==="wrapWord"||N==="truncate"||N==="paddingLeft"||N==="paddingRight")){const R={instancePath:C+"/header",schemaPath:"#/properties/header/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:N},message:"must NOT have additional properties"};$===null?$=[R]:$.push(R),O++}if(D.content!==void 0&&typeof D.content!="string"){const N={instancePath:C+"/header/content",schemaPath:"#/properties/header/properties/content/type",keyword:"type",params:{type:"string"},message:"must be string"};$===null?$=[N]:$.push(N),O++}if(D.alignment!==void 0&&(o(D.alignment,{instancePath:C+"/header/alignment",parentData:D,parentDataProperty:"alignment",rootData:A})||($=$===null?o.errors:$.concat(o.errors),O=$.length)),D.wrapWord!==void 0&&typeof D.wrapWord!="boolean"){const N={instancePath:C+"/header/wrapWord",schemaPath:"#/properties/header/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};$===null?$=[N]:$.push(N),O++}if(D.truncate!==void 0){let N=D.truncate;if(!(typeof N=="number"&&!(N%1)&&!isNaN(N)&&isFinite(N))){const R={instancePath:C+"/header/truncate",schemaPath:"#/properties/header/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[R]:$.push(R),O++}}if(D.paddingLeft!==void 0){let N=D.paddingLeft;if(!(typeof N=="number"&&!(N%1)&&!isNaN(N)&&isFinite(N))){const R={instancePath:C+"/header/paddingLeft",schemaPath:"#/properties/header/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[R]:$.push(R),O++}}if(D.paddingRight!==void 0){let N=D.paddingRight;if(!(typeof N=="number"&&!(N%1)&&!isNaN(N)&&isFinite(N))){const R={instancePath:C+"/header/paddingRight",schemaPath:"#/properties/header/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[R]:$.push(R),O++}}}else{const N={instancePath:C+"/header",schemaPath:"#/properties/header/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[N]:$.push(N),O++}}if(_.columns!==void 0&&(h(_.columns,{instancePath:C+"/columns",parentData:_,parentDataProperty:"columns",rootData:A})||($=$===null?h.errors:$.concat(h.errors),O=$.length)),_.columnDefault!==void 0&&(m(_.columnDefault,{instancePath:C+"/columnDefault",parentData:_,parentDataProperty:"columnDefault",rootData:A})||($=$===null?m.errors:$.concat(m.errors),O=$.length)),_.drawVerticalLine!==void 0&&typeof _.drawVerticalLine!="function"){const D={instancePath:C+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};$===null?$=[D]:$.push(D),O++}if(_.drawHorizontalLine!==void 0&&typeof _.drawHorizontalLine!="function"){const D={instancePath:C+"/drawHorizontalLine",schemaPath:"#/properties/drawHorizontalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};$===null?$=[D]:$.push(D),O++}if(_.singleLine!==void 0&&typeof _.singleLine!="boolean"){const D={instancePath:C+"/singleLine",schemaPath:"#/properties/singleLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};$===null?$=[D]:$.push(D),O++}if(_.spanningCells!==void 0){let D=_.spanningCells;if(Array.isArray(D)){const N=D.length;for(let R=0;R=",limit:0},message:"must be >= 0"};$===null?$=[G]:$.push(G),O++}}if(q.row!==void 0){let W=q.row;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}if(typeof W=="number"&&isFinite(W)&&(W<0||isNaN(W))){const G={instancePath:C+"/spanningCells/"+R+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"};$===null?$=[G]:$.push(G),O++}}if(q.colSpan!==void 0){let W=q.colSpan;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}if(typeof W=="number"&&isFinite(W)&&(W<1||isNaN(W))){const G={instancePath:C+"/spanningCells/"+R+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};$===null?$=[G]:$.push(G),O++}}if(q.rowSpan!==void 0){let W=q.rowSpan;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}if(typeof W=="number"&&isFinite(W)&&(W<1||isNaN(W))){const G={instancePath:C+"/spanningCells/"+R+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};$===null?$=[G]:$.push(G),O++}}if(q.alignment!==void 0&&(o(q.alignment,{instancePath:C+"/spanningCells/"+R+"/alignment",parentData:q,parentDataProperty:"alignment",rootData:A})||($=$===null?o.errors:$.concat(o.errors),O=$.length)),q.verticalAlignment!==void 0&&(p(q.verticalAlignment,{instancePath:C+"/spanningCells/"+R+"/verticalAlignment",parentData:q,parentDataProperty:"verticalAlignment",rootData:A})||($=$===null?p.errors:$.concat(p.errors),O=$.length)),q.wrapWord!==void 0&&typeof q.wrapWord!="boolean"){const W={instancePath:C+"/spanningCells/"+R+"/wrapWord",schemaPath:"#/properties/spanningCells/items/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};$===null?$=[W]:$.push(W),O++}if(q.truncate!==void 0){let W=q.truncate;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/truncate",schemaPath:"#/properties/spanningCells/items/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}}if(q.paddingLeft!==void 0){let W=q.paddingLeft;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/paddingLeft",schemaPath:"#/properties/spanningCells/items/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}}if(q.paddingRight!==void 0){let W=q.paddingRight;if(!(typeof W=="number"&&!(W%1)&&!isNaN(W)&&isFinite(W))){const G={instancePath:C+"/spanningCells/"+R+"/paddingRight",schemaPath:"#/properties/spanningCells/items/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[G]:$.push(G),O++}}}else{const W={instancePath:C+"/spanningCells/"+R,schemaPath:"#/properties/spanningCells/items/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[W]:$.push(W),O++}}}else{const N={instancePath:C+"/spanningCells",schemaPath:"#/properties/spanningCells/type",keyword:"type",params:{type:"array"},message:"must be array"};$===null?$=[N]:$.push(N),O++}}}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return v.errors=$,O===0}t["streamConfig.json"]=S;function x(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const D in _)if(!r.call(n.properties,D)){const N={instancePath:C,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};$===null?$=[N]:$.push(N),O++}_.topBody!==void 0&&(i(_.topBody,{instancePath:C+"/topBody",parentData:_,parentDataProperty:"topBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topJoin!==void 0&&(i(_.topJoin,{instancePath:C+"/topJoin",parentData:_,parentDataProperty:"topJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topLeft!==void 0&&(i(_.topLeft,{instancePath:C+"/topLeft",parentData:_,parentDataProperty:"topLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.topRight!==void 0&&(i(_.topRight,{instancePath:C+"/topRight",parentData:_,parentDataProperty:"topRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomBody!==void 0&&(i(_.bottomBody,{instancePath:C+"/bottomBody",parentData:_,parentDataProperty:"bottomBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomJoin!==void 0&&(i(_.bottomJoin,{instancePath:C+"/bottomJoin",parentData:_,parentDataProperty:"bottomJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomLeft!==void 0&&(i(_.bottomLeft,{instancePath:C+"/bottomLeft",parentData:_,parentDataProperty:"bottomLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bottomRight!==void 0&&(i(_.bottomRight,{instancePath:C+"/bottomRight",parentData:_,parentDataProperty:"bottomRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyLeft!==void 0&&(i(_.bodyLeft,{instancePath:C+"/bodyLeft",parentData:_,parentDataProperty:"bodyLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyRight!==void 0&&(i(_.bodyRight,{instancePath:C+"/bodyRight",parentData:_,parentDataProperty:"bodyRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.bodyJoin!==void 0&&(i(_.bodyJoin,{instancePath:C+"/bodyJoin",parentData:_,parentDataProperty:"bodyJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.headerJoin!==void 0&&(i(_.headerJoin,{instancePath:C+"/headerJoin",parentData:_,parentDataProperty:"headerJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinBody!==void 0&&(i(_.joinBody,{instancePath:C+"/joinBody",parentData:_,parentDataProperty:"joinBody",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinLeft!==void 0&&(i(_.joinLeft,{instancePath:C+"/joinLeft",parentData:_,parentDataProperty:"joinLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinRight!==void 0&&(i(_.joinRight,{instancePath:C+"/joinRight",parentData:_,parentDataProperty:"joinRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinJoin!==void 0&&(i(_.joinJoin,{instancePath:C+"/joinJoin",parentData:_,parentDataProperty:"joinJoin",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleUp!==void 0&&(i(_.joinMiddleUp,{instancePath:C+"/joinMiddleUp",parentData:_,parentDataProperty:"joinMiddleUp",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleDown!==void 0&&(i(_.joinMiddleDown,{instancePath:C+"/joinMiddleDown",parentData:_,parentDataProperty:"joinMiddleDown",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleLeft!==void 0&&(i(_.joinMiddleLeft,{instancePath:C+"/joinMiddleLeft",parentData:_,parentDataProperty:"joinMiddleLeft",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length)),_.joinMiddleRight!==void 0&&(i(_.joinMiddleRight,{instancePath:C+"/joinMiddleRight",parentData:_,parentDataProperty:"joinMiddleRight",rootData:A})||($=$===null?i.errors:$.concat(i.errors),O=$.length))}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return x.errors=$,O===0}function w(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;const D=O;let N=!1,R=null;const q=O;if(_&&typeof _=="object"&&!Array.isArray(_)){for(const U in _)if(!l.test(U)){const J={instancePath:C,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:U},message:"must NOT have additional properties"};$===null?$=[J]:$.push(J),O++}for(const U in _)l.test(U)&&(f(_[U],{instancePath:C+"/"+U.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:_,parentDataProperty:U,rootData:A})||($=$===null?f.errors:$.concat(f.errors),O=$.length))}else{const U={instancePath:C,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[U]:$.push(U),O++}var G=q===O;G&&(N=!0,R=0);const W=O;if(Array.isArray(_)){const U=_.length;for(let J=0;J=",limit:1},message:"must be >= 1"};$===null?$=[N]:$.push(N),O++}}if(_.wrapWord!==void 0&&typeof _.wrapWord!="boolean"){const D={instancePath:C+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};$===null?$=[D]:$.push(D),O++}if(_.truncate!==void 0){let D=_.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingLeft!==void 0){let D=_.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}if(_.paddingRight!==void 0){let D=_.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}}}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return E.errors=$,O===0}function S(_,{instancePath:C="",parentData:T,parentDataProperty:M,rootData:A=_}={}){let $=null,O=0;if(_&&typeof _=="object"&&!Array.isArray(_)){if(_.columnDefault===void 0){const D={instancePath:C,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnDefault"},message:"must have required property 'columnDefault'"};$===null?$=[D]:$.push(D),O++}if(_.columnCount===void 0){const D={instancePath:C,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnCount"},message:"must have required property 'columnCount'"};$===null?$=[D]:$.push(D),O++}for(const D in _)if(!(D==="border"||D==="columns"||D==="columnDefault"||D==="columnCount"||D==="drawVerticalLine")){const N={instancePath:C,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};$===null?$=[N]:$.push(N),O++}if(_.border!==void 0&&(x(_.border,{instancePath:C+"/border",parentData:_,parentDataProperty:"border",rootData:A})||($=$===null?x.errors:$.concat(x.errors),O=$.length)),_.columns!==void 0&&(w(_.columns,{instancePath:C+"/columns",parentData:_,parentDataProperty:"columns",rootData:A})||($=$===null?w.errors:$.concat(w.errors),O=$.length)),_.columnDefault!==void 0&&(E(_.columnDefault,{instancePath:C+"/columnDefault",parentData:_,parentDataProperty:"columnDefault",rootData:A})||($=$===null?E.errors:$.concat(E.errors),O=$.length)),_.columnCount!==void 0){let D=_.columnCount;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const N={instancePath:C+"/columnCount",schemaPath:"#/properties/columnCount/type",keyword:"type",params:{type:"integer"},message:"must be integer"};$===null?$=[N]:$.push(N),O++}if(typeof D=="number"&&isFinite(D)&&(D<1||isNaN(D))){const N={instancePath:C+"/columnCount",schemaPath:"#/properties/columnCount/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};$===null?$=[N]:$.push(N),O++}}if(_.drawVerticalLine!==void 0&&typeof _.drawVerticalLine!="function"){const D={instancePath:C+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};$===null?$=[D]:$.push(D),O++}}else{const D={instancePath:C,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};$===null?$=[D]:$.push(D),O++}return S.errors=$,O===0}})(yz)),yz}var Nve;function DGe(){if(Nve)return v1;Nve=1;var t=v1&&v1.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(v1,"__esModule",{value:!0}),v1.validateConfig=void 0;const e=t(u8n()),n=(r,i)=>{const s=e.default[r];if(!s(i)&&s.errors){const a=s.errors.map(o=>({message:o.message,params:o.params,schemaPath:o.schemaPath}));throw console.log("config",i),console.log("errors",a),new Error("Invalid config.")}};return v1.validateConfig=n,v1}var Rve;function d8n(){if(Rve)return B3;Rve=1,Object.defineProperty(B3,"__esModule",{value:!0}),B3.makeStreamConfig=void 0;const t=To(),e=DGe(),n=(i,s={},a)=>Array.from({length:i}).map((o,l)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",wrapWord:!1,...a,...s[l]})),r=i=>{if((0,e.validateConfig)("streamConfig.json",i),i.columnDefault.width===void 0)throw new Error("Must provide config.columnDefault.width when creating a stream.");return{drawVerticalLine:()=>!0,...i,border:(0,t.makeBorderConfig)(i.border),columns:n(i.columnCount,i.columns,i.columnDefault)}};return B3.makeStreamConfig=r,B3}var xz={},Lve;function kne(){return Lve||(Lve=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.mapDataUsingRowHeights=t.padCellVertically=void 0;const e=To(),n=wne(),r=a=>new Array(a).fill(""),i=(a,o,l)=>{const c=o-a.length;return l==="top"?[...a,...r(c)]:l==="bottom"?[...r(c),...a]:[...r(Math.floor(c/2)),...a,...r(Math.ceil(c/2))]};t.padCellVertically=i;const s=(a,o,l)=>{const c=a[0].length,u=a.map((d,f)=>{const h=o[f],m=Array.from({length:h},()=>new Array(c).fill(""));return d.forEach((p,v)=>{var x;const w=(x=l.spanningCellManager)===null||x===void 0?void 0:x.getContainingRange({col:v,row:f});if(w){w.extractCellContent(f).forEach((_,C)=>{m[C][v]=_});return}const E=(0,n.wrapCell)(p,l.columns[v].width,l.columns[v].wrapWord);(0,t.padCellVertically)(E,h,l.columns[v].verticalAlignment).forEach((_,C)=>{m[C][v]=_})}),m});return(0,e.flatten)(u)};t.mapDataUsingRowHeights=s})(xz)),xz}var wz={},Pve;function Sne(){return Pve||(Pve=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.padTableData=t.padString=void 0;const e=(r,i,s)=>" ".repeat(i)+r+" ".repeat(s);t.padString=e;const n=(r,i)=>r.map((s,a)=>s.map((o,l)=>{var c;if((c=i.spanningCellManager)===null||c===void 0?void 0:c.getContainingRange({col:l,row:a},{mapped:!0}))return o;const{paddingLeft:d,paddingRight:f}=i.columns[l];return(0,t.padString)(o,d,f)}));t.padTableData=n})(wz)),wz}var U3={},jve;function MGe(){if(jve)return U3;jve=1,Object.defineProperty(U3,"__esModule",{value:!0}),U3.stringifyTableData=void 0;const t=To(),e=n=>n.map(r=>r.map(i=>(0,t.normalizeString)(String(i))));return U3.stringifyTableData=e,U3}var q3={},L4={exports:{}};L4.exports;var zve;function f8n(){return zve||(zve=1,(function(t,e){var n=30,r="...",i=1/0,s=17976931348623157e292,a=NaN,o="[object RegExp]",l="[object Symbol]",c=/^\s+|\s+$/g,u=/\w*$/,d=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,h=/^0o[0-7]+$/i,m="\\ud800-\\udfff",p="\\u0300-\\u036f\\ufe20-\\ufe23",v="\\u20d0-\\u20f0",x="\\ufe0e\\ufe0f",w="["+m+"]",E="["+p+v+"]",S="\\ud83c[\\udffb-\\udfff]",_="(?:"+E+"|"+S+")",C="[^"+m+"]",T="(?:\\ud83c[\\udde6-\\uddff]){2}",M="[\\ud800-\\udbff][\\udc00-\\udfff]",A="\\u200d",$=_+"?",O="["+x+"]?",D="(?:"+A+"(?:"+[C,T,M].join("|")+")"+O+$+")*",N=O+$+D,R="(?:"+[C+E+"?",E,T,M,w].join("|")+")",q=RegExp(S+"(?="+S+")|"+R+N,"g"),W=RegExp("["+A+m+p+v+x+"]"),G=parseInt,U=typeof Lo=="object"&&Lo&&Lo.Object===Object&&Lo,J=typeof self=="object"&&self&&self.Object===Object&&self,F=U||J||Function("return this")(),H=e&&!e.nodeType&&e,V=H&&!0&&t&&!t.nodeType&&t,L=V&&V.exports===H,se=L&&U.process,oe=(function(){try{return se&&se.binding("util")}catch{}})(),X=oe&&oe.isRegExp,de=te("length");function le(pe){return pe.split("")}function te(pe){return function(Be){return Be==null?void 0:Be[pe]}}function Fe(pe){return function(Be){return pe(Be)}}function Ge(pe){return W.test(pe)}function Ve(pe){return Ge(pe)?ft(pe):de(pe)}function vt(pe){return Ge(pe)?ne(pe):le(pe)}function ft(pe){for(var Be=q.lastIndex=0;q.test(pe);)Be++;return Be}function ne(pe){return pe.match(q)||[]}var Ye=Object.prototype,Xe=Ye.toString,Lt=F.Symbol,xn=Lt?Lt.prototype:void 0,It=xn?xn.toString:void 0;function me(pe){return Ze(pe)&&Xe.call(pe)==o}function Ce(pe,Be,lt){var Rt=-1,At=pe.length;Be<0&&(Be=-Be>At?0:At+Be),lt=lt>At?At:lt,lt<0&&(lt+=At),At=Be>lt?0:lt-Be>>>0,Be>>>=0;for(var yr=Array(At);++Rt=Rt?pe:Ce(pe,Be,lt)}function Ze(pe){var Be=typeof pe;return!!pe&&(Be=="object"||Be=="function")}function ge(pe){return!!pe&&typeof pe=="object"}var Oe=X?Fe(X):me;function et(pe){return typeof pe=="symbol"||ge(pe)&&Xe.call(pe)==l}function ut(pe){if(!pe)return pe===0?pe:0;if(pe=Un(pe),pe===i||pe===-i){var Be=pe<0?-1:1;return Be*s}return pe===pe?pe:0}function zt(pe){var Be=ut(pe),lt=Be%1;return Be===Be?lt?Be-lt:Be:0}function Un(pe){if(typeof pe=="number")return pe;if(et(pe))return a;if(Ze(pe)){var Be=typeof pe.valueOf=="function"?pe.valueOf():pe;pe=Ze(Be)?Be+"":Be}if(typeof pe!="string")return pe===0?pe:+pe;pe=pe.replace(c,"");var lt=f.test(pe);return lt||h.test(pe)?G(pe.slice(2),lt?2:8):d.test(pe)?a:+pe}function Qn(pe){return pe==null?"":Ie(pe)}function yn(pe,Be){var lt=n,Rt=r;if(Ze(Be)){var At="separator"in Be?Be.separator:At;lt="length"in Be?zt(Be.length):lt,Rt="omission"in Be?Ie(Be.omission):Rt}pe=Qn(pe);var yr=pe.length;if(Ge(pe)){var Or=vt(pe);yr=Or.length}if(lt>=yr)return pe;var Dr=lt-Ve(Rt);if(Dr<1)return Rt;var ri=Or?je(Or,0,Dr).join(""):pe.slice(0,Dr);if(At===void 0)return ri+Rt;if(Or&&(Dr+=ri.length-Dr),Oe(At)){if(pe.slice(Dr).search(At)){var ze,ce=ri;for(At.global||(At=RegExp(At.source,Qn(u.exec(At))+"g")),At.lastIndex=0;ze=At.exec(ce);)var Me=ze.index;ri=ri.slice(0,Me===void 0?Dr:Me)}}else if(pe.indexOf(Ie(At),Dr)!=Dr){var We=ri.lastIndexOf(At);We>-1&&(ri=ri.slice(0,We))}return ri+Rt}t.exports=yn})(L4,L4.exports)),L4.exports}var Fve;function Cne(){return Fve||(Fve=1,(function(t){var e=q3&&q3.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0}),t.truncateTableData=t.truncateString=void 0;const n=e(f8n()),r=(s,a)=>(0,n.default)(s,{length:a,omission:"…"});t.truncateString=r;const i=(s,a)=>s.map(o=>o.map((l,c)=>(0,t.truncateString)(l,a[c])));t.truncateTableData=i})(q3)),q3}var Bve;function h8n(){if(Bve)return M3;Bve=1,Object.defineProperty(M3,"__esModule",{value:!0}),M3.createStream=void 0;const t=TGe(),e=IGe(),n=AGe(),r=OGe(),i=d8n(),s=kne(),a=Sne(),o=MGe(),l=Cne(),c=To(),u=(m,p)=>{let v=(0,o.stringifyTableData)(m);v=(0,l.truncateTableData)(v,(0,c.extractTruncates)(p));const x=(0,e.calculateRowHeights)(v,p);return v=(0,s.mapDataUsingRowHeights)(v,x,p),v=(0,t.alignTableData)(v,p),v=(0,a.padTableData)(v,p),v},d=(m,p,v)=>{const w=u([m],v).map(S=>(0,r.drawRow)(S,v)).join("");let E;E="",E+=(0,n.drawBorderTop)(p,v),E+=w,E+=(0,n.drawBorderBottom)(p,v),E=E.trimEnd(),process.stdout.write(E)},f=(m,p,v)=>{const w=u([m],v).map(_=>(0,r.drawRow)(_,v)).join("");let E="";const S=(0,n.drawBorderBottom)(p,v);S!==` +`&&(E="\r\x1B[K"),E+=(0,n.drawBorderJoin)(p,v),E+=w,E+=S,E=E.trimEnd(),process.stdout.write(E)},h=m=>{const p=(0,i.makeStreamConfig)(m),v=Object.values(p.columns).map(w=>w.width+w.paddingLeft+w.paddingRight);let x=!0;return{write:w=>{if(w.length!==p.columnCount)throw new Error("Row cell count does not match the config.columnCount.");x?(x=!1,d(w,v,p)):f(w,v,p)}}};return M3.createStream=h,M3}var H3={},W3={},Uve;function p8n(){if(Uve)return W3;Uve=1,Object.defineProperty(W3,"__esModule",{value:!0}),W3.calculateOutputColumnWidths=void 0;const t=e=>e.columns.map(n=>n.paddingLeft+n.width+n.paddingRight);return W3.calculateOutputColumnWidths=t,W3}var V3={},qve;function m8n(){if(qve)return V3;qve=1,Object.defineProperty(V3,"__esModule",{value:!0}),V3.drawTable=void 0;const t=AGe(),e=_ne(),n=OGe(),r=To(),i=(s,a,o,l)=>{const{drawHorizontalLine:c,singleLine:u}=l,d=(0,r.groupBySizes)(s,o).map((f,h)=>f.map(m=>(0,n.drawRow)(m,{...l,rowIndex:h})).join(""));return(0,e.drawContent)({contents:d,drawSeparator:(f,h)=>(f===0||f===h||!u)&&c(f,h),elementType:"row",rowIndex:-1,separatorGetter:(0,t.createTableBorderGetter)(a,{...l,rowCount:d.length}),spanningCellManager:l.spanningCellManager})};return V3.drawTable=i,V3}var Z3={},Hve;function g8n(){if(Hve)return Z3;Hve=1,Object.defineProperty(Z3,"__esModule",{value:!0}),Z3.injectHeaderConfig=void 0;const t=(e,n)=>{var r;let i=(r=n.spanningCells)!==null&&r!==void 0?r:[];const s=n.header,a=[...e];if(s){i=i.map(({row:c,...u})=>({...u,row:c+1}));const{content:o,...l}=s;i.unshift({alignment:"center",col:0,colSpan:e[0].length,paddingLeft:1,paddingRight:1,row:0,wrapWord:!1,...l}),a.unshift([o,...Array.from({length:e[0].length-1}).fill("")])}return[a,i]};return Z3.injectHeaderConfig=t,Z3}var G3={},K3={},Wve;function v8n(){return Wve||(Wve=1,(function(t){var e=K3&&K3.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMaximumColumnWidths=t.calculateMaximumCellWidth=void 0;const n=e($k()),r=To(),i=a=>Math.max(...a.split(` +`).map(n.default));t.calculateMaximumCellWidth=i;const s=(a,o=[])=>{const l=new Array(a[0].length).fill(0),c=o.map(r.calculateRangeCoordinate),u=(d,f)=>c.some(h=>(0,r.isCellInRange)({col:f,row:d},h));return a.forEach((d,f)=>{d.forEach((h,m)=>{u(f,m)||(l[m]=Math.max(l[m],(0,t.calculateMaximumCellWidth)(h)))})}),l};t.calculateMaximumColumnWidths=s})(K3)),K3}var Y3={},kh={},Vve;function y8n(){if(Vve)return kh;Vve=1;var t=kh&&kh.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(kh,"__esModule",{value:!0}),kh.alignVerticalRangeContent=kh.wrapRangeContent=void 0;const e=t($k()),n=$Ge(),r=kne(),i=Sne(),s=Cne(),a=To(),o=wne(),l=(u,d,f)=>{const{topLeft:h,paddingRight:m,paddingLeft:p,truncate:v,wrapWord:x,alignment:w}=u,E=f.rows[h.row][h.col],S=d-p-m;return(0,o.wrapCell)((0,s.truncateString)(E,v),S,x).map(_=>{const C=(0,n.alignString)(_,S,w);return(0,i.padString)(C,p,m)})};kh.wrapRangeContent=l;const c=(u,d,f)=>{const{rows:h,drawHorizontalLine:m,rowHeights:p}=f,{topLeft:v,bottomRight:x,verticalAlignment:w}=u;if(p.length===0)return[];const E=(0,a.sumArray)(p.slice(v.row,x.row+1)),S=x.row-v.row,_=(0,a.sequence)(v.row+1,x.row).filter(T=>!m(T,h.length)).length,C=E+S-_;return(0,r.padCellVertically)(d,C,w).map(T=>T.length===0?" ".repeat((0,e.default)(d[0])):T)};return kh.alignVerticalRangeContent=c,kh}var J3={},Zve;function b8n(){if(Zve)return J3;Zve=1,Object.defineProperty(J3,"__esModule",{value:!0}),J3.calculateSpanningCellWidth=void 0;const t=To(),e=(n,r)=>{const{columnsConfig:i,drawVerticalLine:s}=r,{topLeft:a,bottomRight:o}=n,l=(0,t.sumArray)(i.slice(a.col,o.col+1).map(({width:f})=>f)),c=a.col===o.col?i[a.col].paddingRight+i[o.col].paddingLeft:(0,t.sumArray)(i.slice(a.col,o.col+1).map(({paddingLeft:f,paddingRight:h})=>f+h)),u=o.col-a.col,d=(0,t.sequence)(a.col+1,o.col).filter(f=>!s(f,i.length)).length;return l+c+u-d};return J3.calculateSpanningCellWidth=e,J3}var X3={},Gve;function x8n(){if(Gve)return X3;Gve=1,Object.defineProperty(X3,"__esModule",{value:!0}),X3.makeRangeConfig=void 0;const t=To(),e=(n,r)=>{var i;const{topLeft:s,bottomRight:a}=(0,t.calculateRangeCoordinate)(n);return{...{...r[s.col],...n,paddingRight:(i=n.paddingRight)!==null&&i!==void 0?i:r[a.col].paddingRight},bottomRight:a,topLeft:s}};return X3.makeRangeConfig=e,X3}var Kve;function w8n(){if(Kve)return Y3;Kve=1,Object.defineProperty(Y3,"__esModule",{value:!0}),Y3.createSpanningCellManager=void 0;const t=y8n(),e=b8n(),n=x8n(),r=To(),i=(c,u)=>u.find(d=>(0,r.isCellInRange)(c,d)),s=(c,u)=>{const d=(0,e.calculateSpanningCellWidth)(c,u),f=(0,t.wrapRangeContent)(c,d,u),h=(0,t.alignVerticalRangeContent)(c,f,u);return{...c,extractBorderContent:v=>{const{topLeft:x}=c,w=(0,r.sumArray)(u.rowHeights.slice(x.row,v))+(v-x.row-1);return h[w]},extractCellContent:v=>{const{topLeft:x}=c,{drawHorizontalLine:w,rowHeights:E}=u,S=v-x.row,_=(0,r.sequence)(x.row+1,v).filter(T=>!(w!=null&&w(T,E.length))).length,C=(0,r.sumArray)(E.slice(x.row,v))+S-_;return h.slice(C,C+E[v])},height:f.length,width:d}},a=(c,u,d)=>{const f=i(c,d),h=i(u,d);return f&&h?(0,r.areCellEqual)(f.topLeft,h.topLeft):!1},o=c=>{const{row:u,col:d}=c.topLeft;return`${u}/${d}`},l=c=>{const{spanningCellConfigs:u,columnsConfig:d}=c,f=u.map(v=>(0,n.makeRangeConfig)(v,d)),h={};let m=[],p=[];return{getContainingRange:(v,x)=>{var w;const E=x!=null&&x.mapped?p[v.row]:v.row,S=i({...v,row:E},f);if(!S)return;if(m.length===0)return s(S,{...c,rowHeights:m});const _=o(S);return(w=h[_])!==null&&w!==void 0||(h[_]=s(S,{...c,rowHeights:m})),h[_]},inSameRange:(v,x)=>a(v,x,f),rowHeights:m,rowIndexMapping:p,setRowHeights:v=>{m=v},setRowIndexMapping:v=>{p=(0,r.flatten)(v.map((x,w)=>Array.from({length:x},()=>w)))}}};return Y3.createSpanningCellManager=l,Y3}var Q3={},Yve;function _8n(){if(Yve)return Q3;Yve=1,Object.defineProperty(Q3,"__esModule",{value:!0}),Q3.validateSpanningCellConfig=void 0;const t=To(),e=(r,i,s)=>r<=s&&s<=i,n=(r,i)=>{const[s,a]=[r.length,r[0].length];i.forEach((c,u)=>{const{colSpan:d,rowSpan:f}=c;if(d===void 0&&f===void 0)throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${u}]`);if(d!==void 0&&d<1)throw new Error(`Expect colSpan is not equal zero, instead got: ${d} in config.spanningCells[${u}]`);if(f!==void 0&&f<1)throw new Error(`Expect rowSpan is not equal zero, instead got: ${f} in config.spanningCells[${u}]`)});const o=i.map(t.calculateRangeCoordinate);o.forEach(({topLeft:c,bottomRight:u},d)=>{if(!e(0,a-1,c.col)||!e(0,s-1,c.row)||!e(0,a-1,u.col)||!e(0,s-1,u.row))throw new Error(`Some cells in config.spanningCells[${d}] are out of the table`)});const l=Array.from({length:s},()=>Array.from({length:a}));o.forEach(({topLeft:c,bottomRight:u},d)=>{(0,t.sequence)(c.row,u.row).forEach(f=>{(0,t.sequence)(c.col,u.col).forEach(h=>{if(l[f][h]!==void 0)throw new Error(`Spanning cells in config.spanningCells[${l[f][h]}] and config.spanningCells[${d}] are overlap each other`);l[f][h]=d})})})};return Q3.validateSpanningCellConfig=n,Q3}var Jve;function k8n(){if(Jve)return G3;Jve=1,Object.defineProperty(G3,"__esModule",{value:!0}),G3.makeTableConfig=void 0;const t=v8n(),e=w8n(),n=To(),r=DGe(),i=_8n(),s=(o,l,c,u)=>{const d=(0,t.calculateMaximumColumnWidths)(o,u);return o[0].map((f,h)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",width:d[h],wrapWord:!1,...c,...l==null?void 0:l[h]}))},a=(o,l={},c)=>{var u,d,f,h,m;(0,r.validateConfig)("config.json",l),(0,i.validateSpanningCellConfig)(o,(u=l.spanningCells)!==null&&u!==void 0?u:[]);const p=(d=c??l.spanningCells)!==null&&d!==void 0?d:[],v=s(o,l.columns,l.columnDefault,p),x=(f=l.drawVerticalLine)!==null&&f!==void 0?f:(()=>!0),w=(h=l.drawHorizontalLine)!==null&&h!==void 0?h:(()=>!0);return{...l,border:(0,n.makeBorderConfig)(l.border),columns:v,drawHorizontalLine:w,drawVerticalLine:x,singleLine:(m=l.singleLine)!==null&&m!==void 0?m:!1,spanningCellManager:(0,e.createSpanningCellManager)({columnsConfig:v,drawHorizontalLine:w,drawVerticalLine:x,rows:o,spanningCellConfigs:p})}};return G3.makeTableConfig=a,G3}var e4={},Xve;function S8n(){if(Xve)return e4;Xve=1,Object.defineProperty(e4,"__esModule",{value:!0}),e4.validateTableData=void 0;const t=To(),e=n=>{if(!Array.isArray(n))throw new TypeError("Table data must be an array.");if(n.length===0)throw new Error("Table must define at least one row.");if(n[0].length===0)throw new Error("Table must define at least one column.");const r=n[0].length;for(const i of n){if(!Array.isArray(i))throw new TypeError("Table row data must be an array.");if(i.length!==r)throw new Error("Table must have a consistent number of cells.");for(const s of i)if(/[\u0001-\u0006\u0008\u0009\u000B-\u001A]/.test((0,t.normalizeString)(String(s))))throw new Error("Table data must not contain control characters.")}};return e4.validateTableData=e,e4}var Qve;function C8n(){if(Qve)return H3;Qve=1,Object.defineProperty(H3,"__esModule",{value:!0}),H3.table=void 0;const t=TGe(),e=p8n(),n=IGe(),r=m8n(),i=g8n(),s=k8n(),a=kne(),o=Sne(),l=MGe(),c=Cne(),u=To(),d=S8n(),f=(h,m={})=>{(0,d.validateTableData)(h);let p=(0,l.stringifyTableData)(h);const[v,x]=(0,i.injectHeaderConfig)(p,m),w=(0,s.makeTableConfig)(v,m,x);p=(0,c.truncateTableData)(v,(0,u.extractTruncates)(w));const E=(0,n.calculateRowHeights)(p,w);w.spanningCellManager.setRowHeights(E),w.spanningCellManager.setRowIndexMapping(E),p=(0,a.mapDataUsingRowHeights)(p,E,w),p=(0,t.alignTableData)(p,w),p=(0,o.padTableData)(p,w);const S=(0,e.calculateOutputColumnWidths)(w);return(0,r.drawTable)(p,S,E,w)};return H3.table=f,H3}var _z={},eye;function E8n(){return eye||(eye=1,Object.defineProperty(_z,"__esModule",{value:!0})),_z}var tye;function $8n(){return tye||(tye=1,(function(t){var e=h1&&h1.__createBinding||(Object.create?(function(a,o,l,c){c===void 0&&(c=l),Object.defineProperty(a,c,{enumerable:!0,get:function(){return o[l]}})}):(function(a,o,l,c){c===void 0&&(c=l),a[c]=o[l]})),n=h1&&h1.__exportStar||function(a,o){for(var l in a)l!=="default"&&!Object.prototype.hasOwnProperty.call(o,l)&&e(o,a,l)};Object.defineProperty(t,"__esModule",{value:!0}),t.getBorderCharacters=t.createStream=t.table=void 0;const r=h8n();Object.defineProperty(t,"createStream",{enumerable:!0,get:function(){return r.createStream}});const i=EGe();Object.defineProperty(t,"getBorderCharacters",{enumerable:!0,get:function(){return i.getBorderCharacters}});const s=C8n();Object.defineProperty(t,"table",{enumerable:!0,get:function(){return s.table}}),n(E8n(),t)})(h1)),h1}var T8n=$8n();const mv=Dn.th` + padding: 0.5rem; + text-align: left; + border: 1px solid ${gs}; +`,y8=Dn.tr` + &:hover { + background-color: ${Ib}; + } + + overflow-wrap: anywhere; + + border: 1px solid ${gs}; +`,gv=Dn.td` + padding: 0.5rem; + border: 1px solid ${gs}; +`;function nye(t){return T8n.table(t)}function I8n(){sGe();const t=wa(),e=g.useContext(qt),[n,r]=g.useState([]),[i,s]=g.useState([]);return g.useEffect(()=>{e.request("stats/getTokensPerDay",void 0).then(a=>{a.status==="success"&&r(a.content)})},[]),g.useEffect(()=>{e.request("stats/getTokensPerModel",void 0).then(a=>{a.status==="success"&&s(a.content)})},[]),y.jsxs("div",{style:{backgroundColor:qo},children:[y.jsx(kGe,{title:"More",onTitleClick:()=>t(-1),showBorder:!0}),y.jsxs("div",{className:"p-2",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("h2",{className:"ml-2",children:"Tokens per Day"}),y.jsx(mV,{text:nye([["Day","Generated Tokens","Prompt Tokens"]].concat(n.map(a=>[a.day,a.generatedTokens,a.promptTokens])))})]}),y.jsxs("table",{className:"w-full border-collapse",children:[y.jsx("thead",{children:y.jsxs(y8,{children:[y.jsx(mv,{children:"Day"}),y.jsx(mv,{children:"Generated Tokens"}),y.jsx(mv,{children:"Prompt Tokens"})]})}),y.jsx("tbody",{children:n.map(a=>y.jsxs(y8,{className:"",children:[y.jsx(gv,{children:a.day}),y.jsx(gv,{children:a.generatedTokens.toLocaleString()}),y.jsx(gv,{children:a.promptTokens.toLocaleString()})]},a.day))})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("h2",{className:"ml-2",children:"Tokens per Model"}),y.jsx(mV,{text:nye([["Model","Generated Tokens","Prompt Tokens"]].concat(i.map(a=>[a.model,a.generatedTokens.toLocaleString(),a.promptTokens.toLocaleString()])))})]}),y.jsxs("table",{className:"w-full border-collapse",children:[y.jsx("thead",{children:y.jsxs(y8,{children:[y.jsx(mv,{children:"Model"}),y.jsx(mv,{children:"Generated Tokens"}),y.jsx(mv,{children:"Prompt Tokens"})]})}),y.jsx("tbody",{children:i.map(a=>y.jsxs(y8,{className:"",children:[y.jsx(gv,{children:a.model}),y.jsx(gv,{children:a.generatedTokens.toLocaleString()}),y.jsx(gv,{children:a.promptTokens.toLocaleString()})]},a.model))})]})]})]})}const A8n=({colorName:t,varNames:e,defaultColor:n,isMissing:r})=>y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"line-clamp-1 break-all px-2 text-right",children:t}),y.jsx("div",{className:`line-clamp-1 break-all p-1 text-[9px] ${r?"text-error":""}`,style:{backgroundColor:ki(t)},children:e.join(", ")}),y.jsx("div",{className:"line-clamp-1 break-all p-1 text-[9px]",style:{backgroundColor:n},children:n})]});function O8n(){const t=wa(),[e,n]=g.useState(!1),r=g.useContext(qt),i=g.useMemo(()=>Go(),[]),[s,a]=g.useState([]),o=()=>{if(i)r.request("jetbrains/getColors",void 0).then(l=>{if(console.log(l),l.status==="success"){const c=DU(l.content);a(c)}});else{const l=[];Object.entries(Mf).forEach(([c,u],d)=>{u.vars.forEach(f=>{getComputedStyle(document.documentElement).getPropertyValue(f)||l.push(`cssVar (choice #${d+1} for color ${c}`)})}),a(l)}};return g.useEffect(()=>{o()},[]),y.jsxs("div",{className:"flex flex-1 flex-col gap-3 px-2 py-2",children:[y.jsxs("span",{className:"flex cursor-pointer flex-row items-center gap-2",onClick:()=>t(Yl.HOME),children:[y.jsx("span",{className:"",children:"←"}),"Back to Chat"]}),y.jsx("h2",{className:"mb-2 mt-0 p-0 text-center text-xl font-semibold",children:"Theme Tester"}),y.jsxs("div",{className:"bg-background border-border grid grid-cols-1 gap-4 rounded-md border border-solid p-4 md:grid-cols-2",children:[y.jsxs("div",{className:"col-span-2 flex gap-4",children:[y.jsx("p",{className:"",children:"Normal text"}),y.jsx("p",{className:"text-description",children:"Description text"}),y.jsx("p",{className:"text-description-muted",children:"Muted text"})]}),y.jsx("button",{className:"bg-primary text-primary-foreground hover:bg-primary-hover cursor-pointer rounded border-none px-4 py-2 disabled:cursor-not-allowed disabled:brightness-75",children:"Primary Button"}),y.jsx("button",{className:"bg-secondary text-secondary-foreground hover:bg-secondary-hover cursor-pointer rounded border-none px-4 py-2 disabled:cursor-not-allowed disabled:brightness-75",children:"Secondary Button"}),y.jsx("div",{className:"border-border rounded-md border border-solid p-3",children:"Normal border"}),y.jsx("div",{className:"border-border-focus rounded-md border border-solid p-3",children:"Focus border"}),y.jsx("input",{className:"bg-input text-input-foreground border-input-border placeholder:text-input-placeholder focus:border-border-focus rounded-md border border-solid p-2 focus:outline-none",placeholder:"Input example"}),y.jsx("div",{className:"bg-badge text-badge-foreground border-border inline-block rounded-full border border-solid p-2",children:y.jsx("span",{className:"px-2",children:"Badge"})}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(KZ,{className:"text-success h-4 w-4"}),y.jsx("span",{className:"text-success",children:"Success"})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(B6e,{className:"text-warning h-4 w-4"}),y.jsx("span",{className:"text-warning",children:"Warning"})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(mp,{className:"text-error h-4 w-4"}),y.jsx("span",{className:"text-error",children:"Error"})]}),y.jsx("div",{onClick:()=>n(!e),className:`cursor-pointer p-2 ${e?"bg-list-active text-list-active-foreground":"bg-background text-foreground hover:bg-list-hover"}`,children:"List item (clickable)"}),y.jsx("div",{className:"bg-editor text-editor-foreground border-border rounded-sm border border-solid p-2",children:y.jsx("span",{children:"Editor"})}),y.jsx("table",{children:y.jsxs("tbody",{children:[y.jsx("tr",{children:y.jsx("td",{className:"border-border border-b border-solid p-2",children:y.jsx("span",{children:"even table row"})})}),y.jsx("tr",{className:"bg-table-oddRow",children:y.jsx("td",{className:"border-border border-b border-solid p-2",children:y.jsx("span",{children:"odd table row"})})})]})}),y.jsx("div",{children:y.jsx("span",{className:"text-link",children:"Link"})}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"bg-findMatch",children:"find match"}),y.jsx("span",{className:"bg-findMatch-selected",children:"current match"})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("span",{className:"",children:"Accent"}),y.jsx("div",{className:"bg-accent h-3 w-3"})]})]}),y.jsx("h2",{className:"mb-2 mt-6 text-xl font-semibold",children:"Manage Theme"}),y.jsx("h2",{className:"mb-2 text-lg font-semibold",children:"Missing Theme Colors"}),s.length>0?y.jsx("div",{className:"flex flex-col gap-1",children:s.map(l=>y.jsx("div",{className:"",children:l},l))}):y.jsx("div",{className:"",children:"No missing variables"}),y.jsx(op,{onClick:o,children:"Refresh Missing Colors"}),i?y.jsx(op,{onClick:Jit,children:"Clear Theme Cache"}):null,y.jsx("h2",{className:"mb-2 mt-6 text-xl font-semibold",children:"All Theme Colors"}),y.jsxs("div",{className:"grid grid-cols-3",children:[y.jsx("div",{className:"p-1",children:y.jsx("span",{className:"font-bold",children:"Theme Color"})}),y.jsx("div",{className:"p-1",children:y.jsx("span",{className:"font-bold",children:"CSS Var"})}),y.jsx("div",{className:"p-1",children:y.jsx("span",{className:"font-bold",children:"Default"})}),Object.entries(Mf).map(([l,c])=>y.jsx(A8n,{isMissing:s.includes(l),colorName:l,defaultColor:c.default,varNames:c.vars},l))]})]})}const D8n=Qrt([{path:Yl.HOME,element:y.jsx(Akn,{}),errorElement:y.jsx(GSn,{}),children:[{path:"/index.html",element:y.jsx(ave,{})},{path:Yl.HOME,element:y.jsx(ave,{})},{path:"/history",element:y.jsx(JSn,{})},{path:Yl.STATS,element:y.jsx(I8n,{})},{path:Yl.CONFIG,element:y.jsx(ZSn,{})},{path:Yl.THEME,element:y.jsx(O8n,{})}]}]);function M8n(){return y.jsxs(jnn,{children:[y.jsx(g4n,{children:y.jsx(sxn,{children:y.jsx(lit,{router:D8n})})}),y.jsx(Nkn,{})]})}var P4={exports:{}},N8n=P4.exports,rye;function R8n(){return rye||(rye=1,(function(t,e){(function(n,r){r(e)})(N8n,function(n){function r(H,V){H.super_=V,H.prototype=Object.create(V.prototype,{constructor:{value:H,enumerable:!1,writable:!0,configurable:!0}})}function i(H,V){Object.defineProperty(this,"kind",{value:H,enumerable:!0}),V&&V.length&&Object.defineProperty(this,"path",{value:V,enumerable:!0})}function s(H,V,L){s.super_.call(this,"E",H),Object.defineProperty(this,"lhs",{value:V,enumerable:!0}),Object.defineProperty(this,"rhs",{value:L,enumerable:!0})}function a(H,V){a.super_.call(this,"N",H),Object.defineProperty(this,"rhs",{value:V,enumerable:!0})}function o(H,V){o.super_.call(this,"D",H),Object.defineProperty(this,"lhs",{value:V,enumerable:!0})}function l(H,V,L){l.super_.call(this,"A",H),Object.defineProperty(this,"index",{value:V,enumerable:!0}),Object.defineProperty(this,"item",{value:L,enumerable:!0})}function c(H,V,L){var se=H.slice(V+1||H.length);return H.length=V<0?H.length+V:V,H.push.apply(H,se),H}function u(H){var V=typeof H>"u"?"undefined":q(H);return V!=="object"?V:H===Math?"math":H===null?"null":Array.isArray(H)?"array":Object.prototype.toString.call(H)==="[object Date]"?"date":typeof H.toString=="function"&&/^\/.*\//.test(H.toString())?"regexp":"object"}function d(H,V,L,se,oe,X,de){oe=oe||[],de=de||[];var le=oe.slice(0);if(typeof X<"u"){if(se){if(typeof se=="function"&&se(le,X))return;if((typeof se>"u"?"undefined":q(se))==="object"){if(se.prefilter&&se.prefilter(le,X))return;if(se.normalize){var te=se.normalize(le,X,H,V);te&&(H=te[0],V=te[1])}}}le.push(X)}u(H)==="regexp"&&u(V)==="regexp"&&(H=H.toString(),V=V.toString());var Fe=typeof H>"u"?"undefined":q(H),Ge=typeof V>"u"?"undefined":q(V),Ve=Fe!=="undefined"||de&&de[de.length-1].lhs&&de[de.length-1].lhs.hasOwnProperty(X),vt=Ge!=="undefined"||de&&de[de.length-1].rhs&&de[de.length-1].rhs.hasOwnProperty(X);if(!Ve&&vt)L(new a(le,V));else if(!vt&&Ve)L(new o(le,H));else if(u(H)!==u(V))L(new s(le,H,V));else if(u(H)==="date"&&H-V!==0)L(new s(le,H,V));else if(Fe==="object"&&H!==null&&V!==null)if(de.filter(function(Xe){return Xe.lhs===H}).length)H!==V&&L(new s(le,H,V));else{if(de.push({lhs:H,rhs:V}),Array.isArray(H)){var ft;for(H.length,ft=0;ft=V.length?L(new l(le,ft,new o(void 0,H[ft]))):d(H[ft],V[ft],L,se,le,ft,de);for(;ft=0?(d(H[Xe],V[Xe],L,se,le,Xe,de),Ye=c(Ye,xn)):d(H[Xe],void 0,L,se,le,Xe,de)}),Ye.forEach(function(Xe){d(void 0,V[Xe],L,se,le,Xe,de)})}de.length=de.length-1}else H!==V&&(Fe==="number"&&isNaN(H)&&isNaN(V)||L(new s(le,H,V)))}function f(H,V,L,se){return se=se||[],d(H,V,function(oe){oe&&se.push(oe)},L),se.length?se:void 0}function h(H,V,L){if(L.path&&L.path.length){var se,oe=H[V],X=L.path.length-1;for(se=0;se"u"&&(se[L.path[oe]]=typeof L.path[oe]=="number"?[]:{}),se=se[L.path[oe]];switch(L.kind){case"A":h(L.path?se[L.path[oe]]:se,L.index,L.item);break;case"D":delete se[L.path[oe]];break;case"E":case"N":se[L.path[oe]]=L.rhs}}}function p(H,V,L){if(L.path&&L.path.length){var se,oe=H[V],X=L.path.length-1;for(se=0;se"u"&&(X[L.path[se]]={}),X=X[L.path[se]];switch(L.kind){case"A":p(X[L.path[se]],L.index,L.item);break;case"D":X[L.path[se]]=L.lhs;break;case"E":X[L.path[se]]=L.lhs;break;case"N":delete X[L.path[se]]}}}function x(H,V,L){if(H&&V){var se=function(oe){L&&!L(H,V,oe)||m(H,V,oe)};d(H,V,se)}}function w(H){return"color: "+U[H].color+"; font-weight: bold"}function E(H){var V=H.kind,L=H.path,se=H.lhs,oe=H.rhs,X=H.index,de=H.item;switch(V){case"E":return[L.join("."),se,"→",oe];case"N":return[L.join("."),oe];case"D":return[L.join(".")];case"A":return[L.join(".")+"["+X+"]",de];default:return[]}}function S(H,V,L,se){var oe=f(H,V);try{se?L.groupCollapsed("diff"):L.group("diff")}catch{L.log("diff")}oe?oe.forEach(function(X){var de=X.kind,le=E(X);L.log.apply(L,["%c "+U[de].text,w(de)].concat(W(le)))}):L.log("—— no diff ——");try{L.groupEnd()}catch{L.log("—— diff end —— ")}}function _(H,V,L,se){switch(typeof H>"u"?"undefined":q(H)){case"object":return typeof H[se]=="function"?H[se].apply(H,W(L)):H[se];case"function":return H(V);default:return H}}function C(H){var V=H.timestamp,L=H.duration;return function(se,oe,X){var de=["action"];return de.push("%c"+String(se.type)),V&&de.push("%c@ "+oe),L&&de.push("%c(in "+X.toFixed(2)+" ms)"),de.join(" ")}}function T(H,V){var L=V.logger,se=V.actionTransformer,oe=V.titleFormatter,X=oe===void 0?C(V):oe,de=V.collapsed,le=V.colors,te=V.level,Fe=V.diff,Ge=typeof V.titleFormatter>"u";H.forEach(function(Ve,vt){var ft=Ve.started,ne=Ve.startedTime,Ye=Ve.action,Xe=Ve.prevState,Lt=Ve.error,xn=Ve.took,It=Ve.nextState,me=H[vt+1];me&&(It=me.prevState,xn=me.started-ft);var Ce=se(Ye),Ie=typeof de=="function"?de(function(){return It},Ye,Ve):de,je=N(ne),Ze=le.title?"color: "+le.title(Ce)+";":"",ge=["color: gray; font-weight: lighter;"];ge.push(Ze),V.timestamp&&ge.push("color: gray; font-weight: lighter;"),V.duration&&ge.push("color: gray; font-weight: lighter;");var Oe=X(Ce,je,xn);try{Ie?le.title&&Ge?L.groupCollapsed.apply(L,["%c "+Oe].concat(ge)):L.groupCollapsed(Oe):le.title&&Ge?L.group.apply(L,["%c "+Oe].concat(ge)):L.group(Oe)}catch{L.log(Oe)}var et=_(te,Ce,[Xe],"prevState"),ut=_(te,Ce,[Ce],"action"),zt=_(te,Ce,[Lt,Xe],"error"),Un=_(te,Ce,[It],"nextState");if(et)if(le.prevState){var Qn="color: "+le.prevState(Xe)+"; font-weight: bold";L[et]("%c prev state",Qn,Xe)}else L[et]("prev state",Xe);if(ut)if(le.action){var yn="color: "+le.action(Ce)+"; font-weight: bold";L[ut]("%c action ",yn,Ce)}else L[ut]("action ",Ce);if(Lt&&zt)if(le.error){var pe="color: "+le.error(Lt,Xe)+"; font-weight: bold;";L[zt]("%c error ",pe,Lt)}else L[zt]("error ",Lt);if(Un)if(le.nextState){var Be="color: "+le.nextState(It)+"; font-weight: bold";L[Un]("%c next state",Be,It)}else L[Un]("next state",It);Fe&&S(Xe,It,L,Ie);try{L.groupEnd()}catch{L.log("—— log end ——")}})}function M(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},V=Object.assign({},J,H),L=V.logger,se=V.stateTransformer,oe=V.errorTransformer,X=V.predicate,de=V.logErrors,le=V.diffPredicate;if(typeof L>"u")return function(){return function(Fe){return function(Ge){return Fe(Ge)}}};if(H.getState&&H.dispatch)return console.error(`[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware: +// Logger with default options +import { logger } from 'redux-logger' +const store = createStore( + reducer, + applyMiddleware(logger) +) +// Or you can create your own logger with custom options http://bit.ly/redux-logger-options +import createLogger from 'redux-logger' +const logger = createLogger({ + // ...options +}); +const store = createStore( + reducer, + applyMiddleware(logger) +) +`),function(){return function(Fe){return function(Ge){return Fe(Ge)}}};var te=[];return function(Fe){var Ge=Fe.getState;return function(Ve){return function(vt){if(typeof X=="function"&&!X(Ge,vt))return Ve(vt);var ft={};te.push(ft),ft.started=R.now(),ft.startedTime=new Date,ft.prevState=se(Ge()),ft.action=vt;var ne=void 0;if(de)try{ne=Ve(vt)}catch(Xe){ft.error=oe(Xe)}else ne=Ve(vt);ft.took=R.now()-ft.started,ft.nextState=se(Ge());var Ye=V.diff&&typeof le=="function"?le(Ge,vt):V.diff;if(T(te,Object.assign({},V,{diff:Ye})),te.length=0,ft.error)throw ft.error;return ne}}}}var A,$,O=function(H,V){return new Array(V+1).join(H)},D=function(H,V){return O("0",V-H.toString().length)+H},N=function(H){return D(H.getHours(),2)+":"+D(H.getMinutes(),2)+":"+D(H.getSeconds(),2)+"."+D(H.getMilliseconds(),3)},R=typeof performance<"u"&&performance!==null&&typeof performance.now=="function"?performance:Date,q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(H){return typeof H}:function(H){return H&&typeof Symbol=="function"&&H.constructor===Symbol&&H!==Symbol.prototype?"symbol":typeof H},W=function(H){if(Array.isArray(H)){for(var V=0,L=Array(H.length);V"u"?"undefined":q(Lo))==="object"&&Lo?Lo:typeof window<"u"?window:{},$=A.DeepDiff,$&&G.push(function(){typeof $<"u"&&A.DeepDiff===f&&(A.DeepDiff=$,$=void 0)}),r(s,i),r(a,i),r(o,i),r(l,i),Object.defineProperties(f,{diff:{value:f,enumerable:!0},observableDiff:{value:d,enumerable:!0},applyDiff:{value:x,enumerable:!0},applyChange:{value:m,enumerable:!0},revertChange:{value:v,enumerable:!0},isConflict:{value:function(){return typeof $<"u"},enumerable:!0},noConflict:{value:function(){return G&&(G.forEach(function(H){H()}),G=null),f},enumerable:!0}});var U={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}},J={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(H){return H},actionTransformer:function(H){return H},errorTransformer:function(H){return H},colors:{title:function(){return"inherit"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0},F=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},V=H.dispatch,L=H.getState;return typeof V=="function"||typeof L=="function"?M()({dispatch:V,getState:L}):void console.error(` +[redux-logger v3] BREAKING CHANGE +[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings. +[redux-logger v3] Change +[redux-logger v3] import createLogger from 'redux-logger' +[redux-logger v3] to +[redux-logger v3] import { createLogger } from 'redux-logger' +`)};n.defaults=J,n.createLogger=M,n.logger=F,n.default=F,Object.defineProperty(n,"__esModule",{value:!0})})})(P4,P4.exports)),P4.exports}var L8n=R8n(),EO="persist:",Ene="persist/FLUSH",$O="persist/REHYDRATE",$ne="persist/PAUSE",Tne="persist/PERSIST",Ine="persist/PURGE",Ane="persist/REGISTER",One=-1;function b9(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?b9=function(n){return typeof n}:b9=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},b9(t)}function iye(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function P8n(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function W8n(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,s;for(s=0;s=0)&&(n[i]=t[i]);return n}var V8n=5e3;function Dne(t,e){var n=t.version!==void 0?t.version:One;t.debug;var r=t.stateReconciler===void 0?z8n:t.stateReconciler,i=t.getStoredState||RGe,s=t.timeout!==void 0?t.timeout:V8n,a=null,o=!1,l=!0,c=function(d){return d._persist.rehydrated&&a&&!l&&a.update(d),d};return function(u,d){var f=u||{},h=f._persist,m=H8n(f,["_persist"]),p=m;if(d.type===Tne){var v=!1,x=function(M,A){v||(d.rehydrate(t.key,M,A),v=!0)};if(s&&setTimeout(function(){!v&&x(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(t.key,'"')))},s),l=!1,a||(a=NGe(t)),h)return Sh({},e(p,d),{_persist:h});if(typeof d.rehydrate!="function"||typeof d.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return d.register(t.key),i(t).then(function(T){var M=t.migrate||function(A,$){return Promise.resolve(A)};M(T,n).then(function(A){x(A)},function(A){x(void 0,A)})},function(T){x(void 0,T)}),Sh({},e(p,d),{_persist:{version:n,rehydrated:!1}})}else{if(d.type===Ine)return o=!0,d.result(LGe(t)),Sh({},e(p,d),{_persist:h});if(d.type===Ene)return d.result(a&&a.flush()),Sh({},e(p,d),{_persist:h});if(d.type===$ne)l=!0;else if(d.type===$O){if(o)return Sh({},p,{_persist:Sh({},h,{rehydrated:!0})});if(d.key===t.key){var w=e(p,d),E=d.payload,S=r!==!1&&E!==void 0?r(E,u,w,t):w,_=Sh({},S,{_persist:Sh({},h,{rehydrated:!0})});return c(_)}}}if(!h)return e(u,d);var C=e(p,d);return C===p?u:c(Sh({},C,{_persist:h}))}}function wx(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?wx=function(n){return typeof n}:wx=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},wx(t)}function aye(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function oye(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:PGe,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case Ane:return VV({},e,{registry:[].concat(lye(e.registry),[n.key])});case $O:var r=e.registry.indexOf(n.key),i=lye(e.registry);return i.splice(r,1),VV({},e,{registry:i,bootstrapped:i.length===0});default:return e}};function jGe(t,e,n){var r=n||!1,i=oZ(t9n,PGe,e&&e.enhancer?e.enhancer:void 0),s=function(c){i.dispatch({type:Ane,key:c})},a=function(c,u,d){var f={type:$O,payload:u,err:d,key:c};t.dispatch(f),i.dispatch(f),r&&o.getState().bootstrapped&&(r(),r=!1)},o=VV({},i,{purge:function(){var c=[];return t.dispatch({type:Ine,result:function(d){c.push(d)}}),Promise.all(c)},flush:function(){var c=[];return t.dispatch({type:Ene,result:function(d){c.push(d)}}),Promise.all(c)},pause:function(){t.dispatch({type:$ne})},persist:function(){t.dispatch({type:Tne,register:s,rehydrate:a})}});return e&&e.manualPersist||o.persist(),o}function zGe(t,e){var n=e||{};return n.debug,function(r,i){if(!r)return Promise.resolve(void 0);var s=r._persist&&r._persist.version!==void 0?r._persist.version:One;if(s===i||s>i)return Promise.resolve(r);var a=Object.keys(t).map(function(l){return parseInt(l)}).filter(function(l){return i>=l&&l>s}).sort(function(l,c){return l-c});try{var o=a.reduce(function(l,c){return t[c](l)},r);return Promise.resolve(o)}catch(l){return Promise.reject(l)}}}function n9n(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.whitelist||null,i=n.blacklist||null;function s(a){return!!(r&&r.indexOf(a)===-1||i&&i.indexOf(a)!==-1)}return{in:function(o,l,c){return!s(l)&&t?t(o,l,c):o},out:function(o,l,c){return!s(l)&&e?e(o,l,c):o}}}const r9n=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_VERSION:One,FLUSH:Ene,KEY_PREFIX:EO,PAUSE:$ne,PERSIST:Tne,PURGE:Ine,REGISTER:Ane,REHYDRATE:$O,createMigrate:zGe,createPersistoid:NGe,createTransform:n9n,getStoredState:RGe,persistCombineReducers:Y8n,persistReducer:Dne,persistStore:jGe,purgeStoredState:LGe},Symbol.toStringTag,{value:"Module"}));var r0={};const i9n=snt(r9n);var kz,uye;function rh(){if(uye)return kz;uye=1;var t=Array.isArray;return kz=t,kz}var Sz,dye;function FGe(){if(dye)return Sz;dye=1;var t=typeof Lo=="object"&&Lo&&Lo.Object===Object&&Lo;return Sz=t,Sz}var Cz,fye;function ih(){if(fye)return Cz;fye=1;var t=FGe(),e=typeof self=="object"&&self&&self.Object===Object&&self,n=t||e||Function("return this")();return Cz=n,Cz}var Ez,hye;function Tk(){if(hye)return Ez;hye=1;var t=ih(),e=t.Symbol;return Ez=e,Ez}var $z,pye;function s9n(){if(pye)return $z;pye=1;var t=Tk(),e=Object.prototype,n=e.hasOwnProperty,r=e.toString,i=t?t.toStringTag:void 0;function s(a){var o=n.call(a,i),l=a[i];try{a[i]=void 0;var c=!0}catch{}var u=r.call(a);return c&&(o?a[i]=l:delete a[i]),u}return $z=s,$z}var Tz,mye;function a9n(){if(mye)return Tz;mye=1;var t=Object.prototype,e=t.toString;function n(r){return e.call(r)}return Tz=n,Tz}var Iz,gye;function Ik(){if(gye)return Iz;gye=1;var t=Tk(),e=s9n(),n=a9n(),r="[object Null]",i="[object Undefined]",s=t?t.toStringTag:void 0;function a(o){return o==null?o===void 0?i:r:s&&s in Object(o)?e(o):n(o)}return Iz=a,Iz}var Az,vye;function T2(){if(vye)return Az;vye=1;function t(e){return e!=null&&typeof e=="object"}return Az=t,Az}var Oz,yye;function Mne(){if(yye)return Oz;yye=1;var t=Ik(),e=T2(),n="[object Symbol]";function r(i){return typeof i=="symbol"||e(i)&&t(i)==n}return Oz=r,Oz}var Dz,bye;function Nne(){if(bye)return Dz;bye=1;var t=rh(),e=Mne(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(s,a){if(t(s))return!1;var o=typeof s;return o=="number"||o=="symbol"||o=="boolean"||s==null||e(s)?!0:r.test(s)||!n.test(s)||a!=null&&s in Object(a)}return Dz=i,Dz}var Mz,xye;function I2(){if(xye)return Mz;xye=1;function t(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}return Mz=t,Mz}var Nz,wye;function BGe(){if(wye)return Nz;wye=1;var t=Ik(),e=I2(),n="[object AsyncFunction]",r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]";function a(o){if(!e(o))return!1;var l=t(o);return l==r||l==i||l==n||l==s}return Nz=a,Nz}var Rz,_ye;function o9n(){if(_ye)return Rz;_ye=1;var t=ih(),e=t["__core-js_shared__"];return Rz=e,Rz}var Lz,kye;function l9n(){if(kye)return Lz;kye=1;var t=o9n(),e=(function(){var r=/[^.]+$/.exec(t&&t.keys&&t.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!e&&e in r}return Lz=n,Lz}var Pz,Sye;function UGe(){if(Sye)return Pz;Sye=1;var t=Function.prototype,e=t.toString;function n(r){if(r!=null){try{return e.call(r)}catch{}try{return r+""}catch{}}return""}return Pz=n,Pz}var jz,Cye;function c9n(){if(Cye)return jz;Cye=1;var t=BGe(),e=l9n(),n=I2(),r=UGe(),i=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,a=Function.prototype,o=Object.prototype,l=a.toString,c=o.hasOwnProperty,u=RegExp("^"+l.call(c).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function d(f){if(!n(f)||e(f))return!1;var h=t(f)?u:s;return h.test(r(f))}return jz=d,jz}var zz,Eye;function u9n(){if(Eye)return zz;Eye=1;function t(e,n){return e==null?void 0:e[n]}return zz=t,zz}var Fz,$ye;function A2(){if($ye)return Fz;$ye=1;var t=c9n(),e=u9n();function n(r,i){var s=e(r,i);return t(s)?s:void 0}return Fz=n,Fz}var Bz,Tye;function TO(){if(Tye)return Bz;Tye=1;var t=A2(),e=t(Object,"create");return Bz=e,Bz}var Uz,Iye;function d9n(){if(Iye)return Uz;Iye=1;var t=TO();function e(){this.__data__=t?t(null):{},this.size=0}return Uz=e,Uz}var qz,Aye;function f9n(){if(Aye)return qz;Aye=1;function t(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}return qz=t,qz}var Hz,Oye;function h9n(){if(Oye)return Hz;Oye=1;var t=TO(),e="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function i(s){var a=this.__data__;if(t){var o=a[s];return o===e?void 0:o}return r.call(a,s)?a[s]:void 0}return Hz=i,Hz}var Wz,Dye;function p9n(){if(Dye)return Wz;Dye=1;var t=TO(),e=Object.prototype,n=e.hasOwnProperty;function r(i){var s=this.__data__;return t?s[i]!==void 0:n.call(s,i)}return Wz=r,Wz}var Vz,Mye;function m9n(){if(Mye)return Vz;Mye=1;var t=TO(),e="__lodash_hash_undefined__";function n(r,i){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=t&&i===void 0?e:i,this}return Vz=n,Vz}var Zz,Nye;function g9n(){if(Nye)return Zz;Nye=1;var t=d9n(),e=f9n(),n=h9n(),r=p9n(),i=m9n();function s(a){var o=-1,l=a==null?0:a.length;for(this.clear();++o-1}return Qz=e,Qz}var eF,Bye;function w9n(){if(Bye)return eF;Bye=1;var t=IO();function e(n,r){var i=this.__data__,s=t(i,n);return s<0?(++this.size,i.push([n,r])):i[s][1]=r,this}return eF=e,eF}var tF,Uye;function AO(){if(Uye)return tF;Uye=1;var t=v9n(),e=y9n(),n=b9n(),r=x9n(),i=w9n();function s(a){var o=-1,l=a==null?0:a.length;for(this.clear();++o-1&&r%1==0&&rs?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var a=Array(s);++ih))return!1;var p=d.get(a),v=d.get(o);if(p&&v)return p==o&&v==a;var x=-1,w=!0,E=l&i?new t:void 0;for(d.set(a,o),d.set(o,a);++x-1&&n%1==0&&n<=t}return rB=e,rB}var iB,Vbe;function rCn(){if(Vbe)return iB;Vbe=1;var t=Ik(),e=qne(),n=T2(),r="[object Arguments]",i="[object Array]",s="[object Boolean]",a="[object Date]",o="[object Error]",l="[object Function]",c="[object Map]",u="[object Number]",d="[object Object]",f="[object RegExp]",h="[object Set]",m="[object String]",p="[object WeakMap]",v="[object ArrayBuffer]",x="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",S="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",A="[object Uint16Array]",$="[object Uint32Array]",O={};O[w]=O[E]=O[S]=O[_]=O[C]=O[T]=O[M]=O[A]=O[$]=!0,O[r]=O[i]=O[v]=O[s]=O[x]=O[a]=O[o]=O[l]=O[c]=O[u]=O[d]=O[f]=O[h]=O[m]=O[p]=!1;function D(N){return n(N)&&e(N.length)&&!!O[t(N)]}return iB=D,iB}var sB,Zbe;function Hne(){if(Zbe)return sB;Zbe=1;function t(e){return function(n){return e(n)}}return sB=t,sB}var z4={exports:{}};z4.exports;var Gbe;function Wne(){return Gbe||(Gbe=1,(function(t,e){var n=FGe(),r=e&&!e.nodeType&&e,i=r&&!0&&t&&!t.nodeType&&t,s=i&&i.exports===r,a=s&&n.process,o=(function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}})();t.exports=o})(z4,z4.exports)),z4.exports}var aB,Kbe;function Vne(){if(Kbe)return aB;Kbe=1;var t=rCn(),e=Hne(),n=Wne(),r=n&&n.isTypedArray,i=r?e(r):t;return aB=i,aB}var oB,Ybe;function XGe(){if(Ybe)return oB;Ybe=1;var t=eCn(),e=Une(),n=rh(),r=MO(),i=zne(),s=Vne(),a=Object.prototype,o=a.hasOwnProperty;function l(c,u){var d=n(c),f=!d&&e(c),h=!d&&!f&&r(c),m=!d&&!f&&!h&&s(c),p=d||f||h||m,v=p?t(c.length,String):[],x=v.length;for(var w in c)(u||o.call(c,w))&&!(p&&(w=="length"||h&&(w=="offset"||w=="parent")||m&&(w=="buffer"||w=="byteLength"||w=="byteOffset")||i(w,x)))&&v.push(w);return v}return oB=l,oB}var lB,Jbe;function NO(){if(Jbe)return lB;Jbe=1;var t=Object.prototype;function e(n){var r=n&&n.constructor,i=typeof r=="function"&&r.prototype||t;return n===i}return lB=e,lB}var cB,Xbe;function QGe(){if(Xbe)return cB;Xbe=1;function t(e,n){return function(r){return e(n(r))}}return cB=t,cB}var uB,Qbe;function iCn(){if(Qbe)return uB;Qbe=1;var t=QGe(),e=t(Object.keys,Object);return uB=e,uB}var dB,e5e;function eKe(){if(e5e)return dB;e5e=1;var t=NO(),e=iCn(),n=Object.prototype,r=n.hasOwnProperty;function i(s){if(!t(s))return e(s);var a=[];for(var o in Object(s))r.call(s,o)&&o!="constructor"&&a.push(o);return a}return dB=i,dB}var fB,t5e;function Zne(){if(t5e)return fB;t5e=1;var t=BGe(),e=qne();function n(r){return r!=null&&e(r.length)&&!t(r)}return fB=n,fB}var hB,n5e;function RO(){if(n5e)return hB;n5e=1;var t=XGe(),e=eKe(),n=Zne();function r(i){return n(i)?t(i):e(i)}return hB=r,hB}var pB,r5e;function tKe(){if(r5e)return pB;r5e=1;var t=YGe(),e=Bne(),n=RO();function r(i){return t(i,n,e)}return pB=r,pB}var mB,i5e;function sCn(){if(i5e)return mB;i5e=1;var t=tKe(),e=1,n=Object.prototype,r=n.hasOwnProperty;function i(s,a,o,l,c,u){var d=o&e,f=t(s),h=f.length,m=t(a),p=m.length;if(h!=p&&!d)return!1;for(var v=h;v--;){var x=f[v];if(!(d?x in a:r.call(a,x)))return!1}var w=u.get(s),E=u.get(a);if(w&&E)return w==a&&E==s;var S=!0;u.set(s,a),u.set(a,s);for(var _=d;++v3&&arguments[3]!==void 0?arguments[3]:"whitelist";return(0,e.createTransform)(function($,O){return T?_($,T,A):$},function($,O){return M?_($,M,A):$},{whitelist:[C]})}function w(C,T,M){return x(C,T,M,"whitelist")}function E(C,T,M){return x(C,T,M,"blacklist")}function S(C,T){var M=C.path,A=C.filterFunction,$=A===void 0?function(){return!0}:A,O=(0,r.default)(T,M,T);return O instanceof Array?O.filter($):(0,c.default)(O,$)}function _(C){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],M=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"whitelist",A={};return typeof T=="string"&&(T=[T]),M==="whitelist"?T.forEach(function($){if((typeof $>"u"?"undefined":t($))==="object"&&!($ instanceof Array)){var O=S($,C);(0,d.default)(O)||(0,s.default)(A,$.path,O)}else{var D=(0,r.default)(C,$);typeof D<"u"&&(0,s.default)(A,$,D)}}):M==="blacklist"?(A=(0,p.default)(C),T.forEach(function($){if((typeof $>"u"?"undefined":t($))==="object"&&!($ instanceof Array)){var O=S($,C);(0,d.default)(O)?A=O:O instanceof Array?(0,s.default)(A,$.path,(0,r.default)(A,$.path,A).filter(function(N){return!1})):(0,h.default)(O,function(N,R){(0,o.default)(A,$.path+"["+R+"]")})}else{var D=(0,r.default)(C,$);typeof D<"u"&&(0,o.default)(A,$)}})):A=C,A}return r0.default=x,r0}var y1=XCn(),b8={},c3e;function QCn(){if(c3e)return b8;c3e=1,b8.__esModule=!0,b8.default=i;function t(a){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(l){return typeof l}:t=function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},t(a)}function e(a,o){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);o&&(c=c.filter(function(u){return Object.getOwnPropertyDescriptor(a,u).enumerable})),l.push.apply(l,c)}return l}function n(a){for(var o=1;o"u"?"undefined":t(self))!=="object"||!(s in self))return!1;try{var a=self[s],o="redux-persist ".concat(s," test");a.setItem(o,"test"),a.getItem(o),a.removeItem(o)}catch{return!1}return!0}function i(s){var a="".concat(s,"Storage");return r(a)?self[a]:n}return w8}var d3e;function rEn(){if(d3e)return x8;d3e=1,x8.__esModule=!0,x8.default=n;var t=e(nEn());function e(r){return r&&r.__esModule?r:{default:r}}function n(r){var i=(0,t.default)(r);return{getItem:function(a){return new Promise(function(o,l){o(i.getItem(a))})},setItem:function(a,o){return new Promise(function(l,c){l(i.setItem(a,o))})},removeItem:function(a){return new Promise(function(o,l){o(i.removeItem(a))})}}}return x8}var f3e;function iEn(){if(f3e)return t4;f3e=1,t4.__esModule=!0,t4.default=void 0;var t=e(rEn());function e(r){return r&&r.__esModule?r:{default:r}}var n=(0,t.default)("local");return t4.default=n,t4}var sEn=iEn();const aEn=Ol(sEn),oEn=lZ({session:f4n,ui:zSt,editModeState:j0t,config:gat,indexing:yrn,tabs:Fcn,profiles:Sat}),lEn=[y1.createFilter("session",["id","lastSessionId","title","mode"]),y1.createFilter("editModeState",["returnToMode","lastNonEditSessionWasEmpty","codeToEdit"]),y1.createFilter("config",[]),y1.createFilter("ui",["toolSettings","toolGroupSettings","ruleSettings","reasoningSettings"]),y1.createFilter("indexing",[]),y1.createFilter("tabs",["tabs"]),y1.createFilter("profiles",["preferencesByProfileId","selectedProfileId","selectedOrganizationId","organizations"])],cEn={0:t=>{var n,r;const e=t;return{config:{defaultModelTitle:((n=e==null?void 0:e.state)==null?void 0:n.defaultModelTitle)??void 0},session:{id:((r=e==null?void 0:e.state)==null?void 0:r.sessionId)??""},tabs:{tabs:[{id:Date.now().toString(36)+Math.random().toString(36).substring(2),title:"Chat 1",isActive:!0}]},_persist:e==null?void 0:e._persist}}},uEn={version:1,key:"root",storage:aEn,transforms:[...lEn],stateReconciler:tEn,migrate:zGe(cEn,{debug:!1})},dEn=Dne(uEn,oEn);function fEn(t){const e=t.ideMessenger??new n4e;return L8n.createLogger({collapsed:!0,timestamp:!1,diff:!0}),Gst({reducer:dEn,middleware:n=>n({serializableCheck:!1,thunk:{extraArgument:{ideMessenger:e}}})})}const cKe=fEn({}),hEn=jGe(cKe);(async()=>{const t=document.getElementById("root");ant.createRoot(t).render(y.jsx(wt.StrictMode,{children:y.jsx(Dnt,{store:cKe,children:y.jsx(x3e,{loading:null,persistor:hEn,children:y.jsx(M8n,{})})})}))})();export{qCe as $,ux as A,$zt as B,EFt as C,$Y as D,Fo as E,MCe as F,rGt as G,sHt as H,p0e as I,dWt as J,Uzt as K,Gy as L,x$n as M,tI as N,BCe as O,VK as P,y0e as Q,Yqt as R,e9 as S,nGt as T,t_ as U,pFt as V,e_ as W,gn as X,Pn as Y,GZt as Z,z as _,xFt as a,nc as a$,Vqt as a0,j0e as a1,P0e as a2,O$n as a3,E$n as a4,I$n as a5,T$n as a6,S$n as a7,rv as a8,sY as a9,HZt as aA,LVt as aB,PZt as aC,yY as aD,Nme as aE,vKt as aF,Zqt as aG,b$n as aH,l_ as aI,mKt as aJ,pKt as aK,tY as aL,u0 as aM,O0e as aN,EUt as aO,cw as aP,p2 as aQ,WZt as aR,DTe as aS,YT as aT,eI as aU,lE as aV,NTe as aW,OTe as aX,wZt as aY,Cn as aZ,xTe as a_,A$n as aa,C$n as ab,M$n as ac,D$n as ad,$$n as ae,UKt as af,UAe as ag,W$n as ah,hWt as ai,ja as aj,jm as ak,vY as al,pIe as am,v2 as an,FTe as ao,gr as ap,Uf as aq,DYt as ar,H$n as as,V$n as at,U$n as au,Sn as av,q$n as aw,pYt as ax,uYt as ay,cYt as az,bFt as b,bUt as b0,eY as b1,rEe as b2,r_ as b3,aEe as b4,k$n as b5,Ezt as b6,qZt as b7,LZt as b8,kVt as b9,VZt as bA,QT as bB,Ci as bC,bY as ba,vZt as bb,ZZt as bc,a_ as bd,c5 as be,sE as bf,TZt as bg,tJt as bh,s_ as bi,oE as bj,_Zt as bk,CTe as bl,EVt as bm,$Vt as bn,k1 as bo,rme as bp,TVt as bq,xY as br,CVt as bs,OVt as bt,u5 as bu,Pm as bv,X0e as bw,wY as bx,$Te as by,qW as bz,Mi as c,ui as d,UCe as e,Ra as f,_Ft as g,_p as h,Ku as i,bWt as j,o5 as k,mt as l,UTe as m,w$n as n,G$n as o,kFt as p,SFt as q,Z$n as r,wFt as s,fWt as t,Ed as u,aYt as v,aGt as w,N$n as x,yFt as y,_$n as z}; +//# sourceMappingURL=index.js.map diff --git a/extensions/continue/gui/assets/index.js.map b/extensions/continue/gui/assets/index.js.map new file mode 100644 index 000000000000..0fa69eee912d --- /dev/null +++ b/extensions/continue/gui/assets/index.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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S,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,EAAG,OAAS,OAAS,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,MAAO,EACzC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG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AC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACpC,GAAM,CAAC,QAAU,OAAS,EAAG,EAAG,IAAK,EACrC,GAAM,CAAC,QAAU,OAAS,EAAG,EAAG,IAAK,EACrC,GAAM,CAAC,QAAU,OAAS,EAAG,EAAG,IAAK,EACrC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACpC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACpC,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACpC,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACpC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,OAAS,EAAG,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC9B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,EAAG,EAAG,EAAG,IAAK,EACzB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,EAAG,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,IAAK,EACrC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,IAAK,EAC/B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EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,MACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MACL,EAAK,KACL,EAAK,MACL,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f,MAAS,QACT,QAAW,GACX,gBAAmB,gBACnB,cAAiB,IACjB,WAAc,EAClB,EACE,SAAY,CACV,YAAe,GACf,uBAA0B,GAC1B,gBAAmB,GACnB,eAAkB,GAClB,eAAkB,GAClB,YAAe,GACf,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,aAAgB,GAChB,WAAc,GACd,gBAAmB,EACnB,YAAe,GACf,oBAAuB,GACvB,cAAiB,GACjB,gBAAmB,0BACnB,gBAAmB,IACnB,aAAgB,GAChB,eAAkB,6CAClB,eAAkB,IAClB,UAAa,SACb,gBAAmB,GACnB,kBAAqB,6CACrB,kBAAqB,IACrB,KAAQ,GACR,YAAe,GACf,cAAiB,GACjB,eAAkB,EACtB,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,UAAa,GACb,OAAU,EACV,WAAc,GACd,aAAgB,GAChB,YAAe,GACf,qBAAwB,GACxB,SAAY,GACZ,gBAAmB,GACnB,oBAAuB,EACvB,WAAc,WACd,QAAW,GACX,YAAe,GACf,QAAW,QACf,EACE,QAAW,CACT,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,WAAc,IACd,cAAiB,IACjB,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,gBAAmB,EACnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,eAAkB,CAChB,MACN,EACI,WAAc,GACd,gBAAmB,6CACnB,cAAiB,KACrB,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,oBAAuB,GACvB,cAAiB,GACjB,QAAW,EACX,WAAc,GACd,gBAAmB,gBACnB,WAAc,GACd,oBAAuB,EAC3B,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,cAAiB,GACjB,SAAY,EACZ,QAAW,EACX,WAAc,GACd,WAAc,IACd,WAAc,GACd,UAAa,GACb,WAAc,EACd,YAAe,EACf,eAAkB,KAClB,SAAY,GACZ,YAAe,GACf,iBAAoB,KACpB,kBAAqB,GACrB,OAAU,EACV,gBAAmB,eACvB,EACE,GAAM,CACJ,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,gBAAmB,KACnB,eAAkB,IAClB,gBAAmB,GACnB,cAAiB,GACjB,YAAe,IACf,YAAe,GACf,OAAU,OACV,KAAQ,WACR,SAAY,EAChB,EACE,IAAO,CACL,YAAe,GACf,aAAgB,GACpB,EACE,cAAiB,CACf,YAAe,GACf,WAAc,IACd,YAAe,IACf,cAAiB,GACjB,aAAgB,GAChB,gBAAmB,EACnB,kBAAqB,EACrB,kBAAqB,EACrB,mBAAsB,GACtB,mBAAsB,GACtB,sBAAyB,GACzB,uBAA0B,EAC1B,iBAAoB,EACpB,mBAAsB,GACtB,YAAe,EACf,cAAiB,MACjB,cAAiB,OACjB,kCAAqC,EACrC,kCAAqC,CACzC,EACE,QAAW,CACT,YAAe,GACf,MAAS,IACT,OAAU,IACV,cAAiB,GACjB,aAAgB,GAChB,cAAiB,GACjB,UAAa,GACb,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,iBAAoB,WACpB,yBAA4B,EAChC,EACE,YAAe,CACb,YAAe,GACf,UAAa,UACb,WAAc,OACd,iBAAoB,QACpB,kBAAqB,OACrB,eAAkB,IAClB,gBAAmB,IACnB,SAAY,GACZ,aAAgB,GAChB,YAAe,EACnB,EACE,QAAW,CACT,YAAe,GACf,QAAW,GACX,aAAgB,IAChB,gBAAmB,cACvB,EACE,OAAU,CACR,YAAe,GACf,QAAW,EACX,aAAgB,IAChB,cAAiB,EACrB,EACE,SAAY,CACV,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,WAAc,IACd,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,gBAAmB,EACnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,eAAkB,CAChB,MACN,EACI,kBAAqB,EACzB,EACE,SAAY,CACV,YAAe,GACf,eAAkB,GAClB,eAAkB,EAClB,UAAa,CACX,MAAS,GACT,OAAU,IACV,EAAK,IACL,EAAK,CACX,EACI,eAAkB,OAClB,gBAAmB,EACnB,gBAAmB,GACnB,aAAgB,GAChB,kBAAqB,GACrB,gBAAmB,GACnB,oBAAuB,EAC3B,EACE,GAAM,CACJ,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,cAAiB,GACjB,eAAkB,GAClB,MAAS,IACT,OAAU,GACV,UAAa,GACb,aAAgB,EAChB,iBAAoB,EACpB,gBAAmB,EACnB,eAAkB,GAClB,iBAAoB,0BACpB,iBAAoB,SACpB,wBAA2B,GAC3B,0BAA6B,0BAC7B,0BAA6B,SAC7B,eAAkB,GAClB,iBAAoB,0BACpB,iBAAoB,SACpB,wBAA2B,GAC3B,0BAA6B,0BAC7B,0BAA6B,SAC7B,kBAAqB,GACrB,oBAAuB,0BACvB,oBAAuB,SACvB,2BAA8B,GAC9B,6BAAgC,0BAChC,6BAAgC,SAChC,qBAAwB,GACxB,uBAA0B,0BAC1B,uBAA0B,SAC1B,8BAAiC,GACjC,gCAAmC,0BACnC,gCAAmC,SACnC,iBAAoB,GACpB,mBAAsB,0BACtB,mBAAsB,SACtB,gBAAmB,GACnB,kBAAqB,0BACrB,kBAAqB,SACrB,kBAAqB,GACrB,oBAAuB,0BACvB,oBAAuB,SACvB,2BAA8B,GAC9B,6BAAgC,0BAChC,6BAAgC,SAChC,qBAAwB,GACxB,uBAA0B,0BAC1B,uBAA0B,SAC1B,8BAAiC,GACjC,gCAAmC,0BACnC,gCAAmC,SACnC,wBAA2B,GAC3B,0BAA6B,0BAC7B,0BAA6B,SAC7B,iCAAoC,GACpC,mCAAsC,0BACtC,mCAAsC,SACtC,kBAAqB,GACrB,oBAAuB,0BACvB,oBAAuB,SACvB,2BAA8B,GAC9B,6BAAgC,0BAChC,6BAAgC,SAChC,qBAAwB,GACxB,uBAA0B,0BAC1B,uBAA0B,SAC1B,8BAAiC,GACjC,gCAAmC,0BACnC,gCAAmC,SACnC,wBAA2B,GAC3B,0BAA6B,0BAC7B,0BAA6B,SAC7B,iCAAoC,GACpC,mCAAsC,0BACtC,mCAAsC,SACtC,KAAQ,GACR,YAAe,GACf,gBAAmB,UACnB,oBAAuB,UACvB,yBAA4B,UAC5B,6BAAgC,UAChC,gBAAmB,UACnB,oBAAuB,UACvB,mBAAsB,UACtB,uBAA0B,UAC1B,sBAAyB,UACzB,0BAA6B,UAC7B,yBAA4B,UAC5B,6BAAgC,UAChC,4BAA+B,UAC/B,gCAAmC,UACnC,+BAAkC,UAClC,mCAAsC,UACtC,mBAAsB,UACtB,uBAA0B,UAC1B,sBAAyB,UACzB,0BAA6B,UAC7B,yBAA4B,UAC5B,6BAAgC,UAChC,4BAA+B,UAC/B,gCAAmC,UACnC,+BAAkC,UAClC,mCAAsC,UACtC,kCAAqC,UACrC,sCAAyC,UACzC,mBAAsB,UACtB,uBAA0B,UAC1B,sBAAyB,UACzB,0BAA6B,UAC7B,yBAA4B,UAC5B,6BAAgC,UAChC,4BAA+B,UAC/B,gCAAmC,UACnC,+BAAkC,UAClC,mCAAsC,UACtC,kCAAqC,UACrC,sCAAyC,SAC7C,EACE,OAAU,CACR,YAAe,GACf,MAAS,IACT,OAAU,IACV,UAAa,WACb,cAAiB,UACjB,WAAc,GACd,OAAU,GACV,OAAU,EACd,EACE,MAAS,CACP,YAAe,GACf,QAAW,CACf,EACE,OAAU,CACR,YAAe,GACf,UAAa,GACb,SAAY,GACZ,WAAc,GACd,SAAY,GACZ,SAAY,EACZ,SAAY,CAChB,EACE,aAAgB,CACd,YAAe,GACf,QAAW,GACX,SAAY,GACZ,SAAY,EAChB,EACE,MAAS,CACP,YAAe,GACf,MAAS,IACT,OAAU,IACV,UAAa,GACb,YAAe,GACf,aAAgB,GAChB,WAAc,GACd,gBAAmB,EACnB,gBAAmB,KACnB,aAAgB,GACpB,EACE,MAAS,UACT,KAAQ,UACR,cAAiB,EACjB,OAAU,QACV,YAAe,IACf,SAAY,IACZ,SAAY,GACZ,WAAc,8CACd,SAAY,EACZ,cAAiB,SACjB,YAAe,GACf,oBAAuB,GACvB,OAAU,CACR,SACA,gBACA,cACA,cACA,yBACA,UACJ,EACE,aAAgB,GAChB,kBAAqB,GACrB,iBAAoB,GACpB,SAAY,GACZ,iBAAoB,GACpB,uBAA0B,EAC5B,EAGIzzR,IAAS,CACX,GAAGyzR,GAGH,oBAAqB,OACrB,IAAK,CAEH,WAAY,GACZ,sBAAuB,gBACvB,oBAAqB,GACrB,mBAAoB,iBACxB,EACE,SAAU,OAEV,eAAgBD,GAAe,QAAQ,kBAAiB,EACxD,SAAU,CACR,GAAGC,GAAsB,SACzB,YAA6B1H,EAAO,UAAW,CAC7C,MAAO,CACL,WAAY,KAAK,kBACjB,SAAU,KAAK,gBACf,WAAY,KAAK,iBACzB,CACI,EAAG,aAAa,EAChB,SAA0BA,EAAO,UAAW,CAC1C,MAAO,CACL,WAAY,KAAK,eACjB,SAAU,KAAK,aACf,WAAY,KAAK,cACzB,CACI,EAAG,UAAU,EACb,UAA2BA,EAAO,UAAW,CAC3C,MAAO,CACL,WAAY,KAAK,gBACjB,SAAU,KAAK,cACf,WAAY,KAAK,eACzB,CACI,EAAG,WAAW,CAClB,EACE,MAAO,CACL,oBAAqB,EACzB,EACE,MAAO,CACL,GAAG0H,GAAsB,MACzB,aAAc,OACd,SAAU,MAEd,EACE,GAAI,CACF,GAAGA,GAAsB,GACzB,SAAU,OACV,WAA4B1H,EAAO,UAAW,CAC5C,MAAO,CACL,WAAY,KAAK,iBACjB,SAAU,KAAK,eACf,WAAY,KAAK,gBACzB,CACI,EAAG,YAAY,EACf,UAAW,CACT,GAAG0H,GAAsB,UACzB,WAAY,EAElB,EACI,oBAAqC1H,EAAO,UAAW,CACrD,MAAO,CACL,WAAY,KAAK,0BACjB,SAAU,KAAK,wBACf,WAAY,KAAK,yBACzB,CACI,EAAG,qBAAqB,EACxB,WAA4BA,EAAO,UAAW,CAC5C,MAAO,CACL,WAAY,KAAK,iBACjB,SAAU,KAAK,eACf,WAAY,KAAK,gBACzB,CACI,EAAG,YAAY,EACf,oBAAqCA,EAAO,UAAW,CACrD,MAAO,CACL,WAAY,KAAK,0BACjB,SAAU,KAAK,wBACf,WAAY,KAAK,yBACzB,CACI,EAAG,qBAAqB,EACxB,cAA+BA,EAAO,UAAW,CAC/C,MAAO,CACL,WAAY,KAAK,oBACjB,SAAU,KAAK,kBACf,WAAY,KAAK,mBACzB,CACI,EAAG,eAAe,EAClB,uBAAwCA,EAAO,UAAW,CACxD,MAAO,CACL,WAAY,KAAK,6BACjB,SAAU,KAAK,2BACf,WAAY,KAAK,4BACzB,CACI,EAAG,wBAAwB,EAC3B,iBAAkCA,EAAO,UAAW,CAClD,MAAO,CACL,WAAY,KAAK,uBACjB,SAAU,KAAK,qBACf,WAAY,KAAK,sBACzB,CACI,EAAG,kBAAkB,EACrB,0BAA2CA,EAAO,UAAW,CAC3D,MAAO,CACL,WAAY,KAAK,gCACjB,SAAU,KAAK,8BACf,WAAY,KAAK,+BACzB,CACI,EAAG,2BAA2B,EAC9B,cAA+BA,EAAO,UAAW,CAC/C,MAAO,CACL,WAAY,KAAK,oBACjB,SAAU,KAAK,kBACf,WAAY,KAAK,mBACzB,CACI,EAAG,eAAe,EAClB,uBAAwCA,EAAO,UAAW,CACxD,MAAO,CACL,WAAY,KAAK,6BACjB,SAAU,KAAK,2BACf,WAAY,KAAK,4BACzB,CACI,EAAG,wBAAwB,EAC3B,iBAAkCA,EAAO,UAAW,CAClD,MAAO,CACL,WAAY,KAAK,uBACjB,SAAU,KAAK,qBACf,WAAY,KAAK,sBACzB,CACI,EAAG,kBAAkB,EACrB,0BAA2CA,EAAO,UAAW,CAC3D,MAAO,CACL,WAAY,KAAK,gCACjB,SAAU,KAAK,8BACf,WAAY,KAAK,+BACzB,CACI,EAAG,2BAA2B,EAC9B,oBAAqCA,EAAO,UAAW,CACrD,MAAO,CACL,WAAY,KAAK,0BACjB,SAAU,KAAK,wBACf,WAAY,KAAK,yBACzB,CACI,EAAG,qBAAqB,EACxB,6BAA8CA,EAAO,UAAW,CAC9D,MAAO,CACL,WAAY,KAAK,mCACjB,SAAU,KAAK,iCACf,WAAY,KAAK,kCACzB,CACI,EAAG,8BAA8B,EACjC,cAA+BA,EAAO,UAAW,CAC/C,MAAO,CACL,WAAY,KAAK,oBACjB,SAAU,KAAK,kBACf,WAAY,KAAK,mBACzB,CACI,EAAG,eAAe,EAClB,uBAAwCA,EAAO,UAAW,CACxD,MAAO,CACL,WAAY,KAAK,6BACjB,SAAU,KAAK,2BACf,WAAY,KAAK,4BACzB,CACI,EAAG,wBAAwB,EAC3B,iBAAkCA,EAAO,UAAW,CAClD,MAAO,CACL,WAAY,KAAK,uBACjB,SAAU,KAAK,qBACf,WAAY,KAAK,sBACzB,CACI,EAAG,kBAAkB,EACrB,0BAA2CA,EAAO,UAAW,CAC3D,MAAO,CACL,WAAY,KAAK,gCACjB,SAAU,KAAK,8BACf,WAAY,KAAK,+BACzB,CACI,EAAG,2BAA2B,EAC9B,oBAAqCA,EAAO,UAAW,CACrD,MAAO,CACL,WAAY,KAAK,0BACjB,SAAU,KAAK,wBACf,WAAY,KAAK,yBACzB,CACI,EAAG,qBAAqB,EACxB,6BAA8CA,EAAO,UAAW,CAC9D,MAAO,CACL,WAAY,KAAK,mCACjB,SAAU,KAAK,iCACf,WAAY,KAAK,kCACzB,CACI,EAAG,8BAA8B,EACjC,aAA8BA,EAAO,UAAW,CAC9C,MAAO,CACL,WAAY,KAAK,mBACjB,SAAU,KAAK,iBACf,WAAY,KAAK,kBACzB,CACI,EAAG,cAAc,EACjB,YAA6BA,EAAO,UAAW,CAC7C,MAAO,CACL,WAAY,KAAK,kBACjB,SAAU,KAAK,gBACf,WAAY,KAAK,iBACzB,CACI,EAAG,aAAa,CACpB,EACE,IAAK,CACH,GAAG0H,GAAsB,IACzB,SAAU,GACd,EACE,QAAS,CACP,GAAGA,GAAsB,QACzB,SAAU,MACd,EACE,YAAa,CACX,GAAGA,GAAsB,YACzB,SAAU,MACd,EACE,OAAQ,CACN,GAAGA,GAAsB,MAC7B,EACE,MAAO,CACL,GAAGA,GAAsB,KAC7B,EACE,QAAS,CACP,YAAa,GACb,QAAS,GACT,eAAgB,EAChB,WAAY,GACZ,UAAW,IACX,WAAY,GACZ,YAAa,EACb,cAAe,GACf,cAAe,GACf,YAAa,GACjB,CACA,EACIC,IAAyB3H,EAAO,CAAClvT,EAAK+sI,EAAS,KAAO,OAAO,KAAK/sI,CAAG,EAAE,OAAO,CAACqiD,EAAKvH,IAClF,MAAM,QAAQ96C,EAAI86C,CAAE,CAAC,EAChBuH,EACE,OAAOriD,EAAI86C,CAAE,GAAM,UAAY96C,EAAI86C,CAAE,IAAM,KAC7C,CAAC,GAAGuH,EAAK0qF,EAASjyF,EAAI,GAAG+7Q,IAAO72T,EAAI86C,CAAE,EAAG,EAAE,CAAC,EAE9C,CAAC,GAAGuH,EAAK0qF,EAASjyF,CAAE,EAC1B,EAAE,EAAG,QAAQ,EACZg8Q,IAAa,IAAI,IAAID,IAAO1zR,IAAQ,EAAE,CAAC,EACvC4zR,IAAwB5zR,IAGxB6zR,GAAoC9H,EAAQxtT,GAAS,CAEvD,GADAy0C,GAAI,MAAM,gCAAiCz0C,CAAI,EAC3C,SAAOA,GAAS,UAAYA,GAAQ,MAGxC,IAAI,MAAM,QAAQA,CAAI,EAAG,CACvBA,EAAK,QAAS2c,GAAQ24S,GAAkB34S,CAAG,CAAC,EAC5C,MACF,CACA,UAAW/gB,KAAO,OAAO,KAAKoE,CAAI,EAAG,CAEnC,GADAy0C,GAAI,MAAM,eAAgB74C,CAAG,EACzBA,EAAI,WAAW,IAAI,GAAKA,EAAI,SAAS,OAAO,GAAKA,EAAI,SAAS,QAAQ,GAAK,CAACw5T,IAAW,IAAIx5T,CAAG,GAAKoE,EAAKpE,CAAG,GAAK,KAAM,CACxH64C,GAAI,MAAM,0BAA2B74C,CAAG,EACxC,OAAOoE,EAAKpE,CAAG,EACf,QACF,CACA,GAAI,OAAOoE,EAAKpE,CAAG,GAAM,SAAU,CACjC64C,GAAI,MAAM,oBAAqB74C,CAAG,EAClC05T,GAAkBt1T,EAAKpE,CAAG,CAAC,EAC3B,QACF,CACA,MAAM25T,EAAc,CAAC,WAAY,aAAc,eAAe,EAC9D,UAAWC,KAAUD,EACf35T,EAAI,SAAS45T,CAAM,IACrB/gR,GAAI,MAAM,wBAAyB74C,CAAG,EACtCoE,EAAKpE,CAAG,EAAI65T,IAAYz1T,EAAKpE,CAAG,CAAC,EAGvC,CACA,GAAIoE,EAAK,eACP,UAAWzG,KAAK,OAAO,KAAKyG,EAAK,cAAc,EAAG,CAChD,MAAM6mC,EAAM7mC,EAAK,eAAezG,CAAC,EAC7BstC,GAAA,MAAAA,EAAK,OAAS,CAACA,EAAI,MAAM,wBAAwB,IACnD7mC,EAAK,eAAezG,CAAC,EAAI,GAE7B,CAEFk7C,GAAI,MAAM,qBAAsBz0C,CAAI,EACtC,EAAG,mBAAmB,EAClBy1T,IAA8BjI,EAAQ1zQ,GAAQ,CAChD,IAAI47Q,EAAW,EACXC,EAAS,EACb,UAAW5xO,KAAWjqC,EAAK,CACzB,GAAI47Q,EAAWC,EACb,MAAO,kCAEL5xO,IAAY,IACd2xO,IACS3xO,IAAY,KACrB4xO,GAEJ,CACA,OAAID,IAAaC,EACR,kCAEF77Q,CACT,EAAG,aAAa,EAGZ87Q,GAAgB,OAAO,OAAOP,GAAqB,EACnDQ,GAAa1D,GAAwB,GAAIyD,EAAa,EACtDE,GACAC,GAAa,GACbC,GAAgB7D,GAAwB,GAAIyD,EAAa,EACzDK,GAAsCzI,EAAO,CAAC0I,EAASC,IAAgB,CACzE,IAAI75D,EAAM61D,GAAwB,GAAI+D,CAAO,EACzCE,EAAkB,GACtB,UAAWl9T,KAAKi9T,EACdE,IAASn9T,CAAC,EACVk9T,EAAkBjE,GAAwBiE,EAAiBl9T,CAAC,EAG9D,GADAojQ,EAAM61D,GAAwB71D,EAAK85D,CAAe,EAC9CA,EAAgB,OAASA,EAAgB,SAASnB,GAAgB,CACpE,MAAMqB,EAA0BnE,GAAwB,GAAI2D,EAAoB,EAC1ES,EAAiBpE,GACrBmE,EAAwB,gBAAkB,GAC1CF,EAAgB,cACtB,EACQ95D,EAAI,OAASA,EAAI,SAAS24D,KAC5B34D,EAAI,eAAiB24D,GAAe34D,EAAI,KAAK,EAAE,kBAAkBi6D,CAAc,EAEnF,CACA,OAAAP,GAAgB15D,EAChBk6D,IAAYR,EAAa,EAClBA,EACT,EAAG,qBAAqB,EACpBS,IAAgCjJ,EAAQkJ,IAC1Cb,GAAa1D,GAAwB,GAAIyD,EAAa,EACtDC,GAAa1D,GAAwB0D,GAAYa,CAAI,EACjDA,EAAK,OAASzB,GAAeyB,EAAK,KAAK,IACzCb,GAAW,eAAiBZ,GAAeyB,EAAK,KAAK,EAAE,kBAAkBA,EAAK,cAAc,GAE9FT,GAAoBJ,GAAYE,EAAU,EACnCF,IACN,eAAe,EACdc,IAA2CnJ,EAAQkJ,GAAS,CAC9DZ,GAAuB3D,GAAwB,GAAIuE,CAAI,CACzD,EAAG,0BAA0B,EACzBE,IAAmCpJ,EAAQkJ,IAC7Cb,GAAa1D,GAAwB0D,GAAYa,CAAI,EACrDT,GAAoBJ,GAAYE,EAAU,EACnCF,IACN,kBAAkB,EACjBgB,IAAgCrJ,EAAO,IAClC2E,GAAwB,GAAI0D,EAAU,EAC5C,eAAe,EACdiB,IAA4BtJ,EAAQkJ,IACtCF,IAAYE,CAAI,EAChBvE,GAAwB6D,GAAeU,CAAI,EACpCK,GAAS,GACf,WAAW,EACVA,GAA4BvJ,EAAO,IAC9B2E,GAAwB,GAAI6D,EAAa,EAC/C,WAAW,EACVK,IAA2B7I,EAAQ9sT,GAAY,CAC5CA,IAGL,CAAC,SAAU,GAAGm1T,GAAW,QAAU,EAAE,EAAE,QAASj6T,GAAQ,CAClD,OAAO,OAAO8E,EAAS9E,CAAG,IAC5B64C,GAAI,MAAM,yCAAyC74C,CAAG,GAAI8E,EAAQ9E,CAAG,CAAC,EACtE,OAAO8E,EAAQ9E,CAAG,EAEtB,CAAC,EACD,OAAO,KAAK8E,CAAO,EAAE,QAAS9E,GAAQ,CAChCA,EAAI,WAAW,IAAI,GACrB,OAAO8E,EAAQ9E,CAAG,CAEtB,CAAC,EACD,OAAO,KAAK8E,CAAO,EAAE,QAAS9E,GAAQ,CAChC,OAAO8E,EAAQ9E,CAAG,GAAM,WAAa8E,EAAQ9E,CAAG,EAAE,SAAS,GAAG,GAAK8E,EAAQ9E,CAAG,EAAE,SAAS,GAAG,GAAK8E,EAAQ9E,CAAG,EAAE,SAAS,WAAW,IACpI,OAAO8E,EAAQ9E,CAAG,EAEhB,OAAO8E,EAAQ9E,CAAG,GAAM,UAC1By6T,IAAS31T,EAAQ9E,CAAG,CAAC,CAEzB,CAAC,EACH,EAAG,UAAU,EACTo7T,IAA+BxJ,EAAQyJ,GAAc,OACvD3B,GAAkB2B,CAAS,EACvBA,EAAU,YAAc,GAAClhS,EAAAkhS,EAAU,iBAAV,MAAAlhS,EAA0B,cACrDkhS,EAAU,eAAiB,CACzB,GAAGA,EAAU,eACb,WAAYA,EAAU,UAC5B,GAEElB,GAAW,KAAKkB,CAAS,EACzBhB,GAAoBJ,GAAYE,EAAU,CAC5C,EAAG,cAAc,EACbxxM,GAAwBipM,EAAO,CAACiE,EAAUoE,KAAe,CAC3DE,GAAa,GACbE,GAAoBxE,EAASsE,EAAU,CACzC,EAAG,OAAO,EACNmB,IAAgB,CAClB,qBAAsB,6IACxB,EACIC,IAAiB,GACjBC,IAA+B5J,EAAQhsT,GAAY,CACjD21T,IAAe31T,CAAO,IAG1BizC,GAAI,KAAKyiR,IAAc11T,CAAO,CAAC,EAC/B21T,IAAe31T,CAAO,EAAI,GAC5B,EAAG,cAAc,EACbg1T,IAA8BhJ,EAAQiE,GAAY,CAC/CA,IAGDA,EAAQ,oBAAsBA,EAAQ,gCACxC2F,IAAa,sBAAsB,CAEvC,EAAG,aAAa,EACZC,IAAuC7J,EAAO,IAAM,CACtD,IAAI8J,EAAa,GACbxB,KACFwB,EAAanF,GAAwBmF,EAAYxB,EAAoB,GAEvE,UAAW58T,KAAK68T,GACduB,EAAanF,GAAwBmF,EAAYp+T,CAAC,EAEpD,OAAOo+T,CACT,EAAG,sBAAsB,EAIrBC,GAAiB,eACjBC,IAA0BhK,EAAQrnT,GAC/BA,EAGOsxT,IAAmBtxT,CAAC,EAAE,QAAQ,OAAQ,MAAM,EAC7C,MAAM,MAAM,EAHd,CAAC,EAAE,EAIX,SAAS,EACRuxT,KAAiD,IAAM,CACzD,IAAIC,EAAQ,GACZ,MAAO,IAAM,CACNA,IACHC,IAAmB,EACnBD,EAAQ,GAEZ,CACF,GAAC,EACD,SAASC,KAAsB,CAC7B,MAAMC,EAAsB,wBAC5B7/D,GAAU,QAAQ,2BAA6B9tI,GAAS,CAClDA,EAAK,UAAY,KAAOA,EAAK,aAAa,QAAQ,GACpDA,EAAK,aAAa2tM,EAAqB3tM,EAAK,aAAa,QAAQ,GAAK,EAAE,CAE5E,CAAC,EACD8tI,GAAU,QAAQ,0BAA4B9tI,GAAS,CACjDA,EAAK,UAAY,KAAOA,EAAK,aAAa2tM,CAAmB,IAC/D3tM,EAAK,aAAa,SAAUA,EAAK,aAAa2tM,CAAmB,GAAK,EAAE,EACxE3tM,EAAK,gBAAgB2tM,CAAmB,EACpC3tM,EAAK,aAAa,QAAQ,IAAM,UAClCA,EAAK,aAAa,MAAO,UAAU,EAGzC,CAAC,CACH,CACAsjM,EAAOoK,IAAqB,qBAAqB,EACjD,IAAIE,IAA+BtK,EAAQuK,IACzCL,IAA6B,EACP1/D,GAAU,SAAS+/D,CAAG,GAE3C,cAAc,EACbC,IAA+BxK,EAAO,CAAC/yS,EAAMg3S,IAAY,OAC3D,KAAI17R,EAAA07R,EAAQ,YAAR,YAAA17R,EAAmB,cAAe,GAAO,CAC3C,MAAMoe,EAAQs9Q,EAAQ,cAClBt9Q,IAAU,cAAgBA,IAAU,SACtC15B,EAAOq9S,IAAar9S,CAAI,EACf05B,IAAU,UACnB15B,EAAOg9S,IAAmBh9S,CAAI,EAC9BA,EAAOA,EAAK,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,EACtDA,EAAOA,EAAK,QAAQ,KAAM,UAAU,EACpCA,EAAOw9S,IAAmBx9S,CAAI,EAElC,CACA,OAAOA,CACT,EAAG,cAAc,EACby9S,GAA+B1K,EAAO,CAAC/yS,EAAMg3S,IAC1Ch3S,IAGDg3S,EAAQ,gBACVh3S,EAAOu9O,GAAU,SAASggE,IAAav9S,EAAMg3S,CAAO,EAAGA,EAAQ,eAAe,EAAE,SAAQ,EAExFh3S,EAAOu9O,GAAU,SAASggE,IAAav9S,EAAMg3S,CAAO,EAAG,CACrD,YAAa,CAAC,OAAO,CAC3B,CAAK,EAAE,SAAQ,EAENh3S,GACN,cAAc,EACb09S,IAAsC3K,EAAO,CAACz1T,EAAG05T,IAC/C,OAAO15T,GAAM,SACRmgU,GAAangU,EAAG05T,CAAO,EAEzB15T,EAAE,KAAI,EAAG,IAAK9D,GAAMikU,GAAajkU,EAAGw9T,CAAO,CAAC,EAClD,qBAAqB,EACpB2G,IAA4B5K,EAAQ/yS,GAC/B88S,GAAe,KAAK98S,CAAI,EAC9B,WAAW,EACV49S,IAA8B7K,EAAQ/yS,GACjCA,EAAK,MAAM88S,EAAc,EAC/B,aAAa,EACZU,IAAqCzK,EAAQrnT,GACxCA,EAAE,QAAQ,QAAS,OAAO,EAChC,oBAAoB,EACnBsxT,IAAqCjK,EAAQrnT,GACxCA,EAAE,QAAQoxT,GAAgB,MAAM,EACtC,oBAAoB,EACnBe,IAAyB9K,EAAQ+K,GAAgB,CACnD,IAAIxwT,EAAM,GACV,OAAIwwT,IACFxwT,EAAM,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAO,OAAO,SAAS,SAAW,OAAO,SAAS,OAC1GA,EAAM,IAAI,OAAOA,CAAG,GAEfA,CACT,EAAG,QAAQ,EACPk5G,GAA2BusM,EAAQ3mR,GAAQ,EAAAA,IAAQ,IAAS,CAAC,QAAS,OAAQ,GAAG,EAAE,SAAS,OAAOA,CAAG,EAAE,KAAI,EAAG,aAAa,GAAkB,UAAU,EACxJ2xR,IAAyBhL,EAAO,YAAY56Q,EAAQ,CACtD,MAAM6lR,EAAY7lR,EAAO,OAAQj+C,GACxB,CAAC,MAAMA,CAAK,CACpB,EACD,OAAO,KAAK,IAAI,GAAG8jU,CAAS,CAC9B,EAAG,QAAQ,EACPC,IAAyBlL,EAAO,YAAY56Q,EAAQ,CACtD,MAAM6lR,EAAY7lR,EAAO,OAAQj+C,GACxB,CAAC,MAAMA,CAAK,CACpB,EACD,OAAO,KAAK,IAAI,GAAG8jU,CAAS,CAC9B,EAAG,QAAQ,EACPE,IAAoCnL,EAAO,SAASvzQ,EAAO,CAC7D,MAAM2+Q,EAAY3+Q,EAAM,MAAM,KAAK,EAC7BE,EAAS,GACf,QAASx+C,EAAI,EAAGA,EAAIi9T,EAAU,OAAQj9T,IAAK,CACzC,IAAIk9T,EAAUD,EAAUj9T,CAAC,EACzB,GAAIk9T,IAAY,KAAOl9T,EAAI,GAAKA,EAAI,EAAIi9T,EAAU,OAAQ,CACxD,MAAME,EAAcF,EAAUj9T,EAAI,CAAC,EAC7Bo9T,EAAUH,EAAUj9T,EAAI,CAAC,EAC3Bq9T,IAAkBF,EAAaC,CAAO,IACxCF,EAAUC,EAAc,IAAMC,EAC9Bp9T,IACAw+C,EAAO,IAAG,EAEd,CACAA,EAAO,KAAK8+Q,IAAWJ,CAAO,CAAC,CACjC,CACA,OAAO1+Q,EAAO,KAAK,EAAE,CACvB,EAAG,mBAAmB,EAClB++Q,GAAkC1L,EAAO,CAAC3/K,EAAQsrD,IAC7C,KAAK,IAAI,EAAGtrD,EAAO,MAAMsrD,CAAS,EAAE,OAAS,CAAC,EACpD,iBAAiB,EAChB6/H,IAAoCxL,EAAO,CAACsL,EAAaC,IAAY,CACvE,MAAMI,EAAYD,GAAgBJ,EAAa,GAAG,EAC5CM,EAAYF,GAAgBH,EAAS,GAAG,EAC9C,OAAOI,IAAc,GAAKC,IAAc,CAC1C,EAAG,mBAAmB,EAClBH,IAA6BzL,EAAQvzQ,GAAU,CACjD,MAAMo/Q,EAAaH,GAAgBj/Q,EAAO,GAAG,EAC7C,IAAIq/Q,EAAmB,GACvB,GAAID,GAAc,EAChB,OAAOp/Q,EAELo/Q,EAAa,IAAM,GAAKp/Q,EAAM,WAAW,GAAG,IAC9CA,EAAQA,EAAM,UAAU,CAAC,EACzBq/Q,EAAmB,IAErB,MAAMtyI,EAAQ,CAAC,GAAG/sI,CAAK,EACvB,IAAIj+C,EAAQgrL,EAAM,QAAQ,GAAG,EACzB/qL,EAAO+qL,EAAM,YAAY,GAAG,EAChC,KAAOhrL,IAAU,IAAMC,IAAS,IAAMD,IAAUC,GAC9C+qL,EAAMhrL,CAAK,EAAI,IACfgrL,EAAM/qL,CAAI,EAAI,IACdD,EAAQgrL,EAAM,QAAQ,GAAG,EACzB/qL,EAAO+qL,EAAM,YAAY,GAAG,EAE9B,OAAIsyI,GACFtyI,EAAM,QAAQ,GAAG,EAEZA,EAAM,KAAK,EAAE,CACtB,EAAG,YAAY,EACXuyI,IAAoC/L,EAAO,IAAM,OAAO,gBAAkB,OAAQ,mBAAmB,EACrGgM,GAAa,gBACbC,GAA2BjM,EAAQ/yS,GAAI,OAAM,SAAAsb,EAAAtb,EAAK,MAAM++S,EAAU,IAArB,YAAAzjS,EAAwB,SAAU,GAAK,GAAG,UAAU,EACjG2jS,IAA4ClM,EAAO,MAAO/yS,EAAMg3S,IAAY,CAC9E,MAAMkI,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAY,MAAMC,GAAqBn/S,EAAMg3S,CAAO,EAC5DkI,EAAQ,GAAK,aACbA,EAAQ,MAAM,WAAa,SAC3BA,EAAQ,MAAM,SAAW,WACzBA,EAAQ,MAAM,IAAM,IACpB,MAAM9sP,EAAO,SAAS,cAAc,MAAM,EAC1CA,GAAA,MAAAA,EAAM,sBAAsB,YAAa8sP,GACzC,MAAME,EAAM,CAAE,MAAOF,EAAQ,YAAa,OAAQA,EAAQ,YAAY,EACtE,OAAAA,EAAQ,OAAM,EACPE,CACT,EAAG,2BAA2B,EAC1BC,IAAyCtM,EAAO,MAAO/yS,EAAMg3S,IAAY,CAC3E,GAAI,CAACgI,GAASh/S,CAAI,EAChB,OAAOA,EAET,GAAI,EAAE8+S,IAAiB,GAAM9H,EAAQ,cAAgBA,EAAQ,mBAC3D,OAAOh3S,EAAK,QAAQ++S,GAAY,4CAA4C,EAEpE,CACR,KAAM,CAAE,QAAS7V,CAAK,EAAK,MAAKoW,GAAA,wBAAApW,CAAA,QAAC,2BAAAqW,GAAA,EAAc,eAAArW,CAAA,WACzCsW,EAAaxI,EAAQ,mBAAqB,CAAC8H,IAAiB,GAAM9H,EAAQ,aAAe,gBAAkB,SACjH,OAAOh3S,EAAK,MAAM88S,EAAc,EAAE,IAC/B/hR,GAASikR,GAASjkR,CAAI,EAAI,kGAAkGA,CAAI,SAAW,QAAQA,CAAI,QAC9J,EAAM,KAAK,EAAE,EAAE,QACTgkR,GACA,CAAC/xT,EAAGxO,IAAM0qT,EAAM,eAAe1qT,EAAG,CAChC,aAAc,GACd,YAAa,GACb,OAAQghU,CAChB,CAAO,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,+BAAgC,EAAE,CACvE,CACE,CAKF,EAAG,wBAAwB,EACvBL,GAAuCpM,EAAO,MAAO/yS,EAAMg3S,IACtDyG,GAAa,MAAM4B,IAAuBr/S,EAAMg3S,CAAO,EAAGA,CAAO,EACvE,sBAAsB,EACrByI,GAAiB,CACnB,QAAA1C,IACA,aAAAU,GACA,oBAAAC,IACA,UAAAC,IACA,YAAAC,IACA,eAAAd,GACA,aAAAO,IACA,OAAAQ,IACA,SAAAr3M,GACA,OAAAu3M,IACA,OAAAE,GACF,EAGIyB,IAA0B3M,EAAO,SAAS4M,EAAQx4H,EAAO,CAC3D,QAASloJ,KAAQkoJ,EACfw4H,EAAO,KAAK1gR,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CAEhC,EAAG,SAAS,EACR2gR,IAAwC7M,EAAO,SAAS50Q,EAAQ6mE,EAAO66M,EAAa,CACtF,IAAI14H,EAAwB,IAAI,IAChC,OAAI04H,GACF14H,EAAM,IAAI,QAAS,MAAM,EACzBA,EAAM,IAAI,QAAS,cAAcniF,CAAK,KAAK,IAE3CmiF,EAAM,IAAI,SAAUhpJ,CAAM,EAC1BgpJ,EAAM,IAAI,QAASniF,CAAK,GAEnBmiF,CACT,EAAG,uBAAuB,EACtB24H,IAAmC/M,EAAO,SAASgN,EAAS5hR,EAAQ6mE,EAAO66M,EAAa,CAC1F,MAAM14H,EAAQy4H,IAAsBzhR,EAAQ6mE,EAAO66M,CAAW,EAC9DH,IAAQK,EAAS54H,CAAK,CACxB,EAAG,kBAAkB,EACjB64H,IAAoCjN,EAAO,SAASkN,EAAOF,EAASv3M,EAASq3M,EAAa,CAC5F,MAAMK,EAAYH,EAAQ,KAAI,EAAG,QAAO,EAClCI,EAASD,EAAU,MACnBE,EAAUF,EAAU,OAC1BlmR,GAAI,KAAK,eAAemmR,CAAM,IAAIC,CAAO,GAAIF,CAAS,EACtD,IAAIl7M,EAAQ,EACR7mE,EAAS,EACbnE,GAAI,KAAK,iBAAiBgrE,CAAK,IAAI7mE,CAAM,GAAI8hR,CAAK,EAClDj7M,EAAQm7M,EAAS33M,EAAU,EAC3BrqE,EAASiiR,EAAU53M,EAAU,EAC7BxuE,GAAI,KAAK,sBAAsBgrE,CAAK,IAAI7mE,CAAM,EAAE,EAChD2hR,IAAiBC,EAAS5hR,EAAQ6mE,EAAO66M,CAAW,EACpD,MAAMQ,EAAO,GAAGH,EAAU,EAAI13M,CAAO,IAAI03M,EAAU,EAAI13M,CAAO,IAAI03M,EAAU,MAAQ,EAAI13M,CAAO,IAAI03M,EAAU,OAAS,EAAI13M,CAAO,GACjIu3M,EAAQ,KAAK,UAAWM,CAAI,CAC9B,EAAG,mBAAmB,EAGlBC,GAAS,GACTC,IAA4BxN,EAAO,CAAC92S,EAAMukT,EAAYv6T,IAAY,CACpE,IAAIw6T,EAAgB,GACpB,OAAIxkT,KAAQqkT,IAAUA,GAAOrkT,CAAI,EAC/BwkT,EAAgBH,GAAOrkT,CAAI,EAAEhW,CAAO,EAEpC+zC,GAAI,KAAK,sBAAsB/9B,CAAI,EAAE,EAEhC;AAAA,mBACUhW,EAAQ,UAAU;AAAA,iBACpBA,EAAQ,QAAQ;AAAA,YACrBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,YA2BjBA,EAAQ,aAAa;AAAA;AAAA;AAAA,YAGrBA,EAAQ,cAAc;AAAA,cACpBA,EAAQ,cAAc;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,YAwBxBA,EAAQ,SAAS;AAAA,cACfA,EAAQ,SAAS;AAAA;AAAA;AAAA,cAGjBA,EAAQ,SAAS;AAAA;;AAAA;AAAA,mBAIZA,EAAQ,UAAU;AAAA,iBACpBA,EAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA;;AAAA,IAM7Bw6T,CAAa;;AAAA,IAEbD,CAAU;AAAA,CAEd,EAAG,WAAW,EACVE,IAAsC3N,EAAO,CAAC92S,EAAM0kT,IAAiB,CACnEA,IAAiB,SACnBL,GAAOrkT,CAAI,EAAI0kT,EAEnB,EAAG,qBAAqB,EACpBC,IAAiBL,IAGjBM,IAAmB,GACvB7N,IAAS6N,IAAkB,CACzB,MAAO,IAAMC,IACb,kBAAmB,IAAMC,IACzB,YAAa,IAAMC,IACnB,gBAAiB,IAAMC,IACvB,kBAAmB,IAAMC,IACzB,YAAa,IAAMC,IACnB,gBAAiB,IAAMC,GACzB,CAAC,EACD,IAAIC,GAAW,GACXC,GAAe,GACfC,GAAiB,GACjBC,GAAgCzO,EAAQuK,GAAQG,GAAaH,EAAKhB,GAAS,CAAE,EAAG,cAAc,EAC9FwE,IAAwB/N,EAAO,IAAM,CACvCsO,GAAW,GACXE,GAAiB,GACjBD,GAAe,EACjB,EAAG,OAAO,EACNH,IAA8BpO,EAAQuK,GAAQ,CAChD+D,GAAWG,GAAclE,CAAG,EAAE,QAAQ,QAAS,EAAE,CACnD,EAAG,aAAa,EACZ0D,IAA8BjO,EAAO,IAAMsO,GAAU,aAAa,EAClEH,IAAoCnO,EAAQuK,GAAQ,CACtDiE,GAAiBC,GAAclE,CAAG,EAAE,QAAQ,SAAU;AAAA,CAAI,CAC5D,EAAG,mBAAmB,EAClByD,IAAoChO,EAAO,IAAMwO,GAAgB,mBAAmB,EACpFH,IAAkCrO,EAAQuK,GAAQ,CACpDgE,GAAeE,GAAclE,CAAG,CAClC,EAAG,iBAAiB,EAChB2D,IAAkClO,EAAO,IAAMuO,GAAc,iBAAiB,EAG9EG,IAAOznR,GACP0nR,IAAexO,GACfyO,GAAarF,GACbsF,IAAavF,IACbwF,IAAiB1G,GACjB2G,GAAgC/O,EAAQ/yS,GAASy9S,GAAaz9S,EAAM2hT,GAAU,CAAE,EAAG,cAAc,EACjGI,IAAqB/B,IACrBgC,IAA8BjP,EAAO,IAChC8N,IACN,aAAa,EACZoB,GAAW,GACXC,GAAkCnP,EAAO,CAAClqT,EAAIs5T,EAASlL,IAAa,OAClEgL,GAASp5T,CAAE,GACb44T,IAAK,KAAK,mBAAmB54T,CAAE,mCAAmC,EAEpEo5T,GAASp5T,CAAE,EAAIs5T,EACXlL,GACFI,IAAYxuT,EAAIouT,CAAQ,EAE1ByJ,IAAoB73T,EAAIs5T,EAAQ,MAAM,GACtC7mS,EAAA6mS,EAAQ,cAAR,MAAA7mS,EAAA,KAAA6mS,EACEV,IACAC,IACAC,GACAG,GACAC,IACAC,IAAW,EACX,IAAM,CACN,EAEJ,EAAG,iBAAiB,EAChBI,GAA6BrP,EAAQ7yS,GAAS,CAChD,GAAIA,KAAQ+hT,GACV,OAAOA,GAAS/hT,CAAI,EAEtB,MAAM,IAAImiT,IAAqBniT,CAAI,CACrC,EAAG,YAAY,KACXmiT,KAAuB/mS,GAAA,cAAc,KAAM,CAI7C,YAAYpb,EAAM,CAChB,MAAM,WAAWA,CAAI,aAAa,CACpC,CACF,EALI6yS,EAAOz3R,GAAM,sBAAsB,EAFZA,ICl9FvBsZ,IAAO,CAAC,MAAO,IAAM,CAAC,CAAC,EAE3B,SAAS3W,KAAW,CAClB,QAAS/8B,EAAI,EAAGlC,EAAI,UAAU,OAAQgO,EAAI,GAAI5N,EAAG8B,EAAIlC,EAAG,EAAEkC,EAAG,CAC3D,GAAI,EAAE9B,EAAI,UAAU8B,CAAC,EAAI,KAAQ9B,KAAK4N,GAAM,QAAQ,KAAK5N,CAAC,EAAG,MAAM,IAAI,MAAM,iBAAmBA,CAAC,EACjG4N,EAAE5N,CAAC,EAAI,EACT,CACA,OAAO,IAAIkjU,GAASt1T,CAAC,CACvB,CAEA,SAASs1T,GAASt1T,EAAG,CACnB,KAAK,EAAIA,CACX,CAEA,SAASu1T,IAAeC,EAAWn1J,EAAO,CACxC,OAAOm1J,EAAU,OAAO,MAAM,OAAO,EAAE,IAAI,SAASpjU,EAAG,CACrD,IAAI8gB,EAAO,GAAI,EAAI9gB,EAAE,QAAQ,GAAG,EAEhC,GADI,GAAK,IAAG8gB,EAAO9gB,EAAE,MAAM,EAAI,CAAC,EAAGA,EAAIA,EAAE,MAAM,EAAG,CAAC,GAC/CA,GAAK,CAACiuK,EAAM,eAAejuK,CAAC,EAAG,MAAM,IAAI,MAAM,iBAAmBA,CAAC,EACvE,MAAO,CAAC,KAAMA,EAAG,KAAM8gB,CAAI,CAC7B,CAAC,CACH,CAEAoiT,GAAS,UAAYrkS,IAAS,UAAY,CACxC,YAAaqkS,GACb,GAAI,SAASG,EAAUzmU,EAAU,CAC/B,IAAIgR,EAAI,KAAK,EACTqlB,EAAIkwS,IAAeE,EAAW,GAAIz1T,CAAC,EACnC5N,EACA8B,EAAI,GACJlC,EAAIqzB,EAAE,OAGV,GAAI,UAAU,OAAS,EAAG,CACxB,KAAO,EAAEnxB,EAAIlC,GAAG,IAAKI,GAAKqjU,EAAWpwS,EAAEnxB,CAAC,GAAG,QAAU9B,EAAIoiC,IAAIx0B,EAAE5N,CAAC,EAAGqjU,EAAS,IAAI,GAAI,OAAOrjU,EAC3F,MACF,CAIA,GAAIpD,GAAY,MAAQ,OAAOA,GAAa,WAAY,MAAM,IAAI,MAAM,qBAAuBA,CAAQ,EACvG,KAAO,EAAEkF,EAAIlC,GACX,GAAII,GAAKqjU,EAAWpwS,EAAEnxB,CAAC,GAAG,KAAM8L,EAAE5N,CAAC,EAAIqiC,IAAIz0B,EAAE5N,CAAC,EAAGqjU,EAAS,KAAMzmU,CAAQ,UAC/DA,GAAY,KAAM,IAAKoD,KAAK4N,EAAGA,EAAE5N,CAAC,EAAIqiC,IAAIz0B,EAAE5N,CAAC,EAAGqjU,EAAS,KAAM,IAAI,EAG9E,OAAO,IACT,EACA,KAAM,UAAW,CACf,IAAI96R,EAAO,GAAI36B,EAAI,KAAK,EACxB,QAAS5N,KAAK4N,EAAG26B,EAAKvoC,CAAC,EAAI4N,EAAE5N,CAAC,EAAE,MAAK,EACrC,OAAO,IAAIkjU,GAAS36R,CAAI,CAC1B,EACA,KAAM,SAAS1rB,EAAMymT,EAAM,CACzB,IAAK1jU,EAAI,UAAU,OAAS,GAAK,EAAG,QAASuG,EAAO,IAAI,MAAMvG,CAAC,EAAGkC,EAAI,EAAGlC,EAAGI,EAAG8B,EAAIlC,EAAG,EAAEkC,EAAGqE,EAAKrE,CAAC,EAAI,UAAUA,EAAI,CAAC,EACpH,GAAI,CAAC,KAAK,EAAE,eAAe+a,CAAI,EAAG,MAAM,IAAI,MAAM,iBAAmBA,CAAI,EACzE,IAAK7c,EAAI,KAAK,EAAE6c,CAAI,EAAG/a,EAAI,EAAGlC,EAAII,EAAE,OAAQ8B,EAAIlC,EAAG,EAAEkC,EAAG9B,EAAE8B,CAAC,EAAE,MAAM,MAAMwhU,EAAMn9T,CAAI,CACrF,EACA,MAAO,SAAS0W,EAAMymT,EAAMn9T,EAAM,CAChC,GAAI,CAAC,KAAK,EAAE,eAAe0W,CAAI,EAAG,MAAM,IAAI,MAAM,iBAAmBA,CAAI,EACzE,QAAS7c,EAAI,KAAK,EAAE6c,CAAI,EAAG,EAAI,EAAGjd,EAAII,EAAE,OAAQ,EAAIJ,EAAG,EAAE,EAAGI,EAAE,CAAC,EAAE,MAAM,MAAMsjU,EAAMn9T,CAAI,CACzF,CACF,EAEA,SAASi8B,IAAIvlB,EAAMiE,EAAM,CACvB,QAAShf,EAAI,EAAGlC,EAAIid,EAAK,OAAQzd,EAAG0C,EAAIlC,EAAG,EAAEkC,EAC3C,IAAK1C,EAAIyd,EAAK/a,CAAC,GAAG,OAASgf,EACzB,OAAO1hB,EAAE,KAGf,CAEA,SAASijC,IAAIxlB,EAAMiE,EAAMlkB,EAAU,CACjC,QAASkF,EAAI,EAAGlC,EAAIid,EAAK,OAAQ/a,EAAIlC,EAAG,EAAEkC,EACxC,GAAI+a,EAAK/a,CAAC,EAAE,OAASgf,EAAM,CACzBjE,EAAK/a,CAAC,EAAI0zC,IAAM34B,EAAOA,EAAK,MAAM,EAAG/a,CAAC,EAAE,OAAO+a,EAAK,MAAM/a,EAAI,CAAC,CAAC,EAChE,KACF,CAEF,OAAIlF,GAAY,MAAMigB,EAAK,KAAK,CAAC,KAAMiE,EAAM,MAAOlkB,CAAQ,CAAC,EACtDigB,CACT,CCjFO,IAAI0mT,GAAQ,+BAEnB,MAAAt5P,IAAe,CACb,IAAK,6BACL,MAAOs5P,GACP,MAAO,+BACP,IAAK,uCACL,MAAO,+BACT,ECNe,SAAA94D,GAAS3pP,EAAM,CAC5B,IAAI0wH,EAAS1wH,GAAQ,GAAIhf,EAAI0vI,EAAO,QAAQ,GAAG,EAC/C,OAAI1vI,GAAK,IAAM0vI,EAAS1wH,EAAK,MAAM,EAAGhf,CAAC,KAAO,UAASgf,EAAOA,EAAK,MAAMhf,EAAI,CAAC,GACvEmoE,IAAW,eAAeunE,CAAM,EAAI,CAAC,MAAOvnE,IAAWunE,CAAM,EAAG,MAAO1wH,CAAI,EAAIA,CACxF,CCHA,SAAS0iT,IAAe1iT,EAAM,CAC5B,OAAO,UAAW,CAChB,IAAIykE,EAAW,KAAK,cAChB+4E,EAAM,KAAK,aACf,OAAOA,IAAQilK,IAASh+O,EAAS,gBAAgB,eAAiBg+O,GAC5Dh+O,EAAS,cAAczkE,CAAI,EAC3BykE,EAAS,gBAAgB+4E,EAAKx9I,CAAI,CAC1C,CACF,CAEA,SAAS2iT,IAAaC,EAAU,CAC9B,OAAO,UAAW,CAChB,OAAO,KAAK,cAAc,gBAAgBA,EAAS,MAAOA,EAAS,KAAK,CAC1E,CACF,CAEe,SAAA5pR,IAASh5B,EAAM,CAC5B,IAAI4iT,EAAWj5D,GAAU3pP,CAAI,EAC7B,OAAQ4iT,EAAS,MACXD,IACAD,KAAgBE,CAAQ,CAChC,CCxBA,SAAS9rG,KAAO,CAAC,CAEF,SAAA77N,GAASA,EAAU,CAChC,OAAOA,GAAY,KAAO67N,IAAO,UAAW,CAC1C,OAAO,KAAK,cAAc77N,CAAQ,CACpC,CACF,CCHe,SAAA4nU,IAASC,EAAQ,CAC1B,OAAOA,GAAW,aAAYA,EAAS7nU,GAAS6nU,CAAM,GAE1D,QAASp8B,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,IAAI,MAAMlkU,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC3F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQkwL,EAAWD,EAAUlwS,CAAC,EAAI,IAAI,MAAM/zB,CAAC,EAAGywH,EAAM0zM,EAASjiU,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC9GuuH,EAAOujB,EAAM9xI,CAAC,KAAOiiU,EAAUH,EAAO,KAAKvzM,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,KACvE,aAAcvjB,IAAM0zM,EAAQ,SAAW1zM,EAAK,UAChDyzM,EAAShiU,CAAC,EAAIiiU,GAKpB,OAAO,IAAI9lH,GAAU4lH,EAAW,KAAK,QAAQ,CAC/C,CCVe,SAAS96R,IAAM3uC,EAAG,CAC/B,OAAOA,GAAK,KAAO,GAAK,MAAM,QAAQA,CAAC,EAAIA,EAAI,MAAM,KAAKA,CAAC,CAC7D,CCRA,SAASq2N,KAAQ,CACf,MAAO,EACT,CAEe,SAAAuzG,IAASjoU,EAAU,CAChC,OAAOA,GAAY,KAAO00N,IAAQ,UAAW,CAC3C,OAAO,KAAK,iBAAiB10N,CAAQ,CACvC,CACF,CCJA,SAASkoU,IAASL,EAAQ,CACxB,OAAO,UAAW,CAChB,OAAO76R,IAAM66R,EAAO,MAAM,KAAM,SAAS,CAAC,CAC5C,CACF,CAEe,SAAAM,IAASN,EAAQ,CAC1B,OAAOA,GAAW,WAAYA,EAASK,IAASL,CAAM,EACrDA,EAASI,IAAYJ,CAAM,EAEhC,QAASp8B,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,GAAIj5C,EAAU,GAAIj3P,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC/F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQvjB,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC9DuuH,EAAOujB,EAAM9xI,CAAC,KAChB+hU,EAAU,KAAKD,EAAO,KAAKvzM,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,CAAC,EACzDg3I,EAAQ,KAAKv6J,CAAI,GAKvB,OAAO,IAAI4tF,GAAU4lH,EAAWj5C,CAAO,CACzC,CCxBe,SAAA19Q,IAASnR,EAAU,CAChC,OAAO,UAAW,CAChB,OAAO,KAAK,QAAQA,CAAQ,CAC9B,CACF,CAEO,SAASooU,IAAapoU,EAAU,CACrC,OAAO,SAASs0H,EAAM,CACpB,OAAOA,EAAK,QAAQt0H,CAAQ,CAC9B,CACF,CCRA,IAAI45L,IAAO,MAAM,UAAU,KAE3B,SAASyuI,IAAU15T,EAAO,CACxB,OAAO,UAAW,CAChB,OAAOirL,IAAK,KAAK,KAAK,SAAUjrL,CAAK,CACvC,CACF,CAEA,SAAS25T,KAAa,CACpB,OAAO,KAAK,iBACd,CAEe,SAAAC,IAAS55T,EAAO,CAC7B,OAAO,KAAK,OAAOA,GAAS,KAAO25T,IAC7BD,IAAU,OAAO15T,GAAU,WAAaA,EAAQy5T,IAAaz5T,CAAK,CAAC,CAAC,CAC5E,CCfA,IAAIgrL,IAAS,MAAM,UAAU,OAE7B,SAAS9xL,KAAW,CAClB,OAAO,MAAM,KAAK,KAAK,QAAQ,CACjC,CAEA,SAAS2gU,IAAe75T,EAAO,CAC7B,OAAO,UAAW,CAChB,OAAOgrL,IAAO,KAAK,KAAK,SAAUhrL,CAAK,CACzC,CACF,CAEe,SAAA85T,IAAS95T,EAAO,CAC7B,OAAO,KAAK,UAAUA,GAAS,KAAO9G,IAChC2gU,IAAe,OAAO75T,GAAU,WAAaA,EAAQy5T,IAAaz5T,CAAK,CAAC,CAAC,CACjF,CCde,SAAA+5T,IAAS/5T,EAAO,CACzB,OAAOA,GAAU,aAAYA,EAAQwC,IAAQxC,CAAK,GAEtD,QAAS88R,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,IAAI,MAAMlkU,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC3F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQkwL,EAAWD,EAAUlwS,CAAC,EAAI,GAAI08F,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC3FuuH,EAAOujB,EAAM9xI,CAAC,IAAM4I,EAAM,KAAK2lH,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,GAC/DkwL,EAAS,KAAKzzM,CAAI,EAKxB,OAAO,IAAI4tF,GAAU4lH,EAAW,KAAK,QAAQ,CAC/C,CCfe,SAAAa,IAAS1rM,EAAQ,CAC9B,OAAO,IAAI,MAAMA,EAAO,MAAM,CAChC,CCCe,SAAA2rM,KAAW,CACxB,OAAO,IAAI1mH,GAAU,KAAK,QAAU,KAAK,QAAQ,IAAIymH,GAAM,EAAG,KAAK,QAAQ,CAC7E,CAEO,SAASE,GAAUp/R,EAAQq/R,EAAO,CACvC,KAAK,cAAgBr/R,EAAO,cAC5B,KAAK,aAAeA,EAAO,aAC3B,KAAK,MAAQ,KACb,KAAK,QAAUA,EACf,KAAK,SAAWq/R,CAClB,CAEAD,GAAU,UAAY,CACpB,YAAaA,GACb,YAAa,SAAS3+R,EAAO,CAAE,OAAO,KAAK,QAAQ,aAAaA,EAAO,KAAK,KAAK,CAAG,EACpF,aAAc,SAASA,EAAOnJ,EAAM,CAAE,OAAO,KAAK,QAAQ,aAAamJ,EAAOnJ,CAAI,CAAG,EACrF,cAAe,SAAS/gC,EAAU,CAAE,OAAO,KAAK,QAAQ,cAAcA,CAAQ,CAAG,EACjF,iBAAkB,SAASA,EAAU,CAAE,OAAO,KAAK,QAAQ,iBAAiBA,CAAQ,CAAG,CACzF,ECrBe,SAAA+oU,IAAS1qU,EAAG,CACzB,OAAO,UAAW,CAChB,OAAOA,CACT,CACF,CCAA,SAAS2qU,IAAUv/R,EAAQouG,EAAO+0E,EAAO3vF,EAAQ46I,EAAM1jQ,EAAM,CAS3D,QARIpO,EAAI,EACJuuH,EACAw6K,EAAcj3J,EAAM,OACpBoxL,EAAa90T,EAAK,OAKfpO,EAAIkjU,EAAY,EAAEljU,GACnBuuH,EAAOujB,EAAM9xI,CAAC,IAChBuuH,EAAK,SAAWngH,EAAKpO,CAAC,EACtBk3H,EAAOl3H,CAAC,EAAIuuH,GAEZs4F,EAAM7mN,CAAC,EAAI,IAAI8iU,GAAUp/R,EAAQt1B,EAAKpO,CAAC,CAAC,EAK5C,KAAOA,EAAI+oS,EAAa,EAAE/oS,GACpBuuH,EAAOujB,EAAM9xI,CAAC,KAChB8xQ,EAAK9xQ,CAAC,EAAIuuH,EAGhB,CAEA,SAAS6mE,IAAQ1xJ,EAAQouG,EAAO+0E,EAAO3vF,EAAQ46I,EAAM1jQ,EAAMnO,EAAK,CAC9D,IAAID,EACAuuH,EACA40M,EAAiB,IAAI,IACrBp6B,EAAcj3J,EAAM,OACpBoxL,EAAa90T,EAAK,OAClBg1T,EAAY,IAAI,MAAMr6B,CAAW,EACjCs6B,EAIJ,IAAKrjU,EAAI,EAAGA,EAAI+oS,EAAa,EAAE/oS,GACzBuuH,EAAOujB,EAAM9xI,CAAC,KAChBojU,EAAUpjU,CAAC,EAAIqjU,EAAWpjU,EAAI,KAAKsuH,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,EAAI,GAChEqxL,EAAe,IAAIE,CAAQ,EAC7BvxD,EAAK9xQ,CAAC,EAAIuuH,EAEV40M,EAAe,IAAIE,EAAU90M,CAAI,GAQvC,IAAKvuH,EAAI,EAAGA,EAAIkjU,EAAY,EAAEljU,EAC5BqjU,EAAWpjU,EAAI,KAAKyjC,EAAQt1B,EAAKpO,CAAC,EAAGA,EAAGoO,CAAI,EAAI,IAC5CmgH,EAAO40M,EAAe,IAAIE,CAAQ,IACpCnsM,EAAOl3H,CAAC,EAAIuuH,EACZA,EAAK,SAAWngH,EAAKpO,CAAC,EACtBmjU,EAAe,OAAOE,CAAQ,GAE9Bx8G,EAAM7mN,CAAC,EAAI,IAAI8iU,GAAUp/R,EAAQt1B,EAAKpO,CAAC,CAAC,EAK5C,IAAKA,EAAI,EAAGA,EAAI+oS,EAAa,EAAE/oS,GACxBuuH,EAAOujB,EAAM9xI,CAAC,IAAOmjU,EAAe,IAAIC,EAAUpjU,CAAC,CAAC,IAAMuuH,IAC7DujJ,EAAK9xQ,CAAC,EAAIuuH,EAGhB,CAEA,SAASw0M,IAAMx0M,EAAM,CACnB,OAAOA,EAAK,QACd,CAEe,SAAA+0M,IAAStqU,EAAOiH,EAAK,CAClC,GAAI,CAAC,UAAU,OAAQ,OAAO,MAAM,KAAK,KAAM8iU,GAAK,EAEpD,IAAI5tI,EAAOl1L,EAAMm1L,IAAU6tI,IACvBn6C,EAAU,KAAK,SACf4c,EAAS,KAAK,QAEd,OAAO1sS,GAAU,aAAYA,EAAQ2qL,IAAS3qL,CAAK,GAEvD,QAAS6E,EAAI6nS,EAAO,OAAQxuK,EAAS,IAAI,MAAMr5H,CAAC,EAAGgpN,EAAQ,IAAI,MAAMhpN,CAAC,EAAGi0Q,EAAO,IAAI,MAAMj0Q,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAAG,CAC/G,IAAI6R,EAASolP,EAAQj3P,CAAC,EAClBigH,EAAQ4zJ,EAAO7zQ,CAAC,EAChBk3Q,EAAcj3J,EAAM,OACpB1jI,EAAOm1T,IAAUvqU,EAAM,KAAK0qC,EAAQA,GAAUA,EAAO,SAAU7R,EAAGi3P,CAAO,CAAC,EAC1Eo6C,EAAa90T,EAAK,OAClBo1T,EAAa38G,EAAMh1L,CAAC,EAAI,IAAI,MAAMqxS,CAAU,EAC5CO,EAAcvsM,EAAOrlG,CAAC,EAAI,IAAI,MAAMqxS,CAAU,EAC9CQ,EAAY5xD,EAAKjgP,CAAC,EAAI,IAAI,MAAMk3Q,CAAW,EAE/C5zG,EAAKzxJ,EAAQouG,EAAO0xL,EAAYC,EAAaC,EAAWt1T,EAAMnO,CAAG,EAKjE,QAAS0jU,EAAK,EAAGC,EAAK,EAAGnhM,EAAUznG,EAAM2oS,EAAKT,EAAY,EAAES,EAC1D,GAAIlhM,EAAW+gM,EAAWG,CAAE,EAAG,CAE7B,IADIA,GAAMC,IAAIA,EAAKD,EAAK,GACjB,EAAE3oS,EAAOyoS,EAAYG,CAAE,IAAM,EAAEA,EAAKV,GAAW,CACtDzgM,EAAS,MAAQznG,GAAQ,IAC3B,CAEJ,CAEA,OAAAk8F,EAAS,IAAIilF,GAAUjlF,EAAQ4xJ,CAAO,EACtC5xJ,EAAO,OAAS2vF,EAChB3vF,EAAO,MAAQ46I,EACR56I,CACT,CAQA,SAASqsM,IAAUn1T,EAAM,CACvB,OAAO,OAAOA,GAAS,UAAY,WAAYA,EAC3CA,EACA,MAAM,KAAKA,CAAI,CACrB,CC5He,SAAAy1T,KAAW,CACxB,OAAO,IAAI1nH,GAAU,KAAK,OAAS,KAAK,QAAQ,IAAIymH,GAAM,EAAG,KAAK,QAAQ,CAC5E,CCLe,SAAAkB,IAASC,EAASC,EAAUC,EAAQ,CACjD,IAAIp9G,EAAQ,KAAK,MAAK,EAAI3vF,EAAS,KAAM46I,EAAO,KAAK,KAAI,EACzD,OAAI,OAAOiyD,GAAY,YACrBl9G,EAAQk9G,EAAQl9G,CAAK,EACjBA,IAAOA,EAAQA,EAAM,UAAS,IAElCA,EAAQA,EAAM,OAAOk9G,EAAU,EAAE,EAE/BC,GAAY,OACd9sM,EAAS8sM,EAAS9sM,CAAM,EACpBA,IAAQA,EAASA,EAAO,UAAS,IAEnC+sM,GAAU,KAAMnyD,EAAK,OAAM,EAASmyD,EAAOnyD,CAAI,EAC5CjrD,GAAS3vF,EAAS2vF,EAAM,MAAM3vF,CAAM,EAAE,MAAK,EAAKA,CACzD,CCZe,SAAAgtM,IAAStoU,EAAS,CAG/B,QAFI4hN,EAAY5hN,EAAQ,UAAYA,EAAQ,UAAS,EAAKA,EAEjDuoU,EAAU,KAAK,QAASC,EAAU5mH,EAAU,QAAS6mH,EAAKF,EAAQ,OAAQG,EAAKF,EAAQ,OAAQvmU,EAAI,KAAK,IAAIwmU,EAAIC,CAAE,EAAGC,EAAS,IAAI,MAAMF,CAAE,EAAGxyS,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EACpK,QAAS2yS,EAASL,EAAQtyS,CAAC,EAAG4yS,EAASL,EAAQvyS,CAAC,EAAG/zB,EAAI0mU,EAAO,OAAQ/hR,EAAQ8hR,EAAO1yS,CAAC,EAAI,IAAI,MAAM/zB,CAAC,EAAGywH,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GACxHuuH,EAAOi2M,EAAOxkU,CAAC,GAAKykU,EAAOzkU,CAAC,KAC9ByiD,EAAMziD,CAAC,EAAIuuH,GAKjB,KAAO18F,EAAIwyS,EAAI,EAAExyS,EACf0yS,EAAO1yS,CAAC,EAAIsyS,EAAQtyS,CAAC,EAGvB,OAAO,IAAIsqL,GAAUooH,EAAQ,KAAK,QAAQ,CAC5C,CClBe,SAAAG,KAAW,CAExB,QAASh/B,EAAS,KAAK,QAAS7zQ,EAAI,GAAIh0B,EAAI6nS,EAAO,OAAQ,EAAE7zQ,EAAIh0B,GAC/D,QAASi0I,EAAQ4zJ,EAAO7zQ,CAAC,EAAG,EAAIigH,EAAM,OAAS,EAAG92G,EAAO82G,EAAM,CAAC,EAAGvjB,EAAM,EAAE,GAAK,IAC1EA,EAAOujB,EAAM,CAAC,KACZ92G,GAAQuzF,EAAK,wBAAwBvzF,CAAI,EAAI,GAAGA,EAAK,WAAW,aAAauzF,EAAMvzF,CAAI,EAC3FA,EAAOuzF,GAKb,OAAO,IACT,CCVe,SAAAo2M,IAASxqG,EAAS,CAC1BA,IAASA,EAAUyqG,KAExB,SAASC,EAAYzoU,EAAGC,EAAG,CACzB,OAAOD,GAAKC,EAAI89N,EAAQ/9N,EAAE,SAAUC,EAAE,QAAQ,EAAI,CAACD,EAAI,CAACC,CAC1D,CAEA,QAASqpS,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQo/B,EAAa,IAAI,MAAMjnU,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAAG,CAC/F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQizL,EAAYD,EAAWjzS,CAAC,EAAI,IAAI,MAAM/zB,CAAC,EAAGywH,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GACxGuuH,EAAOujB,EAAM9xI,CAAC,KAChB+kU,EAAU/kU,CAAC,EAAIuuH,GAGnBw2M,EAAU,KAAKF,CAAW,CAC5B,CAEA,OAAO,IAAI1oH,GAAU2oH,EAAY,KAAK,QAAQ,EAAE,MAAK,CACvD,CAEA,SAASF,IAAUxoU,EAAGC,EAAG,CACvB,OAAOD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAI,GAC/C,CCvBe,SAAA2oU,KAAW,CACxB,IAAIlqU,EAAW,UAAU,CAAC,EAC1B,iBAAU,CAAC,EAAI,KACfA,EAAS,MAAM,KAAM,SAAS,EACvB,IACT,CCLe,SAAAmqU,KAAW,CACxB,OAAO,MAAM,KAAK,IAAI,CACxB,CCFe,SAAAC,KAAW,CAExB,QAASx/B,EAAS,KAAK,QAAS7zQ,EAAI,EAAGh0B,EAAI6nS,EAAO,OAAQ7zQ,EAAIh0B,EAAG,EAAEg0B,EACjE,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG,EAAI,EAAG/zB,EAAIg0I,EAAM,OAAQ,EAAIh0I,EAAG,EAAE,EAAG,CAC/D,IAAIywH,EAAOujB,EAAM,CAAC,EAClB,GAAIvjB,EAAM,OAAOA,CACnB,CAGF,OAAO,IACT,CCVe,SAAA42M,KAAW,CACxB,IAAIr2R,EAAO,EACX,UAAWy/E,KAAQ,KAAM,EAAEz/E,EAC3B,OAAOA,CACT,CCJe,SAAAs2R,KAAW,CACxB,MAAO,CAAC,KAAK,KAAI,CACnB,CCFe,SAAAC,IAASvqU,EAAU,CAEhC,QAAS4qS,EAAS,KAAK,QAAS7zQ,EAAI,EAAGh0B,EAAI6nS,EAAO,OAAQ7zQ,EAAIh0B,EAAG,EAAEg0B,EACjE,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG7xB,EAAI,EAAGlC,EAAIg0I,EAAM,OAAQvjB,EAAMvuH,EAAIlC,EAAG,EAAEkC,GAC9DuuH,EAAOujB,EAAM9xI,CAAC,IAAGlF,EAAS,KAAKyzH,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,EAIpE,OAAO,IACT,CCPA,SAASwzL,IAAWtmT,EAAM,CACxB,OAAO,UAAW,CAChB,KAAK,gBAAgBA,CAAI,CAC3B,CACF,CAEA,SAASumT,IAAa3D,EAAU,CAC9B,OAAO,UAAW,CAChB,KAAK,kBAAkBA,EAAS,MAAOA,EAAS,KAAK,CACvD,CACF,CAEA,SAAS4D,IAAaxmT,EAAMhmB,EAAO,CACjC,OAAO,UAAW,CAChB,KAAK,aAAagmB,EAAMhmB,CAAK,CAC/B,CACF,CAEA,SAASysU,IAAe7D,EAAU5oU,EAAO,CACvC,OAAO,UAAW,CAChB,KAAK,eAAe4oU,EAAS,MAAOA,EAAS,MAAO5oU,CAAK,CAC3D,CACF,CAEA,SAAS0sU,IAAa1mT,EAAMhmB,EAAO,CACjC,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EAC/BmF,GAAK,KAAM,KAAK,gBAAgB6gB,CAAI,EACnC,KAAK,aAAaA,EAAM7gB,CAAC,CAChC,CACF,CAEA,SAASwnU,IAAe/D,EAAU5oU,EAAO,CACvC,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EAC/BmF,GAAK,KAAM,KAAK,kBAAkByjU,EAAS,MAAOA,EAAS,KAAK,EAC/D,KAAK,eAAeA,EAAS,MAAOA,EAAS,MAAOzjU,CAAC,CAC5D,CACF,CAEe,SAAAynU,IAAS5mT,EAAMhmB,EAAO,CACnC,IAAI4oU,EAAWj5D,GAAU3pP,CAAI,EAE7B,GAAI,UAAU,OAAS,EAAG,CACxB,IAAIuvG,EAAO,KAAK,KAAI,EACpB,OAAOqzM,EAAS,MACVrzM,EAAK,eAAeqzM,EAAS,MAAOA,EAAS,KAAK,EAClDrzM,EAAK,aAAaqzM,CAAQ,CAClC,CAEA,OAAO,KAAK,MAAM5oU,GAAS,KACpB4oU,EAAS,MAAQ2D,IAAeD,IAAe,OAAOtsU,GAAU,WAChE4oU,EAAS,MAAQ+D,IAAiBD,IAClC9D,EAAS,MAAQ6D,IAAiBD,KAAgB5D,EAAU5oU,CAAK,CAAC,CAC3E,CCxDe,SAAA6sU,IAASt3M,EAAM,CAC5B,OAAQA,EAAK,eAAiBA,EAAK,cAAc,aACzCA,EAAK,UAAYA,GAClBA,EAAK,WACd,CCFA,SAASu3M,IAAY9mT,EAAM,CACzB,OAAO,UAAW,CAChB,KAAK,MAAM,eAAeA,CAAI,CAChC,CACF,CAEA,SAAS+mT,IAAc/mT,EAAMhmB,EAAO20M,EAAU,CAC5C,OAAO,UAAW,CAChB,KAAK,MAAM,YAAY3uL,EAAMhmB,EAAO20M,CAAQ,CAC9C,CACF,CAEA,SAASq4H,IAAchnT,EAAMhmB,EAAO20M,EAAU,CAC5C,OAAO,UAAW,CAChB,IAAIxvM,EAAInF,EAAM,MAAM,KAAM,SAAS,EAC/BmF,GAAK,KAAM,KAAK,MAAM,eAAe6gB,CAAI,EACxC,KAAK,MAAM,YAAYA,EAAM7gB,EAAGwvM,CAAQ,CAC/C,CACF,CAEe,SAAAs4H,IAASjnT,EAAMhmB,EAAO20M,EAAU,CAC7C,OAAO,UAAU,OAAS,EACpB,KAAK,MAAM30M,GAAS,KACd8sU,IAAc,OAAO9sU,GAAU,WAC/BgtU,IACAD,KAAe/mT,EAAMhmB,EAAO20M,GAAmB,EAAa,CAAC,EACnEu4H,GAAW,KAAK,KAAI,EAAIlnT,CAAI,CACpC,CAEO,SAASknT,GAAW33M,EAAMvvG,EAAM,CACrC,OAAOuvG,EAAK,MAAM,iBAAiBvvG,CAAI,GAChC6mT,IAAYt3M,CAAI,EAAE,iBAAiBA,EAAM,IAAI,EAAE,iBAAiBvvG,CAAI,CAC7E,CClCA,SAASmnT,IAAennT,EAAM,CAC5B,OAAO,UAAW,CAChB,OAAO,KAAKA,CAAI,CAClB,CACF,CAEA,SAASonT,IAAiBpnT,EAAMhmB,EAAO,CACrC,OAAO,UAAW,CAChB,KAAKgmB,CAAI,EAAIhmB,CACf,CACF,CAEA,SAASqtU,IAAiBrnT,EAAMhmB,EAAO,CACrC,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EAC/BmF,GAAK,KAAM,OAAO,KAAK6gB,CAAI,EAC1B,KAAKA,CAAI,EAAI7gB,CACpB,CACF,CAEe,SAAAmoU,IAAStnT,EAAMhmB,EAAO,CACnC,OAAO,UAAU,OAAS,EACpB,KAAK,MAAMA,GAAS,KAChBmtU,IAAiB,OAAOntU,GAAU,WAClCqtU,IACAD,KAAkBpnT,EAAMhmB,CAAK,CAAC,EAClC,KAAK,KAAI,EAAGgmB,CAAI,CACxB,CC3BA,SAASunT,IAAWr0L,EAAQ,CAC1B,OAAOA,EAAO,OAAO,MAAM,OAAO,CACpC,CAEA,SAAShB,GAAU3iB,EAAM,CACvB,OAAOA,EAAK,WAAa,IAAIi4M,IAAUj4M,CAAI,CAC7C,CAEA,SAASi4M,IAAUj4M,EAAM,CACvB,KAAK,MAAQA,EACb,KAAK,OAASg4M,IAAWh4M,EAAK,aAAa,OAAO,GAAK,EAAE,CAC3D,CAEAi4M,IAAU,UAAY,CACpB,IAAK,SAASxnT,EAAM,CAClB,IAAIhf,EAAI,KAAK,OAAO,QAAQgf,CAAI,EAC5Bhf,EAAI,IACN,KAAK,OAAO,KAAKgf,CAAI,EACrB,KAAK,MAAM,aAAa,QAAS,KAAK,OAAO,KAAK,GAAG,CAAC,EAE1D,EACA,OAAQ,SAASA,EAAM,CACrB,IAAIhf,EAAI,KAAK,OAAO,QAAQgf,CAAI,EAC5Bhf,GAAK,IACP,KAAK,OAAO,OAAOA,EAAG,CAAC,EACvB,KAAK,MAAM,aAAa,QAAS,KAAK,OAAO,KAAK,GAAG,CAAC,EAE1D,EACA,SAAU,SAASgf,EAAM,CACvB,OAAO,KAAK,OAAO,QAAQA,CAAI,GAAK,CACtC,CACF,EAEA,SAASynT,IAAWl4M,EAAMplD,EAAO,CAE/B,QADI+M,EAAOg7D,GAAU3iB,CAAI,EAAGvuH,EAAI,GAAIlC,EAAIqrE,EAAM,OACvC,EAAEnpE,EAAIlC,GAAGo4E,EAAK,IAAI/M,EAAMnpE,CAAC,CAAC,CACnC,CAEA,SAAS0mU,IAAcn4M,EAAMplD,EAAO,CAElC,QADI+M,EAAOg7D,GAAU3iB,CAAI,EAAGvuH,EAAI,GAAIlC,EAAIqrE,EAAM,OACvC,EAAEnpE,EAAIlC,GAAGo4E,EAAK,OAAO/M,EAAMnpE,CAAC,CAAC,CACtC,CAEA,SAAS2mU,IAAYx9P,EAAO,CAC1B,OAAO,UAAW,CAChBs9P,IAAW,KAAMt9P,CAAK,CACxB,CACF,CAEA,SAASy9P,IAAaz9P,EAAO,CAC3B,OAAO,UAAW,CAChBu9P,IAAc,KAAMv9P,CAAK,CAC3B,CACF,CAEA,SAAS09P,IAAgB19P,EAAOnwE,EAAO,CACrC,OAAO,UAAW,EACfA,EAAM,MAAM,KAAM,SAAS,EAAIytU,IAAaC,KAAe,KAAMv9P,CAAK,CACzE,CACF,CAEe,SAAA29P,IAAS9nT,EAAMhmB,EAAO,CACnC,IAAImwE,EAAQo9P,IAAWvnT,EAAO,EAAE,EAEhC,GAAI,UAAU,OAAS,EAAG,CAExB,QADIk3D,EAAOg7D,GAAU,KAAK,KAAI,CAAE,EAAG,EAAI,GAAIpzI,EAAIqrE,EAAM,OAC9C,EAAE,EAAIrrE,GAAG,GAAI,CAACo4E,EAAK,SAAS/M,EAAM,CAAC,CAAC,EAAG,MAAO,GACrD,MAAO,EACT,CAEA,OAAO,KAAK,MAAM,OAAOnwE,GAAU,WAC7B6tU,IAAkB7tU,EAClB2tU,IACAC,KAAcz9P,EAAOnwE,CAAK,CAAC,CACnC,CC1EA,SAAS+tU,KAAa,CACpB,KAAK,YAAc,EACrB,CAEA,SAASC,IAAahuU,EAAO,CAC3B,OAAO,UAAW,CAChB,KAAK,YAAcA,CACrB,CACF,CAEA,SAASiuU,IAAajuU,EAAO,CAC3B,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EACnC,KAAK,YAAcmF,GAAY,EACjC,CACF,CAEe,SAAA+oU,IAASluU,EAAO,CAC7B,OAAO,UAAU,OACX,KAAK,KAAKA,GAAS,KACf+tU,KAAc,OAAO/tU,GAAU,WAC/BiuU,IACAD,KAAchuU,CAAK,CAAC,EACxB,KAAK,KAAI,EAAG,WACpB,CCxBA,SAASmuU,KAAa,CACpB,KAAK,UAAY,EACnB,CAEA,SAASC,IAAapuU,EAAO,CAC3B,OAAO,UAAW,CAChB,KAAK,UAAYA,CACnB,CACF,CAEA,SAASquU,IAAaruU,EAAO,CAC3B,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EACnC,KAAK,UAAYmF,GAAY,EAC/B,CACF,CAEe,SAAAmpU,IAAStuU,EAAO,CAC7B,OAAO,UAAU,OACX,KAAK,KAAKA,GAAS,KACfmuU,KAAc,OAAOnuU,GAAU,WAC/BquU,IACAD,KAAcpuU,CAAK,CAAC,EACxB,KAAK,KAAI,EAAG,SACpB,CCxBA,SAASuuU,KAAQ,CACX,KAAK,aAAa,KAAK,WAAW,YAAY,IAAI,CACxD,CAEe,SAAAC,KAAW,CACxB,OAAO,KAAK,KAAKD,GAAK,CACxB,CCNA,SAASjtJ,KAAQ,CACX,KAAK,iBAAiB,KAAK,WAAW,aAAa,KAAM,KAAK,WAAW,UAAU,CACzF,CAEe,SAAAmtJ,KAAW,CACxB,OAAO,KAAK,KAAKntJ,GAAK,CACxB,CCJe,SAAAotJ,IAAS1oT,EAAM,CAC5B,IAAIg6K,EAAS,OAAOh6K,GAAS,WAAaA,EAAOg5B,IAAQh5B,CAAI,EAC7D,OAAO,KAAK,OAAO,UAAW,CAC5B,OAAO,KAAK,YAAYg6K,EAAO,MAAM,KAAM,SAAS,CAAC,CACvD,CAAC,CACH,CCJA,SAAS2uI,KAAe,CACtB,OAAO,IACT,CAEe,SAAAC,IAAS5oT,EAAMk2K,EAAQ,CACpC,IAAI8D,EAAS,OAAOh6K,GAAS,WAAaA,EAAOg5B,IAAQh5B,CAAI,EACzD8iT,EAAS5sI,GAAU,KAAOyyI,IAAe,OAAOzyI,GAAW,WAAaA,EAASj7L,GAASi7L,CAAM,EACpG,OAAO,KAAK,OAAO,UAAW,CAC5B,OAAO,KAAK,aAAa8D,EAAO,MAAM,KAAM,SAAS,EAAG8oI,EAAO,MAAM,KAAM,SAAS,GAAK,IAAI,CAC/F,CAAC,CACH,CCbA,SAASh7P,KAAS,CAChB,IAAIpjC,EAAS,KAAK,WACdA,GAAQA,EAAO,YAAY,IAAI,CACrC,CAEe,SAAAmkS,KAAW,CACxB,OAAO,KAAK,KAAK/gQ,GAAM,CACzB,CCPA,SAASghQ,KAAyB,CAChC,IAAIv0I,EAAQ,KAAK,UAAU,EAAK,EAAG7vJ,EAAS,KAAK,WACjD,OAAOA,EAASA,EAAO,aAAa6vJ,EAAO,KAAK,WAAW,EAAIA,CACjE,CAEA,SAASw0I,KAAsB,CAC7B,IAAIx0I,EAAQ,KAAK,UAAU,EAAI,EAAG7vJ,EAAS,KAAK,WAChD,OAAOA,EAASA,EAAO,aAAa6vJ,EAAO,KAAK,WAAW,EAAIA,CACjE,CAEe,SAAAy0I,IAAS7mS,EAAM,CAC5B,OAAO,KAAK,OAAOA,EAAO4mS,IAAsBD,GAAsB,CACxE,CCZe,SAAAG,IAASjvU,EAAO,CAC7B,OAAO,UAAU,OACX,KAAK,SAAS,WAAYA,CAAK,EAC/B,KAAK,KAAI,EAAG,QACpB,CCJA,SAASkvU,IAAgB3nU,EAAU,CACjC,OAAO,SAASg6B,EAAO,CACrBh6B,EAAS,KAAK,KAAMg6B,EAAO,KAAK,QAAQ,CAC1C,CACF,CAEA,SAAS8mS,IAAeC,EAAW,CACjC,OAAOA,EAAU,OAAO,MAAM,OAAO,EAAE,IAAI,SAASpjU,EAAG,CACrD,IAAI8gB,EAAO,GAAIhf,EAAI9B,EAAE,QAAQ,GAAG,EAChC,OAAI8B,GAAK,IAAGgf,EAAO9gB,EAAE,MAAM8B,EAAI,CAAC,EAAG9B,EAAIA,EAAE,MAAM,EAAG8B,CAAC,GAC5C,CAAC,KAAM9B,EAAG,KAAM8gB,CAAI,CAC7B,CAAC,CACH,CAEA,SAASmpT,IAAS5G,EAAU,CAC1B,OAAO,UAAW,CAChB,IAAI/pS,EAAK,KAAK,KACd,GAAKA,EACL,SAAS3F,EAAI,EAAG7xB,EAAI,GAAInC,EAAI25B,EAAG,OAAQ9zB,EAAGmuB,EAAIh0B,EAAG,EAAEg0B,EAC7CnuB,EAAI8zB,EAAG3F,CAAC,GAAI,CAAC0vS,EAAS,MAAQ79T,EAAE,OAAS69T,EAAS,OAAS79T,EAAE,OAAS69T,EAAS,KACjF,KAAK,oBAAoB79T,EAAE,KAAMA,EAAE,SAAUA,EAAE,OAAO,EAEtD8zB,EAAG,EAAEx3B,CAAC,EAAI0D,EAGV,EAAE1D,EAAGw3B,EAAG,OAASx3B,EAChB,OAAO,KAAK,KACnB,CACF,CAEA,SAASooU,IAAM7G,EAAUvoU,EAAO+L,EAAS,CACvC,OAAO,UAAW,CAChB,IAAIyyB,EAAK,KAAK,KAAM9zB,EAAGnD,EAAW2nU,IAAgBlvU,CAAK,EACvD,GAAIw+B,GAAI,QAAS3F,EAAI,EAAGh0B,EAAI25B,EAAG,OAAQ3F,EAAIh0B,EAAG,EAAEg0B,EAC9C,IAAKnuB,EAAI8zB,EAAG3F,CAAC,GAAG,OAAS0vS,EAAS,MAAQ79T,EAAE,OAAS69T,EAAS,KAAM,CAClE,KAAK,oBAAoB79T,EAAE,KAAMA,EAAE,SAAUA,EAAE,OAAO,EACtD,KAAK,iBAAiBA,EAAE,KAAMA,EAAE,SAAWnD,EAAUmD,EAAE,QAAUqB,CAAO,EACxErB,EAAE,MAAQ1K,EACV,MACF,EAEF,KAAK,iBAAiBuoU,EAAS,KAAMhhU,EAAUwE,CAAO,EACtDrB,EAAI,CAAC,KAAM69T,EAAS,KAAM,KAAMA,EAAS,KAAM,MAAOvoU,EAAO,SAAUuH,EAAU,QAASwE,CAAO,EAC5FyyB,EACAA,EAAG,KAAK9zB,CAAC,EADL,KAAK,KAAO,CAACA,CAAC,CAEzB,CACF,CAEe,SAAA2kU,IAAS9G,EAAUvoU,EAAO+L,EAAS,CAChD,IAAIu8T,EAAYD,IAAeE,EAAW,EAAE,EAAG,EAAGzjU,EAAIwjU,EAAU,OAAQpjU,EAExE,GAAI,UAAU,OAAS,EAAG,CACxB,IAAIs5B,EAAK,KAAK,KAAI,EAAG,KACrB,GAAIA,GAAI,QAAS3F,EAAI,EAAGh0B,EAAI25B,EAAG,OAAQ9zB,EAAGmuB,EAAIh0B,EAAG,EAAEg0B,EACjD,IAAK,EAAI,EAAGnuB,EAAI8zB,EAAG3F,CAAC,EAAG,EAAI/zB,EAAG,EAAE,EAC9B,IAAKI,EAAIojU,EAAU,CAAC,GAAG,OAAS59T,EAAE,MAAQxF,EAAE,OAASwF,EAAE,KACrD,OAAOA,EAAE,MAIf,MACF,CAGA,IADA8zB,EAAKx+B,EAAQovU,IAAQD,IAChB,EAAI,EAAG,EAAIrqU,EAAG,EAAE,EAAG,KAAK,KAAK05B,EAAG8pS,EAAU,CAAC,EAAGtoU,EAAO+L,CAAO,CAAC,EAClE,OAAO,IACT,CChEA,SAAS4sN,IAAcpjG,EAAMxzG,EAAMjS,EAAQ,CACzC,IAAIi0O,EAAS8oF,IAAYt3M,CAAI,EACzBh0F,EAAQwiN,EAAO,YAEf,OAAOxiN,GAAU,WACnBA,EAAQ,IAAIA,EAAMxf,EAAMjS,CAAM,GAE9ByxB,EAAQwiN,EAAO,SAAS,YAAY,OAAO,EACvCj0O,GAAQyxB,EAAM,UAAUxf,EAAMjS,EAAO,QAASA,EAAO,UAAU,EAAGyxB,EAAM,OAASzxB,EAAO,QACvFyxB,EAAM,UAAUxf,EAAM,GAAO,EAAK,GAGzCwzG,EAAK,cAAch0F,CAAK,CAC1B,CAEA,SAAS+tS,IAAiBvtT,EAAMjS,EAAQ,CACtC,OAAO,UAAW,CAChB,OAAO6oN,IAAc,KAAM52M,EAAMjS,CAAM,CACzC,CACF,CAEA,SAASy/T,IAAiBxtT,EAAMjS,EAAQ,CACtC,OAAO,UAAW,CAChB,OAAO6oN,IAAc,KAAM52M,EAAMjS,EAAO,MAAM,KAAM,SAAS,CAAC,CAChE,CACF,CAEe,SAAA0/T,IAASztT,EAAMjS,EAAQ,CACpC,OAAO,KAAK,MAAM,OAAOA,GAAW,WAC9By/T,IACAD,KAAkBvtT,EAAMjS,CAAM,CAAC,CACvC,CCjCe,SAAA2/T,KAAY,CACzB,QAAS/iC,EAAS,KAAK,QAAS7zQ,EAAI,EAAGh0B,EAAI6nS,EAAO,OAAQ7zQ,EAAIh0B,EAAG,EAAEg0B,EACjE,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG,EAAI,EAAG/zB,EAAIg0I,EAAM,OAAQvjB,EAAM,EAAIzwH,EAAG,EAAE,GAC9DywH,EAAOujB,EAAM,CAAC,KAAG,MAAMvjB,EAGjC,CC6BO,IAAI+H,IAAO,CAAC,IAAI,EAEhB,SAAS6lF,GAAUupF,EAAQ5c,EAAS,CACzC,KAAK,QAAU4c,EACf,KAAK,SAAW5c,CAClB,CAEA,SAAStrE,IAAY,CACnB,OAAO,IAAIrB,GAAU,CAAC,CAAC,SAAS,eAAe,CAAC,EAAG7lF,GAAI,CACzD,CAEA,SAASoyM,KAAsB,CAC7B,OAAO,IACT,CAEAvsH,GAAU,UAAYqB,GAAU,UAAY,CAC1C,YAAarB,GACb,OAAQ0lH,IACR,UAAWO,IACX,YAAaI,IACb,eAAgBE,IAChB,OAAQC,IACR,KAAMW,IACN,MAAOT,IACP,KAAMgB,IACN,KAAMC,IACN,MAAOI,IACP,UAAWwE,IACX,MAAOhE,IACP,KAAMC,IACN,KAAMK,IACN,MAAOC,IACP,KAAMC,IACN,KAAMC,IACN,MAAOC,IACP,KAAMC,IACN,KAAMO,IACN,MAAOK,IACP,SAAUK,IACV,QAASQ,IACT,KAAMI,IACN,KAAMI,IACN,MAAOE,IACP,MAAOC,IACP,OAAQC,IACR,OAAQE,IACR,OAAQC,IACR,MAAOG,IACP,MAAOC,IACP,GAAII,IACJ,SAAUG,IACV,CAAC,OAAO,QAAQ,EAAGC,GACrB,ECrFe,SAAA3G,GAAS7nU,EAAU,CAChC,OAAO,OAAOA,GAAa,SACrB,IAAIkiN,GAAU,CAAC,CAAC,SAAS,cAAcliN,CAAQ,CAAC,CAAC,EAAG,CAAC,SAAS,eAAe,CAAC,EAC9E,IAAIkiN,GAAU,CAAC,CAACliN,CAAQ,CAAC,EAAGq8H,GAAI,CACxC,CCNe,SAAAqyM,GAASC,EAAa/1K,EAASnhG,EAAW,CACvDk3Q,EAAY,UAAY/1K,EAAQ,UAAYnhG,EAC5CA,EAAU,YAAck3Q,CAC1B,CAEO,SAASrkE,IAAO7gO,EAAQ+2O,EAAY,CACzC,IAAI/oN,EAAY,OAAO,OAAOhuB,EAAO,SAAS,EAC9C,QAASzjC,KAAOw6Q,EAAY/oN,EAAUzxD,CAAG,EAAIw6Q,EAAWx6Q,CAAG,EAC3D,OAAOyxD,CACT,CCPO,SAASmiQ,IAAQ,CAAC,CAElB,IAAIgV,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,IAAQ,qBACRC,IAAe,IAAI,OAAO,UAAUJ,EAAG,IAAIA,EAAG,IAAIA,EAAG,MAAM,EAC3DK,IAAe,IAAI,OAAO,UAAUH,EAAG,IAAIA,EAAG,IAAIA,EAAG,MAAM,EAC3DI,IAAgB,IAAI,OAAO,WAAWN,EAAG,IAAIA,EAAG,IAAIA,EAAG,IAAIC,EAAG,MAAM,EACpEM,IAAgB,IAAI,OAAO,WAAWL,EAAG,IAAIA,EAAG,IAAIA,EAAG,IAAID,EAAG,MAAM,EACpEO,IAAe,IAAI,OAAO,UAAUP,EAAG,IAAIC,EAAG,IAAIA,EAAG,MAAM,EAC3DO,IAAgB,IAAI,OAAO,WAAWR,EAAG,IAAIC,EAAG,IAAIA,EAAG,IAAID,EAAG,MAAM,EAEpES,IAAQ,CACV,UAAW,SACX,aAAc,SACd,KAAM,MACN,WAAY,QACZ,MAAO,SACP,MAAO,SACP,OAAQ,SACR,MAAO,EACP,eAAgB,SAChB,KAAM,IACN,WAAY,QACZ,MAAO,SACP,UAAW,SACX,UAAW,QACX,WAAY,QACZ,UAAW,SACX,MAAO,SACP,eAAgB,QAChB,SAAU,SACV,QAAS,SACT,KAAM,MACN,SAAU,IACV,SAAU,MACV,cAAe,SACf,SAAU,SACV,UAAW,MACX,SAAU,SACV,UAAW,SACX,YAAa,QACb,eAAgB,QAChB,WAAY,SACZ,WAAY,SACZ,QAAS,QACT,WAAY,SACZ,aAAc,QACd,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,MACf,WAAY,QACZ,SAAU,SACV,YAAa,MACb,QAAS,QACT,QAAS,QACT,WAAY,QACZ,UAAW,SACX,YAAa,SACb,YAAa,QACb,QAAS,SACT,UAAW,SACX,WAAY,SACZ,KAAM,SACN,UAAW,SACX,KAAM,QACN,MAAO,MACP,YAAa,SACb,KAAM,QACN,SAAU,SACV,QAAS,SACT,UAAW,SACX,OAAQ,QACR,MAAO,SACP,MAAO,SACP,SAAU,SACV,cAAe,SACf,UAAW,QACX,aAAc,SACd,UAAW,SACX,WAAY,SACZ,UAAW,SACX,qBAAsB,SACtB,UAAW,SACX,WAAY,QACZ,UAAW,SACX,UAAW,SACX,YAAa,SACb,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,eAAgB,QAChB,eAAgB,SAChB,YAAa,SACb,KAAM,MACN,UAAW,QACX,MAAO,SACP,QAAS,SACT,OAAQ,QACR,iBAAkB,QAClB,WAAY,IACZ,aAAc,SACd,aAAc,QACd,eAAgB,QAChB,gBAAiB,QACjB,kBAAmB,MACnB,gBAAiB,QACjB,gBAAiB,SACjB,aAAc,QACd,UAAW,SACX,UAAW,SACX,SAAU,SACV,YAAa,SACb,KAAM,IACN,QAAS,SACT,MAAO,QACP,UAAW,QACX,OAAQ,SACR,UAAW,SACX,OAAQ,SACR,cAAe,SACf,UAAW,SACX,cAAe,SACf,cAAe,SACf,WAAY,SACZ,UAAW,SACX,KAAM,SACN,KAAM,SACN,KAAM,SACN,WAAY,SACZ,OAAQ,QACR,cAAe,QACf,IAAK,SACL,UAAW,SACX,UAAW,QACX,YAAa,QACb,OAAQ,SACR,WAAY,SACZ,SAAU,QACV,SAAU,SACV,OAAQ,SACR,OAAQ,SACR,QAAS,QACT,UAAW,QACX,UAAW,QACX,UAAW,QACX,KAAM,SACN,YAAa,MACb,UAAW,QACX,IAAK,SACL,KAAM,MACN,QAAS,SACT,OAAQ,SACR,UAAW,QACX,OAAQ,SACR,MAAO,SACP,MAAO,SACP,WAAY,SACZ,OAAQ,SACR,YAAa,QACf,EAEAd,GAAO9U,GAAOnwD,GAAO,CACnB,KAAKmvD,EAAU,CACb,OAAO,OAAO,OAAO,IAAI,KAAK,YAAa,KAAMA,CAAQ,CAC3D,EACA,aAAc,CACZ,OAAO,KAAK,IAAG,EAAG,YAAW,CAC/B,EACA,IAAK6W,IACL,UAAWA,IACX,WAAYC,IACZ,UAAWC,IACX,UAAWC,IACX,SAAUA,GACZ,CAAC,EAED,SAASH,KAAkB,CACzB,OAAO,KAAK,IAAG,EAAG,UAAS,CAC7B,CAEA,SAASC,KAAmB,CAC1B,OAAO,KAAK,IAAG,EAAG,WAAU,CAC9B,CAEA,SAASC,KAAkB,CACzB,OAAOE,IAAW,IAAI,EAAE,UAAS,CACnC,CAEA,SAASD,KAAkB,CACzB,OAAO,KAAK,IAAG,EAAG,UAAS,CAC7B,CAEe,SAASnmE,GAAMwuD,EAAQ,CACpC,IAAIr0T,EAAGoxB,EACP,OAAAijS,GAAUA,EAAS,IAAI,KAAI,EAAG,YAAW,GACjCr0T,EAAIqrU,IAAM,KAAKhX,CAAM,IAAMjjS,EAAIpxB,EAAE,CAAC,EAAE,OAAQA,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAGoxB,IAAM,EAAI86S,IAAKlsU,CAAC,EACtFoxB,IAAM,EAAI,IAAI+6S,GAAKnsU,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,EAAI,KAASA,EAAI,KAAQ,EAAMA,EAAI,GAAM,CAAC,EAChHoxB,IAAM,EAAI6kS,GAAKj2T,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAOA,EAAI,KAAQ,GAAI,EAC/EoxB,IAAM,EAAI6kS,GAAMj2T,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,EAAI,MAAUA,EAAI,KAAQ,EAAMA,EAAI,IAAQ,GAAI,EACtJ,OACCA,EAAIsrU,IAAa,KAAKjX,CAAM,GAAK,IAAI8X,GAAInsU,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAG,CAAC,GAC5DA,EAAIurU,IAAa,KAAKlX,CAAM,GAAK,IAAI8X,GAAInsU,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAK,CAAC,GAChGA,EAAIwrU,IAAc,KAAKnX,CAAM,GAAK4B,GAAKj2T,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,GAC7DA,EAAIyrU,IAAc,KAAKpX,CAAM,GAAK4B,GAAKj2T,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,CAAC,GACjGA,EAAI0rU,IAAa,KAAKrX,CAAM,GAAK+X,IAAKpsU,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAK,CAAC,GACrEA,EAAI2rU,IAAc,KAAKtX,CAAM,GAAK+X,IAAKpsU,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,CAAC,EAC1E4rU,IAAM,eAAevX,CAAM,EAAI6X,IAAKN,IAAMvX,CAAM,CAAC,EACjDA,IAAW,cAAgB,IAAI8X,GAAI,IAAK,IAAK,IAAK,CAAC,EACnD,IACR,CAEA,SAASD,IAAKjsU,EAAG,CACf,OAAO,IAAIksU,GAAIlsU,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAMA,EAAI,IAAM,CAAC,CAC3D,CAEA,SAASg2T,GAAK71T,EAAGP,EAAGrB,EAAGD,EAAG,CACxB,OAAIA,GAAK,IAAG6B,EAAIP,EAAIrB,EAAI,KACjB,IAAI2tU,GAAI/rU,EAAGP,EAAGrB,EAAGD,CAAC,CAC3B,CAEO,SAAS8tU,IAAWxmU,EAAG,CAE5B,OADMA,aAAamwT,KAAQnwT,EAAIggQ,GAAMhgQ,CAAC,GACjCA,GACLA,EAAIA,EAAE,IAAG,EACF,IAAIsmU,GAAItmU,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,OAAO,GAFxB,IAAIsmU,EAGrB,CAEO,SAASG,GAAIlsU,EAAGP,EAAGrB,EAAG+tU,EAAS,CACpC,OAAO,UAAU,SAAW,EAAIF,IAAWjsU,CAAC,EAAI,IAAI+rU,GAAI/rU,EAAGP,EAAGrB,EAAG+tU,GAAkB,CAAW,CAChG,CAEO,SAASJ,GAAI/rU,EAAGP,EAAGrB,EAAG+tU,EAAS,CACpC,KAAK,EAAI,CAACnsU,EACV,KAAK,EAAI,CAACP,EACV,KAAK,EAAI,CAACrB,EACV,KAAK,QAAU,CAAC+tU,CAClB,CAEAzB,GAAOqB,GAAKG,GAAK5lE,IAAOsvD,GAAO,CAC7B,SAASj2T,EAAG,CACV,OAAAA,EAAIA,GAAK,KAAOkrU,GAAW,KAAK,IAAIA,GAAUlrU,CAAC,EACxC,IAAIosU,GAAI,KAAK,EAAIpsU,EAAG,KAAK,EAAIA,EAAG,KAAK,EAAIA,EAAG,KAAK,OAAO,CACjE,EACA,OAAOA,EAAG,CACR,OAAAA,EAAIA,GAAK,KAAOirU,GAAS,KAAK,IAAIA,GAAQjrU,CAAC,EACpC,IAAIosU,GAAI,KAAK,EAAIpsU,EAAG,KAAK,EAAIA,EAAG,KAAK,EAAIA,EAAG,KAAK,OAAO,CACjE,EACA,KAAM,CACJ,OAAO,IACT,EACA,OAAQ,CACN,OAAO,IAAIosU,GAAIK,GAAO,KAAK,CAAC,EAAGA,GAAO,KAAK,CAAC,EAAGA,GAAO,KAAK,CAAC,EAAGC,GAAO,KAAK,OAAO,CAAC,CACrF,EACA,aAAc,CACZ,MAAQ,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,GAAK,KAAK,SAAW,KAAK,SAAW,CAC/C,EACA,IAAKC,IACL,UAAWA,IACX,WAAYC,IACZ,UAAWC,IACX,SAAUA,GACZ,CAAC,CAAC,EAEF,SAASF,KAAgB,CACvB,MAAO,IAAI/X,GAAI,KAAK,CAAC,CAAC,GAAGA,GAAI,KAAK,CAAC,CAAC,GAAGA,GAAI,KAAK,CAAC,CAAC,EACpD,CAEA,SAASgY,KAAiB,CACxB,MAAO,IAAIhY,GAAI,KAAK,CAAC,CAAC,GAAGA,GAAI,KAAK,CAAC,CAAC,GAAGA,GAAI,KAAK,CAAC,CAAC,GAAGA,IAAK,MAAM,KAAK,OAAO,EAAI,EAAI,KAAK,SAAW,GAAG,CAAC,EAC1G,CAEA,SAASiY,KAAgB,CACvB,MAAMruU,EAAIkuU,GAAO,KAAK,OAAO,EAC7B,MAAO,GAAGluU,IAAM,EAAI,OAAS,OAAO,GAAGiuU,GAAO,KAAK,CAAC,CAAC,KAAKA,GAAO,KAAK,CAAC,CAAC,KAAKA,GAAO,KAAK,CAAC,CAAC,GAAGjuU,IAAM,EAAI,IAAM,KAAKA,CAAC,GAAG,EACzH,CAEA,SAASkuU,GAAOF,EAAS,CACvB,OAAO,MAAMA,CAAO,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,CAAO,CAAC,CAC9D,CAEA,SAASC,GAAOrxU,EAAO,CACrB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAMA,CAAK,GAAK,CAAC,CAAC,CAC1D,CAEA,SAASw5T,GAAIx5T,EAAO,CAClB,OAAAA,EAAQqxU,GAAOrxU,CAAK,GACZA,EAAQ,GAAK,IAAM,IAAMA,EAAM,SAAS,EAAE,CACpD,CAEA,SAASixU,IAAKtsU,EAAG6M,EAAGykB,EAAG7yB,EAAG,CACxB,OAAIA,GAAK,EAAGuB,EAAI6M,EAAIykB,EAAI,IACfA,GAAK,GAAKA,GAAK,EAAGtxB,EAAI6M,EAAI,IAC1BA,GAAK,IAAG7M,EAAI,KACd,IAAI+sU,GAAI/sU,EAAG6M,EAAGykB,EAAG7yB,CAAC,CAC3B,CAEO,SAAS0tU,IAAWpmU,EAAG,CAC5B,GAAIA,aAAagnU,GAAK,OAAO,IAAIA,GAAIhnU,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,OAAO,EAE7D,GADMA,aAAamwT,KAAQnwT,EAAIggQ,GAAMhgQ,CAAC,GAClC,CAACA,EAAG,OAAO,IAAIgnU,GACnB,GAAIhnU,aAAagnU,GAAK,OAAOhnU,EAC7BA,EAAIA,EAAE,IAAG,EACT,IAAIzF,EAAIyF,EAAE,EAAI,IACVhG,EAAIgG,EAAE,EAAI,IACVrH,EAAIqH,EAAE,EAAI,IACVqhH,EAAM,KAAK,IAAI9mH,EAAGP,EAAGrB,CAAC,EACtB+hD,EAAM,KAAK,IAAIngD,EAAGP,EAAGrB,CAAC,EACtBsB,EAAI,IACJ6M,EAAI4zC,EAAM2mE,EACV,GAAK3mE,EAAM2mE,GAAO,EACtB,OAAIv6G,GACEvM,IAAMmgD,EAAKzgD,GAAKD,EAAIrB,GAAKmO,GAAK9M,EAAIrB,GAAK,EAClCqB,IAAM0gD,EAAKzgD,GAAKtB,EAAI4B,GAAKuM,EAAI,EACjC7M,GAAKM,EAAIP,GAAK8M,EAAI,EACvBA,GAAK,EAAI,GAAM4zC,EAAM2mE,EAAM,EAAI3mE,EAAM2mE,EACrCpnH,GAAK,IAEL6M,EAAI,EAAI,GAAK,EAAI,EAAI,EAAI7M,EAEpB,IAAI+sU,GAAI/sU,EAAG6M,EAAG,EAAG9G,EAAE,OAAO,CACnC,CAEO,SAASinU,IAAIhtU,EAAG6M,EAAGykB,EAAGm7S,EAAS,CACpC,OAAO,UAAU,SAAW,EAAIN,IAAWnsU,CAAC,EAAI,IAAI+sU,GAAI/sU,EAAG6M,EAAGykB,EAAGm7S,GAAkB,CAAW,CAChG,CAEA,SAASM,GAAI/sU,EAAG6M,EAAGykB,EAAGm7S,EAAS,CAC7B,KAAK,EAAI,CAACzsU,EACV,KAAK,EAAI,CAAC6M,EACV,KAAK,EAAI,CAACykB,EACV,KAAK,QAAU,CAACm7S,CAClB,CAEAzB,GAAO+B,GAAKC,IAAKpmE,IAAOsvD,GAAO,CAC7B,SAASj2T,EAAG,CACV,OAAAA,EAAIA,GAAK,KAAOkrU,GAAW,KAAK,IAAIA,GAAUlrU,CAAC,EACxC,IAAI8sU,GAAI,KAAK,EAAG,KAAK,EAAG,KAAK,EAAI9sU,EAAG,KAAK,OAAO,CACzD,EACA,OAAOA,EAAG,CACR,OAAAA,EAAIA,GAAK,KAAOirU,GAAS,KAAK,IAAIA,GAAQjrU,CAAC,EACpC,IAAI8sU,GAAI,KAAK,EAAG,KAAK,EAAG,KAAK,EAAI9sU,EAAG,KAAK,OAAO,CACzD,EACA,KAAM,CACJ,IAAID,EAAI,KAAK,EAAI,KAAO,KAAK,EAAI,GAAK,IAClC6M,EAAI,MAAM7M,CAAC,GAAK,MAAM,KAAK,CAAC,EAAI,EAAI,KAAK,EACzCsxB,EAAI,KAAK,EACT27S,EAAK37S,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKzkB,EACjC85T,EAAK,EAAIr1S,EAAI27S,EACjB,OAAO,IAAIZ,GACTa,GAAQltU,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK2mU,EAAIsG,CAAE,EAC5CC,GAAQltU,EAAG2mU,EAAIsG,CAAE,EACjBC,GAAQltU,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK2mU,EAAIsG,CAAE,EAC3C,KAAK,OACX,CACE,EACA,OAAQ,CACN,OAAO,IAAIF,GAAII,IAAO,KAAK,CAAC,EAAGC,GAAO,KAAK,CAAC,EAAGA,GAAO,KAAK,CAAC,EAAGT,GAAO,KAAK,OAAO,CAAC,CACrF,EACA,aAAc,CACZ,OAAQ,GAAK,KAAK,GAAK,KAAK,GAAK,GAAK,MAAM,KAAK,CAAC,IAC1C,GAAK,KAAK,GAAK,KAAK,GAAK,GACzB,GAAK,KAAK,SAAW,KAAK,SAAW,CAC/C,EACA,WAAY,CACV,MAAMluU,EAAIkuU,GAAO,KAAK,OAAO,EAC7B,MAAO,GAAGluU,IAAM,EAAI,OAAS,OAAO,GAAG0uU,IAAO,KAAK,CAAC,CAAC,KAAKC,GAAO,KAAK,CAAC,EAAI,GAAG,MAAMA,GAAO,KAAK,CAAC,EAAI,GAAG,IAAI3uU,IAAM,EAAI,IAAM,KAAKA,CAAC,GAAG,EACvI,CACF,CAAC,CAAC,EAEF,SAAS0uU,IAAO9xU,EAAO,CACrB,OAAAA,GAASA,GAAS,GAAK,IAChBA,EAAQ,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAAS+xU,GAAO/xU,EAAO,CACrB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,GAAS,CAAC,CAAC,CAC5C,CAGA,SAAS6xU,GAAQltU,EAAG2mU,EAAIsG,EAAI,CAC1B,OAAQjtU,EAAI,GAAK2mU,GAAMsG,EAAKtG,GAAM3mU,EAAI,GAChCA,EAAI,IAAMitU,EACVjtU,EAAI,IAAM2mU,GAAMsG,EAAKtG,IAAO,IAAM3mU,GAAK,GACvC2mU,GAAM,GACd,CC3YA,MAAA0G,GAAe1yU,GAAK,IAAMA,ECE1B,SAAS2yU,IAAO7uU,EAAGmB,EAAG,CACpB,OAAO,SAASW,EAAG,CACjB,OAAO9B,EAAI8B,EAAIX,CACjB,CACF,CAEA,SAAS2tU,IAAY9uU,EAAGC,EAAG9D,EAAG,CAC5B,OAAO6D,EAAI,KAAK,IAAIA,EAAG7D,CAAC,EAAG8D,EAAI,KAAK,IAAIA,EAAG9D,CAAC,EAAI6D,EAAG7D,EAAI,EAAIA,EAAG,SAAS2F,EAAG,CACxE,OAAO,KAAK,IAAI9B,EAAI8B,EAAI7B,EAAG9D,CAAC,CAC9B,CACF,CAEO,SAAS86T,IAAIj3T,EAAGC,EAAG,CACxB,IAAIkB,EAAIlB,EAAID,EACZ,OAAOmB,EAAI0tU,IAAO7uU,EAAGmB,EAAI,KAAOA,EAAI,KAAOA,EAAI,IAAM,KAAK,MAAMA,EAAI,GAAG,EAAIA,CAAC,EAAIomL,GAAS,MAAMvnL,CAAC,EAAIC,EAAID,CAAC,CAC3G,CAEO,SAAS+uU,IAAM5yU,EAAG,CACvB,OAAQA,EAAI,CAACA,IAAO,EAAI6yU,IAAU,SAAShvU,EAAGC,EAAG,CAC/C,OAAOA,EAAID,EAAI8uU,IAAY9uU,EAAGC,EAAG9D,CAAC,EAAIorL,GAAS,MAAMvnL,CAAC,EAAIC,EAAID,CAAC,CACjE,CACF,CAEe,SAASgvU,IAAQhvU,EAAGC,EAAG,CACpC,IAAIkB,EAAIlB,EAAID,EACZ,OAAOmB,EAAI0tU,IAAO7uU,EAAGmB,CAAC,EAAIomL,GAAS,MAAMvnL,CAAC,EAAIC,EAAID,CAAC,CACrD,CCvBA,MAAAivU,KAAgB,SAASC,EAAS/yU,EAAG,CACnC,IAAImrQ,EAAQynE,IAAM5yU,CAAC,EAEnB,SAAS4xU,EAAI1pP,EAAO11E,EAAK,CACvB,IAAI9M,EAAIylQ,GAAOjjL,EAAQ8qP,GAAS9qP,CAAK,GAAG,GAAI11E,EAAMwgU,GAASxgU,CAAG,GAAG,CAAC,EAC9DrN,EAAIgmQ,EAAMjjL,EAAM,EAAG11E,EAAI,CAAC,EACxB1O,EAAIqnQ,EAAMjjL,EAAM,EAAG11E,EAAI,CAAC,EACxBq/T,EAAUgB,IAAQ3qP,EAAM,QAAS11E,EAAI,OAAO,EAChD,OAAO,SAAS7M,EAAG,CACjB,OAAAuiF,EAAM,EAAIxiF,EAAEC,CAAC,EACbuiF,EAAM,EAAI/iF,EAAEQ,CAAC,EACbuiF,EAAM,EAAIpkF,EAAE6B,CAAC,EACbuiF,EAAM,QAAU2pP,EAAQlsU,CAAC,EAClBuiF,EAAQ,EACjB,CACF,CAEA0pP,SAAI,MAAQmB,EAELnB,CACT,GAAG,CAAC,ECzBW,SAAAqB,GAASpvU,EAAGC,EAAG,CAC5B,OAAOD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG,SAAS6B,EAAG,CACjC,OAAO9B,GAAK,EAAI8B,GAAK7B,EAAI6B,CAC3B,CACF,CCFA,IAAIutU,GAAM,8CACNC,GAAM,IAAI,OAAOD,GAAI,OAAQ,GAAG,EAEpC,SAASE,IAAKtvU,EAAG,CACf,OAAO,UAAW,CAChB,OAAOA,CACT,CACF,CAEA,SAAS6sM,IAAI7sM,EAAG,CACd,OAAO,SAAS6B,EAAG,CACjB,OAAO7B,EAAE6B,CAAC,EAAI,EAChB,CACF,CAEe,SAAA0tU,IAASxvU,EAAGC,EAAG,CAC5B,IAAI6nG,EAAKunO,GAAI,UAAYC,GAAI,UAAY,EACrCG,EACAC,EACAnrO,EACA3gG,EAAI,GACJwK,EAAI,GACJxM,EAAI,GAMR,IAHA5B,EAAIA,EAAI,GAAIC,EAAIA,EAAI,IAGZwvU,EAAKJ,GAAI,KAAKrvU,CAAC,KACf0vU,EAAKJ,GAAI,KAAKrvU,CAAC,KAChBskG,EAAKmrO,EAAG,OAAS5nO,IACpBvD,EAAKtkG,EAAE,MAAM6nG,EAAIvD,CAAE,EACfn2F,EAAExK,CAAC,EAAGwK,EAAExK,CAAC,GAAK2gG,EACbn2F,EAAE,EAAExK,CAAC,EAAI2gG,IAEXkrO,EAAKA,EAAG,CAAC,MAAQC,EAAKA,EAAG,CAAC,GACzBthU,EAAExK,CAAC,EAAGwK,EAAExK,CAAC,GAAK8rU,EACbthU,EAAE,EAAExK,CAAC,EAAI8rU,GAEdthU,EAAE,EAAExK,CAAC,EAAI,KACThC,EAAE,KAAK,CAAC,EAAGgC,EAAG,EAAGq6K,GAAOwxJ,EAAIC,CAAE,CAAC,CAAC,GAElC5nO,EAAKwnO,GAAI,UAIX,OAAIxnO,EAAK7nG,EAAE,SACTskG,EAAKtkG,EAAE,MAAM6nG,CAAE,EACX15F,EAAExK,CAAC,EAAGwK,EAAExK,CAAC,GAAK2gG,EACbn2F,EAAE,EAAExK,CAAC,EAAI2gG,GAKTn2F,EAAE,OAAS,EAAKxM,EAAE,CAAC,EACpBkrM,IAAIlrM,EAAE,CAAC,EAAE,CAAC,EACV2tU,IAAKtvU,CAAC,GACLA,EAAI2B,EAAE,OAAQ,SAASE,EAAG,CACzB,QAAS8B,EAAI,EAAG0D,EAAG1D,EAAI3D,EAAG,EAAE2D,EAAGwK,GAAG9G,EAAI1F,EAAEgC,CAAC,GAAG,CAAC,EAAI0D,EAAE,EAAExF,CAAC,EACtD,OAAOsM,EAAE,KAAK,EAAE,CAClB,EACR,CC/DA,IAAIuhU,IAAU,IAAM,KAAK,GAEdrrJ,GAAW,CACpB,WAAY,EACZ,WAAY,EACZ,OAAQ,EACR,MAAO,EACP,OAAQ,EACR,OAAQ,CACV,EAEe,SAAAsrJ,IAAS5vU,EAAGC,EAAGiB,EAAGC,EAAGC,EAAGC,EAAG,CACxC,IAAI0jN,EAAQC,EAAQ6qH,EACpB,OAAI9qH,EAAS,KAAK,KAAK/kN,EAAIA,EAAIC,EAAIA,CAAC,KAAGD,GAAK+kN,EAAQ9kN,GAAK8kN,IACrD8qH,EAAQ7vU,EAAIkB,EAAIjB,EAAIkB,KAAGD,GAAKlB,EAAI6vU,EAAO1uU,GAAKlB,EAAI4vU,IAChD7qH,EAAS,KAAK,KAAK9jN,EAAIA,EAAIC,EAAIA,CAAC,KAAGD,GAAK8jN,EAAQ7jN,GAAK6jN,EAAQ6qH,GAAS7qH,GACtEhlN,EAAImB,EAAIlB,EAAIiB,IAAGlB,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG4vU,EAAQ,CAACA,EAAO9qH,EAAS,CAACA,GACtD,CACL,WAAY3jN,EACZ,WAAYC,EACZ,OAAQ,KAAK,MAAMpB,EAAGD,CAAC,EAAI2vU,IAC3B,MAAO,KAAK,KAAKE,CAAK,EAAIF,IAC1B,OAAQ5qH,EACR,OAAQC,CACZ,CACA,CCvBA,IAAI6iF,GAGG,SAASioC,IAASlzU,EAAO,CAC9B,MAAM6E,EAAI,IAAK,OAAO,WAAc,WAAa,UAAY,iBAAiB7E,EAAQ,EAAE,EACxF,OAAO6E,EAAE,WAAa6iL,GAAWsrJ,IAAUnuU,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CACzE,CAEO,SAASsuU,IAASnzU,EAAO,CAI9B,OAHIA,GAAS,OACRirS,KAASA,GAAU,SAAS,gBAAgB,6BAA8B,GAAG,GAClFA,GAAQ,aAAa,YAAajrS,CAAK,EACnC,EAAEA,EAAQirS,GAAQ,UAAU,QAAQ,YAAW,IAAYvjH,IAC/D1nL,EAAQA,EAAM,OACPgzU,IAAUhzU,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAGA,EAAM,EAAGA,EAAM,CAAC,EACvE,CCdA,SAASozU,IAAqBhxK,EAAOixK,EAASC,EAASC,EAAU,CAE/D,SAASC,EAAIhiU,EAAG,CACd,OAAOA,EAAE,OAASA,EAAE,IAAG,EAAK,IAAM,EACpC,CAEA,SAASiiU,EAAUC,EAAIC,EAAIC,EAAIC,EAAIriU,EAAGxM,EAAG,CACvC,GAAI0uU,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI7sU,EAAIwK,EAAE,KAAK,aAAc,KAAM6hU,EAAS,KAAMC,CAAO,EACzDtuU,EAAE,KAAK,CAAC,EAAGgC,EAAI,EAAG,EAAGq6K,GAAOqyJ,EAAIE,CAAE,CAAC,EAAG,CAAC,EAAG5sU,EAAI,EAAG,EAAGq6K,GAAOsyJ,EAAIE,CAAE,CAAC,CAAC,CACrE,MAAWD,GAAMC,IACfriU,EAAE,KAAK,aAAeoiU,EAAKP,EAAUQ,EAAKP,CAAO,CAErD,CAEA,SAASQ,EAAO1wU,EAAGC,EAAGmO,EAAGxM,EAAG,CACtB5B,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtD4B,EAAE,KAAK,CAAC,EAAGwM,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,UAAW,KAAM+hU,CAAQ,EAAI,EAAG,EAAGlyJ,GAAOj+K,EAAGC,CAAC,CAAC,CAAC,GAClEA,GACTmO,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,UAAYnO,EAAIkwU,CAAQ,CAE5C,CAEA,SAASN,EAAM7vU,EAAGC,EAAGmO,EAAGxM,EAAG,CACrB5B,IAAMC,EACR2B,EAAE,KAAK,CAAC,EAAGwM,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,SAAU,KAAM+hU,CAAQ,EAAI,EAAG,EAAGlyJ,GAAOj+K,EAAGC,CAAC,CAAC,CAAC,EACjEA,GACTmO,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,SAAWnO,EAAIkwU,CAAQ,CAE3C,CAEA,SAASr6M,EAAMw6M,EAAIC,EAAIC,EAAIC,EAAIriU,EAAGxM,EAAG,CACnC,GAAI0uU,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI7sU,EAAIwK,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,SAAU,KAAM,IAAK,KAAM,GAAG,EACtDxM,EAAE,KAAK,CAAC,EAAGgC,EAAI,EAAG,EAAGq6K,GAAOqyJ,EAAIE,CAAE,CAAC,EAAG,CAAC,EAAG5sU,EAAI,EAAG,EAAGq6K,GAAOsyJ,EAAIE,CAAE,CAAC,CAAC,CACrE,MAAWD,IAAO,GAAKC,IAAO,IAC5BriU,EAAE,KAAKgiU,EAAIhiU,CAAC,EAAI,SAAWoiU,EAAK,IAAMC,EAAK,GAAG,CAElD,CAEA,OAAO,SAASzwU,EAAGC,EAAG,CACpB,IAAImO,EAAI,GACJxM,EAAI,GACR,OAAA5B,EAAIg/J,EAAMh/J,CAAC,EAAGC,EAAI++J,EAAM/+J,CAAC,EACzBowU,EAAUrwU,EAAE,WAAYA,EAAE,WAAYC,EAAE,WAAYA,EAAE,WAAYmO,EAAGxM,CAAC,EACtE8uU,EAAO1wU,EAAE,OAAQC,EAAE,OAAQmO,EAAGxM,CAAC,EAC/BiuU,EAAM7vU,EAAE,MAAOC,EAAE,MAAOmO,EAAGxM,CAAC,EAC5Bk0H,EAAM91H,EAAE,OAAQA,EAAE,OAAQC,EAAE,OAAQA,EAAE,OAAQmO,EAAGxM,CAAC,EAClD5B,EAAIC,EAAI,KACD,SAAS6B,EAAG,CAEjB,QADI8B,EAAI,GAAIlC,EAAIE,EAAE,OAAQ0F,EACnB,EAAE1D,EAAIlC,GAAG0M,GAAG9G,EAAI1F,EAAEgC,CAAC,GAAG,CAAC,EAAI0D,EAAE,EAAExF,CAAC,EACvC,OAAOsM,EAAE,KAAK,EAAE,CAClB,CACF,CACF,CAEO,IAAIuiU,IAA0BX,IAAqBF,IAAU,OAAQ,MAAO,MAAM,EAC9Ec,IAA0BZ,IAAqBD,IAAU,KAAM,IAAK,GAAG,EC9D9EnyR,GAAQ,EACRlO,GAAU,EACV04B,GAAW,EACXyoQ,IAAY,IACZC,GACAC,GACAC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAAQ,OAAO,aAAgB,UAAY,YAAY,IAAM,YAAc,KAC3EC,IAAW,OAAO,QAAW,UAAY,OAAO,sBAAwB,OAAO,sBAAsB,KAAK,MAAM,EAAI,SAAS/vU,EAAG,CAAE,WAAWA,EAAG,EAAE,CAAG,EAElJ,SAAS8pE,IAAM,CACpB,OAAO8lQ,KAAaG,IAASC,GAAQ,EAAGJ,GAAWE,GAAM,IAAG,EAAKD,GACnE,CAEA,SAASG,KAAW,CAClBJ,GAAW,CACb,CAEO,SAASK,IAAQ,CACtB,KAAK,MACL,KAAK,MACL,KAAK,MAAQ,IACf,CAEAA,GAAM,UAAY/lM,IAAM,UAAY,CAClC,YAAa+lM,GACb,QAAS,SAAS5yU,EAAUstE,EAAOzS,EAAM,CACvC,GAAI,OAAO76D,GAAa,WAAY,MAAM,IAAI,UAAU,4BAA4B,EACpF66D,GAAQA,GAAQ,KAAO4R,GAAG,EAAK,CAAC5R,IAASyS,GAAS,KAAO,EAAI,CAACA,GAC1D,CAAC,KAAK,OAAS+kQ,KAAa,OAC1BA,GAAUA,GAAS,MAAQ,KAC1BD,GAAW,KAChBC,GAAW,MAEb,KAAK,MAAQryU,EACb,KAAK,MAAQ66D,EACbg4Q,GAAK,CACP,EACA,KAAM,UAAW,CACX,KAAK,QACP,KAAK,MAAQ,KACb,KAAK,MAAQ,IACbA,GAAK,EAET,CACF,EAEO,SAAShmM,IAAM7sI,EAAUstE,EAAOzS,EAAM,CAC3C,IAAIz3D,EAAI,IAAIwvU,GACZ,OAAAxvU,EAAE,QAAQpD,EAAUstE,EAAOzS,CAAI,EACxBz3D,CACT,CAEO,SAAS0vU,KAAa,CAC3BrmQ,KACA,EAAEvtB,GAEF,QADI,EAAIkzR,GAAU,EACX,IACA,EAAIG,GAAW,EAAE,QAAU,GAAG,EAAE,MAAM,KAAK,OAAW,CAAC,EAC5D,EAAI,EAAE,MAER,EAAErzR,EACJ,CAEA,SAAS6zR,KAAO,CACdR,IAAYD,GAAYG,GAAM,IAAG,GAAMD,GACvCtzR,GAAQlO,GAAU,EAClB,GAAI,CACF8hS,IAAU,CACZ,QAAC,CACC5zR,GAAQ,EACR8zR,IAAG,EACHT,GAAW,CACb,CACF,CAEA,SAASU,KAAO,CACd,IAAIxmQ,EAAMgmQ,GAAM,IAAG,EAAInlQ,EAAQb,EAAM6lQ,GACjChlQ,EAAQ6kQ,MAAWK,IAAallQ,EAAOglQ,GAAY7lQ,EACzD,CAEA,SAASumQ,KAAM,CAEb,QADIE,EAAIC,EAAKf,GAAUgB,EAAIv4Q,EAAO,IAC3Bs4Q,GACDA,EAAG,OACDt4Q,EAAOs4Q,EAAG,QAAOt4Q,EAAOs4Q,EAAG,OAC/BD,EAAKC,EAAIA,EAAKA,EAAG,QAEjBC,EAAKD,EAAG,MAAOA,EAAG,MAAQ,KAC1BA,EAAKD,EAAKA,EAAG,MAAQE,EAAKhB,GAAWgB,GAGzCf,GAAWa,EACXL,GAAMh4Q,CAAI,CACZ,CAEA,SAASg4Q,GAAMh4Q,EAAM,CACnB,GAAI,CAAA3b,GACJ,CAAIlO,KAASA,GAAU,aAAaA,EAAO,GAC3C,IAAIs8B,EAAQzS,EAAO03Q,GACfjlQ,EAAQ,IACNzS,EAAO,MAAU7pB,GAAU,WAAW+hS,IAAMl4Q,EAAO43Q,GAAM,IAAG,EAAKD,EAAS,GAC1E9oQ,KAAUA,GAAW,cAAcA,EAAQ,KAE1CA,KAAU4oQ,GAAYG,GAAM,IAAG,EAAI/oQ,GAAW,YAAYupQ,IAAMd,GAAS,GAC9EjzR,GAAQ,EAAGwzR,IAASK,GAAI,GAE5B,CC3Ge,SAAA/hS,IAAShxC,EAAUstE,EAAOzS,EAAM,CAC7C,IAAIz3D,EAAI,IAAIwvU,GACZ,OAAAtlQ,EAAQA,GAAS,KAAO,EAAI,CAACA,EAC7BlqE,EAAE,QAAQiwU,GAAW,CACnBjwU,EAAE,KAAI,EACNpD,EAASqzU,EAAU/lQ,CAAK,CAC1B,EAAGA,EAAOzS,CAAI,EACPz3D,CACT,CCPA,IAAIkwU,IAAUrxS,IAAS,QAAS,MAAO,SAAU,WAAW,EACxDsxS,IAAa,GAENC,IAAU,EACVC,IAAY,EACZC,GAAW,EACXC,GAAU,EACVC,IAAU,EACVC,GAAS,EACTC,GAAQ,EAEJ,SAAAC,GAAStgN,EAAMvvG,EAAMrX,EAAItC,EAAOysI,EAAOg9L,EAAQ,CAC5D,IAAIC,EAAYxgN,EAAK,aACrB,GAAI,CAACwgN,EAAWxgN,EAAK,aAAe,WAC3B5mH,KAAMonU,EAAW,OAC1B/1I,IAAOzqE,EAAM5mH,EAAI,CACf,KAAMqX,EACN,MAAO3Z,EACP,MAAOysI,EACP,GAAIs8L,IACJ,MAAOC,IACP,KAAMS,EAAO,KACb,MAAOA,EAAO,MACd,SAAUA,EAAO,SACjB,KAAMA,EAAO,KACb,MAAO,KACP,MAAOR,GACX,CAAG,CACH,CAEO,SAASl/T,GAAKm/G,EAAM5mH,EAAI,CAC7B,IAAIknU,EAAWvuS,GAAIiuF,EAAM5mH,CAAE,EAC3B,GAAIknU,EAAS,MAAQP,IAAS,MAAM,IAAI,MAAM,6BAA6B,EAC3E,OAAOO,CACT,CAEO,SAAStuS,GAAIguF,EAAM5mH,EAAI,CAC5B,IAAIknU,EAAWvuS,GAAIiuF,EAAM5mH,CAAE,EAC3B,GAAIknU,EAAS,MAAQJ,GAAS,MAAM,IAAI,MAAM,2BAA2B,EACzE,OAAOI,CACT,CAEO,SAASvuS,GAAIiuF,EAAM5mH,EAAI,CAC5B,IAAIknU,EAAWtgN,EAAK,aACpB,GAAI,CAACsgN,GAAY,EAAEA,EAAWA,EAASlnU,CAAE,GAAI,MAAM,IAAI,MAAM,sBAAsB,EACnF,OAAOknU,CACT,CAEA,SAAS71I,IAAOzqE,EAAM5mH,EAAIrE,EAAM,CAC9B,IAAIyrU,EAAYxgN,EAAK,aACjBygN,EAIJD,EAAUpnU,CAAE,EAAIrE,EAChBA,EAAK,MAAQqkI,IAAMknM,EAAU,EAAGvrU,EAAK,IAAI,EAEzC,SAASurU,EAASV,EAAS,CACzB7qU,EAAK,MAAQirU,IACbjrU,EAAK,MAAM,QAAQm9E,EAAOn9E,EAAK,MAAOA,EAAK,IAAI,EAG3CA,EAAK,OAAS6qU,GAAS1tP,EAAM0tP,EAAU7qU,EAAK,KAAK,CACvD,CAEA,SAASm9E,EAAM0tP,EAAS,CACtB,IAAInuU,EAAG6xB,EAAG/zB,EAAG4F,EAGb,GAAIJ,EAAK,QAAUirU,IAAW,OAAO5mH,EAAI,EAEzC,IAAK3nN,KAAK+uU,EAER,GADArrU,EAAIqrU,EAAU/uU,CAAC,EACX0D,EAAE,OAASJ,EAAK,KAKpB,IAAII,EAAE,QAAU+qU,GAAS,OAAO3iS,IAAQ20C,CAAK,EAGzC/8E,EAAE,QAAUgrU,KACdhrU,EAAE,MAAQkrU,GACVlrU,EAAE,MAAM,KAAI,EACZA,EAAE,GAAG,KAAK,YAAa6qH,EAAMA,EAAK,SAAU7qH,EAAE,MAAOA,EAAE,KAAK,EAC5D,OAAOqrU,EAAU/uU,CAAC,GAIX,CAACA,EAAI2H,IACZjE,EAAE,MAAQkrU,GACVlrU,EAAE,MAAM,KAAI,EACZA,EAAE,GAAG,KAAK,SAAU6qH,EAAMA,EAAK,SAAU7qH,EAAE,MAAOA,EAAE,KAAK,EACzD,OAAOqrU,EAAU/uU,CAAC,GAoBtB,GAZA8rC,IAAQ,UAAW,CACbxoC,EAAK,QAAUmrU,KACjBnrU,EAAK,MAAQorU,IACbprU,EAAK,MAAM,QAAQihE,EAAMjhE,EAAK,MAAOA,EAAK,IAAI,EAC9CihE,EAAK4pQ,CAAO,EAEhB,CAAC,EAID7qU,EAAK,MAAQkrU,GACblrU,EAAK,GAAG,KAAK,QAASirH,EAAMA,EAAK,SAAUjrH,EAAK,MAAOA,EAAK,KAAK,EAC7DA,EAAK,QAAUkrU,GAKnB,KAJAlrU,EAAK,MAAQmrU,GAGbO,EAAQ,IAAI,MAAMlxU,EAAIwF,EAAK,MAAM,MAAM,EAClCtD,EAAI,EAAG6xB,EAAI,GAAI7xB,EAAIlC,EAAG,EAAEkC,GACvB0D,EAAIJ,EAAK,MAAMtD,CAAC,EAAE,MAAM,KAAKuuH,EAAMA,EAAK,SAAUjrH,EAAK,MAAOA,EAAK,KAAK,KAC1E0rU,EAAM,EAAEn9S,CAAC,EAAInuB,GAGjBsrU,EAAM,OAASn9S,EAAI,EACrB,CAEA,SAAS0yC,EAAK4pQ,EAAS,CAKrB,QAJIjwU,EAAIiwU,EAAU7qU,EAAK,SAAWA,EAAK,KAAK,KAAK,KAAM6qU,EAAU7qU,EAAK,QAAQ,GAAKA,EAAK,MAAM,QAAQqkN,CAAI,EAAGrkN,EAAK,MAAQqrU,GAAQ,GAC9H3uU,EAAI,GACJlC,EAAIkxU,EAAM,OAEP,EAAEhvU,EAAIlC,GACXkxU,EAAMhvU,CAAC,EAAE,KAAKuuH,EAAMrwH,CAAC,EAInBoF,EAAK,QAAUqrU,KACjBrrU,EAAK,GAAG,KAAK,MAAOirH,EAAMA,EAAK,SAAUjrH,EAAK,MAAOA,EAAK,KAAK,EAC/DqkN,EAAI,EAER,CAEA,SAASA,GAAO,CACdrkN,EAAK,MAAQsrU,GACbtrU,EAAK,MAAM,KAAI,EACf,OAAOyrU,EAAUpnU,CAAE,EACnB,QAAS3H,KAAK+uU,EAAW,OACzB,OAAOxgN,EAAK,YACd,CACF,CCtJe,SAAA0gN,IAAS1gN,EAAMvvG,EAAM,CAClC,IAAI+vT,EAAYxgN,EAAK,aACjBsgN,EACA1kI,EACAwkB,EAAQ,GACR3uN,EAEJ,GAAK+uU,EAEL,CAAA/vT,EAAOA,GAAQ,KAAO,KAAOA,EAAO,GAEpC,IAAKhf,KAAK+uU,EAAW,CACnB,IAAKF,EAAWE,EAAU/uU,CAAC,GAAG,OAASgf,EAAM,CAAE2vM,EAAQ,GAAO,QAAU,CACxExkB,EAAS0kI,EAAS,MAAQL,IAAYK,EAAS,MAAQF,GACvDE,EAAS,MAAQD,GACjBC,EAAS,MAAM,KAAI,EACnBA,EAAS,GAAG,KAAK1kI,EAAS,YAAc,SAAU57E,EAAMA,EAAK,SAAUsgN,EAAS,MAAOA,EAAS,KAAK,EACrG,OAAOE,EAAU/uU,CAAC,CACpB,CAEI2uN,GAAO,OAAOpgG,EAAK,aACzB,CCrBe,SAAA2gN,IAASlwT,EAAM,CAC5B,OAAO,KAAK,KAAK,UAAW,CAC1BiwT,IAAU,KAAMjwT,CAAI,CACtB,CAAC,CACH,CCJA,SAASmwT,IAAYxnU,EAAIqX,EAAM,CAC7B,IAAIowT,EAAQC,EACZ,OAAO,UAAW,CAChB,IAAIR,EAAWtuS,GAAI,KAAM54B,CAAE,EACvBqnU,EAAQH,EAAS,MAKrB,GAAIG,IAAUI,EAAQ,CACpBC,EAASD,EAASJ,EAClB,QAAShvU,EAAI,EAAGlC,EAAIuxU,EAAO,OAAQrvU,EAAIlC,EAAG,EAAEkC,EAC1C,GAAIqvU,EAAOrvU,CAAC,EAAE,OAASgf,EAAM,CAC3BqwT,EAASA,EAAO,MAAK,EACrBA,EAAO,OAAOrvU,EAAG,CAAC,EAClB,KACF,CAEJ,CAEA6uU,EAAS,MAAQQ,CACnB,CACF,CAEA,SAASC,IAAc3nU,EAAIqX,EAAMhmB,EAAO,CACtC,IAAIo2U,EAAQC,EACZ,GAAI,OAAOr2U,GAAU,WAAY,MAAM,IAAI,MAC3C,OAAO,UAAW,CAChB,IAAI61U,EAAWtuS,GAAI,KAAM54B,CAAE,EACvBqnU,EAAQH,EAAS,MAKrB,GAAIG,IAAUI,EAAQ,CACpBC,GAAUD,EAASJ,GAAO,MAAK,EAC/B,QAAS9wU,EAAI,CAAC,KAAM8gB,EAAM,MAAOhmB,CAAK,EAAGgH,EAAI,EAAGlC,EAAIuxU,EAAO,OAAQrvU,EAAIlC,EAAG,EAAEkC,EAC1E,GAAIqvU,EAAOrvU,CAAC,EAAE,OAASgf,EAAM,CAC3BqwT,EAAOrvU,CAAC,EAAI9B,EACZ,KACF,CAEE8B,IAAMlC,GAAGuxU,EAAO,KAAKnxU,CAAC,CAC5B,CAEA2wU,EAAS,MAAQQ,CACnB,CACF,CAEe,SAAAE,IAASvwT,EAAMhmB,EAAO,CACnC,IAAI2O,EAAK,KAAK,IAId,GAFAqX,GAAQ,GAEJ,UAAU,OAAS,EAAG,CAExB,QADIgwT,EAAQ1uS,GAAI,KAAK,KAAI,EAAI34B,CAAE,EAAE,MACxB,EAAI,EAAG7J,EAAIkxU,EAAM,OAAQ9wU,EAAG,EAAIJ,EAAG,EAAE,EAC5C,IAAKI,EAAI8wU,EAAM,CAAC,GAAG,OAAShwT,EAC1B,OAAO9gB,EAAE,MAGb,OAAO,IACT,CAEA,OAAO,KAAK,MAAMlF,GAAS,KAAOm2U,IAAcG,KAAe3nU,EAAIqX,EAAMhmB,CAAK,CAAC,CACjF,CAEO,SAASw2U,GAAWvjT,EAAYjN,EAAMhmB,EAAO,CAClD,IAAI2O,EAAKskB,EAAW,IAEpB,OAAAA,EAAW,KAAK,UAAW,CACzB,IAAI4iT,EAAWtuS,GAAI,KAAM54B,CAAE,GAC1BknU,EAAS,QAAUA,EAAS,MAAQ,KAAK7vT,CAAI,EAAIhmB,EAAM,MAAM,KAAM,SAAS,CAC/E,CAAC,EAEM,SAASu1H,EAAM,CACpB,OAAOjuF,GAAIiuF,EAAM5mH,CAAE,EAAE,MAAMqX,CAAI,CACjC,CACF,CC7Ee,SAAA29K,IAASvgM,EAAGC,EAAG,CAC5B,IAAIiB,EACJ,OAAQ,OAAOjB,GAAM,SAAWmvU,GAC1BnvU,aAAaqnQ,GAAQ2nE,KACpB/tU,EAAIomQ,GAAMrnQ,CAAC,IAAMA,EAAIiB,EAAG+tU,KACzBO,KAAmBxvU,EAAGC,CAAC,CAC/B,CCJA,SAASipU,IAAWtmT,EAAM,CACxB,OAAO,UAAW,CAChB,KAAK,gBAAgBA,CAAI,CAC3B,CACF,CAEA,SAASumT,IAAa3D,EAAU,CAC9B,OAAO,UAAW,CAChB,KAAK,kBAAkBA,EAAS,MAAOA,EAAS,KAAK,CACvD,CACF,CAEA,SAAS4D,IAAaxmT,EAAM29K,EAAa8yI,EAAQ,CAC/C,IAAIC,EACAC,EAAUF,EAAS,GACnBG,EACJ,OAAO,UAAW,CAChB,IAAIC,EAAU,KAAK,aAAa7wT,CAAI,EACpC,OAAO6wT,IAAYF,EAAU,KACvBE,IAAYH,EAAWE,EACvBA,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,CAC7D,CACF,CAEA,SAAShK,IAAe7D,EAAUjlI,EAAa8yI,EAAQ,CACrD,IAAIC,EACAC,EAAUF,EAAS,GACnBG,EACJ,OAAO,UAAW,CAChB,IAAIC,EAAU,KAAK,eAAejO,EAAS,MAAOA,EAAS,KAAK,EAChE,OAAOiO,IAAYF,EAAU,KACvBE,IAAYH,EAAWE,EACvBA,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,CAC7D,CACF,CAEA,SAAS/J,IAAa1mT,EAAM29K,EAAa3jM,EAAO,CAC9C,IAAI02U,EACAI,EACAF,EACJ,OAAO,UAAW,CAChB,IAAIC,EAASJ,EAASz2U,EAAM,IAAI,EAAG22U,EACnC,OAAIF,GAAU,KAAa,KAAK,KAAK,gBAAgBzwT,CAAI,GACzD6wT,EAAU,KAAK,aAAa7wT,CAAI,EAChC2wT,EAAUF,EAAS,GACZI,IAAYF,EAAU,KACvBE,IAAYH,GAAYC,IAAYG,EAAWF,GAC9CE,EAAWH,EAASC,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,GAClF,CACF,CAEA,SAAS9J,IAAe/D,EAAUjlI,EAAa3jM,EAAO,CACpD,IAAI02U,EACAI,EACAF,EACJ,OAAO,UAAW,CAChB,IAAIC,EAASJ,EAASz2U,EAAM,IAAI,EAAG22U,EACnC,OAAIF,GAAU,KAAa,KAAK,KAAK,kBAAkB7N,EAAS,MAAOA,EAAS,KAAK,GACrFiO,EAAU,KAAK,eAAejO,EAAS,MAAOA,EAAS,KAAK,EAC5D+N,EAAUF,EAAS,GACZI,IAAYF,EAAU,KACvBE,IAAYH,GAAYC,IAAYG,EAAWF,GAC9CE,EAAWH,EAASC,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,GAClF,CACF,CAEe,SAAAM,IAAS/wT,EAAMhmB,EAAO,CACnC,IAAI4oU,EAAWj5D,GAAU3pP,CAAI,EAAGhf,EAAI4hU,IAAa,YAAcwK,IAAuBzvI,IACtF,OAAO,KAAK,UAAU39K,EAAM,OAAOhmB,GAAU,YACtC4oU,EAAS,MAAQ+D,IAAiBD,KAAc9D,EAAU5hU,EAAGwvU,GAAW,KAAM,QAAUxwT,EAAMhmB,CAAK,CAAC,EACrGA,GAAS,MAAQ4oU,EAAS,MAAQ2D,IAAeD,KAAY1D,CAAQ,GACpEA,EAAS,MAAQ6D,IAAiBD,KAAc5D,EAAU5hU,EAAGhH,CAAK,CAAC,CAC5E,CC3EA,SAASg3U,IAAgBhxT,EAAMhf,EAAG,CAChC,OAAO,SAAS9B,EAAG,CACjB,KAAK,aAAa8gB,EAAMhf,EAAE,KAAK,KAAM9B,CAAC,CAAC,CACzC,CACF,CAEA,SAAS+xU,IAAkBrO,EAAU5hU,EAAG,CACtC,OAAO,SAAS9B,EAAG,CACjB,KAAK,eAAe0jU,EAAS,MAAOA,EAAS,MAAO5hU,EAAE,KAAK,KAAM9B,CAAC,CAAC,CACrE,CACF,CAEA,SAASgyU,IAAYtO,EAAU5oU,EAAO,CACpC,IAAIg1U,EAAIrK,EACR,SAASqL,GAAQ,CACf,IAAIhvU,EAAIhH,EAAM,MAAM,KAAM,SAAS,EACnC,OAAIgH,IAAM2jU,IAAIqK,GAAMrK,EAAK3jU,IAAMiwU,IAAkBrO,EAAU5hU,CAAC,GACrDguU,CACT,CACA,OAAAgB,EAAM,OAASh2U,EACRg2U,CACT,CAEA,SAASmB,IAAUnxT,EAAMhmB,EAAO,CAC9B,IAAIg1U,EAAIrK,EACR,SAASqL,GAAQ,CACf,IAAIhvU,EAAIhH,EAAM,MAAM,KAAM,SAAS,EACnC,OAAIgH,IAAM2jU,IAAIqK,GAAMrK,EAAK3jU,IAAMgwU,IAAgBhxT,EAAMhf,CAAC,GAC/CguU,CACT,CACA,OAAAgB,EAAM,OAASh2U,EACRg2U,CACT,CAEe,SAAAoB,IAASpxT,EAAMhmB,EAAO,CACnC,IAAIiH,EAAM,QAAU+e,EACpB,GAAI,UAAU,OAAS,EAAG,OAAQ/e,EAAM,KAAK,MAAMA,CAAG,IAAMA,EAAI,OAChE,GAAIjH,GAAS,KAAM,OAAO,KAAK,MAAMiH,EAAK,IAAI,EAC9C,GAAI,OAAOjH,GAAU,WAAY,MAAM,IAAI,MAC3C,IAAI4oU,EAAWj5D,GAAU3pP,CAAI,EAC7B,OAAO,KAAK,MAAM/e,GAAM2hU,EAAS,MAAQsO,IAAcC,KAAWvO,EAAU5oU,CAAK,CAAC,CACpF,CCzCA,SAASq3U,IAAc1oU,EAAI3O,EAAO,CAChC,OAAO,UAAW,CAChBoW,GAAK,KAAMzH,CAAE,EAAE,MAAQ,CAAC3O,EAAM,MAAM,KAAM,SAAS,CACrD,CACF,CAEA,SAASs3U,IAAc3oU,EAAI3O,EAAO,CAChC,OAAOA,EAAQ,CAACA,EAAO,UAAW,CAChCoW,GAAK,KAAMzH,CAAE,EAAE,MAAQ3O,CACzB,CACF,CAEe,SAAAu3U,IAASv3U,EAAO,CAC7B,IAAI2O,EAAK,KAAK,IAEd,OAAO,UAAU,OACX,KAAK,MAAM,OAAO3O,GAAU,WACxBq3U,IACAC,KAAe3oU,EAAI3O,CAAK,CAAC,EAC7BsnC,GAAI,KAAK,OAAQ34B,CAAE,EAAE,KAC7B,CCpBA,SAAS6oU,IAAiB7oU,EAAI3O,EAAO,CACnC,OAAO,UAAW,CAChBunC,GAAI,KAAM54B,CAAE,EAAE,SAAW,CAAC3O,EAAM,MAAM,KAAM,SAAS,CACvD,CACF,CAEA,SAASy3U,IAAiB9oU,EAAI3O,EAAO,CACnC,OAAOA,EAAQ,CAACA,EAAO,UAAW,CAChCunC,GAAI,KAAM54B,CAAE,EAAE,SAAW3O,CAC3B,CACF,CAEe,SAAA03U,IAAS13U,EAAO,CAC7B,IAAI2O,EAAK,KAAK,IAEd,OAAO,UAAU,OACX,KAAK,MAAM,OAAO3O,GAAU,WACxBw3U,IACAC,KAAkB9oU,EAAI3O,CAAK,CAAC,EAChCsnC,GAAI,KAAK,OAAQ34B,CAAE,EAAE,QAC7B,CCpBA,SAASgpU,IAAahpU,EAAI3O,EAAO,CAC/B,GAAI,OAAOA,GAAU,WAAY,MAAM,IAAI,MAC3C,OAAO,UAAW,CAChBunC,GAAI,KAAM54B,CAAE,EAAE,KAAO3O,CACvB,CACF,CAEe,SAAA43U,IAAS53U,EAAO,CAC7B,IAAI2O,EAAK,KAAK,IAEd,OAAO,UAAU,OACX,KAAK,KAAKgpU,IAAahpU,EAAI3O,CAAK,CAAC,EACjCsnC,GAAI,KAAK,OAAQ34B,CAAE,EAAE,IAC7B,CCbA,SAASkpU,IAAYlpU,EAAI3O,EAAO,CAC9B,OAAO,UAAW,CAChB,IAAImF,EAAInF,EAAM,MAAM,KAAM,SAAS,EACnC,GAAI,OAAOmF,GAAM,WAAY,MAAM,IAAI,MACvCoiC,GAAI,KAAM54B,CAAE,EAAE,KAAOxJ,CACvB,CACF,CAEe,SAAA2yU,IAAS93U,EAAO,CAC7B,GAAI,OAAOA,GAAU,WAAY,MAAM,IAAI,MAC3C,OAAO,KAAK,KAAK63U,IAAY,KAAK,IAAK73U,CAAK,CAAC,CAC/C,CCVe,SAAA+3U,IAASnoU,EAAO,CACzB,OAAOA,GAAU,aAAYA,EAAQwC,IAAQxC,CAAK,GAEtD,QAAS88R,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,IAAI,MAAMlkU,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC3F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQkwL,EAAWD,EAAUlwS,CAAC,EAAI,GAAI08F,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC3FuuH,EAAOujB,EAAM9xI,CAAC,IAAM4I,EAAM,KAAK2lH,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,GAC/DkwL,EAAS,KAAKzzM,CAAI,EAKxB,OAAO,IAAIu/B,GAAWi0K,EAAW,KAAK,SAAU,KAAK,MAAO,KAAK,GAAG,CACtE,CCbe,SAAAiP,IAAS/kT,EAAY,CAClC,GAAIA,EAAW,MAAQ,KAAK,IAAK,MAAM,IAAI,MAE3C,QAASk4S,EAAU,KAAK,QAASC,EAAUn4S,EAAW,QAASo4S,EAAKF,EAAQ,OAAQG,EAAKF,EAAQ,OAAQvmU,EAAI,KAAK,IAAIwmU,EAAIC,CAAE,EAAGC,EAAS,IAAI,MAAMF,CAAE,EAAGxyS,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EACrK,QAAS2yS,EAASL,EAAQtyS,CAAC,EAAG4yS,EAASL,EAAQvyS,CAAC,EAAG/zB,EAAI0mU,EAAO,OAAQ/hR,EAAQ8hR,EAAO1yS,CAAC,EAAI,IAAI,MAAM/zB,CAAC,EAAGywH,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GACxHuuH,EAAOi2M,EAAOxkU,CAAC,GAAKykU,EAAOzkU,CAAC,KAC9ByiD,EAAMziD,CAAC,EAAIuuH,GAKjB,KAAO18F,EAAIwyS,EAAI,EAAExyS,EACf0yS,EAAO1yS,CAAC,EAAIsyS,EAAQtyS,CAAC,EAGvB,OAAO,IAAIi8H,GAAWy2K,EAAQ,KAAK,SAAU,KAAK,MAAO,KAAK,GAAG,CACnE,CChBA,SAAS9jP,IAAMzhE,EAAM,CACnB,OAAQA,EAAO,IAAI,KAAI,EAAG,MAAM,OAAO,EAAE,MAAM,SAAS9gB,EAAG,CACzD,IAAI8B,EAAI9B,EAAE,QAAQ,GAAG,EACrB,OAAI8B,GAAK,IAAG9B,EAAIA,EAAE,MAAM,EAAG8B,CAAC,GACrB,CAAC9B,GAAKA,IAAM,OACrB,CAAC,CACH,CAEA,SAAS+yU,IAAWtpU,EAAIqX,EAAMze,EAAU,CACtC,IAAI2wU,EAAKC,EAAKC,EAAM3wP,IAAMzhE,CAAI,EAAI5P,GAAOmxB,GACzC,OAAO,UAAW,CAChB,IAAIsuS,EAAWuC,EAAI,KAAMzpU,CAAE,EACvB6vB,EAAKq3S,EAAS,GAKdr3S,IAAO05S,IAAMC,GAAOD,EAAM15S,GAAI,KAAI,GAAI,GAAGxY,EAAMze,CAAQ,EAE3DsuU,EAAS,GAAKsC,CAChB,CACF,CAEe,SAAAE,IAASryT,EAAMze,EAAU,CACtC,IAAIoH,EAAK,KAAK,IAEd,OAAO,UAAU,OAAS,EACpB24B,GAAI,KAAK,KAAI,EAAI34B,CAAE,EAAE,GAAG,GAAGqX,CAAI,EAC/B,KAAK,KAAKiyT,IAAWtpU,EAAIqX,EAAMze,CAAQ,CAAC,CAChD,CC/BA,SAAS+wU,IAAe3pU,EAAI,CAC1B,OAAO,UAAW,CAChB,IAAI+7B,EAAS,KAAK,WAClB,QAAS1jC,KAAK,KAAK,aAAc,GAAI,CAACA,IAAM2H,EAAI,OAC5C+7B,GAAQA,EAAO,YAAY,IAAI,CACrC,CACF,CAEe,SAAA6tS,KAAW,CACxB,OAAO,KAAK,GAAG,aAAcD,IAAe,KAAK,GAAG,CAAC,CACvD,CCNe,SAAAE,IAAS1P,EAAQ,CAC9B,IAAI9iT,EAAO,KAAK,MACZrX,EAAK,KAAK,IAEV,OAAOm6T,GAAW,aAAYA,EAAS7nU,GAAS6nU,CAAM,GAE1D,QAASp8B,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,IAAI,MAAMlkU,CAAC,EAAGg0B,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC3F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQkwL,EAAWD,EAAUlwS,CAAC,EAAI,IAAI,MAAM/zB,CAAC,EAAGywH,EAAM0zM,EAASjiU,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC9GuuH,EAAOujB,EAAM9xI,CAAC,KAAOiiU,EAAUH,EAAO,KAAKvzM,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,KACvE,aAAcvjB,IAAM0zM,EAAQ,SAAW1zM,EAAK,UAChDyzM,EAAShiU,CAAC,EAAIiiU,EACd4M,GAAS7M,EAAShiU,CAAC,EAAGgf,EAAMrX,EAAI3H,EAAGgiU,EAAU1hS,GAAIiuF,EAAM5mH,CAAE,CAAC,GAKhE,OAAO,IAAImmJ,GAAWi0K,EAAW,KAAK,SAAU/iT,EAAMrX,CAAE,CAC1D,CCjBe,SAAA8pU,IAAS3P,EAAQ,CAC9B,IAAI9iT,EAAO,KAAK,MACZrX,EAAK,KAAK,IAEV,OAAOm6T,GAAW,aAAYA,EAASI,IAAYJ,CAAM,GAE7D,QAASp8B,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQq8B,EAAY,GAAIj5C,EAAU,GAAIj3P,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EAC/F,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQvjB,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,EAClE,GAAIuuH,EAAOujB,EAAM9xI,CAAC,EAAG,CACnB,QAAS8B,EAAWggU,EAAO,KAAKvzM,EAAMA,EAAK,SAAUvuH,EAAG8xI,CAAK,EAAG3tG,EAAOutS,EAAUpxS,GAAIiuF,EAAM5mH,CAAE,EAAG/J,EAAI,EAAGqxB,EAAIntB,EAAS,OAAQlE,EAAIqxB,EAAG,EAAErxB,GAC/HumC,EAAQriC,EAASlE,CAAC,IACpBixU,GAAS1qS,EAAOnlB,EAAMrX,EAAI/J,EAAGkE,EAAU4vU,CAAO,EAGlD3P,EAAU,KAAKjgU,CAAQ,EACvBgnR,EAAQ,KAAKv6J,CAAI,CACnB,CAIJ,OAAO,IAAIu/B,GAAWi0K,EAAWj5C,EAAS9pQ,EAAMrX,CAAE,CACpD,CCvBA,IAAIw0M,IAAYqB,GAAU,UAAU,YAErB,SAAAm0H,KAAW,CACxB,OAAO,IAAIx1H,IAAU,KAAK,QAAS,KAAK,QAAQ,CAClD,CCAA,SAASy1H,IAAU5yT,EAAM29K,EAAa,CACpC,IAAI+yI,EACAI,EACAF,EACJ,OAAO,UAAW,CAChB,IAAIC,EAAUniI,GAAM,KAAM1uL,CAAI,EAC1B2wT,GAAW,KAAK,MAAM,eAAe3wT,CAAI,EAAG0uL,GAAM,KAAM1uL,CAAI,GAChE,OAAO6wT,IAAYF,EAAU,KACvBE,IAAYH,GAAYC,IAAYG,EAAWF,EAC/CA,EAAejzI,EAAY+yI,EAAWG,EAASC,EAAWH,CAAO,CACzE,CACF,CAEA,SAAS7J,IAAY9mT,EAAM,CACzB,OAAO,UAAW,CAChB,KAAK,MAAM,eAAeA,CAAI,CAChC,CACF,CAEA,SAAS+mT,IAAc/mT,EAAM29K,EAAa8yI,EAAQ,CAChD,IAAIC,EACAC,EAAUF,EAAS,GACnBG,EACJ,OAAO,UAAW,CAChB,IAAIC,EAAUniI,GAAM,KAAM1uL,CAAI,EAC9B,OAAO6wT,IAAYF,EAAU,KACvBE,IAAYH,EAAWE,EACvBA,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,CAC7D,CACF,CAEA,SAASzJ,IAAchnT,EAAM29K,EAAa3jM,EAAO,CAC/C,IAAI02U,EACAI,EACAF,EACJ,OAAO,UAAW,CAChB,IAAIC,EAAUniI,GAAM,KAAM1uL,CAAI,EAC1BywT,EAASz2U,EAAM,IAAI,EACnB22U,EAAUF,EAAS,GACvB,OAAIA,GAAU,OAAME,EAAUF,GAAU,KAAK,MAAM,eAAezwT,CAAI,EAAG0uL,GAAM,KAAM1uL,CAAI,IAClF6wT,IAAYF,EAAU,KACvBE,IAAYH,GAAYC,IAAYG,EAAWF,GAC9CE,EAAWH,EAASC,EAAejzI,EAAY+yI,EAAWG,EAASJ,CAAM,EAClF,CACF,CAEA,SAASoC,IAAiBlqU,EAAIqX,EAAM,CAClC,IAAIkyT,EAAKC,EAAKW,EAAW7xU,EAAM,SAAW+e,EAAMub,EAAQ,OAASt6B,EAAK6mE,EACtE,OAAO,UAAW,CAChB,IAAI+nQ,EAAWtuS,GAAI,KAAM54B,CAAE,EACvB6vB,EAAKq3S,EAAS,GACdtuU,EAAWsuU,EAAS,MAAM5uU,CAAG,GAAK,KAAO6mE,IAAWA,EAASg/P,IAAY9mT,CAAI,GAAK,QAKlFwY,IAAO05S,GAAOY,IAAcvxU,KAAW4wU,GAAOD,EAAM15S,GAAI,KAAI,GAAI,GAAG+C,EAAOu3S,EAAYvxU,CAAQ,EAElGsuU,EAAS,GAAKsC,CAChB,CACF,CAEe,SAAAY,IAAS/yT,EAAMhmB,EAAO20M,EAAU,CAC7C,IAAI3tM,GAAKgf,GAAQ,KAAQ,YAAcotT,IAAuBzvI,IAC9D,OAAO3jM,GAAS,KAAO,KAClB,WAAWgmB,EAAM4yT,IAAU5yT,EAAMhf,CAAC,CAAC,EACnC,GAAG,aAAegf,EAAM8mT,IAAY9mT,CAAI,CAAC,EAC1C,OAAOhmB,GAAU,WAAa,KAC7B,WAAWgmB,EAAMgnT,IAAchnT,EAAMhf,EAAGwvU,GAAW,KAAM,SAAWxwT,EAAMhmB,CAAK,CAAC,CAAC,EACjF,KAAK64U,IAAiB,KAAK,IAAK7yT,CAAI,CAAC,EACtC,KACC,WAAWA,EAAM+mT,IAAc/mT,EAAMhf,EAAGhH,CAAK,EAAG20M,CAAQ,EACxD,GAAG,aAAe3uL,EAAM,IAAI,CACnC,CC/EA,SAASgzT,IAAiBhzT,EAAMhf,EAAG2tM,EAAU,CAC3C,OAAO,SAASzvM,EAAG,CACjB,KAAK,MAAM,YAAY8gB,EAAMhf,EAAE,KAAK,KAAM9B,CAAC,EAAGyvM,CAAQ,CACxD,CACF,CAEA,SAASskI,IAAWjzT,EAAMhmB,EAAO20M,EAAU,CACzC,IAAIzvM,EAAGylU,EACP,SAASqL,GAAQ,CACf,IAAIhvU,EAAIhH,EAAM,MAAM,KAAM,SAAS,EACnC,OAAIgH,IAAM2jU,IAAIzlU,GAAKylU,EAAK3jU,IAAMgyU,IAAiBhzT,EAAMhf,EAAG2tM,CAAQ,GACzDzvM,CACT,CACA,OAAA8wU,EAAM,OAASh2U,EACRg2U,CACT,CAEe,SAAAkD,IAASlzT,EAAMhmB,EAAO20M,EAAU,CAC7C,IAAI1tM,EAAM,UAAY+e,GAAQ,IAC9B,GAAI,UAAU,OAAS,EAAG,OAAQ/e,EAAM,KAAK,MAAMA,CAAG,IAAMA,EAAI,OAChE,GAAIjH,GAAS,KAAM,OAAO,KAAK,MAAMiH,EAAK,IAAI,EAC9C,GAAI,OAAOjH,GAAU,WAAY,MAAM,IAAI,MAC3C,OAAO,KAAK,MAAMiH,EAAKgyU,IAAWjzT,EAAMhmB,EAAO20M,GAAmB,EAAa,CAAC,CAClF,CCrBA,SAASq5H,IAAahuU,EAAO,CAC3B,OAAO,UAAW,CAChB,KAAK,YAAcA,CACrB,CACF,CAEA,SAASiuU,IAAajuU,EAAO,CAC3B,OAAO,UAAW,CAChB,IAAIy2U,EAASz2U,EAAM,IAAI,EACvB,KAAK,YAAcy2U,GAAiB,EACtC,CACF,CAEe,SAAA0C,IAASn5U,EAAO,CAC7B,OAAO,KAAK,MAAM,OAAQ,OAAOA,GAAU,WACrCiuU,IAAauI,GAAW,KAAM,OAAQx2U,CAAK,CAAC,EAC5CguU,IAAahuU,GAAS,KAAO,GAAKA,EAAQ,EAAE,CAAC,CACrD,CCnBA,SAASo5U,IAAgBpyU,EAAG,CAC1B,OAAO,SAAS9B,EAAG,CACjB,KAAK,YAAc8B,EAAE,KAAK,KAAM9B,CAAC,CACnC,CACF,CAEA,SAASm0U,IAAUr5U,EAAO,CACxB,IAAIg1U,EAAIrK,EACR,SAASqL,GAAQ,CACf,IAAI,EAAIh2U,EAAM,MAAM,KAAM,SAAS,EACnC,OAAI,IAAM2qU,IAAIqK,GAAMrK,EAAK,IAAMyO,IAAgB,CAAC,GACzCpE,CACT,CACA,OAAAgB,EAAM,OAASh2U,EACRg2U,CACT,CAEe,SAAAsD,IAASt5U,EAAO,CAC7B,IAAIiH,EAAM,OACV,GAAI,UAAU,OAAS,EAAG,OAAQA,EAAM,KAAK,MAAMA,CAAG,IAAMA,EAAI,OAChE,GAAIjH,GAAS,KAAM,OAAO,KAAK,MAAMiH,EAAK,IAAI,EAC9C,GAAI,OAAOjH,GAAU,WAAY,MAAM,IAAI,MAC3C,OAAO,KAAK,MAAMiH,EAAKoyU,IAAUr5U,CAAK,CAAC,CACzC,CCpBe,SAAAu5U,KAAW,CAKxB,QAJIvzT,EAAO,KAAK,MACZwzT,EAAM,KAAK,IACXC,EAAMC,IAAK,EAENhtC,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQ7zQ,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EACjE,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQvjB,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,EAClE,GAAIuuH,EAAOujB,EAAM9xI,CAAC,EAAG,CACnB,IAAI0xU,EAAUpxS,GAAIiuF,EAAMikN,CAAG,EAC3B3D,GAAStgN,EAAMvvG,EAAMyzT,EAAKzyU,EAAG8xI,EAAO,CAClC,KAAM4/L,EAAQ,KAAOA,EAAQ,MAAQA,EAAQ,SAC7C,MAAO,EACP,SAAUA,EAAQ,SAClB,KAAMA,EAAQ,IACxB,CAAS,CACH,CAIJ,OAAO,IAAI5jL,GAAW43I,EAAQ,KAAK,SAAU1mR,EAAMyzT,CAAG,CACxD,CCrBe,SAAAE,KAAW,CACxB,IAAIzB,EAAKC,EAAK3P,EAAO,KAAM75T,EAAK65T,EAAK,IAAK1yR,EAAO0yR,EAAK,KAAI,EAC1D,OAAO,IAAI,QAAQ,SAAS9uT,EAASmQ,EAAQ,CAC3C,IAAI2zK,EAAS,CAAC,MAAO3zK,CAAM,EACvB9X,EAAM,CAAC,MAAO,UAAW,CAAM,EAAE+jC,IAAS,GAAGp8B,GAAW,CAAC,EAE7D8uT,EAAK,KAAK,UAAW,CACnB,IAAIqN,EAAWtuS,GAAI,KAAM54B,CAAE,EACvB6vB,EAAKq3S,EAAS,GAKdr3S,IAAO05S,IACTC,GAAOD,EAAM15S,GAAI,KAAI,EACrB25S,EAAI,EAAE,OAAO,KAAK36I,CAAM,EACxB26I,EAAI,EAAE,UAAU,KAAK36I,CAAM,EAC3B26I,EAAI,EAAE,IAAI,KAAKpmU,CAAG,GAGpB8jU,EAAS,GAAKsC,CAChB,CAAC,EAGGriS,IAAS,GAAGp8B,EAAO,CACzB,CAAC,CACH,CCNA,IAAI/K,IAAK,EAEF,SAASmmJ,GAAW43I,EAAQ5c,EAAS9pQ,EAAMrX,EAAI,CACpD,KAAK,QAAU+9R,EACf,KAAK,SAAW5c,EAChB,KAAK,MAAQ9pQ,EACb,KAAK,IAAMrX,CACb,CAMO,SAAS+qU,KAAQ,CACtB,MAAO,EAAE/qU,GACX,CAEA,IAAIirU,GAAsBp1H,GAAU,UAEpC1vD,GAAW,UAAmC,CAC5C,YAAaA,GACb,OAAQ0jL,IACR,UAAWC,IACX,YAAamB,GAAoB,YACjC,eAAgBA,GAAoB,eACpC,OAAQ7B,IACR,MAAOC,IACP,UAAWW,IACX,WAAYY,IACZ,KAAMK,GAAoB,KAC1B,MAAOA,GAAoB,MAC3B,KAAMA,GAAoB,KAC1B,KAAMA,GAAoB,KAC1B,MAAOA,GAAoB,MAC3B,KAAMA,GAAoB,KAC1B,GAAIvB,IACJ,KAAMtB,IACN,UAAWK,IACX,MAAO2B,IACP,WAAYG,IACZ,KAAMC,IACN,UAAWG,IACX,OAAQf,IACR,MAAOhC,IACP,MAAOgB,IACP,SAAUG,IACV,KAAME,IACN,YAAaE,IACb,IAAK6B,IACL,CAAC,OAAO,QAAQ,EAAGC,GAAoB,OAAO,QAAQ,CACxD,EChEO,SAASC,IAAW,EAAG,CAC5B,QAAS,GAAK,IAAM,EAAI,EAAI,EAAI,GAAK,GAAK,GAAK,EAAI,EAAI,GAAK,CAC9D,CCLA,IAAIC,IAAgB,CAClB,KAAM,KACN,MAAO,EACP,SAAU,IACV,KAAMC,GACR,EAEA,SAASrB,IAAQnjN,EAAM5mH,EAAI,CAEzB,QADImnU,EACG,EAAEA,EAASvgN,EAAK,eAAiB,EAAEugN,EAASA,EAAOnnU,CAAE,IAC1D,GAAI,EAAE4mH,EAAOA,EAAK,YAChB,MAAM,IAAI,MAAM,cAAc5mH,CAAE,YAAY,EAGhD,OAAOmnU,CACT,CAEe,SAAAkE,IAASh0T,EAAM,CAC5B,IAAIrX,EACAmnU,EAEA9vT,aAAgB8uI,IAClBnmJ,EAAKqX,EAAK,IAAKA,EAAOA,EAAK,QAE3BrX,EAAK+qU,IAAK,GAAK5D,EAASgE,KAAe,KAAOvrQ,GAAG,EAAIvoD,EAAOA,GAAQ,KAAO,KAAOA,EAAO,IAG3F,QAAS0mR,EAAS,KAAK,QAAS7nS,EAAI6nS,EAAO,OAAQ7zQ,EAAI,EAAGA,EAAIh0B,EAAG,EAAEg0B,EACjE,QAASigH,EAAQ4zJ,EAAO7zQ,CAAC,EAAG/zB,EAAIg0I,EAAM,OAAQvjB,EAAMvuH,EAAI,EAAGA,EAAIlC,EAAG,EAAEkC,GAC9DuuH,EAAOujB,EAAM9xI,CAAC,IAChB6uU,GAAStgN,EAAMvvG,EAAMrX,EAAI3H,EAAG8xI,EAAOg9L,GAAU4C,IAAQnjN,EAAM5mH,CAAE,CAAC,EAKpE,OAAO,IAAImmJ,GAAW43I,EAAQ,KAAK,SAAU1mR,EAAMrX,CAAE,CACvD,CCrCA61M,GAAU,UAAU,UAAY0xH,IAChC1xH,GAAU,UAAU,WAAaw1H,ICLjC,MAAMv6O,GAAK,KAAK,GACZw6O,GAAM,EAAIx6O,GACVy6O,GAAU,KACVC,IAAaF,GAAMC,GAEvB,SAASxgR,IAAOylM,EAAS,CACvB,KAAK,GAAKA,EAAQ,CAAC,EACnB,QAASn4P,EAAI,EAAG,EAAIm4P,EAAQ,OAAQn4P,EAAI,EAAG,EAAEA,EAC3C,KAAK,GAAK,UAAUA,CAAC,EAAIm4P,EAAQn4P,CAAC,CAEtC,CAEA,SAASozU,IAAYC,EAAQ,CAC3B,IAAI91U,EAAI,KAAK,MAAM81U,CAAM,EACzB,GAAI,EAAE91U,GAAK,GAAI,MAAM,IAAI,MAAM,mBAAmB81U,CAAM,EAAE,EAC1D,GAAI91U,EAAI,GAAI,OAAOm1D,IACnB,MAAM90D,EAAI,IAAML,EAChB,OAAO,SAAS46P,EAAS,CACvB,KAAK,GAAKA,EAAQ,CAAC,EACnB,QAAS,EAAI,EAAGr6P,EAAIq6P,EAAQ,OAAQ,EAAIr6P,EAAG,EAAE,EAC3C,KAAK,GAAK,KAAK,MAAM,UAAU,CAAC,EAAIF,CAAC,EAAIA,EAAIu6P,EAAQ,CAAC,CAE1D,CACF,CAEO,MAAMm7E,GAAK,CAChB,YAAYD,EAAQ,CAClB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,KAAK,IAAM,KACtB,KAAK,EAAI,GACT,KAAK,QAAUA,GAAU,KAAO3gR,IAAS0gR,IAAYC,CAAM,CAC7D,CACA,OAAO/6U,EAAGC,EAAG,CACX,KAAK,WAAW,KAAK,IAAM,KAAK,IAAM,CAACD,CAAC,IAAI,KAAK,IAAM,KAAK,IAAM,CAACC,CAAC,EACtE,CACA,WAAY,CACN,KAAK,MAAQ,OACf,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IACrC,KAAK,WAET,CACA,OAAOD,EAAGC,EAAG,CACX,KAAK,WAAW,KAAK,IAAM,CAACD,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAChD,CACA,iBAAiBg7U,EAAIC,EAAIl7U,EAAGC,EAAG,CAC7B,KAAK,WAAW,CAACg7U,CAAE,IAAI,CAACC,CAAE,IAAI,KAAK,IAAM,CAACl7U,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAC9D,CACA,cAAcg7U,EAAIC,EAAIC,EAAIC,EAAIp7U,EAAGC,EAAG,CAClC,KAAK,WAAW,CAACg7U,CAAE,IAAI,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,KAAK,IAAM,CAACp7U,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAC5E,CACA,MAAMg7U,EAAIC,EAAIC,EAAIC,EAAIz1U,EAAG,CAIvB,GAHAs1U,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIz1U,EAAI,CAACA,EAGzCA,EAAI,EAAG,MAAM,IAAI,MAAM,oBAAoBA,CAAC,EAAE,EAElD,IAAI01U,EAAK,KAAK,IACVC,EAAK,KAAK,IACVC,EAAMJ,EAAKF,EACXO,EAAMJ,EAAKF,EACXO,EAAMJ,EAAKJ,EACXS,EAAMJ,EAAKJ,EACXS,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAI,KAAK,MAAQ,KACf,KAAK,WAAW,KAAK,IAAMT,CAAE,IAAI,KAAK,IAAMC,CAAE,WAIrCS,EAAQf,GAKd,GAAI,EAAE,KAAK,IAAIc,EAAMH,EAAMC,EAAMC,CAAG,EAAIb,KAAY,CAACj1U,EACxD,KAAK,WAAW,KAAK,IAAMs1U,CAAE,IAAI,KAAK,IAAMC,CAAE,OAI3C,CACH,IAAIU,EAAMT,EAAKE,EACXQ,EAAMT,EAAKE,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM,KAAK,KAAKF,CAAK,EACrBG,EAAM,KAAK,KAAKN,CAAK,EACrBhlT,EAAIhxB,EAAI,KAAK,KAAKw6F,GAAK,KAAK,MAAM27O,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,EAAI,GAAK,CAAC,EAChFC,EAAMvlT,EAAIslT,EACVE,EAAMxlT,EAAIqlT,EAGV,KAAK,IAAIE,EAAM,CAAC,EAAItB,IACtB,KAAK,WAAWK,EAAKiB,EAAMT,CAAG,IAAIP,EAAKgB,EAAMR,CAAG,GAGlD,KAAK,WAAW/1U,CAAC,IAAIA,CAAC,QAAQ,EAAE+1U,EAAME,EAAMH,EAAMI,EAAI,IAAI,KAAK,IAAMZ,EAAKkB,EAAMZ,CAAG,IAAI,KAAK,IAAML,EAAKiB,EAAMX,CAAG,EAClH,CACF,CACA,IAAIx7U,EAAGC,EAAG,EAAGm8U,EAAI5f,EAAI6f,EAAK,CAIxB,GAHAr8U,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG,EAAI,CAAC,EAAGo8U,EAAM,CAAC,CAACA,EAG5B,EAAI,EAAG,MAAM,IAAI,MAAM,oBAAoB,CAAC,EAAE,EAElD,IAAItxH,EAAK,EAAI,KAAK,IAAIqxH,CAAE,EACpBziH,EAAK,EAAI,KAAK,IAAIyiH,CAAE,EACpBf,EAAKr7U,EAAI+qN,EACTuwH,EAAKr7U,EAAI05N,EACT2iH,EAAK,EAAID,EACT7kT,EAAK6kT,EAAMD,EAAK5f,EAAKA,EAAK4f,EAG1B,KAAK,MAAQ,KACf,KAAK,WAAWf,CAAE,IAAIC,CAAE,IAIjB,KAAK,IAAI,KAAK,IAAMD,CAAE,EAAIT,IAAW,KAAK,IAAI,KAAK,IAAMU,CAAE,EAAIV,KACtE,KAAK,WAAWS,CAAE,IAAIC,CAAE,GAIrB,IAGD9jT,EAAK,IAAGA,EAAKA,EAAKmjT,GAAMA,IAGxBnjT,EAAKqjT,IACP,KAAK,WAAW,CAAC,IAAI,CAAC,QAAQyB,CAAE,IAAIt8U,EAAI+qN,CAAE,IAAI9qN,EAAI05N,CAAE,IAAI,CAAC,IAAI,CAAC,QAAQ2iH,CAAE,IAAI,KAAK,IAAMjB,CAAE,IAAI,KAAK,IAAMC,CAAE,GAInG9jT,EAAKojT,IACZ,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,EAAEpjT,GAAM2oE,GAAG,IAAIm8O,CAAE,IAAI,KAAK,IAAMt8U,EAAI,EAAI,KAAK,IAAIw8T,CAAE,CAAC,IAAI,KAAK,IAAMv8T,EAAI,EAAI,KAAK,IAAIu8T,CAAE,CAAC,GAEvH,CACA,KAAKx8T,EAAGC,EAAG6F,EAAGT,EAAG,CACf,KAAK,WAAW,KAAK,IAAM,KAAK,IAAM,CAACrF,CAAC,IAAI,KAAK,IAAM,KAAK,IAAM,CAACC,CAAC,IAAI6F,EAAI,CAACA,CAAC,IAAI,CAACT,CAAC,IAAI,CAACS,CAAC,GAC5F,CACA,UAAW,CACT,OAAO,KAAK,CACd,CACF,CChJe,SAAAy2U,GAASv8U,EAAG,CACzB,OAAO,UAAoB,CACzB,OAAOA,CACT,CACF,CCJY,MAACw8U,IAAM,KAAK,IACXC,IAAQ,KAAK,MACbC,IAAM,KAAK,IACX52R,IAAM,KAAK,IACX2mE,IAAM,KAAK,IACXkwN,IAAM,KAAK,IACXC,IAAO,KAAK,KAEZhC,IAAU,MACVz6O,GAAK,KAAK,GACV08O,IAAS18O,GAAK,EACdw6O,IAAM,EAAIx6O,GAEhB,SAAS28O,IAAK98U,EAAG,CACtB,OAAOA,EAAI,EAAI,EAAIA,EAAI,GAAKmgG,GAAK,KAAK,KAAKngG,CAAC,CAC9C,CAEO,SAAS+8U,IAAK/8U,EAAG,CACtB,OAAOA,GAAK,EAAI68U,IAAS78U,GAAK,GAAK,CAAC68U,IAAS,KAAK,KAAK78U,CAAC,CAC1D,CCjBO,SAASg9U,IAASC,EAAO,CAC9B,IAAIlC,EAAS,EAEb,OAAAkC,EAAM,OAAS,SAASzpU,EAAG,CACzB,GAAI,CAAC,UAAU,OAAQ,OAAOunU,EAC9B,GAAIvnU,GAAK,KACPunU,EAAS,SACJ,CACL,MAAM91U,EAAI,KAAK,MAAMuO,CAAC,EACtB,GAAI,EAAEvO,GAAK,GAAI,MAAM,IAAI,WAAW,mBAAmBuO,CAAC,EAAE,EAC1DunU,EAAS91U,CACX,CACA,OAAOg4U,CACT,EAEO,IAAM,IAAIjC,IAAKD,CAAM,CAC9B,CChBe,SAAAmC,IAASl9U,EAAG,CACzB,OAAO,OAAOA,GAAM,UAAY,WAAYA,EACxCA,EACA,MAAM,KAAKA,CAAC,CAClB,CCNA,SAASm9U,IAAO75U,EAAS,CACvB,KAAK,SAAWA,CAClB,CAEA65U,IAAO,UAAY,CACjB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,EACd,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAASn9U,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EACtB,QAAS,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,KAC3C,CACE,CACF,EAEe,SAAAm9U,GAAS95U,EAAS,CAC/B,OAAO,IAAI65U,IAAO75U,CAAO,CAC3B,CC9BO,SAAStD,IAAEyF,EAAG,CACnB,OAAOA,EAAE,CAAC,CACZ,CAEO,SAASxF,IAAEwF,EAAG,CACnB,OAAOA,EAAE,CAAC,CACZ,CCAe,SAAA43U,IAASr9U,EAAGC,EAAG,CAC5B,IAAI8nR,EAAU18F,GAAS,EAAI,EACvB/nL,EAAU,KACVg6U,EAAQF,GACRl3R,EAAS,KACTx4C,EAAOsvU,IAASz7R,CAAI,EAExBvhD,EAAI,OAAOA,GAAM,WAAaA,EAAKA,IAAM,OAAau9U,IAASlyJ,GAASrrL,CAAC,EACzEC,EAAI,OAAOA,GAAM,WAAaA,EAAKA,IAAM,OAAau9U,IAASnyJ,GAASprL,CAAC,EAEzE,SAASshD,EAAKzrC,EAAM,CAClB,IAAIpO,EACAlC,GAAKsQ,EAAO64B,IAAM74B,CAAI,GAAG,OACzB,EACA2nU,EAAW,GACXt7S,EAIJ,IAFI7+B,GAAW,OAAM4iD,EAASo3R,EAAMn7S,EAASz0B,GAAM,GAE9ChG,EAAI,EAAGA,GAAKlC,EAAG,EAAEkC,EAChB,EAAEA,EAAIlC,GAAKuiR,EAAQ,EAAIjyQ,EAAKpO,CAAC,EAAGA,EAAGoO,CAAI,KAAO2nU,KAC5CA,EAAW,CAACA,GAAUv3R,EAAO,UAAS,EACrCA,EAAO,QAAO,GAEjBu3R,GAAUv3R,EAAO,MAAM,CAAClmD,EAAE,EAAG0H,EAAGoO,CAAI,EAAG,CAAC7V,EAAE,EAAGyH,EAAGoO,CAAI,CAAC,EAG3D,GAAIqsB,EAAQ,OAAO+jB,EAAS,KAAM/jB,EAAS,IAAM,IACnD,CAEA,OAAAof,EAAK,EAAI,SAAS/tC,EAAG,CACnB,OAAO,UAAU,QAAUxT,EAAI,OAAOwT,GAAM,WAAaA,EAAI63K,GAAS,CAAC73K,CAAC,EAAG+tC,GAAQvhD,CACrF,EAEAuhD,EAAK,EAAI,SAAS/tC,EAAG,CACnB,OAAO,UAAU,QAAUvT,EAAI,OAAOuT,GAAM,WAAaA,EAAI63K,GAAS,CAAC73K,CAAC,EAAG+tC,GAAQthD,CACrF,EAEAshD,EAAK,QAAU,SAAS/tC,EAAG,CACzB,OAAO,UAAU,QAAUu0Q,EAAU,OAAOv0Q,GAAM,WAAaA,EAAI63K,GAAS,CAAC,CAAC73K,CAAC,EAAG+tC,GAAQwmO,CAC5F,EAEAxmO,EAAK,MAAQ,SAAS/tC,EAAG,CACvB,OAAO,UAAU,QAAU8pU,EAAQ9pU,EAAGlQ,GAAW,OAAS4iD,EAASo3R,EAAMh6U,CAAO,GAAIi+C,GAAQ+7R,CAC9F,EAEA/7R,EAAK,QAAU,SAAS/tC,EAAG,CACzB,OAAO,UAAU,QAAUA,GAAK,KAAOlQ,EAAU4iD,EAAS,KAAOA,EAASo3R,EAAMh6U,EAAUkQ,CAAC,EAAG+tC,GAAQj+C,CACxG,EAEOi+C,CACT,CCvDA,MAAMm8R,GAAK,CACT,YAAYp6U,EAAStD,EAAG,CACtB,KAAK,SAAWsD,EAChB,KAAK,GAAKtD,CACZ,CACA,WAAY,CACV,KAAK,MAAQ,CACf,CACA,SAAU,CACR,KAAK,MAAQ,GACf,CACA,WAAY,CACV,KAAK,OAAS,CAChB,CACA,SAAU,EACJ,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,CACA,MAAMA,EAAGC,EAAG,CAEV,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,CACN,KAAK,OAAS,EACV,KAAK,MAAO,KAAK,SAAS,OAAOD,EAAGC,CAAC,EACpC,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAC9B,KACF,CACA,IAAK,GAAG,KAAK,OAAS,EACtB,QAAS,CACH,KAAK,GAAI,KAAK,SAAS,cAAc,KAAK,KAAO,KAAK,IAAMD,GAAK,EAAG,KAAK,IAAK,KAAK,IAAKC,EAAGD,EAAGC,CAAC,EAC9F,KAAK,SAAS,cAAc,KAAK,IAAK,KAAK,KAAO,KAAK,IAAMA,GAAK,EAAGD,EAAG,KAAK,IAAKA,EAAGC,CAAC,EAC3F,KACF,CACN,CACI,KAAK,IAAMD,EAAG,KAAK,IAAMC,CAC3B,CACF,CA0BO,SAAS09U,IAAMr6U,EAAS,CAC7B,OAAO,IAAIo6U,IAAKp6U,EAAS,EAAI,CAC/B,CAEO,SAASs6U,IAAMt6U,EAAS,CAC7B,OAAO,IAAIo6U,IAAKp6U,EAAS,EAAK,CAChC,CCtEe,SAAA83C,IAAW,CAAC,CCApB,SAASmnK,GAAM2mH,EAAMlpU,EAAGC,EAAG,CAChCipU,EAAK,SAAS,eACX,EAAIA,EAAK,IAAMA,EAAK,KAAO,GAC3B,EAAIA,EAAK,IAAMA,EAAK,KAAO,GAC3BA,EAAK,IAAM,EAAIA,EAAK,KAAO,GAC3BA,EAAK,IAAM,EAAIA,EAAK,KAAO,GAC3BA,EAAK,IAAM,EAAIA,EAAK,IAAMlpU,GAAK,GAC/BkpU,EAAK,IAAM,EAAIA,EAAK,IAAMjpU,GAAK,CACpC,CACA,CAEO,SAAS49U,GAAMv6U,EAAS,CAC7B,KAAK,SAAWA,CAClB,CAEAu6U,GAAM,UAAY,CAChB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,KAAK,IAAM,IACtB,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAGt7H,GAAM,KAAM,KAAK,IAAK,KAAK,GAAG,EACtC,IAAK,GAAG,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,KACxD,EACQ,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAASviN,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,SAAS,QAAQ,EAAI,KAAK,IAAM,KAAK,KAAO,GAAI,EAAI,KAAK,IAAM,KAAK,KAAO,CAAC,EAC1G,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EAChC,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CAClC,CACF,EAEe,SAAA69U,GAASx6U,EAAS,CAC/B,OAAO,IAAIu6U,GAAMv6U,CAAO,CAC1B,CC/CA,SAASy6U,IAAYz6U,EAAS,CAC5B,KAAK,SAAWA,CAClB,CAEAy6U,IAAY,UAAY,CACtB,UAAW3iS,GACX,QAASA,GACT,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IACjD,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IACvD,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,CACN,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EACvC,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,SAAS,QAAQ,KAAK,IAAM,EAAI,KAAK,KAAO,GAAI,KAAK,IAAM,EAAI,KAAK,KAAO,CAAC,EACjF,KAAK,SAAS,QAAQ,KAAK,IAAM,EAAI,KAAK,KAAO,GAAI,KAAK,IAAM,EAAI,KAAK,KAAO,CAAC,EACjF,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KACF,CACN,CACE,EACA,MAAO,SAASp7C,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,KAAK,SAAS,QAAQ,KAAK,IAAM,EAAI,KAAK,IAAMD,GAAK,GAAI,KAAK,IAAM,EAAI,KAAK,IAAMC,GAAK,CAAC,EAAG,MACjJ,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EAChC,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CAClC,CACF,EAEe,SAAA+9U,IAAS16U,EAAS,CAC/B,OAAO,IAAIy6U,IAAYz6U,CAAO,CAChC,CCjDA,SAAS26U,IAAU36U,EAAS,CAC1B,KAAK,SAAWA,CAClB,CAEA26U,IAAU,UAAY,CACpB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,KAAK,IAAM,IACtB,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,EACd,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAASj+U,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,IAAIo7U,GAAM,KAAK,IAAM,EAAI,KAAK,IAAMr7U,GAAK,EAAGs7U,GAAM,KAAK,IAAM,EAAI,KAAK,IAAMr7U,GAAK,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOo7U,EAAIC,CAAE,EAAI,KAAK,SAAS,OAAOD,EAAIC,CAAE,EAAG,MACvL,IAAK,GAAG,KAAK,OAAS,EACtB,QAAS/4H,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EAChC,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CAClC,CACF,EAEe,SAAAi+U,IAAS56U,EAAS,CAC/B,OAAO,IAAI26U,IAAU36U,CAAO,CAC9B,CCpCA,SAAS66U,IAAO76U,EAAS86U,EAAM,CAC7B,KAAK,OAAS,IAAIP,GAAMv6U,CAAO,EAC/B,KAAK,MAAQ86U,CACf,CAEAD,IAAO,UAAY,CACjB,UAAW,UAAW,CACpB,KAAK,GAAK,GACV,KAAK,GAAK,GACV,KAAK,OAAO,UAAS,CACvB,EACA,QAAS,UAAW,CAClB,IAAIn+U,EAAI,KAAK,GACTC,EAAI,KAAK,GACTs5B,EAAIv5B,EAAE,OAAS,EAEnB,GAAIu5B,EAAI,EAQN,QAPI8hT,EAAKr7U,EAAE,CAAC,EACRs7U,EAAKr7U,EAAE,CAAC,EACR8qN,EAAK/qN,EAAEu5B,CAAC,EAAI8hT,EACZ1hH,EAAK15N,EAAEs5B,CAAC,EAAI+hT,EACZ5zU,EAAI,GACJ9B,EAEG,EAAE8B,GAAK6xB,GACZ3zB,EAAI8B,EAAI6xB,EACR,KAAK,OAAO,MACV,KAAK,MAAQv5B,EAAE0H,CAAC,GAAK,EAAI,KAAK,QAAU2zU,EAAKz1U,EAAImlN,GACjD,KAAK,MAAQ9qN,EAAEyH,CAAC,GAAK,EAAI,KAAK,QAAU4zU,EAAK11U,EAAI+zN,EAC3D,EAII,KAAK,GAAK,KAAK,GAAK,KACpB,KAAK,OAAO,QAAO,CACrB,EACA,MAAO,SAAS35N,EAAGC,EAAG,CACpB,KAAK,GAAG,KAAK,CAACD,CAAC,EACf,KAAK,GAAG,KAAK,CAACC,CAAC,CACjB,CACF,EAEA,MAAAo+U,KAAgB,SAAS3uH,EAAO0uH,EAAM,CAEpC,SAASE,EAAOh7U,EAAS,CACvB,OAAO86U,IAAS,EAAI,IAAIP,GAAMv6U,CAAO,EAAI,IAAI66U,IAAO76U,EAAS86U,CAAI,CACnE,CAEA,OAAAE,EAAO,KAAO,SAASF,EAAM,CAC3B,OAAO1uH,EAAO,CAAC0uH,CAAI,CACrB,EAEOE,CACT,GAAG,GAAI,ECvDA,SAAS/7H,GAAM2mH,EAAMlpU,EAAGC,EAAG,CAChCipU,EAAK,SAAS,cACZA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KACtCA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAMA,EAAK,KACtCA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAMlpU,GACjCkpU,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAMjpU,GACjCipU,EAAK,IACLA,EAAK,GACT,CACA,CAEO,SAASqV,GAASj7U,EAASk7U,EAAS,CACzC,KAAK,SAAWl7U,EAChB,KAAK,IAAM,EAAIk7U,GAAW,CAC5B,CAEAD,GAAS,UAAY,CACnB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAC3B,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IACjC,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,MAClD,IAAK,GAAGh8H,GAAM,KAAM,KAAK,IAAK,KAAK,GAAG,EAAG,KAC/C,EACQ,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAASviN,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,IAAK,GAAG,KAAK,OAAS,EACtB,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAAw+U,KAAgB,SAAS/uH,EAAO8uH,EAAS,CAEvC,SAASE,EAASp7U,EAAS,CACzB,OAAO,IAAIi7U,GAASj7U,EAASk7U,CAAO,CACtC,CAEA,OAAAE,EAAS,QAAU,SAASF,EAAS,CACnC,OAAO9uH,EAAO,CAAC8uH,CAAO,CACxB,EAEOE,CACT,GAAG,CAAC,ECzDG,SAASC,GAAer7U,EAASk7U,EAAS,CAC/C,KAAK,SAAWl7U,EAChB,KAAK,IAAM,EAAIk7U,GAAW,CAC5B,CAEAG,GAAe,UAAY,CACzB,UAAWvjS,GACX,QAASA,GACT,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAC5D,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IAClE,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,CACN,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EACvC,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EACvC,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KACF,CACN,CACE,EACA,MAAO,SAASp7C,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,SAAS,OAAO,KAAK,IAAMD,EAAG,KAAK,IAAMC,CAAC,EAAG,MAC3E,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAA2+U,KAAgB,SAASlvH,EAAO8uH,EAAS,CAEvC,SAASE,EAASp7U,EAAS,CACzB,OAAO,IAAIq7U,GAAer7U,EAASk7U,CAAO,CAC5C,CAEA,OAAAE,EAAS,QAAU,SAASF,EAAS,CACnC,OAAO9uH,EAAO,CAAC8uH,CAAO,CACxB,EAEOE,CACT,GAAG,CAAC,EC1DG,SAASG,GAAav7U,EAASk7U,EAAS,CAC7C,KAAK,SAAWl7U,EAChB,KAAK,IAAM,EAAIk7U,GAAW,CAC5B,CAEAK,GAAa,UAAY,CACvB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAC3B,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IACjC,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,EACd,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAAS7+U,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAI,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,MAC3H,IAAK,GAAG,KAAK,OAAS,EACtB,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CACI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAA6+U,KAAgB,SAASpvH,EAAO8uH,EAAS,CAEvC,SAASE,EAASp7U,EAAS,CACzB,OAAO,IAAIu7U,GAAav7U,EAASk7U,CAAO,CAC1C,CAEA,OAAAE,EAAS,QAAU,SAASF,EAAS,CACnC,OAAO9uH,EAAO,CAAC8uH,CAAO,CACxB,EAEOE,CACT,GAAG,CAAC,EC7CG,SAASn8H,GAAM2mH,EAAMlpU,EAAGC,EAAG,CAChC,IAAIg7U,EAAK/R,EAAK,IACVgS,EAAKhS,EAAK,IACViS,EAAKjS,EAAK,IACVkS,EAAKlS,EAAK,IAEd,GAAIA,EAAK,OAAS0R,IAAS,CACzB,IAAI92U,EAAI,EAAIolU,EAAK,QAAU,EAAIA,EAAK,OAASA,EAAK,OAASA,EAAK,QAC5D1jU,EAAI,EAAI0jU,EAAK,QAAUA,EAAK,OAASA,EAAK,QAC9C+R,GAAMA,EAAKn3U,EAAIolU,EAAK,IAAMA,EAAK,QAAUA,EAAK,IAAMA,EAAK,SAAW1jU,EACpE01U,GAAMA,EAAKp3U,EAAIolU,EAAK,IAAMA,EAAK,QAAUA,EAAK,IAAMA,EAAK,SAAW1jU,CACtE,CAEA,GAAI0jU,EAAK,OAAS0R,IAAS,CACzB,IAAI72U,EAAI,EAAImlU,EAAK,QAAU,EAAIA,EAAK,OAASA,EAAK,OAASA,EAAK,QAC5D3jU,EAAI,EAAI2jU,EAAK,QAAUA,EAAK,OAASA,EAAK,QAC9CiS,GAAMA,EAAKp3U,EAAImlU,EAAK,IAAMA,EAAK,QAAUlpU,EAAIkpU,EAAK,SAAW3jU,EAC7D61U,GAAMA,EAAKr3U,EAAImlU,EAAK,IAAMA,EAAK,QAAUjpU,EAAIipU,EAAK,SAAW3jU,CAC/D,CAEA2jU,EAAK,SAAS,cAAc+R,EAAIC,EAAIC,EAAIC,EAAIlS,EAAK,IAAKA,EAAK,GAAG,CAChE,CAEA,SAAS6V,IAAWz7U,EAAS07U,EAAO,CAClC,KAAK,SAAW17U,EAChB,KAAK,OAAS07U,CAChB,CAEAD,IAAW,UAAY,CACrB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAC3B,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IACjC,KAAK,OAAS,KAAK,OAAS,KAAK,OACjC,KAAK,QAAU,KAAK,QAAU,KAAK,QACnC,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,MAClD,IAAK,GAAG,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAAG,KAC9C,EACQ,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAAS/+U,EAAGC,EAAG,CAGpB,GAFAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAET,KAAK,OAAQ,CACf,IAAIg/U,EAAM,KAAK,IAAMj/U,EACjBk/U,EAAM,KAAK,IAAMj/U,EACrB,KAAK,OAAS,KAAK,KAAK,KAAK,QAAU,KAAK,IAAIg/U,EAAMA,EAAMC,EAAMA,EAAK,KAAK,MAAM,CAAC,CACrF,CAEA,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOl/U,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EACtB,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CAEI,KAAK,OAAS,KAAK,OAAQ,KAAK,OAAS,KAAK,OAC9C,KAAK,QAAU,KAAK,QAAS,KAAK,QAAU,KAAK,QACjD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAAk/U,KAAgB,SAASzvH,EAAOsvH,EAAO,CAErC,SAASI,EAAW97U,EAAS,CAC3B,OAAO07U,EAAQ,IAAID,IAAWz7U,EAAS07U,CAAK,EAAI,IAAIT,GAASj7U,EAAS,CAAC,CACzE,CAEA,OAAA87U,EAAW,MAAQ,SAASJ,EAAO,CACjC,OAAOtvH,EAAO,CAACsvH,CAAK,CACtB,EAEOI,CACT,GAAG,EAAG,ECnFN,SAASC,IAAiB/7U,EAAS07U,EAAO,CACxC,KAAK,SAAW17U,EAChB,KAAK,OAAS07U,CAChB,CAEAK,IAAiB,UAAY,CAC3B,UAAWjkS,GACX,QAASA,GACT,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAC5D,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IAClE,KAAK,OAAS,KAAK,OAAS,KAAK,OACjC,KAAK,QAAU,KAAK,QAAU,KAAK,QACnC,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,CACN,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EACvC,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EACvC,KAAK,SAAS,UAAS,EACvB,KACF,CACA,IAAK,GAAG,CACN,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KAAK,MAAM,KAAK,IAAK,KAAK,GAAG,EAC7B,KACF,CACN,CACE,EACA,MAAO,SAASp7C,EAAGC,EAAG,CAGpB,GAFAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAET,KAAK,OAAQ,CACf,IAAIg/U,EAAM,KAAK,IAAMj/U,EACjBk/U,EAAM,KAAK,IAAMj/U,EACrB,KAAK,OAAS,KAAK,KAAK,KAAK,QAAU,KAAK,IAAIg/U,EAAMA,EAAMC,EAAMA,EAAK,KAAK,MAAM,CAAC,CACrF,CAEA,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMl/U,EAAG,KAAK,IAAMC,EAAG,MACrD,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,SAAS,OAAO,KAAK,IAAMD,EAAG,KAAK,IAAMC,CAAC,EAAG,MAC3E,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,IAAMD,EAAG,KAAK,IAAMC,EAAG,MACrD,QAASsiN,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CAEI,KAAK,OAAS,KAAK,OAAQ,KAAK,OAAS,KAAK,OAC9C,KAAK,QAAU,KAAK,QAAS,KAAK,QAAU,KAAK,QACjD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAAq/U,KAAgB,SAAS5vH,EAAOsvH,EAAO,CAErC,SAASI,EAAW97U,EAAS,CAC3B,OAAO07U,EAAQ,IAAIK,IAAiB/7U,EAAS07U,CAAK,EAAI,IAAIL,GAAer7U,EAAS,CAAC,CACrF,CAEA,OAAA87U,EAAW,MAAQ,SAASJ,EAAO,CACjC,OAAOtvH,EAAO,CAACsvH,CAAK,CACtB,EAEOI,CACT,GAAG,EAAG,ECtEN,SAASG,IAAej8U,EAAS07U,EAAO,CACtC,KAAK,SAAW17U,EAChB,KAAK,OAAS07U,CAChB,CAEAO,IAAe,UAAY,CACzB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAAM,KAAK,IAC3B,KAAK,IAAM,KAAK,IAAM,KAAK,IAAM,IACjC,KAAK,OAAS,KAAK,OAAS,KAAK,OACjC,KAAK,QAAU,KAAK,QAAU,KAAK,QACnC,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,EACd,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAASv/U,EAAGC,EAAG,CAGpB,GAFAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAET,KAAK,OAAQ,CACf,IAAIg/U,EAAM,KAAK,IAAMj/U,EACjBk/U,EAAM,KAAK,IAAMj/U,EACrB,KAAK,OAAS,KAAK,KAAK,KAAK,QAAU,KAAK,IAAIg/U,EAAMA,EAAMC,EAAMA,EAAK,KAAK,MAAM,CAAC,CACrF,CAEA,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAI,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,MAC3H,IAAK,GAAG,KAAK,OAAS,EACtB,QAAS38H,GAAM,KAAMviN,EAAGC,CAAC,EAAG,KAClC,CAEI,KAAK,OAAS,KAAK,OAAQ,KAAK,OAAS,KAAK,OAC9C,KAAK,QAAU,KAAK,QAAS,KAAK,QAAU,KAAK,QACjD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EACrD,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,CACvD,CACF,EAEA,MAAAu/U,KAAgB,SAAS9vH,EAAOsvH,EAAO,CAErC,SAASI,EAAW97U,EAAS,CAC3B,OAAO07U,EAAQ,IAAIO,IAAej8U,EAAS07U,CAAK,EAAI,IAAIH,GAAav7U,EAAS,CAAC,CACjF,CAEA,OAAA87U,EAAW,MAAQ,SAASJ,EAAO,CACjC,OAAOtvH,EAAO,CAACsvH,CAAK,CACtB,EAEOI,CACT,GAAG,EAAG,EC3DN,SAASK,IAAan8U,EAAS,CAC7B,KAAK,SAAWA,CAClB,CAEAm8U,IAAa,UAAY,CACvB,UAAWrkS,GACX,QAASA,GACT,UAAW,UAAW,CACpB,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CACd,KAAK,QAAQ,KAAK,SAAS,UAAS,CAC1C,EACA,MAAO,SAASp7C,EAAGC,EAAG,CACpBD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACT,KAAK,OAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,GACrC,KAAK,OAAS,EAAG,KAAK,SAAS,OAAOD,EAAGC,CAAC,EACjD,CACF,EAEe,SAAAy/U,IAASp8U,EAAS,CAC/B,OAAO,IAAIm8U,IAAan8U,CAAO,CACjC,CCxBA,SAAS4wJ,IAAKl0J,EAAG,CACf,OAAOA,EAAI,EAAI,GAAK,CACtB,CAMA,SAAS2/U,IAAOzW,EAAMiS,EAAIC,EAAI,CAC5B,IAAIwE,EAAK1W,EAAK,IAAMA,EAAK,IACrB2W,EAAK1E,EAAKjS,EAAK,IACf4W,GAAM5W,EAAK,IAAMA,EAAK,MAAQ0W,GAAMC,EAAK,GAAK,IAC9CE,GAAM3E,EAAKlS,EAAK,MAAQ2W,GAAMD,EAAK,GAAK,IACxCn6U,GAAKq6U,EAAKD,EAAKE,EAAKH,IAAOA,EAAKC,GACpC,OAAQ3rL,IAAK4rL,CAAE,EAAI5rL,IAAK6rL,CAAE,GAAK,KAAK,IAAI,KAAK,IAAID,CAAE,EAAG,KAAK,IAAIC,CAAE,EAAG,GAAM,KAAK,IAAIt6U,CAAC,CAAC,GAAK,CAC5F,CAGA,SAASu6U,IAAO9W,EAAMtjU,EAAG,CACvB,IAAIP,EAAI6jU,EAAK,IAAMA,EAAK,IACxB,OAAO7jU,GAAK,GAAK6jU,EAAK,IAAMA,EAAK,KAAO7jU,EAAIO,GAAK,EAAIA,CACvD,CAKA,SAAS28M,GAAM2mH,EAAMwM,EAAIC,EAAI,CAC3B,IAAI0F,EAAKnS,EAAK,IACVoS,EAAKpS,EAAK,IACV+R,EAAK/R,EAAK,IACVgS,EAAKhS,EAAK,IACVn+G,GAAMkwH,EAAKI,GAAM,EACrBnS,EAAK,SAAS,cAAcmS,EAAKtwH,EAAIuwH,EAAKvwH,EAAK2qH,EAAIuF,EAAKlwH,EAAImwH,EAAKnwH,EAAK4qH,EAAIsF,EAAIC,CAAE,CAClF,CAEA,SAAS+E,GAAU38U,EAAS,CAC1B,KAAK,SAAWA,CAClB,CAEA28U,GAAU,UAAY,CACpB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,IACX,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CAClB,OAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,SAAS,OAAO,KAAK,IAAK,KAAK,GAAG,EAAG,MAClD,IAAK,GAAG19H,GAAM,KAAM,KAAK,IAAKy9H,IAAO,KAAM,KAAK,GAAG,CAAC,EAAG,KAC7D,EACQ,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAClF,KAAK,MAAQ,EAAI,KAAK,KACxB,EACA,MAAO,SAAShgV,EAAGC,EAAG,CACpB,IAAI01U,EAAK,IAGT,GADA31U,EAAI,CAACA,EAAGC,EAAI,CAACA,EACT,EAAAD,IAAM,KAAK,KAAOC,IAAM,KAAK,KACjC,QAAQ,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EAAG,MACzB,IAAK,GAAG,KAAK,OAAS,EAAGsiN,GAAM,KAAMy9H,IAAO,KAAMrK,EAAKgK,IAAO,KAAM3/U,EAAGC,CAAC,CAAC,EAAG01U,CAAE,EAAG,MACjF,QAASpzH,GAAM,KAAM,KAAK,IAAKozH,EAAKgK,IAAO,KAAM3/U,EAAGC,CAAC,CAAC,EAAG,KAC/D,CAEI,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMD,EAChC,KAAK,IAAM,KAAK,IAAK,KAAK,IAAMC,EAChC,KAAK,IAAM01U,EACb,CACF,EAEA,SAASuK,IAAU58U,EAAS,CAC1B,KAAK,SAAW,IAAI68U,IAAe78U,CAAO,CAC5C,EAEC48U,IAAU,UAAY,OAAO,OAAOD,GAAU,SAAS,GAAG,MAAQ,SAASjgV,EAAGC,EAAG,CAChFggV,GAAU,UAAU,MAAM,KAAK,KAAMhgV,EAAGD,CAAC,CAC3C,EAEA,SAASmgV,IAAe78U,EAAS,CAC/B,KAAK,SAAWA,CAClB,CAEA68U,IAAe,UAAY,CACzB,OAAQ,SAASngV,EAAGC,EAAG,CAAE,KAAK,SAAS,OAAOA,EAAGD,CAAC,CAAG,EACrD,UAAW,UAAW,CAAE,KAAK,SAAS,UAAS,CAAI,EACnD,OAAQ,SAASA,EAAGC,EAAG,CAAE,KAAK,SAAS,OAAOA,EAAGD,CAAC,CAAG,EACrD,cAAe,SAASi7U,EAAIC,EAAIC,EAAIC,EAAIp7U,EAAGC,EAAG,CAAE,KAAK,SAAS,cAAci7U,EAAID,EAAIG,EAAID,EAAIl7U,EAAGD,CAAC,CAAG,CACrG,EAEO,SAASogV,IAAU98U,EAAS,CACjC,OAAO,IAAI28U,GAAU38U,CAAO,CAC9B,CAEO,SAAS+8U,IAAU/8U,EAAS,CACjC,OAAO,IAAI48U,IAAU58U,CAAO,CAC9B,CCvGA,SAASg9U,IAAQh9U,EAAS,CACxB,KAAK,SAAWA,CAClB,CAEAg9U,IAAQ,UAAY,CAClB,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,GAAK,GACV,KAAK,GAAK,EACZ,EACA,QAAS,UAAW,CAClB,IAAItgV,EAAI,KAAK,GACTC,EAAI,KAAK,GACT,EAAID,EAAE,OAEV,GAAI,EAEF,GADA,KAAK,MAAQ,KAAK,SAAS,OAAOA,EAAE,CAAC,EAAGC,EAAE,CAAC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAE,CAAC,EAAGC,EAAE,CAAC,CAAC,EAC3E,IAAM,EACR,KAAK,SAAS,OAAOD,EAAE,CAAC,EAAGC,EAAE,CAAC,CAAC,MAI/B,SAFIsgV,EAAKC,IAAcxgV,CAAC,EACpBygV,EAAKD,IAAcvgV,CAAC,EACforU,EAAK,EAAGC,EAAK,EAAGA,EAAK,EAAG,EAAED,EAAI,EAAEC,EACvC,KAAK,SAAS,cAAciV,EAAG,CAAC,EAAElV,CAAE,EAAGoV,EAAG,CAAC,EAAEpV,CAAE,EAAGkV,EAAG,CAAC,EAAElV,CAAE,EAAGoV,EAAG,CAAC,EAAEpV,CAAE,EAAGrrU,EAAEsrU,CAAE,EAAGrrU,EAAEqrU,CAAE,CAAC,GAKtF,KAAK,OAAU,KAAK,QAAU,GAAK,IAAM,IAAI,KAAK,SAAS,UAAS,EACxE,KAAK,MAAQ,EAAI,KAAK,MACtB,KAAK,GAAK,KAAK,GAAK,IACtB,EACA,MAAO,SAAStrU,EAAGC,EAAG,CACpB,KAAK,GAAG,KAAK,CAACD,CAAC,EACf,KAAK,GAAG,KAAK,CAACC,CAAC,CACjB,CACF,EAGA,SAASugV,IAAcxgV,EAAG,CACxB,IAAI0H,EACA,EAAI1H,EAAE,OAAS,EACfuF,EACAzB,EAAI,IAAI,MAAM,CAAC,EACfC,EAAI,IAAI,MAAM,CAAC,EACf4B,EAAI,IAAI,MAAM,CAAC,EAEnB,IADA7B,EAAE,CAAC,EAAI,EAAGC,EAAE,CAAC,EAAI,EAAG4B,EAAE,CAAC,EAAI3F,EAAE,CAAC,EAAI,EAAIA,EAAE,CAAC,EACpC0H,EAAI,EAAGA,EAAI,EAAI,EAAG,EAAEA,EAAG5D,EAAE4D,CAAC,EAAI,EAAG3D,EAAE2D,CAAC,EAAI,EAAG/B,EAAE+B,CAAC,EAAI,EAAI1H,EAAE0H,CAAC,EAAI,EAAI1H,EAAE0H,EAAI,CAAC,EAE7E,IADA5D,EAAE,EAAI,CAAC,EAAI,EAAGC,EAAE,EAAI,CAAC,EAAI,EAAG4B,EAAE,EAAI,CAAC,EAAI,EAAI3F,EAAE,EAAI,CAAC,EAAIA,EAAE,CAAC,EACpD0H,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAAGnC,EAAIzB,EAAE4D,CAAC,EAAI3D,EAAE2D,EAAI,CAAC,EAAG3D,EAAE2D,CAAC,GAAKnC,EAAGI,EAAE+B,CAAC,GAAKnC,EAAII,EAAE+B,EAAI,CAAC,EAE3E,IADA5D,EAAE,EAAI,CAAC,EAAI6B,EAAE,EAAI,CAAC,EAAI5B,EAAE,EAAI,CAAC,EACxB2D,EAAI,EAAI,EAAGA,GAAK,EAAG,EAAEA,EAAG5D,EAAE4D,CAAC,GAAK/B,EAAE+B,CAAC,EAAI5D,EAAE4D,EAAI,CAAC,GAAK3D,EAAE2D,CAAC,EAE3D,IADA3D,EAAE,EAAI,CAAC,GAAK/D,EAAE,CAAC,EAAI8D,EAAE,EAAI,CAAC,GAAK,EAC1B4D,EAAI,EAAGA,EAAI,EAAI,EAAG,EAAEA,EAAG3D,EAAE2D,CAAC,EAAI,EAAI1H,EAAE0H,EAAI,CAAC,EAAI5D,EAAE4D,EAAI,CAAC,EACzD,MAAO,CAAC5D,EAAGC,CAAC,CACd,CAEe,SAAA28U,IAASp9U,EAAS,CAC/B,OAAO,IAAIg9U,IAAQh9U,CAAO,CAC5B,CChEA,SAASm4M,GAAKn4M,EAASsC,EAAG,CACxB,KAAK,SAAWtC,EAChB,KAAK,GAAKsC,CACZ,CAEA61M,GAAK,UAAY,CACf,UAAW,UAAW,CACpB,KAAK,MAAQ,CACf,EACA,QAAS,UAAW,CAClB,KAAK,MAAQ,GACf,EACA,UAAW,UAAW,CACpB,KAAK,GAAK,KAAK,GAAK,IACpB,KAAK,OAAS,CAChB,EACA,QAAS,UAAW,CACd,EAAI,KAAK,IAAM,KAAK,GAAK,GAAK,KAAK,SAAW,GAAG,KAAK,SAAS,OAAO,KAAK,GAAI,KAAK,EAAE,GACtF,KAAK,OAAU,KAAK,QAAU,GAAK,KAAK,SAAW,IAAI,KAAK,SAAS,UAAS,EAC9E,KAAK,OAAS,IAAG,KAAK,GAAK,EAAI,KAAK,GAAI,KAAK,MAAQ,EAAI,KAAK,MACpE,EACA,MAAO,SAASz7M,EAAGC,EAAG,CAEpB,OADAD,EAAI,CAACA,EAAGC,EAAI,CAACA,EACL,KAAK,OAAM,CACjB,IAAK,GAAG,KAAK,OAAS,EAAG,KAAK,MAAQ,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAI,KAAK,SAAS,OAAOD,EAAGC,CAAC,EAAG,MAC/F,IAAK,GAAG,KAAK,OAAS,EACtB,QAAS,CACP,GAAI,KAAK,IAAM,EACb,KAAK,SAAS,OAAO,KAAK,GAAIA,CAAC,EAC/B,KAAK,SAAS,OAAOD,EAAGC,CAAC,MACpB,CACL,IAAIg7U,EAAK,KAAK,IAAM,EAAI,KAAK,IAAMj7U,EAAI,KAAK,GAC5C,KAAK,SAAS,OAAOi7U,EAAI,KAAK,EAAE,EAChC,KAAK,SAAS,OAAOA,EAAIh7U,CAAC,CAC5B,CACA,KACF,CACN,CACI,KAAK,GAAKD,EAAG,KAAK,GAAKC,CACzB,CACF,EAEe,SAAA0gV,IAASr9U,EAAS,CAC/B,OAAO,IAAIm4M,GAAKn4M,EAAS,EAAG,CAC9B,CAEO,SAASs9U,IAAWt9U,EAAS,CAClC,OAAO,IAAIm4M,GAAKn4M,EAAS,CAAC,CAC5B,CAEO,SAASu9U,IAAUv9U,EAAS,CACjC,OAAO,IAAIm4M,GAAKn4M,EAAS,CAAC,CAC5B,CCpDO,SAAS2hN,GAAU3/M,EAAGtF,EAAGC,EAAG,CACjC,KAAK,EAAIqF,EACT,KAAK,EAAItF,EACT,KAAK,EAAIC,CACX,CAEAglN,GAAU,UAAY,CACpB,YAAaA,GACb,MAAO,SAAS3/M,EAAG,CACjB,OAAOA,IAAM,EAAI,KAAO,IAAI2/M,GAAU,KAAK,EAAI3/M,EAAG,KAAK,EAAG,KAAK,CAAC,CAClE,EACA,UAAW,SAAStF,EAAGC,EAAG,CACxB,OAAOD,IAAM,EAAIC,IAAM,EAAI,KAAO,IAAIglN,GAAU,KAAK,EAAG,KAAK,EAAI,KAAK,EAAIjlN,EAAG,KAAK,EAAI,KAAK,EAAIC,CAAC,CAClG,EACA,MAAO,SAASsiN,EAAO,CACrB,MAAO,CAACA,EAAM,CAAC,EAAI,KAAK,EAAI,KAAK,EAAGA,EAAM,CAAC,EAAI,KAAK,EAAI,KAAK,CAAC,CAChE,EACA,OAAQ,SAASviN,EAAG,CAClB,OAAOA,EAAI,KAAK,EAAI,KAAK,CAC3B,EACA,OAAQ,SAASC,EAAG,CAClB,OAAOA,EAAI,KAAK,EAAI,KAAK,CAC3B,EACA,OAAQ,SAASoN,EAAU,CACzB,MAAO,EAAEA,EAAS,CAAC,EAAI,KAAK,GAAK,KAAK,GAAIA,EAAS,CAAC,EAAI,KAAK,GAAK,KAAK,CAAC,CAC1E,EACA,QAAS,SAASrN,EAAG,CACnB,OAAQA,EAAI,KAAK,GAAK,KAAK,CAC7B,EACA,QAAS,SAASC,EAAG,CACnB,OAAQA,EAAI,KAAK,GAAK,KAAK,CAC7B,EACA,SAAU,SAASD,EAAG,CACpB,OAAOA,EAAE,KAAI,EAAG,OAAOA,EAAE,MAAK,EAAG,IAAI,KAAK,QAAS,IAAI,EAAE,IAAIA,EAAE,OAAQA,CAAC,CAAC,CAC3E,EACA,SAAU,SAASC,EAAG,CACpB,OAAOA,EAAE,KAAI,EAAG,OAAOA,EAAE,MAAK,EAAG,IAAI,KAAK,QAAS,IAAI,EAAE,IAAIA,EAAE,OAAQA,CAAC,CAAC,CAC3E,EACA,SAAU,UAAW,CACnB,MAAO,aAAe,KAAK,EAAI,IAAM,KAAK,EAAI,WAAa,KAAK,EAAI,GACtE,CACF,EAIsBglN,GAAU,UCpC7B,IAAC67H,IAAmCvnB,EAAQlqT,GAAO,OACpD,KAAM,CAAE,cAAA0xU,CAAa,EAAKje,GAAS,EACnC,IAAI9kM,EAAOwrM,GAAO,MAAM,EACxB,GAAIuX,IAAkB,UAAW,CAE/B,MAAMjpQ,IAAMh2C,EADW0nS,GAAO,KAAKn6T,CAAE,EAAE,EACZ,KAAI,IAAnB,YAAAyyB,EAAuB,kBAAmB,SACtDk8F,EAAOwrM,GAAO1xP,EAAI,IAAI,CACxB,CAEA,OADYkmD,EAAK,OAAO,IAAI3uH,CAAE,EAAE,CAElC,EAAG,kBAAkB,ECdrB,SAAS2xU,GAAUC,EAAS,CAC1B,OAAO,OAAOA,EAAY,KAAeA,IAAY,IACvD,CACA1nB,EAAOynB,GAAW,WAAW,EAC7B,SAASx8M,IAASy8M,EAAS,CACzB,OAAO,OAAOA,GAAY,UAAYA,IAAY,IACpD,CACA1nB,EAAO/0L,IAAU,UAAU,EAC3B,SAASs2B,IAAQwhH,EAAU,CACzB,OAAI,MAAM,QAAQA,CAAQ,EAAUA,EAC3B0kE,GAAU1kE,CAAQ,EAAU,GAC9B,CAACA,CAAQ,CAClB,CACAi9C,EAAOz+J,IAAS,SAAS,EACzB,SAASmxG,IAAOvhQ,EAAQ4B,EAAQ,CAC9B,IAAIS,EAAOqiC,EAAQznC,EAAKu5U,EACxB,GAAI50U,EAEF,IADA40U,EAAa,OAAO,KAAK50U,CAAM,EAC1BS,EAAQ,EAAGqiC,EAAS8xS,EAAW,OAAQn0U,EAAQqiC,EAAQriC,GAAS,EACnEpF,EAAMu5U,EAAWn0U,CAAK,EACtBrC,EAAO/C,CAAG,EAAI2E,EAAO3E,CAAG,EAG5B,OAAO+C,CACT,CACA6uT,EAAOttD,IAAQ,QAAQ,EACvB,SAAStoE,IAAO/pD,EAAQj2H,EAAO,CAC7B,IAAInS,EAAS,GAAI2vU,EACjB,IAAKA,EAAQ,EAAGA,EAAQx9T,EAAOw9T,GAAS,EACtC3vU,GAAUooI,EAEZ,OAAOpoI,CACT,CACA+nT,EAAO51H,IAAQ,QAAQ,EACvB,SAASy9I,IAAer/J,EAAQ,CAC9B,OAAOA,IAAW,GAAK,OAAO,oBAAsB,EAAIA,CAC1D,CACAw3I,EAAO6nB,IAAgB,gBAAgB,EACvC,IAAIC,IAAcL,GACdM,IAAa98M,IACb+8M,IAAYzmL,IACZ0mL,IAAW79I,IACX89I,IAAmBL,IACnBM,IAAWz1E,IACX01E,GAAS,CACX,UAAWN,IACX,SAAUC,IACV,QAASC,IACT,OAAQC,IACR,eAAgBC,IAChB,OAAQC,GACV,EACA,SAASE,GAAYC,EAAY18M,EAAS,CACxC,IAAI28M,EAAQ,GAAI9zU,EAAU6zU,EAAW,QAAU,mBAC/C,OAAKA,EAAW,MACZA,EAAW,KAAK,OAClBC,GAAS,OAASD,EAAW,KAAK,KAAO,MAE3CC,GAAS,KAAOD,EAAW,KAAK,KAAO,GAAK,KAAOA,EAAW,KAAK,OAAS,GAAK,IAC7E,CAAC18M,GAAW08M,EAAW,KAAK,UAC9BC,GAAS;;AAAA,EAASD,EAAW,KAAK,SAE7B7zU,EAAU,IAAM8zU,GARM9zU,CAS/B,CACAurT,EAAOqoB,GAAa,aAAa,EACjC,SAASG,GAAgB/uT,EAAQ66K,EAAM,CACrC,MAAM,KAAK,IAAI,EACf,KAAK,KAAO,gBACZ,KAAK,OAAS76K,EACd,KAAK,KAAO66K,EACZ,KAAK,QAAU+zI,GAAY,KAAM,EAAK,EAClC,MAAM,kBACR,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAE9C,KAAK,MAAQ,IAAI,MAAK,EAAG,OAAS,EAEtC,CACAroB,EAAOwoB,GAAiB,iBAAiB,EACzCA,GAAgB,UAAY,OAAO,OAAO,MAAM,SAAS,EACzDA,GAAgB,UAAU,YAAcA,GACxCA,GAAgB,UAAU,SAA2BxoB,EAAO,SAAkBp0L,EAAS,CACrF,OAAO,KAAK,KAAO,KAAOy8M,GAAY,KAAMz8M,CAAO,CACrD,EAAG,UAAU,EACb,IAAIhjF,GAAY4/R,GAChB,SAASC,GAAQ7/S,EAAQ4wO,EAAWkvE,EAAS/wL,EAAUgxL,EAAe,CACpE,IAAItqJ,EAAO,GACPuB,EAAO,GACPgpJ,EAAgB,KAAK,MAAMD,EAAgB,CAAC,EAAI,EACpD,OAAIhxL,EAAW6hH,EAAYovE,IACzBvqJ,EAAO,QACPm7E,EAAY7hH,EAAWixL,EAAgBvqJ,EAAK,QAE1CqqJ,EAAU/wL,EAAWixL,IACvBhpJ,EAAO,OACP8oJ,EAAU/wL,EAAWixL,EAAgBhpJ,EAAK,QAErC,CACL,IAAKvB,EAAOz1J,EAAO,MAAM4wO,EAAWkvE,CAAO,EAAE,QAAQ,MAAO,GAAQ,EAAI9oJ,EACxE,IAAKjoC,EAAW6hH,EAAYn7E,EAAK,MAErC,CACA,CACA2hI,EAAOyoB,GAAS,SAAS,EACzB,SAASx+I,GAAS5pD,EAAQ9zF,EAAK,CAC7B,OAAO67R,GAAO,OAAO,IAAK77R,EAAM8zF,EAAO,MAAM,EAAIA,CACnD,CACA2/K,EAAO/1H,GAAU,UAAU,EAC3B,SAAS4+I,IAAYv0I,EAAMphM,EAAS,CAElC,GADAA,EAAU,OAAO,OAAOA,GAAW,IAAI,EACnC,CAACohM,EAAK,OAAQ,OAAO,KACpBphM,EAAQ,YAAWA,EAAQ,UAAY,IACxC,OAAOA,EAAQ,QAAW,WAAUA,EAAQ,OAAS,GACrD,OAAOA,EAAQ,aAAgB,WAAUA,EAAQ,YAAc,GAC/D,OAAOA,EAAQ,YAAe,WAAUA,EAAQ,WAAa,GAMjE,QALImtB,EAAK,eACLyoT,EAAa,CAAC,CAAC,EACfC,EAAW,GACXhyU,EACAiyU,EAAc,GACXjyU,EAAQspB,EAAG,KAAKi0K,EAAK,MAAM,GAChCy0I,EAAS,KAAKhyU,EAAM,KAAK,EACzB+xU,EAAW,KAAK/xU,EAAM,MAAQA,EAAM,CAAC,EAAE,MAAM,EACzCu9L,EAAK,UAAYv9L,EAAM,OAASiyU,EAAc,IAChDA,EAAcF,EAAW,OAAS,GAGlCE,EAAc,IAAGA,EAAcF,EAAW,OAAS,GACvD,IAAI7wU,EAAS,GAAI9J,EAAG65C,EAChBihS,EAAe,KAAK,IAAI30I,EAAK,KAAOphM,EAAQ,WAAY61U,EAAS,MAAM,EAAE,SAAQ,EAAG,OACpFJ,EAAgBz1U,EAAQ,WAAaA,EAAQ,OAAS+1U,EAAe,GACzE,IAAK96U,EAAI,EAAGA,GAAK+E,EAAQ,aACnB,EAAA81U,EAAc76U,EAAI,GADcA,IAEpC65C,EAAOygS,GACLn0I,EAAK,OACLw0I,EAAWE,EAAc76U,CAAC,EAC1B46U,EAASC,EAAc76U,CAAC,EACxBmmM,EAAK,UAAYw0I,EAAWE,CAAW,EAAIF,EAAWE,EAAc76U,CAAC,GACrEw6U,CACN,EACI1wU,EAASmwU,GAAO,OAAO,IAAKl1U,EAAQ,MAAM,EAAI+2L,IAAUqK,EAAK,KAAOnmM,EAAI,GAAG,SAAQ,EAAI86U,CAAY,EAAI,MAAQjhS,EAAK,IAAM;AAAA,EAAO/vC,EAKnI,IAHA+vC,EAAOygS,GAAQn0I,EAAK,OAAQw0I,EAAWE,CAAW,EAAGD,EAASC,CAAW,EAAG10I,EAAK,SAAUq0I,CAAa,EACxG1wU,GAAUmwU,GAAO,OAAO,IAAKl1U,EAAQ,MAAM,EAAI+2L,IAAUqK,EAAK,KAAO,GAAG,WAAY20I,CAAY,EAAI,MAAQjhS,EAAK,IAAM;AAAA,EACvH/vC,GAAUmwU,GAAO,OAAO,IAAKl1U,EAAQ,OAAS+1U,EAAe,EAAIjhS,EAAK,GAAG,EAAI;AAAA,EACxE75C,EAAI,EAAGA,GAAK+E,EAAQ,YACnB,EAAA81U,EAAc76U,GAAK46U,EAAS,QADG56U,IAEnC65C,EAAOygS,GACLn0I,EAAK,OACLw0I,EAAWE,EAAc76U,CAAC,EAC1B46U,EAASC,EAAc76U,CAAC,EACxBmmM,EAAK,UAAYw0I,EAAWE,CAAW,EAAIF,EAAWE,EAAc76U,CAAC,GACrEw6U,CACN,EACI1wU,GAAUmwU,GAAO,OAAO,IAAKl1U,EAAQ,MAAM,EAAI+2L,IAAUqK,EAAK,KAAOnmM,EAAI,GAAG,WAAY86U,CAAY,EAAI,MAAQjhS,EAAK,IAAM;AAAA,EAE7H,OAAO/vC,EAAO,QAAQ,MAAO,EAAE,CACjC,CACA+nT,EAAO6oB,IAAa,aAAa,EACjC,IAAIK,IAAUL,IACVM,IAA2B,CAC7B,OACA,QACA,UACA,YACA,aACA,YACA,YACA,gBACA,eACA,cACF,EACIC,IAAkB,CACpB,SACA,WACA,SACF,EACA,SAASC,IAAoBC,EAAM,CACjC,IAAIrxU,EAAS,GACb,OAAIqxU,IAAS,MACX,OAAO,KAAKA,CAAI,EAAE,QAAQ,SAASztI,EAAO,CACxCytI,EAAKztI,CAAK,EAAE,QAAQ,SAAS0tI,EAAO,CAClCtxU,EAAO,OAAOsxU,CAAK,CAAC,EAAI1tI,CAC1B,CAAC,CACH,CAAC,EAEI5jM,CACT,CACA+nT,EAAOqpB,IAAqB,qBAAqB,EACjD,SAASG,IAAOtgK,EAAKh2K,EAAS,CAuB5B,GAtBAA,EAAUA,GAAW,GACrB,OAAO,KAAKA,CAAO,EAAE,QAAQ,SAASia,EAAM,CAC1C,GAAIg8T,IAAyB,QAAQh8T,CAAI,IAAM,GAC7C,MAAM,IAAIy7B,GAAU,mBAAqBz7B,EAAO,8BAAgC+7J,EAAM,cAAc,CAExG,CAAC,EACD,KAAK,QAAUh2K,EACf,KAAK,IAAMg2K,EACX,KAAK,KAAOh2K,EAAQ,MAAW,KAC/B,KAAK,QAAUA,EAAQ,SAAc,UAAW,CAC9C,MAAO,EACT,EACA,KAAK,UAAYA,EAAQ,WAAgB,SAASqJ,EAAM,CACtD,OAAOA,CACT,EACA,KAAK,WAAarJ,EAAQ,YAAiB,KAC3C,KAAK,UAAYA,EAAQ,WAAgB,KACzC,KAAK,UAAYA,EAAQ,WAAgB,KACzC,KAAK,cAAgBA,EAAQ,eAAoB,KACjD,KAAK,aAAeA,EAAQ,cAAmB,KAC/C,KAAK,MAAQA,EAAQ,OAAY,GACjC,KAAK,aAAem2U,IAAoBn2U,EAAQ,cAAmB,IAAI,EACnEk2U,IAAgB,QAAQ,KAAK,IAAI,IAAM,GACzC,MAAM,IAAIxgS,GAAU,iBAAmB,KAAK,KAAO,uBAAyBsgI,EAAM,cAAc,CAEpG,CACA82I,EAAOwpB,IAAQ,QAAQ,EACvB,IAAItgU,GAAOsgU,IACX,SAASC,GAAYC,EAASv8T,EAAM,CAClC,IAAIlV,EAAS,GACb,OAAAyxU,EAAQv8T,CAAI,EAAE,QAAQ,SAASw8T,EAAa,CAC1C,IAAIhpI,EAAW1oM,EAAO,OACtBA,EAAO,QAAQ,SAAS2xU,EAAcC,EAAe,CAC/CD,EAAa,MAAQD,EAAY,KAAOC,EAAa,OAASD,EAAY,MAAQC,EAAa,QAAUD,EAAY,QACvHhpI,EAAWkpI,EAEf,CAAC,EACD5xU,EAAO0oM,CAAQ,EAAIgpI,CACrB,CAAC,EACM1xU,CACT,CACA+nT,EAAOypB,GAAa,aAAa,EACjC,SAASK,KAAa,CACpB,IAAI7xU,EAAS,CACX,OAAQ,GACR,SAAU,GACV,QAAS,GACT,SAAU,GACV,MAAO,CACL,OAAQ,GACR,SAAU,GACV,QAAS,GACT,SAAU,EAChB,CACA,EAAKzE,EAAOqiC,EACV,SAASk0S,EAAYC,EAAO,CACtBA,EAAM,OACR/xU,EAAO,MAAM+xU,EAAM,IAAI,EAAE,KAAKA,CAAK,EACnC/xU,EAAO,MAAM,SAAY,KAAK+xU,CAAK,GAEnC/xU,EAAO+xU,EAAM,IAAI,EAAEA,EAAM,GAAG,EAAI/xU,EAAO,SAAY+xU,EAAM,GAAG,EAAIA,CAEpE,CAEA,IADAhqB,EAAO+pB,EAAa,aAAa,EAC5Bv2U,EAAQ,EAAGqiC,EAAS,UAAU,OAAQriC,EAAQqiC,EAAQriC,GAAS,EAClE,UAAUA,CAAK,EAAE,QAAQu2U,CAAW,EAEtC,OAAO9xU,CACT,CACA+nT,EAAO8pB,IAAY,YAAY,EAC/B,SAASG,GAASrhE,EAAY,CAC5B,OAAO,KAAK,OAAOA,CAAU,CAC/B,CACAo3C,EAAOiqB,GAAU,UAAU,EAC3BA,GAAS,UAAU,OAAyBjqB,EAAO,SAAiBp3C,EAAY,CAC9E,IAAIshE,EAAW,GACXC,EAAW,GACf,GAAIvhE,aAAsB1/P,GACxBihU,EAAS,KAAKvhE,CAAU,UACf,MAAM,QAAQA,CAAU,EACjCuhE,EAAWA,EAAS,OAAOvhE,CAAU,UAC5BA,IAAe,MAAM,QAAQA,EAAW,QAAQ,GAAK,MAAM,QAAQA,EAAW,QAAQ,GAC3FA,EAAW,WAAUshE,EAAWA,EAAS,OAAOthE,EAAW,QAAQ,GACnEA,EAAW,WAAUuhE,EAAWA,EAAS,OAAOvhE,EAAW,QAAQ,OAEvE,OAAM,IAAIhgO,GAAU,kHAAkH,EAExIshS,EAAS,QAAQ,SAASE,EAAQ,CAChC,GAAI,EAAEA,aAAkBlhU,IACtB,MAAM,IAAI0/B,GAAU,oFAAoF,EAE1G,GAAIwhS,EAAO,UAAYA,EAAO,WAAa,SACzC,MAAM,IAAIxhS,GAAU,iHAAiH,EAEvI,GAAIwhS,EAAO,MACT,MAAM,IAAIxhS,GAAU,oGAAoG,CAE5H,CAAC,EACDuhS,EAAS,QAAQ,SAASC,EAAQ,CAChC,GAAI,EAAEA,aAAkBlhU,IACtB,MAAM,IAAI0/B,GAAU,oFAAoF,CAE5G,CAAC,EACD,IAAI3wC,EAAS,OAAO,OAAOgyU,GAAS,SAAS,EAC7C,OAAAhyU,EAAO,UAAY,KAAK,UAAY,IAAI,OAAOiyU,CAAQ,EACvDjyU,EAAO,UAAY,KAAK,UAAY,IAAI,OAAOkyU,CAAQ,EACvDlyU,EAAO,iBAAmBwxU,GAAYxxU,EAAQ,UAAU,EACxDA,EAAO,iBAAmBwxU,GAAYxxU,EAAQ,UAAU,EACxDA,EAAO,gBAAkB6xU,IAAW7xU,EAAO,iBAAkBA,EAAO,gBAAgB,EAC7EA,CACT,EAAG,QAAQ,EACX,IAAI67L,IAASm2I,GACT39R,IAAM,IAAIpjC,GAAK,wBAAyB,CAC1C,KAAM,SACN,UAA2B82S,EAAO,SAASzjT,EAAM,CAC/C,OAAOA,IAAS,KAAOA,EAAO,EAChC,EAAG,WAAW,CAChB,CAAC,EACG8tU,IAAM,IAAInhU,GAAK,wBAAyB,CAC1C,KAAM,WACN,UAA2B82S,EAAO,SAASzjT,EAAM,CAC/C,OAAOA,IAAS,KAAOA,EAAO,EAChC,EAAG,WAAW,CAChB,CAAC,EACGg9B,IAAM,IAAIrwB,GAAK,wBAAyB,CAC1C,KAAM,UACN,UAA2B82S,EAAO,SAASzjT,EAAM,CAC/C,OAAOA,IAAS,KAAOA,EAAO,EAChC,EAAG,WAAW,CAChB,CAAC,EACG+tU,IAAW,IAAIx2I,IAAO,CACxB,SAAU,CACRxnJ,IACA+9R,IACA9wS,GACJ,CACA,CAAC,EACD,SAASgxS,IAAgBhuU,EAAM,CAC7B,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAIgwC,EAAMhwC,EAAK,OACf,OAAOgwC,IAAQ,GAAKhwC,IAAS,KAAOgwC,IAAQ,IAAMhwC,IAAS,QAAUA,IAAS,QAAUA,IAAS,OACnG,CACAyjT,EAAOuqB,IAAiB,iBAAiB,EACzC,SAASC,KAAoB,CAC3B,OAAO,IACT,CACAxqB,EAAOwqB,IAAmB,mBAAmB,EAC7C,SAASjkJ,IAAO1pK,EAAQ,CACtB,OAAOA,IAAW,IACpB,CACAmjS,EAAOz5H,IAAQ,QAAQ,EACvB,IAAIkkJ,IAAQ,IAAIvhU,GAAK,yBAA0B,CAC7C,KAAM,SACN,QAASqhU,IACT,UAAWC,IACX,UAAWjkJ,IACX,UAAW,CACT,UAA2By5H,EAAO,UAAW,CAC3C,MAAO,GACT,EAAG,WAAW,EACd,UAA2BA,EAAO,UAAW,CAC3C,MAAO,MACT,EAAG,WAAW,EACd,UAA2BA,EAAO,UAAW,CAC3C,MAAO,MACT,EAAG,WAAW,EACd,UAA2BA,EAAO,UAAW,CAC3C,MAAO,MACT,EAAG,WAAW,EACd,MAAuBA,EAAO,UAAW,CACvC,MAAO,EACT,EAAG,OAAO,CACd,EACE,aAAc,WAChB,CAAC,EACD,SAAS0qB,IAAmBnuU,EAAM,CAChC,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAIgwC,EAAMhwC,EAAK,OACf,OAAOgwC,IAAQ,IAAMhwC,IAAS,QAAUA,IAAS,QAAUA,IAAS,SAAWgwC,IAAQ,IAAMhwC,IAAS,SAAWA,IAAS,SAAWA,IAAS,QAChJ,CACAyjT,EAAO0qB,IAAoB,oBAAoB,EAC/C,SAASC,IAAqBpuU,EAAM,CAClC,OAAOA,IAAS,QAAUA,IAAS,QAAUA,IAAS,MACxD,CACAyjT,EAAO2qB,IAAsB,sBAAsB,EACnD,SAAS/7S,IAAU/R,EAAQ,CACzB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAM,IAAM,kBACpD,CACAmjS,EAAOpxR,IAAW,WAAW,EAC7B,IAAIg8S,IAAO,IAAI1hU,GAAK,yBAA0B,CAC5C,KAAM,SACN,QAASwhU,IACT,UAAWC,IACX,UAAW/7S,IACX,UAAW,CACT,UAA2BoxR,EAAO,SAASnjS,EAAQ,CACjD,OAAOA,EAAS,OAAS,OAC3B,EAAG,WAAW,EACd,UAA2BmjS,EAAO,SAASnjS,EAAQ,CACjD,OAAOA,EAAS,OAAS,OAC3B,EAAG,WAAW,EACd,UAA2BmjS,EAAO,SAASnjS,EAAQ,CACjD,OAAOA,EAAS,OAAS,OAC3B,EAAG,WAAW,CAClB,EACE,aAAc,WAChB,CAAC,EACD,SAASguT,IAAUp/U,EAAG,CACpB,MAAO,KAAMA,GAAKA,GAAK,IAAM,IAAMA,GAAKA,GAAK,IAAM,IAAMA,GAAKA,GAAK,GACrE,CACAu0T,EAAO6qB,IAAW,WAAW,EAC7B,SAASC,IAAUr/U,EAAG,CACpB,MAAO,KAAMA,GAAKA,GAAK,EACzB,CACAu0T,EAAO8qB,IAAW,WAAW,EAC7B,SAASC,IAAUt/U,EAAG,CACpB,MAAO,KAAMA,GAAKA,GAAK,EACzB,CACAu0T,EAAO+qB,IAAW,WAAW,EAC7B,SAASC,IAAmBzuU,EAAM,CAChC,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAIgwC,EAAMhwC,EAAK,OAAQ/I,EAAQ,EAAGy3U,EAAY,GAAOhyH,EACrD,GAAI,CAAC1sK,EAAK,MAAO,GAKjB,GAJA0sK,EAAK18M,EAAK/I,CAAK,GACXylN,IAAO,KAAOA,IAAO,OACvBA,EAAK18M,EAAK,EAAE/I,CAAK,GAEfylN,IAAO,IAAK,CACd,GAAIzlN,EAAQ,IAAM+4C,EAAK,MAAO,GAE9B,GADA0sK,EAAK18M,EAAK,EAAE/I,CAAK,EACbylN,IAAO,IAAK,CAEd,IADAzlN,IACOA,EAAQ+4C,EAAK/4C,IAElB,GADAylN,EAAK18M,EAAK/I,CAAK,EACXylN,IAAO,IACX,IAAIA,IAAO,KAAOA,IAAO,IAAK,MAAO,GACrCgyH,EAAY,GAEd,OAAOA,GAAahyH,IAAO,GAC7B,CACA,GAAIA,IAAO,IAAK,CAEd,IADAzlN,IACOA,EAAQ+4C,EAAK/4C,IAElB,GADAylN,EAAK18M,EAAK/I,CAAK,EACXylN,IAAO,IACX,IAAI,CAAC4xH,IAAUtuU,EAAK,WAAW/I,CAAK,CAAC,EAAG,MAAO,GAC/Cy3U,EAAY,GAEd,OAAOA,GAAahyH,IAAO,GAC7B,CACA,GAAIA,IAAO,IAAK,CAEd,IADAzlN,IACOA,EAAQ+4C,EAAK/4C,IAElB,GADAylN,EAAK18M,EAAK/I,CAAK,EACXylN,IAAO,IACX,IAAI,CAAC6xH,IAAUvuU,EAAK,WAAW/I,CAAK,CAAC,EAAG,MAAO,GAC/Cy3U,EAAY,GAEd,OAAOA,GAAahyH,IAAO,GAC7B,CACF,CACA,GAAIA,IAAO,IAAK,MAAO,GACvB,KAAOzlN,EAAQ+4C,EAAK/4C,IAElB,GADAylN,EAAK18M,EAAK/I,CAAK,EACXylN,IAAO,IACX,IAAI,CAAC8xH,IAAUxuU,EAAK,WAAW/I,CAAK,CAAC,EACnC,MAAO,GAETy3U,EAAY,GAEd,MAAI,GAACA,GAAahyH,IAAO,IAE3B,CACA+mG,EAAOgrB,IAAoB,oBAAoB,EAC/C,SAASE,IAAqB3uU,EAAM,CAClC,IAAIpV,EAAQoV,EAAMo+I,EAAO,EAAGs+D,EAU5B,GATI9xN,EAAM,QAAQ,GAAG,IAAM,KACzBA,EAAQA,EAAM,QAAQ,KAAM,EAAE,GAEhC8xN,EAAK9xN,EAAM,CAAC,GACR8xN,IAAO,KAAOA,IAAO,OACnBA,IAAO,MAAKt+D,EAAO,IACvBxzJ,EAAQA,EAAM,MAAM,CAAC,EACrB8xN,EAAK9xN,EAAM,CAAC,GAEVA,IAAU,IAAK,MAAO,GAC1B,GAAI8xN,IAAO,IAAK,CACd,GAAI9xN,EAAM,CAAC,IAAM,IAAK,OAAOwzJ,EAAO,SAASxzJ,EAAM,MAAM,CAAC,EAAG,CAAC,EAC9D,GAAIA,EAAM,CAAC,IAAM,IAAK,OAAOwzJ,EAAO,SAASxzJ,EAAM,MAAM,CAAC,EAAG,EAAE,EAC/D,GAAIA,EAAM,CAAC,IAAM,IAAK,OAAOwzJ,EAAO,SAASxzJ,EAAM,MAAM,CAAC,EAAG,CAAC,CAChE,CACA,OAAOwzJ,EAAO,SAASxzJ,EAAO,EAAE,CAClC,CACA64T,EAAOkrB,IAAsB,sBAAsB,EACnD,SAASppM,IAAUjlH,EAAQ,CACzB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAM,IAAM,mBAAsBA,EAAS,IAAM,GAAK,CAACurT,GAAO,eAAevrT,CAAM,CAC3H,CACAmjS,EAAOl+K,IAAW,WAAW,EAC7B,IAAIqpM,IAAM,IAAIjiU,GAAK,wBAAyB,CAC1C,KAAM,SACN,QAAS8hU,IACT,UAAWE,IACX,UAAWppM,IACX,UAAW,CACT,OAAwBk+K,EAAO,SAASlvT,EAAK,CAC3C,OAAOA,GAAO,EAAI,KAAOA,EAAI,SAAS,CAAC,EAAI,MAAQA,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAC5E,EAAG,QAAQ,EACX,MAAuBkvT,EAAO,SAASlvT,EAAK,CAC1C,OAAOA,GAAO,EAAI,KAAOA,EAAI,SAAS,CAAC,EAAI,MAAQA,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAC5E,EAAG,OAAO,EACV,QAAyBkvT,EAAO,SAASlvT,EAAK,CAC5C,OAAOA,EAAI,SAAS,EAAE,CACxB,EAAG,SAAS,EAEZ,YAA6BkvT,EAAO,SAASlvT,EAAK,CAChD,OAAOA,GAAO,EAAI,KAAOA,EAAI,SAAS,EAAE,EAAE,YAAW,EAAK,MAAQA,EAAI,SAAS,EAAE,EAAE,YAAW,EAAG,MAAM,CAAC,CAC1G,EAAG,aAAa,CACpB,EACE,aAAc,UACd,aAAc,CACZ,OAAQ,CAAC,EAAG,KAAK,EACjB,MAAO,CAAC,EAAG,KAAK,EAChB,QAAS,CAAC,GAAI,KAAK,EACnB,YAAa,CAAC,GAAI,KAAK,CAC3B,CACA,CAAC,EACGs6U,IAAqB,IAAI,OAE3B,0IACF,EACA,SAASC,IAAiB9uU,EAAM,CAE9B,MADI,EAAAA,IAAS,MACT,CAAC6uU,IAAmB,KAAK7uU,CAAI,GAEjCA,EAAKA,EAAK,OAAS,CAAC,IAAM,IAI5B,CACAyjT,EAAOqrB,IAAkB,kBAAkB,EAC3C,SAASC,IAAmB/uU,EAAM,CAChC,IAAIpV,EAAOwzJ,EAMX,OALAxzJ,EAAQoV,EAAK,QAAQ,KAAM,EAAE,EAAE,YAAW,EAC1Co+I,EAAOxzJ,EAAM,CAAC,IAAM,IAAM,GAAK,EAC3B,KAAK,QAAQA,EAAM,CAAC,CAAC,GAAK,IAC5BA,EAAQA,EAAM,MAAM,CAAC,GAEnBA,IAAU,OACLwzJ,IAAS,EAAI,OAAO,kBAAoB,OAAO,kBAC7CxzJ,IAAU,OACZ,IAEFwzJ,EAAO,WAAWxzJ,EAAO,EAAE,CACpC,CACA64T,EAAOsrB,IAAoB,oBAAoB,EAC/C,IAAIC,IAAyB,gBAC7B,SAASC,IAAmB3uT,EAAQg/K,EAAO,CACzC,IAAI1oJ,EACJ,GAAI,MAAMt2B,CAAM,EACd,OAAQg/K,EAAK,CACX,IAAK,YACH,MAAO,OACT,IAAK,YACH,MAAO,OACT,IAAK,YACH,MAAO,MACf,SACa,OAAO,oBAAsBh/K,EACtC,OAAQg/K,EAAK,CACX,IAAK,YACH,MAAO,OACT,IAAK,YACH,MAAO,OACT,IAAK,YACH,MAAO,MACf,SACa,OAAO,oBAAsBh/K,EACtC,OAAQg/K,EAAK,CACX,IAAK,YACH,MAAO,QACT,IAAK,YACH,MAAO,QACT,IAAK,YACH,MAAO,OACf,SACausI,GAAO,eAAevrT,CAAM,EACrC,MAAO,OAET,OAAAs2B,EAAMt2B,EAAO,SAAS,EAAE,EACjB0uT,IAAuB,KAAKp4R,CAAG,EAAIA,EAAI,QAAQ,IAAK,IAAI,EAAIA,CACrE,CACA6sQ,EAAOwrB,IAAoB,oBAAoB,EAC/C,SAASC,IAAQ5uT,EAAQ,CACvB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAM,IAAM,oBAAsBA,EAAS,IAAM,GAAKurT,GAAO,eAAevrT,CAAM,EAC1H,CACAmjS,EAAOyrB,IAAS,SAAS,EACzB,IAAIC,IAAQ,IAAIxiU,GAAK,0BAA2B,CAC9C,KAAM,SACN,QAASmiU,IACT,UAAWC,IACX,UAAWG,IACX,UAAWD,IACX,aAAc,WAChB,CAAC,EACGp+T,IAAOk9T,IAAS,OAAO,CACzB,SAAU,CACRG,IACAG,IACAO,IACAO,GACJ,CACA,CAAC,EACG12E,IAAO5nP,IACPu+T,IAAmB,IAAI,OACzB,oDACF,EACIC,IAAwB,IAAI,OAC9B,kLACF,EACA,SAASC,IAAqBtvU,EAAM,CAClC,OAAIA,IAAS,KAAa,GACtBovU,IAAiB,KAAKpvU,CAAI,IAAM,MAChCqvU,IAAsB,KAAKrvU,CAAI,IAAM,IAE3C,CACAyjT,EAAO6rB,IAAsB,sBAAsB,EACnD,SAASC,IAAuBvvU,EAAM,CACpC,IAAIxF,EAAOg1U,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ5lD,EAAQ6lD,EAAW,EAAG93U,EAAQ,KAAM+3U,EAASC,EAAWC,EAGnG,GAFAx1U,EAAQ40U,IAAiB,KAAKpvU,CAAI,EAC9BxF,IAAU,OAAMA,EAAQ60U,IAAsB,KAAKrvU,CAAI,GACvDxF,IAAU,KAAM,MAAM,IAAI,MAAM,oBAAoB,EAIxD,GAHAg1U,EAAO,CAACh1U,EAAM,CAAC,EACfi1U,EAAQ,CAACj1U,EAAM,CAAC,EAAI,EACpBk1U,EAAM,CAACl1U,EAAM,CAAC,EACV,CAACA,EAAM,CAAC,EACV,OAAO,IAAI,KAAK,KAAK,IAAIg1U,EAAMC,EAAOC,CAAG,CAAC,EAK5C,GAHAC,EAAO,CAACn1U,EAAM,CAAC,EACfo1U,EAAS,CAACp1U,EAAM,CAAC,EACjBwvR,EAAS,CAACxvR,EAAM,CAAC,EACbA,EAAM,CAAC,EAAG,CAEZ,IADAq1U,EAAWr1U,EAAM,CAAC,EAAE,MAAM,EAAG,CAAC,EACvBq1U,EAAS,OAAS,GACvBA,GAAY,IAEdA,EAAW,CAACA,CACd,CACA,OAAIr1U,EAAM,CAAC,IACTs1U,EAAU,CAACt1U,EAAM,EAAE,EACnBu1U,EAAY,EAAEv1U,EAAM,EAAE,GAAK,GAC3BzC,GAAS+3U,EAAU,GAAKC,GAAa,IACjCv1U,EAAM,CAAC,IAAM,MAAKzC,EAAQ,CAACA,IAEjCi4U,EAAO,IAAI,KAAK,KAAK,IAAIR,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ5lD,EAAQ6lD,CAAQ,CAAC,EACtE93U,GAAOi4U,EAAK,QAAQA,EAAK,QAAO,EAAKj4U,CAAK,EACvCi4U,CACT,CACAvsB,EAAO8rB,IAAwB,wBAAwB,EACvD,SAASU,IAAuB3vT,EAAQ,CACtC,OAAOA,EAAO,YAAW,CAC3B,CACAmjS,EAAOwsB,IAAwB,wBAAwB,EACvD,IAAI5yR,IAAY,IAAI1wC,GAAK,8BAA+B,CACtD,KAAM,SACN,QAAS2iU,IACT,UAAWC,IACX,WAAY,KACZ,UAAWU,GACb,CAAC,EACD,SAASC,IAAiBlwU,EAAM,CAC9B,OAAOA,IAAS,MAAQA,IAAS,IACnC,CACAyjT,EAAOysB,IAAkB,kBAAkB,EAC3C,IAAI77R,IAAQ,IAAI1nC,GAAK,0BAA2B,CAC9C,KAAM,SACN,QAASujU,GACX,CAAC,EACGC,GAAa;AAAA,IACjB,SAASC,IAAkBpwU,EAAM,CAC/B,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAIstB,EAAMtuB,EAAKqxU,EAAS,EAAGrgS,EAAMhwC,EAAK,OAAQ+sU,EAAOoD,GACrD,IAAKnxU,EAAM,EAAGA,EAAMgxC,EAAKhxC,IAEvB,GADAsuB,EAAOy/S,EAAK,QAAQ/sU,EAAK,OAAOhB,CAAG,CAAC,EAChC,EAAAsuB,EAAO,IACX,IAAIA,EAAO,EAAG,MAAO,GACrB+iT,GAAU,EAEZ,OAAOA,EAAS,IAAM,CACxB,CACA5sB,EAAO2sB,IAAmB,mBAAmB,EAC7C,SAASE,IAAoBtwU,EAAM,CACjC,IAAIhB,EAAKuxU,EAAUrgS,EAAQlwC,EAAK,QAAQ,WAAY,EAAE,EAAGgwC,EAAME,EAAM,OAAQ68R,EAAOoD,GAAYtrB,EAAO,EAAGnpT,EAAS,GACnH,IAAKsD,EAAM,EAAGA,EAAMgxC,EAAKhxC,IACnBA,EAAM,IAAM,GAAKA,IACnBtD,EAAO,KAAKmpT,GAAQ,GAAK,GAAG,EAC5BnpT,EAAO,KAAKmpT,GAAQ,EAAI,GAAG,EAC3BnpT,EAAO,KAAKmpT,EAAO,GAAG,GAExBA,EAAOA,GAAQ,EAAIkoB,EAAK,QAAQ78R,EAAM,OAAOlxC,CAAG,CAAC,EAEnD,OAAAuxU,EAAWvgS,EAAM,EAAI,EACjBugS,IAAa,GACf70U,EAAO,KAAKmpT,GAAQ,GAAK,GAAG,EAC5BnpT,EAAO,KAAKmpT,GAAQ,EAAI,GAAG,EAC3BnpT,EAAO,KAAKmpT,EAAO,GAAG,GACb0rB,IAAa,IACtB70U,EAAO,KAAKmpT,GAAQ,GAAK,GAAG,EAC5BnpT,EAAO,KAAKmpT,GAAQ,EAAI,GAAG,GAClB0rB,IAAa,IACtB70U,EAAO,KAAKmpT,GAAQ,EAAI,GAAG,EAEtB,IAAI,WAAWnpT,CAAM,CAC9B,CACA+nT,EAAO6sB,IAAqB,qBAAqB,EACjD,SAASE,IAAoBlwT,EAAQ,CACnC,IAAI5kB,EAAS,GAAImpT,EAAO,EAAG7lT,EAAKqkL,EAAMrzI,EAAM1vB,EAAO,OAAQysT,EAAOoD,GAClE,IAAKnxU,EAAM,EAAGA,EAAMgxC,EAAKhxC,IACnBA,EAAM,IAAM,GAAKA,IACnBtD,GAAUqxU,EAAKloB,GAAQ,GAAK,EAAE,EAC9BnpT,GAAUqxU,EAAKloB,GAAQ,GAAK,EAAE,EAC9BnpT,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAKloB,EAAO,EAAE,GAE1BA,GAAQA,GAAQ,GAAKvkS,EAAOthB,CAAG,EAEjC,OAAAqkL,EAAOrzI,EAAM,EACTqzI,IAAS,GACX3nL,GAAUqxU,EAAKloB,GAAQ,GAAK,EAAE,EAC9BnpT,GAAUqxU,EAAKloB,GAAQ,GAAK,EAAE,EAC9BnpT,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAKloB,EAAO,EAAE,GACfxhI,IAAS,GAClB3nL,GAAUqxU,EAAKloB,GAAQ,GAAK,EAAE,EAC9BnpT,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAK,EAAE,GACR1pJ,IAAS,IAClB3nL,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAKloB,GAAQ,EAAI,EAAE,EAC7BnpT,GAAUqxU,EAAK,EAAE,EACjBrxU,GAAUqxU,EAAK,EAAE,GAEZrxU,CACT,CACA+nT,EAAO+sB,IAAqB,qBAAqB,EACjD,SAASjmJ,IAASh2L,EAAK,CACrB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,qBACjD,CACAkvT,EAAOl5H,IAAU,UAAU,EAC3B,IAAIkmJ,IAAS,IAAI9jU,GAAK,2BAA4B,CAChD,KAAM,SACN,QAASyjU,IACT,UAAWE,IACX,UAAW/lJ,IACX,UAAWimJ,GACb,CAAC,EACGE,IAAoB,OAAO,UAAU,eACrCC,IAAc,OAAO,UAAU,SACnC,SAASC,IAAgB5wU,EAAM,CAC7B,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAI6wU,EAAa,GAAI55U,EAAOqiC,EAAQ0kJ,EAAM8yJ,EAASC,EAAYzwT,EAAStgB,EACxE,IAAK/I,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAAG,CAGlE,GAFA+mL,EAAO19J,EAAOrpB,CAAK,EACnB85U,EAAa,GACTJ,IAAY,KAAK3yJ,CAAI,IAAM,kBAAmB,MAAO,GACzD,IAAK8yJ,KAAW9yJ,EACd,GAAI0yJ,IAAkB,KAAK1yJ,EAAM8yJ,CAAO,EACtC,GAAI,CAACC,EAAYA,EAAa,OACzB,OAAO,GAGhB,GAAI,CAACA,EAAY,MAAO,GACxB,GAAIF,EAAW,QAAQC,CAAO,IAAM,GAAID,EAAW,KAAKC,CAAO,MAC1D,OAAO,EACd,CACA,MAAO,EACT,CACArtB,EAAOmtB,IAAiB,iBAAiB,EACzC,SAASI,IAAkBhxU,EAAM,CAC/B,OAAOA,IAAS,KAAOA,EAAO,EAChC,CACAyjT,EAAOutB,IAAmB,mBAAmB,EAC7C,IAAIC,IAAO,IAAItkU,GAAK,yBAA0B,CAC5C,KAAM,WACN,QAASikU,IACT,UAAWI,GACb,CAAC,EACGE,IAAc,OAAO,UAAU,SACnC,SAASC,IAAiBnxU,EAAM,CAC9B,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAI/I,EAAOqiC,EAAQ0kJ,EAAMvsL,EAAMiK,EAAQ4kB,EAAStgB,EAEhD,IADAtE,EAAS,IAAI,MAAM4kB,EAAO,MAAM,EAC3BrpB,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAAG,CAIlE,GAHA+mL,EAAO19J,EAAOrpB,CAAK,EACfi6U,IAAY,KAAKlzJ,CAAI,IAAM,oBAC/BvsL,EAAO,OAAO,KAAKusL,CAAI,EACnBvsL,EAAK,SAAW,GAAG,MAAO,GAC9BiK,EAAOzE,CAAK,EAAI,CAACxF,EAAK,CAAC,EAAGusL,EAAKvsL,EAAK,CAAC,CAAC,CAAC,CACzC,CACA,MAAO,EACT,CACAgyT,EAAO0tB,IAAkB,kBAAkB,EAC3C,SAASC,IAAmBpxU,EAAM,CAChC,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAI/I,EAAOqiC,EAAQ0kJ,EAAMvsL,EAAMiK,EAAQ4kB,EAAStgB,EAEhD,IADAtE,EAAS,IAAI,MAAM4kB,EAAO,MAAM,EAC3BrpB,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAC/D+mL,EAAO19J,EAAOrpB,CAAK,EACnBxF,EAAO,OAAO,KAAKusL,CAAI,EACvBtiL,EAAOzE,CAAK,EAAI,CAACxF,EAAK,CAAC,EAAGusL,EAAKvsL,EAAK,CAAC,CAAC,CAAC,EAEzC,OAAOiK,CACT,CACA+nT,EAAO2tB,IAAoB,oBAAoB,EAC/C,IAAI/mK,IAAQ,IAAI19J,GAAK,0BAA2B,CAC9C,KAAM,WACN,QAASwkU,IACT,UAAWC,GACb,CAAC,EACGC,IAAoB,OAAO,UAAU,eACzC,SAASC,IAAetxU,EAAM,CAC5B,GAAIA,IAAS,KAAM,MAAO,GAC1B,IAAInO,EAAKyuB,EAAStgB,EAClB,IAAKnO,KAAOyuB,EACV,GAAI+wT,IAAkB,KAAK/wT,EAAQzuB,CAAG,GAChCyuB,EAAOzuB,CAAG,IAAM,KAAM,MAAO,GAGrC,MAAO,EACT,CACA4xT,EAAO6tB,IAAgB,gBAAgB,EACvC,SAASC,IAAiBvxU,EAAM,CAC9B,OAAOA,IAAS,KAAOA,EAAO,EAChC,CACAyjT,EAAO8tB,IAAkB,kBAAkB,EAC3C,IAAIp/S,IAAM,IAAIxlB,GAAK,wBAAyB,CAC1C,KAAM,UACN,QAAS2kU,IACT,UAAWC,GACb,CAAC,EACGC,IAAW/4E,IAAK,OAAO,CACzB,SAAU,CACRp7M,IACAhJ,GACJ,EACE,SAAU,CACRo8R,IACAQ,IACA5mK,IACAl4I,GACJ,CACA,CAAC,EACGs/S,GAAoB,OAAO,UAAU,eACrCC,GAAkB,EAClBC,IAAmB,EACnBC,IAAmB,EACnBC,GAAoB,EACpBC,GAAgB,EAChBC,IAAiB,EACjBC,IAAgB,EAChBC,IAAwB,sIACxBC,IAAgC,qBAChCC,IAA0B,cAC1BC,IAAqB,yBACrBC,IAAkB,mFACtB,SAASC,GAAO/9U,EAAK,CACnB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,CAC3C,CACAkvT,EAAO6uB,GAAQ,QAAQ,EACvB,SAASC,GAAOrjV,EAAG,CACjB,OAAOA,IAAM,IAAMA,IAAM,EAC3B,CACAu0T,EAAO8uB,GAAQ,QAAQ,EACvB,SAASC,GAAetjV,EAAG,CACzB,OAAOA,IAAM,GAAKA,IAAM,EAC1B,CACAu0T,EAAO+uB,GAAgB,gBAAgB,EACvC,SAASC,GAAavjV,EAAG,CACvB,OAAOA,IAAM,GAAKA,IAAM,IAAMA,IAAM,IAAMA,IAAM,EAClD,CACAu0T,EAAOgvB,GAAc,cAAc,EACnC,SAASC,GAAkBxjV,EAAG,CAC5B,OAAOA,IAAM,IAAMA,IAAM,IAAMA,IAAM,IAAMA,IAAM,KAAOA,IAAM,GAChE,CACAu0T,EAAOivB,GAAmB,mBAAmB,EAC7C,SAASC,IAAYzjV,EAAG,CACtB,IAAI0jV,EACJ,MAAI,KAAM1jV,GAAKA,GAAK,GACXA,EAAI,IAEb0jV,EAAK1jV,EAAI,GACL,IAAM0jV,GAAMA,GAAM,IACbA,EAAK,GAAK,GAEZ,GACT,CACAnvB,EAAOkvB,IAAa,aAAa,EACjC,SAASE,IAAc3jV,EAAG,CACxB,OAAIA,IAAM,IACD,EAELA,IAAM,IACD,EAELA,IAAM,GACD,EAEF,CACT,CACAu0T,EAAOovB,IAAe,eAAe,EACrC,SAASC,IAAgB5jV,EAAG,CAC1B,MAAI,KAAMA,GAAKA,GAAK,GACXA,EAAI,GAEN,EACT,CACAu0T,EAAOqvB,IAAiB,iBAAiB,EACzC,SAASC,GAAqB7jV,EAAG,CAC/B,OAAOA,IAAM,GAAK,KAAOA,IAAM,GAAK,OAASA,IAAM,GAAK,KAAOA,IAAM,KAAYA,IAAM,EAAZ,IAAsBA,IAAM,IAAM;AAAA,EAAOA,IAAM,IAAM,KAAOA,IAAM,IAAM,KAAOA,IAAM,IAAM,KAAOA,IAAM,IAAM,OAASA,IAAM,GAAK,IAAMA,IAAM,GAAK,IAAMA,IAAM,GAAK,IAAMA,IAAM,GAAK,KAAOA,IAAM,GAAK,IAASA,IAAM,GAAK,IAASA,IAAM,GAAK,SAAWA,IAAM,GAAK,SAAW,EAC7V,CACAu0T,EAAOsvB,GAAsB,sBAAsB,EACnD,SAASC,IAAkB9jV,EAAG,CAC5B,OAAIA,GAAK,MACA,OAAO,aAAaA,CAAC,EAEvB,OAAO,cACXA,EAAI,OAAS,IAAM,OACnBA,EAAI,MAAQ,MAAQ,KACzB,CACA,CACAu0T,EAAOuvB,IAAmB,mBAAmB,EAC7C,IAAIC,IAAoB,IAAI,MAAM,GAAG,EACjCC,IAAkB,IAAI,MAAM,GAAG,EACnC,IAAKthV,GAAI,EAAGA,GAAI,IAAKA,KACnBqhV,IAAkBrhV,EAAC,EAAImhV,GAAqBnhV,EAAC,EAAI,EAAI,EACrDshV,IAAgBthV,EAAC,EAAImhV,GAAqBnhV,EAAC,EAE7C,IAAIA,GACJ,SAASuhV,IAAQjjS,EAAOv5C,EAAS,CAC/B,KAAK,MAAQu5C,EACb,KAAK,SAAWv5C,EAAQ,UAAe,KACvC,KAAK,OAASA,EAAQ,QAAa66U,IACnC,KAAK,UAAY76U,EAAQ,WAAgB,KACzC,KAAK,OAASA,EAAQ,QAAa,GACnC,KAAK,KAAOA,EAAQ,MAAW,GAC/B,KAAK,SAAWA,EAAQ,UAAe,KACvC,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,QAAU,KAAK,OAAO,gBAC3B,KAAK,OAASu5C,EAAM,OACpB,KAAK,SAAW,EAChB,KAAK,KAAO,EACZ,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,eAAiB,GACtB,KAAK,UAAY,EACnB,CACAuzQ,EAAO0vB,IAAS,SAAS,EACzB,SAASC,GAAcrkV,EAAOmJ,EAAS,CACrC,IAAI6/L,EAAO,CACT,KAAMhpM,EAAM,SACZ,OAAQA,EAAM,MAAM,MAAM,EAAG,EAAE,EAE/B,SAAUA,EAAM,SAChB,KAAMA,EAAM,KACZ,OAAQA,EAAM,SAAWA,EAAM,SACnC,EACE,OAAAgpM,EAAK,QAAU40I,IAAQ50I,CAAI,EACpB,IAAI1rJ,GAAUn0C,EAAS6/L,CAAI,CACpC,CACA0rH,EAAO2vB,GAAe,eAAe,EACrC,SAASC,GAAWtkV,EAAOmJ,EAAS,CAClC,MAAMk7U,GAAcrkV,EAAOmJ,CAAO,CACpC,CACAurT,EAAO4vB,GAAY,YAAY,EAC/B,SAASC,GAAavkV,EAAOmJ,EAAS,CAChCnJ,EAAM,WACRA,EAAM,UAAU,KAAK,KAAMqkV,GAAcrkV,EAAOmJ,CAAO,CAAC,CAE5D,CACAurT,EAAO6vB,GAAc,cAAc,EACnC,IAAIC,IAAoB,CACtB,KAAsB9vB,EAAO,SAA6B10T,EAAO6hB,EAAM3a,EAAM,CAC3E,IAAIuE,EAAOg5U,EAAOC,EACd1kV,EAAM,UAAY,MACpBskV,GAAWtkV,EAAO,gCAAgC,EAEhDkH,EAAK,SAAW,GAClBo9U,GAAWtkV,EAAO,6CAA6C,EAEjEyL,EAAQ,uBAAuB,KAAKvE,EAAK,CAAC,CAAC,EACvCuE,IAAU,MACZ64U,GAAWtkV,EAAO,2CAA2C,EAE/DykV,EAAQ,SAASh5U,EAAM,CAAC,EAAG,EAAE,EAC7Bi5U,EAAQ,SAASj5U,EAAM,CAAC,EAAG,EAAE,EACzBg5U,IAAU,GACZH,GAAWtkV,EAAO,2CAA2C,EAE/DA,EAAM,QAAUkH,EAAK,CAAC,EACtBlH,EAAM,gBAAkB0kV,EAAQ,EAC5BA,IAAU,GAAKA,IAAU,GAC3BH,GAAavkV,EAAO,0CAA0C,CAElE,EAAG,qBAAqB,EACxB,IAAqB00T,EAAO,SAA4B10T,EAAO6hB,EAAM3a,EAAM,CACzE,IAAIy9U,EAAQpyM,EACRrrI,EAAK,SAAW,GAClBo9U,GAAWtkV,EAAO,6CAA6C,EAEjE2kV,EAASz9U,EAAK,CAAC,EACfqrI,EAASrrI,EAAK,CAAC,EACVm8U,IAAmB,KAAKsB,CAAM,GACjCL,GAAWtkV,EAAO,6DAA6D,EAE7E0iV,GAAkB,KAAK1iV,EAAM,OAAQ2kV,CAAM,GAC7CL,GAAWtkV,EAAO,8CAAgD2kV,EAAS,cAAc,EAEtFrB,IAAgB,KAAK/wM,CAAM,GAC9B+xM,GAAWtkV,EAAO,8DAA8D,EAElF,GAAI,CACFuyI,EAAS,mBAAmBA,CAAM,CACpC,MAAc,CACZ+xM,GAAWtkV,EAAO,4BAA8BuyI,CAAM,CACxD,CACAvyI,EAAM,OAAO2kV,CAAM,EAAIpyM,CACzB,EAAG,oBAAoB,CACzB,EACA,SAASqyM,GAAe5kV,EAAOsjF,EAAO11E,EAAKi3U,EAAW,CACpD,IAAIC,EAAWC,EAASC,EAAYC,EACpC,GAAI3hQ,EAAQ11E,EAAK,CAEf,GADAq3U,EAAUjlV,EAAM,MAAM,MAAMsjF,EAAO11E,CAAG,EAClCi3U,EACF,IAAKC,EAAY,EAAGC,EAAUE,EAAQ,OAAQH,EAAYC,EAASD,GAAa,EAC9EE,EAAaC,EAAQ,WAAWH,CAAS,EACnCE,IAAe,GAAK,IAAMA,GAAcA,GAAc,SAC1DV,GAAWtkV,EAAO,+BAA+B,OAG5CkjV,IAAsB,KAAK+B,CAAO,GAC3CX,GAAWtkV,EAAO,8CAA8C,EAElEA,EAAM,QAAUilV,CAClB,CACF,CACAvwB,EAAOkwB,GAAgB,gBAAgB,EACvC,SAASM,GAAcllV,EAAO8rQ,EAAarkQ,EAAQ09U,EAAiB,CAClE,IAAI9I,EAAYv5U,EAAKoF,EAAOkgE,EAK5B,IAJK00Q,GAAO,SAASr1U,CAAM,GACzB68U,GAAWtkV,EAAO,mEAAmE,EAEvFq8U,EAAa,OAAO,KAAK50U,CAAM,EAC1BS,EAAQ,EAAGkgE,EAAWi0Q,EAAW,OAAQn0U,EAAQkgE,EAAUlgE,GAAS,EACvEpF,EAAMu5U,EAAWn0U,CAAK,EACjBw6U,GAAkB,KAAK52E,EAAahpQ,CAAG,IAC1CgpQ,EAAYhpQ,CAAG,EAAI2E,EAAO3E,CAAG,EAC7BqiV,EAAgBriV,CAAG,EAAI,GAG7B,CACA4xT,EAAOwwB,GAAe,eAAe,EACrC,SAASE,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAASC,EAAWrqT,EAAWsqT,EAAgB75I,EAAU,CAC1H,IAAIzjM,EAAOkgE,EACX,GAAI,MAAM,QAAQk9Q,CAAO,EAEvB,IADAA,EAAU,MAAM,UAAU,MAAM,KAAKA,CAAO,EACvCp9U,EAAQ,EAAGkgE,EAAWk9Q,EAAQ,OAAQp9U,EAAQkgE,EAAUlgE,GAAS,EAChE,MAAM,QAAQo9U,EAAQp9U,CAAK,CAAC,GAC9Bo8U,GAAWtkV,EAAO,6CAA6C,EAE7D,OAAOslV,GAAY,UAAY/B,GAAO+B,EAAQp9U,CAAK,CAAC,IAAM,oBAC5Do9U,EAAQp9U,CAAK,EAAI,mBAWvB,GAPI,OAAOo9U,GAAY,UAAY/B,GAAO+B,CAAO,IAAM,oBACrDA,EAAU,mBAEZA,EAAU,OAAOA,CAAO,EACpBL,IAAY,OACdA,EAAU,IAERI,IAAW,0BACb,GAAI,MAAM,QAAQE,CAAS,EACzB,IAAKr9U,EAAQ,EAAGkgE,EAAWm9Q,EAAU,OAAQr9U,EAAQkgE,EAAUlgE,GAAS,EACtEg9U,GAAcllV,EAAOilV,EAASM,EAAUr9U,CAAK,EAAGi9U,CAAe,OAGjED,GAAcllV,EAAOilV,EAASM,EAAWJ,CAAe,MAGtD,CAACnlV,EAAM,MAAQ,CAAC0iV,GAAkB,KAAKyC,EAAiBG,CAAO,GAAK5C,GAAkB,KAAKuC,EAASK,CAAO,IAC7GtlV,EAAM,KAAOk7B,GAAal7B,EAAM,KAChCA,EAAM,UAAYwlV,GAAkBxlV,EAAM,UAC1CA,EAAM,SAAW2rM,GAAY3rM,EAAM,SACnCskV,GAAWtkV,EAAO,wBAAwB,GAExCslV,IAAY,YACd,OAAO,eAAeL,EAASK,EAAS,CACtC,aAAc,GACd,WAAY,GACZ,SAAU,GACV,MAAOC,CACf,CAAO,EAEDN,EAAQK,CAAO,EAAIC,EAErB,OAAOJ,EAAgBG,CAAO,EAEhC,OAAOL,CACT,CACAvwB,EAAO0wB,GAAkB,kBAAkB,EAC3C,SAASK,GAAczlV,EAAO,CAC5B,IAAI2tN,EACJA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GACT3tN,EAAM,WACG2tN,IAAO,IAChB3tN,EAAM,WACFA,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAAM,IAC7CA,EAAM,YAGRskV,GAAWtkV,EAAO,0BAA0B,EAE9CA,EAAM,MAAQ,EACdA,EAAM,UAAYA,EAAM,SACxBA,EAAM,eAAiB,EACzB,CACA00T,EAAO+wB,GAAe,eAAe,EACrC,SAASC,GAAoB1lV,EAAO2lV,EAAeC,EAAa,CAE9D,QADIC,EAAa,EAAGl4H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACvD2tN,IAAO,GAAG,CACf,KAAO81H,GAAe91H,CAAE,GAClBA,IAAO,GAAK3tN,EAAM,iBAAmB,KACvCA,EAAM,eAAiBA,EAAM,UAE/B2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C,GAAI2lV,GAAiBh4H,IAAO,GAC1B,GACEA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,QACrC2tN,IAAO,IAAMA,IAAO,IAAMA,IAAO,GAE5C,GAAI61H,GAAO71H,CAAE,EAKX,IAJA83H,GAAczlV,CAAK,EACnB2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EAC1C6lV,IACA7lV,EAAM,WAAa,EACZ2tN,IAAO,IACZ3tN,EAAM,aACN2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,MAG9C,MAEJ,CACA,OAAI4lV,IAAgB,IAAMC,IAAe,GAAK7lV,EAAM,WAAa4lV,GAC/DrB,GAAavkV,EAAO,uBAAuB,EAEtC6lV,CACT,CACAnxB,EAAOgxB,GAAqB,qBAAqB,EACjD,SAASI,GAAsB9lV,EAAO,CACpC,IAAI8kV,EAAY9kV,EAAM,SAAU2tN,EAEhC,OADAA,EAAK3tN,EAAM,MAAM,WAAW8kV,CAAS,EAChC,IAAAn3H,IAAO,IAAMA,IAAO,KAAOA,IAAO3tN,EAAM,MAAM,WAAW8kV,EAAY,CAAC,GAAKn3H,IAAO3tN,EAAM,MAAM,WAAW8kV,EAAY,CAAC,IACzHA,GAAa,EACbn3H,EAAK3tN,EAAM,MAAM,WAAW8kV,CAAS,EACjCn3H,IAAO,GAAK+1H,GAAa/1H,CAAE,GAKnC,CACA+mG,EAAOoxB,GAAuB,uBAAuB,EACrD,SAASC,GAAiB/lV,EAAO8e,EAAO,CAClCA,IAAU,EACZ9e,EAAM,QAAU,IACP8e,EAAQ,IACjB9e,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAMh+T,EAAQ,CAAC,EAEjD,CACA41S,EAAOqxB,GAAkB,kBAAkB,EAC3C,SAASC,IAAgBhmV,EAAOimV,EAAYC,EAAsB,CAChE,IAAIC,EAAWC,EAAWC,EAAcC,EAAYC,EAAmBC,EAAOC,EAAYC,EAAaC,EAAQ3mV,EAAM,KAAMilV,EAAUjlV,EAAM,OAAQ2tN,EAKnJ,GAJAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC0jV,GAAa/1H,CAAE,GAAKg2H,GAAkBh2H,CAAE,GAAKA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,KAAOA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,KAGvLA,IAAO,IAAMA,IAAO,MACtBy4H,EAAYpmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACjD0jV,GAAa0C,CAAS,GAAKF,GAAwBvC,GAAkByC,CAAS,GAChF,MAAO,GAOX,IAJApmV,EAAM,KAAO,SACbA,EAAM,OAAS,GACfqmV,EAAeC,EAAatmV,EAAM,SAClCumV,EAAoB,GACb54H,IAAO,GAAG,CACf,GAAIA,IAAO,IAET,GADAy4H,EAAYpmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACjD0jV,GAAa0C,CAAS,GAAKF,GAAwBvC,GAAkByC,CAAS,EAChF,cAEOz4H,IAAO,IAEhB,GADAw4H,EAAYnmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACjD0jV,GAAayC,CAAS,EACxB,UAEG,IAAInmV,EAAM,WAAaA,EAAM,WAAa8lV,GAAsB9lV,CAAK,GAAKkmV,GAAwBvC,GAAkBh2H,CAAE,EAC3H,MACK,GAAI61H,GAAO71H,CAAE,EAKlB,GAJA64H,EAAQxmV,EAAM,KACdymV,EAAazmV,EAAM,UACnB0mV,EAAc1mV,EAAM,WACpB0lV,GAAoB1lV,EAAO,GAAO,EAAE,EAChCA,EAAM,YAAcimV,EAAY,CAClCM,EAAoB,GACpB54H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EAC1C,QACF,KAAO,CACLA,EAAM,SAAWsmV,EACjBtmV,EAAM,KAAOwmV,EACbxmV,EAAM,UAAYymV,EAClBzmV,EAAM,WAAa0mV,EACnB,KACF,EAEEH,IACF3B,GAAe5kV,EAAOqmV,EAAcC,EAAY,EAAK,EACrDP,GAAiB/lV,EAAOA,EAAM,KAAOwmV,CAAK,EAC1CH,EAAeC,EAAatmV,EAAM,SAClCumV,EAAoB,IAEjB9C,GAAe91H,CAAE,IACpB24H,EAAatmV,EAAM,SAAW,GAEhC2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,CAC9C,CAEA,OADA4kV,GAAe5kV,EAAOqmV,EAAcC,EAAY,EAAK,EACjDtmV,EAAM,OACD,IAETA,EAAM,KAAO2mV,EACb3mV,EAAM,OAASilV,EACR,GACT,CACAvwB,EAAOsxB,IAAiB,iBAAiB,EACzC,SAASY,IAAuB5mV,EAAOimV,EAAY,CACjD,IAAIt4H,EAAI04H,EAAcC,EAEtB,GADA34H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GACT,MAAO,GAMT,IAJA3tN,EAAM,KAAO,SACbA,EAAM,OAAS,GACfA,EAAM,WACNqmV,EAAeC,EAAatmV,EAAM,UAC1B2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,KAAO,GACvD,GAAI2tN,IAAO,GAGT,GAFAi3H,GAAe5kV,EAAOqmV,EAAcrmV,EAAM,SAAU,EAAI,EACxD2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACxC2tN,IAAO,GACT04H,EAAermV,EAAM,SACrBA,EAAM,WACNsmV,EAAatmV,EAAM,aAEnB,OAAO,QAEAwjV,GAAO71H,CAAE,GAClBi3H,GAAe5kV,EAAOqmV,EAAcC,EAAY,EAAI,EACpDP,GAAiB/lV,EAAO0lV,GAAoB1lV,EAAO,GAAOimV,CAAU,CAAC,EACrEI,EAAeC,EAAatmV,EAAM,UACzBA,EAAM,WAAaA,EAAM,WAAa8lV,GAAsB9lV,CAAK,EAC1EskV,GAAWtkV,EAAO,8DAA8D,GAEhFA,EAAM,WACNsmV,EAAatmV,EAAM,UAGvBskV,GAAWtkV,EAAO,4DAA4D,CAChF,CACA00T,EAAOkyB,IAAwB,wBAAwB,EACvD,SAASC,IAAuB7mV,EAAOimV,EAAY,CACjD,IAAII,EAAcC,EAAYQ,EAAWC,EAAW/7I,EAAK2iB,EAEzD,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GACT,MAAO,GAMT,IAJA3tN,EAAM,KAAO,SACbA,EAAM,OAAS,GACfA,EAAM,WACNqmV,EAAeC,EAAatmV,EAAM,UAC1B2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,KAAO,GAAG,CAC1D,GAAI2tN,IAAO,GACT,OAAAi3H,GAAe5kV,EAAOqmV,EAAcrmV,EAAM,SAAU,EAAI,EACxDA,EAAM,WACC,GACF,GAAI2tN,IAAO,GAAI,CAGpB,GAFAi3H,GAAe5kV,EAAOqmV,EAAcrmV,EAAM,SAAU,EAAI,EACxD2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACxCwjV,GAAO71H,CAAE,EACX+3H,GAAoB1lV,EAAO,GAAOimV,CAAU,UACnCt4H,EAAK,KAAOu2H,IAAkBv2H,CAAE,EACzC3tN,EAAM,QAAUmkV,IAAgBx2H,CAAE,EAClC3tN,EAAM,oBACIgrM,EAAM84I,IAAcn2H,CAAE,GAAK,EAAG,CAGxC,IAFAm5H,EAAY97I,EACZ+7I,EAAY,EACLD,EAAY,EAAGA,IACpBn5H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GACvCgrM,EAAM44I,IAAYj2H,CAAE,IAAM,EAC7Bo5H,GAAaA,GAAa,GAAK/7I,EAE/Bs5I,GAAWtkV,EAAO,gCAAgC,EAGtDA,EAAM,QAAUikV,IAAkB8C,CAAS,EAC3C/mV,EAAM,UACR,MACEskV,GAAWtkV,EAAO,yBAAyB,EAE7CqmV,EAAeC,EAAatmV,EAAM,QACpC,MAAWwjV,GAAO71H,CAAE,GAClBi3H,GAAe5kV,EAAOqmV,EAAcC,EAAY,EAAI,EACpDP,GAAiB/lV,EAAO0lV,GAAoB1lV,EAAO,GAAOimV,CAAU,CAAC,EACrEI,EAAeC,EAAatmV,EAAM,UACzBA,EAAM,WAAaA,EAAM,WAAa8lV,GAAsB9lV,CAAK,EAC1EskV,GAAWtkV,EAAO,8DAA8D,GAEhFA,EAAM,WACNsmV,EAAatmV,EAAM,SAEvB,CACAskV,GAAWtkV,EAAO,4DAA4D,CAChF,CACA00T,EAAOmyB,IAAwB,wBAAwB,EACvD,SAASG,IAAmBhnV,EAAOimV,EAAY,CAC7C,IAAIgB,EAAW,GAAMT,EAAOC,EAAYvxG,EAAMgyG,EAAOlnV,EAAM,IAAKilV,EAASkC,EAAUnnV,EAAM,OAAQomV,EAAWgB,EAAYC,EAAQC,EAAgBC,EAAWpC,EAAkC,OAAO,OAAO,IAAI,EAAGG,EAASD,EAAQE,EAAW53H,EAE9O,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GACTy5H,EAAa,GACbG,EAAY,GACZtC,EAAU,WACDt3H,IAAO,IAChBy5H,EAAa,IACbG,EAAY,GACZtC,EAAU,OAEV,OAAO,GAMT,IAJIjlV,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIilV,GAElCt3H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACrC2tN,IAAO,GAAG,CAGf,GAFA+3H,GAAoB1lV,EAAO,GAAMimV,CAAU,EAC3Ct4H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAOy5H,EACT,OAAApnV,EAAM,WACNA,EAAM,IAAMknV,EACZlnV,EAAM,OAASmnV,EACfnnV,EAAM,KAAOunV,EAAY,UAAY,WACrCvnV,EAAM,OAASilV,EACR,GACGgC,EAEDt5H,IAAO,IAChB22H,GAAWtkV,EAAO,0CAA0C,EAF5DskV,GAAWtkV,EAAO,8CAA8C,EAIlEqlV,EAASC,EAAUC,EAAY,KAC/B8B,EAASC,EAAiB,GACtB35H,IAAO,KACTy4H,EAAYpmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACjD0jV,GAAa0C,CAAS,IACxBiB,EAASC,EAAiB,GAC1BtnV,EAAM,WACN0lV,GAAoB1lV,EAAO,GAAMimV,CAAU,IAG/CO,EAAQxmV,EAAM,KACdymV,EAAazmV,EAAM,UACnBk1O,EAAOl1O,EAAM,SACbwnV,GAAYxnV,EAAOimV,EAAYtD,GAAiB,GAAO,EAAI,EAC3D0C,EAASrlV,EAAM,IACfslV,EAAUtlV,EAAM,OAChB0lV,GAAoB1lV,EAAO,GAAMimV,CAAU,EAC3Ct4H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,GACrCsnV,GAAkBtnV,EAAM,OAASwmV,IAAU74H,IAAO,KACrD05H,EAAS,GACT15H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAC5C0lV,GAAoB1lV,EAAO,GAAMimV,CAAU,EAC3CuB,GAAYxnV,EAAOimV,EAAYtD,GAAiB,GAAO,EAAI,EAC3D4C,EAAYvlV,EAAM,QAEhBunV,EACFnC,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAASC,EAAWiB,EAAOC,EAAYvxG,CAAI,EAC5FmyG,EACTpC,EAAQ,KAAKG,GAAiBplV,EAAO,KAAMmlV,EAAiBE,EAAQC,EAASC,EAAWiB,EAAOC,EAAYvxG,CAAI,CAAC,EAEhH+vG,EAAQ,KAAKK,CAAO,EAEtBI,GAAoB1lV,EAAO,GAAMimV,CAAU,EAC3Ct4H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,IACTs5H,EAAW,GACXt5H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAE5CinV,EAAW,EAEf,CACA3C,GAAWtkV,EAAO,uDAAuD,CAC3E,CACA00T,EAAOsyB,IAAoB,oBAAoB,EAC/C,SAASS,IAAgBznV,EAAOimV,EAAY,CAC1C,IAAII,EAAcqB,EAASC,EAAW5E,GAAe6E,EAAiB,GAAOC,EAAiB,GAAOC,EAAa7B,EAAY8B,EAAa,EAAGC,EAAiB,GAAOh9I,EAAK2iB,EAE3K,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,IACT+5H,EAAU,WACD/5H,IAAO,GAChB+5H,EAAU,OAEV,OAAO,GAIT,IAFA1nV,EAAM,KAAO,SACbA,EAAM,OAAS,GACR2tN,IAAO,GAEZ,GADAA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACxC2tN,IAAO,IAAMA,IAAO,GAClBo1H,KAAkB4E,EACpBA,EAAWh6H,IAAO,GAAKs1H,IAAgBD,IAEvCsB,GAAWtkV,EAAO,sCAAsC,WAEhDgrM,EAAM+4I,IAAgBp2H,CAAE,IAAM,EACpC3iB,IAAQ,EACVs5I,GAAWtkV,EAAO,8EAA8E,EACtF6nV,EAIVvD,GAAWtkV,EAAO,2CAA2C,GAH7D8nV,EAAa7B,EAAaj7I,EAAM,EAChC68I,EAAiB,QAKnB,OAGJ,GAAIpE,GAAe91H,CAAE,EAAG,CACtB,GACEA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,QACrCyjV,GAAe91H,CAAE,GAC1B,GAAIA,IAAO,GACT,GACEA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,QACrC,CAACwjV,GAAO71H,CAAE,GAAKA,IAAO,EAEnC,CACA,KAAOA,IAAO,GAAG,CAIf,IAHA83H,GAAczlV,CAAK,EACnBA,EAAM,WAAa,EACnB2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAClC,CAAC6nV,GAAkB7nV,EAAM,WAAa8nV,IAAen6H,IAAO,IAClE3tN,EAAM,aACN2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAK9C,GAHI,CAAC6nV,GAAkB7nV,EAAM,WAAa8nV,IACxCA,EAAa9nV,EAAM,YAEjBwjV,GAAO71H,CAAE,EAAG,CACdo6H,IACA,QACF,CACA,GAAI/nV,EAAM,WAAa8nV,EAAY,CAC7BH,IAAa1E,IACfjjV,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAM8K,EAAiB,EAAIG,EAAaA,CAAU,EACvEJ,IAAa5E,IAClB6E,IACF5nV,EAAM,QAAU;AAAA,GAGpB,KACF,CAsBA,IArBI0nV,EACEjE,GAAe91H,CAAE,GACnBq6H,EAAiB,GACjBhoV,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAM8K,EAAiB,EAAIG,EAAaA,CAAU,GACvEC,GACTA,EAAiB,GACjBhoV,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAMiL,EAAa,CAAC,GACzCA,IAAe,EACpBH,IACF5nV,EAAM,QAAU,KAGlBA,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAMiL,CAAU,EAGhD/nV,EAAM,QAAU88U,GAAO,OAAO;AAAA,EAAM8K,EAAiB,EAAIG,EAAaA,CAAU,EAElFH,EAAiB,GACjBC,EAAiB,GACjBE,EAAa,EACb1B,EAAermV,EAAM,SACd,CAACwjV,GAAO71H,CAAE,GAAKA,IAAO,GAC3BA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C4kV,GAAe5kV,EAAOqmV,EAAcrmV,EAAM,SAAU,EAAK,CAC3D,CACA,MAAO,EACT,CACA00T,EAAO+yB,IAAiB,iBAAiB,EACzC,SAASQ,GAAkBjoV,EAAOimV,EAAY,CAC5C,IAAIO,EAAOU,EAAOlnV,EAAM,IAAKmnV,EAAUnnV,EAAM,OAAQilV,EAAU,GAAImB,EAAW8B,EAAW,GAAOv6H,EAChG,GAAI3tN,EAAM,iBAAmB,GAAI,MAAO,GAKxC,IAJIA,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIilV,GAElCt3H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACnC2tN,IAAO,IACR3tN,EAAM,iBAAmB,KAC3BA,EAAM,SAAWA,EAAM,eACvBskV,GAAWtkV,EAAO,gDAAgD,GAEhE,EAAA2tN,IAAO,KAGXy4H,EAAYpmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACjD,CAAC0jV,GAAa0C,CAAS,MATZ,CAcf,GAFA8B,EAAW,GACXloV,EAAM,WACF0lV,GAAoB1lV,EAAO,GAAM,EAAE,GACjCA,EAAM,YAAcimV,EAAY,CAClChB,EAAQ,KAAK,IAAI,EACjBt3H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EAC1C,QACF,CAOF,GALAwmV,EAAQxmV,EAAM,KACdwnV,GAAYxnV,EAAOimV,EAAYpD,IAAkB,GAAO,EAAI,EAC5DoC,EAAQ,KAAKjlV,EAAM,MAAM,EACzB0lV,GAAoB1lV,EAAO,GAAM,EAAE,EACnC2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,GACrCA,EAAM,OAASwmV,GAASxmV,EAAM,WAAaimV,IAAet4H,IAAO,EACpE22H,GAAWtkV,EAAO,qCAAqC,UAC9CA,EAAM,WAAaimV,EAC5B,KAEJ,CACA,OAAIiC,GACFloV,EAAM,IAAMknV,EACZlnV,EAAM,OAASmnV,EACfnnV,EAAM,KAAO,WACbA,EAAM,OAASilV,EACR,IAEF,EACT,CACAvwB,EAAOuzB,GAAmB,mBAAmB,EAC7C,SAASE,IAAiBnoV,EAAOimV,EAAYmC,EAAY,CACvD,IAAIhC,EAAWiC,EAAc7B,EAAO8B,EAAUC,EAAeC,EAAStB,EAAOlnV,EAAM,IAAKmnV,EAAUnnV,EAAM,OAAQilV,EAAU,GAAIE,EAAkC,OAAO,OAAO,IAAI,EAAGE,EAAS,KAAMC,EAAU,KAAMC,EAAY,KAAMkD,EAAgB,GAAOP,EAAW,GAAOv6H,EAC/Q,GAAI3tN,EAAM,iBAAmB,GAAI,MAAO,GAKxC,IAJIA,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIilV,GAElCt3H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACnC2tN,IAAO,GAAG,CAOf,GANI,CAAC86H,GAAiBzoV,EAAM,iBAAmB,KAC7CA,EAAM,SAAWA,EAAM,eACvBskV,GAAWtkV,EAAO,gDAAgD,GAEpEomV,EAAYpmV,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,EACrDwmV,EAAQxmV,EAAM,MACT2tN,IAAO,IAAMA,IAAO,KAAO+1H,GAAa0C,CAAS,EAChDz4H,IAAO,IACL86H,IACFrD,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAAS,KAAMgD,EAAUC,EAAeC,CAAO,EACzGnD,EAASC,EAAUC,EAAY,MAEjC2C,EAAW,GACXO,EAAgB,GAChBJ,EAAe,IACNI,GACTA,EAAgB,GAChBJ,EAAe,IAEf/D,GAAWtkV,EAAO,mGAAmG,EAEvHA,EAAM,UAAY,EAClB2tN,EAAKy4H,MACA,CAIL,GAHAkC,EAAWtoV,EAAM,KACjBuoV,EAAgBvoV,EAAM,UACtBwoV,EAAUxoV,EAAM,SACZ,CAACwnV,GAAYxnV,EAAOooV,EAAYxF,IAAkB,GAAO,EAAI,EAC/D,MAEF,GAAI5iV,EAAM,OAASwmV,EAAO,CAExB,IADA74H,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACnCyjV,GAAe91H,CAAE,GACtBA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C,GAAI2tN,IAAO,GACTA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACvC0jV,GAAa/1H,CAAE,GAClB22H,GAAWtkV,EAAO,yFAAyF,EAEzGyoV,IACFrD,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAAS,KAAMgD,EAAUC,EAAeC,CAAO,EACzGnD,EAASC,EAAUC,EAAY,MAEjC2C,EAAW,GACXO,EAAgB,GAChBJ,EAAe,GACfhD,EAASrlV,EAAM,IACfslV,EAAUtlV,EAAM,eACPkoV,EACT5D,GAAWtkV,EAAO,0DAA0D,MAE5E,QAAAA,EAAM,IAAMknV,EACZlnV,EAAM,OAASmnV,EACR,EAEX,SAAWe,EACT5D,GAAWtkV,EAAO,gFAAgF,MAElG,QAAAA,EAAM,IAAMknV,EACZlnV,EAAM,OAASmnV,EACR,EAEX,CAqBA,IApBInnV,EAAM,OAASwmV,GAASxmV,EAAM,WAAaimV,KACzCwC,IACFH,EAAWtoV,EAAM,KACjBuoV,EAAgBvoV,EAAM,UACtBwoV,EAAUxoV,EAAM,UAEdwnV,GAAYxnV,EAAOimV,EAAYnD,GAAmB,GAAMuF,CAAY,IAClEI,EACFnD,EAAUtlV,EAAM,OAEhBulV,EAAYvlV,EAAM,QAGjByoV,IACHrD,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAASC,EAAW+C,EAAUC,EAAeC,CAAO,EAC9GnD,EAASC,EAAUC,EAAY,MAEjCG,GAAoB1lV,EAAO,GAAM,EAAE,EACnC2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAEvCA,EAAM,OAASwmV,GAASxmV,EAAM,WAAaimV,IAAet4H,IAAO,EACpE22H,GAAWtkV,EAAO,oCAAoC,UAC7CA,EAAM,WAAaimV,EAC5B,KAEJ,CACA,OAAIwC,GACFrD,GAAiBplV,EAAOilV,EAASE,EAAiBE,EAAQC,EAAS,KAAMgD,EAAUC,EAAeC,CAAO,EAEvGN,IACFloV,EAAM,IAAMknV,EACZlnV,EAAM,OAASmnV,EACfnnV,EAAM,KAAO,UACbA,EAAM,OAASilV,GAEViD,CACT,CACAxzB,EAAOyzB,IAAkB,kBAAkB,EAC3C,SAASO,IAAgB1oV,EAAO,CAC9B,IAAI8kV,EAAW6D,EAAa,GAAOC,EAAU,GAAOC,EAAW90I,EAAS4Z,EAExE,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GAAI,MAAO,GAgBtB,GAfI3tN,EAAM,MAAQ,MAChBskV,GAAWtkV,EAAO,+BAA+B,EAEnD2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EACxC2tN,IAAO,IACTg7H,EAAa,GACbh7H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GACnC2tN,IAAO,IAChBi7H,EAAU,GACVC,EAAY,KACZl7H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAE5C6oV,EAAY,IAEd/D,EAAY9kV,EAAM,SACd2oV,EAAY,CACd,GACEh7H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,QACrC2tN,IAAO,GAAKA,IAAO,IACxB3tN,EAAM,SAAWA,EAAM,QACzB+zM,EAAU/zM,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,EACrD2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAE5CskV,GAAWtkV,EAAO,oDAAoD,CAE1E,KAAO,CACL,KAAO2tN,IAAO,GAAK,CAAC+1H,GAAa/1H,CAAE,GAC7BA,IAAO,KACJi7H,EAQHtE,GAAWtkV,EAAO,6CAA6C,GAP/D6oV,EAAY7oV,EAAM,MAAM,MAAM8kV,EAAY,EAAG9kV,EAAM,SAAW,CAAC,EAC1DqjV,IAAmB,KAAKwF,CAAS,GACpCvE,GAAWtkV,EAAO,iDAAiD,EAErE4oV,EAAU,GACV9D,EAAY9kV,EAAM,SAAW,IAKjC2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C+zM,EAAU/zM,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,EACjDojV,IAAwB,KAAKrvI,CAAO,GACtCuwI,GAAWtkV,EAAO,qDAAqD,CAE3E,CACI+zM,GAAW,CAACuvI,IAAgB,KAAKvvI,CAAO,GAC1CuwI,GAAWtkV,EAAO,4CAA8C+zM,CAAO,EAEzE,GAAI,CACFA,EAAU,mBAAmBA,CAAO,CACtC,MAAc,CACZuwI,GAAWtkV,EAAO,0BAA4B+zM,CAAO,CACvD,CACA,OAAI40I,EACF3oV,EAAM,IAAM+zM,EACH2uI,GAAkB,KAAK1iV,EAAM,OAAQ6oV,CAAS,EACvD7oV,EAAM,IAAMA,EAAM,OAAO6oV,CAAS,EAAI90I,EAC7B80I,IAAc,IACvB7oV,EAAM,IAAM,IAAM+zM,EACT80I,IAAc,KACvB7oV,EAAM,IAAM,qBAAuB+zM,EAEnCuwI,GAAWtkV,EAAO,0BAA4B6oV,EAAY,GAAG,EAExD,EACT,CACAn0B,EAAOg0B,IAAiB,iBAAiB,EACzC,SAASI,IAAmB9oV,EAAO,CACjC,IAAI8kV,EAAWn3H,EAEf,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GAAI,MAAO,GAMtB,IALI3tN,EAAM,SAAW,MACnBskV,GAAWtkV,EAAO,mCAAmC,EAEvD2tN,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAC5C8kV,EAAY9kV,EAAM,SACX2tN,IAAO,GAAK,CAAC+1H,GAAa/1H,CAAE,GAAK,CAACg2H,GAAkBh2H,CAAE,GAC3DA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C,OAAIA,EAAM,WAAa8kV,GACrBR,GAAWtkV,EAAO,4DAA4D,EAEhFA,EAAM,OAASA,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,EACnD,EACT,CACA00T,EAAOo0B,IAAoB,oBAAoB,EAC/C,SAASC,IAAU/oV,EAAO,CACxB,IAAI8kV,EAAW7G,EAAOtwH,EAEtB,GADAA,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC2tN,IAAO,GAAI,MAAO,GAGtB,IAFAA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAC5C8kV,EAAY9kV,EAAM,SACX2tN,IAAO,GAAK,CAAC+1H,GAAa/1H,CAAE,GAAK,CAACg2H,GAAkBh2H,CAAE,GAC3DA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C,OAAIA,EAAM,WAAa8kV,GACrBR,GAAWtkV,EAAO,2DAA2D,EAE/Ei+U,EAAQj+U,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,EAC9C0iV,GAAkB,KAAK1iV,EAAM,UAAWi+U,CAAK,GAChDqG,GAAWtkV,EAAO,uBAAyBi+U,EAAQ,GAAG,EAExDj+U,EAAM,OAASA,EAAM,UAAUi+U,CAAK,EACpCyH,GAAoB1lV,EAAO,GAAM,EAAE,EAC5B,EACT,CACA00T,EAAOq0B,IAAW,WAAW,EAC7B,SAASvB,GAAYxnV,EAAOgpV,EAAcC,EAAaC,EAAab,EAAc,CAChF,IAAIc,EAAkBC,EAAmBC,EAAuBC,EAAe,EAAGC,EAAY,GAAOC,EAAa,GAAOC,EAAWC,EAAcC,EAAUjL,EAAO0J,EAAYwB,EAqB/K,GApBI5pV,EAAM,WAAa,MACrBA,EAAM,SAAS,OAAQA,CAAK,EAE9BA,EAAM,IAAM,KACZA,EAAM,OAAS,KACfA,EAAM,KAAO,KACbA,EAAM,OAAS,KACfmpV,EAAmBC,EAAoBC,EAAwBvG,KAAsBmG,GAAepG,MAAqBoG,EACrHC,GACExD,GAAoB1lV,EAAO,GAAM,EAAE,IACrCupV,EAAY,GACRvpV,EAAM,WAAagpV,EACrBM,EAAe,EACNtpV,EAAM,aAAegpV,EAC9BM,EAAe,EACNtpV,EAAM,WAAagpV,IAC5BM,EAAe,KAIjBA,IAAiB,EACnB,KAAOZ,IAAgB1oV,CAAK,GAAK8oV,IAAmB9oV,CAAK,GACnD0lV,GAAoB1lV,EAAO,GAAM,EAAE,GACrCupV,EAAY,GACZF,EAAwBF,EACpBnpV,EAAM,WAAagpV,EACrBM,EAAe,EACNtpV,EAAM,aAAegpV,EAC9BM,EAAe,EACNtpV,EAAM,WAAagpV,IAC5BM,EAAe,KAGjBD,EAAwB,GAuC9B,GAnCIA,IACFA,EAAwBE,GAAalB,IAEnCiB,IAAiB,GAAKxG,KAAsBmG,KAC1CtG,KAAoBsG,GAAerG,MAAqBqG,EAC1Db,EAAaY,EAEbZ,EAAaY,EAAe,EAE9BY,EAAc5pV,EAAM,SAAWA,EAAM,UACjCspV,IAAiB,EACfD,IAA0BpB,GAAkBjoV,EAAO4pV,CAAW,GAAKzB,IAAiBnoV,EAAO4pV,EAAaxB,CAAU,IAAMpB,IAAmBhnV,EAAOooV,CAAU,EAC9JoB,EAAa,IAETJ,GAAqB3B,IAAgBznV,EAAOooV,CAAU,GAAKxB,IAAuB5mV,EAAOooV,CAAU,GAAKvB,IAAuB7mV,EAAOooV,CAAU,EAClJoB,EAAa,GACJT,IAAU/oV,CAAK,GACxBwpV,EAAa,IACTxpV,EAAM,MAAQ,MAAQA,EAAM,SAAW,OACzCskV,GAAWtkV,EAAO,2CAA2C,GAEtDgmV,IAAgBhmV,EAAOooV,EAAYzF,KAAoBsG,CAAW,IAC3EO,EAAa,GACTxpV,EAAM,MAAQ,OAChBA,EAAM,IAAM,MAGZA,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIA,EAAM,SAGjCspV,IAAiB,IAC1BE,EAAaH,GAAyBpB,GAAkBjoV,EAAO4pV,CAAW,IAG1E5pV,EAAM,MAAQ,KACZA,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIA,EAAM,gBAE/BA,EAAM,MAAQ,KAIvB,IAHIA,EAAM,SAAW,MAAQA,EAAM,OAAS,UAC1CskV,GAAWtkV,EAAO,oEAAsEA,EAAM,KAAO,GAAG,EAErGypV,EAAY,EAAGC,EAAe1pV,EAAM,cAAc,OAAQypV,EAAYC,EAAcD,GAAa,EAEpG,GADA/K,EAAQ1+U,EAAM,cAAcypV,CAAS,EACjC/K,EAAM,QAAQ1+U,EAAM,MAAM,EAAG,CAC/BA,EAAM,OAAS0+U,EAAM,UAAU1+U,EAAM,MAAM,EAC3CA,EAAM,IAAM0+U,EAAM,IACd1+U,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIA,EAAM,QAExC,KACF,UAEOA,EAAM,MAAQ,IAAK,CAC5B,GAAI0iV,GAAkB,KAAK1iV,EAAM,QAAQA,EAAM,MAAQ,UAAU,EAAGA,EAAM,GAAG,EAC3E0+U,EAAQ1+U,EAAM,QAAQA,EAAM,MAAQ,UAAU,EAAEA,EAAM,GAAG,MAIzD,KAFA0+U,EAAQ,KACRiL,EAAW3pV,EAAM,QAAQ,MAAMA,EAAM,MAAQ,UAAU,EAClDypV,EAAY,EAAGC,EAAeC,EAAS,OAAQF,EAAYC,EAAcD,GAAa,EACzF,GAAIzpV,EAAM,IAAI,MAAM,EAAG2pV,EAASF,CAAS,EAAE,IAAI,MAAM,IAAME,EAASF,CAAS,EAAE,IAAK,CAClF/K,EAAQiL,EAASF,CAAS,EAC1B,KACF,CAGC/K,GACH4F,GAAWtkV,EAAO,iBAAmBA,EAAM,IAAM,GAAG,EAElDA,EAAM,SAAW,MAAQ0+U,EAAM,OAAS1+U,EAAM,MAChDskV,GAAWtkV,EAAO,gCAAkCA,EAAM,IAAM,wBAA0B0+U,EAAM,KAAO,WAAa1+U,EAAM,KAAO,GAAG,EAEjI0+U,EAAM,QAAQ1+U,EAAM,OAAQA,EAAM,GAAG,GAGxCA,EAAM,OAAS0+U,EAAM,UAAU1+U,EAAM,OAAQA,EAAM,GAAG,EAClDA,EAAM,SAAW,OACnBA,EAAM,UAAUA,EAAM,MAAM,EAAIA,EAAM,SAJxCskV,GAAWtkV,EAAO,gCAAkCA,EAAM,IAAM,gBAAgB,CAOpF,CACA,OAAIA,EAAM,WAAa,MACrBA,EAAM,SAAS,QAASA,CAAK,EAExBA,EAAM,MAAQ,MAAQA,EAAM,SAAW,MAAQwpV,CACxD,CACA90B,EAAO8yB,GAAa,aAAa,EACjC,SAASqC,IAAa7pV,EAAO,CAC3B,IAAI8pV,EAAgB9pV,EAAM,SAAU8kV,EAAWiF,EAAeC,EAAeC,EAAgB,GAAOt8H,EAKpG,IAJA3tN,EAAM,QAAU,KAChBA,EAAM,gBAAkBA,EAAM,OAC9BA,EAAM,OAAyB,OAAO,OAAO,IAAI,EACjDA,EAAM,UAA4B,OAAO,OAAO,IAAI,GAC5C2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,KAAO,IACvD0lV,GAAoB1lV,EAAO,GAAM,EAAE,EACnC2tN,EAAK3tN,EAAM,MAAM,WAAWA,EAAM,QAAQ,EACtC,EAAAA,EAAM,WAAa,GAAK2tN,IAAO,MAHuB,CAS1D,IAHAs8H,EAAgB,GAChBt8H,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAC5C8kV,EAAY9kV,EAAM,SACX2tN,IAAO,GAAK,CAAC+1H,GAAa/1H,CAAE,GACjCA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAO9C,IALA+pV,EAAgB/pV,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,EAC3DgqV,EAAgB,GACZD,EAAc,OAAS,GACzBzF,GAAWtkV,EAAO,8DAA8D,EAE3E2tN,IAAO,GAAG,CACf,KAAO81H,GAAe91H,CAAE,GACtBA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9C,GAAI2tN,IAAO,GAAI,CACb,GACEA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,QACrC2tN,IAAO,GAAK,CAAC61H,GAAO71H,CAAE,GAC/B,KACF,CACA,GAAI61H,GAAO71H,CAAE,EAAG,MAEhB,IADAm3H,EAAY9kV,EAAM,SACX2tN,IAAO,GAAK,CAAC+1H,GAAa/1H,CAAE,GACjCA,EAAK3tN,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,EAE9CgqV,EAAc,KAAKhqV,EAAM,MAAM,MAAM8kV,EAAW9kV,EAAM,QAAQ,CAAC,CACjE,CACI2tN,IAAO,GAAG83H,GAAczlV,CAAK,EAC7B0iV,GAAkB,KAAK8B,IAAmBuF,CAAa,EACzDvF,IAAkBuF,CAAa,EAAE/pV,EAAO+pV,EAAeC,CAAa,EAEpEzF,GAAavkV,EAAO,+BAAiC+pV,EAAgB,GAAG,CAE5E,CAcA,GAbArE,GAAoB1lV,EAAO,GAAM,EAAE,EAC/BA,EAAM,aAAe,GAAKA,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAAM,IAAMA,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,IAAM,IAAMA,EAAM,MAAM,WAAWA,EAAM,SAAW,CAAC,IAAM,IACjLA,EAAM,UAAY,EAClB0lV,GAAoB1lV,EAAO,GAAM,EAAE,GAC1BiqV,GACT3F,GAAWtkV,EAAO,iCAAiC,EAErDwnV,GAAYxnV,EAAOA,EAAM,WAAa,EAAG8iV,GAAmB,GAAO,EAAI,EACvE4C,GAAoB1lV,EAAO,GAAM,EAAE,EAC/BA,EAAM,iBAAmBmjV,IAA8B,KAAKnjV,EAAM,MAAM,MAAM8pV,EAAe9pV,EAAM,QAAQ,CAAC,GAC9GukV,GAAavkV,EAAO,kDAAkD,EAExEA,EAAM,UAAU,KAAKA,EAAM,MAAM,EAC7BA,EAAM,WAAaA,EAAM,WAAa8lV,GAAsB9lV,CAAK,EAAG,CAClEA,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAAM,KAC7CA,EAAM,UAAY,EAClB0lV,GAAoB1lV,EAAO,GAAM,EAAE,GAErC,MACF,CACA,GAAIA,EAAM,SAAWA,EAAM,OAAS,EAClCskV,GAAWtkV,EAAO,uDAAuD,MAEzE,OAEJ,CACA00T,EAAOm1B,IAAc,cAAc,EACnC,SAASK,GAAc/oS,EAAOv5C,EAAS,CACrCu5C,EAAQ,OAAOA,CAAK,EACpBv5C,EAAUA,GAAW,GACjBu5C,EAAM,SAAW,IACfA,EAAM,WAAWA,EAAM,OAAS,CAAC,IAAM,IAAMA,EAAM,WAAWA,EAAM,OAAS,CAAC,IAAM,KACtFA,GAAS;AAAA,GAEPA,EAAM,WAAW,CAAC,IAAM,QAC1BA,EAAQA,EAAM,MAAM,CAAC,IAGzB,IAAInhD,EAAQ,IAAIokV,IAAQjjS,EAAOv5C,CAAO,EAClCuiV,EAAUhpS,EAAM,QAAQ,IAAI,EAMhC,IALIgpS,IAAY,KACdnqV,EAAM,SAAWmqV,EACjB7F,GAAWtkV,EAAO,mCAAmC,GAEvDA,EAAM,OAAS,KACRA,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAAM,IAChDA,EAAM,YAAc,EACpBA,EAAM,UAAY,EAEpB,KAAOA,EAAM,SAAWA,EAAM,OAAS,GACrC6pV,IAAa7pV,CAAK,EAEpB,OAAOA,EAAM,SACf,CACA00T,EAAOw1B,GAAe,eAAe,EACrC,SAASE,IAAUjpS,EAAO8xH,EAAUrrK,EAAS,CACvCqrK,IAAa,MAAQ,OAAOA,GAAa,UAAY,OAAOrrK,EAAY,MAC1EA,EAAUqrK,EACVA,EAAW,MAEb,IAAIo3K,EAAYH,GAAc/oS,EAAOv5C,CAAO,EAC5C,GAAI,OAAOqrK,GAAa,WACtB,OAAOo3K,EAET,QAASniV,EAAQ,EAAGqiC,EAAS8/S,EAAU,OAAQniV,EAAQqiC,EAAQriC,GAAS,EACtE+qK,EAASo3K,EAAUniV,CAAK,CAAC,CAE7B,CACAwsT,EAAO01B,IAAW,WAAW,EAC7B,SAASE,IAAOnpS,EAAOv5C,EAAS,CAC9B,IAAIyiV,EAAYH,GAAc/oS,EAAOv5C,CAAO,EAC5C,GAAIyiV,EAAU,SAAW,EAElB,IAAIA,EAAU,SAAW,EAC9B,OAAOA,EAAU,CAAC,EAEpB,MAAM,IAAI/sS,GAAU,0DAA0D,EAChF,CACAo3Q,EAAO41B,IAAQ,QAAQ,EAEvB,IAAIC,IAASD,IACTvxB,IAAS,CAEX,KAAMwxB,GACR,EACIC,IAAY,OAAO,UAAU,SAC7BC,IAAkB,OAAO,UAAU,eACnCC,GAAW,MACXC,IAAW,EACXC,GAAiB,GACjBC,IAAuB,GACvBC,IAAa,GACbC,IAAmB,GACnBC,IAAoB,GACpBC,GAAa,GACbC,IAAe,GACfC,IAAiB,GACjBC,IAAoB,GACpBC,IAAgB,GAChBC,IAAa,GACbC,IAAa,GACbC,GAAa,GACbC,IAAc,GACdC,IAAoB,GACpBC,IAAgB,GAChBC,IAAqB,GACrBC,IAA2B,GAC3BC,IAA4B,GAC5BC,IAAoB,GACpBC,IAA0B,IAC1BC,IAAqB,IACrBC,IAA2B,IAC3BC,GAAmB,GACvBA,GAAiB,CAAC,EAAI,MACtBA,GAAiB,CAAC,EAAI,MACtBA,GAAiB,CAAC,EAAI,MACtBA,GAAiB,CAAC,EAAI,MACtBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,MACvBA,GAAiB,EAAE,EAAI,OACvBA,GAAiB,GAAG,EAAI,MACxBA,GAAiB,GAAG,EAAI,MACxBA,GAAiB,IAAI,EAAI,MACzBA,GAAiB,IAAI,EAAI,MACzB,IAAIC,IAA6B,CAC/B,IACA,IACA,MACA,MACA,MACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,MACA,MACA,KACF,EACIC,IAA2B,4CAC/B,SAASC,IAAgBlO,EAASJ,EAAM,CACtC,IAAIrxU,EAAQjK,EAAMwF,EAAOqiC,EAAQqzI,EAAK2yB,EAAOmuI,EAC7C,GAAIV,IAAS,KAAM,MAAO,GAG1B,IAFArxU,EAAS,GACTjK,EAAO,OAAO,KAAKs7U,CAAI,EAClB91U,EAAQ,EAAGqiC,EAAS7nC,EAAK,OAAQwF,EAAQqiC,EAAQriC,GAAS,EAC7D01K,EAAMl7K,EAAKwF,CAAK,EAChBqoM,EAAQ,OAAOytI,EAAKpgK,CAAG,CAAC,EACpBA,EAAI,MAAM,EAAG,CAAC,IAAM,OACtBA,EAAM,qBAAuBA,EAAI,MAAM,CAAC,GAE1C8gK,EAAQN,EAAQ,gBAAgB,SAAYxgK,CAAG,EAC3C8gK,GAAS+L,IAAgB,KAAK/L,EAAM,aAAcnuI,CAAK,IACzDA,EAAQmuI,EAAM,aAAanuI,CAAK,GAElC5jM,EAAOixK,CAAG,EAAI2yB,EAEhB,OAAO5jM,CACT,CACA+nT,EAAO43B,IAAiB,iBAAiB,EACzC,SAASC,IAAUrtD,EAAW,CAC5B,IAAInqJ,EAAQ4vM,EAAQp6S,EAEpB,GADAwqG,EAASmqJ,EAAU,SAAS,EAAE,EAAE,YAAW,EACvCA,GAAa,IACfylD,EAAS,IACTp6S,EAAS,UACA20P,GAAa,MACtBylD,EAAS,IACTp6S,EAAS,UACA20P,GAAa,WACtBylD,EAAS,IACTp6S,EAAS,MAET,OAAM,IAAI+S,GAAU,+DAA+D,EAErF,MAAO,KAAOqnS,EAAS7H,GAAO,OAAO,IAAKvyS,EAASwqG,EAAO,MAAM,EAAIA,CACtE,CACA2/K,EAAO63B,IAAW,WAAW,EAC7B,IAAIC,IAAsB,EACtBC,GAAsB,EAC1B,SAASC,IAAM9kV,EAAS,CACtB,KAAK,OAASA,EAAQ,QAAa66U,IACnC,KAAK,OAAS,KAAK,IAAI,EAAG76U,EAAQ,QAAa,CAAC,EAChD,KAAK,cAAgBA,EAAQ,eAAoB,GACjD,KAAK,YAAcA,EAAQ,aAAkB,GAC7C,KAAK,UAAYk1U,GAAO,UAAUl1U,EAAQ,SAAY,EAAI,GAAKA,EAAQ,UACvE,KAAK,SAAW0kV,IAAgB,KAAK,OAAQ1kV,EAAQ,QAAa,IAAI,EACtE,KAAK,SAAWA,EAAQ,UAAe,GACvC,KAAK,UAAYA,EAAQ,WAAgB,GACzC,KAAK,OAASA,EAAQ,QAAa,GACnC,KAAK,aAAeA,EAAQ,cAAmB,GAC/C,KAAK,aAAeA,EAAQ,cAAmB,GAC/C,KAAK,YAAcA,EAAQ,cAAmB,IAAM6kV,GAAsBD,IAC1E,KAAK,YAAc5kV,EAAQ,aAAkB,GAC7C,KAAK,SAAW,OAAOA,EAAQ,UAAgB,WAAaA,EAAQ,SAAc,KAClF,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,IAAM,KACX,KAAK,OAAS,GACd,KAAK,WAAa,GAClB,KAAK,eAAiB,IACxB,CACA8sT,EAAOg4B,IAAO,OAAO,EACrB,SAASC,GAAa53M,EAAQogJ,EAAQ,CAEpC,QADIy3D,EAAM9P,GAAO,OAAO,IAAK3nD,CAAM,EAAG9oI,EAAW,EAAGxuH,EAAO,GAAIlxB,EAAS,GAAI+vC,EAAMnS,EAASwqG,EAAO,OAC3FsX,EAAW9hH,GAChB1M,EAAOk3G,EAAO,QAAQ;AAAA,EAAMsX,CAAQ,EAChCxuH,IAAS,IACX6e,EAAOq4F,EAAO,MAAMsX,CAAQ,EAC5BA,EAAW9hH,IAEXmS,EAAOq4F,EAAO,MAAMsX,EAAUxuH,EAAO,CAAC,EACtCwuH,EAAWxuH,EAAO,GAEhB6e,EAAK,QAAUA,IAAS;AAAA,IAAM/vC,GAAUigV,GAC5CjgV,GAAU+vC,EAEZ,OAAO/vC,CACT,CACA+nT,EAAOi4B,GAAc,cAAc,EACnC,SAASE,GAAiB7sV,EAAOq7C,EAAO,CACtC,MAAO;AAAA,EAAOyhS,GAAO,OAAO,IAAK98U,EAAM,OAASq7C,CAAK,CACvD,CACAq5Q,EAAOm4B,GAAkB,kBAAkB,EAC3C,SAASC,IAAsB9sV,EAAO+sV,EAAM,CAC1C,IAAI7kV,EAAOqiC,EAAQm0S,EACnB,IAAKx2U,EAAQ,EAAGqiC,EAASvqC,EAAM,cAAc,OAAQkI,EAAQqiC,EAAQriC,GAAS,EAE5E,GADAw2U,EAAQ1+U,EAAM,cAAckI,CAAK,EAC7Bw2U,EAAM,QAAQqO,CAAI,EACpB,MAAO,GAGX,MAAO,EACT,CACAr4B,EAAOo4B,IAAuB,uBAAuB,EACrD,SAASE,GAAa7sV,EAAG,CACvB,OAAOA,IAAM2qV,KAAc3qV,IAAMwqV,GACnC,CACAj2B,EAAOs4B,GAAc,cAAc,EACnC,SAASC,GAAY9sV,EAAG,CACtB,MAAO,KAAMA,GAAKA,GAAK,KAAO,KAAOA,GAAKA,GAAK,OAASA,IAAM,MAAQA,IAAM,MAAQ,OAASA,GAAKA,GAAK,OAASA,IAAMuqV,IAAY,OAASvqV,GAAKA,GAAK,OACvJ,CACAu0T,EAAOu4B,GAAa,aAAa,EACjC,SAASC,GAAqB/sV,EAAG,CAC/B,OAAO8sV,GAAY9sV,CAAC,GAAKA,IAAMuqV,IAAYvqV,IAAM0qV,KAAwB1qV,IAAMyqV,EACjF,CACAl2B,EAAOw4B,GAAsB,sBAAsB,EACnD,SAASC,GAAYhtV,EAAG+5C,EAAMkzS,EAAS,CACrC,IAAIC,EAAwBH,GAAqB/sV,CAAC,EAC9CmtV,EAAYD,GAAyB,CAACL,GAAa7sV,CAAC,EACxD,OAEGitV,EAECC,EACEA,GAAyBltV,IAAMmrV,KAAcnrV,IAAM0rV,KAA4B1rV,IAAM2rV,KAA6B3rV,IAAM6rV,KAA2B7rV,IAAM+rV,MAA6B/rV,IAAM8qV,IAAc,EAAE/wS,IAASsxS,IAAc,CAAC8B,IAAcJ,GAAqBhzS,CAAI,GAAK,CAAC8yS,GAAa9yS,CAAI,GAAK/5C,IAAM8qV,IAAc/wS,IAASsxS,IAAc8B,CAE1V,CACA54B,EAAOy4B,GAAa,aAAa,EACjC,SAASI,IAAiBptV,EAAG,CAC3B,OAAO8sV,GAAY9sV,CAAC,GAAKA,IAAMuqV,IAAY,CAACsC,GAAa7sV,CAAC,GAAKA,IAAMorV,KAAcprV,IAAMwrV,KAAiBxrV,IAAMqrV,IAAcrrV,IAAMmrV,KAAcnrV,IAAM0rV,KAA4B1rV,IAAM2rV,KAA6B3rV,IAAM6rV,KAA2B7rV,IAAM+rV,KAA4B/rV,IAAM8qV,IAAc9qV,IAAMgrV,KAAkBhrV,IAAMkrV,KAAiBlrV,IAAM4qV,KAAoB5qV,IAAM8rV,KAAsB9rV,IAAMsrV,KAAetrV,IAAMurV,KAAqBvrV,IAAMirV,KAAqBjrV,IAAM6qV,KAAqB7qV,IAAM+qV,KAAgB/qV,IAAMyrV,KAAsBzrV,IAAM4rV,GACnjB,CACAr3B,EAAO64B,IAAkB,kBAAkB,EAC3C,SAASC,IAAgBrtV,EAAG,CAC1B,MAAO,CAAC6sV,GAAa7sV,CAAC,GAAKA,IAAMqrV,EACnC,CACA92B,EAAO84B,IAAiB,iBAAiB,EACzC,SAASC,GAAY14M,EAAQuyD,EAAK,CAChC,IAAIpkM,EAAQ6xI,EAAO,WAAWuyD,CAAG,EAAG2zF,EACpC,OAAI/3R,GAAS,OAASA,GAAS,OAASokM,EAAM,EAAIvyD,EAAO,SACvDkmJ,EAASlmJ,EAAO,WAAWuyD,EAAM,CAAC,EAC9B2zF,GAAU,OAASA,GAAU,QACvB/3R,EAAQ,OAAS,KAAO+3R,EAAS,MAAQ,MAG9C/3R,CACT,CACAwxT,EAAO+4B,GAAa,aAAa,EACjC,SAASC,GAAoB34M,EAAQ,CACnC,IAAI44M,EAAiB,QACrB,OAAOA,EAAe,KAAK54M,CAAM,CACnC,CACA2/K,EAAOg5B,GAAqB,qBAAqB,EACjD,IAAIE,IAAc,EACdC,GAAe,EACfC,IAAgB,EAChBC,IAAe,EACfC,GAAe,EACnB,SAASC,IAAkBl5M,EAAQm5M,EAAgBC,EAAgBC,EAAWC,EAAmBC,EAAaC,EAAanB,EAAS,CAClI,IAAIvqV,EACA6M,EAAO,EACP8+U,EAAW,KACXC,EAAe,GACfC,EAAkB,GAClBC,EAAmBP,IAAc,GACjCQ,EAAoB,GACpB33H,EAAQs2H,IAAiBE,GAAY14M,EAAQ,CAAC,CAAC,GAAKy4M,IAAgBC,GAAY14M,EAAQA,EAAO,OAAS,CAAC,CAAC,EAC9G,GAAIm5M,GAAkBK,EACpB,IAAK1rV,EAAI,EAAGA,EAAIkyI,EAAO,OAAQrlI,GAAQ,MAAQ7M,GAAK,EAAIA,IAAK,CAE3D,GADA6M,EAAO+9U,GAAY14M,EAAQlyI,CAAC,EACxB,CAACoqV,GAAYv9U,CAAI,EACnB,OAAOs+U,GAET/2H,EAAQA,GAASk2H,GAAYz9U,EAAM8+U,EAAUpB,CAAO,EACpDoB,EAAW9+U,CACb,KACK,CACL,IAAK7M,EAAI,EAAGA,EAAIkyI,EAAO,OAAQrlI,GAAQ,MAAQ7M,GAAK,EAAIA,IAAK,CAE3D,GADA6M,EAAO+9U,GAAY14M,EAAQlyI,CAAC,EACxB6M,IAASk7U,GACX6D,EAAe,GACXE,IACFD,EAAkBA,GAClB7rV,EAAI+rV,EAAoB,EAAIR,GAAar5M,EAAO65M,EAAoB,CAAC,IAAM,IAC3EA,EAAoB/rV,WAEb,CAACoqV,GAAYv9U,CAAI,EAC1B,OAAOs+U,GAET/2H,EAAQA,GAASk2H,GAAYz9U,EAAM8+U,EAAUpB,CAAO,EACpDoB,EAAW9+U,CACb,CACAg/U,EAAkBA,GAAmBC,GAAqB9rV,EAAI+rV,EAAoB,EAAIR,GAAar5M,EAAO65M,EAAoB,CAAC,IAAM,GACvI,CACA,MAAI,CAACH,GAAgB,CAACC,EAChBz3H,GAAS,CAACs3H,GAAe,CAACF,EAAkBt5M,CAAM,EAC7C64M,IAEFU,IAAgB7B,GAAsBuB,GAAeH,GAE1DM,EAAiB,GAAKT,GAAoB34M,CAAM,EAC3Ci5M,GAEJO,EAGED,IAAgB7B,GAAsBuB,GAAeH,GAFnDa,EAAkBX,IAAeD,GAG5C,CACAp5B,EAAOu5B,IAAmB,mBAAmB,EAC7C,SAASY,IAAY7uV,EAAO+0I,EAAQ15F,EAAOyzS,EAAO1B,EAAS,CACzDptV,EAAM,MAAO,UAAW,CACtB,GAAI+0I,EAAO,SAAW,EACpB,OAAO/0I,EAAM,cAAgBysV,GAAsB,KAAO,KAE5D,GAAI,CAACzsV,EAAM,eACLosV,IAA2B,QAAQr3M,CAAM,IAAM,IAAMs3M,IAAyB,KAAKt3M,CAAM,GAC3F,OAAO/0I,EAAM,cAAgBysV,GAAsB,IAAM13M,EAAS,IAAM,IAAMA,EAAS,IAG3F,IAAIkmH,EAASj7P,EAAM,OAAS,KAAK,IAAI,EAAGq7C,CAAK,EACzC+yS,EAAYpuV,EAAM,YAAc,GAAK,GAAK,KAAK,IAAI,KAAK,IAAIA,EAAM,UAAW,EAAE,EAAGA,EAAM,UAAYi7P,CAAM,EAC1GizF,EAAiBY,GAAS9uV,EAAM,UAAY,IAAMq7C,GAASr7C,EAAM,UACrE,SAAS+uV,EAAcC,EAAS,CAC9B,OAAOlC,IAAsB9sV,EAAOgvV,CAAO,CAC7C,CAEA,OADAt6B,EAAOq6B,EAAe,eAAe,EAC7Bd,IACNl5M,EACAm5M,EACAluV,EAAM,OACNouV,EACAW,EACA/uV,EAAM,YACNA,EAAM,aAAe,CAAC8uV,EACtB1B,CACN,EAAK,CACC,KAAKQ,IACH,OAAO74M,EACT,KAAK84M,GACH,MAAO,IAAM94M,EAAO,QAAQ,KAAM,IAAI,EAAI,IAC5C,KAAK+4M,IACH,MAAO,IAAMmB,GAAYl6M,EAAQ/0I,EAAM,MAAM,EAAIkvV,GAAkBvC,GAAa53M,EAAQkmH,CAAM,CAAC,EACjG,KAAK8yF,IACH,MAAO,IAAMkB,GAAYl6M,EAAQ/0I,EAAM,MAAM,EAAIkvV,GAAkBvC,GAAawC,IAAWp6M,EAAQq5M,CAAS,EAAGnzF,CAAM,CAAC,EACxH,KAAK+yF,GACH,MAAO,IAAMoB,IAAar6M,CAAM,EAAI,IACtC,QACE,MAAM,IAAIz3F,GAAU,wCAAwC,CACpE,CACE,GAAC,CACH,CACAo3Q,EAAOm6B,IAAa,aAAa,EACjC,SAASI,GAAYl6M,EAAQo5M,EAAgB,CAC3C,IAAIkB,EAAkB3B,GAAoB34M,CAAM,EAAI,OAAOo5M,CAAc,EAAI,GACzEmB,EAAOv6M,EAAOA,EAAO,OAAS,CAAC,IAAM;AAAA,EACrCm+D,EAAOo8I,IAASv6M,EAAOA,EAAO,OAAS,CAAC,IAAM;AAAA,GAAQA,IAAW;AAAA,GACjEw6M,EAAQr8I,EAAO,IAAMo8I,EAAO,GAAK,IACrC,OAAOD,EAAkBE,EAAQ;AAAA,CACnC,CACA76B,EAAOu6B,GAAa,aAAa,EACjC,SAASC,GAAkBn6M,EAAQ,CACjC,OAAOA,EAAOA,EAAO,OAAS,CAAC,IAAM;AAAA,EAAOA,EAAO,MAAM,EAAG,EAAE,EAAIA,CACpE,CACA2/K,EAAOw6B,GAAmB,mBAAmB,EAC7C,SAASC,IAAWp6M,EAAQpuB,EAAO,CAWjC,QAVI6oO,EAAS,iBACT7iV,GAAS,UAAW,CACtB,IAAI8iV,EAAS16M,EAAO,QAAQ;AAAA,CAAI,EAChC,OAAA06M,EAASA,IAAW,GAAKA,EAAS16M,EAAO,OACzCy6M,EAAO,UAAYC,EACZC,GAAS36M,EAAO,MAAM,EAAG06M,CAAM,EAAG9oO,CAAK,CAChD,GAAC,EACGgpO,EAAmB56M,EAAO,CAAC,IAAM;AAAA,GAAQA,EAAO,CAAC,IAAM,IACvD66M,EACAnkV,EACGA,EAAQ+jV,EAAO,KAAKz6M,CAAM,GAAG,CAClC,IAAIxC,EAAS9mI,EAAM,CAAC,EAAGixC,EAAOjxC,EAAM,CAAC,EACrCmkV,EAAelzS,EAAK,CAAC,IAAM,IAC3B/vC,GAAU4lI,GAAU,CAACo9M,GAAoB,CAACC,GAAgBlzS,IAAS,GAAK;AAAA,EAAO,IAAMgzS,GAAShzS,EAAMiqE,CAAK,EACzGgpO,EAAmBC,CACrB,CACA,OAAOjjV,CACT,CACA+nT,EAAOy6B,IAAY,YAAY,EAC/B,SAASO,GAAShzS,EAAMiqE,EAAO,CAC7B,GAAIjqE,IAAS,IAAMA,EAAK,CAAC,IAAM,IAAK,OAAOA,EAK3C,QAJImzS,EAAU,SACVpkV,EACA63E,EAAQ,EAAG11E,EAAK4pB,EAAO,EAAGqG,EAAO,EACjClxB,EAAS,GACNlB,EAAQokV,EAAQ,KAAKnzS,CAAI,GAC9B7e,EAAOpyB,EAAM,MACToyB,EAAOylD,EAAQqjC,IACjB/4G,EAAM4pB,EAAO8rD,EAAQ9rD,EAAOqG,EAC5BlxB,GAAU;AAAA,EAAO+vC,EAAK,MAAM4mC,EAAO11E,CAAG,EACtC01E,EAAQ11E,EAAM,GAEhB4pB,EAAOqG,EAET,OAAAlxB,GAAU;AAAA,EACN+vC,EAAK,OAAS4mC,EAAQqjC,GAASnvF,EAAO8rD,EACxC32E,GAAU+vC,EAAK,MAAM4mC,EAAO9rD,CAAI,EAAI;AAAA,EAAOklB,EAAK,MAAMllB,EAAO,CAAC,EAE9D7qB,GAAU+vC,EAAK,MAAM4mC,CAAK,EAErB32E,EAAO,MAAM,CAAC,CACvB,CACA+nT,EAAOg7B,GAAU,UAAU,EAC3B,SAASN,IAAar6M,EAAQ,CAI5B,QAHIpoI,EAAS,GACT+C,EAAO,EACPogV,EACK,EAAI,EAAG,EAAI/6M,EAAO,OAAQrlI,GAAQ,MAAQ,GAAK,EAAI,IAC1DA,EAAO+9U,GAAY14M,EAAQ,CAAC,EAC5B+6M,EAAY3D,GAAiBz8U,CAAI,EAC7B,CAACogV,GAAa7C,GAAYv9U,CAAI,GAChC/C,GAAUooI,EAAO,CAAC,EACdrlI,GAAQ,QAAO/C,GAAUooI,EAAO,EAAI,CAAC,IAEzCpoI,GAAUmjV,GAAavD,IAAU78U,CAAI,EAGzC,OAAO/C,CACT,CACA+nT,EAAO06B,IAAc,cAAc,EACnC,SAASW,IAAkB/vV,EAAOq7C,EAAO9pB,EAAQ,CAC/C,IAAI0zT,EAAU,GAAIiC,EAAOlnV,EAAM,IAAKkI,EAAOqiC,EAAQ1uC,EACnD,IAAKqM,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAC/DrM,EAAQ01B,EAAOrpB,CAAK,EAChBlI,EAAM,WACRnE,EAAQmE,EAAM,SAAS,KAAKuxB,EAAQ,OAAOrpB,CAAK,EAAGrM,CAAK,IAEtDm0V,GAAUhwV,EAAOq7C,EAAOx/C,EAAO,GAAO,EAAK,GAAK,OAAOA,EAAU,KAAem0V,GAAUhwV,EAAOq7C,EAAO,KAAM,GAAO,EAAK,KACxH4pS,IAAY,KAAIA,GAAW,KAAQjlV,EAAM,aAAqB,GAAN,MAC5DilV,GAAWjlV,EAAM,MAGrBA,EAAM,IAAMknV,EACZlnV,EAAM,KAAO,IAAMilV,EAAU,GAC/B,CACAvwB,EAAOq7B,IAAmB,mBAAmB,EAC7C,SAASE,GAAmBjwV,EAAOq7C,EAAO9pB,EAAQ+uG,EAAS,CACzD,IAAI2kN,EAAU,GAAIiC,EAAOlnV,EAAM,IAAKkI,EAAOqiC,EAAQ1uC,EACnD,IAAKqM,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAC/DrM,EAAQ01B,EAAOrpB,CAAK,EAChBlI,EAAM,WACRnE,EAAQmE,EAAM,SAAS,KAAKuxB,EAAQ,OAAOrpB,CAAK,EAAGrM,CAAK,IAEtDm0V,GAAUhwV,EAAOq7C,EAAQ,EAAGx/C,EAAO,GAAM,GAAM,GAAO,EAAI,GAAK,OAAOA,EAAU,KAAem0V,GAAUhwV,EAAOq7C,EAAQ,EAAG,KAAM,GAAM,GAAM,GAAO,EAAI,MACtJ,CAACilF,GAAW2kN,IAAY,MAC1BA,GAAW4H,GAAiB7sV,EAAOq7C,CAAK,GAEtCr7C,EAAM,MAAQ4qV,KAAmB5qV,EAAM,KAAK,WAAW,CAAC,EAC1DilV,GAAW,IAEXA,GAAW,KAEbA,GAAWjlV,EAAM,MAGrBA,EAAM,IAAMknV,EACZlnV,EAAM,KAAOilV,GAAW,IAC1B,CACAvwB,EAAOu7B,GAAoB,oBAAoB,EAC/C,SAASC,IAAiBlwV,EAAOq7C,EAAO9pB,EAAQ,CAC9C,IAAI0zT,EAAU,GAAIiC,EAAOlnV,EAAM,IAAKmwV,EAAgB,OAAO,KAAK5+T,CAAM,EAAGrpB,EAAOqiC,EAAQkhB,EAAWC,EAAa0kS,EAChH,IAAKloV,EAAQ,EAAGqiC,EAAS4lT,EAAc,OAAQjoV,EAAQqiC,EAAQriC,GAAS,EACtEkoV,EAAa,GACTnL,IAAY,KAAImL,GAAc,MAC9BpwV,EAAM,eAAcowV,GAAc,KACtC3kS,EAAY0kS,EAAcjoV,CAAK,EAC/BwjD,EAAcn6B,EAAOk6B,CAAS,EAC1BzrD,EAAM,WACR0rD,EAAc1rD,EAAM,SAAS,KAAKuxB,EAAQk6B,EAAWC,CAAW,GAE7DskS,GAAUhwV,EAAOq7C,EAAOoQ,EAAW,GAAO,EAAK,IAGhDzrD,EAAM,KAAK,OAAS,OAAMowV,GAAc,MAC5CA,GAAcpwV,EAAM,MAAQA,EAAM,aAAe,IAAM,IAAM,KAAOA,EAAM,aAAe,GAAK,KACzFgwV,GAAUhwV,EAAOq7C,EAAOqQ,EAAa,GAAO,EAAK,IAGtD0kS,GAAcpwV,EAAM,KACpBilV,GAAWmL,IAEbpwV,EAAM,IAAMknV,EACZlnV,EAAM,KAAO,IAAMilV,EAAU,GAC/B,CACAvwB,EAAOw7B,IAAkB,kBAAkB,EAC3C,SAASG,IAAkBrwV,EAAOq7C,EAAO9pB,EAAQ+uG,EAAS,CACxD,IAAI2kN,EAAU,GAAIiC,EAAOlnV,EAAM,IAAKmwV,EAAgB,OAAO,KAAK5+T,CAAM,EAAGrpB,EAAOqiC,EAAQkhB,EAAWC,EAAa4kS,EAAcF,EAC9H,GAAIpwV,EAAM,WAAa,GACrBmwV,EAAc,KAAI,UACT,OAAOnwV,EAAM,UAAa,WACnCmwV,EAAc,KAAKnwV,EAAM,QAAQ,UACxBA,EAAM,SACf,MAAM,IAAIs9C,GAAU,0CAA0C,EAEhE,IAAKp1C,EAAQ,EAAGqiC,EAAS4lT,EAAc,OAAQjoV,EAAQqiC,EAAQriC,GAAS,EACtEkoV,EAAa,IACT,CAAC9vN,GAAW2kN,IAAY,MAC1BmL,GAAcvD,GAAiB7sV,EAAOq7C,CAAK,GAE7CoQ,EAAY0kS,EAAcjoV,CAAK,EAC/BwjD,EAAcn6B,EAAOk6B,CAAS,EAC1BzrD,EAAM,WACR0rD,EAAc1rD,EAAM,SAAS,KAAKuxB,EAAQk6B,EAAWC,CAAW,GAE7DskS,GAAUhwV,EAAOq7C,EAAQ,EAAGoQ,EAAW,GAAM,GAAM,EAAI,IAG5D6kS,EAAetwV,EAAM,MAAQ,MAAQA,EAAM,MAAQ,KAAOA,EAAM,MAAQA,EAAM,KAAK,OAAS,KACxFswV,IACEtwV,EAAM,MAAQ4qV,KAAmB5qV,EAAM,KAAK,WAAW,CAAC,EAC1DowV,GAAc,IAEdA,GAAc,MAGlBA,GAAcpwV,EAAM,KAChBswV,IACFF,GAAcvD,GAAiB7sV,EAAOq7C,CAAK,GAExC20S,GAAUhwV,EAAOq7C,EAAQ,EAAGqQ,EAAa,GAAM4kS,CAAY,IAG5DtwV,EAAM,MAAQ4qV,KAAmB5qV,EAAM,KAAK,WAAW,CAAC,EAC1DowV,GAAc,IAEdA,GAAc,KAEhBA,GAAcpwV,EAAM,KACpBilV,GAAWmL,IAEbpwV,EAAM,IAAMknV,EACZlnV,EAAM,KAAOilV,GAAW,IAC1B,CACAvwB,EAAO27B,IAAmB,mBAAmB,EAC7C,SAAS33B,GAAW14T,EAAOuxB,EAAQstT,EAAU,CAC3C,IAAIoG,EAAS0E,EAAUzhV,EAAOqiC,EAAQm0S,EAAOnuI,EAE7C,IADAo5I,EAAW9K,EAAW7+U,EAAM,cAAgBA,EAAM,cAC7CkI,EAAQ,EAAGqiC,EAASo/S,EAAS,OAAQzhV,EAAQqiC,EAAQriC,GAAS,EAEjE,GADAw2U,EAAQiL,EAASzhV,CAAK,GACjBw2U,EAAM,YAAcA,EAAM,aAAe,CAACA,EAAM,YAAc,OAAOntT,GAAW,UAAYA,aAAkBmtT,EAAM,cAAgB,CAACA,EAAM,WAAaA,EAAM,UAAUntT,CAAM,GAAI,CAUrL,GATIstT,EACEH,EAAM,OAASA,EAAM,cACvB1+U,EAAM,IAAM0+U,EAAM,cAAcntT,CAAM,EAEtCvxB,EAAM,IAAM0+U,EAAM,IAGpB1+U,EAAM,IAAM,IAEV0+U,EAAM,UAAW,CAEnB,GADAnuI,EAAQvwM,EAAM,SAAS0+U,EAAM,GAAG,GAAKA,EAAM,aACvC8L,IAAU,KAAK9L,EAAM,SAAS,IAAM,oBACtCuG,EAAUvG,EAAM,UAAUntT,EAAQg/K,CAAK,UAC9Bk6I,IAAgB,KAAK/L,EAAM,UAAWnuI,CAAK,EACpD00I,EAAUvG,EAAM,UAAUnuI,CAAK,EAAEh/K,EAAQg/K,CAAK,MAE9C,OAAM,IAAIjzJ,GAAU,KAAOohS,EAAM,IAAM,+BAAiCnuI,EAAQ,SAAS,EAE3FvwM,EAAM,KAAOilV,CACf,CACA,MAAO,EACT,CAEF,MAAO,EACT,CACAvwB,EAAOgE,GAAY,YAAY,EAC/B,SAASs3B,GAAUhwV,EAAOq7C,EAAO9pB,EAAQghL,EAAOjyE,EAASwuN,EAAOyB,EAAY,CAC1EvwV,EAAM,IAAM,KACZA,EAAM,KAAOuxB,EACRmnS,GAAW14T,EAAOuxB,EAAQ,EAAK,GAClCmnS,GAAW14T,EAAOuxB,EAAQ,EAAI,EAEhC,IAAImtT,EAAQ8L,IAAU,KAAKxqV,EAAM,IAAI,EACjCotV,EAAU76I,EACVi+I,EACAj+I,IACFA,EAAQvyM,EAAM,UAAY,GAAKA,EAAM,UAAYq7C,GAEnD,IAAIo1S,EAAgB/R,IAAU,mBAAqBA,IAAU,iBAAkBgS,EAAgBC,EAQ/F,GAPIF,IACFC,EAAiB1wV,EAAM,WAAW,QAAQuxB,CAAM,EAChDo/T,EAAYD,IAAmB,KAE7B1wV,EAAM,MAAQ,MAAQA,EAAM,MAAQ,KAAO2wV,GAAa3wV,EAAM,SAAW,GAAKq7C,EAAQ,KACxFilF,EAAU,IAERqwN,GAAa3wV,EAAM,eAAe0wV,CAAc,EAClD1wV,EAAM,KAAO,QAAU0wV,MAClB,CAIL,GAHID,GAAiBE,GAAa,CAAC3wV,EAAM,eAAe0wV,CAAc,IACpE1wV,EAAM,eAAe0wV,CAAc,EAAI,IAErChS,IAAU,kBACRnsI,GAAS,OAAO,KAAKvyM,EAAM,IAAI,EAAE,SAAW,GAC9CqwV,IAAkBrwV,EAAOq7C,EAAOr7C,EAAM,KAAMsgI,CAAO,EAC/CqwN,IACF3wV,EAAM,KAAO,QAAU0wV,EAAiB1wV,EAAM,QAGhDkwV,IAAiBlwV,EAAOq7C,EAAOr7C,EAAM,IAAI,EACrC2wV,IACF3wV,EAAM,KAAO,QAAU0wV,EAAiB,IAAM1wV,EAAM,eAG/C0+U,IAAU,iBACfnsI,GAASvyM,EAAM,KAAK,SAAW,GAC7BA,EAAM,eAAiB,CAACuwV,GAAcl1S,EAAQ,EAChD40S,GAAmBjwV,EAAOq7C,EAAQ,EAAGr7C,EAAM,KAAMsgI,CAAO,EAExD2vN,GAAmBjwV,EAAOq7C,EAAOr7C,EAAM,KAAMsgI,CAAO,EAElDqwN,IACF3wV,EAAM,KAAO,QAAU0wV,EAAiB1wV,EAAM,QAGhD+vV,IAAkB/vV,EAAOq7C,EAAOr7C,EAAM,IAAI,EACtC2wV,IACF3wV,EAAM,KAAO,QAAU0wV,EAAiB,IAAM1wV,EAAM,eAG/C0+U,IAAU,kBACf1+U,EAAM,MAAQ,KAChB6uV,IAAY7uV,EAAOA,EAAM,KAAMq7C,EAAOyzS,EAAO1B,CAAO,MAEjD,IAAI1O,IAAU,qBACnB,MAAO,GAEP,GAAI1+U,EAAM,YAAa,MAAO,GAC9B,MAAM,IAAIs9C,GAAU,0CAA4CohS,CAAK,EAEnE1+U,EAAM,MAAQ,MAAQA,EAAM,MAAQ,MACtCwwV,EAAS,UACPxwV,EAAM,IAAI,CAAC,IAAM,IAAMA,EAAM,IAAI,MAAM,CAAC,EAAIA,EAAM,GAC1D,EAAQ,QAAQ,KAAM,KAAK,EACjBA,EAAM,IAAI,CAAC,IAAM,IACnBwwV,EAAS,IAAMA,EACNA,EAAO,MAAM,EAAG,EAAE,IAAM,qBACjCA,EAAS,KAAOA,EAAO,MAAM,EAAE,EAE/BA,EAAS,KAAOA,EAAS,IAE3BxwV,EAAM,KAAOwwV,EAAS,IAAMxwV,EAAM,KAEtC,CACA,MAAO,EACT,CACA00T,EAAOs7B,GAAW,WAAW,EAC7B,SAASY,IAAuBr/T,EAAQvxB,EAAO,CAC7C,IAAIknO,EAAU,GAAI2pH,EAAoB,GAAI3oV,EAAOqiC,EAEjD,IADAumT,GAAYv/T,EAAQ21M,EAAS2pH,CAAiB,EACzC3oV,EAAQ,EAAGqiC,EAASsmT,EAAkB,OAAQ3oV,EAAQqiC,EAAQriC,GAAS,EAC1ElI,EAAM,WAAW,KAAKknO,EAAQ2pH,EAAkB3oV,CAAK,CAAC,CAAC,EAEzDlI,EAAM,eAAiB,IAAI,MAAMuqC,CAAM,CACzC,CACAmqR,EAAOk8B,IAAwB,wBAAwB,EACvD,SAASE,GAAYv/T,EAAQ21M,EAAS2pH,EAAmB,CACvD,IAAIV,EAAejoV,EAAOqiC,EAC1B,GAAIhZ,IAAW,MAAQ,OAAOA,GAAW,SAEvC,GADArpB,EAAQg/N,EAAQ,QAAQ31M,CAAM,EAC1BrpB,IAAU,GACR2oV,EAAkB,QAAQ3oV,CAAK,IAAM,IACvC2oV,EAAkB,KAAK3oV,CAAK,UAG9Bg/N,EAAQ,KAAK31M,CAAM,EACf,MAAM,QAAQA,CAAM,EACtB,IAAKrpB,EAAQ,EAAGqiC,EAAShZ,EAAO,OAAQrpB,EAAQqiC,EAAQriC,GAAS,EAC/D4oV,GAAYv/T,EAAOrpB,CAAK,EAAGg/N,EAAS2pH,CAAiB,MAIvD,KADAV,EAAgB,OAAO,KAAK5+T,CAAM,EAC7BrpB,EAAQ,EAAGqiC,EAAS4lT,EAAc,OAAQjoV,EAAQqiC,EAAQriC,GAAS,EACtE4oV,GAAYv/T,EAAO4+T,EAAcjoV,CAAK,CAAC,EAAGg/N,EAAS2pH,CAAiB,CAK9E,CACAn8B,EAAOo8B,GAAa,aAAa,EACjC,SAASC,IAAO5vS,EAAOv5C,EAAS,CAC9BA,EAAUA,GAAW,GACrB,IAAI5H,EAAQ,IAAI0sV,IAAM9kV,CAAO,EACxB5H,EAAM,QAAQ4wV,IAAuBzvS,EAAOnhD,CAAK,EACtD,IAAInE,EAAQslD,EAIZ,OAHInhD,EAAM,WACRnE,EAAQmE,EAAM,SAAS,KAAK,CAAE,GAAInE,CAAK,EAAI,GAAIA,CAAK,GAElDm0V,GAAUhwV,EAAO,EAAGnE,EAAO,GAAM,EAAI,EAAUmE,EAAM,KAAO;AAAA,EACzD,EACT,CACA00T,EAAOq8B,IAAQ,QAAQ,EAKvB,SAASC,IAAQxgV,EAAMjI,EAAI,CACzB,OAAO,UAAW,CAChB,MAAM,IAAI,MAAM,iBAAmBiI,EAAO,sCAAwCjI,EAAK,yCAAyC,CAClI,CACF,CACAmsT,EAAOs8B,IAAS,SAAS,EACtB,IAACC,IAAcnvU,IACdovU,IAAOn4B,IAAO,KAWlB;;AAAA;AAAA;AAAA,EC9oFA,IAAIo4B,GAAgB,CAClB,YAAa,GACb,UAAW,GACX,YAAa,GACb,WAAY,EACZ,SAAU,KACV,YAAa,CACf,EACA,SAASC,GAAuBC,EAAQC,EAAQ,CAC9C,GAAID,IAAW,QAAUC,IAAW,OAClC,MAAO,CAAE,MAAO,EAAG,OAAQ,EAAG,OAAQ,CAAC,EAEzCD,EAASE,GAAiBF,CAAM,EAChCC,EAASC,GAAiBD,CAAM,EAChC,KAAM,CAAClb,EAAIC,CAAE,EAAI,CAACgb,EAAO,EAAGA,EAAO,CAAC,EAC9B,CAAC/a,EAAIC,CAAE,EAAI,CAAC+a,EAAO,EAAGA,EAAO,CAAC,EAC9BE,EAASlb,EAAKF,EACdqb,EAASlb,EAAKF,EACpB,MAAO,CAAE,MAAO,KAAK,KAAKob,EAASD,CAAM,EAAG,OAAAA,EAAQ,OAAAC,CAAM,CAC5D,CACA/8B,EAAO08B,GAAwB,wBAAwB,EACvD,IAAIG,GAAmC78B,EAAQzjT,GACzC,MAAM,QAAQA,CAAI,EACb,CAAE,EAAGA,EAAK,CAAC,EAAG,EAAGA,EAAK,CAAC,CAAC,EAE1BA,EACN,kBAAkB,EACjBygV,IAA6Ch9B,EAAQ9mH,IAChD,CACL,EAAmB8mH,EAAO,SAASt0T,EAAGyC,EAAGoO,EAAM,CAC7C,IAAI8kD,EAAS,EACb,MAAM47R,EAAYJ,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,EAAIsgV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,EAAI,OAAS,QACrG,GAAIpO,IAAM,GAAK,OAAO,OAAOsuV,GAAevjJ,EAAK,cAAc,EAAG,CAChE,KAAM,CAAE,MAAAgkJ,EAAO,OAAAJ,CAAM,EAAKJ,GAAuBngV,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACjE8kD,EAASo7R,GAAcvjJ,EAAK,cAAc,EAAI,KAAK,IAAIgkJ,CAAK,GAAKJ,GAAU,EAAI,EAAI,GACrF,SAAW3uV,IAAMoO,EAAK,OAAS,GAAK,OAAO,OAAOkgV,GAAevjJ,EAAK,YAAY,EAAG,CACnF,KAAM,CAAE,MAAAgkJ,EAAO,OAAAJ,CAAM,EAAKJ,GACxBngV,EAAKA,EAAK,OAAS,CAAC,EACpBA,EAAKA,EAAK,OAAS,CAAC,CAC9B,EACQ8kD,EAASo7R,GAAcvjJ,EAAK,YAAY,EAAI,KAAK,IAAIgkJ,CAAK,GAAKJ,GAAU,EAAI,EAAI,GACnF,CACA,MAAMK,EAAkB,KAAK,IAC3BN,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,CACxE,EACY6gV,EAAmB,KAAK,IAC5BP,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,CACxE,EACY8gV,EAAoB,KAAK,IAAIR,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,CAAC,EAChF+gV,EAAqB,KAAK,IAAIT,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,CAAC,EACjFghV,EAAoBd,GAAcvjJ,EAAK,cAAc,EACrDskJ,EAAkBf,GAAcvjJ,EAAK,YAAY,EACjDukJ,EAAY,EAClB,GAAIN,EAAkBK,GAAmBL,EAAkB,GAAKC,EAAmBI,EAAiB,CAClG,IAAIE,EAAaF,EAAkBC,EAAYN,EAC/CO,GAAcT,IAAc,QAAU,GAAK,EAC3C57R,GAAUq8R,CACZ,CACA,GAAIL,EAAoBE,GAAqBF,EAAoB,GAAKC,EAAqBC,EAAmB,CAC5G,IAAIG,EAAaH,EAAoBE,EAAYJ,EACjDK,GAAcT,IAAc,QAAU,GAAK,EAC3C57R,GAAUq8R,CACZ,CACA,OAAOb,GAAiBnxV,CAAC,EAAE,EAAI21D,CACjC,EAAG,GAAG,EACN,EAAmB2+P,EAAO,SAASt0T,EAAGyC,EAAGoO,EAAM,CAC7C,IAAI8kD,EAAS,EACb,MAAM47R,EAAYJ,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,EAAIsgV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,EAAI,OAAS,KACrG,GAAIpO,IAAM,GAAK,OAAO,OAAOsuV,GAAevjJ,EAAK,cAAc,EAAG,CAChE,KAAM,CAAE,MAAAgkJ,EAAO,OAAAH,CAAM,EAAKL,GAAuBngV,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EACjE8kD,EAASo7R,GAAcvjJ,EAAK,cAAc,EAAI,KAAK,IAAI,KAAK,IAAIgkJ,CAAK,CAAC,GAAKH,GAAU,EAAI,EAAI,GAC/F,SAAW5uV,IAAMoO,EAAK,OAAS,GAAK,OAAO,OAAOkgV,GAAevjJ,EAAK,YAAY,EAAG,CACnF,KAAM,CAAE,MAAAgkJ,EAAO,OAAAH,CAAM,EAAKL,GACxBngV,EAAKA,EAAK,OAAS,CAAC,EACpBA,EAAKA,EAAK,OAAS,CAAC,CAC9B,EACQ8kD,EAASo7R,GAAcvjJ,EAAK,YAAY,EAAI,KAAK,IAAI,KAAK,IAAIgkJ,CAAK,CAAC,GAAKH,GAAU,EAAI,EAAI,GAC7F,CACA,MAAMI,EAAkB,KAAK,IAC3BN,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,CACxE,EACYohV,EAAmB,KAAK,IAC5Bd,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAKA,EAAK,OAAS,CAAC,CAAC,EAAE,CACxE,EACY8gV,EAAoB,KAAK,IAAIR,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,CAAC,EAChFqhV,EAAqB,KAAK,IAAIf,GAAiBnxV,CAAC,EAAE,EAAImxV,GAAiBtgV,EAAK,CAAC,CAAC,EAAE,CAAC,EACjFghV,EAAoBd,GAAcvjJ,EAAK,cAAc,EACrDskJ,EAAkBf,GAAcvjJ,EAAK,YAAY,EACjDukJ,EAAY,EAClB,GAAIN,EAAkBK,GAAmBL,EAAkB,GAAKQ,EAAmBH,EAAiB,CAClG,IAAIE,EAAaF,EAAkBC,EAAYN,EAC/CO,GAAcT,IAAc,KAAO,GAAK,EACxC57R,GAAUq8R,CACZ,CACA,GAAIL,EAAoBE,GAAqBF,EAAoB,GAAKO,EAAqBL,EAAmB,CAC5G,IAAIG,EAAaH,EAAoBE,EAAYJ,EACjDK,GAAcT,IAAc,KAAO,GAAK,EACxC57R,GAAUq8R,CACZ,CACA,OAAOb,GAAiBnxV,CAAC,EAAE,EAAI21D,CACjC,EAAG,GAAG,CACV,GACG,4BAA4B,ECtG3Bw8R,GAA0C79B,EAAO,CAAC,CACpD,UAAA89B,CACF,IAAM,SACJ,MAAMC,IAAyBx1T,EAAAu1T,GAAA,YAAAA,EAAW,sBAAX,YAAAv1T,EAAgC,MAAO,EAChEy1T,IAA4Br/S,EAAAm/S,GAAA,YAAAA,EAAW,sBAAX,YAAAn/S,EAAgC,SAAU,EACtEs/S,EAA2BF,EAAyBC,EAC1D,MAAO,CACL,uBAAAD,EACA,0BAAAC,EACA,yBAAAC,CACJ,CACA,EAAG,yBAAyB,ECRxBC,IAAiCl+B,EAAQnuD,GAAU,CACrD,KAAM,CAAE,cAAAssF,CAAa,EAAK50B,GAAS,EACnC,MAAO,CACL,KAAM13D,EACN,aAAc,IAEd,WAAY,EACZ,WAAY,EACZ,UAAW,GACX,OAAQA,EACR,KAAMssF,CACV,CACA,EAAG,gBAAgB,EACfC,GAAgCp+B,EAAQtjM,GAAS,CACnD,MAAM2hO,EAAYC,IAAW,CAAC,GAAG5hO,EAAK,mBAAqB,GAAI,GAAGA,EAAK,WAAa,EAAE,CAAC,EACvF,MAAO,CAAE,UAAA2hO,EAAW,YAAa,CAAC,GAAGA,CAAS,CAAC,CACjD,EAAG,eAAe,EACdC,IAA6Bt+B,EAAQ3iH,GAAW,CAClD,MAAM21B,EAA2B,IAAI,IACrC,OAAA31B,EAAO,QAASxB,GAAU,CACxB,KAAM,CAACztM,EAAKjH,CAAK,EAAI00M,EAAM,MAAM,GAAG,EACpCm3B,EAAS,IAAI5kO,EAAI,KAAI,EAAIjH,GAAA,YAAAA,EAAO,MAAM,CACxC,CAAC,EACM6rO,CACT,EAAG,YAAY,EACXurH,IAA+Bv+B,EAAQ5xT,GAClCA,IAAQ,SAAWA,IAAQ,aAAeA,IAAQ,eAAiBA,IAAQ,eAAiBA,IAAQ,cAAgBA,IAAQ,mBAAqBA,IAAQ,cAAgBA,IAAQ,kBAAoBA,IAAQ,eAAiBA,IAAQ,kBAAoBA,IAAQ,gBAAkBA,IAAQ,eAAiBA,IAAQ,iBAAmBA,IAAQ,eAAiBA,IAAQ,aAAeA,IAAQ,cAAgBA,IAAQ,iBAAmBA,IAAQ,UACzb,cAAc,EACbowV,GAAgCx+B,EAAQtjM,GAAS,CACnD,KAAM,CAAE,YAAA+hO,CAAW,EAAKL,GAAc1hO,CAAI,EACpCgiO,EAAc,GACdC,EAAa,GACbC,EAAe,GACfC,EAAmB,GACzB,OAAAJ,EAAY,QAAS5iJ,GAAU,CAC7B,MAAMztM,EAAMytM,EAAM,CAAC,EACf0iJ,IAAanwV,CAAG,EAClBswV,EAAY,KAAK7iJ,EAAM,KAAK,GAAG,EAAI,aAAa,GAEhD8iJ,EAAW,KAAK9iJ,EAAM,KAAK,GAAG,EAAI,aAAa,EAC3CztM,EAAI,SAAS,QAAQ,GACvBwwV,EAAa,KAAK/iJ,EAAM,KAAK,GAAG,EAAI,aAAa,EAE/CztM,IAAQ,QACVywV,EAAiB,KAAKhjJ,EAAM,KAAK,GAAG,EAAI,aAAa,EAG3D,CAAC,EACM,CACL,YAAa6iJ,EAAY,KAAK,GAAG,EACjC,WAAYC,EAAW,KAAK,GAAG,EAC/B,YAAAF,EACA,aAAAG,EACA,iBAAAC,CACJ,CACA,EAAG,eAAe,EACdC,GAAoC9+B,EAAO,CAACtjM,EAAMxpH,IAAY,OAChE,KAAM,CAAE,eAAA61T,EAAgB,cAAAo1B,CAAa,EAAK50B,GAAS,EAC7C,CAAE,WAAAw1B,EAAY,QAAAC,CAAO,EAAKj2B,EAC1B,CAAE,UAAAs1B,CAAS,EAAKD,GAAc1hO,CAAI,EAiBxC,OAhBe,OAAO,OACpB,CACE,UAAW,GACX,KAAM2hO,EAAU,IAAI,MAAM,GAAKW,EAC/B,UAAW,UAEX,WAAY,EACZ,WAAY,IACZ,OAAQX,EAAU,IAAI,QAAQ,GAAKU,EACnC,KAAMZ,EACN,cAAa51T,EAAA81T,EAAU,IAAI,cAAc,IAA5B,YAAA91T,EAA+B,QAAQ,KAAM,MAAO,IACjE,aAAc,CAAC,EAAG,CAAC,EACnB,eAAgB02T,IAAmBZ,EAAU,IAAI,kBAAkB,CAAC,CAC1E,EACInrV,CACJ,CAEA,EAAG,mBAAmB,EAClB+rV,IAAqCj/B,EAAQk/B,GAAyB,CACxE,GAAI,CAACA,EACH,MAAO,CAAC,EAAG,CAAC,EAEd,MAAMC,EAAYD,EAAqB,KAAI,EAAG,MAAM,KAAK,EAAE,IAAI,MAAM,EACrE,GAAIC,EAAU,SAAW,EAAG,CAC1B,MAAM9lT,EAAM,MAAM8lT,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EACjD,MAAO,CAAC9lT,EAAKA,CAAG,CAClB,CACA,MAAM7qC,EAAQ,MAAM2wV,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EAC7C54D,EAAS,MAAM44D,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EACpD,MAAO,CAAC3wV,EAAO+3R,CAAM,CACvB,EAAG,oBAAoB,oDCjGvB,OAAO,eAAe64D,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,GAAA,UAAoBA,GAAA,wBAAkCA,GAAA,2BAAqCA,kBAAyBA,GAAA,oBAA8BA,GAAA,oBAA8BA,GAAA,kBAA4BA,GAAA,qBAA+B,OAC3OA,GAAA,qBAA+B,wCAC/BA,GAAA,kBAA4B,mBAC5BA,GAAA,oBAA8B,oBAC9BA,GAAA,oBAA8B,qDAC9BA,GAAA,eAAyB,oBACzBA,GAAA,2BAAqC,uCACrCA,GAAA,wBAAkC,CAAC,IAAK,GAAG,EAC3CA,GAAA,UAAoB,gECTpB,OAAO,eAAelyR,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,GAAA,YAAsB,OACtB,IAAImyR,EAAc94V,IAAA,EAClB,SAAS+4V,EAA6B/kV,EAAK,CACvC,OAAO8kV,EAAY,wBAAwB,QAAQ9kV,EAAI,CAAC,CAAC,EAAI,EACjE,CACA,SAASglV,EAAqBjzS,EAAK,CAC/B,IAAIkzS,EAAkBlzS,EAAI,QAAQ+yS,EAAY,oBAAqB,EAAE,EACrE,OAAOG,EAAgB,QAAQH,EAAY,kBAAmB,SAAUtoV,EAAOiuN,EAAK,CAChF,OAAO,OAAO,aAAaA,CAAG,CACtC,CAAK,CACL,CACA,SAASy6H,EAAWllV,EAAK,CACrB,OAAO,IAAI,SAASA,CAAG,CAC3B,CACA,SAASmlV,EAAU/0L,EAAK,CACpB,GAAI,CACA,OAAO,mBAAmBA,CAAG,CACrC,MACc,CAIN,OAAOA,CACf,CACA,CACA,SAASg1L,EAAYplV,EAAK,CACtB,GAAI,CAACA,EACD,OAAO8kV,EAAY,UAEvB,IAAIO,EACAC,EAAaH,EAAUnlV,EAAI,KAAI,CAAE,EACrC,GACIslV,EAAaN,EAAqBM,CAAU,EACvC,QAAQR,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,2BAA4B,EAAE,EAClD,KAAI,EACTQ,EAAaH,EAAUG,CAAU,EACjCD,EACIC,EAAW,MAAMR,EAAY,mBAAmB,GAC5CQ,EAAW,MAAMR,EAAY,iBAAiB,GAC9CQ,EAAW,MAAMR,EAAY,mBAAmB,GAChDQ,EAAW,MAAMR,EAAY,0BAA0B,QAC1DO,GAAiBA,EAAc,OAAS,GACjD,IAAIE,EAAeD,EACnB,GAAI,CAACC,EACD,OAAOT,EAAY,UAEvB,GAAIC,EAA6BQ,CAAY,EACzC,OAAOA,EAGX,IAAIC,EAAaD,EAAa,UAAS,EACnCE,EAAwBD,EAAW,MAAMV,EAAY,cAAc,EACvE,GAAI,CAACW,EACD,OAAOF,EAEX,IAAIG,EAAYD,EAAsB,CAAC,EAAE,YAAW,EAAG,KAAI,EAC3D,GAAIX,EAAY,qBAAqB,KAAKY,CAAS,EAC/C,OAAOZ,EAAY,UAEvB,IAAIa,EAAgBH,EAAW,QAAQ,MAAO,GAAG,EAEjD,GAAIE,IAAc,WAAaA,EAAU,SAAS,KAAK,EACnD,OAAOC,EAGX,GAAID,IAAc,SAAWA,IAAc,SAAU,CACjD,GAAI,CAACR,EAAWS,CAAa,EACzB,OAAOb,EAAY,UAEvB,IAAIc,EAAQ,IAAI,IAAID,CAAa,EACjC,OAAAC,EAAM,SAAWA,EAAM,SAAS,YAAW,EAC3CA,EAAM,SAAWA,EAAM,SAAS,YAAW,EACpCA,EAAM,SAAQ,CAC7B,CACI,OAAOD,CACX,CACAhzR,UAAA,YAAsByyR,mBC/ElB5lL,IAAa,OAAO,QAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OCEhFC,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEv1C,GAAOs1C,KAAcC,KAAY,SAAS,aAAa,EAAC,ECHxD2G,GAASl8C,GAAK,OCAdu7C,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAO7BO,IAAuBP,IAAY,SAGnCoB,GAAiBT,GAASA,GAAO,YAAc,OASnD,SAASoL,IAAU5kL,EAAO,CACxB,IAAI20L,EAAQ3b,IAAe,KAAKh5K,EAAOi6K,EAAc,EACjD8H,EAAM/hL,EAAMi6K,EAAc,EAE9B,GAAI,CACFj6K,EAAMi6K,EAAc,EAAI,OACxB,IAAI2a,EAAW,EACjB,MAAY,CAAC,CAEb,IAAI9jL,EAASsoK,IAAqB,KAAKp5K,CAAK,EAC5C,OAAI40L,IACED,EACF30L,EAAMi6K,EAAc,EAAI8H,EAExB,OAAO/hL,EAAMi6K,EAAc,GAGxBnpK,CACT,CC1CA,IAAI+nK,IAAc,OAAO,UAOrBO,IAAuBP,IAAY,SASvC,SAASr2H,IAAexiD,EAAO,CAC7B,OAAOo5K,IAAqB,KAAKp5K,CAAK,CACxC,CCdA,IAAI4rK,IAAU,gBACVQ,IAAe,qBAGf6N,IAAiBT,GAASA,GAAO,YAAc,OASnD,SAASmL,GAAW3kL,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAYosK,IAAeR,IAEtCqO,KAAkBA,OAAkB,OAAOj6K,CAAK,EACpD4kL,IAAU5kL,CAAK,EACfwiD,IAAexiD,CAAK,CAC1B,CCAA,SAAS8jI,GAAS9jI,EAAO,CACvB,IAAI+hB,EAAO,OAAO/hB,EAClB,OAAOA,GAAS,OAAS+hB,GAAQ,UAAYA,GAAQ,WACvD,CCxBA,IAAIopJ,IAAW,yBACXK,IAAU,oBACVC,IAAS,6BACTM,IAAW,iBAmBf,SAASjlI,GAAW9mC,EAAO,CACzB,GAAI,CAAC8jI,GAAS9jI,CAAK,EACjB,MAAO,GAIT,IAAI+hL,EAAM4C,GAAW3kL,CAAK,EAC1B,OAAO+hL,GAAOvW,KAAWuW,GAAOtW,KAAUsW,GAAO5W,KAAY4W,GAAOhW,GACtE,CC/BA,IAAI+M,GAAax7C,GAAK,oBAAoB,ECAtC47C,KAAc,UAAW,CAC3B,IAAIC,EAAM,SAAS,KAAKL,IAAcA,GAAW,MAAQA,GAAW,KAAK,UAAY,EAAE,EACvF,OAAOK,EAAO,iBAAmBA,EAAO,EAC1C,KASA,SAASiO,IAASt5I,EAAM,CACtB,MAAO,CAAC,CAACorI,KAAeA,OAAcprI,CACxC,CChBA,IAAI8qI,IAAY,SAAS,UAGrBG,IAAeH,IAAU,SAS7B,SAASgD,GAAS9tI,EAAM,CACtB,GAAIA,GAAQ,KAAM,CAChB,GAAI,CACF,OAAOirI,IAAa,KAAKjrI,CAAI,CAC/B,MAAY,CAAC,CACb,GAAI,CACF,OAAQA,EAAO,EACjB,MAAY,CAAC,CACf,CACA,MAAO,EACT,CCdA,IAAIigI,IAAe,sBAGfc,IAAe,8BAGf+J,IAAY,SAAS,UACrBC,IAAc,OAAO,UAGrBE,IAAeH,IAAU,SAGzBI,IAAiBH,IAAY,eAG7BS,IAAa,OAAO,IACtBP,IAAa,KAAKC,GAAc,EAAE,QAAQjL,IAAc,MAAM,EAC7D,QAAQ,yDAA0D,OAAO,EAAI,GAChF,EAUA,SAASoZ,IAAannL,EAAO,CAC3B,GAAI,CAAC8jI,GAAS9jI,CAAK,GAAKonL,IAASpnL,CAAK,EACpC,MAAO,GAET,IAAImS,EAAU20B,GAAW9mC,CAAK,EAAIs5K,IAAazK,IAC/C,OAAO18J,EAAQ,KAAKypK,GAAS57K,CAAK,CAAC,CACrC,CCpCA,SAASg3K,IAASthJ,EAAQzuB,EAAK,CAC7B,OAAOyuB,GAAU,KAAO,OAAYA,EAAOzuB,CAAG,CAChD,CCCA,SAASizK,GAAUxkJ,EAAQzuB,EAAK,CAC9B,IAAIjH,EAAQg3K,IAASthJ,EAAQzuB,CAAG,EAChC,OAAOkgL,IAAannL,CAAK,EAAIA,EAAQ,MACvC,CCXA,IAAIw7K,GAAetB,GAAU,OAAQ,QAAQ,ECM7C,SAAS2D,KAAY,CACnB,KAAK,SAAWrC,GAAeA,GAAa,IAAI,EAAI,GACpD,KAAK,KAAO,CACd,CCFA,SAASsC,IAAW72K,EAAK,CACvB,IAAI6J,EAAS,KAAK,IAAI7J,CAAG,GAAK,OAAO,KAAK,SAASA,CAAG,EACtD,YAAK,MAAQ6J,EAAS,EAAI,EACnBA,CACT,CCXA,IAAIk4J,IAAiB,4BAGjB6P,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAWjC,SAASkF,IAAQ92K,EAAK,CACpB,IAAImO,EAAO,KAAK,SAChB,GAAIomK,GAAc,CAChB,IAAI1qK,EAASsE,EAAKnO,CAAG,EACrB,OAAO6J,IAAWk4J,IAAiB,OAAYl4J,CACjD,CACA,OAAOkoK,IAAe,KAAK5jK,EAAMnO,CAAG,EAAImO,EAAKnO,CAAG,EAAI,MACtD,CCxBA,IAAI4xK,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAWjC,SAASmF,IAAQ/2K,EAAK,CACpB,IAAImO,EAAO,KAAK,SAChB,OAAOomK,GAAgBpmK,EAAKnO,CAAG,IAAM,OAAa+xK,IAAe,KAAK5jK,EAAMnO,CAAG,CACjF,CCjBA,IAAI+hK,IAAiB,4BAYrB,SAASiV,IAAQh3K,EAAKjH,EAAO,CAC3B,IAAIoV,EAAO,KAAK,SAChB,YAAK,MAAQ,KAAK,IAAInO,CAAG,EAAI,EAAI,EACjCmO,EAAKnO,CAAG,EAAKu0K,IAAgBx7K,IAAU,OAAagpK,IAAiBhpK,EAC9D,IACT,CCPA,SAAS49K,GAAKzxK,EAAS,CACrB,IAAIE,EAAQ,GACRqiC,EAASviC,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEE,EAAQqiC,GAAQ,CACvB,IAAItiC,EAAQD,EAAQE,CAAK,EACzB,KAAK,IAAID,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC7B,CACF,CAGAwxK,GAAK,UAAU,MAAQC,IACvBD,GAAK,UAAU,OAAYE,IAC3BF,GAAK,UAAU,IAAMG,IACrBH,GAAK,UAAU,IAAMI,IACrBJ,GAAK,UAAU,IAAMK,ICtBrB,SAASE,KAAiB,CACxB,KAAK,SAAW,GAChB,KAAK,KAAO,CACd,CCsBA,SAASwC,GAAG3gL,EAAO8kL,EAAO,CACxB,OAAO9kL,IAAU8kL,GAAU9kL,IAAUA,GAAS8kL,IAAUA,CAC1D,CCxBA,SAASzG,GAAapwI,EAAOhnC,EAAK,CAEhC,QADIynC,EAAST,EAAM,OACZS,KACL,GAAIiyI,GAAG1yI,EAAMS,CAAM,EAAE,CAAC,EAAGznC,CAAG,EAC1B,OAAOynC,EAGX,MAAO,EACT,CCfA,IAAIiqI,IAAa,MAAM,UAGnBmB,IAASnB,IAAW,OAWxB,SAASyF,IAAgBn3K,EAAK,CAC5B,IAAImO,EAAO,KAAK,SACZ/I,EAAQgyK,GAAajpK,EAAMnO,CAAG,EAElC,GAAIoF,EAAQ,EACV,MAAO,GAET,IAAIw4H,EAAYzvH,EAAK,OAAS,EAC9B,OAAI/I,GAASw4H,EACXzvH,EAAK,IAAG,EAER0kK,IAAO,KAAK1kK,EAAM/I,EAAO,CAAC,EAE5B,EAAE,KAAK,KACA,EACT,CCrBA,SAASiyK,IAAar3K,EAAK,CACzB,IAAImO,EAAO,KAAK,SACZ/I,EAAQgyK,GAAajpK,EAAMnO,CAAG,EAElC,OAAOoF,EAAQ,EAAI,OAAY+I,EAAK/I,CAAK,EAAE,CAAC,CAC9C,CCLA,SAASkyK,IAAat3K,EAAK,CACzB,OAAOo3K,GAAa,KAAK,SAAUp3K,CAAG,EAAI,EAC5C,CCDA,SAASu3K,IAAav3K,EAAKjH,EAAO,CAChC,IAAIoV,EAAO,KAAK,SACZ/I,EAAQgyK,GAAajpK,EAAMnO,CAAG,EAElC,OAAIoF,EAAQ,GACV,EAAE,KAAK,KACP+I,EAAK,KAAK,CAACnO,EAAKjH,CAAK,CAAC,GAEtBoV,EAAK/I,CAAK,EAAE,CAAC,EAAIrM,EAEZ,IACT,CCVA,SAASk+K,GAAU/xK,EAAS,CAC1B,IAAIE,EAAQ,GACRqiC,EAASviC,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEE,EAAQqiC,GAAQ,CACvB,IAAItiC,EAAQD,EAAQE,CAAK,EACzB,KAAK,IAAID,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC7B,CACF,CAGA8xK,GAAU,UAAU,MAAQC,IAC5BD,GAAU,UAAU,OAAYE,IAChCF,GAAU,UAAU,IAAMI,IAC1BJ,GAAU,UAAU,IAAMK,IAC1BL,GAAU,UAAU,IAAMM,ICzB1B,IAAIpD,GAAMlB,GAAU58C,GAAM,KAAK,ECO/B,SAASohD,KAAgB,CACvB,KAAK,KAAO,EACZ,KAAK,SAAW,CACd,KAAQ,IAAId,GACZ,IAAO,IAAKxC,IAAO8C,IACnB,OAAU,IAAIN,EAClB,CACA,CCXA,SAAS8W,IAAU10L,EAAO,CACxB,IAAI+hB,EAAO,OAAO/hB,EAClB,OAAQ+hB,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UACvE/hB,IAAU,YACVA,IAAU,IACjB,CCFA,SAAS4+K,GAAWxsI,EAAKnrC,EAAK,CAC5B,IAAImO,EAAOg9B,EAAI,SACf,OAAOsiJ,IAAUztL,CAAG,EAChBmO,EAAK,OAAOnO,GAAO,SAAW,SAAW,MAAM,EAC/CmO,EAAK,GACX,CCJA,SAASupK,IAAe13K,EAAK,CAC3B,IAAI6J,EAAS8tK,GAAW,KAAM33K,CAAG,EAAE,OAAUA,CAAG,EAChD,YAAK,MAAQ6J,EAAS,EAAI,EACnBA,CACT,CCJA,SAAS+tK,IAAY53K,EAAK,CACxB,OAAO23K,GAAW,KAAM33K,CAAG,EAAE,IAAIA,CAAG,CACtC,CCFA,SAAS63K,IAAY73K,EAAK,CACxB,OAAO23K,GAAW,KAAM33K,CAAG,EAAE,IAAIA,CAAG,CACtC,CCDA,SAAS83K,IAAY93K,EAAKjH,EAAO,CAC/B,IAAIoV,EAAOwpK,GAAW,KAAM33K,CAAG,EAC3B6uC,EAAO1gC,EAAK,KAEhB,OAAAA,EAAK,IAAInO,EAAKjH,CAAK,EACnB,KAAK,MAAQoV,EAAK,MAAQ0gC,EAAO,EAAI,EAC9B,IACT,CCNA,SAAS2oI,GAAStyK,EAAS,CACzB,IAAIE,EAAQ,GACRqiC,EAASviC,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAK,EACH,EAAEE,EAAQqiC,GAAQ,CACvB,IAAItiC,EAAQD,EAAQE,CAAK,EACzB,KAAK,IAAID,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC7B,CACF,CAGAqyK,GAAS,UAAU,MAAQC,IAC3BD,GAAS,UAAU,OAAYE,IAC/BF,GAAS,UAAU,IAAMI,IACzBJ,GAAS,UAAU,IAAMK,IACzBL,GAAS,UAAU,IAAMM,IC1BzB,IAAIjW,IAAkB,sBA8CtB,SAASvwI,GAAQuV,EAAM8vJ,EAAU,CAC/B,GAAI,OAAO9vJ,GAAQ,YAAe8vJ,GAAY,MAAQ,OAAOA,GAAY,WACvE,MAAM,IAAI,UAAU90B,GAAe,EAErC,IAAIz5H,EAAW,UAAW,CACxB,IAAIhkC,EAAO,UACPpE,EAAM22L,EAAWA,EAAS,MAAM,KAAMvyL,CAAI,EAAIA,EAAK,CAAC,EACpDmtB,EAAQ6W,EAAS,MAErB,GAAI7W,EAAM,IAAIvxB,CAAG,EACf,OAAOuxB,EAAM,IAAIvxB,CAAG,EAEtB,IAAI6J,EAASg9B,EAAK,MAAM,KAAMziC,CAAI,EAClC,OAAAgkC,EAAS,MAAQ7W,EAAM,IAAIvxB,EAAK6J,CAAM,GAAK0nB,EACpC1nB,CACT,EACA,OAAAu+B,EAAS,MAAQ,IAAK9W,GAAQ,OAASkmJ,IAChCpvI,CACT,CAGA9W,GAAQ,MAAQkmJ,GC7DhB,SAASW,KAAa,CACpB,KAAK,SAAW,IAAIlB,GACpB,KAAK,KAAO,CACd,CCHA,SAASmB,IAAYp4K,EAAK,CACxB,IAAImO,EAAO,KAAK,SACZtE,EAASsE,EAAK,OAAUnO,CAAG,EAE/B,YAAK,KAAOmO,EAAK,KACVtE,CACT,CCNA,SAASwuK,IAASr4K,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CCFA,SAASs4K,IAASt4K,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CCNA,IAAI2hK,IAAmB,IAYvB,SAAS4W,IAASv4K,EAAKjH,EAAO,CAC5B,IAAIoV,EAAO,KAAK,SAChB,GAAIA,aAAgB8oK,GAAW,CAC7B,IAAIuB,EAAQrqK,EAAK,SACjB,GAAI,CAACgmK,IAAQqE,EAAM,OAAS7W,IAAmB,EAC7C,OAAA6W,EAAM,KAAK,CAACx4K,EAAKjH,CAAK,CAAC,EACvB,KAAK,KAAO,EAAEoV,EAAK,KACZ,KAETA,EAAO,KAAK,SAAW,IAAIqpK,GAASgB,CAAK,CAC3C,CACA,OAAArqK,EAAK,IAAInO,EAAKjH,CAAK,EACnB,KAAK,KAAOoV,EAAK,KACV,IACT,CCjBA,SAAS+pK,GAAMhzK,EAAS,CACtB,IAAIiJ,EAAO,KAAK,SAAW,IAAI8oK,GAAU/xK,CAAO,EAChD,KAAK,KAAOiJ,EAAK,IACnB,CAGA+pK,GAAM,UAAU,MAAQC,IACxBD,GAAM,UAAU,OAAYE,IAC5BF,GAAM,UAAU,IAAMG,IACtBH,GAAM,UAAU,IAAMI,IACtBJ,GAAM,UAAU,IAAMK,ICtBtB,IAAIt5K,IAAkB,UAAW,CAC/B,GAAI,CACF,IAAI4nC,EAAOosI,GAAU,OAAQ,gBAAgB,EAC7C,OAAApsI,EAAK,GAAI,GAAI,EAAE,EACRA,CACT,MAAY,CAAC,CACf,KCGA,SAAS8yI,GAAgBlrJ,EAAQzuB,EAAKjH,EAAO,CACvCiH,GAAO,aAAef,GACxBA,GAAewvB,EAAQzuB,EAAK,CAC1B,aAAgB,GAChB,WAAc,GACd,MAASjH,EACT,SAAY,EAClB,CAAK,EAED01B,EAAOzuB,CAAG,EAAIjH,CAElB,CCVA,SAAS0gL,GAAiBhrJ,EAAQzuB,EAAKjH,EAAO,EACvCA,IAAU,QAAa,CAAC2gL,GAAGjrJ,EAAOzuB,CAAG,EAAGjH,CAAK,GAC7CA,IAAU,QAAa,EAAEiH,KAAOyuB,KACnCkrJ,GAAgBlrJ,EAAQzuB,EAAKjH,CAAK,CAEtC,CCVA,SAASokL,IAAc9O,EAAW,CAChC,OAAO,SAAS5/I,EAAQk+I,EAAU6O,EAAU,CAM1C,QALIp2K,EAAQ,GACRsjL,EAAW,OAAOj6J,CAAM,EACxBzrB,EAAQw4K,EAAS/sJ,CAAM,EACvBgZ,EAASzkC,EAAM,OAEZykC,KAAU,CACf,IAAIznC,EAAMgD,EAA2B,EAAEoC,CAAK,EAC5C,GAAIunK,EAAS+b,EAAS1oL,CAAG,EAAGA,EAAK0oL,CAAQ,IAAM,GAC7C,KAEJ,CACA,OAAOj6J,CACT,CACF,CCTG,IAACyuJ,IAAUC,IAAa,ECVvBtR,IAAc,OAAO,SAAW,UAAY,SAAW,CAAC,QAAQ,UAAY,QAG5EC,IAAaD,KAAe,OAAO,QAAU,UAAY,QAAU,CAAC,OAAO,UAAY,OAGvFE,IAAgBD,KAAcA,IAAW,UAAYD,IAGrDyG,IAASvG,IAAgB11C,GAAK,OAAS,OACvCo8C,IAAcH,IAASA,IAAO,YAAc,OAUhD,SAAS2I,IAAYzgJ,EAAQkgJ,EAAQ,CACnC,GAAIA,EACF,OAAOlgJ,EAAO,MAAK,EAErB,IAAIiN,EAASjN,EAAO,OAChB3wB,EAAS4oK,IAAcA,IAAYhrI,CAAM,EAAI,IAAIjN,EAAO,YAAYiN,CAAM,EAE9E,OAAAjN,EAAO,KAAK3wB,CAAM,EACXA,CACT,CC7BG,IAAC2oK,IAAan8C,GAAK,WCMtB,SAAS8vD,IAAiBC,EAAa,CACrC,IAAIv8K,EAAS,IAAIu8K,EAAY,YAAYA,EAAY,UAAU,EAC/D,WAAI5T,IAAW3oK,CAAM,EAAE,IAAI,IAAI2oK,IAAW4T,CAAW,CAAC,EAC/Cv8K,CACT,CCHA,SAASk4K,IAAgB5hI,EAAYu6H,EAAQ,CAC3C,IAAIlgJ,EAASkgJ,EAASyL,IAAiBhmI,EAAW,MAAM,EAAIA,EAAW,OACvE,OAAO,IAAIA,EAAW,YAAY3lB,EAAQ2lB,EAAW,WAAYA,EAAW,MAAM,CACpF,CCLA,SAASy1H,IAAUjxK,EAAQqiC,EAAO,CAChC,IAAI5hC,EAAQ,GACRqiC,EAAS9iC,EAAO,OAGpB,IADAqiC,IAAUA,EAAQ,MAAMS,CAAM,GACvB,EAAEriC,EAAQqiC,GACfT,EAAM5hC,CAAK,EAAIT,EAAOS,CAAK,EAE7B,OAAO4hC,CACT,CCdA,IAAI2rI,IAAe,OAAO,OAUtB6C,KAAc,UAAW,CAC3B,SAAS/mJ,GAAS,CAAC,CACnB,OAAO,SAASuN,EAAO,CACrB,GAAI,CAAC6gG,GAAS7gG,CAAK,EACjB,MAAO,GAET,GAAI22I,IACF,OAAOA,IAAa32I,CAAK,EAE3BvN,EAAO,UAAYuN,EACnB,IAAInyB,EAAS,IAAI4kB,EACjB,OAAAA,EAAO,UAAY,OACZ5kB,CACT,CACF,KCnBA,SAASwmK,IAAQxpI,EAAM8+G,EAAW,CAChC,OAAO,SAAS5kI,EAAK,CACnB,OAAO8lB,EAAK8+G,EAAU5kI,CAAG,CAAC,CAC5B,CACF,CCTG,IAAC2xJ,IAAerC,IAAQ,OAAO,eAAgB,MAAM,ECFpDuB,IAAc,OAAO,UASzB,SAASiP,GAAY9nL,EAAO,CAC1B,IAAI6mC,EAAO7mC,GAASA,EAAM,YACtBijC,EAAS,OAAO4D,GAAQ,YAAcA,EAAK,WAAcgyI,IAE7D,OAAO74K,IAAUijC,CACnB,CCJA,SAASk/I,IAAgBzsJ,EAAQ,CAC/B,OAAQ,OAAOA,EAAO,aAAe,YAAc,CAACoyJ,GAAYpyJ,CAAM,EAClE+mJ,IAAW9C,IAAajkJ,CAAM,CAAC,EAC/B,EACN,CCSA,SAAS2mJ,GAAar8K,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CCtBA,IAAIirK,IAAU,qBASd,SAASya,IAAgB1lL,EAAO,CAC9B,OAAOq8K,GAAar8K,CAAK,GAAK2kL,GAAW3kL,CAAK,GAAKirK,GACrD,CCXA,IAAI4N,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAG7BgB,IAAuBhB,IAAY,qBAoBnCgH,GAAc6F,KAAgB,UAAW,CAAE,OAAO,SAAW,IAAG,EAAIA,IAAkB,SAAS1lL,EAAO,CACxG,OAAOq8K,GAAar8K,CAAK,GAAKg5K,IAAe,KAAKh5K,EAAO,QAAQ,GAC/D,CAAC65K,IAAqB,KAAK75K,EAAO,QAAQ,CAC9C,ECVIumC,GAAU,MAAM,QCtBhBmkI,IAAmB,iBA4BvB,SAAS8c,IAASxnL,EAAO,CACvB,OAAO,OAAOA,GAAS,UACrBA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,GAAS0qK,GAC7C,CCJA,SAAS0d,GAAYpoL,EAAO,CAC1B,OAAOA,GAAS,MAAQwnL,IAASxnL,EAAM,MAAM,GAAK,CAAC8mC,GAAW9mC,CAAK,CACrE,CCFA,SAAS+oL,IAAkB/oL,EAAO,CAChC,OAAOq8K,GAAar8K,CAAK,GAAKooL,GAAYpoL,CAAK,CACjD,CCjBA,SAASq1L,KAAY,CACnB,MAAO,EACT,CCXA,IAAIviB,IAAc,OAAO,SAAW,UAAY,SAAW,CAAC,QAAQ,UAAY,QAG5EC,IAAaD,KAAe,OAAO,QAAU,UAAY,QAAU,CAAC,OAAO,UAAY,OAGvFE,IAAgBD,KAAcA,IAAW,UAAYD,IAGrDyG,IAASvG,IAAgB11C,GAAK,OAAS,OAGvCm9C,IAAiBlB,IAASA,IAAO,SAAW,OAmB5CwG,GAAWtF,KAAkB4a,IC9B7BxpB,IAAY,kBAGZ+M,IAAY,SAAS,UACrBC,IAAc,OAAO,UAGrBE,IAAeH,IAAU,SAGzBI,IAAiBH,IAAY,eAG7BnyI,IAAmBqyI,IAAa,KAAK,MAAM,EA8B/C,SAAS/1I,IAAchjC,EAAO,CAC5B,GAAI,CAACq8K,GAAar8K,CAAK,GAAK2kL,GAAW3kL,CAAK,GAAK6rK,IAC/C,MAAO,GAET,IAAI5oI,EAAQ02I,IAAa35K,CAAK,EAC9B,GAAIijC,IAAU,KACZ,MAAO,GAET,IAAI4D,EAAOmyI,IAAe,KAAK/1I,EAAO,aAAa,GAAKA,EAAM,YAC9D,OAAO,OAAO4D,GAAQ,YAAcA,aAAgBA,GAClDkyI,IAAa,KAAKlyI,CAAI,GAAKH,GAC/B,CCtDA,IAAIukI,IAAU,qBACVC,IAAW,iBACXE,IAAU,mBACVC,IAAU,gBACVE,IAAW,iBACXC,IAAU,oBACVE,IAAS,eACTC,IAAY,kBACZE,IAAY,kBACZG,IAAY,kBACZC,IAAS,eACTC,IAAY,kBACZG,IAAa,mBAEbE,IAAiB,uBACjBC,IAAc,oBACdC,IAAa,wBACbC,IAAa,wBACbC,IAAU,qBACVC,IAAW,sBACXC,IAAW,sBACXC,IAAW,sBACXC,IAAkB,6BAClBC,IAAY,uBACZC,IAAY,uBAGZmF,GAAiB,GACrBA,GAAe3F,GAAU,EAAI2F,GAAe1F,GAAU,EACtD0F,GAAezF,GAAO,EAAIyF,GAAexF,GAAQ,EACjDwF,GAAevF,GAAQ,EAAIuF,GAAetF,GAAQ,EAClDsF,GAAerF,GAAe,EAAIqF,GAAepF,GAAS,EAC1DoF,GAAenF,GAAS,EAAI,GAC5BmF,GAAenH,GAAO,EAAImH,GAAelH,GAAQ,EACjDkH,GAAe7F,GAAc,EAAI6F,GAAehH,GAAO,EACvDgH,GAAe5F,GAAW,EAAI4F,GAAe/G,GAAO,EACpD+G,GAAe7G,GAAQ,EAAI6G,GAAe5G,GAAO,EACjD4G,GAAe1G,GAAM,EAAI0G,GAAezG,GAAS,EACjDyG,GAAevG,GAAS,EAAIuG,GAAepG,GAAS,EACpDoG,GAAenG,GAAM,EAAImG,GAAelG,GAAS,EACjDkG,GAAe/F,GAAU,EAAI,GAS7B,SAASkb,IAAiBvnL,EAAO,CAC/B,OAAOq8K,GAAar8K,CAAK,GACvBwnL,IAASxnL,EAAM,MAAM,GAAK,CAAC,CAACoyK,GAAeuS,GAAW3kL,CAAK,CAAC,CAChE,CClDA,SAASo2K,IAAUtoI,EAAM,CACvB,OAAO,SAAS9tC,EAAO,CACrB,OAAO8tC,EAAK9tC,CAAK,CACnB,CACF,CCRA,IAAI8yK,IAAc,OAAO,SAAW,UAAY,SAAW,CAAC,QAAQ,UAAY,QAG5EC,GAAaD,KAAe,OAAO,QAAU,UAAY,QAAU,CAAC,OAAO,UAAY,OAGvFE,IAAgBD,IAAcA,GAAW,UAAYD,IAGrDG,GAAcD,KAAiBJ,IAAW,QAG1CM,KAAY,UAAW,CACzB,GAAI,CAEF,IAAIC,EAAQJ,IAAcA,GAAW,SAAWA,GAAW,QAAQ,MAAM,EAAE,MAE3E,OAAII,GAKGF,IAAeA,GAAY,SAAWA,GAAY,QAAQ,MAAM,CACzE,MAAY,CAAC,CACf,GAAC,ECtBGQ,IAAmBP,KAAYA,IAAS,aAmBxC+M,GAAexM,IAAmB2C,IAAU3C,GAAgB,EAAI8T,IChBpE,SAASqB,GAAQlzJ,EAAQzuB,EAAK,CAC5B,GAAI,EAAAA,IAAQ,eAAiB,OAAOyuB,EAAOzuB,CAAG,GAAM,aAIhDA,GAAO,YAIX,OAAOyuB,EAAOzuB,CAAG,CACnB,CCdA,IAAI4xK,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAYjC,SAASgI,IAAYnrJ,EAAQzuB,EAAKjH,EAAO,CACvC,IAAI+kI,EAAWrvG,EAAOzuB,CAAG,GACrB,EAAE+xK,IAAe,KAAKtjJ,EAAQzuB,CAAG,GAAK05K,GAAG57C,EAAU/kI,CAAK,IACvDA,IAAU,QAAa,EAAEiH,KAAOyuB,KACnCkrJ,GAAgBlrJ,EAAQzuB,EAAKjH,CAAK,CAEtC,CCZA,SAASihL,IAAWr1K,EAAQ3B,EAAOyrB,EAAQgsJ,EAAY,CACrD,IAAI95J,EAAQ,CAAC8N,EACbA,IAAWA,EAAS,IAKpB,QAHIrpB,EAAQ,GACRqiC,EAASzkC,EAAM,OAEZ,EAAEoC,EAAQqiC,GAAQ,CACvB,IAAIznC,EAAMgD,EAAMoC,CAAK,EAEjBy4H,EAEA,OAEAA,IAAa,SACfA,EAAWl5H,EAAO3E,CAAG,GAEnB2gB,EACFg5J,GAAgBlrJ,EAAQzuB,EAAK69H,CAAQ,EAErC+7C,IAAYnrJ,EAAQzuB,EAAK69H,CAAQ,CAErC,CACA,OAAOpvG,CACT,CC5BA,SAASsgJ,IAAUlxK,EAAG8uK,EAAU,CAI9B,QAHIvnK,EAAQ,GACRyE,EAAS,MAAMhM,CAAC,EAEb,EAAEuH,EAAQvH,GACfgM,EAAOzE,CAAK,EAAIunK,EAASvnK,CAAK,EAEhC,OAAOyE,CACT,CChBA,IAAI45J,IAAmB,iBAGnBqE,IAAW,mBAUf,SAASoR,IAAQngL,EAAO0uC,EAAQ,CAC9B,IAAI3sB,EAAO,OAAO/hB,EAClB,OAAA0uC,EAASA,GAAiBg8H,IAEnB,CAAC,CAACh8H,IACN3sB,GAAQ,UACNA,GAAQ,UAAYgtJ,IAAS,KAAK/uK,CAAK,IACrCA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,EAAQ0uC,CACjD,CCdA,IAAImqI,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eAUjC,SAAS6G,IAAc1/K,EAAO2/K,EAAW,CACvC,IAAI3C,EAAQz2I,GAAQvmC,CAAK,EACrB4/K,EAAQ,CAAC5C,GAAS6C,GAAY7/K,CAAK,EACnC8/K,EAAS,CAAC9C,GAAS,CAAC4C,GAASG,GAAS//K,CAAK,EAC3CggL,EAAS,CAAChD,GAAS,CAAC4C,GAAS,CAACE,GAAUG,GAAajgL,CAAK,EAC1DkgL,EAAclD,GAAS4C,GAASE,GAAUE,EAC1ClvK,EAASovK,EAAclK,IAAUh2K,EAAM,OAAQ,MAAM,EAAI,GACzD0uC,EAAS59B,EAAO,OAEpB,QAAS7J,KAAOjH,GACT2/K,GAAa3G,IAAe,KAAKh5K,EAAOiH,CAAG,IAC5C,EAAEi5K,IAECj5K,GAAO,UAEN64K,IAAW74K,GAAO,UAAYA,GAAO,WAErC+4K,IAAW/4K,GAAO,UAAYA,GAAO,cAAgBA,GAAO,eAE7Dk5K,IAAQl5K,EAAKynC,CAAM,KAExB59B,EAAO,KAAK7J,CAAG,EAGnB,OAAO6J,CACT,CCrCA,SAASk3K,IAAatyJ,EAAQ,CAC5B,IAAI5kB,EAAS,GACb,GAAI4kB,GAAU,KACZ,QAASzuB,KAAO,OAAOyuB,CAAM,EAC3B5kB,EAAO,KAAK7J,CAAG,EAGnB,OAAO6J,CACT,CCZA,IAAI+nK,IAAc,OAAO,UAGrBG,IAAiBH,IAAY,eASjC,SAASkP,IAAWryJ,EAAQ,CAC1B,GAAI,CAACouG,GAASpuG,CAAM,EAClB,OAAOsyJ,IAAatyJ,CAAM,EAE5B,IAAIuyJ,EAAUH,GAAYpyJ,CAAM,EAC5B5kB,EAAS,GAEb,QAAS7J,KAAOyuB,EACRzuB,GAAO,gBAAkBghL,GAAW,CAACjP,IAAe,KAAKtjJ,EAAQzuB,CAAG,IACxE6J,EAAO,KAAK7J,CAAG,EAGnB,OAAO6J,CACT,CCHA,SAASqwK,IAAOzrJ,EAAQ,CACtB,OAAO0yJ,GAAY1yJ,CAAM,EAAIgqJ,IAAchqJ,EAAQ,EAAI,EAAIqyJ,IAAWryJ,CAAM,CAC9E,CCFA,SAASuzJ,IAAcjpL,EAAO,CAC5B,OAAOihL,IAAWjhL,EAAOmhL,IAAOnhL,CAAK,CAAC,CACxC,CCEA,SAAS2oL,IAAcjzJ,EAAQ9pB,EAAQ3E,EAAKyhL,EAAUG,EAAWnH,EAAYhzJ,EAAO,CAClF,IAAIq2G,EAAW6jD,GAAQlzJ,EAAQzuB,CAAG,EAC9BigL,EAAW0B,GAAQh9K,EAAQ3E,CAAG,EAC9Bs7K,EAAU7zJ,EAAM,IAAIw4J,CAAQ,EAEhC,GAAI3E,EAAS,CACX7B,GAAiBhrJ,EAAQzuB,EAAKs7K,CAAO,EACrC,MACF,CACA,IAAIz9C,EAAW48C,EACXA,EAAW38C,EAAUmiD,EAAWjgL,EAAM,GAAKyuB,EAAQ9pB,EAAQ8iB,CAAK,EAChE,OAEAw0J,EAAWp+C,IAAa,OAE5B,GAAIo+C,EAAU,CACZ,IAAIlG,EAAQz2I,GAAQ2gJ,CAAQ,EACxBpH,EAAS,CAAC9C,GAAS+C,GAASmH,CAAQ,EACpC4B,EAAU,CAAC9L,GAAS,CAAC8C,GAAUG,GAAaiH,CAAQ,EAExDpiD,EAAWoiD,EACPlK,GAAS8C,GAAUgJ,EACjBviJ,GAAQw+F,CAAQ,EAClBD,EAAWC,EAEJgkD,IAAkBhkD,CAAQ,EACjCD,EAAW+3C,IAAU93C,CAAQ,EAEtB+6C,GACPoD,EAAW,GACXp+C,EAAWo9C,IAAYgF,EAAU,EAAI,GAE9B4B,GACP5F,EAAW,GACXp+C,EAAWkkD,IAAgB9B,EAAU,EAAI,GAGzCpiD,EAAW,GAGN9hG,IAAckkJ,CAAQ,GAAKrH,GAAYqH,CAAQ,GACtDpiD,EAAWC,EACP86C,GAAY96C,CAAQ,EACtBD,EAAWmkD,IAAclkD,CAAQ,GAE1B,CAACjB,GAASiB,CAAQ,GAAKj+F,GAAWi+F,CAAQ,KACjDD,EAAWq9C,IAAgB+E,CAAQ,IAIrChE,EAAW,EAEf,CACIA,IAEFx0J,EAAM,IAAIw4J,EAAUpiD,CAAQ,EAC5B+jD,EAAU/jD,EAAUoiD,EAAUwB,EAAUhH,EAAYhzJ,CAAK,EACzDA,EAAM,OAAUw4J,CAAQ,GAE1BxG,GAAiBhrJ,EAAQzuB,EAAK69H,CAAQ,CACxC,CCxEA,SAAS2jD,IAAU/yJ,EAAQ9pB,EAAQ88K,EAAUhH,EAAYhzJ,EAAO,CAC1DgH,IAAW9pB,GAGfu4K,IAAQv4K,EAAQ,SAASs7K,EAAUjgL,EAAK,CAEtC,GADAynB,IAAUA,EAAQ,IAAIywJ,IAClBr7C,GAASojD,CAAQ,EACnByB,IAAcjzJ,EAAQ9pB,EAAQ3E,EAAKyhL,EAAUD,IAAW/G,EAAYhzJ,CAAK,MAEtE,CACH,IAAIo2G,EAAW48C,EACXA,EAAWkH,GAAQlzJ,EAAQzuB,CAAG,EAAGigL,EAAWjgL,EAAM,GAAKyuB,EAAQ9pB,EAAQ8iB,CAAK,EAC5E,OAEAo2G,IAAa,SACfA,EAAWoiD,GAEbxG,GAAiBhrJ,EAAQzuB,EAAK69H,CAAQ,CACxC,CACF,EAAGq8C,GAAM,CACX,CCvBA,SAASuG,IAAS1nL,EAAO,CACvB,OAAOA,CACT,CCRA,SAASs0H,IAAMxmF,EAAM0yB,EAASn1D,EAAM,CAClC,OAAQA,EAAK,OAAM,CACjB,IAAK,GAAG,OAAOyiC,EAAK,KAAK0yB,CAAO,EAChC,IAAK,GAAG,OAAO1yB,EAAK,KAAK0yB,EAASn1D,EAAK,CAAC,CAAC,EACzC,IAAK,GAAG,OAAOyiC,EAAK,KAAK0yB,EAASn1D,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAClD,IAAK,GAAG,OAAOyiC,EAAK,KAAK0yB,EAASn1D,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CAC/D,CACE,OAAOyiC,EAAK,MAAM0yB,EAASn1D,CAAI,CACjC,CCfA,IAAIwvK,IAAY,KAAK,IAWrB,SAASyP,IAASx8I,EAAM25C,EAAOmlE,EAAW,CACxC,OAAAnlE,EAAQozF,IAAUpzF,IAAU,OAAa35C,EAAK,OAAS,EAAK25C,EAAO,CAAC,EAC7D,UAAW,CAMhB,QALIp8E,EAAO,UACPgB,EAAQ,GACRqiC,EAASmsI,IAAUxvK,EAAK,OAASo8E,EAAO,CAAC,EACzCx5C,EAAQ,MAAMS,CAAM,EAEjB,EAAEriC,EAAQqiC,GACfT,EAAM5hC,CAAK,EAAIhB,EAAKo8E,EAAQp7E,CAAK,EAEnCA,EAAQ,GAER,QADIqpL,EAAY,MAAMjuG,EAAQ,CAAC,EACxB,EAAEp7E,EAAQo7E,GACfiuG,EAAUrpL,CAAK,EAAIhB,EAAKgB,CAAK,EAE/B,OAAAqpL,EAAUjuG,CAAK,EAAImlE,EAAU3+G,CAAK,EAC3BqmF,IAAMxmF,EAAM,KAAM4nJ,CAAS,CACpC,CACF,CCdA,SAAS/K,IAAS3qL,EAAO,CACvB,OAAO,UAAW,CAChB,OAAOA,CACT,CACF,CCXA,IAAI0qL,IAAmBxkL,GAA4B,SAAS4nC,EAAMorG,EAAQ,CACxE,OAAOhzI,GAAe4nC,EAAM,WAAY,CACtC,aAAgB,GAChB,WAAc,GACd,MAAS68I,IAASzxC,CAAM,EACxB,SAAY,EAChB,CAAG,CACH,EAPwCwuC,ICXpCtd,IAAY,IACZC,IAAW,GAGX0Q,IAAY,KAAK,IAWrB,SAAS6a,IAAS9nJ,EAAM,CACtB,IAAI7qB,EAAQ,EACR6yK,EAAa,EAEjB,OAAO,UAAW,CAChB,IAAIC,EAAQhb,IAAS,EACjBib,EAAY3rB,KAAY0rB,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,GAAI,EAAE/yK,GAASmnJ,IACb,OAAO,UAAU,CAAC,OAGpBnnJ,EAAQ,EAEV,OAAO6qB,EAAK,MAAM,OAAW,SAAS,CACxC,CACF,CCvBG,IAACu8I,IAAcuL,IAASlL,GAAe,ECC1C,SAASN,IAASt8I,EAAM25C,EAAO,CAC7B,OAAO4iG,IAAYC,IAASx8I,EAAM25C,EAAOigG,GAAQ,EAAG55I,EAAO,EAAE,CAC/D,CCCA,SAAS4hJ,IAAe1vL,EAAOqM,EAAOqpB,EAAQ,CAC5C,GAAI,CAACouG,GAASpuG,CAAM,EAClB,MAAO,GAET,IAAI3T,EAAO,OAAO1V,EAClB,OAAI0V,GAAQ,SACHqmK,GAAY1yJ,CAAM,GAAKyqJ,IAAQ9zK,EAAOqpB,EAAO,MAAM,EACnD3T,GAAQ,UAAY1V,KAASqpB,GAE7BirJ,GAAGjrJ,EAAOrpB,CAAK,EAAGrM,CAAK,EAEzB,EACT,CCjBA,SAASsvL,IAAeC,EAAU,CAChC,OAAOnF,IAAS,SAAS10J,EAAQ85J,EAAS,CACxC,IAAInjL,EAAQ,GACRqiC,EAAS8gJ,EAAQ,OACjB9N,EAAahzI,EAAS,EAAI8gJ,EAAQ9gJ,EAAS,CAAC,EAAI,OAChD+gJ,EAAQ/gJ,EAAS,EAAI8gJ,EAAQ,CAAC,EAAI,OAWtC,IATA9N,EAAc6N,EAAS,OAAS,GAAK,OAAO7N,GAAc,YACrDhzI,IAAUgzI,GACX,OAEA+N,GAASC,IAAeF,EAAQ,CAAC,EAAGA,EAAQ,CAAC,EAAGC,CAAK,IACvD/N,EAAahzI,EAAS,EAAI,OAAYgzI,EACtChzI,EAAS,GAEXhZ,EAAS,OAAOA,CAAM,EACf,EAAErpB,EAAQqiC,GAAQ,CACvB,IAAI9iC,EAAS4jL,EAAQnjL,CAAK,EACtBT,GACF2jL,EAAS75J,EAAQ9pB,EAAQS,EAAOq1K,CAAU,CAE9C,CACA,OAAOhsJ,CACT,CAAC,CACH,CCAG,IAAC+zB,IAAQ6lI,IAAe,SAAS55J,EAAQ9pB,EAAQ88K,EAAU,CAC5DD,IAAU/yJ,EAAQ9pB,EAAQ88K,CAAQ,CACpC,CAAC,ECGGuwK,IAAmB,IACnBC,IAAe,CACjB,WAAA9b,GACA,iBAAAE,IACA,eAAAE,IACF,WAAE2b,IACF,WAAEC,IACA,YAAAzb,IACA,oBAAAO,IACA,kBAAAE,IACA,cAAAL,IACA,sBAAAa,IACA,oBAAAE,IACA,gBAAAL,IACA,YAAA/B,GACA,kBAAAsC,IACF,eAAEqa,IACF,eAAEC,IACA,aAAAtZ,IACA,UAAAC,IACF,eAAEsZ,IACF,gBAAEC,GACF,EACIC,IAAuB,+EACvBC,IAA6B7gC,EAAO,SAAS/yS,EAAMgnB,EAAQ,CAC7D,MAAM6sT,EAAQC,IAAgB9zU,EAAM,6BAA6B,EACjE,IAAI7D,EAAU,GACd,GAAI,MAAM,QAAQ03U,CAAK,EAAG,CACxB,MAAMtuV,EAAOsuV,EAAM,IAAKvjV,GAASA,EAAK,IAAI,EAC1CuqT,GAAkBt1T,CAAI,EACtB4W,EAAUu7S,GAAwBv7S,EAAS,CAAC,GAAG5W,CAAI,CAAC,CACtD,MACE4W,EAAU03U,EAAM,KAElB,GAAI,CAAC13U,EACH,OAEF,IAAIF,EAAO86S,GAAW/2S,EAAMgnB,CAAM,EAClC,MAAMnU,EAAO,SACb,OAAI1W,EAAQ0W,CAAI,IAAM,SAChB5W,IAAS,iBACXA,EAAO,aAETE,EAAQF,CAAI,EAAIE,EAAQ0W,CAAI,EAC5B,OAAO1W,EAAQ0W,CAAI,GAEd1W,CACT,EAAG,YAAY,EACX23U,IAAkC/gC,EAAO,SAAS/yS,EAAM/D,EAAO,KAAM,SACvE,GAAI,CACF,MAAM83U,EAA2B,IAAI,OACnC,eAAeJ,IAAqB,MAAM;AAAA,EAE1C,IACN,EACI3zU,EAAOA,EAAK,KAAI,EAAG,QAAQ+zU,EAA0B,EAAE,EAAE,QAAQ,MAAO,GAAG,EAC3E/5S,GAAI,MACF,8BAA8B/9B,IAAS,KAAO,SAAWA,EAAO,EAAE,sBAAsB+D,CAAI,EAClG,EACI,IAAIlW,EACJ,MAAMkB,EAAS,GACf,MAAQlB,EAAQ6sT,GAAe,KAAK32S,CAAI,KAAO,MAI7C,GAHIlW,EAAM,QAAU6sT,GAAe,WACjCA,GAAe,YAEb7sT,GAAS,CAACmS,GAAQA,KAAQqf,EAAAxxB,EAAM,CAAC,IAAP,MAAAwxB,EAAU,MAAMrf,KAASA,KAAQy1B,EAAA5nC,EAAM,CAAC,IAAP,MAAA4nC,EAAU,MAAMz1B,IAAO,CACpF,MAAM8gU,EAAQjzU,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAIA,EAAM,CAAC,EACrCvE,EAAOuE,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,OAASA,EAAM,CAAC,EAAI,KAAK,MAAMA,EAAM,CAAC,EAAE,KAAI,CAAE,EAAI,KACnFkB,EAAO,KAAK,CAAE,KAAM+xU,EAAO,KAAAx3U,CAAI,CAAE,CACnC,CAEF,OAAIyF,EAAO,SAAW,EACb,CAAE,KAAMgV,EAAM,KAAM,IAAI,EAE1BhV,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,CAC3C,OAASiC,EAAO,CACd,OAAA+sC,GAAI,MACF,UAAU/sC,EAAM,OAAO,uCAAuCgP,CAAI,yBAAyB+D,CAAI,GACrG,EACW,CAAE,KAAM,OAAQ,KAAM,IAAI,CACnC,CACF,EAAG,iBAAiB,EAChBg0U,IAAmCjhC,EAAO,SAAS/yS,EAAM,CAC3D,OAAOA,EAAK,QAAQ22S,GAAgB,EAAE,CACxC,EAAG,kBAAkB,EACjBs9B,IAAqClhC,EAAO,SAAS1zQ,EAAKnT,EAAK,CACjE,SAAW,CAAChrC,EAAGooF,CAAO,IAAKp9C,EAAI,QAAO,EACpC,GAAIo9C,EAAQ,MAAMjqC,CAAG,EACnB,OAAOn+C,EAGX,MAAO,EACT,EAAG,oBAAoB,EACvB,SAASgzV,GAAmBr2J,EAAas2J,EAAc,CACrD,GAAI,CAACt2J,EACH,OAAOs2J,EAET,MAAMC,EAAY,QAAQv2J,EAAY,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAY,MAAM,CAAC,CAAC,GACpF,OAAOu1J,IAAagB,CAAS,GAAKD,CACpC,CACAphC,EAAOmhC,GAAoB,oBAAoB,EAC/C,SAASG,IAAUC,EAASttT,EAAQ,CAClC,MAAM15B,EAAMgnV,EAAQ,KAAI,EACxB,GAAKhnV,EAGL,OAAI05B,EAAO,gBAAkB,QACpB0rT,gBAAYplV,CAAG,EAEjBA,CACT,CACAylT,EAAOshC,IAAW,WAAW,EAC7B,IAAIE,IAA0BxhC,EAAO,CAACyhC,KAAiBxqV,IAAW,CAChE,MAAMyqV,EAAWD,EAAa,MAAM,GAAG,EACjCp2S,EAAMq2S,EAAS,OAAS,EACxBC,EAASD,EAASr2S,CAAG,EAC3B,IAAIv6C,EAAM,OACV,QAAS3C,EAAI,EAAGA,EAAIk9C,EAAKl9C,IAEvB,GADA2C,EAAMA,EAAI4wV,EAASvzV,CAAC,CAAC,EACjB,CAAC2C,EAAK,CACRm2C,GAAI,MAAM,kBAAkBw6S,CAAY,sBAAsB,EAC9D,MACF,CAEF3wV,EAAI6wV,CAAM,EAAE,GAAG1qV,CAAM,CACvB,EAAG,SAAS,EACZ,SAAS07O,GAASivG,EAAIC,EAAI,CACxB,MAAI,CAACD,GAAM,CAACC,EACH,EAEF,KAAK,KAAK,KAAK,IAAIA,EAAG,EAAID,EAAG,EAAG,CAAC,EAAI,KAAK,IAAIC,EAAG,EAAID,EAAG,EAAG,CAAC,CAAC,CACtE,CACA5hC,EAAOrtE,GAAU,UAAU,EAC3B,SAASmvG,IAAaC,EAAQ,CAC5B,IAAIC,EACAC,EAAgB,EACpBF,EAAO,QAAS/4I,GAAU,CACxBi5I,GAAiBtvG,GAAS3pC,EAAOg5I,CAAS,EAC1CA,EAAYh5I,CACd,CAAC,EACD,MAAMk5I,EAAoBD,EAAgB,EAC1C,OAAOE,GAAeJ,EAAQG,CAAiB,CACjD,CACAliC,EAAO8hC,IAAc,cAAc,EACnC,SAASM,IAAkBL,EAAQ,CACjC,OAAIA,EAAO,SAAW,EACbA,EAAO,CAAC,EAEVD,IAAaC,CAAM,CAC5B,CACA/hC,EAAOoiC,IAAmB,mBAAmB,EAC7C,IAAIC,IAA8BriC,EAAO,CAACsiC,EAAKhoK,EAAY,IAAM,CAC/D,MAAMioK,EAAS,KAAK,IAAI,GAAIjoK,CAAS,EACrC,OAAO,KAAK,MAAMgoK,EAAMC,CAAM,EAAIA,CACpC,EAAG,aAAa,EACZJ,GAAiCniC,EAAO,CAAC+hC,EAAQS,IAAuB,CAC1E,IAAIR,EACAE,EAAoBM,EACxB,UAAWx5I,KAAS+4I,EAAQ,CAC1B,GAAIC,EAAW,CACb,MAAMS,EAAiB9vG,GAAS3pC,EAAOg5I,CAAS,EAChD,GAAIS,IAAmB,EACrB,OAAOT,EAET,GAAIS,EAAiBP,EACnBA,GAAqBO,MAChB,CACL,MAAMC,EAAgBR,EAAoBO,EAC1C,GAAIC,GAAiB,EACnB,OAAOV,EAET,GAAIU,GAAiB,EACnB,MAAO,CAAE,EAAG15I,EAAM,EAAG,EAAGA,EAAM,CAAC,EAEjC,GAAI05I,EAAgB,GAAKA,EAAgB,EACvC,MAAO,CACL,EAAGL,KAAa,EAAIK,GAAiBV,EAAU,EAAIU,EAAgB15I,EAAM,EAAG,CAAC,EAC7E,EAAGq5I,KAAa,EAAIK,GAAiBV,EAAU,EAAIU,EAAgB15I,EAAM,EAAG,CAAC,CACzF,CAEM,CACF,CACAg5I,EAAYh5I,CACd,CACA,MAAM,IAAI,MAAM,wDAAwD,CAC1E,EAAG,gBAAgB,EACf25I,IAA0C3iC,EAAO,CAAC4iC,EAAuBb,EAAQc,IAAoB,CACvG57S,GAAI,KAAK,cAAc,KAAK,UAAU86S,CAAM,CAAC,EAAE,EAC3CA,EAAO,CAAC,IAAMc,IAChBd,EAASA,EAAO,QAAO,GAGzB,MAAMppO,EAASwpO,GAAeJ,EADK,EAC6B,EAC1Dr2V,EAAIk3V,EAAwB,GAAK,EACjC1F,EAAQ,KAAK,MAAM6E,EAAO,CAAC,EAAE,EAAIppO,EAAO,EAAGopO,EAAO,CAAC,EAAE,EAAIppO,EAAO,CAAC,EACjEmqO,EAAsB,CAAE,EAAG,EAAG,EAAG,CAAC,EACxC,OAAAA,EAAoB,EAAI,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EACzEmqO,EAAoB,EAAI,CAAC,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EACnEmqO,CACT,EAAG,yBAAyB,EAC5B,SAASC,IAA0BC,EAAoBrrM,EAAUsrM,EAAS,CACxE,MAAMlB,EAAS,gBAAgBkB,CAAO,EACtCh8S,GAAI,KAAK,aAAc86S,CAAM,EACzBpqM,IAAa,cAAgBA,IAAa,eAC5CoqM,EAAO,QAAO,EAEhB,MAAMmB,EAA6B,GAAKF,EAClCrqO,EAASwpO,GAAeJ,EAAQmB,CAA0B,EAC1Dx3V,EAAI,GAAKs3V,EAAqB,GAC9B9F,EAAQ,KAAK,MAAM6E,EAAO,CAAC,EAAE,EAAIppO,EAAO,EAAGopO,EAAO,CAAC,EAAE,EAAIppO,EAAO,CAAC,EACjEmqO,EAAsB,CAAE,EAAG,EAAG,EAAG,CAAC,EACxC,OAAInrM,IAAa,cACfmrM,EAAoB,EAAI,KAAK,IAAI5F,EAAQ,KAAK,EAAE,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EACnFmqO,EAAoB,EAAI,CAAC,KAAK,IAAI5F,EAAQ,KAAK,EAAE,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,GAC3Eg/B,IAAa,aACtBmrM,EAAoB,EAAI,KAAK,IAAI5F,EAAQ,KAAK,EAAE,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EAAI,EACvFmqO,EAAoB,EAAI,CAAC,KAAK,IAAI5F,EAAQ,KAAK,EAAE,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EAAI,GAC/Eg/B,IAAa,YACtBmrM,EAAoB,EAAI,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EAAI,EAC7EmqO,EAAoB,EAAI,CAAC,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EAAI,IAE9EmqO,EAAoB,EAAI,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,EACzEmqO,EAAoB,EAAI,CAAC,KAAK,IAAI5F,CAAK,EAAIxxV,GAAKq2V,EAAO,CAAC,EAAE,EAAIppO,EAAO,GAAK,GAErEmqO,CACT,CACA9iC,EAAO+iC,IAA2B,2BAA2B,EAC7D,SAASI,IAAmBhqT,EAAK,CAC/B,IAAI0iK,EAAQ,GACRunJ,EAAa,GACjB,UAAW7sQ,KAAWp9C,EAChBo9C,IAAY,SACVA,EAAQ,WAAW,QAAQ,GAAKA,EAAQ,WAAW,aAAa,EAClE6sQ,EAAaA,EAAa7sQ,EAAU,IAEpCslH,EAAQA,EAAQtlH,EAAU,KAIhC,MAAO,CAAE,MAAAslH,EAAO,WAAAunJ,CAAU,CAC5B,CACApjC,EAAOmjC,IAAoB,oBAAoB,EAC/C,IAAIE,IAAM,EACNC,IAA6BtjC,EAAO,KACtCqjC,MACO,MAAQ,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,OAAO,EAAG,EAAE,EAAI,IAAMA,KAC/D,YAAY,EACf,SAASE,IAAc1tT,EAAQ,CAC7B,IAAI59B,EAAS,GACb,MAAM8sQ,EAAa,mBACby+E,EAAmBz+E,EAAW,OACpC,QAAS,EAAI,EAAG,EAAIlvO,EAAQ,IAC1B59B,GAAU8sQ,EAAW,OAAO,KAAK,MAAM,KAAK,SAAWy+E,CAAgB,CAAC,EAE1E,OAAOvrV,CACT,CACA+nT,EAAOujC,IAAe,eAAe,EAClC,IAACr6J,IAAyB82H,EAAQ9sT,GAC5BqwV,IAAcrwV,EAAQ,MAAM,EAClC,QAAQ,EACPuwV,IAA6BzjC,EAAO,UAAW,CACjD,MAAO,CACL,EAAG,EACH,EAAG,EACH,KAAM,OACN,OAAQ,QACR,MAAO,OACP,MAAO,IACP,OAAQ,IACR,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,OAAQ,OACR,KAAM,EACV,CACA,EAAG,YAAY,EACX0jC,IAAiC1jC,EAAO,SAASh1Q,EAAM24S,EAAU,CACnE,MAAMC,EAAQD,EAAS,KAAK,QAAQj3B,GAAe,eAAgB,GAAG,EAChE,EAAGm3B,CAAW,EAAIC,GAAcH,EAAS,QAAQ,EACjDI,EAAW/4S,EAAK,OAAO,MAAM,EACnC+4S,EAAS,KAAK,IAAKJ,EAAS,CAAC,EAC7BI,EAAS,KAAK,IAAKJ,EAAS,CAAC,EAC7BI,EAAS,MAAM,cAAeJ,EAAS,MAAM,EAC7CI,EAAS,MAAM,cAAeJ,EAAS,UAAU,EACjDI,EAAS,MAAM,YAAaF,CAAW,EACvCE,EAAS,MAAM,cAAeJ,EAAS,UAAU,EACjDI,EAAS,KAAK,OAAQJ,EAAS,IAAI,EAC/BA,EAAS,QAAU,QACrBI,EAAS,KAAK,QAASJ,EAAS,KAAK,EAEvC,MAAMvyS,EAAO2yS,EAAS,OAAO,OAAO,EACpC,OAAA3yS,EAAK,KAAK,IAAKuyS,EAAS,EAAIA,EAAS,WAAa,CAAC,EACnDvyS,EAAK,KAAK,OAAQuyS,EAAS,IAAI,EAC/BvyS,EAAK,KAAKwyS,CAAK,EACRG,CACT,EAAG,gBAAgB,EACfC,IAAYtkU,GACd,CAACukH,EAAOkrK,EAAUl7Q,IAAW,CAQ3B,GAPI,CAACgwG,IAGLhwG,EAAS,OAAO,OACd,CAAE,SAAU,GAAI,WAAY,IAAK,WAAY,QAAS,SAAU,OAAO,EACvEA,CACN,EACQy4R,GAAe,eAAe,KAAKzoL,CAAK,GAC1C,OAAOA,EAET,MAAMqzC,EAAQrzC,EAAM,MAAM,GAAG,EAAE,OAAO,OAAO,EACvCggN,EAAiB,GACvB,IAAIC,EAAW,GACf,OAAA5sK,EAAM,QAAQ,CAAC+R,EAAM71L,IAAU,CAC7B,MAAM2wV,EAAaC,GAAmB,GAAG/6J,CAAI,IAAKp1J,CAAM,EAClDowT,EAAiBD,GAAmBF,EAAUjwT,CAAM,EAC1D,GAAIkwT,EAAah1C,EAAU,CACzB,KAAM,CAAE,kBAAAm1C,EAAmB,cAAAC,GAAkBC,IAAYn7J,EAAM8lH,EAAU,IAAKl7Q,CAAM,EACpFgwT,EAAe,KAAKC,EAAU,GAAGI,CAAiB,EAClDJ,EAAWK,CACb,MAAWF,EAAiBF,GAAch1C,GACxC80C,EAAe,KAAKC,CAAQ,EAC5BA,EAAW76J,GAEX66J,EAAW,CAACA,EAAU76J,CAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAElC71L,EAAQ,IACO8jL,EAAM,QAEvC2sK,EAAe,KAAKC,CAAQ,CAEhC,CAAC,EACMD,EAAe,OAAQj8S,GAASA,IAAS,EAAE,EAAE,KAAK/T,EAAO,QAAQ,CAC1E,EACA,CAACgwG,EAAOkrK,EAAUl7Q,IAAW,GAAGgwG,CAAK,GAAGkrK,CAAQ,GAAGl7Q,EAAO,QAAQ,GAAGA,EAAO,UAAU,GAAGA,EAAO,UAAU,GAAGA,EAAO,QAAQ,EAC9H,EACIuwT,IAAc9kU,GAChB,CAAC2pK,EAAM8lH,EAAUs1C,EAAkB,IAAKxwT,IAAW,CACjDA,EAAS,OAAO,OACd,CAAE,SAAU,GAAI,WAAY,IAAK,WAAY,QAAS,OAAQ,CAAC,EAC/DA,CACN,EACI,MAAM8wO,EAAa,CAAC,GAAG17E,CAAI,EACrBthJ,EAAQ,GACd,IAAI28S,EAAc,GAClB,OAAA3/E,EAAW,QAAQ,CAACylB,EAAWh3R,IAAU,CACvC,MAAM0wV,EAAW,GAAGQ,CAAW,GAAGl6D,CAAS,GAE3C,GADkB45D,GAAmBF,EAAUjwT,CAAM,GACpCk7Q,EAAU,CACzB,MAAM9wK,EAAmB7qI,EAAQ,EAC3BmxV,EAAa5/E,EAAW,SAAW1mI,EACnCumN,EAAqB,GAAGV,CAAQ,GAAGO,CAAe,GACxD18S,EAAM,KAAK48S,EAAaT,EAAWU,CAAkB,EACrDF,EAAc,EAChB,MACEA,EAAcR,CAElB,CAAC,EACM,CAAE,kBAAmBn8S,EAAO,cAAe28S,CAAW,CAC/D,EACA,CAACr7J,EAAM8lH,EAAUs1C,EAAkB,IAAKxwT,IAAW,GAAGo1J,CAAI,GAAG8lH,CAAQ,GAAGs1C,CAAe,GAAGxwT,EAAO,QAAQ,GAAGA,EAAO,UAAU,GAAGA,EAAO,UAAU,EACnJ,EACA,SAAS4wT,IAAoB53U,EAAMgnB,EAAQ,CACzC,OAAO6wT,GAAwB73U,EAAMgnB,CAAM,EAAE,MAC/C,CACA+rR,EAAO6kC,IAAqB,qBAAqB,EACjD,SAAST,GAAmBn3U,EAAMgnB,EAAQ,CACxC,OAAO6wT,GAAwB73U,EAAMgnB,CAAM,EAAE,KAC/C,CACA+rR,EAAOokC,GAAoB,oBAAoB,EAC/C,IAAIU,GAA0BplU,GAC5B,CAACzS,EAAMgnB,IAAW,CAChB,KAAM,CAAE,SAAArM,EAAW,GAAI,WAAAsjQ,EAAa,QAAS,WAAAC,EAAa,GAAG,EAAKl3P,EAClE,GAAI,CAAChnB,EACH,MAAO,CAAE,MAAO,EAAG,OAAQ,CAAC,EAE9B,KAAM,EAAG42U,CAAW,EAAIC,GAAcl8T,CAAQ,EACxCm9T,EAAe,CAAC,aAAc75D,CAAU,EACxCnjP,EAAQ96B,EAAK,MAAMy/S,GAAe,cAAc,EAChDvP,EAAO,GACP99O,EAAO4wP,GAAO,MAAM,EAC1B,GAAI,CAAC5wP,EAAK,OACR,MAAO,CAAE,MAAO,EAAG,OAAQ,EAAG,WAAY,CAAC,EAE7C,MAAMxzE,EAAIwzE,EAAK,OAAO,KAAK,EAC3B,UAAW2lR,KAAeD,EAAc,CACtC,IAAIE,EAAU,EACd,MAAM54B,EAAM,CAAE,MAAO,EAAG,OAAQ,EAAG,WAAY,CAAC,EAChD,UAAWrkR,KAAQD,EAAO,CACxB,MAAMm9S,EAAUzB,IAAU,EAC1ByB,EAAQ,KAAOl9S,GAAQo4S,IACvB,MAAM2D,EAAWL,IAAe73V,EAAGq5V,CAAO,EAAE,MAAM,YAAarB,CAAW,EAAE,MAAM,cAAe14D,CAAU,EAAE,MAAM,cAAe65D,CAAW,EACvIG,GAAQpB,EAAS,SAAWA,GAAU,CAAC,EAAE,CAAC,EAAE,QAAO,EACzD,GAAIoB,EAAK,QAAU,GAAKA,EAAK,SAAW,EACtC,MAAM,IAAI,MAAM,gCAAgC,EAElD94B,EAAI,MAAQ,KAAK,MAAM,KAAK,IAAIA,EAAI,MAAO84B,EAAK,KAAK,CAAC,EACtDF,EAAU,KAAK,MAAME,EAAK,MAAM,EAChC94B,EAAI,QAAU44B,EACd54B,EAAI,WAAa,KAAK,MAAM,KAAK,IAAIA,EAAI,WAAY44B,CAAO,CAAC,CAC/D,CACA9nC,EAAK,KAAKkP,CAAG,CACf,CACAxgU,EAAE,OAAM,EACR,MAAM2H,EAAQ,MAAM2pT,EAAK,CAAC,EAAE,MAAM,GAAK,MAAMA,EAAK,CAAC,EAAE,KAAK,GAAK,MAAMA,EAAK,CAAC,EAAE,UAAU,GAAKA,EAAK,CAAC,EAAE,OAASA,EAAK,CAAC,EAAE,QAAUA,EAAK,CAAC,EAAE,MAAQA,EAAK,CAAC,EAAE,OAASA,EAAK,CAAC,EAAE,WAAaA,EAAK,CAAC,EAAE,WAAa,EAAI,EAC9M,OAAOA,EAAK3pT,CAAK,CACnB,EACA,CAACyZ,EAAMgnB,IAAW,GAAGhnB,CAAI,GAAGgnB,EAAO,QAAQ,GAAGA,EAAO,UAAU,GAAGA,EAAO,UAAU,EACrF,KACImxT,KAAkB78T,GAAA,KAAM,CAC1B,YAAY88T,EAAgB,GAAOC,EAAM,CACvC,KAAK,MAAQ,EACb,KAAK,MAAQA,EAAOA,EAAK,OAAS,EAClC,KAAK,KAAOD,EAAgB,IAAM,KAAK,QAAU,IAAM,KAAK,IAAG,CACjE,CAIF,EAFIrlC,EAAOz3R,GAAM,iBAAiB,EAPZA,IAUlBg9T,GACAC,IAA+BxlC,EAAO,SAASp+L,EAAM,CACvD,OAAA2jO,GAAUA,IAAW,SAAS,cAAc,KAAK,EACjD3jO,EAAO,OAAOA,CAAI,EAAE,QAAQ,OAAQ,GAAG,EAAE,QAAQ,OAAQ,GAAG,EAAE,QAAQ,OAAQ,GAAG,EACjF2jO,GAAQ,UAAY3jO,EACb,SAAS2jO,GAAQ,WAAW,CACrC,EAAG,cAAc,EACjB,SAASE,GAAgBvrV,EAAO,CAC9B,MAAO,QAASA,CAClB,CACA8lT,EAAOylC,GAAiB,iBAAiB,EACzC,IAAIC,IAA8B1lC,EAAO,CAACnuR,EAAQ8zT,EAAUC,EAAgBj/T,IAAU,OACpF,GAAI,CAACA,EACH,OAEF,MAAMk/T,GAASt9T,EAAAsJ,EAAO,KAAI,IAAX,YAAAtJ,EAAe,UACzBs9T,GAGLh0T,EAAO,OAAO,MAAM,EAAE,KAAKlL,CAAK,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAK,IAAKk/T,EAAO,EAAIA,EAAO,MAAQ,CAAC,EAAE,KAAK,IAAK,CAACD,CAAc,EAAE,KAAK,QAASD,CAAQ,CAC1J,EAAG,aAAa,EACZ7B,GAAgC9jC,EAAQp4R,GAAa,CACvD,GAAI,OAAOA,GAAa,SACtB,MAAO,CAACA,EAAUA,EAAW,IAAI,EAEnC,MAAMk+T,EAAiB,SAASl+T,GAAY,GAAI,EAAE,EAClD,OAAI,OAAO,MAAMk+T,CAAc,EACtB,CAAC,OAAQ,MAAM,EACbl+T,IAAa,OAAOk+T,CAAc,EACpC,CAACA,EAAgBl+T,EAAW,IAAI,EAEhC,CAACk+T,EAAgBl+T,CAAQ,CAEpC,EAAG,eAAe,EAClB,SAASm+T,GAAcC,EAAazpV,EAAM,CACxC,OAAOq0C,IAAM,GAAIo1S,EAAazpV,CAAI,CACpC,CACAyjT,EAAO+lC,GAAe,eAAe,EAClC,IAACE,GAAgB,CAClB,gBAAiBthC,GACjB,UAAAq/B,IACA,oBAAAa,IACA,mBAAAT,GACA,wBAAAU,GACA,cAAAiB,GACA,WAAAlF,IACA,gBAAAE,IACA,mBAAAG,IACA,mBAAAC,GACA,kBAAAiB,IACA,wBAAAO,IACA,0BAAAI,IACA,UAAAzB,IACA,mBAAA6B,IACA,WAAAG,IACA,OAAAp6J,IACA,QAAAs4J,IACA,aAAAgE,IACA,YAAAE,IACA,wBAAAQ,IACA,cAAApC,GACA,gBAAAsB,GACF,EACIe,IAAiCnmC,EAAO,SAAS/yS,EAAM,CACzD,IAAIs9S,EAAMt9S,EACV,OAAAs9S,EAAMA,EAAI,QAAQ,mBAAoB,SAAS5xT,EAAG,CAChD,OAAOA,EAAE,UAAU,EAAGA,EAAE,OAAS,CAAC,CACpC,CAAC,EACD4xT,EAAMA,EAAI,QAAQ,sBAAuB,SAAS5xT,EAAG,CACnD,OAAOA,EAAE,UAAU,EAAGA,EAAE,OAAS,CAAC,CACpC,CAAC,EACD4xT,EAAMA,EAAI,QAAQ,SAAU,SAAS5xT,EAAG,CACtC,MAAMytV,EAAWztV,EAAE,UAAU,EAAGA,EAAE,OAAS,CAAC,EAE5C,MADc,WAAW,KAAKytV,CAAQ,EAE7B,MAAmBA,EAAW,KAE9B,KAAeA,EAAW,IAErC,CAAC,EACM77B,CACT,EAAG,gBAAgB,EACf87B,GAAiCrmC,EAAO,SAAS/yS,EAAM,CACzD,OAAOA,EAAK,QAAQ,OAAQ,IAAI,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CAC1E,EAAG,gBAAgB,EACfq5U,IAA4BtmC,EAAO,CAAClkT,EAAMjI,EAAI,CAChD,QAAAyhE,EAAU,EACV,OAAAuoE,EACA,OAAAyxB,CACF,EAAGx5J,IACGA,GAGG,GAAG+nI,EAAS,GAAGA,CAAM,IAAM,EAAE,GAAG/hI,CAAI,IAAIjI,CAAE,IAAIyhE,CAAO,GAAGg6F,EAAS,IAAIA,CAAM,GAAK,EAAE,GACxF,WAAW,EACd,SAASi3L,GAAoBh2F,EAAW,CACtC,OAAOA,GAAa,IACtB,CACAyvD,EAAOumC,GAAqB,qBAAqB,EACjD,SAASL,IAAwBl9I,EAAOw9I,EAAO,CAC7C,MAAMC,EAAW,KAAK,MAAMz9I,EAAM,CAAC,EAC7B09I,EAAW,KAAK,MAAM19I,EAAM,CAAC,EAC7B29I,EAAaH,EAAM,QACvB,cACCzvV,GAAU,KAAK,MAAM,WAAWA,CAAK,CAAC,EAAE,SAAQ,CACrD,EACE,OAAO4vV,EAAW,SAASF,EAAS,SAAQ,CAAE,GAAKE,EAAW,SAASD,EAAS,UAAU,CAC5F,CACA1mC,EAAOkmC,IAAyB,yBAAyB,ECjjBzD,MAAMU,IAAwB,OAAO,OAAO,CAC3C,KAAM,EACN,IAAK,EACL,MAAO,GACP,OAAQ,EACT,CAAC,EAIKC,GAA6B,OAAO,OAAO,CAChD,OAAQ,EACR,MAAO,GACP,MAAO,EACR,CAAC,EAIKC,IAAmB,OAAO,OAAO,CACtC,GAAGF,IACH,GAAGC,EACJ,CAAC,EAIKE,IAA2B,OAAO,OAAO,CAC9C,GAAGD,IACH,KAAM,GACN,OAAQ,EACT,CAAC,EC1BKE,IAAgC,OAAO,OAAO,CACnD,MAAO,KACP,OAAQ,IACT,CAAC,EACKC,IAA4B,OAAO,OAAO,CAC/C,GAAGD,IACH,GAAGH,EACJ,CAAC,ECFKK,IAAe,CAAC//V,EAAOwsI,EAAUwzN,EAAiB3pP,EAAW,KAAO,CACzE,MAAM4pP,EAAiBjgW,EAAM,MAAM,GAAG,EACtC,GAAIA,EAAM,MAAM,EAAG,CAAC,IAAM,IAAK,CAC9B,GAAIigW,EAAe,OAAS,GAAKA,EAAe,OAAS,EAAG,OAAO,KACnE5pP,EAAW4pP,EAAe,QAAQ,MAAM,CAAC,CAC1C,CACA,GAAIA,EAAe,OAAS,GAAK,CAACA,EAAe,OAAQ,OAAO,KAChE,GAAIA,EAAe,OAAS,EAAG,CAC9B,MAAMC,EAASD,EAAe,IAAG,EAC3BvpN,EAASupN,EAAe,IAAG,EAC3BnvV,EAAS,CACd,SAAUmvV,EAAe,OAAS,EAAIA,EAAe,CAAC,EAAI5pP,EAC1D,OAAAqgC,EACA,KAAMwpN,CACT,EACE,OAAoBC,GAAiBrvV,CAAM,EAAWA,EAAP,IAChD,CACA,MAAMkV,EAAOi6U,EAAe,CAAC,EACvBG,EAAgBp6U,EAAK,MAAM,GAAG,EACpC,GAAIo6U,EAAc,OAAS,EAAG,CAC7B,MAAMtvV,EAAS,CACd,SAAAulG,EACA,OAAQ+pP,EAAc,MAAK,EAC3B,KAAMA,EAAc,KAAK,GAAG,CAC/B,EACE,OAAoBD,GAAiBrvV,CAAM,EAAWA,EAAP,IAChD,CACA,GAAIkvV,GAAmB3pP,IAAa,GAAI,CACvC,MAAMvlG,EAAS,CACd,SAAAulG,EACA,OAAQ,GACR,KAAArwF,CACH,EACE,OAAoBm6U,GAAiBrvV,EAAQkvV,CAAe,EAAWlvV,EAAP,IACjE,CACA,OAAO,IACR,EAMMqvV,GAAmB,CAAC11F,EAAMu1F,IAC1Bv1F,EACE,CAAC,GAAGu1F,GAAmBv1F,EAAK,SAAW,IAAQA,EAAK,SAAaA,EAAK,MAD3D,GClDnB,SAAS41F,IAAyBruP,EAAMC,EAAM,CAC7C,MAAMnhG,EAAS,GACX,CAACkhG,EAAK,OAAU,CAACC,EAAK,QAAOnhG,EAAO,MAAQ,IAC5C,CAACkhG,EAAK,OAAU,CAACC,EAAK,QAAOnhG,EAAO,MAAQ,IAChD,MAAMgjU,IAAW9hO,EAAK,QAAU,IAAMC,EAAK,QAAU,IAAM,EAC3D,OAAI6hO,IAAQhjU,EAAO,OAASgjU,GACrBhjU,CACR,CCFA,SAASwvV,IAAc51T,EAAQS,EAAO,CACrC,MAAMr6B,EAASuvV,IAAyB31T,EAAQS,CAAK,EACrD,UAAWlkC,KAAO24V,IAA8B34V,KAAOy4V,GAClDz4V,KAAOyjC,GAAU,EAAEzjC,KAAO6J,KAASA,EAAO7J,CAAG,EAAIy4V,GAA2Bz4V,CAAG,GACzEA,KAAOkkC,EAAOr6B,EAAO7J,CAAG,EAAIkkC,EAAMlkC,CAAG,EACvCA,KAAOyjC,IAAQ55B,EAAO7J,CAAG,EAAIyjC,EAAOzjC,CAAG,GAChD,OAAO6J,CACR,CCVA,SAASyvV,IAAanrV,EAAM+6D,EAAO,CAClC,MAAMk6L,EAAQj1P,EAAK,MACborV,EAAUprV,EAAK,SAAW,OAAO,OAAO,IAAI,EAC5CqrV,EAAW,OAAO,OAAO,IAAI,EACnC,SAAS/mV,EAAQsM,EAAM,CACtB,GAAIqkP,EAAMrkP,CAAI,EAAG,OAAOy6U,EAASz6U,CAAI,EAAI,GACzC,GAAI,EAAEA,KAAQy6U,GAAW,CACxBA,EAASz6U,CAAI,EAAI,KACjB,MAAM0kB,EAAS81T,EAAQx6U,CAAI,GAAKw6U,EAAQx6U,CAAI,EAAE,OACxChmB,EAAQ0qC,GAAUhxB,EAAQgxB,CAAM,EAClC1qC,IAAOygW,EAASz6U,CAAI,EAAI,CAAC0kB,CAAM,EAAE,OAAO1qC,CAAK,EAClD,CACA,OAAOygW,EAASz6U,CAAI,CACrB,CACA,OAACmqD,GAAS,OAAO,KAAKk6L,CAAK,EAAE,OAAO,OAAO,KAAKm2F,CAAO,CAAC,GAAG,QAAQ9mV,CAAO,EACnE+mV,CACR,CCfA,SAASC,IAAoBtrV,EAAM4Q,EAAMuqI,EAAM,CAC9C,MAAM85G,EAAQj1P,EAAK,MACborV,EAAUprV,EAAK,SAAW,OAAO,OAAO,IAAI,EAClD,IAAIurV,EAAe,GACnB,SAASv+L,EAAM89L,EAAQ,CACtBS,EAAeL,IAAcj2F,EAAM61F,CAAM,GAAKM,EAAQN,CAAM,EAAGS,CAAY,CAC5E,CACA,OAAAv+L,EAAMp8I,CAAI,EACVuqI,EAAK,QAAQ6R,CAAK,EACXk+L,IAAclrV,EAAMurV,CAAY,CACxC,CAIA,SAASC,IAAYxrV,EAAM4Q,EAAM,CAChC,GAAI5Q,EAAK,MAAM4Q,CAAI,EAAG,OAAO06U,IAAoBtrV,EAAM4Q,EAAM,EAAE,EAC/D,MAAMuqI,EAAOgwM,IAAanrV,EAAM,CAAC4Q,CAAI,CAAC,EAAEA,CAAI,EAC5C,OAAOuqI,EAAOmwM,IAAoBtrV,EAAM4Q,EAAMuqI,CAAI,EAAI,IACvD,CCrBA,MAAMswM,IAAa,4BACbC,IAAY,4BAClB,SAASx8D,IAAcxuP,EAAMkoF,EAAOm1D,EAAW,CAC9C,GAAIn1D,IAAU,EAAG,OAAOloF,EAExB,GADAq9I,EAAYA,GAAa,IACrB,OAAOr9I,GAAS,SAAU,OAAO,KAAK,KAAKA,EAAOkoF,EAAQm1D,CAAS,EAAIA,EAC3E,GAAI,OAAOr9I,GAAS,SAAU,OAAOA,EACrC,MAAMirT,EAAWjrT,EAAK,MAAM+qT,GAAU,EACtC,GAAIE,IAAa,MAAQ,CAACA,EAAS,OAAQ,OAAOjrT,EAClD,MAAMkrT,EAAW,GACjB,IAAIt+T,EAAOq+T,EAAS,MAAK,EACrBrmN,EAAWomN,IAAU,KAAKp+T,CAAI,EAClC,OAAa,CACZ,GAAIg4G,EAAU,CACb,MAAMygN,EAAM,WAAWz4T,CAAI,EACvB,MAAMy4T,CAAG,EAAG6F,EAAS,KAAKt+T,CAAI,EAC7Bs+T,EAAS,KAAK,KAAK,KAAK7F,EAAMn9N,EAAQm1D,CAAS,EAAIA,CAAS,CAClE,MAAO6tK,EAAS,KAAKt+T,CAAI,EAEzB,GADAA,EAAOq+T,EAAS,MAAK,EACjBr+T,IAAS,OAAQ,OAAOs+T,EAAS,KAAK,EAAE,EAC5CtmN,EAAW,CAACA,CACb,CACD,CCzBA,SAASumN,IAAa7sP,EAAS2tE,EAAM,OAAQ,CAC5C,IAAIw+G,EAAO,GACX,MAAMl0R,EAAQ+nG,EAAQ,QAAQ,IAAM2tE,CAAG,EACvC,KAAO11K,GAAS,GAAG,CAClB,MAAMo7E,EAAQ2sB,EAAQ,QAAQ,IAAK/nG,CAAK,EAClC0F,EAAMqiG,EAAQ,QAAQ,KAAO2tE,CAAG,EACtC,GAAIt6F,IAAU,IAAM11E,IAAQ,GAAI,MAChC,MAAMmvV,EAAS9sP,EAAQ,QAAQ,IAAKriG,CAAG,EACvC,GAAImvV,IAAW,GAAI,MACnB3gE,GAAQnsL,EAAQ,MAAM3sB,EAAQ,EAAG11E,CAAG,EAAE,KAAI,EAC1CqiG,EAAUA,EAAQ,MAAM,EAAG/nG,CAAK,EAAE,KAAI,EAAK+nG,EAAQ,MAAM8sP,EAAS,CAAC,CACpE,CACA,MAAO,CACN,KAAA3gE,EACA,QAAAnsL,CACF,CACA,CAIA,SAAS+sP,IAAoB5gE,EAAMnsL,EAAS,CAC3C,OAAOmsL,EAAO,SAAWA,EAAO,UAAYnsL,EAAUA,CACvD,CAIA,SAASgtP,IAAelpR,EAAMuP,EAAO11E,EAAK,CACzC,MAAMmjD,EAAQ+rS,IAAa/oR,CAAI,EAC/B,OAAOipR,IAAoBjsS,EAAM,KAAMuyB,EAAQvyB,EAAM,QAAUnjD,CAAG,CACnE,CCrBA,MAAMsvV,IAAkBrhW,GAAUA,IAAU,SAAWA,IAAU,aAAeA,IAAU,OAW1F,SAASshW,IAAU72F,EAAM82F,EAAgB,CACxC,MAAMC,EAAW,CAChB,GAAG7B,IACH,GAAGl1F,CACL,EACOg3F,EAAqB,CAC1B,GAAG3B,IACH,GAAGyB,CACL,EACOx2I,EAAM,CACX,KAAMy2I,EAAS,KACf,IAAKA,EAAS,IACd,MAAOA,EAAS,MAChB,OAAQA,EAAS,MACnB,EACC,IAAItpR,EAAOspR,EAAS,KACpB,CAACA,EAAUC,CAAkB,EAAE,QAASx3V,GAAU,CACjD,MAAMy3V,EAAkB,GAClBC,EAAQ13V,EAAM,MACd23V,EAAQ33V,EAAM,MACpB,IAAI43V,EAAW53V,EAAM,OACjB03V,EAAWC,EAAOC,GAAY,GAEjCH,EAAgB,KAAK,cAAgB32I,EAAI,MAAQA,EAAI,MAAM,SAAQ,EAAK,KAAO,EAAIA,EAAI,KAAK,SAAQ,EAAK,GAAG,EAC5G22I,EAAgB,KAAK,aAAa,EAClC32I,EAAI,IAAMA,EAAI,KAAO,GAEb62I,IACRF,EAAgB,KAAK,cAAgB,EAAI32I,EAAI,MAAM,SAAQ,EAAK,KAAOA,EAAI,OAASA,EAAI,KAAK,SAAQ,EAAK,GAAG,EAC7G22I,EAAgB,KAAK,aAAa,EAClC32I,EAAI,IAAMA,EAAI,KAAO,GAEtB,IAAI+2I,EAGJ,OAFID,EAAW,IAAGA,GAAY,KAAK,MAAMA,EAAW,CAAC,EAAI,GACzDA,EAAWA,EAAW,EACdA,EAAQ,CACf,IAAK,GACJC,EAAY/2I,EAAI,OAAS,EAAIA,EAAI,IACjC22I,EAAgB,QAAQ,aAAeI,EAAU,WAAa,IAAMA,EAAU,SAAQ,EAAK,GAAG,EAC9F,MACD,IAAK,GACJJ,EAAgB,QAAQ,eAAiB32I,EAAI,MAAQ,EAAIA,EAAI,MAAM,SAAQ,EAAK,KAAOA,EAAI,OAAS,EAAIA,EAAI,KAAK,SAAQ,EAAK,GAAG,EACjI,MACD,IAAK,GACJ+2I,EAAY/2I,EAAI,MAAQ,EAAIA,EAAI,KAChC22I,EAAgB,QAAQ,cAAgBI,EAAU,WAAa,IAAMA,EAAU,SAAQ,EAAK,GAAG,EAC/F,KACJ,CACMD,EAAW,IAAM,IAChB92I,EAAI,OAASA,EAAI,MACpB+2I,EAAY/2I,EAAI,KAChBA,EAAI,KAAOA,EAAI,IACfA,EAAI,IAAM+2I,GAEP/2I,EAAI,QAAUA,EAAI,SACrB+2I,EAAY/2I,EAAI,MAChBA,EAAI,MAAQA,EAAI,OAChBA,EAAI,OAAS+2I,IAGXJ,EAAgB,SAAQxpR,EAAOkpR,IAAelpR,EAAM,iBAAoBwpR,EAAgB,KAAK,GAAG,EAAI,KAAO,MAAM,EACtH,CAAC,EACD,MAAMK,EAAsBN,EAAmB,MACzCO,EAAuBP,EAAmB,OAC1CQ,EAAWl3I,EAAI,MACfm3I,EAAYn3I,EAAI,OACtB,IAAIjgG,EACA7mE,EACA89S,IAAwB,MAC3B99S,EAAS+9S,IAAyB,KAAO,MAAQA,IAAyB,OAASE,EAAYF,EAC/Fl3O,EAAQw5K,IAAcrgP,EAAQg+S,EAAWC,CAAS,IAElDp3O,EAAQi3O,IAAwB,OAASE,EAAWF,EACpD99S,EAAS+9S,IAAyB,KAAO19D,IAAcx5K,EAAOo3O,EAAYD,CAAQ,EAAID,IAAyB,OAASE,EAAYF,GAErI,MAAM1vS,EAAa,GACb6vS,EAAU,CAACxpU,EAAM34B,IAAU,CAC3BqhW,IAAerhW,CAAK,IAAGsyD,EAAW35B,CAAI,EAAI34B,EAAM,SAAQ,EAC9D,EACAmiW,EAAQ,QAASr3O,CAAK,EACtBq3O,EAAQ,SAAUl+S,CAAM,EACxB,MAAMm+S,EAAU,CACfr3I,EAAI,KACJA,EAAI,IACJk3I,EACAC,CACF,EACC,OAAA5vS,EAAW,QAAU8vS,EAAQ,KAAK,GAAG,EAC9B,CACN,WAAA9vS,EACA,QAAA8vS,EACA,KAAAlqR,CACF,CACA,CChGA,MAAM0iM,IAAQ,gBAMRynF,IAAe,YAAc,KAAK,IAAG,EAAG,SAAS,EAAE,GAAK,KAAK,OAAM,EAAK,SAAW,GAAG,SAAS,EAAE,EAIvG,IAAIl0R,IAAU,EAId,SAASm0R,IAAWpqR,EAAMw+D,EAAS2rN,IAAc,CAChD,MAAME,EAAM,GACZ,IAAI3yV,EACJ,KAAOA,EAAQgrQ,IAAM,KAAK1iM,CAAI,GAAGqqR,EAAI,KAAK3yV,EAAM,CAAC,CAAC,EAClD,GAAI,CAAC2yV,EAAI,OAAQ,OAAOrqR,EACxB,MAAMiwF,EAAS,UAAY,KAAK,OAAM,EAAK,SAAW,KAAK,OAAO,SAAS,EAAE,EAC7E,OAAAo6L,EAAI,QAAS5zV,GAAO,CACnB,MAAM6zV,EAAQ,OAAO9rN,GAAW,WAAaA,EAAO/nI,CAAE,EAAI+nI,GAAUvoE,OAAW,SAAQ,EACjFs0R,EAAY9zV,EAAG,QAAQ,sBAAuB,MAAM,EAC1DupE,EAAOA,EAAK,QAAQ,IAAI,OAAO,WAAcuqR,EAAY,mBAAqB,GAAG,EAAG,KAAOD,EAAQr6L,EAAS,IAAI,CACjH,CAAC,EACDjwF,EAAOA,EAAK,QAAQ,IAAI,OAAOiwF,EAAQ,GAAG,EAAG,EAAE,EACxCjwF,CACR,CCxCA,SAASwqR,IAAWxqR,EAAM5lB,EAAY,CACrC,IAAIqwS,EAAoBzqR,EAAK,QAAQ,QAAQ,IAAM,GAAK,GAAK,8CAC7D,UAAWnzB,KAAQuN,EAAYqwS,GAAqB,IAAM59S,EAAO,KAAQuN,EAAWvN,CAAI,EAAI,IAC5F,MAAO,0CAA8C49S,EAAoB,IAAMzqR,EAAO,QACvF,CCMA,SAAS0qR,IAAe,CACtB,MAAO,CACL,MAAO,GACP,OAAQ,GACR,WAAY,KACZ,IAAK,GACL,MAAO,KACP,SAAU,GACV,SAAU,KACV,OAAQ,GACR,UAAW,KACX,WAAY,IAChB,CACA,CACA,IAAIC,GAAYD,GAAY,EAC5B,SAASE,IAAeC,EAAa,CACnCF,GAAYE,CACd,CAGA,IAAIC,GAAW,CAAE,KAAM,IAAM,IAAI,EACjC,SAASC,GAAKroF,EAAOhlH,EAAM,GAAI,CAC7B,IAAIhqJ,EAAS,OAAOgvQ,GAAU,SAAWA,EAAQA,EAAM,OACvD,MAAMjxQ,EAAM,CACV,QAAS,CAACqc,EAAMksB,IAAQ,CACtB,IAAIgxT,EAAY,OAAOhxT,GAAQ,SAAWA,EAAMA,EAAI,OACpD,OAAAgxT,EAAYA,EAAU,QAAQp+K,GAAM,MAAO,IAAI,EAC/Cl5K,EAASA,EAAO,QAAQoa,EAAMk9U,CAAS,EAChCv5V,CACT,EACA,SAAU,IACD,IAAI,OAAOiC,EAAQgqJ,CAAG,CAEnC,EACE,OAAOjsJ,CACT,CACA,IAAIm7K,GAAQ,CACV,iBAAkB,yBAClB,kBAAmB,cACnB,uBAAwB,gBACxB,eAAgB,OAChB,WAAY,KACZ,kBAAmB,KACnB,gBAAiB,KACjB,aAAc,OACd,kBAAmB,MACnB,cAAe,MACf,oBAAqB,OACrB,UAAW,WACX,gBAAiB,oBACjB,gBAAiB,WACjB,wBAAyB,iCACzB,yBAA0B,mBAC1B,gBAAiB,OACjB,mBAAoB,0BACpB,WAAY,cACZ,gBAAiB,eACjB,QAAS,SACT,aAAc,WACd,eAAgB,OAChB,gBAAiB,aACjB,kBAAmB,YACnB,gBAAiB,YACjB,iBAAkB,aAClB,eAAgB,YAChB,UAAW,QACX,QAAS,UACT,kBAAmB,iCACnB,gBAAiB,mCACjB,kBAAmB,KACnB,gBAAiB,KACjB,kBAAmB,gCACnB,oBAAqB,gBACrB,WAAY,UACZ,cAAe,WACf,mBAAoB,oDACpB,sBAAuB,qDACvB,aAAc,6CACd,MAAO,eACP,cAAe,OACf,SAAU,MACV,UAAW,MACX,UAAW,QACX,eAAgB,WAChB,UAAW,SACX,cAAe,OACf,cAAe,MACf,cAAgBq+K,GAAS,IAAI,OAAO,WAAWA,CAAI,8BAA8B,EACjF,gBAAkB/jG,GAAW,IAAI,OAAO,QAAQ,KAAK,IAAI,EAAGA,EAAS,CAAC,CAAC,oDAAoD,EAC3H,QAAUA,GAAW,IAAI,OAAO,QAAQ,KAAK,IAAI,EAAGA,EAAS,CAAC,CAAC,oDAAoD,EACnH,iBAAmBA,GAAW,IAAI,OAAO,QAAQ,KAAK,IAAI,EAAGA,EAAS,CAAC,CAAC,iBAAiB,EACzF,kBAAoBA,GAAW,IAAI,OAAO,QAAQ,KAAK,IAAI,EAAGA,EAAS,CAAC,CAAC,IAAI,EAC7E,eAAiBA,GAAW,IAAI,OAAO,QAAQ,KAAK,IAAI,EAAGA,EAAS,CAAC,CAAC,qBAAsB,GAAG,CACjG,EACI7iD,IAAU,uBACV6mJ,IAAY,wDACZC,IAAS,8GACT5/P,GAAK,qEACLimL,IAAU,uCACV45E,GAAS,wBACTC,IAAe,iKACfC,IAAWP,GAAKM,GAAY,EAAE,QAAQ,QAASD,EAAM,EAAE,QAAQ,aAAc,mBAAmB,EAAE,QAAQ,UAAW,uBAAuB,EAAE,QAAQ,cAAe,SAAS,EAAE,QAAQ,WAAY,cAAc,EAAE,QAAQ,QAAS,mBAAmB,EAAE,QAAQ,WAAY,EAAE,EAAE,SAAQ,EAC1RG,IAAcR,GAAKM,GAAY,EAAE,QAAQ,QAASD,EAAM,EAAE,QAAQ,aAAc,mBAAmB,EAAE,QAAQ,UAAW,uBAAuB,EAAE,QAAQ,cAAe,SAAS,EAAE,QAAQ,WAAY,cAAc,EAAE,QAAQ,QAAS,mBAAmB,EAAE,QAAQ,SAAU,mCAAmC,EAAE,SAAQ,EAC5TI,GAAa,uFACbC,IAAY,UACZC,GAAc,8BACdxiJ,IAAM6hJ,GAAK,6GAA6G,EAAE,QAAQ,QAASW,EAAW,EAAE,QAAQ,QAAS,8DAA8D,EAAE,SAAQ,EACjP1mR,IAAO+lR,GAAK,sCAAsC,EAAE,QAAQ,QAASK,EAAM,EAAE,SAAQ,EACrFjY,GAAO,gWACPwY,GAAW,gCACXppO,IAAOwoO,GACT,4dACA,GACF,EAAE,QAAQ,UAAWY,EAAQ,EAAE,QAAQ,MAAOxY,EAAI,EAAE,QAAQ,YAAa,0EAA0E,EAAE,SAAQ,EACzJ1hE,IAAYs5E,GAAKS,EAAU,EAAE,QAAQ,KAAMjgQ,EAAE,EAAE,QAAQ,UAAW,uBAAuB,EAAE,QAAQ,YAAa,EAAE,EAAE,QAAQ,SAAU,EAAE,EAAE,QAAQ,aAAc,SAAS,EAAE,QAAQ,SAAU,gDAAgD,EAAE,QAAQ,OAAQ,wBAAwB,EAAE,QAAQ,OAAQ,6DAA6D,EAAE,QAAQ,MAAO4nP,EAAI,EAAE,SAAQ,EACrY75D,IAAayxE,GAAK,yCAAyC,EAAE,QAAQ,YAAat5E,GAAS,EAAE,SAAQ,EACrGm6E,GAAc,CAClB,WAAEtyE,IACA,KAAM4xE,IACN,IAAAhiJ,IACA,OAAAiiJ,IACF,QAAE35E,IACF,GAAEjmL,GACF,KAAEg3B,IACA,SAAA+oO,IACF,KAAEtmR,IACA,QAAAq/H,IACF,UAAEotE,IACA,MAAOq5E,GACP,KAAMW,GACR,EACII,IAAWd,GACb,6JACF,EAAE,QAAQ,KAAMx/P,EAAE,EAAE,QAAQ,UAAW,uBAAuB,EAAE,QAAQ,aAAc,SAAS,EAAE,QAAQ,OAAQ,wBAAwB,EAAE,QAAQ,SAAU,gDAAgD,EAAE,QAAQ,OAAQ,wBAAwB,EAAE,QAAQ,OAAQ,6DAA6D,EAAE,QAAQ,MAAO4nP,EAAI,EAAE,SAAQ,EACjW2Y,IAAW,CACb,GAAGF,GACH,SAAUL,IACV,MAAOM,IACP,UAAWd,GAAKS,EAAU,EAAE,QAAQ,KAAMjgQ,EAAE,EAAE,QAAQ,UAAW,uBAAuB,EAAE,QAAQ,YAAa,EAAE,EAAE,QAAQ,QAASsgQ,GAAQ,EAAE,QAAQ,aAAc,SAAS,EAAE,QAAQ,SAAU,gDAAgD,EAAE,QAAQ,OAAQ,wBAAwB,EAAE,QAAQ,OAAQ,6DAA6D,EAAE,QAAQ,MAAO1Y,EAAI,EAAE,SAAQ,CAC3Y,EACI4Y,IAAgB,CAClB,GAAGH,GACH,KAAMb,GACJ,wIACJ,EAAI,QAAQ,UAAWY,EAAQ,EAAE,QAAQ,OAAQ,mKAAmK,EAAE,SAAQ,EAC5N,IAAK,oEACL,QAAS,yBACT,OAAQb,GAER,SAAU,mCACV,UAAWC,GAAKS,EAAU,EAAE,QAAQ,KAAMjgQ,EAAE,EAAE,QAAQ,UAAW;AAAA,EAAiB,EAAE,QAAQ,WAAY+/P,GAAQ,EAAE,QAAQ,SAAU,EAAE,EAAE,QAAQ,aAAc,SAAS,EAAE,QAAQ,UAAW,EAAE,EAAE,QAAQ,QAAS,EAAE,EAAE,QAAQ,QAAS,EAAE,EAAE,QAAQ,OAAQ,EAAE,EAAE,SAAQ,CACxQ,EACIlhK,IAAS,8CACT4wF,IAAa,sCACb7uL,IAAK,wBACL6/P,IAAa,8EACbC,GAAe,gBACfC,GAAsB,kBACtBC,IAAyB,mBACzBC,IAAcrB,GAAK,wBAAyB,GAAG,EAAE,QAAQ,cAAemB,EAAmB,EAAE,SAAQ,EACrGG,IAA0B,qBAC1BC,IAAiC,uBACjCC,IAAoC,yBACpCC,IAAY,gFACZC,IAAqB,gEACrBC,IAAiB3B,GAAK0B,IAAoB,GAAG,EAAE,QAAQ,SAAUR,EAAY,EAAE,SAAQ,EACvFU,IAAoB5B,GAAK0B,IAAoB,GAAG,EAAE,QAAQ,SAAUJ,GAAuB,EAAE,SAAQ,EACrGO,IAAwB,wQACxBC,IAAoB9B,GAAK6B,IAAuB,IAAI,EAAE,QAAQ,iBAAkBT,GAAsB,EAAE,QAAQ,cAAeD,EAAmB,EAAE,QAAQ,SAAUD,EAAY,EAAE,SAAQ,EAC5La,IAAuB/B,GAAK6B,IAAuB,IAAI,EAAE,QAAQ,iBAAkBL,GAAiC,EAAE,QAAQ,cAAeD,GAA8B,EAAE,QAAQ,SAAUD,GAAuB,EAAE,SAAQ,EAChOU,IAAoBhC,GACtB,mNACA,IACF,EAAE,QAAQ,iBAAkBoB,GAAsB,EAAE,QAAQ,cAAeD,EAAmB,EAAE,QAAQ,SAAUD,EAAY,EAAE,SAAQ,EACpIe,IAAiBjC,GAAK,YAAa,IAAI,EAAE,QAAQ,SAAUkB,EAAY,EAAE,SAAQ,EACjF7nF,IAAW2mF,GAAK,qCAAqC,EAAE,QAAQ,SAAU,8BAA8B,EAAE,QAAQ,QAAS,8IAA8I,EAAE,SAAQ,EAClRkC,IAAiBlC,GAAKY,EAAQ,EAAE,QAAQ,YAAa,KAAK,EAAE,SAAQ,EACpE9hL,IAAMkhL,GACR,0JACF,EAAE,QAAQ,UAAWkC,GAAc,EAAE,QAAQ,YAAa,6EAA6E,EAAE,SAAQ,EAC7IC,GAAe,sDACf7oS,IAAO0mS,GAAK,mEAAmE,EAAE,QAAQ,QAASmC,EAAY,EAAE,QAAQ,OAAQ,yCAAyC,EAAE,QAAQ,QAAS,6DAA6D,EAAE,SAAQ,EACnQC,IAAUpC,GAAK,yBAAyB,EAAE,QAAQ,QAASmC,EAAY,EAAE,QAAQ,MAAOxB,EAAW,EAAE,SAAQ,EAC7G0B,IAASrC,GAAK,uBAAuB,EAAE,QAAQ,MAAOW,EAAW,EAAE,SAAQ,EAC3E2B,IAAgBtC,GAAK,wBAAyB,GAAG,EAAE,QAAQ,UAAWoC,GAAO,EAAE,QAAQ,SAAUC,GAAM,EAAE,SAAQ,EACjHE,GAAe,CACjB,WAAYxC,GAEZ,eAAAkC,IACF,SAAE5oF,IACA,UAAAooF,IACF,GAAErgQ,IACA,KAAM6uL,IACN,IAAK8vE,GACL,eAAA4B,IACA,kBAAAG,IACA,kBAAAE,IACF,OAAE3iK,IACF,KAAE/lI,IACA,OAAA+oS,IACA,YAAAhB,IACA,QAAAe,IACA,cAAAE,IACA,IAAAxjL,IACA,KAAMmiL,IACN,IAAKlB,EACP,EACIyC,IAAiB,CACnB,GAAGD,GACH,KAAMvC,GAAK,yBAAyB,EAAE,QAAQ,QAASmC,EAAY,EAAE,SAAQ,EAC7E,QAASnC,GAAK,+BAA+B,EAAE,QAAQ,QAASmC,EAAY,EAAE,SAAQ,CACxF,EACIM,GAAY,CACd,GAAGF,GACH,kBAAmBR,IACnB,eAAgBH,IAChB,IAAK5B,GAAK,mEAAoE,GAAG,EAAE,QAAQ,QAAS,2EAA2E,EAAE,SAAQ,EACzL,WAAY,6EACZ,IAAK,gEACL,KAAM,4NACR,EACI0C,IAAe,CACjB,GAAGD,GACH,GAAIzC,GAAK5+P,GAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,SAAQ,EAC1C,KAAM4+P,GAAKyC,GAAU,IAAI,EAAE,QAAQ,OAAQ,eAAe,EAAE,QAAQ,UAAW,GAAG,EAAE,SAAQ,CAC9F,EACIhvJ,GAAQ,CACV,OAAQotJ,GACR,IAAKE,IACL,SAAUC,GACZ,EACIxsJ,GAAS,CACX,OAAQ+tJ,GACR,IAAKE,GACL,OAAQC,IACR,SAAUF,GACZ,EAGIG,IAAqB,CACvB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,OACP,EACIC,IAAwB/zI,GAAO8zI,IAAmB9zI,CAAE,EACxD,SAASg0I,GAAQC,EAAOtnM,EAAQ,CAC9B,GAAIA,GACF,GAAIqmB,GAAM,WAAW,KAAKihL,CAAK,EAC7B,OAAOA,EAAM,QAAQjhL,GAAM,cAAe+gL,GAAoB,UAG5D/gL,GAAM,mBAAmB,KAAKihL,CAAK,EACrC,OAAOA,EAAM,QAAQjhL,GAAM,sBAAuB+gL,GAAoB,EAG1E,OAAOE,CACT,CACA,SAASC,IAAS5lV,EAAM,CACtB,GAAI,CACFA,EAAO,UAAUA,CAAI,EAAE,QAAQ0kK,GAAM,cAAe,GAAG,CACzD,MAAQ,CACN,OAAO,IACT,CACA,OAAO1kK,CACT,CACA,SAAS6lV,IAAWC,EAAUjjV,EAAO,OACnC,MAAM+wQ,EAAMkyE,EAAS,QAAQphL,GAAM,SAAU,CAACl1K,EAAOsqD,EAAQ/U,IAAQ,CACnE,IAAImgP,EAAU,GACV3pQ,EAAOu+B,EACX,KAAO,EAAEv+B,GAAQ,GAAKwpB,EAAIxpB,CAAI,IAAM,MAAM2pQ,EAAU,CAACA,EACrD,OAAIA,EACK,IAEA,IAEX,CAAC,EAAG6gE,EAAQnyE,EAAI,MAAMlvG,GAAM,SAAS,EACrC,IAAI,EAAI,EAOR,GANKqhL,EAAM,CAAC,EAAE,KAAI,GAChBA,EAAM,MAAK,EAETA,EAAM,OAAS,GAAK,GAAC/kU,EAAA+kU,EAAM,GAAG,EAAE,IAAX,MAAA/kU,EAAc,SACrC+kU,EAAM,IAAG,EAEPljV,EACF,GAAIkjV,EAAM,OAASljV,EACjBkjV,EAAM,OAAOljV,CAAK,MAElB,MAAOkjV,EAAM,OAASljV,GAAOkjV,EAAM,KAAK,EAAE,EAG9C,KAAO,EAAIA,EAAM,OAAQ,IACvBA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,KAAI,EAAG,QAAQrhL,GAAM,UAAW,GAAG,EAEzD,OAAOqhL,CACT,CACA,SAASC,GAAMjhT,EAAK7gD,EAAGy8L,EAAQ,CAC7B,MAAM9qK,EAAIkvB,EAAI,OACd,GAAIlvB,IAAM,EACR,MAAO,GAET,IAAIowU,EAAU,EACd,KAAOA,EAAUpwU,GACEkvB,EAAI,OAAOlvB,EAAIowU,EAAU,CAAC,IAC1B/hW,GACf+hW,IAOJ,OAAOlhT,EAAI,MAAM,EAAGlvB,EAAIowU,CAAO,CACjC,CACA,SAASC,IAAmBnhT,EAAK9hD,EAAG,CAClC,GAAI8hD,EAAI,QAAQ9hD,EAAE,CAAC,CAAC,IAAM,GACxB,MAAO,GAET,IAAIm8C,EAAQ,EACZ,QAASx4C,EAAI,EAAGA,EAAIm+C,EAAI,OAAQn+C,IAC9B,GAAIm+C,EAAIn+C,CAAC,IAAM,KACbA,YACSm+C,EAAIn+C,CAAC,IAAM3D,EAAE,CAAC,EACvBm8C,YACS2F,EAAIn+C,CAAC,IAAM3D,EAAE,CAAC,IACvBm8C,IACIA,EAAQ,GACV,OAAOx4C,EAIb,OAAIw4C,EAAQ,EACH,GAEF,EACT,CAGA,SAAS+mT,IAAWvvE,EAAKwvE,EAAOn8J,EAAKo8J,EAAQlyJ,EAAO,CAClD,MAAMn0L,EAAOomV,EAAM,KACbhnU,EAAQgnU,EAAM,OAAS,KACvB1gV,EAAOkxQ,EAAI,CAAC,EAAE,QAAQziF,EAAM,MAAM,kBAAmB,IAAI,EAC/DkyJ,EAAO,MAAM,OAAS,GACtB,MAAMn0F,EAAQ,CACZ,KAAM0kB,EAAI,CAAC,EAAE,OAAO,CAAC,IAAM,IAAM,QAAU,OAC3C,IAAA3sF,EACA,KAAAjqL,EACA,MAAAof,EACA,KAAA1Z,EACA,OAAQ2gV,EAAO,aAAa3gV,CAAI,CACpC,EACE,OAAA2gV,EAAO,MAAM,OAAS,GACfn0F,CACT,CACA,SAASo0F,IAAuBr8J,EAAKvkL,EAAMyuL,EAAO,CAChD,MAAMoyJ,EAAoBt8J,EAAI,MAAMkK,EAAM,MAAM,sBAAsB,EACtE,GAAIoyJ,IAAsB,KACxB,OAAO7gV,EAET,MAAM8gV,EAAeD,EAAkB,CAAC,EACxC,OAAO7gV,EAAK,MAAM;AAAA,CAAI,EAAE,IAAKyvG,GAAS,CACpC,MAAMsxO,EAAoBtxO,EAAK,MAAMg/E,EAAM,MAAM,cAAc,EAC/D,GAAIsyJ,IAAsB,KACxB,OAAOtxO,EAET,KAAM,CAACuxO,CAAY,EAAID,EACvB,OAAIC,EAAa,QAAUF,EAAa,OAC/BrxO,EAAK,MAAMqxO,EAAa,MAAM,EAEhCrxO,CACT,CAAC,EAAE,KAAK;AAAA,CAAI,CACd,CACA,IAAIwxO,GAAa,KAAM,CAMrB,YAAYC,EAAU,CALtBvoU,GAAA,gBACAA,GAAA,cAEAA,GAAA,cAGE,KAAK,QAAUuoU,GAAYnE,EAC7B,CACA,MAAMhiH,EAAK,CACT,MAAMm2C,EAAM,KAAK,MAAM,MAAM,QAAQ,KAAKn2C,CAAG,EAC7C,GAAIm2C,GAAOA,EAAI,CAAC,EAAE,OAAS,EACzB,MAAO,CACL,KAAM,QACN,IAAKA,EAAI,CAAC,CAClB,CAEE,CACA,KAAKn2C,EAAK,CACR,MAAMm2C,EAAM,KAAK,MAAM,MAAM,KAAK,KAAKn2C,CAAG,EAC1C,GAAIm2C,EAAK,CACP,MAAMlxQ,EAAOkxQ,EAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,iBAAkB,EAAE,EACjE,MAAO,CACL,KAAM,OACN,IAAKA,EAAI,CAAC,EACV,eAAgB,WAChB,KAAO,KAAK,QAAQ,SAA+BlxQ,EAApBsgV,GAAMtgV,EAAM;AAAA,CAAI,CACvD,CACI,CACF,CACA,OAAO+6N,EAAK,CACV,MAAMm2C,EAAM,KAAK,MAAM,MAAM,OAAO,KAAKn2C,CAAG,EAC5C,GAAIm2C,EAAK,CACP,MAAM3sF,EAAM2sF,EAAI,CAAC,EACXlxQ,EAAO4gV,IAAuBr8J,EAAK2sF,EAAI,CAAC,GAAK,GAAI,KAAK,KAAK,EACjE,MAAO,CACL,KAAM,OACN,IAAA3sF,EACA,KAAM2sF,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,KAAI,EAAG,QAAQ,KAAK,MAAM,OAAO,eAAgB,IAAI,EAAIA,EAAI,CAAC,EACpF,KAAAlxQ,CACR,CACI,CACF,CACA,QAAQ+6N,EAAK,CACX,MAAMm2C,EAAM,KAAK,MAAM,MAAM,QAAQ,KAAKn2C,CAAG,EAC7C,GAAIm2C,EAAK,CACP,IAAIlxQ,EAAOkxQ,EAAI,CAAC,EAAE,KAAI,EACtB,GAAI,KAAK,MAAM,MAAM,WAAW,KAAKlxQ,CAAI,EAAG,CAC1C,MAAMmhV,EAAUb,GAAMtgV,EAAM,GAAG,GAC3B,KAAK,QAAQ,UAEN,CAACmhV,GAAW,KAAK,MAAM,MAAM,gBAAgB,KAAKA,CAAO,KAClEnhV,EAAOmhV,EAAQ,KAAI,EAEvB,CACA,MAAO,CACL,KAAM,UACN,IAAKjwE,EAAI,CAAC,EACV,MAAOA,EAAI,CAAC,EAAE,OACd,KAAAlxQ,EACA,OAAQ,KAAK,MAAM,OAAOA,CAAI,CACtC,CACI,CACF,CACA,GAAG+6N,EAAK,CACN,MAAMm2C,EAAM,KAAK,MAAM,MAAM,GAAG,KAAKn2C,CAAG,EACxC,GAAIm2C,EACF,MAAO,CACL,KAAM,KACN,IAAKovE,GAAMpvE,EAAI,CAAC,EAAG;AAAA,CAAI,CAC/B,CAEE,CACA,WAAWn2C,EAAK,CACd,MAAMm2C,EAAM,KAAK,MAAM,MAAM,WAAW,KAAKn2C,CAAG,EAChD,GAAIm2C,EAAK,CACP,IAAIp2O,EAAQwlT,GAAMpvE,EAAI,CAAC,EAAG;AAAA,CAAI,EAAE,MAAM;AAAA,CAAI,EACtC3sF,EAAM,GACNvkL,EAAO,GACX,MAAMm2Q,EAAS,GACf,KAAOr7O,EAAM,OAAS,GAAG,CACvB,IAAIsmT,EAAe,GACnB,MAAMC,EAAe,GACrB,IAAIngW,EACJ,IAAKA,EAAI,EAAGA,EAAI45C,EAAM,OAAQ55C,IAC5B,GAAI,KAAK,MAAM,MAAM,gBAAgB,KAAK45C,EAAM55C,CAAC,CAAC,EAChDmgW,EAAa,KAAKvmT,EAAM55C,CAAC,CAAC,EAC1BkgW,EAAe,WACN,CAACA,EACVC,EAAa,KAAKvmT,EAAM55C,CAAC,CAAC,MAE1B,OAGJ45C,EAAQA,EAAM,MAAM55C,CAAC,EACrB,MAAMogW,EAAaD,EAAa,KAAK;AAAA,CAAI,EACnCE,EAAcD,EAAW,QAAQ,KAAK,MAAM,MAAM,wBAAyB;AAAA,OAAU,EAAE,QAAQ,KAAK,MAAM,MAAM,yBAA0B,EAAE,EAClJ/8J,EAAMA,EAAM,GAAGA,CAAG;AAAA,EACxB+8J,CAAU,GAAKA,EACTthV,EAAOA,EAAO,GAAGA,CAAI;AAAA,EAC3BuhV,CAAW,GAAKA,EACV,MAAM3tO,EAAM,KAAK,MAAM,MAAM,IAI7B,GAHA,KAAK,MAAM,MAAM,IAAM,GACvB,KAAK,MAAM,YAAY2tO,EAAaprE,EAAQ,EAAI,EAChD,KAAK,MAAM,MAAM,IAAMviK,EACnB94E,EAAM,SAAW,EACnB,MAEF,MAAMqtQ,EAAYhyB,EAAO,GAAG,EAAE,EAC9B,IAAIgyB,GAAA,YAAAA,EAAW,QAAS,OACtB,MACK,IAAIA,GAAA,YAAAA,EAAW,QAAS,aAAc,CAC3C,MAAMzB,EAAWyB,EACXq5C,EAAU96C,EAAS,IAAM;AAAA,EAAO5rQ,EAAM,KAAK;AAAA,CAAI,EAC/C2mT,EAAW,KAAK,WAAWD,CAAO,EACxCrrE,EAAOA,EAAO,OAAS,CAAC,EAAIsrE,EAC5Bl9J,EAAMA,EAAI,UAAU,EAAGA,EAAI,OAASmiH,EAAS,IAAI,MAAM,EAAI+6C,EAAS,IACpEzhV,EAAOA,EAAK,UAAU,EAAGA,EAAK,OAAS0mS,EAAS,KAAK,MAAM,EAAI+6C,EAAS,KACxE,KACF,UAAWt5C,GAAA,YAAAA,EAAW,QAAS,OAAQ,CACrC,MAAMzB,EAAWyB,EACXq5C,EAAU96C,EAAS,IAAM;AAAA,EAAO5rQ,EAAM,KAAK;AAAA,CAAI,EAC/C2mT,EAAW,KAAK,KAAKD,CAAO,EAClCrrE,EAAOA,EAAO,OAAS,CAAC,EAAIsrE,EAC5Bl9J,EAAMA,EAAI,UAAU,EAAGA,EAAI,OAAS4jH,EAAU,IAAI,MAAM,EAAIs5C,EAAS,IACrEzhV,EAAOA,EAAK,UAAU,EAAGA,EAAK,OAAS0mS,EAAS,IAAI,MAAM,EAAI+6C,EAAS,IACvE3mT,EAAQ0mT,EAAQ,UAAUrrE,EAAO,GAAG,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM;AAAA,CAAI,EAC9D,QACF,CACF,CACA,MAAO,CACL,KAAM,aACN,IAAA5xF,EACA,OAAA4xF,EACA,KAAAn2Q,CACR,CACI,CACF,CACA,KAAK+6N,EAAK,CACR,IAAIm2C,EAAM,KAAK,MAAM,MAAM,KAAK,KAAKn2C,CAAG,EACxC,GAAIm2C,EAAK,CACP,IAAImsE,EAAOnsE,EAAI,CAAC,EAAE,KAAI,EACtB,MAAMwwE,EAAYrE,EAAK,OAAS,EAC1BsE,EAAQ,CACZ,KAAM,OACN,IAAK,GACL,QAASD,EACT,MAAOA,EAAY,CAACrE,EAAK,MAAM,EAAG,EAAE,EAAI,GACxC,MAAO,GACP,MAAO,EACf,EACMA,EAAOqE,EAAY,aAAarE,EAAK,MAAM,EAAE,CAAC,GAAK,KAAKA,CAAI,GACxD,KAAK,QAAQ,WACfA,EAAOqE,EAAYrE,EAAO,SAE5B,MAAMuE,EAAY,KAAK,MAAM,MAAM,cAAcvE,CAAI,EACrD,IAAIwE,EAAoB,GACxB,KAAO9mH,GAAK,CACV,IAAI+mH,EAAW,GACXv9J,EAAM,GACNw9J,EAAe,GAInB,GAHI,EAAE7wE,EAAM0wE,EAAU,KAAK7mH,CAAG,IAG1B,KAAK,MAAM,MAAM,GAAG,KAAKA,CAAG,EAC9B,MAEFx2C,EAAM2sF,EAAI,CAAC,EACXn2C,EAAMA,EAAI,UAAUx2C,EAAI,MAAM,EAC9B,IAAIxpJ,EAAOm2O,EAAI,CAAC,EAAE,MAAM;AAAA,EAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,gBAAkB9xR,GAAM,IAAI,OAAO,EAAIA,EAAE,MAAM,CAAC,EACzG63V,EAAWl8G,EAAI,MAAM;AAAA,EAAM,CAAC,EAAE,CAAC,EAC/BinH,EAAY,CAACjnT,EAAK,KAAI,EACtBu+M,EAAS,EAiBb,GAhBI,KAAK,QAAQ,UACfA,EAAS,EACTyoG,EAAehnT,EAAK,UAAS,GACpBinT,EACT1oG,EAAS43B,EAAI,CAAC,EAAE,OAAS,GAEzB53B,EAAS43B,EAAI,CAAC,EAAE,OAAO,KAAK,MAAM,MAAM,YAAY,EACpD53B,EAASA,EAAS,EAAI,EAAIA,EAC1ByoG,EAAehnT,EAAK,MAAMu+M,CAAM,EAChCA,GAAU43B,EAAI,CAAC,EAAE,QAEf8wE,GAAa,KAAK,MAAM,MAAM,UAAU,KAAK/K,CAAQ,IACvD1yJ,GAAO0yJ,EAAW;AAAA,EAClBl8G,EAAMA,EAAI,UAAUk8G,EAAS,OAAS,CAAC,EACvC6K,EAAW,IAET,CAACA,EAAU,CACb,MAAMG,EAAkB,KAAK,MAAM,MAAM,gBAAgB3oG,CAAM,EACzD4oG,EAAU,KAAK,MAAM,MAAM,QAAQ5oG,CAAM,EACzC6oG,EAAmB,KAAK,MAAM,MAAM,iBAAiB7oG,CAAM,EAC3D8oG,EAAoB,KAAK,MAAM,MAAM,kBAAkB9oG,CAAM,EAC7D+oG,EAAiB,KAAK,MAAM,MAAM,eAAe/oG,CAAM,EAC7D,KAAOve,GAAK,CACV,MAAMunH,EAAUvnH,EAAI,MAAM;AAAA,EAAM,CAAC,EAAE,CAAC,EACpC,IAAIwnH,EAoBJ,GAnBAtL,EAAWqL,EACP,KAAK,QAAQ,UACfrL,EAAWA,EAAS,QAAQ,KAAK,MAAM,MAAM,mBAAoB,IAAI,EACrEsL,EAAsBtL,GAEtBsL,EAAsBtL,EAAS,QAAQ,KAAK,MAAM,MAAM,cAAe,MAAM,EAE3EkL,EAAiB,KAAKlL,CAAQ,GAG9BmL,EAAkB,KAAKnL,CAAQ,GAG/BoL,EAAe,KAAKpL,CAAQ,GAG5BgL,EAAgB,KAAKhL,CAAQ,GAG7BiL,EAAQ,KAAKjL,CAAQ,EACvB,MAEF,GAAIsL,EAAoB,OAAO,KAAK,MAAM,MAAM,YAAY,GAAKjpG,GAAU,CAAC29F,EAAS,KAAI,EACvF8K,GAAgB;AAAA,EAAOQ,EAAoB,MAAMjpG,CAAM,MAClD,CAaL,GAZI0oG,GAGAjnT,EAAK,QAAQ,KAAK,MAAM,MAAM,cAAe,MAAM,EAAE,OAAO,KAAK,MAAM,MAAM,YAAY,GAAK,GAG9FonT,EAAiB,KAAKpnT,CAAI,GAG1BqnT,EAAkB,KAAKrnT,CAAI,GAG3BmnT,EAAQ,KAAKnnT,CAAI,EACnB,MAEFgnT,GAAgB;AAAA,EAAO9K,CACzB,CACI,CAAC+K,GAAa,CAAC/K,EAAS,KAAI,IAC9B+K,EAAY,IAEdz9J,GAAO+9J,EAAU;AAAA,EACjBvnH,EAAMA,EAAI,UAAUunH,EAAQ,OAAS,CAAC,EACtCvnT,EAAOwnT,EAAoB,MAAMjpG,CAAM,CACzC,CACF,CACKqoG,EAAM,QACLE,EACFF,EAAM,MAAQ,GACL,KAAK,MAAM,MAAM,gBAAgB,KAAKp9J,CAAG,IAClDs9J,EAAoB,KAGxB,IAAIW,EAAS,KACTC,EACA,KAAK,QAAQ,MACfD,EAAS,KAAK,MAAM,MAAM,WAAW,KAAKT,CAAY,EAClDS,IACFC,EAAYD,EAAO,CAAC,IAAM,OAC1BT,EAAeA,EAAa,QAAQ,KAAK,MAAM,MAAM,gBAAiB,EAAE,IAG5EJ,EAAM,MAAM,KAAK,CACf,KAAM,YACN,IAAAp9J,EACA,KAAM,CAAC,CAACi+J,EACR,QAASC,EACT,MAAO,GACP,KAAMV,EACN,OAAQ,EAClB,CAAS,EACDJ,EAAM,KAAOp9J,CACf,CACA,MAAMm+J,EAAWf,EAAM,MAAM,GAAG,EAAE,EAClC,GAAIe,EACFA,EAAS,IAAMA,EAAS,IAAI,QAAO,EACnCA,EAAS,KAAOA,EAAS,KAAK,QAAO,MAErC,QAEFf,EAAM,IAAMA,EAAM,IAAI,QAAO,EAC7B,QAASzgW,EAAI,EAAGA,EAAIygW,EAAM,MAAM,OAAQzgW,IAGtC,GAFA,KAAK,MAAM,MAAM,IAAM,GACvBygW,EAAM,MAAMzgW,CAAC,EAAE,OAAS,KAAK,MAAM,YAAYygW,EAAM,MAAMzgW,CAAC,EAAE,KAAM,EAAE,EAClE,CAACygW,EAAM,MAAO,CAChB,MAAMgB,EAAUhB,EAAM,MAAMzgW,CAAC,EAAE,OAAO,OAAQ9B,GAAMA,EAAE,OAAS,OAAO,EAChEwjW,EAAwBD,EAAQ,OAAS,GAAKA,EAAQ,KAAMvjW,GAAM,KAAK,MAAM,MAAM,QAAQ,KAAKA,EAAE,GAAG,CAAC,EAC5GuiW,EAAM,MAAQiB,CAChB,CAEF,GAAIjB,EAAM,MACR,QAASzgW,EAAI,EAAGA,EAAIygW,EAAM,MAAM,OAAQzgW,IACtCygW,EAAM,MAAMzgW,CAAC,EAAE,MAAQ,GAG3B,OAAOygW,CACT,CACF,CACA,KAAK5mH,EAAK,CACR,MAAMm2C,EAAM,KAAK,MAAM,MAAM,KAAK,KAAKn2C,CAAG,EAC1C,GAAIm2C,EAQF,MAPc,CACZ,KAAM,OACN,MAAO,GACP,IAAKA,EAAI,CAAC,EACV,IAAKA,EAAI,CAAC,IAAM,OAASA,EAAI,CAAC,IAAM,UAAYA,EAAI,CAAC,IAAM,QAC3D,KAAMA,EAAI,CAAC,CACnB,CAGE,CACA,IAAIn2C,EAAK,CACP,MAAMm2C,EAAM,KAAK,MAAM,MAAM,IAAI,KAAKn2C,CAAG,EACzC,GAAIm2C,EAAK,CACP,MAAM2xE,EAAO3xE,EAAI,CAAC,EAAE,YAAW,EAAG,QAAQ,KAAK,MAAM,MAAM,oBAAqB,GAAG,EAC7E52Q,EAAO42Q,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,aAAc,IAAI,EAAE,QAAQ,KAAK,MAAM,OAAO,eAAgB,IAAI,EAAI,GACtHx3P,EAAQw3P,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,UAAU,EAAGA,EAAI,CAAC,EAAE,OAAS,CAAC,EAAE,QAAQ,KAAK,MAAM,OAAO,eAAgB,IAAI,EAAIA,EAAI,CAAC,EACrH,MAAO,CACL,KAAM,MACN,IAAK2xE,EACL,IAAK3xE,EAAI,CAAC,EACV,KAAA52Q,EACA,MAAAof,CACR,CACI,CACF,CACA,MAAMqhN,EAAK,OACT,MAAMm2C,EAAM,KAAK,MAAM,MAAM,MAAM,KAAKn2C,CAAG,EAI3C,GAHI,CAACm2C,GAGD,CAAC,KAAK,MAAM,MAAM,eAAe,KAAKA,EAAI,CAAC,CAAC,EAC9C,OAEF,MAAMl+N,EAAUmtS,IAAWjvE,EAAI,CAAC,CAAC,EAC3B4Z,EAAS5Z,EAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,gBAAiB,EAAE,EAAE,MAAM,GAAG,EACvElD,GAAO1yP,EAAA41P,EAAI,CAAC,IAAL,MAAA51P,EAAQ,OAAS41P,EAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,kBAAmB,EAAE,EAAE,MAAM;AAAA,CAAI,EAAI,GAC7F9oP,EAAO,CACX,KAAM,QACN,IAAK8oP,EAAI,CAAC,EACV,OAAQ,GACR,MAAO,GACP,KAAM,EACZ,EACI,GAAIl+N,EAAQ,SAAW83O,EAAO,OAG9B,WAAW7c,KAAS6c,EACd,KAAK,MAAM,MAAM,gBAAgB,KAAK7c,CAAK,EAC7C7lP,EAAK,MAAM,KAAK,OAAO,EACd,KAAK,MAAM,MAAM,iBAAiB,KAAK6lP,CAAK,EACrD7lP,EAAK,MAAM,KAAK,QAAQ,EACf,KAAK,MAAM,MAAM,eAAe,KAAK6lP,CAAK,EACnD7lP,EAAK,MAAM,KAAK,MAAM,EAEtBA,EAAK,MAAM,KAAK,IAAI,EAGxB,QAASlnC,EAAI,EAAGA,EAAI8xD,EAAQ,OAAQ9xD,IAClCknC,EAAK,OAAO,KAAK,CACf,KAAM4qB,EAAQ9xD,CAAC,EACf,OAAQ,KAAK,MAAM,OAAO8xD,EAAQ9xD,CAAC,CAAC,EACpC,OAAQ,GACR,MAAOknC,EAAK,MAAMlnC,CAAC,CAC3B,CAAO,EAEH,UAAWgtR,KAAOF,EAChB5lP,EAAK,KAAK,KAAK+3T,IAAWjyE,EAAK9lP,EAAK,OAAO,MAAM,EAAE,IAAI,CAAC+lP,EAAMjtR,KACrD,CACL,KAAMitR,EACN,OAAQ,KAAK,MAAM,OAAOA,CAAI,EAC9B,OAAQ,GACR,MAAO/lP,EAAK,MAAMlnC,CAAC,CAC7B,EACO,CAAC,EAEJ,OAAOknC,EACT,CACA,SAAS2yM,EAAK,CACZ,MAAMm2C,EAAM,KAAK,MAAM,MAAM,SAAS,KAAKn2C,CAAG,EAC9C,GAAIm2C,EACF,MAAO,CACL,KAAM,UACN,IAAKA,EAAI,CAAC,EACV,MAAOA,EAAI,CAAC,EAAE,OAAO,CAAC,IAAM,IAAM,EAAI,EACtC,KAAMA,EAAI,CAAC,EACX,OAAQ,KAAK,MAAM,OAAOA,EAAI,CAAC,CAAC,CACxC,CAEE,CACA,UAAUn2C,EAAK,CACb,MAAMm2C,EAAM,KAAK,MAAM,MAAM,UAAU,KAAKn2C,CAAG,EAC/C,GAAIm2C,EAAK,CACP,MAAMlxQ,EAAOkxQ,EAAI,CAAC,EAAE,OAAOA,EAAI,CAAC,EAAE,OAAS,CAAC,IAAM;AAAA,EAAOA,EAAI,CAAC,EAAE,MAAM,EAAG,EAAE,EAAIA,EAAI,CAAC,EACpF,MAAO,CACL,KAAM,YACN,IAAKA,EAAI,CAAC,EACV,KAAAlxQ,EACA,OAAQ,KAAK,MAAM,OAAOA,CAAI,CACtC,CACI,CACF,CACA,KAAK+6N,EAAK,CACR,MAAMm2C,EAAM,KAAK,MAAM,MAAM,KAAK,KAAKn2C,CAAG,EAC1C,GAAIm2C,EACF,MAAO,CACL,KAAM,OACN,IAAKA,EAAI,CAAC,EACV,KAAMA,EAAI,CAAC,EACX,OAAQ,KAAK,MAAM,OAAOA,EAAI,CAAC,CAAC,CACxC,CAEE,CACA,OAAOn2C,EAAK,CACV,MAAMm2C,EAAM,KAAK,MAAM,OAAO,OAAO,KAAKn2C,CAAG,EAC7C,GAAIm2C,EACF,MAAO,CACL,KAAM,SACN,IAAKA,EAAI,CAAC,EACV,KAAMA,EAAI,CAAC,CACnB,CAEE,CACA,IAAIn2C,EAAK,CACP,MAAMm2C,EAAM,KAAK,MAAM,OAAO,IAAI,KAAKn2C,CAAG,EAC1C,GAAIm2C,EACF,MAAI,CAAC,KAAK,MAAM,MAAM,QAAU,KAAK,MAAM,MAAM,UAAU,KAAKA,EAAI,CAAC,CAAC,EACpE,KAAK,MAAM,MAAM,OAAS,GACjB,KAAK,MAAM,MAAM,QAAU,KAAK,MAAM,MAAM,QAAQ,KAAKA,EAAI,CAAC,CAAC,IACxE,KAAK,MAAM,MAAM,OAAS,IAExB,CAAC,KAAK,MAAM,MAAM,YAAc,KAAK,MAAM,MAAM,kBAAkB,KAAKA,EAAI,CAAC,CAAC,EAChF,KAAK,MAAM,MAAM,WAAa,GACrB,KAAK,MAAM,MAAM,YAAc,KAAK,MAAM,MAAM,gBAAgB,KAAKA,EAAI,CAAC,CAAC,IACpF,KAAK,MAAM,MAAM,WAAa,IAEzB,CACL,KAAM,OACN,IAAKA,EAAI,CAAC,EACV,OAAQ,KAAK,MAAM,MAAM,OACzB,WAAY,KAAK,MAAM,MAAM,WAC7B,MAAO,GACP,KAAMA,EAAI,CAAC,CACnB,CAEE,CACA,KAAKn2C,EAAK,CACR,MAAMm2C,EAAM,KAAK,MAAM,OAAO,KAAK,KAAKn2C,CAAG,EAC3C,GAAIm2C,EAAK,CACP,MAAM4hE,EAAa5hE,EAAI,CAAC,EAAE,KAAI,EAC9B,GAAI,CAAC,KAAK,QAAQ,UAAY,KAAK,MAAM,MAAM,kBAAkB,KAAK4hE,CAAU,EAAG,CACjF,GAAI,CAAC,KAAK,MAAM,MAAM,gBAAgB,KAAKA,CAAU,EACnD,OAEF,MAAMgQ,EAAaxC,GAAMxN,EAAW,MAAM,EAAG,EAAE,EAAG,IAAI,EACtD,IAAKA,EAAW,OAASgQ,EAAW,QAAU,IAAM,EAClD,MAEJ,KAAO,CACL,MAAMC,EAAiBvC,IAAmBtvE,EAAI,CAAC,EAAG,IAAI,EACtD,GAAI6xE,IAAmB,GACrB,OAEF,GAAIA,EAAiB,GAAI,CAEvB,MAAMC,GADQ9xE,EAAI,CAAC,EAAE,QAAQ,GAAG,IAAM,EAAI,EAAI,GACtBA,EAAI,CAAC,EAAE,OAAS6xE,EACxC7xE,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,UAAU,EAAG6xE,CAAc,EAC3C7xE,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,UAAU,EAAG8xE,CAAO,EAAE,KAAI,EAC1C9xE,EAAI,CAAC,EAAI,EACX,CACF,CACA,IAAI52Q,EAAO42Q,EAAI,CAAC,EACZx3P,EAAQ,GACZ,GAAI,KAAK,QAAQ,SAAU,CACzB,MAAMgnU,EAAQ,KAAK,MAAM,MAAM,kBAAkB,KAAKpmV,CAAI,EACtDomV,IACFpmV,EAAOomV,EAAM,CAAC,EACdhnU,EAAQgnU,EAAM,CAAC,EAEnB,MACEhnU,EAAQw3P,EAAI,CAAC,EAAIA,EAAI,CAAC,EAAE,MAAM,EAAG,EAAE,EAAI,GAEzC,OAAA52Q,EAAOA,EAAK,KAAI,EACZ,KAAK,MAAM,MAAM,kBAAkB,KAAKA,CAAI,IAC1C,KAAK,QAAQ,UAAY,CAAC,KAAK,MAAM,MAAM,gBAAgB,KAAKw4U,CAAU,EAC5Ex4U,EAAOA,EAAK,MAAM,CAAC,EAEnBA,EAAOA,EAAK,MAAM,EAAG,EAAE,GAGpBmmV,IAAWvvE,EAAK,CACrB,KAAM52Q,GAAOA,EAAK,QAAQ,KAAK,MAAM,OAAO,eAAgB,IAAI,EAChE,MAAOof,GAAQA,EAAM,QAAQ,KAAK,MAAM,OAAO,eAAgB,IAAI,CAC3E,EAASw3P,EAAI,CAAC,EAAG,KAAK,MAAO,KAAK,KAAK,CACnC,CACF,CACA,QAAQn2C,EAAKhvL,EAAO,CAClB,IAAImlO,EACJ,IAAKA,EAAM,KAAK,MAAM,OAAO,QAAQ,KAAKn2C,CAAG,KAAOm2C,EAAM,KAAK,MAAM,OAAO,OAAO,KAAKn2C,CAAG,GAAI,CAC7F,MAAMkoH,GAAc/xE,EAAI,CAAC,GAAKA,EAAI,CAAC,GAAG,QAAQ,KAAK,MAAM,MAAM,oBAAqB,GAAG,EACjFwvE,EAAQ30S,EAAMk3S,EAAW,YAAW,CAAE,EAC5C,GAAI,CAACvC,EAAO,CACV,MAAM1gV,EAAOkxQ,EAAI,CAAC,EAAE,OAAO,CAAC,EAC5B,MAAO,CACL,KAAM,OACN,IAAKlxQ,EACL,KAAAA,CACV,CACM,CACA,OAAOygV,IAAWvvE,EAAKwvE,EAAOxvE,EAAI,CAAC,EAAG,KAAK,MAAO,KAAK,KAAK,CAC9D,CACF,CACA,SAASn2C,EAAKmoH,EAAWrW,EAAW,GAAI,CACtC,IAAI/iV,EAAQ,KAAK,MAAM,OAAO,eAAe,KAAKixO,CAAG,EAErD,GADI,CAACjxO,GACDA,EAAM,CAAC,GAAK+iV,EAAS,MAAM,KAAK,MAAM,MAAM,mBAAmB,EAAG,OAEtE,GAAI,EADa/iV,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAK,KACxB,CAAC+iV,GAAY,KAAK,MAAM,OAAO,YAAY,KAAKA,CAAQ,EAAG,CAC1E,MAAMsW,EAAU,CAAC,GAAGr5V,EAAM,CAAC,CAAC,EAAE,OAAS,EACvC,IAAIs5V,EAAQC,EAASC,EAAaH,EAASI,EAAgB,EAC3D,MAAMC,EAAS15V,EAAM,CAAC,EAAE,CAAC,IAAM,IAAM,KAAK,MAAM,OAAO,kBAAoB,KAAK,MAAM,OAAO,kBAG7F,IAFA05V,EAAO,UAAY,EACnBN,EAAYA,EAAU,MAAM,GAAKnoH,EAAI,OAASooH,CAAO,GAC7Cr5V,EAAQ05V,EAAO,KAAKN,CAAS,IAAM,MAAM,CAE/C,GADAE,EAASt5V,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,EACxE,CAACs5V,EAAQ,SAEb,GADAC,EAAU,CAAC,GAAGD,CAAM,EAAE,OAClBt5V,EAAM,CAAC,GAAKA,EAAM,CAAC,EAAG,CACxBw5V,GAAcD,EACd,QACF,UAAWv5V,EAAM,CAAC,GAAKA,EAAM,CAAC,IACxBq5V,EAAU,GAAK,GAAGA,EAAUE,GAAW,GAAI,CAC7CE,GAAiBF,EACjB,QACF,CAGF,GADAC,GAAcD,EACVC,EAAa,EAAG,SACpBD,EAAU,KAAK,IAAIA,EAASA,EAAUC,EAAaC,CAAa,EAChE,MAAME,EAAiB,CAAC,GAAG35V,EAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAClCy6L,EAAMw2C,EAAI,MAAM,EAAGooH,EAAUr5V,EAAM,MAAQ25V,EAAiBJ,CAAO,EACzE,GAAI,KAAK,IAAIF,EAASE,CAAO,EAAI,EAAG,CAClC,MAAMK,EAAQn/J,EAAI,MAAM,EAAG,EAAE,EAC7B,MAAO,CACL,KAAM,KACN,IAAAA,EACA,KAAMm/J,EACN,OAAQ,KAAK,MAAM,aAAaA,CAAK,CACjD,CACQ,CACA,MAAM1jV,EAAOukL,EAAI,MAAM,EAAG,EAAE,EAC5B,MAAO,CACL,KAAM,SACN,IAAAA,EACA,KAAAvkL,EACA,OAAQ,KAAK,MAAM,aAAaA,CAAI,CAC9C,CACM,CACF,CACF,CACA,SAAS+6N,EAAK,CACZ,MAAMm2C,EAAM,KAAK,MAAM,OAAO,KAAK,KAAKn2C,CAAG,EAC3C,GAAIm2C,EAAK,CACP,IAAIlxQ,EAAOkxQ,EAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,MAAM,kBAAmB,GAAG,EACjE,MAAMyyE,EAAmB,KAAK,MAAM,MAAM,aAAa,KAAK3jV,CAAI,EAC1D4jV,EAA0B,KAAK,MAAM,MAAM,kBAAkB,KAAK5jV,CAAI,GAAK,KAAK,MAAM,MAAM,gBAAgB,KAAKA,CAAI,EAC3H,OAAI2jV,GAAoBC,IACtB5jV,EAAOA,EAAK,UAAU,EAAGA,EAAK,OAAS,CAAC,GAEnC,CACL,KAAM,WACN,IAAKkxQ,EAAI,CAAC,EACV,KAAAlxQ,CACR,CACI,CACF,CACA,GAAG+6N,EAAK,CACN,MAAMm2C,EAAM,KAAK,MAAM,OAAO,GAAG,KAAKn2C,CAAG,EACzC,GAAIm2C,EACF,MAAO,CACL,KAAM,KACN,IAAKA,EAAI,CAAC,CAClB,CAEE,CACA,IAAIn2C,EAAK,CACP,MAAMm2C,EAAM,KAAK,MAAM,OAAO,IAAI,KAAKn2C,CAAG,EAC1C,GAAIm2C,EACF,MAAO,CACL,KAAM,MACN,IAAKA,EAAI,CAAC,EACV,KAAMA,EAAI,CAAC,EACX,OAAQ,KAAK,MAAM,aAAaA,EAAI,CAAC,CAAC,CAC9C,CAEE,CACA,SAASn2C,EAAK,CACZ,MAAMm2C,EAAM,KAAK,MAAM,OAAO,SAAS,KAAKn2C,CAAG,EAC/C,GAAIm2C,EAAK,CACP,IAAIlxQ,EAAM1F,EACV,OAAI42Q,EAAI,CAAC,IAAM,KACblxQ,EAAOkxQ,EAAI,CAAC,EACZ52Q,EAAO,UAAY0F,IAEnBA,EAAOkxQ,EAAI,CAAC,EACZ52Q,EAAO0F,GAEF,CACL,KAAM,OACN,IAAKkxQ,EAAI,CAAC,EACV,KAAAlxQ,EACA,KAAA1F,EACA,OAAQ,CACN,CACE,KAAM,OACN,IAAK0F,EACL,KAAAA,CACZ,CACA,CACA,CACI,CACF,CACA,IAAI+6N,EAAK,OACP,IAAIm2C,EACJ,GAAIA,EAAM,KAAK,MAAM,OAAO,IAAI,KAAKn2C,CAAG,EAAG,CACzC,IAAI/6N,EAAM1F,EACV,GAAI42Q,EAAI,CAAC,IAAM,IACblxQ,EAAOkxQ,EAAI,CAAC,EACZ52Q,EAAO,UAAY0F,MACd,CACL,IAAI6jV,EACJ,GACEA,EAAc3yE,EAAI,CAAC,EACnBA,EAAI,CAAC,IAAI51P,EAAA,KAAK,MAAM,OAAO,WAAW,KAAK41P,EAAI,CAAC,CAAC,IAAxC,YAAA51P,EAA4C,KAAM,SACpDuoU,IAAgB3yE,EAAI,CAAC,GAC9BlxQ,EAAOkxQ,EAAI,CAAC,EACRA,EAAI,CAAC,IAAM,OACb52Q,EAAO,UAAY42Q,EAAI,CAAC,EAExB52Q,EAAO42Q,EAAI,CAAC,CAEhB,CACA,MAAO,CACL,KAAM,OACN,IAAKA,EAAI,CAAC,EACV,KAAAlxQ,EACA,KAAA1F,EACA,OAAQ,CACN,CACE,KAAM,OACN,IAAK0F,EACL,KAAAA,CACZ,CACA,CACA,CACI,CACF,CACA,WAAW+6N,EAAK,CACd,MAAMm2C,EAAM,KAAK,MAAM,OAAO,KAAK,KAAKn2C,CAAG,EAC3C,GAAIm2C,EAAK,CACP,MAAMsO,EAAU,KAAK,MAAM,MAAM,WACjC,MAAO,CACL,KAAM,OACN,IAAKtO,EAAI,CAAC,EACV,KAAMA,EAAI,CAAC,EACX,QAAAsO,CACR,CACI,CACF,CACF,EAGIskE,GAAS,MAAMC,EAAQ,CAMzB,YAAY7C,EAAU,CALtBvoU,GAAA,eACAA,GAAA,gBACAA,GAAA,cACAA,GAAA,kBACAA,GAAA,oBAEE,KAAK,OAAS,GACd,KAAK,OAAO,MAAwB,OAAO,OAAO,IAAI,EACtD,KAAK,QAAUuoU,GAAYnE,GAC3B,KAAK,QAAQ,UAAY,KAAK,QAAQ,WAAa,IAAIkE,GACvD,KAAK,UAAY,KAAK,QAAQ,UAC9B,KAAK,UAAU,QAAU,KAAK,QAC9B,KAAK,UAAU,MAAQ,KACvB,KAAK,YAAc,GACnB,KAAK,MAAQ,CACX,OAAQ,GACR,WAAY,GACZ,IAAK,EACX,EACI,MAAMxyJ,EAAQ,CACZ,MAAAzvB,GACA,MAAO4xB,GAAM,OACb,OAAQe,GAAO,MACrB,EACQ,KAAK,QAAQ,UACflD,EAAM,MAAQmC,GAAM,SACpBnC,EAAM,OAASkD,GAAO,UACb,KAAK,QAAQ,MACtBlD,EAAM,MAAQmC,GAAM,IAChB,KAAK,QAAQ,OACfnC,EAAM,OAASkD,GAAO,OAEtBlD,EAAM,OAASkD,GAAO,KAG1B,KAAK,UAAU,MAAQlD,CACzB,CAIA,WAAW,OAAQ,CACjB,MAAO,CACL,MAAAmC,GACA,OAAAe,EACN,CACE,CAIA,OAAO,IAAIopC,EAAKmmH,EAAU,CAExB,OADe,IAAI6C,GAAQ7C,CAAQ,EACrB,IAAInmH,CAAG,CACvB,CAIA,OAAO,UAAUA,EAAKmmH,EAAU,CAE9B,OADe,IAAI6C,GAAQ7C,CAAQ,EACrB,aAAanmH,CAAG,CAChC,CAIA,IAAIA,EAAK,CACPA,EAAMA,EAAI,QAAQ/7D,GAAM,eAAgB;AAAA,CAAI,EAC5C,KAAK,YAAY+7D,EAAK,KAAK,MAAM,EACjC,QAAS75O,EAAI,EAAGA,EAAI,KAAK,YAAY,OAAQA,IAAK,CAChD,MAAMg7B,EAAO,KAAK,YAAYh7B,CAAC,EAC/B,KAAK,aAAag7B,EAAK,IAAKA,EAAK,MAAM,CACzC,CACA,YAAK,YAAc,GACZ,KAAK,MACd,CACA,YAAY6+M,EAAKo7C,EAAS,GAAI6tE,EAAuB,GAAO,WAI1D,IAHI,KAAK,QAAQ,WACfjpH,EAAMA,EAAI,QAAQ/7D,GAAM,cAAe,MAAM,EAAE,QAAQA,GAAM,UAAW,EAAE,GAErE+7D,GAAK,CACV,IAAIyxB,EACJ,IAAI96N,GAAApW,EAAA,KAAK,QAAQ,aAAb,YAAAA,EAAyB,QAAzB,MAAAoW,EAAgC,KAAMuyT,IACpCz3F,EAAQy3F,EAAa,KAAK,CAAE,MAAO,IAAI,EAAIlpH,EAAKo7C,CAAM,IACxDp7C,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACV,IAEF,IAEP,SAEF,GAAIA,EAAQ,KAAK,UAAU,MAAMzxB,CAAG,EAAG,CACrCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,MAAM27C,EAAYhyB,EAAO,GAAG,EAAE,EAC1B3pB,EAAM,IAAI,SAAW,GAAK27C,IAAc,OAC1CA,EAAU,KAAO;AAAA,EAEjBhyB,EAAO,KAAK3pB,CAAK,EAEnB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,KAAKzxB,CAAG,EAAG,CACpCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,MAAM27C,EAAYhyB,EAAO,GAAG,EAAE,GAC1BgyB,GAAA,YAAAA,EAAW,QAAS,cAAeA,GAAA,YAAAA,EAAW,QAAS,QACzDA,EAAU,KAAO;AAAA,EAAO37C,EAAM,IAC9B27C,EAAU,MAAQ;AAAA,EAAO37C,EAAM,KAC/B,KAAK,YAAY,GAAG,EAAE,EAAE,IAAM27C,EAAU,MAExChyB,EAAO,KAAK3pB,CAAK,EAEnB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,OAAOzxB,CAAG,EAAG,CACtCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,QAAQzxB,CAAG,EAAG,CACvCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,GAAGzxB,CAAG,EAAG,CAClCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,WAAWzxB,CAAG,EAAG,CAC1CA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,KAAKzxB,CAAG,EAAG,CACpCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,KAAKzxB,CAAG,EAAG,CACpCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,IAAIzxB,CAAG,EAAG,CACnCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,MAAM27C,EAAYhyB,EAAO,GAAG,EAAE,GAC1BgyB,GAAA,YAAAA,EAAW,QAAS,cAAeA,GAAA,YAAAA,EAAW,QAAS,QACzDA,EAAU,KAAO;AAAA,EAAO37C,EAAM,IAC9B27C,EAAU,MAAQ;AAAA,EAAO37C,EAAM,IAC/B,KAAK,YAAY,GAAG,EAAE,EAAE,IAAM27C,EAAU,MAC9B,KAAK,OAAO,MAAM37C,EAAM,GAAG,IACrC,KAAK,OAAO,MAAMA,EAAM,GAAG,EAAI,CAC7B,KAAMA,EAAM,KACZ,MAAOA,EAAM,KACzB,GAEQ,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,MAAMzxB,CAAG,EAAG,CACrCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,SAASzxB,CAAG,EAAG,CACxCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,IAAI03F,EAASnpH,EACb,IAAIzuK,EAAA,KAAK,QAAQ,aAAb,MAAAA,EAAyB,WAAY,CACvC,IAAIp/D,EAAa,IACjB,MAAMi3V,EAAUppH,EAAI,MAAM,CAAC,EAC3B,IAAIqpH,EACJ,KAAK,QAAQ,WAAW,WAAW,QAASC,GAAkB,CAC5DD,EAAYC,EAAc,KAAK,CAAE,MAAO,IAAI,EAAIF,CAAO,EACnD,OAAOC,GAAc,UAAYA,GAAa,IAChDl3V,EAAa,KAAK,IAAIA,EAAYk3V,CAAS,EAE/C,CAAC,EACGl3V,EAAa,KAAYA,GAAc,IACzCg3V,EAASnpH,EAAI,UAAU,EAAG7tO,EAAa,CAAC,EAE5C,CACA,GAAI,KAAK,MAAM,MAAQs/P,EAAQ,KAAK,UAAU,UAAU03F,CAAM,GAAI,CAChE,MAAM/7C,EAAYhyB,EAAO,GAAG,EAAE,EAC1B6tE,IAAwB77C,GAAA,YAAAA,EAAW,QAAS,aAC9CA,EAAU,KAAO;AAAA,EAAO37C,EAAM,IAC9B27C,EAAU,MAAQ;AAAA,EAAO37C,EAAM,KAC/B,KAAK,YAAY,IAAG,EACpB,KAAK,YAAY,GAAG,EAAE,EAAE,IAAM27C,EAAU,MAExChyB,EAAO,KAAK3pB,CAAK,EAEnBw3F,EAAuBE,EAAO,SAAWnpH,EAAI,OAC7CA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,KAAKzxB,CAAG,EAAG,CACpCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,MAAM27C,EAAYhyB,EAAO,GAAG,EAAE,GAC1BgyB,GAAA,YAAAA,EAAW,QAAS,QACtBA,EAAU,KAAO;AAAA,EAAO37C,EAAM,IAC9B27C,EAAU,MAAQ;AAAA,EAAO37C,EAAM,KAC/B,KAAK,YAAY,IAAG,EACpB,KAAK,YAAY,GAAG,EAAE,EAAE,IAAM27C,EAAU,MAExChyB,EAAO,KAAK3pB,CAAK,EAEnB,QACF,CACA,GAAIzxB,EAAK,CACP,MAAMupH,EAAS,0BAA4BvpH,EAAI,WAAW,CAAC,EAC3D,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAMupH,CAAM,EACpB,KACF,KACE,OAAM,IAAI,MAAMA,CAAM,CAE1B,CACF,CACA,YAAK,MAAM,IAAM,GACVnuE,CACT,CACA,OAAOp7C,EAAKo7C,EAAS,GAAI,CACvB,YAAK,YAAY,KAAK,CAAE,IAAAp7C,EAAK,OAAAo7C,CAAM,CAAE,EAC9BA,CACT,CAIA,aAAap7C,EAAKo7C,EAAS,GAAI,WAC7B,IAAI+sE,EAAYnoH,EACZjxO,EAAQ,KACZ,GAAI,KAAK,OAAO,MAAO,CACrB,MAAMiiD,EAAQ,OAAO,KAAK,KAAK,OAAO,KAAK,EAC3C,GAAIA,EAAM,OAAS,EACjB,MAAQjiD,EAAQ,KAAK,UAAU,MAAM,OAAO,cAAc,KAAKo5V,CAAS,IAAM,MACxEn3S,EAAM,SAASjiD,EAAM,CAAC,EAAE,MAAMA,EAAM,CAAC,EAAE,YAAY,GAAG,EAAI,EAAG,EAAE,CAAC,IAClEo5V,EAAYA,EAAU,MAAM,EAAGp5V,EAAM,KAAK,EAAI,IAAM,IAAI,OAAOA,EAAM,CAAC,EAAE,OAAS,CAAC,EAAI,IAAMo5V,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,cAAc,SAAS,EAIvK,CACA,MAAQp5V,EAAQ,KAAK,UAAU,MAAM,OAAO,eAAe,KAAKo5V,CAAS,IAAM,MAC7EA,EAAYA,EAAU,MAAM,EAAGp5V,EAAM,KAAK,EAAI,KAAOo5V,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,eAAe,SAAS,EAE3H,MAAQp5V,EAAQ,KAAK,UAAU,MAAM,OAAO,UAAU,KAAKo5V,CAAS,IAAM,MACxEA,EAAYA,EAAU,MAAM,EAAGp5V,EAAM,KAAK,EAAI,IAAM,IAAI,OAAOA,EAAM,CAAC,EAAE,OAAS,CAAC,EAAI,IAAMo5V,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,UAAU,SAAS,EAE7J,IAAIqB,EAAe,GACf1X,EAAW,GACf,KAAO9xG,GAAK,CACLwpH,IACH1X,EAAW,IAEb0X,EAAe,GACf,IAAI/3F,EACJ,IAAI96N,GAAApW,EAAA,KAAK,QAAQ,aAAb,YAAAA,EAAyB,SAAzB,MAAAoW,EAAiC,KAAMuyT,IACrCz3F,EAAQy3F,EAAa,KAAK,CAAE,MAAO,IAAI,EAAIlpH,EAAKo7C,CAAM,IACxDp7C,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACV,IAEF,IAEP,SAEF,GAAIA,EAAQ,KAAK,UAAU,OAAOzxB,CAAG,EAAG,CACtCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,IAAIzxB,CAAG,EAAG,CACnCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,KAAKzxB,CAAG,EAAG,CACpCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,QAAQzxB,EAAK,KAAK,OAAO,KAAK,EAAG,CAC1DA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC,MAAM27C,EAAYhyB,EAAO,GAAG,EAAE,EAC1B3pB,EAAM,OAAS,SAAU27C,GAAA,YAAAA,EAAW,QAAS,QAC/CA,EAAU,KAAO37C,EAAM,IACvB27C,EAAU,MAAQ37C,EAAM,MAExB2pB,EAAO,KAAK3pB,CAAK,EAEnB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,SAASzxB,EAAKmoH,EAAWrW,CAAQ,EAAG,CAC7D9xG,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,SAASzxB,CAAG,EAAG,CACxCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,GAAGzxB,CAAG,EAAG,CAClCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,IAAIzxB,CAAG,EAAG,CACnCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAIA,EAAQ,KAAK,UAAU,SAASzxB,CAAG,EAAG,CACxCA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,GAAI,CAAC,KAAK,MAAM,SAAWA,EAAQ,KAAK,UAAU,IAAIzxB,CAAG,GAAI,CAC3DA,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EACpC2pB,EAAO,KAAK3pB,CAAK,EACjB,QACF,CACA,IAAI03F,EAASnpH,EACb,IAAIzuK,EAAA,KAAK,QAAQ,aAAb,MAAAA,EAAyB,YAAa,CACxC,IAAIp/D,EAAa,IACjB,MAAMi3V,EAAUppH,EAAI,MAAM,CAAC,EAC3B,IAAIqpH,EACJ,KAAK,QAAQ,WAAW,YAAY,QAASC,GAAkB,CAC7DD,EAAYC,EAAc,KAAK,CAAE,MAAO,IAAI,EAAIF,CAAO,EACnD,OAAOC,GAAc,UAAYA,GAAa,IAChDl3V,EAAa,KAAK,IAAIA,EAAYk3V,CAAS,EAE/C,CAAC,EACGl3V,EAAa,KAAYA,GAAc,IACzCg3V,EAASnpH,EAAI,UAAU,EAAG7tO,EAAa,CAAC,EAE5C,CACA,GAAIs/P,EAAQ,KAAK,UAAU,WAAW03F,CAAM,EAAG,CAC7CnpH,EAAMA,EAAI,UAAUyxB,EAAM,IAAI,MAAM,EAChCA,EAAM,IAAI,MAAM,EAAE,IAAM,MAC1BqgF,EAAWrgF,EAAM,IAAI,MAAM,EAAE,GAE/B+3F,EAAe,GACf,MAAMp8C,EAAYhyB,EAAO,GAAG,EAAE,GAC1BgyB,GAAA,YAAAA,EAAW,QAAS,QACtBA,EAAU,KAAO37C,EAAM,IACvB27C,EAAU,MAAQ37C,EAAM,MAExB2pB,EAAO,KAAK3pB,CAAK,EAEnB,QACF,CACA,GAAIzxB,EAAK,CACP,MAAMupH,EAAS,0BAA4BvpH,EAAI,WAAW,CAAC,EAC3D,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAMupH,CAAM,EACpB,KACF,KACE,OAAM,IAAI,MAAMA,CAAM,CAE1B,CACF,CACA,OAAOnuE,CACT,CACF,EAGIquE,GAAY,KAAM,CAIpB,YAAYtD,EAAU,CAHtBvoU,GAAA,gBACAA,GAAA,eAGE,KAAK,QAAUuoU,GAAYnE,EAC7B,CACA,MAAMvwF,EAAO,CACX,MAAO,EACT,CACA,KAAK,CAAE,KAAAxsP,EAAM,KAAA6rQ,EAAM,QAAA2T,CAAO,EAAI,OAC5B,MAAMilE,GAAcnpU,GAAAuwP,GAAQ,IAAI,MAAM7sG,GAAM,aAAa,IAArC,YAAA1jJ,EAAyC,GACvDsB,EAAO5c,EAAK,QAAQg/J,GAAM,cAAe,EAAE,EAAI;AAAA,EACrD,OAAKylL,EAGE,8BAAgCzE,GAAQyE,CAAU,EAAI,MAAQjlE,EAAU5iQ,EAAOojU,GAAQpjU,EAAM,EAAI,GAAK;AAAA,EAFpG,eAAiB4iQ,EAAU5iQ,EAAOojU,GAAQpjU,EAAM,EAAI,GAAK;AAAA,CAGpE,CACA,WAAW,CAAE,OAAAu5P,GAAU,CAErB,MAAO;AAAA,EADM,KAAK,OAAO,MAAMA,CAAM,CAEnC;AAAA,CAEJ,CACA,KAAK,CAAE,KAAAn2Q,GAAQ,CACb,OAAOA,CACT,CACA,QAAQ,CAAE,OAAAm2Q,EAAQ,MAAA3kO,GAAS,CACzB,MAAO,KAAKA,CAAK,IAAI,KAAK,OAAO,YAAY2kO,CAAM,CAAC,MAAM3kO,CAAK;AAAA,CAEjE,CACA,GAAGg7M,EAAO,CACR,MAAO;AAAA,CACT,CACA,KAAKA,EAAO,CACV,MAAMk4F,EAAUl4F,EAAM,QAChB7qL,EAAQ6qL,EAAM,MACpB,IAAIp6L,EAAO,GACX,QAASr/C,EAAI,EAAGA,EAAIy5O,EAAM,MAAM,OAAQz5O,IAAK,CAC3C,MAAMqV,EAAOokO,EAAM,MAAMz5O,CAAC,EAC1Bq/C,GAAQ,KAAK,SAAShqC,CAAI,CAC5B,CACA,MAAMnsB,EAAOyoV,EAAU,KAAO,KACxBC,EAAYD,GAAW/iR,IAAU,EAAI,WAAaA,EAAQ,IAAM,GACtE,MAAO,IAAM1lE,EAAO0oV,EAAY;AAAA,EAAQvyR,EAAO,KAAOn2D,EAAO;AAAA,CAC/D,CACA,SAASmsB,EAAM,OACb,IAAIw8T,EAAW,GACf,GAAIx8T,EAAK,KAAM,CACb,MAAMy8T,EAAW,KAAK,SAAS,CAAE,QAAS,CAAC,CAACz8T,EAAK,QAAS,EACtDA,EAAK,QACH9M,EAAA8M,EAAK,OAAO,CAAC,IAAb,YAAA9M,EAAgB,QAAS,aAC3B8M,EAAK,OAAO,CAAC,EAAE,KAAOy8T,EAAW,IAAMz8T,EAAK,OAAO,CAAC,EAAE,KAClDA,EAAK,OAAO,CAAC,EAAE,QAAUA,EAAK,OAAO,CAAC,EAAE,OAAO,OAAS,GAAKA,EAAK,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,OAAS,SACjGA,EAAK,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,KAAOy8T,EAAW,IAAM7E,GAAQ53T,EAAK,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EACtFA,EAAK,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,QAAU,KAGrCA,EAAK,OAAO,QAAQ,CAClB,KAAM,OACN,IAAKy8T,EAAW,IAChB,KAAMA,EAAW,IACjB,QAAS,EACrB,CAAW,EAGHD,GAAYC,EAAW,GAE3B,CACA,OAAAD,GAAY,KAAK,OAAO,MAAMx8T,EAAK,OAAQ,CAAC,CAACA,EAAK,KAAK,EAChD,OAAOw8T,CAAQ;AAAA,CAExB,CACA,SAAS,CAAE,QAAAE,GAAW,CACpB,MAAO,WAAaA,EAAU,cAAgB,IAAM,8BACtD,CACA,UAAU,CAAE,OAAA3uE,GAAU,CACpB,MAAO,MAAM,KAAK,OAAO,YAAYA,CAAM,CAAC;AAAA,CAE9C,CACA,MAAM3pB,EAAO,CACX,IAAIz2M,EAAS,GACTo4N,EAAO,GACX,QAASp7P,EAAI,EAAGA,EAAIy5O,EAAM,OAAO,OAAQz5O,IACvCo7P,GAAQ,KAAK,UAAU3hB,EAAM,OAAOz5O,CAAC,CAAC,EAExCgjC,GAAU,KAAK,SAAS,CAAE,KAAMo4N,CAAI,CAAE,EACtC,IAAI/7M,EAAO,GACX,QAASr/C,EAAI,EAAGA,EAAIy5O,EAAM,KAAK,OAAQz5O,IAAK,CAC1C,MAAMm7P,EAAM1hB,EAAM,KAAKz5O,CAAC,EACxBo7P,EAAO,GACP,QAASrvR,EAAI,EAAGA,EAAIovR,EAAI,OAAQpvR,IAC9BqvR,GAAQ,KAAK,UAAUD,EAAIpvR,CAAC,CAAC,EAE/BszE,GAAQ,KAAK,SAAS,CAAE,KAAM+7M,CAAI,CAAE,CACtC,CACA,OAAI/7M,IAAMA,EAAO,UAAUA,CAAI,YACxB;AAAA;AAAA,EAAuBrc,EAAS;AAAA,EAAeqc,EAAO;AAAA,CAC/D,CACA,SAAS,CAAE,KAAApyD,GAAQ,CACjB,MAAO;AAAA,EACTA,CAAI;AAAA,CAEJ,CACA,UAAUwsP,EAAO,CACf,MAAMl+J,EAAU,KAAK,OAAO,YAAYk+J,EAAM,MAAM,EAC9CvwP,EAAOuwP,EAAM,OAAS,KAAO,KAEnC,OADaA,EAAM,MAAQ,IAAIvwP,CAAI,WAAWuwP,EAAM,KAAK,KAAO,IAAIvwP,CAAI,KAC1DqyF,EAAU,KAAKryF,CAAI;AAAA,CAEnC,CAIA,OAAO,CAAE,OAAAk6Q,GAAU,CACjB,MAAO,WAAW,KAAK,OAAO,YAAYA,CAAM,CAAC,WACnD,CACA,GAAG,CAAE,OAAAA,GAAU,CACb,MAAO,OAAO,KAAK,OAAO,YAAYA,CAAM,CAAC,OAC/C,CACA,SAAS,CAAE,KAAAn2Q,GAAQ,CACjB,MAAO,SAASggV,GAAQhgV,EAAM,EAAI,CAAC,SACrC,CACA,GAAGwsP,EAAO,CACR,MAAO,MACT,CACA,IAAI,CAAE,OAAA2pB,GAAU,CACd,MAAO,QAAQ,KAAK,OAAO,YAAYA,CAAM,CAAC,QAChD,CACA,KAAK,CAAE,KAAA77Q,EAAM,MAAAof,EAAO,OAAAy8P,CAAM,EAAI,CAC5B,MAAMn2Q,EAAO,KAAK,OAAO,YAAYm2Q,CAAM,EACrC4uE,EAAY7E,IAAS5lV,CAAI,EAC/B,GAAIyqV,IAAc,KAChB,OAAO/kV,EAET1F,EAAOyqV,EACP,IAAI7mT,EAAM,YAAc5jC,EAAO,IAC/B,OAAIof,IACFwkB,GAAO,WAAa8hT,GAAQtmU,CAAK,EAAI,KAEvCwkB,GAAO,IAAMl+B,EAAO,OACbk+B,CACT,CACA,MAAM,CAAE,KAAA5jC,EAAM,MAAAof,EAAO,KAAA1Z,EAAM,OAAAm2Q,CAAM,EAAI,CAC/BA,IACFn2Q,EAAO,KAAK,OAAO,YAAYm2Q,EAAQ,KAAK,OAAO,YAAY,GAEjE,MAAM4uE,EAAY7E,IAAS5lV,CAAI,EAC/B,GAAIyqV,IAAc,KAChB,OAAO/E,GAAQhgV,CAAI,EAErB1F,EAAOyqV,EACP,IAAI7mT,EAAM,aAAa5jC,CAAI,UAAU0F,CAAI,IACzC,OAAI0Z,IACFwkB,GAAO,WAAW8hT,GAAQtmU,CAAK,CAAC,KAElCwkB,GAAO,IACAA,CACT,CACA,KAAKsuN,EAAO,CACV,MAAO,WAAYA,GAASA,EAAM,OAAS,KAAK,OAAO,YAAYA,EAAM,MAAM,EAAI,YAAaA,GAASA,EAAM,QAAUA,EAAM,KAAOwzF,GAAQxzF,EAAM,IAAI,CAC1J,CACF,EAGIw4F,GAAgB,KAAM,CAExB,OAAO,CAAE,KAAAhlV,GAAQ,CACf,OAAOA,CACT,CACA,GAAG,CAAE,KAAAA,GAAQ,CACX,OAAOA,CACT,CACA,SAAS,CAAE,KAAAA,GAAQ,CACjB,OAAOA,CACT,CACA,IAAI,CAAE,KAAAA,GAAQ,CACZ,OAAOA,CACT,CACA,KAAK,CAAE,KAAAA,GAAQ,CACb,OAAOA,CACT,CACA,KAAK,CAAE,KAAAA,GAAQ,CACb,OAAOA,CACT,CACA,KAAK,CAAE,KAAAA,GAAQ,CACb,MAAO,GAAKA,CACd,CACA,MAAM,CAAE,KAAAA,GAAQ,CACd,MAAO,GAAKA,CACd,CACA,IAAK,CACH,MAAO,EACT,CACF,EAGIilV,GAAU,MAAMC,EAAS,CAI3B,YAAYhE,EAAU,CAHtBvoU,GAAA,gBACAA,GAAA,iBACAA,GAAA,qBAEE,KAAK,QAAUuoU,GAAYnE,GAC3B,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,IAAIyH,GACrD,KAAK,SAAW,KAAK,QAAQ,SAC7B,KAAK,SAAS,QAAU,KAAK,QAC7B,KAAK,SAAS,OAAS,KACvB,KAAK,aAAe,IAAIQ,EAC1B,CAIA,OAAO,MAAM7uE,EAAQ+qE,EAAU,CAE7B,OADgB,IAAIgE,GAAShE,CAAQ,EACtB,MAAM/qE,CAAM,CAC7B,CAIA,OAAO,YAAYA,EAAQ+qE,EAAU,CAEnC,OADgB,IAAIgE,GAAShE,CAAQ,EACtB,YAAY/qE,CAAM,CACnC,CAIA,MAAMA,EAAQviK,EAAM,GAAM,SACxB,IAAI11E,EAAM,GACV,QAASh9C,EAAI,EAAGA,EAAIi1R,EAAO,OAAQj1R,IAAK,CACtC,MAAMikW,EAAWhvE,EAAOj1R,CAAC,EACzB,IAAIwwC,GAAApW,EAAA,KAAK,QAAQ,aAAb,YAAAA,EAAyB,YAAzB,MAAAoW,EAAqCyzT,EAAS,MAAO,CACvD,MAAMC,EAAeD,EACfnyE,EAAM,KAAK,QAAQ,WAAW,UAAUoyE,EAAa,IAAI,EAAE,KAAK,CAAE,OAAQ,IAAI,EAAIA,CAAY,EACpG,GAAIpyE,IAAQ,IAAS,CAAC,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,MAAM,EAAE,SAASoyE,EAAa,IAAI,EAAG,CAChJlnT,GAAO80O,GAAO,GACd,QACF,CACF,CACA,MAAMxmB,EAAQ24F,EACd,OAAQ34F,EAAM,KAAI,CAChB,IAAK,QAAS,CACZtuN,GAAO,KAAK,SAAS,MAAMsuN,CAAK,EAChC,QACF,CACA,IAAK,KAAM,CACTtuN,GAAO,KAAK,SAAS,GAAGsuN,CAAK,EAC7B,QACF,CACA,IAAK,UAAW,CACdtuN,GAAO,KAAK,SAAS,QAAQsuN,CAAK,EAClC,QACF,CACA,IAAK,OAAQ,CACXtuN,GAAO,KAAK,SAAS,KAAKsuN,CAAK,EAC/B,QACF,CACA,IAAK,QAAS,CACZtuN,GAAO,KAAK,SAAS,MAAMsuN,CAAK,EAChC,QACF,CACA,IAAK,aAAc,CACjBtuN,GAAO,KAAK,SAAS,WAAWsuN,CAAK,EACrC,QACF,CACA,IAAK,OAAQ,CACXtuN,GAAO,KAAK,SAAS,KAAKsuN,CAAK,EAC/B,QACF,CACA,IAAK,OAAQ,CACXtuN,GAAO,KAAK,SAAS,KAAKsuN,CAAK,EAC/B,QACF,CACA,IAAK,YAAa,CAChBtuN,GAAO,KAAK,SAAS,UAAUsuN,CAAK,EACpC,QACF,CACA,IAAK,OAAQ,CACX,IAAI64F,EAAY74F,EACZp6L,EAAO,KAAK,SAAS,KAAKizR,CAAS,EACvC,KAAOnkW,EAAI,EAAIi1R,EAAO,QAAUA,EAAOj1R,EAAI,CAAC,EAAE,OAAS,QACrDmkW,EAAYlvE,EAAO,EAAEj1R,CAAC,EACtBkxE,GAAQ;AAAA,EAAO,KAAK,SAAS,KAAKizR,CAAS,EAEzCzxO,EACF11E,GAAO,KAAK,SAAS,UAAU,CAC7B,KAAM,YACN,IAAKk0B,EACL,KAAMA,EACN,OAAQ,CAAC,CAAE,KAAM,OAAQ,IAAKA,EAAM,KAAMA,EAAM,QAAS,EAAI,CAAE,CAC7E,CAAa,EAEDl0B,GAAOk0B,EAET,QACF,CACA,QAAS,CACP,MAAMkyR,EAAS,eAAiB93F,EAAM,KAAO,wBAC7C,GAAI,KAAK,QAAQ,OACf,eAAQ,MAAM83F,CAAM,EACb,GAEP,MAAM,IAAI,MAAMA,CAAM,CAE1B,CACR,CACI,CACA,OAAOpmT,CACT,CAIA,YAAYi4O,EAAQ/gC,EAAW,KAAK,SAAU,SAC5C,IAAIl3M,EAAM,GACV,QAASh9C,EAAI,EAAGA,EAAIi1R,EAAO,OAAQj1R,IAAK,CACtC,MAAMikW,EAAWhvE,EAAOj1R,CAAC,EACzB,IAAIwwC,GAAApW,EAAA,KAAK,QAAQ,aAAb,YAAAA,EAAyB,YAAzB,MAAAoW,EAAqCyzT,EAAS,MAAO,CACvD,MAAMnyE,EAAM,KAAK,QAAQ,WAAW,UAAUmyE,EAAS,IAAI,EAAE,KAAK,CAAE,OAAQ,IAAI,EAAIA,CAAQ,EAC5F,GAAInyE,IAAQ,IAAS,CAAC,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,MAAM,EAAE,SAASmyE,EAAS,IAAI,EAAG,CAClIjnT,GAAO80O,GAAO,GACd,QACF,CACF,CACA,MAAMxmB,EAAQ24F,EACd,OAAQ34F,EAAM,KAAI,CAChB,IAAK,SAAU,CACbtuN,GAAOk3M,EAAS,KAAKoX,CAAK,EAC1B,KACF,CACA,IAAK,OAAQ,CACXtuN,GAAOk3M,EAAS,KAAKoX,CAAK,EAC1B,KACF,CACA,IAAK,OAAQ,CACXtuN,GAAOk3M,EAAS,KAAKoX,CAAK,EAC1B,KACF,CACA,IAAK,QAAS,CACZtuN,GAAOk3M,EAAS,MAAMoX,CAAK,EAC3B,KACF,CACA,IAAK,SAAU,CACbtuN,GAAOk3M,EAAS,OAAOoX,CAAK,EAC5B,KACF,CACA,IAAK,KAAM,CACTtuN,GAAOk3M,EAAS,GAAGoX,CAAK,EACxB,KACF,CACA,IAAK,WAAY,CACftuN,GAAOk3M,EAAS,SAASoX,CAAK,EAC9B,KACF,CACA,IAAK,KAAM,CACTtuN,GAAOk3M,EAAS,GAAGoX,CAAK,EACxB,KACF,CACA,IAAK,MAAO,CACVtuN,GAAOk3M,EAAS,IAAIoX,CAAK,EACzB,KACF,CACA,IAAK,OAAQ,CACXtuN,GAAOk3M,EAAS,KAAKoX,CAAK,EAC1B,KACF,CACA,QAAS,CACP,MAAM83F,EAAS,eAAiB93F,EAAM,KAAO,wBAC7C,GAAI,KAAK,QAAQ,OACf,eAAQ,MAAM83F,CAAM,EACb,GAEP,MAAM,IAAI,MAAMA,CAAM,CAE1B,CACR,CACI,CACA,OAAOpmT,CACT,CACF,KAGIonT,IAAShqU,GAAA,KAAM,CAGjB,YAAY4lU,EAAU,CAFtBvoU,GAAA,gBACAA,GAAA,cAEE,KAAK,QAAUuoU,GAAYnE,EAC7B,CASA,WAAWwI,EAAU,CACnB,OAAOA,CACT,CAIA,YAAYtF,EAAO,CACjB,OAAOA,CACT,CAIA,iBAAiB9pE,EAAQ,CACvB,OAAOA,CACT,CAIA,cAAe,CACb,OAAO,KAAK,MAAQ2tE,GAAO,IAAMA,GAAO,SAC1C,CAIA,eAAgB,CACd,OAAO,KAAK,MAAQmB,GAAQ,MAAQA,GAAQ,WAC9C,CACF,EAnCEtsU,GANW2C,GAMJ,mBAAmC,IAAI,IAAI,CAChD,aACA,cACA,kBACJ,CAAG,GAVUA,IA4CTkqU,IAAS,KAAM,CAWjB,eAAejgW,EAAM,CAVrBozB,GAAA,gBAAWmkU,GAAY,GACvBnkU,GAAA,eAAU,KAAK,YACfA,GAAA,aAAQ,KAAK,cAAc,EAAI,GAC/BA,GAAA,mBAAc,KAAK,cAAc,EAAK,GACtCA,GAAA,cAASssU,IACTtsU,GAAA,gBAAW6rU,IACX7rU,GAAA,oBAAeqsU,IACfrsU,GAAA,aAAQmrU,IACRnrU,GAAA,iBAAYsoU,IACZtoU,GAAA,aAAQ2sU,IAEN,KAAK,IAAI,GAAG//V,CAAI,CAClB,CAIA,WAAW4wR,EAAQn6R,EAAU,SAC3B,IAAIm8C,EAAS,GACb,UAAWq0N,KAAS2pB,EAElB,OADAh+O,EAASA,EAAO,OAAOn8C,EAAS,KAAK,KAAMwwQ,CAAK,CAAC,EACzCA,EAAM,KAAI,CAChB,IAAK,QAAS,CACZ,MAAMi5F,EAAaj5F,EACnB,UAAW2hB,KAAQs3E,EAAW,OAC5BttT,EAASA,EAAO,OAAO,KAAK,WAAWg2O,EAAK,OAAQnyR,CAAQ,CAAC,EAE/D,UAAWkyR,KAAOu3E,EAAW,KAC3B,UAAWt3E,KAAQD,EACjB/1O,EAASA,EAAO,OAAO,KAAK,WAAWg2O,EAAK,OAAQnyR,CAAQ,CAAC,EAGjE,KACF,CACA,IAAK,OAAQ,CACX,MAAM0pW,EAAYl5F,EAClBr0N,EAASA,EAAO,OAAO,KAAK,WAAWutT,EAAU,MAAO1pW,CAAQ,CAAC,EACjE,KACF,CACA,QAAS,CACP,MAAMopW,EAAe54F,GACjB96N,GAAApW,EAAA,KAAK,SAAS,aAAd,YAAAA,EAA0B,cAA1B,MAAAoW,EAAwC0zT,EAAa,MACvD,KAAK,SAAS,WAAW,YAAYA,EAAa,IAAI,EAAE,QAASO,GAAgB,CAC/E,MAAMC,EAAUR,EAAaO,CAAW,EAAE,KAAK,GAAQ,EACvDxtT,EAASA,EAAO,OAAO,KAAK,WAAWytT,EAAS5pW,CAAQ,CAAC,CAC3D,CAAC,EACQopW,EAAa,SACtBjtT,EAASA,EAAO,OAAO,KAAK,WAAWitT,EAAa,OAAQppW,CAAQ,CAAC,EAEzE,CACR,CAEI,OAAOm8C,CACT,CACA,OAAO5yC,EAAM,CACX,MAAMg/N,EAAa,KAAK,SAAS,YAAc,CAAE,UAAW,GAAI,YAAa,EAAE,EAC/E,OAAAh/N,EAAK,QAASsgW,GAAS,CACrB,MAAMrxV,EAAO,CAAE,GAAGqxV,CAAI,EAqDtB,GApDArxV,EAAK,MAAQ,KAAK,SAAS,OAASA,EAAK,OAAS,GAC9CqxV,EAAK,aACPA,EAAK,WAAW,QAAS1sH,GAAQ,CAC/B,GAAI,CAACA,EAAI,KACP,MAAM,IAAI,MAAM,yBAAyB,EAE3C,GAAI,aAAcA,EAAK,CACrB,MAAM2sH,EAAevhI,EAAW,UAAU4U,EAAI,IAAI,EAC9C2sH,EACFvhI,EAAW,UAAU4U,EAAI,IAAI,EAAI,YAAY4sH,EAAO,CAClD,IAAI/yE,EAAM75C,EAAI,SAAS,MAAM,KAAM4sH,CAAK,EACxC,OAAI/yE,IAAQ,KACVA,EAAM8yE,EAAa,MAAM,KAAMC,CAAK,GAE/B/yE,CACT,EAEAzuD,EAAW,UAAU4U,EAAI,IAAI,EAAIA,EAAI,QAEzC,CACA,GAAI,cAAeA,EAAK,CACtB,GAAI,CAACA,EAAI,OAASA,EAAI,QAAU,SAAWA,EAAI,QAAU,SACvD,MAAM,IAAI,MAAM,6CAA6C,EAE/D,MAAM6sH,EAAWzhI,EAAW4U,EAAI,KAAK,EACjC6sH,EACFA,EAAS,QAAQ7sH,EAAI,SAAS,EAE9B5U,EAAW4U,EAAI,KAAK,EAAI,CAACA,EAAI,SAAS,EAEpCA,EAAI,QACFA,EAAI,QAAU,QACZ5U,EAAW,WACbA,EAAW,WAAW,KAAK4U,EAAI,KAAK,EAEpC5U,EAAW,WAAa,CAAC4U,EAAI,KAAK,EAE3BA,EAAI,QAAU,WACnB5U,EAAW,YACbA,EAAW,YAAY,KAAK4U,EAAI,KAAK,EAErC5U,EAAW,YAAc,CAAC4U,EAAI,KAAK,GAI3C,CACI,gBAAiBA,GAAOA,EAAI,cAC9B5U,EAAW,YAAY4U,EAAI,IAAI,EAAIA,EAAI,YAE3C,CAAC,EACD3kO,EAAK,WAAa+vN,GAEhBshI,EAAK,SAAU,CACjB,MAAMzwG,EAAW,KAAK,SAAS,UAAY,IAAIovG,GAAU,KAAK,QAAQ,EACtE,UAAW3xU,KAAQgzU,EAAK,SAAU,CAChC,GAAI,EAAEhzU,KAAQuiO,GACZ,MAAM,IAAI,MAAM,aAAaviO,CAAI,kBAAkB,EAErD,GAAI,CAAC,UAAW,QAAQ,EAAE,SAASA,CAAI,EACrC,SAEF,MAAMozU,EAAepzU,EACfqzU,EAAeL,EAAK,SAASI,CAAY,EACzCH,EAAe1wG,EAAS6wG,CAAY,EAC1C7wG,EAAS6wG,CAAY,EAAI,IAAIF,IAAU,CACrC,IAAI/yE,EAAMkzE,EAAa,MAAM9wG,EAAU2wG,CAAK,EAC5C,OAAI/yE,IAAQ,KACVA,EAAM8yE,EAAa,MAAM1wG,EAAU2wG,CAAK,GAEnC/yE,GAAO,EAChB,CACF,CACAx+Q,EAAK,SAAW4gP,CAClB,CACA,GAAIywG,EAAK,UAAW,CAClB,MAAM/1F,EAAY,KAAK,SAAS,WAAa,IAAImxF,GAAW,KAAK,QAAQ,EACzE,UAAWpuU,KAAQgzU,EAAK,UAAW,CACjC,GAAI,EAAEhzU,KAAQi9O,GACZ,MAAM,IAAI,MAAM,cAAcj9O,CAAI,kBAAkB,EAEtD,GAAI,CAAC,UAAW,QAAS,OAAO,EAAE,SAASA,CAAI,EAC7C,SAEF,MAAMszU,EAAgBtzU,EAChBuzU,EAAgBP,EAAK,UAAUM,CAAa,EAC5CE,EAAgBv2F,EAAUq2F,CAAa,EAC7Cr2F,EAAUq2F,CAAa,EAAI,IAAIJ,IAAU,CACvC,IAAI/yE,EAAMozE,EAAc,MAAMt2F,EAAWi2F,CAAK,EAC9C,OAAI/yE,IAAQ,KACVA,EAAMqzE,EAAc,MAAMv2F,EAAWi2F,CAAK,GAErC/yE,CACT,CACF,CACAx+Q,EAAK,UAAYs7P,CACnB,CACA,GAAI+1F,EAAK,MAAO,CACd,MAAM9gS,EAAQ,KAAK,SAAS,OAAS,IAAIugS,GACzC,UAAWzyU,KAAQgzU,EAAK,MAAO,CAC7B,GAAI,EAAEhzU,KAAQkyC,GACZ,MAAM,IAAI,MAAM,SAASlyC,CAAI,kBAAkB,EAEjD,GAAI,CAAC,UAAW,OAAO,EAAE,SAASA,CAAI,EACpC,SAEF,MAAMyzU,EAAYzzU,EACZ0zU,EAAYV,EAAK,MAAMS,CAAS,EAChCE,EAAWzhS,EAAMuhS,CAAS,EAC5BhB,GAAO,iBAAiB,IAAIzyU,CAAI,EAClCkyC,EAAMuhS,CAAS,EAAKpkV,GAAQ,CAC1B,GAAI,KAAK,SAAS,MAChB,OAAO,QAAQ,QAAQqkV,EAAU,KAAKxhS,EAAO7iD,CAAG,CAAC,EAAE,KAAMukV,GAChDD,EAAS,KAAKzhS,EAAO0hS,CAAI,CACjC,EAEH,MAAMzzE,EAAMuzE,EAAU,KAAKxhS,EAAO7iD,CAAG,EACrC,OAAOskV,EAAS,KAAKzhS,EAAOiuN,CAAG,CACjC,EAEAjuN,EAAMuhS,CAAS,EAAI,IAAIP,IAAU,CAC/B,IAAI/yE,EAAMuzE,EAAU,MAAMxhS,EAAOghS,CAAK,EACtC,OAAI/yE,IAAQ,KACVA,EAAMwzE,EAAS,MAAMzhS,EAAOghS,CAAK,GAE5B/yE,CACT,CAEJ,CACAx+Q,EAAK,MAAQuwD,CACf,CACA,GAAI8gS,EAAK,WAAY,CACnB,MAAMa,EAAc,KAAK,SAAS,WAC5BC,EAAiBd,EAAK,WAC5BrxV,EAAK,WAAa,SAASg4P,EAAO,CAChC,IAAIr0N,EAAS,GACb,OAAAA,EAAO,KAAKwuT,EAAe,KAAK,KAAMn6F,CAAK,CAAC,EACxCk6F,IACFvuT,EAASA,EAAO,OAAOuuT,EAAY,KAAK,KAAMl6F,CAAK,CAAC,GAE/Cr0N,CACT,CACF,CACA,KAAK,SAAW,CAAE,GAAG,KAAK,SAAU,GAAG3jC,CAAI,CAC7C,CAAC,EACM,IACT,CACA,WAAWs7I,EAAK,CACd,YAAK,SAAW,CAAE,GAAG,KAAK,SAAU,GAAGA,CAAG,EACnC,IACT,CACA,MAAMirF,EAAKmmH,EAAU,CACnB,OAAO4C,GAAO,IAAI/oH,EAAKmmH,GAAY,KAAK,QAAQ,CAClD,CACA,OAAO/qE,EAAQ+qE,EAAU,CACvB,OAAO+D,GAAQ,MAAM9uE,EAAQ+qE,GAAY,KAAK,QAAQ,CACxD,CACA,cAAc0F,EAAW,CA2CvB,MA1Ce,CAAC7rH,EAAKmmH,IAAa,CAChC,MAAM2F,EAAU,CAAE,GAAG3F,CAAQ,EACvBpxM,EAAM,CAAE,GAAG,KAAK,SAAU,GAAG+2M,CAAO,EACpClkB,EAAa,KAAK,QAAQ,CAAC,CAAC7yL,EAAI,OAAQ,CAAC,CAACA,EAAI,KAAK,EACzD,GAAI,KAAK,SAAS,QAAU,IAAQ+2M,EAAQ,QAAU,GACpD,OAAOlkB,EAAW,IAAI,MAAM,oIAAoI,CAAC,EAEnK,GAAI,OAAO5nG,EAAQ,KAAeA,IAAQ,KACxC,OAAO4nG,EAAW,IAAI,MAAM,gDAAgD,CAAC,EAE/E,GAAI,OAAO5nG,GAAQ,SACjB,OAAO4nG,EAAW,IAAI,MAAM,wCAA0C,OAAO,UAAU,SAAS,KAAK5nG,CAAG,EAAI,mBAAmB,CAAC,EAE9HjrF,EAAI,QACNA,EAAI,MAAM,QAAUA,EACpBA,EAAI,MAAM,MAAQ82M,GAEpB,MAAMjG,EAAS7wM,EAAI,MAAQA,EAAI,MAAM,aAAY,EAAK82M,EAAY9C,GAAO,IAAMA,GAAO,UAChFgD,EAAUh3M,EAAI,MAAQA,EAAI,MAAM,cAAa,EAAK82M,EAAY3B,GAAQ,MAAQA,GAAQ,YAC5F,GAAIn1M,EAAI,MACN,OAAO,QAAQ,QAAQA,EAAI,MAAQA,EAAI,MAAM,WAAWirF,CAAG,EAAIA,CAAG,EAAE,KAAMgsH,GAASpG,EAAOoG,EAAMj3M,CAAG,CAAC,EAAE,KAAMqmI,GAAWrmI,EAAI,MAAQA,EAAI,MAAM,iBAAiBqmI,CAAM,EAAIA,CAAM,EAAE,KAAMA,GAAWrmI,EAAI,WAAa,QAAQ,IAAI,KAAK,WAAWqmI,EAAQrmI,EAAI,UAAU,CAAC,EAAE,KAAK,IAAMqmI,CAAM,EAAIA,CAAM,EAAE,KAAMA,GAAW2wE,EAAQ3wE,EAAQrmI,CAAG,CAAC,EAAE,KAAMmwM,GAAUnwM,EAAI,MAAQA,EAAI,MAAM,YAAYmwM,CAAK,EAAIA,CAAK,EAAE,MAAMtd,CAAU,EAE/Z,GAAI,CACE7yL,EAAI,QACNirF,EAAMjrF,EAAI,MAAM,WAAWirF,CAAG,GAEhC,IAAIo7C,EAASwqE,EAAO5lH,EAAKjrF,CAAG,EACxBA,EAAI,QACNqmI,EAASrmI,EAAI,MAAM,iBAAiBqmI,CAAM,GAExCrmI,EAAI,YACN,KAAK,WAAWqmI,EAAQrmI,EAAI,UAAU,EAExC,IAAImwM,EAAQ6G,EAAQ3wE,EAAQrmI,CAAG,EAC/B,OAAIA,EAAI,QACNmwM,EAAQnwM,EAAI,MAAM,YAAYmwM,CAAK,GAE9BA,CACT,OAASvhW,EAAG,CACV,OAAOikV,EAAWjkV,CAAC,CACrB,CACF,CAEF,CACA,QAAQsoW,EAAQC,EAAO,CACrB,OAAQvoW,GAAM,CAEZ,GADAA,EAAE,SAAW;AAAA,2DACTsoW,EAAQ,CACV,MAAMzrU,EAAM,iCAAmCykU,GAAQthW,EAAE,QAAU,GAAI,EAAI,EAAI,SAC/E,OAAIuoW,EACK,QAAQ,QAAQ1rU,CAAG,EAErBA,CACT,CACA,GAAI0rU,EACF,OAAO,QAAQ,OAAOvoW,CAAC,EAEzB,MAAMA,CACR,CACF,CACF,EAGIwoW,GAAiB,IAAI1B,IACzB,SAAS2B,GAAOpsH,EAAKjrF,EAAK,CACxB,OAAOo3M,GAAe,MAAMnsH,EAAKjrF,CAAG,CACtC,CACAq3M,GAAO,QAAUA,GAAO,WAAa,SAASjG,EAAU,CACtD,OAAAgG,GAAe,WAAWhG,CAAQ,EAClCiG,GAAO,SAAWD,GAAe,SACjClK,IAAemK,GAAO,QAAQ,EACvBA,EACT,EACAA,GAAO,YAAcrK,GACrBqK,GAAO,SAAWpK,GAClBoK,GAAO,IAAM,YAAY5hW,EAAM,CAC7B,OAAA2hW,GAAe,IAAI,GAAG3hW,CAAI,EAC1B4hW,GAAO,SAAWD,GAAe,SACjClK,IAAemK,GAAO,QAAQ,EACvBA,EACT,EACAA,GAAO,WAAa,SAAShxE,EAAQn6R,EAAU,CAC7C,OAAOkrW,GAAe,WAAW/wE,EAAQn6R,CAAQ,CACnD,EACAmrW,GAAO,YAAcD,GAAe,YACpCC,GAAO,OAASlC,GAChBkC,GAAO,OAASlC,GAAQ,MACxBkC,GAAO,SAAW3C,GAClB2C,GAAO,aAAenC,GACtBmC,GAAO,MAAQrD,GACfqD,GAAO,MAAQrD,GAAO,IACtBqD,GAAO,UAAYlG,GACnBkG,GAAO,MAAQ7B,GACf6B,GAAO,MAAQA,GACDA,GAAO,QACJA,GAAO,WACdA,GAAO,IACAA,GAAO,WACNA,GAAO,YAEZlC,GAAQ,MACTnB,GAAO,ICvnEZ,SAAS1qG,IAAOguG,EAAO,CAE1B,QADIjvT,EAAS,GACJ0hD,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpC1hD,EAAO0hD,EAAK,CAAC,EAAI,UAAUA,CAAE,EAEjC,IAAIw/J,EAAU,MAAM,KAAK,OAAO+tG,GAAU,SAAW,CAACA,CAAK,EAAIA,CAAK,EACpE/tG,EAAQA,EAAQ,OAAS,CAAC,EAAIA,EAAQA,EAAQ,OAAS,CAAC,EAAE,QAAQ,iBAAkB,EAAE,EACtF,IAAIguG,EAAgBhuG,EAAQ,OAAO,SAAUntN,EAAKmT,EAAK,CACnD,IAAI51C,EAAU41C,EAAI,MAAM,qBAAqB,EAC7C,OAAI51C,EACOyiC,EAAI,OAAOziC,EAAQ,IAAI,SAAUK,EAAO,CAAE,IAAIwxB,EAAIoW,EAAI,OAAQA,GAAMpW,EAAKxxB,EAAM,MAAM,QAAQ,KAAO,MAAQwxB,IAAO,OAAS,OAASA,EAAG,UAAY,MAAQoW,IAAO,OAASA,EAAK,CAAG,CAAC,CAAC,EAE1LxF,CACX,EAAG,EAAE,EACL,GAAIm7T,EAAc,OAAQ,CACtB,IAAIC,EAAY,IAAI,OAAO;AAAA,OAAa,KAAK,IAAI,MAAM,KAAMD,CAAa,EAAI,IAAK,GAAG,EACtFhuG,EAAUA,EAAQ,IAAI,SAAUh6M,EAAK,CAAE,OAAOA,EAAI,QAAQioT,EAAW;AAAA,CAAI,CAAG,CAAC,CACjF,CACAjuG,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAC5C,IAAIjmH,EAASimH,EAAQ,CAAC,EACtB,OAAAlhN,EAAO,QAAQ,SAAUj+C,EAAOgH,EAAG,CAC/B,IAAIqmW,EAAen0N,EAAO,MAAM,eAAe,EAC3Co0N,EAAcD,EAAeA,EAAa,CAAC,EAAI,GAC/CE,EAAgBvtW,EAChB,OAAOA,GAAU,UAAYA,EAAM,SAAS;AAAA,CAAI,IAChDutW,EAAgB,OAAOvtW,CAAK,EACvB,MAAM;AAAA,CAAI,EACV,IAAI,SAAUmlD,EAAKn+C,EAAG,CACvB,OAAOA,IAAM,EAAIm+C,EAAM,GAAKmoT,EAAcnoT,CAC9C,CAAC,EACI,KAAK;AAAA,CAAI,GAElB+zF,GAAUq0N,EAAgBpuG,EAAQn4P,EAAI,CAAC,CAC3C,CAAC,EACMkyI,CACX,CClBG,IAACs0N,IAAc,CAChB,KAAM,mOACN,OAAQ,GACR,MAAO,EACT,EACIC,GAA6B,IAAI,IACjCC,IAA8B,IAAI,IAClCC,IAAoC90C,EAAQ+0C,GAAgB,CAC9D,UAAWC,KAAcD,EAAa,CACpC,GAAI,CAACC,EAAW,KACd,MAAM,IAAI,MACR,+EACR,EAGI,GADA/tT,GAAI,MAAM,yBAA0B+tT,EAAW,IAAI,EAC/C,WAAYA,EACdH,IAAY,IAAIG,EAAW,KAAMA,EAAW,MAAM,UACzC,UAAWA,EACpBJ,GAAW,IAAII,EAAW,KAAMA,EAAW,KAAK,MAEhD,OAAA/tT,GAAI,MAAM,uBAAwB+tT,CAAU,EACtC,IAAI,MAAM,qEAAqE,CAEzF,CACF,EAAG,mBAAmB,EAClBC,IAAwCj1C,EAAO,MAAOk1C,EAAUC,IAAmB,CACrF,MAAM54V,EAAO2qV,IAAagO,EAAU,GAAMC,IAAmB,MAAM,EACnE,GAAI,CAAC54V,EACH,MAAM,IAAI,MAAM,sBAAsB24V,CAAQ,EAAE,EAElD,MAAMr3N,EAASthI,EAAK,QAAU44V,EAC9B,GAAI,CAACt3N,EACH,MAAM,IAAI,MAAM,oCAAoCq3N,CAAQ,EAAE,EAEhE,IAAI1jG,EAAQojG,GAAW,IAAI/2N,CAAM,EACjC,GAAI,CAAC2zH,EAAO,CACV,MAAM6yD,EAASwwC,IAAY,IAAIh3N,CAAM,EACrC,GAAI,CAACwmL,EACH,MAAM,IAAI,MAAM,uBAAuB9nT,EAAK,MAAM,EAAE,EAEtD,GAAI,CAEFi1P,EAAQ,CAAE,GADK,MAAM6yD,EAAM,EACN,OAAAxmL,CAAM,EAC3B+2N,GAAW,IAAI/2N,EAAQ2zH,CAAK,CAC9B,OAAS7lQ,EAAG,CACV,MAAAs7C,GAAI,MAAMt7C,CAAC,EACL,IAAI,MAAM,4BAA4B4Q,EAAK,MAAM,EAAE,CAC3D,CACF,CACA,MAAM64V,EAAWrN,IAAYv2F,EAAOj1P,EAAK,IAAI,EAC7C,GAAI,CAAC64V,EACH,MAAM,IAAI,MAAM,mBAAmBF,CAAQ,EAAE,EAE/C,OAAOE,CACT,EAAG,uBAAuB,EACtBC,IAAkCr1C,EAAO,MAAOk1C,GAAa,CAC/D,GAAI,CACF,aAAMD,IAAsBC,CAAQ,EAC7B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAAG,iBAAiB,EAChBI,GAA6Bt1C,EAAO,MAAOk1C,EAAUxM,EAAgB6M,IAAoB,CAC3F,IAAIH,EACJ,GAAI,CACFA,EAAW,MAAMH,IAAsBC,EAAUxM,GAAA,YAAAA,EAAgB,cAAc,CACjF,OAAS/8V,EAAG,CACVs7C,GAAI,MAAMt7C,CAAC,EACXypW,EAAWT,GACb,CACA,MAAMa,EAAa/M,IAAU2M,EAAU1M,CAAc,EAC/Cz/F,EAAM4gG,IAAWJ,IAAW+L,EAAW,IAAI,EAAG,CAClD,GAAGA,EAAW,WACd,GAAGD,CACP,CAAG,EACD,OAAO7qC,GAAazhE,EAAKsgE,IAAW,CACtC,EAAG,YAAY,EAQf,SAASksC,IAAmBjD,EAAU,CAAE,iBAAAkD,GAAoB,CAE1D,MAAMC,EADYnD,EAAS,QAAQ,UAAW;AAAA,CAAI,EACR,QAAQ,UAAW;AAAA,CAAI,EAC3DoD,EAAqBvvG,IAAOsvG,CAAuB,EACzD,OAAID,IAAqB,GAChBE,EAAmB,QAAQ,KAAM,QAAQ,EAE3CA,CACT,CACA51C,EAAOy1C,IAAoB,oBAAoB,EAC/C,SAASI,IAAgBrD,EAAUv+T,EAAS,GAAI,CAC9C,MAAM6hU,EAAuBL,IAAmBjD,EAAUv+T,CAAM,EAC1D+/J,EAAQogK,GAAO,MAAM0B,CAAoB,EACzC/tT,EAAQ,CAAC,EAAE,EACjB,IAAI28S,EAAc,EAClB,SAASqR,EAAYr5O,EAAMxqF,EAAa,SAAU,CAC5CwqF,EAAK,OAAS,OACEA,EAAK,KAAK,MAAM;AAAA,CAAI,EAC5B,QAAQ,CAACs5O,EAAUxiW,IAAU,CACjCA,IAAU,IACZkxV,IACA38S,EAAM,KAAK,EAAE,GAEfiuT,EAAS,MAAM,GAAG,EAAE,QAAS3sK,GAAS,CACpCA,EAAOA,EAAK,QAAQ,SAAU,GAAG,EAC7BA,GACFthJ,EAAM28S,CAAW,EAAE,KAAK,CAAE,QAASr7J,EAAM,KAAMn3J,EAAY,CAE/D,CAAC,CACH,CAAC,EACQwqF,EAAK,OAAS,UAAYA,EAAK,OAAS,KACjDA,EAAK,OAAO,QAASu5O,GAAgB,CACnCF,EAAYE,EAAav5O,EAAK,IAAI,CACpC,CAAC,EACQA,EAAK,OAAS,QACvB30E,EAAM28S,CAAW,EAAE,KAAK,CAAE,QAAShoO,EAAK,KAAM,KAAM,SAAU,CAElE,CACA,OAAAsjM,EAAO+1C,EAAa,aAAa,EACjC/hK,EAAM,QAASkiK,GAAa,OACtBA,EAAS,OAAS,aACpB3tU,EAAA2tU,EAAS,SAAT,MAAA3tU,EAAiB,QAAS0tU,GAAgB,CACxCF,EAAYE,CAAW,CACzB,GACSC,EAAS,OAAS,OAC3BnuT,EAAM28S,CAAW,EAAE,KAAK,CAAE,QAASwR,EAAS,KAAM,KAAM,SAAU,EAElEnuT,EAAM28S,CAAW,EAAE,KAAK,CAAE,QAASwR,EAAS,IAAK,KAAM,SAAU,CAErE,CAAC,EACMnuT,CACT,CACAi4Q,EAAO61C,IAAiB,iBAAiB,EACzC,SAASM,IAAe3D,EAAU,CAAE,iBAAAkD,CAAgB,EAAK,GAAI,CAC3D,MAAM1hK,EAAQogK,GAAO,MAAM5B,CAAQ,EACnC,SAAS7lT,EAAO+vE,EAAM,WACpB,OAAIA,EAAK,OAAS,OACZg5O,IAAqB,GAChBh5O,EAAK,KAAK,QAAQ,QAAS,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAE5DA,EAAK,KAAK,QAAQ,QAAS,OAAO,EAChCA,EAAK,OAAS,SAChB,YAAWn0F,EAAAm0F,EAAK,SAAL,YAAAn0F,EAAa,IAAIokB,GAAQ,KAAK,GAAG,YAC1C+vE,EAAK,OAAS,KAChB,QAAO/9E,EAAA+9E,EAAK,SAAL,YAAA/9E,EAAa,IAAIgO,GAAQ,KAAK,GAAG,QACtC+vE,EAAK,OAAS,YAChB,OAAMnjD,EAAAmjD,EAAK,SAAL,YAAAnjD,EAAa,IAAI5sB,GAAQ,KAAK,GAAG,OACrC+vE,EAAK,OAAS,QAChB,GACEA,EAAK,OAAS,OAChB,GAAGA,EAAK,IAAI,GACVA,EAAK,OAAS,SAChBA,EAAK,MAEdz1E,GAAI,KAAK,yBAAyBy1E,EAAK,IAAI,EAAE,EACtCA,EAAK,IACd,CACA,OAAAsjM,EAAOrzQ,EAAQ,QAAQ,EAChBqnJ,EAAM,IAAIrnJ,CAAM,EAAE,KAAK,EAAE,CAClC,CACAqzQ,EAAOm2C,IAAgB,gBAAgB,EAGvC,SAASC,IAAiBnpV,EAAM,CAC9B,OAAI,KAAK,UACA,CAAC,GAAG,IAAI,KAAK,UAAS,EAAG,QAAQA,CAAI,CAAC,EAAE,IAAKtU,GAAMA,EAAE,OAAO,EAE9D,CAAC,GAAGsU,CAAI,CACjB,CACA+yS,EAAOo2C,IAAkB,kBAAkB,EAC3C,SAASC,IAAoBC,EAAUjtK,EAAM,CAC3C,MAAM07E,EAAaqxF,IAAiB/sK,EAAK,OAAO,EAChD,OAAOktK,GAA6BD,EAAU,GAAIvxF,EAAY17E,EAAK,IAAI,CACzE,CACA22H,EAAOq2C,IAAqB,qBAAqB,EACjD,SAASE,GAA6BD,EAAUE,EAAWC,EAAgBvtV,EAAM,CAC/E,GAAIutV,EAAe,SAAW,EAC5B,MAAO,CACL,CAAE,QAASD,EAAU,KAAK,EAAE,EAAG,KAAAttV,CAAI,EACnC,CAAE,QAAS,GAAI,KAAAA,CAAI,CACzB,EAEE,KAAM,CAAC9O,EAAU,GAAGvC,CAAI,EAAI4+V,EACtBC,EAAU,CAAC,GAAGF,EAAWp8V,CAAQ,EACvC,OAAIk8V,EAAS,CAAC,CAAE,QAASI,EAAQ,KAAK,EAAE,EAAG,KAAAxtV,CAAI,CAAE,CAAC,EACzCqtV,GAA6BD,EAAUI,EAAS7+V,EAAMqR,CAAI,GAE/DstV,EAAU,SAAW,GAAKp8V,IAC5Bo8V,EAAU,KAAKp8V,CAAQ,EACvBq8V,EAAe,MAAK,GAEf,CACL,CAAE,QAASD,EAAU,KAAK,EAAE,EAAG,KAAAttV,CAAI,EACnC,CAAE,QAASutV,EAAe,KAAK,EAAE,EAAG,KAAAvtV,CAAI,CAC5C,EACA,CACA82S,EAAOu2C,GAA8B,8BAA8B,EACnE,SAASI,IAAoB3uT,EAAMsuT,EAAU,CAC3C,GAAItuT,EAAK,KAAK,CAAC,CAAE,QAAAuzD,CAAO,IAAOA,EAAQ,SAAS;AAAA,CAAI,CAAC,EACnD,MAAM,IAAI,MAAM,2DAA2D,EAE7E,OAAOq7P,GAA6B5uT,EAAMsuT,CAAQ,CACpD,CACAt2C,EAAO22C,IAAqB,qBAAqB,EACjD,SAASC,GAA6Bt/K,EAAOg/K,EAAUvuT,EAAQ,GAAI60P,EAAU,GAAI,CAC/E,GAAItlH,EAAM,SAAW,EACnB,OAAIslH,EAAQ,OAAS,GACnB70P,EAAM,KAAK60P,CAAO,EAEb70P,EAAM,OAAS,EAAIA,EAAQ,GAEpC,IAAI8uT,EAAS,GACTv/K,EAAM,CAAC,EAAE,UAAY,MACvBu/K,EAAS,IACTv/K,EAAM,MAAK,GAEb,MAAMw/K,EAAWx/K,EAAM,MAAK,GAAM,CAAE,QAAS,IAAK,KAAM,QAAQ,EAC1Dy/K,EAAmB,CAAC,GAAGn6D,CAAO,EAKpC,GAJIi6D,IAAW,IACbE,EAAiB,KAAK,CAAE,QAASF,EAAQ,KAAM,SAAU,EAE3DE,EAAiB,KAAKD,CAAQ,EAC1BR,EAASS,CAAgB,EAC3B,OAAOH,GAA6Bt/K,EAAOg/K,EAAUvuT,EAAOgvT,CAAgB,EAE9E,GAAIn6D,EAAQ,OAAS,EACnB70P,EAAM,KAAK60P,CAAO,EAClBtlH,EAAM,QAAQw/K,CAAQ,UACbA,EAAS,QAAS,CAC3B,KAAM,CAAC9uT,EAAMnwC,CAAI,EAAIw+V,IAAoBC,EAAUQ,CAAQ,EAC3D/uT,EAAM,KAAK,CAACC,CAAI,CAAC,EACbnwC,EAAK,SACPy/K,EAAM,QAAQz/K,CAAI,CAEtB,CACA,OAAO++V,GAA6Bt/K,EAAOg/K,EAAUvuT,CAAK,CAC5D,CACAi4Q,EAAO42C,GAA8B,8BAA8B,EAGnE,SAASI,GAAW1gR,EAAK2gR,EAAS,CAC5BA,GACF3gR,EAAI,KAAK,QAAS2gR,CAAO,CAE7B,CACAj3C,EAAOg3C,GAAY,YAAY,EAC/B,eAAeE,IAAY3gR,EAASmmC,EAAMzK,EAAOjmE,EAASmrT,EAAgB,GAAOljU,EAASs1R,KAAa,CACrG,MAAMl0N,EAAK9e,EAAQ,OAAO,eAAe,EACzC8e,EAAG,KAAK,QAAS,GAAG,GAAK4c,CAAK,IAAI,EAClC5c,EAAG,KAAK,SAAU,GAAG,GAAK4c,CAAK,IAAI,EACnC,MAAMqmI,EAAMjjJ,EAAG,OAAO,WAAW,EAC3B+hQ,EAAiBnrC,GAASvvM,EAAK,KAAK,EAAI,MAAM0vM,GAAqB1vM,EAAK,MAAM,QAAQgwM,GAAe,eAAgB;AAAA,CAAI,EAAGz4R,CAAM,EAAIy2R,GAAahuM,EAAK,MAAOzoF,CAAM,EACrKojU,EAAa36O,EAAK,OAAS,YAAc,YACzCtrE,EAAOknM,EAAI,OAAO,MAAM,EAC9BlnM,EAAK,KAAKgmT,CAAc,EACxBJ,GAAW5lT,EAAMsrE,EAAK,UAAU,EAChCtrE,EAAK,KAAK,QAAS,GAAGimT,CAAU,IAAIrrT,CAAO,EAAE,EAC7CgrT,GAAW1+G,EAAK57H,EAAK,UAAU,EAC/B47H,EAAI,MAAM,UAAW,YAAY,EACjCA,EAAI,MAAM,cAAe,QAAQ,EACjCA,EAAI,MAAM,cAAe,KAAK,EAC9BA,EAAI,MAAM,YAAarmI,EAAQ,IAAI,EACnCqmI,EAAI,MAAM,aAAc,QAAQ,EAChCA,EAAI,KAAK,QAAS,8BAA8B,EAC5C6+G,GACF7+G,EAAI,KAAK,QAAS,UAAU,EAE9B,IAAIg/G,EAAOh/G,EAAI,KAAI,EAAG,sBAAqB,EAC3C,OAAIg/G,EAAK,QAAUrlP,IACjBqmI,EAAI,MAAM,UAAW,OAAO,EAC5BA,EAAI,MAAM,cAAe,cAAc,EACvCA,EAAI,MAAM,QAASrmI,EAAQ,IAAI,EAC/BqlP,EAAOh/G,EAAI,KAAI,EAAG,sBAAqB,GAElCjjJ,EAAG,KAAI,CAChB,CACA2qN,EAAOk3C,IAAa,aAAa,EACjC,SAASK,GAAYC,EAAal7F,EAAWm7F,EAAY,CACvD,OAAOD,EAAY,OAAO,OAAO,EAAE,KAAK,QAAS,kBAAkB,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAKl7F,EAAYm7F,EAAa,GAAM,IAAI,EAAE,KAAK,KAAMA,EAAa,IAAI,CAC/J,CACAz3C,EAAOu3C,GAAa,aAAa,EACjC,SAASG,IAAmBh5O,EAAY+4O,EAAYzvT,EAAM,CACxD,MAAM2vT,EAAcj5O,EAAW,OAAO,MAAM,EACtCk5O,EAAWL,GAAYI,EAAa,EAAGF,CAAU,EACvDI,GAA2BD,EAAU5vT,CAAI,EACzC,MAAM8vT,EAAaF,EAAS,KAAI,EAAG,sBAAqB,EACxD,OAAAD,EAAY,OAAM,EACXG,CACT,CACA93C,EAAO03C,IAAoB,oBAAoB,EAC/C,SAASK,IAAuBr5O,EAAY+4O,EAAYxqV,EAAM,OAC5D,MAAM0qV,EAAcj5O,EAAW,OAAO,MAAM,EACtCk5O,EAAWL,GAAYI,EAAa,EAAGF,CAAU,EACvDI,GAA2BD,EAAU,CAAC,CAAE,QAAS3qV,EAAM,KAAM,QAAQ,CAAE,CAAC,EACxE,MAAM+qV,GAAgBzvU,EAAAqvU,EAAS,KAAI,IAAb,YAAArvU,EAAiB,wBACvC,OAAIyvU,GACFL,EAAY,OAAM,EAEbK,CACT,CACAh4C,EAAO+3C,IAAwB,wBAAwB,EACvD,SAASE,IAAoBhmP,EAAOpmH,EAAGqsW,EAAgBf,EAAgB,GAAO,CAE5E,MAAMgB,EAAatsW,EAAE,OAAO,GAAG,EACzBusW,EAAMD,EAAW,OAAO,MAAM,EAAE,KAAK,QAAS,YAAY,EAAE,KAAK,QAAS,cAAc,EACxFX,EAAcW,EAAW,OAAO,MAAM,EAAE,KAAK,IAAK,OAAO,EAC/D,IAAI77F,EAAY,EAChB,UAAWt0N,KAAQkwT,EAAgB,CACjC,MAAMG,EAA6Br4C,EAAQs4C,GAAUZ,IAAmBS,EAAY,IAAYG,CAAK,GAAKrmP,EAAO,YAAY,EACvHsmP,EAAkBF,EAAWrwT,CAAI,EAAI,CAACA,CAAI,EAAI2uT,IAAoB3uT,EAAMqwT,CAAU,EACxF,UAAWG,KAAgBD,EAAiB,CAC1C,MAAME,EAAQlB,GAAYC,EAAal7F,EAAW,GAAU,EAC5Du7F,GAA2BY,EAAOD,CAAY,EAC9Cl8F,GACF,CACF,CACA,GAAI66F,EAAe,CACjB,MAAMG,EAAOE,EAAY,KAAI,EAAG,QAAO,EACjC/hP,EAAU,EAChB,OAAA2iP,EAAI,KAAK,IAAKd,EAAK,EAAI7hP,CAAO,EAAE,KAAK,IAAK6hP,EAAK,EAAI7hP,CAAO,EAAE,KAAK,QAAS6hP,EAAK,MAAQ,EAAI7hP,CAAO,EAAE,KAAK,SAAU6hP,EAAK,OAAS,EAAI7hP,CAAO,EACrI0iP,EAAW,KAAI,CACxB,KACE,QAAOX,EAAY,KAAI,CAE3B,CACAx3C,EAAOi4C,IAAqB,qBAAqB,EACjD,SAASJ,GAA2BY,EAAOC,EAAa,CACtDD,EAAM,KAAK,EAAE,EACbC,EAAY,QAAQ,CAACrvK,EAAM71L,IAAU,CACnC,MAAMmlW,EAAaF,EAAM,OAAO,OAAO,EAAE,KAAK,aAAcpvK,EAAK,OAAS,KAAO,SAAW,QAAQ,EAAE,KAAK,QAAS,kBAAkB,EAAE,KAAK,cAAeA,EAAK,OAAS,SAAW,OAAS,QAAQ,EAClM71L,IAAU,EACZmlW,EAAW,KAAKtvK,EAAK,OAAO,EAE5BsvK,EAAW,KAAK,IAAMtvK,EAAK,OAAO,CAEtC,CAAC,CACH,CACA22H,EAAO63C,GAA4B,4BAA4B,EAC/D,eAAee,IAAqB3rV,EAAMgnB,EAAS,GAAI,CACrD,MAAM4kU,EAAsB,GAC5B5rV,EAAK,QAAQ,4BAA6B,CAAC6rV,EAAWj7N,EAAQq3N,KAC5D2D,EAAoB,MACjB,SAAY,CACX,MAAME,EAAqB,GAAGl7N,CAAM,IAAIq3N,CAAQ,GAChD,OAAI,MAAMG,IAAgB0D,CAAkB,EACnC,MAAMzD,GAAWyD,EAAoB,OAAQ,CAAE,MAAO,aAAc,EAEpE,aAAaruC,GAAaouC,EAAW7kU,CAAM,EAAE,QAAQ,IAAK,GAAG,CAAC,QAEzE,GAAC,CACP,EACW6kU,EACR,EACD,MAAME,EAAe,MAAM,QAAQ,IAAIH,CAAmB,EAC1D,OAAO5rV,EAAK,QAAQ,4BAA6B,IAAM+rV,EAAa,MAAK,GAAM,EAAE,CACnF,CACAh5C,EAAO44C,IAAsB,sBAAsB,EAChD,IAACK,GAA6Bj5C,EAAO,MAAOp0Q,EAAI3+B,EAAO,GAAI,CAC5D,MAAA4uL,EAAQ,GACR,QAAAq9J,EAAU,GACV,QAAAltT,EAAU,GACV,cAAAmtT,EAAgB,GAChB,OAAAx8O,EAAS,GACT,MAAA1K,EAAQ,IACR,iBAAAmnP,EAAmB,EACrB,EAAI,GAAInlU,IAAW,CAYjB,GAXAgT,GAAI,MACF,iBACAh6B,EACA4uL,EACAq9J,EACAltT,EACAmtT,EACAx8O,EACA,qBACAy8O,CACJ,EACMD,EAAe,CACjB,MAAMntF,EAAWmqF,IAAelpV,EAAMgnB,CAAM,EACtColU,EAAsB,MAAMT,IAAqBvS,GAAer6E,CAAQ,EAAG/3O,CAAM,EACjFqlU,EAAgBrsV,EAAK,QAAQ,QAAS,IAAI,EAC1CyvG,EAAO,CACX,OAAAC,EACA,MAAOsvM,GAASh/S,CAAI,EAAIqsV,EAAgBD,EACxC,WAAYx9J,EAAM,QAAQ,QAAS,QAAQ,CACjD,EAEI,OADmB,MAAMq7J,IAAYtrT,EAAI8wE,EAAMzK,EAAOjmE,EAASotT,EAAkBnlU,CAAM,CAEzF,KAAO,CACL,MAAMslU,EAAatsV,EAAK,QAAQ,cAAe,OAAO,EAChDirV,EAAiBrC,IAAgB0D,EAAW,QAAQ,OAAQ,OAAO,EAAGtlU,CAAM,EAC5EuqQ,EAAWy5D,IACfhmP,EACArmE,EACAssT,EACAjrV,EAAOmsV,EAAmB,EAChC,EACI,GAAIz8O,EAAQ,CACN,UAAU,KAAKk/E,CAAK,IACtBA,EAAQA,EAAM,QAAQ,UAAW,YAAY,GAE/C,MAAM29J,EAAqB39J,EAAM,QAAQ,kBAAmB,EAAE,EAAE,QAAQ,wBAAyB,EAAE,EAAE,QAAQ,gBAAiB,EAAE,EAAE,QAAQ,UAAW,OAAO,EAC5Jo0H,GAAOzxB,CAAQ,EAAE,KAAK,QAASg7D,CAAkB,CACnD,KAAO,CACL,MAAMC,EAAqB59J,EAAM,QAAQ,kBAAmB,EAAE,EAAE,QAAQ,wBAAyB,EAAE,EAAE,QAAQ,gBAAiB,EAAE,EAAE,QAAQ,eAAgB,OAAO,EACjKo0H,GAAOzxB,CAAQ,EAAE,OAAO,MAAM,EAAE,KAAK,QAASi7D,EAAmB,QAAQ,eAAgB,OAAO,CAAC,EACjG,MAAMC,EAAqB79J,EAAM,QAAQ,kBAAmB,EAAE,EAAE,QAAQ,wBAAyB,EAAE,EAAE,QAAQ,gBAAiB,EAAE,EAAE,QAAQ,UAAW,OAAO,EAC5Jo0H,GAAOzxB,CAAQ,EAAE,OAAO,MAAM,EAAE,KAAK,QAASk7D,CAAkB,CAClE,CACA,OAAOl7D,CACT,CACF,EAAG,YAAY,ECjbf,SAASnyS,GAAE,EAAE,EAAEsM,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC1M,EAAE4F,CAAC,EAAE,EAAEtH,EAAE,KAAK,GAAG,IAAIoO,EAAE7M,EAAE,KAAK,IAAIvB,CAAC,EAAE6B,EAAE,KAAK,IAAI7B,CAAC,EAAE,UAAUoB,KAAK,EAAE,CAAC,KAAK,CAACU,EAAEsM,CAAC,EAAEhN,EAAEA,EAAE,CAAC,GAAGU,EAAEJ,GAAGH,GAAG6M,EAAE9G,GAAGzF,EAAEH,EAAEN,EAAE,CAAC,GAAGU,EAAEJ,GAAGG,GAAGuM,EAAE9G,GAAG/F,EAAE+F,CAAC,CAAC,CAAC,CAAC,SAASlG,IAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAASgN,IAAEA,EAAE1M,EAAE4F,EAAEtH,EAAE,EAAE,CAAC,MAAMuB,EAAE+F,EAAEzF,EAAE,KAAK,IAAIH,EAAE,EAAE,EAAEkC,EAAEwK,EAAE,CAAC,GAAGA,EAAE,CAAC,EAAE,CAAC,GAAa,OAAOA,EAAE,CAAC,EAAE,CAAC,GAAvB,SAAyB,CAACA,CAAC,EAAEA,EAAElN,EAAE,CAAC,EAAE,CAAC,EAAE,GAAGK,EAAE,UAAUH,KAAKwC,EAAE9B,GAAEV,EAAEF,EAAEK,CAAC,EAAE,MAAM,GAAE,SAASO,EAAEsM,EAAE1M,EAAE,CAAC,MAAM4F,EAAE,GAAG,UAAU8G,KAAKtM,EAAE,CAAC,MAAMA,EAAE,CAAC,GAAGsM,CAAC,EAAEhN,IAAEU,EAAE,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAAC,CAAC,GAAGA,EAAE,KAAK,CAACA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,OAAO,GAAGwF,EAAE,KAAKxF,CAAC,CAAC,CAAC,MAAM9B,EAAE,GAAGoO,EAAE,KAAK,IAAIA,EAAE,EAAE,EAAE,MAAM7M,EAAE,GAAG,UAAUO,KAAKwF,EAAE,QAAQlG,EAAE,EAAEA,EAAEU,EAAE,OAAO,EAAEV,IAAI,CAAC,MAAMgN,EAAEtM,EAAEV,CAAC,EAAEM,EAAEI,EAAEV,EAAE,CAAC,EAAE,GAAGgN,EAAE,CAAC,IAAI1M,EAAE,CAAC,EAAE,CAAC,MAAMI,EAAE,KAAK,IAAIsM,EAAE,CAAC,EAAE1M,EAAE,CAAC,CAAC,EAAEH,EAAE,KAAK,CAAC,KAAKO,EAAE,KAAK,KAAK,IAAIsM,EAAE,CAAC,EAAE1M,EAAE,CAAC,CAAC,EAAE,EAAEI,IAAIsM,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE1M,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE0M,EAAE,CAAC,IAAI1M,EAAE,CAAC,EAAE0M,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG7M,EAAE,MAAM,CAACO,EAAEV,IAAIU,EAAE,KAAKV,EAAE,KAAK,GAAGU,EAAE,KAAKV,EAAE,KAAK,EAAEU,EAAE,EAAEV,EAAE,EAAE,GAAGU,EAAE,EAAEV,EAAE,EAAE,EAAEU,EAAE,OAAOV,EAAE,KAAK,GAAGU,EAAE,KAAKV,EAAE,MAAM,KAAK,IAAIU,EAAE,KAAKV,EAAE,IAAI,EAAC,EAAG,CAACG,EAAE,OAAO,OAAOvB,EAAE,IAAI6B,EAAE,GAAG+B,EAAErC,EAAE,CAAC,EAAE,KAAKL,EAAE,EAAE,KAAKW,EAAE,QAAQN,EAAE,QAAQ,CAAC,GAAGA,EAAE,OAAO,CAAC,IAAIO,EAAE,GAAG,QAAQV,EAAE,EAAEA,EAAEG,EAAE,QAAQ,EAAEA,EAAEH,CAAC,EAAE,KAAKwC,GAAGxC,IAAIU,EAAEV,EAAEG,EAAE,OAAO,EAAEO,EAAE,CAAC,EAAE,SAASA,GAAG,CAACD,EAAE,KAAK,CAAC,EAAE+B,EAAE,KAAK9B,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGD,EAAEA,EAAE,QAAQC,GAAG,EAAEA,EAAE,KAAK,MAAM8B,GAAE,EAAG/B,EAAE,MAAM,CAACC,EAAEV,IAAIU,EAAE,KAAK,IAAIV,EAAE,KAAK,EAAE,GAAGU,EAAE,KAAK,EAAEV,EAAE,KAAK,GAAG,KAAK,IAAIU,EAAE,KAAK,EAAEV,EAAE,KAAK,CAAC,EAAC,GAAQM,IAAJ,GAAOR,EAAEkN,GAAG,IAAIvM,EAAE,OAAO,EAAE,QAAQC,EAAE,EAAEA,EAAED,EAAE,OAAOC,GAAG,EAAE,CAAC,MAAMV,EAAEU,EAAE,EAAE,GAAGV,GAAGS,EAAE,OAAO,MAAM,MAAMuM,EAAEvM,EAAEC,CAAC,EAAE,KAAKJ,EAAEG,EAAET,CAAC,EAAE,KAAKpB,EAAE,KAAK,CAAC,CAAC,KAAK,MAAMoO,EAAE,CAAC,EAAExK,CAAC,EAAE,CAAC,KAAK,MAAMlC,EAAE,CAAC,EAAEkC,CAAC,CAAC,CAAC,CAAC,CAACA,GAAGlC,EAAEG,EAAE,SAASC,GAAG,CAACA,EAAE,KAAK,EAAEA,EAAE,KAAK,EAAEJ,EAAEI,EAAE,KAAK,MAAM,EAAC,EAAGZ,GAAG,CAAC,OAAOlB,CAAC,GAAE4D,EAAE/B,EAAE7B,CAAC,EAAE,GAAGuB,EAAE,CAAC,UAAUH,KAAKwC,EAAE9B,GAAEV,EAAEF,EAAE,CAACK,CAAC,GAAG,SAASH,EAAEgN,EAAE1M,EAAE,CAAC,MAAM4F,EAAE,GAAGlG,EAAE,SAASU,GAAGwF,EAAE,KAAK,GAAGxF,CAAC,EAAC,EAAGA,GAAEwF,EAAE8G,EAAE1M,CAAC,CAAC,GAAE,EAAER,EAAE,CAACK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAASG,GAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM4F,EAAE,EAAE,aAAa,GAAG,IAAItH,EAAE,EAAE,WAAWA,EAAE,IAAIA,EAAE,EAAE,EAAE,aAAaA,EAAE,KAAK,MAAM,KAAK,IAAIA,EAAE,EAAE,CAAC,EAAE,IAAIuB,EAAE,EAAE,OAAO,EAAE,WAAW,MAAa,EAAE,EAAE,cAAZ,MAAkC,IAAT,OAAW,OAAO,EAAE,KAAI,IAAK,KAAK,OAAM,GAAI,KAAKA,EAAEvB,GAAGoO,IAAE,EAAEpO,EAAEsH,EAAE/F,GAAG,CAAC,CAAC,CAAC,MAAM+F,EAAC,CAAC,YAAYxF,EAAE,CAAC,KAAK,OAAOA,CAAC,CAAC,aAAaA,EAAEV,EAAE,CAAC,OAAO,KAAK,cAAcU,EAAEV,CAAC,CAAC,CAAC,cAAcU,EAAEV,EAAE,CAAC,MAAMgN,EAAE1M,GAAEI,EAAEV,CAAC,EAAE,MAAM,CAAC,KAAK,aAAa,IAAI,KAAK,YAAYgN,EAAEhN,CAAC,CAAC,CAAC,CAAC,YAAYU,EAAEV,EAAE,CAAC,MAAMgN,EAAE,GAAG,UAAU1M,KAAKI,EAAEsM,EAAE,KAAK,GAAG,KAAK,OAAO,cAAc1M,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEN,CAAC,CAAC,EAAE,OAAOgN,CAAC,CAAC,CAAC,SAASpO,GAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAEoO,EAAE,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAAghW,IAAC,cAAgB9nW,EAAC,CAAC,aAAaxF,EAAEV,EAAE,CAAC,IAAIgN,EAAEhN,EAAE,WAAWgN,EAAE,IAAIA,EAAE,EAAEhN,EAAE,aAAagN,EAAE,KAAK,IAAIA,EAAE,EAAE,EAAE,MAAM9G,EAAE5F,GAAEI,EAAE,OAAO,OAAO,GAAGV,EAAE,CAAC,WAAWgN,CAAC,CAAC,CAAC,EAAE7M,EAAE,KAAK,GAAG,IAAIH,EAAE,aAAaS,EAAE,GAAG+B,EAAE,GAAGwK,EAAE,KAAK,IAAI7M,CAAC,EAAEL,EAAE,GAAGkN,EAAE,KAAK,IAAI7M,CAAC,EAAE,SAAS,CAACO,EAAEV,CAAC,IAAIkG,EAAEtH,GAAE,CAAC8B,EAAEV,CAAC,CAAC,GAAGS,EAAE,KAAK,CAAC,CAACC,EAAE,CAAC,EAAE8B,EAAE9B,EAAE,CAAC,EAAEZ,CAAC,EAAE,CAAC,GAAGE,CAAC,CAAC,EAAE,CAAC,CAACU,EAAE,CAAC,EAAE8B,EAAE9B,EAAE,CAAC,EAAEZ,CAAC,EAAE,CAAC,GAAGE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,aAAa,IAAI,KAAK,YAAYS,EAAET,CAAC,CAAC,CAAC,CAAC,EAAAiuW,IAAC,cAAgB/nW,EAAC,CAAC,aAAaxF,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,cAActM,EAAEV,CAAC,EAAEM,EAAE,OAAO,OAAO,GAAGN,EAAE,CAAC,aAAaA,EAAE,aAAa,EAAE,CAAC,EAAEkG,EAAE,KAAK,cAAcxF,EAAEJ,CAAC,EAAE,OAAO0M,EAAE,IAAIA,EAAE,IAAI,OAAO9G,EAAE,GAAG,EAAE8G,CAAC,CAAC,EAAC,MAAMxK,GAAC,CAAC,YAAY9B,EAAE,CAAC,KAAK,OAAOA,CAAC,CAAC,aAAaA,EAAEV,EAAE,CAAC,MAAMgN,EAAE1M,GAAEI,EAAEV,EAAE,OAAO,OAAO,GAAGA,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,YAAYgN,EAAEhN,CAAC,CAAC,CAAC,YAAYU,EAAEV,EAAE,CAAC,MAAMgN,EAAE,GAAG,IAAI1M,EAAEN,EAAE,WAAWM,EAAE,IAAIA,EAAE,EAAEN,EAAE,aAAaM,EAAE,KAAK,IAAIA,EAAE,EAAE,EAAE,IAAI4F,EAAElG,EAAE,WAAWkG,EAAE,IAAIA,EAAElG,EAAE,YAAY,GAAG,MAAMG,EAAEG,EAAE,EAAE,UAAUG,KAAKC,EAAE,CAAC,MAAMA,EAAE9B,GAAE6B,CAAC,EAAE+B,EAAE9B,EAAEJ,EAAER,EAAE,KAAK,KAAK0C,CAAC,EAAE,EAAEivB,EAAE/wB,EAAEZ,EAAEQ,EAAEQ,GAAGL,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEH,EAAE,EAAEC,EAAE,KAAK,IAAIE,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQC,EAAE,EAAEA,EAAEZ,EAAEY,IAAI,CAAC,MAAM9B,EAAE2B,EAAEkxB,EAAE/wB,EAAEJ,EAAEG,EAAEK,EAAEX,EAAE,EAAE,KAAK,OAAM,EAAGA,EAAEqC,EAAE5D,EAAEuB,EAAE,EAAE,KAAK,OAAM,EAAGA,EAAEL,EAAE,KAAK,OAAO,QAAQW,EAAE+B,EAAE0D,EAAEA,EAAElG,CAAC,EAAEgN,EAAE,KAAK,GAAGlN,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,aAAa,IAAIkN,CAAC,CAAC,CAAC,KAAAkhW,IAAC,KAAO,CAAC,YAAYxtW,EAAE,CAAC,KAAK,OAAOA,CAAC,CAAC,aAAaA,EAAEV,EAAE,CAAC,MAAMgN,EAAE1M,GAAEI,EAAEV,CAAC,EAAE,MAAM,CAAC,KAAK,aAAa,IAAI,KAAK,WAAWgN,EAAEhN,CAAC,CAAC,CAAC,CAAC,WAAWU,EAAEV,EAAE,CAAC,MAAMgN,EAAEhN,EAAE,WAAW,EAAEA,EAAE,WAAW,EAAE,EAAEA,EAAE,YAAYA,EAAE,WAAWA,EAAE,WAAWM,EAAEN,EAAE,QAAQ,EAAEA,EAAE,WAAW,EAAE,EAAEA,EAAE,YAAYA,EAAE,WAAWA,EAAE,QAAQkG,EAAE,GAAG,OAAOxF,EAAE,SAASA,GAAG,CAAC,MAAMP,EAAEvB,GAAE8B,CAAC,EAAED,EAAE,KAAK,MAAMN,GAAG6M,EAAE1M,EAAE,EAAEkC,GAAGrC,EAAEG,EAAEG,GAAGuM,EAAE1M,IAAI,EAAE,IAAIR,EAAEY,EAAE,CAAC,EAAE+wB,EAAE/wB,EAAE,CAAC,EAAEZ,EAAE,CAAC,EAAE2xB,EAAE,CAAC,IAAI3xB,EAAEY,EAAE,CAAC,EAAE+wB,EAAE/wB,EAAE,CAAC,GAAG,MAAMI,EAAE,KAAK,MAAM2wB,EAAE,CAAC,EAAE3xB,EAAE,CAAC,IAAI2xB,EAAE,CAAC,EAAE3xB,EAAE,CAAC,EAAE,EAAE,QAAQY,EAAE,EAAEA,EAAED,EAAEC,IAAI,CAAC,MAAM9B,EAAE8B,GAAGsM,EAAE1M,GAAGH,EAAEvB,EAAEoO,EAAEvM,EAAE,CAACX,EAAE,CAAC,EAAElB,EAAE,KAAK,IAAIkC,CAAC,EAAE0B,EAAE,KAAK,IAAI1B,CAAC,EAAEhB,EAAE,CAAC,EAAElB,EAAE,KAAK,IAAIkC,CAAC,EAAE0B,EAAE,KAAK,IAAI1B,CAAC,CAAC,EAAE2wB,EAAE,CAAC3xB,EAAE,CAAC,EAAEK,EAAE,KAAK,IAAIW,CAAC,EAAE0B,EAAE,KAAK,IAAI1B,CAAC,EAAEhB,EAAE,CAAC,EAAEK,EAAE,KAAK,IAAIW,CAAC,EAAE0B,EAAE,KAAK,IAAI1B,CAAC,CAAC,EAAEoF,EAAE,KAAK,GAAG,KAAK,OAAO,cAAczF,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEgxB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEzxB,CAAC,CAAC,CAAC,CAAC,EAAC,EAAGkG,CAAC,CAAC,EAAC,MAAMurB,GAAC,CAAC,YAAY/wB,EAAE,CAAC,KAAK,OAAOA,CAAC,CAAC,aAAaA,EAAEV,EAAE,CAAC,MAAMgN,EAAEhN,EAAE,WAAW,EAAE,EAAEA,EAAE,YAAYA,EAAE,WAAWkG,EAAElG,EAAE,aAAa,EAAEgN,EAAEhN,EAAE,aAAapB,EAAE0B,GAAEI,EAAEV,EAAE,OAAO,OAAO,GAAGA,EAAE,CAAC,WAAWgN,EAAE9G,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,aAAa,IAAI,KAAK,YAAYtH,EAAEsH,EAAElG,CAAC,CAAC,CAAC,CAAC,YAAYU,EAAEV,EAAEgN,EAAE,CAAC,MAAM1M,EAAE,GAAG,OAAOI,EAAE,SAASA,GAAG,CAAC,MAAMwF,EAAEtH,GAAE8B,CAAC,EAAEP,EAAE,KAAK,MAAM+F,GAAG,EAAElG,EAAE,EAAE,IAAIS,EAAEC,EAAE,CAAC,EAAE8B,EAAE9B,EAAE,CAAC,EAAED,EAAE,CAAC,EAAE+B,EAAE,CAAC,IAAI/B,EAAEC,EAAE,CAAC,EAAE8B,EAAE9B,EAAE,CAAC,GAAG,MAAMZ,EAAE,KAAK,MAAM0C,EAAE,CAAC,EAAE/B,EAAE,CAAC,IAAI+B,EAAE,CAAC,EAAE/B,EAAE,CAAC,EAAE,EAAE,QAAQC,EAAE,EAAEA,EAAEP,EAAEO,IAAI,CAAC,MAAMwF,EAAE,EAAExF,EAAEV,EAAEpB,EAAE,GAAG8B,EAAE,GAAGV,EAAEG,EAAE,KAAK,KAAK,EAAE,KAAK,IAAIH,EAAE,CAAC,CAAC,EAAEwC,EAAE,CAAC/B,EAAE,CAAC,EAAEyF,EAAE,KAAK,IAAIpG,CAAC,EAAEW,EAAE,CAAC,EAAEyF,EAAE,KAAK,IAAIpG,CAAC,CAAC,EAAE2xB,EAAE,CAAChxB,EAAE,CAAC,EAAE7B,EAAE,KAAK,IAAIkB,CAAC,EAAEW,EAAE,CAAC,EAAE7B,EAAE,KAAK,IAAIkB,CAAC,CAAC,EAAEgB,EAAE,CAAC0B,EAAE,CAAC,EAAErC,EAAE,KAAK,IAAIL,EAAE,KAAK,GAAG,CAAC,EAAE0C,EAAE,CAAC,EAAErC,EAAE,KAAK,IAAIL,EAAE,KAAK,GAAG,CAAC,CAAC,EAAEQ,EAAE,KAAK,GAAG,KAAK,OAAO,cAAckC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE1B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEkM,CAAC,EAAE,GAAG,KAAK,OAAO,cAAclM,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE2wB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEzkB,CAAC,CAAC,CAAC,CAAC,EAAC,EAAG1M,CAAC,CAAC,CAAC,MAAMQ,GAAE,GAAE,IAAAqtW,IAAC,KAAO,CAAC,YAAYztW,EAAE,CAAC,KAAK,KAAKA,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,KAAK,OAAM,CAAE,CAAC,EAAC,MAAMT,IAAE,EAAEF,GAAE,EAAEG,IAAE,EAAEqxB,GAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,SAASnxB,GAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,SAASvB,GAAE,EAAE,CAAC,MAAM,EAAE,GAAGmO,GAAE,SAAStM,EAAE,CAAC,MAAMV,EAAE,IAAI,MAAM,KAAUU,IAAL,IAAQ,GAAGA,EAAE,MAAM,gBAAgB,EAAEA,EAAEA,EAAE,OAAO,OAAO,GAAG,MAAM,UAAUA,EAAE,MAAM,2BAA2B,EAAEV,EAAEA,EAAE,MAAM,EAAE,CAAC,KAAKC,IAAE,KAAK,OAAO,EAAE,EAAES,EAAEA,EAAE,OAAO,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAACA,EAAE,MAAM,6DAA6D,EAAE,MAAM,GAAGV,EAAEA,EAAE,MAAM,EAAE,CAAC,KAAKD,GAAE,KAAK,GAAG,WAAW,OAAO,EAAE,CAAC,EAAE,EAAEW,EAAEA,EAAE,OAAO,OAAO,GAAG,MAAM,CAAC,CAAC,OAAOV,EAAEA,EAAE,MAAM,EAAE,CAAC,KAAKE,IAAE,KAAK,EAAE,EAAEF,CAAC,GAAE,CAAC,EAAE,IAAIM,EAAE,MAAM4F,EAAE,EAAEtH,EAAEoO,EAAE9G,CAAC,EAAE,KAAK,CAAC9F,GAAExB,EAAEsB,GAAC,GAAG,CAAC,IAAIC,EAAE,EAAE,MAAMM,EAAE,GAAG,GAAWH,IAAR,MAAU,CAAC,GAAS1B,EAAE,OAAR,KAAoBA,EAAE,OAAR,IAAa,OAAOC,GAAE,OAAO,CAAC,EAAEqH,IAAI/F,EAAEoxB,GAAE3yB,EAAE,IAAI,EAAE0B,EAAE1B,EAAE,IAAI,MAAMwB,GAAExB,EAAEmB,EAAC,EAAEI,EAAEoxB,GAAEjxB,CAAC,GAAG4F,IAAI/F,EAAEoxB,GAAE3yB,EAAE,IAAI,EAAE0B,EAAE1B,EAAE,MAAM,GAAG,EAAEsH,EAAE/F,EAAE6M,EAAE,QAAQ,MAAM,IAAI,MAAM,uBAAuB,EAAE,QAAQtM,EAAEwF,EAAExF,EAAEwF,EAAE/F,EAAEO,IAAI,CAAC,MAAMV,EAAEgN,EAAEtM,CAAC,EAAE,GAAG,CAACN,GAAEJ,EAAED,EAAC,EAAE,MAAM,IAAI,MAAM,uBAAuBO,EAAE,IAAIN,EAAE,IAAI,EAAES,EAAEA,EAAE,MAAM,EAAE,CAACT,EAAE,IAAI,CAAC,GAAa,OAAOuxB,GAAEjxB,CAAC,GAApB,SAAsB,MAAM,IAAI,MAAM,gBAAgBA,CAAC,EAAE,CAAC,MAAMI,EAAE,CAAC,IAAIJ,EAAE,KAAKG,CAAC,EAAE,EAAE,KAAKC,CAAC,EAAEwF,GAAG/F,EAAEvB,EAAEoO,EAAE9G,CAAC,EAAQ5F,IAAN,MAAUA,EAAE,KAAWA,IAAN,MAAUA,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAASvF,IAAE,EAAE,CAAC,IAAI,EAAE,EAAEiS,EAAE,EAAE1M,EAAE,EAAE4F,EAAE,EAAE,MAAMtH,EAAE,GAAG,SAAS,CAAC,IAAIuB,EAAE,KAAKM,CAAC,IAAI,EAAE,OAAON,EAAC,CAAE,IAAI,IAAIvB,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEuM,CAAC,EAAEvM,EAAE,CAACH,EAAE4F,CAAC,EAAEzF,EAAE,MAAM,IAAI,IAAI,GAAGA,EAAE,CAAC,EAAEuM,GAAGvM,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAEoO,CAAC,CAAC,CAAC,EAAE1M,EAAE,EAAE4F,EAAE8G,EAAE,MAAM,IAAI,IAAIpO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEuM,CAAC,EAAEvM,EAAE,MAAM,IAAI,IAAI,GAAGA,EAAE,CAAC,EAAEuM,GAAGvM,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAEoO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIpO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,MAAMC,EAAED,EAAE,KAAK,CAACC,EAAEJ,IAAIA,EAAE,EAAEI,EAAEsM,EAAEtM,EAAE,EAAC,EAAG9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK8B,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,MAAMC,EAAED,EAAE,KAAK,CAACC,EAAEJ,IAAIA,EAAE,EAAEI,EAAEsM,EAAEtM,EAAE,EAAC,EAAG9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK8B,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,GAAGA,EAAE,CAAC,EAAEuM,GAAGvM,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC6B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAEuM,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIpO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,GAAGA,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIuM,GAAGvM,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACoO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIpO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,MAAMC,EAAED,EAAE,KAAK,CAACC,EAAEJ,IAAIA,EAAE,EAAEI,EAAEsM,EAAEtM,EAAE,EAAC,EAAG9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK8B,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI9B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG6B,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAEuM,EAAEvM,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,GAAGA,EAAE,CAAC,EAAEuM,GAAGvM,EAAE,CAAC,EAAE7B,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAEoO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,IAAI,IAAIpO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE0B,EAAE0M,EAAE9G,CAAC,CAAC,OAAOtH,CAAC,CAAC,SAASyB,IAAE,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI2M,EAAE,GAAG1M,EAAE,EAAE4F,EAAE,EAAEtH,EAAE,EAAEuB,EAAE,EAAEM,EAAE,EAAE+B,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,KAAKivB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAC,CAAE,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAGA,CAAC,CAAC,CAAC,EAAE,CAACnxB,EAAE4F,CAAC,EAAEurB,EAAE,CAAC7yB,EAAEuB,CAAC,EAAEsxB,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAGA,CAAC,CAAC,CAAC,EAAEnxB,EAAEmxB,EAAE,CAAC,EAAEvrB,EAAEurB,EAAE,CAAC,EAAEhxB,EAAEgxB,EAAE,CAAC,EAAEjvB,EAAEivB,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAGA,CAAC,CAAC,CAAC,EAAE,CAACnxB,EAAE4F,CAAC,EAAEurB,EAAE,MAAM,IAAI,IAAInxB,EAAEmxB,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACnxB,EAAE4F,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAEurB,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACnxB,EAAE4F,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,IAAIxF,EAAE,EAAE9B,EAAE,EAAQoO,IAAN,KAAeA,IAAN,KAAStM,EAAEJ,GAAGA,EAAEG,GAAG7B,EAAEsH,GAAGA,EAAE1D,KAAK9B,EAAEJ,EAAE1B,EAAEsH,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACxF,EAAE9B,EAAE,GAAG6yB,CAAC,CAAC,CAAC,EAAEhxB,EAAEgxB,EAAE,CAAC,EAAEjvB,EAAEivB,EAAE,CAAC,EAAEnxB,EAAEmxB,EAAE,CAAC,EAAEvrB,EAAEurB,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC/wB,EAAE9B,CAAC,EAAE6yB,EAAE,IAAI,EAAE,EAAE3xB,EAAE,EAAQkN,IAAN,KAAeA,IAAN,KAAS,EAAE1M,GAAGA,EAAEG,GAAGX,EAAEoG,GAAGA,EAAE1D,KAAK,EAAElC,EAAER,EAAEoG,GAAG,MAAMpF,EAAER,EAAE,GAAG,EAAEA,GAAG,EAAEC,EAAE2F,EAAE,GAAGpG,EAAEoG,GAAG,EAAEjG,EAAES,EAAE,GAAG,EAAEA,GAAG,EAAEX,EAAEnB,EAAE,GAAGkB,EAAElB,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACkC,EAAEP,EAAEN,EAAEF,EAAEW,EAAE9B,CAAC,CAAC,CAAC,EAAE6B,EAAE,EAAE+B,EAAE1C,EAAEQ,EAAEI,EAAEwF,EAAEtH,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC8B,EAAEsM,EAAEpO,EAAEuB,CAAC,EAAEsxB,EAAE3xB,EAAEQ,EAAE,GAAGI,EAAEJ,GAAG,EAAEQ,EAAEoF,EAAE,GAAG8G,EAAE9G,GAAG,EAAE3F,EAAE3B,EAAE,GAAG8B,EAAE9B,GAAG,EAAEqB,EAAEE,EAAE,GAAG6M,EAAE7M,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAACL,EAAEgB,EAAEP,EAAEN,EAAErB,EAAEuB,CAAC,CAAC,CAAC,EAAEM,EAAEC,EAAE8B,EAAEwK,EAAE1M,EAAE1B,EAAEsH,EAAE/F,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAMO,EAAE,KAAK,IAAI+wB,EAAE,CAAC,CAAC,EAAEzkB,EAAE,KAAK,IAAIykB,EAAE,CAAC,CAAC,EAAE7yB,EAAE6yB,EAAE,CAAC,EAAEtxB,EAAEsxB,EAAE,CAAC,EAAEhxB,EAAEgxB,EAAE,CAAC,EAAEjvB,EAAEivB,EAAE,CAAC,EAAE3xB,EAAE2xB,EAAE,CAAC,EAAS/wB,IAAJ,GAAWsM,IAAJ,GAAM,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC1M,EAAE4F,EAAE1D,EAAE1C,EAAE0C,EAAE1C,CAAC,CAAC,CAAC,EAAEQ,EAAEkC,EAAE0D,EAAEpG,IAAUQ,IAAIkC,GAAG0D,IAAIpG,KAAGhF,IAAEwF,EAAE4F,EAAE1D,EAAE1C,EAAEY,EAAEsM,EAAEpO,EAAEuB,EAAEM,CAAC,EAAE,SAAS,SAASC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,KAAKA,CAAC,CAAC,CAAC,EAAC,EAAGJ,EAAEkC,EAAE0D,EAAEpG,GAAE,KAAK,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,EAAEQ,EAAE1B,EAAEsH,EAAE/F,CAAC,CAAC6M,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAASpM,GAAE,EAAE,EAAEoM,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAIA,CAAC,EAAE,EAAE,KAAK,IAAIA,CAAC,EAAE,EAAE,KAAK,IAAIA,CAAC,EAAE,EAAE,KAAK,IAAIA,CAAC,CAAC,CAAC,CAAC,SAASlS,IAAE,EAAE,EAAEkS,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAEM,EAAE+B,EAAE,EAAE,CAAC,MAAMivB,GAAG3wB,EAAEX,EAAE,KAAK,GAAGW,EAAE,KAAK,IAAIA,EAAE,IAAIP,EAAE,GAAGN,EAAE,EAAEF,EAAE,EAAEG,EAAE,EAAEqxB,EAAE,EAAE,GAAG,EAAE,CAACtxB,EAAEF,EAAEG,EAAEqxB,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE3wB,GAAE,EAAE,EAAE,CAAC6wB,CAAC,EAAE,CAACzkB,EAAE1M,CAAC,EAAEM,GAAEoM,EAAE1M,EAAE,CAACmxB,CAAC,EAAE,MAAMtxB,GAAG,EAAE6M,GAAG,EAAElN,GAAG,EAAEQ,GAAG,EAAE,IAAIQ,EAAEX,EAAEA,GAAG+F,EAAEA,GAAGpG,EAAEA,GAAGlB,EAAEA,GAAGkC,EAAE,IAAIA,EAAE,KAAK,KAAKA,CAAC,EAAEoF,GAAGpF,EAAElC,GAAGkC,GAAG,MAAMP,EAAE2F,EAAEA,EAAE9F,EAAExB,EAAEA,EAAEC,EAAE0B,EAAEH,EAAEG,EAAET,EAAEA,EAAEM,EAAED,EAAEA,EAAEpF,EAAEwF,EAAET,EAAEA,EAAEM,EAAED,EAAEA,EAAEE,GAAGI,IAAI+B,EAAE,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI3D,EAAE9D,CAAC,CAAC,EAAEmF,EAAEG,EAAE6F,EAAEpG,EAAElB,GAAG,EAAEoO,GAAG,EAAEukB,EAAElxB,EAAE,CAACzB,EAAEuB,EAAE+F,GAAG,EAAE5F,GAAG,EAAEL,EAAE,KAAK,KAAK,aAAa,EAAEsxB,GAAG3yB,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAEmB,EAAE,KAAK,KAAK,aAAaO,EAAEixB,GAAG3yB,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAEsB,IAAID,EAAE,KAAK,GAAGA,GAAG+M,EAAE9M,IAAIH,EAAE,KAAK,GAAGA,GAAGE,EAAE,IAAIA,EAAE,EAAE,KAAK,GAAGA,GAAGF,EAAE,IAAIA,EAAE,EAAE,KAAK,GAAGA,GAAGyC,GAAGvC,EAAEF,IAAIE,GAAG,EAAE,KAAK,IAAI,CAACuC,GAAGzC,EAAEE,IAAIF,GAAG,EAAE,KAAK,GAAG,CAAC,IAAIK,EAAEL,EAAEE,EAAE,GAAG,KAAK,IAAIG,CAAC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAMM,EAAEX,EAAEC,EAAEgN,EAAEvM,EAAEH,EAAEP,EAAEyC,GAAGzC,EAAEE,EAAEA,EAAE,IAAI,KAAK,GAAG,IAAI,EAAEA,EAAE,IAAI,KAAK,GAAG,IAAI,GAAGM,EAAEzF,IAAEkS,EAAE9M,EAAEgG,EAAE,KAAK,IAAInG,CAAC,EAAEO,EAAEixB,EAAE3yB,EAAE,KAAK,IAAImB,CAAC,EAAEC,EAAES,EAAEyF,EAAEtH,EAAEuB,EAAE,EAAEqC,EAAE,CAACzC,EAAEW,EAAER,EAAEqxB,CAAC,CAAC,CAAC,CAACnxB,EAAEL,EAAEE,EAAE,MAAMpB,EAAE,KAAK,IAAIoB,CAAC,EAAElF,EAAE,KAAK,IAAIkF,CAAC,EAAEI,EAAE,KAAK,IAAIN,CAAC,EAAE2yB,EAAE,KAAK,IAAI3yB,CAAC,EAAEY,EAAE,KAAK,IAAIP,EAAE,CAAC,EAAEszB,EAAE,EAAE,EAAExtB,EAAEvF,EAAEuxB,EAAE,EAAE,EAAEtzB,EAAE+B,EAAE8xB,EAAE,CAAC,EAAE,CAAC,EAAEkB,EAAE,CAAC,EAAED,EAAE34B,EAAE,EAAEm3B,EAAErzB,CAAC,EAAEwzB,EAAE,CAACrlB,EAAE0mB,EAAEhB,EAAEpyB,EAAE4xB,EAAE7xB,CAAC,EAAEU,EAAE,CAACiM,EAAE1M,CAAC,EAAE,GAAGqzB,EAAE,CAAC,EAAE,EAAElB,EAAE,CAAC,EAAEkB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAElB,EAAE,CAAC,EAAEkB,EAAE,CAAC,EAAE,EAAE,MAAM,CAACA,EAAEtB,EAAEtxB,CAAC,EAAE,OAAOR,CAAC,EAAE,CAACA,EAAE,CAACozB,EAAEtB,EAAEtxB,CAAC,EAAE,OAAOR,CAAC,EAAE,MAAMG,EAAE,GAAG,QAAQV,EAAE,EAAEA,EAAEO,EAAE,OAAOP,GAAG,EAAE,CAAC,MAAMgN,EAAEpM,GAAEL,EAAEP,CAAC,EAAE,CAAC,EAAEO,EAAEP,CAAC,EAAE,CAAC,EAAEyxB,CAAC,EAAEnxB,EAAEM,GAAEL,EAAEP,EAAE,CAAC,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAE,CAAC,EAAEyxB,CAAC,EAAEvrB,EAAEtF,GAAEL,EAAEP,EAAE,CAAC,EAAE,CAAC,EAAEO,EAAEP,EAAE,CAAC,EAAE,CAAC,EAAEyxB,CAAC,EAAE/wB,EAAE,KAAK,CAACsM,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE1M,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE4F,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOxF,CAAC,CAAC,CAAC,MAAMgyB,IAAE,CAAC,WAAW,SAAS,EAAE,EAAE,CAAC,OAAOZ,GAAE,EAAE,CAAC,CAAC,EAAE,oBAAoB,SAAS,EAAE,EAAE9kB,EAAE,CAAC,OAAO4lB,GAAE,EAAE,EAAE5lB,CAAC,CAAC,EAAE,QAAQ,SAAS,EAAE,EAAEA,EAAE1M,EAAE4F,EAAE,CAAC,MAAMtH,EAAE+0B,IAAE3mB,EAAE1M,EAAE4F,CAAC,EAAE,OAAOmsB,GAAE,EAAE,EAAEnsB,EAAEtH,CAAC,EAAE,KAAK,EAAE,cAAc,SAAS,EAAE,EAAEoO,EAAE1M,EAAE4F,EAAE,CAAC,OAAOouB,GAAE,EAAE,EAAEtnB,EAAE1M,EAAE4F,EAAE,EAAE,CAAC,CAAC,EAAE,SAASvF,IAAE,EAAE,EAAEqM,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,IAAIouB,GAAE,EAAE,EAAEtnB,EAAE1M,EAAE4F,CAAC,CAAC,CAAC,CAAC,SAASwtB,GAAE,EAAE,EAAE1mB,EAAE,CAAC,MAAM1M,GAAG,GAAG,IAAI,OAAO,GAAGA,EAAE,EAAE,CAAC,MAAM4F,EAAE,GAAG,QAAQlG,EAAE,EAAEA,EAAEM,EAAE,EAAEN,IAAIkG,EAAE,KAAK,GAAGouB,GAAE,EAAEt0B,CAAC,EAAE,CAAC,EAAE,EAAEA,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEgN,CAAC,CAAC,EAAE,OAAO,GAAG9G,EAAE,KAAK,GAAGouB,GAAE,EAAEh0B,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE0M,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI9G,CAAC,CAAC,CAAC,OAAW5F,IAAJ,EAAMK,IAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEqM,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,SAASklB,IAAE,EAAE,EAAEllB,EAAE1M,EAAE4F,EAAE,CAAC,OAAO,SAASxF,EAAEV,EAAE,CAAC,OAAO0zB,GAAEhzB,EAAE,GAAGV,CAAC,CAAC,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEgN,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,EAAE1M,CAAC,EAAE,CAAC,EAAE,EAAEA,CAAC,CAAC,EAAE4F,CAAC,CAAC,CAAC,SAASusB,IAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,MAAMzlB,EAAY,OAAO,EAAE,CAAC,EAAE,CAAC,GAAvB,SAAyB,CAAC,CAAC,EAAE,EAAE1M,EAAE+zB,GAAErnB,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE9G,EAAE,EAAE,mBAAmB,GAAGmuB,GAAErnB,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAWnM,IAAE,CAAC,CAAC,EAAE,QAAQH,EAAE,EAAEA,EAAEsM,EAAE,OAAOtM,IAAI,CAAC,MAAM,EAAEsM,EAAEtM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAMA,EAAE2zB,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAErnB,EAAE,EAAE,mBAAmB,GAAGqnB,GAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAWxzB,IAAE,CAAC,CAAC,EAAE,UAAUb,KAAKU,EAAWV,EAAE,KAAX,QAAeM,EAAE,KAAKN,CAAC,EAAE,UAAUU,KAAKsM,EAAWtM,EAAE,KAAX,QAAewF,EAAE,KAAKxF,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,IAAIJ,EAAE,OAAO4F,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,SAASytB,IAAE,EAAE,EAAE3mB,EAAE,CAAC,MAAM1M,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE4F,EAAE,KAAK,KAAK,KAAK,IAAI8G,EAAE,eAAeA,EAAE,eAAe,KAAK,KAAK,GAAG,EAAE1M,CAAC,CAAC,EAAE1B,EAAE,EAAE,KAAK,GAAGsH,EAAE,IAAI/F,EAAE,KAAK,IAAI,EAAE,CAAC,EAAEM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM+B,EAAE,EAAEwK,EAAE,aAAa,OAAO7M,GAAG2xB,GAAE3xB,EAAEqC,EAAEwK,CAAC,EAAEvM,GAAGqxB,GAAErxB,EAAE+B,EAAEwK,CAAC,EAAE,CAAC,UAAUpO,EAAE,GAAGuB,EAAE,GAAGM,CAAC,CAAC,CAAC,SAAS4xB,GAAE,EAAE,EAAErlB,EAAE1M,EAAE,CAAC,KAAK,CAAC4F,EAAEtH,CAAC,EAAEizB,IAAEvxB,EAAE,UAAU,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAG,EAAEA,EAAE,UAAUsyB,GAAE,GAAGA,GAAE,GAAG,EAAE5lB,CAAC,EAAEA,CAAC,EAAEA,CAAC,EAAE,IAAI7M,EAAEK,GAAE0F,EAAE,KAAK8G,CAAC,EAAE,GAAG,CAACA,EAAE,oBAAwBA,EAAE,YAAN,EAAgB,CAAC,KAAK,CAAC,CAAC,EAAE6kB,IAAEvxB,EAAE,UAAU,EAAE,EAAEA,EAAE,GAAGA,EAAE,GAAG,IAAI,EAAE0M,CAAC,EAAEpO,EAAE4B,GAAE,EAAE,KAAKwM,CAAC,EAAE7M,EAAEA,EAAE,OAAOvB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgBA,EAAE,MAAM,CAAC,KAAK,OAAO,IAAIuB,CAAC,CAAC,CAAC,CAAC,SAASY,IAAE,EAAE,EAAEiM,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAEM,EAAE+B,EAAE,CAAC,MAAM,EAAE,EAAEivB,EAAE,EAAE,IAAI3wB,EAAE,KAAK,IAAIkM,EAAE,CAAC,EAAEzM,EAAE,KAAK,IAAID,EAAE,CAAC,EAAEQ,GAAGgxB,GAAE,IAAIhxB,EAAE0B,CAAC,EAAEjC,GAAGuxB,GAAE,IAAIvxB,EAAEiC,CAAC,EAAE,IAAIvC,EAAEiG,EAAEnG,EAAEnB,EAAE,KAAKqB,EAAE,GAAGA,GAAG,EAAE,KAAK,GAAGF,GAAG,EAAE,KAAK,GAAGA,EAAEE,EAAE,EAAE,KAAK,KAAKA,EAAE,EAAEF,EAAE,EAAE,KAAK,IAAI,MAAMG,EAAE,EAAE,KAAK,GAAGsC,EAAE,eAAe+uB,EAAE,KAAK,IAAIrxB,EAAE,GAAGH,EAAEE,GAAG,CAAC,EAAEG,EAAEyzB,IAAEtC,EAAE,EAAEE,EAAE3wB,EAAEP,EAAEN,EAAEF,EAAE,EAAEyC,CAAC,EAAE,GAAG,CAACA,EAAE,mBAAmB,CAAC,MAAM9B,EAAEmzB,IAAEtC,EAAE,EAAEE,EAAE3wB,EAAEP,EAAEN,EAAEF,EAAE,IAAIyC,CAAC,EAAEpC,EAAE,KAAK,GAAGM,CAAC,CAAC,CAAC,OAAOP,IAAIM,EAAEL,EAAE,KAAK,GAAGk0B,GAAE,EAAE7C,EAAE,EAAE3wB,EAAE,KAAK,IAAIb,CAAC,EAAEwxB,EAAElxB,EAAE,KAAK,IAAIN,CAAC,EAAEuC,CAAC,EAAE,GAAG8xB,GAAE,EAAE7C,EAAE,EAAE3wB,EAAE,KAAK,IAAIf,CAAC,EAAE0xB,EAAElxB,EAAE,KAAK,IAAIR,CAAC,EAAEyC,CAAC,CAAC,EAAEpC,EAAE,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,EAAEqxB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE3wB,EAAE,KAAK,IAAIb,CAAC,EAAEwxB,EAAElxB,EAAE,KAAK,IAAIN,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,IAAIG,CAAC,CAAC,CAAC,SAASkO,IAAE,EAAE,EAAE,CAAC,MAAMtB,EAAE3M,IAAEtF,IAAE8D,GAAE,CAAC,CAAC,CAAC,EAAEyB,EAAE,GAAG,IAAI4F,EAAE,CAAC,EAAE,CAAC,EAAEtH,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI8B,EAAE,KAAKP,CAAC,IAAI6M,EAAE,OAAOtM,EAAC,CAAE,IAAI,IAAI9B,EAAE,CAACuB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE+F,EAAE,CAAC/F,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIG,EAAE,KAAK,GAAGg0B,GAAE11B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEuB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEvB,EAAE,CAACuB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAACO,EAAEsM,EAAE9G,EAAEzF,EAAE+B,EAAE1C,CAAC,EAAEK,EAAEG,EAAE,KAAK,GAAG0yB,IAAEtyB,EAAEsM,EAAE9G,EAAEzF,EAAE+B,EAAE1C,EAAElB,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC4D,EAAE1C,CAAC,EAAE,KAAK,CAAC,IAAI,IAAIQ,EAAE,KAAK,GAAGg0B,GAAE11B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEsH,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEtH,EAAE,CAACsH,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI5F,CAAC,CAAC,CAAC,SAASoxB,GAAE,EAAE,EAAE,CAAC,MAAM1kB,EAAE,GAAG,UAAU1M,KAAK,EAAE,GAAGA,EAAE,OAAO,CAAC,MAAMI,EAAE,EAAE,qBAAqB,EAAEwF,EAAE5F,EAAE,OAAO,GAAG4F,EAAE,EAAE,CAAC8G,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC1M,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAEpxB,EAAE,CAAC,EAAEJ,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAEpxB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAEwF,EAAE,IAAI8G,EAAE,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC1M,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAEpxB,EAAE,CAAC,EAAEJ,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAEpxB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,WAAW,IAAIsM,CAAC,CAAC,CAAC,SAAS+kB,GAAE,EAAE,EAAE,CAAC,OAAO,SAASrxB,EAAEV,EAAE,CAAC,IAAIgN,EAAEtM,EAAE,WAAW,UAAU,GAAG,CAACI,GAAEkM,CAAC,EAAE,OAAOA,EAAC,CAAE,IAAI,SAASlM,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAI7M,IAAEH,CAAC,GAAG,MAAM,IAAI,cAAcc,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAIvM,IAAET,CAAC,GAAG,MAAM,IAAI,OAAOc,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAIxK,IAAExC,CAAC,GAAG,MAAM,IAAI,SAASc,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAIlN,IAAEE,CAAC,GAAG,MAAM,IAAI,cAAcc,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAIykB,IAAEzxB,CAAC,GAAG,MAAM,QAAQgN,EAAE,UAAUlM,GAAEkM,CAAC,IAAIlM,GAAEkM,CAAC,EAAE,IAAI9G,GAAElG,CAAC,EAAE,CAAC,OAAOc,GAAEkM,CAAC,CAAC,GAAE,EAAE0lB,GAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS7xB,IAAE,EAAE,CAAC,MAAM,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,SAASywB,IAAE,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,IAAI/wB,IAAE,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,KAAI,CAAE,CAAC,SAASqyB,GAAE,EAAE,EAAE5lB,EAAE1M,EAAE,EAAE,CAAC,OAAO0M,EAAE,UAAU1M,GAAGgxB,IAAEtkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS8kB,GAAE,EAAE,EAAE9kB,EAAE,EAAE,CAAC,OAAO4lB,GAAE,CAAC,EAAE,EAAE,EAAE5lB,CAAC,CAAC,CAAC,SAASsnB,GAAE,EAAE,EAAEtnB,EAAE1M,EAAE4F,EAAEtH,EAAE,GAAG,CAAC,MAAMuB,EAAEvB,EAAEsH,EAAE,uBAAuBA,EAAE,mBAAmBzF,EAAE8yB,GAAE,EAAE,EAAEvmB,EAAE1M,EAAE4F,EAAE,GAAG,EAAE,EAAE,GAAG/F,EAAE,OAAOM,EAAE,MAAM+B,EAAE+wB,GAAE,EAAE,EAAEvmB,EAAE1M,EAAE4F,EAAE,GAAG,EAAE,EAAE,OAAOzF,EAAE,OAAO+B,CAAC,CAAC,CAAC,SAAS+wB,GAAE,EAAE,EAAEvmB,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAE,CAAC,MAAMM,EAAE,KAAK,IAAI,EAAEuM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE1M,EAAE,CAAC,EAAEkC,EAAE,KAAK,KAAK/B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE+B,EAAE,IAAI,EAAEA,EAAE,IAAI,GAAG,UAAUA,EAAE,SAAS,IAAIivB,EAAEvrB,EAAE,qBAAqB,EAAEurB,EAAEA,EAAE,IAAIhxB,IAAIgxB,EAAEjvB,EAAE,IAAI,MAAM1B,EAAE2wB,EAAE,EAAElxB,EAAE,GAAG,GAAG+wB,IAAEprB,CAAC,EAAE,IAAIjG,EAAEiG,EAAE,OAAOA,EAAE,qBAAqB5F,EAAE,GAAG,IAAIP,EAAEmG,EAAE,OAAOA,EAAE,qBAAqB,EAAE8G,GAAG,IAAI/M,EAAE6xB,GAAE7xB,EAAEiG,EAAE,CAAC,EAAEnG,EAAE+xB,GAAE/xB,EAAEmG,EAAE,CAAC,EAAE,MAAMhG,EAAE,GAAGqxB,EAAE,IAAIO,GAAEhxB,EAAEoF,EAAE,CAAC,EAAE9F,EAAE,IAAI0xB,GAAEL,EAAEvrB,EAAE,CAAC,EAAErH,EAAEqH,EAAE,iBAAiB,OAAW/F,EAAED,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAGrB,EAAE,EAAE0yB,EAAC,GAAI,GAAG1yB,EAAE,EAAE0yB,EAAC,EAAG,CAAC,CAAC,EAAErxB,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAGrB,EAAE,EAAEizB,GAAEL,EAAEvrB,EAAE,CAAC,GAAG,GAAGrH,EAAE,EAAEizB,GAAEL,EAAEvrB,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG/F,EAAED,EAAE,KAAK,CAAC,GAAG,WAAW,KAAK,CAACD,EAAE,GAAG+M,EAAE,GAAGzM,EAAEgxB,EAAC,EAAGxxB,EAAE,GAAGO,EAAE,GAAGC,EAAEgxB,EAAC,EAAGtxB,EAAE,EAAE,GAAG+M,EAAE,GAAGzM,EAAEgxB,EAAC,EAAGxxB,EAAE,EAAE,GAAGO,EAAE,GAAGC,EAAEgxB,EAAC,EAAGvkB,GAAGnO,EAAE,EAAE0yB,EAAC,GAAIjxB,GAAGzB,EAAE,EAAE0yB,EAAC,EAAG,CAAC,CAAC,EAAErxB,EAAE,KAAK,CAAC,GAAG,WAAW,KAAK,CAACD,EAAE,GAAG+M,EAAE,GAAGzM,EAAEH,EAAC,EAAGL,EAAE,GAAGO,EAAE,GAAGC,EAAEH,EAAC,EAAGH,EAAE,EAAE,GAAG+M,EAAE,GAAGzM,EAAEH,EAAC,EAAGL,EAAE,EAAE,GAAGO,EAAE,GAAGC,EAAEH,EAAC,EAAG4M,GAAGnO,EAAE,EAAEuB,EAAC,GAAIE,GAAGzB,EAAE,EAAEuB,EAAC,EAAG,CAAC,CAAC,EAAEF,CAAC,CAAC,SAASm0B,GAAE,EAAE,EAAErnB,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,MAAM,GAAG,MAAM1M,EAAE,GAAGA,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAE,EAAE9kB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE8kB,GAAE,EAAE9kB,CAAC,CAAC,CAAC,EAAE1M,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEwxB,GAAE,EAAE9kB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE8kB,GAAE,EAAE9kB,CAAC,CAAC,CAAC,EAAE,QAAQ9G,EAAE,EAAEA,EAAE,EAAE,OAAOA,IAAI5F,EAAE,KAAK,CAAC,EAAE4F,CAAC,EAAE,CAAC,EAAE4rB,GAAE,EAAE9kB,CAAC,EAAE,EAAE9G,CAAC,EAAE,CAAC,EAAE4rB,GAAE,EAAE9kB,CAAC,CAAC,CAAC,EAAE9G,IAAI,EAAE,OAAO,GAAG5F,EAAE,KAAK,CAAC,EAAE4F,CAAC,EAAE,CAAC,EAAE4rB,GAAE,EAAE9kB,CAAC,EAAE,EAAE9G,CAAC,EAAE,CAAC,EAAE4rB,GAAE,EAAE9kB,CAAC,CAAC,CAAC,EAAE,OAAOxM,GAAEF,EAAE,KAAK0M,CAAC,CAAC,CAAC,SAASxM,GAAE,EAAE,EAAEwM,EAAE,CAAC,MAAM1M,EAAE,EAAE,OAAO4F,EAAE,GAAG,GAAG5F,EAAE,EAAE,CAAC,MAAM1B,EAAE,GAAGuB,EAAE,EAAE6M,EAAE,eAAe9G,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQlG,EAAE,EAAEA,EAAE,EAAEM,EAAEN,IAAI,CAAC,MAAMgN,EAAE,EAAEhN,CAAC,EAAEpB,EAAE,CAAC,EAAE,CAACoO,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEpO,EAAE,CAAC,EAAE,CAACoO,EAAE,CAAC,GAAG7M,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEgN,EAAE,CAAC,GAAG7M,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAEpB,EAAE,CAAC,EAAE,CAAC,EAAEoB,EAAE,CAAC,EAAE,CAAC,GAAGG,EAAE,EAAEH,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,GAAGG,EAAE,EAAEH,CAAC,EAAE,CAAC,EAAEG,EAAE,EAAEH,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAEpB,EAAE,CAAC,EAAE,CAAC,EAAEoB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEkG,EAAE,KAAK,CAAC,GAAG,WAAW,KAAK,CAACtH,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAwG,MAAU0B,IAAJ,GAAO4F,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAO5F,IAAJ,GAAO4F,EAAE,KAAK,GAAGqtB,GAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEvmB,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO9G,CAAC,CAAC,SAAS2rB,IAAE,EAAE,EAAE7kB,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAEM,EAAE,CAAC,MAAM+B,EAAE,GAAG,EAAE,GAAG,GAAO/B,EAAE,YAAN,EAAgB,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAEH,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE0M,EAAE9G,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQtH,EAAE,EAAEA,GAAG,EAAE,KAAK,GAAGA,GAAG,EAAE,CAAC,MAAM8B,EAAE,CAAC,EAAEJ,EAAE,KAAK,IAAI1B,CAAC,EAAEoO,EAAE9G,EAAE,KAAK,IAAItH,CAAC,CAAC,EAAE4D,EAAE,KAAK9B,CAAC,EAAE,EAAE,KAAKA,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAEJ,EAAE,KAAK,IAAI,CAAC,EAAE0M,EAAE9G,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE5F,EAAE,KAAK,IAAI,CAAC,EAAE0M,EAAE9G,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAMurB,EAAEK,GAAE,GAAGrxB,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,CAACqxB,GAAElzB,EAAE6B,CAAC,EAAE,EAAE,GAAGH,EAAE,KAAK,IAAImxB,EAAE,CAAC,EAAEK,GAAElzB,EAAE6B,CAAC,EAAEuM,EAAE,GAAG9G,EAAE,KAAK,IAAIurB,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM3wB,EAAE,EAAE,KAAK,GAAG2wB,EAAE,IAAI,QAAQtxB,EAAEsxB,EAAEtxB,EAAEW,EAAEX,GAAG,EAAE,CAAC,MAAMO,EAAE,CAACoxB,GAAElzB,EAAE6B,CAAC,EAAE,EAAEH,EAAE,KAAK,IAAIH,CAAC,EAAE2xB,GAAElzB,EAAE6B,CAAC,EAAEuM,EAAE9G,EAAE,KAAK,IAAI/F,CAAC,CAAC,EAAEqC,EAAE,KAAK9B,CAAC,EAAE,EAAE,KAAKA,CAAC,CAAC,CAAC,EAAE,KAAK,CAACoxB,GAAElzB,EAAE6B,CAAC,EAAE,EAAEH,EAAE,KAAK,IAAImxB,EAAE,EAAE,KAAK,GAAG,GAAGtxB,CAAC,EAAE2xB,GAAElzB,EAAE6B,CAAC,EAAEuM,EAAE9G,EAAE,KAAK,IAAIurB,EAAE,EAAE,KAAK,GAAG,GAAGtxB,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC2xB,GAAElzB,EAAE6B,CAAC,EAAE,EAAE,IAAIH,EAAE,KAAK,IAAImxB,EAAEtxB,CAAC,EAAE2xB,GAAElzB,EAAE6B,CAAC,EAAEuM,EAAE,IAAI9G,EAAE,KAAK,IAAIurB,EAAEtxB,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC2xB,GAAElzB,EAAE6B,CAAC,EAAE,EAAE,GAAGH,EAAE,KAAK,IAAImxB,EAAE,GAAGtxB,CAAC,EAAE2xB,GAAElzB,EAAE6B,CAAC,EAAEuM,EAAE,GAAG9G,EAAE,KAAK,IAAIurB,EAAE,GAAGtxB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAEqC,CAAC,CAAC,CAAC,SAASqxB,IAAE,EAAE,EAAE7mB,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAEM,EAAE+B,EAAE,CAAC,MAAM,EAAE5D,EAAEkzB,GAAE,GAAGtvB,CAAC,EAAEivB,EAAE,GAAGA,EAAE,KAAK,CAACK,GAAErxB,EAAE+B,CAAC,EAAE,EAAE,GAAGlC,EAAE,KAAK,IAAI,EAAE,CAAC,EAAEwxB,GAAErxB,EAAE+B,CAAC,EAAEwK,EAAE,GAAG9G,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQtH,EAAE,EAAEA,GAAGuB,EAAEvB,GAAG,EAAE6yB,EAAE,KAAK,CAACK,GAAErxB,EAAE+B,CAAC,EAAE,EAAElC,EAAE,KAAK,IAAI1B,CAAC,EAAEkzB,GAAErxB,EAAE+B,CAAC,EAAEwK,EAAE9G,EAAE,KAAK,IAAItH,CAAC,CAAC,CAAC,EAAE,OAAO6yB,EAAE,KAAK,CAAC,EAAEnxB,EAAE,KAAK,IAAIH,CAAC,EAAE6M,EAAE9G,EAAE,KAAK,IAAI/F,CAAC,CAAC,CAAC,EAAEsxB,EAAE,KAAK,CAAC,EAAEnxB,EAAE,KAAK,IAAIH,CAAC,EAAE6M,EAAE9G,EAAE,KAAK,IAAI/F,CAAC,CAAC,CAAC,EAAEK,GAAEixB,EAAE,KAAKjvB,CAAC,CAAC,CAAC,SAASwwB,IAAE,EAAE,EAAEhmB,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAEM,EAAE,CAAC,MAAM+B,EAAE,GAAG,EAAE,CAAC/B,EAAE,qBAAqB,GAAGA,EAAE,qBAAqB,GAAG,EAAE,EAAE,IAAIgxB,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM3wB,EAAEL,EAAE,mBAAmB,EAAE,EAAEF,EAAEE,EAAE,iBAAiB,QAAQR,EAAE,EAAEA,EAAEa,EAAEb,IAAQA,IAAJ,EAAMuC,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAACrC,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEqC,EAAE,KAAK,CAAC,GAAG,OAAO,KAAK,CAACrC,EAAE,CAAC,GAAGI,EAAE,EAAEuxB,GAAE,EAAE,CAAC,EAAErxB,CAAC,GAAGN,EAAE,CAAC,GAAGI,EAAE,EAAEuxB,GAAE,EAAE,CAAC,EAAErxB,CAAC,EAAE,CAAC,CAAC,EAAEgxB,EAAElxB,EAAE,CAAC2F,EAAEtH,CAAC,EAAE,CAACsH,EAAE4rB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,EAAE7B,EAAEkzB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,CAAC,EAAE+B,EAAE,KAAK,CAAC,GAAG,WAAW,KAAK,CAAC,EAAEsvB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,EAAE,EAAEqxB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,EAAEuM,EAAE8kB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,EAAEH,EAAEwxB,GAAE,EAAE7xB,CAAC,EAAEQ,CAAC,EAAEgxB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOjvB,CAAC,CAAC,SAASswB,GAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAASV,IAAE,EAAE,EAAE,EAAE,CAAC,MAAMplB,EAAE,EAAE,OAAO,GAAGA,EAAE,EAAE,MAAM,IAAI,MAAM,0CAA0C,EAAE,MAAM1M,EAAE,GAAG,GAAO0M,IAAJ,EAAM1M,EAAE,KAAKwyB,GAAE,EAAE,CAAC,CAAC,EAAEA,GAAE,EAAE,CAAC,CAAC,EAAEA,GAAE,EAAE,CAAC,CAAC,EAAEA,GAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM9lB,EAAE,GAAGA,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQhN,EAAE,EAAEA,EAAE,EAAE,OAAOA,IAAIgN,EAAE,KAAK,EAAEhN,CAAC,CAAC,EAAEA,IAAI,EAAE,OAAO,GAAGgN,EAAE,KAAK,EAAEhN,CAAC,CAAC,EAAE,MAAMkG,EAAE,GAAG,EAAE,EAAE,EAAE5F,EAAE,KAAKwyB,GAAE9lB,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQtM,EAAE,EAAEA,EAAE,EAAEsM,EAAE,OAAOtM,IAAI,CAAC,MAAMV,EAAEgN,EAAEtM,CAAC,EAAEwF,EAAE,CAAC,EAAE,CAAClG,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEkG,EAAE,CAAC,EAAE,CAAClG,EAAE,CAAC,GAAG,EAAEgN,EAAEtM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEV,EAAE,CAAC,GAAG,EAAEgN,EAAEtM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAEwF,EAAE,CAAC,EAAE,CAAC8G,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEsM,EAAEtM,CAAC,EAAE,CAAC,EAAE,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAEsM,EAAEtM,CAAC,EAAE,CAAC,EAAE,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAEwF,EAAE,CAAC,EAAE,CAAC8G,EAAEtM,EAAE,CAAC,EAAE,CAAC,EAAEsM,EAAEtM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEJ,EAAE,KAAK4F,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO5F,CAAC,CAAC,SAAS0xB,GAAE,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAASL,IAAE,EAAE,EAAE3kB,EAAE,CAAC,MAAM1M,EAAE0xB,GAAE,EAAEhlB,CAAC,EAAE,GAAO1M,IAAJ,EAAM,OAAO0xB,GAAE,EAAE,CAAC,EAAE,IAAI9rB,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI8G,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI1M,EAAE,OAAO4F,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEA,CAAC,CAAC,EAAE8rB,GAAE,EAAEJ,GAAE,EAAE5kB,EAAE9G,CAAC,CAAC,CAAC,CAAC,SAAS0rB,GAAE,EAAE,EAAE5kB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAGA,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAGA,CAAC,CAAC,CAAC,SAASwkB,GAAE,EAAE,EAAExkB,EAAE1M,EAAE,CAAC,MAAM4F,EAAE5F,GAAG,GAAG,IAAG,SAASI,EAAEV,EAAE,CAAC,MAAMgN,EAAEtM,EAAEV,EAAE,CAAC,EAAEM,EAAEI,EAAEV,EAAE,CAAC,EAAEkG,EAAExF,EAAEV,EAAE,CAAC,EAAEpB,EAAE8B,EAAEV,EAAE,CAAC,EAAE,IAAI,EAAE,EAAEM,EAAE,CAAC,EAAE,EAAE0M,EAAE,CAAC,EAAEpO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI6B,EAAE,EAAEH,EAAE,CAAC,EAAE,EAAE0M,EAAE,CAAC,EAAEpO,EAAE,CAAC,EAAE6B,GAAGA,EAAE,IAAI+B,EAAE,EAAE0D,EAAE,CAAC,EAAE,EAAEtH,EAAE,CAAC,EAAEoO,EAAE,CAAC,EAAExK,GAAGA,EAAE,IAAI1C,EAAE,EAAEoG,EAAE,CAAC,EAAE,EAAEtH,EAAE,CAAC,EAAEoO,EAAE,CAAC,EAAE,OAAOlN,GAAGA,EAAE,EAAE0C,IAAI,EAAEA,GAAG/B,EAAEX,IAAIW,EAAEX,GAAG,EAAEW,CAAC,GAAE,EAAE,CAAC,EAAEuM,EAAE,CAAC,MAAMA,EAAE,EAAE,EAAE,CAAC,EAAK9G,EAAE,QAAStH,EAAEsH,EAAEA,EAAE,OAAO,CAAC,EAAE/F,EAAE6M,EAAE,KAAK,KAAKglB,GAAEpzB,EAAEuB,CAAC,CAAC,EAAG,GAAG+F,EAAE,KAAK8G,CAAC,GAAO9G,EAAE,KAAK8G,CAAC,EAAE9G,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAWtH,EAAE,EAAE,EAAE,CAAC,EAAEuB,EAAE,EAAE,EAAE,CAAC,EAAEM,EAAE,EAAE,EAAE,CAAC,EAAE+B,EAAE,EAAE,EAAE,CAAC,EAAE1C,EAAE8xB,GAAEhzB,EAAEuB,EAAE,EAAC,EAAEsxB,EAAEG,GAAEzxB,EAAEM,EAAE,EAAC,EAAEK,EAAE8wB,GAAEnxB,EAAE+B,EAAE,EAAC,EAAE,EAAEovB,GAAE9xB,EAAE2xB,EAAE,EAAC,EAAExxB,EAAE2xB,GAAEH,EAAE3wB,EAAE,EAAC,EAAEf,EAAE6xB,GAAE,EAAE3xB,EAAE,EAAC,EAAEuxB,GAAE,CAAC5yB,EAAEkB,EAAE,EAAEC,CAAC,EAAE,EAAEiN,EAAE9G,CAAC,EAAEsrB,GAAE,CAACzxB,EAAEE,EAAEa,EAAE0B,CAAC,EAAE,EAAEwK,EAAE9G,CAAC,CAAC,CAAC,IAAItH,EAAEuB,EAAE,OAAO+F,CAAC,CAAC,SAAS0tB,IAAE,EAAE,EAAE,CAAC,OAAOzB,GAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,SAASA,GAAE,EAAE,EAAEnlB,EAAE1M,EAAE4F,EAAE,CAAC,MAAMtH,EAAEsH,GAAG,GAAG/F,EAAE,EAAE,CAAC,EAAEM,EAAE,EAAEuM,EAAE,CAAC,EAAE,IAAIxK,EAAE,EAAE,EAAE,EAAE,QAAQlC,EAAE,EAAE,EAAEA,EAAE0M,EAAE,EAAE,EAAE1M,EAAE,CAAC,MAAMN,EAAE2xB,IAAE,EAAErxB,CAAC,EAAEH,EAAEM,CAAC,EAAET,EAAEwC,IAAIA,EAAExC,EAAE,EAAEM,EAAE,CAAC,OAAO,KAAK,KAAKkC,CAAC,EAAElC,GAAG6xB,GAAE,EAAE,EAAE,EAAE,EAAE7xB,EAAE1B,CAAC,EAAEuzB,GAAE,EAAE,EAAEnlB,EAAE1M,EAAE1B,CAAC,IAAIA,EAAE,QAAQA,EAAE,KAAKuB,CAAC,EAAEvB,EAAE,KAAK6B,CAAC,GAAG7B,CAAC,CAAC,SAAS+zB,GAAE,EAAE,EAAE,IAAI3lB,EAAE,CAAC,MAAM1M,EAAE,GAAG4F,GAAG,EAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAEA,EAAE,IAAKsrB,GAAE,EAAE,EAAE,EAAE,EAAElxB,CAAC,EAAE,OAAO0M,GAAGA,EAAE,EAAEmlB,GAAE7xB,EAAE,EAAEA,EAAE,OAAO0M,CAAC,EAAE1M,CAAC,CAAC,MAAMs2F,GAAG,OAAM,IAAAw3Q,GAAC,KAAQ,CAAC,YAAY1tW,EAAE,CAAC,KAAK,eAAe,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,OAAO,YAAY,EAAE,eAAe,EAAE,aAAa,IAAI,eAAe,EAAE,UAAU,UAAU,WAAW,GAAG,aAAa,IAAI,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,KAAK,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,uBAAuB,EAAE,EAAE,KAAK,OAAOA,GAAG,GAAG,KAAK,OAAO,UAAU,KAAK,eAAe,KAAK,GAAG,KAAK,OAAO,OAAO,EAAE,CAAC,OAAO,SAAS,CAAC,OAAO,KAAK,MAAM,KAAK,OAAM,EAAG,GAAG,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,OAAOA,EAAE,OAAO,OAAO,GAAG,KAAK,eAAeA,CAAC,EAAE,KAAK,cAAc,CAAC,GAAGA,EAAEV,EAAEgN,EAAE,CAAC,MAAM,CAAC,MAAMtM,EAAE,KAAKV,GAAG,GAAG,QAAQgN,GAAG,KAAK,cAAc,CAAC,CAAC,KAAKtM,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,GAAGA,CAAC,EAAE,OAAO,KAAK,GAAG,OAAO,CAACvF,IAAED,EAAEV,EAAEgN,EAAE1M,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAUI,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,GAAGA,CAAC,EAAE/F,EAAE,GAAGM,EAAEyxB,IAAExxB,EAAEV,EAAEgN,EAAE1M,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM4F,EAAE,CAAC,CAACxF,EAAEV,CAAC,EAAE,CAACU,EAAEsM,EAAEhN,CAAC,EAAE,CAACU,EAAEsM,EAAEhN,EAAEM,CAAC,EAAE,CAACI,EAAEV,EAAEM,CAAC,CAAC,EAAY,EAAE,YAAZ,QAAsBH,EAAE,KAAKuxB,GAAE,CAACxrB,CAAC,EAAE,CAAC,CAAC,EAAE/F,EAAE,KAAK4xB,GAAE,CAAC7rB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS0wF,IAAIz2F,EAAE,KAAKM,CAAC,EAAE,KAAK,GAAG,YAAYN,EAAE,CAAC,CAAC,CAAC,QAAQO,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,GAAGA,CAAC,EAAE/F,EAAE,GAAGM,EAAEkzB,IAAE3mB,EAAE1M,EAAE,CAAC,EAAEkC,EAAE6vB,GAAE3xB,EAAEV,EAAE,EAAES,CAAC,EAAE,GAAG,EAAE,KAAK,GAAa,EAAE,YAAZ,QAAsB,CAAC,MAAMuM,EAAEqlB,GAAE3xB,EAAEV,EAAE,EAAES,CAAC,EAAE,MAAMuM,EAAE,KAAK,WAAW7M,EAAE,KAAK6M,CAAC,CAAC,MAAM7M,EAAE,KAAK4xB,GAAE,CAACvvB,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAASo0F,IAAIz2F,EAAE,KAAKqC,EAAE,KAAK,EAAE,KAAK,GAAG,UAAUrC,EAAE,CAAC,CAAC,CAAC,OAAOO,EAAEV,EAAEgN,EAAE1M,EAAE,CAAC,MAAM4F,EAAE,KAAK,QAAQxF,EAAEV,EAAEgN,EAAEA,EAAE1M,CAAC,EAAE,OAAO4F,EAAE,MAAM,SAASA,CAAC,CAAC,WAAWxF,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,GAAGhN,CAAC,EAAE,OAAO,KAAK,GAAG,aAAa,CAAC0zB,GAAEhzB,EAAE,GAAGsM,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,IAAItM,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAE,GAAGM,EAAE,CAAC,MAAM+B,EAAE,KAAK,GAAG/B,CAAC,EAAEX,EAAE,GAAG2xB,EAAE1wB,IAAEL,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAE,GAAGqC,CAAC,EAAE,GAAGrC,GAAGqC,EAAE,KAAK,GAAaA,EAAE,YAAZ,QAAsB,CAAC,MAAMrC,EAAE,OAAO,OAAO,GAAGqC,CAAC,EAAErC,EAAE,mBAAmB,GAAG,MAAMM,EAAEM,IAAEL,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE,GAAG,GAAG/F,CAAC,EAAEM,EAAE,KAAK,WAAWX,EAAE,KAAKW,CAAC,CAAC,MAAMX,EAAE,MAAK,SAASY,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAEtH,EAAEuB,EAAE,CAAC,MAAMM,EAAEC,EAAE8B,EAAExC,EAAE,IAAIF,EAAE,KAAK,IAAIkN,EAAE,CAAC,EAAEykB,EAAE,KAAK,IAAInxB,EAAE,CAAC,EAAER,GAAGgyB,GAAE,IAAIhyB,EAAEK,CAAC,EAAEsxB,GAAGK,GAAE,IAAIL,EAAEtxB,CAAC,EAAE,IAAIW,EAAEoF,EAAE3F,EAAE3B,EAAE,KAAKkC,EAAE,GAAGA,GAAG,EAAE,KAAK,GAAGP,GAAG,EAAE,KAAK,GAAGA,EAAEO,EAAE,EAAE,KAAK,KAAKA,EAAE,EAAEP,EAAE,EAAE,KAAK,IAAI,MAAMN,GAAGM,EAAEO,GAAGX,EAAE,eAAeJ,EAAE,GAAG,QAAQW,EAAEI,EAAEJ,GAAGH,EAAEG,GAAGT,EAAEF,EAAE,KAAK,CAACU,EAAEX,EAAE,KAAK,IAAIY,CAAC,EAAE8B,EAAEivB,EAAE,KAAK,IAAI/wB,CAAC,CAAC,CAAC,EAAE,OAAOX,EAAE,KAAK,CAACU,EAAEX,EAAE,KAAK,IAAIS,CAAC,EAAEiC,EAAEivB,EAAE,KAAK,IAAIlxB,CAAC,CAAC,CAAC,EAAER,EAAE,KAAK,CAACU,EAAE+B,CAAC,CAAC,EAAEuvB,GAAE,CAAChyB,CAAC,EAAEI,CAAC,CAAC,GAAEO,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE1D,CAAC,CAAC,EAAE,OAAOA,EAAE,SAASo0F,IAAI92F,EAAE,KAAK2xB,CAAC,EAAE,KAAK,GAAG,MAAM3xB,EAAE0C,CAAC,CAAC,CAAC,MAAM9B,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,GAAGhN,CAAC,EAAEM,EAAE,GAAG4F,EAAEusB,IAAE/xB,EAAEsM,CAAC,EAAE,GAAGA,EAAE,MAAMA,EAAE,OAAO4pF,GAAG,GAAa5pF,EAAE,YAAZ,QAAsB,CAAC,MAAMhN,EAAEyyB,IAAE/xB,EAAE,OAAO,OAAO,OAAO,OAAO,GAAGsM,CAAC,EAAE,CAAC,mBAAmB,GAAG,UAAUA,EAAE,UAAUA,EAAE,UAAUA,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE1M,EAAE,KAAK,CAAC,KAAK,WAAW,IAAI,KAAK,aAAaN,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAMA,EAAE,GAAG,EAAEU,EAAE,GAAG,EAAE,OAAO,CAAC,MAAMA,EAAY,OAAO,EAAE,CAAC,EAAE,CAAC,GAAvB,SAAyB,CAAC,CAAC,EAAE,EAAE,UAAUJ,KAAKI,EAAEJ,EAAE,OAAO,EAAEN,EAAE,KAAK,GAAGM,CAAC,EAAMA,EAAE,SAAN,EAAaN,EAAE,KAAK,GAAG2yB,GAAEP,IAAE,CAAC9xB,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE0M,EAAE,WAAW,CAAC,CAAC,EAAEhN,EAAE,KAAK,GAAG2yB,GAAEP,IAAE9xB,CAAC,EAAE,IAAI,EAAE0M,EAAE,WAAW,CAAC,CAAC,CAAC,CAAChN,EAAE,QAAQM,EAAE,KAAKyxB,GAAE,CAAC/xB,CAAC,EAAEgN,CAAC,CAAC,CAAC,CAAC,OAAOA,EAAE,SAAS4pF,IAAIt2F,EAAE,KAAK4F,CAAC,EAAE,KAAK,GAAG,QAAQ5F,EAAE0M,CAAC,CAAC,CAAC,QAAQtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,GAAGhN,CAAC,EAAEM,EAAE,GAAG4F,EAAEwtB,GAAEhzB,EAAE,GAAGsM,CAAC,EAAE,OAAOA,EAAE,OAAiBA,EAAE,YAAZ,QAAsB1M,EAAE,KAAKoxB,GAAE,CAAChxB,CAAC,EAAEsM,CAAC,CAAC,EAAE1M,EAAE,KAAKyxB,GAAE,CAACrxB,CAAC,EAAEsM,CAAC,CAAC,GAAGA,EAAE,SAAS4pF,IAAIt2F,EAAE,KAAK4F,CAAC,EAAE,KAAK,GAAG,UAAU5F,EAAE0M,CAAC,CAAC,CAAC,KAAKtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,GAAGhN,CAAC,EAAEM,EAAE,GAAG,GAAG,CAACI,EAAE,OAAO,KAAK,GAAG,OAAOJ,EAAE0M,CAAC,EAAEtM,GAAGA,GAAG,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,GAAG,EAAE,QAAQ,UAAU,GAAG,EAAE,MAAMwF,EAAE8G,EAAE,MAAsBA,EAAE,OAAlB,eAAwBA,EAAE,OAAO4pF,GAAG,EAAE5pF,EAAE,SAAS4pF,GAAGz2F,EAAE,CAAC,EAAE6M,EAAE,gBAAgBA,EAAE,eAAe,GAAGvM,GAAE,SAASC,EAAEV,EAAEgN,EAAE,CAAC,MAAM1M,EAAED,IAAEtF,IAAE8D,GAAE6B,CAAC,CAAC,CAAC,EAAEwF,EAAE,GAAG,IAAItH,EAAE,GAAGuB,EAAE,CAAC,EAAE,CAAC,EAAEM,EAAE,GAAG,MAAM+B,EAAE,IAAI,CAAC/B,EAAE,QAAQ,GAAG7B,EAAE,KAAK,GAAG+zB,GAAElyB,EAAET,CAAC,CAAC,EAAES,EAAE,EAAE,EAAEX,EAAE,IAAI,CAAC0C,EAAC,EAAG5D,EAAE,SAASsH,EAAE,KAAKtH,CAAC,EAAEA,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI8B,EAAE,KAAKV,CAAC,IAAIM,EAAE,OAAOI,EAAC,CAAE,IAAI,IAAIZ,EAAC,EAAGK,EAAE,CAACH,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEpB,EAAE,KAAKuB,CAAC,EAAE,MAAM,IAAI,IAAIqC,EAAC,EAAG5D,EAAE,KAAK,CAACoB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,GAAG,CAACS,EAAE,OAAO,CAAC,MAAMC,EAAE9B,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,EAAEuB,EAAEM,EAAE,KAAK,CAACC,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAACD,EAAE,KAAK,CAACT,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAES,EAAE,KAAK,CAACT,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAES,EAAE,KAAK,CAACT,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAIwC,EAAC,EAAG5D,EAAE,KAAK,CAACuB,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGL,EAAC,EAAG,CAACkN,EAAE,OAAO9G,EAAE,MAAMurB,EAAE,GAAG,UAAU/wB,KAAKwF,EAAE,CAAC,MAAMlG,EAAE4zB,IAAElzB,EAAEsM,CAAC,EAAEhN,EAAE,QAAQyxB,EAAE,KAAKzxB,CAAC,CAAC,CAAC,OAAOyxB,CAAC,GAAE/wB,EAAE,EAAEP,EAAE,EAAE,GAAG6M,EAAE,gBAAgB,IAAI,EAAEA,EAAE,WAAW,CAAC,EAAExK,EAAE8L,IAAE5N,EAAEsM,CAAC,EAAE,GAAG9G,EAAE,GAAa8G,EAAE,YAAZ,QAAsB,GAAOvM,EAAE,SAAN,EAAa,CAAC,MAAMT,EAAEsO,IAAE5N,EAAE,OAAO,OAAO,OAAO,OAAO,GAAGsM,CAAC,EAAE,CAAC,mBAAmB,GAAG,UAAUA,EAAE,UAAUA,EAAE,UAAUA,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAAE1M,EAAE,KAAK,CAAC,KAAK,WAAW,IAAI,KAAK,aAAaN,EAAE,GAAG,CAAC,CAAC,CAAC,MAAMM,EAAE,KAAKoxB,GAAEjxB,EAAEuM,CAAC,CAAC,OAAO1M,EAAE,KAAKyxB,GAAEtxB,EAAEuM,CAAC,CAAC,EAAE,OAAO,IAAI7M,EAAEM,EAAE,SAASC,GAAG,CAACJ,EAAE,KAAKozB,GAAEhzB,EAAE,GAAGsM,CAAC,CAAC,CAAC,EAAC,EAAG1M,EAAE,KAAKkC,CAAC,GAAG,KAAK,GAAG,OAAOlC,EAAE0M,CAAC,CAAC,CAAC,UAAUtM,EAAEV,EAAE,CAAC,IAAIgN,EAAE,GAAG,UAAU1M,KAAKI,EAAE,IAAI,CAAC,MAAMA,EAAY,OAAOV,GAAjB,UAAoBA,GAAG,EAAEM,EAAE,KAAK,KAAKI,GAAG,CAACA,EAAE,QAAQV,CAAC,IAAIM,EAAE,KAAK,OAAOA,EAAE,GAAE,CAAE,IAAI,OAAO0M,GAAG,IAAItM,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,WAAWsM,GAAG,IAAItM,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,SAASsM,GAAG,IAAItM,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAOsM,EAAE,KAAI,CAAE,CAAC,QAAQtM,EAAE,CAAC,MAAMV,EAAEU,EAAE,MAAM,GAAGsM,EAAEtM,EAAE,SAAS,KAAK,eAAeJ,EAAE,GAAG,UAAUI,KAAKV,EAAE,CAAC,IAAIA,EAAE,KAAK,OAAOU,EAAE,KAAI,CAAE,IAAI,OAAOV,EAAE,CAAC,EAAE,KAAK,UAAUU,CAAC,EAAE,OAAOsM,EAAE,OAAO,YAAYA,EAAE,YAAY,KAAK4pF,EAAE,EAAE,MAAM,IAAI,WAAW52F,EAAE,CAAC,EAAE,KAAK,UAAUU,CAAC,EAAE,OAAOk2F,GAAG,YAAY,EAAE,KAAK5pF,EAAE,MAAM4pF,EAAE,EAAE,MAAM,IAAI,aAAa52F,EAAE,KAAK,WAAWU,EAAEsM,CAAC,CAAC,CAAChN,GAAGM,EAAE,KAAKN,CAAC,CAAC,CAAC,OAAOM,CAAC,CAAC,WAAWI,EAAEV,EAAE,CAAC,IAAIgN,EAAEhN,EAAE,WAAW,OAAOgN,EAAE,IAAIA,EAAEhN,EAAE,YAAY,GAAG,CAAC,EAAE,KAAK,UAAUU,CAAC,EAAE,OAAOV,EAAE,MAAM42F,GAAG,YAAY5pF,EAAE,KAAK4pF,EAAE,CAAC,CAAC,aAAal2F,EAAE,CAAC,OAAOA,EAAE,QAAQ,CAACA,EAAEV,IAAQA,IAAJ,GAAgBU,EAAE,KAAX,OAAa,CAAE,CAAC,EAAA2tW,IAAC,KAAQ,CAAC,YAAY3tW,EAAEV,EAAE,CAAC,KAAK,OAAOU,EAAE,KAAK,IAAI,KAAK,OAAO,WAAW,IAAI,EAAE,KAAK,IAAI,IAAIo2F,GAAG92F,CAAC,CAAC,CAAC,KAAKU,EAAE,CAAC,MAAMV,EAAEU,EAAE,MAAM,GAAGsM,EAAEtM,EAAE,SAAS,KAAK,oBAAoBJ,EAAE,KAAK,IAAI4F,EAAExF,EAAE,QAAQ,wBAAwB,UAAU,KAAKV,EAAE,OAAO,EAAE,KAAI,CAAE,IAAI,OAAOM,EAAE,KAAI,EAAGA,EAAE,YAAqB0M,EAAE,SAAX,OAAkB,cAAcA,EAAE,OAAO1M,EAAE,UAAU0M,EAAE,YAAYA,EAAE,gBAAgB1M,EAAE,YAAY0M,EAAE,cAAc,EAAEA,EAAE,uBAAuB1M,EAAE,eAAe0M,EAAE,sBAAsB,KAAK,eAAe1M,EAAE,EAAE4F,CAAC,EAAE5F,EAAE,QAAO,EAAG,MAAM,IAAI,WAAW,CAACA,EAAE,KAAI,EAAGA,EAAE,UAAU0M,EAAE,MAAM,GAAG,MAAMhN,EAAYU,EAAE,QAAZ,SAA+BA,EAAE,QAAd,WAA8BA,EAAE,QAAX,OAAiB,UAAU,UAAU,KAAK,eAAeJ,EAAE,EAAE4F,EAAElG,CAAC,EAAEM,EAAE,QAAO,EAAG,KAAK,CAAC,IAAI,aAAa,KAAK,WAAWA,EAAE,EAAE0M,CAAC,CAAC,CAAC,CAAC,WAAWtM,EAAEV,EAAEgN,EAAE,CAAC,IAAI1M,EAAE0M,EAAE,WAAW1M,EAAE,IAAIA,EAAE0M,EAAE,YAAY,GAAGtM,EAAE,KAAI,EAAGsM,EAAE,cAActM,EAAE,YAAYsM,EAAE,YAAY,EAAEA,EAAE,qBAAqBtM,EAAE,eAAesM,EAAE,oBAAoBtM,EAAE,YAAYsM,EAAE,MAAM,GAAGtM,EAAE,UAAUJ,EAAE,KAAK,eAAeI,EAAEV,EAAEgN,EAAE,uBAAuB,EAAEtM,EAAE,QAAO,CAAE,CAAC,eAAeA,EAAEV,EAAEgN,EAAE1M,EAAE,UAAU,CAACI,EAAE,YAAY,UAAUJ,KAAKN,EAAE,IAAI,CAAC,MAAMA,EAAY,OAAOgN,GAAjB,UAAoBA,GAAG,EAAE1M,EAAE,KAAK,KAAKI,GAAG,CAACA,EAAE,QAAQsM,CAAC,EAAC,EAAG1M,EAAE,KAAK,OAAOA,EAAE,GAAE,CAAE,IAAI,OAAOI,EAAE,OAAOV,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,WAAWU,EAAE,cAAcV,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,SAASU,EAAE,OAAOV,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAcA,EAAE,OAAf,WAAoBU,EAAE,KAAKJ,CAAC,EAAEI,EAAE,OAAM,CAAE,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,GAAG,CAAC,mBAAmB,CAAC,OAAO,KAAK,IAAI,cAAc,CAAC,KAAKA,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,KAAKxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,UAAUxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,UAAUxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,QAAQxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,OAAOxF,EAAEV,EAAEgN,EAAE1M,EAAE,CAAC,MAAM4F,EAAE,KAAK,IAAI,OAAOxF,EAAEV,EAAEgN,EAAE1M,CAAC,EAAE,OAAO,KAAK,KAAK4F,CAAC,EAAEA,CAAC,CAAC,WAAWxF,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,WAAWtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,EAAEA,CAAC,CAAC,QAAQtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,QAAQtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,EAAEA,CAAC,CAAC,IAAItM,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAE,GAAGM,EAAE,CAAC,MAAM+B,EAAE,KAAK,IAAI,IAAI9B,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAEM,CAAC,EAAE,OAAO,KAAK,KAAK+B,CAAC,EAAEA,CAAC,CAAC,MAAM9B,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,MAAMtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,EAAEA,CAAC,CAAC,KAAKtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,KAAKtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,EAAEA,CAAC,CAAC,EAAC,MAAMiqF,GAAG,6BAA4B,IAAAq3Q,IAAC,KAAQ,CAAC,YAAY5tW,EAAEV,EAAE,CAAC,KAAK,IAAIU,EAAE,KAAK,IAAI,IAAIo2F,GAAG92F,CAAC,CAAC,CAAC,KAAKU,EAAE,CAAC,MAAMV,EAAEU,EAAE,MAAM,GAAGsM,EAAEtM,EAAE,SAAS,KAAK,kBAAiB,EAAGJ,EAAE,KAAK,IAAI,eAAe,OAAO,SAAS4F,EAAE5F,EAAE,gBAAgB22F,GAAG,GAAG,EAAE,EAAEv2F,EAAE,QAAQ,wBAAwB,UAAUP,KAAKH,EAAE,CAAC,IAAIA,EAAE,KAAK,OAAOG,EAAE,KAAI,CAAE,IAAI,OAAOH,EAAEM,EAAE,gBAAgB22F,GAAG,MAAM,EAAEj3F,EAAE,aAAa,IAAI,KAAK,UAAUG,EAAE,CAAC,CAAC,EAAEH,EAAE,aAAa,SAASgN,EAAE,MAAM,EAAEhN,EAAE,aAAa,eAAegN,EAAE,YAAY,EAAE,EAAEhN,EAAE,aAAa,OAAO,MAAM,EAAEgN,EAAE,gBAAgBhN,EAAE,aAAa,mBAAmBgN,EAAE,eAAe,KAAK,GAAG,EAAE,KAAI,CAAE,EAAEA,EAAE,sBAAsBhN,EAAE,aAAa,oBAAoB,GAAGgN,EAAE,oBAAoB,EAAE,EAAE,MAAM,IAAI,WAAWhN,EAAEM,EAAE,gBAAgB22F,GAAG,MAAM,EAAEj3F,EAAE,aAAa,IAAI,KAAK,UAAUG,EAAE,CAAC,CAAC,EAAEH,EAAE,aAAa,SAAS,MAAM,EAAEA,EAAE,aAAa,eAAe,GAAG,EAAEA,EAAE,aAAa,OAAOgN,EAAE,MAAM,EAAE,EAAYtM,EAAE,QAAZ,SAA+BA,EAAE,QAAd,WAAqBV,EAAE,aAAa,YAAY,SAAS,EAAE,MAAM,IAAI,aAAaA,EAAE,KAAK,WAAWM,EAAEH,EAAE6M,CAAC,CAAC,CAAChN,GAAGkG,EAAE,YAAYlG,CAAC,CAAC,CAAC,OAAOkG,CAAC,CAAC,WAAWxF,EAAEV,EAAEgN,EAAE,CAAC,IAAI1M,EAAE0M,EAAE,WAAW1M,EAAE,IAAIA,EAAE0M,EAAE,YAAY,GAAG,MAAM9G,EAAExF,EAAE,gBAAgBu2F,GAAG,MAAM,EAAE,OAAO/wF,EAAE,aAAa,IAAI,KAAK,UAAUlG,EAAEgN,EAAE,uBAAuB,CAAC,EAAE9G,EAAE,aAAa,SAAS8G,EAAE,MAAM,EAAE,EAAE9G,EAAE,aAAa,eAAe5F,EAAE,EAAE,EAAE4F,EAAE,aAAa,OAAO,MAAM,EAAE8G,EAAE,cAAc9G,EAAE,aAAa,mBAAmB8G,EAAE,aAAa,KAAK,GAAG,EAAE,KAAI,CAAE,EAAEA,EAAE,oBAAoB9G,EAAE,aAAa,oBAAoB,GAAG8G,EAAE,kBAAkB,EAAE,EAAE9G,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,GAAG,CAAC,mBAAmB,CAAC,OAAO,KAAK,IAAI,cAAc,CAAC,UAAUxF,EAAEV,EAAE,CAAC,OAAO,KAAK,IAAI,UAAUU,EAAEV,CAAC,CAAC,CAAC,KAAKU,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,KAAKxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAUxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,UAAUxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,QAAQxF,EAAEV,EAAEgN,EAAE1M,EAAE4F,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAOxF,EAAEV,EAAEgN,EAAE1M,EAAE,CAAC,MAAM4F,EAAE,KAAK,IAAI,OAAOxF,EAAEV,EAAEgN,EAAE1M,CAAC,EAAE,OAAO,KAAK,KAAK4F,CAAC,CAAC,CAAC,WAAWxF,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,WAAWtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,CAAC,CAAC,QAAQtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,QAAQtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,CAAC,CAAC,IAAItM,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAE,GAAGM,EAAE,CAAC,MAAM+B,EAAE,KAAK,IAAI,IAAI9B,EAAEV,EAAEgN,EAAE1M,EAAE4F,EAAE,EAAE/F,EAAEM,CAAC,EAAE,OAAO,KAAK,KAAK+B,CAAC,CAAC,CAAC,MAAM9B,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,MAAMtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,CAAC,CAAC,KAAKtM,EAAEV,EAAE,CAAC,MAAMgN,EAAE,KAAK,IAAI,KAAKtM,EAAEV,CAAC,EAAE,OAAO,KAAK,KAAKgN,CAAC,CAAC,CAAC,EAAC,IAAImqF,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,IAAIH,IAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,IAAIE,IAAG,EAAE,CAAC,EAAE,UAAU,GAAG,IAAIJ,GAAG,CAAC,EAAE,QAAQ,IAAIA,GAAG,QAAO,CAAE,ECsCvk2By3Q,GAA8Bl6C,EAAO,MAAOnuR,EAAQ6qF,EAAMy9O,IAAa,SACzE,IAAIC,EACJ,MAAMjB,EAAgBz8O,EAAK,eAAiBjJ,IAASlrF,EAAAqmS,GAAU,IAAV,YAAArmS,EAAc,UAAU,EACxE4xU,EAGHC,EAAaD,EAFbC,EAAa,eAIf,MAAMC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASuoU,CAAU,EAAE,KAAK,KAAM19O,EAAK,OAASA,EAAK,EAAE,EACxF49O,EAAUD,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,QAAS9T,GAAoB7pO,EAAK,UAAU,CAAC,EAC9G,IAAIunB,EACAvnB,EAAK,QAAU,OACjBunB,EAAQ,GAERA,EAAQ,OAAOvnB,EAAK,OAAU,SAAWA,EAAK,MAAQA,EAAK,MAAM,CAAC,EAEpE,MAAMi0O,EAAQ,MAAMsI,GAAWqB,EAAS5vC,GAAa27B,GAAepiN,CAAK,EAAG2qL,GAAU,CAAE,EAAG,CACzF,cAAAuqC,EACA,MAAOz8O,EAAK,SAAS/9E,EAAAiwR,GAAU,EAAG,YAAb,YAAAjwR,EAAwB,eAE7C,WAAY,sBACZ,MAAO+9E,EAAK,WACZ,iBAAkB,CAAC,CAACA,EAAK,MAAQ,CAAC,CAACA,EAAK,GAC5C,CAAG,EACD,IAAI46O,EAAO3G,EAAM,QAAO,EACxB,MAAM4J,IAAe79O,GAAA,YAAAA,EAAM,UAAW,GAAK,EAC3C,GAAIy8O,EAAe,CACjB,MAAM7gH,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKvqC,GAAO0gC,CAAK,EACjBtjS,EAASirL,EAAI,qBAAqB,KAAK,EAC7C,GAAIjrL,EAAQ,CACV,MAAMotS,EAAYx2N,EAAM,QAAQ,cAAe,EAAE,EAAE,KAAI,IAAO,GAC9D,MAAM,QAAQ,IACZ,CAAC,GAAG52E,CAAM,EAAE,IACTguJ,GAAQ,IAAI,QAASloK,GAAQ,CAC5B,SAASunT,GAAa,CAGpB,GAFAr/I,EAAI,MAAM,QAAU,OACpBA,EAAI,MAAM,cAAgB,SACtBo/I,EAAW,CACb,MAAME,EAAe/rC,KAAa,SAAWA,GAAU,EAAG,SAAW,OAAO,iBAAiB,SAAS,IAAI,EAAE,SACtGgsC,EAAkB,EAClB,CAACC,EAAqBhzC,IAAsB,QAAQ,EAAIi8B,GAAc6W,CAAY,EAClF1oP,EAAQ4oP,EAAqBD,EAAkB,KACrDv/I,EAAI,MAAM,SAAWppG,EACrBopG,EAAI,MAAM,SAAWppG,CACvB,MACEopG,EAAI,MAAM,MAAQ,OAEpBloK,EAAIkoK,CAAG,CACT,CACA2kG,EAAO06C,EAAY,YAAY,EAC/B,WAAW,IAAM,CACXr/I,EAAI,UACNq/I,EAAU,CAEd,CAAC,EACDr/I,EAAI,iBAAiB,QAASq/I,CAAU,EACxCr/I,EAAI,iBAAiB,OAAQq/I,CAAU,CACzC,CAAC,CACX,CACA,CACI,CACApD,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,OAAI6B,EACFmB,EAAQ,KAAK,YAAa,aAAe,CAAChD,EAAK,MAAQ,EAAI,KAAO,CAACA,EAAK,OAAS,EAAI,GAAG,EAExFgD,EAAQ,KAAK,YAAa,gBAAkB,CAAChD,EAAK,OAAS,EAAI,GAAG,EAEhE56O,EAAK,aACP49O,EAAQ,KAAK,YAAa,aAAe,CAAChD,EAAK,MAAQ,EAAI,KAAO,CAACA,EAAK,OAAS,EAAI,GAAG,EAE1FgD,EAAQ,OAAO,OAAQ,cAAc,EAC9B,CAAE,SAAAD,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAOD,CAAO,CACtD,EAAG,aAAa,EACZQ,GAA8B96C,EAAO,MAAOnuR,EAAQoyG,EAAO/wI,IAAY,iBACzE,MAAMimW,EAAgBjmW,EAAQ,eAAiBugH,IAAS90E,GAAApW,EAAAqmS,GAAU,IAAV,YAAArmS,EAAc,YAAd,YAAAoW,EAAyB,UAAU,EACrF27T,EAAUzoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,QAAS3+B,EAAQ,YAAc,EAAE,EAC1Fy9V,EAAQ,MAAMsI,GAAWqB,EAAS5vC,GAAa27B,GAAepiN,CAAK,EAAG2qL,GAAU,CAAE,EAAG,CACzF,cAAAuqC,EACA,MAAOjmW,EAAQ,SAASkvF,GAAA7oB,EAAAq1P,GAAU,IAAV,YAAAr1P,EAAc,YAAd,YAAA6oB,EAAyB,eACjD,MAAOlvF,EAAQ,WACf,iBAAkB,CAAC,CAACA,EAAQ,MAAQ,CAAC,CAACA,EAAQ,GAClD,CAAG,EACD,IAAIokW,EAAO3G,EAAM,QAAO,EACxB,MAAM4J,EAAcrnW,EAAQ,QAAU,EACtC,GAAIugH,IAASqd,GAAAvwG,EAAAquS,GAAU,IAAV,YAAAruS,EAAc,YAAd,YAAAuwG,EAAyB,UAAU,EAAG,CACjD,MAAMwnH,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKvqC,GAAO0gC,CAAK,EACvB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,OAAI6B,EACFmB,EAAQ,KAAK,YAAa,aAAe,CAAChD,EAAK,MAAQ,EAAI,KAAO,CAACA,EAAK,OAAS,EAAI,GAAG,EAExFgD,EAAQ,KAAK,YAAa,gBAAkB,CAAChD,EAAK,OAAS,EAAI,GAAG,EAEhEpkW,EAAQ,aACVonW,EAAQ,KAAK,YAAa,aAAe,CAAChD,EAAK,MAAQ,EAAI,KAAO,CAACA,EAAK,OAAS,EAAI,GAAG,EAE1FgD,EAAQ,OAAO,OAAQ,cAAc,EAC9B,CAAE,SAAUzoU,EAAQ,KAAAylU,EAAM,YAAAiD,EAAa,MAAOD,CAAO,CAC9D,EAAG,aAAa,EACZS,GAAmC/6C,EAAO,CAACtjM,EAAMnmC,IAAY,CAC/D,MAAM+gR,EAAO/gR,EAAQ,KAAI,EAAG,QAAO,EACnCmmC,EAAK,MAAQ46O,EAAK,MAClB56O,EAAK,OAAS46O,EAAK,MACrB,EAAG,kBAAkB,EACjB0D,GAAiCh7C,EAAO,CAACtjM,EAAMx+E,KAAWw+E,EAAK,OAAS,YAAc,aAAe,QAAU,IAAMA,EAAK,WAAa,KAAOx+E,GAAS,IAAK,gBAAgB,EAChL,SAAS+8T,GAAqBlZ,EAAQ,CACpC,MAAMmZ,EAAenZ,EAAO,IAAI,CAAC71V,EAAGiC,IAAM,GAAGA,IAAM,EAAI,IAAM,GAAG,GAAGjC,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,EAC/E,OAAAgvW,EAAa,KAAK,GAAG,EACdA,EAAa,KAAK,GAAG,CAC9B,CACAl7C,EAAOi7C,GAAsB,sBAAsB,EACnD,SAASE,GAA2Bz5B,EAAIC,EAAIC,EAAIC,EAAIu5B,EAAWC,EAAW,CACxE,MAAMtZ,EAAS,GAETjF,EAASlb,EAAKF,EACdqb,EAASlb,EAAKF,EACd25B,EAAcxe,EAASue,EACvBE,EAAY,EAAI,KAAK,GAAKD,EAC1BE,EAAO75B,EAAKob,EAAS,EAC3B,QAAS5uV,EAAI,EAAGA,GAAK,GAAOA,IAAK,CAC/B,MAAM9B,EAAI8B,EAAI,GACR1H,EAAIi7U,EAAKr1U,EAAIywV,EACbp2V,EAAI80W,EAAOJ,EAAY,KAAK,IAAIG,GAAa90W,EAAIi7U,EAAG,EAC1DqgB,EAAO,KAAK,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,CAAE,CACtB,CACA,OAAOq7V,CACT,CACA/hC,EAAOm7C,GAA4B,4BAA4B,EAC/D,SAASM,GAAqBC,EAASC,EAASC,EAAQx2M,EAAWy2M,EAAYC,EAAU,CACvF,MAAM/Z,EAAS,GACTga,EAAgBF,EAAa,KAAK,GAAK,IAGvCG,GAFcF,EAAW,KAAK,GAAK,IACRC,IACD32M,EAAY,GAC5C,QAASj3J,EAAI,EAAGA,EAAIi3J,EAAWj3J,IAAK,CAClC,MAAM+uV,EAAQ6e,EAAgB5tW,EAAI6tW,EAC5Bv1W,EAAIi1W,EAAUE,EAAS,KAAK,IAAI1e,CAAK,EACrCx2V,EAAIi1W,EAAUC,EAAS,KAAK,IAAI1e,CAAK,EAC3C6E,EAAO,KAAK,CAAE,EAAG,CAACt7V,EAAG,EAAG,CAACC,EAAG,CAC9B,CACA,OAAOq7V,CACT,CACA/hC,EAAOy7C,GAAsB,sBAAsB,EAOnD,IAAIQ,IAAgCj8C,EAAO,CAACtjM,EAAMssF,IAAU,CAC1D,IAAIviN,EAAIi2H,EAAK,EACTh2H,EAAIg2H,EAAK,EACT80F,EAAKxI,EAAM,EAAIviN,EACf25N,EAAKpX,EAAM,EAAItiN,EACf6F,EAAImwH,EAAK,MAAQ,EACjB5wH,EAAI4wH,EAAK,OAAS,EAClBw/O,EAAIC,EACR,OAAI,KAAK,IAAI/7I,CAAE,EAAI7zN,EAAI,KAAK,IAAIilN,CAAE,EAAI1lN,GAChCs0N,EAAK,IACPt0N,EAAI,CAACA,GAEPowW,EAAK97I,IAAO,EAAI,EAAIt0N,EAAI0lN,EAAK4O,EAC7B+7I,EAAKrwW,IAED0lN,EAAK,IACPjlN,EAAI,CAACA,GAEP2vW,EAAK3vW,EACL4vW,EAAK3qJ,IAAO,EAAI,EAAIjlN,EAAI6zN,EAAK5O,GAExB,CAAE,EAAG/qN,EAAIy1W,EAAI,EAAGx1W,EAAIy1W,CAAE,CAC/B,EAAG,eAAe,EACdC,GAAyBH,IAI7B,SAASjF,IAAW1gR,EAAK2gR,EAAS,CAC5BA,GACF3gR,EAAI,KAAK,QAAS2gR,CAAO,CAE7B,CACAj3C,EAAOg3C,IAAY,YAAY,EAC/B,eAAeqF,IAAa3/O,EAAM,CAChC,MAAMrnB,EAAKinQ,GAAQ,SAAS,gBAAgB,6BAA8B,eAAe,CAAC,EACpFhkH,EAAMjjJ,EAAG,OAAO,WAAW,EAC3BphE,EAAS26R,GAAU,EACzB,IAAI3qL,EAAQvnB,EAAK,MACbA,EAAK,OAASuvM,GAASvvM,EAAK,KAAK,IACnCunB,EAAQ,MAAMmoL,GAAqB1vM,EAAK,MAAM,QAAQgwM,GAAe,eAAgB;AAAA,CAAI,EAAGz4R,CAAM,GAGpG,MAAMsoU,EAAY,iBADC7/O,EAAK,OAAS,YAAc,aACE,MAAQA,EAAK,WAAa,UAAYA,EAAK,WAAa,IAAM,IAC/G,IAAMunB,EAAQ,UACd,OAAAq0G,EAAI,KAAKoyE,GAAa6xC,EAAWtoU,CAAM,CAAC,EACxC+iU,IAAW1+G,EAAK57H,EAAK,UAAU,EAC/B47H,EAAI,MAAM,UAAW,cAAc,EACnCA,EAAI,MAAM,gBAAiB,KAAK,EAChCA,EAAI,MAAM,cAAe,QAAQ,EACjCA,EAAI,KAAK,QAAS,8BAA8B,EACzCjjJ,EAAG,KAAI,CAChB,CACA2qN,EAAOq8C,IAAc,cAAc,EACnC,IAAIG,IAA8Bx8C,EAAO,MAAOy8C,EAAa5gK,EAAOq9J,EAASv8O,IAAW,CACtF,IAAI+/O,EAAaD,GAAe,GAIhC,GAHI,OAAOC,GAAe,WACxBA,EAAaA,EAAW,CAAC,GAEvBjpP,GAASm7M,GAAU,EAAG,UAAU,UAAU,EAAG,CAC/C8tC,EAAaA,EAAW,QAAQ,UAAW,QAAQ,EACnDz1T,GAAI,KAAK,aAAey1T,CAAU,EAClC,MAAMhgP,EAAO,CACX,OAAAC,EACA,MAAO0pO,GAAeqW,CAAU,EAAE,QAChC,uBACC/jW,GAAM,aAAaA,EAAE,QAAQ,IAAK,GAAG,CAAC,QAC/C,EACM,WAAYkjM,GAAQA,EAAM,QAAQ,QAAS,QAAQ,CACzD,EAEI,OADiB,MAAMwgK,IAAa3/O,CAAI,CAE1C,KAAO,CACL,MAAM8hL,EAAW,SAAS,gBAAgB,6BAA8B,MAAM,EAC9EA,EAAS,aAAa,QAAS3iG,EAAM,QAAQ,SAAU,OAAO,CAAC,EAC/D,IAAIo/E,EAAO,GACP,OAAOyhF,GAAe,SACxBzhF,EAAOyhF,EAAW,MAAM,qBAAqB,EACpC,MAAM,QAAQA,CAAU,EACjCzhF,EAAOyhF,EAEPzhF,EAAO,GAET,UAAWE,KAAOF,EAAM,CACtB,MAAMw9E,EAAQ,SAAS,gBAAgB,6BAA8B,OAAO,EAC5EA,EAAM,eAAe,uCAAwC,YAAa,UAAU,EACpFA,EAAM,aAAa,KAAM,KAAK,EAC9BA,EAAM,aAAa,IAAK,GAAG,EACvBS,EACFT,EAAM,aAAa,QAAS,WAAW,EAEvCA,EAAM,aAAa,QAAS,KAAK,EAEnCA,EAAM,YAAct9E,EAAI,KAAI,EAC5BqjB,EAAS,YAAYi6D,CAAK,CAC5B,CACA,OAAOj6D,CACT,CACF,EAAG,aAAa,EACZm+D,GAAsBH,IAGtBI,GAAyC58C,EAAO,CAACv5T,EAAGC,EAAGm2W,EAAYrkE,EAAaojE,IAAW,CAC7F,IACAn1W,EAAIm1W,EACJl1W,EAEA,IACAD,EAAIo2W,EAAajB,EAEjB,IACAA,EACAA,EACA,EACA,EACA,EACAn1W,EAAIo2W,EACJn2W,EAAIk1W,EAEJ,IACAl1W,EAAI8xS,EAAcojE,EAElB,IACAA,EACAA,EACA,EACA,EACA,EACAn1W,EAAIo2W,EAAajB,EACjBl1W,EAAI8xS,EAEJ,IACA/xS,EAAIm1W,EAEJ,IACAA,EACAA,EACA,EACA,EACA,EACAn1W,EACAC,EAAI8xS,EAAcojE,EAElB,IACAl1W,EAAIk1W,EAEJ,IACAA,EACAA,EACA,EACA,EACA,EACAn1W,EAAIm1W,EACJl1W,EAEA,GAEF,EAAE,KAAK,GAAG,EAAG,wBAAwB,EAGjCkvH,IAAuBoqM,EAAO,MAAOnuR,EAAQ6qF,IAAS,CACxDz1E,GAAI,KAAK,8BAA+By1E,EAAK,GAAIA,CAAI,EACrD,MAAM2rM,EAAauG,GAAU,EACvB,CAAE,eAAA7F,EAAgB,cAAAo1B,CAAa,EAAK91B,EACpC,CAAE,WAAAy0C,EAAY,cAAAC,CAAa,EAAKh0C,EAChC,CAAE,YAAA21B,EAAa,WAAAC,EAAY,aAAAC,EAAc,iBAAAC,CAAgB,EAAKL,GAAc9hO,CAAI,EAChF29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,WAAa6qF,EAAK,UAAU,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,YAAaA,EAAK,IAAI,EACzHy8O,EAAgB1lP,GAAS40M,EAAW,UAAU,UAAU,EACxDiyC,EAAUD,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,gBAAgB,EAC7D1J,EAAQ,MAAMsI,GAAWqB,EAAS59O,EAAK,MAAO,CAClD,MAAOA,EAAK,WACZ,cAAAy8O,EACA,OAAQ,EACZ,CAAG,EACD,IAAI7B,EAAO3G,EAAM,QAAO,EACxB,GAAIl9O,GAAS40M,EAAW,UAAU,UAAU,EAAG,CAC7C,MAAM/vE,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKwC,GAAQrM,CAAK,EACxB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,MAAMrlP,EAAQyK,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAAU46O,EAAK,MAAQ56O,EAAK,QAAUA,EAAK,MACrFA,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAClCA,EAAK,MAAQzK,EAAQyK,EAAK,OAAS,EAAIA,EAAK,QAE5CA,EAAK,KAAO,CAACA,EAAK,QAEpB,MAAMtxE,EAASsxE,EAAK,OACdj2H,EAAIi2H,EAAK,EAAIzK,EAAQ,EACrBvrH,EAAIg2H,EAAK,EAAItxE,EAAS,EAC5BnE,GAAI,MAAM,QAASy1E,EAAM,KAAK,UAAUA,CAAI,CAAC,EAC7C,IAAIugP,EACJ,GAAIvgP,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKC,GAAM,IAAI9C,CAAQ,EACvBnnW,EAAU4rV,GAAkBpiO,EAAM,CACtC,UAAW,GACX,KAAMogP,EAEN,OAAQC,EACR,WAAY,EACZ,KAAM5e,CACZ,CAAK,EACKif,EAAYF,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGurH,EAAO7mE,EAAQ,CAAC,EAAGl4C,CAAO,EACjF+pW,EAAQ5C,EAAS,OAAO,KACtBpzT,GAAI,MAAM,wBAAyBm2T,CAAS,EACrCA,GACN,cAAc,EACjBH,EAAM,OAAO,mBAAmB,EAAE,KAAK,QAASre,EAAa,KAAK,GAAG,CAAC,EACtEqe,EAAM,OAAO,MAAM,EAAE,KAAK,QAASpe,EAAiB,KAAK,GAAG,EAAE,QAAQ,OAAQ,QAAQ,CAAC,CACzF,MACEoe,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAC9C4C,EAAM,KAAK,QAASte,CAAU,EAAE,KAAK,KAAMjiO,EAAK,EAAE,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,IAAKj2H,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASurH,CAAK,EAAE,KAAK,SAAU7mE,CAAM,EAE9I,KAAM,CAAE,uBAAA2yS,CAAsB,EAAKF,GAAwBx1B,CAAU,EAMrE,GALAiyC,EAAQ,KACN,YAEA,aAAa59O,EAAK,EAAI46O,EAAK,MAAQ,CAAC,KAAK56O,EAAK,EAAIA,EAAK,OAAS,EAAIqhO,CAAsB,GAC9F,EACMW,EAAa,CACf,MAAMttS,EAAOkpT,EAAQ,OAAO,MAAM,EAC9BlpT,GACFA,EAAK,KAAK,QAASstS,CAAW,CAElC,CACA,MAAM2e,EAAUJ,EAAM,KAAI,EAAG,QAAO,EACpC,OAAAvgP,EAAK,QAAU,EACfA,EAAK,MAAQ2gP,EAAQ,MACrB3gP,EAAK,OAAS2gP,EAAQ,OACtB3gP,EAAK,QAAU46O,EAAK,OAAS56O,EAAK,QAAU,EAC5CA,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOozJ,GAAuB1/O,EAAMssF,CAAK,CAC3C,EACO,CAAE,QAASqxJ,EAAU,UAAW/C,CAAI,CAC7C,EAAG,MAAM,EACLgG,IAA4Bt9C,EAAO,CAACnuR,EAAQ6qF,IAAS,CACvD,MAAM29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EAAE,KAAK,KAAM6qF,EAAK,EAAE,EAC9EugP,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAC9C5kP,EAAU,EAAIiH,EAAK,QACnB69O,EAAc9kP,EAAU,EAC9BwnP,EAAM,KAAK,KAAMvgP,EAAK,EAAE,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,IAAKA,EAAK,EAAIA,EAAK,MAAQ,EAAI69O,CAAW,EAAE,KAAK,IAAK79O,EAAK,EAAIA,EAAK,OAAS,EAAI69O,CAAW,EAAE,KAAK,QAAS79O,EAAK,MAAQjH,CAAO,EAAE,KAAK,SAAUiH,EAAK,OAASjH,CAAO,EAAE,KAAK,OAAQ,MAAM,EAC9O,MAAM4nP,EAAUJ,EAAM,KAAI,EAAG,QAAO,EACpC,OAAAvgP,EAAK,MAAQ2gP,EAAQ,MACrB3gP,EAAK,OAAS2gP,EAAQ,OACtB3gP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOozJ,GAAuB1/O,EAAMssF,CAAK,CAC3C,EACO,CAAE,QAASqxJ,EAAU,UAAW,CAAE,MAAO,EAAG,OAAQ,EAAG,CAChE,EAAG,WAAW,EACVkD,IAAmCv9C,EAAO,MAAOnuR,EAAQ6qF,IAAS,CACpE,MAAM2rM,EAAauG,GAAU,EACvB,CAAE,eAAA7F,EAAgB,cAAAo1B,CAAa,EAAK91B,EACpC,CAAE,cAAAm1C,EAAe,oBAAAC,EAAqB,yBAAAC,EAA0B,WAAA3e,CAAU,EAAKh2B,EAC/EsxC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS6qF,EAAK,UAAU,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,UAAWA,EAAK,EAAE,EAAE,KAAK,YAAaA,EAAK,IAAI,EACrIihP,EAAatD,EAAS,OAAO,IAAK,cAAc,EAChDp2N,EAAQo2N,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EAChE,IAAIuD,EAAYvD,EAAS,OAAO,MAAM,EACtC,MAAM1J,EAAQ1sN,EAAM,KAAI,EAAG,YAAY,MAAM04N,GAAoBjgP,EAAK,MAAOA,EAAK,WAAY,OAAQ,EAAI,CAAC,EAC3G,IAAI46O,EAAO3G,EAAM,QAAO,EACxB,GAAIl9O,GAAS40M,EAAW,UAAU,UAAU,EAAG,CAC7C,MAAM/vE,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKwC,GAAQrM,CAAK,EACxB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,MAAM7hP,EAAU,EAAIiH,EAAK,QACnB69O,EAAc9kP,EAAU,EACxBxD,GAASyK,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAAU46O,EAAK,MAAQ56O,EAAK,QAAUA,EAAK,OAASjH,EAC/FiH,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAClCA,EAAK,MAAQzK,EAAQyK,EAAK,OAAS,EAAIA,EAAK,QAE5CA,EAAK,KAAO,CAACA,EAAK,QAEpB,MAAMtxE,EAASsxE,EAAK,OAASjH,EACvB8pL,EAAc7iL,EAAK,OAASjH,EAAU6hP,EAAK,OAAS,EACpD7wW,EAAIi2H,EAAK,EAAIzK,EAAQ,EACrBvrH,EAAIg2H,EAAK,EAAItxE,EAAS,EAC5BsxE,EAAK,MAAQzK,EACb,MAAM4rP,EAASnhP,EAAK,EAAIA,EAAK,OAAS,EAAI69O,EAAcjD,EAAK,OAAS,EACtE,IAAI2F,EACJ,GAAIvgP,EAAK,OAAS,YAAa,CAC7B,MAAMohP,EAAQphP,EAAK,WAAW,SAAS,0BAA0B,EAC3DwgP,EAAKC,GAAM,IAAI9C,CAAQ,EACvB0D,EAAiBrhP,EAAK,IAAMA,EAAK,GAAKwgP,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGurH,EAAO7mE,EAAQ,EAAE,EAAG,CACnG,UAAW,GACX,KAAMsyT,EACN,UAAW,QACX,OAAQ3e,EACR,KAAMZ,CACZ,CAAK,EAAI+e,EAAG,UAAUz2W,EAAGC,EAAGurH,EAAO7mE,EAAQ,CAAE,KAAM+yS,EAAe,EAC9D8e,EAAQ5C,EAAS,OAAO,IAAM0D,EAAgB,cAAc,EAC5D,MAAMC,EAAiBd,EAAG,UAAUz2W,EAAGo3W,EAAQ5rP,EAAOstL,EAAa,CACjE,KAAMu+D,EAAQN,EAAgBC,EAC9B,UAAWK,EAAQ,UAAY,QAC/B,OAAQ/e,EACR,KAAMZ,CACZ,CAAK,EACD8e,EAAQ5C,EAAS,OAAO,IAAM0D,EAAgB,cAAc,EAC5DH,EAAYvD,EAAS,OAAO,IAAM2D,CAAc,CAClD,MACEf,EAAQU,EAAW,OAAO,OAAQ,cAAc,EAEhDV,EAAM,KAAK,QADY,OACW,EAAE,KAAK,IAAKx2W,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASurH,CAAK,EAAE,KAAK,SAAU7mE,CAAM,EAAE,KAAK,YAAasxE,EAAK,IAAI,EACrIkhP,EAAU,KAAK,QAAS,OAAO,EAAE,KAAK,IAAKn3W,CAAC,EAAE,KAAK,IAAKo3W,CAAM,EAAE,KAAK,QAAS5rP,CAAK,EAAE,KAAK,SAAUstL,CAAW,EAEjHt7J,EAAM,KACJ,YACA,aAAavnB,EAAK,EAAI46O,EAAK,MAAQ,CAAC,KAAK5wW,EAAI,GAAK+sH,GAAS40M,EAAW,UAAU,UAAU,EAAI,EAAI,EAAE,GACxG,EACE,MAAMg1C,EAAUJ,EAAM,KAAI,EAAG,QAAO,EACpC,OAAAvgP,EAAK,OAAS2gP,EAAQ,OACtB3gP,EAAK,QAAU,EACfA,EAAK,QAAU46O,EAAK,OAAS56O,EAAK,QAAU,EAC5CA,EAAK,UAAY46O,EACjB56O,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOozJ,GAAuB1/O,EAAMssF,CAAK,CAC3C,EACO,CAAE,QAASqxJ,EAAU,UAAW/C,CAAI,CAC7C,EAAG,kBAAkB,EACjB2G,IAAgCj+C,EAAO,MAAOnuR,EAAQ6qF,IAAS,CACjEz1E,GAAI,KAAK,8BAA+By1E,EAAK,GAAIA,CAAI,EACrD,MAAM2rM,EAAauG,GAAU,EACvB,CAAE,eAAA7F,EAAgB,cAAAo1B,CAAa,EAAK91B,EACpC,CAAE,WAAAy0C,EAAY,cAAAC,CAAa,EAAKh0C,EAChC,CAAE,YAAA21B,EAAa,WAAAC,EAAY,aAAAC,EAAc,iBAAAC,CAAgB,EAAKL,GAAc9hO,CAAI,EAChF29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,WAAa6qF,EAAK,UAAU,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,YAAaA,EAAK,IAAI,EACzHy8O,EAAgB1lP,GAAS40M,EAAW,UAAU,UAAU,EACxDiyC,EAAUD,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,gBAAgB,EAC7D1J,EAAQ,MAAMsI,GAAWqB,EAAS59O,EAAK,MAAO,CAClD,MAAOA,EAAK,WACZ,cAAAy8O,EACA,OAAQ,GACR,MAAOz8O,EAAK,KAChB,CAAG,EACD,IAAI46O,EAAO3G,EAAM,QAAO,EACxB,GAAIl9O,GAAS40M,EAAW,UAAU,UAAU,EAAG,CAC7C,MAAM/vE,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKwC,GAAQrM,CAAK,EACxB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,MAAMrlP,EAAQyK,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAAU46O,EAAK,MAAQ56O,EAAK,QAAUA,EAAK,MACrFA,EAAK,OAAS46O,EAAK,MAAQ56O,EAAK,QAClCA,EAAK,MAAQzK,EAAQyK,EAAK,OAAS,EAAIA,EAAK,QAE5CA,EAAK,KAAO,CAACA,EAAK,QAEpB,MAAMtxE,EAASsxE,EAAK,OACdj2H,EAAIi2H,EAAK,EAAIzK,EAAQ,EACrBvrH,EAAIg2H,EAAK,EAAItxE,EAAS,EAC5BnE,GAAI,MAAM,QAASy1E,EAAM,KAAK,UAAUA,CAAI,CAAC,EAC7C,IAAIugP,EACJ,GAAIvgP,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKC,GAAM,IAAI9C,CAAQ,EACvBnnW,EAAU4rV,GAAkBpiO,EAAM,CACtC,UAAW,GACX,KAAMogP,EAEN,OAAQC,EACR,WAAY,EACZ,KAAM5e,CACZ,CAAK,EACKif,EAAYF,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGurH,EAAO7mE,EAAQsxE,EAAK,EAAE,EAAGxpH,CAAO,EACvF+pW,EAAQ5C,EAAS,OAAO,KACtBpzT,GAAI,MAAM,wBAAyBm2T,CAAS,EACrCA,GACN,cAAc,EACjBH,EAAM,OAAO,mBAAmB,EAAE,KAAK,QAASre,EAAa,KAAK,GAAG,CAAC,EACtEqe,EAAM,OAAO,MAAM,EAAE,KAAK,QAASpe,EAAiB,KAAK,GAAG,EAAE,QAAQ,OAAQ,QAAQ,CAAC,CACzF,MACEoe,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAC9C4C,EAAM,KAAK,QAASte,CAAU,EAAE,KAAK,KAAMjiO,EAAK,EAAE,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,IAAKj2H,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASurH,CAAK,EAAE,KAAK,SAAU7mE,CAAM,EAE9I,KAAM,CAAE,uBAAA2yS,CAAsB,EAAKF,GAAwBx1B,CAAU,EAMrE,GALAiyC,EAAQ,KACN,YAEA,aAAa59O,EAAK,EAAI46O,EAAK,MAAQ,CAAC,KAAK56O,EAAK,EAAIA,EAAK,OAAS,EAAIqhO,CAAsB,GAC9F,EACMW,EAAa,CACf,MAAMttS,EAAOkpT,EAAQ,OAAO,MAAM,EAC9BlpT,GACFA,EAAK,KAAK,QAASstS,CAAW,CAElC,CACA,MAAM2e,EAAUJ,EAAM,KAAI,EAAG,QAAO,EACpC,OAAAvgP,EAAK,QAAU,EACfA,EAAK,MAAQ2gP,EAAQ,MACrB3gP,EAAK,OAAS2gP,EAAQ,OACtB3gP,EAAK,QAAU46O,EAAK,OAAS56O,EAAK,QAAU,EAC5CA,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOozJ,GAAuB1/O,EAAMssF,CAAK,CAC3C,EACO,CAAE,QAASqxJ,EAAU,UAAW/C,CAAI,CAC7C,EAAG,eAAe,EACd4G,IAA0Bl+C,EAAO,CAACnuR,EAAQ6qF,IAAS,CACrD,MAAM2rM,EAAauG,GAAU,EACvB,CAAE,eAAA7F,EAAgB,cAAAo1B,CAAa,EAAK91B,EACpC,CAAE,WAAA02B,CAAU,EAAKh2B,EACjBsxC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS6qF,EAAK,UAAU,EAAE,KAAK,KAAMA,EAAK,EAAE,EAAE,KAAK,YAAaA,EAAK,IAAI,EAC5GihP,EAAatD,EAAS,OAAO,IAAK,cAAc,EAChD5kP,EAAU,EAAIiH,EAAK,QACnBzK,EAAQyK,EAAK,MAAQjH,EAC3BiH,EAAK,KAAO,CAACA,EAAK,QAClB,MAAMtxE,EAASsxE,EAAK,OAASjH,EACvBhvH,EAAIi2H,EAAK,EAAIzK,EAAQ,EACrBvrH,EAAIg2H,EAAK,EAAItxE,EAAS,EAC5BsxE,EAAK,MAAQzK,EACb,IAAIgrP,EACJ,GAAIvgP,EAAK,OAAS,YAAa,CAE7B,MAAMqhP,EADKZ,GAAM,IAAI9C,CAAQ,EACH,UAAU5zW,EAAGC,EAAGurH,EAAO7mE,EAAQ,CACvD,KAAM,YACN,UAAW,GACX,eAAgB,CAAC,CAAC,EAClB,OAAQ2zS,EACR,KAAMZ,CACZ,CAAK,EACD8e,EAAQ5C,EAAS,OAAO,IAAM0D,EAAgB,cAAc,CAC9D,MACEd,EAAQU,EAAW,OAAO,OAAQ,cAAc,EAEhDV,EAAM,KAAK,QADY,SACW,EAAE,KAAK,IAAKx2W,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASurH,CAAK,EAAE,KAAK,SAAU7mE,CAAM,EAAE,KAAK,YAAasxE,EAAK,IAAI,EAEvI,MAAM2gP,EAAUJ,EAAM,KAAI,EAAG,QAAO,EACpC,OAAAvgP,EAAK,OAAS2gP,EAAQ,OACtB3gP,EAAK,QAAU,EACfA,EAAK,QAAU,EACfA,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOozJ,GAAuB1/O,EAAMssF,CAAK,CAC3C,EACO,CAAE,QAASqxJ,EAAU,UAAW,EAAE,CAC3C,EAAG,SAAS,EACR8D,IAAavoP,IACbwoP,IAAS,CACX,KAAAxoP,IACA,WAAAuoP,IACA,iBAAAZ,IACA,UAAAD,IACA,QAAAY,IACA,cAAAD,GACF,EACII,IAA+B,IAAI,IACnCC,IAAgCt+C,EAAO,MAAOh1Q,EAAM0xE,IAAS,CAC/D,MAAMgnN,EAAQhnN,EAAK,OAAS,OACtB6hP,EAAU,MAAMH,IAAO16B,CAAK,EAAE14R,EAAM0xE,CAAI,EAC9C,OAAA2hP,IAAa,IAAI3hP,EAAK,GAAI6hP,CAAO,EAC1BA,CACT,EAAG,eAAe,EACdxwC,IAAwB/N,EAAO,IAAM,CACvCq+C,IAA+B,IAAI,GACrC,EAAG,OAAO,EAGV,SAASG,IAAc9hP,EAAMssF,EAAO,CAClC,OAAOtsF,EAAK,UAAUssF,CAAK,CAC7B,CACAg3G,EAAOw+C,IAAe,eAAe,EACrC,IAAIC,IAAyBD,IAG7B,SAASE,IAAiBhiP,EAAMiiP,EAAIC,EAAI51J,EAAO,CAC7C,IAAIpL,EAAKlhF,EAAK,EACVmiP,EAAKniP,EAAK,EACVsqN,EAAKppI,EAAKoL,EAAM,EAChBk+H,EAAK23B,EAAK71J,EAAM,EAChB81J,EAAM,KAAK,KAAKH,EAAKA,EAAKz3B,EAAKA,EAAK03B,EAAKA,EAAK53B,EAAKA,CAAE,EACrDx1H,EAAK,KAAK,IAAImtJ,EAAKC,EAAK53B,EAAK83B,CAAG,EAChC91J,EAAM,EAAIpL,IACZ4T,EAAK,CAACA,GAER,IAAI4O,EAAK,KAAK,IAAIu+I,EAAKC,EAAK13B,EAAK43B,CAAG,EACpC,OAAI91J,EAAM,EAAI61J,IACZz+I,EAAK,CAACA,GAED,CAAE,EAAGxiB,EAAK4T,EAAI,EAAGqtJ,EAAKz+I,CAAE,CACjC,CACA4/F,EAAO0+C,IAAkB,kBAAkB,EAC3C,IAAIK,IAA4BL,IAGhC,SAASM,IAAgBtiP,EAAMiiP,EAAI31J,EAAO,CACxC,OAAO+1J,IAA0BriP,EAAMiiP,EAAIA,EAAI31J,CAAK,CACtD,CACAg3G,EAAOg/C,IAAiB,iBAAiB,EACzC,IAAIC,IAA2BD,IAG/B,SAASE,IAActd,EAAIC,EAAIsd,EAAIC,EAAI,CACrC,CACE,MAAMn8C,EAAK4+B,EAAG,EAAID,EAAG,EACf5+B,EAAK4+B,EAAG,EAAIC,EAAG,EACfwd,EAAKxd,EAAG,EAAID,EAAG,EAAIA,EAAG,EAAIC,EAAG,EAC7Byd,EAAKr8C,EAAKk8C,EAAG,EAAIn8C,EAAKm8C,EAAG,EAAIE,EAC7BE,EAAKt8C,EAAKm8C,EAAG,EAAIp8C,EAAKo8C,EAAG,EAAIC,EAC7Bh+B,EAAU,KAChB,GAAIi+B,IAAO,GAAKC,IAAO,GAAKC,GAASF,EAAIC,CAAE,EACzC,OAEF,MAAMl8C,EAAK+7C,EAAG,EAAID,EAAG,EACf/7C,EAAK+7C,EAAG,EAAIC,EAAG,EACfx3M,EAAKw3M,EAAG,EAAID,EAAG,EAAIA,EAAG,EAAIC,EAAG,EAC7Bt8C,EAAKO,EAAKu+B,EAAG,EAAIx+B,EAAKw+B,EAAG,EAAIh6L,EAC7Bs7J,EAAKG,EAAKw+B,EAAG,EAAIz+B,EAAKy+B,EAAG,EAAIj6L,EACnC,GAAI,KAAK,IAAIk7J,CAAE,EAAIue,GAAW,KAAK,IAAIne,CAAE,EAAIme,GAAWm+B,GAAS18C,EAAII,CAAE,EACrE,OAEF,MAAMrZ,EAAQoZ,EAAKG,EAAKC,EAAKL,EAC7B,GAAInZ,IAAU,EACZ,OAEF,MAAMxoP,EAAS,KAAK,IAAIwoP,EAAQ,CAAC,EACjC,IAAIy4C,EAAMt/B,EAAKp7J,EAAKw7J,EAAKi8C,EACzB,MAAM54W,EAAI67V,EAAM,GAAKA,EAAMjhS,GAAUwoP,GAASy4C,EAAMjhS,GAAUwoP,EAC9Dy4C,EAAMj/B,EAAKg8C,EAAKp8C,EAAKr7J,EACrB,MAAMlhK,EAAI47V,EAAM,GAAKA,EAAMjhS,GAAUwoP,GAASy4C,EAAMjhS,GAAUwoP,EAC9D,MAAO,CAAE,EAAApjT,EAAG,EAAAC,CAAC,CACf,CACF,CACAs5T,EAAOk/C,IAAe,eAAe,EACrC,SAASM,GAAS18C,EAAII,EAAI,CACxB,OAAOJ,EAAKI,EAAK,CACnB,CACAlD,EAAOw/C,GAAU,UAAU,EAC3B,IAAIC,IAAyBP,IAG7B,SAASQ,IAAiBhjP,EAAMijP,EAAY32J,EAAO,CACjD,IAAI04H,EAAKhlN,EAAK,EACVilN,EAAKjlN,EAAK,EACVkjP,EAAgB,GAChBliD,EAAO,OAAO,kBACdE,EAAO,OAAO,kBACd,OAAO+hD,EAAW,SAAY,WAChCA,EAAW,QAAQ,SAASpsW,EAAO,CACjCmqT,EAAO,KAAK,IAAIA,EAAMnqT,EAAM,CAAC,EAC7BqqT,EAAO,KAAK,IAAIA,EAAMrqT,EAAM,CAAC,CAC/B,CAAC,GAEDmqT,EAAO,KAAK,IAAIA,EAAMiiD,EAAW,CAAC,EAClC/hD,EAAO,KAAK,IAAIA,EAAM+hD,EAAW,CAAC,GAEpC,IAAI/+O,EAAO8gN,EAAKhlN,EAAK,MAAQ,EAAIghM,EAC7B78L,EAAM8gN,EAAKjlN,EAAK,OAAS,EAAIkhM,EACjC,QAASzvT,EAAI,EAAGA,EAAIwxW,EAAW,OAAQxxW,IAAK,CAC1C,IAAIyzV,EAAK+d,EAAWxxW,CAAC,EACjB0zV,EAAK8d,EAAWxxW,EAAIwxW,EAAW,OAAS,EAAIxxW,EAAI,EAAI,CAAC,EACrD0xW,EAAYJ,IACd/iP,EACAssF,EACA,CAAE,EAAGpoF,EAAOghO,EAAG,EAAG,EAAG/gO,EAAM+gO,EAAG,CAAC,EAC/B,CAAE,EAAGhhO,EAAOihO,EAAG,EAAG,EAAGhhO,EAAMghO,EAAG,CAAC,CACrC,EACQge,GACFD,EAAc,KAAKC,CAAS,CAEhC,CACA,OAAKD,EAAc,QAGfA,EAAc,OAAS,GACzBA,EAAc,KAAK,SAAS1zW,EAAGC,EAAG,CAChC,IAAI2zW,EAAM5zW,EAAE,EAAI88M,EAAM,EAClB+2J,EAAM7zW,EAAE,EAAI88M,EAAM,EAClBg3J,EAAQ,KAAK,KAAKF,EAAMA,EAAMC,EAAMA,CAAG,EACvCE,EAAM9zW,EAAE,EAAI68M,EAAM,EAClBk3J,EAAM/zW,EAAE,EAAI68M,EAAM,EAClBm3J,EAAQ,KAAK,KAAKF,EAAMA,EAAMC,EAAMA,CAAG,EAC3C,OAAOF,EAAQG,EAAQ,GAAKH,IAAUG,EAAQ,EAAI,CACpD,CAAC,EAEIP,EAAc,CAAC,GAbbljP,CAcX,CACAsjM,EAAO0/C,IAAkB,kBAAkB,EAC3C,IAAIU,IAA4BV,IAG5BW,GAAoB,CACtB,KAAM5B,IACN,OAAQQ,IACR,QAASF,IACT,QAASqB,IACT,KAAMhE,EACR,EAIA,SAAS1xJ,IAAO74K,EAAQ6qF,EAAM,CAC5B,KAAM,CAAE,YAAAgiO,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAM1yS,EAAUgvT,GAAet+O,CAAI,EACnC,IAAI09O,EAAapuT,EACZA,IACHouT,EAAa,UAEf,MAAMC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASuoU,CAAU,EAAE,KAAK,KAAM19O,EAAK,OAASA,EAAK,EAAE,EACxFk/O,EAAS,EACT,CAAE,UAAA0E,CAAS,EAAK5jP,EAChBwgP,EAAKqD,GAAO,IAAIlG,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,CAAE,KAAM,QAAS,OAAQ,OAAQ,UAAW,QAAS,EACzFA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,GAEtB,MAAMkqW,EAAYF,EAAG,OAAO,EAAG,EAAGtB,EAAS,EAAG1oW,CAAO,EAC/CstW,EAAanG,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAClE,OAAAoD,EAAW,KAAK,QAAS,QAAQ,EAAE,KAAK,QAASja,GAAoB+Z,CAAS,CAAC,EAC/EvF,GAAiBr+O,EAAM8jP,CAAU,EACjC9jP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,mBAAoBy1E,EAAMk/O,EAAQ5yJ,CAAK,EACzCq3J,GAAkB,OAAO3jP,EAAMk/O,EAAQ5yJ,CAAK,CACrD,EACOqxJ,CACT,CACAr6C,EAAOt1G,IAAQ,QAAQ,EAIvB,SAAS+1J,GAAkB/+B,EAAIC,EAAIC,EAAIC,EAAI88B,EAAIC,EAAI8B,EAAW,CAE5D,MAAMC,GAAQj/B,EAAKE,GAAM,EACnB45B,GAAQ75B,EAAKE,GAAM,EACnBqb,EAAQ,KAAK,MAAMrb,EAAKF,EAAIC,EAAKF,CAAE,EACnClwH,GAAMowH,EAAKF,GAAM,EACjBthH,GAAMyhH,EAAKF,GAAM,EACjBi/B,EAAepvJ,EAAKmtJ,EACpBkC,EAAezgJ,EAAKw+I,EACpBjsH,EAAW,KAAK,KAAKiuH,GAAgB,EAAIC,GAAgB,CAAC,EAChE,GAAIluH,EAAW,EACb,MAAM,IAAI,MAAM,oEAAoE,EAEtF,MAAMmuH,EAAuB,KAAK,KAAK,EAAInuH,GAAY,CAAC,EAClD+oH,EAAUiF,EAAOG,EAAuBlC,EAAK,KAAK,IAAI1hB,CAAK,GAAKwjB,EAAY,GAAK,GACjF/E,EAAUH,EAAOsF,EAAuBnC,EAAK,KAAK,IAAIzhB,CAAK,GAAKwjB,EAAY,GAAK,GACjF7E,EAAa,KAAK,OAAOl6B,EAAKg6B,GAAWiD,GAAKl9B,EAAKg6B,GAAWiD,CAAE,EAEtE,IAAIoC,EADa,KAAK,OAAOl/B,EAAK85B,GAAWiD,GAAKh9B,EAAK85B,GAAWiD,CAAE,EACxC9C,EACxB6E,GAAaK,EAAa,IAC5BA,GAAc,EAAI,KAAK,IAErB,CAACL,GAAaK,EAAa,IAC7BA,GAAc,EAAI,KAAK,IAEzB,MAAMhf,EAAS,GACf,QAAS5zV,EAAI,EAAGA,EAAI,GAAWA,IAAK,CAClC,MAAM9B,EAAI8B,EAAK,GACT6yW,EAASnF,EAAaxvW,EAAI00W,EAC1Bt6W,EAAIi1W,EAAUiD,EAAK,KAAK,IAAIqC,CAAM,EAClCt6W,EAAIi1W,EAAUiD,EAAK,KAAK,IAAIoC,CAAM,EACxCjf,EAAO,KAAK,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,CAAE,CACtB,CACA,OAAOq7V,CACT,CACA/hC,EAAOygD,GAAmB,mBAAmB,EAC7C,eAAeQ,IAAWpvU,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI+qW,EAAK,MAAQ56O,EAAK,QAAU,GAChC5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvBkiP,EAAK9yW,EAAI,EACT6yW,EAAKC,GAAM,IAAM9yW,EAAI,IACrB,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBqlO,EAAS,CACb,CAAE,EAAGx1V,EAAI,EAAG,EAAG,CAACT,EAAI,CAAC,EACrB,CAAE,EAAG,CAACS,EAAI,EAAG,EAAG,CAACT,EAAI,CAAC,EACtB,GAAG20W,GAAkB,CAACl0W,EAAI,EAAG,CAACT,EAAI,EAAG,CAACS,EAAI,EAAGT,EAAI,EAAG6yW,EAAIC,EAAI,EAAK,EACjE,CAAE,EAAGryW,EAAI,EAAG,EAAGT,EAAI,CAAC,EACpB,GAAG20W,GAAkBl0W,EAAI,EAAGT,EAAI,EAAGS,EAAI,EAAG,CAACT,EAAI,EAAG6yW,EAAIC,EAAI,EAAI,CAClE,EACQ1B,EAAKgE,GAAO,IAAI7G,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMiuW,EAAiBlG,GAAqBlZ,CAAM,EAC5Cqf,EAAsBlE,EAAG,KAAKiE,EAAgBjuW,CAAO,EACrDmuW,EAAkBhH,EAAS,OAAO,IAAM+G,EAAqB,cAAc,EACjF,OAAAC,EAAgB,KAAK,QAAS,uBAAuB,EACjDf,GAAa5jP,EAAK,OAAS,aAC7B2kP,EAAgB,UAAU,MAAM,EAAE,KAAK,QAASf,CAAS,EAEvD3hB,GAAcjiO,EAAK,OAAS,aAC9B2kP,EAAgB,UAAU,MAAM,EAAE,KAAK,QAAS1iB,CAAU,EAE5D0iB,EAAgB,KAAK,YAAa,aAAa1C,EAAK,CAAC,MAAM,EAC3D5D,GAAiBr+O,EAAM2kP,CAAe,EACtC3kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOihD,IAAY,YAAY,EAM/B,SAASK,GAAmBzvU,EAAQtlC,EAAGT,EAAGi2V,EAAQ,CAChD,OAAOlwT,EAAO,OAAO,UAAW,cAAc,EAAE,KAC9C,SACAkwT,EAAO,IAAI,SAASr2V,EAAG,CACrB,OAAOA,EAAE,EAAI,IAAMA,EAAE,CACvB,CAAC,EAAE,KAAK,GAAG,CACf,EAAI,KAAK,QAAS,iBAAiB,EAAE,KAAK,YAAa,aAAe,CAACa,EAAI,EAAI,IAAMT,EAAI,EAAI,GAAG,CAChG,CACAk0T,EAAOshD,GAAoB,oBAAoB,EAG/C,eAAeC,IAAK1vU,EAAQ6qF,EAAM,CAChC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvBjH,EAAU,GACVlpH,EAAI+qW,EAAK,MAAQ56O,EAAK,QAAUjH,EAChCmL,EAAO,EACPwoH,EAAQ78O,EACRs0H,EAAM,CAAC/0H,EACPq9O,EAAS,EACT44G,EAAS,CACb,CAAE,EAAGnhO,EAAOnL,EAAS,EAAGoL,CAAG,EAC3B,CAAE,EAAGuoH,EAAO,EAAGvoH,CAAG,EAClB,CAAE,EAAGuoH,EAAO,EAAGD,CAAM,EACrB,CAAE,EAAGvoH,EAAM,EAAGuoH,CAAM,EACpB,CAAE,EAAGvoH,EAAM,EAAGC,EAAMpL,CAAO,EAC3B,CAAE,EAAGmL,EAAOnL,EAAS,EAAGoL,CAAG,CAC/B,EACE,IAAI2gP,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKuE,GAAO,IAAIpH,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAAC7wW,EAAI,CAAC,KAAKT,EAAI,CAAC,GAAG,EACzGw0W,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAErD,OAAIpD,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOuhD,IAAM,MAAM,EAInB,SAASI,IAAO9vU,EAAQ6qF,EAAM,CAC5B,KAAM,CAAE,WAAAiiO,CAAU,EAAKH,GAAc9hO,CAAI,EACzCA,EAAK,MAAQ,GACb,MAAM29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EAClG,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChB,EAAI,KAAK,IAAI,GAAIA,EAAK,OAAS,CAAC,EAChCqlO,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,EAAI,CAAC,EAChB,CAAE,EAAG,EAAI,EAAG,EAAG,CAAC,EAChB,CAAE,EAAG,EAAG,EAAG,CAAC,EAAI,CAAC,EACjB,CAAE,EAAG,CAAC,EAAI,EAAG,EAAG,CAAC,CACrB,EACQmb,EAAK0E,GAAO,IAAIvH,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM2uW,EAAa5G,GAAqBlZ,CAAM,EACxCqb,EAAYF,EAAG,KAAK2E,EAAY3uW,CAAO,EACvC4uW,EAAczH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EACnE,OAAIkD,GAAa5jP,EAAK,OAAS,aAC7BolP,EAAY,UAAU,MAAM,EAAE,KAAK,QAASxB,CAAS,EAEnD3hB,GAAcjiO,EAAK,OAAS,aAC9BolP,EAAY,UAAU,MAAM,EAAE,KAAK,QAASnjB,CAAU,EAExDjiO,EAAK,MAAQ,GACbA,EAAK,OAAS,GACdA,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAO2hD,IAAQ,QAAQ,EAIvB,eAAeI,GAAOlwU,EAAQ6qF,EAAMxpH,EAAS,CAC3C,KAAM,CAAE,YAAAwrV,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,YAAAiD,GAAgB,MAAML,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACtFjH,GAAUviH,GAAA,YAAAA,EAAS,UAAWqnW,EAC9BqB,EAAStE,EAAK,MAAQ,EAAI7hP,EAChC,IAAI+qP,EACJ,KAAM,CAAE,UAAAF,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK8E,GAAO,IAAI3H,CAAQ,EACxBlM,EAAWrP,GAAkBpiO,EAAM,EAAE,EACrC0gP,EAAYF,EAAG,OAAO,EAAG,EAAGtB,EAAS,EAAGzN,CAAQ,EACtDqS,EAAanG,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC5DoD,EAAW,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASja,GAAoB+Z,CAAS,CAAC,CAChG,MACEE,EAAanG,EAAS,OAAO,SAAU,cAAc,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1b,CAAU,EAAE,KAAK,IAAKid,CAAM,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,EAEtK,OAAAb,GAAiBr+O,EAAM8jP,CAAU,EACjC9jP,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,MAAMi5J,EAAUpc,EAAO,MAAQ,EAC/B,OAAOwa,GAAkB,OAAOxa,EAAQoc,EAASj5J,CAAK,CACxD,EACAtsF,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,mBAAoBy1E,EAAMk/O,EAAQ5yJ,CAAK,EACzCq3J,GAAkB,OAAO3jP,EAAMk/O,EAAQ5yJ,CAAK,CACrD,EACOqxJ,CACT,CACAr6C,EAAO+hD,GAAQ,QAAQ,EAIvB,SAASG,IAAW91W,EAAG,CACrB,MAAM+1W,EAAU,KAAK,IAAI,KAAK,GAAK,CAAC,EAC9BC,EAAU,KAAK,IAAI,KAAK,GAAK,CAAC,EAC9BC,EAAaj2W,EAAI,EACjBk2W,EAAU,CAAE,EAAGD,EAAa,EAAIF,EAAS,EAAGE,EAAa,EAAID,CAAO,EACpEG,EAAU,CAAE,EAAG,EAAEF,EAAa,GAAKF,EAAS,EAAGE,EAAa,EAAID,CAAO,EACvEI,EAAU,CAAE,EAAG,EAAEH,EAAa,GAAKF,EAAS,EAAG,EAAEE,EAAa,GAAKD,CAAO,EAC1EK,EAAU,CAAE,EAAGJ,EAAa,EAAIF,EAAS,EAAG,EAAEE,EAAa,GAAKD,CAAO,EAC7E,MAAO,KAAKG,EAAQ,CAAC,IAAIA,EAAQ,CAAC,MAAME,EAAQ,CAAC,IAAIA,EAAQ,CAAC;AAAA,uBACzCH,EAAQ,CAAC,IAAIA,EAAQ,CAAC,MAAME,EAAQ,CAAC,IAAIA,EAAQ,CAAC,EACzE,CACAxiD,EAAOkiD,IAAY,YAAY,EAC/B,SAASQ,IAAc7wU,EAAQ6qF,EAAM,CACnC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClBhiO,EAAK,MAAQ,GACb,MAAM29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EAClGk/O,EAAS,KAAK,IAAI,IAAIl/O,GAAA,YAAAA,EAAM,QAAS,CAAC,EACtC,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBwgP,EAAKyF,GAAO,IAAItI,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM0vW,EAAa1F,EAAG,OAAO,EAAG,EAAGtB,EAAS,EAAG1oW,CAAO,EAChD2vW,EAAWX,IAAWtG,CAAM,EAC5BkH,EAAW5F,EAAG,KAAK2F,EAAU3vW,CAAO,EACpC6vW,EAAiB1I,EAAS,OAAO,IAAMuI,EAAY,cAAc,EACvE,OAAAG,EAAe,OAAO,IAAMD,CAAQ,EAChCxC,GAAa5jP,EAAK,OAAS,aAC7BqmP,EAAe,UAAU,MAAM,EAAE,KAAK,QAASzC,CAAS,EAEtD3hB,GAAcjiO,EAAK,OAAS,aAC9BqmP,EAAe,UAAU,MAAM,EAAE,KAAK,QAASpkB,CAAU,EAE3Doc,GAAiBr+O,EAAMqmP,CAAc,EACrCrmP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,0BAA2By1E,EAAM,CAAE,OAAAk/O,EAAQ,MAAA5yJ,EAAO,EAC/Cq3J,GAAkB,OAAO3jP,EAAMk/O,EAAQ5yJ,CAAK,CAE1D,EACOqxJ,CACT,CACAr6C,EAAO0iD,IAAe,eAAe,EAIrC,SAASM,GAAsBtH,EAASC,EAASC,EAAQx2M,EAAY,IAAKy2M,EAAa,EAAGC,EAAW,IAAK,CACxG,MAAM/Z,EAAS,GACTga,EAAgBF,EAAa,KAAK,GAAK,IAGvCG,GAFcF,EAAW,KAAK,GAAK,IACRC,IACD32M,EAAY,GAC5C,QAASj3J,EAAI,EAAGA,EAAIi3J,EAAWj3J,IAAK,CAClC,MAAM+uV,EAAQ6e,EAAgB5tW,EAAI6tW,EAC5Bv1W,EAAIi1W,EAAUE,EAAS,KAAK,IAAI1e,CAAK,EACrCx2V,EAAIi1W,EAAUC,EAAS,KAAK,IAAI1e,CAAK,EAC3C6E,EAAO,KAAK,CAAE,EAAG,CAACt7V,EAAG,EAAG,CAACC,EAAG,CAC9B,CACA,OAAOq7V,CACT,CACA/hC,EAAOgjD,GAAuB,sBAAsB,EACpD,eAAeC,IAAepxU,EAAQ6qF,EAAM,CAC1C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAClC5wH,EAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GACnCk/O,EAAS,KAAK,IAAI,EAAG9vW,EAAI,EAAG,EAC5B,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBqlO,EAAS,CACb,GAAGihB,GAAsBz2W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAGA,CAAM,EAC/B,GAAGoH,GAAsBz2W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,KAAM,IAAI,EAC5E,GAAGoH,GAAsBz2W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,IAAI,EAC1E,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAAC9vW,EAAI,CAAC,EAC/B,GAAGk3W,GAAsBz2W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,CAC5D,EACQsH,EAAa,CACjB,CAAE,EAAG32W,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC9B,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC/B,GAAGoH,GAAsBz2W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAACA,CAAM,EAChC,GAAGoH,GAAsBz2W,EAAI,EAAIA,EAAI,GAAK,CAACqvW,EAAQA,EAAQ,GAAI,KAAM,IAAI,EACzE,GAAGoH,GAAsBz2W,EAAI,EAAIA,EAAI,GAAKqvW,EAAQA,EAAQ,GAAI,IAAK,IAAI,EACvE,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC9B,GAAGk3W,GAAsBz2W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,EACxD,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAGT,EAAI,EAAI8vW,CAAM,EAC9B,CAAE,EAAGrvW,EAAI,EAAG,EAAGT,EAAI,EAAI8vW,CAAM,CACjC,EACQsB,EAAKiG,GAAO,IAAI9I,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,CAAE,KAAM,MAAM,CAAE,EACpDA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAGtB,MAAMkwW,EADqBnI,GAAqBlZ,CAAM,EACT,QAAQ,IAAK,EAAE,EACtDshB,EAAqBnG,EAAG,KAAKkG,EAAmBlwW,CAAO,EACvDowW,EAAWrI,GAAqBiI,CAAU,EAC1CK,EAAYrG,EAAG,KAAKoG,EAAU,CAAE,GAAGpwW,EAAS,EAC5CswW,EAAsBnJ,EAAS,OAAO,IAAK,cAAc,EAC/D,OAAAmJ,EAAoB,OAAO,IAAMD,EAAW,cAAc,EAAE,KAAK,iBAAkB,CAAC,EACpFC,EAAoB,OAAO,IAAMH,EAAoB,cAAc,EACnEG,EAAoB,KAAK,QAAS,MAAM,EACpClD,GAAa5jP,EAAK,OAAS,aAC7B8mP,EAAoB,UAAU,MAAM,EAAE,KAAK,QAASlD,CAAS,EAE3D3hB,GAAcjiO,EAAK,OAAS,aAC9B8mP,EAAoB,UAAU,MAAM,EAAE,KAAK,QAAS7kB,CAAU,EAEhE6kB,EAAoB,KAAK,YAAa,aAAa5H,CAAM,MAAM,EAC/D33N,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,EAAIqvW,GAAUtE,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC/H,EACEyD,GAAiBr+O,EAAM8mP,CAAmB,EAC1C9mP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMwmP,EAAYl6J,CAAK,CAE/D,EACOqxJ,CACT,CACAr6C,EAAOijD,IAAgB,gBAAgB,EAIvC,SAASQ,GAAsB/H,EAASC,EAASC,EAAQx2M,EAAY,IAAKy2M,EAAa,EAAGC,EAAW,IAAK,CACxG,MAAM/Z,EAAS,GACTga,EAAgBF,EAAa,KAAK,GAAK,IAGvCG,GAFcF,EAAW,KAAK,GAAK,IACRC,IACD32M,EAAY,GAC5C,QAASj3J,EAAI,EAAGA,EAAIi3J,EAAWj3J,IAAK,CAClC,MAAM+uV,EAAQ6e,EAAgB5tW,EAAI6tW,EAC5Bv1W,EAAIi1W,EAAUE,EAAS,KAAK,IAAI1e,CAAK,EACrCx2V,EAAIi1W,EAAUC,EAAS,KAAK,IAAI1e,CAAK,EAC3C6E,EAAO,KAAK,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,CAAE,CACtB,CACA,OAAOq7V,CACT,CACA/hC,EAAOyjD,GAAuB,sBAAsB,EACpD,eAAeC,IAAgB7xU,EAAQ6qF,EAAM,CAC3C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAClC5wH,EAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GACnCk/O,EAAS,KAAK,IAAI,EAAG9vW,EAAI,EAAG,EAC5B,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBqlO,EAAS,CACb,GAAG0hB,GAAsBl3W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAACA,CAAM,EAC/B,GAAG6H,GAAsBl3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,KAAM,IAAI,EAC5E,GAAG6H,GAAsBl3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,IAAI,EAC1E,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC7B,GAAG23W,GAAsBl3W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,CAC5D,EACQsH,EAAa,CACjB,CAAE,EAAG,CAAC32W,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC/B,CAAE,EAAGrvW,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC9B,GAAG6H,GAAsBl3W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAACA,CAAM,EAC/B,GAAG6H,GAAsBl3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,KAAM,IAAI,EAC5E,GAAG6H,GAAsBl3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,IAAI,EAC1E,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC7B,GAAG23W,GAAsBl3W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,EACxD,CAAE,EAAGrvW,EAAI,EAAG,EAAGT,EAAI,EAAI8vW,CAAM,EAC7B,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAGT,EAAI,EAAI8vW,CAAM,CAClC,EACQsB,EAAKyG,GAAO,IAAItJ,CAAQ,EACxBnnW,EAAU4rV,GAAkBpiO,EAAM,CAAE,KAAM,MAAM,CAAE,EACpDA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAGtB,MAAMkwW,EADsBnI,GAAqBlZ,CAAM,EACT,QAAQ,IAAK,EAAE,EACvD6hB,EAAsB1G,EAAG,KAAKkG,EAAmBlwW,CAAO,EACxDowW,EAAWrI,GAAqBiI,CAAU,EAC1CK,EAAYrG,EAAG,KAAKoG,EAAU,CAAE,GAAGpwW,EAAS,EAC5C2wW,EAAuBxJ,EAAS,OAAO,IAAK,cAAc,EAChE,OAAAwJ,EAAqB,OAAO,IAAMN,EAAW,cAAc,EAAE,KAAK,iBAAkB,CAAC,EACrFM,EAAqB,OAAO,IAAMD,EAAqB,cAAc,EACrEC,EAAqB,KAAK,QAAS,MAAM,EACrCvD,GAAa5jP,EAAK,OAAS,aAC7BmnP,EAAqB,UAAU,MAAM,EAAE,KAAK,QAASvD,CAAS,EAE5D3hB,GAAcjiO,EAAK,OAAS,aAC9BmnP,EAAqB,UAAU,MAAM,EAAE,KAAK,QAASllB,CAAU,EAEjEklB,EAAqB,KAAK,YAAa,aAAa,CAACjI,CAAM,MAAM,EACjE33N,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAChJ,EACEyD,GAAiBr+O,EAAMmnP,CAAoB,EAC3CnnP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMwmP,EAAYl6J,CAAK,CAE/D,EACOqxJ,CACT,CACAr6C,EAAO0jD,IAAiB,iBAAiB,EAIzC,SAASI,GAAsBpI,EAASC,EAASC,EAAQx2M,EAAY,IAAKy2M,EAAa,EAAGC,EAAW,IAAK,CACxG,MAAM/Z,EAAS,GACTga,EAAgBF,EAAa,KAAK,GAAK,IAGvCG,GAFcF,EAAW,KAAK,GAAK,IACRC,IACD32M,EAAY,GAC5C,QAASj3J,EAAI,EAAGA,EAAIi3J,EAAWj3J,IAAK,CAClC,MAAM+uV,EAAQ6e,EAAgB5tW,EAAI6tW,EAC5Bv1W,EAAIi1W,EAAUE,EAAS,KAAK,IAAI1e,CAAK,EACrCx2V,EAAIi1W,EAAUC,EAAS,KAAK,IAAI1e,CAAK,EAC3C6E,EAAO,KAAK,CAAE,EAAG,CAACt7V,EAAG,EAAG,CAACC,EAAG,CAC9B,CACA,OAAOq7V,CACT,CACA/hC,EAAO8jD,GAAuB,sBAAsB,EACpD,eAAeC,IAAYlyU,EAAQ6qF,EAAM,CACvC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAClC5wH,EAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GACnCk/O,EAAS,KAAK,IAAI,EAAG9vW,EAAI,EAAG,EAC5B,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBsnP,EAAuB,CAC3B,GAAGF,GAAsBv3W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAGA,CAAM,EAC/B,GAAGkI,GAAsBv3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,KAAM,IAAI,EAC5E,GAAGkI,GAAsBv3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,IAAI,EAC1E,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAAC9vW,EAAI,CAAC,EAC/B,GAAGg4W,GAAsBv3W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,CAC5D,EACQqI,EAAwB,CAC5B,GAAGH,GAAsB,CAACv3W,EAAI,EAAIqvW,EAASA,EAAS,EAAG,CAAC9vW,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,IAAI,EACpF,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAS,EAAG,EAAGA,CAAM,EAClC,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,EAAG,EAAE,EACxE,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,CAAC,EACxE,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAS,EAAG,EAAG,CAACA,CAAM,EACnC,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAASA,EAAS,EAAG9vW,EAAI,EAAG8vW,EAAQ,GAAI,KAAM,IAAI,CACxF,EACQsH,EAAa,CACjB,CAAE,EAAG32W,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC9B,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI8vW,CAAM,EAC/B,GAAGkI,GAAsBv3W,EAAI,EAAG,CAACT,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,CAAC,EAC1D,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG,CAACA,CAAM,EAChC,GAAGkI,GAAsBv3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,KAAM,IAAI,EAC5E,GAAGkI,GAAsBv3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,IAAI,EAC1E,CAAE,EAAG,CAACrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC9B,GAAGg4W,GAAsBv3W,EAAI,EAAGT,EAAI,EAAG8vW,EAAQ,GAAI,EAAG,EAAE,EACxD,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAGT,EAAI,EAAI8vW,CAAM,EAC9B,CAAE,EAAGrvW,EAAI,EAAIqvW,EAASA,EAAS,EAAG,EAAG9vW,EAAI,EAAI8vW,CAAM,EACnD,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAASA,EAAS,EAAG,CAAC9vW,EAAI,EAAG8vW,EAAQ,GAAI,IAAK,IAAI,EACpF,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAS,EAAG,EAAGA,CAAM,EAClC,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAAS,EAAG,CAACA,EAAQA,EAAQ,GAAI,EAAG,EAAE,EACxE,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAAS,EAAGA,EAAQA,EAAQ,GAAI,IAAK,CAAC,EACxE,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAS,EAAG,EAAG,CAACA,CAAM,EACnC,GAAGkI,GAAsB,CAACv3W,EAAI,EAAIqvW,EAASA,EAAS,EAAG9vW,EAAI,EAAG8vW,EAAQ,GAAI,KAAM,IAAI,CACxF,EACQsB,EAAKgH,GAAQ,IAAI7J,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,CAAE,KAAM,MAAM,CAAE,EACpDA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAGtB,MAAMixW,EADqBlJ,GAAqB+I,CAAoB,EACnB,QAAQ,IAAK,EAAE,EAC1DI,EAAqBlH,EAAG,KAAKiH,EAAuBjxW,CAAO,EAE3DmxW,EADsBpJ,GAAqBgJ,CAAqB,EACnB,QAAQ,IAAK,EAAE,EAC5DK,EAAsBpH,EAAG,KAAKmH,EAAwBnxW,CAAO,EAC7DowW,EAAWrI,GAAqBiI,CAAU,EAC1CK,EAAYrG,EAAG,KAAKoG,EAAU,CAAE,GAAGpwW,EAAS,EAC5CqxW,EAAmBlK,EAAS,OAAO,IAAK,cAAc,EAC5D,OAAAkK,EAAiB,OAAO,IAAMhB,EAAW,cAAc,EAAE,KAAK,iBAAkB,CAAC,EACjFgB,EAAiB,OAAO,IAAMH,EAAoB,cAAc,EAChEG,EAAiB,OAAO,IAAMD,EAAqB,cAAc,EACjEC,EAAiB,KAAK,QAAS,MAAM,EACjCjE,GAAa5jP,EAAK,OAAS,aAC7B6nP,EAAiB,UAAU,MAAM,EAAE,KAAK,QAASjE,CAAS,EAExD3hB,GAAcjiO,EAAK,OAAS,aAC9B6nP,EAAiB,UAAU,MAAM,EAAE,KAAK,QAAS5lB,CAAU,EAE7D4lB,EAAiB,KAAK,YAAa,aAAa3I,EAASA,EAAS,CAAC,MAAM,EACzE33N,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAChJ,EACEyD,GAAiBr+O,EAAM6nP,CAAgB,EACvC7nP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMwmP,EAAYl6J,CAAK,CAE/D,EACOqxJ,CACT,CACAr6C,EAAO+jD,IAAa,aAAa,EAIjC,eAAeS,IAAgB3yU,EAAQ6qF,EAAM,CAC3C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE07K,EAAW,GAAI8G,EAAY,GAC3B3yS,EAAI,KAAK,IAAI6rS,GAAWk/D,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAK,MAAMA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACtF5wH,EAAI,KAAK,IAAIozS,EAAWo4D,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EAChFk/O,EAAS9vW,EAAI,EACb,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAKuH,GAAQ,IAAIpK,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM2pW,EAAatwW,EAAGisS,EAAc1sS,EAC9B05S,EAAKq3D,EAAajB,EAClB8I,EAAKlsE,EAAc,EACnBupD,EAAS,CACb,CAAE,EAAGv8C,EAAI,EAAG,CAAC,EACb,CAAEk/D,EAAO,EAAG,CAAC,EACb,CAAE,EAAG,EAAG,EAAGlsE,EAAc,CAAC,EAC1B,CAAEksE,EAAO,EAAGlsE,CAAW,EACvB,CAAE,EAAGgN,EAAI,EAAGhN,CAAW,EACvB,GAAGijE,GAAqB,CAACj2D,EAAI,CAAChN,EAAc,EAAGojE,EAAQ,GAAI,IAAK,EAAE,CACtE,EACQ8F,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzD6iB,EAAQ,KAAK,YAAa,aAAa,CAACj1W,EAAI,CAAC,KAAK,CAACT,EAAI,CAAC,GAAG,EAC3DivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOwkD,IAAiB,iBAAiB,EAIzC,IAAII,IAAsC5kD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IAClE,CACL,IAAIn4W,CAAC,IAAIC,EAAIk4W,CAAE,GACf,IAAID,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,IAAI0sP,CAAE,IAAIC,CAAE,UAAU,CAAC3sP,CAAK,KAC5B,MAAM7mE,CAAM,GACZ,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,MAAM,CAAC7mE,CAAM,EACjB,EAAI,KAAK,GAAG,EACT,qBAAqB,EACpBy5T,IAA2C7kD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACvE,CACL,IAAIn4W,CAAC,IAAIC,EAAIk4W,CAAE,GACf,IAAIn4W,EAAIwrH,CAAK,IAAIvrH,EAAIk4W,CAAE,GACvB,IAAID,CAAE,IAAIC,CAAE,UAAU,CAAC3sP,CAAK,KAC5B,MAAM7mE,CAAM,GACZ,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,MAAM,CAAC7mE,CAAM,EACjB,EAAI,KAAK,GAAG,EACT,0BAA0B,EACzB05T,IAA2C9kD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACvE,CAAC,IAAIn4W,EAAIwrH,EAAQ,CAAC,IAAI,CAAC7mE,EAAS,CAAC,GAAI,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,IAAI,EAAE,KAAK,GAAG,EACpF,0BAA0B,EAC7B,eAAe8yP,IAASlzU,EAAQ6qF,EAAM,CACpC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,MAAQ56O,EAAK,QAASA,EAAK,OAAS,CAAC,EACvDiiP,EAAKpyW,EAAI,EACTqyW,EAAKD,GAAM,IAAMpyW,EAAI,IACrBT,EAAI,KAAK,IAAIwrW,EAAK,OAASsH,EAAKliP,EAAK,QAASA,EAAK,QAAU,CAAC,EACpE,IAAIsoP,EACJ,KAAM,CAAE,UAAA1E,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK+H,GAAQ,IAAI5K,CAAQ,EACzB6K,EAAgBL,IAAyB,EAAG,EAAGt4W,EAAGT,EAAG6yW,EAAIC,CAAE,EAC3DuG,EAAgBL,IAAyB,EAAGlG,EAAIryW,EAAGT,EAAG6yW,EAAIC,CAAE,EAC5DwG,EAAYlI,EAAG,KAAKgI,EAAepmB,GAAkBpiO,EAAM,EAAE,CAAC,EAC9D2oP,EAAYnI,EAAG,KAAKiI,EAAermB,GAAkBpiO,EAAM,CAAE,KAAM,MAAM,CAAE,CAAC,EAClFsoP,EAAY3K,EAAS,OAAO,IAAMgL,EAAW,cAAc,EAC3DL,EAAY3K,EAAS,OAAO,IAAM+K,EAAW,cAAc,EAC3DJ,EAAU,KAAK,QAAS,uBAAuB,EAC3C1E,GACF0E,EAAU,KAAK,QAAS1E,CAAS,CAErC,KAAO,CACL,MAAMoB,EAAWkD,IAAoB,EAAG,EAAGr4W,EAAGT,EAAG6yW,EAAIC,CAAE,EACvDoG,EAAY3K,EAAS,OAAO,OAAQ,cAAc,EAAE,KAAK,IAAKqH,CAAQ,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASnb,GAAoB+Z,CAAS,CAAC,EAAE,KAAK,QAAS3hB,CAAU,CACvL,CACA,OAAAqmB,EAAU,KAAK,iBAAkBpG,CAAE,EACnCoG,EAAU,KAAK,YAAa,aAAa,CAACz4W,EAAI,CAAC,KAAK,EAAET,EAAI,EAAI8yW,EAAG,GAAG,EACpE7D,GAAiBr+O,EAAMsoP,CAAS,EAChC/gO,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,IAAMA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,IAAM56O,EAAK,SAAW,GAAK,KAAO46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAChJ,EACE56O,EAAK,UAAY,SAASssF,EAAO,CAC/B,MAAMpW,EAAMytK,GAAkB,KAAK3jP,EAAMssF,CAAK,EACxCviN,EAAImsM,EAAI,GAAKl2E,EAAK,GAAK,GAC7B,GAAIiiP,GAAM,IAAM,KAAK,IAAIl4W,CAAC,GAAKi2H,EAAK,OAAS,GAAK,GAAK,KAAK,IAAIj2H,CAAC,IAAMi2H,EAAK,OAAS,GAAK,GAAK,KAAK,IAAIk2E,EAAI,GAAKl2E,EAAK,GAAK,EAAE,GAAKA,EAAK,QAAU,GAAK,EAAIkiP,GAAK,CAC7J,IAAIl4W,EAAIk4W,EAAKA,GAAM,EAAIn4W,EAAIA,GAAKk4W,EAAKA,IACjCj4W,EAAI,IACNA,EAAI,KAAK,KAAKA,CAAC,GAEjBA,EAAIk4W,EAAKl4W,EACLsiN,EAAM,GAAKtsF,EAAK,GAAK,GAAK,IAC5Bh2H,EAAI,CAACA,GAEPksM,EAAI,GAAKlsM,CACX,CACA,OAAOksM,CACT,EACOynK,CACT,CACAr6C,EAAO+kD,IAAU,UAAU,EAI3B,eAAeO,IAAiBzzU,EAAQ6qF,EAAM,CAC5C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI+qW,EAAK,MAAQ56O,EAAK,QACtB5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvB6oP,EAAaz5W,EAAI,GACjBrF,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EAAIy5W,EAAa,EAC1B,CAAE,UAAAjF,CAAS,EAAK5jP,EAChBwgP,EAAKsI,GAAQ,IAAInL,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMuyW,EAAM,CACV,CAAE,EAAAh/W,EAAG,EAAGC,EAAI6+W,CAAU,EACtB,CAAE,EAAG,CAAC9+W,EAAG,EAAGC,EAAI6+W,CAAU,EAC1B,CAAE,EAAG,CAAC9+W,EAAG,EAAG,CAACC,CAAC,EACd,CAAE,EAAAD,EAAG,EAAG,CAACC,CAAC,EACV,CAAE,EAAAD,EAAG,EAAAC,CAAC,EACN,CAAE,EAAG,CAACD,EAAG,EAAAC,CAAC,EACV,CAAE,EAAG,CAACD,EAAG,EAAGC,EAAI6+W,CAAU,CAC9B,EACQG,EAAOxI,EAAG,QACduI,EAAI,IAAKv5W,GAAM,CAACA,EAAE,EAAGA,EAAE,CAAC,CAAC,EACzBgH,CACJ,EACQsuW,EAAUnH,EAAS,OAAO,IAAMqL,EAAM,cAAc,EAC1D,OAAAlE,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,UAAU,MAAM,EAAE,KAAK,QAASlB,CAAS,EAE/C3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,UAAU,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEpD16M,EAAM,KACJ,YACA,aAAax9I,GAAKi2H,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK5wW,EAAI6+W,GAAc7oP,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GACpJ,EACEyD,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAEhD,EACOqxJ,CACT,CACAr6C,EAAOslD,IAAkB,kBAAkB,EAI3C,eAAeK,IAAa9zU,EAAQ6qF,EAAM,SACxC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,YAAAiD,GAAgB,MAAML,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAEtFkpP,EAActO,EAAK,MAAQ,EAAIiD,EADzB,EAENsL,EAAcvO,EAAK,MAAQ,EAAIiD,EACrC,IAAIuL,EACJ,KAAM,CAAE,UAAAxF,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK6I,GAAQ,IAAI1L,CAAQ,EACzB2L,EAAelnB,GAAkBpiO,EAAM,CAAE,UAAW,GAAK,YAAa,IAAK,EAC3EupP,EAAennB,GAAkBpiO,EAAM,CAAE,UAAW,GAAK,YAAa,IAAK,EAC3EwpP,EAAiBhJ,EAAG,OAAO,EAAG,EAAG0I,EAAc,EAAGI,CAAY,EAC9DG,EAAiBjJ,EAAG,OAAO,EAAG,EAAG2I,EAAc,EAAGI,CAAY,EACpEH,EAAczL,EAAS,OAAO,IAAK,cAAc,EACjDyL,EAAY,KAAK,QAASvf,GAAoB7pO,EAAK,UAAU,CAAC,EAAE,KAAK,QAAS6pO,GAAoB+Z,CAAS,CAAC,GAC5G/3U,EAAAu9U,EAAY,KAAI,IAAhB,MAAAv9U,EAAoB,YAAY29U,IAChCvnU,EAAAmnU,EAAY,KAAI,IAAhB,MAAAnnU,EAAoB,YAAYwnU,EAClC,KAAO,CACLL,EAAczL,EAAS,OAAO,IAAK,cAAc,EACjD,MAAM+L,EAAcN,EAAY,OAAO,SAAU,cAAc,EACzDO,EAAcP,EAAY,OAAO,QAAQ,EAC/CA,EAAY,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASnnB,CAAU,EAC3EynB,EAAY,KAAK,QAAS,cAAc,EAAE,KAAK,QAASznB,CAAU,EAAE,KAAK,IAAKinB,CAAW,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,EACrHS,EAAY,KAAK,QAAS,cAAc,EAAE,KAAK,QAAS1nB,CAAU,EAAE,KAAK,IAAKknB,CAAW,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,CACvH,CACA,OAAA9K,GAAiBr+O,EAAMopP,CAAW,EAClCppP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,yBAA0By1E,EAAMkpP,EAAa58J,CAAK,EACpDq3J,GAAkB,OAAO3jP,EAAMkpP,EAAa58J,CAAK,CAC1D,EACOqxJ,CACT,CACAr6C,EAAO2lD,IAAc,cAAc,EAInC,SAASW,IAAaz0U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,CAAc,GAAM,CAClE,KAAM,CAAE,YAAA21B,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,MAAQ,GACbA,EAAK,WAAagiO,EAClB,MAAM2b,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EAClGk/O,EAAS,EACT,CAAE,UAAA0E,CAAS,EAAK5jP,EAChBwgP,EAAKqJ,GAAQ,IAAIlM,CAAQ,EACzB,CAAE,WAAAtb,CAAU,EAAKh2B,EACjB71T,EAAU4rV,GAAkBpiO,EAAM,CAAE,UAAW,OAAO,CAAE,EAC1DA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,GAEtB,MAAM0vW,EAAa1F,EAAG,OAAO,EAAG,EAAGtB,EAAS,EAAG1oW,CAAO,EAChDszW,EAAgBnM,EAAS,OAAO,IAAMuI,EAAY,cAAc,EACtE,OAAA4D,EAAc,UAAU,MAAM,EAAE,KAAK,QAAS,SAASznB,CAAU,cAAc,EAC3EuhB,GAAaA,EAAU,OAAS,GAAK5jP,EAAK,OAAS,aACrD8pP,EAAc,UAAU,MAAM,EAAE,KAAK,QAASlG,CAAS,EAErD3hB,GAAcjiO,EAAK,OAAS,aAC9B8pP,EAAc,UAAU,MAAM,EAAE,KAAK,QAAS7nB,CAAU,EAE1Doc,GAAiBr+O,EAAM8pP,CAAa,EACpC9pP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,yBAA0By1E,EAAM,CAAE,OAAAk/O,EAAQ,MAAA5yJ,EAAO,EAC9Cq3J,GAAkB,OAAO3jP,EAAMk/O,EAAQ5yJ,CAAK,CAE1D,EACOqxJ,CACT,CACAr6C,EAAOsmD,IAAc,cAAc,EAInC,eAAeG,IAAgB50U,EAAQ6qF,EAAM,CAC3C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAClC5wH,EAAIS,EAAI+qW,EAAK,OACboN,EAAKn4W,EAAI+qW,EAAK,OACdvV,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAACj2V,CAAC,EACb,CAAE,EAAG44W,EAAI,EAAG,CAAC54W,CAAC,EACd,CAAE,EAAG44W,EAAK,EAAG,EAAG,CAAC,CACrB,EACQ,CAAE,UAAApE,CAAS,EAAK5jP,EAChBwgP,EAAKwJ,GAAQ,IAAIrM,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMwuW,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCyzW,EAAmBtM,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAACtxW,EAAI,CAAC,KAAKA,EAAI,CAAC,GAAG,EAC5H,OAAIw0W,GAAa5jP,EAAK,OAAS,aAC7BiqP,EAAiB,eAAe,MAAM,EAAE,KAAK,QAASrG,CAAS,EAE7D3hB,GAAcjiO,EAAK,OAAS,aAC9BiqP,EAAiB,eAAe,MAAM,EAAE,KAAK,QAAShoB,CAAU,EAElEjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAMiqP,CAAgB,EACvC1iO,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAK,GAAK46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAChI,EACE56O,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,qBAAsBy1E,EAAMqlO,EAAQ/4I,CAAK,EAC3Cq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOymD,IAAiB,iBAAiB,EAIzC,SAASG,IAAS/0U,EAAQ6qF,EAAM,CAAE,IAAAz2F,EAAK,OAAQ,CAAE,MAAO4gV,EAAQ,eAAA99C,CAAc,GAAM,CAClF,KAAM,CAAE,WAAA41B,CAAU,EAAKH,GAAc9hO,CAAI,EACzCA,EAAK,MAAQ,GACb,MAAM29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EAClG,CAAE,UAAA4jP,CAAS,EAAK5jP,EACtB,IAAIzK,EAAQ,KAAK,IAAI,IAAIyK,GAAA,YAAAA,EAAM,QAAS,CAAC,EACrCtxE,EAAS,KAAK,IAAI,IAAIsxE,GAAA,YAAAA,EAAM,SAAU,CAAC,EACvCz2F,IAAQ,OACVgsF,EAAQ,KAAK,IAAI,IAAIyK,GAAA,YAAAA,EAAM,QAAS,CAAC,EACrCtxE,EAAS,KAAK,IAAI,IAAIsxE,GAAA,YAAAA,EAAM,SAAU,CAAC,GAEzC,MAAMj2H,EAAI,GAAKwrH,EAAQ,EACjBvrH,EAAI,GAAK0kD,EAAS,EAClB8xT,EAAK4J,GAAQ,IAAIzM,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,CACtC,OAAQqsM,EAAe,UACvB,KAAMA,EAAe,SACzB,CAAG,EACGrsM,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMkqW,EAAYF,EAAG,UAAUz2W,EAAGC,EAAGurH,EAAO7mE,EAAQl4C,CAAO,EACrDwwU,EAAQ22B,EAAS,OAAO,IAAM+C,EAAW,cAAc,EACzDkD,GAAa5jP,EAAK,OAAS,aAC7BgnN,EAAM,UAAU,MAAM,EAAE,KAAK,QAAS48B,CAAS,EAE7C3hB,GAAcjiO,EAAK,OAAS,aAC9BgnN,EAAM,UAAU,MAAM,EAAE,KAAK,QAASib,CAAU,EAElDoc,GAAiBr+O,EAAMgnN,CAAK,EAC5B,MAAMjuN,GAAUoxP,GAAA,YAAAA,EAAQ,UAAW,EACnC,OAAInqP,EAAK,OAASA,EAAK,SACrBA,EAAK,OAASjH,EAAU,GAAK,EAC7BiH,EAAK,QAAUjH,EAAU,GAAK,GAEhCiH,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO4mD,IAAU,UAAU,EAI3B,eAAeG,IAAqBl1U,EAAQ6qF,EAAM,CAChD,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,MAAMtmD,EAAW,GAAI8G,EAAY,GAC3B,CAAE,SAAAm7D,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI,KAAK,IAAI6rS,EAAUk/D,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC7E5wH,EAAI,KAAK,IAAIozS,EAAWo4D,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EAChFk/O,EAAS9vW,EAAI,EACb,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAK8J,GAAQ,IAAI3M,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAG,EAAG,CAACT,EAAI,CAAC,EACtB,CAAE,EAAGS,EAAI,EAAIqvW,EAAQ,EAAG,CAAC9vW,EAAI,CAAC,EAC9B,GAAG2vW,GAAqB,CAAClvW,EAAI,EAAIqvW,EAAQ,EAAGA,EAAQ,GAAI,GAAI,GAAG,EAC/D,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC7B,CAAE,EAAG,CAACS,EAAI,EAAG,EAAGT,EAAI,CAAC,CACzB,EACQ41W,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,iBAAkBy1E,EAAM,CAAE,OAAAk/O,EAAQ,MAAA5yJ,EAAO,EACtCq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAO+mD,IAAsB,sBAAsB,EAInD,eAAeE,IAAQp1U,EAAQ6qF,EAAM,CACnC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE5wH,EAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GACnCnwH,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,IACvC,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBwgP,EAAKgK,GAAQ,IAAI7M,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,IAAIi0W,EAAY56W,EAAI,EACpB,MAAMP,EAAIm7W,EAAY,EACtBA,EAAYA,EAAYn7W,EACxB,MAAMo7W,EAAat7W,EAAI,EACjBu7W,EAAcD,EAAa,EAC3BE,EAAeH,EAAYE,EAC3BtlB,EAAS,CACb,CAAE,EAAG,CAACulB,EAAc,EAAG,CAACF,CAAU,EAClC,CAAE,EAAG,EAAG,EAAG,CAACA,CAAU,EACtB,CAAE,EAAGE,EAAc,EAAG,CAACF,CAAU,EACjC,CAAE,EAAGD,EAAW,EAAG,CAAC,EACpB,CAAE,EAAGG,EAAc,EAAGF,CAAU,EAChC,CAAE,EAAG,EAAG,EAAGA,CAAU,EACrB,CAAE,EAAG,CAACE,EAAc,EAAGF,CAAU,EACjC,CAAE,EAAG,CAACD,EAAW,EAAG,CAAC,CACzB,EACQzF,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOinD,IAAS,SAAS,EAIzB,eAAeM,IAAU11U,EAAQ6qF,EAAM,CACrC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,MAAQ,GACbA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,CAAQ,EAAK,MAAMH,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACnEnwH,EAAI,KAAK,IAAI,IAAImwH,GAAA,YAAAA,EAAM,QAAS,CAAC,EACjC5wH,EAAI,KAAK,IAAI,IAAI4wH,GAAA,YAAAA,EAAM,SAAU,CAAC,EAClC,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBwgP,EAAKsK,GAAQ,IAAInN,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGx1V,EAAG,EAAG,CAAC,EACZ,CAAE,EAAG,EAAG,EAAGT,CAAC,EACZ,CAAE,EAAGS,EAAG,EAAGT,CAAC,CAChB,EACQ41W,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzD6iB,EAAQ,KAAK,YAAa,aAAa,CAACj1W,EAAI,CAAC,KAAK,CAACT,EAAI,CAAC,GAAG,EAC3DivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,iBAAkBy1E,EAAM,CAAE,OAAAqlO,CAAM,CAAE,EAC/Bse,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOunD,IAAW,WAAW,EAI7B,eAAe31G,IAAK//N,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,EAAgB,UAAA+0B,CAAS,GAAM,CAC3E,KAAM,CAAE,YAAAY,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAM+oB,EAAc/qP,EAAK,aAAe,GAClCgrP,EAAahrP,EAAK,YAAc,GAChCirP,EAAW,KAAK,IAAIF,EAAaC,CAAU,EAC3CE,EAAe9pB,GAAA,YAAAA,EAAW,cAChCphO,EAAK,MAAQ,KAAK,IAAIirP,EAAUC,GAAgB,CAAC,EACjD,KAAM,CAAE,SAAAvN,EAAU,KAAA/C,EAAM,MAAArzN,CAAK,EAAK,MAAMi2N,GAAYroU,EAAQ6qF,EAAM,oBAAoB,EAChFmrP,EAAWnrP,EAAK,MAAQ,IACxBtxE,EAASu8T,EACT11P,EAAQ01P,EACR,CAAE,WAAA5oB,CAAU,EAAKh2B,EACjB,CAAE,UAAAs1B,CAAS,EAAKD,GAAc1hO,CAAI,EAClC,EAAI,CAACzK,EAAQ,EACbvrH,EAAI,CAAC0kD,EAAS,EACd08T,EAAeprP,EAAK,MAAQ,EAAI,EAChCwgP,EAAK6K,GAAQ,IAAI1N,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,CAAE,OAAQ,OAAQ,KAAM,OAAQ,EACpEA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM80W,EAAW9K,EAAG,UAAU,EAAGx2W,EAAGurH,EAAO7mE,EAAQl4C,CAAO,EACpD+0W,EAAa,KAAK,IAAIh2P,EAAOqlP,EAAK,KAAK,EACvC4Q,EAAc98T,EAASksT,EAAK,OAASwQ,EACrC1C,EAAYlI,EAAG,UAAU,CAAC+K,EAAa,EAAG,CAACC,EAAc,EAAGD,EAAYC,EAAa,CACzF,GAAGh1W,EACH,KAAM,cACN,OAAQ,MACZ,CAAG,EACKi1W,EAAY9N,EAAS,OAAO,IAAM2N,EAAU,cAAc,EAC1DI,EAAa/N,EAAS,OAAO,IAAM+K,CAAS,EAClD,GAAI1oP,EAAK,KAAM,CACb,MAAM2rP,EAAWhO,EAAS,OAAO,GAAG,EACpCgO,EAAS,KACP,MAAM,MAAM/S,GAAW54O,EAAK,KAAM,CAChC,OAAQirP,EACR,MAAOA,EACP,eAAgB,EACxB,CAAO,CAAC,MACR,EACI,MAAMW,EAAWD,EAAS,KAAI,EAAG,QAAO,EAClCE,EAAYD,EAAS,MACrBE,EAAaF,EAAS,OACtBG,EAAQH,EAAS,EACjBI,EAAQJ,EAAS,EACvBD,EAAS,KACP,YACA,aAAa,CAACE,EAAY,EAAIE,CAAK,IAAIZ,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,EAAQ,CAACpR,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,CAAK,GAClL,EACIL,EAAS,KAAK,QAAS,UAAUhqB,EAAU,IAAI,QAAQ,GAAKU,CAAU,GAAG,CAC3E,CACA,OAAA96M,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAIuQ,EAAW,CAACK,EAAc,EAAIA,EAAc,EAAI5Q,EAAK,MAAM,GAC7H,EACE6Q,EAAU,KACR,YACA,eAAkBN,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAI,CAACxQ,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzG,EACE/M,GAAiBr+O,EAAM0rP,CAAU,EACjC1rP,EAAK,UAAY,SAASssF,EAAO,CAE/B,GADA/hK,GAAI,KAAK,uBAAwBy1E,EAAMssF,CAAK,EACxC,CAACtsF,EAAK,MACR,OAAO2jP,GAAkB,KAAK3jP,EAAMssF,CAAK,EAE3C,MAAMwI,EAAK90F,EAAK,GAAK,EACf0jG,EAAK1jG,EAAK,GAAK,EACfisP,EAAajsP,EAAK,QAAU,EAClC,IAAIqlO,EAAS,GACb,OAAI8lB,EACF9lB,EAAS,CACP,CAAE,EAAGvwI,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,CACrF,EAEM/lB,EAAS,CACP,CAAE,EAAGvwI,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACpD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAI,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EACpD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,CAC5D,EAEgBi1T,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOpuD,IAAM,MAAM,EAInB,eAAeg3G,IAAW/2U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,EAAgB,UAAA+0B,CAAS,GAAM,CACjF,KAAM,CAAE,YAAAY,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAM+oB,EAAc/qP,EAAK,aAAe,GAClCgrP,EAAahrP,EAAK,YAAc,GAChCirP,EAAW,KAAK,IAAIF,EAAaC,CAAU,EAC3CE,EAAe9pB,GAAA,YAAAA,EAAW,cAChCphO,EAAK,MAAQ,KAAK,IAAIirP,EAAUC,GAAgB,CAAC,EACjD,KAAM,CAAE,SAAAvN,EAAU,KAAA/C,EAAM,MAAArzN,CAAK,EAAK,MAAMi2N,GAAYroU,EAAQ6qF,EAAM,oBAAoB,EAChFjH,EAAU,GACVqyP,EAAeprP,EAAK,MAAQ,EAAI,EAChCmrP,EAAWnrP,EAAK,MAAQ,IACxB,CAAE,WAAAqiO,EAAY,QAAAC,CAAO,EAAKj2B,EAC1B,CAAE,UAAAs1B,CAAS,EAAKD,GAAc1hO,CAAI,EAClCwgP,EAAK2L,GAAQ,IAAIxO,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM+5C,EAAOoxS,EAAU,IAAI,MAAM,EACjCnrV,EAAQ,OAAS+5C,GAAQ+xS,EACzB,MAAMqpB,EAAWhO,EAAS,OAAO,GAAG,EAChC39O,EAAK,MACP2rP,EAAS,KACP,MAAM,MAAM/S,GAAW54O,EAAK,KAAM,CAChC,OAAQirP,EACR,MAAOA,EACP,eAAgB,EACxB,CAAO,CAAC,MACR,EAEE,MAAMW,EAAWD,EAAS,KAAI,EAAG,QAAO,EAClCE,EAAYD,EAAS,MACrBE,EAAaF,EAAS,OACtBG,EAAQH,EAAS,EACjBI,EAAQJ,EAAS,EACjBQ,EAAW,KAAK,IAAIP,EAAWC,CAAU,EAAI,KAAK,MAAQ/yP,EAAU,EACpEuyP,EAAW9K,EAAG,OAAO,EAAG,EAAG4L,EAAU51W,CAAO,EAC5C+0W,EAAa,KAAK,IAAIa,EAAUxR,EAAK,KAAK,EAC1C4Q,EAAcY,EAAWxR,EAAK,OAASwQ,EACvC1C,EAAYlI,EAAG,UAAU,CAAC+K,EAAa,EAAG,CAACC,EAAc,EAAGD,EAAYC,EAAa,CACzF,GAAGh1W,EACH,KAAM,cACN,OAAQ,MACZ,CAAG,EACKi1W,EAAY9N,EAAS,OAAO,IAAM2N,EAAU,cAAc,EAC1DI,EAAa/N,EAAS,OAAO,IAAM+K,CAAS,EAClD,OAAAiD,EAAS,KACP,YACA,aAAa,CAACE,EAAY,EAAIE,CAAK,IAAIZ,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,EAAQ,CAACpR,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,CAAK,GAChL,EACEL,EAAS,KAAK,QAAS,UAAUhqB,EAAU,IAAI,QAAQ,GAAKU,CAAU,GAAG,EACzE96M,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAIuQ,EAAW,CAACK,EAAc,EAAIA,EAAc,EAAI5Q,EAAK,MAAM,GAC7H,EACE6Q,EAAU,KACR,YACA,eAAkBN,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAI,CAACxQ,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzG,EACE/M,GAAiBr+O,EAAM0rP,CAAU,EACjC1rP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,uBAAwBy1E,EAAMssF,CAAK,EAChCq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAEhD,EACOqxJ,CACT,CACAr6C,EAAO4oD,IAAY,YAAY,EAI/B,eAAeG,IAAYl3U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,EAAgB,UAAA+0B,CAAS,GAAM,CAClF,KAAM,CAAE,YAAAY,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAM+oB,EAAc/qP,EAAK,aAAe,GAClCgrP,EAAahrP,EAAK,YAAc,GAChCirP,EAAW,KAAK,IAAIF,EAAaC,CAAU,EAC3CE,EAAe9pB,GAAA,YAAAA,EAAW,cAChCphO,EAAK,MAAQ,KAAK,IAAIirP,EAAUC,GAAgB,CAAC,EACjD,KAAM,CAAE,SAAAvN,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAAt2N,CAAK,EAAK,MAAMi2N,GACnDroU,EACA6qF,EACA,oBACJ,EACQmrP,EAAWnrP,EAAK,MAAQ,IACxBtxE,EAASu8T,EAAWpN,EAAc,EAClCtoP,EAAQ01P,EAAWpN,EAAc,EACjC,CAAE,WAAAxb,EAAY,QAAAC,CAAO,EAAKj2B,EAC1B,CAAE,UAAAs1B,CAAS,EAAKD,GAAc1hO,CAAI,EAClCj2H,EAAI,CAACwrH,EAAQ,EACbvrH,EAAI,CAAC0kD,EAAS,EACd08T,EAAeprP,EAAK,MAAQ,EAAI,EAChCwgP,EAAK8L,GAAQ,IAAI3O,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM+5C,EAAOoxS,EAAU,IAAI,MAAM,EACjCnrV,EAAQ,OAAS+5C,GAAQ+xS,EACzB,MAAMgpB,EAAW9K,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGurH,EAAO7mE,EAAQ,CAAC,EAAGl4C,CAAO,EAC1E+0W,EAAa,KAAK,IAAIh2P,EAAOqlP,EAAK,KAAK,EACvC4Q,EAAc98T,EAASksT,EAAK,OAASwQ,EACrC1C,EAAYlI,EAAG,UAAU,CAAC+K,EAAa,EAAG,CAACC,EAAc,EAAGD,EAAYC,EAAa,CACzF,GAAGh1W,EACH,KAAM,cACN,OAAQ,MACZ,CAAG,EACKi1W,EAAY9N,EAAS,OAAO,IAAM2N,EAAU,cAAc,EAAE,KAAK,QAAS,aAAa,EACvFI,EAAa/N,EAAS,OAAO,IAAM+K,CAAS,EAClD,GAAI1oP,EAAK,KAAM,CACb,MAAM2rP,EAAWhO,EAAS,OAAO,GAAG,EACpCgO,EAAS,KACP,MAAM,MAAM/S,GAAW54O,EAAK,KAAM,CAChC,OAAQirP,EACR,MAAOA,EACP,eAAgB,EACxB,CAAO,CAAC,MACR,EACI,MAAMW,EAAWD,EAAS,KAAI,EAAG,QAAO,EAClCE,EAAYD,EAAS,MACrBE,EAAaF,EAAS,OACtBG,EAAQH,EAAS,EACjBI,EAAQJ,EAAS,EACvBD,EAAS,KACP,YACA,aAAa,CAACE,EAAY,EAAIE,CAAK,IAAIZ,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,EAAQ,CAACpR,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,CAAK,GAClL,EACIL,EAAS,KAAK,QAAS,UAAUhqB,EAAU,IAAI,QAAQ,GAAKU,CAAU,GAAG,CAC3E,CACA,OAAA96M,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAIuQ,EAAW,CAACK,EAAc,EAAIA,EAAc,EAAI5Q,EAAK,MAAM,GAC7H,EACE6Q,EAAU,KACR,YACA,eAAkBN,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAI,CAACxQ,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzG,EACE/M,GAAiBr+O,EAAM0rP,CAAU,EACjC1rP,EAAK,UAAY,SAASssF,EAAO,CAE/B,GADA/hK,GAAI,KAAK,uBAAwBy1E,EAAMssF,CAAK,EACxC,CAACtsF,EAAK,MACR,OAAO2jP,GAAkB,KAAK3jP,EAAMssF,CAAK,EAE3C,MAAMwI,EAAK90F,EAAK,GAAK,EACf0jG,EAAK1jG,EAAK,GAAK,EACfisP,EAAajsP,EAAK,QAAU,EAClC,IAAIqlO,EAAS,GACb,OAAI8lB,EACF9lB,EAAS,CACP,CAAE,EAAGvwI,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,CACrF,EAEM/lB,EAAS,CACP,CAAE,EAAGvwI,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACpD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAI,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EACpD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,CAC5D,EAEgBi1T,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAO+oD,IAAa,aAAa,EAIjC,eAAeE,IAAWp3U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,EAAgB,UAAA+0B,CAAS,GAAM,CACjF,KAAM,CAAE,YAAAY,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAM+oB,EAAc/qP,EAAK,aAAe,GAClCgrP,EAAahrP,EAAK,YAAc,GAChCirP,EAAW,KAAK,IAAIF,EAAaC,CAAU,EAC3CE,EAAe9pB,GAAA,YAAAA,EAAW,cAChCphO,EAAK,MAAQ,KAAK,IAAIirP,EAAUC,GAAgB,CAAC,EACjD,KAAM,CAAE,SAAAvN,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAAt2N,CAAK,EAAK,MAAMi2N,GACnDroU,EACA6qF,EACA,oBACJ,EACQmrP,EAAWnrP,EAAK,MAAQ,IACxBtxE,EAASu8T,EAAWpN,EAAc,EAClCtoP,EAAQ01P,EAAWpN,EAAc,EACjC,CAAE,WAAAxb,EAAY,QAAAC,CAAO,EAAKj2B,EAC1B,CAAE,UAAAs1B,CAAS,EAAKD,GAAc1hO,CAAI,EAClCj2H,EAAI,CAACwrH,EAAQ,EACbvrH,EAAI,CAAC0kD,EAAS,EACd08T,EAAeprP,EAAK,MAAQ,EAAI,EAChCwgP,EAAKgM,GAAQ,IAAI7O,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM+5C,EAAOoxS,EAAU,IAAI,MAAM,EACjCnrV,EAAQ,OAAS+5C,GAAQ+xS,EACzB,MAAMgpB,EAAW9K,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGurH,EAAO7mE,EAAQ,EAAG,EAAGl4C,CAAO,EAC5E+0W,EAAa,KAAK,IAAIh2P,EAAOqlP,EAAK,KAAK,EACvC4Q,EAAc98T,EAASksT,EAAK,OAASwQ,EACrC1C,EAAYlI,EAAG,UAAU,CAAC+K,EAAa,EAAG,CAACC,EAAc,EAAGD,EAAYC,EAAa,CACzF,GAAGh1W,EACH,KAAM,cACN,OAAQ,MACZ,CAAG,EACKi1W,EAAY9N,EAAS,OAAO,IAAM2N,EAAU,cAAc,EAC1DI,EAAa/N,EAAS,OAAO,IAAM+K,CAAS,EAClD,GAAI1oP,EAAK,KAAM,CACb,MAAM2rP,EAAWhO,EAAS,OAAO,GAAG,EACpCgO,EAAS,KACP,MAAM,MAAM/S,GAAW54O,EAAK,KAAM,CAChC,OAAQirP,EACR,MAAOA,EACP,eAAgB,EACxB,CAAO,CAAC,MACR,EACI,MAAMW,EAAWD,EAAS,KAAI,EAAG,QAAO,EAClCE,EAAYD,EAAS,MACrBE,EAAaF,EAAS,OACtBG,EAAQH,EAAS,EACjBI,EAAQJ,EAAS,EACvBD,EAAS,KACP,YACA,aAAa,CAACE,EAAY,EAAIE,CAAK,IAAIZ,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,EAAQ,CAACpR,EAAK,OAAS,EAAIwQ,EAAe,EAAIU,EAAa,EAAIE,CAAK,GAClL,EACIL,EAAS,KAAK,QAAS,UAAUhqB,EAAU,IAAI,QAAQ,GAAKU,CAAU,GAAG,CAC3E,CACA,OAAA96M,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAIuQ,EAAW,CAACK,EAAc,EAAIA,EAAc,EAAI5Q,EAAK,MAAM,GAC7H,EACE6Q,EAAU,KACR,YACA,eAAkBN,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAI,CAACxQ,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzG,EACE/M,GAAiBr+O,EAAM0rP,CAAU,EACjC1rP,EAAK,UAAY,SAASssF,EAAO,CAE/B,GADA/hK,GAAI,KAAK,uBAAwBy1E,EAAMssF,CAAK,EACxC,CAACtsF,EAAK,MACR,OAAO2jP,GAAkB,KAAK3jP,EAAMssF,CAAK,EAE3C,MAAMwI,EAAK90F,EAAK,GAAK,EACf0jG,EAAK1jG,EAAK,GAAK,EACfisP,EAAajsP,EAAK,QAAU,EAClC,IAAIqlO,EAAS,GACb,OAAI8lB,EACF9lB,EAAS,CACP,CAAE,EAAGvwI,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EACxE,CAAE,EAAGt2J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,CACrF,EAEM/lB,EAAS,CACP,CAAE,EAAGvwI,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,CAAC,EAC3C,CAAE,EAAGn3J,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACpD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAK8lJ,EAAK,MAAQ,EAAI,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EACpD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIv9T,CAAM,EACzD,CAAE,EAAGomK,EAAKv/F,EAAQ,EAAG,EAAGmuG,EAAKuoJ,EAAa,EAAIv9T,CAAM,CAC5D,EAEgBi1T,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOipD,IAAY,YAAY,EAI/B,eAAeE,IAAYt3U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,UAAAohO,CAAS,GAAM,CAClE,MAAMziI,EAAM,IAAI,MAChBA,EAAI,KAAM3+F,GAAA,YAAAA,EAAM,MAAO,GACvB,MAAM2+F,EAAI,OAAM,EAChB,MAAM+tJ,EAAoB,OAAO/tJ,EAAI,aAAa,SAAQ,EAAG,QAAQ,KAAM,EAAE,CAAC,EACxEguJ,EAAqB,OAAOhuJ,EAAI,cAAc,SAAQ,EAAG,QAAQ,KAAM,EAAE,CAAC,EAChF3+F,EAAK,iBAAmB0sP,EAAoBC,EAC5C,KAAM,CAAE,YAAA3qB,CAAW,EAAKF,GAAc9hO,CAAI,EAC1CA,EAAK,WAAagiO,EAClB,MAAMkpB,EAAe9pB,GAAA,YAAAA,EAAW,cAChCphO,EAAK,aAAeohO,GAAA,YAAAA,EAAW,cAC/B,MAAMwrB,EAAgB,KAAK,IACzB5sP,EAAK,MAAQkrP,GAAgB,EAAI,GACjClrP,GAAA,YAAAA,EAAM,aAAc0sP,CACxB,EACQG,EAAa7sP,EAAK,aAAe,MAAOA,GAAA,MAAAA,EAAM,YAAcA,EAAK,YAAcA,EAAK,iBAAmC4sP,EACvHE,EAAc9sP,EAAK,aAAe,KAAO6sP,EAAa7sP,EAAK,kBAAmBA,GAAA,YAAAA,EAAM,cAAe2sP,EACzG3sP,EAAK,MAAQ,KAAK,IAAI6sP,EAAY3B,GAAgB,CAAC,EACnD,KAAM,CAAE,SAAAvN,EAAU,KAAA/C,EAAM,MAAArzN,CAAK,EAAK,MAAMi2N,GAAYroU,EAAQ6qF,EAAM,qBAAqB,EACjFmrP,EAAWnrP,EAAK,MAAQ,IACxBj2H,EAAI,CAAC8iX,EAAa,EAClB7iX,EAAI,CAAC8iX,EAAc,EACnB1B,EAAeprP,EAAK,MAAQ,EAAI,EAChCwgP,EAAKuM,GAAQ,IAAIpP,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMw2W,EAAYxM,EAAG,UAAUz2W,EAAGC,EAAG6iX,EAAYC,EAAat2W,CAAO,EAC/D+0W,EAAa,KAAK,IAAIsB,EAAYjS,EAAK,KAAK,EAC5C4Q,EAAcsB,EAAclS,EAAK,OAASwQ,EAC1C1C,EAAYlI,EAAG,UAAU,CAAC+K,EAAa,EAAG,CAACC,EAAc,EAAGD,EAAYC,EAAa,CACzF,GAAGh1W,EACH,KAAM,OACN,OAAQ,MACZ,CAAG,EACKi1W,EAAY9N,EAAS,OAAO,IAAMqP,EAAW,cAAc,EAC3DtB,EAAa/N,EAAS,OAAO,IAAM+K,CAAS,EAClD,GAAI1oP,EAAK,IAAK,CACZ,MAAMs2J,EAAQqnF,EAAS,OAAO,OAAO,EACrCrnF,EAAM,KAAK,OAAQt2J,EAAK,GAAG,EAC3Bs2J,EAAM,KAAK,QAASu2F,CAAU,EAC9Bv2F,EAAM,KAAK,SAAUw2F,CAAW,EAChCx2F,EAAM,KAAK,sBAAuB,MAAM,EACxCA,EAAM,KACJ,YACA,aAAa,CAACu2F,EAAa,CAAC,IAAI1B,EAAWK,EAAc,EAAIsB,EAAc,CAACtB,EAAc,CAAC,GACjG,CACE,CACA,OAAAjkO,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAIuQ,EAAW,CAAC2B,EAAc,EAAIlS,EAAK,OAAS,EAAIwQ,EAAe,EAAI0B,EAAc,EAAIlS,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzL,EACEK,EAAU,KACR,YACA,eAAkBN,EAAWvQ,EAAK,OAAS,EAAIwQ,EAAe,EAAI,CAACxQ,EAAK,OAAS,EAAIwQ,EAAe,CAAC,GACzG,EACE/M,GAAiBr+O,EAAM0rP,CAAU,EACjC1rP,EAAK,UAAY,SAASssF,EAAO,CAE/B,GADA/hK,GAAI,KAAK,uBAAwBy1E,EAAMssF,CAAK,EACxC,CAACtsF,EAAK,MACR,OAAO2jP,GAAkB,KAAK3jP,EAAMssF,CAAK,EAE3C,MAAMwI,EAAK90F,EAAK,GAAK,EACf0jG,EAAK1jG,EAAK,GAAK,EACfisP,EAAajsP,EAAK,QAAU,EAClC,IAAIqlO,EAAS,GACb,OAAI8lB,EACF9lB,EAAS,CACP,CAAE,EAAGvwI,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,EAC7E,CAAE,EAAGt2J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIrR,EAAK,OAASwQ,CAAY,CACrF,EAEM/lB,EAAS,CACP,CAAE,EAAGvwI,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,EAAIa,CAAW,EAC9D,CAAE,EAAGh4J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIa,CAAW,EAC9D,CAAE,EAAGh4J,EAAK8lJ,EAAK,MAAQ,EAAI,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EACpD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,CAAC,EAChD,CAAE,EAAGn3J,EAAK8lJ,EAAK,MAAQ,EAAG,EAAGl3I,EAAKuoJ,EAAa,EAAIa,CAAW,EAC9D,CAAE,EAAGh4J,EAAK+3J,EAAa,EAAG,EAAGnpJ,EAAKuoJ,EAAa,EAAIa,CAAW,CACtE,EAEgBnJ,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOmpD,IAAa,aAAa,EAIjC,eAAeQ,IAAc93U,EAAQ6qF,EAAM,CACzC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEqlO,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGx1V,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGA,EAAI,EAAIT,EAAI,EAAG,EAAG,CAACA,CAAC,EACzB,CAAE,EAAG,GAAKA,EAAI,EAAG,EAAG,CAACA,CAAC,CAC1B,EACE,IAAI01W,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK0M,GAAQ,IAAIvP,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAAC7wW,EAAI,CAAC,KAAKT,EAAI,CAAC,GAAG,EACzGw0W,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAErD,OAAIpD,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAO2pD,IAAe,eAAe,EAIrC,eAAeE,GAASh4U,EAAQ6qF,EAAMxpH,EAAS,CAC7C,KAAM,CAAE,YAAAwrV,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEmgP,EAAa,KAAK,IAAIvF,EAAK,MAAQpkW,EAAQ,cAAgB,GAAGwpH,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC9E87K,EAAc,KAAK,IAAI8+D,EAAK,OAASpkW,EAAQ,cAAgB,GAAGwpH,GAAA,YAAAA,EAAM,SAAU,CAAC,EACjFj2H,EAAI,CAACo2W,EAAa,EAClBn2W,EAAI,CAAC8xS,EAAc,EACzB,IAAIykE,EACA,CAAE,GAAA0B,EAAI,GAAAC,CAAE,EAAKliP,EACjB,KAAM,CAAE,UAAA4jP,CAAS,EAAK5jP,EAKtB,GAJIxpH,GAAA,MAAAA,EAAS,IAAMA,EAAQ,KACzByrW,EAAKzrW,EAAQ,GACb0rW,EAAK1rW,EAAQ,IAEXwpH,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK4M,GAAQ,IAAIzP,CAAQ,EACzBlM,EAAWrP,GAAkBpiO,EAAM,EAAE,EACrC0gP,EAAYuB,GAAMC,EAAK1B,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGm2W,EAAYrkE,EAAammE,GAAM,CAAC,EAAGxQ,CAAQ,EAAI+O,EAAG,UAAUz2W,EAAGC,EAAGm2W,EAAYrkE,EAAa21D,CAAQ,EACrK8O,EAAQ5C,EAAS,OAAO,IAAM+C,EAAW,cAAc,EACvDH,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1W,GAAoB+Z,CAAS,CAAC,CAC3F,MACErD,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAC9C4C,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASte,CAAU,EAAE,KAAK,KAAM4H,GAAoBoY,CAAE,CAAC,EAAE,KAAK,KAAMpY,GAAoBqY,CAAE,CAAC,EAAE,KAAK,IAAKn4W,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASm2W,CAAU,EAAE,KAAK,SAAUrkE,CAAW,EAE/N,OAAAuiE,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,OAAOq3J,GAAkB,KAAKxa,EAAQ78I,CAAK,CAC7C,EACAtsF,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO6pD,GAAU,UAAU,EAG3B,eAAeE,IAAUl4U,EAAQ6qF,EAAM,CACrC,KAAM,CAAE,SAAA29O,EAAU,KAAA/C,EAAM,MAAArzN,CAAK,EAAK,MAAMi2N,GAAYroU,EAAQ6qF,EAAM,OAAO,EACnEugP,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAGpD,OAAA4C,EAAM,KAAK,QAFQ,EAEW,EAAE,KAAK,SADjB,EACsC,EAC1D5C,EAAS,KAAK,QAAS,iBAAiB,EACxCp2N,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,IAAMA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,IAAMA,EAAK,GAAKA,EAAK,KAAO,GAAG,GACpH,EACEyD,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO+pD,IAAW,WAAW,EAI7B,eAAeC,IAAUn4U,EAAQ6qF,EAAM,CACrC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC/D5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACjEqlO,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGx1V,EAAI,EAAIT,EAAI,EAAG,EAAG,CAAC,EACxB,CAAE,EAAGS,EAAG,EAAG,CAACT,CAAC,EACb,CAAE,EAAG,EAAE,EAAIA,GAAK,EAAG,EAAG,CAACA,CAAC,CAC5B,EACE,IAAI01W,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK+M,GAAQ,IAAI5P,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAAC7wW,EAAI,CAAC,KAAKT,EAAI,CAAC,GAAG,EACzGw0W,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAErD,OAAIpD,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOgqD,IAAW,WAAW,EAI7B,eAAeE,IAAWr4U,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC/D5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACjEqlO,EAAS,CACb,CAAE,EAAG,GAAKj2V,EAAI,EAAG,EAAG,CAAC,EACrB,CAAE,EAAGS,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGA,EAAI,EAAIT,EAAI,EAAG,EAAG,CAACA,CAAC,EACzB,CAAE,EAAG,EAAG,EAAG,CAACA,CAAC,CACjB,EACE,IAAI01W,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKiN,GAAQ,IAAI9P,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAAC7wW,EAAI,CAAC,KAAKT,EAAI,CAAC,GAAG,EACzGw0W,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAErD,OAAIpD,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOkqD,IAAY,YAAY,EAI/B,SAASE,IAAcv4U,EAAQ6qF,EAAM,CACnC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,MAAQ,GACbA,EAAK,WAAagiO,EAClB,MAAM2b,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EAClG,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBzK,EAAQ,KAAK,IAAI,IAAIyK,GAAA,YAAAA,EAAM,QAAS,CAAC,EACrCtxE,EAAS,KAAK,IAAI,IAAIsxE,GAAA,YAAAA,EAAM,SAAU,CAAC,EACvComF,EAAM,EACNi/I,EAAS,CACb,CAAE,EAAG9vO,EAAO,EAAG,CAAC,EAChB,CAAE,EAAG,EAAG,EAAG7mE,EAAS03J,EAAM,CAAC,EAC3B,CAAE,EAAG7wF,EAAQ,EAAI6wF,EAAK,EAAG13J,EAAS03J,EAAM,CAAC,EACzC,CAAE,EAAG,EAAG,EAAG,EAAI13J,CAAM,EACrB,CAAE,EAAG6mE,EAAO,EAAG7mE,EAAS03J,EAAM,CAAC,EAC/B,CAAE,EAAG,EAAIA,EAAK,EAAG13J,EAAS03J,EAAM,CAAC,CACrC,EACQo6J,EAAKmN,GAAQ,IAAIhQ,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM2vW,EAAW5H,GAAqBlZ,CAAM,EACtC+gB,EAAW5F,EAAG,KAAK2F,EAAU3vW,CAAO,EACpCo3W,EAAiBjQ,EAAS,OAAO,IAAMyI,EAAU,cAAc,EACrE,OAAIxC,GAAa5jP,EAAK,OAAS,aAC7B4tP,EAAe,UAAU,MAAM,EAAE,KAAK,QAAShK,CAAS,EAEtD3hB,GAAcjiO,EAAK,OAAS,aAC9B4tP,EAAe,UAAU,MAAM,EAAE,KAAK,QAAS3rB,CAAU,EAE3D2rB,EAAe,KAAK,YAAa,cAAcr4P,EAAQ,CAAC,IAAI,CAAC7mE,CAAM,GAAG,EACtE2vT,GAAiBr+O,EAAM4tP,CAAc,EACrC5tP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,0BAA2By1E,EAAMssF,CAAK,EACnCq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOoqD,IAAe,eAAe,EAIrC,IAAIG,IAAuCvqD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,EAAI4L,IACvE,CACL,IAAI/jX,CAAC,IAAIC,EAAIk4W,CAAE,GACf,IAAID,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,IAAI0sP,CAAE,IAAIC,CAAE,UAAU,CAAC3sP,CAAK,KAC5B,MAAM7mE,CAAM,GACZ,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,MAAM,CAAC7mE,CAAM,GACb,IAAI3kD,CAAC,IAAIC,EAAIk4W,EAAK4L,CAAW,GAC7B,IAAI7L,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,IAC/B,EAAI,KAAK,GAAG,EACT,qBAAqB,EACpBw4P,IAA4CzqD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,EAAI4L,IAC5E,CACL,IAAI/jX,CAAC,IAAIC,EAAIk4W,CAAE,GACf,IAAIn4W,EAAIwrH,CAAK,IAAIvrH,EAAIk4W,CAAE,GACvB,IAAID,CAAE,IAAIC,CAAE,UAAU,CAAC3sP,CAAK,KAC5B,MAAM7mE,CAAM,GACZ,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,KAC3B,MAAM,CAAC7mE,CAAM,GACb,IAAI3kD,CAAC,IAAIC,EAAIk4W,EAAK4L,CAAW,GAC7B,IAAI7L,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,IAC/B,EAAI,KAAK,GAAG,EACT,0BAA0B,EACzBy4P,IAA4C1qD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACxE,CAAC,IAAIn4W,EAAIwrH,EAAQ,CAAC,IAAI,CAAC7mE,EAAS,CAAC,GAAI,IAAIuzT,CAAE,IAAIC,CAAE,UAAU3sP,CAAK,IAAI,EAAE,KAAK,GAAG,EACpF,0BAA0B,EAC7B,eAAe04P,IAAc94U,EAAQ6qF,EAAM,CACzC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAIA,EAAK,OAAS,CAAC,EAC9DiiP,EAAKpyW,EAAI,EACTqyW,EAAKD,GAAM,IAAMpyW,EAAI,IACrBT,EAAI,KAAK,IAAIwrW,EAAK,OAASsH,GAAMliP,EAAK,SAAW,GAAIA,EAAK,QAAU,CAAC,EACrE8tP,EAAc1+W,EAAI,GACxB,IAAIk5W,EACJ,KAAM,CAAE,UAAA1E,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK0N,GAAQ,IAAIvQ,CAAQ,EACzB6K,EAAgBuF,IAA0B,EAAG,EAAGl+W,EAAGT,EAAG6yW,EAAIC,EAAI4L,CAAW,EACzErF,EAAgBuF,IAA0B,EAAG9L,EAAIryW,EAAGT,EAAG6yW,EAAIC,CAAE,EAC7D1rW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0oP,EAAYlI,EAAG,KAAKgI,EAAehyW,CAAO,EAC1CmyW,EAAYnI,EAAG,KAAKiI,EAAejyW,CAAO,EAC5BmnW,EAAS,OAAO,IAAMgL,EAAW,cAAc,EACvD,KAAK,QAAS,MAAM,EAChCL,EAAY3K,EAAS,OAAO,IAAM+K,EAAW,cAAc,EAC3DJ,EAAU,KAAK,QAAS,uBAAuB,EAC3C1E,GACF0E,EAAU,KAAK,QAAS1E,CAAS,CAErC,KAAO,CACL,MAAMoB,EAAW6I,IAAqB,EAAG,EAAGh+W,EAAGT,EAAG6yW,EAAIC,EAAI4L,CAAW,EACrExF,EAAY3K,EAAS,OAAO,OAAQ,cAAc,EAAE,KAAK,IAAKqH,CAAQ,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASnb,GAAoB+Z,CAAS,CAAC,EAAE,KAAK,QAAS3hB,CAAU,CACvL,CACA,OAAAqmB,EAAU,KAAK,iBAAkBpG,CAAE,EACnCoG,EAAU,KAAK,YAAa,aAAa,CAACz4W,EAAI,CAAC,KAAK,EAAET,EAAI,EAAI8yW,EAAG,GAAG,EACpE7D,GAAiBr+O,EAAMsoP,CAAS,EAChC/gO,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,IAAMA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,GAAKsH,GAAMtH,EAAK,GAAKA,EAAK,KAAO,GAAG,GACzH,EACE56O,EAAK,UAAY,SAASssF,EAAO,CAC/B,MAAMpW,EAAMytK,GAAkB,KAAK3jP,EAAMssF,CAAK,EACxCviN,EAAImsM,EAAI,GAAKl2E,EAAK,GAAK,GAC7B,GAAIiiP,GAAM,IAAM,KAAK,IAAIl4W,CAAC,GAAKi2H,EAAK,OAAS,GAAK,GAAK,KAAK,IAAIj2H,CAAC,IAAMi2H,EAAK,OAAS,GAAK,GAAK,KAAK,IAAIk2E,EAAI,GAAKl2E,EAAK,GAAK,EAAE,GAAKA,EAAK,QAAU,GAAK,EAAIkiP,GAAK,CAC7J,IAAIl4W,EAAIk4W,EAAKA,GAAM,EAAIn4W,EAAIA,GAAKk4W,EAAKA,IACjCj4W,EAAI,IACNA,EAAI,KAAK,KAAKA,CAAC,GAEjBA,EAAIk4W,EAAKl4W,EACLsiN,EAAM,GAAKtsF,EAAK,GAAK,GAAK,IAC5Bh2H,EAAI,CAACA,GAEPksM,EAAI,GAAKlsM,CACX,CACA,OAAOksM,CACT,EACOynK,CACT,CACAr6C,EAAO2qD,IAAe,eAAe,EAIrC,eAAeE,IAAmBh5U,EAAQ6qF,EAAM,CAC9C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEouP,EAAgBh/W,EAAI,EACpBi/W,EAASj/W,EAAIg/W,EACb,CAAE,UAAAxK,CAAS,EAAK5jP,EAChBwgP,EAAK8N,GAAQ,IAAI3Q,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAG,CAACw+W,EAAS,CAAC,EACzC,CAAE,EAAG,CAACx+W,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAGw+W,EAAS,CAAC,EACxC,GAAG5P,GACD,CAAC5uW,EAAI,EAAIA,EAAI,EAAI,GACjBw+W,EAAS,EACTx+W,EAAI,EAAIA,EAAI,EAAI,GAChBw+W,EAAS,EACTD,EACA,EACN,EACI,CAAE,EAAGv+W,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAG,CAACw+W,EAAS,CAAC,EACxC,CAAE,EAAG,CAACx+W,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAG,CAACw+W,EAAS,CAAC,EACzC,CAAE,EAAG,CAACx+W,EAAI,EAAG,EAAG,CAACw+W,EAAS,CAAC,EAC3B,CAAE,EAAG,CAACx+W,EAAI,EAAG,EAAGw+W,EAAS,EAAI,GAAG,EAChC,CAAE,EAAG,CAACx+W,EAAI,EAAG,EAAG,CAACw+W,EAAS,CAAC,CAC/B,EACQrF,EAAOxI,EAAG,QACdnb,EAAO,IAAK71V,GAAM,CAACA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAC5BgH,CACJ,EACQ+3W,EAAe5Q,EAAS,OAAO,IAAMqL,EAAM,cAAc,EAC/D,OAAAuF,EAAa,KAAK,QAAS,uBAAuB,EAC9C3K,GAAa5jP,EAAK,OAAS,aAC7BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAS3K,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAStsB,CAAU,EAEzDssB,EAAa,KAAK,YAAa,eAAe,CAACH,EAAgB,CAAC,GAAG,EACnE7mO,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,GAAKnwH,EAAI,EAAI,GAAM,GAAK+qW,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAKouP,EAAgB,GAAKxT,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC9K,EACEyD,GAAiBr+O,EAAMuuP,CAAY,EACnCvuP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAO6qD,IAAoB,oBAAoB,EAI/C,eAAeK,IAAUr5U,EAAQ6qF,EAAM,CACrC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrE6oP,EAAa,EACb9+W,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACT,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAKiO,GAAQ,IAAI9Q,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0uP,EAAkB,CACtB,CAAE,EAAG3kX,EAAI8+W,EAAY,EAAG7+W,EAAI6+W,CAAU,EACtC,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAG7+W,EAAIoF,EAAIy5W,CAAU,EAC1C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAIoF,EAAIy5W,CAAU,EAC9C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAIoF,CAAC,EACjC,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,CAAC,EACpB,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,EAAIy5W,CAAU,EACjC,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAIoF,EAAIy5W,CAAU,EAC9C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAI6+W,CAAU,EAC1C,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAG7+W,EAAI6+W,CAAU,EACtC,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAA7+W,CAAC,EACtB,CAAE,EAAAD,EAAG,EAAAC,CAAC,EACN,CAAE,EAAAD,EAAG,EAAGC,EAAI6+W,CAAU,CAC1B,EACQ8F,EAAkB,CACtB,CAAE,EAAA5kX,EAAG,EAAGC,EAAI6+W,CAAU,EACtB,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAI6+W,CAAU,EAC1C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAIoF,CAAC,EACjC,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,CAAC,EACpB,CAAE,EAAGrF,EAAI8F,EAAG,EAAA7F,CAAC,EACb,CAAE,EAAAD,EAAG,EAAAC,CAAC,CACV,EACMg2H,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMo4W,EAAYrQ,GAAqBmQ,CAAe,EAChDhG,EAAYlI,EAAG,KAAKoO,EAAWp4W,CAAO,EACtC22R,EAAYoxE,GAAqBoQ,CAAe,EAChDE,EAAYrO,EAAG,KAAKrzE,EAAW,CAAE,GAAG32R,EAAS,KAAM,OAAQ,EAC3Ds4W,EAAanR,EAAS,OAAO,IAAMkR,EAAW,cAAc,EAClE,OAAAC,EAAW,OAAO,IAAMpG,EAAW,cAAc,EACjDoG,EAAW,KAAK,QAAS,uBAAuB,EAC5ClL,GAAa5jP,EAAK,OAAS,aAC7B8uP,EAAW,UAAU,MAAM,EAAE,KAAK,QAASlL,CAAS,EAElD3hB,GAAcjiO,EAAK,OAAS,aAC9B8uP,EAAW,UAAU,MAAM,EAAE,KAAK,QAAS7sB,CAAU,EAEvD16M,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,GAAKiO,GAAcjO,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,GAAKiO,GAAcjO,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC9I,EACEyD,GAAiBr+O,EAAM8uP,CAAU,EACjC9uP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAM0uP,EAAiBpiK,CAAK,CAEpE,EACOqxJ,CACT,CACAr6C,EAAOkrD,IAAW,WAAW,EAI7B,eAAeO,IAAwB55U,EAAQ6qF,EAAM,CACnD,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEouP,EAAgBh/W,EAAI,EACpBi/W,EAASj/W,EAAIg/W,EACbrkX,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACqkX,EAAS,EACdxF,EAAa,EACb,CAAE,UAAAjF,CAAS,EAAK5jP,EAChBgvP,EAAavQ,GACjB10W,EAAI8+W,EACJ7+W,EAAIqkX,EAASxF,EACb9+W,EAAI8F,EAAIg5W,EACR7+W,EAAIqkX,EAASxF,EACbuF,EACA,EACJ,EACQa,EAAgBD,GAAA,YAAAA,EAAaA,EAAW,OAAS,GACjDN,EAAkB,CACtB,CAAE,EAAG3kX,EAAI8+W,EAAY,EAAG7+W,EAAI6+W,CAAU,EACtC,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAG7+W,EAAIqkX,EAASxF,CAAU,EAC/C,GAAGmG,EACH,CAAE,EAAGjlX,EAAI8F,EAAIg5W,EAAY,EAAGoG,EAAc,EAAIpG,CAAU,EACxD,CAAE,EAAG9+W,EAAI8F,EAAG,EAAGo/W,EAAc,EAAIpG,CAAU,EAC3C,CAAE,EAAG9+W,EAAI8F,EAAG,EAAGo/W,EAAc,EAAI,EAAIpG,CAAU,EAC/C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAGoG,EAAc,EAAI,EAAIpG,CAAU,EAC5D,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAI6+W,CAAU,EAC1C,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAG7+W,EAAI6+W,CAAU,EACtC,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAA7+W,CAAC,EACtB,CAAE,EAAAD,EAAG,EAAAC,CAAC,EACN,CAAE,EAAAD,EAAG,EAAGC,EAAI6+W,CAAU,CAC1B,EACQ8F,EAAkB,CACtB,CAAE,EAAA5kX,EAAG,EAAGC,EAAI6+W,CAAU,EACtB,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAG7+W,EAAI6+W,CAAU,EAC1C,CAAE,EAAG9+W,EAAI8F,EAAIg5W,EAAY,EAAGoG,EAAc,EAAIpG,CAAU,EACxD,CAAE,EAAG9+W,EAAI8F,EAAG,EAAGo/W,EAAc,EAAIpG,CAAU,EAC3C,CAAE,EAAG9+W,EAAI8F,EAAG,EAAA7F,CAAC,EACb,CAAE,EAAAD,EAAG,EAAAC,CAAC,CACV,EACQw2W,EAAK0O,GAAQ,IAAIvR,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMo4W,EAAYrQ,GAAqBmQ,CAAe,EAChDhG,EAAYlI,EAAG,KAAKoO,EAAWp4W,CAAO,EACtC22R,EAAYoxE,GAAqBoQ,CAAe,EAChDE,EAAYrO,EAAG,KAAKrzE,EAAW32R,CAAO,EACtCwwU,EAAQ22B,EAAS,OAAO,IAAM+K,EAAW,cAAc,EAC7D,OAAA1hC,EAAM,OAAO,IAAM6nC,CAAS,EAC5B7nC,EAAM,KAAK,QAAS,uBAAuB,EACvC48B,GAAa5jP,EAAK,OAAS,aAC7BgnN,EAAM,UAAU,MAAM,EAAE,KAAK,QAAS48B,CAAS,EAE7C3hB,GAAcjiO,EAAK,OAAS,aAC9BgnN,EAAM,UAAU,MAAM,EAAE,KAAK,QAASib,CAAU,EAElDjb,EAAM,KAAK,YAAa,eAAe,CAAConC,EAAgB,CAAC,GAAG,EAC5D7mO,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,GAAKiO,GAAcjO,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,GAAKiO,EAAauF,EAAgB,GAAKxT,EAAK,GAAKA,EAAK,KAAO,GAAG,GAClK,EACEyD,GAAiBr+O,EAAMgnN,CAAK,EAC5BhnN,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAM0uP,EAAiBpiK,CAAK,CAEpE,EACOqxJ,CACT,CACAr6C,EAAOyrD,IAAyB,yBAAyB,EAIzD,eAAeI,IAAKh6U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,CAAc,GAAM,OAChE,KAAM,CAAE,YAAA21B,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EACIhiO,EAAK,iBAAiBn0F,EAAAghS,GAAS,EAAG,YAAZ,YAAAhhS,EAAuB,cAAe,KAEhFm0F,EAAK,YAAc,IAErB,KAAM,CAAE,SAAA29O,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFmgP,EAAa,KAAK,IAAIvF,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC5E87K,EAAc,KAAK,IAAI8+D,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EAC/Ej2H,EAAI,CAACo2W,EAAa,EAClBn2W,EAAI,CAAC8xS,EAAc,EACnB,CAAE,UAAA8nE,CAAS,EAAK5jP,EAChBwgP,EAAK4O,GAAQ,IAAIzR,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,CACtC,KAAMqsM,EAAe,aACrB,OAAQA,EAAe,eAC3B,CAAG,EACGrsM,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM64W,EAAgB7O,EAAG,UAAUz2W,EAAGC,EAAGm2W,EAAYrkE,EAAatlS,CAAO,EACnE+pW,EAAQ5C,EAAS,OAAO,IAAM0R,EAAe,cAAc,EACjE,OAAA9O,EAAM,KAAK,QAAS,uBAAuB,EACvCqD,GAAa5jP,EAAK,OAAS,aAC7BugP,EAAM,UAAU,MAAM,EAAE,KAAK,QAASqD,CAAS,EAE7C3hB,GAAcjiO,EAAK,OAAS,aAC9BugP,EAAM,UAAU,MAAM,EAAE,KAAK,QAASte,CAAU,EAElD16M,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,IAAMA,EAAK,GAAKA,EAAK,KAAO,GAAG,GAClH,EACEyD,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO6rD,IAAM,MAAM,EAInB,IAAIG,IAAyChsD,EAAO,CAACv5T,EAAGC,EAAGu2C,IAClD,CACL,IAAIx2C,EAAIw2C,EAAO,CAAC,IAAIv2C,CAAC,GACrB,IAAID,EAAIw2C,CAAI,IAAIv2C,EAAIu2C,EAAO,CAAC,GAC5B,IAAIx2C,EAAIw2C,EAAO,CAAC,IAAIv2C,EAAIu2C,CAAI,GAC5B,IAAIx2C,CAAC,IAAIC,EAAIu2C,EAAO,CAAC,GACrB,GACJ,EAAI,KAAK,GAAG,EACT,wBAAwB,EAC3B,eAAegvU,IAASp6U,EAAQ6qF,EAAM,CACpC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI+qW,EAAK,MAAQ56O,EAAK,QACtB5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvB/jH,EAAIpM,EAAIT,EACR4xV,EAAa,GACbqE,EAAS,CACb,CAAE,EAAGppV,EAAI,EAAG,EAAG,CAAC,EAChB,CAAE,EAAGA,EAAG,EAAG,CAACA,EAAI,CAAC,EACjB,CAAE,EAAGA,EAAI,EAAG,EAAG,CAACA,CAAC,EACjB,CAAE,EAAG,EAAG,EAAG,CAACA,EAAI,CAAC,CACrB,EACE,IAAI6oW,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKgP,GAAQ,IAAI7R,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWsK,IAAuB,EAAG,EAAGrzW,CAAC,EACzCykW,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAACzkW,EAAI,EAAI+kV,CAAU,KAAK/kV,EAAI,CAAC,GAAG,EACtH2nW,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU1hW,EAAGA,EAAGopV,CAAM,EACnDyf,EAAQ,KAAK,YAAa,aAAa,CAAC7oW,EAAI,EAAI+kV,CAAU,KAAK/kV,EAAI,CAAC,GAAG,EAEzE,OAAIgmV,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,MAAMmjK,EAAKtmB,EAAO,MACZumB,EAAU,CACd,CAAE,EAAGD,EAAK,EAAG,EAAG,CAAC,EACjB,CAAE,EAAGA,EAAI,EAAG,CAACA,EAAK,CAAC,EACnB,CAAE,EAAGA,EAAK,EAAG,EAAG,CAACA,CAAE,EACnB,CAAE,EAAG,EAAG,EAAG,CAACA,EAAK,CAAC,CACxB,EACUh5T,EAAMktT,GAAkB,QAAQxa,EAAQumB,EAASpjK,CAAK,EAC5D,MAAO,CAAE,EAAG71J,EAAI,EAAI,GAAK,EAAGA,EAAI,EAAI,EAAG,CACzC,EACAupE,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAO,KAAK,cAActsF,EAAMssF,CAAK,CACvC,EACOqxJ,CACT,CACAr6C,EAAOisD,IAAU,UAAU,EAI3B,eAAeI,IAAoBx6U,EAAQ6qF,EAAM,CAC/C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC/D5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,IAAIA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACjEj2H,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACTwgX,EAAQ5lX,EAAI,EACZq7V,EAAS,CACb,CAAE,EAAGt7V,EAAI6lX,EAAO,EAAA5lX,CAAC,EACjB,CAAE,EAAAD,EAAG,EAAG,CAAC,EACT,CAAE,EAAGA,EAAI6lX,EAAO,EAAG,CAAC5lX,CAAC,EACrB,CAAE,EAAG,CAACD,EAAG,EAAG,CAACC,CAAC,EACd,CAAE,EAAG,CAACD,EAAG,EAAAC,CAAC,CACd,EACQ,CAAE,UAAA45W,CAAS,EAAK5jP,EAChBwgP,EAAKqP,GAAQ,IAAIlS,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMwuW,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC/D,OAAAoE,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,UAAU,MAAM,EAAE,KAAK,QAASlB,CAAS,EAE/C3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,UAAU,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEpD6iB,EAAQ,KAAK,YAAa,aAAa,CAAC8K,EAAQ,CAAC,KAAK,EACtDroO,EAAM,KACJ,YACA,aAAa,CAACqoO,EAAQ,EAAIhV,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,IAAMA,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC9H,EACEyD,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOqsD,IAAqB,qBAAqB,EAKjD,eAAeG,IAAc36U,EAAQ6qF,EAAM,SACzC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,IAAI1yS,EACC0wE,EAAK,WAGR1wE,EAAU,QAAU0wE,EAAK,WAFzB1wE,EAAU,eAIZ,MAAMquT,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASma,CAAO,EAAE,KAAK,KAAM0wE,EAAK,OAASA,EAAK,EAAE,EACrF7wH,EAAIwuW,EAAS,OAAO,GAAG,EACvBp2N,EAAQo2N,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,QAAS1b,CAAU,EAC5E77R,EAAc45D,EAAK,YACnB/1F,EAAQ+1F,EAAK,MACbi0O,EAAQ1sN,EAAM,KAAI,EAAG,YAAY,MAAM04N,GAAoBh2U,EAAO+1F,EAAK,WAAY,GAAM,EAAI,CAAC,EACpG,IAAI46O,EAAO,CAAE,MAAO,EAAG,OAAQ,CAAC,EAChC,GAAI7jP,IAAS90E,GAAApW,EAAAqmS,GAAU,IAAV,YAAArmS,EAAc,YAAd,YAAAoW,EAAyB,UAAU,EAAG,CACjD,MAAM8tU,EAAO9b,EAAM,SAAS,CAAC,EACvB+b,EAAMC,GAAQhc,CAAK,EACzB2G,EAAOmV,EAAK,sBAAqB,EACjCC,EAAI,KAAK,QAASpV,EAAK,KAAK,EAC5BoV,EAAI,KAAK,SAAUpV,EAAK,MAAM,CAChC,CACArwT,GAAI,KAAK,SAAU6b,CAAW,EAC9B,MAAM8pT,EAAW9pT,GAAe,GAC1B+pT,EAAWlc,EAAM,QAAO,EACxBmc,EAAQ7oO,EAAM,KAAI,EAAG,YACzB,MAAM04N,GACJiQ,EAAS,KAAOA,EAAS,KAAK,OAAO,EAAIA,EACzClwP,EAAK,WACL,GACA,EACN,CACA,EACQ47H,EAAMw0H,EAAM,SAAS,CAAC,EACtBtS,EAAKmS,GAAQG,CAAK,EACxBxV,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,EAC7B,MAAMiD,GAAe79O,EAAK,SAAW,GAAK,EAC1CiwP,GAAQG,CAAK,EAAE,KACb,YACA,eAAiBxV,EAAK,MAAQuV,EAAS,MAAQ,GAAKA,EAAS,MAAQvV,EAAK,OAAS,GAAK,MAAQuV,EAAS,OAAStS,EAAc,GAAK,GACzI,EACEoS,GAAQhc,CAAK,EAAE,KACb,YACA,eAAiB2G,EAAK,MAAQuV,EAAS,MAAQ,EAAI,EAAEA,EAAS,MAAQvV,EAAK,OAAS,GAAK,MAC7F,EACEA,EAAOrzN,EAAM,KAAI,EAAG,QAAO,EAC3BA,EAAM,KACJ,YACA,aAAe,CAACqzN,EAAK,MAAQ,EAAI,MAAQ,CAACA,EAAK,OAAS,EAAIiD,EAAc,GAAK,GACnF,EACE,MAAMsC,EAAavF,EAAK,OAAS56O,EAAK,SAAW,GAC3C87K,EAAc8+D,EAAK,QAAU56O,EAAK,SAAW,GAC7Cj2H,EAAI,CAAC6wW,EAAK,MAAQ,EAAIiD,EACtB7zW,EAAI,CAAC4wW,EAAK,OAAS,EAAIiD,EAC7B,IAAI0C,EACAoI,EACJ,GAAI3oP,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK6P,GAAQ,IAAI1S,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0gP,EAAYF,EAAG,KACnBN,GAAuBn2W,EAAGC,EAAGm2W,EAAYrkE,EAAa97K,EAAK,IAAM,CAAC,EAClExpH,CACN,EACU85W,EAAY9P,EAAG,KACnB,CAAC5F,EAAK,MAAQ,EAAIiD,EAClB,CAACjD,EAAK,OAAS,EAAIiD,EAAcsS,EAAS,OAAStS,EACnDjD,EAAK,MAAQ,EAAIiD,EACjB,CAACjD,EAAK,OAAS,EAAIiD,EAAcsS,EAAS,OAAStS,EACnDrnW,CACN,EACImyW,EAAYhL,EAAS,OAAO,KAC1BpzT,GAAI,MAAM,wBAAyBm2T,CAAS,EACrC4P,GACN,cAAc,EACjB/P,EAAQ5C,EAAS,OAAO,KACtBpzT,GAAI,MAAM,wBAAyBm2T,CAAS,EACrCA,GACN,cAAc,CACnB,MACEH,EAAQpxW,EAAE,OAAO,OAAQ,cAAc,EACvCw5W,EAAYx5W,EAAE,OAAO,MAAM,EAC3BoxW,EAAM,KAAK,QAAS,mBAAmB,EAAE,KAAK,QAASte,CAAU,EAAE,KAAK,IAAK,CAAC2Y,EAAK,MAAQ,EAAIiD,CAAW,EAAE,KAAK,IAAK,CAACjD,EAAK,OAAS,EAAIiD,CAAW,EAAE,KAAK,QAASjD,EAAK,OAAS56O,EAAK,SAAW,EAAE,EAAE,KAAK,SAAU46O,EAAK,QAAU56O,EAAK,SAAW,EAAE,EACtP2oP,EAAU,KAAK,QAAS,SAAS,EAAE,KAAK,KAAM,CAAC/N,EAAK,MAAQ,EAAIiD,CAAW,EAAE,KAAK,KAAMjD,EAAK,MAAQ,EAAIiD,CAAW,EAAE,KAAK,KAAM,CAACjD,EAAK,OAAS,EAAIiD,EAAcsS,EAAS,OAAStS,CAAW,EAAE,KAAK,KAAM,CAACjD,EAAK,OAAS,EAAIiD,EAAcsS,EAAS,OAAStS,CAAW,EAE5Q,OAAAQ,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAOwsD,IAAe,eAAe,EAIrC,SAASS,GAAmBvrC,EAAIC,EAAIC,EAAIC,EAAI88B,EAAIC,EAAI8B,EAAW,CAE7D,MAAMC,GAAQj/B,EAAKE,GAAM,EACnB45B,GAAQ75B,EAAKE,GAAM,EACnBqb,EAAQ,KAAK,MAAMrb,EAAKF,EAAIC,EAAKF,CAAE,EACnClwH,GAAMowH,EAAKF,GAAM,EACjBthH,GAAMyhH,EAAKF,GAAM,EACjBi/B,EAAepvJ,EAAKmtJ,EACpBkC,EAAezgJ,EAAKw+I,EACpBjsH,EAAW,KAAK,KAAKiuH,GAAgB,EAAIC,GAAgB,CAAC,EAChE,GAAIluH,EAAW,EACb,MAAM,IAAI,MAAM,oEAAoE,EAEtF,MAAMmuH,EAAuB,KAAK,KAAK,EAAInuH,GAAY,CAAC,EAClD+oH,EAAUiF,EAAOG,EAAuBlC,EAAK,KAAK,IAAI1hB,CAAK,GAAKwjB,EAAY,GAAK,GACjF/E,EAAUH,EAAOsF,EAAuBnC,EAAK,KAAK,IAAIzhB,CAAK,GAAKwjB,EAAY,GAAK,GACjF7E,EAAa,KAAK,OAAOl6B,EAAKg6B,GAAWiD,GAAKl9B,EAAKg6B,GAAWiD,CAAE,EAEtE,IAAIoC,EADa,KAAK,OAAOl/B,EAAK85B,GAAWiD,GAAKh9B,EAAK85B,GAAWiD,CAAE,EACxC9C,EACxB6E,GAAaK,EAAa,IAC5BA,GAAc,EAAI,KAAK,IAErB,CAACL,GAAaK,EAAa,IAC7BA,GAAc,EAAI,KAAK,IAEzB,MAAMhf,EAAS,GACf,QAAS5zV,EAAI,EAAGA,EAAI,GAAWA,IAAK,CAClC,MAAM9B,EAAI8B,EAAK,GACT6yW,EAASnF,EAAaxvW,EAAI00W,EAC1Bt6W,EAAIi1W,EAAUiD,EAAK,KAAK,IAAIqC,CAAM,EAClCt6W,EAAIi1W,EAAUiD,EAAK,KAAK,IAAIoC,CAAM,EACxCjf,EAAO,KAAK,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,CAAE,CACtB,CACA,OAAOq7V,CACT,CACA/hC,EAAOitD,GAAoB,mBAAmB,EAC9C,eAAeC,IAAYr7U,EAAQ6qF,EAAM,CACvC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEywP,GAAgBzwP,GAAA,YAAAA,EAAM,UAAW,EACjC0wP,GAAgB1wP,GAAA,YAAAA,EAAM,UAAW,EACjCnwH,GAAKmwH,GAAA,MAAAA,EAAM,MAAQA,GAAA,YAAAA,EAAM,MAAQ46O,EAAK,OAAS6V,EAAgB,EAC/DrhX,GAAK4wH,GAAA,MAAAA,EAAM,OAASA,GAAA,YAAAA,EAAM,OAAS46O,EAAK,QAAU8V,EAAgB,EAClExR,EAASl/O,EAAK,QAAU,EACxB2wP,EAAQ3wP,EAAK,OAAS,EACtB,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBwgP,EAAKoQ,GAAQ,IAAIjT,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,SACPxpH,EAAQ,OAASwpH,EAAK,QAEpBA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CAEb,CAAE,EAAG,CAACx1V,EAAI,EAAI8gX,EAAO,EAAG,CAACvhX,EAAI,CAAC,EAE9B,CAAE,EAAGS,EAAI,EAAI8gX,EAAO,EAAG,CAACvhX,EAAI,CAAC,EAE7B,GAAGmhX,GAAmB1gX,EAAI,EAAI8gX,EAAO,CAACvhX,EAAI,EAAGS,EAAI,EAAG,CAACT,EAAI,EAAIuhX,EAAOzR,EAAQA,EAAQ,EAAI,EAGxF,CAAE,EAAGrvW,EAAI,EAAG,EAAG,CAACT,EAAI,EAAIuhX,CAAK,EAE7B,CAAE,EAAG9gX,EAAI,EAAG,EAAGT,EAAI,EAAIuhX,CAAK,EAE5B,GAAGJ,GAAmB1gX,EAAI,EAAGT,EAAI,EAAIuhX,EAAO9gX,EAAI,EAAI8gX,EAAOvhX,EAAI,EAAG8vW,EAAQA,EAAQ,EAAI,EAGtF,CAAE,EAAGrvW,EAAI,EAAI8gX,EAAO,EAAGvhX,EAAI,CAAC,EAE5B,CAAE,EAAG,CAACS,EAAI,EAAI8gX,EAAO,EAAGvhX,EAAI,CAAC,EAE7B,GAAGmhX,GAAmB,CAAC1gX,EAAI,EAAI8gX,EAAOvhX,EAAI,EAAG,CAACS,EAAI,EAAGT,EAAI,EAAIuhX,EAAOzR,EAAQA,EAAQ,EAAI,EAGxF,CAAE,EAAG,CAACrvW,EAAI,EAAG,EAAGT,EAAI,EAAIuhX,CAAK,EAE7B,CAAE,EAAG,CAAC9gX,EAAI,EAAG,EAAG,CAACT,EAAI,EAAIuhX,CAAK,EAE9B,GAAGJ,GAAmB,CAAC1gX,EAAI,EAAG,CAACT,EAAI,EAAIuhX,EAAO,CAAC9gX,EAAI,EAAI8gX,EAAO,CAACvhX,EAAI,EAAG8vW,EAAQA,EAAQ,EAAI,CAE9F,EACQ8F,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,kCAAkC,EACpDlB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOktD,IAAa,aAAa,EAIjC,eAAeK,IAAc17U,EAAQ6qF,EAAM,CACzC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChF69O,GAAc79O,GAAA,YAAAA,EAAM,UAAW,EAC/BnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEj2H,EAAI,CAAC6wW,EAAK,MAAQ,EAAIiD,EACtB7zW,EAAI,CAAC4wW,EAAK,OAAS,EAAIiD,EACvB,CAAE,UAAA+F,CAAS,EAAK5jP,EAChBwgP,EAAKsQ,GAAQ,IAAInT,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,EACN,CAAE,EAAGD,EAAI8F,EAAI,EAAG,EAAA7F,CAAC,EACjB,CAAE,EAAGD,EAAI8F,EAAI,EAAG,EAAG7F,EAAIoF,CAAC,EACxB,CAAE,EAAGrF,EAAI,EAAG,EAAGC,EAAIoF,CAAC,EACpB,CAAE,EAAGrF,EAAI,EAAG,EAAAC,CAAC,EACb,CAAE,EAAAD,EAAG,EAAAC,CAAC,EACN,CAAE,EAAAD,EAAG,EAAGC,EAAIoF,CAAC,CACjB,EACQsxW,EAAYF,EAAG,QACnBnb,EAAO,IAAK71V,GAAM,CAACA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAC5BgH,CACJ,EACQ+pW,EAAQ5C,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC7D,OAAAH,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1W,GAAoB+Z,CAAS,CAAC,EACrF3hB,GAAcjiO,EAAK,OAAS,aAC9BugP,EAAM,UAAU,MAAM,EAAE,KAAK,QAASte,CAAU,EAE9C2hB,GAAa5jP,EAAK,OAAS,aAC7BugP,EAAM,UAAU,MAAM,EAAE,KAAK,QAASte,CAAU,EAElD16M,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,EAAI,GAAKmwH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC5I,EACEyD,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAOutD,IAAe,eAAe,EAIrC,eAAeE,IAAW57U,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEj2H,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACT,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAKwQ,GAAQ,IAAIrT,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAAt7V,EAAG,EAAAC,CAAC,EACN,CAAE,EAAAD,EAAG,EAAGC,EAAIoF,CAAC,EACb,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,CAAC,EACpB,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,EAAI,CAAC,CAC5B,EACQ41W,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzD6iB,EAAQ,KAAK,YAAa,gBAAgB11W,EAAI,CAAC,GAAG,EAClDm4I,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,KAAO,GAAG,GACzI,EACEyD,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOytD,IAAY,YAAY,EAG/B,eAAeE,IAAY97U,EAAQ6qF,EAAM,CACvC,MAAMxpH,EAAU,CACd,GAAI,EACJ,GAAI,EAEJ,cAAewpH,EAAK,iBAAkBA,GAAA,YAAAA,EAAM,UAAW,GAAK,EAC5D,gBAAgBA,GAAA,YAAAA,EAAM,UAAW,GAAK,CAC1C,EACE,OAAOmtP,GAASh4U,EAAQ6qF,EAAMxpH,CAAO,CACvC,CACA8sT,EAAO2tD,IAAa,YAAY,EAIhC,eAAeC,IAAQ/7U,EAAQ6qF,EAAM,CACnC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvBnwH,EAAI+qW,EAAK,MAAQxrW,EAAI,EAAI4wH,EAAK,QAC9Bk/O,EAAS9vW,EAAI,EACb,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAK2Q,GAAQ,IAAIxT,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAIqvW,EAAQ,EAAG,CAAC9vW,EAAI,CAAC,EAC/B,CAAE,EAAGS,EAAI,EAAIqvW,EAAQ,EAAG,CAAC9vW,EAAI,CAAC,EAC9B,GAAG2vW,GAAqB,CAAClvW,EAAI,EAAIqvW,EAAQ,EAAGA,EAAQ,GAAI,GAAI,GAAG,EAC/D,CAAE,EAAGrvW,EAAI,EAAIqvW,EAAQ,EAAG9vW,EAAI,CAAC,EAC7B,GAAG2vW,GAAqBlvW,EAAI,EAAIqvW,EAAQ,EAAGA,EAAQ,GAAI,IAAK,GAAG,CACnE,EACQ8F,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,kCAAkC,EACpDlB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAO4tD,IAAS,SAAS,EAGzB,eAAetiX,IAAMumC,EAAQ6qF,EAAM,CAMjC,OAAOmtP,GAASh4U,EAAQ6qF,EALR,CACd,GAAI,EACJ,GAAI,CAEN,CACqC,CACvC,CACAsjM,EAAO10T,IAAO,OAAO,EAIrB,SAASwiX,IAASj8U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,CAAc,GAAM,CAC9D,KAAM,CAAE,YAAA21B,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,UAAA4hB,CAAS,EAAK5jP,EAChB,CAAE,UAAAqxP,EAAW,YAAAC,EAAa,WAAAjvB,CAAU,EAAKh2B,EACzCsxC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EAAE,KAAK,KAAM6qF,EAAK,OAASA,EAAK,EAAE,EAC5FwgP,EAAK+Q,GAAQ,IAAI5T,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMkqW,EAAYF,EAAG,OAAO,EAAG,EAAG,GAAI,CACpC,GAAGhqW,EACH,OAAQ66W,EACR,YAAa,CACjB,CAAG,EACKG,EAAYF,GAAejvB,EAC3Bif,EAAiBd,EAAG,OAAO,EAAG,EAAG,EAAG,CACxC,GAAGhqW,EACH,KAAMg7W,EACN,OAAQA,EACR,YAAa,EACb,UAAW,OACf,CAAG,EACKC,EAAU9T,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC/D,OAAA+Q,EAAQ,OAAO,IAAMnQ,CAAc,EAC/BsC,GACF6N,EAAQ,UAAU,MAAM,EAAE,KAAK,QAAS7N,CAAS,EAE/C3hB,GACFwvB,EAAQ,UAAU,MAAM,EAAE,KAAK,QAASxvB,CAAU,EAEpDoc,GAAiBr+O,EAAMyxP,CAAO,EAC9BzxP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,OAAO3jP,EAAM,EAAGssF,CAAK,CAChD,EACOqxJ,CACT,CACAr6C,EAAO8tD,IAAU,UAAU,EAI3B,SAASM,IAAWv8U,EAAQ6qF,EAAM,CAAE,OAAQ,CAAE,eAAAqsM,CAAc,GAAM,CAChE,KAAM,CAAE,UAAAglD,CAAS,EAAKhlD,EAChBsxC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EAAE,KAAK,KAAM6qF,EAAK,OAASA,EAAK,EAAE,EAClG,IAAIyxP,EACJ,GAAIzxP,EAAK,OAAS,YAAa,CAE7B,MAAM0gP,EADKiR,GAAQ,IAAIhU,CAAQ,EACV,OAAO,EAAG,EAAG,GAAInc,IAAe6vB,CAAS,CAAC,EAC/DI,EAAU9T,EAAS,OAAO,IAAM+C,CAAS,EACzC+Q,EAAQ,KAAK,QAAS,aAAa,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAAS,EAAE,EAAE,KAAK,SAAU,EAAE,CACvF,MACEA,EAAU9T,EAAS,OAAO,SAAU,cAAc,EAClD8T,EAAQ,KAAK,QAAS,aAAa,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAAS,EAAE,EAAE,KAAK,SAAU,EAAE,EAEvF,OAAApT,GAAiBr+O,EAAMyxP,CAAO,EAC9BzxP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,OAAO3jP,EAAM,EAAGssF,CAAK,CAChD,EACOqxJ,CACT,CACAr6C,EAAOouD,IAAY,YAAY,EAI/B,eAAeE,IAAWz8U,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE69O,IAAe79O,GAAA,YAAAA,EAAM,UAAW,GAAK,EACrCnwH,EAAI+qW,EAAK,MAAQ56O,EAAK,QACtB5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvBj2H,EAAI,CAAC6wW,EAAK,MAAQ,EAAIiD,EACtB7zW,EAAI,CAAC4wW,EAAK,OAAS,EAAIiD,EACvBxY,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGx1V,EAAG,EAAG,CAAC,EACZ,CAAE,EAAGA,EAAG,EAAG,CAACT,CAAC,EACb,CAAE,EAAG,EAAG,EAAG,CAACA,CAAC,EACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAG,GAAI,EAAG,CAAC,EACb,CAAE,EAAGS,EAAI,EAAG,EAAG,CAAC,EAChB,CAAE,EAAGA,EAAI,EAAG,EAAG,CAACT,CAAC,EACjB,CAAE,EAAG,GAAI,EAAG,CAACA,CAAC,EACd,CAAE,EAAG,GAAI,EAAG,CAAC,CACjB,EACE,GAAI4wH,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKqR,GAAQ,IAAIlU,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0gP,EAAYF,EAAG,UAAUz2W,EAAI,EAAGC,EAAG6F,EAAI,GAAIT,EAAGoH,CAAO,EACrDs7W,EAAKtR,EAAG,KAAKz2W,EAAGC,EAAGD,EAAGC,EAAIoF,EAAGoH,CAAO,EACpCu7W,EAAKvR,EAAG,KAAKz2W,EAAI8F,EAAG7F,EAAGD,EAAI8F,EAAG7F,EAAIoF,EAAGoH,CAAO,EAClDmnW,EAAS,OAAO,IAAMmU,EAAI,cAAc,EACxCnU,EAAS,OAAO,IAAMoU,EAAI,cAAc,EACxC,MAAMxR,EAAQ5C,EAAS,OAAO,IAAM+C,EAAW,cAAc,EACvD,CAAE,UAAAkD,CAAS,EAAK5jP,EACtBugP,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1W,GAAoB+Z,CAAS,CAAC,EACzFvF,GAAiBr+O,EAAMugP,CAAK,CAC9B,KAAO,CACL,MAAMrxT,EAAK01T,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAChDpD,GACF/yS,EAAG,KAAK,QAAS+yS,CAAU,EAE7Boc,GAAiBr+O,EAAM9wE,CAAE,CAC3B,CACA,OAAA8wE,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOsuD,IAAY,YAAY,EAI/B,eAAeI,IAAW78U,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEj2H,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACT6iX,EAAW,GAAM7iX,EACjB8iX,EAAY,GAAM9iX,EAClB,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAK2R,GAAQ,IAAIxU,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCwmP,EAAa,CACjB,CAAE,EAAGz8W,EAAIkoX,EAAW,EAAG,EAAAjoX,CAAC,EACxB,CAAE,EAAGD,EAAI8F,EAAIoiX,EAAW,EAAG,EAAAjoX,CAAC,EAC5B,CAAE,EAAGD,EAAI8F,EAAIoiX,EAAW,EAAG,EAAGjoX,EAAIoF,CAAC,EACnC,CAAE,EAAGrF,EAAIkoX,EAAW,EAAG,EAAGjoX,EAAIoF,CAAC,CACnC,EACQgjX,EAAY,CAChB,CAAE,EAAGroX,EAAI8F,EAAIoiX,EAAW,EAAG,EAAGjoX,EAAIoF,CAAC,EACnC,CAAE,EAAGrF,EAAI8F,EAAIoiX,EAAW,EAAG,EAAGjoX,EAAIoF,CAAC,EACnC,CAAE,EAAGrF,EAAI8F,EAAIoiX,EAAW,EAAG,EAAGjoX,EAAIoF,EAAI8iX,CAAS,CACnD,EACMlyP,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMowW,EAAWrI,GAAqBiI,CAAU,EAC1C6L,EAAW7R,EAAG,KAAKoG,EAAUpwW,CAAO,EACpC87W,EAAU/T,GAAqB6T,CAAS,EACxCG,EAAU/R,EAAG,KAAK8R,EAAS,CAAE,GAAG97W,EAAS,UAAW,QAAS,EAC7Dg8W,EAAc7U,EAAS,OAAO,IAAM4U,EAAS,cAAc,EACjE,OAAAC,EAAY,OAAO,IAAMH,EAAU,cAAc,EACjDG,EAAY,KAAK,QAAS,uBAAuB,EAC7C5O,GAAa5jP,EAAK,OAAS,aAC7BwyP,EAAY,UAAU,MAAM,EAAE,KAAK,QAAS5O,CAAS,EAEnD3hB,GAAcjiO,EAAK,OAAS,aAC9BwyP,EAAY,UAAU,MAAM,EAAE,KAAK,QAASvwB,CAAU,EAExDoc,GAAiBr+O,EAAMwyP,CAAW,EAClCxyP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMwmP,EAAYl6J,CAAK,CAE/D,EACOqxJ,CACT,CACAr6C,EAAO0uD,IAAY,YAAY,EAI/B,eAAeS,IAAyBt9U,EAAQ6qF,EAAM,CACpD,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEouP,EAAgBh/W,EAAI,EACpB6iX,EAAW,GAAMpiX,EACjBqiX,EAAY,GAAM9iX,EAClBi/W,EAASj/W,EAAIg/W,EACb,CAAE,UAAAxK,CAAS,EAAK5jP,EAChBwgP,EAAKkS,GAAQ,IAAI/U,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAGw+W,EAAS,CAAC,EACxC,GAAG5P,GACD,CAAC5uW,EAAI,EAAIA,EAAI,EAAI,GACjBw+W,EAAS,EACTx+W,EAAI,EAAIA,EAAI,EAAI,GAChBw+W,EAAS,EACTD,EACA,EACN,EACI,CAAE,EAAGv+W,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAG,CAACw+W,EAAS,CAAC,EACxC,CAAE,EAAG,CAACx+W,EAAI,EAAIA,EAAI,EAAI,GAAK,EAAG,CAACw+W,EAAS,CAAC,CAC7C,EACQ,EAAI,CAACx+W,EAAI,EAAIA,EAAI,EAAI,GACrB7F,EAAI,CAACqkX,EAAS,EAAI6D,EAAY,GAC9BE,EAAY,CAChB,CAAE,EAAG,EAAIviX,EAAIoiX,EAAU,GAAIjoX,EAAIoF,GAAK,GAAG,EACvC,CAAE,EAAG,EAAIS,EAAG,EAAG7F,EAAIoF,EAAI8iX,CAAS,EAChC,CAAE,EAAG,EAAIriX,EAAG,GAAI7F,EAAIoF,GAAK,EAAG,EAC5B,GAAGqvW,GACD,EAAI5uW,GACH7F,EAAIoF,GAAK,IACV,EAAIS,EAAIoiX,GACPjoX,EAAIoF,GAAK,IACV,CAACA,EAAI,IACL,EACN,CACA,EACQujX,EAAmBpU,GAAqBlZ,CAAM,EAC9CutB,EAAmBpS,EAAG,KAAKmS,EAAkBn8W,CAAO,EACpDq8W,EAAyBtU,GAAqB6T,CAAS,EACvDU,EAAyBtS,EAAG,KAAKqS,EAAwB,CAC7D,GAAGr8W,EACH,UAAW,OACf,CAAG,EACK+3W,EAAe5Q,EAAS,OAAO,IAAMmV,EAAwB,cAAc,EACjF,OAAAvE,EAAa,OAAO,IAAMqE,EAAkB,cAAc,EAC1DrE,EAAa,KAAK,QAAS,uBAAuB,EAC9C3K,GAAa5jP,EAAK,OAAS,aAC7BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAS3K,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAStsB,CAAU,EAEzDssB,EAAa,KAAK,YAAa,eAAe,CAACH,EAAgB,CAAC,GAAG,EACnE7mO,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAKouP,EAAgB,GAAKxT,EAAK,GAAKA,EAAK,KAAO,GAAG,GAC5J,EACEyD,GAAiBr+O,EAAMuuP,CAAY,EACnCvuP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOmvD,IAA0B,0BAA0B,EAG3D,eAAeliW,IAAK4kB,EAAQ6qF,EAAM,CAChC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEmgP,EAAa,KAAK,IAAIvF,EAAK,MAAQ56O,EAAK,SAASA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACjE87K,EAAc,KAAK,IAAI8+D,EAAK,OAAS56O,EAAK,SAASA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACpEj2H,EAAI,CAACo2W,EAAa,EAClBn2W,EAAI,CAAC8xS,EAAc,EACnBykE,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EACpD,OAAA4C,EAAM,KAAK,QAAS,MAAM,EAAE,KAAK,QAASte,CAAU,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,KAAM,CAAC,EAAE,KAAK,IAAKl4V,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASm2W,CAAU,EAAE,KAAK,SAAUrkE,CAAW,EAChKuiE,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO/yS,IAAM,MAAM,EAInB,IAAIwiW,IAAuCzvD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACnE,IAAIn4W,CAAC,IAAIC,CAAC;AAAA,OACZi4W,CAAE,IAAIC,CAAE,YAAe,CAACxzT,CAAM;AAAA,OAC9B6mE,CAAK;AAAA,OACL0sP,CAAE,IAAIC,CAAE,YAAexzT,CAAM;AAAA,OAC7B6mE,CAAK,IAAI,CAAC7mE,CAAM;AAAA,OAChBuzT,CAAE,IAAIC,CAAE,YAAexzT,CAAM;AAAA,OAC7B,CAAC6mE,CAAK,KACV,qBAAqB,EACpBy9P,IAA4C1vD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACxE,CACL,IAAIn4W,CAAC,IAAIC,CAAC,GACV,IAAID,EAAIwrH,CAAK,IAAIvrH,CAAC,GAClB,IAAIi4W,CAAE,IAAIC,CAAE,YAAe,CAACxzT,CAAM,GAClC,IAAI,CAAC6mE,CAAK,KACV,IAAI0sP,CAAE,IAAIC,CAAE,YAAexzT,CAAM,GACjC,IAAI6mE,CAAK,IACb,EAAI,KAAK,GAAG,EACT,0BAA0B,EACzB09P,IAA4C3vD,EAAO,CAACv5T,EAAGC,EAAGurH,EAAO7mE,EAAQuzT,EAAIC,IACxE,CAAC,IAAIn4W,EAAIwrH,EAAQ,CAAC,IAAI,CAAC7mE,EAAS,CAAC,GAAI,IAAIuzT,CAAE,IAAIC,CAAE,YAAYxzT,CAAM,EAAE,EAAE,KAAK,GAAG,EACrF,0BAA0B,EAC7B,eAAewkU,IAAe/9U,EAAQ6qF,EAAM,CAC1C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,EAAO,YAAAs2N,CAAW,EAAK,MAAML,GACnDroU,EACA6qF,EACAs+O,GAAet+O,CAAI,CACvB,EACQorP,EAAeprP,EAAK,OAAS,MAAQ69O,EAAc,EAAIA,EACvDzuW,EAAIwrW,EAAK,OAASwQ,EAClBlJ,EAAK9yW,EAAI,EACT6yW,EAAKC,GAAM,IAAM9yW,EAAI,IACrBS,EAAI+qW,EAAK,MAAQqH,EAAKmJ,EACtB,CAAE,UAAAxH,CAAS,EAAK5jP,EACtB,IAAIsoP,EACJ,GAAItoP,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK2S,GAAQ,IAAIxV,CAAQ,EACzB6K,EAAgBwK,IAA0B,EAAG,EAAGnjX,EAAGT,EAAG6yW,EAAIC,CAAE,EAC5DuG,EAAgBwK,IAA0B,EAAG,EAAGpjX,EAAGT,EAAG6yW,EAAIC,CAAE,EAC5DwG,EAAYlI,EAAG,KAAKgI,EAAepmB,GAAkBpiO,EAAM,EAAE,CAAC,EAC9D2oP,EAAYnI,EAAG,KAAKiI,EAAermB,GAAkBpiO,EAAM,CAAE,KAAM,MAAM,CAAE,CAAC,EAClFsoP,EAAY3K,EAAS,OAAO,IAAMgL,EAAW,cAAc,EAC3DL,EAAY3K,EAAS,OAAO,IAAM+K,EAAW,cAAc,EAC3DJ,EAAU,KAAK,QAAS,uBAAuB,EAC3C1E,GACF0E,EAAU,KAAK,QAAS1E,CAAS,CAErC,KAAO,CACL,MAAMoB,EAAW+N,IAAqB,EAAG,EAAGljX,EAAGT,EAAG6yW,EAAIC,CAAE,EACxDoG,EAAY3K,EAAS,OAAO,OAAQ,cAAc,EAAE,KAAK,IAAKqH,CAAQ,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASnb,GAAoB+Z,CAAS,CAAC,EAAE,KAAK,QAAS3hB,CAAU,EACrLqmB,EAAU,KAAK,QAAS,uBAAuB,EAC3C1E,GACF0E,EAAU,UAAU,MAAM,EAAE,KAAK,QAAS1E,CAAS,EAEjD3hB,GACFqmB,EAAU,UAAU,MAAM,EAAE,KAAK,QAASrmB,CAAU,CAExD,CACA,OAAAqmB,EAAU,KAAK,iBAAkBrG,CAAE,EACnCqG,EAAU,KAAK,YAAa,aAAa,CAACz4W,EAAI,CAAC,KAAKT,EAAI,CAAC,IAAI,EAC7Dm4I,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,GAAKqH,GAAMrH,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,IAAMA,EAAK,GAAKA,EAAK,KAAO,GAAG,GACzH,EACEyD,GAAiBr+O,EAAMsoP,CAAS,EAChCtoP,EAAK,UAAY,SAASssF,EAAO,CAC/B,MAAMpW,EAAMytK,GAAkB,KAAK3jP,EAAMssF,CAAK,EACxCtiN,EAAIksM,EAAI,GAAKl2E,EAAK,GAAK,GAC7B,GAAIkiP,GAAM,IAAM,KAAK,IAAIl4W,CAAC,GAAKg2H,EAAK,QAAU,GAAK,GAAK,KAAK,IAAIh2H,CAAC,IAAMg2H,EAAK,QAAU,GAAK,GAAK,KAAK,IAAIk2E,EAAI,GAAKl2E,EAAK,GAAK,EAAE,GAAKA,EAAK,OAAS,GAAK,EAAIiiP,GAAK,CAC9J,IAAIl4W,EAAIk4W,EAAKA,GAAM,EAAIj4W,EAAIA,GAAKk4W,EAAKA,IACjCn4W,GAAK,IACPA,EAAI,KAAK,KAAK,KAAK,IAAIA,CAAC,CAAC,GAE3BA,EAAIk4W,EAAKl4W,EACLuiN,EAAM,GAAKtsF,EAAK,GAAK,GAAK,IAC5Bj2H,EAAI,CAACA,GAEPmsM,EAAI,GAAKnsM,CACX,CACA,OAAOmsM,CACT,EACOynK,CACT,CACAr6C,EAAO4vD,IAAgB,gBAAgB,EAIvC,eAAeE,IAAUj+U,EAAQ6qF,EAAM,CACrC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzEnwH,EAAI+qW,EAAK,MAAQ56O,EAAK,QACtB5wH,EAAIwrW,EAAK,OAAS56O,EAAK,QACvBqlO,EAAS,CACb,CAAE,EAAG,GAAKj2V,EAAI,EAAG,EAAG,CAAC,EACrB,CAAE,EAAGS,EAAI,EAAIT,EAAI,EAAG,EAAG,CAAC,EACxB,CAAE,EAAGS,EAAG,EAAG,CAACT,CAAC,EACb,CAAE,EAAG,EAAG,EAAG,CAACA,CAAC,CACjB,EACE,IAAI01W,EACJ,KAAM,CAAE,UAAAlB,CAAS,EAAK5jP,EACtB,GAAIA,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK6S,GAAQ,IAAI1V,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpCglP,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EAC3CsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAAC7wW,EAAI,CAAC,KAAKT,EAAI,CAAC,GAAG,EACzGw0W,GACFkB,EAAQ,KAAK,QAASlB,CAAS,CAEnC,MACEkB,EAAUF,GAAmBjH,EAAU9tW,EAAGT,EAAGi2V,CAAM,EAErD,OAAIpD,GACF6iB,EAAQ,KAAK,QAAS7iB,CAAU,EAElCjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAO8vD,IAAW,WAAW,EAI7B,eAAeE,IAAoBn+U,EAAQ6qF,EAAM,CAC/C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE07K,EAAW,GAAI8G,EAAY,GAC3B3yS,EAAI,KAAK,IAAI6rS,EAAUk/D,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC7E5wH,EAAI,KAAK,IAAIozS,EAAWo4D,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EAChF,CAAE,UAAA4jP,CAAS,EAAK5jP,EAChBwgP,EAAK+S,GAAQ,IAAI5V,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAI,GAAK,EAAG,CAACT,EAAI,CAAC,EAC5B,CAAE,EAAGS,EAAI,EAAI,GAAK,EAAG,CAACT,EAAI,CAAC,EAC3B,CAAE,EAAGS,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI,EAAG,EAC3B,CAAE,EAAGS,EAAI,EAAG,EAAGT,EAAI,CAAC,EACpB,CAAE,EAAG,CAACS,EAAI,EAAG,EAAGT,EAAI,CAAC,EACrB,CAAE,EAAG,CAACS,EAAI,EAAG,EAAG,CAACT,EAAI,EAAI,EAAG,CAChC,EACQ41W,EAAWzG,GAAqBlZ,CAAM,EACtC4iB,EAAYzH,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAMsK,EAAW,cAAc,EAC/D,OAAAnD,EAAQ,KAAK,QAAS,uBAAuB,EACzClB,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDoc,GAAiBr+O,EAAM8kP,CAAO,EAC9B9kP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOgwD,IAAqB,qBAAqB,EAIjD,eAAeE,IAASr+U,EAAQ6qF,EAAM,OACpC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFy8O,EAAgB1lP,IAASlrF,EAAAqmS,GAAU,EAAG,YAAb,YAAArmS,EAAwB,UAAU,EAC3Dh8B,EAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAClC5wH,EAAIS,EAAI+qW,EAAK,OACboN,EAAKn4W,EAAI+qW,EAAK,OACdvV,EAAS,CACb,CAAE,EAAG,EAAG,EAAG,CAAC,EACZ,CAAE,EAAG2iB,EAAI,EAAG,CAAC,EACb,CAAE,EAAGA,EAAK,EAAG,EAAG,CAAC54W,CAAC,CACtB,EACQ,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAKiT,GAAQ,IAAI9V,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAMwuW,EAAWzG,GAAqBlZ,CAAM,EACtCqb,EAAYF,EAAG,KAAKwE,EAAUxuW,CAAO,EACrCsuW,EAAUnH,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAAE,KAAK,YAAa,aAAa,CAACtxW,EAAI,CAAC,KAAKA,EAAI,CAAC,GAAG,EACnH,OAAIw0W,GAAa5jP,EAAK,OAAS,aAC7B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAASlB,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9B8kP,EAAQ,eAAe,MAAM,EAAE,KAAK,QAAS7iB,CAAU,EAEzDjiO,EAAK,MAAQnwH,EACbmwH,EAAK,OAAS5wH,EACdivW,GAAiBr+O,EAAM8kP,CAAO,EAC9Bv9N,EAAM,KACJ,YACA,aAAa,CAACqzN,EAAK,MAAQ,GAAKA,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAKxrW,EAAI,GAAKwrW,EAAK,QAAU56O,EAAK,SAAW,IAAMy8O,EAAgB,EAAI,IAAM7B,EAAK,GAAKA,EAAK,KAAO,IAAI,GACrK,EACE56O,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,qBAAsBy1E,EAAMqlO,EAAQ/4I,CAAK,EAC3Cq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CACtD,EACOqxJ,CACT,CACAr6C,EAAOkwD,IAAU,UAAU,EAI3B,eAAeE,IAAmBv+U,EAAQ6qF,EAAM,CAC9C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrEouP,EAAgBh/W,EAAI,EACpBi/W,EAASj/W,EAAIg/W,EACb,CAAE,UAAAxK,CAAS,EAAK5jP,EAEhB2zP,EADW,GACW9jX,EACtB+jX,EAASD,EAAW,EAAIA,EAAW,EAAI,EACvCnT,EAAKqT,GAAQ,IAAIlW,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAI+jX,EAAQ,EAAGvF,EAAS,CAAC,EACnC,GAAG5P,GACD,CAAC5uW,EAAI,EAAI+jX,EACTvF,EAAS,EACTx+W,EAAI,EAAI+jX,EACRvF,EAAS,EACTD,EACA,EACN,EACI,CAAE,EAAGv+W,EAAI,EAAI+jX,EAAQ,EAAG,CAACvF,EAAS,CAAC,EACnC,CAAE,EAAG,CAACx+W,EAAI,EAAI+jX,EAAQ,EAAG,CAACvF,EAAS,CAAC,CACxC,EACQsE,EAAmBpU,GAAqBlZ,CAAM,EAC9CutB,EAAmBpS,EAAG,KAAKmS,EAAkBn8W,CAAO,EACpD+3W,EAAe5Q,EAAS,OAAO,IAAMiV,EAAkB,cAAc,EAC3E,OAAArE,EAAa,KAAK,QAAS,uBAAuB,EAC9C3K,GAAa5jP,EAAK,OAAS,aAC7BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAS3K,CAAS,EAEpD3hB,GAAcjiO,EAAK,OAAS,aAC9BuuP,EAAa,UAAU,MAAM,EAAE,KAAK,QAAStsB,CAAU,EAEzDssB,EAAa,KAAK,YAAa,eAAe,CAACH,EAAgB,CAAC,GAAG,EACnE7mO,EAAM,KACJ,YACA,aAAa,CAAC13I,EAAI,GAAKmwH,EAAK,SAAW,IAAM46O,EAAK,GAAKA,EAAK,MAAQ,GAAG,IAAI,CAACxrW,EAAI,GAAK4wH,EAAK,SAAW,GAAKouP,GAAiBxT,EAAK,GAAKA,EAAK,KAAO,GAAG,GACxJ,EACEyD,GAAiBr+O,EAAMuuP,CAAY,EACnCvuP,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOowD,IAAoB,oBAAoB,EAI/C,eAAeI,IAAc3+U,EAAQ6qF,EAAM,CACzC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,CAAI,EAAK,MAAM4C,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EACzE07K,EAAW,IACX8G,EAAY,GACZuxE,EAAY,KAAK,IAAInZ,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EAC3Eg0P,EAAa,KAAK,IAAIpZ,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EAC9Ei0P,EAAcF,EAAYC,EAChC,IAAInkX,EAAIkkX,EACJ3kX,EAAI4kX,EACJnkX,EAAIT,EAAI6kX,EACV7kX,EAAIS,EAAIokX,EAERpkX,EAAIT,EAAI6kX,EAEVpkX,EAAI,KAAK,IAAIA,EAAG6rS,CAAQ,EACxBtsS,EAAI,KAAK,IAAIA,EAAGozS,CAAS,EACzB,MAAM4rE,EAAgB,KAAK,IAAIh/W,EAAI,GAAKA,EAAI,CAAC,EACvCi/W,EAASj/W,EAAIg/W,EAAgB,EAC7B,CAAE,UAAAxK,CAAS,EAAK5jP,EAChBwgP,EAAK0T,GAAQ,IAAIvW,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM6uV,EAAS,CACb,CAAE,EAAG,CAACx1V,EAAI,EAAG,EAAGw+W,EAAS,CAAC,EAC1B,GAAG5P,GAA2B,CAAC5uW,EAAI,EAAGw+W,EAAS,EAAGx+W,EAAI,EAAGw+W,EAAS,EAAGD,EAAe,CAAC,EACrF,CAAE,EAAGv+W,EAAI,EAAG,EAAG,CAACw+W,EAAS,CAAC,EAC1B,GAAG5P,GAA2B5uW,EAAI,EAAG,CAACw+W,EAAS,EAAG,CAACx+W,EAAI,EAAG,CAACw+W,EAAS,EAAGD,EAAe,EAAE,CAC5F,EACQ+F,EAAe5V,GAAqBlZ,CAAM,EAC1C+uB,EAAe5T,EAAG,KAAK2T,EAAc39W,CAAO,EAC5C69W,EAAW1W,EAAS,OAAO,IAAMyW,EAAc,cAAc,EACnE,OAAAC,EAAS,KAAK,QAAS,uBAAuB,EAC1CzQ,GAAa5jP,EAAK,OAAS,aAC7Bq0P,EAAS,UAAU,MAAM,EAAE,KAAK,QAASzQ,CAAS,EAEhD3hB,GAAcjiO,EAAK,OAAS,aAC9Bq0P,EAAS,UAAU,MAAM,EAAE,KAAK,QAASpyB,CAAU,EAErDoc,GAAiBr+O,EAAMq0P,CAAQ,EAC/Br0P,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAMqlO,EAAQ/4I,CAAK,CAE3D,EACOqxJ,CACT,CACAr6C,EAAOwwD,IAAe,eAAe,EAIrC,eAAeQ,IAAWn/U,EAAQ6qF,EAAM,CACtC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,MAAArzN,GAAU,MAAMi2N,GAAYroU,EAAQ6qF,EAAMs+O,GAAet+O,CAAI,CAAC,EAChFnwH,EAAI,KAAK,IAAI+qW,EAAK,OAAS56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,QAAS,CAAC,EACnE5wH,EAAI,KAAK,IAAIwrW,EAAK,QAAU56O,EAAK,SAAW,GAAK,GAAGA,GAAA,YAAAA,EAAM,SAAU,CAAC,EACrE6oP,EAAa,EACb9+W,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACT,CAAE,UAAAw0W,CAAS,EAAK5jP,EAChBwgP,EAAK+T,GAAQ,IAAI5W,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0uP,EAAkB,CACtB,CAAE,EAAG3kX,EAAI8+W,EAAY,EAAG7+W,EAAI6+W,CAAU,EACtC,CAAE,EAAG9+W,EAAI8+W,EAAY,EAAG7+W,EAAIoF,CAAC,EAC7B,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAIoF,CAAC,EACpB,CAAE,EAAGrF,EAAI8F,EAAG,EAAG7F,EAAI6+W,CAAU,CACjC,EACQpxW,EAAO,IAAI1N,EAAI8+W,CAAU,IAAI7+W,EAAI6+W,CAAU,KAAK9+W,EAAI8F,CAAC,IAAI7F,EAAI6+W,CAAU,KAAK9+W,EAAI8F,CAAC,IAAI7F,EAAIoF,CAAC,KAAKrF,EAAI8+W,CAAU,IAAI7+W,EAAIoF,CAAC,KAAKrF,EAAI8+W,CAAU,IAAI7+W,EAAI6+W,CAAU;AAAA,mBAChJ9+W,EAAI8+W,CAAU,IAAI7+W,CAAC,KAAKD,EAAI8F,CAAC,IAAI7F,CAAC;AAAA,mBAClCD,CAAC,IAAIC,EAAI6+W,CAAU,KAAK9+W,CAAC,IAAIC,EAAIoF,CAAC,GAC/C4wH,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM0kG,EAAKslQ,EAAG,KAAK/oW,EAAMjB,CAAO,EAC1Bg+W,EAAc7W,EAAS,OAAO,IAAMziQ,EAAI,cAAc,EAC5D,OAAAs5Q,EAAY,KAAK,YAAa,aAAa3L,EAAa,CAAC,KAAKA,EAAa,CAAC,GAAG,EAC/E2L,EAAY,KAAK,QAAS,uBAAuB,EAC7C5Q,GAAa5jP,EAAK,OAAS,aAC7Bw0P,EAAY,UAAU,MAAM,EAAE,KAAK,QAAS5Q,CAAS,EAEnD3hB,GAAcjiO,EAAK,OAAS,aAC9Bw0P,EAAY,UAAU,MAAM,EAAE,KAAK,QAASvyB,CAAU,EAExD16M,EAAM,KACJ,YACA,aAAa,EAAEqzN,EAAK,MAAQ,GAAKiO,EAAa,GAAKjO,EAAK,GAAKA,EAAK,MAAQ,GAAG,KAAK,EAAEA,EAAK,OAAS,GAAKiO,EAAa,GAAKjO,EAAK,GAAKA,EAAK,KAAO,GAAG,GACtJ,EACEyD,GAAiBr+O,EAAMw0P,CAAW,EAClCx0P,EAAK,UAAY,SAASssF,EAAO,CAE/B,OADYq3J,GAAkB,QAAQ3jP,EAAM0uP,EAAiBpiK,CAAK,CAEpE,EACOqxJ,CACT,CACAr6C,EAAOgxD,IAAY,YAAY,EAK/B,eAAeG,GAAMt/U,EAAQ6qF,EAAM,eACjC,MAAM00P,EAAa10P,EAInB,GAHI00P,EAAW,QACb10P,EAAK,MAAQ00P,EAAW,OAEtB10P,EAAK,OAAS,YAAa,CAC7B,KAAM,CAAE,eAAgB20P,CAAe,EAAK9nD,GAAS,EAC/C,CAAE,WAAA+nD,EAAU,EAAKD,EACjBE,GAAiB,CACrB,GAAG70P,EACH,GAAIA,EAAK,GAAK,cACd,KAAM,UACN,UAAW,CAAC,eAAgB,SAAS40P,EAAU,EAAE,CACvD,EACI,MAAMH,GAAMt/U,EAAQ0/U,EAAc,CACpC,CACA,MAAMt9U,EAASs1R,GAAS,EACxB7sM,EAAK,cAAgBzoF,EAAO,WAC5B,IAAIu9U,IAAUjpV,EAAA0L,EAAO,KAAP,YAAA1L,EAAW,iBAAkB,GACvCkpV,IAAe9yU,EAAA1K,EAAO,KAAP,YAAA0K,EAAW,gBAAiB,EAC/C,KAAM,CAAE,UAAA2hU,CAAS,EAAK5jP,EAChB,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtD,GAAI00P,EAAW,WAAW,SAAW,GAAK10P,EAAK,MAAO,CACpD,MAAMyxO,EAAW,CACf,GAAI,EACJ,GAAI,EACJ,cAAeqjB,EACf,cAAeA,EAAU,GAE3B,EACIptB,GAAmB1nO,EAAK,MAAOzoF,CAAM,EAAIk6T,EAAS,cAAgB,EAAIl6T,EAAO,GAAG,iBAClFyoF,EAAK,MAAQzoF,EAAO,GAAG,gBAEzB,MAAMy9U,GAAY,MAAM7H,GAASh4U,EAAQ6qF,EAAMyxO,CAAQ,EACvD,GAAI,CAAC16O,GAASx/E,EAAO,UAAU,EAAG,CAChC,MAAMujU,GAAcka,GAAU,OAAO,MAAM,EACrCpa,IAAO/9R,GAAAi+R,GAAY,KAAI,IAAhB,YAAAj+R,GAAoB,UACjCi+R,GAAY,KAAK,YAAa,aAAa,CAACF,GAAK,MAAQ,CAAC,MAAM,CAClE,CACA,OAAOoa,EACT,CACKz9U,EAAO,aACVu9U,GAAW,KACXC,GAAgB,MAElB,IAAIrX,EAAaY,GAAet+O,CAAI,EAC/B09O,IACHA,EAAa,gBAEf,MAAMC,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASuoU,CAAU,EAAE,KAAK,KAAM19O,EAAK,OAASA,EAAK,EAAE,EACxFi1P,EAAW,MAAMC,GAAQvX,EAAU39O,EAAK,OAAS,GAAIzoF,EAAQ,EAAG,EAAG,CAAC,MAAM,EAAGyqT,CAAW,EAC9FizB,EAAS,QAAUF,EACnB,IAAII,EAAU,EACd,MAAMC,EAAW,GACX72F,EAAO,GACb,IAAI82F,EAAe,EACfC,EAAe,EACfC,EAAe,EACfC,EAAkB,EAClBC,EAAc,GACdC,EAAiB,GACrB,UAAWlgJ,KAAak/I,EAAW,WAAY,CAC7C,MAAMiB,GAAW,MAAMT,GACrBvX,EACAnoI,EAAU,KACVj+L,EACA,EACA49U,EACA,CAAC,gBAAgB,EACjBnzB,CACN,EACIqzB,EAAe,KAAK,IAAIA,EAAcM,GAAS,MAAQb,CAAO,EAC9D,MAAMc,GAAY,MAAMV,GACtBvX,EACAnoI,EAAU,KACVj+L,EACA,EACA49U,EACA,CAAC,gBAAgB,EACjBnzB,CACN,EACIszB,EAAe,KAAK,IAAIA,EAAcM,GAAU,MAAQd,CAAO,EAC/D,MAAMe,GAAW,MAAMX,GACrBvX,EACAnoI,EAAU,KAAK,KAAI,EACnBj+L,EACA,EACA49U,EACA,CAAC,gBAAgB,EACjBnzB,CACN,EACIuzB,EAAe,KAAK,IAAIA,EAAcM,GAAS,MAAQf,CAAO,EAC9D,MAAMgB,GAAc,MAAMZ,GACxBvX,EACAnoI,EAAU,QACVj+L,EACA,EACA49U,EACA,CAAC,mBAAmB,EACpBnzB,CACN,EACIwzB,EAAkB,KAAK,IAAIA,EAAiBM,GAAY,MAAQhB,CAAO,EACvE,MAAMiB,GAAY,KAAK,IAAIJ,GAAS,OAAQC,GAAU,OAAQC,GAAS,OAAQC,GAAY,MAAM,EAAIf,EACrGx2F,EAAK,KAAK,CAAE,QAAA42F,EAAS,UAAAY,EAAS,CAAE,EAChCZ,GAAWY,EACb,CACA,IAAIC,EAAqB,EACrBT,GAAgBT,IAClBW,EAAc,GACdF,EAAe,EACfS,KAEER,GAAmBV,IACrBY,EAAiB,GACjBF,EAAkB,EAClBQ,KAEF,MAAMC,EAAYtY,EAAS,KAAI,EAAG,QAAO,EACzC,GAAIsX,EAAS,MAAQH,EAAU,GAAKO,EAAeC,EAAeC,EAAeC,GAAmB,EAAG,CACrG,MAAMz0L,EAAak0L,EAAS,MAAQH,EAAU,GAAKO,EAAeC,EAAeC,EAAeC,GAChGH,GAAgBt0L,EAAai1L,EAC7BV,GAAgBv0L,EAAai1L,EACzBT,EAAe,IACjBA,GAAgBx0L,EAAai1L,GAE3BR,EAAkB,IACpBA,GAAmBz0L,EAAai1L,EAEpC,CACA,MAAMvjE,EAAW4iE,EAAeC,EAAeC,EAAeC,EACxDhV,EAAK0V,GAAQ,IAAIvY,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,IAAI2/W,EAAuB,EACvB53F,EAAK,OAAS,IAChB43F,EAAuB53F,EAAK,OAAO,CAAC5sF,EAAK8sF,KAAQ9sF,IAAO8sF,IAAA,YAAAA,GAAK,YAAa,GAAI,CAAC,GAEjF,MAAM5uR,EAAI,KAAK,IAAIomX,EAAU,MAAQnB,EAAU,GAAG90P,GAAA,YAAAA,EAAM,QAAS,EAAGyyL,CAAQ,EACtErjT,EAAI,KAAK,KAAK+mX,GAAwB,GAAKlB,EAAS,QAAQj1P,GAAA,YAAAA,EAAM,SAAU,CAAC,EAC7Ej2H,EAAI,CAAC8F,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACfuuW,EAAS,UAAU,qBAAqB,EAAE,KAAK,CAACpgW,EAAG9L,GAAG6lM,KAAU,CAC9D,MAAM28J,GAAQmiB,GAAQ9+K,GAAM7lM,EAAC,CAAC,EACxB4lJ,GAAY48M,GAAM,KAAK,WAAW,EACxC,IAAIoiB,GAAa,EACbC,GAAa,EACjB,GAAIj/N,GAAW,CAEb,MAAM6mL,GADQ,OAAO,8BAA8B,EAC3B,KAAK7mL,EAAS,EAClC6mL,KACFm4C,GAAa,WAAWn4C,GAAU,CAAC,CAAC,EACpCo4C,GAAa,WAAWp4C,GAAU,CAAC,CAAC,EAChC+1B,GAAM,KAAK,OAAO,EAAE,SAAS,gBAAgB,EAC/CoiB,IAAchB,EACLphB,GAAM,KAAK,OAAO,EAAE,SAAS,gBAAgB,EACtDoiB,IAAchB,EAAeC,EACpBrhB,GAAM,KAAK,OAAO,EAAE,SAAS,mBAAmB,IACzDoiB,IAAchB,EAAeC,EAAeC,GAGlD,CACAthB,GAAM,KACJ,YACA,aAAalqW,EAAI+qX,EAAU,EAAIuB,EAAU,KAAKC,GAAatsX,EAAIirX,EAAS,OAASF,EAAe,CAAC,GACvG,CACE,CAAC,EACDpX,EAAS,OAAO,OAAO,EAAE,KAAK,YAAa,aAAe,CAACsX,EAAS,MAAQ,EAAI,MAAQjrX,EAAI+qX,EAAe,GAAK,GAAG,EACnH,MAAMwB,EAAY/V,EAAG,UAAUz2W,EAAGC,EAAG6F,EAAGT,EAAGoH,CAAO,EAC5C+pW,EAAQ5C,EAAS,OAAO,IAAM4Y,EAAW,cAAc,EAAE,KAAK,QAAS3S,EAAU,KAAK,EAAE,CAAC,EACzF,CAAE,eAAAv3C,CAAc,EAAKQ,GAAS,EAC9B,CAAE,QAAA2pD,EAAS,OAAAC,EAAQ,WAAAp0B,CAAU,EAAKh2B,EACxC+oD,EAAS,KAAK,CAAC,EACf,SAAW,CAAC3jX,EAAGgtR,EAAG,IAAKF,EAAK,QAAO,EAAI,CAErC,MAAMm4F,IADkBjlX,EAAI,GACK,IAAM,GAAKgtR,GAAI,UAAY,EACtDk4F,GAAanW,EAAG,UAAUz2W,EAAGkrX,EAAS,OAASjrX,GAAIy0R,IAAA,YAAAA,GAAK,SAAS5uR,EAAG4uR,IAAA,YAAAA,GAAK,UAAW,CACxF,GAAGjoR,EACH,KAAMkgX,GAASF,EAAUC,EACzB,OAAQp0B,CACd,CAAK,EACDsb,EAAS,OAAO,IAAMgZ,GAAY,SAAS,EAAE,KAAK,QAAS/S,EAAU,KAAK,EAAE,CAAC,EAAE,KAAK,QAAS,YAAY8S,GAAS,OAAS,KAAK,EAAE,CACpI,CACA,IAAIpG,EAAY9P,EAAG,KAAKz2W,EAAGkrX,EAAS,OAASjrX,EAAG6F,EAAI9F,EAAGkrX,EAAS,OAASjrX,EAAGwM,CAAO,EACnFmnW,EAAS,OAAO,IAAM2S,CAAS,EAAE,KAAK,QAAS,SAAS,EACxDA,EAAY9P,EAAG,KAAK6U,EAAetrX,EAAGkrX,EAAS,OAASjrX,EAAGqrX,EAAetrX,EAAGqF,EAAIpF,EAAGwM,CAAO,EAC3FmnW,EAAS,OAAO,IAAM2S,CAAS,EAAE,KAAK,QAAS,SAAS,EACpDmF,IACFnF,EAAY9P,EAAG,KACb6U,EAAeC,EAAevrX,EAC9BkrX,EAAS,OAASjrX,EAClBqrX,EAAeC,EAAevrX,EAC9BqF,EAAIpF,EACJwM,CACN,EACImnW,EAAS,OAAO,IAAM2S,CAAS,EAAE,KAAK,QAAS,SAAS,GAEtDoF,IACFpF,EAAY9P,EAAG,KACb6U,EAAeC,EAAeC,EAAexrX,EAC7CkrX,EAAS,OAASjrX,EAClBqrX,EAAeC,EAAeC,EAAexrX,EAC7CqF,EAAIpF,EACJwM,CACN,EACImnW,EAAS,OAAO,IAAM2S,CAAS,EAAE,KAAK,QAAS,SAAS,GAE1D,UAAWsG,KAAYxB,EACrB9E,EAAY9P,EAAG,KACbz2W,EACAkrX,EAAS,OAASjrX,EAAI4sX,EACtB/mX,EAAI9F,EACJkrX,EAAS,OAASjrX,EAAI4sX,EACtBpgX,CACN,EACImnW,EAAS,OAAO,IAAM2S,CAAS,EAAE,KAAK,QAAS,SAAS,EAG1D,GADAjS,GAAiBr+O,EAAMugP,CAAK,EACxBte,GAAcjiO,EAAK,OAAS,YAAa,CAC3C,MAAM62P,EAAW50B,EAAW,MAAM,GAAG,EAC/B60B,IAAepxR,GAAAmxR,GAAA,YAAAA,EAAU,OAAQ5nX,IAC9BA,GAAE,SAAS,QAAQ,KADP,YAAAy2F,GAEjB,IAAKzpF,IAAM,GAAGA,EAAC,IAAI,KAAK,MAC5B0hW,EAAS,UAAU,MAAM,EAAE,KAAK,QAASmZ,IAAgB,EAAE,EAC3DnZ,EAAS,UAAU,qBAAqB,EAAE,KAAK,QAAS1b,CAAU,CACpE,CACA,OAAAjiO,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAOmxD,GAAO,OAAO,EACrB,eAAeS,GAAQvX,EAAUoZ,EAAWx/U,EAAQ8+U,EAAa,EAAGC,EAAa,EAAGhnU,EAAU,GAAI6vJ,EAAQ,GAAI,CAC5G,MAAM53D,EAAQo2N,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,SAASruT,EAAQ,KAAK,GAAG,CAAC,EAAE,EAAE,KAAK,YAAa,aAAa+mU,CAAU,KAAKC,CAAU,GAAG,EAAE,KAAK,QAASn3K,CAAK,EAC3J43K,IAActoD,IAAkBsoD,CAAS,IAC3CA,EAAYtoD,IAAkBsoD,CAAS,EACvCA,EAAYA,EAAU,WAAW,IAAK,MAAM,EAAE,WAAW,IAAK,MAAM,GAEtE,MAAM9iB,EAAQ1sN,EAAM,KAAI,EAAG,YACzB,MAAMg1N,GACJh1N,EACAwvO,EACA,CACE,MAAOrvB,GAAmBqvB,EAAWx/U,CAAM,EAAI,IAC/C,MAAA4nK,EACA,cAAe5nK,EAAO,UAC9B,EACMA,CACN,CACA,EACE,GAAIw/U,EAAU,SAAS,MAAM,GAAKA,EAAU,SAAS,MAAM,EAAG,CAC5D,IAAInhV,EAAQq+T,EAAM,SAAS,CAAC,EAE5B,IADAr+T,EAAM,YAAcA,EAAM,YAAY,WAAW,OAAQ,GAAG,EAAE,WAAW,OAAQ,GAAG,EAC7EA,EAAM,WAAW,CAAC,GACvBA,EAAQA,EAAM,WAAW,CAAC,EAC1BA,EAAM,YAAcA,EAAM,YAAY,WAAW,OAAQ,GAAG,EAAE,WAAW,OAAQ,GAAG,CAExF,CACA,IAAIglU,EAAO3G,EAAM,QAAO,EACxB,GAAIl9O,GAASx/E,EAAO,UAAU,EAAG,CAC/B,MAAMqkN,EAAMq4G,EAAM,SAAS,CAAC,EAC5Br4G,EAAI,MAAM,UAAY,QACtB,MAAMkiH,EAAKsY,GAAQniB,CAAK,EACxB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,CACA,OAAOA,CACT,CACAt3C,EAAO4xD,GAAS,SAAS,EAQzB,eAAe8B,IAAW7hV,EAAQ6qF,EAAMzoF,EAAQklU,EAAewa,EAAM1/U,EAAO,MAAM,SAAW,GAAI,CAC/F,MAAMw9U,EAAgBtY,EAAoB,EAAJ,EAChCkB,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASmpU,GAAet+O,CAAI,CAAC,EAAE,KAAK,KAAMA,EAAK,OAASA,EAAK,EAAE,EACxG,IAAIk3P,EAAkB,KAClBzb,EAAa,KACb0b,EAAe,KACfC,EAAe,KACfC,EAAwB,EACxBC,EAAmB,EACnBC,EAAqB,EAEzB,GADAL,EAAkBvZ,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,uBAAuB,EACxE39O,EAAK,YAAY,OAAS,EAAG,CAC/B,MAAM45K,EAAa55K,EAAK,YAAY,CAAC,EACrC,MAAMw3P,GAASN,EAAiB,CAAE,KAAM,IAAOt9E,CAAU,GAAM,EAAI,CAAC,EAEpEy9E,EAD4BH,EAAgB,KAAI,EAAG,QAAO,EACd,MAC9C,CACAzb,EAAakC,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,kBAAkB,EAClE,MAAM6Z,GAAS/b,EAAYz7O,EAAM,EAAG,CAAC,qBAAqB,CAAC,EAC3D,MAAMy3P,EAAiBhc,EAAW,KAAI,EAAG,QAAO,EAChD6b,EAAmBG,EAAe,OAClCN,EAAexZ,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,oBAAoB,EACtE,IAAIwX,EAAU,EACd,UAAWvsJ,KAAU5oG,EAAK,QAAS,CACjC,MAAMtxE,EAAS,MAAM8oU,GAASL,EAAcvuJ,EAAQusJ,EAAS,CAACvsJ,EAAO,gBAAe,CAAE,CAAC,EACvFusJ,GAAWzmU,EAASqmU,CACtB,CACAwC,EAAqBJ,EAAa,OAAO,QAAO,EAAG,OAC/CI,GAAsB,IACxBA,EAAqBN,EAAM,GAE7BG,EAAezZ,EAAS,OAAO,GAAG,EAAE,KAAK,QAAS,oBAAoB,EACtE,IAAI+Z,EAAiB,EACrB,UAAWnhW,KAAUypG,EAAK,QAAS,CACjC,MAAMtxE,EAAS,MAAM8oU,GAASJ,EAAc7gW,EAAQmhW,EAAgB,CAACnhW,EAAO,gBAAe,CAAE,CAAC,EAC9FmhW,GAAkBhpU,EAASqmU,CAC7B,CACA,IAAIna,EAAO+C,EAAS,KAAI,EAAG,QAAO,EAClC,GAAIuZ,IAAoB,KAAM,CAC5B,MAAMS,EAAsBT,EAAgB,KAAI,EAAG,QAAO,EAC1DA,EAAgB,KAAK,YAAa,aAAa,CAACS,EAAoB,MAAQ,CAAC,GAAG,CAClF,CACA,OAAAlc,EAAW,KAAK,YAAa,aAAa,CAACgc,EAAe,MAAQ,CAAC,KAAKJ,CAAqB,GAAG,EAChGzc,EAAO+C,EAAS,KAAI,EAAG,QAAO,EAC9BwZ,EAAa,KACX,YACA,gBAAmBE,EAAwBC,EAAmBL,EAAM,CAAC,GACzE,EACErc,EAAO+C,EAAS,KAAI,EAAG,QAAO,EAC9ByZ,EAAa,KACX,YACA,gBAAmBC,EAAwBC,GAAoBC,EAAqBA,EAAqBN,EAAM,EAAIA,EAAM,EAAE,GAC/H,EACErc,EAAO+C,EAAS,KAAI,EAAG,QAAO,EACvB,CAAE,SAAAA,EAAU,KAAA/C,CAAI,CACzB,CACAt3C,EAAO0zD,IAAY,YAAY,EAC/B,eAAeQ,GAASI,EAAa53P,EAAMm1P,EAASx0K,EAAS,GAAI,CAC/D,MAAMk3K,EAASD,EAAY,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,QAASj3K,EAAO,KAAK,IAAI,CAAC,EACvFppK,EAASs1R,GAAS,EACxB,IAAI4vC,EAAgB,kBAAmBz8O,EAAOA,EAAK,cAAgBjJ,GAASx/E,EAAO,UAAU,GAAK,GAC9FugV,EAAc,GACd,SAAU93P,EACZ83P,EAAc93P,EAAK,KAEnB83P,EAAc93P,EAAK,MAEjB,CAACy8O,GAAiBqb,EAAY,WAAW,IAAI,IAC/CA,EAAcA,EAAY,UAAU,CAAC,GAEnCvoD,GAASuoD,CAAW,IACtBrb,EAAgB,IAElB,MAAMxI,EAAQ,MAAMsI,GAClBsb,EACA9lD,GAAc43B,GAAemuB,CAAW,CAAC,EACzC,CACE,MAAOpwB,GAAmBowB,EAAavgV,CAAM,EAAI,GAEjD,QAAS,sBACT,cAAAklU,CACN,EACIllU,CACJ,EACE,IAAIqjU,EACAmd,EAAgB,EACpB,GAAKtb,EAiBE,CACL,MAAM7gH,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAKka,GAAQ/jB,CAAK,EACxB8jB,EAAgBn8H,EAAI,UAAU,MAAM,MAAM,EAAE,OACxCA,EAAI,UAAU,SAAS,SAAS,IAClCm8H,GAAiBn8H,EAAI,UAAU,MAAM,QAAQ,EAAE,OAAS,GAE1D,MAAMjrL,EAASirL,EAAI,qBAAqB,KAAK,EAC7C,GAAIjrL,EAAQ,CACV,MAAMotS,EAAY+Z,EAAY,QAAQ,cAAe,EAAE,EAAE,KAAI,IAAO,GACpE,MAAM,QAAQ,IACZ,CAAC,GAAGnnT,CAAM,EAAE,IACTguJ,GAAQ,IAAI,QAASloK,GAAQ,CAC5B,SAASunT,GAAa,OAGpB,GAFAr/I,EAAI,MAAM,QAAU,OACpBA,EAAI,MAAM,cAAgB,SACtBo/I,EAAW,CACb,MAAME,IAAepyU,EAAA0L,EAAO,WAAP,YAAA1L,EAAiB,aAAc,OAAO,iBAAiB,SAAS,IAAI,EAAE,SAErF0pF,EAAQ,SAAS0oP,EAAc,EAAE,EADf,EACqC,KAC7Dt/I,EAAI,MAAM,SAAWppG,EACrBopG,EAAI,MAAM,SAAWppG,CACvB,MACEopG,EAAI,MAAM,MAAQ,OAEpBloK,EAAIkoK,CAAG,CACT,CACA2kG,EAAO06C,EAAY,YAAY,EAC/B,WAAW,IAAM,CACXr/I,EAAI,UACNq/I,EAAU,CAEd,CAAC,EACDr/I,EAAI,iBAAiB,QAASq/I,CAAU,EACxCr/I,EAAI,iBAAiB,OAAQq/I,CAAU,CACzC,CAAC,CACX,CACA,CACI,CACApD,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,KA3DoB,CACdj6J,EAAO,SAAS,qBAAqB,GACvCq3K,GAAQ/jB,CAAK,EAAE,UAAU,OAAO,EAAE,KAAK,cAAe,EAAE,EAE1D8jB,EAAgB9jB,EAAM,SAAS,OAC/B,MAAMgkB,EAAYhkB,EAAM,SAAS,CAAC,GAC9BA,EAAM,cAAgB,IAAMA,EAAM,YAAY,SAAS,KAAK,KAC9DgkB,EAAU,YAAcH,EAAY,CAAC,EAAIA,EAAY,UAAU,CAAC,EAAE,WAAW,OAAQ,GAAG,EAAE,WAAW,OAAQ,GAAG,EAAE,KAAI,EAChGA,EAAY,CAAC,IAAM,MAEvCG,EAAU,YAAcA,EAAU,YAAY,CAAC,EAAI,IAAMA,EAAU,YAAY,UAAU,CAAC,IAG1FA,EAAU,cAAgB,cAC5BA,EAAU,YAAc,IAE1Brd,EAAO3G,EAAM,QAAO,CACtB,CA2CA,OAAA4jB,EAAO,KAAK,YAAa,gBAAkB,CAACjd,EAAK,QAAU,EAAImd,GAAiB5C,GAAW,GAAG,EACvFva,EAAK,MACd,CACAt3C,EAAOk0D,GAAU,SAAS,EAG1B,eAAeU,IAAS/iV,EAAQ6qF,EAAM,SACpC,MAAMzoF,EAAS26R,GAAU,EACnB4iD,EAAUv9U,EAAO,MAAM,SAAW,GAClC0/U,EAAMnC,EACNrY,EAAgBz8O,EAAK,eAAiBjJ,GAASx/E,EAAO,UAAU,GAAK,GACrE4gV,EAAYn4P,EAClBm4P,EAAU,YAAcA,EAAU,aAAe,GACjDA,EAAU,QAAUA,EAAU,SAAW,GACzCA,EAAU,QAAUA,EAAU,SAAW,GACzC,KAAM,CAAE,SAAAxa,EAAU,KAAA/C,CAAI,EAAK,MAAMoc,IAAW7hV,EAAQ6qF,EAAMzoF,EAAQklU,EAAewa,CAAG,EAC9E,CAAE,YAAAj1B,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClBhiO,EAAK,UAAYm4P,EAAU,QAAU,GACrC,MAAMx3K,IAAS90K,EAAAssV,EAAU,SAAV,YAAAtsV,EAAkB,KAAK,OAAQo2T,GAAc,GACvDjiO,EAAK,YACRA,EAAK,UAAY2gF,EAAO,WAAW,aAAc,EAAE,EAAE,MAAM,GAAG,GAEhE,MAAMy3K,EAAiBD,EAAU,QAAQ,SAAW,GAAKA,EAAU,QAAQ,SAAW,GAAK,GAACl2U,EAAA1K,EAAO,QAAP,MAAA0K,EAAc,qBACpGu+T,EAAK6X,GAAQ,IAAI1a,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM3G,EAAI+qW,EAAK,MACf,IAAIxrW,EAAIwrW,EAAK,OACTud,EAAU,QAAQ,SAAW,GAAKA,EAAU,QAAQ,SAAW,EACjE/oX,GAAK6nX,EACIkB,EAAU,QAAQ,OAAS,GAAKA,EAAU,QAAQ,SAAW,IACtE/oX,GAAK6nX,EAAM,GAEb,MAAM,EAAI,CAACpnX,EAAI,EACT7F,EAAI,CAACoF,EAAI,EACTmnX,EAAY/V,EAAG,UACnB,EAAIsU,EACJ9qX,EAAI8qX,GAAWsD,EAAiBtD,EAAUqD,EAAU,QAAQ,SAAW,GAAKA,EAAU,QAAQ,SAAW,EAAI,CAACrD,EAAU,EAAI,GAC5HjlX,EAAI,EAAIilX,EACR1lX,EAAI,EAAI0lX,GAAWsD,EAAiBtD,EAAU,EAAIqD,EAAU,QAAQ,SAAW,GAAKA,EAAU,QAAQ,SAAW,EAAI,CAACrD,EAAU,GAChIt+W,CACJ,EACQ+pW,EAAQ5C,EAAS,OAAO,IAAM4Y,EAAW,cAAc,EAC7DhW,EAAM,KAAK,QAAS,uBAAuB,EAC3C,MAAM+X,EAAW/X,EAAM,KAAI,EAAG,QAAO,EACrC5C,EAAS,UAAU,OAAO,EAAE,KAAK,CAACpgW,EAAG9L,EAAG6lM,IAAU,OAChD,MAAM28J,EAAQskB,GAAQjhL,EAAM7lM,CAAC,CAAC,EACxB4lJ,EAAY48M,EAAM,KAAK,WAAW,EACxC,IAAIqiB,EAAa,EACjB,GAAIj/N,EAAW,CAEb,MAAM6mL,EADQ,OAAO,8BAA8B,EAC3B,KAAK7mL,CAAS,EAClC6mL,IACFo4C,EAAa,WAAWp4C,EAAU,CAAC,CAAC,EAExC,CACA,IAAIs6C,EAAgBlC,EAAatsX,EAAI8qX,GAAWsD,EAAiBtD,EAAUqD,EAAU,QAAQ,SAAW,GAAKA,EAAU,QAAQ,SAAW,EAAI,CAACrD,EAAU,EAAI,GACxJrY,IACH+b,GAAiB,GAEnB,IAAIC,EAAgB,GAChBxkB,EAAM,KAAK,OAAO,EAAE,SAAS,aAAa,GAAKA,EAAM,KAAK,OAAO,EAAE,SAAS,kBAAkB,KAChGwkB,EAAgB,GAAC5sV,EAAAooU,EAAM,KAAI,IAAV,YAAApoU,EAAc,UAAU,OAAQ,GAAK,EACtD8xU,EAAS,UAAU,MAAM,EAAE,KAAK,SAAS+a,EAAIC,EAAIC,EAAQ,CACnD,OAAO,iBAAiBA,EAAOD,CAAE,CAAC,EAAE,aAAe,WACrDF,EAAgB,EAEpB,CAAC,GAEHxkB,EAAM,KAAK,YAAa,aAAawkB,CAAa,KAAKD,CAAa,GAAG,CACzE,CAAC,EACD,MAAMnB,EAAwB1Z,EAAS,OAAO,mBAAmB,EAAE,KAAI,EAAG,QAAO,EAAG,QAAUya,EAAiBtD,EAAU,EAAI,IAAM,EAC7HwC,EAAmB3Z,EAAS,OAAO,cAAc,EAAE,KAAI,EAAG,QAAO,EAAG,QAAUya,EAAiBtD,EAAU,EAAI,IAAM,EACnHyC,EAAqB5Z,EAAS,OAAO,gBAAgB,EAAE,KAAI,EAAG,QAAO,EAAG,QAAUya,EAAiBtD,EAAU,EAAI,IAAM,EAC7H,GAAIqD,EAAU,QAAQ,OAAS,GAAKA,EAAU,QAAQ,OAAS,GAAKC,EAAgB,CAClF,MAAM9H,EAAY9P,EAAG,KACnB8X,EAAS,EACTjB,EAAwBC,EAAmBttX,EAAI8qX,EAC/CwD,EAAS,EAAIA,EAAS,MACtBjB,EAAwBC,EAAmBttX,EAAI8qX,EAC/Ct+W,CACN,EACiBmnW,EAAS,OAAO,IAAM2S,CAAS,EACvC,KAAK,QAAS,SAAS,EAAE,KAAK,QAAS3vK,CAAM,CACpD,CACA,GAAIy3K,GAAkBD,EAAU,QAAQ,OAAS,GAAKA,EAAU,QAAQ,OAAS,EAAG,CAClF,MAAM7H,EAAY9P,EAAG,KACnB8X,EAAS,EACTjB,EAAwBC,EAAmBC,EAAqBvtX,EAAIitX,EAAM,EAAInC,EAC9EwD,EAAS,EAAIA,EAAS,MACtBjB,EAAwBC,EAAmBC,EAAqBvtX,EAAI8qX,EAAUmC,EAAM,EACpFzgX,CACN,EACiBmnW,EAAS,OAAO,IAAM2S,CAAS,EACvC,KAAK,QAAS,SAAS,EAAE,KAAK,QAAS3vK,CAAM,CACpD,CAWA,GAVIw3K,EAAU,OAAS,aACrBxa,EAAS,UAAU,MAAM,EAAE,KAAK,QAASh9J,CAAM,EAEjD4/J,EAAM,OAAO,eAAe,EAAE,KAAK,QAAS5/J,CAAM,EAClDg9J,EAAS,UAAU,UAAU,EAAE,OAAO,MAAM,EAAE,KAAK,QAASh9J,CAAM,EAC9D3gF,EAAK,WACP29O,EAAS,UAAU,MAAM,EAAE,KAAK,QAAS39O,EAAK,UAAU,EAExD29O,EAAS,UAAU,MAAM,EAAE,KAAK,QAASh9J,CAAM,EAE7C,CAAC87J,EAAe,CAClB,MAAMoc,EAAa,OAAO,qBAAqB,EACzCx+W,EAAQw+W,EAAW,KAAKl4K,CAAM,EACpC,GAAItmM,EAAO,CACT,MAAMy+W,EAAaz+W,EAAM,CAAC,EAAE,QAAQ,QAAS,MAAM,EACnDsjW,EAAS,UAAU,OAAO,EAAE,KAAK,QAASmb,CAAU,CACtD,SAAW92B,EAAa,CACtB,MAAM+2B,EAASF,EAAW,KAAK72B,CAAW,EAC1C,GAAI+2B,EAAQ,CACV,MAAMD,EAAaC,EAAO,CAAC,EAAE,QAAQ,QAAS,MAAM,EACpDpb,EAAS,UAAU,OAAO,EAAE,KAAK,QAASmb,CAAU,CACtD,CACF,CACF,CACA,OAAAza,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO40D,IAAU,UAAU,EAK3B,eAAec,IAAe7jV,EAAQ6qF,EAAM,SAC1C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,MAAMi3B,EAAkBj5P,EAClBk5P,EAAcl5P,EACdjH,EAAU,GACVqtF,EAAM,GACN+yK,EAAoB,iBAAkBn5P,EACtC1wE,EAAUgvT,GAAet+O,CAAI,EAC7B29O,EAAWxoU,EAAO,OAAO,GAAG,EAAE,KAAK,QAASma,CAAO,EAAE,KAAK,KAAM0wE,EAAK,OAASA,EAAK,EAAE,EAC3F,IAAIo5P,EACAD,EACFC,EAAa,MAAMC,GACjB1b,EACA,WAAWsb,EAAgB,IAAI,WAC/B,EACAj5P,EAAK,UACX,EAEIo5P,EAAa,MAAMC,GAAS1b,EAAU,0BAA2B,EAAG39O,EAAK,UAAU,EAErF,IAAIs5P,EAAqBF,EACzB,MAAMG,EAAa,MAAMF,GACvB1b,EACAsb,EAAgB,KAChBK,EACAt5P,EAAK,WAAa,sBACtB,EAEE,GADAs5P,GAAsBC,EAAanzK,EAC/B+yK,EAAmB,CACrB,MAAMK,EAAW,MAAMH,GACrB1b,EACA,GAAGsb,EAAgB,cAAgB,OAAOA,EAAgB,aAAa,GAAK,EAAE,GAC9EK,EACAt5P,EAAK,UACX,EACIs5P,GAAsBE,EACtB,MAAMC,EAAa,MAAMJ,GACvB1b,EACA,GAAGsb,EAAgB,KAAO,SAASA,EAAgB,IAAI,GAAK,EAAE,GAC9DK,EACAt5P,EAAK,UACX,EACIs5P,GAAsBG,EACtB,MAAMC,EAAa,MAAML,GACvB1b,EACA,GAAGsb,EAAgB,KAAO,SAASA,EAAgB,IAAI,GAAK,EAAE,GAC9DK,EACAt5P,EAAK,UACX,EACIs5P,GAAsBI,EACtB,MAAML,GACJ1b,EACA,GAAGsb,EAAgB,aAAe,iBAAiBA,EAAgB,YAAY,GAAK,EAAE,GACtFK,EACAt5P,EAAK,UACX,CACE,KAAO,CACL,MAAM25P,EAAc,MAAMN,GACxB1b,EACA,GAAGub,EAAY,KAAO,SAASA,EAAY,IAAI,GAAK,EAAE,GACtDI,EACAt5P,EAAK,UACX,EACIs5P,GAAsBK,EACtB,MAAMN,GACJ1b,EACA,GAAGub,EAAY,OAAS,YAAYA,EAAY,MAAM,GAAK,EAAE,GAC7DI,EACAt5P,EAAK,UACX,CACE,CACA,MAAMmgP,KAAct0U,EAAA8xU,EAAS,KAAI,IAAb,YAAA9xU,EAAiB,UAAU,QAAS,KAAOktF,EACzD+iL,KAAe75P,EAAA07T,EAAS,KAAI,IAAb,YAAA17T,EAAiB,UAAU,SAAU,KAAO82E,EAC3DhvH,EAAI,CAACo2W,EAAa,EAClBn2W,EAAI,CAAC8xS,EAAc,EACnB0kE,EAAKoZ,GAAQ,IAAIjc,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACtCA,EAAK,OAAS,cAChBxpH,EAAQ,UAAY,EACpBA,EAAQ,UAAY,SAEtB,MAAM+/W,EAAY/V,EAAG,UAAUz2W,EAAGC,EAAGm2W,EAAYrkE,EAAatlS,CAAO,EAC/D+pW,EAAQ5C,EAAS,OAAO,IAAM4Y,EAAW,cAAc,EAsB7D,GArBAhW,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASte,CAAU,EACrE0b,EAAS,UAAU,QAAQ,EAAE,KAAK,CAACpgW,EAAG9L,EAAG6lM,IAAU,CACjD,MAAM28J,EAAQ4lB,GAAQviL,EAAM7lM,CAAC,CAAC,EACxB4lJ,EAAY48M,EAAM,KAAK,WAAW,EACxC,IAAIoiB,EAAa,EACbC,EAAa,EACjB,GAAIj/N,EAAW,CAEb,MAAM6mL,EADQ,OAAO,8BAA8B,EAC3B,KAAK7mL,CAAS,EAClC6mL,IACFm4C,EAAa,WAAWn4C,EAAU,CAAC,CAAC,EACpCo4C,EAAa,WAAWp4C,EAAU,CAAC,CAAC,EAExC,CACA,MAAMs6C,EAAgBlC,EAAax6E,EAAc,EACjD,IAAI28E,EAAgB1uX,EAAIgvH,EAAU,GAC9BtnH,IAAM,GAAKA,IAAM,KACnBgnX,EAAgBpC,GAElBpiB,EAAM,KAAK,YAAa,aAAawkB,CAAa,KAAKD,EAAgBz/P,CAAO,GAAG,CACnF,CAAC,EACGugQ,EAAqBF,EAAaG,EAAanzK,EAAK,CACtD,MAAMkqK,EAAY9P,EAAG,KACnBz2W,EACAC,EAAIovX,EAAaG,EAAanzK,EAC9Br8M,EAAIo2W,EACJn2W,EAAIovX,EAAaG,EAAanzK,EAC9B5vM,CACN,EACwBmnW,EAAS,OAAO,IAAM2S,CAAS,EACvC,KAAK,QAASruB,CAAU,CACtC,CACA,OAAAoc,GAAiBr+O,EAAMugP,CAAK,EAC5BvgP,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO01D,IAAgB,gBAAgB,EACvC,eAAeK,GAASzB,EAAakC,EAAW3E,EAASh2K,EAAQ,GAAI,CACnE,GAAI26K,IAAc,GAChB,MAAO,GAET,MAAMjC,EAASD,EAAY,OAAO,GAAG,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,QAASz4K,CAAK,EAC3E5nK,EAAS26R,GAAU,EACnBuqC,EAAgBllU,EAAO,YAAc,GACrC08T,EAAQ,MAAMsI,GAClBsb,EACA9lD,GAAc43B,GAAemwB,CAAS,CAAC,EACvC,CACE,MAAOpyB,GAAmBoyB,EAAWviV,CAAM,EAAI,GAE/C,QAAS,sBACT,cAAAklU,EACA,MAAAt9J,CACN,EACI5nK,CACJ,EACE,IAAIqjU,EACJ,GAAK6B,EAUE,CACL,MAAM7gH,EAAMq4G,EAAM,SAAS,CAAC,EACtB6J,EAAK+b,GAAQ5lB,CAAK,EACxB2G,EAAOh/G,EAAI,sBAAqB,EAChCkiH,EAAG,KAAK,QAASlD,EAAK,KAAK,EAC3BkD,EAAG,KAAK,SAAUlD,EAAK,MAAM,CAC/B,KAhBoB,CAClB,MAAMqd,EAAYhkB,EAAM,SAAS,CAAC,EAClC,UAAWr+T,KAASqiV,EAAU,SAC5BriV,EAAM,YAAcA,EAAM,YAAY,WAAW,OAAQ,GAAG,EAAE,WAAW,OAAQ,GAAG,EAChFupK,GACFvpK,EAAM,aAAa,QAASupK,CAAK,EAGrCy7J,EAAO3G,EAAM,QAAO,EACpB2G,EAAK,QAAU,CACjB,CAOA,OAAAid,EAAO,KAAK,YAAa,aAAa,CAACjd,EAAK,MAAQ,CAAC,IAAI,CAACA,EAAK,OAAS,EAAIua,CAAO,GAAG,EAC/Eva,EAAK,MACd,CACAt3C,EAAO+1D,GAAU,SAAS,EAI1B,IAAIU,IAAoCz2D,EAAQlkH,GAAa,CAC3D,OAAQA,EAAQ,CACd,IAAK,YACH,MAAO,MACT,IAAK,OACH,MAAO,SACT,IAAK,SACH,OAAO,KAET,IAAK,MACH,MAAO,OACT,IAAK,WACH,MAAO,WACb,CACA,EAAG,mBAAmB,EACtB,eAAe46K,IAAW7kV,EAAQ8kV,EAAY,CAAE,OAAA1iV,CAAM,EAAI,SACxD,KAAM,CAAE,YAAAyqT,EAAa,WAAAC,GAAeH,GAAcm4B,CAAU,EAC5DA,EAAW,WAAaj4B,GAAe,GACvC,MAAMyuB,EAAgB,GAChByJ,EAAWD,EAAW,MAC5BA,EAAW,OAASA,EAAW,OAAS,KAAO,GAC/C,KAAM,CACJ,SAAAtc,EACA,KAAA/C,EACA,MAAOuf,CACX,EAAM,MAAM3c,GAAYroU,EAAQ8kV,EAAY3b,GAAe2b,CAAU,CAAC,EAC9DlhQ,EAAUkhQ,EAAW,SAAW,GACtC,IAAIG,EAAY,GACZpzT,EACA,WAAYizT,GAAcA,EAAW,UAAUpuV,EAAA0L,GAAA,YAAAA,EAAQ,SAAR,MAAA1L,EAAgB,iBACjEuuV,GAAYn4U,EAAA1K,GAAA,YAAAA,EAAQ,SAAR,YAAA0K,EAAgB,cAAc,QAAQ,WAAYg4U,EAAW,QACzEjzT,EAAO22S,EAAS,OAAO,QAAS,cAAc,EAAE,KAAK,QAAS,oBAAoB,EAAE,KAAK,aAAcyc,CAAS,EAAE,KAAK,SAAU,QAAQ,GAE3I,MAAM5jX,EAAU,CACd,cAAeyjX,EAAW,cAC1B,WAAYA,EAAW,YAAc,GACrC,MAAOA,EAAW,MAClB,IAAKA,EAAW,IAChB,QAASA,EAAW,SAAW,EAC/B,YAAa,EACjB,EACE,IAAIrc,EAASyc,EACTrzT,EACD,CAAE,MAAO42S,EAAS,KAAMyc,CAAK,EAAK,MAAMjc,GACvCp3S,EACA,WAAYizT,GAAcA,EAAW,QAAU,GAC/CzjX,CACN,EAEK,CAAE,MAAOonW,EAAS,KAAMyc,CAAK,EAAK,MAAMjc,GACvCT,EACA,WAAYsc,GAAcA,EAAW,QAAU,GAC/CzjX,CACN,EAEE,KAAM,CAAE,MAAO8jX,EAAiB,KAAMC,CAAY,EAAK,MAAMnc,GAC3DT,EACA,aAAcsc,GAAcA,EAAW,UAAY,GACnDzjX,CACJ,EACEyjX,EAAW,MAAQC,EACnB,MAAMxJ,EAAgB,GAChBvQ,GAAa8Z,GAAA,YAAAA,EAAY,QAAS,EAClCO,EAAY,KAAK,IAAIH,EAAM,OAAQE,EAAa,MAAM,EAAI,EAC1Dz+E,EAAc,KAAK,IAAI8+D,EAAK,OAAS8V,EAAgB,GAAGuJ,GAAA,YAAAA,EAAY,SAAU,CAAC,EAAIO,EACnFzwX,EAAI,CAACo2W,EAAa,EAClBn2W,EAAI,CAAC8xS,EAAc,EACzBq+E,EAAa,KACX,YACA,cAAgBphQ,EAAUonP,EAAa,GAAK,MAAQ,CAACqa,EAAY5f,EAAK,OAAS,GAAK,GACxF,EACEgD,EAAQ,KACN,YACA,cAAgB7kP,EAAUonP,EAAa,GAAK,MAAQ,CAACqa,EAAY5f,EAAK,OAAS,GAAK,GACxF,EACE0f,EAAgB,KACd,YACA,cAAgBvhQ,EAAUonP,EAAa,EAAIoa,EAAa,MAAQ,EAAI9J,GAAiB,MAAQ,CAAC+J,EAAY5f,EAAK,OAAS,GAAK,GACjI,EACE,IAAI2F,EACJ,KAAM,CAAE,GAAA0B,EAAI,GAAAC,CAAE,EAAK+X,EACb,CAAE,UAAArW,CAAS,EAAKqW,EACtB,GAAIA,EAAW,OAAS,YAAa,CACnC,MAAMzZ,EAAKia,GAAQ,IAAI9c,CAAQ,EACzBlM,EAAWrP,GAAkB63B,EAAY,EAAE,EAC3CvZ,EAAYuB,GAAMC,EAAK1B,EAAG,KAAKN,GAAuBn2W,EAAGC,EAAGm2W,EAAYrkE,EAAammE,GAAM,CAAC,EAAGxQ,CAAQ,EAAI+O,EAAG,UAAUz2W,EAAGC,EAAGm2W,EAAYrkE,EAAa21D,CAAQ,EACrK8O,EAAQ5C,EAAS,OAAO,IAAM+C,EAAW,cAAc,EACvDH,EAAM,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASqD,GAAwB,IAAI,CACzF,KAAO,CACLrD,EAAQ5C,EAAS,OAAO,OAAQ,cAAc,EAC9C4C,EAAM,KAAK,QAAS,+BAA+B,EAAE,KAAK,QAASte,CAAU,EAAE,KAAK,KAAMggB,GAAM,CAAC,EAAE,KAAK,KAAMC,GAAM,CAAC,EAAE,KAAK,IAAKn4W,CAAC,EAAE,KAAK,IAAKC,CAAC,EAAE,KAAK,QAASm2W,CAAU,EAAE,KAAK,SAAUrkE,CAAW,EACrM,MAAM18F,EAAW,aAAc66K,GAAcA,EAAW,SACxD,GAAI76K,EAAU,CACZ,MAAM9zJ,EAAOqyT,EAAS,OAAO,MAAM,EAC7B+c,EAAQ3wX,EAAI,EACZk7U,EAAKj7U,EAAI,KAAK,OAAOi4W,GAAM,GAAK,CAAC,EACjC98B,EAAKn7U,EAAI8xS,EAAc,KAAK,OAAOmmE,GAAM,GAAK,CAAC,EACrD32T,EAAK,KAAK,KAAMovU,CAAK,EAAE,KAAK,KAAMz1C,CAAE,EAAE,KAAK,KAAMy1C,CAAK,EAAE,KAAK,KAAMv1C,CAAE,EAAE,KAAK,eAAgB,GAAG,EAAE,KAAK,SAAU40C,IAAkB36K,CAAQ,CAAC,CAC7I,CACF,CACA,OAAAi/J,GAAiB4b,EAAY1Z,CAAK,EAClC0Z,EAAW,OAASn+E,EACpBm+E,EAAW,UAAY,SAAS3tK,EAAO,CACrC,OAAOq3J,GAAkB,KAAKsW,EAAY3tK,CAAK,CACjD,EACOqxJ,CACT,CACAr6C,EAAO02D,IAAY,YAAY,EAI/B,eAAeW,IAAKxlV,EAAQ6qF,EAAM,CAChC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAAt2N,CAAK,EAAK,MAAMi2N,GACnDroU,EACA6qF,EACAs+O,GAAet+O,CAAI,CACvB,EACQnwH,EAAI+qW,EAAK,MAAQ,GAAKiD,EACtBzuW,EAAIwrW,EAAK,OAAS,EAAIiD,EACtBnuW,EAAI,IAAOG,EACX,CAAE,UAAA+zW,CAAS,EAAK5jP,EAChB07K,EAAWk/D,EAAK,MAAQ,GACxBp4D,EAAYo4D,EAAK,OAAS,GAC1BggB,EAAiB,KAAK,IAAI/qX,EAAG6rS,CAAQ,EACrCm/E,EAAkB,KAAK,IAAIzrX,EAAGozS,CAAS,EAC7Cj7J,EAAM,KAAK,YAAa,aAAa,CAACqzN,EAAK,MAAQ,CAAC,KAAK,CAACA,EAAK,OAAS,CAAC,GAAG,EAC5E,IAAIkgB,EACJ,MAAMrjX,EAAO;AAAA,OACR/H,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,GAAI,OAASC,EAAkB,EAAG;AAAA,OACnEnrX,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,GAAI;AAAA,OACrClrX,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,GAAI;AAAA,OACrClrX,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,GAAI,IAAIC,EAAkB,EAAG;;AAAA,OAE9DnrX,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,GAAI,IAAIC,EAAkB,GAAI;AAAA,OAC/DnrX,EAAI,EAAG,IAAIA,EAAI,EAAG,YAAYmrX,EAAkB,GAAI;AAAA,OACpDnrX,CAAC,IAAIA,CAAC,aAAekrX,EAAiB,GAAI,IAAIC,EAAkB,GAAI;;AAAA,OAEpEnrX,CAAC,IAAIA,CAAC,aAAekrX,EAAiB,GAAI,IAAIC,EAAkB,GAAI;AAAA,OACpEnrX,CAAC,IAAIA,CAAC,UAAU,GAAKkrX,EAAiB,GAAI;AAAA,OAC1ClrX,CAAC,IAAIA,CAAC,UAAU,GAAKkrX,EAAiB,GAAI;AAAA,OAC1ClrX,CAAC,IAAIA,CAAC,UAAU,GAAKkrX,EAAiB,GAAI,IAAI,GAAKC,EAAkB,GAAI;;AAAA,OAEzEnrX,CAAC,IAAIA,CAAC,UAAU,GAAKkrX,EAAiB,EAAG,IAAI,GAAKC,EAAkB,GAAI;AAAA,OACxEnrX,EAAI,EAAG,IAAIA,EAAI,EAAG,eAAiBmrX,EAAkB,GAAI;AAAA,OACzDnrX,CAAC,IAAIA,CAAC,UAAUkrX,EAAiB,EAAG,OAASC,EAAkB,GAAI;AAAA,WAExE,GAAI76P,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAKua,GAAQ,IAAIpd,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0gP,EAAYF,EAAG,KAAK/oW,EAAMjB,CAAO,EACvCskX,EAAWnd,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC1Doa,EAAS,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASjxB,GAAoB+Z,CAAS,CAAC,CAC9F,MACEkX,EAAWnd,EAAS,OAAO,OAAQ,cAAc,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1b,CAAU,EAAE,KAAK,IAAKxqV,CAAI,EAEpI,OAAAqjX,EAAS,KAAK,YAAa,aAAa,CAACF,EAAiB,CAAC,KAAK,CAACC,EAAkB,CAAC,GAAG,EACvFxc,GAAiBr+O,EAAM86P,CAAQ,EAC/B96P,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,OAAOq3J,GAAkB,KAAKxa,EAAQ78I,CAAK,CAC7C,EACAtsF,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,iBAAkBy1E,EAAMssF,CAAK,EAC/Bq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAOq3D,IAAM,MAAM,EAInB,eAAeK,IAAM7lV,EAAQ6qF,EAAM,CACjC,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAAt2N,CAAK,EAAK,MAAMi2N,GACnDroU,EACA6qF,EACAs+O,GAAet+O,CAAI,CACvB,EACQnwH,EAAI+qW,EAAK,MAAQ,EAAIiD,EACrBzuW,EAAIwrW,EAAK,OAAS,EAAIiD,EACtBz3C,EAAK,IAAOv2T,EACZ22T,EAAK,IAAO32T,EACZ+yW,EAAK,IAAO/yW,EACZgzW,EAAK,GAAMhzW,EACX,CAAE,UAAA+zW,CAAS,EAAK5jP,EACtB,IAAIi7P,EACJ,MAAMxjX,EAAO;AAAA,OACR2uT,CAAE,IAAIA,CAAE,UAAUv2T,EAAI,GAAI,OAASA,EAAI,EAAG;AAAA,OAC1C+yW,CAAE,IAAIA,CAAE,UAAU/yW,EAAI,EAAG,OAASA,EAAI,EAAG;AAAA,OACzC22T,CAAE,IAAIA,CAAE,UAAU32T,EAAI,GAAI,IAAIA,EAAI,EAAG;;AAAA,OAErCu2T,CAAE,IAAIA,CAAE,UAAUv2T,EAAI,GAAI,IAAIT,EAAI,GAAI;AAAA,OACtCyzW,CAAE,IAAIA,CAAE,aAAehzW,EAAI,GAAI,IAAIT,EAAI,GAAI;;AAAA,OAE3Co3T,CAAE,IAAIJ,CAAE,aAAev2T,EAAI,GAAI,IAAIA,EAAI,GAAI;AAAA,OAC3C+yW,CAAE,IAAIA,CAAE,UAAU,GAAK/yW,EAAI,EAAG;AAAA,OAC9Bu2T,CAAE,IAAIA,CAAE,UAAU,GAAKv2T,EAAI,GAAI,IAAI,GAAKA,EAAI,GAAI;;AAAA,OAEhDu2T,CAAE,IAAIA,CAAE,UAAU,GAAKv2T,EAAI,EAAG,IAAI,GAAKT,EAAI,GAAI;AAAA,OAC/CyzW,CAAE,IAAIA,CAAE,UAAUhzW,EAAI,EAAG,OAAST,EAAI,GAAI;AAAA,WAE/C,GAAI4wH,EAAK,OAAS,YAAa,CAC7B,MAAMwgP,EAAK0a,GAAQ,IAAIvd,CAAQ,EACzBnnW,EAAU4rV,GAAkBpiO,EAAM,EAAE,EACpC0gP,EAAYF,EAAG,KAAK/oW,EAAMjB,CAAO,EACvCykX,EAAYtd,EAAS,OAAO,IAAM+C,EAAW,cAAc,EAC3Dua,EAAU,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAASpxB,GAAoB+Z,CAAS,CAAC,CAC/F,MACEqX,EAAYtd,EAAS,OAAO,OAAQ,cAAc,EAAE,KAAK,QAAS,uBAAuB,EAAE,KAAK,QAAS1b,CAAU,EAAE,KAAK,IAAKxqV,CAAI,EAErI,OAAA8vI,EAAM,KAAK,YAAa,aAAa,CAACqzN,EAAK,MAAQ,CAAC,KAAK,CAACA,EAAK,OAAS,CAAC,GAAG,EAC5EqgB,EAAU,KAAK,YAAa,aAAa,CAACprX,EAAI,CAAC,KAAK,CAACT,EAAI,CAAC,GAAG,EAC7DivW,GAAiBr+O,EAAMi7P,CAAS,EAChCj7P,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,OAAOq3J,GAAkB,KAAKxa,EAAQ78I,CAAK,CAC7C,EACAtsF,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAA/hK,GAAI,KAAK,kBAAmBy1E,EAAMssF,CAAK,EAChCq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO03D,IAAO,OAAO,EAGrB,eAAeG,IAAmBhmV,EAAQ6qF,EAAM,CAC9C,KAAM,CAAE,YAAAgiO,EAAa,WAAAC,GAAeH,GAAc9hO,CAAI,EACtDA,EAAK,WAAagiO,EAClB,KAAM,CAAE,SAAA2b,EAAU,KAAA/C,EAAM,YAAAiD,EAAa,MAAAt2N,CAAK,EAAK,MAAMi2N,GACnDroU,EACA6qF,EACAs+O,GAAet+O,CAAI,CACvB,EACQnwH,EAAI+qW,EAAK,MAAQ,EAAIiD,EACrBzuW,EAAIwrW,EAAK,OAAS,EAAIiD,EACtBud,EAAK,EACLxU,EAAW;AAAA,OACZ,CAAC/2W,EAAI,CAAC,IAAIT,EAAI,EAAIgsX,CAAE;AAAA,OACpB,CAAChsX,EAAI,EAAIgsX,CAAE;AAAA,UACRA,CAAE,IAAIA,CAAE,KAAKA,CAAE;AAAA,OAClBvrX,EAAI,EAAIurX,CAAE;AAAA,OACVA,CAAE,MAAMA,CAAE,IAAIA,CAAE;AAAA,OAChBhsX,EAAI,EAAIgsX,CAAE;AAAA,SACRA,CAAE,KAAKA,CAAE,IAAIA,CAAE;AAAA,OACjB,CAACvrX,EAAI,EAAIurX,CAAE;AAAA,QACVA,CAAE,OAAOA,CAAE,KAAKA,CAAE;AAAA;AAAA,IAGlBC,EAAK1d,EAAS,OAAO,MAAM,EAAE,KAAK,KAAM,QAAU39O,EAAK,EAAE,EAAE,KAAK,QAAS,iBAAmBA,EAAK,IAAI,EAAE,KAAK,QAASiiO,CAAU,EAAE,KAAK,IAAK2kB,CAAQ,EACzJ,OAAAjJ,EAAS,OAAO,MAAM,EAAE,KAAK,QAAS,YAAY,EAAE,KAAK,KAAM,CAAC9tW,EAAI,CAAC,EAAE,KAAK,KAAMT,EAAI,CAAC,EAAE,KAAK,KAAMS,EAAI,CAAC,EAAE,KAAK,KAAMT,EAAI,CAAC,EAC3Hm4I,EAAM,KAAK,YAAa,aAAa,CAACqzN,EAAK,MAAQ,CAAC,KAAK,CAACA,EAAK,OAAS,CAAC,GAAG,EAC5E+C,EAAS,OAAO,IAAMp2N,EAAM,KAAI,CAAE,EAClC82N,GAAiBr+O,EAAMq7P,CAAE,EACzBr7P,EAAK,cAAgB,SAASmpO,EAAQ78I,EAAO,CAC3C,OAAOq3J,GAAkB,KAAKxa,EAAQ78I,CAAK,CAC7C,EACAtsF,EAAK,UAAY,SAASssF,EAAO,CAC/B,OAAOq3J,GAAkB,KAAK3jP,EAAMssF,CAAK,CAC3C,EACOqxJ,CACT,CACAr6C,EAAO63D,IAAoB,oBAAoB,EAG/C,eAAeG,IAAcnmV,EAAQ6qF,EAAM,CACzC,MAAMxpH,EAAU,CACd,QAASwpH,EAAK,SAAW,CAC7B,EACE,OAAOqlP,GAAOlwU,EAAQ6qF,EAAMxpH,CAAO,CACrC,CACA8sT,EAAOg4D,IAAe,eAAe,EAGrC,IAAIC,IAAa,CACf,CACE,aAAc,UACd,KAAM,YACN,UAAW,OACX,YAAa,yBACb,QAAS,CAAC,OAAQ,UAAW,WAAW,EACxC,gBAAiB,CAAC,YAAY,EAC9B,QAAStK,GACb,EACE,CACE,aAAc,QACd,KAAM,oBACN,UAAW,UACX,YAAa,sBACb,QAAS,CAAC,OAAO,EACjB,gBAAiB,CAAC,aAAa,EAC/B,QAAST,GACb,EACE,CACE,aAAc,iBACd,KAAM,UACN,UAAW,UACX,YAAa,iBACb,QAAS,CAAC,WAAY,MAAM,EAC5B,QAASU,GACb,EACE,CACE,aAAc,aACd,KAAM,mBACN,UAAW,UACX,YAAa,aACb,QAAS,CAAC,aAAc,UAAW,mBAAoB,YAAY,EACnE,QAASU,GACb,EACE,CACE,aAAc,WACd,KAAM,WACN,UAAW,MACX,YAAa,mBACb,QAAS,CAAC,KAAM,WAAY,UAAU,EACtC,QAASvJ,GACb,EACE,CACE,aAAc,QACd,KAAM,SACN,UAAW,SACX,YAAa,iBACb,QAAS,CAAC,MAAM,EAChB,QAAShD,EACb,EACE,CACE,aAAc,OACd,KAAM,OACN,UAAW,OACX,YAAa,OACb,QAAS,CAAC,MAAM,EAChB,QAASsV,GACb,EACE,CACE,aAAc,QACd,KAAM,QACN,UAAW,QACX,YAAa,QACb,QAAS,CAAC,OAAO,EACjB,QAASK,GACb,EACE,CACE,aAAc,WACd,KAAM,UACN,UAAW,OACX,YAAa,uBACb,QAAS,CAAC,WAAY,UAAW,UAAU,EAC3C,QAASzL,GACb,EACE,CACE,aAAc,sBACd,KAAM,UACN,UAAW,MACX,YAAa,gCACb,QAAS,CAAC,UAAW,SAAS,EAC9B,QAAShF,GACb,EACE,CACE,aAAc,oBACd,KAAM,aACN,UAAW,SACX,YAAa,6BACb,QAAS,CAAC,aAAc,QAAQ,EAChC,gBAAiB,CAAC,YAAY,EAC9B,QAASiD,GACb,EACE,CACE,aAAc,oBACd,KAAM,YACN,UAAW,SACX,YAAa,6BACb,QAAS,CAAC,YAAa,QAAQ,EAC/B,gBAAiB,CAAC,WAAW,EAC7B,QAASF,GACb,EACE,CACE,aAAc,kBACd,KAAM,wBACN,UAAW,SACX,YAAa,kBACb,QAAS,CAAC,WAAY,mBAAoB,WAAW,EACrD,QAAS8F,GACb,EACE,CACE,aAAc,mBACd,KAAM,qBACN,UAAW,SACX,YAAa,2BACb,QAAS,CAAC,SAAU,gBAAiB,eAAe,EACpD,gBAAiB,CAAC,eAAe,EACjC,QAASnG,GACb,EACE,CACE,aAAc,OACd,KAAM,gBACN,UAAW,WACX,YAAa,0BACb,QAAS,CAAC,eAAe,EACzB,gBAAiB,CAAC,cAAc,EAChC,QAAShE,GACb,EACE,CACE,aAAc,aACd,KAAM,aACN,UAAW,OACX,YAAa,aACb,QAAS14V,GACb,EACE,CACE,aAAc,OACd,KAAM,oBACN,UAAW,aACX,YAAa,oBACb,QAAS,CAAC,OAAQ,mBAAmB,EACrC,QAASs0V,GACb,EACE,CACE,aAAc,uBACd,KAAM,kBACN,UAAW,WACX,YAAa,sBACb,QAAS,CAAC,kBAAmB,gBAAiB,WAAY,gBAAgB,EAC1E,QAASgM,GACb,EACE,CACE,aAAc,QACd,KAAM,eACN,UAAW,UACX,YAAa,uBACb,QAAS,CAAC,QAAS,cAAc,EACjC,gBAAiB,CAAC,YAAY,EAC9B,QAASa,GACb,EACE,CACE,aAAc,OACd,KAAM,gBACN,UAAW,UACX,YAAa,aACb,QAAS,CAAC,OAAQ,eAAe,EACjC,gBAAiB,CAAC,UAAU,EAC5B,QAASN,GACb,EACE,CACE,aAAc,YACd,KAAM,mBACN,UAAW,OACX,YAAa,+BACb,QAAS,CAAC,MAAM,EAChB,gBAAiB,CAAC,UAAU,EAC5B,QAASlH,GACb,EACE,CACE,aAAc,UACd,KAAM,YACN,UAAW,YACX,YAAa,iCACb,QAAS,CAAC,YAAa,SAAS,EAChC,QAASW,GACb,EACE,CACE,aAAc,UACd,KAAM,cACN,UAAW,QACX,YAAa,iBACb,QAAS,CAAC,UAAW,SAAS,EAC9B,QAAStE,GACb,EACE,CACE,aAAc,gBACd,KAAM,cACN,UAAW,UACX,YAAa,iBACb,QAASS,GACb,EACE,CACE,aAAc,oCACd,KAAM,eACN,UAAW,SACX,YAAa,iBACb,QAASK,GACb,EACE,CACE,aAAc,WACd,KAAM,iBACN,UAAW,OACX,YAAa,qBACb,QAAS,CAAC,WAAY,gBAAgB,EACtC,QAASqG,GACb,EACE,CACE,aAAc,WACd,KAAM,WACN,UAAW,MACX,YAAa,wBACb,QAAS,CAAC,MAAO,UAAU,EAC3B,QAASgG,GACb,EACE,CACE,aAAc,QACd,KAAM,yBACN,UAAW,QACX,YAAa,qBACb,QAAS,CAAC,wBAAwB,EAClC,QAASrJ,GACb,EACE,CACE,aAAc,wBACd,KAAM,sBACN,UAAW,QACX,YAAa,wBACb,QAAS,CAAC,MAAO,qBAAqB,EACtC,QAAS6I,GACb,EACE,CACE,aAAc,eACd,KAAM,iBACN,UAAW,UACX,YAAa,eACb,QAAS,CAAC,OAAQ,gBAAgB,EAClC,QAASjF,GACb,EACE,CACE,aAAc,UACd,KAAM,mBACN,UAAW,YACX,YAAa,uBACb,QAAS,CAAC,mBAAoB,SAAS,EACvC,QAASnG,GACb,EACE,CACE,aAAc,kBACd,KAAM,oBACN,UAAW,WACX,YAAa,wBACb,QAAS,CAAC,WAAY,oBAAqB,iBAAiB,EAC5D,QAASc,GACb,EACE,CACE,aAAc,UACd,KAAM,WACN,UAAW,MACX,YAAa,qBACb,QAAS,CAAC,UAAW,UAAU,EAC/B,QAAS4K,GACb,EACE,CACE,aAAc,mBACd,KAAM,cACN,UAAW,WACX,YAAa,mBACb,QAAS,CAAC,mBAAoB,aAAa,EAC3C,QAASc,GACb,EACE,CACE,aAAc,WACd,KAAM,gBACN,UAAW,SACX,YAAa,iBACb,QAAS,CAAC,WAAY,eAAe,EACrC,QAAS1K,GACb,EACE,CACE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UAAW,OACX,MAAOF,EACP,UAAW,EACX,OAAQa,CACZ,EACQE,EAAmB,CACvBP,EACAI,EACAP,EACAC,EACAC,EACAnT,EACAuT,EACAD,EACAN,EACAK,EACAN,CACJ,EAEQa,EAAS,CACb,cAAef,EACf,SAAU,CACR,SAAUD,EACV,QAASC,CACf,EACI,IAAK,gCACL,SAAU,CACR,CACE,UAAW,QACX,MAAOD,EACP,UAAW,EACX,WAAY,GAEZ,WAAY,EACpB,CACA,EAAM,OAAOe,CAAgB,CAC7B,EAEE,OAAAH,EAAK,SAAW,CACdI,EACAF,EACAD,CACJ,EACEA,EAAK,SAAWE,EAChBL,EAAW,SAAWK,EAEf,CACL,KAAM,UACN,QAAS,CACP,MACA,KACN,EACI,QAAS,KACT,SAAU,CACRP,EACAI,EACAP,EACAC,EACAC,EACAnT,EACAuT,EACAD,EACAN,EACAK,CACN,CACA,CACA,CC9KA,SAASQ,IAAOnB,EAAM,CACpB,MAAMoB,EAAW,CACf,UACA,WACA,OACA,MACA,QACA,SACA,WACA,MACA,MACA,QACA,MACA,OACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,MACA,YACA,KACA,UACA,SACA,OACA,QACA,YACA,KACA,OACA,UACA,WACA,MACA,MACA,MACA,iBACA,eACA,SACA,UACA,MACA,MACA,YACA,UACA,KACA,WACA,OACA,OACA,WACA,MACA,MACA,WACA,SACA,OACA,QACA,SACA,KACA,SACA,SACA,QACA,aACA,QACA,UACA,UACA,OACA,OACA,iBACA,SACA,UACA,MACA,KACA,OACA,QACA,KACA,SACA,YACA,KACA,MACA,SACA,QACA,WACA,cACA,OACA,SACA,OACA,iBACA,UACA,YACA,YACA,WACA,cACA,WACA,KACA,KACA,WACA,QACA,YACA,YACA,QACA,WACA,UACA,OACA,aACA,eACA,WACA,aACA,gBACA,UACA,SACA,QACA,UACA,UACA,SACA,aACA,YACA,WACA,QACA,OACA,YACA,WACA,eACA,aACA,YACA,gBACA,YACA,aACA,SACA,YACA,SACJ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K,gBAAgB,EACzC,SAAU,CACRitY,EAAejtY,EAAE,GAAG,EACpB8sY,EACAD,CACd,CACA,CACA,CAAS,CACT,EACM,CACE,MAAO,QAAeE,EAAmB,IACzC,SAAUC,EAAsB,IAAIhtY,GAAK+qY,EAAK,QAAQ/qY,EACpD,CACE,IAAKs7Q,EAAM,OAAOt7Q,EAAE,IAAK,gBAAgB,EACzC,SAAU,CAAEitY,EAAejtY,EAAE,GAAG,CAAC,CAC7C,CAAW,CACX,CACA,CACA,CACA,EAEQwrY,EAAS,CACb,UAAW,SACX,SAAU,CACRT,EAAK,iBACL8B,CACN,EACI,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACb,EACM,CACE,MAAO,MACP,IAAK,KACb,EACM,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAClB,EACM,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAClB,EACM,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAClB,EACM,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAClB,EACM,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,IACP,IAAK,GACb,CACA,CACA,EACQL,EAAW,CACf,UAAW,WACX,cAAe,8BACf,IAAK,OACL,SAAU,CACRzB,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO2B,EACP,WAAY,EACpB,CAAO,CACP,CACA,EACQH,EAAQxB,EAAK,QAAQyB,EAAU,CACnC,UAAW,QACX,cAAe,0CACf,IAAK,YACT,CAAG,EACKa,EAA0B,CAC9B7B,EACA4B,EACAD,EACAD,EACAnC,EAAK,kBACLwB,EACAC,EACA,CAAE,MAAO,IAAI,EACb,CACE,UAAW,SACX,MAAO,cACP,SAAU,CACRhB,EACA,CAAE,MAAOmB,CAAgB,CACjC,EACM,UAAW,CACjB,EACI,CACE,UAAW,SACX,MAAOD,EAAkB,SACzB,UAAW,CACjB,EACI,CACE,UAAW,cACX,MAAO,yBACP,UAAW,CACjB,EACIrB,EACA,CACE,UAAW,WACX,MAAO,4BACb,CAEA,EACE,OAAAwB,EAAM,SAAWQ,EAEV,CACL,KAAM,SACN,QAAS,CACP,KACA,KACN,EACI,SAAUT,EACV,SAAUS,CACd,CACA,CC3QA,SAASC,IAAMvC,EAAM,CAOnB,MAAMwC,EAAmB,uDAoTnBpB,EAAW,CACf,SAAUoB,EACV,QA1SmB,CACnB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,OACJ,EA0QI,QAzPmB,CACnB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,IACA,GACJ,EAkNI,SAjMoB,CACpB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,SACJ,CAOA,EAGQC,EAAU,CACd,SAAUrB,EACV,QAAS,KACb,EAGQd,EAAS,CACb,UAAW,SAQX,MAAO,qIACP,UAAW,CACf,EAEQoC,EAAO,CACX,UAAW,SACX,MAAO,4BACX,EAEQC,EAAgB,CACpB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAUvB,CACd,EAEQwB,EAAwB,CAC5B,UAAW,WACX,MAAO,MAAQJ,CACnB,EAGQ/B,EAAS,CACb,UAAW,SACX,SAAU,CACRT,EAAK,iBACL2C,EACAC,CACN,EACI,SAAU,CACR,CACE,MAAO,SACP,IAAK,SACL,UAAW,EACnB,EACM,CACE,MAAO,OACP,IAAK,MACb,CACA,CACA,EAEQC,EAAU,CACd,UAAW,SACX,SAAU,CACR7C,EAAK,iBACL2C,EACAC,CACN,EACI,MAAO,IACP,IAAK,GACT,EAEQE,EAAY,CAChB,UAAW,OACX,MAAO,IAAMN,CACjB,EAEQlV,EAAU,CACd,UAAW,UACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,UAAW,EACnB,EACM,CACE,MAAO,IACP,IAAK,GACb,CACA,CACA,EAEE,OAAAmV,EAAQ,KAAO,QACfA,EAAQ,SAAW,CACjBnC,EACAoC,EACAjC,EACAoC,EACAC,EACAxV,EACA0S,EAAK,kBACL,CACE,UAAW,UACX,MACE,6DACR,EACI,CAAE,MAAO,IAAI,CACjB,EACE2C,EAAc,SAAWF,EAAQ,SAE1BA,CACT,CChbA,SAASM,IAAK/C,EAAM,CAClB,MAAMgD,EAAgB,sDAChBC,EAAS,cACTC,EAAwB,qEACxBvC,EAAU,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QAAS,CACP,OACA,KACA,KACN,EACI,iBAAkB,GAClB,SAAU5D,EACV,SAAU2D,EAAe,OACvBN,EACAC,EACAC,EACAC,EACAI,CACN,CACA,CACA,CClTA,SAASC,IAASjF,EAAM,CACtB,MAAMoB,EAAW,CACf,UACA,SACA,SACA,WACA,WACA,WACA,QACA,OACJ,EACQ0C,EAAQ,CACZ,SACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,OACA,SACA,OACJ,EACQoB,EAAmB,CACvB,MAAO,CACL,4BACAlF,EAAK,QACX,EACI,MAAO,CACL,EAAG,UACH,EAAG,aACT,CACA,EAEE,MAAO,CACL,KAAM,mBACN,QAAS,CAAC,OAAO,EACjB,SAAU,CACR,QAASoB,EACT,KAAM0C,EACN,QAAS,CACP,OACA,OACR,CACA,EACI,SAAU,CACR9D,EAAK,kBACLA,EAAK,YACLA,EAAK,oBACLA,EAAK,qBACLkF,EACA,CACE,UAAW,WACX,cAAe,MACf,IAAK,OACL,WAAY,GACZ,SAAU,aAClB,EACM,CAEE,MAAO,6BAA6B,CAC5C,CACA,CACA,CCnEA,SAASC,IAAQnF,EAAM,CACrB,MAAMzvH,EAAQyvH,EAAK,MACboB,EAAW,CACf,SAAU,qBACV,QAAS,CACP,YACA,QACA,SACA,cACA,YACA,eACA,MACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,UACA,UACA,QACA,WACA,OACA,SACA,QACA,aACA,UACA,WACA,QACA,aACA,aACA,QACA,WACA,UACA,WACA,SACA,UACA,OACA,KACA,OACA,OACA,MACA,UACA,aACA,WACA,cACA,YACA,cACA,cACA,WACA,eACA,YACA,aACA,eACA,aACA,cACA,aACA,cACA,WACA,UACA,OACA,QACA,aACA,SACA,SACA,UACA,SACA,QACA,cACA,MACA,QACA,UACA,UACA,OACA,WACA,WACA,aACA,SACA,SACA,SACA,SACA,KACA,MACA,SACA,cACA,eACA,aACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,SACA,WACA,MACA,UACA,eACA,YACA,YACA,OACA,WACA,YACA,QACA,MACA,UACA,UACA,QACA,aACA,QACA,UACA,cACA,UACA,SACA,UACA,SACA,OACA,UACA,UACA,MACA,WACA,OACA,MACA,kBACA,MACA,SACA,SACA,KACA,SACA,UACA,SACA,YACA,OACA,UACA,YACA,WACA,UACA,WACA,YACA,QACA,QACA,WACA,SACA,sBACA,qBACA,OACA,OACA,QACA,WACA,eACA,QACA,OACA,WACA,MACA,MACA,YACA,UACA,SACA,WACA,SACA,QACA,QACA,QACA,WACA,WACA,WACA,eACA,aACA,UACA,eACA,WACA,WACA,WACA,YACA,gBACA,SACA,QACA,OACA,QACA,UACA,YACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,UACA,UACA,iBACA,iBACA,QACA,SACA,OACA,OACA,aACA,OACA,gBACA,WACA,OACA,UACA,UACA,MACA,OACA,OACA,SACA,QACA,SACA,OACA,UACA,QACA,SACA,UACA,WACA,QACA,aACA,UACA,MACA,QACA,MACA,WACA,UACA,OACA,OACA,aACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,OACA,SACA,MACA,OACA,KACN,EACI,QAAS,CAAE,MAAM,EACjB,SAAU,CACR,UACA,QACA,QACA,SACA,SACA,WACA,QACA,YACA,QACA,kBACA,cACA,mBACA,QACA,UACA,QACA,QACA,SACA,cACA,cACA,mBACA,QACA,YACA,YACA,cACA,gBACA,gBACA,sBACA,aACA,iBACA,iBACA,iBACA,oBACA,eACA,WACA,QACA,WACA,aACA,aACA,gBACA,eACA,eACA,oBACA,gBACA,iBACA,wBACA,QACA,UACA,QACA,aACA,eACA,eACA,gBACA,iBACA,WACA,oBACA,kBACA,gBACA,oBACA,YACA,uBACA,QACA,OACA,aACA,SACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,aACA,UACA,aACA,SACA,WACA,cACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,aACA,WACA,SACA,QACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,UACA,gBACA,gBACA,YACA,UACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,SACA,UACA,YACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,UACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,SACA,YACA,YACA,aACA,kBACA,YACA,UACA,aACA,aACA,eACA,kBACA,UACA,UACA,UACA,WACA,YACA,YACA,YACA,aACA,YACA,WACA,WACA,aACA,gBACA,gBACA,kBACA,UACA,YACA,aACA,aACA,aACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,QACA,SACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,aACA,WACA,YACA,SACA,UACA,SACA,UACA,UACA,SACA,SACN,CACA,EACQgE,EAAqB,CACzB,WACA,UACJ,EACQC,EAAa,CACjB,iBACA,aACA,kBACA,qBACA,0BACA,SACA,yBACA,kBACA,kBACA,kBACA,OACA,QACA,eACA,gBACA,QACA,QACA,SACA,UACA,OACA,sBACA,SACA,WACA,YACA,oBACA,QACA,aACJ,EAEE,MAAO,CACL,KAAM,UACN,QAAS,CACP,IACA,KACA,KACN,EACI,iBAAkB,GAClB,SAAUjE,EACV,SAAU,CACRpB,EAAK,qBACLA,EAAK,oBACLA,EAAK,kBACL,CACE,MAAO,SACP,SAAU,CAAEA,EAAK,gBAAgB,EACjC,SAAU,CACR,CAAE,MAAO,yCAAyC,EAClD,CAAE,MAAO,sCAAsC,EAC/C,CACE,MAAO,iBACP,UAAW,CACvB,CACA,CACA,EAEM,CACE,MAAO,WACP,SAAU,CACR,CAAE,MAAO,wBAAwB,EACjC,CACE,MAAO,UACP,UAAW,CACvB,CACA,CACA,EACM,CACE,MAAO,oBACP,MAAOzvH,EAAM,OAAO,IAAKA,EAAM,OAAO,GAAG60H,CAAkB,CAAC,CACpE,EACM,CACE,MAAO,OACP,MAAO70H,EAAM,OAAO,IAAKA,EAAM,OAAO,GAAG80H,CAAU,CAAC,EACpD,IAAK,cACL,UAAW,GACX,SAAUA,CAClB,CACA,CACA,CACA,CC5hBA,SAASC,IAAUtF,EAAM,CACvB,MAAMzvH,EAAQyvH,EAAK,MAIbuF,EAAsBvF,EAAK,QAAQ,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAM,CAAE,CAAE,CAAE,EACjFwF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,cACrBF,EAAmB,IACnBj1H,EAAM,SAASk1H,CAAY,EAC3B,gBAAkBl1H,EAAM,SAJC,UAI4B,EACvD,IAEIo1H,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACX,EAKQC,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE5F,EAAK,gBAAgB,CACzC,EACM,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACjB,EACMA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACP,CACA,EAEQ6F,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBR,EAEM,CAAE,MACA,6JAcR,CACA,EACI,UAAW,CACf,EAEQC,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACuC,EAC3C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACnB,EACM9F,EAAK,QAAQ4F,EAAS,CAAE,UAAW,QAAQ,CAAE,EAC7C,CACE,UAAW,SACX,MAAO,OACf,EACML,EACAvF,EAAK,oBACX,CACA,EAEQ+F,EAAa,CACjB,UAAW,QACX,MAAOx1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAC3C,UAAW,CACf,EAEQgG,EAAiBz1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAAW,UAGhEiG,EAAoB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,QACJ,EAGQC,EAAiB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,QACJ,EAEQC,EAAa,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,WACA,WACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,cACJ,EAEQC,EAAiB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,UACJ,EAaQC,EAAe,CACnB,KAAMH,EACN,QAASD,EACT,QAde,CACf,OACA,QACA,UACA,UACA,MACJ,EASI,SANe,CAAE,SAAS,EAO1B,YAAaE,CACjB,EAEQG,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MAAOF,CAAc,EACvB,MAAO71H,EAAM,OACX,KACA,eACA,SACA,UACA,aACA,YACAyvH,EAAK,SACLzvH,EAAM,UAAU,kBAAkB,CAAC,CACzC,EAEQg2H,EAAsB,CAC1BD,EACAR,EACAH,EACAJ,EACAvF,EAAK,qBACL6F,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,KACP,IAAK,IACb,EACM,CACE,cAAe,wBACf,IAAK,GACb,CACA,EACI,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACnB,CACA,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUK,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOb,EACP,SAAUa,EACV,UAAW,CACnB,EACM,CACE,MAAOL,EACP,YAAa,GACb,SAAU,CAAED,CAAU,EACtB,UAAW,CACnB,EAGM,CACE,MAAO,KACP,UAAW,CACnB,EAEM,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRH,EACAC,CACV,CACA,EAGM,CACE,UAAW,EACX,MAAO,GACf,EACM,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUQ,EACV,UAAW,EACX,SAAU,CACRd,EACAvF,EAAK,qBACL4F,EACAC,EACAF,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUU,EACV,UAAW,EACX,SAAU,CACR,OACAd,EACAvF,EAAK,qBACL4F,EACAC,EACAF,CACd,CACA,CACA,CACA,EACMA,EACAJ,EACAvF,EAAK,qBACL8F,CACN,CACA,EAEE,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,KACN,EACI,SAAUO,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAU,EACnD,SAAU,GAAG,OACXG,EACAC,EACAH,EACAC,EACA,CACET,EACA,CACE,MAAO,8NACP,IAAK,IACL,SAAUO,EACV,SAAU,CACR,OACAV,CACZ,CACA,EACQ,CACE,MAAO3F,EAAK,SAAW,KACvB,SAAUqG,CACpB,EACQ,CACE,MAAO,CAEL,wDACA,MACA,KACZ,EACU,UAAW,CACT,EAAG,UACH,EAAG,aACf,CACA,CACA,CAAO,CACP,CACA,CAYA,SAASK,IAAQ1G,EAAM,CACrB,MAAM2G,EAAa,CACjB,KAAM,CACJ,UACA,OACA,OACA,QACN,EACI,SAAU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,IACN,EACI,OAAQ,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACN,EACI,QAAS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,KACN,CACA,EAEQC,EAAUtB,IAAUtF,CAAI,EAExB6G,EAAyCD,EAAQ,SAEvD,OAAAC,EAAI,KAAO,CACT,GAAGA,EAAI,KACP,GAAGF,EAAW,IAClB,EACEE,EAAI,QAAU,CACZ,GAAGA,EAAI,QACP,GAAGF,EAAW,OAClB,EACEE,EAAI,SAAW,CACb,GAAGA,EAAI,SACP,GAAGF,EAAW,QAClB,EACEE,EAAI,OAASF,EAAW,OAExBC,EAAQ,KAAO,UACfA,EAAQ,QAAU,CAAE,KAAK,EACzBA,EAAQ,WAAa,MAEdA,CACT,CCp+BA,SAASE,IAAK9G,EAAM,CAClB,MAAMzvH,EAAQyvH,EAAK,MACbmE,EAAM,GACN4C,EAAa,CACjB,MAAO,OACP,IAAK,KACL,SAAU,CACR,OACA,CACE,MAAO,KACP,SAAU,CAAE5C,CAAG,CACvB,CACA,CACA,EACE,OAAO,OAAOA,EAAK,CACjB,UAAW,WACX,SAAU,CACR,CAAE,MAAO5zH,EAAM,OAAO,qBAGpB,qBAAqB,CAAC,EACxBw2H,CACN,CACA,CAAG,EAED,MAAMjF,EAAQ,CACZ,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CAAE9B,EAAK,gBAAgB,CACrC,EACQ1S,EAAU0S,EAAK,QACnBA,EAAK,QAAO,EACZ,CACE,MAAO,CACL,SACA,MACR,EACM,MAAO,CACL,EAAG,SACX,CACA,CACA,EACQgH,EAAW,CACf,MAAO,iBACP,OAAQ,CAAE,SAAU,CAClBhH,EAAK,kBAAkB,CACrB,MAAO,QACP,IAAK,QACL,UAAW,QACnB,CAAO,CACP,CAAK,CACL,EACQoE,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRpE,EAAK,iBACLmE,EACArC,CACN,CACA,EACEA,EAAM,SAAS,KAAKsC,CAAY,EAChC,MAAM6C,EAAgB,CACpB,MAAO,KACX,EACQ5C,EAAc,CAClB,UAAW,SACX,MAAO,IACP,IAAK,GACT,EACQ6C,EAAe,CACnB,MAAO,KACX,EACQC,EAAa,CACjB,MAAO,UACP,IAAK,OACL,SAAU,CACR,CACE,MAAO,gBACP,UAAW,QACnB,EACMnH,EAAK,YACLmE,CACN,CACA,EACQiD,EAAiB,CACrB,OACA,OACA,MACA,KACA,MACA,MACA,OACA,OACA,MACJ,EACQC,EAAgBrH,EAAK,QAAQ,CACjC,OAAQ,IAAIoH,EAAe,KAAK,GAAG,CAAC,IACpC,UAAW,EACf,CAAG,EACK3F,EAAW,CACf,UAAW,WACX,MAAO,4BACP,YAAa,GACb,SAAU,CAAEzB,EAAK,QAAQA,EAAK,WAAY,CAAE,MAAO,YAAY,CAAE,CAAC,EAClE,UAAW,CACf,EAEQoB,EAAW,CACf,KACA,OACA,OACA,OACA,KACA,OACA,MACA,QACA,QACA,KACA,KACA,OACA,OACA,OACA,SACA,WACA,QACJ,EAEQkG,EAAW,CACf,OACA,OACJ,EAGQC,EAAY,CAAE,MAAO,gBAAgB,EAGrCC,EAAkB,CACtB,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,OACJ,EAEQC,EAAiB,CACrB,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,OACA,UACA,SACA,SACJ,EAEQC,EAAgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,MACJ,EAEQC,EAAiB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,KACJ,EAEE,MAAO,CACL,KAAM,OACN,QAAS,CACP,KACA,KACN,EACI,SAAU,CACR,SAAU,wBACV,QAASvG,EACT,QAASkG,EACT,SAAU,CACR,GAAGE,EACH,GAAGC,EAEH,MACA,QACA,GAAGC,EACH,GAAGC,CACX,CACA,EACI,SAAU,CACRN,EACArH,EAAK,QAAO,EACZyB,EACA0F,EACA7Z,EACA0Z,EACAO,EACAnD,EACA6C,EACA5C,EACA6C,EACA/C,CACN,CACA,CACA,CC/YA,SAASlqY,IAAE+lY,EAAM,CACf,MAAMzvH,EAAQyvH,EAAK,MAIbuF,EAAsBvF,EAAK,QAAQ,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAM,CAAE,CAAE,CAAE,EACjFwF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACrBF,EAAmB,IACnBj1H,EAAM,SAASk1H,CAAY,EAC3B,gBAAkBl1H,EAAM,SAJC,UAI4B,EACvD,IAGIuzH,EAAQ,CACZ,UAAW,OACX,SAAU,CACR,CAAE,MAAO,oBAAoB,EAC7B,CAAE,MAAO,uBAAuB,CACtC,CAEA,EAKQ8B,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE5F,EAAK,gBAAgB,CACzC,EACM,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACjB,EACMA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACP,CACA,EAEQ6F,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,cAAc,EACvB,CAAE,MAAO,iFAAiF,EAC1F,CAAE,MAAO,kHAAkH,EAC3H,CAAE,MAAO,wDAAwD,CACvE,EACI,UAAW,CACf,EAEQC,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,yGACwD,EAC5D,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACnB,EACM9F,EAAK,QAAQ4F,EAAS,CAAE,UAAW,QAAQ,CAAE,EAC7C,CACE,UAAW,SACX,MAAO,OACf,EACML,EACAvF,EAAK,oBACX,CACA,EAEQ+F,EAAa,CACjB,UAAW,QACX,MAAOx1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAC3C,UAAW,CACf,EAEQgG,EAAiBz1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAAW,UAoFhEoB,EAAW,CACf,QAnFiB,CACjB,MACA,OACA,QACA,OACA,WACA,UACA,KACA,OACA,OACA,SACA,MACA,UACA,OACA,KACA,SACA,WACA,WACA,SACA,SACA,SACA,gBACA,SACA,SACA,UACA,QACA,WACA,QACA,WACA,WACA,UACA,WACA,YACA,iBACA,gBAEA,UACA,UACA,WACA,gBACA,eAEA,SACJ,EAyCI,KAvCc,CACd,QACA,SACA,SACA,WACA,MACA,QACA,OACA,OACA,OACA,QACA,UACA,WACA,aACA,aACA,aACA,aACA,cACA,cACA,eACA,WACA,WACA,WACA,YACA,YACA,YACA,aAEA,QACA,SACA,YAEA,UACA,OACA,WACJ,EAKI,QAAS,kBAET,SAAU,kzBASd,EAEQmF,EAAsB,CAC1BT,EACAhC,EACAyB,EACAvF,EAAK,qBACL6F,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,KACP,IAAK,IACb,EACM,CACE,cAAe,wBACf,IAAK,GACb,CACA,EACI,SAAUpF,EACV,SAAUmF,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUnF,EACV,SAAUmF,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACnB,CACA,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAU5E,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOoE,EACP,SAAUpE,EACV,UAAW,CACnB,EACM,CACE,MAAO4E,EACP,YAAa,GACb,SAAU,CAAEhG,EAAK,QAAQ+F,EAAY,CAAE,UAAW,gBAAgB,CAAE,CAAC,EACrE,UAAW,CACnB,EAGM,CACE,UAAW,EACX,MAAO,GACf,EACM,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU3E,EACV,UAAW,EACX,SAAU,CACRmE,EACAvF,EAAK,qBACL4F,EACAC,EACA/B,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU1C,EACV,UAAW,EACX,SAAU,CACR,OACAmE,EACAvF,EAAK,qBACL4F,EACAC,EACA/B,CACd,CACA,CACA,CACA,EACMA,EACAyB,EACAvF,EAAK,qBACL8F,CACN,CACA,EAEE,MAAO,CACL,KAAM,IACN,QAAS,CAAE,GAAG,EACd,SAAU1E,EAGV,kBAAmB,GACnB,QAAS,KACT,SAAU,GAAG,OACXoF,EACAC,EACAF,EACA,CACET,EACA,CACE,MAAO9F,EAAK,SAAW,KACvB,SAAUoB,CACpB,EACQ,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CAAE,cAAe,oBAAoB,EACrCpB,EAAK,UACjB,CACA,CACA,CAAO,EACH,QAAS,CACP,aAAc8F,EACd,QAASF,EACT,SAAUxE,CAChB,CACA,CACA,CCnUA,SAASwG,IAAI5H,EAAM,CACjB,MAAMzvH,EAAQyvH,EAAK,MAIbuF,EAAsBvF,EAAK,QAAQ,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAM,CAAE,CAAE,CAAE,EACjFwF,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,cACrBF,EAAmB,IACnBj1H,EAAM,SAASk1H,CAAY,EAC3B,gBAAkBl1H,EAAM,SAJC,UAI4B,EACvD,IAEIo1H,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACX,EAKQC,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE5F,EAAK,gBAAgB,CACzC,EACM,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACjB,EACMA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACP,CACA,EAEQ6F,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBR,EAEM,CAAE,MACA,6JAcR,CACA,EACI,UAAW,CACf,EAEQC,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACuC,EAC3C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACnB,EACM9F,EAAK,QAAQ4F,EAAS,CAAE,UAAW,QAAQ,CAAE,EAC7C,CACE,UAAW,SACX,MAAO,OACf,EACML,EACAvF,EAAK,oBACX,CACA,EAEQ+F,EAAa,CACjB,UAAW,QACX,MAAOx1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAC3C,UAAW,CACf,EAEQgG,EAAiBz1H,EAAM,SAASk1H,CAAY,EAAIzF,EAAK,SAAW,UAGhEiG,EAAoB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,QACJ,EAGQC,EAAiB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,QACJ,EAEQC,EAAa,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,WACA,WACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,cACJ,EAEQC,EAAiB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,UACJ,EAaQC,EAAe,CACnB,KAAMH,EACN,QAASD,EACT,QAde,CACf,OACA,QACA,UACA,UACA,MACJ,EASI,SANe,CAAE,SAAS,EAO1B,YAAaE,CACjB,EAEQG,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MAAOF,CAAc,EACvB,MAAO71H,EAAM,OACX,KACA,eACA,SACA,UACA,aACA,YACAyvH,EAAK,SACLzvH,EAAM,UAAU,kBAAkB,CAAC,CACzC,EAEQg2H,EAAsB,CAC1BD,EACAR,EACAH,EACAJ,EACAvF,EAAK,qBACL6F,EACAD,CACJ,EAEQY,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,KACP,IAAK,IACb,EACM,CACE,cAAe,wBACf,IAAK,GACb,CACA,EACI,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACnB,CACA,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMf,EAAmB,eAAiBM,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUK,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAOb,EACP,SAAUa,EACV,UAAW,CACnB,EACM,CACE,MAAOL,EACP,YAAa,GACb,SAAU,CAAED,CAAU,EACtB,UAAW,CACnB,EAGM,CACE,MAAO,KACP,UAAW,CACnB,EAEM,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRH,EACAC,CACV,CACA,EAGM,CACE,UAAW,EACX,MAAO,GACf,EACM,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUQ,EACV,UAAW,EACX,SAAU,CACRd,EACAvF,EAAK,qBACL4F,EACAC,EACAF,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUU,EACV,UAAW,EACX,SAAU,CACR,OACAd,EACAvF,EAAK,qBACL4F,EACAC,EACAF,CACd,CACA,CACA,CACA,EACMA,EACAJ,EACAvF,EAAK,qBACL8F,CACN,CACA,EAEE,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,KACN,EACI,SAAUO,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAU,EACnD,SAAU,GAAG,OACXG,EACAC,EACAH,EACAC,EACA,CACET,EACA,CACE,MAAO,8NACP,IAAK,IACL,SAAUO,EACV,SAAU,CACR,OACAV,CACZ,CACA,EACQ,CACE,MAAO3F,EAAK,SAAW,KACvB,SAAUqG,CACpB,EACQ,CACE,MAAO,CAEL,wDACA,MACA,KACZ,EACU,UAAW,CACT,EAAG,UACH,EAAG,aACf,CACA,CACA,CAAO,CACP,CACA,CCjlBA,SAASwB,IAAO7H,EAAM,CACpB,MAAM8H,EAAoB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACJ,EACQC,EAAqB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,SACJ,EACQC,EAAmB,CACvB,UACA,QACA,OACA,MACJ,EACQC,EAAkB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,OACJ,EACQC,EAAsB,CAC1B,MACA,QACA,MACA,YACA,OACA,QACA,QACA,KACA,aACA,UACA,SACA,OACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,WACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,OACJ,EAEQ9G,EAAW,CACf,QAAS6G,EAAgB,OAAOC,CAAmB,EACnD,SAAUJ,EACV,QAASE,CACb,EACQjC,EAAa/F,EAAK,QAAQA,EAAK,WAAY,CAAE,MAAO,qBAAsB,EAC1E6F,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAgB,EACzB,CAAE,MAAO,iEAAoE,EAC7E,CAAE,MAAO,qFAA0F,CACzG,EACI,UAAW,CACf,EACQsC,EAAa,CACjB,UAAW,SACX,MAAO,4BACP,UAAW,CACf,EACQC,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAI,CAAE,CAC/B,EACQC,EAAwBrI,EAAK,QAAQoI,EAAiB,CAAE,QAAS,KAAM,EACvEtG,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUV,CACd,EACQkH,EAActI,EAAK,QAAQ8B,EAAO,CAAE,QAAS,KAAM,EACnDyG,EAAsB,CAC1B,UAAW,SACX,MAAO,MACP,IAAK,IACL,QAAS,KACT,SAAU,CACR,CAAE,MAAO,MAAM,EACf,CAAE,MAAO,MAAM,EACfvI,EAAK,iBACLsI,CACN,CACA,EACQE,EAA+B,CACnC,UAAW,SACX,MAAO,OACP,IAAK,IACL,SAAU,CACR,CAAE,MAAO,MAAM,EACf,CAAE,MAAO,MAAM,EACf,CAAE,MAAO,IAAI,EACb1G,CACN,CACA,EACQ2G,EAAqCzI,EAAK,QAAQwI,EAA8B,CACpF,QAAS,KACT,SAAU,CACR,CAAE,MAAO,MAAM,EACf,CAAE,MAAO,MAAM,EACf,CAAE,MAAO,IAAI,EACbF,CACN,CACA,CAAG,EACDxG,EAAM,SAAW,CACf0G,EACAD,EACAH,EACApI,EAAK,iBACLA,EAAK,kBACL6F,EACA7F,EAAK,oBACT,EACEsI,EAAY,SAAW,CACrBG,EACAF,EACAF,EACArI,EAAK,iBACLA,EAAK,kBACL6F,EACA7F,EAAK,QAAQA,EAAK,qBAAsB,CAAE,QAAS,IAAI,CAAE,CAC7D,EACE,MAAMS,EAAS,CAAE,SAAU,CACzB0H,EACAK,EACAD,EACAH,EACApI,EAAK,iBACLA,EAAK,iBACT,CAAG,EAEK0I,EAAmB,CACvB,MAAO,IACP,IAAK,IACL,SAAU,CACR,CAAE,cAAe,QAAQ,EACzB3C,CACN,CACA,EACQ4C,EAAgB3I,EAAK,SAAW,KAAOA,EAAK,SAAW,aAAeA,EAAK,SAAW,iBACtF4I,EAAgB,CAGpB,MAAO,IAAM5I,EAAK,SAClB,UAAW,CACf,EAEE,MAAO,CACL,KAAM,KACN,QAAS,CACP,KACA,IACN,EACI,SAAUoB,EACV,QAAS,KACT,SAAU,CACRpB,EAAK,QACH,MACA,IACA,CACE,YAAa,GACb,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,UAAW,CAC7B,EACgB,CAAE,MAAO,UAAU,EACnB,CACE,MAAO,MACP,IAAK,GACvB,CACA,CACA,CACA,CACA,CACA,EACMA,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAAS,qFAAqF,CAClH,EACMS,EACAoF,EACA,CACE,cAAe,kBACf,UAAW,EACX,IAAK,QACL,QAAS,UACT,SAAU,CACR,CAAE,cAAe,aAAa,EAC9BE,EACA2C,EACA1I,EAAK,oBACLA,EAAK,oBACf,CACA,EACM,CACE,cAAe,YACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACR+F,EACA/F,EAAK,oBACLA,EAAK,oBACf,CACA,EACM,CACE,cAAe,SACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACR+F,EACA2C,EACA1I,EAAK,oBACLA,EAAK,oBACf,CACA,EACM,CAEE,UAAW,OACX,MAAO,oBACP,aAAc,GACd,IAAK,MACL,WAAY,GACZ,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACjB,CACA,CACA,EACM,CAGE,cAAe,8BACf,UAAW,CACnB,EACM,CACE,UAAW,WACX,MAAO,IAAM2I,EAAgB,SAAW3I,EAAK,SAAW,wBACxD,YAAa,GACb,IAAK,WACL,WAAY,GACZ,SAAUoB,EACV,SAAU,CAER,CACE,cAAe2G,EAAmB,KAAK,GAAG,EAC1C,UAAW,CACvB,EACU,CACE,MAAO/H,EAAK,SAAW,wBACvB,YAAa,GACb,SAAU,CACRA,EAAK,WACL0I,CACd,EACY,UAAW,CACvB,EACU,CAAE,MAAO,MAAM,EACf,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAUtH,EACV,UAAW,EACX,SAAU,CACRX,EACAoF,EACA7F,EAAK,oBACnB,CACA,EACUA,EAAK,oBACLA,EAAK,oBACf,CACA,EACM4I,CACN,CACA,CACA,CCzZA,MAAMC,IAAS7I,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACb,EACI,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACb,EACI,kBAAmB,CACjB,UAAW,WACX,MAAO,cACb,EACI,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACb,CACA,EACI,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACjB,EACI,aAAc,CACZ,UAAW,OACX,MAAO,2BACb,CACA,GAGM8I,IAAY,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAW,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,UACF,EAEMC,IAAO,CACX,GAAGF,IACH,GAAGC,GACL,EAKME,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAAE,KAAI,EAAG,QAAO,EAEVC,IAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,cACA,YACA,wBACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,kBACA,sBACA,wBACA,qBACA,4BACA,aACA,eACA,kBACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,wBACA,wBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,wBACA,0BACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,YACA,uBACA,gBACA,WACA,iBACA,YACA,oBACA,aACA,WACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,+BACA,2BACA,gCACA,yBACA,0BACA,YACA,iBACA,iBACA,UACA,qBACA,oBACA,gBACA,cACA,MACA,YACA,aACA,SACA,KACA,KACA,YACA,UACA,oBACA,cACA,oBACA,eACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,cACA,gBACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,sBACA,eACA,YACA,mBACA,cACA,iBACA,eACA,aACA,iBACA,0BACA,4BACA,uBACA,wBACA,eACA,0BACA,oBACA,0BACA,qBACA,yBACA,uBACA,wBACA,0BACA,cACA,sBACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,sBACA,wBACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,iBACA,uBACA,cACA,QACA,aACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,kBACA,gBACA,eACA,UACA,OACA,iBACA,iBACA,aACA,cACA,mBACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,cACA,SACA,aACA,aACA,eACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,oBACA,aACA,aACA,aACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,SACA,gBACA,kBACA,cACA,kBACA,gBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,kBACA,iBACA,uBACA,kBACA,gBACA,aACA,aACA,UACA,sBACA,4BACA,6BACA,wBACA,wBACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,OACA,mBACA,oBACA,oBACA,cACA,QACA,cACA,eACA,cACA,qBACA,gBACA,cACA,aACA,iBACA,WACA,kBACA,sBACA,qBACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,aACA,gBACA,QACA,kBACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,uBACA,uBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,QACA,WACA,MACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,WACA,eACA,aACA,iBACA,kBACA,cACA,uBACA,kBACA,wBACA,uBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,mBACA,iBACA,wBACA,0BACA,YACA,iBACA,kBACA,iBACA,MACA,eACA,YACA,gBACA,mBACA,kBACA,aACA,sBACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,cACA,cACA,gBACA,iBACA,gBACA,qBACA,sBACA,qBACA,uBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,uBACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACA,MACF,EAAE,KAAI,EAAG,QAAO,EAUhB,SAAS18Q,IAAIszQ,EAAM,CACjB,MAAMzvH,EAAQyvH,EAAK,MACbqJ,EAAQR,IAAM7I,CAAI,EAClBsJ,EAAgB,CAAE,MAAO,8BAA8B,EACvDC,EAAe,kBACfC,EAAiB,oBACjBC,EAAW,0BACX7D,EAAU,CACd5F,EAAK,iBACLA,EAAK,iBACT,EAEE,MAAO,CACL,KAAM,MACN,iBAAkB,GAClB,QAAS,UACT,SAAU,CAAE,iBAAkB,SAAS,EACvC,iBAAkB,CAGhB,iBAAkB,cAAc,EAClC,SAAU,CACRqJ,EAAM,cACNC,EAGAD,EAAM,gBACN,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACnB,EACM,CACE,UAAW,iBACX,MAAO,MAAQI,EACf,UAAW,CACnB,EACMJ,EAAM,wBACN,CACE,UAAW,kBACX,SAAU,CACR,CAAE,MAAO,KAAOH,IAAe,KAAK,GAAG,EAAI,GAAG,EAC9C,CAAE,MAAO,SAAWC,IAAgB,KAAK,GAAG,EAAI,GAAG,CAC7D,CACA,EAOME,EAAM,aACN,CACE,UAAW,YACX,MAAO,OAASD,IAAW,KAAK,GAAG,EAAI,MAC/C,EAEM,CACE,MAAO,IACP,IAAK,QACL,SAAU,CACRC,EAAM,cACNA,EAAM,SACNA,EAAM,UACNA,EAAM,gBACN,GAAGzD,EAIH,CACE,MAAO,mBACP,IAAK,KACL,UAAW,EACX,SAAU,CAAE,SAAU,cAAc,EACpC,SAAU,CACR,GAAGA,EACH,CACE,UAAW,SAGX,MAAO,OACP,eAAgB,GAChB,WAAY,EAC5B,CACA,CACA,EACUyD,EAAM,iBAChB,CACA,EACM,CACE,MAAO94H,EAAM,UAAU,GAAG,EAC1B,IAAK,OACL,UAAW,EACX,QAAS,IACT,SAAU,CACR,CACE,UAAW,UACX,MAAOi5H,CACnB,EACU,CACE,MAAO,KACP,eAAgB,GAChB,WAAY,GACZ,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAASD,EACT,UAAWN,IAAe,KAAK,GAAG,CAChD,EACY,SAAU,CACR,CACE,MAAO,eACP,UAAW,WAC3B,EACc,GAAGrD,EACHyD,EAAM,eACpB,CACA,CACA,CACA,EACM,CACE,UAAW,eACX,MAAO,OAASL,IAAK,KAAK,GAAG,EAAI,MACzC,CACA,CACA,CACA,CCz6BA,SAASj6L,IAAKixL,EAAM,CAClB,MAAMzvH,EAAQyvH,EAAK,MACnB,MAAO,CACL,KAAM,OACN,QAAS,CAAE,OAAO,EAClB,SAAU,CACR,CACE,UAAW,OACX,UAAW,GACX,MAAOzvH,EAAM,OACX,+BACA,8BACA,sBACV,CACA,EACM,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAOA,EAAM,OACX,UACA,SACA,QACA,QACA,UACA,SACA,aACd,EACY,IAAK,GACjB,EACU,CAAE,MAAO,UAAU,CAC7B,CACA,EACM,CACE,UAAW,WACX,MAAO,MACP,IAAK,GACb,EACM,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACb,EACM,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACb,CACA,CACA,CACA,CClDA,SAASxsK,IAAGi8R,EAAM,CAyEhB,MAAMoB,EAAW,CACf,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,KACJ,EAGI,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,MACJ,EA+BI,QA3Ee,CACf,OACA,QACA,OACA,KACJ,EAuEI,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,QACJ,CAuDA,EACE,MAAO,CACL,KAAM,KACN,QAAS,CAAE,QAAQ,EACnB,SAAUA,EACV,QAAS,KACT,SAAU,CACRpB,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,SACX,SAAU,CACRA,EAAK,kBACLA,EAAK,iBACL,CACE,MAAO,IACP,IAAK,GACjB,CACA,CACA,EACM,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,6DACP,UAAW,CACvB,EACU,CACE,MAAO,sFACP,UAAW,CACvB,EACU,CACE,MAAO,wBACP,UAAW,CACvB,EACU,CACE,MAAO,uCACP,UAAW,CACvB,EACU,CACE,MAAO,wDACP,UAAW,CACvB,CACA,CACA,EACM,CAAE,MAAO,IACf,EACM,CACE,UAAW,WACX,cAAe,OACf,IAAK,cACL,WAAY,GACZ,SAAU,CACRA,EAAK,WACL,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,WAAY,GACZ,SAAUoB,EACV,QAAS,MACrB,CACA,CACA,CACA,CACA,CACA,CCjJA,SAASsI,IAAQ1J,EAAM,CACrB,MAAMzvH,EAAQyvH,EAAK,MACb2J,EAAW,yBACjB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,KAAK,EAChB,iBAAkB,GAClB,kBAAmB,GACnB,SAAU,CACR,QAAS,CACP,QACA,WACA,eACA,OACA,QACA,SACA,YACA,YACA,QACA,SACA,WACA,OACA,IACR,EACM,QAAS,CACP,OACA,QACA,MACR,CACA,EACI,SAAU,CACR3J,EAAK,kBACLA,EAAK,kBACLA,EAAK,YACL,CACE,MAAO,cACP,MAAO,SACP,UAAW,CACnB,EACM,CACE,MAAO,cACP,MAAO,4BACP,UAAW,CACnB,EACM,CACE,MAAO,WACP,MAAO,KACP,IAAK,KACL,WAAY,GACZ,UAAW,CACnB,EACM,CACE,MAAO,OACP,MAAO,OACP,WAAY,EACpB,EACM,CACE,MAAO,SACP,MAAOzvH,EAAM,OAAOo5H,EAAUp5H,EAAM,UAAU,MAAM,CAAC,EACrD,UAAW,CACnB,CACA,EACI,QAAS,CACP,QACA,OACN,CACA,CACA,CCnEA,SAASq5H,IAAI5J,EAAM,CACjB,MAAMzvH,EAAQyvH,EAAK,MACb6F,EAAU,CACd,UAAW,SACX,UAAW,EACX,SAAU,CACR,CAAE,MAAO,sBAAsB,EAC/B,CAAE,MAAO7F,EAAK,SAAS,CAC7B,CACA,EACQ6J,EAAW7J,EAAK,QAAO,EAC7B6J,EAAS,SAAW,CAClB,CACE,MAAO,IACP,IAAK,GACX,EACI,CACE,MAAO,IACP,IAAK,GACX,CACA,EACE,MAAMC,EAAY,CAChB,UAAW,WACX,SAAU,CACR,CAAE,MAAO,mBAAmB,EAC5B,CAAE,MAAO,aAAa,CAC5B,CACA,EACQxC,EAAW,CACf,UAAW,UACX,MAAO,8BACX,EACQ1B,EAAU,CACd,UAAW,SACX,SAAU,CAAE5F,EAAK,gBAAgB,EACjC,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,UAAW,EACnB,EACM,CACE,MAAO,MACP,IAAK,MACL,UAAW,EACnB,EACM,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,IACP,IAAK,GACb,CACA,CACA,EACQ+J,EAAQ,CACZ,MAAO,KACP,IAAK,KACL,SAAU,CACRF,EACAvC,EACAwC,EACAlE,EACAC,EACA,MACN,EACI,UAAW,CACf,EAEQmE,EAAW,iBACXC,EAA0B,gBAC1BC,EAA0B,UAC1BC,EAAU55H,EAAM,OACpBy5H,EAAUC,EAAyBC,CACvC,EACQE,EAAa75H,EAAM,OACvB45H,EAAS,eAAgBA,EAAS,KAClC55H,EAAM,UAAU,eAAe,CACnC,EAEE,MAAO,CACL,KAAM,iBACN,QAAS,CAAE,MAAM,EACjB,iBAAkB,GAClB,QAAS,KACT,SAAU,CACRs5H,EACA,CACE,UAAW,UACX,MAAO,MACP,IAAK,KACb,EACM,CACE,MAAOO,EACP,UAAW,OACX,OAAQ,CACN,IAAK,IACL,SAAU,CACRP,EACAE,EACAzC,EACAwC,EACAlE,EACAC,CACZ,CACA,CACA,CACA,CACA,CACA,CCrHA,IAAIwE,GAAgB,kBAChB1yF,GAAO,OAAO0yF,EAAa,IAC3BC,GAAY,8BACZC,IAAU,CACZ,UAAW,SACX,SAAU,CAGR,CAAE,MAAO,QAAQF,EAAa,MAAM1yF,EAAI,YAAYA,EAAI,eACzC0yF,EAAa,aAAa,EAEzC,CAAE,MAAO,OAAOA,EAAa,MAAM1yF,EAAI,8BAA8B,EACrE,CAAE,MAAO,IAAIA,EAAI,aAAa,EAC9B,CAAE,MAAO,OAAO0yF,EAAa,YAAY,EAGzC,CAAE,MAAO,aAAaC,EAAS,UAAUA,EAAS,SAASA,EAAS,eACrDD,EAAa,aAAa,EAGzC,CAAE,MAAO,gCAAgC,EAGzC,CAAE,MAAO,YAAYC,EAAS,WAAW,EAGzC,CAAE,MAAO,wBAAwB,EAGjC,CAAE,MAAO,+BAA+B,CAC5C,EACE,UAAW,CACb,EAqBA,SAASE,IAAW37W,EAAI47W,EAAcx9U,EAAO,CAC3C,OAAIA,IAAU,GAAW,GAElBp+B,EAAG,QAAQ47W,EAAchiY,GACvB+hY,IAAW37W,EAAI47W,EAAcx9U,EAAQ,CAAC,CAC9C,CACH,CAGA,SAASy9U,IAAK1K,EAAM,CAClB,MAAMzvH,EAAQyvH,EAAK,MACb2K,EAAgB,iCAChBC,EAAmBD,EACrBH,IAAW,OAASG,EAAgB,kBAAoBA,EAAgB,WAAY,OAAQ,CAAC,EAsE3FvJ,EAAW,CACf,QAtEoB,CACpB,eACA,WACA,UACA,MACA,SACA,KACA,SACA,MACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,OACA,OACA,OACA,QACA,YACA,QACA,aACA,WACA,OACA,SACA,UACA,UACA,SACA,MACA,SACA,WACA,SACA,YACA,SACA,UACA,SACA,WACA,UACA,KACA,SACA,QACA,UACA,OACA,MACJ,EA0BI,QAnBe,CACf,QACA,OACA,MACJ,EAgBI,KAdY,CACZ,OACA,UACA,OACA,QACA,MACA,OACA,QACA,QACJ,EAMI,SA1BgB,CAChB,QACA,MACJ,CAwBA,EAEQyJ,EAAa,CACjB,UAAW,OACX,MAAO,IAAMF,EACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,MAAM,CAC1B,CACA,CACA,EACQG,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU1J,EACV,UAAW,EACX,SAAU,CAAEpB,EAAK,oBAAoB,EACrC,WAAY,EAChB,EAEE,MAAO,CACL,KAAM,OACN,QAAS,CAAE,KAAK,EAChB,SAAUoB,EACV,QAAS,QACT,SAAU,CACRpB,EAAK,QACH,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACzB,EACY,CACE,UAAW,SACX,MAAO,YACrB,CACA,CACA,CACA,EAEM,CACE,MAAO,wBACP,SAAU,SACV,UAAW,CACnB,EACMA,EAAK,oBACLA,EAAK,qBACL,CACE,MAAO,MACP,IAAK,MACL,UAAW,SACX,SAAU,CAAEA,EAAK,gBAAgB,CACzC,EACMA,EAAK,iBACLA,EAAK,kBACL,CACE,MAAO,CACL,oDACA,MACA2K,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,aACb,CACA,EACM,CAEE,MAAO,aACP,MAAO,SACf,EACM,CACE,MAAO,CACLp6H,EAAM,OAAO,WAAYo6H,CAAa,EACtC,MACAA,EACA,MACA,QACV,EACQ,UAAW,CACT,EAAG,OACH,EAAG,WACH,EAAG,UACb,CACA,EACM,CACE,MAAO,CACL,SACA,MACAA,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,aACb,EACQ,SAAU,CACRG,EACA9K,EAAK,oBACLA,EAAK,oBACf,CACA,EACM,CAGE,cAAe,wBACf,UAAW,CACnB,EACM,CACE,MAAO,CACL,MAAQ4K,EAAmB,QAC3B5K,EAAK,oBACL,WACV,EACQ,UAAW,CAAE,EAAG,gBAAgB,EAChC,SAAUoB,EACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUA,EACV,UAAW,EACX,SAAU,CACRyJ,EACA7K,EAAK,iBACLA,EAAK,kBACLuK,IACAvK,EAAK,oBACnB,CACA,EACUA,EAAK,oBACLA,EAAK,oBACf,CACA,EACMuK,IACAM,CACN,CACA,CACA,CChSA,MAAMpB,IAAW,2BACXrI,IAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UAEA,OACF,EACMkG,IAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAGMxD,IAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBAC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cvN,EAAK,oBACLuN,EACAF,EACAxC,EACApK,EACAT,EAAK,aACnB,CACA,EACUuN,CACV,CACA,EACM,CACE,MAAO,CACL,wBACA,MACAvN,EAAK,mBACf,EACQ,WAAY,CACV,EAAG,aACb,EACQ,SAAU,wBACV,IAAK,WACL,WAAY,GACZ,QAAS,qBACT,SAAU,CACR,CAAE,cAAe,+CAA+C,EAChEA,EAAK,sBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,aAAc,GACd,WAAY,GACZ,UAAW,CACvB,EACU,CACE,UAAW,OACX,MAAO,UACP,IAAK,eACL,aAAc,GACd,UAAW,EACvB,EACUqN,EACAxC,CACV,CACA,EACMpK,EACA,CACE,UAAW,OACX,MAAO,kBACP,IAAK,IACL,QAAS;AAAA,CACjB,EACM6M,CACN,CACA,CACA,CC3RA,MAAMzE,IAAS7I,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACb,EACI,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACb,EACI,kBAAmB,CACjB,UAAW,WACX,MAAO,cACb,EACI,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACb,CACA,EACI,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACjB,EACI,aAAc,CACZ,UAAW,OACX,MAAO,2BACb,CACA,GAGM8I,IAAY,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAW,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,UACF,EAEMC,IAAO,CACX,GAAGF,IACH,GAAGC,GACL,EAKME,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAAE,KAAI,EAAG,QAAO,EAEVC,IAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,cACA,YACA,wBACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,kBACA,sBACA,wBACA,qBACA,4BACA,aACA,eACA,kBACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,wBACA,wBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,wBACA,0BACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,YACA,uBACA,gBACA,WACA,iBACA,YACA,oBACA,aACA,WACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,+BACA,2BACA,gCACA,yBACA,0BACA,YACA,iBACA,iBACA,UACA,qBACA,oBACA,gBACA,cACA,MACA,YACA,aACA,SACA,KACA,KACA,YACA,UACA,oBACA,cACA,oBACA,eACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,cACA,gBACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,sBACA,eACA,YACA,mBACA,cACA,iBACA,eACA,aACA,iBACA,0BACA,4BACA,uBACA,wBACA,eACA,0BACA,oBACA,0BACA,qBACA,yBACA,uBACA,wBACA,0BACA,cACA,sBACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,sBACA,wBACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,iBACA,uBACA,cACA,QACA,aACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,kBACA,gBACA,eACA,UACA,OACA,iBACA,iBACA,aACA,cACA,mBACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,cACA,SACA,aACA,aACA,eACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,oBACA,aACA,aACA,aACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,SACA,gBACA,kBACA,cACA,kBACA,gBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,kBACA,iBACA,uBACA,kBACA,gBACA,aACA,aACA,UACA,sBACA,4BACA,6BACA,wBACA,wBACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,OACA,mBACA,oBACA,oBACA,cACA,QACA,cACA,eACA,cACA,qBACA,gBACA,cACA,aACA,iBACA,WACA,kBACA,sBACA,qBACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,aACA,gBACA,QACA,kBACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,uBACA,uBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,QACA,WACA,MACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,WACA,eACA,aACA,iBACA,kBACA,cACA,uBACA,kBACA,wBACA,uBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,mBACA,iBACA,wBACA,0BACA,YACA,iBACA,kBACA,iBAC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EAEQoE,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRpE,EAAK,iBACLmD,CACN,CACA,EAEQ8L,EAAO,CACX,UAAW,WACX,MAAO,eACP,IAAK,KACL,SAAU,CAAE,SACR,gPAG8D,EAClE,SAAU,CACR9L,EACAiB,CACN,CACA,EAEQ8K,EAAa,CAAE,MAAO,IAAMlP,EAAK,oBAAsB,iBAAiB,EAExEmP,EAAO,CACX,UAAW,OACX,MAAO,YACP,IAAK,IACL,SAAU,CACR,SAAU,UACV,QAAS,QACf,CACA,EAEQC,EAAS,CACb,UAAW,UACX,MAAO,WACP,IAAK,IACL,SAAU,CAAEjM,CAAQ,CACxB,EACE,MAAO,CACL,KAAM,WACN,QAAS,CACP,KACA,MACA,MACN,EACI,SAAU,CACR,SAAU,SACV,QAAS,2HAEf,EACI,SAAU,CACRnD,EAAK,kBACLmD,EACAiB,EACA6K,EACAC,EACAC,EACAC,CACN,CACA,CACA,CC9EA,SAASpuC,IAASg/B,EAAM,CACtB,MAAMzvH,EAAQyvH,EAAK,MACbqP,EAAc,CAClB,MAAO,gBACP,IAAK,IACL,YAAa,MACb,UAAW,CACf,EACQC,EAAkB,CACtB,MAAO,cACP,IAAK,GACT,EACQC,EAAO,CACX,UAAW,OACX,SAAU,CAER,CAAE,MAAO,+BAA+B,EACxC,CAAE,MAAO,+BAA+B,EAExC,CACE,MAAO,MACP,IAAK,WACb,EACM,CACE,MAAO,MACP,IAAK,WACb,EACM,CAAE,MAAO,OAAO,EAChB,CACE,MAAO,kBAGP,SAAU,CACR,CACE,MAAO,cACP,IAAK,QACjB,CACA,EACQ,UAAW,CACnB,CACA,CACA,EACQzO,EAAO,CACX,UAAW,SACX,MAAO,kCACP,IAAK,OACL,WAAY,EAChB,EACQ0O,EAAiB,CACrB,MAAO,eACP,YAAa,GACb,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,EACpB,EACM,CACE,UAAW,OACX,MAAO,OACP,IAAK,IACL,aAAc,EACtB,CACA,CACA,EACQC,EAAa,0BACbC,EAAO,CACX,SAAU,CAGR,CACE,MAAO,iBACP,UAAW,CACnB,EAEM,CACE,MAAO,gEACP,UAAW,CACnB,EACM,CACE,MAAOn/H,EAAM,OAAO,YAAak/H,EAAY,YAAY,EACzD,UAAW,CACnB,EAEM,CACE,MAAO,wBACP,UAAW,CACnB,EAEM,CACE,MAAO,iBACP,UAAW,CACnB,CACA,EACI,YAAa,GACb,SAAU,CACR,CAEE,MAAO,UAAU,EACnB,CACE,UAAW,SACX,UAAW,EACX,MAAO,MACP,IAAK,MACL,aAAc,GACd,UAAW,EACnB,EACM,CACE,UAAW,OACX,UAAW,EACX,MAAO,SACP,IAAK,MACL,aAAc,GACd,WAAY,EACpB,EACM,CACE,UAAW,SACX,UAAW,EACX,MAAO,SACP,IAAK,MACL,aAAc,GACd,WAAY,EACpB,CACA,CACA,EACQE,EAAO,CACX,UAAW,SACX,SAAU,GACV,SAAU,CACR,CACE,MAAO,aACP,IAAK,MACb,EACM,CACE,MAAO,cACP,IAAK,OACb,CACA,CACA,EACQC,EAAS,CACb,UAAW,WACX,SAAU,GACV,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACb,EACM,CACE,MAAO,aACP,IAAK,IACL,UAAW,CACnB,CACA,CACA,EAKQC,EAAsB7P,EAAK,QAAQ2P,EAAM,CAAE,SAAU,GAAI,EACzDG,EAAsB9P,EAAK,QAAQ4P,EAAQ,CAAE,SAAU,GAAI,EACjED,EAAK,SAAS,KAAKG,CAAmB,EACtCF,EAAO,SAAS,KAAKC,CAAmB,EAExC,IAAIE,EAAc,CAChBV,EACAK,CACJ,EAEE,OACEC,EACAC,EACAC,EACAC,CACJ,EAAI,QAAQt1Y,GAAK,CACbA,EAAE,SAAWA,EAAE,SAAS,OAAOu1Y,CAAW,CAC5C,CAAC,EAEDA,EAAcA,EAAY,OAAOJ,EAAMC,CAAM,EAqCtC,CACL,KAAM,WACN,QAAS,CACP,KACA,SACA,KACN,EACI,SAAU,CA1CG,CACb,UAAW,UACX,SAAU,CACR,CACE,MAAO,UACP,IAAK,IACL,SAAUG,CAClB,EACM,CACE,MAAO,uBACP,SAAU,CACR,CAAE,MAAO,SAAS,EAClB,CACE,MAAO,IACP,IAAK,MACL,SAAUA,CACtB,CACA,CACA,CACA,CACA,EAwBMV,EACAvO,EACA6O,EACAC,EAzBe,CACjB,UAAW,QACX,MAAO,SACP,SAAUG,EACV,IAAK,GACT,EAsBMR,EACAD,EACAI,EACAF,EAvBW,CAEb,MAAO,UACP,MAAO,oDACX,CAqBA,CACA,CACA,CC7OA,SAASQ,IAAWhQ,EAAM,CACxB,MAAMiQ,EAAY,CAChB,UAAW,WACX,MAAO,sEACX,EACQC,EAAgB,yBAuJhB9O,EAAW,CACf,oBAAqB,CACnB,OACA,OACN,EACI,SAAU8O,EACV,QA3IU,CACV,QACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,SACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,eACJ,EAyBI,QAxBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,MACJ,EAgBI,SAfgB,CAChB,kBACA,mBACA,gBACA,iBACA,eACJ,EAUI,KA/JY,CACZ,MACA,QACA,OACA,WACA,SACA,QACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,OACJ,CAgJA,EACQC,EAAiB,CACrB,SAAUD,EACV,QAAS,CACP,aACA,SACA,YACA,iBACN,CACA,EACE,MAAO,CACL,KAAM,cACN,QAAS,CACP,KACA,OACA,QACA,UACA,eACN,EACI,SAAU9O,EACV,QAAS,KACT,SAAU,CACR6O,EACAjQ,EAAK,oBACLA,EAAK,qBACLA,EAAK,cACLA,EAAK,kBACLA,EAAK,iBACL,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEA,EAAK,gBAAgB,CAC7C,CACA,CACA,EACM,CACE,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,gFAC+B,EACnC,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACvB,EACUA,EAAK,QAAQA,EAAK,kBAAmB,CAAE,UAAW,SAAU,EAC5D,CACE,UAAW,SACX,MAAO,QACP,IAAK,IACL,QAAS,KACrB,EACUA,EAAK,oBACLA,EAAK,oBACf,CACA,EACM,CACE,UAAW,QACX,MAAO,IAAMmQ,EAAe,QAAQ,KAAK,GAAG,EAAI,OAChD,IAAK,SACL,WAAY,GACZ,SAAUA,EACV,SAAU,CAAEnQ,EAAK,qBAAqB,CAC9C,EACM,CACE,MAAO,MAAQA,EAAK,oBACpB,UAAW,CACnB,CACA,CACA,CACA,CClPA,SAASoQ,IAAKpQ,EAAM,CAClB,MAAMzvH,EAAQyvH,EAAK,MACboB,EAAW,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,KACJ,EAGQiP,EAAkB,uBAClBC,EAAgB,CACpB,SAAU,SACV,QAASlP,EAAS,KAAK,GAAG,CAC9B,EACQU,EAAQ,CACZ,UAAW,QACX,MAAO,UACP,IAAK,MACL,SAAUwO,CACd,EACQC,EAAS,CACb,MAAO,OACP,IAAK,IAET,EACQC,EAAO,CACX,MAAO,OACP,MAAO,yBACX,EACQrM,EAAM,CACV,MAAO,WACP,SAAU,CACR,CAAE,MAAO,MAAM,EACf,CAAE,MAAO5zH,EAAM,OACb,sDAGA,uBACR,CACA,EACM,CAEE,MAAO,0BACP,UAAW,CACnB,CACA,EACI,SAAU,CAAEigI,CAAI,CACpB,EACQlQ,EAAS,CACb,UAAW,SACX,SAAU,CAIR,CAAE,MAAO,oBAAoB,EAE7B,CAAE,MAAO,iDAAiD,EAE1D,CAAE,MAAO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KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,OACJ,EAEQqJ,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCACA,6BACA,0BACA,oBACA,4BACA,yBACA,wBACA,gBACA,mBACA,mBACA,sBACA,cACA,gBACA,gBACA,UACA,aACA,aACA,mBACA,cACA,mBACA,WACA,WACA,aACA,oBACA,YACA,qBACA,2BACA,sBAGA,cACA,aACA,UACA,QACA,YACA,WACA,oBACA,eACA,aACA,YACA,cACA,WACA,gBACA,UAGA,YACA,yBACA,SACA,kBACA,OACA,SACA,UACJ,EAsBQ9J,EAAW,CACf,QAASS,EACT,SAhBgBn6V,GAAU,CAE1B,MAAMjhC,EAAS,GACf,OAAAihC,EAAM,QAAQ7D,GAAQ,CACpBp9B,EAAO,KAAKo9B,CAAI,EACZA,EAAK,YAAW,IAAOA,EACzBp9B,EAAO,KAAKo9B,EAAK,aAAa,EAE9Bp9B,EAAO,KAAKo9B,EAAK,aAAa,CAElC,CAAC,EACMp9B,CACT,GAIoB6gY,CAAQ,EAC1B,SAAU4D,CACd,EAIQsG,EAAqB9pW,GAClBA,EAAM,IAAI7D,GACRA,EAAK,QAAQ,SAAU,EAAE,CACjC,EAGG4tW,EAAmB,CAAE,SAAU,CACnC,CACE,MAAO,CACL,MACAlhI,EAAM,OAAOghI,EAAY,GAAG,EAE5BhhI,EAAM,OAAO,MAAOihI,EAAkBtG,CAAS,EAAE,KAAK,MAAM,EAAG,MAAM,EACrE8F,CACR,EACM,MAAO,CACL,EAAG,UACH,EAAG,aACX,CACA,CACA,CAAG,EAEKU,EAAqBnhI,EAAM,OAAOk5H,EAAU,YAAY,EAExDkI,EAAsC,CAAE,SAAU,CACtD,CACE,MAAO,CACLphI,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CACvC,EACQmhI,CACR,EACM,MAAO,CAAE,EAAG,mBAAmB,CACrC,EACI,CACE,MAAO,CACL,KACA,OACR,EACM,MAAO,CAAE,EAAG,mBAAmB,CACrC,EACI,CACE,MAAO,CACLV,EACAzgI,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CACvC,EACQmhI,CACR,EACM,MAAO,CACL,EAAG,cACH,EAAG,mBACX,CACA,EACI,CACE,MAAO,CACLV,EACAzgI,EAAM,OACJ,KACAA,EAAM,UAAU,aAAa,CACvC,CACA,EACM,MAAO,CAAE,EAAG,aAAa,CAC/B,EACI,CACE,MAAO,CACLygI,EACA,KACA,OACR,EACM,MAAO,CACL,EAAG,cACH,EAAG,mBACX,CACA,CACA,CAAG,EAEKY,EAAiB,CACrB,MAAO,OACP,MAAOrhI,EAAM,OAAOk5H,EAAUl5H,EAAM,UAAU,GAAG,EAAGA,EAAM,UAAU,QAAQ,CAAC,CACjF,EACQshI,EAAc,CAClB,UAAW,EACX,MAAO,KACP,IAAK,KACL,SAAUzQ,EACV,SAAU,CACRwQ,EACAzO,EACAwO,EACA3R,EAAK,qBACLS,EACAH,EACAmR,CACN,CACA,EACQK,EAAkB,CACtB,UAAW,EACX,MAAO,CACL,KAEAvhI,EAAM,OAAO,wBAAyBihI,EAAkB3P,CAAG,EAAE,KAAK,MAAM,EAAG,IAAK2P,EAAkBtG,CAAS,EAAE,KAAK,MAAM,EAAG,MAAM,EACjIzB,EACAl5H,EAAM,OAAOghI,EAAY,GAAG,EAC5BhhI,EAAM,UAAU,QAAQ,CAC9B,EACI,MAAO,CAAE,EAAG,uBAAuB,EACnC,SAAU,CAAEshI,CAAW,CAC3B,EACEA,EAAY,SAAS,KAAKC,CAAe,EAEzC,MAAMC,EAAqB,CACzBH,EACAD,EACA3R,EAAK,qBACLS,EACAH,EACAmR,CACJ,EAEQrI,EAAa,CACjB,MAAO74H,EAAM,OAAO,YAClBA,EAAM,OACJygI,EACAC,CACR,CACA,EACI,WAAY,OACZ,IAAK,IACL,SAAU,OACV,SAAU,CACR,QAAS3J,EACT,QAAS,CACP,MACA,OACR,CACA,EACI,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,SAAU,CACR,QAASA,EACT,QAAS,CACP,MACA,OACZ,CACA,EACQ,SAAU,CACR,OACA,GAAGyK,CACb,CACA,EACM,GAAGA,EACH,CACE,MAAO,OACP,SAAU,CACR,CAAE,MAAOf,CAAyB,EAClC,CAAE,MAAOC,CAAc,CACjC,CACA,CACA,CACA,EAEE,MAAO,CACL,iBAAkB,GAClB,SAAU7P,EACV,SAAU,CACRgI,EACApJ,EAAK,kBACLA,EAAK,QAAQ,KAAM,GAAG,EACtBA,EAAK,QACH,OACA,OACA,CAAE,SAAU,CACV,CACE,MAAO,SACP,MAAO,YACnB,CACA,CAAS,CACT,EACM,CACE,MAAO,uBACP,SAAU,kBACV,OAAQ,CACN,MAAO,UACP,IAAKA,EAAK,iBACV,SAAU,CACR,CACE,MAAO,MACP,MAAO,OACP,WAAY,EAC1B,CACA,CACA,CACA,EACM8F,EACA,CACE,MAAO,oBACP,MAAO,UACf,EACM3C,EACA2O,EACAH,EACA,CACE,MAAO,CACL,QACA,KACAlI,CACV,EACQ,MAAO,CACL,EAAG,UACH,EAAG,mBACb,CACA,EACMgI,EACA,CACE,MAAO,WACP,UAAW,EACX,cAAe,cACf,IAAK,OACL,WAAY,GACZ,QAAS,UACT,SAAU,CACR,CAAE,cAAe,KAAK,EACtBzR,EAAK,sBACL,CACE,MAAO,KACP,WAAY,EACxB,EACU,CACE,MAAO,SACP,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,GACZ,SAAUoB,EACV,SAAU,CACR,OACAgI,EACAjG,EACAwO,EACA3R,EAAK,qBACLS,EACAH,CACd,CACA,CACA,CACA,EACM,CACE,MAAO,QACP,SAAU,CACR,CACE,cAAe,OACf,QAAS,OACrB,EACU,CACE,cAAe,wBACf,QAAS,QACrB,CACA,EACQ,UAAW,EACX,IAAK,KACL,WAAY,GACZ,SAAU,CACR,CAAE,cAAe,oBAAoB,EACrCN,EAAK,qBACf,CACA,EAIM,CACE,cAAe,YACf,UAAW,EACX,IAAK,IACL,QAAS,OACT,SAAU,CAAEA,EAAK,QAAQA,EAAK,sBAAuB,CAAE,MAAO,cAAe,CAAC,CACtF,EACM,CACE,cAAe,MACf,UAAW,EACX,IAAK,IACL,SAAU,CAER,CACE,MAAO,0BACP,MAAO,SACnB,EAEUA,EAAK,qBACf,CACA,EACMS,EACAH,CACN,CACA,CACA,CCtmBA,SAAS0R,IAAYhS,EAAM,CACzB,MAAO,CACL,KAAM,eACN,YAAa,MACb,SAAU,CACR,CACE,MAAO,cACP,IAAK,MACL,YAAa,MACb,SAAU,CAGR,CACE,MAAO,OACP,IAAK,OACL,KAAM,EAClB,EACU,CACE,MAAO,KACP,IAAK,IACL,KAAM,EAClB,EACU,CACE,MAAO,KACP,IAAK,IACL,KAAM,EAClB,EACUA,EAAK,QAAQA,EAAK,iBAAkB,CAClC,QAAS,KACT,UAAW,KACX,SAAU,KACV,KAAM,EAClB,CAAW,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,QAAS,KACT,UAAW,KACX,SAAU,KACV,KAAM,EAClB,CAAW,CACX,CACA,CACA,CACA,CACA,CC5CA,SAASiS,IAAUjS,EAAM,CACvB,MAAO,CACL,KAAM,aACN,QAAS,CACP,OACA,KACN,EACI,kBAAmB,EACvB,CACA,CCTA,SAASkS,IAAOlS,EAAM,CACpB,MAAMzvH,EAAQyvH,EAAK,MACbyJ,EAAW,oDAAoC,EAC/C0I,EAAiB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,OACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,QACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,OACJ,EAsGQ/Q,EAAW,CACf,SAAU,sBACV,QAAS+Q,EACT,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,KACJ,EAkCI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,MACJ,EA0BI,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,OACJ,CAQA,EAEQC,EAAS,CACb,UAAW,OACX,MAAO,gBACX,EAEQtQ,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUV,EACV,QAAS,GACb,EAEQiR,EAAkB,CACtB,MAAO,OACP,UAAW,CACf,EAEQ5R,EAAS,CACb,UAAW,SACX,SAAU,CAAET,EAAK,gBAAgB,EACjC,SAAU,CACR,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACRA,EAAK,iBACLoS,CACV,EACQ,UAAW,EACnB,EACM,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACRpS,EAAK,iBACLoS,CACV,EACQ,UAAW,EACnB,EACM,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACRpS,EAAK,iBACLoS,EACAC,EACAvQ,CACV,CACA,EACM,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR9B,EAAK,iBACLoS,EACAC,EACAvQ,CACV,CACA,EACM,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACnB,EACM,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACnB,EACM,CACE,MAAO,4BACP,IAAK,GACb,EACM,CACE,MAAO,4BACP,IAAK,GACb,EACM,CACE,MAAO,4BACP,IAAK,IACL,SAAU,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B1iI,EAAM,OAAOyiI,EAAe,UAAU,EAarEE,EAAgB,CACpB,oBAAqB,CACnB,WACA,WACA,cACN,EACI,oBAAqB,CACnB,OACA,OACN,EACI,QAAS,CACP,QACA,MACA,QACA,QACA,QACA,OACA,QACA,UACA,KACA,OACA,QACA,MACA,MACA,SACA,MACA,KACA,KACA,SACA,OACA,MACA,KACA,OACA,UACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,QACA,GAtDe,CACjB,UACA,SACA,UACA,SACA,UACA,YACA,QACA,OACJ,CA8CA,EACI,SAAU,CACR,OACA,SACA,gBACA,cACA,cACA,gBACA,mBACA,iBACN,EACI,QAAS,CACP,OACA,QACA,KACN,CACA,EACQC,EAAY,CAChB,UAAW,SACX,MAAO,YACX,EACQC,EAAa,CACjB,MAAO,KACP,IAAK,GACT,EACQ/R,EAAgB,CACpBrB,EAAK,QACH,IACA,IACA,CAAE,SAAU,CAAEmT,CAAS,CAAE,CAC/B,EACInT,EAAK,QACH,UACA,QACA,CACE,SAAU,CAAEmT,CAAS,EACrB,UAAW,EACnB,CACA,EACInT,EAAK,QAAQ,WAAYA,EAAK,gBAAgB,CAClD,EACQ8B,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUoR,CACd,EACQzS,EAAS,CACb,UAAW,SACX,SAAU,CACRT,EAAK,iBACL8B,CACN,EACI,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,IACP,IAAK,GACb,EACM,CACE,MAAO,cACP,IAAK,IACb,EACM,CACE,MAAO,cACP,IAAK,IACb,EACM,CACE,MAAO,cACP,IAAK,IACb,EACM,CACE,MAAO,aACP,IAAK,GACb,EACM,CACE,MAAO,cACP,IAAK,IACb,EACM,CACE,MAAO,aACP,IAAK,GACb,EACM,CACE,MAAO,aACP,IAAK,GACb,EACM,CACE,MAAO,cACP,IAAK,IACb,EAGM,CAAE,MAAO,iBAAiB,EAC1B,CAAE,MAAO,2BAA2B,EACpC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l5H,EAAM,OAAOkjI,EAAgBzT,EAAK,QAAQ,EAErD8R,EAAkB,CACtB,UAAW,wBACX,UAAW,EACX,MAAOvhI,EAAM,OACX,KACA,oCACAk5H,EACAl5H,EAAM,UAAU,OAAO,CAAC,CAC9B,EACQojI,EAAgB,wCAChBvS,EAAW,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,QACA,SACA,UACA,MACA,UACA,QACA,QACA,OACJ,EACQkG,EAAW,CACf,OACA,QACA,OACA,OACA,KACA,KACJ,EACQsM,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,YACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,kBACJ,EACQ9P,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,KACJ,EACE,MAAO,CACL,KAAM,OACN,QAAS,CAAE,IAAI,EACf,SAAU,CACR,SAAU9D,EAAK,SAAW,KAC1B,KAAM8D,EACN,QAAS1C,EACT,QAASkG,EACT,SAAUsM,CAChB,EACI,QAAS,KACT,SAAU,CACR5T,EAAK,oBACLA,EAAK,QAAQ,OAAQ,OAAQ,CAAE,SAAU,CAAE,MAAM,EAAI,EACrDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,MAAO,MACP,QAAS,IACjB,CAAO,EACD,CACE,UAAW,SAEX,MAAO,8BACf,EACM,CACE,MAAO,SACP,SAAU,CACR,CAAE,MAAO,0BAA0B,EACnC,CACE,MAAO,MACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,cACP,MAAO,+BACvB,CACA,CACA,CACA,CACA,EACM,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB2T,CAAa,EACxC,CAAE,MAAO,iBAAmBA,CAAa,EACzC,CAAE,MAAO,uBAAyBA,CAAa,EAC/C,CAAE,MAAO,kDACEA,CAAa,CAClC,EACQ,UAAW,CACnB,EACM,CACE,MAAO,CACL,KACA,MACAD,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,gBACb,CACA,EACM,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR1T,EAAK,gBACnB,CACA,CACA,CACA,EACM,CACE,MAAO,CACL,MACA,MACA,cACA0T,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,UACH,EAAG,UACb,CACA,EAEM,CACE,MAAO,CACL,MACA,MACAA,EACA,MACA,IACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,WACH,EAAG,SACb,CACA,EACM,CACE,MAAO,CACL,OACA,MACAA,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,aACb,CACA,EACM,CACE,MAAO,CACL,uCACA,MACAA,CACV,EACQ,UAAW,CACT,EAAG,UACH,EAAG,aACb,CACA,EACM,CACE,MAAO1T,EAAK,SAAW,KACvB,SAAU,CACR,QAAS,OACT,SAAU4T,EACV,KAAM9P,CAChB,CACA,EACM,CACE,UAAW,cACX,MAAO,IACf,EACMgO,CACN,CACA,CACA,CCnUA,MAAMjJ,IAAS7I,IACN,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACb,EACI,cAAeA,EAAK,qBACpB,SAAU,CACR,MAAO,SACP,MAAO,iDACb,EACI,kBAAmB,CACjB,UAAW,WACX,MAAO,cACb,EACI,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACb,CACA,EACI,gBAAiB,CACf,MAAO,SACP,MAAOA,EAAK,UAAY,kGASxB,UAAW,CACjB,EACI,aAAc,CACZ,UAAW,OACX,MAAO,2BACb,CACA,GAGM8I,IAAY,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,IAAW,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,UACF,EAEMC,IAAO,CACX,GAAGF,IACH,GAAGC,GACL,EAKME,IAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAAE,KAAI,EAAG,QAAO,EAGVC,IAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAAE,KAAI,EAAG,QAAO,EAEVC,IAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,cACA,YACA,wBACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,kBACA,sBACA,wBACA,qBACA,4BACA,aACA,eACA,kBACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,wBACA,wBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,wBACA,0BACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,YACA,uBACA,gBACA,WACA,iBACA,YACA,oBACA,aACA,WACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,+BACA,2BACA,gCACA,yBACA,0BACA,YACA,iBACA,iBACA,UACA,qBACA,oBACA,gBACA,cACA,MACA,YACA,aACA,SACA,KACA,KACA,YACA,UACA,oBACA,cACA,oBACA,eACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,cACA,gBACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,sBACA,eACA,YACA,mBACA,cACA,iBACA,eACA,aACA,iBACA,0BACA,4BACA,uBACA,wBACA,eACA,0BACA,oBACA,0BACA,qBACA,yBACA,uBACA,wBACA,0BACA,cACA,sBACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,sBACA,wBACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,iBACA,uBACA,cACA,QACA,aACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,kBACA,gBACA,eACA,UACA,OACA,iBACA,iBACA,aACA,cACA,mBACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,cACA,SACA,aACA,aACA,eACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,oBACA,aACA,aACA,aACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,SACA,gBACA,kBACA,cACA,kBACA,gBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,kBACA,iBACA,uBACA,kBACA,gBACA,aACA,aACA,UACA,sBACA,4BACA,6BACA,wBACA,wBACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,OACA,mBACA,oBACA,oBACA,cACA,QACA,cACA,eACA,cACA,qBACA,gBACA,cACA,aACA,iBACA,WACA,kBACA,sBACA,qBACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,aACA,gBACA,QACA,kBACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,uBACA,uBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,QACA,WACA,MACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,WACA,eACA,aACA,iBACA,kBACA,cACA,uBACA,kBACA,wBACA,uBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,mBACA,iBACA,wBACA,0BACA,YACA,iBACA,kBACA,iBACA,MACA,eACA,YACA,gBACA,mBACA,kBACA,aACA,sBACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,cACA,cACA,gBACA,iBACA,gBACA,qBACA,sBACA,qBACA,uBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,uBACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACA,MACF,EAAE,KAAI,EAAG,QAAO,EAYhB,SAASyK,IAAK7T,EAAM,CAClB,MAAMqJ,EAAQR,IAAM7I,CAAI,EAClB8T,EAAoB3K,IACpB4K,EAAmB7K,IAEnBN,EAAgB,WAChBW,EAAe,kBAEfpG,EAAW,CACf,UAAW,WACX,MAAO,OAHQ,0BAGY,OAC3B,UAAW,CACf,EAEE,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,QAAS,SACT,SAAU,CACRnD,EAAK,oBACLA,EAAK,qBAGLqJ,EAAM,gBACN,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACnB,EACM,CACE,UAAW,iBACX,MAAO,oBACP,UAAW,CACnB,EACMA,EAAM,wBACN,CACE,UAAW,eACX,MAAO,OAASL,IAAK,KAAK,GAAG,EAAI,OAEjC,UAAW,CACnB,EACM,CACE,UAAW,kBACX,MAAO,KAAO+K,EAAiB,KAAK,GAAG,EAAI,GACnD,EACM,CACE,UAAW,kBACX,MAAO,SAAWD,EAAkB,KAAK,GAAG,EAAI,GACxD,EACM3Q,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAEkG,EAAM,eAAe,CACzC,EACMA,EAAM,aACN,CACE,UAAW,YACX,MAAO,OAASD,IAAW,KAAK,GAAG,EAAI,MAC/C,EACM,CAAE,MAAO,4oCAA4oC,EACrpC,CACE,MAAO,IACP,IAAK,QACL,UAAW,EACX,SAAU,CACRC,EAAM,cACNlG,EACAkG,EAAM,SACNA,EAAM,gBACNrJ,EAAK,kBACLA,EAAK,iBACLqJ,EAAM,UACNA,EAAM,iBAChB,CACA,EAIM,CACE,MAAO,oBACP,SAAU,CACR,SAAUT,EACV,QAAS,kBACnB,CACA,EACM,CACE,MAAO,IACP,IAAK,OACL,YAAa,GACb,SAAU,CACR,SAAU,UACV,QAASW,EACT,UAAWN,IAAe,KAAK,GAAG,CAC5C,EACQ,SAAU,CACR,CACE,MAAOL,EACP,UAAW,SACvB,EACU,CACE,MAAO,eACP,UAAW,WACvB,EACUzF,EACAnD,EAAK,kBACLA,EAAK,iBACLqJ,EAAM,SACNA,EAAM,eAChB,CACA,EACMA,EAAM,iBACZ,CACA,CACA,CC/5BA,SAAS2K,IAAMhU,EAAM,CACnB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA,cACN,EACI,SAAU,CACR,CACE,UAAW,cAIX,MAAO,qCACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACvB,CACA,CACA,CACA,CACA,CCRA,SAASiU,IAAIjU,EAAM,CACjB,MAAMzvH,EAAQyvH,EAAK,MACbkU,EAAelU,EAAK,QAAQ,KAAM,GAAG,EACrCS,EAAS,CACb,MAAO,SACP,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAI,CAAE,CACnC,CACA,CACA,EACQ0T,EAAoB,CACxB,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAI,CAAE,CAC/B,EAEQ7M,EAAW,CACf,OACA,QAGA,SACJ,EAEQ8M,EAAmB,CACvB,mBACA,eACA,gBACA,kBACJ,EAEQtQ,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,WACJ,EAEQuQ,EAAqB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,MACJ,EAGQlC,EAAiB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,MACJ,EAKQmC,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,cACJ,EAGQC,EAA0B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,gBACJ,EAIQC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,eACJ,EAEQC,EAAYH,EAEZlT,EAAW,CACf,GAAG+Q,EACH,GAAGkC,CACP,EAAI,OAAQK,GACD,CAACJ,EAAmB,SAASI,CAAO,CAC5C,EAEKvR,EAAW,CACf,MAAO,WACP,MAAO,qBACX,EAEQwR,EAAW,CACf,MAAO,WACP,MAAO,gDACP,UAAW,CACf,EAEQjI,EAAgB,CACpB,MAAOn8H,EAAM,OAAO,KAAMA,EAAM,OAAO,GAAGkkI,CAAS,EAAG,OAAO,EAC7D,UAAW,EACX,SAAU,CAAE,SAAUA,CAAS,CACnC,EAME,SAASG,EAAa/hU,EAAM,CAC1B,OAAO09L,EAAM,OACX,KACAA,EAAM,OAAO,GAAG19L,EAAK,IAAKgiU,GACjBA,EAAG,QAAQ,MAAO,MAAM,CAChC,CAAC,EACF,IACN,CACE,CAEA,MAAMC,EAAsB,CAC1B,MAAO,UACP,MAAOF,EAAaJ,CAAM,EAC1B,UAAW,CACf,EAGE,SAASO,EAAgBliU,EAAM,CAC7B,WAAAhS,EAAY,KAAAm0U,CAChB,EAAM,GAAI,CACN,MAAMC,EAAYD,EAClB,OAAAn0U,EAAaA,GAAc,GACpBgS,EAAK,IAAKhvC,GACXA,EAAK,MAAM,QAAQ,GAAKg9B,EAAW,SAASh9B,CAAI,EAC3CA,EACEoxW,EAAUpxW,CAAI,EAChB,GAAGA,CAAI,KAEPA,CAEV,CACH,CAEA,MAAO,CACL,KAAM,MACN,iBAAkB,GAElB,QAAS,WACT,SAAU,CACR,SAAU,YACV,QACEkxW,EAAgB3T,EAAU,CAAE,KAAOnsY,GAAMA,EAAE,OAAS,EAAG,EACzD,QAASqyY,EACT,KAAMxD,EACN,SAAUyQ,CAChB,EACI,SAAU,CACR,CACE,MAAO,OACP,MAAOK,EAAaR,CAAgB,CAC5C,EACMU,EACApI,EACAvJ,EACA1C,EACA0T,EACAnU,EAAK,cACLA,EAAK,qBACLkU,EACAS,CACN,CACA,CACA,CCzqBA,SAASpzY,IAAOstB,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIlB,CAMA,SAAS2jX,GAAU3jX,EAAI,CACrB,OAAOm9J,GAAO,MAAOn9J,EAAI,GAAG,CAC9B,CAMA,SAASm9J,MAAUhrL,EAAM,CAEvB,OADeA,EAAK,IAAK/L,GAAMsM,IAAOtM,CAAC,CAAC,EAAE,KAAK,EAAE,CAEnD,CAMA,SAASigZ,IAAqBl0Y,EAAM,CAClC,MAAMiP,EAAOjP,EAAKA,EAAK,OAAS,CAAC,EAEjC,OAAI,OAAOiP,GAAS,UAAYA,EAAK,cAAgB,QACnDjP,EAAK,OAAOA,EAAK,OAAS,EAAG,CAAC,EACvBiP,GAEA,EAEX,CAWA,SAASklY,MAAUn0Y,EAAM,CAMvB,MAHe,KADFk0Y,IAAqBl0Y,CAAI,EAE5B,QAAU,GAAK,MACrBA,EAAK,IAAK/L,GAAMsM,IAAOtM,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7C,CAEA,MAAMmgZ,GAAiBV,GAAW1oN,GAChC,KACA0oN,EACA,MAAM,KAAKA,CAAO,EAAI,KAAO,IAC/B,EAGMW,IAAc,CAClB,WACA,MACF,EAAE,IAAID,EAAc,EAGdE,IAAsB,CAC1B,OACA,MACF,EAAE,IAAIF,EAAc,EAGdG,IAAe,CACnB,MACA,MACF,EAGMnV,GAAW,CAIf,QACA,MACA,iBACA,QACA,QACA,OACA,MACA,KACA,YACA,QACA,OACA,QACA,QACA,UACA,YACA,WACA,cACA,OACA,UACA,QACA,SACA,SACA,cACA,KACA,UACA,OACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,QACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,SACF,EAMMoV,IAAW,CACf,QACA,MACA,MACF,EAGMC,IAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,OACF,EAIMC,IAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,UACF,EAGMC,IAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,KACF,EAGMC,IAAeT,GACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,UACF,EAGMU,IAAoBV,GACxBS,IACA,kBACA,kBACA,kBACA,kBACA,iBAGF,EAGMhuN,GAAWoE,GAAO4pN,IAAcC,IAAmB,GAAG,EAGtDC,IAAiBX,GACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,8BAMF,EAGMY,GAAsBZ,GAC1BW,IACA,KACA,wDACF,EAGMt+H,GAAaxrF,GAAO8pN,IAAgBC,GAAqB,GAAG,EAG5DC,GAAiBhqN,GAAO,QAAS+pN,GAAqB,GAAG,EAKzDE,IAAoB,CACxB,WACA,cACAjqN,GAAO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,UACH,EAAG,gBACT,EACI,SAAU,CACRowN,EACAE,GACA3G,CACN,EACI,QAAS,CACP,KACA,GACN,CACA,EAIQ6G,GAAiB,CACrB,MAAO,CACL,4BACA,aACN,EACI,UAAW,CAAE,EAAG,SAAS,EACzB,SAAU,CACRJ,EACAE,GACA3G,CACN,EACI,QAAS,MACb,EAEQ8G,GAAuB,CAC3B,MAAO,CACL,WACA,MACAzwN,EACN,EACI,UAAW,CACT,EAAG,UACH,EAAG,OACT,CACA,EAGQ0wN,GAAkB,CACtB,MAAO,CACL,kBACA,MACAtC,EACN,EACI,UAAW,CACT,EAAG,UACH,EAAG,OACT,EACI,SAAU,CAAE1mF,CAAI,EAChB,SAAU,CACR,GAAGmmF,IACH,GAAGD,GACT,EACI,IAAK,GACT,EAEQ+C,GAAyB,CAC7B,MAAO,CACL,UACA,MACA,SACA,MACA,4BACN,EACI,MAAO,CACL,EAAG,UACH,EAAG,UACH,EAAG,gBACT,CACA,EAEQC,GAAwB,CAC5B,MAAO,CACL,UACA,MACA,OACN,EACI,MAAO,CACL,EAAG,UACH,EAAG,SACT,CACA,EAEQrqH,GAAmB,CACvB,MAAO,CACL,+CACA,MACA3W,GACA,KACN,EACI,WAAY,CACV,EAAG,UACH,EAAG,aACT,EACI,SAAU4pH,EACV,SAAU,CACR4W,EACA,GAAGvB,EACH,CACE,MAAO,IACP,IAAK,KACL,SAAUrV,EACV,SAAU,CACR,CACE,MAAO,wBACP,MAAO4U,EACnB,EACU,GAAGS,CACb,EACQ,UAAW,CACnB,CACA,CACA,EAGE,UAAW//P,MAAW+pP,EAAO,SAAU,CACrC,MAAMgY,GAAgB/hQ,GAAQ,SAAS,KAAK7qC,IAAQA,GAAK,QAAU,UAAU,EAE7E4sS,GAAc,SAAWrX,EACzB,MAAMsX,GAAW,CACf,GAAGjC,EACH,GAAGvL,EACH,GAAG2L,EACHvW,EACAG,EACA,GAAGgX,CACT,EACIgB,GAAc,SAAW,CACvB,GAAGC,GACH,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,OACA,GAAGA,EACb,CACA,CACA,CACE,CAEA,MAAO,CACL,KAAM,QACN,SAAUtX,EACV,SAAU,CACR,GAAGyI,EACHsO,GACAC,GACAG,GACAC,GACArqH,GACAkqH,GACAC,GACA,CACE,cAAe,SACf,IAAK,IACL,SAAU,CAAE,GAAGzO,CAAQ,EACvB,UAAW,CACnB,EACMyN,EACA,GAAGb,EACH,GAAGvL,EACH,GAAG2L,EACHvW,EACAG,EACA,GAAGgX,EACH,GAAGrO,EACH95E,EACAyoF,EACN,CACA,CACA,CCz8BA,MAAMtO,GAAW,2BACXrI,IAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UAEA,OACF,EACMkG,IAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAGMxD,IAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,aACF,EAEMiH,IAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,IAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,UACF,EAEMC,IAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,QACF,EAEMC,IAAY,GAAG,OACnBF,IACAlH,IACAiH,GACF,EAWA,SAASI,IAAWnL,EAAM,CACxB,MAAMzvH,EAAQyvH,EAAK,MAQboL,EAAgB,CAAC7lY,EAAO,CAAE,MAAAqsL,CAAK,IAAO,CAC1C,MAAMla,EAAM,KAAOnyK,EAAM,CAAC,EAAE,MAAM,CAAC,EAEnC,OADYA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AAEC,CAAY,CACxC,EACc,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEA,CAAY,CACxC,EACc,CAAE,MAAO,cAAc,CACrC,CACA,CACA,CACA,CACA,CACA,EACE,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,KACN,EACI,iBAAkB,GAClB,aAAc,GACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACRC,EACAG,EACAD,EACAD,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACRD,EACAC,EACAE,EACAD,CAClB,CACA,CACA,CACA,CACA,CACA,EACMva,EAAK,QACH,OACA,MACA,CAAE,UAAW,EAAE,CACvB,EACM,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACnB,EACMoa,EAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACRI,CACd,CACA,EACU,CACE,MAAO,mBACnB,CACA,CAEA,EACM,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,KAAM,OAAO,EACzB,SAAU,CAAEC,CAAa,EACzB,OAAQ,CACN,IAAK,YACL,UAAW,GACX,YAAa,CACX,MACA,KACZ,CACA,CACA,EACM,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CAAE,KAAM,QAAQ,EAC1B,SAAU,CAAEA,CAAa,EACzB,OAAQ,CACN,IAAK,aACL,UAAW,GACX,YAAa,CACX,aACA,aACA,KACZ,CACA,CACA,EAEM,CACE,UAAW,MACX,MAAO,SACf,EAEM,CACE,UAAW,MACX,MAAOlqI,EAAM,OACX,IACAA,EAAM,UAAUA,EAAM,OACpB2pI,EAIA3pI,EAAM,OAAO,MAAO,IAAK,IAAI,CACzC,CAAW,CACX,EACQ,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAO2pI,EACP,UAAW,EACX,OAAQO,CACpB,CACA,CACA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","names":["React","require$$0","is","x","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","require$$1","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","selector","isEqual","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","defaultNoopBatch","callback","batch","setBatch","newBatch","getBatch","ContextKey","gT","getContext","_gT$ContextKey","React.createContext","contextMap","realContext","ReactReduxContext","createReduxContextHook","context","useContext","useReduxContext","notInitialized","useSyncExternalStoreWithSelector","initializeUseSelector","fn","refEquality","a","b","createSelectorHook","useDefaultReduxContext","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","store","subscription","getServerState","globalStabilityCheck","globalNoopCheck","wrappedSelector","useCallback","state","selectedState","useSelector","c","d","e","f","g","h","k","m","n","p","q","r","t","v","w","z","u","A","reactIs_production_min","reactIsModule","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","i","key","descriptor","hoistNonReactStatics_cjs","createListenerCollection","first","last","listener","listeners","isSubscribed","nullListeners","createSubscription","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","addNestedSub","trySubscribe","cleanupListener","removed","tryUnsubscribe","notifyNestedSubs","handleChangeWrapper","trySubscribeSelf","tryUnsubscribeSelf","canUseDOM","useIsomorphicLayoutEffect","React.useLayoutEffect","React.useEffect","Provider","children","serverState","contextValue","React.useMemo","previousState","Context","React.createElement","createStoreHook","useStore","createDispatchHook","useDefaultStore","useDispatch","_typeof","obj","_classCallCheck","instance","Constructor","_defineProperties","target","props","_createClass","protoProps","staticProps","_possibleConstructorReturn","self","call","_assertThisInitialized","_getPrototypeOf","o","_inherits","subClass","superClass","_setPrototypeOf","_defineProperty","PersistGate","_PureComponent","_getPrototypeOf2","_this","_len","args","_key","persistor","_persistor$getState","bootstrapped","PureComponent","_extends","source","Action","createMemoryHistory","options","initialEntries","initialIndex","v5Compat","entries","entry","index","createMemoryLocation","clampIndex","action","getCurrentLocation","to","location","createLocation","warning","createHref","createPath","path","parsePath","nextLocation","delta","nextIndex","invariant","message","cond","createKey","current","_ref","pathname","search","hash","parsedPath","hashIndex","searchIndex","ResultType","immutableRouteKeys","isIndexRoute","route","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","treePath","id","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","parentsMeta","flattenRoute","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","rest","isOptional","required","restExploded","result","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","s","initialScore","score","segment","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","normalizePathname","pattern","matcher","compiledParams","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","caseSensitive","regexpSource","_","error","startIndex","nextChar","ABSOLUTE_URL_REGEX$1","isAbsoluteUrl","url","resolvePath","fromPathname","toPathname","oldPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponseImpl","status","statusText","data","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_FETCHER","IDLE_BLOCKER","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","TRANSITIONS_STORAGE_KEY","createRouter","init","routerWindow","isBrowser","isServer","detectErrorBoundary","dataRoutes","inFlightDataRoutes","dataStrategyImpl","defaultDataStrategy","patchRoutesOnNavigationImpl","future","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","initialMatches","initialMatchesIsFOW","initialErrors","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","initialized","errors","shouldLoadRouteOnHydration","fogOfWar","router","pendingAction","pendingPreventScrollReset","pendingNavigationController","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","unblockBlockerHistoryUpdate","initialize","historyAction","blockerKey","shouldBlockNavigation","nextHistoryUpdatePromise","resolve","updateBlocker","blockers","updateState","startNavigation","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","dispose","deleteFetcher","deleteBlocker","newState","opts","completedFetchers","deletedFetchersKeys","fetcher","subscriber","completeNavigation","_temp","_location$state","_location$state2","flushSync","isActionReload","isMutationMethod","actionData","mergeLoaderData","preventScrollReset","viewTransitionOpts","priorPaths","toPaths","getSavedScrollPosition","navigate","normalizedPath","normalizeTo","submission","normalizeNavigateOptions","currentLocation","userReplace","revalidate","interruptActiveLoads","saveScrollPosition","routesToUse","loadingNavigation","isHashChangeOnly","notFoundMatches","handleNavigational404","request","createClientSideRequest","pendingActionResult","findNearestBoundary","actionResult","handleAction","routeId","isErrorResult","getLoadingNavigation","shortCircuited","updatedMatches","handleLoaders","getActionDataForCommit","isFogOfWar","navigation","getSubmittingNavigation","discoverResult","discoverRoutes","boundaryId","actionMatch","getTargetMatch","callDataStrategy","isRedirectResult","replace","normalizeRedirectLocation","startRedirectNavigation","isDeferredResult","boundaryMatch","overrideNavigation","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","shouldUpdateNavigationState","getUpdatedActionData","matchesToLoad","revalidatingFetchers","getMatchesToLoad","cancelActiveDeferreds","updatedFetchers","markFetchRedirectsDone","updates","getUpdatedRevalidatingFetchers","rf","abortFetcher","abortPendingFetchRevalidations","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","processLoaderData","deferredData","aborted","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","revalidatingFetcher","getLoadingFetcher","fetch","href","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","detectAndHandle405Error","existingFetcher","updateFetcherState","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","getDoneFetcher","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","resolveDeferredData","isNavigation","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","formMethod","formAction","formEncType","type","fetcherKey","results","dataResults","callDataStrategyImpl","isRedirectDataStrategyResultResult","response","normalizeRelativeRoutingRedirectResponse","convertDataStrategyResultToDataResult","fetchersToLoad","currentMatches","loaderResultsPromise","fetcherResultsPromise","acc","resolveNavigationDeferredResults","resolveFetcherDeferredResults","getFetcher","deleteFetcherAndUpdateState","count","controller","markFetchersDone","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","_ref2","blockerFunction","predicate","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getKey","getScrollKey","signal","partialMatches","isNonHMR","localManifest","patchRoutesImpl","newMatches","newPartialMatches","_internalSetRoutes","newRoutes","patchRoutes","isSubmissionNavigation","prependBasename","fromRouteId","relative","contextualMatches","activeRouteMatch","nakedIndex","hasNakedIndexQuery","indexValues","qs","normalizeFormMethod","isFetcher","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","text","_ref3","name","json","searchParams","formData","convertFormDataToSearchParams","convertSearchParamsToFormData","getLoaderMatchesUntilBoundary","includeBoundary","history","skipActionErrorRevalidation","currentUrl","nextUrl","boundaryMatches","actionStatus","shouldSkipRevalidation","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","hasData","hasError","currentLoaderData","currentMatch","isNew","isMissingData","currentPath","loaderMatch","arg","routeChoice","_childrenToPatch","childrenToPatch","uniqueChildren","newRoute","existingRoute","isSameRoute","aChild","_existingRoute$childr","bChild","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","_ref4","requestContext","loadRouteDefinitionsPromises","dsMatches","loadRoutePromise","shouldLoad","handlerOverride","callLoaderOrAction","staticContext","onReject","runHandler","handler","reject","abortPromise","actualHandler","ctx","handlerPromise","handlerError","dataStrategyResult","isResponse","contentType","isDataWithResponseInit","_result$init3","_result$init4","_result$init","_result$init2","isDeferredData","_result$init5","_result$init6","_result$init7","_result$init8","trimmedMatches","historyInstance","invalidProtocols","normalizedLocation","isSameBasename","processRouteLoaderData","skipLoaderErrorBubbling","statusCode","foundError","loaderHeaders","pendingError","newLoaderData","mergedLoaderData","_temp5","method","errorMessage","deferred","isRevalidatingLoader","unwrap","_window","transitions","sessionPositions","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useInRouterContext","React.useContext","useLocation","UNSAFE_invariant","cb","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","navigator","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","React.useRef","React.useCallback","OutletContext","useOutlet","outlet","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","parentSegments","_renderMatches","DefaultErrorComponent","useRouteError","stack","preStyles","React.Fragment","defaultErrorElement","RenderErrorBoundary","React.Component","errorInfo","RenderedRoute","routeContext","_dataRouterState","_future","renderedMatches","errorIndex","renderFallback","fallbackIndex","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","warningOnce","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","alreadyWarned$1","logV6DeprecationWarnings","renderFuture","routerFuture","Outlet","Router","_ref5","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","createMemoryRouter","createSearchParams","getSearchParamsForLocation","locationSearch","defaultSearchParams","REACT_ROUTER_VERSION","ViewTransitionContext","FetchersContext","START_TRANSITION","startTransitionImpl","FLUSH_SYNC","flushSyncImpl","ReactDOM","startTransitionSafe","flushSyncSafe","Deferred","reason","RouterProvider","fallbackElement","setStateImpl","React.useState","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","transition","setTransition","interruption","setInterruption","fetcherData","v7_startTransition","optInStartTransition","setState","isViewTransitionUnavailable","renderPromise","UNSAFE_logV6DeprecationWarnings","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","MemoizedDataRoutes","React.memo","DataRoutes","UNSAFE_useRoutesImpl","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","OnboardingModes","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_VIEW_TRANSITION_TYPE","REACT_CLIENT_REFERENCE","typeOf","object","$$typeof","reactIs_production","stylis_min","W","M","K","l","I","B","J","F","G","C","N","ca","O","X","H","D","da","ea","fa","L","P","Y","E","ha","Q","ia","Z","ja","ka","aa","ba","la","ma","R","na","oa","S","T","U","V","unitlessKeys","memoize","cache","reactPropsRegex","isPropValid","prop","define_process_env_default","j","$","ee","te","ne","re","oe","_e","se","ie","ae","ce","le","de","he","pe","fe","ye","ve","ge","Se","we","Ee","be","Ne","Ae","Oe","Re","De","je","Te","xe","ke","Ve","Be","ze","Me","Fe","Ye","qe","We","THEME_COLORS","varName","getRecursiveVar","vars","defaultColor","curr","varWithFallback","colorName","themeVals","setDocumentStylesFromTheme","theme","missingColors","settings","colorVal","newColor","cssVar","setDocumentStylesFromLocalStorage","checkCache","cached","clearThemeLocalCache","defaultBorderRadius","lightGray","vscInputBackground","vscQuickInputBackground","vscBackground","vscForeground","vscButtonBackground","vscButtonForeground","vscEditorBackground","vscListActiveBackground","vscListActiveForeground","vscInputBorder","vscInputBorderFocus","vscBadgeBackground","vscCommandCenterActiveBorder","vscCommandCenterInactiveBorder","Button","styled","SecondaryButton","GhostButton","CustomScrollbarDiv","Input","HeaderButton","inverted","backgroundColor","disabled","hoverBackgroundColor","StyledActionButton","CloseButton","MessageIde","on","__publicField","secrets","fileUri","textDocumentIdentifier","files","dir","threadIndex","stackDepth","artifactId","filepath","range","includeUnstaged","startLine","endLine","contents","title","command","query","maxResults","cwd","LocalStorageKey","getLocalStorage","setLocalStorage","getPlatform","platform","isMetaEquivalentKeyPressed","metaKey","ctrlKey","getMetaKeyLabel","getAltKeyLabel","getFontSize","isJetBrains","fontSize","isShareSessionSupported","isWebEnvironment","isPrerelease","extensionVersion","isLocalProfile","profile","IdeMessenger","messageType","messageId","uuidv4","_a","msg","attempt","event","cancelToken","buffer","done","returnVal","responseData","handleAbort","chunks","gen","next","IdeMessengerContext","createContext","useWebviewListener","dependencies","skip","ideMessenger","useAppDispatch","useAppSelector","formatProdErrorMessage","code","$$observable","symbol_observable_default","randomString","ActionTypes","actionTypes_default","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","getState","listenerId","dispatch","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","observerAsObserver","assertReducerShape","reducers","combineReducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","hasChanged","nextState","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","createStore2","middlewareAPI","chain","middleware","isAction","NOTHING","DRAFTABLE","DRAFT_STATE","die","CONSTRUCTOR","PROTOTYPE","CONFIGURABLE","ENUMERABLE","WRITABLE","VALUE","isDraft","isDraftable","isArray","isMap","isSet","objectCtorString","cachedCtorStrings","isObjectish","Ctor","isFunction","ctorString","each","iter","strict","getArchtype","thing","has","get","set","propOrOldValue","isBoolean","isArrayIndex","latest","getFinalValue","shallowCopy","base","isPlain","descriptors","desc","freeze","deep","isFrozen","dontMutateMethodOverride","dontMutateFrozenCollections","PluginMapSet","PluginPatches","PluginArrayMethods","plugins","getPlugin","pluginKey","plugin","isPluginLoaded","currentScope","getCurrentScope","createScope","parent_","immer_","usePatchesInScope","scope","patchListener","revokeScope","leaveScope","revokeDraft","enterScope","immer2","draft","processResult","baseDraft","finalize","patchPlugin_","maybeFreeze","rootScope","handleValue","isSameScope","callbacks_","generatePatchesAndFinalize","markStateFinalized","EMPTY_LOCATIONS_RESULT","updateDraftInParent","parent","draftValue","finalizedValue","originalKey","parentCopy","parentType","draftLocations","locations","registerChildFinalizationCallback","child","basePath","handleCrossReference","scope_","prepareCopy","targetCopy","handledSet","updatedValue","createProxyProxy","baseIsArray","traps","objectTraps","arrayTraps","revoke","proxy","arrayPlugin","isArrayWithStringProp","readPropFromProto","peek","childKey","childDraft","createProxy","getDescriptorFromProto","current2","markChanged","owner","Immer2","config","recipe","defaultBase","base2","ip","patches","inversePatches","patch","applyPatchesImpl","rootScope2","currentImpl","copy","childValue","immer","produce","assertIsFunction","func","assertIsObject","assertIsArrayOfFunctions","array","item","itemTypes","ensureIsArray","getDependencies","createSelectorArgs","collectInputSelectorResults","inputSelectorArgs","inputSelectorResults","length","StrongRef","Ref","UNTERMINATED","TERMINATED","createCacheNode","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","memoized","cacheNode","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","lastResultValue","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","createSelector2","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","combinedOptions","memoizeOptions","argsMemoize","argsMemoizeOptions","finalMemoizeOptions","finalArgsMemoizeOptions","memoizedResultFunc","createSelector","createStructuredSelector","inputSelectorsObject","selectorCreator","inputSelectorKeys","composition","createThunkMiddleware","extraArgument","thunk","withExtraArgument","composeWithDevTools","hasMatchFunction","createAction","prepareAction","actionCreator","prepared","Tuple","_Tuple","items","arr","freezeDraftable","val","getOrInsertComputed","map","compute","buildGetDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","SHOULD_AUTOBATCH","createQueueWithTimer","timeout","notify","autoBatchEnhancer","notifying","shouldNotifyAtEndOfTick","notificationQueued","queueCallback","notifyListeners","listener2","wrappedListener","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","configureStore","getDefaultMiddleware","devTools","enhancers","rootReducer","finalMiddleware","finalCompose","getDefaultEnhancers","storeEnhancers","composedEnhancer","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","typeOrActionCreator","asyncThunk","isStateFunction","createReducer","initialState","mapOrBuilderCallback","finalActionMatchers","finalDefaultCaseReducer","getInitialState","frozenInitialState","caseReducers","reducer2","cr","caseReducer","isAnyOf","matchers","urlAlphabet","nanoid","size","commonProperties","RejectWithValue","payload","FulfillWithMeta","miniSerializeError","simpleError","property","externalAbortMessage","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","fulfilled","requestId","pending","rejected","extra","abortHandler","abortReason","abort","promise","finalAction","conditionResult","isThenable","abortedPromise","_b","err","unwrapResult","asyncThunkSymbol","getType","slice","actionKey","buildCreateSlice","creators","cAT","reducerPath","buildReducerCreators","reducerNames","contextMethods","name2","reducerName","reducerDefinition","reducerDetails","isAsyncThunkSliceReducerDefinition","handleThunkCaseReducerDefinition","handleNormalReducerDefinition","buildReducer","extraReducers","finalCaseReducers","sM","selectSelf","injectedSelectorCache","injectedStateCache","_reducer","makeSelectorProps","reducerPath2","injected","selectSlice","sliceState","getSelectors","selectState","selectorCache","wrapSelector","injectable","pathOpt","newReducerPath","wrapper","rootState","createSlice","prepare","createNotation","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","settled","noop","DEFAULT_MAX_TOKENS","LLMConfigurationStatuses","NEXT_EDIT_MODELS","EMPTY_CONFIG","INITIAL_CONFIG_SLICE","configSlice","loading","updateConfig","setConfigResult","setConfigLoading","selectSelectedChatModelContextLength","selectUIConfig","selectSelectedChatModel","configReducer","DEFAULT_SLASH_COMMANDS_BOOKMARKS_COUNT","INITIAL_PREFERENCES_STATE","INITIAL_PROFILES_STATE","profilesSlice","currentOrg","org","profileId","defaultSlashCommands","defaultSlashCommandNames","cmd","pid","commandName","preferences","selectedOrg","setSelectedProfile","bookmarkSlashCommand","unbookmarkSlashCommand","initializeProfilePreferences","setOrganizations","setSelectedOrgId","selectSelectedProfile","selectBookmarkedSlashCommands","selectPreferencesByProfileId","selectCurrentOrg","profilesReducer","AuthContext","AuthProvider","session","setSession","orgs","selectedProfile","login","useOnboarding","logout","refreshProfiles","jsx","useAuth","DEFAULT_LOCAL_STORAGE","LocalStorageContext","LocalStorageProvider","values","setValues","syncWithLocalStorage","isJetbrains","prev","handleLocalStorageChange","useLocalStorage","DEBUG_BUILD","GLOBAL_OBJ","SDK_VERSION","getMainCarrier","getSentryCarrier","carrier","__SENTRY__","getGlobalSingleton","creator","CONSOLE_LEVELS","PREFIX","originalConsoleMethods","consoleSandbox","console","wrappedFuncs","wrappedLevels","level","originalConsoleMethod","enable","_getLoggerSettings","disable","isEnabled","log","_maybeLog","warn","debug","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","skipFirstLines","framesToPop","frames","lines","line","cleanedLine","parser","frame","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","localStack","getLastStackFrame","defaultFunctionName","getFunctionName","getFramesFromEvent","exception","handlers","instrumented","addHandler","maybeInstrument","instrumentFn","triggerHandlers","typeHandlers","_oldOnErrorHandler","addGlobalErrorInstrumentationHandler","instrumentError","column","_oldOnUnhandledRejectionHandler","addGlobalUnhandledRejectionInstrumentationHandler","instrumentUnhandledRejection","objectToString","isError","wat","isInstanceOf","isBuiltin","className","isErrorEvent","isDOMError","isDOMException","isString","isParameterizedString","isPrimitive","isEvent","isElement","isRegExp","isSyntheticEvent","isVueViewModel","isRequest","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","el","keyAttrPairs","keyAttr","keyAttrPair","classes","allowedAttrs","attr","getLocationHref","getComponentName","truncate","str","max","safeJoin","input","delimiter","output","isMatchingPattern","requireExactStringMatch","stringMatchesSomePattern","testString","patterns","fill","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","getOriginalFunction","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","extractedProps","extractExceptionKeysForMessage","maxLength","firstKey","includedKeys","serialized","getCrypto","gbl","uuid4","crypto","getRandomByte","typedArray","getFirstException","getEventDescription","eventId","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","defaultMechanism","currentMechanism","mergedData","checkOrSetAlreadyCaught","isAlreadyCaptured","ONE_SECOND_IN_MS","dateTimestampInSeconds","createUnixTimestampInSecondsFunc","performance","timeOrigin","_cachedTimestampInSeconds","timestampInSeconds","cachedTimeOrigin","getBrowserTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","navigationStartDelta","navigationStartIsReliable","browserPerformanceTimeOrigin","makeSession","startingTime","sessionToJSON","updateSession","duration","closeSession","merge","initialObj","mergeObj","levels","generateTraceId","generateSpanId","SCOPE_SPAN_FIELD","_setSpanForScope","span","_getSpanForScope","DEFAULT_MAX_BREADCRUMBS","Scope","newScope","client","lastEventId","user","tags","extras","fingerprint","captureContext","scopeToMerge","scopeInstance","contexts","propagationContext","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","attachment","newData","hint","syntheticException","getDefaultCurrentScope","getDefaultIsolationScope","AsyncContextStack","isolationScope","assignedScope","assignedIsolationScope","maybePromiseResult","res","getAsyncContextStack","registry","sentry","withScope","withSetScope","withIsolationScope","getStackAsyncContextStrategy","_isolationScope","getAsyncContextStrategy","getIsolationScope","getGlobalScope","acs","getClient","getTraceContextFromScope","traceId","parentSpanId","propagationSpanId","traceContext","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE","SPAN_STATUS_UNSET","SPAN_STATUS_OK","SPAN_STATUS_ERROR","getSpanStatusFromHttpCode","httpStatus","setHttpStatus","spanStatus","SCOPE_ON_START_SPAN_FIELD","ISOLATION_SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","parseBaggageHeader","dynamicSamplingContext","nonPrefixedKey","dynamicSamplingContextToSentryBaggageHeader","sentryPrefixedDSC","dscKey","dscValue","objectToBaggageHeader","currBaggageObject","baggageHeaderToObject","baggageEntry","keyOrValue","objectKey","objectValue","currentIndex","newBaggageHeader","parseSampleRate","sampleRate","rate","TRACEPARENT_REGEXP","extractTraceparentData","traceparent","parentSampled","propagationContextFromHeaders","sentryTrace","baggage","traceparentData","sampleRand","getSampleRandFromTraceparentAndDsc","generateSentryTraceHeader","spanId","sampled","sampledString","dsc","parsedSampleRand","parsedSampleRate","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","hasShownSpanDropWarning","spanToTransactionTraceContext","span_id","trace_id","op","parent_span_id","origin","links","spanToJSON","spanToTraceContext","isRemote","spanToTraceHeader","spanIsSampled","convertSpanLinksForEnvelope","traceFlags","restContext","attributes","spanTimeInputToSeconds","ensureTimestampInSeconds","timestamp","spanIsSentrySpan","spanIsOpenTelemetrySdkTraceBaseSpan","startTime","endTime","getStatusMessage","castSpan","CHILD_SPANS_FIELD","ROOT_SPAN_FIELD","addChildSpanToSpan","childSpan","rootSpan","removeChildSpanFromSpan","getSpanDescendants","resultSet","addSpanChildren","childSpans","getRootSpan","getActiveSpan","showSpanDropWarning","errorsInstrumented","registerSpanErrorInstrumentation","errorCallback","activeSpan","hasSpansEnabled","maybeOptions","DEFAULT_ENVIRONMENT","ORG_ID_REGEX","DSN_REGEX","isValidProtocol","protocol","dsnToString","dsn","withPassword","host","pass","port","projectId","publicKey","dsnFromString","lastPath","split","projectMatch","dsnFromComponents","components","validateDsn","extractOrgIdFromDsnHost","makeDsn","FROZEN_DSC_FIELD","freezeDscOnSpan","getDynamicSamplingContextFromClient","public_key","org_id","getDynamicSamplingContextFromScope","getDynamicSamplingContextFromSpan","rootSpanJson","rootSpanAttributes","traceState","rootSpanSampleRate","applyLocalSampleRateToDsc","frozenDsc","traceStateDsc","dscOnTraceState","SentryNonRecordingSpan","spanContext","_timestamp","_value","_values","_status","_name","_attributesOrStartTime","_startTime","_link","_links","_exception","_time","normalize","depth","maxProperties","visit","normalizeToSize","maxSize","normalized","jsonSize","memoBuilder","unmemoize","stringified","stringifyValue","remainingDepth","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","objName","getConstructorName","prototype","utf8Length","inner","createEnvelope","headers","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","envelopeItemType","encodeUTF8","serializeEnvelope","envHeaders","parts","append","itemHeaders","stringifiedPayload","concatBuffers","buffers","totalLength","buf","merged","offset","createSpanEnvelopeItem","spanJson","createAttachmentEnvelopeItem","ITEM_TYPE_TO_DATA_CATEGORY_MAP","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","version","createEventEnvelopeHeaders","sdkInfo","tunnel","enhanceEventWithSdkInfo","createSessionEnvelope","metadata","envelopeHeaders","createEventEnvelope","eventType","createSpanEnvelope","spans","dscHasRequiredProps","beforeSendSpan","convertToSpanJSON","processedSpan","logSpanStart","description","isRootSpan","header","infoParts","logSpanEnd","setMeasurement","unit","timedEventsToMeasurements","events","measurements","MAX_SPAN_COUNT","SentrySpan","link","timeInput","endTimestamp","attributesOrStartTime","time","isSpanTimeInput","sendSpanEnvelope","transactionEvent","isFullFinishedSpan","capturedSpanScope","capturedSpanIsolationScope","normalizedRequest","isStandaloneSpan","transaction","spanItems","handleCallbackErrors","onError","onFinally","maybeHandlePromiseRejection","sampleSpan","samplingContext","localSampleRateWasApplied","fallbackSampleRate","shouldSample","SUPPRESS_TRACING_KEY","startSpan","getAcs","spanArguments","parseSentrySpanArguments","forceTransaction","customParentSpan","customScope","customForkedScope","getActiveSpanWrapper","parentSpan","getParentSpan","createChildOrRootSpan","startInactiveSpan","withActiveSpan","_startChildSpan","_startRootSpan","initialCtx","mutableSpanSamplingData","finalParentSampled","finalAttributes","currentPropagationContext","TRACING_DEFAULTS","FINISH_REASON_HEARTBEAT_FAILED","FINISH_REASON_IDLE_TIMEOUT","FINISH_REASON_FINAL_TIMEOUT","FINISH_REASON_EXTERNAL_FINISH","startIdleSpan","startSpanOptions","activities","_finished","_idleTimeoutID","_finishReason","_autoFinishAllowed","_cleanupHooks","idleTimeout","finalTimeout","childSpanTimeout","beforeSpanEnd","previousActiveSpan","_startIdleSpan","thisArg","definedEndTimestamp","spanEndTimestamp","onIdleSpanEnded","childEndTimestamps","latestSpanEndTimestamp","spanStartTimestamp","_cancelIdleTimeout","_restartIdleTimeout","_restartChildSpanTimeout","_pushActivity","_popActivity","cleanup","spanJSON","startTimestamp","discardedSpans","childSpanJSON","childEndTimestamp","childStartTimestamp","spanStartedBeforeIdleSpanEnd","timeoutWithMarginOfError","spanEndedBeforeFinalTimeout","stringifiedSpan","startedSpan","endedSpan","spanToAllowAutoFinish","STATE_PENDING","STATE_RESOLVED","STATE_REJECTED","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","executor","onfulfilled","onrejected","onfinally","isRejected","cachedHandlers","setResult","notifyEventProcessors","processors","processor","final","applyScopeDataToEvent","breadcrumbs","sdkProcessingMetadata","applyDataToEvent","applySpanToEvent","applyFingerprintToEvent","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","eventProcessors","attachments","transactionName","mergeAndOverwriteScopeData","mergeVal","mergedBreadcrumbs","parsedStackResults","lastKeysCount","cachedFilenameDebugIds","getFilenameToDebugIdMap","debugIdMap","debugIdKeys","stackKey","parsedStack","stackFrame","filename","debugId","prepareEvent","normalizeDepth","normalizeMaxBreadth","integrations","applyClientOptions","applyIntegrationsMetadata","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","isolationData","finalScopeData","evt","applyDebugMeta","normalizeEvent","environment","release","dist","maxValueLength","filenameDebugIdMap","images","debug_id","integrationNames","maxBreadth","parseEventHintOrCaptureContext","hintIsScopeOrFunction","hintIsScopeContext","captureContextKeys","captureException","captureEvent","setContext","setUser","startSession","userAgent","currentSession","endSession","_sendSessionUpdate","captureSession","SENTRY_API_VERSION","getBaseApiEndpoint","_getIngestEndpoint","_encodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","getReportDialogEndpoint","dsnLike","dialogOptions","endpoint","encodedOptions","installedIntegrations","filterDuplicates","integrationsByName","currentInstance","existingInstance","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integration","resolvedUserIntegrations","setupIntegrations","integrationIndex","setupIntegration","afterSetupIntegrations","createClientReportEnvelope","discarded_events","clientReportItem","getPossibleEventMessages","possibleMessages","lastException","convertTransactionEventToSpanJson","convertSpanJsonToTransactionEvent","ALREADY_SEEN_ERROR","MISSING_RELEASE_FOR_SESSION_ERROR","INTERNAL_ERROR_SYMBOL","DO_NOT_SEND_EVENT_SYMBOL","_makeInternalError","_makeDoNotSendEventError","_isInternalError","_isDoNotSendEventError","Client","hintWithEventId","eventMessage","promisedEvent","transport","clientFinished","transportFlushed","eventProcessor","integrationName","isAlreadyInstalled","env","sendResponse","clientReleaseOption","clientEnvironmentOption","sessionAttrs","category","hook","hooks","cbIndex","callbacks","crashed","errored","exceptions","ex","mechanism","sessionNonTerminal","ticked","tick","interval","finalEvent","isTransaction","isTransactionEvent","beforeSendLabel","dataCategory","processBeforeSend","_validateBeforeSendResult","processedEvent","spanCount","spanCountBefore","spanCountAfter","droppedSpanCount","transactionInfo","outcomes","quantity","beforeSendResult","invalidValueError","beforeSend","beforeSendTransaction","processedRootSpanJson","processedSpans","createLogContainerEnvelopeItem","createLogEnvelope","logs","_INTERNAL_flushLogsBuffer","maybeLogBuffer","logBuffer","_INTERNAL_getLogBuffer","clientOptions","_getBufferMap","initAndBind","clientClass","setCurrentClient","SENTRY_BUFFER_FULL_ERROR","makePromiseBuffer","limit","isReady","remove","task","add","taskProducer","drain","counter","capturedSetTimeout","DEFAULT_RETRY_AFTER","parseRetryAfterHeader","now","headerDelay","headerDate","disabledUntil","limits","isRateLimited","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","namespaces","delay","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","rateLimits","flush","send","filteredEnvelopeItems","filteredEnvelope","recordEnvelopeLoss","requestTask","addAutoIpAddressToUser","objWithMaybeUser","addAutoIpAddressToSession","applySdkMetadata","names","getTraceData","scopeToTraceHeader","DEFAULT_BREADCRUMBS","addBreadcrumb","beforeBreadcrumb","finalBreadcrumb","originalFunctionToString","INTEGRATION_NAME","SETUP_CLIENTS","_functionToStringIntegration","originalFunction","functionToStringIntegration","DEFAULT_IGNORE_ERRORS","eventFiltersIntegration","mergedOptions","_mergeOptions","_hint","_shouldDropEvent","inboundFiltersIntegration","internalOptions","_isIgnoredTransaction","_isIgnoredError","_isUselessError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreErrors","ignoreTransactions","denyUrls","allowUrls","_getLastValidUrl","rootException","_c","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","originalException","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","childError","parentId","addConsoleInstrumentationHandler","instrumentConsole","severityLevelFromString","_dedupeIntegration","previousEvent","currentEvent","dedupeIntegration","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","previousException","_getExceptionFromEvent","currentException","currentFrames","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","DEFAULT_BASE_URL","isURLObjectRelative","parseStringToURLObject","urlBase","isRelative","fullUrlObject","getSanitizedUrlStringFromUrlObject","newUrl","parseUrl","fragment","stripUrlQueryAndFragment","urlPath","instrumentFetchRequest","handlerData","shouldCreateSpan","shouldAttachHeaders","spanOrigin","shouldCreateSpanResult","endSpan","hasParent","getSpanStartOptions","_addTracingHeadersToFetchRequest","fetchHint","fetchOptionsObj","traceHeaders","originalHeaders","isHeaders","newHeaders","prevBaggageHeader","baggageHeaderHasSentryBaggageValues","prevBaggageHeaderWithSentryValues","existingSentryTraceHeader","existingBaggageHeader","newBaggageHeaders","headerItem","contentLength","contentLengthNum","parsedUrl","getFetchSpanAttributes","getBreadcrumbLogLevelFromHttpStatusCode","supportsHistory","_isFetchSupported","isNativeFunction","supportsNativeFetch","doc","sandbox","addFetchInstrumentationHandler","skipNativeFetchCheck","instrumentFetch","addFetchEndInstrumentationHandler","streamHandler","onFetchResolved","originalFetch","virtualError","parseFetchArgs","getHeadersFromFetchArgs","resolveResponse","onFinishedResolving","body","responseReader","maxFetchDurationTimeout","readingActive","chunkTimeout","clonedResponseForResolving","hasProp","getUrlFromResource","resource","fetchArgs","requestArgument","optionsArgument","getSDKSource","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","sentryWrapped","wrappedArguments","getHttpRequestData","referrer","exceptionFromError","parseStackFrames","extractType","extractMessage","eventFromPlainObject","isUnhandledRejection","errorFromProp","getErrorPropertyFromObject","getNonErrorObjectExceptionValue","eventFromError","stacktrace","skipLines","getSkipFirstStackStringLines","getPopFirstTopFrames","reactMinifiedRegexp","isWebAssemblyException","eventFromException","attachStacktrace","eventFromUnknownInput","eventFromMessage","eventFromString","domException","__sentry_template_string__","__sentry_template_values__","captureType","getObjectClassName","DEFAULT_FLUSH_INTERVAL","BrowserClient","applyDefaultOptions","sdkSource","sendDefaultPii","sendClientReports","enableLogs","_experiments","shouldEnableLogs","optionsArg","getRating","thresholds","bindReporter","metric","reportAllChanges","prevValue","forceReport","generateUniqueID","getNavigationEntry","checkResponseStart","navigationEntry","getActivationStart","navEntry","initMetric","instanceMap","initUnique","identityObj","ClassObj","LayoutShiftManager","firstSessionEntry","lastSessionEntry","observe","po","list","runOnce","called","firstHiddenTime","initHiddenTime","onVisibilityUpdate","removeChangeListeners","addChangeListeners","getVisibilityWatcher","activationStart","whenActivated","FCPThresholds","onFCP","onReport","visibilityWatcher","report","CLSThresholds","onCLS","layoutShiftManager","handleEntries","onHidden","onHiddenOrPageHide","FIDThresholds","onFID","handleEntry","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","updateEstimate","getInteractionCount","initInteractionCountPolyfill","MAX_INTERACTIONS_TO_CONSIDER","prevInteractionCount","getInteractionCountForNavigation","InteractionManager","candidateInteractionIndex","minLongestInteraction","interaction","removedInteractions","whenIdleOrHidden","rIC","INPThresholds","DEFAULT_DURATION_THRESHOLD","onINP","interactionManager","inp","LCPEntryManager","LCPThresholds","onLCP","lcpEntryManager","stopListening","TTFBThresholds","whenReady","onTTFB","_previousCls","_previousFid","_previousLcp","_previousTtfb","_previousInp","addClsInstrumentationHandler","stopOnCallback","addMetricObserver","instrumentCls","addLcpInstrumentationHandler","instrumentLcp","addFidInstrumentationHandler","instrumentFid","addTtfbInstrumentationHandler","instrumentTtfb","addInpInstrumentationHandler","instrumentInp","addPerformanceInstrumentationHandler","instrumentPerformanceObserver","getCleanupCallback","previousValue","isPerformanceEventTiming","isMeasurementValue","startAndEndSpan","startTimeInSeconds","parentStartTime","startStandaloneWebVitalSpan","passedAttributes","replay","replayId","userDisplay","getBrowserPerformanceAPI","msToSec","extractNetworkProtocol","nextHopProtocol","supportsWebVital","entryType","listenForWebVitalReportEvents","collectorCallback","pageloadSpanId","collected","_runCollectorCallbackOnce","unsubscribeStartNavigation","unsubscribeAfterStartPageLoadSpan","trackClsAsStandaloneSpan","standaloneCLsValue","standaloneClsEntry","cleanupClsHandler","reportEvent","sendStandaloneClsSpan","clsValue","routeName","trackLcpAsStandaloneSpan","standaloneLcpValue","standaloneLcpEntry","cleanupLcpHandler","_sendStandaloneLcpSpan","lcpValue","MAX_INT_AS_BYTES","_performanceCursor","_measurements","_lcpEntry","_clsEntry","startTrackingWebVitals","recordClsStandaloneSpans","recordLcpStandaloneSpans","fidCleanupCallback","_trackFID","lcpCleanupCallback","_trackLCP","ttfbCleanupCallback","_trackTtfb","clsCleanupCallback","_trackCLS","startTrackingLongTasks","parentOp","parentStartTimestamp","startTrackingLongAnimationFrames","initialScript","invoker","invokerType","sourceURL","sourceFunctionName","sourceCharPosition","startTrackingInteractions","spanOptions","componentName","addPerformanceEntries","performanceEntries","transactionStartTime","_addNavigationSpans","_addMeasureSpans","firstHidden","shouldRecord","_addResourceSpans","_trackNavigator","_addTtfbRequestTimeToMeasurements","fidMark","measurementName","measurement","_setWebVitalAttributes","ignorePerformanceApiSpans","requestTime","measureStartTimestamp","startTimeStamp","measureEndTimestamp","_addDetailToSpanAttributes","performanceMeasure","detail","_addPerformanceNavigationTiming","_addRequest","eventEnd","_getEndPropertyNameForNavigationTiming","start","requestStartTimestamp","responseEndTimestamp","responseStartTimestamp","resourceUrl","ignoreResourceSpans","setResourceEntrySizeData","deliveryType","renderBlockingStatus","connection","dataKey","entryVal","responseStart","requestStart","startTrackingElementTiming","_onElementTiming","elementEntry","paintType","renderTime","loadTime","spanStartTime","spanStartTimeSource","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","addClickKeypressInstrumentationHandler","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","handlerForType","originalRemoveEventListener","isSimilarToLastCapturedEvent","shouldSkipDOMEvent","globalListener","getEventTarget","lastHref","addHistoryInstrumentationHandler","instrumentHistory","historyReplacementFunction","originalHistoryFunction","getAbsoluteUrl","urlOrPath","cachedImplementations","getNativeImplementation","impl","document","contentWindow","clearCachedImplementation","SENTRY_XHR_DATA_KEY","addXhrInstrumentationHandler","instrumentXHR","xhrproto","originalOpen","xhrOpenThisArg","xhrOpenArgArray","parseXhrUrlArg","onreadystatechangeHandler","xhrInfo","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","originalSend","sendThisArg","sendArgArray","sentryXhrData","LAST_INTERACTIONS","INTERACTIONS_SPAN_MAP","MAX_PLAUSIBLE_INP_DURATION","startTrackingINP","inpCallback","_trackINP","INP_ENTRY_MAP","_onInp","interactionId","interactionType","spanToUse","registerInpInteractionListener","activeRootSpan","makeFetchTransport","nativeFetch","pendingBodySize","pendingCount","requestSize","requestOptions","CHROME_PRIORITY","GECKO_PRIORITY","createFrame","lineno","colno","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","chromeStackParserFn","noFnParts","col","subMatch","extractSafariExtensionDetails","chromeStackLineParser","geckoREgex","geckoEvalRegex","gecko","geckoStackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","MAX_ALLOWED_STRING_LENGTH","_breadcrumbsIntegration","_options","_getConsoleBreadcrumbHandler","_getDomBreadcrumbHandler","_getXhrBreadcrumbHandler","_getFetchBreadcrumbHandler","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","breadcrumbsIntegration","dom","element","_isEvent","status_code","parsedLoc","parsedFrom","parsedTo","DEFAULT_EVENT_TARGET","_browserApiErrorsIntegration","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","browserApiErrorsIntegration","originalCallback","xhr","wrapOptions","integrationOptions","eventName","isEventListenerObject","unregisterOriginalCallback","originalEventHandler","browserSessionIntegration","_globalHandlersIntegration","_installGlobalOnErrorHandler","globalHandlerLog","_installGlobalOnUnhandledRejectionHandler","globalHandlersIntegration","getOptions","_enhanceEventWithInitialFrame","_getUnhandledRejectionError","_eventFromRejectionWithPrimitive","ev","ev0","ev0s","ev0sf","httpContextIntegration","reqData","DEFAULT_KEY","DEFAULT_LIMIT","_linkedErrorsIntegration","linkedErrorsIntegration","checkAndWarnIfIsEmbeddedBrowserExtension","_isEmbeddedBrowserExtension","extensionObject","extensionProtocols","getDefaultIntegrations","shouldDisableBecauseIsBrowserExtenstion","showReportDialog","optionalDocument","injectionPoint","script","onLoad","onClose","reportDialogClosedMessageHandler","getAbsoluteTime","resourceTimingToSpanAttributes","resourceTiming","timingSpanData","responseToSpanId","spanIdToEndTimestamp","defaultRequestInstrumentationOptions","instrumentOutgoingRequests","traceFetch","traceXHR","trackFetchStreamPerformance","shouldCreateSpanForRequest","enableHTTPTimings","tracePropagationTargets","onRequestSpanStart","shouldAttachHeadersWithTargets","updatedTimestamp","createdSpan","fullUrl","getFullURL","addHTTPTimings","xhrCallback","isPerformanceResourceTiming","attributeArray","targetUrl","resolvedUrl","currentOrigin","isSameOriginRequest","isRelativeSameOriginRequest","urlForSpanName","addTracingHeadersToXhrRequest","setHeaderOnXhr","sentryTraceHeader","sentryBaggageHeader","originalBaggageHeader","baggageHeaderHasSentryValues","registerBackgroundTabDetection","cancelledStatus","PREVIOUS_TRACE_MAX_DURATION","PREVIOUS_TRACE_KEY","PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE","linkTraces","linkPreviousTrace","consistentTraceSampling","useSessionStorage","inMemoryPreviousTraceInfo","getPreviousTraceFromSessionStorage","oldPropagationContext","addPreviousTraceSpanLink","storePreviousTraceInSessionStorage","isFirstTraceOnPageload","mutableSamplingContextData","spanContextSampled","previousTraceInfo","getSampleRate","updatedPreviousTraceInfo","previousTraceSpanCtx","BROWSER_TRACING_INTEGRATION_ID","DEFAULT_BROWSER_TRACING_OPTIONS","browserTracingIntegration","latestRoute","optionalWindowDocument","enableInp","enableElementTiming","enableLongTask","enableLongAnimationFrame","enableInteractions","enableStandaloneClsSpans","enableStandaloneLcpSpans","beforeStartSpan","markBackgroundSpan","instrumentPageLoad","instrumentNavigation","detectRedirects","_collectWebVitals","lastInteractionTimestamp","_createRouteSpan","makeActive","isPageloadTransaction","finalStartSpanOptions","idleSpan","setActiveIdleSpan","emitFinish","interactionHandler","maybeEndActiveSpan","getActiveIdleSpan","navigationOptions","traceOptions","getMetaContent","startingUrl","startBrowserTracingPageLoadSpan","parsed","navigationIsRedirect","isRedirect","startBrowserTracingNavigationSpan","registerInteractionListener","pageloadSpan","metaName","metaTag","inflightInteractionSpan","registerInteractionTransaction","activeIdleSpan","currentRootSpanOp","ACTIVE_IDLE_SPAN_PROPERTY","REDIRECT_THRESHOLD","spanData","init$1","isAtLeastReact17","reactVersion","reactMajor","setCause","cause","seenErrors","recurse","captureReactException","componentStack","errorBoundaryError","INITIAL_STATE","beforeCapture","showDialog","handled","onMount","onUnmount","onReset","fallback","React.isValidElement","simpleHash","anonymizeFilePath","filePath","anonymizeStackTrace","anonymizeUserInfo","anonymizeSentryEvent","anonymized","thread","_d","SENTRY_DSN","Y$3","tt","it","et","rt","st","nt","ot","at","lt","ut","ht","dt","vt","ct","ft","pt","gt","_t","mt","yt","bt","wt","xt","Et","$t","St","kt","Pt","Tt","It","Ct","Rt","Ft","Mt","Ot","At","Dt","jt","Lt","Nt","Ut","zt","Ht","Bt","qt","Wt","Gt","Vt","Jt","Kt","Yt","Xt","Qt$2","Zt","ti","ii","ei","ri","si","ni","oi","ai","li","ui","hi","di","vi$2","ci$2","fi$2","pi","gi$2","_i","mi","yi$2","bi$2","wi$2","xi$2","Ei","$i","Si","ki","Pi","Ti","Ii","Ci","Ri","Fi","Mi","Oi","Ai","Di","ji","Li","Ni","Ui","zi","Hi","Bi","qi","Wi","Gi","Vi","Ji","Ki","Yi","Xi","Qi","Zi","ue","me","$e","Pe","Ke","Ie","He","Ce","Le","Ue","Ge","Je","Xe","Qe","Ze","tr","ir$2","er","rr","sr","nr","or","ar","lr","ur","hr","dr","vr","cr$2","ir","fr","pr$2","pr","yr","_r","mr","yr$2","br","wr","gr","xr","Er","$r","Sr","kr","Pr","Tr","Ir","Cr","Rr","Fr","Mr","Or$2","Ar","Dr","jr","Lr$2","Nr","Ur$2","zr","Hr$2","Br","qr","Wr","Gr","Vr$2","Jr","Kr","Yr","Xr","Qr$2","Zr","ts","es","rs","ss","ns","os","as","ls","us","hs","ds","vs","cs","fs","ps","gs","_s","ms","ys","bs","ws","Lr","xs","$s","Ss","ks","Ps","Ts","Is","Cs","Rs","Fs","Ms","Os","As","Ds","js","Ls","Ns","Us","zs","Hs","Bs","Ws","Gs","Vs","Js","Ks","Ys","Xs","Qs","Zs","tn","en","rn","sn","nn","an","ln","un","hn","dn","vn","cn","pn","gn","_n","mn","yn$2","Qt","vi","xi","fi","ci","bi","yi","gi","wi","bn","wn","xn","En","$n","Sn","kn","Pn","Tn","In","Cn","Rn$2","Fn","Mn$2","On","An","Dn$2","jn","zn","Wn","Gn","Vn","Jn","Kn","Yn","Xn","Qn","Zn","to$2","io","eo$2","ro$2","eo","so$2","ro","no$2","so","oo","ao$2","lo$2","uo","ho$2","vo","co$2","fo","po$2","go","_o$2","mo$2","yo","bo$2","wo","xo$2","Eo","$o","So$2","ko","Po","To","Io$3","Co","Ro$2","Ro","Fo","Mo","Oo$2","Ao","Do","jo$2","Lo","No","Uo","zo","Ho","Bo","qo$2","Wo$2","Wo","qo","Vr","Rn","Qr","mo","no","ao","lo","yn","ho","Io","Or","Oo","Mn","_o","xo","bo","Hr","So","jo","Dn","Ur","co","Go","Jo","PostHogContext","posthogJs","isDeepEqual","obj1","obj2","visited","keys1","keys2","keys1_1","PostHogProvider","apiKey","previousInitializationRef","posthog","previousInitialization","usePostHog","extendStatics","__extends","__","__POSTHOG_ERROR_MESSAGES","_super","PostHogErrorBoundary","additionalProperties","currentProperties","exceptionEvent","isContinueTeamMember","email","SAMPLE_REATE","TRACES_SAMPLE_RATE","TelemetryProviders","allowAnonymousTelemetry","hasContinueEmail","Sentry.init","Sentry.browserTracingIntegration","anonymizedEvent","ideType","anonymizedUser","Sentry.setUser","Sentry.getClient","Sentry.getCurrentScope","content","Sentry.ErrorBoundary","EDIT_MODE_STREAM_ID","INITIAL_EDIT_APPLY_STATE","INITIAL_EDIT_STATE","editStateSlice","setReturnToModeAfterEdit","clearCodeToEdit","setCodeToEdit","updateEditStateApplyState","setLastNonEditSessionEmpty","setPreviousModeEditorContent","editModeStateReducer","BuiltInToolNames","BUILT_IN_GROUP_NAME","CLIENT_TOOLS_IMPLS","useOnboardingCard","onboardingCard","onboardingStatus","hasDismissedOnboardingCard","show","open","tab","setOnboardingCard","close","isDialog","setDialogMessage","setShowDialog","setActiveTab","useSubmitOnboarding","mode","closeOnboardingCard","submitOnboarding","provider","AcademicCapIcon","titleId","svgRef","ForwardRef","React.forwardRef","AdjustmentsHorizontalIcon","AdjustmentsVerticalIcon","ArchiveBoxArrowDownIcon","ArchiveBoxXMarkIcon","ArchiveBoxIcon","ArrowDownCircleIcon","ArrowDownLeftIcon","ArrowDownOnSquareStackIcon","ArrowDownOnSquareIcon","ArrowDownRightIcon","ArrowDownTrayIcon","ArrowDownIcon","ArrowLeftCircleIcon","ArrowLeftEndOnRectangleIcon","ArrowLeftOnRectangleIcon","ArrowLeftStartOnRectangleIcon","ArrowLeftIcon","ArrowLongDownIcon","ArrowLongLeftIcon","ArrowLongRightIcon","ArrowLongUpIcon","ArrowPathRoundedSquareIcon","ArrowPathIcon","ArrowRightCircleIcon","ArrowRightEndOnRectangleIcon","ArrowRightOnRectangleIcon","ArrowRightStartOnRectangleIcon","ArrowRightIcon","ArrowSmallDownIcon","ArrowSmallLeftIcon","ArrowSmallRightIcon","ArrowSmallUpIcon","ArrowTopRightOnSquareIcon","ArrowTrendingDownIcon","ArrowTrendingUpIcon","ArrowTurnDownLeftIcon","ArrowTurnDownRightIcon","ArrowTurnLeftDownIcon","ArrowTurnLeftUpIcon","ArrowTurnRightDownIcon","ArrowTurnRightUpIcon","ArrowTurnUpLeftIcon","ArrowTurnUpRightIcon","ArrowUpCircleIcon","ArrowUpLeftIcon","ArrowUpOnSquareStackIcon","ArrowUpOnSquareIcon","ArrowUpRightIcon","ArrowUpTrayIcon","ArrowUpIcon","ArrowUturnDownIcon","ArrowUturnLeftIcon","ArrowUturnRightIcon","ArrowUturnUpIcon","ArrowsPointingInIcon","ArrowsPointingOutIcon","ArrowsRightLeftIcon","ArrowsUpDownIcon","AtSymbolIcon","BackspaceIcon","BackwardIcon","BanknotesIcon","Bars2Icon","Bars3BottomLeftIcon","Bars3BottomRightIcon","Bars3CenterLeftIcon","Bars3Icon","Bars4Icon","BarsArrowDownIcon","BarsArrowUpIcon","Battery0Icon","Battery100Icon","Battery50Icon","BeakerIcon","BellAlertIcon","BellSlashIcon","BellSnoozeIcon","BellIcon","BoldIcon","BoltSlashIcon","BoltIcon","BookOpenIcon","BookmarkSlashIcon","BookmarkSquareIcon","BookmarkIcon","BriefcaseIcon","BugAntIcon","BuildingLibraryIcon","BuildingOffice2Icon","BuildingOfficeIcon","BuildingStorefrontIcon","CakeIcon","CalculatorIcon","CalendarDateRangeIcon","CalendarDaysIcon","CalendarIcon","CameraIcon","ChartBarSquareIcon","ChartBarIcon","ChartPieIcon","ChatBubbleBottomCenterTextIcon","ChatBubbleBottomCenterIcon","ChatBubbleLeftEllipsisIcon","ChatBubbleLeftRightIcon","ChatBubbleLeftIcon","ChatBubbleOvalLeftEllipsisIcon","ChatBubbleOvalLeftIcon","CheckBadgeIcon","CheckCircleIcon","ChevronDoubleDownIcon","ChevronDoubleLeftIcon","ChevronDoubleRightIcon","ChevronDoubleUpIcon","ChevronLeftIcon","ChevronUpDownIcon","ChevronUpIcon","CircleStackIcon","ClipboardDocumentCheckIcon","ClipboardDocumentListIcon","ClipboardDocumentIcon","ClipboardIcon","ClockIcon","CloudArrowDownIcon","CloudArrowUpIcon","CloudIcon","CodeBracketSquareIcon","CodeBracketIcon","Cog6ToothIcon","Cog8ToothIcon","CogIcon","CommandLineIcon","ComputerDesktopIcon","CpuChipIcon","CreditCardIcon","CubeTransparentIcon","CubeIcon","CurrencyBangladeshiIcon","CurrencyDollarIcon","CurrencyEuroIcon","CurrencyPoundIcon","CurrencyRupeeIcon","CurrencyYenIcon","CursorArrowRaysIcon","CursorArrowRippleIcon","DevicePhoneMobileIcon","DeviceTabletIcon","DivideIcon","DocumentArrowDownIcon","DocumentArrowUpIcon","DocumentChartBarIcon","DocumentCheckIcon","DocumentCurrencyBangladeshiIcon","DocumentCurrencyDollarIcon","DocumentCurrencyEuroIcon","DocumentCurrencyPoundIcon","DocumentCurrencyRupeeIcon","DocumentCurrencyYenIcon","DocumentDuplicateIcon","DocumentMagnifyingGlassIcon","DocumentMinusIcon","DocumentPlusIcon","DocumentTextIcon","DocumentIcon","EllipsisHorizontalCircleIcon","EllipsisVerticalIcon","EnvelopeOpenIcon","EnvelopeIcon","EqualsIcon","ExclamationCircleIcon","ExclamationTriangleIcon","EyeDropperIcon","EyeSlashIcon","EyeIcon","FaceFrownIcon","FaceSmileIcon","FilmIcon","FingerPrintIcon","FireIcon","FlagIcon","FolderArrowDownIcon","FolderMinusIcon","FolderOpenIcon","FolderPlusIcon","FolderIcon","ForwardIcon","FunnelIcon","GifIcon","GiftTopIcon","GiftIcon","GlobeAltIcon","GlobeAmericasIcon","GlobeAsiaAustraliaIcon","GlobeEuropeAfricaIcon","H1Icon","H2Icon","H3Icon","HandRaisedIcon","HandThumbDownIcon","HandThumbUpIcon","HashtagIcon","HeartIcon","HomeModernIcon","HomeIcon","IdentificationIcon","InboxArrowDownIcon","InboxStackIcon","InboxIcon","InformationCircleIcon","ItalicIcon","KeyIcon","LanguageIcon","LifebuoyIcon","LightBulbIcon","LinkSlashIcon","LinkIcon","ListBulletIcon","LockClosedIcon","LockOpenIcon","MagnifyingGlassCircleIcon","MagnifyingGlassMinusIcon","MagnifyingGlassPlusIcon","MagnifyingGlassIcon","MapPinIcon","MapIcon","MegaphoneIcon","MicrophoneIcon","MinusCircleIcon","MinusSmallIcon","MinusIcon","MoonIcon","MusicalNoteIcon","NewspaperIcon","NoSymbolIcon","NumberedListIcon","PaintBrushIcon","PaperAirplaneIcon","PaperClipIcon","PauseCircleIcon","PauseIcon","PencilSquareIcon","PencilIcon","PercentBadgeIcon","PhoneArrowDownLeftIcon","PhoneArrowUpRightIcon","PhoneXMarkIcon","PhoneIcon","PhotoIcon","PlayCircleIcon","PlayPauseIcon","PlayIcon","PlusCircleIcon","PlusSmallIcon","PlusIcon","PowerIcon","PresentationChartBarIcon","PresentationChartLineIcon","PrinterIcon","PuzzlePieceIcon","QrCodeIcon","QuestionMarkCircleIcon","QueueListIcon","RadioIcon","ReceiptPercentIcon","ReceiptRefundIcon","RectangleGroupIcon","RectangleStackIcon","RocketLaunchIcon","RssIcon","ScaleIcon","ScissorsIcon","ServerStackIcon","ServerIcon","ShareIcon","ShieldCheckIcon","ShieldExclamationIcon","ShoppingBagIcon","ShoppingCartIcon","SignalSlashIcon","SignalIcon","SlashIcon","SparklesIcon","SpeakerWaveIcon","SpeakerXMarkIcon","Square2StackIcon","Square3Stack3DIcon","Squares2X2Icon","SquaresPlusIcon","StarIcon","StopIcon","StrikethroughIcon","SunIcon","SwatchIcon","TableCellsIcon","TagIcon","TicketIcon","TrashIcon","TrophyIcon","TruckIcon","TvIcon","UnderlineIcon","UserCircleIcon","UserGroupIcon","UserMinusIcon","UserPlusIcon","UserIcon","UsersIcon","VariableIcon","VideoCameraSlashIcon","VideoCameraIcon","ViewColumnsIcon","ViewfinderCircleIcon","WalletIcon","WifiIcon","WindowIcon","WrenchScrewdriverIcon","WrenchIcon","XMarkIcon","StyledCard","ReusableCard","showCloseButton","testId","jsxs","OllamaLogo","width","renderTabButton","tabTitle","activeTab","onTabClick","baseButtonClass","OnboardingCardTabs","tabs","LOCAL_ONBOARDING_PROVIDER_TITLE","LOCAL_ONBOARDING_FIM_MODEL","LOCAL_ONBOARDING_CHAT_MODEL","LOCAL_ONBOARDING_CHAT_TITLE","LOCAL_ONBOARDING_EMBEDDINGS_MODEL","updateSelectedModelByRole","role","modelTitle","model","min","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","detectOverflow","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","timeoutId","root","_io","refresh","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","detectOverflow$1","offset$1","shift$1","flip$1","size$1","arrow$1","platformWithCache","computePosition$1","hasOwn","classNames","appendClass","parseValue","newClass","module","a3","TooltipStyles","ToolTip","tooltipId","useId","combinedStyles","tooltipPortalDiv","childrenWithTooltipId","cloneElement","Fragment","Tooltip","ChevronDownIcon","OllamaCompletedStep","OllamaModelDownload","modelName","hasDownloaded","onClick","ModelProviderTags","completionParamsInputs","models","convertOpenRouterModelToPackage","fetchOpenRouterModelsFromAPI","OPENROUTER_API_URL","getOpenRouterModelsList","completionParamsInputsConfigs","openSourceModels","isOpenSource","OPENROUTER_LOADING_PLACEHOLDER","openRouterModelsList","initializeOpenRouterModels","providers","apiBaseInput","isNewUserOnboarding","defaultOnboardingCardState","OllamaConnectionStatuses","downloadUrl","OllamaStatus","isOllamaConnected","setStatus","onClickDownload","OLLAMA_CHECK_INTERVAL_MS","OnboardingLocalTab","hasLoadedChatModel","setHasLoadedChatModel","downloadedOllamaModels","setDownloadedOllamaModels","setIsOllamaConnected","hasDownloadedChatModel","ollamaModel","hasDownloadedAutocompleteModel","hasDownloadedEmbeddingsModel","allDownloaded","fetchDownloadedModels","intervalId","onClickSubmitOnboarding","onClickSkip","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","getNodeParentName","isNameInFieldArray","tempObject","prototypeCopy","isWeb","cloneObject","isFileListInstance","isKey","isUndefined","compact","stringToPath","defaultValue","tempPath","lastIndex","newValue","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormControlContext","getProxyFormState","formState","control","localProxyFormState","isRoot","generateWatchOutput","_names","formValues","isGlobal","fieldName","deepEqual","object1","object2","_internal_visited","val1","val2","HookFormContext","FormProvider","watch","getValues","getFieldState","setError","clearErrors","setValue","trigger","resetField","handleSubmit","unregister","register","setFocus","appendErrors","validateAllFieldCriteria","convertToArrayPayload","createSubject","_observers","extractFormValues","fieldsState","fieldState","fieldValue","nestedFieldsState","isEmptyObject","isFileInput","isMultipleSelect","isRadioInput","isRadioOrCheckbox","ref","live","baseGet","updatePath","isEmptyArray","unset","childObject","objectHasFunction","isTraversable","markFieldsDirty","fields","getDirtyFields","dirtyFieldsFromValues","formValue","defaultResult","validResult","getCheckboxValue","option","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","defaultReturn","getRadioValue","previous","getFieldValue","_f","getResolverOptions","fieldsNames","_fields","criteriaMode","shouldUseNativeValidation","isRegex","getRuleValue","rule","getValidationModes","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","isWatched","isBlurEvent","watchName","iterateFieldsByAction","abortEarly","currentField","schemaErrorLookup","shouldRenderFormState","formStateData","_proxyFormState","updateFormState","shouldSubscribeByName","signalName","exact","currentName","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","updateFieldArrayRootError","fieldArrayErrors","getValidateError","getValueAndMessage","validationData","validateField","disabledFieldNames","isFieldArray","refs","minLength","validate","mount","inputValue","inputRef","setCustomValidity","isRadio","isCheckBox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","defaultOptions","createFormControl","_formState","_defaultValues","_formValues","_state","delayErrorCallback","timer","defaultProxyFormState","_proxySubscribeFormState","_subjects","shouldDisplayAllAssociatedErrors","debounce","wait","_setValid","shouldUpdateValid","isValid","_runSchema","_updateIsValidating","executeBuiltInValidation","isValidating","_setFieldArray","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","isFieldArrayRoot","isPromiseFunction","fieldError","_removeUnmounted","_getWatch","_getFieldArray","optionRef","checkboxRef","radioRef","fieldKey","cloneValue","onChange","isFieldValueUpdated","_updateIsFieldValueUpdated","validationModeBeforeSubmit","validationModeAfterSubmit","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","inputName","currentError","currentRef","restOfErrorTree","_subscribe","_setFormState","_setDisabledField","disabledStateChanged","disabledIsDefined","fieldRef","radioOrCheckbox","_focusError","_disableForm","onValid","onInvalid","onValidError","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","fieldsToCheck","isDirty","existingValue","form","methods","useForm","_formControl","formControl","sub","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","classGroups","processClassesRecursively","classGroup","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","currentClassPartObject","pathPart","createLruCache","maxCacheSize","cacheSize","previousCache","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","createSortModifiers","orderSensitiveModifiers","modifier","sortedModifiers","unsortedModifiers","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","inputs","ALERT_CONFIGS","alertSizes","iconSizes","spacingSizes","Alert","Icon","border","iconColor","colorMap","buttonVariants","buttonSizes","iconButtonSizes","variant","isIcon","Card","Divider","EmptyState","useFontSize","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$HgANd$react","$8ae05eaa5c114e9c$var$_React_useInsertionEffect","$8ae05eaa5c114e9c$var$useEarlyEffect","$lmaYr$react","$8ae05eaa5c114e9c$export$7f54fc3180508a52","$lmaYr$useRef","$lmaYr$useCallback","$431fbd86ca7dc216$export$b204af158042fbac","_el_ownerDocument","$431fbd86ca7dc216$export$f21a1ffae260145a","$431fbd86ca7dc216$var$isNode","$431fbd86ca7dc216$export$af51f0f06c0f328a","$f4e2df6bd15f8569$var$_shadowDOM","$f4e2df6bd15f8569$export$98658e8c59125e6a","$d4ee10de306f2510$export$4282f70798064fe0","otherNode","$lcSu5$shadowDOM","$d4ee10de306f2510$export$cd4e5573fbe2b576","_activeElement_shadowRoot","activeElement","$d4ee10de306f2510$export$e58f029f0fbfdb29","$c87311424ea30a05$var$testUserAgent","_window_navigator_userAgentData","brands","brand","$c87311424ea30a05$var$testPlatform","$c87311424ea30a05$var$cached","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$a11b0059900ceec8","$03deb23ff14920c4$export$4eaf04e54aa8eed6","globalListeners","$lPAwt$useRef","addGlobalListener","$lPAwt$useCallback","eventTarget","removeGlobalListener","_globalListeners_current_get","removeAllGlobalListeners","$lPAwt$useEffect","$6a7db85432448f7f$export$60278871457622de","$8a9cb279dc87e130$export$525bc4921d56d4a","nativeEvent","$8a9cb279dc87e130$export$c2b7abe5d61ec696","$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","stateRef","$6dfIe$useRef","$6dfIe$useLayoutEffect","dispatchBlur","$6dfIe$useEffectEvent","$6dfIe$useCallback","onBlurHandler","_stateRef_current_observer","relatedTargetEl","$8a9cb279dc87e130$export$fda7da73ab5d4c48","$507fabe10e71c6fb$var$currentModality","$507fabe10e71c6fb$var$changeHandlers","$507fabe10e71c6fb$export$d90243b58daecda7","$507fabe10e71c6fb$var$hasEventBeforeFocus","$507fabe10e71c6fb$var$hasBlurredWindowRecently","$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","$507fabe10e71c6fb$var$triggerChangeHandlers","modality","$507fabe10e71c6fb$var$isValidKey","$28AnR$isMac","$507fabe10e71c6fb$var$handleKeyboardEvent","$507fabe10e71c6fb$var$handlePointerEvent","$507fabe10e71c6fb$var$handleClickEvent","$28AnR$isVirtualClick","$507fabe10e71c6fb$var$handleFocusEvent","$507fabe10e71c6fb$var$handleWindowBlur","$507fabe10e71c6fb$var$setupGlobalFocusEvents","$28AnR$getOwnerWindow","windowObject","documentObject","$28AnR$getOwnerDocument","focus","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","loadListener","$507fabe10e71c6fb$export$2f1888112f558a7d","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","document1","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","deps","$28AnR$useEffect","$a1ea59d68270f0dd$export$f8168d8dd8fd66e6","isDisabled","onFocusProp","onBlurProp","onFocusChange","$hf0lj$useCallback","onSyntheticFocus","onFocus","ownerDocument","$hf0lj$getOwnerDocument","$hf0lj$getActiveElement","$hf0lj$getEventTarget","$9ab94262bd0047c7$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","$3b9Q0$useRef","$3b9Q0$useGlobalListeners","$3b9Q0$useCallback","$3b9Q0$getOwnerDocument","$3b9Q0$getActiveElement","$3b9Q0$getEventTarget","currentTarget","$3b9Q0$nodeContains","$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$hoverCount","$6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$handleGlobalPointerEvent","$6179b936705e76d3$var$setupGlobalTouchEvents","$6179b936705e76d3$export$ae780daf29e6d456","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","$AWxnT$useState","$AWxnT$useRef","$AWxnT$useEffect","$AWxnT$useGlobalListeners","hoverProps","triggerHoverEnd","$AWxnT$useMemo","triggerHoverStart","pointerType","$AWxnT$getOwnerDocument","$AWxnT$nodeContains","$f7dceffc5ad7768b$export$4e328f61c538687f","autoFocus","within","$isWE5$useRef","$isWE5$isFocusVisible","isFocused","setFocused","$isWE5$useState","isFocusVisibleState","setFocusVisible","$isWE5$useCallback","$isWE5$useFocusVisibleListener","isFocusVisible","focusProps","$isWE5$useFocus","focusWithinProps","$isWE5$useFocusWithin","o$b","n.isHTMLFieldSetElement","n.isHTMLLegendElement","m.isInteractiveElement","m.isHTMLLabelElement","m.isHTMLInputElement","x$6","o$3","useSyncExternalStoreWithSelector_production","c.isHTMLElement","d.isHTMLorSVGElement","d.isHTMLIframeElement","E.isNode","E.isHTMLorSVGElement","o.isHTMLorSVGElement","o.hasInlineStyle","o.isHTMLInputElement","getUserAgent","uaData","isClient","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","transform","whileElementsMounted","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","ReactDOM.flushSync","floatingStyles","initialStyles","SafeReact","useInsertionEffect","useSafeInsertionEffect","useEffectEvent","serverHandoffComplete","genId","useFloatingId","setId","useReactId","createPubSub","_map$get","_map$get2","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","FOCUSABLE_ATTRIBUTE","useFloatingRootContext","onOpenChangeProp","elementsProp","floatingId","nested","positionReference","setPositionReference","onOpenChange","nodeId","internalRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","domReference","domReferenceRef","tree","position","useFloating$1","computedPositionReference","ACTIVE_KEY","SELECTED_KEY","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","validProps","propsOrGetProps","useInteractions","referenceDeps","floatingDeps","itemDeps","getReferenceProps","getFloatingProps","getItemProps","getArgsWithCustomFloatingHeight","listRef","overflowRef","onFallbackChange","innerOffset","minItemsVisible","referenceOverflowThreshold","scrollRef","scrollEl","clientTop","floatingIsBordered","scrollElIsBordered","floatingIsScrollEl","nextArgs","refOverflow","diffY","maxHeight","useInnerOffset","enabled","unstable_onChange","controlledScrollingRef","prevScrollTopRef","initialOverflowRef","onWheel","dY","isAtTop","isAtBottom","remainingScroll","sign","scrollDiff","pe.isHTMLElement","j.createElement","t.useState","t.useEffect","j.isNode","g.isHTMLElement","h$4","st.isHTMLElement","ListboxButton","fontSizeModifier","HLButton","ListboxOptions","HLOptions","ListboxOption","HLOption","Toggle","isOpen","onToggle","subtitle","ChevronRightIcon","Transition","HLTransition","fuzzyScore","queryIdx","lastMatchIdx","ModelSelectionListbox","selectedProvider","setSelectedProvider","topOptions","otherOptions","searchPlaceholder","searchQuery","setSearchQuery","filteredTopOptions","opt","filteredOtherOptions","hasResults","Listbox","selected","CheckIcon","MODEL_PROVIDERS_URL","CODESTRAL_URL","AddModelForm","onDone","hideFreeTrialLimitMessage","selectedModel","setSelectedModel","formMethods","popularProviderTitles","_g","allProviders","popularProviders","otherProviders","selectedProviderApiKeyUrl","onSubmit","hasValidApiKey","reqInputFields","onClickDownloadProvider","_h","OnboardingProvidersTab","providerConfigs","handleFormSubmit","handleClickMoreProviders","hasAnyApiKey","OnboardingCard","renderTabContent","currentTab","DEFAULT_TOOL_SETTING","DEFAULT_RULE_SETTING","DEFAULT_UI_SLICE","uiSlice","setIsExploreDialogOpen","toggleToolSetting","setToolPolicy","clearToolPolicy","toggleToolGroupSetting","addTool","addRule","toggleRuleSetting","setTTSActive","setReasoningSetting","uiReducer","stripImages","messageContent","part","renderChatMessage","renderContextItems","contextItems","renderContextItemsWithStatus","normalizeToMessageParts","mergeReasoningDetails","existing","deltaItem","existingIndex","existingItem","NEW_SESSION_TITLE","GITHUB_LINK","DISCUSSIONS_LINK","global","factory","exports","this","sets","xl","subexp","toUpperCase","toArray","assign","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","PCHAR$","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","_arr","toConsumableArray","arr2","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","error$1","mapDomain","labels","encoded","ucs2decode","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","numPoints","firstTime","decode","inputLength","bias","basic","oldi","baseMinusT","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","_currentValue2","basicLength","handledCPCount","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","_currentValue","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","c2","c3","_normalizeComponentEncoding","decodeUnreserved","decStr","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","allZeroFields","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","schemeHandler","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","serialize","authority","resolveComponents","skipNormalization","baseURI","relativeURI","schemelessOptions","uri","equal","uriA","uriB","escapeComponent","unescapeComponent","secure","handler$1","isSecure","wsComponents","handler$2","_wsComponents$resourc","_wsComponents$resourc2","handler$3","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","UNRESERVED","PCT_ENCODED","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","hfields","hfield","toAddrs","_x","_xl","_x2","_xl2","addr","toAddr","atIdx","localPart","domain","URN_PARSE","handler$5","urnComponents","scheme","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","pathToUriPathSegment","clean","getCleanUriPath","URI.parse","findUriInDirs","dirUriCandidates","uriComps","uriPathParts","dirComps","dirPathParts","allDirPartsMatch","getUriPathBasename","getFileExtensionFromBasename","getLastNUriRelativePathParts","relativePathOrBasename","getLastNPathParts","joinPathsToUri","pathSegments","baseUri","URI.resolve","joinEncodedUriPathSegmentToUri","pathSegment","getShortestUniqueRelativeUriPaths","uris","segmentCombinationsMap","suffixes","suffix","uniquePath","getUriDescription","foundInDir","baseName","extension","last2Parts","undefined","VERSION","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","nodeIsSet","nodeIsTypedArray","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseTimes","baseToPairs","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","placeholder","deburrLetter","escapeHtmlChar","escapeStringChar","getValue","hasUnicode","hasUnicodeWord","iteratorToArray","iterator","mapToArray","overArg","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","Array","Date","Error","Function","Math","Object","RegExp","String","TypeError","arrayProto","funcProto","objectProto","coreJsData","funcToString","hasOwnProperty","idCounter","maskSrcKey","uid","nativeObjectToString","oldDash","reIsNative","Buffer","Symbol","Uint8Array","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","splice","spreadableSymbol","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","Map","Promise","Set","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","lazyClone","copyArray","lazyReverse","lazyValue","isArr","isRight","arrLength","view","getView","iteratees","iterLength","takeCount","baseWrapperValue","outer","iterIndex","computed","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isBuffer","isType","isTypedArray","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","number","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","tag","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","subValue","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","setTimeout","baseDifference","includes","isCommon","valuesLength","valuesIndex","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","toInteger","toLength","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","baseGt","other","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","caches","seen","baseInverter","baseInvoke","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","indexOf","basePullAt","indexes","baseUnset","baseRange","step","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","isRootPrimitive","baseUpdate","updater","baseWhile","isDrop","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","toString","castRest","castSlice","clearTimeout","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneRegExp","regexp","cloneSymbol","symbol","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","order","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createBind","isBind","createCtor","createCaseFirst","methodName","trailing","createCompounder","words","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","prereq","getFuncName","funcName","getData","isLaziable","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","toNumber","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","setWrapToString","createRound","precision","pair","createToPairs","createWrap","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","convert","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","flatten","otherFunc","isKeyable","isOwn","unmasked","stubArray","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","isMaskable","stubFalse","memoizeCapped","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","updateWrapDetails","lastCalled","stamp","remaining","rand","quote","subString","chunk","concat","difference","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","head","initial","intersection","mapped","intersectionBy","intersectionWith","join","lastIndexOf","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","reverse","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","tail","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","interceptor","thru","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","clone","wrapperReverse","wrapperValue","countBy","every","filter","find","findLast","flatMap","flatMapDeep","flatMapDepth","forEach","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","reduce","reduceRight","negate","sample","sampleSize","shuffle","some","sortBy","after","before","bind","bindKey","curry","curryRight","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","debounced","isInvoking","defer","resolver","once","overArgs","funcsLength","partial","partialRight","rearg","spread","throttle","unary","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gte","isArrayBuffer","isDate","isEqualWith","isFinite","isMatch","isMatchWith","isNaN","isNative","isNull","isNil","isSafeInteger","isWeakMap","isWeakSet","lte","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","create","properties","defaults","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","invoke","mapKeys","mapValues","omit","omitBy","pickBy","pick","setWith","toPairs","toPairsIn","isArrLike","updateWith","valuesIn","inRange","random","temp","camelCase","word","capitalize","upperFirst","endsWith","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","strLength","padEnd","padStart","parseInt","radix","repeat","snakeCase","startCase","startsWith","template","imports","importsKeys","importsValues","isEscaping","isEvaluating","interpolate","reDelimiters","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","toLower","toUpper","trim","trimEnd","trimStart","omission","substring","newEnd","unescape","upperCase","bindAll","methodNames","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","mixin","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","augend","addend","ceil","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiply","multiplier","multiplicand","subtract","minuend","subtrahend","sum","sumBy","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","Spinner","getStatusIntro","isInstant","getGroupActionVerb","toolCallStates","statuses","getIconByName","Icons","getStatusIcon","Icons.ArrowRightIcon","Icons.CheckIcon","Icons.XMarkIcon","toolCallStateToContextItems","toolCallState","ctxItem","toolCallCtxItemToCtxItemWithId","toolCallId","__createBinding","k2","__exportStar","options_1","PartialJSON","MalformedJSON","parseJSON","jsonString","_parseJSON","allow","markPartialJSON","throwMalformedError","parseAny","skipBlank","parseStr","parseObj","parseArr","parseNum","incrementalParseJson","raw","addToolCallDeltaToState","toolCallDelta","currentCall","callType","callId","currentArgs","nameDelta","argsDelta","mergedName","mergedArgs","parsedArgs","editToolNames","isEditTool","toolName","OrderedMap","found","newKey","place","findDiffStart","pos","childA","childB","findDiffEnd","posA","posB","iA","iB","same","minSize","nodeStart","blockSeparator","leafText","nodeText","otherPos","retIndex","curPos","cur","schema","joined","nodes","compareDeep","Mark$1","Mark","attrs","placed","mark","marks","ReplaceError","Slice","openStart","openEnd","insertInto","removeRange","openIsolating","indexTo","offsetTo","insert","$from","$to","replaceOuter","prepareSliceForReplace","replaceThreeWay","replaceTwoWay","checkJoin","main","joinable","$before","$after","addNode","addRange","$start","$end","endIndex","$along","ResolvedPos","parentOffset","dOff","tmp","pred","NodeRange","rem","resolveCache","elt","ResolveCache","resolveCacheSize","emptyAttrs","Node$2","Node","startPos","includeParents","wrapMarks","replacement","one","two","TextNode","ContentMatch","validEnd","nodeTypes","stream","TokenStream","expr","parseExpr","dfa","nfa","checkForDeadEnds","frag","toEnd","finished","tp","active","scan","tok","exprs","parseExprSeq","parseExprSubscript","parseExprAtom","parseExprRange","resolveName","typeName","connect","compile","edge","term","edges","loop","cmp","nullFrom","labeled","explore","states","work","dead","defaultAttrs","attrName","computeAttrs","built","given","checkAttrs","initAttrs","Attribute","NodeType$1","NodeType","spec","matched","markType","topType","validateType","MarkType","rank","Schema$3","instanceSpec","contentExprCache","contentExpr","markExpr","gatherMarks","excl","ok","isTagRule","isStyleRule","DOMParser$1","DOMParser","rules","matchedStyles","ParseContext","style","priority","blockTags","ignoreTags","listTags","OPT_PRESERVE_WS","OPT_PRESERVE_WS_FULL","OPT_OPEN_LEFT","wsOptionsFor","preserveWhitespace","NodeContext","solid","topNode","topContext","preserveWS","nodeBefore","domNodeBefore","matchAfter","outerWS","ruleID","normalizeList","sync","oldNeedsBlock","innerMarks","styles","continueAfter","nodeType","startIn","contentDOM","cautious","penalty","cx","block","nodeMarks","markMayApply","applyMarks","textNode","useRoot","minDepth","$context","deflt","prevItem","DOMSerializer","keep","rendered","markDOM","renderSpec","inline","toDOM","structure","xmlNS","blockArraysIn","gatherToDOM","suspiciousAttributeCache","suspiciousAttributes","suspiciousAttributesInner","tagName","suspicious","space","innerContent","lower16","factor16","makeRecover","recoverIndex","recoverOffset","DEL_BEFORE","DEL_AFTER","DEL_ACROSS","DEL_SIDE","MapResult","delInfo","recover","StepMap","ranges","diff","assoc","simple","oldIndex","newIndex","oldSize","newSize","del","oldStart","newStart","Mapping","maps","mirror","mirrors","mapping","startSize","mirr","totalSize","inverse","corr","stepsByID","Step$1","stepClass","StepResult","failed","mapFragment","AddMarkStep","Step","oldSlice","RemoveMarkStep","AddNodeMarkStep","updated","newSet","RemoveNodeMarkStep","ReplaceStep","contentBetween","ReplaceAroundStep","gapFrom","gapTo","gap","inserted","addMark","added","removing","adding","removeMark","toRemove","clearIncompatible","clearNewlines","replSteps","allowed","newline","canCut","liftTarget","lift","gapStart","gapEnd","splitting","findWrapping","innerRange","around","findWrappingOutside","findWrappingInside","withAttrs","inside","innerMatch","wrappers","setBlockType","mapFrom","attrsHere","canChangeType","convertNewlines","pre","supportLinebreak","replaceLinebreaks","startM","endM","replaceNewlines","$pos","setNodeMarkup","newNode","canSplit","typesAfter","innerType","overrideChild","baseType","typeAfter","canJoin","canAppendWithSubstitutedLinebreaks","linebreakReplacement","joinPoint","beforeType","$full","insertPoint","dropPoint","insertPos","fits","wrapping","replaceStep","fitsTrivially","Fitter","unplaced","fit","moveInline","placedSize","startDepth","sliceDepth","contentAt","frontierDepth","inject","openAtEnd","dropFromFragment","taken","openEndCount","closeNodeStart","addToFragment","contentAfterFits","dropInner","invalidMarks","definesContent","replaceRange","targetDepths","coveredDepths","preferredTarget","preferredTargetIndex","leftNodes","preferredDepth","leftNode","def","openDepth","targetDepth","expand","closeFragment","startSteps","oldOpen","newOpen","replaceRangeWith","point","deleteRange","covered","AttrStep","DocAttrStep","TransformError","Transform$1","steps","classesById","Selection$2","$anchor","$head","SelectionRange","lastNode","lastParent","selectionToInsertionEnd","textOnly","TextSelection","findSelectionIn","AllSelection","cls","selectionClass","Selection","warnedAboutTextSelection","checkTextSelection","TextBookmark","anchor","dPos","NodeSelection","deleted","NodeBookmark","sel","AllBookmark","startLen","_from","_to","_newFrom","newTo","UPDATED_SEL","UPDATED_MARKS","UPDATED_SCROLL","Transaction","Transform","selection","inheritMarks","FieldDesc","baseFields","_marks","_old","Configuration","EditorState","ignore","rootTr","trs","haveNew","oldState","newInstance","$config","pluginFields","bindProps","Plugin","PluginKey","domIndex","reusedRange","textRange","clearReusedRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","atomElements","nodeSize","hasBlockDesc","textNodeBefore$1","textNodeAfter$1","isOnEdge","atStart","atEnd","selectionCollapsed","domSel","keyEvent","keyCode","deepActiveElement","caretFromPoint","nav","agent","ie_edge","ie_upto10","ie_11up","ie_version","_chrome","chrome","chrome_version","safari","ios","mac","windows","android","webkit_version","windowRect","vp","scaleX","scaleY","scrollRectIntoView","startDOM","scrollThreshold","scrollMargin","atTop","bounding","moveX","moveY","startX","startY","dX","storeScrollPos","refDOM","refTop","localRect","scrollStack","resetScrollPos","newRefTop","restoreScrollStack","dTop","preventScrollSupported","focusPreventScroll","stored","findOffsetInNode","closest","dxClosest","coordsClosest","rowBot","rowTop","firstBelow","coordsBelow","childIndex","dx","findOffsetInText","singleRect","inRect","targetKludge","posFromElement","posFromCaret","outsideBlock","sawBlock","elementFromPoint","box","startI","posAtCoords","caret","nonZero","BIDI","coordsAtPos","atom","supportEmptyRange","rectBefore","rectAfter","flattenV","takeSide","flattenH","withFlushedState","viewState","endOfTextblockVertical","nearest","boxes","maybeRTL","endOfTextblockHorizontal","oldNode","oldOff","anchorNode","anchorOffset","oldBidiLevel","parentDOM","newOff","cachedState","cachedDir","endOfTextblock","NOT_DIRTY","CHILD_DIRTY","CONTENT_DIRTY","NODE_DIRTY","ViewDesc","widget","outerDeco","innerDeco","nodeName","domBefore","domAfter","onlyNodes","nodeDOM","TrailingHackViewDesc","WidgetViewDesc","enter","fromOffset","toOffset","childBase","force","anchorDOM","headDOM","selRange","brKludge","domSelExtended","mutation","startInside","endInside","dirty","stop","CompositionViewDesc","textDOM","mut","MarkViewDesc","custom","replaceNodes","NodeViewDesc","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","sameOuterDeco","localComposition","compositionInChild","ViewTreeUpdater","iterDeco","insideNode","compIndex","renderDescs","iosHacks","textPos","findTextInFragment","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","docViewDesc","docView","descs","written","childDOM","rm","OuterDecoLevel","noDeco","outerDOM","prevComputed","curComputed","curDOM","deco","patchAttributes","prevList","curList","lock","preMatch","maxKeep","markDesc","targetDesc","domNode","nextDOM","locked","ch","lastChild","hack","parentDesc","curDesc","descI","fI","compareSide","onWidget","onNode","locals","decoIndex","restNode","parentIndex","widgets","cutAt","oldCSS","childStart","selectionFromDOM","nearestDesc","inWidget","nearestDescNode","selectionBetween","editorOwnsSelection","hasSelection","selectionToDOM","syncNodeSelection","curSel","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","removeClassOnSelectionChange","setEditable","img","clearNodeSelection","hasFocusAndSelection","anchorInRightPlace","moveSelectionBlock","$side","selectHorizontally","mods","$newHead","nodePos","nodeLen","isIgnorable","skipIgnoredNodes","skipIgnoredNodesBefore","skipIgnoredNodesAfter","moveNode","moveOffset","isBlockNode","setSelFocus","textNodeAfter","textNodeBefore","findDirection","selectVertically","beyond","stopNativeHorizontalDelete","empty","nextNode","switchEditable","safariDownArrowBug","focusNode","focusOffset","getMods","captureKeyDown","serializeForClipboard","serializer","detachedDoc","firstChild","wrapMap","parseFromClipboard","plainText","inCode","asText","readHTML","restoreReplacedSpaces","contextNode","sliceData","inlineParents","addContext","closeSlice","normalizeSiblings","lastWrap","inLast","addToSibling","closeRight","withWrappers","sibling","closeRange","_detachedDoc","_policy","maybeWrapTrusted","trustedTypes","metas","firstTag","editHandlers","passiveHandlers","InputState","initInput","eventBelongsToView","runCustomHandler","ensureListeners","setSelectionOrigin","destroyInput","currentHandlers","dispatchEvent","_event","inOrNearComposition","eventCoords","isNear","click","dy","runHandlerOnContext","propName","updateSelection","selectClickedLeaf","selectClickedNode","selectedNode","selectAt","handleSingleClick","selectNode","handleDoubleClick","handleTripleClick","defaultTripleClick","forceDOMFlush","endComposition","selectNodeModifier","flushed","MouseDown","targetPos","timeoutComposition","scheduleComposeEnd","clearComposition","timestampFromCustomEvent","findCompositionNode","textBefore","textAfter","descAfter","lastChanged","descBefore","restarting","captureCopy","brokenClipboardAPI","cut","sliceSingleNode","capturePaste","plain","doPaste","preferPlain","singleNode","getText","clipboardData","Dragging","move","dragCopyModifier","dragMoves","moves","test","mouseDown","draggedSlice","dragging","eventPos","$mouse","beforeInsert","domChangeCount","$cursor","compareObjs","WidgetType","noSpec","oldOffset","Decoration","InlineType","none","DecorationSet","local","decorations","buildTree","childOff","newLocal","mapChildren","byPos","childNode","childOffset","baseOffset","takeSpansForNode","moveSpans","withoutNulls","dec","localSet","DecorationGroup","removeOverlap","members","mappedDecos","member","sorted","oldChildren","moved","oldEnd","dSize","mustRebuild","fromLocal","toLocal","mapAndGatherRemainingDecorations","gather","hasNulls","localStart","subtree","working","insertAhead","viewDecorations","observeOptions","useCharData","SelectionState","DOMObserver","handleDOMChange","mutations","container","newSel","typeOver","brs","blockParent","readSel","checkCSS","previousSibling","nextSibling","cssChecked","cssCheckWarned","rangeToSelectionRange","currentAnchor","safariShadowSelectionRange","read","parseBetween","from_","to_","startDoc","ruleFromNode","isInline","readDOMChange","addedNodes","compositionID","shared","compare","preferredPos","preferredSide","change","findDiff","resolveSelection","$fromA","inlineChange","nextSel","looksLikeBackspace","chFrom","chTo","mkTr","markChange","isMarkChange","parsedSel","curMarks","prevMarks","old","$newStart","$newEnd","skipClosingAndOpening","$next","fromEnd","mayOpen","endA","endB","adjust","isSurrogatePair","EditorView","checkStateComponent","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","prevProps","redraw","updateSel","pluginsChanged","nodeViews","changedNodeViews","updateDoc","oldScrollPos","forceSelUpdate","selectionContextChanged","chromeKludge","prevState","pluginView","movedPos","dispatchTransaction","sel1","sel2","nA","nB","keyName","ignoreKey","normalizeKeyName","alt","ctrl","mod","keymap","bindings","keydownHandler","direct","fromCode","deleteSelection","atBlockStart","joinBackward","$cut","findCutBefore","deleteBarrier","textblockAt","delStep","joinTextblockBackward","joinTextblocksAround","joinTextblockForward","atBlockEnd","findCutAfter","beforeText","beforePos","afterText","afterPos","only","selectNodeBackward","joinForward","selectNodeForward","joinUp","nodeSel","joinDown","newlineInCode","defaultBlockAt","exitCode","above","createParagraphNear","liftEmptyBlock","splitBlockAs","splitNode","splitDepth","splitPos","can","$first","splitBlock","selectParentNode","joinMaybeClear","conn","isolated","canDelAfter","$joinAt","selAfter","afterDepth","selectTextblockSide","selectTextblockStart","selectTextblockEnd","wrapIn","applicable","chainCommands","commands","wrapInList","listType","wrapRangeInList","doJoin","outerRange","$insert","doWrapInList","joinBefore","liftListItem","itemType","liftToOuterList","liftOutOfList","endOfList","indexBefore","sinkListItem","nestedBefore","createChainableState","storedMarks","CommandManager","rawCommands","editor","startTr","shouldDispatch","hasStartTransaction","run","EventEmitter","onceFn","getExtensionField","splitExtensions","extensions","baseExtensions","nodeExtensions","markExtensions","getAttributesFromExtensions","extensionAttributes","nodeAndMarkExtensions","defaultAttribute","addGlobalAttributes","globalAttribute","attribute","addAttributes","mergedAttr","getNodeType","nameOrType","mergeAttributes","objects","mergedAttributes","valueClasses","existingClasses","insertClasses","valueClass","newStyles","existingStyles","styleMap","getRenderedAttributes","nodeOrMark","callOrReturn","fromString","injectExtensionAttributesToParseRule","parseRule","oldAttributes","newAttributes","cleanUpSchemaItem","getSchemaByResolvedExtensions","allAttributes","extraNodeFields","extendNodeSchema","extensionAttribute","parseHTML","renderHTML","renderText","extraMarkFields","extendMarkSchema","Schema","getSchemaTypeByName","isExtensionRulesEnabled","enabledExtension","getHTMLFromFragment","documentFragment","getTextContentFromNodes","maxMatch","sliceEndPos","InputRule","inputRuleMatcherHandler","inputRuleMatch","run$1","inputRulesPlugin","simulatedInputMeta","mergeDeep","extendedConfig","currentPos","currentMarks","pasteRuleMatcherHandler","pasteRuleMatch","pasteEvent","dropEvent","resolvedFrom","resolvedTo","textToMatch","tiptapDragFromOtherEditor","createClipboardPasteEvent","pasteRulesPlugin","dragSourceElement","isPastedFromProseMirror","isDroppedFromProseMirror","processEvent","pasteEvt","chainableState","handleDragstart","handleDragend","dragFromOtherEditor","_view","transactions","isPaste","simulatedPasteMeta","isSimulatedPaste","findDuplicates","filtered","ExtensionManager","resolvedExtensions","duplicatedNames","addExtensions","priorityA","priorityB","addCommands","inputRules","pasteRules","allPlugins","addKeyboardShortcuts","defaultBindings","shortcut","keyMapPlugin","addInputRules","addPasteRules","addProseMirrorPlugins","proseMirrorPlugins","addNodeView","nodeview","getPos","innerDecorations","HTMLAttributes","onBeforeCreate","onCreate","onUpdate","onSelectionUpdate","onTransaction","onDestroy","Extension","getTextBetween","startNode","textSerializers","textSerializer","getTextSerializersFromSchema","ClipboardTextSerializer","blur","clearContent","emitUpdate","clearNodes","$mappedFrom","$mappedTo","nodeRange","targetLiftDepth","defaultType","createParagraphNear$1","originRange","contentSlice","newPos","deleteCurrentNode","deleteNode","typeOrName","deleteSelection$1","exitCode$1","objectIncludes","findMarkInSet","isMarkInSet","getMarkRange","endPos","getMarkType","extendMarkRange","newSelection","isTextSelection","minMax","resolveFocusPosition","selectionAtStart","selectionAtEnd","minPos","maxPos","isAndroid","isiOS","delayedFocus","isSameSelection","insertContent","removeWhitespaces","elementFromString","wrappedValue","createNodeFromContent","Node$1","isJSONContent","isTextContent","hasInvalidContent","invalidContent","contentCheckSchema","isFragment","nodeOrFragment","insertContentAt","emitContentError","parseOptions","isOnlyTextContent","isOnlyBlockContent","newContent","joinUp$1","joinDown$1","joinBackward$1","joinForward$1","joinItemBackward","joinItemForward","joinTextblockBackward$1","joinTextblockForward$1","isMacOS","keyboardShortcut","capturedTransaction","newStep","isNodeActive","nodeRanges","relativeFrom","relativeTo","selectionRange","matchedNodeRanges","lift$1","liftEmptyBlock$1","liftListItem$1","newlineInCode$1","getSchemaTypeNameByName","deleteProps","propOrProps","resetAttributes","schemaType","scrollIntoView","selectAll","selectNodeBackward$1","selectNodeForward$1","selectParentNode$1","selectTextblockEnd$1","selectTextblockStart$1","createDocument","setContent","getMarkAttributes","markItem","findParentNodeClosestToPos","findParentNode","getNodeAttributes","nodeItem","getAttributes","getSplittedAttributes","isMarkActive","markRanges","matchedRange","markRange","excludedRange","isActive","isList","isNodeEmpty","checkChildren","ignoreWhitespace","isContentEmpty","canSetMark","newMarkType","cursor","someNodeSupportsMark","_pos","parentAllowsMarkType","currentMarksAllowMarkType","otherMark","setMark","trimmedFrom","trimmedTo","setMeta","setNode","attributesToCopy","updatedState","setNodeSelection","setTextSelection","resolvedEnd","sinkListItem$1","ensureMarks","splittableMarks","filteredMarks","keepMarks","splitListItem","overrideAttrs","grandParent","depthBefore","depthAfter","newNextTypeAttributes","nextType","newTypeAttributes","joinListBackwards","joinListForwards","nodeAfter","toggleList","listTypeOrName","itemTypeOrName","parentList","canWrapInList","toggleMark","extendEmptyMarkRange","toggleNode","toggleTypeOrName","toggleType","toggleWrap","undoInputRule","undoable","toUndo","unsetAllMarks","unsetMark","updateAttributes","lastPos","trimmedFrom2","trimmedTo2","wrapIn$1","wrapInList$1","Commands","Drop","Editable","focusEventsPluginKey","FocusEvents","Keymap","handleBackspace","$parentPos","parentIsIsolating","parentPos","isAtStart","handleDelete","baseKeymap","pcKeymap","macKeymap","docChanges","ignoreTr","allFrom","allEnd","Paste","Tabindex","NodePos","isBlock","isNonTextAtom","childNodePos","nodeAttributes","attrKeys","firstItemOnly","childPos","createStyleTag","nonce","tiptapStyleTag","styleNode","Editor","editable","handlePlugins","nameOrPluginKeyToRemove","prevPlugins","nameOrPluginKey","allExtensions","ext","selectionHasChanged","nameOrAttributes","attributesOrUndefined","nodeInputRule","matchStart","lastChar","insertionStart","NodeView","dragHandle","domBox","handleBox","offsetX","offsetY","clonedNode","isDragEvent","isDropEvent","isEditable","isDragging","isDraggable","isSelectable","isCopyEvent","isPasteEvent","isCutEvent","isClickEvent","escapeForRegEx","inputRegex","Image","src","Paragraph","Text","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","randomUUID","native","v4","rnds","rifWithContentsToContextItem","rif","rangeStr","ctxItemToRifWithContents","linesOffByOne","adjustLines","nameSplit","bottom","right","auto","basePlacements","clippingParents","viewport","popper","variationPlacements","beforeRead","afterRead","beforeMain","afterMain","beforeWrite","write","afterWrite","modifierPhases","OwnElement","applyStyles","effect","styleProperties","applyStyles$1","getBasePlacement","getUAString","isLayoutViewport","addVisualOffsets","getLayoutRect","contains","rootNode","isFirefox","isIE","elementCss","window","getMainAxisFromPlacement","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","expandToHashMap","hashMap","toPaddingObject","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","arrowRect","axisProp","_options$element","getVariation","unsetSides","roundOffsetsByDPR","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","commonStyles","_Object$assign","computeStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","passive","_options$scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","layoutViewport","_element$ownerDocumen","winScroll","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","updatedList","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","mainClippingParents","firstClippingParent","computeOffsets","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","altContext","referenceClientRect","popperClientRect","overflowOffsets","offsetData","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","getExpandedFallbackPlacements","_options$mainAxis","_options$altAxis","checkAltAxis","_options$flipVariatio","preferredPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","fittingPlacement","_ret","getSideOffsets","preventedOffsets","isAnySideFullyClipped","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","offsetParentIsScaled","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","mergeByName","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","createPopper","BOX_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","invokeWithArgsOrReturn","splitBySpaces","normalizeToArray","pushIfUnique","unique","arrayFrom","removeUndefinedProps","div","isNodeList","isMouseEvent","isReferenceElement","getArrayOfElements","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","_normalizeToArray","isCursorOutsideInteractiveBorder","popperTreeData","clientX","clientY","popperState","interactiveBorder","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","updateTransitionEndListener","actualContains","_target$getRootNode","currentInput","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","bindGlobalEventListeners","isIE11","pluginProps","renderProps","defaultProps","defaultKeys","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","getDataAttributeProps","propKeys","valueAsString","evaluateProps","innerHTML","dangerouslySetInnerHTML","createArrowElement","boxChildren","render","nextProps","_getChildren","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","lastTriggerEvent","currentTransitionEndListener","onFirstUpdate","debouncedOnMouseMove","onMouseMove","popperInstance","clearDelayTimeouts","setProps","hideWithInteractivity","unmount","destroy","_props$render","pluginsHooks","hasAriaExpanded","addListeners","handleAriaExpandedAttribute","handleStyles","invokeHook","scheduleShow","getDocument","getNormalizedTouchSettings","touch","getIsCustomTouchBehavior","getIsDefaultRenderFn","_instance$props$rende","getCurrentTarget","getDefaultTemplateChildren","getDelay","isShow","fromHide","shouldInvokePropsHook","pluginHooks","_instance$props","handleAriaContentAttribute","aria","cleanupInteractiveMouseListeners","onDocumentPress","actualTarget","removeDocumentPress","onTouchMove","onTouchStart","addDocumentPress","onTransitionedOut","onTransitionEnd","onTransitionedIn","onTrigger","onMouseLeave","onBlurOrFocusOut","removeListeners","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","getNestedPopperTree","_instance$popperInsta","shouldBail","createPopperInstance","destroyPopperInstance","_instance$props2","popperOptions","getReferenceClientRect","moveTransition","computedReference","tippyModifier","_getDefaultTemplateCh","appendTo","_getNormalizedTouchSe","touchValue","touchDelay","nestedPopper","isAlreadyVisible","isTouchAndTouchDisabled","_getDefaultTemplateCh2","_instance$popperInsta2","_getDefaultTemplateCh3","_box","_content","isAlreadyHidden","_getDefaultTemplateCh4","tippy","targets","optionalProps","instances","getDefaultExportFromCjs","useSyncExternalStoreShim_production_min","hasRequiredUseSyncExternalStoreShim_production_min","requireUseSyncExternalStoreShim_production_min","shimExports","mergeRefs","Portals","contentComponent","renderers","getInstance","renderer","nextRenderers","PureEditorContent","newElement","innerRef","EditorContentWithKey","forwardRef","EditorContent","react","withSelector","withSelector_production_min","hasRequiredWithSelector_production_min","requireWithSelector_production_min","withSelectorExports","EditorStateManager","initialEditor","nextEditor","currentEditor","useEditorState","editorStateManager","isDev","isSSR","isNext","EditorInstanceManager","optionsToApply","onStoreChange","currentInstanceId","useEditor","mostRecentOptions","instanceManager","transactionNumber","EditorContext","ReactNodeViewContext","useReactNodeView","NodeViewWrapper","onDragStart","Tag","isClassComponent","Component","isForwardRefComponent","isMemoComponent","canReceiveRef","wrappedComponent","isReact19Plus","ReactRenderer","isReact19","componentCanReceiveRef","elementProps","ReactNodeView","contentTarget","createRef","capitalizeFirstChar","ReactNodeViewProvider","componentProps","createElement","rerenderComponent","oldDecorations","oldInnerDecorations","attrsObj","ReactNodeViewRenderer","getMarkdownLanguageTagForFile","extToLangMap","sanitizeExtension","deduplicateArray","dedent","strings","indent","valueLines","minIndent","splitCamelCaseAndNonAlphaNumeric","setPrototypeOf","seal","construct","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","lcElement","cleanArray","newObject","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","purifyHostElement","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","DOMPurify","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Element","NodeFilter","NamedNodeMap","HTMLFormElement","ElementPrototype","cloneNode","getNextSibling","getChildNodes","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parentTagName","_forceRemove","_removeAttribute","_initDocument","leadingWhitespace","dirtyPayload","_createNodeIterator","_isClobbered","_isNode","_executeHooks","_sanitizeElements","_isBasicCustomElement","childNodes","childCount","childClone","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","namespaceURI","attrValue","initValue","_sanitizeShadowDOM","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","purify","__assign","lib","rawDefinitions","rawIcons","definitions","icons","getDetails","fileName","getIcon","icon","color","themeIcons","FileIcon","file","sanitizedSVG","bail_1","bail","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","extend","copyIsArray","isPlainObj","wrap_1","invoked","then","trough_1","trough","fns","use","own","unistUtilStringifyPosition","stringify","vfileMessage","VMessage","VMessagePrototype","parseOrigin","minpath_browser","dirname","extname","firstNonSlashEnd","seenNonSlash","extIndex","assertPath","unmatchedSlash","startDot","startPart","preDotState","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc_browser","proc","require$$2","core","VFile","getPath","setPath","getDirname","setDirname","getBasename","setBasename","getExtname","setExtname","getStem","setStem","assertNonEmpty","assertPart","stem","encoding","info","fail","vfile","require$$3","require$$4","require$$5","unified_1","unified","pipeline","pipelineParse","pipelineRun","pipelineStringify","attachers","transformers","namespace","freezeIndex","frozen","runSync","process","processSync","destination","transformer","assertUnfrozen","addPlugin","addList","addPreset","Parser","assertParser","newable","assertNode","complete","assertDone","Compiler","assertCompiler","asyncName","mdastUtilToString","all","assign_1","normalizeIdentifier","normalizeIdentifier_1","fromCharCode","fromCharCode_1","safeFromInt","safeFromInt_1","markdownLineEnding","markdownLineEnding_1","markdownSpace","markdownSpace_1","spaceFactory","effects","factorySpace","tokenize","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","lineStart","token","partialBlankLine","tokenizePartialBlankLine","nok","afterWhitespace","partialBlankLine_1","initializeDocument","containerConstruct","tokenizeContainer","lazyFlowConstruct","tokenizeLazyFlow","continued","inspectConstruct","tokenizeInspect","inspectResult","childFlow","childToken","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","flowContinue","continueFlow","documentAfterPeek","subcontinued","inspectStart","inspectContinue","inspectLess","inspectDone","inspectFlowEnd","inspectLazy","sizeChunks","sizeChunks_1","prefixSize","prefixSize_1","splice_1","chunkedSplice","chunkStart","parameters","chunkedSplice_1","shallow","shallow_1","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","entered","subtokenize_1","tokenizeContent","resolveContent","continuationConstruct","tokenizeContinuation","contentEnd","contentContinue","startLookahead","prefixed","content_1","initializeFlow","atBlankEnding","afterConstruct","text_1","initializeFactory","createResolver","initializeText","resolveAllLineSuffixes","constructs","notText","atBreak","extraResolver","resolveAllText","bufferIndex","miniflat","miniflat_1","combineExtensions","combineExtensions_1","chunkedPush","chunkedPush_1","resolveAll","resolveAll_1","serializeChunks","atTab","serializeChunks_1","sliceChunks","startBufferIndex","endBufferIndex","sliceChunks_1","require$$6","require$$7","require$$8","createTokenizer","columnStart","resolveAllConstructs","consume","exit","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","sliceStream","sliceSerialize","addResult","accountForPotentialSkip","chunkIndex","onreturn","returnState","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","createTokenizer_1","markdownLineEndingOrSpace","markdownLineEndingOrSpace_1","unicodePunctuation","unicodePunctuationRegex","regexCheck","regex","regexCheck_1","unicodePunctuation_1","unicodeWhitespace","unicodeWhitespace_1","classifyCharacter","classifyCharacter_1","movePoint","movePoint_1","attention","tokenizeAttention","resolveAllAttention","openingSequence","closingSequence","nextEvents","marker","sequence","attention_1","asciiAlpha","asciiAlpha_1","asciiAlphanumeric","asciiAlphanumeric_1","asciiAtext","asciiAtext_1","asciiControl","asciiControl_1","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","autolink_1","blockQuote","tokenizeBlockQuoteStart","tokenizeBlockQuoteContinuation","blockQuote_1","asciiPunctuation","asciiPunctuation_1","characterEscape","tokenizeCharacterEscape","characterEscape_1","semicolon","decodeEntity_browser","decodeEntity","characters","entity","asciiDigit","asciiDigit_1","asciiHexDigit","asciiHexDigit_1","_interopDefaultLegacy","decodeEntity__default","characterReference","tokenizeCharacterReference","numeric","characterReference_1","codeFenced","tokenizeCodeFenced","closingFenceConstruct","tokenizeClosingFence","initialPrefix","sizeOpen","sequenceOpen","infoOpen","openAfter","infoAfter","closingSequenceStart","closingSequenceEnd","codeFenced_1","codeIndented","tokenizeCodeIndented","resolveCodeIndented","indentedContentConstruct","tokenizeIndentedContent","afterPrefix","codeIndented_1","codeText","tokenizeCodeText","resolveCodeText","tailExitIndex","headEnterIndex","codeText_1","destinationFactory","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryDestination","labelFactory","markerType","labelEscape","factoryLabel","whitespaceFactory","factoryWhitespace","titleFactory","atFirstTitleBreak","atTitleBreak","titleEscape","factoryTitle","definition","tokenizeDefinition","titleConstruct","tokenizeTitle","identifier","labelAfter","definition_1","hardBreakEscape","tokenizeHardBreakEscape","hardBreakEscape_1","headingAtx","tokenizeHeadingAtx","resolveHeadingAtx","fenceOpenInside","headingBreak","headingAtx_1","basics","htmlBlockNames","raws","htmlRawNames","htmlFlow","tokenizeHtmlFlow","resolveToHtmlFlow","nextBlankConstruct","tokenizeNextBlank","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","htmlContinueStart","continuationRawEndTag","htmlFlow_1","htmlText","tokenizeHtmlText","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","comment","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","htmlText_1","require$$9","labelEnd","tokenizeLabelEnd","resolveToLabelEnd","resolveAllLabelEnd","resourceConstruct","tokenizeResource","fullReferenceConstruct","tokenizeFullReference","collapsedReferenceConstruct","tokenizeCollapsedReference","media","labelStart","defined","balanced","afterLabelEnd","destinationAfter","between","afterLabel","labelEnd_1","labelStartImage","tokenizeLabelStartImage","labelStartImage_1","labelStartLink","tokenizeLabelStartLink","labelStartLink_1","lineEnding","tokenizeLineEnding","lineEnding_1","thematicBreak","tokenizeThematicBreak","thematicBreak_1","tokenizeListStart","tokenizeListContinuation","tokenizeListEnd","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","list_1","setextUnderline","tokenizeSetextUnderline","resolveToSetextUnderline","heading","paragraph","setextUnderline_1","text$1","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","contentInitial","flowInitial","insideSpan","parse_1","preprocess","atCarriageReturn","preprocessor","endPosition","preprocess_1","postprocess","postprocess_1","fromMarkdown","stringifyPosition","compiler","configure","opener","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","tokenStack","listStack","listStart","resume","prepareList","containerBalance","listSpread","tailIndex","tailEvent","firstBlankLineIndex","and","siblings","mdastUtilFromMarkdown","remarkParse","unistBuilder","convert_1","typeFactory","anyFactory","allFactory","tests","any","color_browser","unistUtilVisitParents","visitParents","CONTINUE","SKIP","EXIT","visitor","parents","grandparents","subresult","toResult","unistUtilVisit","overload","unistUtilPosition","unistUtilGenerated","generated","mdastUtilDefinitions","getDefinitionFactory","getterFactory","ondefinition","normalise","getter","all_1","one_1","unknown","loose","footer","generateFootnotes","footnoteById","footnoteOrder","listItems","backReference","blockquote_1","blockquote","_break","code_1","lang","_delete","strikethrough","emphasis_1","footnoteReference_1","footnoteReference","footnote_1","footnote","heading_1","html_1","encodeCache","getEncodeCache","exclude","keepEscaped","nextCode","encode_1","revert_1","revert","subtype","imageReference_1","imageReference","image_1","inlineCode_1","inlineCode","linkReference_1","linkReference","link_1","listItem_1","listLoose","listItemLoose","paragraph_1","root_1","strong_1","table_1","table","rows","align","row","cell","require$$21","toHast","deprecationWarningIssued","dangerous","augment","onfootnotedefinition","foot","mdastUtilToHast","mdast2hast","remarkRehype","remark2rehype","bridge","mutate","immutable","normal","xtend","merge_1","normalize_1","Info","powers","increment","definedInfo","DefinedInfo","checksLength","mask","create_1","mustUseProperty","xlink","xlinkTransform","xmlTransform","caseSensitiveTransform_1","caseSensitiveTransform","caseInsensitiveTransform_1","caseInsensitiveTransform","xmlns","booleanish","spaceSeparated","ariaTransform","boolean","overloadedBoolean","commaSeparated","commaOrSpaceSeparated","svg_1","find_1","valid","dash","cap","Type","datasetToProperty","datasetToAttribute","camelcase","kebab","$0","spaceSeparatedTokens","whiteSpace","commaSeparatedTokens","comma","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","updatePosition","Position","whitespace","comments","ret","declarations","decls","decl","StyleToObject","hasIterator","styleToObject","hastToReact","spaces","commas","hastToHyperscript","vue","vd","vdom","toH","hyperscript","parentSchema","addAttribute","subprop","parseStyle","styleReplacer","matchesFactory","convertAll","hastCssPropertyMap","hastUtilTableCellStyle","hastName","cssName","appendStyle","prevStyle","nextStyle","tableCellStyle","rehypeReact_1","rehypeReact","useRemark","remarkParseOptions","remarkToRehypeOptions","rehypeReactOptions","_ref2$remarkPlugins","remarkPlugins","_ref2$rehypePlugins","rehypePlugins","_ref2$onError","reactContent","setReactContent","setMarkdownSource","remarkToRehype","Schema$2","normals","dashes","htmlBase","svgBase","tokens","parseSelector","defaultTagName","subvalue","createH","createAdjustMap","adjusted","isChild","addProperty","addChild","record","parseSpaces","parseCommas","parsePrimitive","finalResult","svgCaseSensitiveTagNames","webNamespaces","fromDom","transformed","doctype","fromHtmlIsomorphic","parseFragment","castFactory","propsFactory","checkAsRecord","nodeAsRecord","testFunction","looksLikeANode","findAfter","convertElement","tagNameFactory","looksLikeAnElement","searchLineFeeds","searchTabOrSpaces","isCell","notRendered","hidden","closedDialog","blockOrCaption","toText","options_","inferWhitespace","collectText","renderedTextCollection","collectElement","collectPreText","trimAndCollapseSpacesAndTabs","breakBefore","breakAfter","SourceLocation","lexer","second","Token","loc","endToken","ParseError","underlined","setting","defaultIfUndefined","uppercase","hyphenate","ESCAPE_LOOKUP","ESCAPE_REGEX","getBaseElem","isCharacterBox","baseElem","assert","protocolFromUrl","utils","SETTINGS_SCHEMA","defs","getDefaultValue","Settings","errorCode","errorMsg","trust","Style","cramped","sup","fracNum","fracDen","cramp","Dc","Tc","Sc","SS","SSc","Style$1","scriptData","scriptFromCodepoint","codepoint","allBlocks","supportedCodepoint","hLinePad","sqrtMain","extraVinculum","sqrtSize1","sqrtSize2","sqrtSize3","sqrtSize4","phasePath","sqrtTall","viewBoxHeight","vertSegment","sqrtPath","innerPath","tallDelim","midHeight","markup","fontMetricsData","sigmasAndXis","extraCharacterMap","setFontMetrics","fontName","metrics","getCharacterMetrics","character","font","fontMetricsBySizeIndex","getGlobalMetrics","sizeIndex","sizeStyleMap","sizeMultipliers","sizeAtStyle","Options","wantSize","fontFamily","fontWeight","fontShape","oldOptions","ptPerUnit","relativeUnit","validUnit","calculateSize","sizeValue","unitOptions","makeEm","createClass","initNode","toNode","invalidAttributeNameRegex","toMarkup","Span","Anchor","Img","iCombinations","SymbolNode","italic","needsSpan","escaped","SvgNode","svgNS","PathNode","pathName","alternate","LineNode","assertSymbolDomNode","assertSpan","ATOMS","NON_ATOMS","symbols","defineSymbol","acceptUnicodeChar","math","ams","accent","bin","mathord","punct","rel","spacing","textord","ligatures","mathTextSymbols","textSymbols","_ch","letters","_i2","_ch2","wideChar","_i3","_ch3","_i4","_ch4","extraLatin","_i5","_ch5","wideLatinLetterData","wideNumeralData","wideCharacterFont","lookupSymbol","makeSymbol","lookup","symbolNode","mathsym","boldsymbol","makeOrd","isFont","fontOrFamily","wideFontName","wideFontClass","fontClasses","fontData","fontMap","retrieveTextFontName","makeFragment","_fontName","_fontName2","_fontName3","canCombine","_style","tryCombineChars","sizeElementFromChildren","maxFontSize","makeSpan$2","makeSvgSpan","makeLineSpan","thickness","makeAnchor","wrapFragment","getVListChildrenAndDepth","_depth","currPos","makeVList","pstrutSize","pstrut","realChildren","_child","_elem","childWrap","vlist","emptySpan","depthStrut","topStrut","vtable","makeGlue","baseFontName","fontStylesName","svgData","staticSvg","svgNode","buildCommon","thinspace","mediumspace","thickspace","spacings","tightSpacings","_functions","_htmlGroupBuilders","_mathmlGroupBuilders","defineFunction","htmlBuilder","mathmlBuilder","defineFunctionBuilders","normalizeArgument","ordargument","makeSpan$1","binLeftCanceller","binRightCanceller","styleMap$1","DomEnum","buildExpression$1","expression","isRealGroup","surrounding","groups","buildGroup$1","glueOptions","dummyPrev","dummyNext","traverseNonSpaceNodes","prevType","getTypeOfDomTree","partialGroup","checkPartialGroup","nonspace","getOutermostNode","makeNullDelimiter","moreClasses","baseOptions","groupNode","buildHTMLUnbreakable","strut","buildHTML","eqnNum","nobreak","tagChild","htmlNode","newDocumentFragment","MathNode","SpaceNode","mathMLTree","makeText","makeRow","getVariant","isNumberPunctuation","buildExpression","isOrdgroup","buildGroup","lastGroup","_group","buildExpressionRow","buildMathML","texExpression","isDisplayMode","forMathmlOnly","annotation","semantics","wrapperClass","optionsFromSettings","displayWrap","katexNode","mathMLNode","_htmlNode","buildHTMLTree","stretchyCodePoint","mathMLnode","katexImagesData","groupLength","svgSpan","buildSvgSpan_","viewBoxWidth","grp","numChars","_height","imgIndex","_minWidth","_viewBoxHeight","_height2","numSvgChildren","widthClasses","aligns","align1","_path","_svgNode","_span","minWidth","encloseSpan","topPad","bottomPad","totalHeight","stretchy","assertNodeType","assertSymbolNodeType","typedNode","checkSymbolNodeType","htmlBuilder$a","supSubGroup","mustShift","baseChar","baseGroup","accentBelow","clearance","accentBody","accentFull","accentWrap","mathmlBuilder$9","accentNode","NON_STRETCHY_ACCENT_REGEX","isStretchy","isShifty","innerGroup","kern","paddedNode","optArgs","newOptions","upperGroup","arrowPrefix","lowerGroup","arrowBody","arrowShift","upperShift","lowerShift","arrowNode","upperNode","lowerNode","_lowerNode","makeSpan","htmlBuilder$9","mathmlBuilder$8","binrelClass","baseArg","shiftedArg","mclass","baseOp","supsub","cdArrowFunctionName","newCell","isStartOfArrow","isLabelEnd","endChar","cdArrow","arrowChar","leftLabel","bareArrow","sizedArrow","rightLabel","arrowGroup","parseCD","parsedRows","rowNodes","labelNum","inLabel","wrappedArrow","cols","htmlBuilder$8","mathmlBuilder$7","breakOnTokenText","newLine","globalMap","checkControlSequence","getRHS","letCommand","macro","numArgs","delimiters","middle","getMetrics","styleWrap","delim","toStyle","delimSizeMultiplier","centerSpan","makeSmallDelim","mathrmSize","makeLargeDelim","makeGlyphSpan","sizeClass","corner","makeInner","lapInEms","lap","verts","doubleVerts","makeStackedDelim","heightTotal","svgLabel","topMetrics","topHeightTotal","repeatMetrics","repeatHeightTotal","bottomMetrics","bottomHeightTotal","middleHeightTotal","middleFactor","middleMetrics","minHeight","repeatCount","realHeightTotal","axisHeight","pathStr","innerHeight","_innerHeight","vbPad","emPad","sqrtSvg","sqrtName","pathNode","makeSqrtImage","traverseSequence","stackLargeDelimiterSequence","sizeMultiplier","spanHeight","texHeight","advanceWidth","sizeToMaxHeight","stackLargeDelimiters","stackAlwaysDelimiters","stackNeverDelimiters","makeSizedDelim","stackNeverDelimiterSequence","stackAlwaysDelimiterSequence","delimTypeToFont","heightDepth","makeCustomSizedDelim","delimType","makeLeftRightDelim","delimiterFactor","delimiterExtend","maxDistFromAxis","delimiterSizes","checkDelimiter","symDelim","assertParsed","innerDepth","hadMiddle","leftDelim","middleDelim","isMiddle","rightDelim","colorOptions","rightNode","middleNode","htmlBuilder$7","imgShift","isSingleChar","lineWeight","angleHeight","ruleThickness","mathmlBuilder$6","fboxsep","thk","borderColor","_environments","defineEnvironment","_macros","defineMacro","getHLines","hlineInfo","nxt","validateAmsEnvironmentContext","getAutoTag","parseArray","hskipBeforeAndAfter","addJot","arraystretch","colSeparationType","autoTag","singleRow","emptySingleRow","maxNumCols","leqno","stretch","rowGaps","hLinesBeforeRow","beginRow","endRow","dCellStyle","envName","htmlBuilder$6","nc","hlines","arraycolsep","localMultiplier","baselineskip","jot","arrayskip","arstrutHeight","arstrutDepth","setHLinePos","hlinesInGap","inrow","outrow","rowGap","colDescriptions","colSep","colDescrNum","tagSpans","rw","tagSpan","colDescr","firstSeparator","lineType","_shift","sepwidth","_shift2","vListElems","hline","lineShift","eqnNumCol","alignMap","mathmlBuilder$5","tbl","glue","menclose","columnLines","prevTypeWasAlign","iStart","iEnd","_cols","rowLines","alignedHandler","separationType","isSplit","numMaths","numCols","emptyGroup","arg0","isAligned","styling","ordgroup","curMaths","pregap","symNode","colalign","nde","colAlign","environments","nameGroup","_args","endNameToken","htmlBuilder$5","mathmlBuilder$4","fontAliases","adjustStyle","originalStyle","htmlBuilder$4","nstyle","dstyle","numerm","hStrut","dStrut","denomm","ruleWidth","ruleSpacing","numShift","denomShift","frac","midShift","candidateClearance","delimSize","mathmlBuilder$3","isDisplay","withDelims","leftOp","rightOp","numer","denom","hasBarLine","replaceWith","stylArray","delimFromValue","delimString","barNode","barSize","styl","textOrd","_ref6","htmlBuilder$3","braceBody","vSpan","mathmlBuilder$2","trustContext","keyVal","sizeData","totalheight","attributeStr","mathFunction","muUnit","dimension","fix","outerMode","chooseMathStyle","assembleSupSub","supGroup","subGroup","slant","baseShift","subIsSingleCharacter","finalGroup","_bottom","spacer","noSuccessor","htmlBuilder$2","hasLimits","large","stash","oval","mathmlBuilder$1","singleCharBigOps","fName","singleCharIntegrals","htmlBuilder$1","childText","isAllString","defaultRuleThickness","phantom","amount","sizingGroup","sizeFuncs","smashHeight","smashDepth","tbArg","letter","smashedNode","theta","phi","lineClearance","minDelimiterHeight","delimDepth","rootm","toShift","rootVList","rootVListWrap","newStyle","styleAttributes","htmlBuilderDelegate","delegate","_delegate","isSup","builderDelegate","valueBase","valueSup","valueSub","supm","subm","supShift","subShift","_newOptions","minSupShift","marginRight","marginLeft","isOiint","maxWidth","psi","vlistElem","_vlistElem","isBrace","isOver","_base2","_base","defaultVariant","cssSpace","regularSpace","ord","padNode","textFontFamilies","textFontWeights","textFontShapes","optionsWithFont","makeVerb","spaceRegexString","controlWordRegexString","controlSymbolRegexString","controlWordWhitespaceRegexString","controlSpaceRegexString","combiningDiacriticalMarkString","combiningDiacriticalMarksEndRegex","tokenRegexString","Lexer$1","nlIndex","Namespace","builtins","globalMacros","undefs","undef","macros","nextToken","digitToNumber","newcommand","existsOK","nonexistsOK","skipIfExists","exists","argText","dotsByToken","thedots","spaceAfterDots","latexRaiseA","braketHelper","middleDouble","oldMiddle","oldMiddleDouble","midMacro","double","doubled","expanded","implicitCommands","MacroExpander","Lexer","newMode","delims","isDelimited","expandableOnly","topToken","expansion","oldStackLength","catcode","stripped","bodyLexer","unicodeSubRegEx","uSubsAndSups","unicodeAccents","unicodeSymbols","Parser$1","oldToken","breakOnInfix","lex","overIndex","numerNode","denomNode","numerBody","denomBody","symbolToken","textordArray","colorNode","superscript","subscript","prime","primes","isSub","subsupTokens","funcData","totalArgs","argType","optional","_group2","modeName","argToken","firstToken","lastToken","isBlank","groupEnd","nucleus","star","family","parseTree","toParse","baseNode","renderToDomTree","renderToString","generateParseTree","renderError","renderToHTMLTree","__domTree","katex","nodeAsParent","emptyOptions","emptyClasses","rehypeKatex","languageMath","mathDisplay","mathInline","displayMode","ruleId","longestStreak","expected","mathFromMarkdown","enterMathFlow","enterMathFlowMeta","enterMathText","exitMathFlow","exitMathFlowFence","exitMathFlowMeta","exitMathData","exitMathText","mathToMarkdown","single","inlineMath","inlineMathPeek","tracker","subexit","mathFlow","tokenizeMathFenced","nonLazyContinuation","tokenizeNonLazyContinuation","metaBefore","metaAfter","beforeNonLazyContinuation","beforeContentChunk","contentChunk","beforeSequenceClose","sequenceClose","afterSequenceClose","mathText","tokenizeMathText","resolveMathText","remarkMath","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","testOrVisitor","visitorOrReverse","maybeReverse","useUpdatingRef","getContextItemsFromHistory","historyItems","priorToIndex","pastHistoryItems","pastNormalContextItems","pastToolbarContextItems","CodeBlock","updateFileSymbolsFromFiles","filepaths","uniqueUris","updateFileSymbols","updateFileSymbolsFromHistory","uriArray","FilenameLink","relPathOrBasename","divStyle","createStyle","prefixes","prefixCache","getPrefixedName","capName","prefixedName","getCSSNum","getBoxStyle","setStyle","setTransform","isSVG","matrixValue","parentStyle","rectElem","rectParent","onPointer","eventOpts","destroyPointer","findEventIndex","pointers","addPointer","removePointer","getMiddle","event1","event2","getDistance","isAttached","getClass","hasClass","isExcluded","rsvg","isSVGElement","shallowClone","Panzoom","resetStyle","setOptions","isPanning","zoom","pan","setTransformWithEvent","originalEvent","constrainXY","toX","toY","toScale","panOptions","dims","realWidth","realHeight","scaledWidth","scaledHeight","diffHorizontal","diffVertical","minX","maxX","minY","maxY","constrainScale","zoomOptions","minScale","maxScale","elemWidth","elemHeight","parentWidth","parentHeight","elemScaledWidth","elemScaledHeight","focal","panResult","zoomInOut","isIn","zoomIn","zoomOut","zoomToPoint","effectiveArea","zoomWithWheel","wheel","resetOptions","origX","origY","startClientX","startClientY","startScale","startDistance","handleDown","handleMove","hasMultiple","handleUp","bound","package_default","__defProp","__name","__export","LEVELS","setLogLevel","numericLevel","format","dayjs","Channel","channel","Lang","Unit","hex","Utils","DEC2HEX","TYPE","Channels","channels","Hex","hasAlpha","isFullLength","bits","bitsOffset","ChannelsReusable","HSL","hue","charCode","isAlphaPercentage","Keyword","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","Color","rgba","luminance","isLight","isDark","adjustChannel","amountCurrent","amountNext","lighten","darken","changes","color1","color2","weight","r1","g1","b1","a1","r2","g2","b2","a2","weightScale","weightNormalized","alphaDelta","weight1","weight2","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","detectors","detectType","config2","detector","registerLazyLoadedDiagrams","diagrams2","loader","addDetector","getDiagramLoader","assignWithDepth","dst","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","darkMode","Theme","adjust2","_j","_k","_l","_m","_p","_q","_u","overrides","getThemeVariables","userOverrides","Theme2","lighten2","adjust3","invert2","darken2","isDark2","getThemeVariables2","Theme3","adjust4","invert3","rgba2","darken3","lighten3","isDark3","getThemeVariables3","Theme4","lighten4","invert4","darken4","adjust5","isDark4","getThemeVariables4","Theme5","lighten5","adjust6","invert5","darken5","isDark5","getThemeVariables5","themes_default","config_schema_default","keyify","configKeys","defaultConfig_default","sanitizeDirective","cssMatchers","cssKey","sanitizeCss","startCnt","endCnt","defaultConfig","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","sumOfDirectives","sanitize","tmpConfigFromInitialize","themeVariables","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig","getConfig","addDirective","directive","ConfigWarning","issuedWarnings","issueWarning","getUserDefinedConfig","userConfig","lineBreakRegex","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","removeScript","txt","sanitizeMore","placeholderToBreak","sanitizeText","sanitizeTextOrArray","hasBreaks","splitBreaks","getUrl","useAbsolute","getMax","newValues","getMin","parseGenericTypes","inputSets","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","prevCount","nextCount","tildeCount","hasStartingTilde","isMathMLSupported","katexRegex","hasKatex","calculateMathMLDimensions","divElem","renderKatexSanitized","dim","renderKatexUnsanitized","__vitePreload","katex$1","outputMode","common_default","d3Attrs","d3Elem","calculateSvgSizeAttrs","useMaxWidth","configureSvgSize","svgElem","setupGraphViewbox","graph","svgBounds","sWidth","sHeight","vBox","themes","getStyles","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","styles_default","commonDb_exports","clear","getAccDescription","getAccTitle","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","accTitle","diagramTitle","accDescription","sanitizeText2","log2","setLogLevel2","getConfig2","setConfig2","defaultConfig2","sanitizeText3","setupGraphViewbox2","getCommonDb","diagrams","registerDiagram","diagram","getDiagram","DiagramNotFoundError","Dispatch","parseTypenames","typenames","typename","that","xhtml","creatorInherit","creatorFixed","fullname","selection_select","select","subgroups","subgroup","subnode","selectorAll","arrayAll","selection_selectAll","childMatcher","childFind","childFirst","selection_selectChild","childrenFilter","selection_selectChildren","selection_filter","sparse","selection_enter","EnterNode","datum","constant$3","bindIndex","dataLength","nodeByKeyValue","keyValues","keyValue","selection_data","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","groups0","groups1","m0","m1","merges","group0","group1","selection_order","selection_sort","ascending","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","ClassList","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","selection_lower","selection_append","constantNull","selection_insert","selection_remove","selection_cloneShallow","selection_cloneDeep","selection_clone","selection_datum","contextListener","onRemove","onAdd","selection_on","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","selection_selection","define","constructor","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","Hsl","hsl","m2","hsl2rgb","clamph","clampt","constant$2","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","colorRgb","interpolateNumber","reA","reB","zero","interpolateString","am","bm","degrees","decompose","skewX","parseCss","parseSvg","interpolateTransform","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","interpolateTransformCss","interpolateTransformSvg","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","timing","schedules","tween","interrupt","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","tau","epsilon","tauEpsilon","appendRound","digits","Path","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","ccw","cw","constant$1","abs","atan2","cos","sin","sqrt","halfPi","acos","asin","withPath","shape","array$1","Linear","curveLinear","line$1","curve","pointX","pointY","defined0","Bump","bumpX","bumpY","Basis","curveBasis","BasisClosed","curveBasisClosed","BasisOpen","curveBasisOpen","Bundle","beta","curveBundle","bundle","Cardinal","tension","curveCardinal","cardinal","CardinalClosed","curveCardinalClosed","CardinalOpen","curveCardinalOpen","CatmullRom","alpha","x23","y23","curveCatmullRom","catmullRom","CatmullRomClosed","curveCatmullRomClosed","CatmullRomOpen","curveCatmullRomOpen","LinearClosed","curveLinearClosed","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","curveNatural","curveStep","stepBefore","stepAfter","selectSvgElement","securityLevel","isNothing","subject","sourceKeys","cycle","isNegativeZero","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception2","where","YAMLException$1","getLine","lineEnd","maxLineLength","maxHalfLength","makeSnippet","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","Type$1","compileList","schema2","currentType","previousType","previousIndex","compileMap","collectType","type2","Schema$1","implicit","explicit","type$1","seq","failsafe","resolveYamlNull","constructYamlNull","_null","resolveYamlBoolean","constructYamlBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","constructYamlInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","fraction","tz_hour","tz_minute","date","representYamlTimestamp","resolveYamlMerge","BASE64_MAP","resolveYamlBinary","bitlen","constructYamlBinary","tailbits","representYamlBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","throwError","throwWarning","directiveHandlers","major","minor","handle","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","overridableKeys","storeMappingPair","keyTag","keyNode","valueNode","startLineStart","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","readFlowCollection","readNext","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","documents","load$1","load_1","_toString","_hasOwnProperty","CHAR_BOM","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_EQUALS","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","QUOTING_TYPE_SINGLE","QUOTING_TYPE_DOUBLE","State","indentString","ind","generateNextLine","testImplicitResolving","str2","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","needIndentIndicator","leadingSpaceRe","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","writeScalar","iskey","testAmbiguity","string2","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","chomp","lineRe","nextLF","foldLine","prevMoreIndented","moreIndented","breakRe","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKeyList","pairBuffer","writeBlockMapping","explicitPair","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","getDuplicateReferences","duplicatesIndexes","inspectNode","dump$1","renamed","JSON_SCHEMA","load","markerOffsets","calculateDeltaAndAngle","point1","point2","pointTransformer","deltaX","deltaY","getLineFunctionsWithOffset","DIRECTION","angle","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","extraRoom","adjustment","differenceInXEnd","differenceInXStart","getSubGraphTitleMargins","flowchart","subGraphTitleTopMargin","subGraphTitleBottomMargin","subGraphTitleTotalMargin","solidStateFill","handDrawnSeed","compileStyles","stylesMap","styles2Map","isLabelStyle","styles2String","stylesArray","labelStyles","nodeStyles","borderStyles","backgroundStyles","userNodeOverrides","nodeBorder","mainBkg","getStrokeDashArray","strokeDasharrayStyle","dashArray","constants","constants_1","isRelativeUrlWithoutProtocol","decodeHtmlCharacters","removedNullByte","isValidUrl","decodeURI","sanitizeUrl","charsToDecode","decodedUrl","sanitizedUrl","trimmedUrl","urlSchemeParseResults","urlScheme","backSanitized","url_1","ZERO_WIDTH_SPACE","d3CurveTypes","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","directiveWithoutOpen","detectInit","inits","detectDirective","commentWithoutDirectives","removeDirectives","isSubstringInArray","interpolateToCurve","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","fnName","p1","p2","traverseEdge","points","prevPoint","totalDistance","remainingDistance","calculatePoint","calcLabelPosition","roundNumber","num","factor","distanceToTraverse","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","cardinalityPosition","calcTerminalLabelPosition","terminalMarkerSize","_points","distanceToCardinalityPoint","getStylesFromArray","labelStyle","cnt","generateId","makeRandomHex","charactersLength","getTextObj","drawSimpleText","textData","nText","_fontSizePx","parseFontSize","textElem","wrapLabel","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","currentLine","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","fontFamilies","fontFamily2","cHeight","textObj","bBox","InitIDGenerator","deterministic","seed","decoder","entityDecode","isDetailedError","insertTitle","cssClass","titleTopMargin","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","isLabelCoordinateInPath","encodeEntities","innerTxt","decodeEntities","getEdgeId","handleUndefinedAttr","dAttr","roundedX","roundedY","sanitizedD","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","defaultIconSizeCustomisations","defaultIconCustomisations","stringToIcon","allowSimpleName","colonSeparated","name$1","validateIconName","dashSeparated","mergeIconTransformations","mergeIconData","getIconsTree","aliases","resolved","internalGetIconData","currentProps","getIconData","unitsSplit","unitsTest","oldParts","newParts","splitSVGDefs","endEnd","mergeDefsAndContent","wrapSVGContent","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","setAttr","viewBox","randomPrefix","replaceIDs","ids","newID","escapedID","iconToHTML","renderAttribsHTML","_getDefaults","_defaults","changeDefaults","newDefaults","noopTest","edit","valSource","bull","blockCode","fences","bullet","lheadingCore","lheading","lheadingGfm","_paragraph","blockText","_blockLabel","_comment","blockNormal","gfmTable","blockGfm","blockPedantic","inlineText","_punctuation","_punctuationOrSpace","_notPunctuationOrSpace","punctuation","_punctuationGfmStrongEm","_punctuationOrSpaceGfmStrongEm","_notPunctuationOrSpaceGfmStrongEm","blockSkip","emStrongLDelimCore","emStrongLDelim","emStrongLDelimGfm","emStrongRDelimAstCore","emStrongRDelimAst","emStrongRDelimAstGfm","emStrongRDelimUnd","anyPunctuation","_inlineComment","_inlineLabel","reflink","nolink","reflinkSearch","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","escapeReplacements","getEscapeReplacement","escape2","html2","cleanUrl","splitCells","tableRow","cells","rtrim","suffLen","findClosingBracket","outputLink","link2","lexer2","indentCodeCompensation","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","_Tokenizer","options2","trimmed","inBlockquote","currentLines","currentRaw","currentText","newText","newToken","isordered","list2","itemRegex","endsWithBlankLine","endEarly","itemContents","blankLine","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","rawLine","nextLineWithoutTabs","istask","ischecked","lastItem","spacers","hasMultipleLineBreaks","tag2","rtrimSlash","lastParenIndex","linkLen","linkString","maskedSrc","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","lastCharLength","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","_Lexer","__Lexer","lastParagraphClipped","extTokenizer","cutSrc","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","_Renderer","langString","ordered","startAttr","itemBody","checkbox","checked","cleanHref","_TextRenderer","_Parser","__Parser","anyToken","genericToken","textToken","_Hooks","markdown","Marked","tableToken","listToken","childTokens","tokens2","pack","prevRenderer","args2","extLevel","rendererProp","rendererFunc","tokenizerProp","tokenizerFunc","prevTokenizer","hooksProp","hooksFunc","prevHook","ret2","walkTokens2","packWalktokens","blockType","origOpt","parser2","src2","silent","async","markedInstance","marked","templ","indentLengths","pattern_1","endentations","endentation","indentedValue","unknownIcon","iconsStore","loaderStore","registerIconPacks","iconLoaders","iconLoader","getRegisteredIconData","iconName","fallbackPrefix","iconData","isIconAvailable","getIconSVG","extraAttributes","renderData","preprocessMarkdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","processNode","textLine","contentNode","treeNode","markdownToHTML","splitTextToChars","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","newWord","splitLineToFitWidth","splitLineToFitWidthRecursion","joiner","nextWord","lineWithNextWord","applyStyle","styleFn","addHtmlSpan","addBackground","sanitizedLabel","labelClass","bbox","createTspan","textElement","lineHeight","computeWidthOfText","testElement","testSpan","updateTextContentAndStyles","textLength","computeDimensionOfText","textDimension","createFormattedText","structuredText","labelGroup","bkg","checkWidth","line2","linesUnderWidth","preparedLine","tspan","wrappedLine","innerTspan","replaceIconSubstring","pendingReplacements","fullMatch","registeredIconName","replacements","createText","isTitle","useHtmlLabels","addSvgBackground","decodedReplacedText","inputForKatex","sanitizeBR","nodeLabelTextStyle","edgeLabelRectStyle","edgeLabelTextStyle","h$2","r$1","c$2","p$2","et$2","st$2","ot$2","labelHelper","_classes","cssClasses","shapeSvg","labelEl","halfPadding","dv","noImgText","setupImage","bodyFontSize","enlargingFactor","parsedBodyFontSize","insertLabel","updateNodeBounds","getNodeClasses","createPathFromPoints","pointStrings","generateFullSineWavePoints","amplitude","numCycles","cycleLength","frequency","midY","generateCirclePoints","centerX","centerY","radius","startAngle","endAngle","startAngleRad","angleStep","intersectRect","sx","sy","intersect_rect_default","addHtmlLabel","select2","labelSpan","createLabel","_vertexText","vertexText","createLabel_default","createRoundedRectPathD","totalWidth","clusterBkg","clusterBorder","select3","rect2","rc","rough","roughNode","rectBox","noteGroup","roundedWithTitle","altBackground","compositeBackground","compositeTitleBackground","outerRectG","innerRect","innerY","isAlt","roughOuterNode","roughInnerNode","kanbanSection","divider","squareRect","shapes","clusterElems","insertCluster","cluster","intersectNode","intersect_node_default","intersectEllipse","rx","ry","cy","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","q1","q2","c1","r3","r4","sameSign","intersect_line_default","intersectPolygon","polyPoints","intersections","intersect","pdx","pdy","distp","qdx","qdy","distq","intersect_polygon_default","intersect_default","cssStyles","rough2","circleElem","generateArcPoints","clockwise","midX","transformedX","transformedY","scaledCenterDistance","angleRange","angle2","bowTieRect","rough3","bowTieRectPath","bowTieRectShapePath","bowTieRectShape","insertPolygonShape","card","polygon","rough4","pathData","choice","rough5","choicePath","choiceShape","circle","rough6","radius2","createLine","xAxis45","yAxis45","lineLength","pointQ1","pointQ2","pointQ3","pointQ4","crossedCircle","rough7","circleNode","linePath","lineNode","crossedCircle2","generateCirclePoints2","curlyBraceLeft","rectPoints","rough8","newCurlyBracePath","curlyBraceLeftNode","rectPath","rectShape","curlyBraceLeftShape","generateCirclePoints3","curlyBraceRight","rough9","curlyBraceRightNode","curlyBraceRightShape","generateCirclePoints4","curlyBraces","leftCurlyBracePoints","rightCurlyBracePoints","rough10","newLeftCurlyBracePath","leftCurlyBraceNode","newRightCurlyBracePath","rightCurlyBraceNode","curlyBracesShape","curvedTrapezoid","rough11","tw","shapeNode","createCylinderPathD","createOuterCylinderPathD","createInnerCylinderPathD","cylinder","cylinder2","rough12","outerPathData","innerPathData","outerNode","innerLine","dividedRectangle","rectOffset","rough13","pts","poly","doublecircle","outerRadius","innerRadius","circleGroup","rough14","outerOptions","innerOptions","outerRoughNode","innerRoughNode","outerCircle","innerCircle","filledCircle","rough15","filledCircle2","flippedTriangle","rough16","flippedTriangle2","forkJoin","state2","rough17","halfRoundedRectangle","rough18","hexagon","rough19","halfWidth","halfHeight","fixedLength","deducedWidth","hourglass","rough20","assetHeight","assetWidth","iconSize","defaultWidth","topLabel","labelPadding","rough21","iconNode","outerWidth","outerHeight","iconShape","outerShape","iconElem","iconBBox","iconWidth","iconHeight","iconX","iconY","nodeHeight","iconCircle","rough22","diameter","iconRounded","rough23","iconSquare","rough24","imageSquare","imageNaturalWidth","imageNaturalHeight","imageRawWidth","imageWidth","imageHeight","rough25","imageNode","inv_trapezoid","rough26","drawRect","rough27","labelRect","lean_left","rough28","lean_right","rough29","lightningBolt","rough30","lightningBolt2","createCylinderPathD2","outerOffset","createOuterCylinderPathD2","createInnerCylinderPathD2","linedCylinder","rough31","linedWaveEdgedRect","waveAmplitude","finalH","rough32","waveEdgeRect","multiRect","rough33","outerPathPoints","innerPathPoints","outerPath","innerNode","multiRect2","multiWaveEdgedRectangle","wavePoints","lastWavePoint","rough34","note","rough35","noteShapeNode","createDecisionBoxPathD","question","rough36","s2","points2","rect_left_inv_arrow","notch","rough37","rectWithTitle","div2","dv2","select4","textRows","titleBox","descr","rough38","roughLine","generateArcPoints2","roundedRect","labelPaddingX","labelPaddingY","taper","rough39","shadedProcess","rough40","slopedRect","rough41","squareRect2","stadium","rough42","stateEnd","lineColor","stateBorder","rough43","innerFill","circle2","stateStart","rough44","subroutine","rough45","l1","l2","taggedRect","tagWidth","tagHeight","rough46","tagPoints","rectNode","tagPath","tagNode","taggedRect2","taggedWaveEdgedRectangle","rough47","waveEdgeRectPath","waveEdgeRectNode","taggedWaveEdgeRectPath","taggedWaveEdgeRectNode","createCylinderPathD3","createOuterCylinderPathD3","createInnerCylinderPathD3","tiltedCylinder","rough48","trapezoid","rough49","trapezoidalPentagon","rough50","triangle","rough51","waveEdgedRectangle","widthDif","extraW","rough52","waveRectangle","baseWidth","baseHeight","aspectRatio","rough53","waveRectPath","waveRectNode","waveRect","windowPane","rough54","windowPane2","erBox","entityNode","themeVariables2","background","backgroundNode","PADDING","TEXT_PADDING","shapeSvg2","nameBBox","addText","yOffset","yOffsets","maxTypeWidth","maxNameWidth","maxKeysWidth","maxCommentWidth","keysPresent","commentPresent","typeBBox","nameBBox2","keysBBox","commentBBox","rowHeight","totalWidthSections","shapeBBox","rough55","totalShapeBBoxHeight","select5","translateX","translateY","roughRect","rowEven","rowOdd","isEven","roughRect2","yOffset2","allStyle","strokeStyles","labelText","textHelper","GAP","annotationGroup","membersGroup","methodsGroup","annotationGroupHeight","labelGroupHeight","membersGroupHeight","addText2","labelGroupBBox","methodsYOffset","annotationGroupBBox","parentGroup","textEl","textContent","numberOfLines","select6","textChild","classBox","classNode","renderExtraBox","rough56","rectBBox","select7","newTranslateY","newTranslateX","_2","i2","nodes2","colorRegex","colorStyle","match2","requirementBox","requirementNode","elementNode","isRequirementNode","typeHeight","addText3","accumulativeHeight","nameHeight","idHeight","textHeight","riskHeight","typeHeight2","rough57","select8","inputText","colorFromPriority","kanbanItem","kanbanNode","orgWidth","labelElTitle","ticketUrl","bbox2","labelElAssigned","bboxAssigned","heightAdj","rough58","lineX","bang","effectiveWidth","effectiveHeight","bangElem","rough59","cloud","cloudElem","rough60","defaultMindmapNode","rd","bg","mindmapCircle","shapesDefs","generateShapeMap","shapes2","isValidShape","nodeElems","insertNode","renderOptions","newEl","shapeHandler","setNodeElem","clear2","positionNode","addEdgeMarkers","svgPath","diagramType","strokeColor","addEdgeMarker","arrowTypesMap","arrowType","arrowTypeInfo","endMarkerType","originalMarkerId","colorId","coloredMarkerId","originalMarker","coloredMarker","edgeLabels","terminalLabels","getLabelStyles","styleArray","insertEdgeLabel","labelElement","edgeLabel","startLabelElement","startEdgeLabelLeft","slBox","setTerminalWidth","startEdgeLabelRight","endLabelElement","endEdgeLabelLeft","endEdgeLabelRight","positionEdgeLabel","outsideNode","outsidePoint","insidePoint","_y","cutPathAtIntersect","boundaryNode","lastPointOutside","isInside","inter","pointPresent","extractCornerPoints","cornerPoints","cornerPointPositions","findAdjacentPoint","pointA","pointB","xDiff","yDiff","fixCorners","lineData","newLineData","nextPoint","cornerPoint","newPrevPoint","newNextPoint","newCornerPoint","insertEdge","clusterDb","endNode","pointsHasChanged","edgeClassStyles","lineFunction","strokeClasses","edgeStyles","svgPathNode","stylesFromClasses","animationClass","pathStyle","midIndex","insertMarkers","markerArray","markerName","markers","aggregation","dependency","lollipop","cross","barb","only_one","zero_or_one","startMarker","endMarker","one_or_more","zero_or_more","requirement_arrow","requirement_contains","containsNode","markers_default","internalHelpers","layoutAlgorithms","registerLayoutLoaders","loaders","registerDefaultLayoutLoaders","data4Layout","layoutDefinition","getRegisteredLayoutAlgorithm","algorithm","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","indexof","charat","substr","begin","strlen","sizeof","alloc","dealloc","delimit","escaping","commenter","rulesets","pseudo","atrule","scanning","ampersand","ruleset","post","diagram2","c4Detector_default","id2","detector2","loader2","plugin2","flowDetector_default","id3","detector3","loader3","plugin3","flowDetector_v2_default","id4","detector4","loader4","plugin4","erDetector_default","id5","detector5","loader5","plugin5","gitGraphDetector_default","id6","detector6","loader6","plugin6","ganttDetector_default","id7","detector7","loader7","id8","detector8","loader8","pie","id9","detector9","loader9","plugin7","quadrantDetector_default","id10","detector10","loader10","plugin8","xychartDetector_default","id11","detector11","loader11","plugin9","requirementDetector_default","id12","detector12","loader12","plugin10","sequenceDetector_default","id13","detector13","loader13","plugin11","classDetector_default","id14","detector14","loader14","plugin12","classDetector_V2_default","id15","detector15","loader15","plugin13","stateDetector_default","id16","detector16","loader16","plugin14","stateDetector_V2_default","id17","detector17","loader17","plugin15","journeyDetector_default","draw","_text","id28","errorRenderer_default","errorDiagram_default","id18","detector18","loader18","plugin16","detector_default","id19","detector19","loader19","plugin17","detector_default2","id20","detector20","loader20","plugin18","detector_default3","id21","detector21","loader21","plugin19","detector_default4","id22","detector22","loader22","plugin20","sankeyDetector_default","id23","detector23","loader23","packet","id24","detector24","loader24","radar","id25","detector25","loader25","plugin21","blockDetector_default","id26","detector26","loader26","architecture","architectureDetector_default","id27","detector27","loader27","treemap","hasLoadedDiagrams","addDiagrams","loadRegisteredDiagrams","detector28","loader28","SVG_ROLE","setA11yDiagramInfo","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","Diagram","db","renderer2","init2","interactionFunctions","attachFunctions","cleanupComments","extractFrontMatter","cleanupText","processFrontmatter","processDirectives","initDirective","wrapDirectives","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","utf8Bytes","utf8Str","byte","MAX_TEXTLENGTH","MAX_TEXTLENGTH_EXCEEDED_MSG","SECURITY_LVL_SANDBOX","SECURITY_LVL_LOOSE","XMLNS_SVG_STD","XMLNS_XLINK_STD","XMLNS_XHTML_STD","IFRAME_WIDTH","IFRAME_HEIGHT","IFRAME_STYLES","IFRAME_BODY_STYLE","IFRAME_SANDBOX_OPTS","IFRAME_NOT_SUPPORTED_MSG","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","getDiagramFromText","cssImportantStyles","createCssStyles","classDefs","cssElements","styleClassDef","cssElement","createUserStyles","graphType","svgId","userCSSstyles","allStyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","base64encodedSrc","appendDivSvgG","parentRoot","enclosingDivId","svgXlink","enclosingDiv","sandboxedIframe","iFrameId","removeExistingElements","divId","svgContainingElement","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","diagramClassDefs","style1","a11yDescr","addA11yInfo","svgEl","userOptions","mermaidAPI","handleError","parseError","runThrowsErrors","mermaid","postRenderCallback","querySelector","nodesToProcess","idGenerator","bindFunctions","render2","initialize2","runOptions","registerExternalDiagrams","lazyLoad","contentLoaded","startOnLoad","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse2","performCall","rej","getRegisteredDiagramsMetadata","mermaid_default","useDebounceValue","debouncedValue","setDebouncedValue","useDebouncedEffect","timeoutRef","callBackRef","MINIMUM_ZOOM_STEP","MERMAID_THEME_COLORS","MermaidDiagram","mermaidRenderContainerRef","zoomInButtonRef","zoomOutButtonRef","resetZoomButtonRef","isLoading","setIsLoading","diagramId","renderedSVG","panzoom","clojure","hljs","SYMBOLSTART","SYMBOL_RE","globals","keywords","SYMBOL","NUMBER","CHARACTER","REGEX","STRING","COMMA","LITERAL","COLLECTION","KEY","LIST","BODY","NAME","DEFAULT_CONTAINS","GLOBAL","delphi","KEYWORDS","COMMENT_MODES","DIRECTIVE","CHAR_STRING","CLASS","FUNCTION","elixir","ELIXIR_IDENT_RE","ELIXIR_METHOD_RE","KWS","SUBST","BACKSLASH_ESCAPE","SIGIL_DELIMITERS","SIGIL_DELIMITER_MODES","escapeSigilEnd","LOWERCASE_SIGIL","UPCASE_SIGIL","REGEX_SIGIL","ELIXIR_DEFAULT_CONTAINS","julia","VARIABLE_NAME_RE","DEFAULT","CHAR","INTERPOLATION","INTERPOLATED_VARIABLE","COMMAND","MACROCALL","lisp","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","VARIABLE","KEYWORD","IDENT","MEC","QUOTED","QUOTED_ATOM","matlab","TRANSPOSE_RE","TRANSPOSE","ocaml","powershell","TYPES","VALID_VERBS","COMPARISON_OPERATORS","TITLE_NAME_RE","BACKTICK_ESCAPE","VAR","QUOTE_STRING","APOS_STRING","PS_HELPTAGS","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","PS_USING","PS_ARGUMENTS","HASH_SIGNS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","protobuf","CLASS_DEFINITION","verilog","BUILT_IN_CONSTANTS","DIRECTIVES","cPlusPlus","C_LINE_COMMENT_MODE","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","STRINGS","NUMBERS","PREPROCESSOR","TITLE_MODE","FUNCTION_TITLE","RESERVED_KEYWORDS","RESERVED_TYPES","TYPE_HINTS","FUNCTION_HINTS","CPP_KEYWORDS","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","arduino","ARDUINO_KW","ARDUINO","kws","bash","BRACED_VAR","HERE_DOC","ESCAPED_QUOTE","ESCAPED_APOS","ARITHMETIC","SH_LIKE_SHELLS","KNOWN_SHEBANG","LITERALS","PATH_MODE","SHELL_BUILT_INS","BASH_BUILT_INS","ZSH_BUILT_INS","GNU_CORE_UTILS","cpp","csharp","BUILT_IN_KEYWORDS","FUNCTION_MODIFIERS","LITERAL_KEYWORDS","NORMAL_KEYWORDS","CONTEXTUAL_KEYWORDS","RAW_STRING","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","MODES","HTML_TAGS","SVG_TAGS","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","VENDOR_PREFIX","AT_MODIFIERS","AT_PROPERTY_RE","IDENT_RE","graphql","GQL_NAME","ini","COMMENTS","VARIABLES","ARRAY","BARE_KEY","QUOTED_KEY_DOUBLE_QUOTE","QUOTED_KEY_SINGLE_QUOTE","ANY_KEY","DOTTED_KEY","decimalDigits","hexDigits","NUMERIC","recurRegex","substitution","java","JAVA_IDENT_RE","GENERIC_IDENT_RE","ANNOTATION","PARAMS","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","javascript","hasClosingTag","IDENT_RE$1","FRAGMENT","XML_SELF_CLOSING","XML_TAG","afterMatchIndex","afterMatch","KEYWORDS$1","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","GRAPHQL_TEMPLATE","TEMPLATE_STRING","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMS_CONTAINS","CLASS_OR_EXTENDS","CLASS_REFERENCE","USE_STRICT","FUNCTION_DEFINITION","UPPER_CASE_CONSTANT","noneOf","FUNCTION_CALL","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","ATTRIBUTE","PUNCTUATION","LITERALS_MODE","kotlin","KEYWORDS_WITH_LABEL","LABEL","ANNOTATION_USE_SITE","KOTLIN_NUMBER_MODE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","PSEUDO_SELECTORS","less","PSEUDO_SELECTORS$1","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","relevance","AT_KEYWORDS","PARENS_MODE","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","AT_RULE_MODE","VAR_RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","lua","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","makefile","FUNC","ASSIGNMENT","META","TARGET","INLINE_HTML","HORIZONTAL_RULE","CODE","LINK_REFERENCE","URL_SCHEME","LINK","BOLD","ITALIC","BOLD_WITHOUT_ITALIC","ITALIC_WITHOUT_BOLD","CONTAINABLE","objectivec","API_CLASS","IDENTIFIER_RE","CLASS_KEYWORDS","perl","REGEX_MODIFIERS","PERL_KEYWORDS","METHOD","ATTR","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","PAIRED_RE","PERL_DEFAULT_CONTAINS","php","NOT_PERL_ETC","PASCAL_CASE_CLASS_NAME_RE","UPCASE_NAME_RE","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","resp","NOWDOC","WHITESPACE","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","phpTemplate","plaintext","python","RESERVED_WORDS","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","lookahead","COMMENT_TYPE","pythonRepl","NUMBER_TYPES_RE","OPERATORS_RE","PUNCTUATION_RE","ruby","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","decimal","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","rust","RAW_IDENTIFIER","UNDERSCORE_IDENT_RE","NUMBER_SUFFIX","BUILTINS","scss","PSEUDO_ELEMENTS$1","PSEUDO_CLASSES$1","shell","sql","COMMENT_MODE","QUOTED_IDENTIFIER","MULTI_WORD_TYPES","NON_RESERVED_WORDS","RESERVED_FUNCTIONS","POSSIBLE_WITHOUT_PARENS","COMBOS","FUNCTIONS","keyword","OPERATOR","kws_to_regex","kw","MULTI_WORD_KEYWORDS","reduceRelevancy","when","qualifyFn","stripOptionsFromArgs","either","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","typeIdentifier","keywordAttributes","availabilityKeywords","swift","BLOCK_COMMENT","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","REGEX_KEYWORDS","KEYWORD_MODES","BUILT_IN_GUARD","BUILT_IN","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","MULTILINE_STRING","SINGLE_LINE_STRING","REGEXP_CONTENTS","BARE_REGEXP_LITERAL","EXTENDED_REGEXP_LITERAL","REGEXP","IMPLICIT_PARAMETER","PROPERTY_WRAPPER_PROJECTION","IDENTIFIERS","AVAILABLE_ATTRIBUTE","KEYWORD_ATTRIBUTE","USER_DEFINED_ATTRIBUTE","GENERIC_ARGUMENTS","TUPLE_ELEMENT_NAME","TUPLE","GENERIC_PARAMETERS","FUNCTION_PARAMETER_NAME","FUNCTION_PARAMETERS","FUNCTION_OR_MACRO","INIT_SUBSCRIPT","OPERATOR_DECLARATION","PRECEDENCEGROUP","CLASS_FUNC_DECLARATION","CLASS_VAR_DECLARATION","interpolation","submodes","typescript","tsLanguage","INTERFACE","TS_SPECIFIC_KEYWORDS","DECORATOR","swapMode","indx","ATTRIBUTE_HIGHLIGHT","OPTIONAL_KEY_OR_ARGUMENT","functionDeclaration","vbnet","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DATE","DOC_COMMENT","wasm","LINE_COMMENT","FUNCTION_REFERENCE","ARGUMENT","PARENS","MATH_OPERATIONS","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","yaml","URI_CHARACTERS","TEMPLATE_VARIABLES","SINGLE_QUOTE_STRING","CONTAINER_STRING","TIMESTAMP","VALUE_CONTAINER","OBJECT","grammars","deepFreeze","Response","escapeHTML","inherit$1","SPAN_CLOSE","emitsWrappingTags","scopeToCSSClass","pieces","HTMLRenderer","TokenTree","TokenTreeEmitter","emitter","anyNumberOfTimes","countMatchGroups","lexeme","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","MATCH_NOTHING_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","modeOptions","ENGLISH_WORD","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","skipIfHasPrecedingDot","scopeClassName","_parent","beginKeywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","originalMode","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","keywordList","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","deprecated","MultiClassError","remapScopeNames","regexes","scopeNames","emit","beginMultiClass","endMultiClass","scopeSugar","MultiClass","compileLanguage","language","langRe","MultiRegex","terminators","ResumableMultiRegex","buildModeRegex","mm","compileMode","cmode","keywordPattern","expandOrCloneMode","dependencyOnParent","HTMLInjectionError","NO_MATCH","MAX_KEYWORD_HITS","HLJS","languages","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","shouldNotHighlight","languageName","blockLanguage","getLanguage","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","fire","_highlight","codeToHighlight","keywordHits","keywordData","matchText","processKeywords","modeBuffer","keywordRelevance","emitKeyword","processSubLanguage","continuations","highlightAuto","processBuffer","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","doIgnore","resumeScanAtSamePosition","doBeginMatch","beforeCallbacks","doEndMatch","endMode","processContinuations","lastMatch","processLexeme","textBeforeMatch","iterations","md","beforeMatch","processedCount","justTextHighlightResult","languageSubset","autoDetection","best","secondBest","updateClassName","currentLang","resultLang","highlightElement","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","boot","registerLanguage","languageDefinition","registerAliases","unregisterLanguage","listLanguages","aliasList","upgradePluginAPI","removePlugin","deprecateHighlightBlock","defaultPrefix","createLowlight","HighlightJs","registerAlias","registered","HastEmitter","subset","grammarsOrName","grammar","aliasesOrName","aliasOrName","rawName","rehypeHighlight","detect","lowlight","rehypeHighlightPlugin","ImagePlaceholder","WarningText","UrlDisplay","QueryParamsDisplay","LoadButton","ImageContainer","SecureImageComponent","showImage","setShowImage","imageError","setImageError","queryParams","hasQueryParams","queryIndex","CONTROL","controlRE","SINGLE_QUOTE","DOUBLE_QUOTE","SQ","DQ","DS","TOKEN","mult","startsWithToken","matchAll","origIndex","matchObj","getVar","parseInternal","BS","BAREWORD","chunker","commented","esc","isGlob","parseEnvVar","varend","varname","slicedFromI","commentObj","shellQuote","evaluateTerminalCommandSecurity","basePolicy","normalizedCommand","commandLines","mostRestrictivePolicy","trimmedLine","linePolicy","evaluateTokensSecurity","getMostRestrictive","isOperator","isComment","originalCommand","hasEmptyQuotes","hasVariablePatterns","policyWithEmpty","evaluateTokens","tokensWithoutEmpty","policyWithoutEmpty","currentCommand","commandPolicy","evaluateSingleCommand","pipePolicy","evaluatePipeChain","hasCommandSubstitution","substitutedCommands","extractSubstitutedCommands","subCmd","nestedPolicy","hasObfuscationPatterns","policies","startIdx","nextCommandStart","nextCommand","commandTokens","baseCommand","isCriticalCommand","isHighRiskCommand","isSafeCommand","allTokens","hasRf","hasDangerousPath","criticalPaths","hasRecursive","hasSystemDrive","isHighRiskPackageManager","installCommands","isHighRiskNetworkTool","isHighRiskScriptInterpreter","isHighRiskDirectScript","isHighRiskEnvironmentModifier","dangerousVars","isHighRiskProcessCommand","isHighRiskSystemService","isHighRiskFileOperation","sensitiveLocations","isHighRiskRmCommand","hasCriticalPath","isHighRiskArchiveExtraction","nextArg","isHighRiskContainerCommand","isHighRiskCloudCLI","isHighRiskUserCommand","isHighRiskScheduledTask","isHighRiskWindowsRegistry","isHighRiskWindowsManagement","isHighRiskSecurityTool","isHighRiskSourceCommand","isHighRiskHistoryManipulation","isHighRiskDNSTool","isHighRiskMacOSCommand","isFunctionDefinition","dangerousFlags","safeGitOps","safeOps","suspiciousScripts","safeBuildOps","backtickMatches","dollarParen","endIdx","extracted","resolveRelativePathInDir","ide","dirs","dirUri","fullUri","inferResolvedUriFromRelativePath","_relativePath","dirCandidates","promises","partialUri","existingUris","activeFile","useIdeMessengerRequest","hasCurrentToolCalls","chatHistory","findAllCurToolCalls","findAllCurToolCallsByStatus","toolCall","seenAssistantMessage","passedAssistantMessage","findToolCallById","findChatHistoryItemByToolCallId","logToolUsage","accepted","success","messenger","finalOutput","selectCurrentToolCalls","selectToolCallsByStatus","_store","selectFirstPendingToolCall","selectToolCallById","selectApplyStateByToolCallId","applyStates","selectPendingToolCalls","selectDoneApplyStates","applyState","terminalLanguages","commonTerminalCommands","isTerminalCodeBlock","matchCodeToSymbolOrFile","rifs","exactSymbol","partialSymbol","isSymbolNotRif","HoverItem","ToolbarButtonWithTooltip","tooltipContent","ApplyActions","onClickReject","CollapsibleContainer","collapsible","isExpanded","setIsExpanded","useCopy","copied","setCopied","copyText","textVal","CopyButton","CreateFileButton","FileInfo","InsertButton","onInsert","extractCommand","RunInTerminalButton","runInTerminal","extractedCommand","DANGEROUS_COMMAND_WARNING_MESSAGE","StepContainerPreToolbar","showToolCallStatusIcon","codeBlockContent","relativeFilepath","itemIndex","codeBlockIndex","isLastCodeblock","codeBlockStreamId","forceToolCallId","disableManualApply","relativeFilepathUri","setRelativeFilepathUri","fileExistsInput","fileExists","refreshFileExists","isLoadingFileExists","nextCodeBlockIndex","selectApplyStateByStreamId","toolCallApplyState","toolCallStatusIcon","appliedFileUri","setAppliedFileUri","isNextCodeBlock","hasFileExtension","isStreaming","isGeneratingCodeBlock","securityWarning","wholeBlockEval","lineEval","displayFilepath","onClickApply","resolvedUri","getFileUriToApplyTo","currentFile","onClickInsertAtCursor","handleDiffAction","onClickFilename","renderActionButtons","isPendingToolCall","numLines","plural","SymbolLink","processedContent","parseHexColor","hexColor","hljsToTextMate","constructTheme","tmTheme","tokenToForeground","foreground","fallbackTheme","initialVscThemeContext","VscThemeContext","VscThemeProvider","setTheme","generateThemeStyles","StyledPre","SyntaxHighlightedPre","currentTheme","fixDoubleDollarNewLineLatex","headerIsMarkdown","MarkdownBlockStateTracker","allLines","patchNestedMarkdown","nestCount","stateTracker","trimmedLines","remarkTables","paragraphNode","parentOfParagraphNode","bufferString","renderInline","tableRegex","newNodes","fullTableString","headerGroup","separatorGroup","bodyGroup","headerCells","splitRow","alignments","bodyCells","bodyRow","tableNode","tableStart","tableEnd","beforeNodes","afterNodes","StyledMarkdown","HLJS_LANGUAGE_CLASSNAME_PREFIX","getLanguageFromClassName","getCodeChildrenContent","StyledMarkdownPreview","allSymbols","pastFileInfo","pastContextItems","pastFileInfoRef","itemIndexRef","codeblockStreamIds","lastCodeNode","aProps","preProps","preChildProps","relativeFilePath","codeProps","matchedSymbolOrFile","MermaidBlock","imgProps","uiConfig","codeWrapState","HeaderButtonWithToolTip","MAX_PREVIEW_HEIGHT","MAX_EXPANED_PREVIEW_HEIGHT","PreviewDiv","ContentContainer","ScrollableContent","ChevronContainer","ExpandableToolbarPreview","newestCodeblockForInputId","calculatedInitiallyHidden","setHidden","contentElement","setContentElement","contentDims","setContentDims","TiptapNodeViewWrapper","backticksRegex","CodeBlockPreview","inputId","fence","backticks","handleTitleClick","findSuggestionMatch","allowSpacesOption","allowToIncludeChar","allowedPrefixes","startOfLine","$position","allowSpaces","escapedChar","finalEscapedChar","textFrom","matchPrefix","matchPrefixIsAllowed","SuggestionPluginKey","Suggestion","decorationTag","decorationClass","decorationContent","decorationEmptyClass","findSuggestionMatch$1","started","stopped","changed","handleStart","handleChange","handleExit","decorationNode","commandProps","decorationId","currentDecorationNode","_oldState","composing","Mention","textTo","hasSpace","isMention","ErrorBoundaryContext","ErrorBoundary","_this$props$onReset","_this$props","_this$props$onError","_this$props2","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","childToRender","searchWithinContainer","containerRef","searchContainer","textNodes","walker","highlightFullLine","nodeTextValue","newMatch","matchHash","filteredMatches","verticalMiddle","closestDist","closestMatchToMiddle","useElementSize","debounceMs","setSize","debouncedSetSize","updateSize","HighlightOverlay","useFindWidget","searchRef","headerRef","setCurrentValue","searchTerm","setOpen","openWidget","setCaseSensitive","useRegex","setUseRegex","setMatches","setCurrentMatch","scrollToMatch","nextMatch","previousMatch","handleKeyDown","headerHeight","headerResizing","containerResizing","isResizing","refreshSearch","scrollTo","closestToMiddle","handleSearchRefClick","CollapseButton","CollapsedDiv","TimelineItem","NewSessionButton","ellipsisAnimation","keyframes","AnimatedEllipsis","MarkdownWrapper","ThinkingBlockPeek","redactedThinking","inProgress","setStartTime","elapsedTime","setElapsedTime","duplicateRedactedThinkingBlock","diffString","selectSlashCommandComboBoxInputs","slashCommands","selectSubmenuContextProviders","defaultProviders","selectUseActiveFile","defaultContext","SafeImg","setHasError","cachedSrc","setCachedSrc","cachedImage","blob","reader","ToggleDiv","defaultOpen","setIsHovered","INITIAL_INDEXING_STATE","indexingSlice","updateIndexingStatus","setIndexingChatPeekHidden","indexingReducer","DocsIndexingPeek","progressPercentage","DocsIndexingPeekList","AddDocsDialog","titleRef","urlRef","setTitle","startUrl","setStartUrl","faviconUrl","setFaviconUrl","indexingStatuses","docsIndexingStatuses","isFormValid","siteIndexingConfig","DocsIndexingPeeks","DiscordIcon","GithubIcon","GitlabIcon","GoogleIcon","NAMED_ICONS","getIconFromDropdownItem","typeIcon","DropdownIcon","IconComponent","fallbackIcon","ItemsDiv","ItemDiv","QueryInput","formatFileSize","fileSize","AtMentionDropdown","isInAgentMode","selectedIndex","setSelectedIndex","subMenuTitle","setSubMenuTitle","querySubmenuItem","setQuerySubmenuItem","loadingSubmenuItem","setLoadingSubmenuItem","allItems","setAllItems","isItemTooBig","selectedCode","contextResult","handleItemTooBig","fileExceeds","lastAtIndex","queryInputRef","selectItem","partialText","remainingText","totalItems","itemRefs","upHandler","prevIndex","downHandler","enterHandler","useImperativeHandle","showFileIconForItem","isSelected","subAction","openContextItem","contextItem","ContextItemsPeekItem","isUrl","getContextItemIcon","dimensions","NamedIcon","ProviderIcon","ContextItemsPeek","isCurrentContextPeek","ctxItems","isGatheringContext","selectIsGatheringContext","indicateIsGathering","getRuleDisplayName","getRuleSourceDisplayName","DEFAULT_SYSTEM_MESSAGES_URL","CODEBLOCK_FORMATTING_INSTRUCTIONS","EDIT_CODE_INSTRUCTIONS","BRIEF_LAZY_INSTRUCTIONS","DEFAULT_CHAT_SYSTEM_MESSAGE","DEFAULT_AGENT_SYSTEM_MESSAGE","DEFAULT_PLAN_SYSTEM_MESSAGE","useEditBlock","slug","sourceFile","useEditModel","editBlock","useEditDoc","docConfig","useOpenRule","RulesPeekItem","openRule","RulesPeek","appliedRules","gradient","GradientBorder","ContinueError","ContinueErrorReason","extractModelInfo","assistantMessage","tc","modelParts","chatModel","extractPromptAndCompletion","assistantMessageIndex","userMessage","promptContent","completionContent","extractCodeChanges","previousCode","newCode","previousCodeLines","newCodeLines","lineChange","assembleEditOutcomeData","modelInfo","promptAndCompletion","codeChanges","logAgentModeEditOutcome","editOutcomeData","balancedMatch","maybeMatch","reg","begs","beg","braceExpansion","expandTop","escSlash","escOpen","escClose","escComma","escPeriod","escapeBraces","unescapeBraces","parseCommaParts","postParts","embrace","isPadded","isTop","expansions","isNumericSequence","isAlphaSequence","isSequence","isOptions","incr","need","MAX_PATTERN_LENGTH","assertValidPattern","posixClasses","braceEscape","regexpEscape","rangesToString","parseClass","glob","negs","sawStart","uflag","rangeStart","WHILE","unip","neg","sranges","snegs","windowsPathsNoEscape","isExtglobType","startNoTraversal","startNoDot","addPatternStart","justDots","reSpecials","regExpEscape","qmark","starNoEmpty","_AST","__privateAdd","_AST_instances","_root","_hasMagic","_uflag","_parts","_parentIndex","_negs","_filledNegs","_emptyExt","__privateSet","__privateGet","pp","pl","ast","__privateMethod","_AST_static","parseAST_fn","hasMagic","flags","allowDot","dot","fillNegs_fn","noEmpty","parseGlob_fn","aps","needNoTrav","needNoDot","repeated","partsToRegExp_fn","bodyDotAllowed","inBrace","braceStart","braceNeg","needUflag","consumed","magic","AST","minimatch","Minimatch","starDotExtRE","starDotExtTest","starDotExtTestDot","starDotExtTestNocase","starDotExtTestNocaseDot","starDotStarRE","starDotStarTest","starDotStarTestDot","dotStarRE","dotStarTest","starRE","starTest","starTestDot","qmarksRE","qmarksTestNocase","noext","qmarksTestNoExt","qmarksTestNocaseDot","qmarksTestNoExtDot","qmarksTestDot","qmarksTest","defaultPlatform","sep","GLOBSTAR","twoStarDot","twoStarNoDot","orig","braceExpand","makeRe","globMagic","rawGlobParts","isUNC","isDrive","globParts","optimizationLevel","didSomething","dd","gss","splin","emptyGSMatch","which","negateOffset","fileDrive","fileUNC","patternDrive","patternUNC","fdi","pdi","fd","pd","fl","swallowee","hit","fastTest","twoStar","ff","extractContentFromCodeBlock","escapedPath","extractPathsFromCodeBlocks","codeBlockStarts","blockStart","filenameMatches","matchesGlobs","globs","positivePatterns","negativePatterns","contentMatchesRegex","fileContent","isFileInDirectory","directoryPath","normalizedFilePath","normalizedDirPath","dirName","isRootLevelRule","isGlobalRule","checkGlobsAndRegex","filePaths","fileContents","matchingFiles","shouldApplyRule","rulePolicies","ruleDirectory","ruleDirPath","filesInRuleDirectory","getApplicableRules","filePathsFromMessage","filePathsFromContextItems","allFilePaths","blockContent","getRuleId","getSystemMessageWithRules","baseSystemMessage","availableRules","systemMessage","ruleMetadata","selectActiveTools","tools","groupPolicies","enabledTools","tool","chatMessageIsEmpty","NO_TOOL_CALL_OUTPUT_MESSAGE","CANCELLED_TOOL_CALL_MESSAGE","ERRORED_TOOL_CALL_OUTPUT_MESSAGE","toolCallStateToSystemToolOutput","convertToolCallStatesToSystemCallsAndOutput","originalAssistantMessage","framework","userParts","criterion","constructMessages","useSystemToolsFramework","summaryContent","filteredHistory","summary","historyCopy","msgs","appliedRuleIndex","lastUserOrToolMsg","lastUserMsgIndex","rulesContextItems","finalSystemMessage","VirtualTags","SecretType","decodeSecretLocation","secretLocation","secretType","secretName","util","assertIs","_arg","assertNever","validKeys","checker","joinValues","objectUtil","ZodParsedType","getParsedType","ZodIssueCode","quotelessJson","ZodError","issues","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","formErrors","firstEl","errorMap","_ctx","overrideErrorMap","defaultErrorMap","setErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullPath","fullIssue","EMPTY_PATH","addIssueToContext","overrideMap","ParseStatus$1","ParseStatus","arrayValue","INVALID","syncPairs","finalObject","DIRTY","OK","isAborted","isAsync","errorUtil","ParseInputLazyPath$1","handleResult","processCreateParams","invalid_type_error","required_error","iss","ZodType$2","maybeAsyncResult","getIssueProperties","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","secondsRegexSource","secondsQuantifier","timeRegex","datetimeRegex","isValidIP","isValidJWT","jwt","alg","base64","isValidCidr","ZodString","ZodType","tooBig","tooSmall","validation","floatSafeRemainder","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","ParseInputLazyPath","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","defaultError","augmentation","merging","newField","createZodEnum","handleResults","unionErrors","childCtx","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","schemas","ZodRecord","keyType","valueType","third","finalMap","ZodMap","ZodSet","finalizeSet","parsedSet","ZodFunction","makeArgsIssue","makeReturnsIssue","returns","parsedReturns","returnType","expectedValues","enumValues","newDef","nativeEnumValues","promisified","checkCtx","executeRefinement","newCtx","ZodNaN","BRAND","inResult","cleanParams","_params","fatal","_fatal","late","instanceOfType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","ostring","onumber","oboolean","coerce","NEVER","ALIAS","DOC","MAP","PAIR","SCALAR","SEQ","isAlias","isDocument","isScalar","isSeq","isCollection","hasAnchor","BREAK","REMOVE","visitor_","initVisitor","visit_","callVisitor","replaceNode","ck","cv","escapeChars","escapeTagName","Directives","verbatim","tagEntries","tagNames","anchorIsValid","anchorNames","anchors","findNewAnchor","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","applyReviver","reviver","v0","v1","toJS","NodeBase","mapAsMap","maxAliasCount","onAnchor","Alias","getAliasCount","_onComment","_onChompKeep","kc","vc","isScalarValue","Scalar","defaultTagPrefix","findTagObject","tagObj","createNode","aliasDuplicateObjects","onTagObj","collectionFromPath","Collection","keepScalar","allowScalar","stringifyComment","indentComment","lineComment","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","indentAtStart","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","escStart","escEnd","consumeMoreIndentedLines","fold","getFoldOptions","containsDocumentMarker","lineLengthOverLimit","indentLength","strLen","doubleQuotedString","implicitKey","minMultiLineLength","singleQuotedString","quotedString","singleQuote","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","commentString","literal","endStart","endNlPos","startWithSpace","startEnd","startNlPos","foldedValue","literalFallback","foldOptions","plainString","actualString","indentStep","inFlow","compat","stringifyString","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","getTagObject","testMatch","stringifyProps","stringifyPair","allNullValues","indentSeq","simpleKeys","keyComment","explicitKey","keyCommentDone","chompKeep","vsb","vcb","valueComment","valueCommentDone","valueStr","vs0","nl0","hasNewline","hasPropsLine","sp0","logLevel","MERGE_KEY","addMergeToJSMap","isMergeKey","mergeValue","srcMap","addPairToJSMap","jsKey","stringKey","stringifyKey","jsValue","strCtx","strKey","jsonStr","createPair","Pair","stringifyCollection","stringifyFlowCollection","stringifyBlockCollection","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","ic","findPair","YAMLMap","keepUndefined","replacer","overwrite","_pair","sortEntries","YAMLSeq","asItemIndex","sv","stringifyNumber","minFractionDigits","floatNaN","floatExp","intIdentify","intResolve","intAsBigInt","intStringify","intOct","_onError","intHex","stringifyJSON","jsonScalars","jsonError","resolvePairs","createPairs","YAMLOMap","seenKeys","boolStringify","trueTag","falseTag","intBin","YAMLSet","keepPair","parseSexagesimal","asBigInt","stringifySexagesimal","_60","intTime","floatTime","millisec","tz","schema$1","schema$2","tagsByName","coreKnownTags","getTags","customTags","schemaName","addMergeTag","schemaTags","sortMapEntriesByKey","resolveKnownTags","sortMapEntries","toStringDefaults","stringifyDocument","contentComment","dc","Document$1","Document","_replacer","assertCollection","keyToStr","asStr","anchorPrefix","setAnchors","jsonArg","YAMLError","YAMLParseError","YAMLWarning","prettifyError","lineStr","pointer","resolveProps","indicator","startOnNewline","spaceBefore","atNewline","commentSep","reqSpace","newlineAfterProp","containsNewline","flowIndentCheck","fc","mapIncludes","uniqueKeys","startColMsg","resolveBlockMap","composeEmptyNode","NodeClass","commentEnd","collItem","keyProps","keyStart","valueProps","resolveBlockSeq","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","atRoot","prevItemComment","endRange","expectedEnd","cePos","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","trimIndent","crlf","resolveFlowScalar","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","badChar","foldLines","foldNewline","cc","escapeCodes","parseCharCode","wsStart","composeScalar","findScalarTagByName","findScalarTagByTest","matchWithTest","atKey","emptyScalarPosition","isSrcToken","composeAlias","composeDoc","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","afterDoc","forceDoc","endOffset","BOM","DOCUMENT","FLOW_END","tokenType","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","incomplete","dirEnd","sp","ch0","ch1","qb","allowEmpty","allowTabs","LineCounter","includesToken","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","fixFlowSeqItems","onNewLine","bv","atMapIndent","atNextItem","docEnd","prettyErrors","parseDocument","lineCounter","composer","_doc","_reviver","RULE_FILE_EXTENSION","sanitizeRuleName","createMarkdownWithFrontmatter","frontmatter","YAML.stringify","createRuleMarkdown","ruleContent","RuleType","RuleTypeDescriptions","getRuleType","hasGlobs","hasRegex","hasDescription","agentFileFrontmatterSchema","commonModelSlugs","clientCertificateOptionsSchema","z.object","z.string","requestOptionsSchema","z.number","z.boolean","z.union","z.array","z.record","z.any","modelRolesSchema","z.enum","modelCapabilitySchema","z.literal","completionOptionsSchema","embeddingTasksSchema","embeddingPrefixesSchema","cacheBehaviorSchema","embedOptionsSchema","systemMessageDescriptionOverrideSchema","z\n .array","z.tuple","toolOverrideSchema","chatOptionsSchema","templateSchema","autocompleteOptionsSchema","promptTemplatesSchema","baseModelFields","z\n .record","modelSchema","partialModelSchema","z\n .object","baseDevDataAllSchema","autocompleteEventAllSchema","autocompleteEventSchema_0_1_0","autocompleteEventSchema_0_2_0","chatFeedbackEventAllSchema","chatFeedbackEventSchema_0_1_0","chatFeedbackEventSchema_0_2_0","chatInteractionEventAllSchema","chatInteractionEventSchema_0_2_0","editInteractionEventAllSchema","editInteractionEventSchema_0_2_0","editOutcomeEventAllSchema","editOutcomeEventSchema_0_2_0","nextEditOutcomeEventAllSchema","nextEditOutcomeEventSchema_0_2_0","nextEditEventAllSchema","nextEditEventSchema_0_2_0","quickEditEventAllSchema","quickEditEventSchema_0_1_0","tokensGeneratedEventAllSchema","toolUsageEventAllSchema","toolUsageEventSchema_0_2_0","semverRegex","dataLevel","dataSchema","devEventAllVersionDataSchemas","baseMcpServerSchema","stdioMcpServerSchema","sseOrHttpMcpServerSchema","mcpServerSchema","partialMcpServerSchema","contextSchema","promptSchema","docSchema","ruleObjectSchema","ruleSchema","defaultUsesSchema","blockItemWrapperSchema","usesSchema","blockOrSchema","commonMetadataSchema","envRecord","baseConfigYamlSchema","modelsUsesSchema","z\n .string","configYamlSchema","continueCommandSchema","languageMarkerSchema","sidebarSchema","toolSchema","autoindentExtensionsSchema","BLOCK_TYPES","parseConfigYaml","configYaml","YAML.parse","formatZodError","parseProxyModelName","ownerSlug","packageSlug","httpOrSseMcpJsonSchema","stdioMcpJsonSchema","mcpServersJsonSchema","mcpServersRecordSchema","PROVIDER_TOOL_SUPPORT","_model","lowerCaseModel","exclusions","ollamaFn","supportedPrefixes","specificModels","supportedContains","prefixMatches","isRecommendedAgentModel","recs","combo","modelSupportsNativeTools","modelDescription","providerSupport","closeTag","openingTag","splitAtCodeblocksAndNewLines","randomLettersAndNumbers","generateOpenAIToolCallId","createDelta","TOOL_INSTRUCTIONS_TAG","generateToolsSystemMessage","withPredefinedMessage","withDynamicMessage","instructions","addSystemMessageToolsToSystemMessage","systemMessageTools","toolsSystemMessage","detectToolCallStart","toolCallFramework","starts","modifiedBuffer","isInToolCall","isInPartialStart","lowerCaseBuffer","getInitialToolCallParseState","interceptSystemToolCalls","messageGenerator","systemToolFramework","parseState","handleToolCallBuffer","isNewLine","splitBuffer","argName","argPrefix","trimmedValue","stringifiedArg","SystemMessageToolCodeblocksFramework","toolDefinition","requiredText","argDescription","exampleArgs","callExample","argValue","NO_TOOL_WARNING","getBaseSystemMessage","messageMode","activeTools","baseMessage","evaluateToolPolicy","toolPolicies","dynamicPolicy","displayValue","evaluateToolPolicies","generatedToolCalls","policyResults","disabledResults","policy","errorToolCall","updateToolCallOutput","preprocessToolCalls","tcState","errorReason","preprocessedArgs","setProcessedToolCallArgs","buildReasoningCompletionOptions","hasReasoningEnabled","reasoningOptions","streamNormalInput","legacySlashCommandData","selectedChatModel","useNativeTools","systemToolsFramework","completionOptions","withoutMessageIds","messageWithoutId","messages","setAppliedRulesAtIndex","setActive","setInlineErrorMessage","precompiledRes","setInactive","compiledChatMessages","didPrune","contextPercentage","setIsPruned","setContextPercentage","streamAborter","abortStream","streamUpdate","addPromptCompletionPair","toolCallsToCancel","state1","originalToolCalls","generatingCalls","setToolGenerated","generatedCalls2","state3","generatedCalls3","autoApprovedPolicies","needsApprovalPolicies","builtInReadonlyAutoApproved","state4","callToolById","generatedCalls4","streamResponseAfterToolCall","parseErrorMessage","fullErrMsg","analyzeError","parsedError","providerName","apiKeyUrl","foundProvider","OutOfCreditsDialog","StreamErrorDialog","mainEditor","useMainEditor","handleRefreshProfiles","copyErrorToClipboard","checkKeysButton","handleEditModel","configButton","resubmitButton","editorState","streamResponseThunk","errorContent","issueTitle","issueBody","cancelStream","clearDanglingMessages","MAX_TITLE_LENGTH","getSession","getRemoteSession","remoteId","refreshSessionMetadata","setIsSessionMetadataLoading","setAllSessionMetadata","deleteSession","deleteSessionMetadata","loadLastSession","updateSessionMetadata","loadSession","sessionId","save","saveCurrentSession","newSession","selectChatModelForProfile","loadRemoteSession","modelMatch","lastSessionId","getChatTitleFromMessage","openNewSession","generateTitle","assistantResponse","updatedSession","OVERLOADED_RETRIES","OVERLOADED_DELAY_MS","isOverloadedErrorMessage","streamThunkWrapper","runStream","delayMs","errorData","areAllToolsDoneStreaming","continueAfterToolRejection","toolOutput","resetNextCodeBlockToApplyIndex","newMessage","handleApplyStateUpdate","exitEdit","updateApplyState","newApplyState","acceptToolCall","applyForEditTool","streamId","didError","editToolImpl","firstUriMatch","openFiles","uuid","validateSingleEdit","oldString","newString","replaceAll","trimEmptyLines","newLines","shouldContinueRemoving","validateMultiEdit","edits","exactMatch","searchContent","exactIndex","trimmedMatch","trimmedSearchContent","trimmedIndex","caseInsensitiveMatch","lowerFileContent","lowerSearchContent","whitespaceIgnoredMatch","strippedFileContent","strippedSearchContent","strippedIndex","originalStartIndex","strippedCharCount","originalEndIndex","matchedNonWhitespaceChars","matchingStrategies","findSearchMatch","findSearchMatches","remainingContent","currentOffset","adjustedMatch","executeFindAndReplace","editIndex","executeMultiFindAndReplace","validateSearchAndReplaceFilepath","resolvedFilepath","multiEditImpl","editingFileContents","newFileContents","singleFindAndReplaceImpl","callClientTool","isAutoApproved","setToolCallCalling","mcpUiState","streamResponse","clientToolOutput","respondImmediately","clientToolError","duration_ms","ProgressBar","total","percentage","CreditStatusProgressBar","creditStatus","usage","StarterCreditsPopover","refreshCreditStatus","isRefreshing","setIsRefreshing","onSetupApiKeys","onPurchaseCredits","onHideStarterCreditsUsage","onRefresh","refreshCalls","usesCreditsBasedApiKey","modelsByRole","allModels","modelUsesCreditsBasedApiKey","isOutOfStarterCredits","usingModelsAddOnApiKey","useCreditStatus","setCreditStatus","hasExitedFreeTrial","usingCreditsBasedApiKey","isUsingFreeTrial","outOfStarterCredits","ROUTES","buildConfigRoute","CONFIG_ROUTES","isOnPremSession","sessionInfo","AssistantIcon","assistant","AssistantOption","hasFatalErrors","handleOptionClick","AssistantOptions","selectedProfileId","profiles","getOrgIcon","sizeClasses","OrganizationOption","organization","OrganizationOptions","organizations","SelectedAssistantButton","configLoading","isSidebar","buttonPadding","buttonStyle","AssistantAndOrgListbox","listboxRef","tinyFont","shouldRenderOrgInfo","onNewAssistant","onNewOrganization","onConfigsConfig","onOrganizationsConfig","lastToggleTime","DEBOUNCE_MS","profileIds","nextId","BlockSettingsTopToolbar","configError","pendingToolCalls","callingToolCalls","hasActiveContent","shouldShowError","handleRulesClick","handleToolsClick","handleModelsClick","AcceptRejectAllButtons","onAcceptOrReject","pendingApplyStates","handleAcceptOrReject","cancelToolCall","rejectShortcut","acceptShortcut","EditOutcomeToolbar","editApplyState","AcceptRejectDiffButtons","outcome","getEditFilenameAndRangeText","EditToolbar","codeToEdit","handleBackClick","GeneratingIndicator","IsApplyingToolbar","jetbrains","PendingApplyStatesToolbar","applyStatesByFilepath","DEFAULT_USER_REJECTION_MESSAGE","cancelToolCallThunk","cancelToolCallAction","generateToolCallButtonTestId","PendingToolCallToolbar","handleAccept","handleReject","StreamingToolbar","onStop","displayText","Container","StopButton","TtsActiveToolbar","isExecuteToolCallShortcut","isCancelToolCallShortcut","altKey","isTerminalCommand","LumpToolbar","ttsActive","isInEdit","firstPendingToolCall","isApplying","runningTerminalCalls","hasRunningTerminalCommand","handleStopAllTerminalCommands","stopPromises","terminalCall","handleStopAction","handleToolCallKeyboardShortcuts","stopText","Lump","EDIT_DISALLOWED_CONTEXT_PROVIDERS","EDIT_ALLOWED_SLASH_COMMAND_SOURCES","ContinueInputBox","availableSlashCommands","availableContextProviders","editModeState","filteredSlashCommands","filteredContextProviders","historyKey","toolbarOptions","TipTapEditor","ContinueInputBox$1","useCompactConversation","currentSessionId","setCompactionLoading","useDeleteCompaction","deleteCompaction","ConversationSummary","FeedbackButtons","feedback","setFeedback","sendFeedback","promptLog","modelProvider","logData","createRelativeRuleFilePathParts","ruleName","createRuleFilePath","workspaceDir","NAME_ARG_DESC","RULE_ARG_DESC","DESC_ARG_DESC","GLOB_ARG_DESC","REGEX_ARG_DESC","ALWAYS_APPLY_DESC","createRuleBlock","RULE_GENERATION_SYSTEM_MESSAGE","useRuleGeneration","inputPrompt","onGenerate","isGenerating","setIsGenerating","currentHistory","generateRule","GenerationScreen","onBack","onSuccess","isManualMode","selectedRuleType","setSelectedRuleType","formError","setFormError","handleRuleTypeChange","newRuleType","alwaysApply","handleContinue","workspaceDirs","localContinueDir","ruleFilePath","showNameSpinner","RuleTemplateChip","ruleTemplates","InputScreen","onInputChange","onCancel","onManualWrite","handleRuleTemplateClick","GenerateRuleDialog","screen","setScreen","setInputPrompt","setIsManualMode","closeDialog","handleGenerate","prompt","handleManualWrite","handleBack","handleSuccess","CopyIconButton","tabIndex","checkIconClassName","clipboardIconClassName","tooltipPlacement","ResponseActions","onContinueGeneration","isTruncated","onDelete","isLast","isPruned","ruleGenerationSupported","percent","buttonColorClass","showLabel","compactConversation","onGenerateRule","ThinkingIndicator","historyItem","animation","setAnimation","isO1","StepContainer","setIsTruncated","latestSummaryIndex","isBeforeLatestSummary","isLatestSummary","historyItemAfterThis","showResponseActions","endingPunctuation","deleteMessage","INITIAL_TABS_STATE","tabsSlice","currentSessionTitle","newTabId","existingTabWithSession","setTabs","updateTab","addTab","removeTab","handleSessionChange","tabsReducer","tabBorderVar","tabBackgroundVar","tabForegroundVar","tabHoverBackgroundVar","tabHoverForegroundVar","tabSelectedBackgroundVar","tabSelectedForegroundVar","tabAccentVar","TabBarContainer","Tab","TabTitle","TabBarSpace","TabBar","hasHistory","handleNewTab","handleTabClick","targetTab","handleTabClose","isClosingActive","lastTab","CreateFile","EditFile","Diff","oldStr","oldTokens","newTokens","newLen","oldLen","editLength","maxEditLength","maxExecutionTime","abortAfterTimestamp","bestPath","minDiagonalToConsider","maxDiagonalToConsider","execEditLength","diagonalPath","removePath","addPath","canAdd","addPathNewPos","canRemove","exec","oldPosInc","oldPos","commonCount","changeObjects","lastComponent","nextComponent","componentLen","componentPos","oldValue","LineDiff","lineDiff","diffLines","retLines","linesAndNewlines","MAX_SAME_LINES","EllipsisLine","DiffLines","diffChar","diffCharClass","isLastPartLine","DiffStats","FindAndReplaceDisplay","historyIndex","showContent","displayName","currentFileContent","diffResult","contentsAfterReplace","diffStats","lineCount","statusIcon","renderContainer","isFirst","showStartEllipsis","showEndEllipsis","showMiddleEllipses","startLines","endLines","defineProperties","ANSI_COLORS","linkRegex","Anser","raw_text_chunks","first_chunk","color_chunks","use_classes","nums","num_str","is_foreground","palette_index","_this2","jsonChunk","decoration","tmpFg","tmpFgTrue","colors","textDecorations","render_data","fragments","escapeCarriageReturn","findLongestString","longest","escapeSingleLineSafe","escapeCarriageReturnSafe","escapeCarriageModule","moveTerminalProcessToBackground","existingOutput","SpoilerButton","ButtonContent","blinkCursor","BlinkingCursor","AnsiSpan","fg","AnsiLink","StyledTerminalContainer","TerminalContent","ansiToJSON","fixBackspace","convertBundleIntoReact","linkify","useClasses","decorationProp","AnsiRenderer","ansiContent","StatusIcon","getStatusColor","IndicatorOnly","hiddenLinesCount","CollapsibleOutputContainer","limitedContent","fullContent","UnifiedTerminalCommand","statusMessage","displayLines","outputExpanded","setOutputExpanded","isRunning","hasOutput","processedTerminalContent","totalLines","lastLines","statusType","handleMoveToBackground","copyContent","RunTerminalCommand","isErrored","outputItem","terminalContent","FunctionSpecificToolCallDiv","processedArgs","ToggleWithIcon","isToggleable","isClickable","showChevron","handleClick","renderIcon","GroupedToolCallHeader","activeCalls","$constructor","Parent","Definition","$ZodAsyncError","globalConfig","newConfig","getEnumValues","numericValues","jsonStringifyReplacer","nullish","cleanRegex","defineLazy","assignProp","captureStackTrace","allowsEval","ctor","prot","propertyKeyTypes","escapeRegex","cl","normalizeParams","optionalKeys","NUMBER_FORMAT_RANGES","currDef","_shape","Class","oldShape","prefixIssues","unwrapMessage","finalizeIssue","full","getLengthableOrigin","util.jsonStringifyReplacer","$ZodError","$ZodRealError","flattenError","_parse","_Err","core.$ZodAsyncError","util.finalizeIssue","core.config","util.captureStackTrace","_parseAsync","_safeParse","errors.$ZodError","safeParse","errors.$ZodRealError","_safeParseAsync","safeParseAsync","cuid","cuid2","ulid","xid","ksuid","guid","_emoji","emoji","ipv4","ipv6","cidrv4","cidrv6","base64url","hostname","e164","dateSource","timeSource","hhmm","datetime","integer","lowercase","$ZodCheck","core.$constructor","numericOriginMap","$ZodCheckLessThan","bag","$ZodCheckGreaterThan","$ZodCheckMultipleOf","util.floatSafeRemainder","$ZodCheckNumberFormat","isInt","minimum","maximum","util.NUMBER_FORMAT_RANGES","regexes.integer","$ZodCheckMaxLength","util.nullish","util.getLengthableOrigin","$ZodCheckMinLength","$ZodCheckLengthEquals","$ZodCheckStringFormat","$ZodCheckRegex","$ZodCheckLowerCase","regexes.lowercase","$ZodCheckUpperCase","regexes.uppercase","$ZodCheckIncludes","escapedRegex","util.escapeRegex","$ZodCheckStartsWith","$ZodCheckEndsWith","$ZodCheckOverwrite","Doc","dedented","$ZodType","runChecks","util.aborted","asyncResult","currLen","$ZodString","regexes.string","$ZodStringFormat","checks.$ZodCheckStringFormat","$ZodGUID","regexes.guid","$ZodUUID","regexes.uuid","$ZodEmail","regexes.email","$ZodURL","regexes.hostname","$ZodEmoji","regexes.emoji","$ZodNanoID","regexes.nanoid","$ZodCUID","regexes.cuid","$ZodCUID2","regexes.cuid2","$ZodULID","regexes.ulid","$ZodXID","regexes.xid","$ZodKSUID","regexes.ksuid","$ZodISODateTime","regexes.datetime","$ZodISODate","regexes.date","$ZodISOTime","regexes.time","$ZodISODuration","regexes.duration","$ZodIPv4","regexes.ipv4","$ZodIPv6","regexes.ipv6","$ZodCIDRv4","regexes.cidrv4","$ZodCIDRv6","regexes.cidrv6","prefixNum","isValidBase64","$ZodBase64","regexes.base64","isValidBase64URL","regexes.base64url","padded","$ZodBase64URL","$ZodE164","regexes.e164","tokensParts","parsedHeader","$ZodJWT","$ZodNumber","regexes.number","received","$ZodNumberFormat","checks.$ZodCheckNumberFormat","$ZodBoolean","regexes.boolean","$ZodNull","regexes.null","$ZodUnknown","$ZodNever","handleArrayResult","util.prefixIssues","$ZodArray","proms","handleObjectResult","handleOptionalObjectResult","$ZodObject","_normalized","util.cached","okeys","util.optionalKeys","util.defineLazy","propValues","generateFastpass","util.esc","fastpass","util.isObject","jit","core.globalConfig","fastEnabled","util.allowsEval","unrecognized","keySet","_catchall","handleUnionResults","$ZodUnion","util.cleanRegex","$ZodDiscriminatedUnion","pv","disc","$ZodIntersection","handleIntersectionResults","util.isPlainObject","$ZodRecord","keyResult","$ZodEnum","util.getEnumValues","util.propertyKeyTypes","$ZodLiteral","$ZodTransform","_out","$ZodOptional","$ZodNullable","$ZodDefault","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","$ZodCatch","$ZodPipe","handlePipeResult","$ZodReadonly","handleReadonlyResult","$ZodCustom","checks.$ZodCheck","handleRefineResult","_iss","util.issue","$ZodRegistry","_meta","pm","globalRegistry","_string","util.normalizeParams","_email","_guid","_uuid","_uuidv4","_uuidv6","_uuidv7","_url","_nanoid","_cuid","_cuid2","_ulid","_xid","_ksuid","_ipv4","_ipv6","_cidrv4","_cidrv6","_base64","_base64url","_e164","_jwt","_isoDateTime","_isoDate","_isoTime","_isoDuration","_number","_int","_boolean","_unknown","_never","_lt","checks.$ZodCheckLessThan","_lte","_gt","checks.$ZodCheckGreaterThan","_gte","_multipleOf","checks.$ZodCheckMultipleOf","_maxLength","checks.$ZodCheckMaxLength","_minLength","checks.$ZodCheckMinLength","checks.$ZodCheckLengthEquals","_regex","checks.$ZodCheckRegex","_lowercase","checks.$ZodCheckLowerCase","_uppercase","checks.$ZodCheckUpperCase","_includes","checks.$ZodCheckIncludes","_startsWith","checks.$ZodCheckStartsWith","_endsWith","checks.$ZodCheckEndsWith","_overwrite","tx","checks.$ZodCheckOverwrite","_normalize","_trim","_toLowerCase","_toUpperCase","_array","_custom","norm","_refine","isZ4Schema","z4mini.safeParse","getObjectShape","rawShape","getLiteralValue","directValue","ZodISODateTime","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","ZodISODate","core.$ZodISODate","core._isoDate","ZodISOTime","core.$ZodISOTime","core._isoTime","ZodISODuration","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","ZodRealError","core._parse","parseAsync","core._parseAsync","core._safeParse","core._safeParseAsync","core.$ZodType","core.clone","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","refine","superRefine","checks.overwrite","nullable","nonoptional","pipe","prefault","_catch","readonly","core.globalRegistry","_ZodString","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","core._email","ZodEmail","core._url","ZodURL","core._jwt","ZodJWT","core._emoji","ZodEmoji","core._guid","ZodGUID","core._uuid","ZodUUID","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","ZodNanoID","core._cuid","ZodCUID","core._cuid2","ZodCUID2","core._ulid","ZodULID","core._base64","ZodBase64","core._base64url","ZodBase64URL","core._xid","ZodXID","core._ksuid","ZodKSUID","core._ipv4","ZodIPv4","core._ipv6","ZodIPv6","core._cidrv4","ZodCIDRv4","core._cidrv6","ZodCIDRv6","core._e164","ZodE164","iso.datetime","iso.date","iso.time","iso.duration","core._string","ZodStringFormat","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","core.$ZodNumber","checks.gt","checks.gte","checks.lt","checks.lte","checks.multipleOf","core._number","ZodNumberFormat","core.$ZodNumberFormat","core._int","core.$ZodBoolean","core._boolean","core.$ZodNull","core._null","core.$ZodUnknown","core._unknown","core.$ZodNever","never","core._never","core.$ZodArray","core._array","core.$ZodObject","_enum","util.extend","util.merge","util.pick","util.omit","util.partial","util.required","ZodNonOptional","util.assignProp","looseObject","core.$ZodUnion","core.$ZodDiscriminatedUnion","discriminatedUnion","core.$ZodIntersection","core.$ZodRecord","core.$ZodEnum","newEntries","core.$ZodLiteral","ZodTransform","core.$ZodTransform","_issue","core.$ZodOptional","core.$ZodNullable","core.$ZodDefault","ZodPrefault","core.$ZodPrefault","core.$ZodNonOptional","core.$ZodCatch","catchValue","ZodPipe","core.$ZodPipe","in_","core.$ZodReadonly","ZodCustom","core.$ZodCustom","core.$ZodCheck","core._custom","core._refine","RELATED_TASK_META_KEY","JSONRPC_VERSION","AssertObjectSchema","z.custom","ProgressTokenSchema","CursorSchema","z.looseObject","z.null","TaskMetadataSchema","RelatedTaskMetadataSchema","RequestMetaSchema","BaseRequestParamsSchema","TaskAugmentedRequestParamsSchema","isTaskAugmentedRequestParams","RequestSchema","NotificationsParamsSchema","NotificationSchema","ResultSchema","RequestIdSchema","JSONRPCRequestSchema","z\n .object","isJSONRPCRequest","JSONRPCNotificationSchema","isJSONRPCNotification","JSONRPCResultResponseSchema","isJSONRPCResultResponse","ErrorCode","JSONRPCErrorResponseSchema","z.unknown","isJSONRPCErrorResponse","JSONRPCMessageSchema","EmptyResultSchema","CancelledNotificationParamsSchema","CancelledNotificationSchema","IconSchema","IconsSchema","BaseMetadataSchema","ImplementationSchema","FormElicitationCapabilitySchema","z.intersection","ElicitationCapabilitySchema","z.preprocess","ClientTasksCapabilitySchema","z\n .looseObject","z\n .looseObject","ServerTasksCapabilitySchema","ClientCapabilitiesSchema","InitializeRequestParamsSchema","InitializeRequestSchema","ServerCapabilitiesSchema","InitializeResultSchema","InitializedNotificationSchema","PingRequestSchema","ProgressSchema","z.optional","ProgressNotificationParamsSchema","ProgressNotificationSchema","PaginatedRequestParamsSchema","PaginatedRequestSchema","PaginatedResultSchema","TaskStatusSchema","TaskSchema","CreateTaskResultSchema","TaskStatusNotificationParamsSchema","TaskStatusNotificationSchema","GetTaskRequestSchema","GetTaskResultSchema","GetTaskPayloadRequestSchema","ListTasksRequestSchema","ListTasksResultSchema","CancelTaskRequestSchema","CancelTaskResultSchema","ResourceContentsSchema","TextResourceContentsSchema","Base64Schema","BlobResourceContentsSchema","RoleSchema","AnnotationsSchema","z.iso.datetime","ResourceSchema","ResourceTemplateSchema","ListResourcesRequestSchema","ListResourcesResultSchema","ListResourceTemplatesRequestSchema","ListResourceTemplatesResultSchema","ResourceRequestParamsSchema","ReadResourceRequestParamsSchema","ReadResourceRequestSchema","ReadResourceResultSchema","ResourceListChangedNotificationSchema","SubscribeRequestParamsSchema","SubscribeRequestSchema","UnsubscribeRequestParamsSchema","UnsubscribeRequestSchema","ResourceUpdatedNotificationParamsSchema","ResourceUpdatedNotificationSchema","PromptArgumentSchema","PromptSchema","ListPromptsRequestSchema","ListPromptsResultSchema","GetPromptRequestParamsSchema","GetPromptRequestSchema","TextContentSchema","ImageContentSchema","AudioContentSchema","ToolUseContentSchema","EmbeddedResourceSchema","ResourceLinkSchema","ContentBlockSchema","PromptMessageSchema","GetPromptResultSchema","PromptListChangedNotificationSchema","ToolAnnotationsSchema","ToolExecutionSchema","ToolSchema","ListToolsRequestSchema","ListToolsResultSchema","CallToolResultSchema","CallToolRequestParamsSchema","CallToolRequestSchema","ToolListChangedNotificationSchema","LoggingLevelSchema","SetLevelRequestParamsSchema","SetLevelRequestSchema","LoggingMessageNotificationParamsSchema","LoggingMessageNotificationSchema","ModelHintSchema","ModelPreferencesSchema","ToolChoiceSchema","ToolResultContentSchema","SamplingContentSchema","z.discriminatedUnion","SamplingMessageContentBlockSchema","SamplingMessageSchema","CreateMessageRequestParamsSchema","CreateMessageRequestSchema","CreateMessageResultSchema","CreateMessageResultWithToolsSchema","BooleanSchemaSchema","StringSchemaSchema","NumberSchemaSchema","UntitledSingleSelectEnumSchemaSchema","TitledSingleSelectEnumSchemaSchema","LegacyTitledEnumSchemaSchema","SingleSelectEnumSchemaSchema","UntitledMultiSelectEnumSchemaSchema","TitledMultiSelectEnumSchemaSchema","MultiSelectEnumSchemaSchema","EnumSchemaSchema","PrimitiveSchemaDefinitionSchema","ElicitRequestFormParamsSchema","ElicitRequestURLParamsSchema","ElicitRequestParamsSchema","ElicitRequestSchema","ElicitationCompleteNotificationParamsSchema","ElicitationCompleteNotificationSchema","ElicitResultSchema","ResourceTemplateReferenceSchema","PromptReferenceSchema","CompleteRequestParamsSchema","CompleteRequestSchema","CompleteResultSchema","RootSchema","ListRootsRequestSchema","ListRootsResultSchema","RootsListChangedNotificationSchema","McpError","UrlElicitationRequiredError","elicitations","isTerminal","getMethodLiteral","methodSchema","parseWithCompat","DEFAULT_REQUEST_TIMEOUT_MSEC","Protocol","notification","_request","handleTaskResult","taskId","queuedMessage","tasks","nextCursor","cancelledTask","maxTotalTimeout","onTimeout","resetTimeoutOnProgress","totalElapsed","_onclose","_onerror","_onmessage","responseHandlers","capturedTransport","relatedTaskId","errorResponse","taskCreationParams","taskStore","fullExtra","notificationOptions","resultSchema","effectiveTaskId","progressToken","responseHandler","timeoutInfo","isTaskResponse","createResult","pollInterval","relatedRequestId","resumptionToken","onresumptiontoken","relatedTask","earlyReject","jsonrpcRequest","parseResult","timeoutHandler","responseResolver","jsonrpcNotification","requestSchema","notificationSchema","maxQueueSize","taskParams","updatedTask","Kc","Yn$1","qc","yl","Nl","ll","gl","Il","Ml","wl","Bl","ml","Qg","Xv","ec","Hl","uc","Xl","J6","lg","eg","Dg","Ug","wg","kg","mg","Vv","Nc","hg","gg","$g","Cl","Og","Ln","Jg","yg","gv","Ul","$c","Uc","zl","sl","hl","Ol","dl","Wl","wc","Pl","Sl","qg","Fl","Ql","bl","Vl","Al","Kl","$l","L6","Yl","ql","oc","xg","lv","cg","ul","Gl","al","Ig","Zl","bc","Dl","kl","gc","Jl","jl","Ic","sg","Sg","Tl","El","Ll","Rl","Cg","Vg","Wg","Eg","Pg","Yg","Mg","zg","ag","Fg","_v","Iv","Zg","jg","Gg","Tg","Ng","Bg","uv","j6","Kg","rv","Hg","Rg","z6","tv","Ag","dg","qn","Uv","pg","nv","$v","ov","vv","Xg","Lg","Qu","Nv","Xu","Vu","Ov","Kv","Av","EI","JI","GI","LI","k$","PI","SI","U$","jI","zI","w$","p4","u$","o$","a4","n$","su","Cu","n6","g6","D6","r$","_$","b6","D$","Ku","o6","b$","i6","k6","N6","U6","e6","Hu","l6","i$","I6","t$","u6","e$","v6","Yu","$6","w6","Fu","Bu","mu","Tu","r6","pu","du","Ru","Zu","xu","c$","t6","Bn","s4","c6","Hn","$$","I$","qu","Mu","g$","hu","au","vl","_6","fu","yu","l$","v$","ig","ol","Vo","Qo","Au","Ko","Zo","Xo","Un","Yo","f$1","Ir$1","NI","DI","Pv","Jv","cI","_I","oI","vI","Lv","gI","bI","Ev","eI","rI","tI","II","wI","uI","iI","zv","lI","$I","nI","UI","kI","yc","pc","ac","hc","sc","jv","Gv","Wv","mv","AI","VI","XI","Qv","sI","n4","yI","pI","aI","CI","hI","xI","dI","ZI","qI","Fv","HI","RI","MI","Tv","Zv","xv","YI","KI","TI","BI","Hv","WI","Rv","Mv","yv","Bv","FI","av","Yv","qv","fv","Cv","QI","hv","mI","an$1","Xc","Ac","Vc","Gu","Eu","Wu","Lu","Ju","ju","Nn","Pu","zu","Su","Ou","Nu","wu","Du","ku","Uu","bu","Iu","cu","lu","eu","gu","$u","uu","tu","ou","vu","iu","nu","ru","o4","t4","u4","$4","g4","e4","l4","c4","I4","b4","_4","U4","k4","D4","w4","N4","O4","S4","z4","P4","j4","J4","L4","E4","rl","G4","W4","X4","V4","A4","K4","q4","Y4","Q4","m4","T4","F4","B4","H4","M4","R4","x4","Z4","d4","C4","f4","h4","Au$1","O6","N$","O$","S$","z$","P$","j$","J$","L$","E$","G$","W$","X$","V$","A$","K$","q$","Y$","Q$","m$","T$","F$","B$","H$","M$","R$","x$","Z$","d$","C$","f$","h$","y$","a$","p$","s$","rg","ng","ig$1","tg","ug","vg","og","tl","E6","G6","W6","Oc","X6","V6","q6","A6","K6","jc","T6","F6","kv","Dv","Jc","Lc","Ec","Gc","Wc","zc","Y6","Q6","m6","Pc","OI","Sv","S6","P6","y4","Yc","Qc","Fc","Bc","Hc","mc","Mc","Rc","xc","Zc","Cc","B6","H6","R6","M6","C6","f6","wv","x6","Z6","d6","pk","P_","j_","z_","D_","U_","u_","I_","w_","e_","J_","g_","S_","c_","b_","N_","O_","l_","k_","getToolNameFromMCPServer","serverName","serverPrefix","buildCspMetaContent","csp","resourceDomains","connectDomains","allDomains","defaultSrc","scriptSrc","styleSrc","imgSrc","fontSrc","connectSrc","mediaSrc","frameSrc","workerSrc","McpAppRenderer","iframeRef","appBridgeRef","iframeHeight","setIframeHeight","isInitialized","setIsInitialized","uiMeta","toolInput","toolResult","permissions","prefersBorder","permissionWarningDismissed","setPermissionWarningDismissed","restrictedPermissions","restricted","hasRestrictedPermissions","sandboxAttribute","allowAttribute","buildAllowAttribute","AppBridge","handleIframeLoad","PostMessageTransport","srcdoc","typeStr","hasProperty","primitiveHasOwnProperty","primitive","testRegExp","nonSpaceRe","entityMap","escapeHtml","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","lineHasNonSpace","sections","hasTag","nonSpace","indentation","tagIndex","stripSpace","openingTagRe","closingTagRe","closingCurlyRe","compileTags","tagsToCompile","mustache","scanner","Scanner","openSection","valueLength","nestTokens","squashTokens","squashedTokens","numTokens","nestedTokens","collector","section","parentContext","intermediateValue","lookupHit","Writer","cacheKey","isCacheEnabled","originalTemplate","subRender","filteredIndentation","partialByNl","defaultWriter","ToolCallStatusMessage","defaultToolDescription","futureMessage","Mustache","intro","ToolTruncateHistoryIcon","lastMessageIndex","truncateHistoryToMessage","SimpleToolCallUI","shownContextItems","isSingleItem","shouldShowContent","ToolCallDisplay","ToolCallDiv","availableTools","isStreamingComplete","shouldShowGroupedUI","pendingCalls","renderToolCall","normalizeRepoUrl","AgentsList","isCreatingAgent","agents","setAgents","totalCount","setTotalCount","workspaces","setWorkspaces","fetchWorkspaceRepos","workspaceInfos","repoNameResult","normalizedUrl","workspaceName","fetchAgents","organizationId","isAgentInCurrentWorkspace","agentUrls","workspace","agentUrl","getAgentRepoName","repoUrl","handleOpenLocally","canOpenLocally","agentRepoName","AgentStatusBadge","formatRelativeTime","dateString","diffMs","diffMins","diffHours","diffDays","BackgroundModeView","isLoggingIn","setIsLoggingIn","showGitHubSetup","setShowGitHubSetup","checkingGitHub","setCheckingGitHub","handleSignIn","handleOpenGitHubSettings","checkGitHubAuth","FeedbackDialog","FatalErrorIndicator","showConfigPage","InlineErrorMessage","useBookmarkedSlashCommands","bookmarkedCommands","isCommandBookmarked","isBookmarked","ConversationStarterCard","NUM_CARDS_TO_RENDER","ConversationStarterCards","showAll","setShowAll","bookmarkedSlashCommands","visibleCommands","remainingCount","EmptyChatBody","showOnboardingCard","useTutorialListener","onTutorialClosed","lowercaseUri","ExploreDialogWatcher","getNumUserMsgs","useAutoScroll","userHasScrolled","setUserHasScrolled","numUserMsgs","handleScroll","findLatestSummaryIndex","StepsDiv","MAIN_EDITOR_INPUT_ID","resetErrorBoundary","Chat","reduxStore","showSessionTabs","stepsOpen","setIsCreatingAgent","mainTextInputRef","stepsDivRef","tabsRef","showChatScrollbar","hasDismissedExploreDialog","highlights","sendInput","editorToClearOnSend","stateSnapshot","latestPendingToolCalls","latestPendingApplyStates","isCurrentlyInEdit","codeToEditSnapshot","selectedModelByRole","defaultContextProviders","selectedContextItems","resolveEditorContent","streamEditThunk","currentCount","isLastUserInput","renderChatHistoryItem","showScrollbar","PromptBlockPreview","PromptBlock","promptNodes","SlashCommand","resolvePromptBlock","resolveParagraph","contextRequests","processEditorContent","slashCommandName","renderMcpPrompt","userInput","renderedPrompt","SUPPORTED_PROMPT_CONTEXT_PROVIDERS","convertToLetter","registerHelpers","handlebars","helpers","helper","prepareTemplatedFilepaths","inputData","ctxProviderNames","readFile","getUriFromPath","filepathLetters","requiredContextProviders","withLetterKeys","letterIndex","originalNodeVal","templateData","resolveHelperPromises","renderedString","renderTemplatedString","availableHelpers","helperPromises","getRenderedV1Prompt","handleBarHelpers","helperContext","__vite_default__","getPromptV2ContextRequests","visitedFiles","addContextRequestsRecursive","promptBody","templateMatches","resolvedFileUri","renderSlashCommandPrompt","NO_COMMAND","nonTextParts","textParts","slashedParts","legacyCommandWithInput","renderedMcpPrompt","promptFileCtxRequests","editorContextRequests","slashContextRequests","shouldGatherContext","setIsGatheringContext","gatherContextItems","defaultRequests","deduplicatedInputs","currentFileResponse","inputIndex","submitEditorAndInitAtIndex","filesForSymbols","updateHistoryItemAtIndex","filterMultipleEditToolCalls","toolCalls","hasSeenEditTool","handleToolCallsInMessage","filteredToolCalls","curMessage","applyToolCallDelta","existingStateIndex","existingState","handleStreamingToolCallUpdates","updatedToolCallStates","INITIAL_SESSION_STATE","sessionSlice","lastMessage","lastUserOrToolIdx","validAssistantMessageIdx","hasGeneratedMsg","lastMsg","thinkMatches","reasoningEnd","answerStart","lineNums","toolItem","curHistoryItem","addPassthroughCases","thunks","_action","setContextItemsAtIndex","addContextItemsAtIndex","updateSessionTitle","addHighlightedCode","setMainEditorContentTrigger","setMode","addSessionMetadata","setNewestToolbarPreviewForInput","setIsInEdit","setHasReasoningEnabled","sessionReducer","isEditorContentEmpty","editorContent","firstNode","insertCurrentFileContextMention","contextProviders","foundCurrentFileProvider","useMainEditorWebviewListeners","onEnterRef","historyLength","editorFocusedRef","activeContextProviders","useCurrentFileAsContext","mention","MainEditorContext","MainEditorProvider","setMainEditorInternal","setInputId","mainEditorContentTrigger","updateFocus","newEditor","PROVIDER_SUPPORTS_IMAGES","MODEL_SUPPORTS_IMAGES","modelSupportsImages","capabilities","lowerModel","lowerTitle","modelrx","modelSupportsReasoning","useIsOSREnabled","isOSREnabled","setIsOSREnabled","modelSelectTitle","closeDropDown","button","ModelOption","showMissingApiKeyMsg","handleConfigureClick","ModelSelect","isConfigLoading","buttonRef","sortedOptions","setSortedOptions","alphaSort","enabledOptions","disabledOptions","newModelTitle","onClickAddModel","onClickConfigureModels","hasNoModels","ModeIcon","ModeSelect","isGoodAtAgentMode","isLocalAgent","metaKeyLabel","cycleMode","selectMode","notGreatAtAgent","ContextStatus","previousHistoryLength","previousSelectedChatModel","isDifferentModelAndSameHistory","barColorClass","InputToolbar","fileInputRef","defaultModel","useActiveFile","isEnterDisabled","supportsImages","supportsReasoning","smallFont","LightBulbIconSolid","LightBulbIconOutline","shallowToolbarOptionsEqual","InputToolbar$1","InputBoxDiv","HoverDiv","HoverTextDiv","DragOverlay","setShow","overListener","leaveListener","GOOD_LEAF_SIZE","RopeSequence","Append","Leaf","prototypeAccessors","leftLen","max_empty_items","Branch","eventCount","preserveItems","remap","addAfter","addBefore","Item","histOptions","newItems","oldItems","DEPTH_OVERFLOW","cutOffEvents","mirrorPos","rebasedTransform","rebasedCount","rebasedItems","newUntil","iRebased","newMaps","upto","cutPoint","mirrorOffset","HistoryState","undone","prevRanges","prevTime","prevComposition","applyTransaction","historyTr","rebased","closeHistoryKey","appended","mustPreserveItems","rangesFor","newGroup","isAdjacentTo","mapRanges","adjacent","histTransaction","redo","newHist","cachedPreserveItems","cachedPreserveItemsPlugins","hist","inputType","undo","buildCommand","History","Placeholder","isEmptyDoc","ENTRIES","KEYS","VALUES","LEAF","TreeIterator","last$1","fuzzySearch","maxDistance","matrix","thisRowOffset","prevRowOffset","minDistance","jmin","jmax","different","rpl","ins","SearchableMap","trackDown","maxEditDistance","keyLength","intermediate","nodeKey","OR","AND","AND_NOT","MiniSearch","autoVacuum","defaultAutoVacuumOptions","defaultSearchOptions","defaultAutoSuggestOptions","defaultVacuumConditions","extractField","processTerm","idField","shortDocumentId","fieldId","uniqueTerms","processedTerm","chunkSize","shortId","fieldLength","minDirtFactor","minDirtCount","batchSize","batchWait","updatedDocument","conditions","initialDirtCount","defaultVacuumOptions","fieldsData","fieldIndex","searchOptions","globalSearchOptions","searchOptionsWithDefaults","rawResults","docId","terms","quality","byScore","queryString","suggestions","phrase","suggestion","optionName","getOwnProperty","documentIds","storedFields","serializationVersion","miniSearch","objectToNumericMap","dataMap","indexEntry","objectToNumericMapAsync","documentCount","fieldIds","averageFieldLength","dirtCount","subquery","searchTokenize","searchProcessTerm","termToQuerySpec","boosts","boostDocument","weights","maxFuzzy","bm25params","fuzzyWeight","prefixWeight","fuzzyMatches","fuzzy","combineWith","combinator","combinators","freqs","sourceTerm","derivedTerm","termWeight","termBoost","fieldTermData","fieldBoosts","boostDocumentFn","fieldBoost","fieldTermFreqs","matchingFields","avgFieldLength","docBoost","termFreq","rawScore","calcBM25Score","weightedScore","assignUniqueTerm","documentId","indexData","createMap","docs","fieldLengths","totalFieldLength","storeFields","documentFields","assignUniqueTerms","combined","defaultBM25params","matchingCount","SPACE_OR_PUNCTUATION","MINISEARCH_OPTIONS","MAX_LENGTH","initialContextProviders","SubmenuContextProvidersContext","hasExactWordMatch","isCommonDevFile","commonExtensions","commonNames","isInCommonDirectory","matchesCamelCaseOrAbbreviation","capitals","SubmenuContextProvidersProvider","submenuContextProviders","lastProviders","disableIndexing","minisearches","setMinisearches","fallbackResults","setFallbackResults","lastOpenFilesRef","hasOpenFilesChanged","newFiles","oldFiles","newIds","oldIds","isMounted","refreshOpenFiles","openFileItems","providersLoading","abortControllers","calculateFileSortPriority","queryLower","calculateMatchQuality","getSubmenuContextItems","providerTitle","searchResults","enhancedResults","fallbackItems","loadingFiller","loadSubmenuItems","submenuItems","renderInlineAs","itemsWithProvider","minisearch","deduplicatedItems","newTitles","useSubmenuContextProviders","emptyJsonContent","MAX_HISTORY_LENGTH","useInputHistory","inputHistory","setInputHistory","pendingInput","setPendingInput","setCurrentIndex","prevRef","nextRef","addRef","getSuggestion","enterSubmenu","onOpen","popup","onExit","TIPPY_DIV_ID","getSubActionsForSubmenuItem","getContextProviderDropdownOptions","availableContextProvidersRef","getSubmenuContextItemsRef","inSubmenu","contextProviderMatches","getSlashCommandDropdownOptions","availableSlashCommandsRef","commandItems","slashCommand","IMAGE_RESOLUTION","getDataUrlForFile","targetWidth","targetHeight","scaleFactor","canvas","handleImageFile","filesize","_URL","dataUrl","getPlaceholderText","hasValidEditorContent","hasPromptOrCodeBlock","createEditorConfig","isInEditRef","inSubmenuRef","inDropdownRef","defaultModelRef","isStreamingRef","historyLengthRef","providerId","pastePlugin","selectionPlugin","onEnter","previousInput","nextInput","isWebEnv","handleJetBrainsOSRMetaKeyIssues","alter","handleJetBrainsMetaBackspace","handleVSCMetaKeyIssues","handleCutOperation","handleCopyOperation","handlePasteOperation","handleRedoOperation","handleUndoOperation","deleteSingleWord","cursorPosition","nodeStartPosition","lastWordMatch","lastWordWithSpace","clipboardText","useEditorEventHandlers","setActiveKey","metaActiveRef","TipTapEditorInner","mainEditorContext","shouldHideToolbar","setShouldHideToolbar","placeholderExt","showDragOverMsg","setShowDragOverMsg","activeKey","insertCharacterWithWhitespace","handleKeyUp","blurTimeout","cancelBlurTimeout","handleBlur","relatedTarget","handleFocus","toolbarOptionsEqual","MemoInner","previousModeEditorContent","enterEdit","returnToMode","nameRe","nameReJsx","__importDefault","cjs","inline_style_parser_1","styleObject","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","trimHyphen","style_to_object_1","utilities_1","StyleToJS","pointEnd","pointStart","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","emptyMap","tableCellElement","toJsxRuntime","developmentCreate","productionCreate","mdxExpression","mdxJsxElement","mdxEsm","findComponentFromName","createElementProps","createChildren","addChildren","crashEstree","createJsxElementProps","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","transformStylesToCssCasing","styleToJs","allowExpression","identifiers","isIdentifierName","domCasing","cssCasing","transformStyleToCssCasing","toDash","urlAttributes","includeImageAlt","includeHtml","decodeNamedCharacterReference","push","syntaxExtension","decodeNumericCharacterReference","normalizeUri","lineStartOffset","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","thereIsANewContainer","thereIsNoNewContainer","writeToChild","endOfFile","attentionMarkers","tokenizeBlankLine","contStart","contBefore","closeStart","tokenizeCloseStart","beforeSequenceOpen","infoBefore","atNonLazyBreak","contentBefore","startBefore","sequenceCloseAfter","furtherStart","tokenizeFurtherStart","SpliceBuffer","deleteCount","eventsArray","breaks","chunkInside","enclosedBefore","enclosed","enclosedEscape","rawEscape","labelInside","titleBefore","tokenizeTitleBefore","markerAfter","destinationBefore","beforeMarker","titleAfter","titleAfterOptionalWhitespace","sequenceFurther","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","markerB","slash","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","lineEndingBefore","lineEndingAfter","lineEndingAfterPrefix","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","resolveText","defineSkip","expandTabs","_bufferIndex","_index","defaultConstructs","characterEscapeOrReference","decodeString","onexitcharacterreference","defaultOnError","errorHandler","onExitError","referenceType","clobberPrefix","safeId","reuseCounter","firstRow","tableContent","cellIndex","tableCell","trimLines","trimLine","VOID","PRIMITIVE","SET","ERROR","BIGINT","deserializer","unpair","deserialize","EMPTY","asString","shouldSkip","lossy","structuredClone$1","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","backReferences","counts","tailTail","structuredClone","createState","definitionById","footnoteCounts","defaultHandlers","applyData","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","hastTree","middlewareIndex","middelware","fnExpectsCallback","minpath","extnameIndex","minproc","fileUrlOrPath","urlToPath","getPathFromURLPosix","isUint8Array","CallableInstance","Processor","attacher","realFile","realDone","compileTree","compileResult","looksLikeAValue","outputTree","resultingTree","entryIndex","primary","currentPrimary","looksLikeAVFile","changelog","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","createProcessor","createFile","remarkRehypeOptions","allowedElements","allowElement","disallowedElements","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","deprecation","colon","questionMark","numberSign","ScreenCover","DialogContainer","TextDialog","isValidElement","ReactMarkdown","OSRContextMenu","setPosition","canCopy","setCanCopy","setCanCut","canPaste","setCanPaste","menuRef","selectedTextRef","selectedRangeRef","onMenuItemClick","leaveWindowHandler","contextMenuHandler","clickHandler","isClickWithinSelection","selectedText","toRight","toBottom","PostHogPageView","LayoutTopDiv","GridDiv","Layout","showStagingIndicator","setShowStagingIndicator","dialogMessage","isHome","validPolicyValues","migrateToolPolicies","toFromMap","persistedRedux","uiState","parsedSettings","migratedToolSettings","newToolName","oldToolNames","migrateLocalStorage","ParallelListeners","reasoningSettings","hasDoneInitialConfigLoad","initialSessionId","handleConfigUpdate","isInitial","configResult","selectedOrgId","isReasoningDisabled","wasReasoningPreviouslyEnabled","initialLoadConfig","TabButton","tabId","TabGroup","showTopDivider","showBottomDivider","openGUITypes","useNavigationListener","ConfigSection","ConfigHeader","subtext","onAddClick","addButtonTooltip","showAddButton","isSmall","marginBottom","titleSize","HeadingTag","ConfigsSection","handleAddConfig","handleConfigureAgent","hasErrors","metaKeys","altKeys","modifierKeys","getSpecialKeyMap","parseShortcut","specialKeyMap","lowerKey","capitalizeKey","isSingleCharNonModifier","Shortcut","shortcuts","comboIndex","keyIndex","ConfigRow","baseClasses","interactiveClasses","disabledClasses","KeyboardShortcut","vscodeShortcuts","jetbrainsShortcuts","HelpSection","handleViewSessionData","sessionData","modifyAnyConfigWithSharedConfig","continueConfig","sharedConfig","configCopy","ToggleSwitch","isToggled","showIfToggled","tooltip","UserSetting","renderControl","ConfirmationDialog","IndexingProgressBar","getProgressPercentage","copyWarningsToClipboard","warnings","warningsText","IndexingProgressErrorText","showWarnings","setShowWarnings","XCircleIcon","STATUS_TO_ICON","IndexingProgressIndicator","animateIcon","showProgress","STATUS_TO_SUBTITLE_TEXT","IndexingProgressSubtext","showIndexingDesc","STATUS_TO_TEXT","IndexingProgressTitleText","showEllipsis","progress","IndexingProgress","paused","setPaused","setUpdate","onClickRetry","DocsDetailsDialog","setIsError","fetchData","comp","contentToolTipId","urlToolTipId","removePrefix","IndexedPagesTooltip","pages","siteTitle","baseUrl","handleEyeIconClick","page","STATUS_TO_COLOR","StatusIndicator","hoverMessage","DocsIndexingStatus","docFromYaml","editDoc","indexedPages","setIndexedPages","showTooltip","setShowTooltip","isComplete","reIndex","hasDeleted","setHasDeleted","getPagesList","showPagesList","startUrlSlug","DocsIndexingStatuses","mergedDocs","sortedConfigDocs","sorter","statusA","statusB","statusCompare","hasIconA","hasIconB","DocsSection","handleAddDocs","CodebaseSubSection","EnableIndexingSetting","handleUpdate","updatedConfig","disableIndexingToggle","IndexingSettingsSection","DEFAULT_SIZE","sizeMap","InfoHover","ModelRoleSelector","onSelect","setupURL","hideTitle","noConfiguredModels","handleSelect","isConfigInvalid","invalidMessage","ModelRoleRow","onConfigure","ModelsSection","showAdditionalRoles","setShowAdditionalRoles","handleRoleUpdate","handleConfigureModel","handleAddModel","OrganizationsSection","handleAddOrganization","handleConfigureOrganization","DropdownButton","onOptionClick","AddRuleDialog","setName","isSubmitting","setIsSubmitting","PromptRow","setIsBookmarked","onEdit","handlePromptClick","handleBookmarkClick","handleEditClick","canEdit","BookmarkSolid","BookmarkOutline","RuleCard","handleTogglePolicy","onClickExpand","canDeleteRule","Switch","PromptsSubSection","toggleBookmark","isLocal","handleEdit","handleAddPrompt","sortedCommands","promptsWithSlug","parsedPrompts","commandWithSlug","yamlPrompt","aBookmarked","bBookmarked","addDefaultSystemMessage","currentMode","globalRulesOptions","RulesSubSection","globalRulesMode","setGlobalRulesMode","handleAddRule","sortedRules","parsedRules","yamlRule","RulesSection","ToolPolicyItem","disabledTooltipId","newPolicy","ToolPoliciesGroup","showIcon","groupName","allToolsOff","duplicateDetection","toolGroupSettings","toolSettings","isGroupEnabled","enabledCount","badgeText","ServerStatusTooltip","ServerStatusColor","MCPServerPreview","server","serverFromYaml","expandedSections","setExpandedSections","updateMCPServerStatus","onAuthenticate","onRemoveAuth","onDisconnect","toggleSection","ResourceRow","sectionKey","hasItems","StopCircleIcon","infoIndex","ToolsSection","servers","disableMcp","mergedBlocks","yamlServersByName","handleAddMcpServer","availableToolsMessage","blockFromYaml","ContinueFeaturesMenu","enableStaticContextualization","handleEnableStaticContextualizationToggle","UserSettingsSection","showExperimental","setShowExperimental","disableAutocompleteInFiles","formDisableAutocomplete","setFormDisableAutocomplete","codeWrap","readResponseTTS","displayRawMarkdown","disableSessionTitles","enableExperimentalTools","onlyUseSystemMessageTools","codebaseToolCallingOnly","useAutocompleteMultilineCompletions","modelTimeout","debounceDelay","cancelChangeDisableAutocomplete","handleDisableAutocompleteSubmit","disableTelemetryToggle","topTabSections","bottomTabSections","getAllTabs","AccountDropdown","UserCircleIconSolid","UserCircleIconOutline","ConfigPage","allTabs","ErrorPage","openUrl","initialLoad","setInitialLoad","shareSessionSupported","HistoryTableRow","sessionMetadata","hovered","editing","setEditing","sessionTitleEditValue","setSessionTitleEditValue","shareSession","remoteSession","titleInput","parseDate","dateObj","groupSessionsByDate","sessions","yesterday","lastWeek","lastMonth","todaySessions","weekSessions","monthSessions","olderSessions","searchInputRef","setSearchTerm","allSessionMetadata","isSessionMetadataLoading","filteredAndSortedSessions","exactResults","fuzzyResults","prefixResults","allResults","uniqueResultsMap","sessionIds","sessionGroups","showClearSessionsDialog","groupIndex","sessionIndex","GUI","PageHeader","onTitleClick","showBorder","HistoryPage","ansiRegex","onlyFirst","stripAnsi","isFullwidthCodePoint","isFullwidthCodePointModule","stringWidth","stringWidthModule","astralRegex_1","cssKeywords","reverseKeywords","conversions","rdif","gdif","bdif","diffc","comparativeDistance","reversed","currentClosestDistance","currentClosestKeyword","xyz","t3","smin","lmin","hsv","vmin","hwb","wh","cmyk","lab","z2","lch","saturation","ansi","colorString","chroma","grayscale","hcg","pure","apple","gray","buildGraph","deriveBFS","fromModel","queue","adjacents","wrapConversion","toModel","conversion","wrapRaw","wrappedFn","wrapRounded","colorConvert","wrapAnsi16","wrapAnsi256","wrapAnsi16m","ansi2ansi","rgb2rgb","setLazyProperty","makeDynamicStyles","targetSpace","isBackground","sourceSpace","suite","assembleStyles","codes","styleName","astralRegex","ansiStyles","ESCAPES","wrapAnsi","checkAnsi","ansiCodes","isEscapes","endAnsiCode","ansiCode","ansiCodeOrigin","indexEscape","fistEscapeCode","sliceAnsi","stringEnd","isInsideEscape","visible","leftEscape","getBorderCharacters_1","getBorderCharacters","slice_ansi_1","string_width_1","strip_ansi_1","splitAnsi","lengths","makeBorderConfig","groupBySizes","sizes","countSpaceSequence","distributeUnevenly","sumArray","extractTruncates","calculateRangeCoordinate","spanningCellConfig","colSpan","rowSpan","areCellEqual","cell1","cell2","isCellInRange","topLeft","bottomRight","alignString_1","utils_1","alignLeft","alignRight","alignCenter","alignJustify","spaceSequenceCount","addingSpaces","spaceSequenceIndex","groupSpace","alignString","containerWidth","subjectWidth","alignTableData_1","alignTableData","rowIndex","wrapString_1","wrapString","subjectSlice","wrapWord_1","calculateStringLengths","trimmedLength","wrapWord","wrapCell_1","wrapCell","cellValue","cellWidth","useWrapWord","cellLines","lineNr","lineChunks","calculateCellHeight_1","calculateCellHeight","columnWidth","calculateRowHeights_1","calculateRowHeights","rowHeights","containingRange","cellHeight","totalOccupiedSpanningCellHeight","totalHorizontalBorderHeight","totalHiddenHorizontalBorderHeight","horizontalBorderIndex","drawContent_1","drawContent","separatorGetter","drawSeparator","spanningCellManager","elementType","contentSize","contentIndex","currentCell","drawBorderSegments","columnWidths","columnIndex","normalSegment","createSeparatorGetter","rowCount","verticalBorderIndex","columnCount","inSameRange","topCell","leftCell","oppositeCell","sameRangeCount","drawBorder","borderSegments","drawVerticalLine","drawBorderTop","drawBorderJoin","drawBorderBottom","createTableBorderGetter","drawBorderParameters","drawRow_1","drawRow","fastDeepEqual","equal_1","validate43","schema13","schema15","func8","validate46","instancePath","parentData","parentDataProperty","rootData","vErrors","err0","validate45","key0","err1","schema17","validate68","pattern0","validate72","schema21","validate74","validate71","data2","err2","err3","data4","err4","data5","err5","data6","err6","err7","validate70","_errs0","valid0","passing0","_errs1","key1","_valid0","_errs5","len0","validate79","validate84","data1","data7","err8","err9","err10","err11","data13","data14","err12","err13","key2","err14","data15","err15","err16","data16","err17","err18","data17","err19","err20","data18","err21","err22","err23","data22","err24","data23","err25","data24","err26","err27","err28","err29","validate86","validate87","validate109","validate113","data3","validateConfig_1","validators_1","validateConfig","schemaId","makeStreamConfig_1","makeColumnsConfig","columns","columnDefault","makeStreamConfig","createEmptyStrings","padCellVertically","verticalAlignment","availableLines","mapDataUsingRowHeights","unmappedRows","nColumns","mappedRows","unmappedRow","unmappedRowIndex","outputRowHeight","outputRow","cellLine","cellLineIndex","padString","paddingLeft","paddingRight","padTableData","stringifyTableData_1","stringifyTableData","reTrim","lodash_truncate_1","truncateString","truncateTableData","truncates","createStream_1","drawBorder_1","mapDataUsingRowHeights_1","padTableData_1","truncateTableData_1","prepareData","literalRow","createStream","calculateOutputColumnWidths_1","calculateOutputColumnWidths","drawTable_1","drawTable","outputColumnWidths","drawHorizontalLine","singleLine","injectHeaderConfig_1","injectHeaderConfig","headerConfig","adjustedRows","headerStyles","calculateMaximumCellWidth","calculateMaximumColumnWidths","spanningCellConfigs","rangeCoordinates","isSpanningCell","rangeCoordinate","alignSpanningCell","wrapRangeContent","rangeConfig","rangeWidth","originalContent","contentWidth","alignedLine","alignVerticalRangeContent","totalCellHeight","totalBorderHeight","hiddenHorizontalBorderCount","availableRangeHeight","calculateSpanningCellWidth_1","calculateSpanningCellWidth","columnsConfig","totalPadding","totalBorderWidths","totalHiddenVerticalBorders","makeRangeConfig_1","makeRangeConfig","alignSpanningCell_1","findRangeConfig","rangeConfigs","getContainingRange","wrappedContent","alignedContent","borderIndex","totalWithinHorizontalBorderHeight","range1","range2","hashRange","createSpanningCellManager","rangeCache","rowIndexMapping","originalRow","_rowHeights","mappedRowHeights","validateSpanningCellConfig_1","validateSpanningCellConfig","configs","nRow","nCol","configIndex","rangeIndex","configOccupy","makeTableConfig_1","calculateMaximumColumnWidths_1","spanningCellManager_1","makeTableConfig","injectedSpanningCellConfig","validateTableData_1","validateTableData","columnNumber","injectedRows","api","Th","Td","generateTable","Stats","days","setDays","setModels","ThemeTailwindClassExample","varNames","isMissing","ThemePage","listToggled","setListToggled","missingVars","setMissingVars","refreshColors","notFound","App","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","DEFAULT_VERSION","ownKeys","enumerableOnly","sym","_objectSpread","autoMergeLevel1","inboundState","originalState","reducedState","createPersistoid","whitelist","storageKey","storage","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","passWhitelistBlacklist","processNextKey","endState","subState","writeStagedState","onWriteFail","getStoredState","defaultDeserialize","rawState","serial","purgeStoredState","warnIfRemoveError","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","DEFAULT_TIMEOUT","persistReducer","baseReducer","stateReconciler","defaultGetStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","restState","_sealed","_rehydrate","restoredState","migrate","migratedState","migrateErr","reconciledRest","_newState","autoMergeLevel2","isPlainEnoughObject","persistCombineReducers","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","persistorReducer","firstIndex","persistStore","boostrappedCb","_pStore","rehydrate","rehydrateAction","purgeResult","flushResult","createMigrate","migrations","currentVersion","inboundVersion","migrationKeys","ver","versionKey","createTransform","inbound","outbound","whitelistBlacklistCheck","fullState","isArray_1","_freeGlobal","_Symbol","_getRawTag","_objectToString","_baseGetTag","isObjectLike_1","isSymbol_1","_isKey","isFunction_1","_coreJsData","_isMasked","_toSource","_baseIsNative","_getValue","_getNative","_nativeCreate","_hashClear","_hashDelete","_hashGet","_hashHas","_hashSet","_Hash","_listCacheClear","eq_1","_assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheHas","_listCacheSet","_ListCache","_Map","_mapCacheClear","_isKeyable","_getMapData","_mapCacheDelete","_mapCacheGet","_mapCacheHas","_mapCacheSet","_MapCache","memoize_1","_memoizeCapped","_stringToPath","_arrayMap","_baseToString","toString_1","_castPath","_toKey","_baseGet","get_1","_baseAssignValue","_assignValue","_isIndex","_baseSet","set_1","last_1","_baseSlice","_baseUnset","unset_1","_stackClear","_stackDelete","_stackGet","_stackHas","_stackSet","_Stack","_setCacheAdd","_setCacheHas","_SetCache","_arraySome","_cacheHas","_equalArrays","_Uint8Array","_mapToArray","_setToArray","_equalByTag","_arrayPush","_baseGetAllKeys","_arrayFilter","stubArray_1","_getSymbols","_baseTimes","_baseIsArguments","isArguments_1","stubFalse_1","isLength_1","_baseIsTypedArray","_baseUnary","isTypedArray_1","_arrayLikeKeys","_isPrototype","_overArg","_nativeKeys","_baseKeys","isArrayLike_1","keys_1","_getAllKeys","_equalObjects","_DataView","_Promise","_Set","_WeakMap","_getTag","_baseIsEqualDeep","_baseIsEqual","_baseIsMatch","_isStrictComparable","_getMatchData","_matchesStrictComparable","_baseMatches","_baseHasIn","_hasPath","hasIn_1","_baseMatchesProperty","identity_1","_baseProperty","_basePropertyDeep","property_1","_baseIteratee","_basePickBy","_getPrototype","_getSymbolsIn","_nativeKeysIn","_baseKeysIn","keysIn_1","_getAllKeysIn","pickBy_1","isEmpty_1","_createBaseFor","_baseFor","_castFunction","forIn_1","_arrayEach","_copyObject","_baseAssign","_baseAssignIn","_copyArray","_copySymbols","_copySymbolsIn","_initCloneArray","_cloneArrayBuffer","_cloneDataView","_cloneRegExp","_cloneSymbol","_cloneTypedArray","_initCloneByTag","_baseCreate","_initCloneObject","_baseIsMap","isMap_1","_baseIsSet","isSet_1","_baseClone","cloneDeep_1","createFilter","createWhitelistFilter","createBlacklistFilter","persistFilter","_reduxPersist","_get","_get2","_interopRequireDefault","_set","_set2","_unset","_unset2","_pickBy","_pickBy2","_isEmpty","_isEmpty2","_forIn","_forIn2","_cloneDeep","_cloneDeep2","inboundPaths","outboundPaths","transformType","outboundState","filterObject","_ref$filterFunction","filterFunction","_value2","autoMergeLevel2_1","getStorage_1","getStorage","noopStorage","hasStorage","storageType","testKey","createWebStorage_1","createWebStorage","_getStorage","_createWebStorage","saveSubsetFilters","persistConfig","persistedReducer","setupStore","createLogger"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31,40,41,42,43,44,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,192,193,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,524,525,526,527,528,529,531,532,533,534,535,536,537,538,539,540,541,552,553,554,555,556,557,558,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,666,668,671,672,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,750,751,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1298,1299,1300,1333,1335,1363,1364,1365,1366,1367,1368,1369,1370,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1572,1573,1575,1576,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1609,1654,1655,1656,1657,1658,1659,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1790,1791,1792,1793,1794,1795,1796,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066],"sources":["../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/react-redux/es/utils/batch.js","../../node_modules/react-redux/es/components/Context.js","../../node_modules/react-redux/es/hooks/useReduxContext.js","../../node_modules/react-redux/es/utils/useSyncExternalStore.js","../../node_modules/react-redux/es/hooks/useSelector.js","../../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-redux/node_modules/react-is/index.js","../../node_modules/react-redux/es/utils/Subscription.js","../../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../../node_modules/react-redux/es/components/Provider.js","../../node_modules/react-redux/es/hooks/useStore.js","../../node_modules/react-redux/es/hooks/useDispatch.js","../../node_modules/react-redux/es/index.js","../../node_modules/redux-persist/es/integration/react.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../../core/protocol/core.ts","../../node_modules/react-is/cjs/react-is.production.js","../../node_modules/react-is/index.js","../../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../node_modules/styled-components/dist/styled-components.browser.esm.js","../../src/styles/theme.ts","../../src/components/index.ts","../../../core/protocol/messenger/messageIde.ts","../../src/util/localStorage.ts","../../src/util/index.ts","../../src/context/IdeMessenger.tsx","../../src/hooks/useWebviewListener.ts","../../src/redux/hooks.ts","../../node_modules/redux/dist/redux.mjs","../../node_modules/immer/dist/immer.mjs","../../node_modules/reselect/dist/reselect.mjs","../../node_modules/redux-thunk/dist/redux-thunk.mjs","../../node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.mjs","../../../core/llm/constants.ts","../../src/redux/slices/configSlice.ts","../../src/redux/slices/profilesSlice.ts","../../src/context/Auth.tsx","../../src/context/LocalStorage.tsx","../../node_modules/@sentry/core/build/esm/debug-build.js","../../node_modules/@sentry/core/build/esm/utils/worldwide.js","../../node_modules/@sentry/core/build/esm/utils/version.js","../../node_modules/@sentry/core/build/esm/carrier.js","../../node_modules/@sentry/core/build/esm/utils/debug-logger.js","../../node_modules/@sentry/core/build/esm/utils/stacktrace.js","../../node_modules/@sentry/core/build/esm/instrument/handlers.js","../../node_modules/@sentry/core/build/esm/instrument/globalError.js","../../node_modules/@sentry/core/build/esm/instrument/globalUnhandledRejection.js","../../node_modules/@sentry/core/build/esm/utils/is.js","../../node_modules/@sentry/core/build/esm/utils/browser.js","../../node_modules/@sentry/core/build/esm/utils/string.js","../../node_modules/@sentry/core/build/esm/utils/object.js","../../node_modules/@sentry/core/build/esm/utils/misc.js","../../node_modules/@sentry/core/build/esm/utils/time.js","../../node_modules/@sentry/core/build/esm/session.js","../../node_modules/@sentry/core/build/esm/utils/merge.js","../../node_modules/@sentry/core/build/esm/utils/propagationContext.js","../../node_modules/@sentry/core/build/esm/utils/spanOnScope.js","../../node_modules/@sentry/core/build/esm/scope.js","../../node_modules/@sentry/core/build/esm/defaultScopes.js","../../node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","../../node_modules/@sentry/core/build/esm/asyncContext/index.js","../../node_modules/@sentry/core/build/esm/currentScopes.js","../../node_modules/@sentry/core/build/esm/semanticAttributes.js","../../node_modules/@sentry/core/build/esm/tracing/spanstatus.js","../../node_modules/@sentry/core/build/esm/tracing/utils.js","../../node_modules/@sentry/core/build/esm/utils/baggage.js","../../node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","../../node_modules/@sentry/core/build/esm/utils/tracing.js","../../node_modules/@sentry/core/build/esm/utils/spanUtils.js","../../node_modules/@sentry/core/build/esm/tracing/errors.js","../../node_modules/@sentry/core/build/esm/utils/hasSpansEnabled.js","../../node_modules/@sentry/core/build/esm/constants.js","../../node_modules/@sentry/core/build/esm/utils/dsn.js","../../node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","../../node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","../../node_modules/@sentry/core/build/esm/utils/normalize.js","../../node_modules/@sentry/core/build/esm/utils/envelope.js","../../node_modules/@sentry/core/build/esm/envelope.js","../../node_modules/@sentry/core/build/esm/tracing/logSpans.js","../../node_modules/@sentry/core/build/esm/tracing/measurement.js","../../node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","../../node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js","../../node_modules/@sentry/core/build/esm/tracing/sampling.js","../../node_modules/@sentry/core/build/esm/tracing/trace.js","../../node_modules/@sentry/core/build/esm/tracing/idleSpan.js","../../node_modules/@sentry/core/build/esm/utils/syncpromise.js","../../node_modules/@sentry/core/build/esm/eventProcessors.js","../../node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","../../node_modules/@sentry/core/build/esm/utils/debug-ids.js","../../node_modules/@sentry/core/build/esm/utils/prepareEvent.js","../../node_modules/@sentry/core/build/esm/exports.js","../../node_modules/@sentry/core/build/esm/api.js","../../node_modules/@sentry/core/build/esm/integration.js","../../node_modules/@sentry/core/build/esm/utils/clientreport.js","../../node_modules/@sentry/core/build/esm/utils/eventUtils.js","../../node_modules/@sentry/core/build/esm/utils/transactionEvent.js","../../node_modules/@sentry/core/build/esm/client.js","../../node_modules/@sentry/core/build/esm/logs/envelope.js","../../node_modules/@sentry/core/build/esm/logs/exports.js","../../node_modules/@sentry/core/build/esm/sdk.js","../../node_modules/@sentry/core/build/esm/utils/promisebuffer.js","../../node_modules/@sentry/core/build/esm/utils/ratelimit.js","../../node_modules/@sentry/core/build/esm/transports/base.js","../../node_modules/@sentry/core/build/esm/utils/ipAddress.js","../../node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","../../node_modules/@sentry/core/build/esm/utils/traceData.js","../../node_modules/@sentry/core/build/esm/breadcrumbs.js","../../node_modules/@sentry/core/build/esm/integrations/functiontostring.js","../../node_modules/@sentry/core/build/esm/integrations/eventFilters.js","../../node_modules/@sentry/core/build/esm/utils/aggregate-errors.js","../../node_modules/@sentry/core/build/esm/instrument/console.js","../../node_modules/@sentry/core/build/esm/utils/severity.js","../../node_modules/@sentry/core/build/esm/integrations/dedupe.js","../../node_modules/@sentry/core/build/esm/utils/url.js","../../node_modules/@sentry/core/build/esm/fetch.js","../../node_modules/@sentry/core/build/esm/utils/breadcrumb-log-level.js","../../node_modules/@sentry/core/build/esm/utils/supports.js","../../node_modules/@sentry/core/build/esm/instrument/fetch.js","../../node_modules/@sentry/core/build/esm/utils/env.js","../../node_modules/@sentry/browser/build/npm/esm/helpers.js","../../node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","../../node_modules/@sentry/browser/build/npm/esm/client.js","../../node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","../../node_modules/@sentry-internal/browser-utils/build/esm/types.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initUnique.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/LayoutShiftManager.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/InteractionManager.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenIdleOrHidden.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/LCPEntryManager.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/lcp.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/elementTiming.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","../../node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","../../node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","../../node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","../../node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","../../node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","../../node_modules/@sentry/browser/build/npm/esm/debug-build.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/browsersession.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","../../node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","../../node_modules/@sentry/browser/build/npm/esm/utils/detectBrowserExtension.js","../../node_modules/@sentry/browser/build/npm/esm/sdk.js","../../node_modules/@sentry/browser/build/npm/esm/report-dialog.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/resource-timing.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/request.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/backgroundtab.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/linkedTraces.js","../../node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","../../node_modules/@sentry/react/build/esm/sdk.js","../../node_modules/@sentry/react/build/esm/error.js","../../node_modules/@sentry/react/build/esm/debug-build.js","../../node_modules/@sentry/react/build/esm/errorboundary.js","../../../core/util/sentry/anonymization.ts","../../../core/util/sentry/constants.ts","../../node_modules/posthog-js/dist/module.js","../../node_modules/posthog-js/react/dist/esm/index.js","../../src/util/isContinueTeamMember.ts","../../src/hooks/TelemetryProviders.tsx","../../../core/edit/constants.ts","../../src/redux/slices/editState.ts","../../../core/tools/builtIn.ts","../../src/components/OnboardingCard/hooks/useOnboardingCard.ts","../../src/components/OnboardingCard/hooks/useSubmitOnboarding.ts","../../node_modules/@heroicons/react/24/outline/esm/AcademicCapIcon.js","../../node_modules/@heroicons/react/24/outline/esm/AdjustmentsHorizontalIcon.js","../../node_modules/@heroicons/react/24/outline/esm/AdjustmentsVerticalIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArchiveBoxArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArchiveBoxXMarkIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArchiveBoxIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownOnSquareStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownOnSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownTrayIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLeftCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLeftEndOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLeftOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLeftStartOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLongDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLongLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLongRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowLongUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowPathRoundedSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowPathIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowRightCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowRightEndOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowRightOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowRightStartOnRectangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowSmallDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowSmallLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowSmallRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowSmallUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTopRightOnSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTrendingDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTrendingUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnDownLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnDownRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnLeftDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnLeftUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnRightDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnRightUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnUpLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowTurnUpRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpOnSquareStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpOnSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpTrayIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUturnDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUturnLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUturnRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowUturnUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowsPointingInIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowsPointingOutIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ArrowsUpDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/AtSymbolIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BackspaceIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BackwardIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BanknotesIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars2Icon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars3BottomLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars3BottomRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars3CenterLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js","../../node_modules/@heroicons/react/24/outline/esm/Bars4Icon.js","../../node_modules/@heroicons/react/24/outline/esm/BarsArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BarsArrowUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Battery0Icon.js","../../node_modules/@heroicons/react/24/outline/esm/Battery100Icon.js","../../node_modules/@heroicons/react/24/outline/esm/Battery50Icon.js","../../node_modules/@heroicons/react/24/outline/esm/BeakerIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BellAlertIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BellSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BellSnoozeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BellIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BoldIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BoltSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BoltIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BookmarkSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BookmarkSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BookmarkIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BriefcaseIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BugAntIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BuildingLibraryIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BuildingOffice2Icon.js","../../node_modules/@heroicons/react/24/outline/esm/BuildingOfficeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/BuildingStorefrontIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CakeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CalculatorIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CalendarDateRangeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CalendarDaysIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CalendarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CameraIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChartBarSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChartBarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChartPieIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleBottomCenterTextIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleBottomCenterIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleLeftEllipsisIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleLeftRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleOvalLeftEllipsisIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChatBubbleOvalLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CheckBadgeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CheckCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronDoubleDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronDoubleLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronDoubleRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronDoubleUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronUpDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ChevronUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CircleStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ClipboardDocumentCheckIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ClipboardDocumentListIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ClipboardDocumentIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ClipboardIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CloudArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CloudArrowUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CloudIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CodeBracketSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CodeBracketIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Cog6ToothIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Cog8ToothIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CogIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CommandLineIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ComputerDesktopIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CpuChipIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CreditCardIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CubeTransparentIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CubeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyBangladeshiIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyDollarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyEuroIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyPoundIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyRupeeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CurrencyYenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CursorArrowRaysIcon.js","../../node_modules/@heroicons/react/24/outline/esm/CursorArrowRippleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DevicePhoneMobileIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DeviceTabletIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DivideIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentArrowUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentChartBarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCheckIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyBangladeshiIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyDollarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyEuroIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyPoundIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyRupeeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentCurrencyYenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentMagnifyingGlassIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentMinusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentPlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentTextIcon.js","../../node_modules/@heroicons/react/24/outline/esm/DocumentIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EllipsisHorizontalCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EllipsisVerticalIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EnvelopeOpenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EnvelopeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EqualsIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ExclamationCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ExclamationTriangleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EyeDropperIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EyeSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/EyeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FaceFrownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FaceSmileIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FilmIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FingerPrintIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FireIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FlagIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FolderArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FolderMinusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FolderOpenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FolderPlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FolderIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ForwardIcon.js","../../node_modules/@heroicons/react/24/outline/esm/FunnelIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GifIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GiftTopIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GiftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GlobeAltIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GlobeAmericasIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GlobeAsiaAustraliaIcon.js","../../node_modules/@heroicons/react/24/outline/esm/GlobeEuropeAfricaIcon.js","../../node_modules/@heroicons/react/24/outline/esm/H1Icon.js","../../node_modules/@heroicons/react/24/outline/esm/H2Icon.js","../../node_modules/@heroicons/react/24/outline/esm/H3Icon.js","../../node_modules/@heroicons/react/24/outline/esm/HandRaisedIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HandThumbDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HandThumbUpIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HashtagIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HeartIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HomeModernIcon.js","../../node_modules/@heroicons/react/24/outline/esm/HomeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/IdentificationIcon.js","../../node_modules/@heroicons/react/24/outline/esm/InboxArrowDownIcon.js","../../node_modules/@heroicons/react/24/outline/esm/InboxStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/InboxIcon.js","../../node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ItalicIcon.js","../../node_modules/@heroicons/react/24/outline/esm/KeyIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LanguageIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LifebuoyIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LightBulbIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LinkSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LinkIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ListBulletIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LockClosedIcon.js","../../node_modules/@heroicons/react/24/outline/esm/LockOpenIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassMinusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassPlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MapIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MegaphoneIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MicrophoneIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MinusCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MinusSmallIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MinusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MoonIcon.js","../../node_modules/@heroicons/react/24/outline/esm/MusicalNoteIcon.js","../../node_modules/@heroicons/react/24/outline/esm/NewspaperIcon.js","../../node_modules/@heroicons/react/24/outline/esm/NoSymbolIcon.js","../../node_modules/@heroicons/react/24/outline/esm/NumberedListIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PaintBrushIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PaperAirplaneIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PaperClipIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PauseCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PauseIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PencilSquareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PencilIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PercentBadgeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PhoneArrowDownLeftIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PhoneArrowUpRightIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PhoneXMarkIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PhoneIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PhotoIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlayCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlayPauseIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlayIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlusCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlusSmallIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PowerIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PresentationChartBarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PresentationChartLineIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PrinterIcon.js","../../node_modules/@heroicons/react/24/outline/esm/PuzzlePieceIcon.js","../../node_modules/@heroicons/react/24/outline/esm/QrCodeIcon.js","../../node_modules/@heroicons/react/24/outline/esm/QuestionMarkCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/QueueListIcon.js","../../node_modules/@heroicons/react/24/outline/esm/RadioIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ReceiptPercentIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ReceiptRefundIcon.js","../../node_modules/@heroicons/react/24/outline/esm/RectangleGroupIcon.js","../../node_modules/@heroicons/react/24/outline/esm/RectangleStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/RocketLaunchIcon.js","../../node_modules/@heroicons/react/24/outline/esm/RssIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ScaleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ScissorsIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ServerStackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ServerIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ShareIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ShieldExclamationIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ShoppingBagIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ShoppingCartIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SignalSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SignalIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SparklesIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SpeakerWaveIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SpeakerXMarkIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Square2StackIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Square3Stack3DIcon.js","../../node_modules/@heroicons/react/24/outline/esm/Squares2X2Icon.js","../../node_modules/@heroicons/react/24/outline/esm/SquaresPlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/StarIcon.js","../../node_modules/@heroicons/react/24/outline/esm/StopIcon.js","../../node_modules/@heroicons/react/24/outline/esm/StrikethroughIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SunIcon.js","../../node_modules/@heroicons/react/24/outline/esm/SwatchIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TableCellsIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TicketIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TrashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TrophyIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TruckIcon.js","../../node_modules/@heroicons/react/24/outline/esm/TvIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UnderlineIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UserCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UserGroupIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UserMinusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UserPlusIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UserIcon.js","../../node_modules/@heroicons/react/24/outline/esm/UsersIcon.js","../../node_modules/@heroicons/react/24/outline/esm/VariableIcon.js","../../node_modules/@heroicons/react/24/outline/esm/VideoCameraSlashIcon.js","../../node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ViewColumnsIcon.js","../../node_modules/@heroicons/react/24/outline/esm/ViewfinderCircleIcon.js","../../node_modules/@heroicons/react/24/outline/esm/WalletIcon.js","../../node_modules/@heroicons/react/24/outline/esm/WifiIcon.js","../../node_modules/@heroicons/react/24/outline/esm/WindowIcon.js","../../node_modules/@heroicons/react/24/outline/esm/WrenchScrewdriverIcon.js","../../node_modules/@heroicons/react/24/outline/esm/WrenchIcon.js","../../node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js","../../src/components/ReusableCard.tsx","../../src/components/svg/OllamaLogo.tsx","../../src/components/OnboardingCard/components/OnboardingCardTabs.tsx","../../../core/config/onboarding.ts","../../src/redux/thunks/updateSelectedModelByRole.ts","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/classnames/index.js","../../node_modules/react-tooltip/dist/react-tooltip.min.mjs","../../src/components/gui/Tooltip.tsx","../../node_modules/@heroicons/react/24/solid/esm/ArrowPathIcon.js","../../node_modules/@heroicons/react/24/solid/esm/BookmarkIcon.js","../../node_modules/@heroicons/react/24/solid/esm/BuildingOfficeIcon.js","../../node_modules/@heroicons/react/24/solid/esm/CheckCircleIcon.js","../../node_modules/@heroicons/react/24/solid/esm/ChevronDownIcon.js","../../node_modules/@heroicons/react/24/solid/esm/ChevronUpIcon.js","../../node_modules/@heroicons/react/24/solid/esm/EyeIcon.js","../../node_modules/@heroicons/react/24/solid/esm/LightBulbIcon.js","../../node_modules/@heroicons/react/24/solid/esm/UserCircleIcon.js","../../node_modules/@heroicons/react/24/solid/esm/UserIcon.js","../../node_modules/@heroicons/react/24/solid/esm/XMarkIcon.js","../../src/components/OnboardingCard/components/OllamaCompletedStep.tsx","../../src/components/OnboardingCard/components/OllamaModelDownload.tsx","../../src/components/modelSelection/utils.ts","../../src/pages/AddNewModel/configs/completionParamsInputs.ts","../../src/pages/AddNewModel/configs/models.ts","../../src/pages/AddNewModel/configs/openRouterModel.ts","../../src/pages/AddNewModel/configs/providers.ts","../../src/components/OnboardingCard/utils.ts","../../src/components/OnboardingCard/components/OllamaStatus.tsx","../../src/components/OnboardingCard/components/OnboardingLocalTab.tsx","../../node_modules/react-hook-form/dist/index.esm.mjs","../../node_modules/@heroicons/react/16/solid/esm/CheckCircleIcon.js","../../node_modules/@heroicons/react/16/solid/esm/ExclamationCircleIcon.js","../../node_modules/@heroicons/react/16/solid/esm/ExclamationTriangleIcon.js","../../node_modules/@heroicons/react/16/solid/esm/InformationCircleIcon.js","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../src/util/cn.ts","../../src/components/gui/Alert.tsx","../../src/components/ui/Button.tsx","../../src/components/ui/Card.tsx","../../src/components/ui/Divider.tsx","../../src/components/ui/EmptyState.tsx","../../src/components/ui/font.ts","../../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","../../node_modules/@react-aria/utils/dist/useEffectEvent.mjs","../../node_modules/@react-aria/utils/dist/domHelpers.mjs","../../node_modules/@react-stately/flags/dist/import.mjs","../../node_modules/@react-aria/utils/dist/DOMFunctions.mjs","../../node_modules/@react-aria/utils/dist/platform.mjs","../../node_modules/@react-aria/utils/dist/useGlobalListeners.mjs","../../node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","../../node_modules/@react-aria/interactions/dist/utils.mjs","../../node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","../../node_modules/@react-aria/interactions/dist/useFocus.mjs","../../node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","../../node_modules/@react-aria/interactions/dist/useHover.mjs","../../node_modules/@react-aria/focus/dist/useFocusRing.mjs","../../node_modules/@headlessui/react/dist/utils/env.js","../../node_modules/@headlessui/react/dist/utils/owner.js","../../node_modules/@headlessui/react/dist/utils/micro-task.js","../../node_modules/@headlessui/react/dist/utils/disposables.js","../../node_modules/@headlessui/react/dist/hooks/use-disposables.js","../../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../../node_modules/@headlessui/react/dist/hooks/use-latest-value.js","../../node_modules/@headlessui/react/dist/hooks/use-event.js","../../node_modules/@headlessui/react/dist/hooks/use-active-press.js","../../node_modules/@headlessui/react/dist/internal/disabled.js","../../node_modules/@headlessui/react/dist/utils/class-names.js","../../node_modules/@headlessui/react/dist/utils/match.js","../../node_modules/@headlessui/react/dist/utils/render.js","../../node_modules/@headlessui/react/dist/hooks/use-controllable.js","../../node_modules/@headlessui/react/dist/hooks/use-default-value.js","../../node_modules/@headlessui/react/dist/utils/form.js","../../node_modules/@headlessui/react/dist/internal/hidden.js","../../node_modules/@headlessui/react/dist/internal/form-fields.js","../../node_modules/@headlessui/react/dist/internal/id.js","../../node_modules/@headlessui/react/dist/utils/dom.js","../../node_modules/@headlessui/react/dist/utils/bugs.js","../../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../../node_modules/@headlessui/react/dist/components/description/description.js","../../node_modules/@headlessui/react/dist/components/keyboard.js","../../node_modules/@headlessui/react/dist/components/label/label.js","../../node_modules/@headlessui/react/dist/hooks/use-by-comparator.js","../../node_modules/@headlessui/react/dist/hooks/use-element-size.js","../../node_modules/@headlessui/react/dist/utils/default-map.js","../../node_modules/@headlessui/react/dist/machine.js","../../node_modules/@headlessui/react/dist/machines/stack-machine.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../../node_modules/use-sync-external-store/with-selector.js","../../node_modules/@headlessui/react/dist/react-glue.js","../../node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js","../../node_modules/@headlessui/react/dist/hooks/use-inert-others.js","../../node_modules/@headlessui/react/dist/hooks/use-on-disappear.js","../../node_modules/@headlessui/react/dist/utils/focus-management.js","../../node_modules/@headlessui/react/dist/utils/platform.js","../../node_modules/@headlessui/react/dist/hooks/use-document-event.js","../../node_modules/@headlessui/react/dist/hooks/use-window-event.js","../../node_modules/@headlessui/react/dist/hooks/use-outside-click.js","../../node_modules/@headlessui/react/dist/hooks/use-owner.js","../../node_modules/@headlessui/react/dist/hooks/use-quick-release.js","../../node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","../../node_modules/@headlessui/react/dist/hooks/use-store.js","../../node_modules/@headlessui/react/dist/utils/store.js","../../node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","../../node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","../../node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","../../node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","../../node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","../../node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js","../../node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js","../../node_modules/@headlessui/react/dist/hooks/use-flags.js","../../node_modules/@headlessui/react/dist/hooks/use-transition.js","../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../node_modules/@headlessui/react/dist/internal/floating.js","../../node_modules/@headlessui/react/dist/internal/frozen.js","../../node_modules/@headlessui/react/dist/internal/open-closed.js","../../node_modules/@headlessui/react/dist/utils/calculate-active-index.js","../../node_modules/@headlessui/react/dist/components/mouse.js","../../node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","../../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","../../node_modules/@headlessui/react/dist/internal/portal-force-root.js","../../node_modules/@headlessui/react/dist/components/portal/portal.js","../../node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","../../node_modules/@headlessui/react/dist/components/transition/transition.js","../../node_modules/@headlessui/react/dist/hooks/use-did-element-move.js","../../node_modules/@headlessui/react/dist/utils/get-text-value.js","../../node_modules/@headlessui/react/dist/hooks/use-text-value.js","../../node_modules/@headlessui/react/dist/components/listbox/listbox-machine.js","../../node_modules/@headlessui/react/dist/components/listbox/listbox-machine-glue.js","../../node_modules/@headlessui/react/dist/components/listbox/listbox.js","../../src/components/ui/Listbox.tsx","../../src/components/ui/Toggle.tsx","../../src/components/ui/Transition.tsx","../../src/components/modelSelection/ModelSelectionListbox.tsx","../../src/forms/AddModelForm.tsx","../../src/components/OnboardingCard/components/OnboardingProvidersTab.tsx","../../src/components/OnboardingCard/OnboardingCard.tsx","../../src/redux/slices/uiSlice.ts","../../../core/util/messageContent.ts","../../../core/llm/openaiTypeConverters.ts","../../../core/util/constants.ts","../../../core/node_modules/uri-js/dist/es5/uri.all.js","../../../core/util/uri.ts","../../node_modules/lodash/lodash.js","../../src/components/gui/Spinner.tsx","../../src/pages/gui/ToolCallDiv/utils.tsx","../../../core/node_modules/partial-json/dist/options.js","../../../core/node_modules/partial-json/dist/index.js","../../../core/util/incrementalParseJson.ts","../../src/util/toolCallState.ts","../../node_modules/orderedmap/dist/index.js","../../node_modules/prosemirror-model/dist/index.js","../../node_modules/prosemirror-transform/dist/index.js","../../node_modules/prosemirror-state/dist/index.js","../../node_modules/prosemirror-view/dist/index.js","../../node_modules/w3c-keyname/index.js","../../node_modules/prosemirror-keymap/dist/index.js","../../node_modules/prosemirror-commands/dist/index.js","../../node_modules/prosemirror-schema-list/dist/index.js","../../node_modules/@tiptap/core/dist/index.js","../../node_modules/@tiptap/extension-image/dist/index.js","../../node_modules/@tiptap/extension-paragraph/dist/index.js","../../node_modules/@tiptap/extension-text/dist/index.js","../../../core/node_modules/uuid/dist/esm-browser/rng.js","../../../core/node_modules/uuid/dist/esm-browser/stringify.js","../../../core/node_modules/uuid/dist/esm-browser/native.js","../../../core/node_modules/uuid/dist/esm-browser/v4.js","../../../core/commands/util.ts","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/@popperjs/core/lib/createPopper.js","../../node_modules/@popperjs/core/lib/popper.js","../../node_modules/tippy.js/dist/tippy.esm.js","../../node_modules/@tiptap/react/dist/index.js","../../../core/util/index.ts","../../node_modules/dompurify/dist/purify.es.mjs","../../node_modules/seti-file-icons/lib/index.js","../../src/components/FileIcon.tsx","../../node_modules/react-remark/node_modules/bail/index.js","../../node_modules/is-buffer/index.js","../../node_modules/extend/index.js","../../node_modules/react-remark/node_modules/is-plain-obj/index.js","../../node_modules/react-remark/node_modules/trough/wrap.js","../../node_modules/react-remark/node_modules/trough/index.js","../../node_modules/react-remark/node_modules/unist-util-stringify-position/index.js","../../node_modules/react-remark/node_modules/vfile-message/index.js","../../node_modules/react-remark/node_modules/vfile/lib/minpath.browser.js","../../node_modules/react-remark/node_modules/vfile/lib/minproc.browser.js","../../node_modules/react-remark/node_modules/vfile/lib/core.js","../../node_modules/react-remark/node_modules/vfile/lib/index.js","../../node_modules/react-remark/node_modules/vfile/index.js","../../node_modules/react-remark/node_modules/unified/index.js","../../node_modules/react-remark/node_modules/mdast-util-to-string/index.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/assign.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/has-own-property.js","../../node_modules/react-remark/node_modules/micromark/dist/util/normalize-identifier.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/from-char-code.js","../../node_modules/react-remark/node_modules/micromark/dist/util/safe-from-int.js","../../node_modules/react-remark/node_modules/micromark/dist/character/markdown-line-ending.js","../../node_modules/react-remark/node_modules/micromark/dist/character/markdown-space.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/factory-space.js","../../node_modules/react-remark/node_modules/micromark/dist/initialize/content.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/partial-blank-line.js","../../node_modules/react-remark/node_modules/micromark/dist/initialize/document.js","../../node_modules/react-remark/node_modules/micromark/dist/util/size-chunks.js","../../node_modules/react-remark/node_modules/micromark/dist/util/prefix-size.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/splice.js","../../node_modules/react-remark/node_modules/micromark/dist/util/chunked-splice.js","../../node_modules/react-remark/node_modules/micromark/dist/util/shallow.js","../../node_modules/react-remark/node_modules/micromark/dist/util/subtokenize.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/content.js","../../node_modules/react-remark/node_modules/micromark/dist/initialize/flow.js","../../node_modules/react-remark/node_modules/micromark/dist/initialize/text.js","../../node_modules/react-remark/node_modules/micromark/dist/util/miniflat.js","../../node_modules/react-remark/node_modules/micromark/dist/util/combine-extensions.js","../../node_modules/react-remark/node_modules/micromark/dist/util/chunked-push.js","../../node_modules/react-remark/node_modules/micromark/dist/util/resolve-all.js","../../node_modules/react-remark/node_modules/micromark/dist/util/serialize-chunks.js","../../node_modules/react-remark/node_modules/micromark/dist/util/slice-chunks.js","../../node_modules/react-remark/node_modules/micromark/dist/util/create-tokenizer.js","../../node_modules/react-remark/node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../../node_modules/react-remark/node_modules/micromark/dist/util/regex-check.js","../../node_modules/react-remark/node_modules/micromark/dist/character/unicode-punctuation.js","../../node_modules/react-remark/node_modules/micromark/dist/character/unicode-whitespace.js","../../node_modules/react-remark/node_modules/micromark/dist/util/classify-character.js","../../node_modules/react-remark/node_modules/micromark/dist/util/move-point.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/attention.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-alpha.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-alphanumeric.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-atext.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-control.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/autolink.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/block-quote.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-punctuation.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/character-escape.js","../../node_modules/react-remark/node_modules/parse-entities/decode-entity.browser.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-digit.js","../../node_modules/react-remark/node_modules/micromark/dist/character/ascii-hex-digit.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/character-reference.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/code-fenced.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/code-indented.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/code-text.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/factory-destination.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/factory-label.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/factory-whitespace.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/factory-title.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/definition.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/hard-break-escape.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/heading-atx.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/html-block-names.js","../../node_modules/react-remark/node_modules/micromark/dist/constant/html-raw-names.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/html-flow.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/html-text.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/label-end.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/label-start-image.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/label-start-link.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/line-ending.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/thematic-break.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/list.js","../../node_modules/react-remark/node_modules/micromark/dist/tokenize/setext-underline.js","../../node_modules/react-remark/node_modules/micromark/dist/constructs.js","../../node_modules/react-remark/node_modules/micromark/dist/parse.js","../../node_modules/react-remark/node_modules/micromark/dist/preprocess.js","../../node_modules/react-remark/node_modules/micromark/dist/postprocess.js","../../node_modules/react-remark/node_modules/mdast-util-from-markdown/dist/index.js","../../node_modules/react-remark/node_modules/mdast-util-from-markdown/index.js","../../node_modules/react-remark/node_modules/remark-parse/index.js","../../node_modules/unist-builder/index.js","../../node_modules/react-remark/node_modules/unist-util-is/convert.js","../../node_modules/react-remark/node_modules/unist-util-visit-parents/color.browser.js","../../node_modules/react-remark/node_modules/unist-util-visit-parents/index.js","../../node_modules/react-remark/node_modules/unist-util-visit/index.js","../../node_modules/react-remark/node_modules/unist-util-position/index.js","../../node_modules/unist-util-generated/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-is/convert.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/color.browser.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit/index.js","../../node_modules/mdast-util-definitions/index.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/all.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/one.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/wrap.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/react-remark/node_modules/mdurl/encode.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/react-remark/node_modules/mdast-util-to-hast/index.js","../../node_modules/react-remark/node_modules/remark-rehype/index.js","../../node_modules/xtend/immutable.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/schema.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/merge.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/normalize.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/info.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/types.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/defined-info.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/create.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xlink.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xml.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xmlns.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/aria.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/html.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/html.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/lib/svg.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/svg.js","../../node_modules/hast-to-hyperscript/node_modules/property-information/find.js","../../node_modules/hast-to-hyperscript/node_modules/space-separated-tokens/index.js","../../node_modules/hast-to-hyperscript/node_modules/comma-separated-tokens/index.js","../../node_modules/inline-style-parser/index.js","../../node_modules/style-to-object/index.js","../../node_modules/hast-to-hyperscript/node_modules/unist-util-is/convert.js","../../node_modules/hast-to-hyperscript/index.js","../../node_modules/@mapbox/hast-util-table-cell-style/node_modules/unist-util-is/convert.js","../../node_modules/@mapbox/hast-util-table-cell-style/node_modules/unist-util-visit-parents/index.js","../../node_modules/@mapbox/hast-util-table-cell-style/node_modules/unist-util-visit/index.js","../../node_modules/@mapbox/hast-util-table-cell-style/index.js","../../node_modules/rehype-react/index.js","../../node_modules/react-remark/dist/react-remark.esm.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/hast-to-react.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/hast-util-from-dom/node_modules/hast-util-parse-selector/lib/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/hast-util-from-dom/node_modules/hastscript/lib/create-h.js","../../node_modules/hast-util-from-dom/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../../node_modules/hast-util-from-dom/node_modules/hastscript/lib/index.js","../../node_modules/web-namespaces/index.js","../../node_modules/hast-util-from-dom/lib/index.js","../../node_modules/hast-util-from-html-isomorphic/lib/browser.js","../../node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-find-after/lib/index.js","../../node_modules/hast-util-is-element/lib/index.js","../../node_modules/hast-util-to-text/lib/index.js","../../node_modules/katex/dist/katex.mjs","../../node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/rehype-katex/lib/index.js","../../node_modules/longest-streak/index.js","../../node_modules/mdast-util-math/lib/index.js","../../node_modules/micromark-util-character/index.js","../../node_modules/micromark-factory-space/index.js","../../node_modules/micromark-extension-math/lib/math-flow.js","../../node_modules/micromark-extension-math/lib/math-text.js","../../node_modules/micromark-extension-math/lib/syntax.js","../../node_modules/remark-math/lib/index.js","../../node_modules/unist-util-visit/lib/index.js","../../src/hooks/useUpdatingRef.tsx","../../src/redux/thunks/updateFileSymbols.ts","../../src/components/StyledMarkdownPreview/FilenameLink.tsx","../../node_modules/@panzoom/panzoom/dist/panzoom.es.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-57QY23SG.mjs","../../node_modules/dayjs/dayjs.min.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.mjs","../../node_modules/khroma/dist/utils/channel.js","../../node_modules/khroma/dist/utils/lang.js","../../node_modules/khroma/dist/utils/unit.js","../../node_modules/khroma/dist/utils/index.js","../../node_modules/khroma/dist/constants.js","../../node_modules/khroma/dist/channels/type.js","../../node_modules/khroma/dist/channels/index.js","../../node_modules/khroma/dist/channels/reusable.js","../../node_modules/khroma/dist/color/hex.js","../../node_modules/khroma/dist/color/hsl.js","../../node_modules/khroma/dist/color/keyword.js","../../node_modules/khroma/dist/color/rgb.js","../../node_modules/khroma/dist/color/index.js","../../node_modules/khroma/dist/methods/change.js","../../node_modules/khroma/dist/methods/rgba.js","../../node_modules/khroma/dist/methods/luminance.js","../../node_modules/khroma/dist/methods/is_light.js","../../node_modules/khroma/dist/methods/is_dark.js","../../node_modules/khroma/dist/methods/adjust_channel.js","../../node_modules/khroma/dist/methods/lighten.js","../../node_modules/khroma/dist/methods/darken.js","../../node_modules/khroma/dist/methods/adjust.js","../../node_modules/khroma/dist/methods/mix.js","../../node_modules/khroma/dist/methods/invert.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs","../../node_modules/d3-dispatch/src/dispatch.js","../../node_modules/d3-selection/src/namespaces.js","../../node_modules/d3-selection/src/namespace.js","../../node_modules/d3-selection/src/creator.js","../../node_modules/d3-selection/src/selector.js","../../node_modules/d3-selection/src/selection/select.js","../../node_modules/d3-selection/src/array.js","../../node_modules/d3-selection/src/selectorAll.js","../../node_modules/d3-selection/src/selection/selectAll.js","../../node_modules/d3-selection/src/matcher.js","../../node_modules/d3-selection/src/selection/selectChild.js","../../node_modules/d3-selection/src/selection/selectChildren.js","../../node_modules/d3-selection/src/selection/filter.js","../../node_modules/d3-selection/src/selection/sparse.js","../../node_modules/d3-selection/src/selection/enter.js","../../node_modules/d3-selection/src/constant.js","../../node_modules/d3-selection/src/selection/data.js","../../node_modules/d3-selection/src/selection/exit.js","../../node_modules/d3-selection/src/selection/join.js","../../node_modules/d3-selection/src/selection/merge.js","../../node_modules/d3-selection/src/selection/order.js","../../node_modules/d3-selection/src/selection/sort.js","../../node_modules/d3-selection/src/selection/call.js","../../node_modules/d3-selection/src/selection/nodes.js","../../node_modules/d3-selection/src/selection/node.js","../../node_modules/d3-selection/src/selection/size.js","../../node_modules/d3-selection/src/selection/empty.js","../../node_modules/d3-selection/src/selection/each.js","../../node_modules/d3-selection/src/selection/attr.js","../../node_modules/d3-selection/src/window.js","../../node_modules/d3-selection/src/selection/style.js","../../node_modules/d3-selection/src/selection/property.js","../../node_modules/d3-selection/src/selection/classed.js","../../node_modules/d3-selection/src/selection/text.js","../../node_modules/d3-selection/src/selection/html.js","../../node_modules/d3-selection/src/selection/raise.js","../../node_modules/d3-selection/src/selection/lower.js","../../node_modules/d3-selection/src/selection/append.js","../../node_modules/d3-selection/src/selection/insert.js","../../node_modules/d3-selection/src/selection/remove.js","../../node_modules/d3-selection/src/selection/clone.js","../../node_modules/d3-selection/src/selection/datum.js","../../node_modules/d3-selection/src/selection/on.js","../../node_modules/d3-selection/src/selection/dispatch.js","../../node_modules/d3-selection/src/selection/iterator.js","../../node_modules/d3-selection/src/selection/index.js","../../node_modules/d3-selection/src/select.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/transform/decompose.js","../../node_modules/d3-interpolate/src/transform/parse.js","../../node_modules/d3-interpolate/src/transform/index.js","../../node_modules/d3-timer/src/timer.js","../../node_modules/d3-timer/src/timeout.js","../../node_modules/d3-transition/src/transition/schedule.js","../../node_modules/d3-transition/src/interrupt.js","../../node_modules/d3-transition/src/selection/interrupt.js","../../node_modules/d3-transition/src/transition/tween.js","../../node_modules/d3-transition/src/transition/interpolate.js","../../node_modules/d3-transition/src/transition/attr.js","../../node_modules/d3-transition/src/transition/attrTween.js","../../node_modules/d3-transition/src/transition/delay.js","../../node_modules/d3-transition/src/transition/duration.js","../../node_modules/d3-transition/src/transition/ease.js","../../node_modules/d3-transition/src/transition/easeVarying.js","../../node_modules/d3-transition/src/transition/filter.js","../../node_modules/d3-transition/src/transition/merge.js","../../node_modules/d3-transition/src/transition/on.js","../../node_modules/d3-transition/src/transition/remove.js","../../node_modules/d3-transition/src/transition/select.js","../../node_modules/d3-transition/src/transition/selectAll.js","../../node_modules/d3-transition/src/transition/selection.js","../../node_modules/d3-transition/src/transition/style.js","../../node_modules/d3-transition/src/transition/styleTween.js","../../node_modules/d3-transition/src/transition/text.js","../../node_modules/d3-transition/src/transition/textTween.js","../../node_modules/d3-transition/src/transition/transition.js","../../node_modules/d3-transition/src/transition/end.js","../../node_modules/d3-transition/src/transition/index.js","../../node_modules/d3-ease/src/cubic.js","../../node_modules/d3-transition/src/selection/transition.js","../../node_modules/d3-transition/src/selection/index.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/curve/bump.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/bundle.js","../../node_modules/d3-shape/src/curve/cardinal.js","../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../node_modules/d3-shape/src/curve/catmullRom.js","../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/d3-zoom/src/transform.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ZPAFE4SF.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7GE3RBXV.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QYVHNE3D.mjs","../../node_modules/@braintree/sanitize-url/dist/constants.js","../../node_modules/@braintree/sanitize-url/dist/index.js","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_nativeCreate.js","../../node_modules/lodash-es/_hashClear.js","../../node_modules/lodash-es/_hashDelete.js","../../node_modules/lodash-es/_hashGet.js","../../node_modules/lodash-es/_hashHas.js","../../node_modules/lodash-es/_hashSet.js","../../node_modules/lodash-es/_Hash.js","../../node_modules/lodash-es/_listCacheClear.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/_assocIndexOf.js","../../node_modules/lodash-es/_listCacheDelete.js","../../node_modules/lodash-es/_listCacheGet.js","../../node_modules/lodash-es/_listCacheHas.js","../../node_modules/lodash-es/_listCacheSet.js","../../node_modules/lodash-es/_ListCache.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_mapCacheClear.js","../../node_modules/lodash-es/_isKeyable.js","../../node_modules/lodash-es/_getMapData.js","../../node_modules/lodash-es/_mapCacheDelete.js","../../node_modules/lodash-es/_mapCacheGet.js","../../node_modules/lodash-es/_mapCacheHas.js","../../node_modules/lodash-es/_mapCacheSet.js","../../node_modules/lodash-es/_MapCache.js","../../node_modules/lodash-es/memoize.js","../../node_modules/lodash-es/_stackClear.js","../../node_modules/lodash-es/_stackDelete.js","../../node_modules/lodash-es/_stackGet.js","../../node_modules/lodash-es/_stackHas.js","../../node_modules/lodash-es/_stackSet.js","../../node_modules/lodash-es/_Stack.js","../../node_modules/lodash-es/_defineProperty.js","../../node_modules/lodash-es/_baseAssignValue.js","../../node_modules/lodash-es/_assignMergeValue.js","../../node_modules/lodash-es/_createBaseFor.js","../../node_modules/lodash-es/_baseFor.js","../../node_modules/lodash-es/_cloneBuffer.js","../../node_modules/lodash-es/_Uint8Array.js","../../node_modules/lodash-es/_cloneArrayBuffer.js","../../node_modules/lodash-es/_cloneTypedArray.js","../../node_modules/lodash-es/_copyArray.js","../../node_modules/lodash-es/_baseCreate.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_getPrototype.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_initCloneObject.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/isArrayLikeObject.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/isPlainObject.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_safeGet.js","../../node_modules/lodash-es/_assignValue.js","../../node_modules/lodash-es/_copyObject.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_nativeKeysIn.js","../../node_modules/lodash-es/_baseKeysIn.js","../../node_modules/lodash-es/keysIn.js","../../node_modules/lodash-es/toPlainObject.js","../../node_modules/lodash-es/_baseMergeDeep.js","../../node_modules/lodash-es/_baseMerge.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/_apply.js","../../node_modules/lodash-es/_overRest.js","../../node_modules/lodash-es/constant.js","../../node_modules/lodash-es/_baseSetToString.js","../../node_modules/lodash-es/_shortOut.js","../../node_modules/lodash-es/_setToString.js","../../node_modules/lodash-es/_baseRest.js","../../node_modules/lodash-es/_isIterateeCall.js","../../node_modules/lodash-es/_createAssigner.js","../../node_modules/lodash-es/merge.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.mjs","../../node_modules/@iconify/utils/lib/icon/defaults.js","../../node_modules/@iconify/utils/lib/customisations/defaults.js","../../node_modules/@iconify/utils/lib/icon/name.js","../../node_modules/@iconify/utils/lib/icon/transformations.js","../../node_modules/@iconify/utils/lib/icon/merge.js","../../node_modules/@iconify/utils/lib/icon-set/tree.js","../../node_modules/@iconify/utils/lib/icon-set/get-icon.js","../../node_modules/@iconify/utils/lib/svg/size.js","../../node_modules/@iconify/utils/lib/svg/defs.js","../../node_modules/@iconify/utils/lib/svg/build.js","../../node_modules/@iconify/utils/lib/svg/id.js","../../node_modules/@iconify/utils/lib/svg/html.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/ts-dedent/esm/index.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.mjs","../../node_modules/roughjs/bundled/rough.esm.js","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CXMOBAN2.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-3AY6CYHV.mjs","../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-6OXUPJBA.mjs","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/isEmpty.js","../../node_modules/mermaid/dist/mermaid.core.mjs","../../src/components/find/useDebounce.ts","../../src/components/StyledMarkdownPreview/MermaidBlock.tsx","../../node_modules/highlight.js/es/languages/clojure.js","../../node_modules/highlight.js/es/languages/delphi.js","../../node_modules/highlight.js/es/languages/elixir.js","../../node_modules/highlight.js/es/languages/julia.js","../../node_modules/highlight.js/es/languages/lisp.js","../../node_modules/highlight.js/es/languages/matlab.js","../../node_modules/highlight.js/es/languages/ocaml.js","../../node_modules/highlight.js/es/languages/powershell.js","../../node_modules/highlight.js/es/languages/protobuf.js","../../node_modules/highlight.js/es/languages/verilog.js","../../node_modules/highlight.js/es/languages/arduino.js","../../node_modules/highlight.js/es/languages/bash.js","../../node_modules/highlight.js/es/languages/c.js","../../node_modules/highlight.js/es/languages/cpp.js","../../node_modules/highlight.js/es/languages/csharp.js","../../node_modules/highlight.js/es/languages/css.js","../../node_modules/highlight.js/es/languages/diff.js","../../node_modules/highlight.js/es/languages/go.js","../../node_modules/highlight.js/es/languages/graphql.js","../../node_modules/highlight.js/es/languages/ini.js","../../node_modules/highlight.js/es/languages/java.js","../../node_modules/highlight.js/es/languages/javascript.js","../../node_modules/highlight.js/es/languages/json.js","../../node_modules/highlight.js/es/languages/kotlin.js","../../node_modules/highlight.js/es/languages/less.js","../../node_modules/highlight.js/es/languages/lua.js","../../node_modules/highlight.js/es/languages/makefile.js","../../node_modules/highlight.js/es/languages/markdown.js","../../node_modules/highlight.js/es/languages/objectivec.js","../../node_modules/highlight.js/es/languages/perl.js","../../node_modules/highlight.js/es/languages/php.js","../../node_modules/highlight.js/es/languages/php-template.js","../../node_modules/highlight.js/es/languages/plaintext.js","../../node_modules/highlight.js/es/languages/python.js","../../node_modules/highlight.js/es/languages/python-repl.js","../../node_modules/highlight.js/es/languages/r.js","../../node_modules/highlight.js/es/languages/ruby.js","../../node_modules/highlight.js/es/languages/rust.js","../../node_modules/highlight.js/es/languages/scss.js","../../node_modules/highlight.js/es/languages/shell.js","../../node_modules/highlight.js/es/languages/sql.js","../../node_modules/highlight.js/es/languages/swift.js","../../node_modules/highlight.js/es/languages/typescript.js","../../node_modules/highlight.js/es/languages/vbnet.js","../../node_modules/highlight.js/es/languages/wasm.js","../../node_modules/highlight.js/es/languages/xml.js","../../node_modules/highlight.js/es/languages/yaml.js","../../node_modules/lowlight/lib/common.js","../../node_modules/highlight.js/lib/core.js","../../node_modules/lowlight/lib/index.js","../../node_modules/rehype-highlight/lib/index.js","../../src/components/StyledMarkdownPreview/rehypeHighlightPlugin.ts","../../src/components/StyledMarkdownPreview/SecureImageComponent.tsx","../../../packages/terminal-security/node_modules/shell-quote/quote.js","../../../packages/terminal-security/node_modules/shell-quote/parse.js","../../../packages/terminal-security/node_modules/shell-quote/index.js","../../../packages/terminal-security/dist/evaluateTerminalCommandSecurity.js","../../../core/util/ideUtils.ts","../../src/hooks/useIdeMessengerRequest.ts","../../src/redux/util/index.ts","../../src/redux/selectors/selectToolCalls.ts","../../src/components/StyledMarkdownPreview/utils.ts","../../src/components/mainInput/InputToolbar/HoverItem.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/ToolbarButtonWithTooltip.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/ApplyActions.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/CollapsibleContainer.tsx","../../src/hooks/useCopy.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/CopyButton.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/CreateFileButton.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/FileInfo.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/InsertButton.tsx","../../src/components/StyledMarkdownPreview/utils/commandExtractor.ts","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/RunInTerminalButton.tsx","../../src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx","../../src/components/StyledMarkdownPreview/SymbolLink.tsx","../../src/styles/utils.ts","../../src/context/VscTheme.tsx","../../src/components/StyledMarkdownPreview/SyntaxHighlightedPre.tsx","../../src/components/StyledMarkdownPreview/utils/fixDoubleDollarLatex.ts","../../../core/utils/markdownUtils.ts","../../src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts","../../src/components/StyledMarkdownPreview/utils/remarkTables.tsx","../../src/components/StyledMarkdownPreview/index.tsx","../../src/components/gui/HeaderButtonWithToolTip.tsx","../../src/components/mainInput/TipTapEditor/components/ExpandableToolbarPreview.tsx","../../src/components/mainInput/TipTapEditor/components/NodeViewWrapper.tsx","../../src/components/mainInput/TipTapEditor/extensions/CodeBlock/CodeBlockPreview.tsx","../../src/components/mainInput/TipTapEditor/extensions/CodeBlock/CodeBlock.tsx","../../node_modules/@tiptap/suggestion/dist/index.js","../../src/components/mainInput/TipTapEditor/extensions/Mention.ts","../../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../src/components/find/findWidgetSearch.ts","../../src/components/find/useElementSize.ts","../../src/components/find/FindWidget.tsx","../../src/components/gui/TimelineItem.tsx","../../src/components/mainInput/belowMainInput/NewSessionButton.tsx","../../src/components/AnimatedEllipsis.tsx","../../src/components/mainInput/belowMainInput/ThinkingBlockPeek.tsx","../../src/redux/selectors/index.ts","../../src/components/SafeImg.tsx","../../src/components/ToggleDiv.tsx","../../src/redux/slices/indexingSlice.ts","../../src/pages/config/sections/docs/DocsIndexingPeeks.tsx","../../src/components/dialogs/AddDocsDialog.tsx","../../src/components/svg/DiscordIcon.tsx","../../src/components/svg/GithubIcon.tsx","../../src/components/svg/GitlabIcon.tsx","../../src/components/svg/GoogleIcon.tsx","../../src/components/mainInput/icons.ts","../../src/components/mainInput/AtMentionDropdown/index.tsx","../../src/components/mainInput/belowMainInput/ContextItemsPeek.tsx","../../../core/llm/rules/rules-utils.ts","../../../core/llm/defaultSystemMessages.ts","../../src/components/mainInput/Lump/useEditBlock.ts","../../src/components/mainInput/belowMainInput/RulesPeek.tsx","../../src/components/mainInput/GradientBorder.tsx","../../../core/util/errors.ts","../../src/util/editOutcomeLogger.ts","../../../core/node_modules/balanced-match/index.js","../../../core/node_modules/brace-expansion/index.js","../../../core/node_modules/minimatch/dist/esm/assert-valid-pattern.js","../../../core/node_modules/minimatch/dist/esm/brace-expressions.js","../../../core/node_modules/minimatch/dist/esm/unescape.js","../../../core/node_modules/minimatch/dist/esm/ast.js","../../../core/node_modules/minimatch/dist/esm/escape.js","../../../core/node_modules/minimatch/dist/esm/index.js","../../../core/llm/utils/extractContentFromCodeBlocks.ts","../../../core/llm/utils/extractPathsFromCodeBlocks.ts","../../../core/llm/rules/getSystemMessageWithRules.ts","../../src/redux/selectors/selectActiveTools.ts","../../../core/llm/messages.ts","../../../core/tools/constants.ts","../../../core/tools/systemMessageTools/convertSystemTools.ts","../../../core/util/findLast.ts","../../src/redux/util/constructMessages.ts","../../../packages/config-yaml/dist/interfaces/slugs.js","../../../packages/config-yaml/dist/interfaces/SecretResult.js","../../../packages/config-yaml/node_modules/zod/v3/helpers/util.js","../../../packages/config-yaml/node_modules/zod/v3/ZodError.js","../../../packages/config-yaml/node_modules/zod/v3/locales/en.js","../../../packages/config-yaml/node_modules/zod/v3/errors.js","../../../packages/config-yaml/node_modules/zod/v3/helpers/parseUtil.js","../../../packages/config-yaml/node_modules/zod/v3/helpers/errorUtil.js","../../../packages/config-yaml/node_modules/zod/v3/types.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/identity.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/visit.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/doc/directives.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/doc/anchors.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/doc/applyReviver.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/toJS.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/Node.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/Alias.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/Scalar.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/doc/createNode.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/Collection.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyComment.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/foldFlowLines.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyString.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringify.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyPair.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/log.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/Pair.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyCollection.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/YAMLMap.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/common/map.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/nodes/YAMLSeq.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/common/seq.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/common/string.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/common/null.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/core/bool.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyNumber.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/core/float.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/core/int.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/core/schema.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/json/schema.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/tags.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/schema/Schema.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/stringify/stringifyDocument.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/doc/Document.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/errors.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-props.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/util-contains-newline.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/util-map-includes.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-block-map.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-block-seq.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-end.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/compose-collection.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/compose-scalar.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/compose-node.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/compose-doc.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/compose/composer.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/parse/cst.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/parse/lexer.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/parse/line-counter.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/parse/parser.js","../../../packages/config-yaml/node_modules/yaml/browser/dist/public-api.js","../../../packages/config-yaml/dist/markdown/createMarkdownRule.js","../../../packages/config-yaml/dist/markdown/getRuleType.js","../../../packages/config-yaml/dist/markdown/agentFiles.js","../../../packages/config-yaml/dist/schemas/commonSlugs.js","../../../packages/config-yaml/dist/schemas/models.js","../../../packages/config-yaml/dist/schemas/data/base.js","../../../packages/config-yaml/dist/schemas/data/autocomplete/index.js","../../../packages/config-yaml/dist/schemas/data/autocomplete/v0.1.0.js","../../../packages/config-yaml/dist/schemas/data/autocomplete/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/chatFeedback/index.js","../../../packages/config-yaml/dist/schemas/data/chatFeedback/v0.1.0.js","../../../packages/config-yaml/dist/schemas/data/chatFeedback/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/chatInteraction/index.js","../../../packages/config-yaml/dist/schemas/data/chatInteraction/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/editInteraction/index.js","../../../packages/config-yaml/dist/schemas/data/editInteraction/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/editOutcome/index.js","../../../packages/config-yaml/dist/schemas/data/editOutcome/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/nextEditOutcome/index.js","../../../packages/config-yaml/dist/schemas/data/nextEditOutcome/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/nextEditWithHistory/index.js","../../../packages/config-yaml/dist/schemas/data/nextEditWithHistory/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/quickEdit/index.js","../../../packages/config-yaml/dist/schemas/data/quickEdit/v0.1.0.js","../../../packages/config-yaml/dist/schemas/data/tokensGenerated/index.js","../../../packages/config-yaml/dist/schemas/data/tokensGenerated/v0.1.0.js","../../../packages/config-yaml/dist/schemas/data/tokensGenerated/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/toolUsage/index.js","../../../packages/config-yaml/dist/schemas/data/toolUsage/v0.2.0.js","../../../packages/config-yaml/dist/schemas/data/index.js","../../../packages/config-yaml/dist/schemas/mcp/index.js","../../../packages/config-yaml/dist/schemas/index.js","../../../packages/config-yaml/dist/load/getBlockType.js","../../../packages/config-yaml/dist/load/unroll.js","../../../packages/config-yaml/dist/load/clientRender.js","../../../packages/config-yaml/dist/modelName.js","../../../packages/config-yaml/dist/schemas/mcp/json.js","../../../packages/config-yaml/dist/schemas/policy.js","../../../core/llm/toolSupport.ts","../../../core/tools/systemMessageTools/systemToolUtils.ts","../../../core/tools/systemMessageTools/buildToolsSystemMessage.ts","../../../core/tools/systemMessageTools/detectToolCallStart.ts","../../../core/tools/systemMessageTools/types.ts","../../../core/tools/systemMessageTools/interceptSystemToolCalls.ts","../../../core/tools/systemMessageTools/toolCodeblocks/parseSystemToolCall.ts","../../../core/tools/systemMessageTools/toolCodeblocks/index.ts","../../src/redux/util/getBaseSystemMessage.ts","../../src/redux/thunks/evaluateToolPolicies.ts","../../src/redux/thunks/preprocessToolCallArgs.ts","../../src/redux/thunks/streamNormalInput.ts","../../src/util/errorAnalysis.ts","../../src/pages/gui/OutOfCreditsDialog.tsx","../../src/pages/gui/StreamError.tsx","../../src/redux/thunks/cancelStream.ts","../../src/redux/thunks/session.ts","../../src/redux/thunks/streamThunkWrapper.tsx","../../src/redux/thunks/streamResponseAfterToolCall.ts","../../src/redux/thunks/handleApplyStateUpdate.ts","../../src/util/clientTools/editImpl.ts","../../../core/edit/searchAndReplace/findAndReplaceUtils.ts","../../../core/edit/searchAndReplace/multiEditValidation.ts","../../../core/edit/searchAndReplace/findSearchMatch.ts","../../../core/edit/searchAndReplace/performReplace.ts","../../../core/edit/searchAndReplace/validateArgs.ts","../../src/util/clientTools/multiEditImpl.ts","../../src/util/clientTools/singleFindAndReplaceImpl.ts","../../src/util/clientTools/callClientTool.ts","../../src/redux/thunks/callToolById.ts","../../src/components/StarterCreditsPopover.tsx","../../../core/config/usesFreeTrialApiKey.ts","../../../core/llm/utils/starterCredits.ts","../../src/hooks/useCredits.ts","../../src/util/navigation.ts","../../../core/control-plane/AuthTypes.ts","../../src/components/AssistantAndOrgListbox/AssistantIcon.tsx","../../src/components/AssistantAndOrgListbox/AssistantOption.tsx","../../src/components/AssistantAndOrgListbox/AssistantOptions.tsx","../../src/components/AssistantAndOrgListbox/OrganizationOption.tsx","../../src/components/AssistantAndOrgListbox/OrganizationOptions.tsx","../../src/components/AssistantAndOrgListbox/SelectedAssistantButton.tsx","../../src/components/AssistantAndOrgListbox/index.tsx","../../src/components/mainInput/Lump/LumpToolbar/BlockSettingsTopToolbar.tsx","../../src/components/AcceptRejectDiffButtons.tsx","../../src/components/mainInput/Lump/LumpToolbar/EditOutcomeToolbar.tsx","../../src/components/mainInput/util/index.ts","../../src/components/mainInput/Lump/LumpToolbar/EditToolbar.tsx","../../src/components/mainInput/Lump/LumpToolbar/GeneratingIndicator.tsx","../../src/components/mainInput/Lump/LumpToolbar/IsApplyingToolbar.tsx","../../src/components/mainInput/Lump/LumpToolbar/PendingApplyStatesToolbar.tsx","../../src/redux/thunks/cancelToolCall.ts","../../src/components/mainInput/Lump/LumpToolbar/PendingToolCallToolbar.tsx","../../src/components/mainInput/Lump/LumpToolbar/StreamingToolbar.tsx","../../src/components/mainInput/Lump/LumpToolbar/TtsActiveToolbar.tsx","../../src/components/mainInput/Lump/LumpToolbar/LumpToolbar.tsx","../../src/components/mainInput/Lump/index.tsx","../../src/components/mainInput/ContinueInputBox.tsx","../../src/util/compactConversation.ts","../../src/components/StepContainer/ConversationSummary.tsx","../../src/components/FeedbackButtons.tsx","../../../core/config/markdown/utils.ts","../../../core/tools/definitions/createRuleBlock.ts","../../src/components/GenerateRuleDialog/useRuleGeneration.ts","../../src/components/GenerateRuleDialog/GenerationScreen.tsx","../../src/components/GenerateRuleDialog/RuleTemplateChip.tsx","../../src/components/GenerateRuleDialog/ruleTemplates.ts","../../src/components/GenerateRuleDialog/InputScreen.tsx","../../src/components/GenerateRuleDialog/index.tsx","../../src/components/gui/CopyIconButton.tsx","../../src/components/StepContainer/ResponseActions.tsx","../../src/components/StepContainer/ThinkingIndicator.tsx","../../src/components/StepContainer/StepContainer.tsx","../../src/redux/slices/tabsSlice.ts","../../src/components/TabBar/TabBar.tsx","../../src/pages/gui/ToolCallDiv/CreateFile.tsx","../../src/pages/gui/ToolCallDiv/EditFile.tsx","../../node_modules/diff/libesm/diff/base.js","../../node_modules/diff/libesm/diff/line.js","../../src/pages/gui/ToolCallDiv/FindAndReplace.tsx","../../node_modules/anser/lib/index.js","../../node_modules/escape-carriage/index.js","../../src/redux/thunks/moveTerminalProcessToBackground.ts","../../src/components/ui/SpoilerButton.tsx","../../src/components/UnifiedTerminal/UnifiedTerminal.tsx","../../src/pages/gui/ToolCallDiv/RunTerminalCommand.tsx","../../src/pages/gui/ToolCallDiv/FunctionSpecificToolCallDiv.tsx","../../src/pages/gui/ToolCallDiv/ToggleWithIcon.tsx","../../src/pages/gui/ToolCallDiv/GroupedToolCallHeader.tsx","../../node_modules/zod/v4/core/core.js","../../node_modules/zod/v4/core/util.js","../../node_modules/zod/v4/core/errors.js","../../node_modules/zod/v4/core/parse.js","../../node_modules/zod/v4/core/regexes.js","../../node_modules/zod/v4/core/checks.js","../../node_modules/zod/v4/core/doc.js","../../node_modules/zod/v4/core/versions.js","../../node_modules/zod/v4/core/schemas.js","../../node_modules/zod/v4/core/registries.js","../../node_modules/zod/v4/core/api.js","../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js","../../node_modules/zod/v4/classic/iso.js","../../node_modules/zod/v4/classic/errors.js","../../node_modules/zod/v4/classic/parse.js","../../node_modules/zod/v4/classic/schemas.js","../../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js","../../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js","../../node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js","../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js","../../node_modules/@modelcontextprotocol/ext-apps/dist/src/app.js","../../node_modules/@modelcontextprotocol/ext-apps/dist/src/app-bridge.js","../../../core/tools/mcpToolName.ts","../../src/pages/gui/ToolCallDiv/MCPAppRenderer.tsx","../../node_modules/mustache/mustache.mjs","../../src/pages/gui/ToolCallDiv/ToolCallStatusMessage.tsx","../../src/pages/gui/ToolCallDiv/ToolTruncateHistoryIcon.tsx","../../src/pages/gui/ToolCallDiv/SimpleToolCallUI.tsx","../../src/pages/gui/ToolCallDiv/ToolCallDisplay.tsx","../../src/pages/gui/ToolCallDiv/index.tsx","../../../core/util/repoUrl.ts","../../src/components/BackgroundMode/AgentsList.tsx","../../src/components/BackgroundMode/BackgroundModeView.tsx","../../src/components/dialogs/FeedbackDialog.tsx","../../src/components/config/FatalErrorNotice.tsx","../../src/components/mainInput/InlineErrorMessage.tsx","../../src/hooks/useBookmarkedSlashCommands.ts","../../src/components/ConversationStarters/ConversationStarterCard.tsx","../../src/components/ConversationStarters/ConversationStarterCards.tsx","../../src/pages/gui/EmptyChatBody.tsx","../../src/pages/gui/ExploreDialogWatcher.tsx","../../src/pages/gui/useAutoScroll.ts","../../src/pages/gui/Chat.tsx","../../src/components/mainInput/TipTapEditor/extensions/Prompt/PromptBlockPreview.tsx","../../src/components/mainInput/TipTapEditor/extensions/Prompt/PromptBlock.ts","../../src/components/mainInput/TipTapEditor/extensions/SlashCommand.ts","../../src/components/mainInput/TipTapEditor/utils/processEditorContent.ts","../../src/components/mainInput/TipTapEditor/utils/renderMcpPrompt.ts","../../../core/promptFiles/index.ts","../../../core/util/handlebars/handlebarUtils.ts","../../../core/util/handlebars/renderTemplatedString.ts","../../src/components/mainInput/TipTapEditor/utils/renderPromptv1.ts","../../src/components/mainInput/TipTapEditor/utils/renderPromptv2.ts","../../src/components/mainInput/TipTapEditor/utils/renderSlashCommand.ts","../../src/components/mainInput/TipTapEditor/utils/resolveEditorContent.ts","../../src/redux/thunks/streamResponse.ts","../../src/redux/slices/sessionSlice.ts","../../src/components/mainInput/TipTapEditor/utils/insertCurrentFileContextMention.ts","../../src/components/mainInput/TipTapEditor/useMainEditorWebviewListeners.ts","../../src/components/mainInput/TipTapEditor/MainEditorProvider.tsx","../../../core/llm/autodetect.ts","../../src/hooks/useIsOSREnabled.ts","../../src/components/modelSelection/ModelSelect.tsx","../../src/components/ModeSelect/ModeIcon.tsx","../../src/components/ModeSelect/ModeSelect.tsx","../../src/components/mainInput/ContextStatus.tsx","../../src/components/mainInput/InputToolbar.tsx","../../src/components/mainInput/TipTapEditor/components/StyledComponents.ts","../../src/components/mainInput/TipTapEditor/components/DragOverlay.tsx","../../node_modules/@tiptap/extension-document/dist/index.js","../../node_modules/rope-sequence/dist/index.js","../../node_modules/prosemirror-history/dist/index.js","../../node_modules/@tiptap/extension-history/dist/index.js","../../node_modules/@tiptap/extension-placeholder/dist/index.js","../../node_modules/minisearch/dist/es/index.js","../../src/context/SubmenuContextProviders.tsx","../../src/hooks/useInputHistory.ts","../../src/components/mainInput/TipTapEditor/utils/getSuggestion.ts","../../src/components/mainInput/TipTapEditor/utils/imageUtils.ts","../../src/components/mainInput/TipTapEditor/utils/editorConfig.ts","../../src/components/mainInput/util/handleMetaKeyIssues.ts","../../src/components/mainInput/TipTapEditor/utils/keyHandlers.ts","../../src/components/mainInput/TipTapEditor/TipTapEditor.tsx","../../src/redux/thunks/edit.ts","../../node_modules/estree-util-is-identifier-name/lib/index.js","../../node_modules/hast-util-whitespace/lib/index.js","../../node_modules/style-to-js/node_modules/inline-style-parser/index.js","../../node_modules/style-to-js/node_modules/style-to-object/cjs/index.js","../../node_modules/style-to-js/cjs/utilities.js","../../node_modules/style-to-js/cjs/index.js","../../node_modules/unist-util-position/lib/index.js","../../node_modules/unist-util-stringify-position/lib/index.js","../../node_modules/vfile-message/lib/index.js","../../node_modules/hast-util-to-jsx-runtime/lib/index.js","../../node_modules/html-url-attributes/lib/index.js","../../node_modules/mdast-util-to-string/lib/index.js","../../node_modules/decode-named-character-reference/index.dom.js","../../node_modules/micromark-util-chunked/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../node_modules/micromark-util-normalize-identifier/index.js","../../node_modules/micromark-util-sanitize-uri/index.js","../../node_modules/micromark/lib/initialize/content.js","../../node_modules/micromark/lib/initialize/document.js","../../node_modules/micromark-util-classify-character/index.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../node_modules/micromark-util-subtokenize/index.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark-factory-destination/index.js","../../node_modules/micromark-factory-label/index.js","../../node_modules/micromark-factory-title/index.js","../../node_modules/micromark-factory-whitespace/index.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../node_modules/micromark/lib/initialize/flow.js","../../node_modules/micromark/lib/initialize/text.js","../../node_modules/micromark/lib/constructs.js","../../node_modules/micromark/lib/create-tokenizer.js","../../node_modules/micromark/lib/parse.js","../../node_modules/micromark/lib/postprocess.js","../../node_modules/micromark/lib/preprocess.js","../../node_modules/micromark-util-decode-string/index.js","../../node_modules/mdast-util-from-markdown/lib/index.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../node_modules/trim-lines/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/@ungap/structured-clone/esm/types.js","../../node_modules/@ungap/structured-clone/esm/deserialize.js","../../node_modules/@ungap/structured-clone/esm/serialize.js","../../node_modules/@ungap/structured-clone/esm/index.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/mdast-util-to-hast/lib/state.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/remark-rehype/lib/index.js","../../node_modules/bail/index.js","../../node_modules/unified/node_modules/is-plain-obj/index.js","../../node_modules/trough/lib/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/unified/lib/callable-instance.js","../../node_modules/unified/lib/index.js","../../node_modules/react-markdown/lib/index.js","../../src/components/dialogs/index.tsx","../../src/components/OSRContextMenu.tsx","../../src/components/PosthogPageView.ts","../../src/components/Layout.tsx","../../src/util/migrateLocalStorage.ts","../../src/hooks/ParallelListeners.tsx","../../src/components/ui/TabButton.tsx","../../src/components/ui/TabGroup.tsx","../../src/hooks/useNavigationListener.tsx","../../src/pages/config/components/ConfigSection.tsx","../../src/pages/config/components/ConfigHeader.tsx","../../src/pages/config/sections/ConfigsSection.tsx","../../src/components/gui/Shortcut.tsx","../../src/pages/config/components/ConfigRow.tsx","../../src/pages/config/sections/HelpSection.tsx","../../../core/node_modules/zod/v3/helpers/util.js","../../../core/node_modules/zod/v3/ZodError.js","../../../core/node_modules/zod/v3/locales/en.js","../../../core/node_modules/zod/v3/errors.js","../../../core/node_modules/zod/v3/helpers/parseUtil.js","../../../core/node_modules/zod/v3/helpers/errorUtil.js","../../../core/node_modules/zod/v3/types.js","../../../core/config/sharedConfig.ts","../../src/components/gui/Switch.tsx","../../src/pages/config/components/UserSetting.tsx","../../src/components/dialogs/ConfirmationDialog.tsx","../../src/pages/config/features/indexing/IndexingProgressBar.tsx","../../src/pages/config/features/indexing/IndexingProgressErrorText.tsx","../../src/pages/config/features/indexing/IndexingProgressIndicator.tsx","../../src/pages/config/features/indexing/IndexingProgressSubtext.tsx","../../src/pages/config/features/indexing/IndexingProgressTitleText.tsx","../../src/pages/config/features/indexing/IndexingProgress.tsx","../../src/pages/config/sections/docs/DocsDetailsDialog.tsx","../../src/pages/config/sections/docs/IndexedPagesTooltip.tsx","../../src/pages/config/sections/docs/StatusIndicator.tsx","../../src/pages/config/sections/docs/DocsIndexingStatus.tsx","../../src/pages/config/sections/docs/DocsSection.tsx","../../src/pages/config/sections/DocsSection.tsx","../../src/pages/config/sections/IndexingSettingsSection.tsx","../../src/components/InfoHover.tsx","../../src/pages/config/components/ModelRoleSelector.tsx","../../src/pages/config/components/ModelRoleRow.tsx","../../src/pages/config/sections/ModelsSection.tsx","../../src/pages/config/sections/OrganizationsSection.tsx","../../src/components/DropdownButton.tsx","../../src/components/dialogs/AddRuleDialog.tsx","../../src/pages/config/sections/RulesSection.tsx","../../src/pages/config/components/ToolPolicyItem.tsx","../../src/pages/config/components/ToolPoliciesGroup.tsx","../../src/pages/config/sections/ToolsSection.tsx","../../../core/util/isContinueTeamMember.ts","../../src/pages/config/components/ContinueFeaturesMenu.tsx","../../src/pages/config/sections/UserSettingsSection.tsx","../../src/pages/config/configTabs.tsx","../../src/pages/config/features/account/AccountDropdown.tsx","../../src/pages/config/index.tsx","../../src/pages/error.tsx","../../src/components/History/HistoryTableRow.tsx","../../src/components/History/util.ts","../../src/components/History/index.tsx","../../src/pages/gui/index.tsx","../../src/components/PageHeader.tsx","../../src/pages/history/index.tsx","../../node_modules/ansi-regex/index.js","../../node_modules/strip-ansi/index.js","../../node_modules/is-fullwidth-code-point/index.js","../../node_modules/emoji-regex/index.js","../../node_modules/string-width/index.js","../../node_modules/astral-regex/index.js","../../node_modules/color-name/index.js","../../node_modules/color-convert/conversions.js","../../node_modules/color-convert/route.js","../../node_modules/color-convert/index.js","../../node_modules/ansi-styles/index.js","../../node_modules/slice-ansi/index.js","../../node_modules/table/dist/src/getBorderCharacters.js","../../node_modules/table/dist/src/utils.js","../../node_modules/table/dist/src/alignString.js","../../node_modules/table/dist/src/alignTableData.js","../../node_modules/table/dist/src/wrapString.js","../../node_modules/table/dist/src/wrapWord.js","../../node_modules/table/dist/src/wrapCell.js","../../node_modules/table/dist/src/calculateCellHeight.js","../../node_modules/table/dist/src/calculateRowHeights.js","../../node_modules/table/dist/src/drawContent.js","../../node_modules/table/dist/src/drawBorder.js","../../node_modules/table/dist/src/drawRow.js","../../node_modules/fast-deep-equal/index.js","../../node_modules/table/node_modules/ajv/dist/runtime/equal.js","../../node_modules/table/dist/src/generated/validators.js","../../node_modules/table/dist/src/validateConfig.js","../../node_modules/table/dist/src/makeStreamConfig.js","../../node_modules/table/dist/src/mapDataUsingRowHeights.js","../../node_modules/table/dist/src/padTableData.js","../../node_modules/table/dist/src/stringifyTableData.js","../../node_modules/lodash.truncate/index.js","../../node_modules/table/dist/src/truncateTableData.js","../../node_modules/table/dist/src/createStream.js","../../node_modules/table/dist/src/calculateOutputColumnWidths.js","../../node_modules/table/dist/src/drawTable.js","../../node_modules/table/dist/src/injectHeaderConfig.js","../../node_modules/table/dist/src/calculateMaximumColumnWidths.js","../../node_modules/table/dist/src/alignSpanningCell.js","../../node_modules/table/dist/src/calculateSpanningCellWidth.js","../../node_modules/table/dist/src/makeRangeConfig.js","../../node_modules/table/dist/src/spanningCellManager.js","../../node_modules/table/dist/src/validateSpanningCellConfig.js","../../node_modules/table/dist/src/makeTableConfig.js","../../node_modules/table/dist/src/validateTableData.js","../../node_modules/table/dist/src/table.js","../../node_modules/table/dist/src/types/api.js","../../node_modules/table/dist/src/index.js","../../src/pages/stats.tsx","../../src/styles/ThemePage.tsx","../../src/App.tsx","../../node_modules/redux-logger/dist/redux-logger.js","../../node_modules/redux-persist/es/constants.js","../../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../../node_modules/redux-persist/es/createPersistoid.js","../../node_modules/redux-persist/es/getStoredState.js","../../node_modules/redux-persist/es/purgeStoredState.js","../../node_modules/redux-persist/es/persistReducer.js","../../node_modules/redux-persist/es/stateReconciler/autoMergeLevel2.js","../../node_modules/redux-persist/es/persistCombineReducers.js","../../node_modules/redux-persist/es/persistStore.js","../../node_modules/redux-persist/es/createMigrate.js","../../node_modules/redux-persist/es/createTransform.js","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/_assignValue.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/_baseSet.js","../../node_modules/lodash/set.js","../../node_modules/lodash/last.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_parent.js","../../node_modules/lodash/_baseUnset.js","../../node_modules/lodash/unset.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/_basePickBy.js","../../node_modules/lodash/_getPrototype.js","../../node_modules/lodash/_getSymbolsIn.js","../../node_modules/lodash/_nativeKeysIn.js","../../node_modules/lodash/_baseKeysIn.js","../../node_modules/lodash/keysIn.js","../../node_modules/lodash/_getAllKeysIn.js","../../node_modules/lodash/pickBy.js","../../node_modules/lodash/isEmpty.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_castFunction.js","../../node_modules/lodash/forIn.js","../../node_modules/lodash/_arrayEach.js","../../node_modules/lodash/_copyObject.js","../../node_modules/lodash/_baseAssign.js","../../node_modules/lodash/_baseAssignIn.js","../../node_modules/lodash/_cloneBuffer.js","../../node_modules/lodash/_copyArray.js","../../node_modules/lodash/_copySymbols.js","../../node_modules/lodash/_copySymbolsIn.js","../../node_modules/lodash/_initCloneArray.js","../../node_modules/lodash/_cloneArrayBuffer.js","../../node_modules/lodash/_cloneDataView.js","../../node_modules/lodash/_cloneRegExp.js","../../node_modules/lodash/_cloneSymbol.js","../../node_modules/lodash/_cloneTypedArray.js","../../node_modules/lodash/_initCloneByTag.js","../../node_modules/lodash/_baseCreate.js","../../node_modules/lodash/_initCloneObject.js","../../node_modules/lodash/_baseIsMap.js","../../node_modules/lodash/isMap.js","../../node_modules/lodash/_baseIsSet.js","../../node_modules/lodash/isSet.js","../../node_modules/lodash/_baseClone.js","../../node_modules/lodash/cloneDeep.js","../../node_modules/redux-persist-transform-filter/dist/index.js","../../node_modules/redux-persist/lib/stateReconciler/autoMergeLevel2.js","../../node_modules/redux-persist/lib/storage/getStorage.js","../../node_modules/redux-persist/lib/storage/createWebStorage.js","../../node_modules/redux-persist/lib/storage/index.js","../../src/redux/store.ts","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n };\n}\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
    {counter}
    \r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
    \r\n * {value}\r\n * \r\n *
    \r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n\nexport var PersistGate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(PersistGate, _PureComponent);\n\n function PersistGate() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, PersistGate);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n bootstrapped: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_unsubscribe\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"handlePersistorState\", function () {\n var persistor = _this.props.persistor;\n\n var _persistor$getState = persistor.getState(),\n bootstrapped = _persistor$getState.bootstrapped;\n\n if (bootstrapped) {\n if (_this.props.onBeforeLift) {\n Promise.resolve(_this.props.onBeforeLift()).finally(function () {\n return _this.setState({\n bootstrapped: true\n });\n });\n } else {\n _this.setState({\n bootstrapped: true\n });\n }\n\n _this._unsubscribe && _this._unsubscribe();\n }\n });\n\n return _this;\n }\n\n _createClass(PersistGate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n this.handlePersistorState();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._unsubscribe && this._unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n }\n\n if (typeof this.props.children === 'function') {\n return this.props.children(this.state.bootstrapped);\n }\n\n return this.state.bootstrapped ? this.props.children : this.props.loading;\n }\n }]);\n\n return PersistGate;\n}(PureComponent);\n\n_defineProperty(PersistGate, \"defaultProps\", {\n children: null,\n loading: null\n});","/**\n * @remix-run/router v1.23.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\nconst ABSOLUTE_URL_REGEX$1 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst isAbsoluteUrl = url => ABSOLUTE_URL_REGEX$1.test(url);\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname;\n if (toPathname) {\n if (isAbsoluteUrl(toPathname)) {\n pathname = toPathname;\n } else {\n if (toPathname.includes(\"//\")) {\n let oldPathname = toPathname;\n toPathname = toPathname.replace(/\\/\\/+/g, \"/\");\n warning(false, \"Pathnames cannot have embedded double slashes - normalizing \" + (oldPathname + \" -> \" + toPathname));\n }\n if (toPathname.startsWith(\"/\")) {\n pathname = resolvePathname(toPathname.substring(1), \"/\");\n } else {\n pathname = resolvePathname(toPathname, fromPathname);\n }\n }\n } else {\n pathname = fromPathname;\n }\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach(key => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach(key => deletedFetchers.delete(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts != null && opts.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ?\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a
    \n // which will default to a navigation to /page\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename, init.history);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename, init.history);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init3, _result$init4;\n if (result.data instanceof Error) {\n var _result$init, _result$init2;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: (_result$init2 = result.init) != null && _result$init2.headers ? new Headers(result.init.headers) : undefined\n };\n }\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(((_result$init3 = result.init) == null ? void 0 : _result$init3.status) || 500, undefined, result.data),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: (_result$init4 = result.init) != null && _result$init4.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: ((_result$init6 = result.init) == null ? void 0 : _result$init6.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init7, _result$init8;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init7 = result.init) == null ? void 0 : _result$init7.status,\n headers: (_result$init8 = result.init) != null && _result$init8.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename, historyInstance) {\n // Match Chrome's behavior:\n // https://github.com/chromium/chromium/blob/216dbeb61db0c667e62082e5f5400a32d6983df3/content/public/common/url_utils.cc#L82\n let invalidProtocols = [\"about:\", \"blob:\", \"chrome:\", \"chrome-untrusted:\", \"content:\", \"data:\", \"devtools:\", \"file:\", \"filesystem:\",\n // eslint-disable-next-line no-script-url\n \"javascript:\"];\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n try {\n let url = historyInstance.createURL(location);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n } catch (e) {}\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.30.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned$1 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned$1[key]) {\n alreadyWarned$1[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\nconst alreadyWarned = {};\nfunction warnOnce(key, message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\nconst logDeprecation = (flag, msg, link) => warnOnce(flag, \"\\u26A0\\uFE0F React Router Future Flag Warning: \" + msg + \". \" + (\"You can use the `\" + flag + \"` future flag to opt-in early. \") + (\"For more information, see \" + link + \".\"));\nfunction logV6DeprecationWarnings(renderFuture, routerFuture) {\n if ((renderFuture == null ? void 0 : renderFuture.v7_startTransition) === undefined) {\n logDeprecation(\"v7_startTransition\", \"React Router will begin wrapping state updates in `React.startTransition` in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\");\n }\n if ((renderFuture == null ? void 0 : renderFuture.v7_relativeSplatPath) === undefined && (!routerFuture || routerFuture.v7_relativeSplatPath === undefined)) {\n logDeprecation(\"v7_relativeSplatPath\", \"Relative route resolution within Splat routes is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\");\n }\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\"v7_fetcherPersist\", \"The persistence behavior of fetchers is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\");\n }\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\"v7_normalizeFormMethod\", \"Casing of `formMethod` fields is being normalized to uppercase in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\");\n }\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\"v7_partialHydration\", \"`RouterProvider` hydration behavior is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\");\n }\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\"v7_skipActionErrorRevalidation\", \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\");\n }\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n React.useEffect(() => logV6DeprecationWarnings(future, router.future), [router, future]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js python ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract} node\n *   Reference node (image, link).\n * @returns {Array}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: .\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","export const VOID       = -1;\nexport const PRIMITIVE  = 0;\nexport const ARRAY      = 1;\nexport const OBJECT     = 2;\nexport const DATE       = 3;\nexport const REGEXP     = 4;\nexport const MAP        = 5;\nexport const SET        = 6;\nexport const ERROR      = 7;\nexport const BIGINT     = 8;\n// export const SYMBOL = 9;\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n  const as = (out, index) => {\n    $.set(index, out);\n    return out;\n  };\n\n  const unpair = index => {\n    if ($.has(index))\n      return $.get(index);\n\n    const [type, value] = _[index];\n    switch (type) {\n      case PRIMITIVE:\n      case VOID:\n        return as(value, index);\n      case ARRAY: {\n        const arr = as([], index);\n        for (const index of value)\n          arr.push(unpair(index));\n        return arr;\n      }\n      case OBJECT: {\n        const object = as({}, index);\n        for (const [key, index] of value)\n          object[unpair(key)] = unpair(index);\n        return object;\n      }\n      case DATE:\n        return as(new Date(value), index);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as(new RegExp(source, flags), index);\n      }\n      case MAP: {\n        const map = as(new Map, index);\n        for (const [key, index] of value)\n          map.set(unpair(key), unpair(index));\n        return map;\n      }\n      case SET: {\n        const set = as(new Set, index);\n        for (const index of value)\n          set.add(unpair(index));\n        return set;\n      }\n      case ERROR: {\n        const {name, message} = value;\n        return as(new env[name](message), index);\n      }\n      case BIGINT:\n        return as(BigInt(value), index);\n      case 'BigInt':\n        return as(Object(BigInt(value)), index);\n      case 'ArrayBuffer':\n        return as(new Uint8Array(value).buffer, value);\n      case 'DataView': {\n        const { buffer } = new Uint8Array(value);\n        return as(new DataView(buffer), value);\n      }\n    }\n    return as(new env[type](value), index);\n  };\n\n  return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n  const type = typeof value;\n  if (type !== 'object' || !value)\n    return [PRIMITIVE, type];\n\n  const asString = toString.call(value).slice(8, -1);\n  switch (asString) {\n    case 'Array':\n      return [ARRAY, EMPTY];\n    case 'Object':\n      return [OBJECT, EMPTY];\n    case 'Date':\n      return [DATE, EMPTY];\n    case 'RegExp':\n      return [REGEXP, EMPTY];\n    case 'Map':\n      return [MAP, EMPTY];\n    case 'Set':\n      return [SET, EMPTY];\n    case 'DataView':\n      return [ARRAY, asString];\n  }\n\n  if (asString.includes('Array'))\n    return [ARRAY, asString];\n\n  if (asString.includes('Error'))\n    return [ERROR, asString];\n\n  return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n  TYPE === PRIMITIVE &&\n  (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n  const as = (out, value) => {\n    const index = _.push(out) - 1;\n    $.set(value, index);\n    return index;\n  };\n\n  const pair = value => {\n    if ($.has(value))\n      return $.get(value);\n\n    let [TYPE, type] = typeOf(value);\n    switch (TYPE) {\n      case PRIMITIVE: {\n        let entry = value;\n        switch (type) {\n          case 'bigint':\n            TYPE = BIGINT;\n            entry = value.toString();\n            break;\n          case 'function':\n          case 'symbol':\n            if (strict)\n              throw new TypeError('unable to serialize ' + type);\n            entry = null;\n            break;\n          case 'undefined':\n            return as([VOID], value);\n        }\n        return as([TYPE, entry], value);\n      }\n      case ARRAY: {\n        if (type) {\n          let spread = value;\n          if (type === 'DataView') {\n            spread = new Uint8Array(value.buffer);\n          }\n          else if (type === 'ArrayBuffer') {\n            spread = new Uint8Array(value);\n          }\n          return as([type, [...spread]], value);\n        }\n\n        const arr = [];\n        const index = as([TYPE, arr], value);\n        for (const entry of value)\n          arr.push(pair(entry));\n        return index;\n      }\n      case OBJECT: {\n        if (type) {\n          switch (type) {\n            case 'BigInt':\n              return as([type, value.toString()], value);\n            case 'Boolean':\n            case 'Number':\n            case 'String':\n              return as([type, value.valueOf()], value);\n          }\n        }\n\n        if (json && ('toJSON' in value))\n          return pair(value.toJSON());\n\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const key of keys(value)) {\n          if (strict || !shouldSkip(typeOf(value[key])))\n            entries.push([pair(key), pair(value[key])]);\n        }\n        return index;\n      }\n      case DATE:\n        return as([TYPE, value.toISOString()], value);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as([TYPE, {source, flags}], value);\n      }\n      case MAP: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const [key, entry] of value) {\n          if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n            entries.push([pair(key), pair(entry)]);\n        }\n        return index;\n      }\n      case SET: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const entry of value) {\n          if (strict || !shouldSkip(typeOf(entry)))\n            entries.push(pair(entry));\n        }\n        return index;\n      }\n    }\n\n    const {message} = value;\n    return as([TYPE, {name: type, message}], value);\n  };\n\n  return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n *  if `true`, will not throw errors on incompatible types, and behave more\n *  like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n  const _ = [];\n  return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n  /* c8 ignore start */\n  (any, options) => (\n    options && ('json' in options || 'lossy' in options) ?\n      deserialize(serialize(any, options)) : structuredClone(any)\n  ) :\n  (any, options) => deserialize(serialize(any, options));\n  /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract]?: ElementType & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there’s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","import { XMarkIcon } from \"@heroicons/react/24/outline\";\nimport React, { isValidElement } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport styled from \"styled-components\";\nimport {\n CloseButton,\n defaultBorderRadius,\n vscBackground,\n vscForeground,\n} from \"..\";\n\ninterface TextDialogProps {\n showDialog: boolean;\n onEnter: () => void;\n onClose: () => void;\n message?: string | JSX.Element;\n}\n\nconst ScreenCover = styled.div`\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.35);\n backdrop-filter: blur(0.5px);\n z-index: 100000;\n flex-direction: column;\n`;\n\nconst DialogContainer = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: ${vscForeground};\n background-color: ${vscBackground};\n border-radius: ${defaultBorderRadius};\n display: flex;\n flex-direction: column;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);\n word-wrap: break-word;\n`;\n\nconst TextDialog = (props: TextDialogProps) => {\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Escape\") {\n props.onClose();\n }\n };\n\n if (!isValidElement(props.message) && typeof props.message !== \"string\") {\n return null;\n }\n\n return (\n
    \n )}\n {canCut && (\n {\n onMenuItemClick(e);\n document.execCommand(\"cut\");\n }}\n >\n Cut\n
    \n )}\n {/* PASTING is currently broken, can't get the clipboard text */}\n {/* {canPaste && (\n {\n onMenuItemClick(e);\n const clipboardText = await navigator.clipboard.readText();\n // const out = await navigator.clipboard.read();\n if (clipboardText) {\n selectedRangeRef.current?.deleteContents();\n selectedRangeRef.current?.insertNode(\n document.createTextNode(clipboardText),\n );\n }\n }}\n >\n Paste\n
    \n )} */}\n {\n onMenuItemClick(e);\n ideMessenger.post(\"toggleDevTools\", undefined);\n }}\n >\n Open Dev Tools\n \n \n );\n};\n\nexport default OSRContextMenu;\n","import { usePostHog } from \"posthog-js/react\";\nimport { useEffect } from \"react\";\nimport { useLocation, useSearchParams } from \"react-router-dom\";\n\n/**\n * This is copied from here: https://posthog.com/tutorials/single-page-app-pageviews#tracking-pageviews-in-nextjs-app-router\n * They don't have a non-NextJS doc for React apps.\n */\nexport default function PostHogPageView() {\n const { pathname } = useLocation();\n const [searchParams] = useSearchParams();\n const posthog = usePostHog();\n\n // Track pageviews\n useEffect(() => {\n if (pathname && posthog) {\n let url = window.origin + pathname;\n\n if (searchParams.toString()) {\n url = url + `?${searchParams.toString()}`;\n }\n\n posthog.capture(\"$pageview\", {\n $current_url: url,\n pathname,\n });\n }\n }, [pathname, searchParams, posthog]);\n\n return null;\n}\n","import { OnboardingModes } from \"core/protocol/core\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Outlet, useLocation, useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { CustomScrollbarDiv } from \".\";\nimport { AuthProvider } from \"../context/Auth\";\nimport { IdeMessengerContext } from \"../context/IdeMessenger\";\nimport { LocalStorageProvider } from \"../context/LocalStorage\";\nimport TelemetryProviders from \"../hooks/TelemetryProviders\";\nimport { useWebviewListener } from \"../hooks/useWebviewListener\";\nimport { useAppDispatch, useAppSelector } from \"../redux/hooks\";\nimport { setCodeToEdit } from \"../redux/slices/editState\";\nimport { setDialogMessage, setShowDialog } from \"../redux/slices/uiSlice\";\nimport { enterEdit, exitEdit } from \"../redux/thunks/edit\";\nimport { saveCurrentSession } from \"../redux/thunks/session\";\nimport { fontSize, isMetaEquivalentKeyPressed } from \"../util\";\nimport { ROUTES } from \"../util/navigation\";\nimport { FatalErrorIndicator } from \"./config/FatalErrorNotice\";\nimport TextDialog from \"./dialogs\";\nimport { GenerateRuleDialog } from \"./GenerateRuleDialog\";\nimport { useMainEditor } from \"./mainInput/TipTapEditor\";\nimport {\n isNewUserOnboarding,\n OnboardingCard,\n useOnboardingCard,\n} from \"./OnboardingCard\";\nimport OSRContextMenu from \"./OSRContextMenu\";\nimport PostHogPageView from \"./PosthogPageView\";\n\nconst LayoutTopDiv = styled(CustomScrollbarDiv)`\n height: 100%;\n position: relative;\n overflow-x: hidden;\n`;\n\nconst GridDiv = styled.div`\n display: grid;\n grid-template-rows: 1fr auto;\n height: 100vh;\n overflow-x: visible;\n`;\n\nconst Layout = () => {\n const [showStagingIndicator, setShowStagingIndicator] = useState(false);\n const navigate = useNavigate();\n const location = useLocation();\n const dispatch = useAppDispatch();\n const onboardingCard = useOnboardingCard();\n const ideMessenger = useContext(IdeMessengerContext);\n\n const { mainEditor } = useMainEditor();\n const dialogMessage = useAppSelector((state) => state.ui.dialogMessage);\n\n const showDialog = useAppSelector((state) => state.ui.showDialog);\n const isInEdit = useAppSelector((store) => store.session.isInEdit);\n const isHome =\n location.pathname === ROUTES.HOME ||\n location.pathname === ROUTES.HOME_INDEX;\n\n useEffect(() => {\n (async () => {\n const response = await ideMessenger.request(\n \"controlPlane/getEnvironment\",\n undefined,\n );\n response.status === \"success\" &&\n setShowStagingIndicator(response.content.AUTH_TYPE.includes(\"staging\"));\n })();\n }, []);\n\n useWebviewListener(\n \"newSession\",\n async () => {\n navigate(ROUTES.HOME);\n if (isInEdit) {\n await dispatch(exitEdit({}));\n } else {\n await dispatch(\n saveCurrentSession({\n openNewSession: true,\n generateTitle: true,\n }),\n );\n }\n },\n [isInEdit],\n );\n\n useWebviewListener(\n \"isContinueInputFocused\",\n async () => {\n return false;\n },\n [isHome],\n isHome,\n );\n\n useWebviewListener(\n \"focusContinueInputWithNewSession\",\n async () => {\n navigate(ROUTES.HOME);\n if (isInEdit) {\n await dispatch(\n exitEdit({\n openNewSession: true,\n }),\n );\n } else {\n await dispatch(\n saveCurrentSession({\n openNewSession: true,\n generateTitle: true,\n }),\n );\n }\n },\n [isHome, isInEdit],\n isHome,\n );\n\n useWebviewListener(\n \"addModel\",\n async () => {\n navigate(\"/models\");\n },\n [navigate],\n );\n\n useWebviewListener(\n \"navigateTo\",\n async (data) => {\n if (data.toggle && location.pathname === data.path) {\n navigate(\"/\");\n } else {\n navigate(data.path);\n }\n },\n [location, navigate],\n );\n\n useWebviewListener(\n \"setupLocalConfig\",\n async () => {\n onboardingCard.open(OnboardingModes.LOCAL);\n },\n [],\n );\n\n useWebviewListener(\n \"freeTrialExceeded\",\n async () => {\n dispatch(setShowDialog(true));\n onboardingCard.setActiveTab(OnboardingModes.MODELS_ADD_ON);\n dispatch(\n setDialogMessage(\n
    \n \n
    ,\n ),\n );\n },\n [],\n );\n\n useWebviewListener(\n \"setupApiKey\",\n async () => {\n onboardingCard.open(OnboardingModes.API_KEY);\n },\n [],\n );\n\n useWebviewListener(\n \"focusEdit\",\n async () => {\n await ideMessenger.request(\"edit/addCurrentSelection\", undefined);\n await dispatch(enterEdit({ editorContent: mainEditor?.getJSON() }));\n mainEditor?.commands.focus();\n },\n [ideMessenger, mainEditor],\n );\n\n useWebviewListener(\n \"setCodeToEdit\",\n async (payload) => {\n dispatch(\n setCodeToEdit({\n codeToEdit: payload,\n }),\n );\n },\n [],\n );\n\n useWebviewListener(\n \"exitEditMode\",\n async () => {\n await dispatch(exitEdit({}));\n },\n [],\n );\n\n useWebviewListener(\n \"generateRule\",\n async () => {\n dispatch(setShowDialog(true));\n dispatch(setDialogMessage());\n },\n [],\n );\n\n useEffect(() => {\n const handleKeyDown = (event: any) => {\n if (isMetaEquivalentKeyPressed(event) && event.code === \"KeyC\") {\n const selection = window.getSelection()?.toString();\n if (selection) {\n setTimeout(() => {\n void navigator.clipboard.writeText(selection);\n }, 100);\n }\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, []);\n\n useEffect(() => {\n if (isNewUserOnboarding() && isHome) {\n onboardingCard.open();\n }\n }, [isHome]);\n\n return (\n \n \n \n \n {showStagingIndicator && (\n \n )}\n \n \n {\n dispatch(setShowDialog(false));\n }}\n onClose={() => {\n dispatch(setShowDialog(false));\n }}\n message={dialogMessage}\n />\n\n \n \n \n {/* The fatal error for chat is shown below input */}\n {!isHome && }\n \n \n
    \n \n \n \n \n );\n};\n\nexport default Layout;\n","import { ToolPolicy } from \"@continuedev/terminal-security\";\nimport { BuiltInToolNames } from \"core/tools/builtIn\";\nimport { clearToolPolicy, setToolPolicy } from \"../redux/slices/uiSlice\";\nimport { AppDispatch } from \"../redux/store\";\n\nconst validPolicyValues: ToolPolicy[] = [\n \"allowedWithPermission\",\n \"allowedWithoutPermission\",\n \"disabled\",\n];\nfunction migrateToolPolicies(dispatch: AppDispatch) {\n const toFromMap: Record = {\n [BuiltInToolNames.ReadFile]: [\"builtin_read_file\"],\n [BuiltInToolNames.EditExistingFile]: [\"builtin_edit_existing_file\"],\n [BuiltInToolNames.ReadCurrentlyOpenFile]: [\n \"builtin_read_currently_open_file\",\n ],\n [BuiltInToolNames.CreateNewFile]: [\"builtin_create_new_file\"],\n [BuiltInToolNames.RunTerminalCommand]: [\"builtin_run_terminal_command\"],\n [BuiltInToolNames.GrepSearch]: [\"builtin_grep_search\"],\n [BuiltInToolNames.FileGlobSearch]: [\"builtin_file_glob_search\"],\n [BuiltInToolNames.SearchWeb]: [\"builtin_search_web\"],\n [BuiltInToolNames.ViewDiff]: [\"builtin_view_diff\"],\n [BuiltInToolNames.LSTool]: [\"builtin_ls\"],\n [BuiltInToolNames.CreateRuleBlock]: [\"builtin_create_rule_block\"],\n [BuiltInToolNames.RequestRule]: [\"builtin_request_rule\"],\n [BuiltInToolNames.FetchUrlContent]: [\"builtin_fetch_url_content\"],\n [BuiltInToolNames.CodebaseTool]: [\"builtin_codebase\"],\n [BuiltInToolNames.ViewRepoMap]: [\"builtin_view_repo_map\"],\n [BuiltInToolNames.ViewSubdirectory]: [\"builtin_view_subdirectory\"],\n };\n const persistedRedux = localStorage.getItem(\"persist:root\");\n if (persistedRedux) {\n const uiState = JSON.parse(persistedRedux)?.ui;\n if (uiState) {\n const parsedSettings = JSON.parse(uiState)?.toolSettings;\n if (parsedSettings) {\n let migratedToolSettings = 0;\n Object.entries(toFromMap).forEach(([newToolName, oldToolNames]) => {\n for (const tool of oldToolNames) {\n if (\n tool in parsedSettings &&\n validPolicyValues.includes(parsedSettings[tool])\n ) {\n dispatch(\n setToolPolicy({\n toolName: newToolName,\n policy: parsedSettings[tool],\n }),\n );\n dispatch(clearToolPolicy(tool));\n migratedToolSettings++;\n }\n }\n });\n if (migratedToolSettings > 0) {\n console.log(\n `Migrated ${migratedToolSettings} tool policies successfully.`,\n );\n }\n }\n }\n }\n}\n\nexport function migrateLocalStorage(dispatch: AppDispatch) {\n migrateToolPolicies(dispatch);\n}\n","import { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { IdeMessengerContext } from \"../context/IdeMessenger\";\n\nimport { FromCoreProtocol } from \"core/protocol\";\nimport { useAppDispatch, useAppSelector } from \"../redux/hooks\";\nimport { setConfigLoading, setConfigResult } from \"../redux/slices/configSlice\";\nimport { setLastNonEditSessionEmpty } from \"../redux/slices/editState\";\nimport { updateIndexingStatus } from \"../redux/slices/indexingSlice\";\nimport {\n initializeProfilePreferences,\n setOrganizations,\n setSelectedOrgId,\n setSelectedProfile,\n} from \"../redux/slices/profilesSlice\";\nimport {\n addContextItemsAtIndex,\n newSession,\n setHasReasoningEnabled,\n setIsSessionMetadataLoading,\n setMode,\n} from \"../redux/slices/sessionSlice\";\nimport { setTTSActive } from \"../redux/slices/uiSlice\";\n\nimport { modelSupportsReasoning } from \"core/llm/autodetect\";\nimport { cancelStream } from \"../redux/thunks/cancelStream\";\nimport { handleApplyStateUpdate } from \"../redux/thunks/handleApplyStateUpdate\";\nimport { loadSession, refreshSessionMetadata } from \"../redux/thunks/session\";\nimport { updateFileSymbolsFromHistory } from \"../redux/thunks/updateFileSymbols\";\nimport {\n setDocumentStylesFromLocalStorage,\n setDocumentStylesFromTheme,\n} from \"../styles/theme\";\nimport { isJetBrains } from \"../util\";\nimport { setLocalStorage } from \"../util/localStorage\";\nimport { migrateLocalStorage } from \"../util/migrateLocalStorage\";\nimport { useWebviewListener } from \"./useWebviewListener\";\n\nfunction ParallelListeners() {\n const dispatch = useAppDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n const history = useAppSelector((store) => store.session.history);\n const isInEdit = useAppSelector((store) => store.session.isInEdit);\n const selectedProfileId = useAppSelector(\n (store) => store.profiles.selectedProfileId,\n );\n const reasoningSettings = useAppSelector(\n (store) => store.ui.reasoningSettings,\n );\n const hasDoneInitialConfigLoad = useRef(false);\n\n // Load symbols for chat on any session change\n const sessionId = useAppSelector((state) => state.session.id);\n const lastSessionId = useAppSelector((store) => store.session.lastSessionId);\n const [initialSessionId] = useState(sessionId || lastSessionId);\n\n const handleConfigUpdate = useCallback(\n async (isInitial: boolean, result: FromCoreProtocol[\"configUpdate\"][0]) => {\n const {\n result: configResult,\n profileId,\n organizations,\n selectedOrgId,\n } = result;\n if (isInitial && hasDoneInitialConfigLoad.current) {\n return;\n }\n hasDoneInitialConfigLoad.current = true;\n dispatch(setOrganizations(organizations));\n dispatch(setSelectedOrgId(selectedOrgId));\n dispatch(setSelectedProfile(profileId));\n dispatch(setConfigResult(configResult));\n\n const isNewProfileId = profileId && profileId !== selectedProfileId;\n\n if (isNewProfileId) {\n dispatch(\n initializeProfilePreferences({\n defaultSlashCommands: [],\n profileId,\n }),\n );\n }\n\n // Perform any actions needed with the config\n if (configResult.config?.ui?.fontSize) {\n setLocalStorage(\"fontSize\", configResult.config.ui.fontSize);\n document.body.style.fontSize = `${configResult.config.ui.fontSize}px`;\n }\n\n const chatModel = configResult.config?.selectedModelByRole.chat;\n const supportsReasoning = modelSupportsReasoning(chatModel);\n const isReasoningDisabled =\n chatModel?.completionOptions?.reasoning === false;\n const wasReasoningPreviouslyEnabled = chatModel?.title\n ? reasoningSettings[chatModel.title] !== false\n : true;\n dispatch(\n setHasReasoningEnabled(\n supportsReasoning &&\n !isReasoningDisabled &&\n wasReasoningPreviouslyEnabled,\n ),\n );\n },\n [dispatch, hasDoneInitialConfigLoad, selectedProfileId, reasoningSettings],\n );\n\n // Load config from the IDE\n useEffect(() => {\n async function initialLoadConfig() {\n dispatch(setIsSessionMetadataLoading(true));\n dispatch(setConfigLoading(true));\n const result = await ideMessenger.request(\n \"config/getSerializedProfileInfo\",\n undefined,\n );\n if (result.status === \"success\") {\n await handleConfigUpdate(true, result.content);\n }\n dispatch(setConfigLoading(false));\n if (initialSessionId) {\n await dispatch(\n loadSession({\n sessionId: initialSessionId,\n saveCurrentSession: false,\n }),\n );\n }\n }\n void initialLoadConfig();\n const interval = setInterval(() => {\n if (hasDoneInitialConfigLoad.current) {\n // Init to run on initial config load\n ideMessenger.post(\"docs/initStatuses\", undefined);\n void dispatch(updateFileSymbolsFromHistory());\n void dispatch(refreshSessionMetadata({}));\n\n // This triggers sending pending status to the GUI for relevant docs indexes\n clearInterval(interval);\n } else {\n void initialLoadConfig();\n }\n }, 2_000);\n\n return () => clearInterval(interval);\n }, [hasDoneInitialConfigLoad, ideMessenger, initialSessionId]);\n\n useWebviewListener(\n \"configUpdate\",\n async (update) => {\n if (!update) {\n return;\n }\n await handleConfigUpdate(false, update);\n },\n [handleConfigUpdate],\n );\n\n useEffect(() => {\n if (sessionId) {\n void dispatch(updateFileSymbolsFromHistory());\n }\n }, [sessionId]);\n\n // ON LOAD\n useEffect(() => {\n // Override persisted state\n void dispatch(cancelStream());\n\n const jetbrains = isJetBrains();\n setDocumentStylesFromLocalStorage(jetbrains);\n\n if (jetbrains) {\n // Save theme colors to local storage for immediate loading in JetBrains\n void ideMessenger\n .request(\"jetbrains/getColors\", undefined)\n .then((result) => {\n if (result.status === \"success\") {\n setDocumentStylesFromTheme(result.content);\n }\n });\n\n // Tell JetBrains the webview is ready\n void ideMessenger\n .request(\"jetbrains/onLoad\", undefined)\n .then((result) => {\n if (result.status === \"error\") {\n return;\n }\n\n const msg = result.content;\n (window as any).windowId = msg.windowId;\n (window as any).serverUrl = msg.serverUrl;\n (window as any).workspacePaths = msg.workspacePaths;\n (window as any).vscMachineId = msg.vscMachineId;\n (window as any).vscMediaUrl = msg.vscMediaUrl;\n });\n }\n }, []);\n\n useWebviewListener(\n \"jetbrains/setColors\",\n async (data) => {\n setDocumentStylesFromTheme(data);\n },\n [],\n );\n\n // IDE event listeners\n useWebviewListener(\n \"getWebviewHistoryLength\",\n async () => {\n return history.length;\n },\n [history],\n );\n\n useWebviewListener(\n \"getCurrentSessionId\",\n async () => {\n return sessionId;\n },\n [sessionId],\n );\n\n useWebviewListener(\"setInactive\", async () => {\n void dispatch(cancelStream());\n });\n\n useWebviewListener(\"loadAgentSession\", async (data) => {\n dispatch(newSession(data.session));\n dispatch(setMode(\"agent\"));\n });\n\n useWebviewListener(\"setTTSActive\", async (status) => {\n dispatch(setTTSActive(status));\n });\n\n useWebviewListener(\"addContextItem\", async (data) => {\n dispatch(\n addContextItemsAtIndex({\n index: data.historyIndex,\n contextItems: [data.item],\n }),\n );\n });\n\n useWebviewListener(\"indexing/statusUpdate\", async (data) => {\n dispatch(updateIndexingStatus(data));\n });\n\n useWebviewListener(\n \"updateApplyState\",\n async (state) => {\n void dispatch(handleApplyStateUpdate(state));\n },\n [],\n );\n\n useEffect(() => {\n if (!isInEdit) {\n dispatch(setLastNonEditSessionEmpty(history.length === 0));\n }\n }, [isInEdit, history]);\n\n useEffect(() => {\n migrateLocalStorage(dispatch);\n }, []);\n\n return <>;\n}\n\nexport default ParallelListeners;\n","import { ToolTip } from \"../gui/Tooltip\";\n\ninterface TabButtonProps {\n label: string;\n icon: React.ReactNode;\n isActive: boolean;\n onClick: () => void;\n tabId?: string;\n}\n\nexport function TabButton({\n label,\n icon,\n isActive,\n onClick,\n tabId,\n}: TabButtonProps) {\n return (\n \n \n {icon}\n \n
    \n \n );\n}\n","import { Divider } from \"./Divider\";\nimport { TabButton } from \"./TabButton\";\n\ninterface TabOption {\n id: string;\n label: string;\n component: React.ReactNode;\n icon: React.ReactNode;\n}\n\ninterface TabGroupProps {\n tabs: TabOption[];\n activeTab: string;\n onTabClick: (tabId: string) => void;\n label?: string;\n showTopDivider?: boolean;\n showBottomDivider?: boolean;\n className?: string;\n}\n\nexport function TabGroup({\n tabs,\n activeTab,\n onTabClick,\n label,\n showTopDivider = false,\n showBottomDivider = false,\n className = \"\",\n}: TabGroupProps) {\n return (\n
    \n {showTopDivider && }\n\n {label && (\n \n )}\n\n {tabs.map((tab) => (\n onTabClick(tab.id)}\n />\n ))}\n\n {showBottomDivider && }\n
    \n );\n}\n","import type { ToWebviewProtocol } from \"core/protocol\";\nimport { useNavigate } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useWebviewListener } from \"./useWebviewListener\";\n\nconst openGUITypes: (keyof ToWebviewProtocol)[] = [\n \"highlightedCode\",\n \"focusContinueInput\",\n \"focusContinueInputWithoutClear\",\n \"newSession\",\n];\n\nexport const useNavigationListener = () => {\n const navigate = useNavigate();\n\n for (const messageType of openGUITypes) {\n useWebviewListener(\n messageType,\n async (data) => {\n navigate(\"/\");\n setTimeout(() => {\n window.postMessage(\n {\n messageType,\n data,\n messageId: uuidv4(),\n },\n \"*\",\n );\n }, 200);\n },\n [navigate],\n );\n }\n};\n","import React from \"react\";\n\ninterface ConfigSectionProps {\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\n// ConfigSection for internal section organization within pages\n// Not used as page wrapper - that's handled by ConfigPageLayout\nexport function ConfigSection({\n title,\n children,\n className = \"\",\n}: ConfigSectionProps) {\n return (\n
    \n {title &&

    {title}

    }\n {children}\n
    \n );\n}\n","import { PlusIcon } from \"@heroicons/react/24/outline\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport { Button } from \"../../../components/ui\";\nimport { cn } from \"../../../util/cn\";\n\ninterface ConfigHeaderProps {\n title: string;\n subtext?: string;\n onAddClick?: () => void;\n addButtonTooltip?: string;\n className?: string;\n variant?: \"default\" | \"sm\";\n showAddButton?: boolean;\n}\n\nexport function ConfigHeader({\n title,\n subtext,\n onAddClick,\n addButtonTooltip = \"Add item\",\n className = \"\",\n variant = \"default\",\n showAddButton = true,\n}: ConfigHeaderProps) {\n const isSmall = variant === \"sm\";\n const marginBottom = isSmall ? \"mb-4\" : \"mb-6\";\n const titleSize = isSmall ? \"text-sm font-semibold\" : \"text-xl font-semibold\";\n const HeadingTag = isSmall ? \"h3\" : \"h2\";\n\n return (\n \n
    \n {title}\n {subtext &&

    {subtext}

    }\n
    \n {showAddButton && onAddClick && (\n \n \n \n \n \n )}\n \n );\n}\n","import { Cog6ToothIcon } from \"@heroicons/react/24/outline\";\nimport { useContext } from \"react\";\nimport { AssistantIcon } from \"../../../components/AssistantAndOrgListbox/AssistantIcon\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport { Button, Card, Divider, EmptyState } from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useAppSelector } from \"../../../redux/hooks\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\n\nexport function ConfigsSection() {\n const { profiles, selectedProfile } = useAuth();\n const ideMessenger = useContext(IdeMessengerContext);\n const configError = useAppSelector((state) => state.config.configError);\n\n function handleAddConfig() {\n void ideMessenger.request(\"config/newAssistantFile\", undefined);\n }\n\n function handleConfigureAgent(profileId: string) {\n ideMessenger.post(\"config/openProfile\", { profileId });\n }\n\n return (\n <>\n \n\n \n {profiles && profiles.length > 0 ? (\n profiles.map((profile, index) => {\n const isSelected = profile.id === selectedProfile?.id;\n const errors = isSelected ? configError : profile.errors;\n const hasFatalErrors =\n errors && errors.some((error) => error.fatal);\n const hasErrors = errors && errors.length > 0;\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {profile.title}\n \n {errors && errors.length > 0 && (\n
    \n {errors.map((error, errorIndex) => (\n {\n if (error.uri) {\n e.stopPropagation();\n ideMessenger.post(\"openFile\", {\n path: error.uri,\n });\n }\n }}\n key={errorIndex}\n className={`${\n error.fatal\n ? \"text-error bg-error/10\"\n : \"bg-yellow-500/10 text-yellow-500\"\n } break-all rounded border border-solid border-transparent px-2 py-1 text-xs ${error.uri ? \"cursor-pointer \" + (error.fatal ? \"hover:border-error\" : \"hover:border-yellow-500\") : \"\"}`}\n >\n {error.message.split(\"\\n\")[0]}\n
    \n ))}\n
    \n )}\n
    \n
    \n \n handleConfigureAgent(profile.id)}\n variant=\"ghost\"\n size=\"sm\"\n className=\"text-description-muted hover:enabled:text-foreground my-0 h-6 w-6 p-0\"\n >\n \n \n \n
    \n {index < profiles.length - 1 && }\n \n );\n })\n ) : (\n \n )}\n
    \n \n );\n}\n","import React from \"react\";\nimport \"../../../src/index.css\";\nimport {\n getAltKeyLabel,\n getFontSize,\n getMetaKeyLabel,\n getPlatform,\n} from \"../../util\";\nimport \"./Shortcut.css\";\n\ninterface ShortcutProps {\n children: string;\n}\n\nconst fontSize = getFontSize();\n\nconst metaKeys = [\"meta\", \"⌘\", \"ctrl\", \"cmd\", \"^\"];\nconst altKeys = [\"alt\", \"option\", \"opt\", \"⌥\"];\nconst modifierKeys = [...metaKeys, ...altKeys];\n\nconst getSpecialKeyMap = (platform: string): Record => ({\n uparrow: \"UpArrow ↑\",\n downarrow: \"DownArrow ↓\",\n leftarrow: \"LeftArrow ←\",\n rightarrow: \"RightArrow →\",\n enter: \"Enter ⏎\",\n esc: \"Esc\",\n backspace: platform === \"mac\" ? \"Delete ⌫\" : \"Backspace ⌫\",\n delete: platform === \"mac\" ? \"Delete ⌫\" : \"Backspace ⌫\",\n \"⌫\": platform === \"mac\" ? \"Delete ⌫\" : \"Backspace ⌫\",\n});\n\nconst parseShortcut = (shortcut: string, platform: string) => {\n if (!shortcut || typeof shortcut !== \"string\") {\n console.warn(\"Invalid shortcut provided:\", shortcut);\n return [];\n }\n\n const specialKeyMap = getSpecialKeyMap(platform);\n return shortcut\n .split(\",\")\n .map((combo) =>\n combo\n .trim()\n .split(\" \")\n .filter((key) => key)\n .map((key) => {\n const lowerKey = key.toLowerCase();\n if (metaKeys.includes(lowerKey)) return getMetaKeyLabel();\n if (altKeys.includes(lowerKey)) return getAltKeyLabel();\n return specialKeyMap[lowerKey] || capitalizeKey(key);\n }),\n )\n .filter((combo) => combo.length > 0);\n};\n\nconst capitalizeKey = (key: string) =>\n key.charAt(0).toUpperCase() + key.slice(1).toLowerCase();\n\nconst isSingleCharNonModifier = (key: string) =>\n key && key.length === 1 && /^[a-zA-Z0-9]$/.test(key);\n\nconst Shortcut: React.FC = ({ children }) => {\n const platform = getPlatform();\n if (!children || typeof children !== \"string\") {\n return Error: Invalid shortcut key;\n }\n\n const shortcuts = parseShortcut(children, platform);\n\n return (\n <>\n {shortcuts.map((combo, comboIndex) => (\n \n {combo.map((key, keyIndex) => (\n \n \n {key || \"?\"}\n \n {keyIndex < combo.length - 1 && (\n +\n )}\n \n ))}\n {comboIndex < shortcuts.length - 1 && (\n ,\n )}\n \n ))}\n \n );\n};\n\nexport default Shortcut;\n","import React from \"react\";\nimport { Button } from \"../../../components/ui/Button\";\nimport { cn } from \"../../../util/cn\";\n\nexport interface ConfigRowProps {\n title: string;\n description: string;\n icon?: React.ComponentType>;\n onClick?: () => void;\n disabled?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport function ConfigRow({\n title,\n description,\n icon: Icon,\n onClick,\n disabled = false,\n children,\n className = \"\",\n}: ConfigRowProps) {\n const baseClasses =\n \"flex items-start justify-between rounded-md transition-colors px-4 py-3\";\n const interactiveClasses = onClick\n ? \"hover:bg-list-hover cursor-pointer\"\n : \"\";\n const disabledClasses = disabled ? \"opacity-50 cursor-not-allowed\" : \"\";\n\n const handleClick = (event: React.MouseEvent) => {\n if (!disabled && onClick) {\n const target = event.target as HTMLElement;\n const isInteractiveChild = target.closest(\n 'button, input, textarea, select, [role=\"button\"], [role=\"switch\"]',\n );\n\n if (\n !isInteractiveChild ||\n target.closest(\"[data-config-row]\") === event.currentTarget\n ) {\n onClick();\n }\n }\n };\n\n if (onClick) {\n return (\n \n
    \n {title}\n

    {description}

    \n
    \n
    \n {children}\n {Icon && }\n
    \n \n );\n }\n\n return (\n \n
    \n {title}\n

    {description}

    \n
    \n
    \n {children}\n {Icon && }\n
    \n \n );\n}\n","import {\n DocumentArrowUpIcon,\n LinkIcon,\n NumberedListIcon,\n PaintBrushIcon,\n TableCellsIcon,\n} from \"@heroicons/react/24/outline\";\nimport { useContext, useMemo } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Shortcut from \"../../../components/gui/Shortcut\";\nimport { Card } from \"../../../components/ui\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { setOnboardingCard } from \"../../../redux/slices/uiSlice\";\nimport { saveCurrentSession } from \"../../../redux/thunks/session\";\nimport { isJetBrains } from \"../../../util\";\nimport { ROUTES } from \"../../../util/navigation\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport { ConfigRow } from \"../components/ConfigRow\";\n\ninterface KeyboardShortcutProps {\n shortcut: string;\n description: string;\n isEven: boolean;\n}\n\nfunction KeyboardShortcut(props: KeyboardShortcutProps) {\n return (\n \n
    \n {props.description}:\n
    \n
    \n {props.shortcut}\n
    \n \n );\n}\n\n// Shortcut strings will be rendered correctly based on the platform by the Shortcut component\nconst vscodeShortcuts: Omit[] = [\n {\n shortcut: \"cmd '\",\n description: \"Toggle Selected Model\",\n },\n {\n shortcut: \"cmd I\",\n description: \"Edit highlighted code\",\n },\n {\n shortcut: \"cmd L\",\n description:\n \"New Chat / New Chat With Selected Code / Close Continue Sidebar If Chat Already In Focus\",\n },\n {\n shortcut: \"cmd backspace\",\n description: \"Cancel response\",\n },\n {\n shortcut: \"cmd shift I\",\n description: \"Toggle inline edit focus\",\n },\n {\n shortcut: \"cmd shift L\",\n description:\n \"Focus Current Chat / Add Selected Code To Current Chat / Close Continue Sidebar If Chat Already In Focus\",\n },\n {\n shortcut: \"cmd shift R\",\n description: \"Debug Terminal\",\n },\n {\n shortcut: \"cmd shift backspace\",\n description: \"Reject Diff\",\n },\n {\n shortcut: \"cmd shift enter\",\n description: \"Accept Diff\",\n },\n {\n shortcut: \"alt cmd N\",\n description: \"Reject Top Change in Diff\",\n },\n {\n shortcut: \"alt cmd Y\",\n description: \"Accept Top Change in Diff\",\n },\n {\n shortcut: \"cmd K cmd A\",\n description: \"Toggle Autocomplete Enabled\",\n },\n {\n shortcut: \"cmd alt space\",\n description: \"Force an Autocomplete Trigger\",\n },\n {\n shortcut: \"cmd K cmd M\",\n description: \"Toggle Full Screen\",\n },\n];\n\nconst jetbrainsShortcuts: Omit[] = [\n {\n shortcut: \"cmd '\",\n description: \"Toggle Selected Model\",\n },\n {\n shortcut: \"cmd I\",\n description: \"Edit highlighted code\",\n },\n {\n shortcut: \"cmd J\",\n description:\n \"New Chat / New Chat With Selected Code / Close Continue Sidebar If Chat Already In Focus\",\n },\n {\n shortcut: \"cmd backspace\",\n description: \"Cancel response\",\n },\n {\n shortcut: \"cmd shift I\",\n description: \"Toggle inline edit focus\",\n },\n {\n shortcut: \"cmd shift J\",\n description:\n \"Focus Current Chat / Add Selected Code To Current Chat / Close Continue Sidebar If Chat Already In Focus\",\n },\n {\n shortcut: \"cmd shift backspace\",\n description: \"Reject Diff\",\n },\n {\n shortcut: \"cmd shift enter\",\n description: \"Accept Diff\",\n },\n {\n shortcut: \"alt shift J\",\n description: \"Quick Input\",\n },\n {\n shortcut: \"alt cmd J\",\n description: \"Toggle Sidebar\",\n },\n];\n\nexport function HelpSection() {\n const ideMessenger = useContext(IdeMessengerContext);\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n\n const currentSession = useAppSelector((state) => state.session);\n\n const shortcuts = useMemo(() => {\n return isJetBrains() ? jetbrainsShortcuts : vscodeShortcuts;\n }, []);\n\n const handleViewSessionData = async () => {\n const sessionData = await ideMessenger.request(\"history/load\", {\n id: currentSession.id,\n });\n\n if (sessionData.status === \"success\") {\n await ideMessenger.request(\"showVirtualFile\", {\n name: `${sessionData.content.title}.json`,\n content: JSON.stringify(sessionData.content, null, 2),\n });\n }\n };\n\n return (\n
    \n \n
    \n {/* Resources */}\n
    \n

    Resources

    \n \n
    \n \n ideMessenger.post(\"openUrl\", \"https://docs.continue.dev/\")\n }\n />\n\n \n ideMessenger.post(\n \"openUrl\",\n \"https://github.com/continuedev/continue/issues/new/choose\",\n )\n }\n />\n\n \n ideMessenger.post(\n \"openUrl\",\n \"https://github.com/continuedev/continue/discussions\",\n )\n }\n />\n
    \n
    \n
    \n\n {/* Tools */}\n
    \n

    Tools

    \n \n
    \n navigate(ROUTES.STATS)}\n />\n\n {currentSession.history.length > 0 &&\n !currentSession.isStreaming && (\n \n )}\n\n {\n navigate(\"/\");\n // Used to clear the chat panel before showing onboarding card\n await dispatch(\n saveCurrentSession({\n openNewSession: true,\n generateTitle: true,\n }),\n );\n dispatch(\n setOnboardingCard({\n show: true,\n activeTab: undefined,\n }),\n );\n ideMessenger.post(\"showTutorial\", undefined);\n }}\n />\n\n {process.env.NODE_ENV === \"development\" && (\n {\n navigate(ROUTES.THEME);\n }}\n />\n )}\n
    \n
    \n
    \n\n {/* Keyboard Shortcuts */}\n
    \n

    Keyboard Shortcuts

    \n \n
    \n {shortcuts.map((shortcut, i) => {\n return (\n \n );\n })}\n
    \n
    \n
    \n
    \n
    \n );\n}\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import z from \"zod\";\n\nimport {\n BrowserSerializedContinueConfig,\n Config,\n ContinueConfig,\n SerializedContinueConfig,\n} from \"..\";\n\nexport const sharedConfigSchema = z\n .object({\n // boolean fields in config.json\n allowAnonymousTelemetry: z.boolean(),\n disableIndexing: z.boolean(),\n disableSessionTitles: z.boolean(),\n\n // `experimental` in `ContinueConfig`\n useChromiumForDocsCrawling: z.boolean(),\n readResponseTTS: z.boolean(),\n promptPath: z.string(),\n useCurrentFileAsContext: z.boolean(),\n enableExperimentalTools: z.boolean(),\n onlyUseSystemMessageTools: z.boolean(),\n codebaseToolCallingOnly: z.boolean(),\n enableStaticContextualization: z.boolean(),\n\n // `ui` in `ContinueConfig`\n showSessionTabs: z.boolean(),\n codeBlockToolbarPosition: z.enum([\"top\", \"bottom\"]),\n fontSize: z.number(),\n codeWrap: z.boolean(),\n displayRawMarkdown: z.boolean(),\n showChatScrollbar: z.boolean(),\n continueAfterToolRejection: z.boolean(),\n\n // `tabAutocompleteOptions` in `ContinueConfig`\n useAutocompleteCache: z.boolean(),\n useAutocompleteMultilineCompletions: z.enum([\"always\", \"never\", \"auto\"]),\n disableAutocompleteInFiles: z.array(z.string()),\n modelTimeout: z.number(),\n debounceDelay: z.number(),\n })\n .partial();\n\nexport type SharedConfigSchema = z.infer;\n\n// For security in case of damaged config file, try to salvage any security-related values\nexport function salvageSharedConfig(sharedConfig: object): SharedConfigSchema {\n const salvagedConfig: SharedConfigSchema = {};\n if (\"allowAnonymousTelemetry\" in sharedConfig) {\n const val = z.boolean().safeParse(sharedConfig.allowAnonymousTelemetry);\n if (val.success) {\n salvagedConfig.allowAnonymousTelemetry = val.data;\n }\n }\n if (\"disableIndexing\" in sharedConfig) {\n const val = z.boolean().safeParse(sharedConfig.disableIndexing);\n if (val.success) {\n salvagedConfig.disableIndexing = val.data;\n }\n }\n if (\"disableSessionTitles\" in sharedConfig) {\n const val = z.boolean().safeParse(sharedConfig.disableSessionTitles);\n if (val.success) {\n salvagedConfig.disableSessionTitles = val.data;\n }\n }\n if (\"disableAutocompleteInFiles\" in sharedConfig) {\n const val = sharedConfigSchema.shape.disableAutocompleteInFiles.safeParse(\n sharedConfig.disableAutocompleteInFiles,\n );\n if (val.success) {\n salvagedConfig.disableAutocompleteInFiles = val.data;\n }\n }\n return salvagedConfig;\n}\n\n// Apply shared config to all forms of config\n// - SerializedContinueConfig (config.json)\n// - Config (\"intermediate\") - passed to config.ts\n// - ContinueConfig\n// - BrowserSerializedContinueConfig (final converted to be passed to GUI)\n\n// This modify function is split into two steps\n// - rectifySharedModelsFromSharedConfig - includes boolean flags like allowAnonymousTelemetry which\n// must be added BEFORE config.ts and remote server config apply for JSON\n// for security reasons\n// - setSharedModelsFromSharedConfig - exists because of selectedModelsByRole\n// Which don't exist on SerializedContinueConfig/Config types, so must be added after the fact\nexport function modifyAnyConfigWithSharedConfig<\n T extends\n | ContinueConfig\n | BrowserSerializedContinueConfig\n | Config\n | SerializedContinueConfig,\n>(continueConfig: T, sharedConfig: SharedConfigSchema): T {\n const configCopy = { ...continueConfig };\n configCopy.tabAutocompleteOptions = {\n ...configCopy.tabAutocompleteOptions,\n };\n if (sharedConfig.useAutocompleteCache !== undefined) {\n configCopy.tabAutocompleteOptions.useCache =\n sharedConfig.useAutocompleteCache;\n }\n if (sharedConfig.useAutocompleteMultilineCompletions !== undefined) {\n configCopy.tabAutocompleteOptions.multilineCompletions =\n sharedConfig.useAutocompleteMultilineCompletions;\n }\n if (sharedConfig.disableAutocompleteInFiles !== undefined) {\n configCopy.tabAutocompleteOptions.disableInFiles =\n sharedConfig.disableAutocompleteInFiles;\n }\n if (sharedConfig.modelTimeout !== undefined) {\n configCopy.tabAutocompleteOptions.modelTimeout = sharedConfig.modelTimeout;\n }\n if (sharedConfig.debounceDelay !== undefined) {\n configCopy.tabAutocompleteOptions.debounceDelay =\n sharedConfig.debounceDelay;\n }\n\n configCopy.ui = {\n ...configCopy.ui,\n };\n\n if (sharedConfig.codeBlockToolbarPosition !== undefined) {\n configCopy.ui.codeBlockToolbarPosition =\n sharedConfig.codeBlockToolbarPosition;\n }\n if (sharedConfig.fontSize !== undefined) {\n configCopy.ui.fontSize = sharedConfig.fontSize;\n }\n if (sharedConfig.codeWrap !== undefined) {\n configCopy.ui.codeWrap = sharedConfig.codeWrap;\n }\n if (sharedConfig.displayRawMarkdown !== undefined) {\n configCopy.ui.displayRawMarkdown = sharedConfig.displayRawMarkdown;\n }\n if (sharedConfig.showChatScrollbar !== undefined) {\n configCopy.ui.showChatScrollbar = sharedConfig.showChatScrollbar;\n }\n\n if (sharedConfig.allowAnonymousTelemetry !== undefined) {\n configCopy.allowAnonymousTelemetry = sharedConfig.allowAnonymousTelemetry;\n }\n if (sharedConfig.disableIndexing !== undefined) {\n configCopy.disableIndexing = sharedConfig.disableIndexing;\n }\n if (sharedConfig.disableSessionTitles !== undefined) {\n configCopy.disableSessionTitles = sharedConfig.disableSessionTitles;\n }\n\n if (sharedConfig.showSessionTabs !== undefined) {\n configCopy.ui.showSessionTabs = sharedConfig.showSessionTabs;\n }\n\n if (sharedConfig.continueAfterToolRejection !== undefined) {\n configCopy.ui.continueAfterToolRejection =\n sharedConfig.continueAfterToolRejection;\n }\n\n configCopy.experimental = {\n ...configCopy.experimental,\n };\n\n if (sharedConfig.enableExperimentalTools !== undefined) {\n configCopy.experimental.enableExperimentalTools =\n sharedConfig.enableExperimentalTools;\n }\n\n if (sharedConfig.promptPath !== undefined) {\n configCopy.experimental.promptPath = sharedConfig.promptPath;\n }\n if (sharedConfig.useChromiumForDocsCrawling !== undefined) {\n configCopy.experimental.useChromiumForDocsCrawling =\n sharedConfig.useChromiumForDocsCrawling;\n }\n if (sharedConfig.readResponseTTS !== undefined) {\n configCopy.experimental.readResponseTTS = sharedConfig.readResponseTTS;\n }\n if (sharedConfig.useCurrentFileAsContext !== undefined) {\n configCopy.experimental.useCurrentFileAsContext =\n sharedConfig.useCurrentFileAsContext;\n }\n\n if (sharedConfig.onlyUseSystemMessageTools !== undefined) {\n configCopy.experimental.onlyUseSystemMessageTools =\n sharedConfig.onlyUseSystemMessageTools;\n }\n\n if (sharedConfig.codebaseToolCallingOnly !== undefined) {\n configCopy.experimental.codebaseToolCallingOnly =\n sharedConfig.codebaseToolCallingOnly;\n }\n if (sharedConfig.enableStaticContextualization !== undefined) {\n configCopy.experimental.enableStaticContextualization =\n sharedConfig.enableStaticContextualization;\n }\n\n return configCopy;\n}\n","import { InformationCircleIcon } from \"@heroicons/react/24/outline\";\nimport React, { ReactNode } from \"react\";\nimport { vscButtonBackground } from \"..\";\nimport { ToolTip } from \"./Tooltip\";\n\ntype ToggleSwitchProps = {\n isToggled: boolean;\n onToggle: () => void;\n text: string;\n size?: number;\n showIfToggled?: ReactNode;\n disabled?: boolean;\n tooltip?: string;\n};\n\nconst ToggleSwitch: React.FC = ({\n isToggled,\n onToggle,\n text,\n size = 16,\n showIfToggled,\n disabled = false,\n tooltip,\n}) => {\n return (\n \n \n {text}{\" \"}\n {tooltip && (\n \n \n \n )}\n \n
    \n {isToggled && !!showIfToggled && showIfToggled}\n {\n e.stopPropagation();\n onToggle();\n }\n }\n style={{\n height: size,\n width: size * 2,\n padding: size / 8,\n }}\n >\n \n
    \n \n \n );\n};\n\nexport default ToggleSwitch;\n","import {\n CheckIcon,\n ChevronDownIcon,\n XMarkIcon,\n} from \"@heroicons/react/24/outline\";\nimport React from \"react\";\nimport ToggleSwitch from \"../../../components/gui/Switch\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"../../../components/ui\";\n\ninterface BaseUserSettingProps {\n title: string;\n description: React.ReactNode;\n disabled?: boolean;\n}\n\ninterface ToggleUserSettingProps extends BaseUserSettingProps {\n type: \"toggle\";\n value: boolean;\n onChange: (value: boolean) => void;\n}\n\ninterface NumberUserSettingProps extends BaseUserSettingProps {\n type: \"number\";\n value: number;\n onChange: (value: number) => void;\n min?: number;\n max?: number;\n}\n\ninterface SelectUserSettingProps extends BaseUserSettingProps {\n type: \"select\";\n value: string;\n onChange: (value: string) => void;\n options: { label: string; value: string }[];\n}\n\ninterface InputUserSettingProps extends BaseUserSettingProps {\n type: \"input\";\n value: string;\n onChange: (value: string) => void;\n className?: string;\n placeholder?: string;\n onSubmit?: () => void;\n onCancel?: () => void;\n isDirty?: boolean;\n isValid?: boolean;\n}\n\ntype UserSettingProps =\n | ToggleUserSettingProps\n | NumberUserSettingProps\n | SelectUserSettingProps\n | InputUserSettingProps;\n\nexport function UserSetting(props: UserSettingProps) {\n const { title, description, disabled = false } = props;\n\n const renderControl = () => {\n switch (props.type) {\n case \"toggle\":\n return (\n props.onChange(!props.value)}\n text=\"\"\n />\n );\n\n case \"number\":\n return (\n
    \n {\n const value = Number(e.target.value);\n // Allow temporary invalid values during input\n props.onChange(value);\n }}\n onBlur={(e) => {\n // Apply min/max constraints when input loses focus\n const value = Number(e.target.value);\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n\n if (value < min) {\n props.onChange(min);\n } else if (value > max) {\n props.onChange(max);\n }\n }}\n onKeyDown={(e) => {\n // Apply constraints when user presses Enter\n if (e.key === \"Enter\") {\n const value = Number(e.currentTarget.value);\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n\n if (value < min) {\n props.onChange(min);\n } else if (value > max) {\n props.onChange(max);\n }\n\n // Blur the input to complete the editing\n e.currentTarget.blur();\n }\n }}\n min={props.min ?? 0}\n max={props.max ?? 100}\n disabled={disabled}\n className=\"text-vsc-foreground flex-1 border-none bg-transparent px-2 py-1 text-right outline-none focus:outline-none focus:ring-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n />\n
    \n );\n\n case \"select\":\n return (\n \n \n {props.options.find((opt) => opt.value === props.value)?.label ||\n props.value}\n \n \n \n {props.options.map((option) => (\n \n {option.label}\n \n ))}\n \n \n );\n\n case \"input\":\n if (props.onSubmit) {\n return (\n {\n e.preventDefault();\n props.onSubmit?.();\n }}\n >\n
    \n \n props.onChange(e.target.value)}\n placeholder={props.placeholder}\n disabled={disabled}\n className=\"text-vsc-foreground flex-1 border-none bg-inherit px-1.5 py-1 outline-none ring-0 focus:border-none focus:outline-none focus:ring-0 disabled:cursor-not-allowed\"\n />\n
    \n {props.isDirty && (\n
    \n \n
    \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n \n );\n }\n return (\n \n props.onChange(e.target.value)}\n disabled={disabled}\n className=\"text-vsc-foreground flex-1 border-none bg-inherit px-1.5 py-1 outline-none ring-0 focus:border-none focus:outline-none focus:ring-0 disabled:cursor-not-allowed\"\n />\n \n );\n\n default:\n return null;\n }\n };\n\n // Use vertical layout for input types, horizontal for others\n const isInputType = props.type === \"input\";\n\n if (isInputType) {\n return (\n
    \n
    \n {title}\n
    {description}
    \n
    \n {renderControl()}\n
    \n );\n }\n\n return (\n
    \n
    \n {title}\n
    {description}
    \n
    \n {renderControl()}\n
    \n );\n}\n","import { useDispatch } from \"react-redux\";\nimport { setDialogMessage, setShowDialog } from \"../../redux/slices/uiSlice\";\nimport { Button } from \"../ui/Button\";\n\ninterface ConfirmationDialogProps {\n onConfirm: () => void;\n onCancel?: () => void;\n text: string;\n title?: string;\n hideCancelButton?: boolean;\n confirmText?: string;\n}\n\nfunction ConfirmationDialog(props: ConfirmationDialogProps) {\n const dispatch = useDispatch();\n\n return (\n
    \n

    \n {props.title ?? \"Confirmation\"}\n

    \n

    \n {props.text}\n

    \n\n
    \n {!!props.hideCancelButton || (\n {\n dispatch(setShowDialog(false));\n dispatch(setDialogMessage(undefined));\n props.onCancel?.();\n }}\n >\n Cancel\n \n )}\n {\n props.onConfirm();\n dispatch(setShowDialog(false));\n dispatch(setDialogMessage(undefined));\n }}\n >\n {props.confirmText ?? \"Confirm\"}\n \n
    \n
    \n );\n}\n\nexport default ConfirmationDialog;\n","import { IndexingProgressUpdate } from \"core\";\nimport { getProgressPercentage } from \"./IndexingProgress\";\n\nexport interface IndexingProgressBarProps {\n update: IndexingProgressUpdate;\n}\n\nfunction IndexingProgressBar({ update }: IndexingProgressBarProps) {\n // Show 100% red progress bar if indexing failed\n const progressPercentage =\n update.status === \"failed\" ? 100 : getProgressPercentage(update.progress);\n\n return (\n
    \n \n
    \n );\n}\n\nexport default IndexingProgressBar;\n","import {\n ArrowTopRightOnSquareIcon,\n ChevronRightIcon,\n ClipboardIcon,\n XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { IndexingProgressUpdate } from \"core\";\nimport { useContext, useState } from \"react\";\nimport { GhostButton } from \"../../../../components\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\nimport { useAppSelector } from \"../../../../redux/hooks\";\n\nexport interface IndexingProgressErrorTextProps {\n update: IndexingProgressUpdate;\n}\n\nconst copyWarningsToClipboard = (warnings: string[] = []) => {\n const warningsText = warnings.join(\"\\n\");\n void navigator.clipboard.writeText(warningsText);\n};\n\nfunction IndexingProgressErrorText({ update }: IndexingProgressErrorTextProps) {\n const ideMessenger = useContext(IdeMessengerContext);\n const [showWarnings, setShowWarnings] = useState(false);\n const embeddingsProvider = useAppSelector(\n (state) => state.config.config.selectedModelByRole.embed,\n );\n\n if (!embeddingsProvider) {\n return (\n
    \n \n \n Add an Embeddings model to enable codebase indexing. See the docs for\n examples:\n \n https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers\n \n \n
    \n );\n }\n\n // Show warnings if they exist (for completed indexing with warnings)\n if (\n update.warnings &&\n update.warnings.length > 0 &&\n update.status !== \"failed\"\n ) {\n return (\n
    \n setShowWarnings(!showWarnings)}\n >\n \n {update.warnings.length} warning\n {update.warnings.length > 1 ? \"s\" : \"\"} during indexing\n \n \n
    \n\n \n {/* Warning messages */}\n
    \n {update.warnings.map((warning, index) => (\n
    \n • {warning}\n
    \n ))}\n
    \n\n {/* Action Buttons */}\n
    \n {/* Copy all warnings to clipboard */}\n copyWarningsToClipboard(update.warnings)}\n className=\"flex items-center !px-1.5 !py-0.5 text-xs\"\n >\n \n Copy output\n \n\n {/* Open dev tools to view logs */}\n {\n ideMessenger.post(\"toggleDevTools\", undefined);\n }}\n className=\"flex items-center !px-1.5 !py-0.5 text-xs\"\n >\n \n View Logs\n \n
    \n \n \n );\n }\n\n // Show error for failed status\n return (\n
    \n \n {update.desc}\n
    \n );\n}\n\nexport default IndexingProgressErrorText;\n","import {\n ArrowPathIcon,\n CheckCircleIcon,\n PauseCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { IndexingProgressUpdate } from \"core\";\nimport { getProgressPercentage } from \"./IndexingProgress\";\n\nexport interface IndexingProgressIndicatorProps {\n update: IndexingProgressUpdate;\n}\n\nconst STATUS_TO_ICON: Record = {\n disabled: null,\n loading: null,\n waiting: null,\n indexing: ArrowPathIcon,\n paused: PauseCircleIcon,\n done: CheckCircleIcon,\n failed: null, // Since we show an erorr message below\n cancelled: null,\n};\n\nfunction IndexingProgressIndicator({ update }: IndexingProgressIndicatorProps) {\n const progressPercentage = getProgressPercentage(update.progress).toFixed(0);\n const Icon = STATUS_TO_ICON[update.status];\n const animateIcon = update.status === \"indexing\";\n const showProgress =\n update.status !== \"disabled\" && progressPercentage !== \"100\";\n\n return (\n
    \n {showProgress && {progressPercentage}%}\n\n {Icon && (\n
    \n \n
    \n )}\n
    \n );\n}\n\nexport default IndexingProgressIndicator;\n","import { IndexingProgressUpdate } from \"core\";\n\nexport interface IndexingProgressSubtextProps {\n update: IndexingProgressUpdate;\n onClick: () => void;\n}\n\nconst STATUS_TO_SUBTITLE_TEXT: Record<\n IndexingProgressUpdate[\"status\"],\n string | undefined\n> = {\n done: \"Click to re-index\",\n loading: \"\",\n waiting: \"\",\n indexing: \"Click to pause\",\n paused: \"Click to resume\",\n failed: \"Click to retry\",\n disabled: \"Click to open configuration\",\n cancelled: \"Click to restart\",\n};\n\nfunction IndexingProgressSubtext({\n update,\n onClick,\n}: IndexingProgressSubtextProps) {\n const showIndexingDesc = update.status === \"indexing\";\n\n return (\n
    \n \n {STATUS_TO_SUBTITLE_TEXT[update.status]}\n \n\n
    \n {showIndexingDesc && (\n \n {update.desc}\n \n )}\n
    \n
    \n );\n}\n\nexport default IndexingProgressSubtext;\n","import { IndexingProgressUpdate } from \"core\";\nimport { AnimatedEllipsis } from \"../../../../components/AnimatedEllipsis\";\n\nexport interface IndexingProgressTitleTextProps {\n update: IndexingProgressUpdate;\n}\n\nconst STATUS_TO_TEXT: Record = {\n done: \"Indexing complete\",\n loading: \"Initializing\",\n waiting: \"Indexing other workspace\",\n indexing: \"Indexing in-progress\",\n paused: \"Indexing paused\",\n failed: \"Indexing failed\",\n disabled: \"Indexing disabled\",\n cancelled: \"Indexing cancelled\",\n};\n\nfunction IndexingProgressTitleText({ update }: IndexingProgressTitleTextProps) {\n const showEllipsis = update.status === \"loading\";\n\n return (\n \n {STATUS_TO_TEXT[update.status]}\n {showEllipsis && }\n \n );\n}\n\nexport default IndexingProgressTitleText;\n","import { IndexingProgressUpdate } from \"core\";\nimport { usePostHog } from \"posthog-js/react\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nimport ConfirmationDialog from \"../../../../components/dialogs/ConfirmationDialog\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\nimport { useWebviewListener } from \"../../../../hooks/useWebviewListener\";\nimport {\n setDialogMessage,\n setShowDialog,\n} from \"../../../../redux/slices/uiSlice\";\nimport { isJetBrains } from \"../../../../util\";\nimport IndexingProgressBar from \"./IndexingProgressBar\";\nimport IndexingProgressErrorText from \"./IndexingProgressErrorText\";\nimport IndexingProgressIndicator from \"./IndexingProgressIndicator\";\nimport IndexingProgressSubtext from \"./IndexingProgressSubtext\";\nimport IndexingProgressTitleText from \"./IndexingProgressTitleText\";\n\nexport function getProgressPercentage(\n progress: IndexingProgressUpdate[\"progress\"],\n) {\n return Math.min(100, Math.max(0, progress * 100));\n}\n\nfunction IndexingProgress() {\n const ideMessenger = useContext(IdeMessengerContext);\n const posthog = usePostHog();\n const dispatch = useDispatch();\n const [paused, setPaused] = useState(undefined);\n const [update, setUpdate] = useState({\n desc: \"Loading indexing config\",\n progress: 0.0,\n status: \"loading\",\n });\n\n // If sidebar is opened after extension initializes, retrieve saved states.\n let initialized = false;\n\n useWebviewListener(\"indexProgress\", async (data) => {\n setUpdate(data);\n });\n\n useEffect(() => {\n if (!initialized) {\n // Triggers retrieval for possible non-default states set prior to IndexingProgressBar initialization\n ideMessenger.post(\"index/indexingProgressBarInitialized\", undefined);\n initialized = true;\n }\n }, []);\n\n useEffect(() => {\n if (paused === undefined) return;\n ideMessenger.post(\"index/setPaused\", paused);\n }, [paused]);\n\n function onClickRetry() {\n // For now, we don't show in JetBrains since the re-index command\n // is not yet implemented\n if (update.shouldClearIndexes && !isJetBrains()) {\n dispatch(setShowDialog(true));\n dispatch(\n setDialogMessage(\n {\n posthog.capture(\"rebuild_index_clicked\");\n ideMessenger.post(\"index/forceReIndex\", {\n shouldClearIndexes: true,\n });\n }}\n />,\n ),\n );\n } else {\n ideMessenger.post(\"index/forceReIndex\", undefined);\n }\n }\n\n function onClick() {\n switch (update.status) {\n case \"failed\":\n onClickRetry();\n break;\n case \"indexing\":\n case \"loading\":\n case \"paused\":\n if (update.progress < 1 && update.progress >= 0) {\n setPaused((prev) => !prev);\n } else {\n ideMessenger.post(\"index/forceReIndex\", undefined);\n }\n break;\n case \"disabled\":\n ideMessenger.post(\"config/openProfile\", {\n profileId: undefined,\n });\n break;\n case \"done\":\n ideMessenger.post(\"index/forceReIndex\", undefined);\n default:\n break;\n }\n }\n\n return (\n
    \n
    \n \n {![\"loading\", \"waiting\"].includes(update.status) && (\n \n )}\n
    \n\n \n\n \n\n {(update.status === \"failed\" ||\n (update.warnings && update.warnings.length > 0)) && (\n
    \n \n
    \n )}\n
    \n );\n}\n\nexport default IndexingProgress;\n","import { DocsIndexingDetails } from \"core\";\nimport { useCallback, useContext, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { Tooltip } from \"react-tooltip\";\nimport { SecondaryButton } from \"../../../../components\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\nimport {\n setDialogMessage,\n setShowDialog,\n} from \"../../../../redux/slices/uiSlice\";\n\ninterface DocsDetailsDialogProps {\n startUrl: string;\n}\n\nfunction DocsDetailsDialog({ startUrl }: DocsDetailsDialogProps) {\n const dispatch = useDispatch();\n\n const ideMessenger = useContext(IdeMessengerContext);\n\n const closeDialog = () => {\n dispatch(setShowDialog(false));\n dispatch(setDialogMessage(undefined));\n };\n\n const [isLoading, setIsLoading] = useState(false);\n const [isError, setIsError] = useState(false);\n const [data, setData] = useState(undefined);\n\n const fetchData = useCallback(async () => {\n setIsLoading(true);\n setIsError(false);\n\n try {\n const response = await ideMessenger.request(\"docs/getDetails\", {\n startUrl,\n });\n if (response.status === \"error\") {\n throw new Error(response.error);\n }\n setData(response.content);\n } catch (error) {\n setIsError(true);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n useEffect(() => {\n void fetchData();\n }, []);\n\n let comp =
    Loading...
    ;\n if (!isLoading) {\n if (isError) {\n comp = (\n
    \n
    Error fetching docs details
    \n Try again\n
    \n );\n }\n if (data) {\n comp = (\n
    \n

    {`Title: ${data.config.title}`}

    \n {!data.chunks?.length ? (\n
    No article chunks
    \n ) : (\n
    \n \n \n \n \n \n \n \n \n {data.chunks.map((chunk, i) => {\n const contentToolTipId = `docs-content-peek-${i}`;\n const urlToolTipId = `docs-url-peek-${i}`;\n return (\n <>\n \n \n \n {chunk.filepath}\n \n \n \n \n {chunk.content}\n \n \n \n \n );\n })}\n \n
    FilepathContent
    \n {/* Rending tooltips here because div can't be child of tbody apparently */}\n {data.chunks.map((chunk, i) => {\n const contentToolTipId = `docs-content-peek-${i}`;\n const urlToolTipId = `docs-url-peek-${i}`;\n return (\n <>\n \n {chunk.filepath}\n \n \n {chunk.content}\n \n \n );\n })}\n
    \n )}\n
    \n );\n }\n }\n\n return (\n
    \n

    Docs index

    \n {\n e.stopPropagation();\n ideMessenger.post(\"openUrl\", startUrl);\n }}\n >\n {startUrl}\n

    \n {comp}\n
    \n Close\n
    \n
    \n );\n}\n\nexport default DocsDetailsDialog;\n","import { EyeIcon } from \"@heroicons/react/24/outline\";\nimport { useContext } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\nimport {\n setDialogMessage,\n setShowDialog,\n} from \"../../../../redux/slices/uiSlice\";\nimport { fontSize } from \"../../../../util\";\nimport DocsDetailsDialog from \"./DocsDetailsDialog\";\n\ninterface IndexedPagesTooltipProps {\n pages: string[];\n siteTitle: string;\n baseUrl: string;\n}\n\nfunction removePrefix(str: string, prefix: string): string {\n return str.startsWith(prefix) ? str.slice(prefix.length) : str;\n}\n\nexport const IndexedPagesTooltip = ({\n pages,\n siteTitle,\n baseUrl,\n}: IndexedPagesTooltipProps) => {\n const ideMessenger = useContext(IdeMessengerContext);\n const dispatch = useDispatch();\n\n const handleEyeIconClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n\n // Open the DocsDetailsDialog component as a modal\n dispatch(setShowDialog(true));\n dispatch(setDialogMessage());\n };\n\n return (\n
    \n \n \n {siteTitle} - {pages.length} Pages Indexed\n \n \n
    \n
    \n
      \n {pages.map((page, index) => (\n {\n ideMessenger.post(\"openUrl\", page);\n }}\n >\n {removePrefix(page, baseUrl)}\n \n ))}\n
    \n
    \n \n );\n};\n","import { IndexingStatus } from \"core\";\nimport { ToolTip } from \"../../../../components/gui/Tooltip\";\n\ninterface StatusIndicatorProps {\n status?: IndexingStatus[\"status\"];\n className?: string;\n size?: number;\n hoverMessage?: string;\n}\n\nconst STATUS_TO_COLOR: Record = {\n indexing: \"bg-yellow-500\",\n paused: \"bg-blue-500\",\n complete: \"bg-green-500\",\n aborted: \"bg-gray-500\",\n pending: \"bg-gray-300\",\n failed: \"bg-red-500\",\n};\n\nexport function StatusIndicator({\n status,\n className = \"\",\n size = 2,\n hoverMessage,\n}: StatusIndicatorProps) {\n if (!status) return null;\n\n return (\n \n );\n}\n","import { ConfigYaml } from \"@continuedev/config-yaml\";\nimport {\n ArrowPathIcon,\n PencilIcon,\n StopIcon,\n} from \"@heroicons/react/24/outline\";\nimport { SiteIndexingConfig } from \"core\";\nimport { useContext, useEffect, useMemo, useState } from \"react\";\nimport ConfirmationDialog from \"../../../../components/dialogs/ConfirmationDialog\";\nimport { ToolTip } from \"../../../../components/gui/Tooltip\";\nimport { useEditDoc } from \"../../../../components/mainInput/Lump/useEditBlock\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../../../redux/hooks\";\nimport { updateIndexingStatus } from \"../../../../redux/slices/indexingSlice\";\nimport {\n setDialogMessage,\n setShowDialog,\n} from \"../../../../redux/slices/uiSlice\";\nimport { fontSize } from \"../../../../util\";\nimport { IndexedPagesTooltip } from \"./IndexedPagesTooltip\";\nimport { StatusIndicator } from \"./StatusIndicator\";\n\ninterface IndexingStatusViewerProps {\n docConfig: SiteIndexingConfig;\n docFromYaml?: NonNullable[number];\n}\n\nfunction DocsIndexingStatus({\n docConfig,\n docFromYaml,\n}: IndexingStatusViewerProps) {\n const editDoc = useEditDoc();\n const ideMessenger = useContext(IdeMessengerContext);\n const dispatch = useAppDispatch();\n const [indexedPages, setIndexedPages] = useState(null);\n const [showTooltip, setShowTooltip] = useState(false);\n\n const status = useAppSelector(\n (store) => store.indexing.indexing.statuses[docConfig.startUrl],\n );\n\n const isComplete = status?.status === \"complete\";\n\n const reIndex = () =>\n ideMessenger.post(\"indexing/reindex\", {\n type: \"docs\",\n id: docConfig.startUrl,\n });\n\n const abort = () => {\n ideMessenger.post(\"indexing/abort\", {\n type: \"docs\",\n id: docConfig.startUrl,\n });\n // Optimistic abort status\n if (status) {\n dispatch(\n updateIndexingStatus({ ...status, status: \"aborted\", progress: 0 }),\n );\n }\n };\n\n const [hasDeleted, setHasDeleted] = useState(false); // simple alternative to optimistic redux update\n const onDelete = () => {\n // optimistic update\n dispatch(\n setDialogMessage(\n {\n ideMessenger.post(\"context/removeDocs\", {\n startUrl: docConfig.startUrl,\n });\n setHasDeleted(true);\n }}\n />,\n ),\n );\n dispatch(setShowDialog(true));\n };\n\n const progressPercentage = useMemo(() => {\n if (!status) {\n return 0;\n }\n return Math.min(100, Math.max(0, status.progress * 100)).toFixed(0);\n }, [status?.progress]);\n\n // Fetch pages list when the status changes to complete\n useEffect(() => {\n async function getPagesList() {\n try {\n const response = await ideMessenger.request(\"docs/getIndexedPages\", {\n startUrl: docConfig.startUrl,\n });\n if (response.status === \"error\") {\n throw new Error(response.error);\n }\n setIndexedPages(response.content.sort());\n } catch (ex) {\n console.error(\n `Unable to fetch pages list for ${docConfig.startUrl}: ${ex}`,\n );\n }\n }\n\n if (isComplete) {\n void getPagesList();\n }\n }, [isComplete, ideMessenger, docConfig.startUrl]);\n\n const showPagesList = () => {\n if (indexedPages) {\n setShowTooltip(true);\n }\n };\n\n if (hasDeleted) return null;\n\n const startUrlSlug = docConfig.startUrl.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\n return (\n
    \n \n {\n if (status?.url) {\n ideMessenger.post(\"openUrl\", status.url);\n }\n }}\n >\n \n {docConfig.title ?? docConfig.startUrl}\n

    \n
    \n\n
    \n
    \n {status?.status === \"indexing\" && (\n \n {progressPercentage}%\n \n )}\n\n {status?.status === \"indexing\" && (\n \n )}\n\n editDoc(docFromYaml)}\n />\n\n {[\"aborted\", \"complete\", \"failed\"].includes(\n status?.status ?? \"\",\n ) && (\n \n )}\n\n \n
    \n
    \n \n\n {status && (\n \n {\n if (isComplete) {\n showPagesList();\n }\n }}\n data-tooltip-id={`docs-tooltip-${startUrlSlug}`}\n >\n {isComplete\n ? indexedPages\n ? `${indexedPages.length} page${indexedPages.length === 1 ? \"\" : \"s\"} indexed`\n : \"Loading site info...\"\n : status.description}\n

    \n \n )}\n\n {indexedPages && (\n \n }\n >\n
    \n \n )}\n
    \n );\n}\n\nexport default DocsIndexingStatus;\n","import { parseConfigYaml } from \"@continuedev/config-yaml\";\nimport { IndexingStatus } from \"core\";\nimport { useMemo } from \"react\";\nimport { useAuth } from \"../../../../context/Auth\";\nimport { useAppSelector } from \"../../../../redux/hooks\";\nimport { EmptyState } from \"../../../../components/ui\";\nimport DocsIndexingStatus from \"./DocsIndexingStatus\";\n\nfunction DocsIndexingStatuses() {\n const config = useAppSelector((store) => store.config.config);\n const indexingStatuses = useAppSelector(\n (store) => store.indexing.indexing.statuses,\n );\n const { selectedProfile } = useAuth();\n const mergedDocs = useMemo(() => {\n const parsed = selectedProfile?.rawYaml\n ? parseConfigYaml(selectedProfile?.rawYaml ?? \"\")\n : undefined;\n return (config.docs ?? []).map((doc, index) => ({\n doc,\n docFromYaml: parsed?.docs?.[index],\n }));\n }, [config.docs, selectedProfile?.rawYaml]);\n\n const sortedConfigDocs = useMemo(() => {\n const sorter = (status: IndexingStatus[\"status\"]) => {\n if (status === \"complete\") return 0;\n if (status === \"indexing\" || status === \"paused\") return 1;\n if (status === \"failed\") return 2;\n if (status === \"aborted\" || status === \"pending\") return 3;\n return 4;\n };\n\n const docs = [...mergedDocs];\n docs.sort((a, b) => {\n const statusA = indexingStatuses[a.doc.startUrl]?.status ?? \"pending\";\n const statusB = indexingStatuses[b.doc.startUrl]?.status ?? \"pending\";\n\n // First, compare by status\n const statusCompare = sorter(statusA) - sorter(statusB);\n if (statusCompare !== 0) return statusCompare;\n\n // If status is the same, sort by presence of icon\n const hasIconA = !!a.doc.faviconUrl;\n const hasIconB = !!b.doc.faviconUrl;\n return hasIconB === hasIconA ? 0 : hasIconB ? 1 : -1;\n });\n return docs;\n }, [mergedDocs, indexingStatuses]);\n\n if (sortedConfigDocs.length === 0) {\n return (\n \n );\n }\n\n return (\n
    \n
    \n {sortedConfigDocs.map((docConfig) => {\n return (\n \n
    \n \n
    \n
    \n );\n })}\n
    \n \n );\n}\n\nexport default DocsIndexingStatuses;\n","import { useDispatch } from \"react-redux\";\nimport AddDocsDialog from \"../../../components/dialogs/AddDocsDialog\";\nimport { Card, Divider } from \"../../../components/ui\";\nimport { setDialogMessage, setShowDialog } from \"../../../redux/slices/uiSlice\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport DocsIndexingStatuses from \"./docs/DocsSection\";\n\nexport function DocsSection() {\n const dispatch = useDispatch();\n\n function handleAddDocs() {\n dispatch(setShowDialog(true));\n dispatch(setDialogMessage());\n }\n\n return (\n
    \n \n\n \n
    \n \n
    \n
    \n
    \n );\n}\n","import {\n SharedConfigSchema,\n modifyAnyConfigWithSharedConfig,\n} from \"core/config/sharedConfig\";\nimport { useContext } from \"react\";\nimport Alert from \"../../../components/gui/Alert\";\nimport { Card, Divider } from \"../../../components/ui\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { updateConfig } from \"../../../redux/slices/configSlice\";\nimport { selectCurrentOrg } from \"../../../redux/slices/profilesSlice\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport { UserSetting } from \"../components/UserSetting\";\nimport IndexingProgress from \"../features/indexing\";\nimport { DocsSection } from \"./DocsSection\";\n\nfunction CodebaseSubSection() {\n const config = useAppSelector((state) => state.config.config);\n\n return (\n
    \n
    \n

    @codebase index

    \n
    \n\n \n
    \n {config.disableIndexing ? (\n
    \n

    Indexing is disabled

    \n
    \n ) : (\n \n )}\n
    \n
    \n
    \n );\n}\n\nfunction EnableIndexingSetting() {\n const dispatch = useAppDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n const config = useAppSelector((state) => state.config.config);\n const currentOrg = useAppSelector(selectCurrentOrg);\n\n function handleUpdate(sharedConfig: SharedConfigSchema) {\n const updatedConfig = modifyAnyConfigWithSharedConfig(config, sharedConfig);\n dispatch(updateConfig(updatedConfig));\n ideMessenger.post(\"config/updateSharedConfig\", sharedConfig);\n }\n\n const disableIndexing = config.disableIndexing ?? false;\n const disableIndexingToggle =\n currentOrg?.policy?.allowCodebaseIndexing === false;\n\n return (\n
    \n \n Allows indexing of your codebase for search and context\n understanding.\n
    \n
    \n Note that indexing can consume significant system resources,\n especially on larger codebases.\n
    \n }\n value={!disableIndexing}\n disabled={disableIndexingToggle}\n onChange={(value) => handleUpdate({ disableIndexing: !value })}\n />\n \n );\n}\n\nexport function IndexingSettingsSection() {\n const config = useAppSelector((state) => state.config.config);\n const disableIndexing = config.disableIndexing ?? false;\n\n return (\n <>\n \n\n \n
    \n
    \n
    \n Indexing has been deprecated\n
    \n
    \n Learn how to{\" \"}\n \n make your agent aware of your codebase and documentation\n \n
    \n
    \n \n \n
    \n
    \n\n {!disableIndexing && (\n
    \n \n \n
    \n )}\n \n );\n}\n","import { InformationCircleIcon } from \"@heroicons/react/24/outline\";\nimport { ReactNode } from \"react\";\nimport { ToolTip } from \"./gui/Tooltip\";\n\nconst DEFAULT_SIZE = \"5\";\n\nconst sizeMap = {\n \"3\": \"h-3 w-3\",\n \"4\": \"h-4 w-4\",\n \"5\": \"h-5 w-5\",\n \"6\": \"h-6 w-6\",\n \"8\": \"h-8 w-8\",\n} as const;\n\nconst InfoHover = ({\n msg,\n size,\n id,\n}: {\n id: string;\n msg: ReactNode;\n size?: string;\n}) => {\n const sizeClasses =\n sizeMap[size as keyof typeof sizeMap] ||\n sizeMap[DEFAULT_SIZE as keyof typeof sizeMap];\n\n return (\n \n \n \n );\n};\n\nexport default InfoHover;\n","import {\n CheckIcon,\n ChevronUpDownIcon,\n CubeIcon,\n} from \"@heroicons/react/24/outline\";\nimport { ModelDescription } from \"core\";\nimport { LLMConfigurationStatuses } from \"core/llm/constants\";\nimport { MouseEvent, ReactNode, useContext } from \"react\";\nimport { defaultBorderRadius } from \"../../../components\";\nimport InfoHover from \"../../../components/InfoHover\";\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Transition,\n} from \"../../../components/ui\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { fontSize } from \"../../../util\";\n\ninterface ModelRoleSelectorProps {\n models: ModelDescription[];\n selectedModel: ModelDescription | null;\n onSelect: (model: ModelDescription | null) => void;\n displayName: string;\n description: string | ReactNode;\n setupURL: string;\n hideTitle?: boolean;\n}\n\nconst ModelRoleSelector = ({\n models,\n selectedModel,\n onSelect,\n displayName,\n description,\n setupURL,\n hideTitle = false,\n}: ModelRoleSelectorProps) => {\n const ideMessenger = useContext(IdeMessengerContext);\n\n const noConfiguredModels = models.every(\n (model) => model.configurationStatus !== LLMConfigurationStatuses.VALID,\n );\n\n function handleSelect(title: string | null) {\n onSelect(models.find((m) => m.title === title) ?? null);\n }\n\n function handleOptionClick(\n showMissingApiKeyMsg: boolean,\n e: MouseEvent,\n ) {\n if (showMissingApiKeyMsg) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n return (\n <>\n {!hideTitle && (\n
    \n {displayName}\n \n
    \n )}\n\n \n
    \n {models.length === 0 ? (\n ideMessenger.post(\"openUrl\", setupURL)}\n className=\"bg-input border-command-border hover:bg-list-active hover:text-list-active-foreground text-description w-full justify-between rounded border px-2 py-1.5 underline hover:underline\"\n >\n \n Setup {displayName} model\n \n \n ) : (\n <>\n \n {models.length === 0 || noConfiguredModels ? (\n \n {`No ${models.length === 0 ? \"\" : \"valid \"}${displayName} models${\n [\"Chat\", \"Apply\", \"Edit\"].includes(displayName)\n ? \". Using Chat model\"\n : \"\"\n }`}\n \n ) : (\n \n {selectedModel?.title ?? `Select ${displayName} model`}\n \n )}\n\n {models.length > 0 && (\n
    \n \n
    \n )}\n \n \n \n {[...models]\n .sort((a, b) => a.title.localeCompare(b.title))\n .map((option, idx) => {\n const isConfigInvalid =\n option.configurationStatus !==\n LLMConfigurationStatuses.VALID;\n let invalidMessage = \"(Invalid config)\";\n if (\n option.configurationStatus ===\n LLMConfigurationStatuses.MISSING_ENV_SECRET\n ) {\n invalidMessage = \"(Missing env secret)\";\n }\n if (\n option.configurationStatus ===\n LLMConfigurationStatuses.MISSING_API_KEY\n ) {\n invalidMessage = \"(Missing API Key)\";\n }\n\n return (\n \n handleOptionClick(isConfigInvalid, e)\n }\n className=\"\"\n >\n
    \n
    \n \n \n {option.title}\n {isConfigInvalid && (\n \n {invalidMessage}\n \n )}\n \n
    \n\n
    \n {option.title === selectedModel?.title && (\n \n )}\n
    \n
    \n \n );\n })}\n \n
    \n \n )}\n
    \n
    \n \n );\n};\n\nexport default ModelRoleSelector;\n","import { ModelRole } from \"@continuedev/config-yaml\";\nimport { Cog6ToothIcon } from \"@heroicons/react/24/outline\";\nimport { ModelDescription } from \"core\";\nimport { ReactNode } from \"react\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport { Button } from \"../../../components/ui\";\nimport ModelRoleSelector from \"./ModelRoleSelector\";\n\ninterface ModelRoleRowProps {\n role: ModelRole;\n displayName: string;\n description: string | ReactNode;\n models: ModelDescription[];\n selectedModel: ModelDescription | undefined;\n onSelect: (model: ModelDescription | null) => void;\n onConfigure: (model: ModelDescription | null) => void;\n setupURL: string;\n shortcut?: ReactNode;\n}\n\nexport function ModelRoleRow({\n role,\n displayName,\n description,\n models,\n selectedModel,\n onSelect,\n onConfigure,\n setupURL,\n shortcut,\n}: ModelRoleRowProps) {\n return (\n
    \n
    \n
    \n {displayName}\n {shortcut && shortcut}\n
    \n

    {description}

    \n
    \n
    \n
    \n \n
    \n {selectedModel && (\n \n onConfigure(selectedModel)}\n className=\"text-description hover:enabled:text-foreground my-0 h-6 w-6 p-0\"\n >\n \n \n \n )}\n
    \n
    \n );\n}\n","import { ModelRole } from \"@continuedev/config-yaml\";\nimport { ModelDescription } from \"core\";\nimport { useContext, useState } from \"react\";\nimport Shortcut from \"../../../components/gui/Shortcut\";\nimport { useEditModel } from \"../../../components/mainInput/Lump/useEditBlock\";\nimport { Card, Divider, Toggle } from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { AddModelForm } from \"../../../forms/AddModelForm\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { setDialogMessage, setShowDialog } from \"../../../redux/slices/uiSlice\";\nimport { updateSelectedModelByRole } from \"../../../redux/thunks/updateSelectedModelByRole\";\nimport { getMetaKeyLabel, isJetBrains } from \"../../../util\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport { ModelRoleRow } from \"../components/ModelRoleRow\";\n\nexport function ModelsSection() {\n const { selectedProfile } = useAuth();\n const dispatch = useAppDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n\n const config = useAppSelector((state) => state.config.config);\n const jetbrains = isJetBrains();\n const metaKey = getMetaKeyLabel();\n const [showAdditionalRoles, setShowAdditionalRoles] = useState(false);\n\n function handleRoleUpdate(role: ModelRole, model: ModelDescription | null) {\n if (!model) {\n return;\n }\n\n void dispatch(\n updateSelectedModelByRole({\n role,\n selectedProfile,\n modelTitle: model.title,\n }),\n );\n }\n\n const handleConfigureModel = useEditModel();\n\n function handleAddModel() {\n const isLocal = selectedProfile?.profileType === \"local\";\n\n if (isLocal) {\n dispatch(setShowDialog(true));\n dispatch(\n setDialogMessage(\n {\n dispatch(setShowDialog(false));\n }}\n />,\n ),\n );\n } else {\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path: \"?type=models\",\n orgSlug: undefined,\n });\n }\n }\n\n return (\n
    \n \n\n \n \n ({`cmd ${jetbrains ? \"J\" : \"L\"}`})\n \n }\n description={\n \n Used in Chat, Plan, Agent mode (\n \n Learn more\n \n )\n \n }\n models={config.modelsByRole.chat}\n selectedModel={config.selectedModelByRole.chat ?? undefined}\n onSelect={(model) => handleRoleUpdate(\"chat\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/chat/model-setup\"\n />\n\n \n\n \n Used in inline code completions as you type (\n \n Learn more\n \n )\n \n }\n models={config.modelsByRole.autocomplete}\n selectedModel={config.selectedModelByRole.autocomplete ?? undefined}\n onSelect={(model) => handleRoleUpdate(\"autocomplete\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/autocomplete/model-setup\"\n />\n\n {/* Jetbrains has a model selector inline */}\n {!jetbrains && (\n <>\n \n \n (cmd I)\n \n }\n description={\n \n Used to transform a selected section of code (\n \n Learn more\n \n )\n \n }\n models={config.modelsByRole.edit}\n selectedModel={config.selectedModelByRole.edit ?? undefined}\n onSelect={(model) => handleRoleUpdate(\"edit\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/edit/model-setup\"\n />\n \n )}\n \n\n \n setShowAdditionalRoles(!showAdditionalRoles)}\n title=\"Additional model roles\"\n subtitle=\"Apply, Embed, Rerank\"\n >\n
    \n handleRoleUpdate(\"apply\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/customize/model-roles/apply\"\n />\n\n \n\n handleRoleUpdate(\"embed\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/customize/model-roles/embeddings\"\n />\n\n \n\n handleRoleUpdate(\"rerank\", model)}\n onConfigure={handleConfigureModel}\n setupURL=\"https://docs.continue.dev/customize/model-roles/reranking\"\n />\n
    \n \n
    \n
    \n );\n}\n","import { Cog6ToothIcon } from \"@heroicons/react/24/outline\";\nimport { BuildingOfficeIcon, UserIcon } from \"@heroicons/react/24/solid\";\nimport { SerializedOrgWithProfiles } from \"core/config/ProfileLifecycleManager\";\nimport { isOnPremSession } from \"core/control-plane/AuthTypes\";\nimport { useContext } from \"react\";\nimport { Button, Card, Divider } from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\n\nfunction getOrgIcon(org: { name: string; iconUrl?: string | null }) {\n if (org.iconUrl) {\n return (\n \n );\n }\n\n const IconComponent = org.name === \"Personal\" ? UserIcon : BuildingOfficeIcon;\n return ;\n}\n\nexport function OrganizationsSection() {\n const { organizations, session } = useAuth();\n const ideMessenger = useContext(IdeMessengerContext);\n\n const shouldRenderOrgInfo =\n session && organizations.length > 1 && !isOnPremSession(session);\n\n function handleAddOrganization() {\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path: \"/organizations/new\",\n });\n }\n\n function handleConfigureOrganization(org: SerializedOrgWithProfiles) {\n let path: string;\n if (org.id === \"personal\" || org.slug === undefined) {\n path = \"/settings\";\n } else {\n path = `/organizations/${org.slug}/settings`;\n }\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path,\n });\n }\n\n if (!shouldRenderOrgInfo) {\n return (\n <>\n
    \n
    \n

    Organizations

    \n
    \n
    \n \n
    \n Organizations are only available with cloud accounts. Sign in to\n manage organizations.\n
    \n
    \n \n );\n }\n\n return (\n <>\n \n\n \n {organizations.map((organization, index) => (\n
    \n
    \n
    \n
    \n {getOrgIcon(organization)}\n
    \n
    \n

    \n {organization.name}\n

    \n
    \n
    \n handleConfigureOrganization(organization)}\n variant=\"ghost\"\n size=\"sm\"\n className=\"text-description-muted hover:enabled:text-foreground my-0 h-6 w-6 p-0\"\n >\n \n \n
    \n {index < organizations.length - 1 && }\n
    \n ))}\n
    \n \n );\n}\n","import { ChevronDownIcon, PlusIcon } from \"@heroicons/react/24/outline\";\nimport { ToolTip } from \"./gui/Tooltip\";\nimport { Listbox, ListboxButton, ListboxOption, ListboxOptions } from \"./ui\";\n\ninterface DropdownOption {\n value: string;\n label: string;\n}\n\ninterface DropdownButtonProps {\n title: string;\n options: DropdownOption[];\n onOptionClick: (value: string) => void;\n addButtonTooltip?: string;\n className?: string;\n variant?: \"default\" | \"sm\";\n}\n\nexport function DropdownButton({\n title,\n options,\n onOptionClick,\n addButtonTooltip,\n className = \"\",\n variant = \"default\",\n}: DropdownButtonProps) {\n const isSmall = variant === \"sm\";\n const titleSize = isSmall ? \"text-sm font-semibold\" : \"text-xl font-semibold\";\n const marginBottom = isSmall ? \"mb-2\" : \"mb-4\";\n\n return (\n \n

    {title}

    \n {}}>\n
    \n \n \n \n \n \n \n \n {options.map((option) => (\n \n `relative flex cursor-default select-none items-center gap-3 py-2 pl-4 pr-4 ${\n active\n ? \"bg-list-active text-list-active-foreground\"\n : \"text-foreground\"\n }`\n }\n onClick={() => onOptionClick(option.value)}\n >\n {option.label}\n \n ))}\n \n
    \n
    \n \n );\n}\n","import { useContext, useLayoutEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { Input, SecondaryButton } from \"..\";\nimport { IdeMessengerContext } from \"../../context/IdeMessenger\";\nimport { setDialogMessage, setShowDialog } from \"../../redux/slices/uiSlice\";\n\nfunction AddRuleDialog({ mode }: { mode: \"workspace\" | \"global\" }) {\n const dispatch = useDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n const [name, setName] = useState(\"new-rule\");\n const [error, setError] = useState();\n const [isSubmitting, setIsSubmitting] = useState(false);\n const inputRef = useRef(null);\n\n useLayoutEffect(() => {\n // focus on input after a short delay\n const timer = setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, 100);\n return () => clearTimeout(timer);\n }, []);\n\n const closeDialog = () => {\n dispatch(setShowDialog(false));\n dispatch(setDialogMessage(undefined));\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const trimmed = name.trim();\n if (!trimmed) {\n setError(\"Rule name is required\");\n return;\n }\n setError(undefined);\n setIsSubmitting(true);\n try {\n if (mode === \"global\") {\n ideMessenger.post(\"config/addGlobalRule\", {\n baseFilename: trimmed,\n });\n } else {\n ideMessenger.post(\"config/addLocalWorkspaceBlock\", {\n blockType: \"rules\",\n baseFilename: trimmed,\n });\n }\n closeDialog();\n } catch (err) {\n setIsSubmitting(false);\n setError(\"Failed to create rule file\");\n }\n };\n\n const title = mode === \"global\" ? \"Add global rule\" : \"Add workspace rule\";\n\n return (\n
    \n
    \n

    {title}

    \n

    \n Choose a name for the new rule file.\n

    \n
    \n \n {error &&

    {error}

    }\n
    \n \n Create\n \n \n Cancel\n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default AddRuleDialog;\n","import { parseConfigYaml } from \"@continuedev/config-yaml\";\nimport {\n ArrowsPointingOutIcon,\n BookmarkIcon as BookmarkOutline,\n EyeIcon,\n PencilIcon,\n TrashIcon,\n} from \"@heroicons/react/24/outline\";\nimport { BookmarkIcon as BookmarkSolid } from \"@heroicons/react/24/solid\";\nimport {\n BrowserSerializedContinueConfig,\n RuleSource,\n RuleWithSource,\n SlashCommandDescWithSource,\n} from \"core\";\nimport {\n DEFAULT_AGENT_SYSTEM_MESSAGE,\n DEFAULT_CHAT_SYSTEM_MESSAGE,\n DEFAULT_PLAN_SYSTEM_MESSAGE,\n} from \"core/llm/defaultSystemMessages\";\nimport { getRuleDisplayName } from \"core/llm/rules/rules-utils\";\nimport { useContext, useMemo, useState } from \"react\";\nimport { DropdownButton } from \"../../../components/DropdownButton\";\nimport AddRuleDialog from \"../../../components/dialogs/AddRuleDialog\";\nimport ConfirmationDialog from \"../../../components/dialogs/ConfirmationDialog\";\nimport HeaderButtonWithToolTip from \"../../../components/gui/HeaderButtonWithToolTip\";\nimport Switch from \"../../../components/gui/Switch\";\nimport {\n useEditBlock,\n useOpenRule,\n} from \"../../../components/mainInput/Lump/useEditBlock\";\nimport { useMainEditor } from \"../../../components/mainInput/TipTapEditor\";\nimport { Card, EmptyState } from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useBookmarkedSlashCommands } from \"../../../hooks/useBookmarkedSlashCommands\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport {\n DEFAULT_RULE_SETTING,\n setDialogMessage,\n setShowDialog,\n toggleRuleSetting,\n} from \"../../../redux/slices/uiSlice\";\nimport { fontSize } from \"../../../util\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\n\ninterface PromptCommandWithSlug extends SlashCommandDescWithSource {\n slug?: string;\n}\n\ninterface PromptRowProps {\n prompt: PromptCommandWithSlug;\n isBookmarked: boolean;\n setIsBookmarked: (isBookmarked: boolean) => void;\n onEdit?: () => void;\n}\n\n/**\n * Displays a single prompt row with bookmark and edit controls\n */\nfunction PromptRow({\n prompt,\n isBookmarked,\n setIsBookmarked,\n onEdit,\n}: PromptRowProps) {\n const { mainEditor } = useMainEditor();\n\n const handlePromptClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n mainEditor?.commands.insertPrompt({\n title: prompt.name,\n description: prompt.description,\n content: prompt.prompt,\n });\n };\n\n const handleBookmarkClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsBookmarked(!isBookmarked);\n };\n\n const handleEditClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onEdit) {\n onEdit();\n }\n };\n\n const canEdit = prompt.source !== \"built-in\";\n\n return (\n \n
    \n \n {prompt.name}\n \n \n {prompt.description}\n \n
    \n
    \n {canEdit && (\n \n )}\n \n {isBookmarked ? (\n \n ) : (\n \n )}\n
    \n \n \n );\n}\n\ninterface RuleCardProps {\n rule: RuleWithSource;\n}\n\nconst RuleCard: React.FC = ({ rule }) => {\n const dispatch = useAppDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n const policy = useAppSelector((state) =>\n rule.name\n ? state.ui.ruleSettings[rule.name] || DEFAULT_RULE_SETTING\n : undefined,\n );\n\n const isDisabled = policy === \"off\";\n const openRule = useOpenRule();\n const handleTogglePolicy = () => {\n if (rule.name) {\n dispatch(toggleRuleSetting(rule.name));\n }\n };\n\n const title = useMemo(() => {\n return getRuleDisplayName(rule);\n }, [rule]);\n\n function onClickExpand() {\n dispatch(setShowDialog(true));\n dispatch(\n setDialogMessage(\n
    \n

    {title}

    \n
    {rule.rule}
    \n
    ,\n ),\n );\n }\n\n const handleDelete = () => {\n if (!rule.sourceFile) {\n return;\n }\n\n dispatch(\n setDialogMessage(\n {\n try {\n await ideMessenger.request(\"config/deleteRule\", {\n filepath: rule.sourceFile!,\n });\n } catch (error) {\n console.error(\"Failed to delete rule file:\", error);\n }\n }}\n />,\n ),\n );\n dispatch(setShowDialog(true));\n };\n\n const canDeleteRule =\n rule.sourceFile &&\n ![\"default-chat\", \"default-agent\", \"default-plan\"].includes(rule.source);\n\n const smallFont = fontSize(-2);\n const tinyFont = fontSize(-3);\n return (\n \n
    \n
    \n \n {title}\n \n
    \n {rule.name && policy && (\n
    \n handleTogglePolicy()}\n size={10}\n text=\"\"\n />\n
    \n )}\n
    \n \n \n {\" \"}\n {rule.source === \"default-chat\" ||\n rule.source === \"default-agent\" ? (\n openRule(rule)}\n text=\"View\"\n >\n \n \n ) : (\n openRule(rule)}\n text=\"Edit\"\n >\n \n \n )}\n {canDeleteRule && (\n \n \n \n )}\n
    \n
    \n
    \n\n \n {rule.rule}\n \n {rule.globs ? (\n \n Applies to files\n \n {rule.globs}\n
    \n
    \n ) : null}\n \n \n );\n};\n\n/**\n * Section that displays all available prompts with bookmarking functionality\n */\nfunction PromptsSubSection() {\n const { selectedProfile } = useAuth();\n const { isCommandBookmarked, toggleBookmark } = useBookmarkedSlashCommands();\n const ideMessenger = useContext(IdeMessengerContext);\n const isLocal = selectedProfile?.profileType === \"local\";\n\n const slashCommands = useAppSelector(\n (state) => state.config.config.slashCommands ?? [],\n );\n\n const editBlock = useEditBlock();\n\n const handleEdit = (prompt: PromptCommandWithSlug) => {\n editBlock(prompt.slug, prompt.sourceFile);\n };\n\n const handleAddPrompt = () => {\n if (isLocal) {\n void ideMessenger.request(\"config/addLocalWorkspaceBlock\", {\n blockType: \"prompts\",\n });\n } else {\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path: \"?type=prompts\",\n orgSlug: undefined,\n });\n }\n };\n\n const sortedCommands = useMemo(() => {\n const promptsWithSlug: PromptCommandWithSlug[] =\n structuredClone(slashCommands);\n // get the slugs from rawYaml\n if (selectedProfile?.rawYaml) {\n const parsed = parseConfigYaml(selectedProfile.rawYaml);\n const parsedPrompts = parsed.prompts ?? [];\n\n let index = 0;\n for (const commandWithSlug of promptsWithSlug) {\n // skip for local prompt files\n if (commandWithSlug.sourceFile) continue;\n\n const yamlPrompt = parsedPrompts[index];\n if (yamlPrompt) {\n if (\"uses\" in yamlPrompt) {\n commandWithSlug.slug = yamlPrompt.uses;\n } else {\n commandWithSlug.slug = `${selectedProfile?.fullSlug.ownerSlug}/${selectedProfile?.fullSlug.packageSlug}`;\n }\n }\n index = index + 1;\n }\n }\n return promptsWithSlug.sort((a, b) => {\n const aBookmarked = isCommandBookmarked(a.name);\n const bBookmarked = isCommandBookmarked(b.name);\n if (aBookmarked && !bBookmarked) return -1;\n if (!aBookmarked && bBookmarked) return 1;\n return 0;\n });\n }, [slashCommands, isCommandBookmarked, selectedProfile]);\n\n return (\n
    \n \n\n {sortedCommands.length > 0 ? (\n \n
    \n {sortedCommands.map((prompt) => (\n toggleBookmark(prompt)}\n onEdit={() => handleEdit(prompt)}\n />\n ))}\n
    \n
    \n ) : (\n \n \n \n )}\n
    \n );\n}\n\n/**\n * Helper function to add the appropriate default system message based on mode\n */\nfunction addDefaultSystemMessage(\n rules: RuleWithSource[],\n mode: string,\n config: BrowserSerializedContinueConfig,\n) {\n const modeConfig = {\n chat: {\n customMessage: config.selectedModelByRole.chat?.baseChatSystemMessage,\n defaultMessage: DEFAULT_CHAT_SYSTEM_MESSAGE,\n customSource: \"model-options-chat\" as RuleSource,\n defaultSource: \"default-chat\" as RuleSource,\n },\n agent: {\n customMessage: config.selectedModelByRole.chat?.baseAgentSystemMessage,\n defaultMessage: DEFAULT_AGENT_SYSTEM_MESSAGE,\n customSource: \"model-options-agent\" as RuleSource,\n defaultSource: \"default-agent\" as RuleSource,\n },\n plan: {\n customMessage: config.selectedModelByRole.chat?.basePlanSystemMessage,\n defaultMessage: DEFAULT_PLAN_SYSTEM_MESSAGE,\n customSource: \"model-options-plan\" as RuleSource,\n defaultSource: \"default-plan\" as RuleSource,\n },\n };\n\n const currentMode = modeConfig[mode as keyof typeof modeConfig];\n if (currentMode) {\n const message = currentMode.customMessage || currentMode.defaultMessage;\n const source = currentMode.customMessage\n ? currentMode.customSource\n : currentMode.defaultSource;\n\n rules.unshift({\n rule: message,\n source,\n });\n }\n}\n\n// Define dropdown options for global rules\nconst globalRulesOptions = [\n { value: \"workspace\", label: \"Current workspace\" },\n { value: \"global\", label: \"Global\" },\n];\n\nfunction RulesSubSection() {\n const { selectedProfile } = useAuth();\n const config = useAppSelector((store) => store.config.config);\n const mode = useAppSelector((store) => store.session.mode);\n const ideMessenger = useContext(IdeMessengerContext);\n const dispatch = useAppDispatch();\n const isLocal = selectedProfile?.profileType === \"local\";\n const [globalRulesMode, setGlobalRulesMode] = useState(\"workspace\");\n const configLoading = useAppSelector((store) => store.config.loading);\n\n const handleAddRule = (mode?: string) => {\n const currentMode = mode || globalRulesMode;\n if (isLocal) {\n dispatch(setShowDialog(true));\n dispatch(\n setDialogMessage(\n ,\n ),\n );\n } else {\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path: \"/hub?type=rules\",\n orgSlug: undefined,\n });\n }\n };\n\n const handleOptionClick = (value: string) => {\n setGlobalRulesMode(value);\n handleAddRule(value);\n };\n\n const sortedRules: RuleWithSource[] = useMemo(() => {\n const rules = [...config.rules.map((rule) => ({ ...rule }))];\n\n // Use profile rawYaml to infer slugs\n if (selectedProfile?.rawYaml) {\n try {\n const parsed = parseConfigYaml(selectedProfile.rawYaml);\n const parsedRules = parsed?.rules ?? [];\n let index = 0;\n for (const rule of rules) {\n if (rule.source === \"rules-block\") {\n let slug: string | undefined = undefined;\n const yamlRule = parsedRules[index];\n if (yamlRule) {\n if (typeof yamlRule !== \"string\" && \"uses\" in yamlRule) {\n slug = yamlRule.uses;\n } else {\n slug = `${selectedProfile?.fullSlug.ownerSlug}/${selectedProfile?.fullSlug.packageSlug}`;\n }\n }\n if (slug) {\n rule.slug = slug;\n }\n\n index++;\n }\n }\n } catch (e) {\n console.error(\n \"Rules notch section: failed to parse selected profile\",\n e,\n );\n }\n }\n\n addDefaultSystemMessage(rules, mode, config);\n\n return rules;\n }, [config, selectedProfile, mode]);\n\n return (\n
    \n {isLocal ? (\n \n ) : (\n handleAddRule()}\n addButtonTooltip=\"Add rules\"\n />\n )}\n\n \n {sortedRules.length > 0 ? (\n
    \n {sortedRules.map((rule, index) => (\n \n ))}\n {configLoading && (\n
    \n Reloading rules from your config...\n
    \n )}\n
    \n ) : (\n \n )}\n
    \n
    \n );\n}\n\nexport function RulesSection() {\n return (\n <>\n \n\n
    \n \n \n
    \n \n );\n}\n","import { ToolPolicy } from \"@continuedev/terminal-security\";\nimport {\n ChevronDownIcon,\n ChevronRightIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { Tool } from \"core\";\nimport { BUILT_IN_GROUP_NAME } from \"core/tools/builtIn\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { Tooltip } from \"react-tooltip\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"../../../components/ui\";\nimport { useFontSize } from \"../../../components/ui/font\";\nimport { useAppSelector } from \"../../../redux/hooks\";\nimport { addTool, setToolPolicy } from \"../../../redux/slices/uiSlice\";\n\ninterface ToolPolicyItemProps {\n tool: Tool;\n duplicatesDetected: boolean;\n isGroupEnabled: boolean;\n}\n\nexport function ToolPolicyItem(props: ToolPolicyItemProps) {\n const dispatch = useDispatch();\n const policy = useAppSelector(\n (state) => state.ui.toolSettings[props.tool.function.name],\n );\n const [isExpanded, setIsExpanded] = useState(false);\n const mode = useAppSelector((state) => state.session.mode);\n\n useEffect(() => {\n if (!policy) {\n dispatch(addTool(props.tool));\n }\n }, [props.tool.function.name, policy]);\n\n const parameters = useMemo(() => {\n if (props.tool.function.parameters?.properties) {\n return Object.entries(props.tool.function.parameters.properties).map(\n ([name, schema]) =>\n [name, schema] as [string, { description: string; type: string }],\n );\n }\n return undefined;\n }, [props.tool.function.parameters]);\n\n const fontSize = useFontSize(-2);\n\n const disabled =\n !props.isGroupEnabled ||\n (mode === \"plan\" &&\n props.tool.group === BUILT_IN_GROUP_NAME &&\n !props.tool.readonly);\n\n if (!policy) {\n return null;\n }\n const disabledTooltipId = `disabled-note-${props.tool.group}-${props.tool.displayTitle}-${props.tool.function.name}`;\n\n return (\n \n
    \n
    \n setIsExpanded((val) => !val)}\n >\n
    \n\n
    \n {\n if (!disabled && newPolicy !== policy) {\n dispatch(\n setToolPolicy({\n toolName: props.tool.function.name,\n policy: newPolicy as ToolPolicy,\n }),\n );\n }\n }}\n disabled={disabled}\n >\n
    \n \n \n {disabled || policy === \"disabled\"\n ? \"Excluded\"\n : policy === \"allowedWithoutPermission\"\n ? \"Automatic\"\n : \"Ask First\"}\n \n \n \n {!disabled && (\n \n \n Automatic\n \n \n Ask First\n \n Excluded\n \n )}\n
    \n \n
    \n
    \n \n {mode === \"chat\"\n ? \"Tool disabled in chat mode\"\n : !props.isGroupEnabled\n ? \"Group is turned off\"\n : \"Tool disabled in plan mode\"}\n \n \n \n Description:\n \n {props.tool.function.description}\n \n {parameters ? (\n <>\n Arguments:\n {parameters.map((param, idx) => (\n
    \n {param[0]}\n {`(${param[1].type ?? \"unknown\"}):`}\n \n {param[1].description ?? \"No description\"}\n \n
    \n ))}\n \n ) : null}\n
    \n \n \n );\n}\n","import {\n ChevronDownIcon,\n WrenchScrewdriverIcon,\n} from \"@heroicons/react/24/outline\";\nimport { Tool } from \"core\";\nimport { useMemo, useState } from \"react\";\nimport ToggleSwitch from \"../../../components/gui/Switch\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport { Card } from \"../../../components/ui\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { toggleToolGroupSetting } from \"../../../redux/slices/uiSlice\";\nimport { ToolPolicyItem } from \"./ToolPolicyItem\";\n\ninterface ToolPoliciesGroupProps {\n showIcon: boolean;\n groupName: string;\n displayName: string;\n allToolsOff: boolean;\n duplicateDetection: Record;\n}\n\nexport function ToolPoliciesGroup({\n showIcon,\n groupName,\n displayName,\n allToolsOff,\n duplicateDetection,\n}: ToolPoliciesGroupProps) {\n const dispatch = useAppDispatch();\n const [isExpanded, setIsExpanded] = useState(false);\n\n const availableTools = useAppSelector(\n (state) => state.config.config.tools as Tool[],\n );\n const tools = useMemo(() => {\n return availableTools.filter((t) => t.group === groupName);\n }, [availableTools, groupName]);\n\n const toolGroupSettings = useAppSelector(\n (state) => state.ui.toolGroupSettings,\n );\n const toolSettings = useAppSelector((state) => state.ui.toolSettings);\n const isGroupEnabled = useMemo(() => {\n return toolGroupSettings[groupName] !== \"exclude\";\n }, [toolGroupSettings, groupName]);\n\n const { enabledCount, totalCount } = useMemo(() => {\n const total = tools.length;\n const enabled = tools.filter(\n (tool) => toolSettings[tool.function.name] !== \"disabled\",\n ).length;\n return { enabledCount: enabled, totalCount: total };\n }, [tools, toolSettings]);\n\n const badgeText = useMemo(() => {\n if (enabledCount === totalCount) {\n return totalCount.toString();\n }\n return `${enabledCount}/${totalCount}`;\n }, [enabledCount, totalCount]);\n\n return (\n \n setIsExpanded(!isExpanded)}\n >\n
    \n \n
    \n {showIcon && (\n \n )}\n {displayName}\n
    \n {badgeText}\n
    \n
    \n
    \n \n
    \n dispatch(toggleToolGroupSetting(groupName))}\n text=\"\"\n size={10}\n disabled={allToolsOff}\n />\n
    \n \n \n\n {isExpanded && (\n
    \n {tools.map((tool) => (\n \n ))}\n
    \n )}\n
    \n );\n}\n","import { ConfigYaml, parseConfigYaml } from \"@continuedev/config-yaml\";\nimport {\n ArrowPathIcon,\n ChevronDownIcon,\n CircleStackIcon,\n CommandLineIcon,\n EllipsisVerticalIcon,\n GlobeAltIcon,\n PencilIcon,\n PlayCircleIcon,\n StopCircleIcon,\n UserCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { MCPConnectionStatus, MCPServerStatus } from \"core\";\nimport { BUILT_IN_GROUP_NAME } from \"core/tools/builtIn\";\nimport { useContext, useMemo, useState } from \"react\";\nimport Alert from \"../../../components/gui/Alert\";\nimport { ToolTip } from \"../../../components/gui/Tooltip\";\nimport { useEditBlock } from \"../../../components/mainInput/Lump/useEditBlock\";\nimport {\n Button,\n Card,\n EmptyState,\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { updateConfig } from \"../../../redux/slices/configSlice\";\nimport { selectCurrentOrg } from \"../../../redux/slices/profilesSlice\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport { ToolPoliciesGroup } from \"../components/ToolPoliciesGroup\";\n\ninterface MCPServerStatusProps {\n allToolsOff: boolean;\n server: MCPServerStatus;\n serverFromYaml?: NonNullable[number];\n duplicateDetection: Record;\n}\n\nconst ServerStatusTooltip: Record = {\n connected: \"Active\",\n connecting: \"Connecting\",\n \"not-connected\": \"Inactive\",\n disabled: \"Off\",\n authenticating: \"Authenticating\",\n error: \"Error\",\n};\n\nconst ServerStatusColor: Record = {\n connected: \"bg-success\",\n connecting: \"bg-warning\",\n \"not-connected\": \"bg-description-muted\",\n disabled: \"bg-description-muted\",\n authenticating: \"bg-warning\",\n error: \"bg-error\",\n};\n\nfunction MCPServerPreview({\n server,\n serverFromYaml,\n allToolsOff,\n duplicateDetection,\n}: MCPServerStatusProps) {\n const [expandedSections, setExpandedSections] = useState<{\n [key: string]: boolean;\n }>({});\n const ideMessenger = useContext(IdeMessengerContext);\n const config = useAppSelector((store) => store.config.config);\n const editBlock = useEditBlock();\n\n const dispatch = useAppDispatch();\n const updateMCPServerStatus = (status: MCPServerStatus[\"status\"]) => {\n // optimistic config update\n dispatch(\n updateConfig({\n ...config,\n mcpServerStatuses: config.mcpServerStatuses.map((s) =>\n s.id === server.id\n ? {\n ...s,\n status,\n }\n : s,\n ),\n }),\n );\n };\n\n const onAuthenticate = async () => {\n if (\"url\" in server) {\n updateMCPServerStatus(\"authenticating\");\n await ideMessenger.request(\"mcp/startAuthentication\", {\n serverId: server.id,\n serverUrl: server.url,\n });\n }\n };\n\n const onRemoveAuth = async () => {\n if (\"url\" in server) {\n updateMCPServerStatus(\"authenticating\");\n await ideMessenger.request(\"mcp/removeAuthentication\", {\n serverId: server.id,\n serverUrl: server.url,\n });\n }\n };\n\n const onRefresh = async () => {\n updateMCPServerStatus(\"connecting\");\n if (server.status === \"disabled\") {\n await ideMessenger.request(\"mcp/setServerEnabled\", {\n id: server.id,\n enabled: true,\n });\n } else {\n await ideMessenger.request(\"mcp/reloadServer\", {\n id: server.id,\n });\n }\n };\n\n const onDisconnect = async () => {\n updateMCPServerStatus(\"disabled\");\n dispatch(\n updateConfig({\n ...config,\n tools: config.tools.filter((tool) => tool.group !== server.id),\n }),\n );\n await ideMessenger.request(\"mcp/setServerEnabled\", {\n id: server.id,\n enabled: false,\n });\n };\n\n const toggleSection = (section: string) => {\n setExpandedSections((prev) => ({\n ...prev,\n [section]: !prev[section],\n }));\n };\n\n const ResourceRow = ({\n title,\n items,\n icon,\n sectionKey,\n }: {\n title: string;\n items:\n | MCPServerStatus[\"prompts\"]\n | MCPServerStatus[\"resources\"]\n | MCPServerStatus[\"resourceTemplates\"];\n icon: React.ReactNode;\n sectionKey: string;\n }) => {\n const isExpanded = expandedSections[sectionKey];\n const hasItems = items.length > 0;\n\n return (\n
    \n toggleSection(sectionKey)}\n >\n
    \n \n
    \n {icon}\n {title}\n
    \n {items.length}\n
    \n
    \n
    \n
    \n\n {isExpanded && (\n
    \n {hasItems ? (\n
    \n {items.map((item, idx) => {\n return (\n \n {item.name}\n {item.description && (\n
    \n {item.description}\n
    \n )}\n
    \n );\n })}\n
    \n ) : (\n
    \n No {title.toLowerCase()} available\n
    \n )}\n \n )}\n \n );\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n

    {server.name}

    \n \n \n \n
    \n
    \n
    \n\n
    \n {server.isProtectedResource &&\n \"url\" in server &&\n server.status !== \"connected\" && (\n \n \n {server.status === \"authenticating\" ? (\n \n ) : (\n \n )}\n \n \n )}\n \n \n \n \n \n {server.isProtectedResource && server.status === \"connected\" && (\n \n Logout\n \n )}\n\n \n editBlock(\n serverFromYaml && \"uses\" in serverFromYaml\n ? serverFromYaml.uses\n : undefined,\n server.sourceFile,\n )\n }\n >\n \n Edit\n \n\n {server.status === \"connected\" && (\n \n {\" \"}\n Disconnect\n \n )}\n\n {server.status !== \"connecting\" && (\n \n {server.status === \"disabled\" ? (\n \n ) : (\n \n )}\n Reload\n \n )}\n \n \n
    \n
    \n\n {/* Individual resource rows */}\n
    \n \n {server.prompts.length > 0 && (\n \n }\n sectionKey={`${server.id}-prompts`}\n />\n )}\n {(server.resources.length > 0 ||\n server.resourceTemplates.length > 0) && (\n \n }\n sectionKey={`${server.id}-resources`}\n />\n )}\n
    \n\n {/* Error display below expandable section */}\n {server.errors && server.errors.length > 0 && (\n
    \n {server.errors.map((error, errorIndex) => (\n \n void ideMessenger.ide.showVirtualFile(server.name, error)\n }\n >\n \n {error.length > 150 ? error.substring(0, 150) + \"...\" : error}\n \n \n ))}\n
    \n )}\n\n {server.infos && server.infos.length > 0 && (\n
    \n {server.infos.map((info, infoIndex) => (\n \n void ideMessenger.ide.showVirtualFile(server.name, info)\n }\n >\n \n \n ))}\n
    \n )}\n
    \n );\n}\n\nexport function ToolsSection() {\n const availableTools = useAppSelector((state) => state.config.config.tools);\n\n const currentOrg = useAppSelector(selectCurrentOrg);\n const mode = useAppSelector((store) => store.session.mode);\n const servers = useAppSelector(\n (store) => store.config.config.mcpServerStatuses,\n );\n const { selectedProfile } = useAuth();\n const ideMessenger = useContext(IdeMessengerContext);\n const disableMcp = currentOrg?.policy?.allowMcpServers === false;\n const isLocal = selectedProfile?.profileType === \"local\";\n\n const duplicateDetection = useMemo(() => {\n const counts: Record = {};\n availableTools.forEach((tool) => {\n if (counts[tool.function.name]) {\n counts[tool.function.name] = counts[tool.function.name] + 1;\n } else {\n counts[tool.function.name] = 1;\n }\n });\n return Object.fromEntries(\n Object.entries(counts).map(([k, v]) => [k, v > 1]),\n );\n }, [availableTools]);\n\n const mergedBlocks = useMemo(() => {\n const parsed = selectedProfile?.rawYaml\n ? parseConfigYaml(selectedProfile?.rawYaml ?? \"\")\n : undefined;\n\n // Create a map of YAML servers keyed by name for stable matching\n const yamlServersByName = new Map(\n parsed?.mcpServers\n ?.filter(\n (server): server is NonNullable & { name: string } =>\n server != null && \"name\" in server,\n )\n .map((server) => [server.name, server]) ?? [],\n );\n\n return (servers ?? []).map((doc: MCPServerStatus) => ({\n block: doc,\n blockFromYaml: yamlServersByName.get(doc.name),\n }));\n }, [servers, selectedProfile]);\n\n const handleAddMcpServer = () => {\n if (isLocal) {\n void ideMessenger.request(\"config/addLocalWorkspaceBlock\", {\n blockType: \"mcpServers\",\n });\n } else {\n void ideMessenger.request(\"controlPlane/openUrl\", {\n path: \"?type=mcpServers\",\n orgSlug: undefined,\n });\n }\n };\n\n const allToolsOff = useMemo(() => {\n return mode === \"chat\";\n }, [mode]);\n\n const availableToolsMessage =\n mode === \"chat\"\n ? \"All tools disabled in Chat, switch to Plan or Agent mode to use tools\"\n : mode === \"plan\"\n ? \"Read-only tools available in Plan mode\"\n : \"\";\n\n return (\n <>\n \n {!!availableToolsMessage && (\n
    \n \n {availableToolsMessage}\n \n
    \n )}\n
    \n \n \n {disableMcp ? (\n \n \n \n ) : (\n <>\n {mode === \"chat\" && (\n \n \n All MCPs are disabled in Chat, switch to Plan or Agent mode to\n use MCPs\n \n \n )}\n {mergedBlocks.length > 0 ? (\n mergedBlocks.map(({ block, blockFromYaml }) => (\n \n ))\n ) : (\n \n \n \n )}\n \n )}\n
    \n \n );\n}\n","/**\n * Utility to check if a user is a Continue team member\n */\nexport function isContinueTeamMember(email?: string): boolean {\n if (!email) return false;\n return email.endsWith(\"@continue.dev\");\n}\n","import ToggleSwitch from \"../../../components/gui/Switch\";\ninterface ContinueFeaturesMenuProps {\n enableStaticContextualization: boolean;\n handleEnableStaticContextualizationToggle: (value: boolean) => void;\n}\n\nexport function ContinueFeaturesMenu({\n enableStaticContextualization,\n handleEnableStaticContextualizationToggle,\n}: ContinueFeaturesMenuProps) {\n return (\n
    \n
    \n 🚧 INTERNAL SETTINGS 🚧\n
    \n
    \n \n handleEnableStaticContextualizationToggle(\n !enableStaticContextualization,\n )\n }\n text=\"Use Static Contextualization\"\n />\n
    \n
    \n );\n}\n","import {\n SharedConfigSchema,\n modifyAnyConfigWithSharedConfig,\n} from \"core/config/sharedConfig\";\nimport { HubSessionInfo } from \"core/control-plane/AuthTypes\";\nimport { isContinueTeamMember } from \"core/util/isContinueTeamMember\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Card, Toggle, useFontSize } from \"../../../components/ui\";\nimport { useAuth } from \"../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../../redux/hooks\";\nimport { updateConfig } from \"../../../redux/slices/configSlice\";\nimport { selectCurrentOrg } from \"../../../redux/slices/profilesSlice\";\nimport { setLocalStorage } from \"../../../util/localStorage\";\nimport { ConfigHeader } from \"../components/ConfigHeader\";\nimport { ContinueFeaturesMenu } from \"../components/ContinueFeaturesMenu\";\nimport { UserSetting } from \"../components/UserSetting\";\n\nexport function UserSettingsSection() {\n /////// User settings section //////\n const dispatch = useAppDispatch();\n const ideMessenger = useContext(IdeMessengerContext);\n const config = useAppSelector((state) => state.config.config);\n const currentOrg = useAppSelector(selectCurrentOrg);\n\n const [showExperimental, setShowExperimental] = useState(false);\n const { session } = useAuth();\n\n function handleUpdate(sharedConfig: SharedConfigSchema) {\n // Optimistic update\n const updatedConfig = modifyAnyConfigWithSharedConfig(config, sharedConfig);\n dispatch(updateConfig(updatedConfig));\n // IMPORTANT no need for model role updates (separate logic for selected model roles)\n // simply because this function won't be used to update model roles\n\n // Actual update to core which propagates back with config update event\n ideMessenger.post(\"config/updateSharedConfig\", sharedConfig);\n }\n\n // Disable autocomplete\n const disableAutocompleteInFiles = (\n config.tabAutocompleteOptions?.disableInFiles ?? []\n ).join(\", \");\n const [formDisableAutocomplete, setFormDisableAutocomplete] = useState(\n disableAutocompleteInFiles,\n );\n\n useEffect(() => {\n // Necessary so that reformatted/trimmed values don't cause dirty state\n setFormDisableAutocomplete(disableAutocompleteInFiles);\n }, [disableAutocompleteInFiles]);\n\n // Workspace prompts\n const promptPath = config.experimental?.promptPath || \"\";\n\n const handleEnableStaticContextualizationToggle = (value: boolean) => {\n handleUpdate({ enableStaticContextualization: value });\n };\n\n // TODO defaults are in multiple places, should be consolidated and probably not explicit here\n const showSessionTabs = config.ui?.showSessionTabs ?? false;\n const continueAfterToolRejection =\n config.ui?.continueAfterToolRejection ?? false;\n const codeWrap = config.ui?.codeWrap ?? false;\n const showChatScrollbar = config.ui?.showChatScrollbar ?? false;\n const readResponseTTS = config.experimental?.readResponseTTS ?? false;\n const displayRawMarkdown = config.ui?.displayRawMarkdown ?? false;\n const disableSessionTitles = config.disableSessionTitles ?? false;\n const useCurrentFileAsContext =\n config.experimental?.useCurrentFileAsContext ?? false;\n const enableExperimentalTools =\n config.experimental?.enableExperimentalTools ?? false;\n const onlyUseSystemMessageTools =\n config.experimental?.onlyUseSystemMessageTools ?? false;\n const codebaseToolCallingOnly =\n config.experimental?.codebaseToolCallingOnly ?? false;\n const enableStaticContextualization =\n config.experimental?.enableStaticContextualization ?? false;\n\n const allowAnonymousTelemetry = config.allowAnonymousTelemetry ?? true;\n\n const useAutocompleteMultilineCompletions =\n config.tabAutocompleteOptions?.multilineCompletions ?? \"auto\";\n const modelTimeout = config.tabAutocompleteOptions?.modelTimeout ?? 150;\n const debounceDelay = config.tabAutocompleteOptions?.debounceDelay ?? 250;\n const fontSize = useFontSize();\n\n const cancelChangeDisableAutocomplete = () => {\n setFormDisableAutocomplete(disableAutocompleteInFiles);\n };\n const handleDisableAutocompleteSubmit = () => {\n handleUpdate({\n disableAutocompleteInFiles: formDisableAutocomplete\n .split(\",\")\n .map((val) => val.trim())\n .filter((val) => !!val),\n });\n };\n\n const hasContinueEmail = isContinueTeamMember(\n (session as HubSessionInfo)?.account?.id,\n );\n\n const disableTelemetryToggle =\n currentOrg?.policy?.allowAnonymousTelemetry === false;\n\n return (\n
    \n
    \n \n
    \n {/* Chat Interface Settings */}\n
    \n \n \n
    \n handleUpdate({ showSessionTabs: value })}\n />\n handleUpdate({ codeWrap: value })}\n />\n \n handleUpdate({ showChatScrollbar: value })\n }\n />\n handleUpdate({ readResponseTTS: value })}\n />\n \n handleUpdate({ disableSessionTitles: !value })\n }\n />\n \n handleUpdate({ displayRawMarkdown: !value })\n }\n />\n
    \n
    \n
    \n\n {/* Telemetry Settings */}\n
    \n \n \n
    \n \n handleUpdate({ allowAnonymousTelemetry: value })\n }\n />\n
    \n
    \n
    \n\n {/* Appearance Settings */}\n
    \n \n \n
    \n {\n setLocalStorage(\"fontSize\", val);\n handleUpdate({ fontSize: val });\n }}\n min={7}\n max={50}\n />\n
    \n
    \n
    \n\n {/* Autocomplete Settings */}\n
    \n \n \n
    \n \n handleUpdate({\n useAutocompleteMultilineCompletions: value as\n | \"auto\"\n | \"always\"\n | \"never\",\n })\n }\n options={[\n { label: \"Auto\", value: \"auto\" },\n { label: \"Always\", value: \"always\" },\n { label: \"Never\", value: \"never\" },\n ]}\n />\n handleUpdate({ modelTimeout: val })}\n min={100}\n max={5000}\n />\n handleUpdate({ debounceDelay: val })}\n min={0}\n max={2500}\n />\n \n
    \n
    \n
    \n\n {/* Experimental Settings */}\n
    \n \n \n setShowExperimental(!showExperimental)}\n title=\"Show Experimental Settings\"\n >\n
    \n \n handleUpdate({ useCurrentFileAsContext: value })\n }\n />\n \n handleUpdate({ enableExperimentalTools: value })\n }\n />\n \n handleUpdate({ onlyUseSystemMessageTools: value })\n }\n />\n \n handleUpdate({ codebaseToolCallingOnly: value })\n }\n />\n \n handleUpdate({ continueAfterToolRejection: value })\n }\n />\n\n {hasContinueEmail && (\n \n )}\n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n}\n","import {\n ArrowLeftIcon,\n BuildingOfficeIcon,\n CircleStackIcon,\n Cog6ToothIcon,\n CubeIcon,\n DocumentIcon,\n PencilIcon,\n QuestionMarkCircleIcon,\n WrenchScrewdriverIcon,\n} from \"@heroicons/react/24/outline\";\nimport { ConfigSection } from \"./components/ConfigSection\";\nimport { ConfigsSection } from \"./sections/ConfigsSection\";\nimport { HelpSection } from \"./sections/HelpSection\";\nimport { IndexingSettingsSection } from \"./sections/IndexingSettingsSection\";\nimport { ModelsSection } from \"./sections/ModelsSection\";\nimport { OrganizationsSection } from \"./sections/OrganizationsSection\";\nimport { RulesSection } from \"./sections/RulesSection\";\nimport { ToolsSection } from \"./sections/ToolsSection\";\nimport { UserSettingsSection } from \"./sections/UserSettingsSection\";\n\ninterface TabOption {\n id: string;\n label: string;\n component: React.ReactNode;\n icon: React.ReactNode;\n}\n\ninterface TabSection {\n id: string;\n tabs: TabOption[];\n showTopDivider?: boolean;\n showBottomDivider?: boolean;\n className?: string;\n}\n\nexport const topTabSections: TabSection[] = [\n {\n id: \"top\",\n tabs: [\n {\n id: \"back\",\n label: \"Back\",\n component:
    ,\n icon: ,\n },\n ],\n },\n {\n id: \"blocks\",\n showTopDivider: true,\n tabs: [\n {\n id: \"models\",\n label: \"Models\",\n component: (\n \n \n \n ),\n icon: ,\n },\n {\n id: \"rules\",\n label: \"Rules\",\n component: (\n \n \n \n ),\n icon: ,\n },\n {\n id: \"tools\",\n label: \"Tools\",\n component: (\n \n \n \n ),\n icon: (\n \n ),\n },\n ],\n },\n {\n id: \"agents-orgs\",\n showTopDivider: true,\n tabs: [\n {\n id: \"configs\",\n label: \"Configs\",\n component: (\n \n \n \n ),\n icon: ,\n },\n {\n id: \"organizations\",\n label: \"Organizations\",\n component: (\n \n \n \n ),\n icon: (\n \n ),\n },\n ],\n },\n {\n id: \"indexing\",\n showTopDivider: true,\n tabs: [\n {\n id: \"indexing\",\n label: \"Indexing\",\n component: (\n \n \n \n ),\n icon: (\n \n ),\n },\n ],\n },\n];\n\nexport const bottomTabSections: TabSection[] = [\n {\n id: \"bottom\",\n tabs: [\n {\n id: \"settings\",\n label: \"Settings\",\n component: (\n \n \n \n ),\n icon: ,\n },\n {\n id: \"help\",\n label: \"Help\",\n component: (\n \n \n \n ),\n icon: (\n \n ),\n },\n ],\n },\n];\n\nexport const getAllTabs = (): TabOption[] => {\n return [...topTabSections, ...bottomTabSections].flatMap(\n (section) => section.tabs,\n );\n};\n","import {\n ArrowRightStartOnRectangleIcon,\n Cog6ToothIcon,\n UserCircleIcon as UserCircleIconOutline,\n} from \"@heroicons/react/24/outline\";\nimport { UserCircleIcon as UserCircleIconSolid } from \"@heroicons/react/24/solid\";\nimport { isOnPremSession } from \"core/control-plane/AuthTypes\";\nimport { useContext } from \"react\";\nimport { ToolTip } from \"../../../../components/gui/Tooltip\";\nimport {\n Button,\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"../../../../components/ui\";\nimport { Divider } from \"../../../../components/ui/Divider\";\nimport { useAuth } from \"../../../../context/Auth\";\nimport { IdeMessengerContext } from \"../../../../context/IdeMessenger\";\n\nexport function AccountDropdown() {\n const { session, logout, login } = useAuth();\n const ideMessenger = useContext(IdeMessengerContext);\n\n if (isOnPremSession(session)) {\n return null;\n }\n\n if (!session) {\n return (\n \n login(false)}\n >\n \n \n \n \n );\n }\n\n return (\n
    \n \n {({ open }) => (\n <>\n \n \n
    \n \n {session.account.label}\n \n \n {session.account.id}\n \n
    \n \n \n {/* Account info section for small screens */}\n
    \n
    \n \n
    \n \n {session.account.label}\n \n \n {session.account.id}\n \n
    \n
    \n \n
    \n\n \n ideMessenger.post(\"openUrl\", \"https://continue.dev/settings\")\n }\n value=\"manage-account\"\n >\n
    \n \n Manage Account\n
    \n \n\n \n
    \n \n Log out\n
    \n
    \n
    \n \n )}\n
    \n
    \n );\n}\n","import { isOnPremSession } from \"core/control-plane/AuthTypes\";\nimport React from \"react\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\nimport { AssistantAndOrgListbox } from \"../../components/AssistantAndOrgListbox\";\nimport Alert from \"../../components/gui/Alert\";\nimport { Divider } from \"../../components/ui/Divider\";\nimport { TabGroup } from \"../../components/ui/TabGroup\";\nimport { useAuth } from \"../../context/Auth\";\nimport { useNavigationListener } from \"../../hooks/useNavigationListener\";\nimport { bottomTabSections, getAllTabs, topTabSections } from \"./configTabs\";\nimport { CliInstallBanner } from \"../../components/CliInstallBanner\";\nimport { AccountDropdown } from \"./features/account/AccountDropdown\";\n\nfunction ConfigPage() {\n useNavigationListener();\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const activeTab = searchParams.get(\"tab\") || \"settings\";\n const { session, organizations } = useAuth();\n\n const allTabs = getAllTabs();\n const shouldRenderOrgInfo =\n session && organizations.length > 1 && !isOnPremSession(session);\n\n const handleTabClick = (tabId: string) => {\n if (tabId === \"back\") {\n navigate(\"/\");\n } else {\n navigate(`/config?tab=${tabId}`);\n }\n };\n\n return (\n
    \n {/* Vertical Sidebar - full height */}\n
    \n
    \n {topTabSections.map((section, index) => (\n \n \n {index === 0 && shouldRenderOrgInfo && (\n <>\n \n \n \n )}\n \n ))}\n\n
    \n\n {bottomTabSections.map((section) => (\n \n ))}\n\n \n\n \n
    \n
    \n\n {/* Main content area */}\n
    \n {/* Alert for small screens (sm and below) */}\n
    \n \n
    \n
    Screen width too small
    \n
    \n To view settings, please expand the sidebar by dragging the\n left/right border\n
    \n
    \n
    \n
    \n\n {/* Tab Content for larger screens (md and above) */}\n \n
    \n
    \n );\n}\n\nexport default ConfigPage;\n","import { ArrowPathIcon, FlagIcon } from \"@heroicons/react/24/outline\";\nimport { DISCUSSIONS_LINK, GITHUB_LINK } from \"core/util/constants\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useNavigate, useRouteError } from \"react-router-dom\";\nimport { Button, SecondaryButton } from \"../components\";\nimport { GithubIcon } from \"../components/svg/GithubIcon\";\nimport { IdeMessengerContext } from \"../context/IdeMessenger\";\nimport { newSession } from \"../redux/slices/sessionSlice\";\n\nconst ErrorPage: React.FC = () => {\n const error: any = useRouteError();\n console.error(error);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const messenger = useContext(IdeMessengerContext);\n const openUrl = (url: string) => {\n if (messenger) {\n messenger.post(\"openUrl\", url);\n }\n };\n\n const [initialLoad, setInitialLoad] = useState(true);\n\n useEffect(() => {\n setTimeout(() => {\n setInitialLoad(false);\n }, 500);\n }, []);\n\n return (\n
    \n

    Oops! Something went wrong

    \n\n \n {error.statusText || error.message}\n \n\n {\n dispatch(newSession());\n localStorage.removeItem(\"persist:root\");\n localStorage.removeItem(\"inputHistory_chat\");\n // localStorage.removeItem(\"showTutorialCard\");\n // localStorage.removeItem(\"onboardingStatus\");\n navigate(\"/\");\n }}\n >\n {initialLoad ? (\n \n ) : (\n \n )}\n Continue\n \n\n

    \n Report the issue on GitHub or Discussions:\n

    \n\n
    \n openUrl(GITHUB_LINK)}\n className=\"flex items-center justify-center space-x-2 rounded-lg px-4 py-2 text-base text-white\"\n >\n GitHub Issues\n \n openUrl(DISCUSSIONS_LINK)}\n className=\"flex items-center justify-center rounded-lg text-base\"\n >\n Discussions\n \n
    \n
    \n );\n};\n\nexport default ErrorPage;\n","import {\n ArrowDownOnSquareIcon,\n CloudIcon,\n PencilSquareIcon,\n TrashIcon,\n} from \"@heroicons/react/24/outline\";\nimport { BaseSessionMetadata } from \"core\";\nimport type { RemoteSessionMetadata } from \"core/control-plane/client\";\nimport { getUriPathBasename } from \"core/util/uri\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Input } from \"..\";\nimport { IdeMessengerContext } from \"../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../redux/hooks\";\nimport { exitEdit } from \"../../redux/thunks/edit\";\nimport {\n deleteSession,\n getSession,\n loadRemoteSession,\n loadSession,\n updateSession,\n} from \"../../redux/thunks/session\";\nimport { isShareSessionSupported } from \"../../util\";\nimport HeaderButtonWithToolTip from \"../gui/HeaderButtonWithToolTip\";\nimport { ToolTip } from \"../gui/Tooltip\";\n\nconst shareSessionSupported = isShareSessionSupported();\n\nexport function HistoryTableRow({\n sessionMetadata,\n index,\n}: {\n sessionMetadata: BaseSessionMetadata | RemoteSessionMetadata;\n index: number;\n}) {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const ideMessenger = useContext(IdeMessengerContext);\n\n const [hovered, setHovered] = useState(false);\n const [editing, setEditing] = useState(false);\n const [sessionTitleEditValue, setSessionTitleEditValue] = useState(\n sessionMetadata.title,\n );\n const currentSessionId = useAppSelector((state) => state.session.id);\n\n useEffect(() => {\n setSessionTitleEditValue(sessionMetadata.title);\n }, [sessionMetadata]);\n\n const shareSession = async (sessionId: string) => {\n // \"session/share\" is not supported in JetBrains yet\n if (shareSessionSupported) {\n await ideMessenger.request(\"session/share\", {\n sessionId,\n });\n }\n };\n const isRemote = \"isRemote\" in sessionMetadata && sessionMetadata.isRemote;\n\n const handleKeyUp = async (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\") {\n if (sessionTitleEditValue !== sessionMetadata.title) {\n // Don't allow editing remote sessions\n if (isRemote) {\n setSessionTitleEditValue(sessionMetadata.title);\n setEditing(false);\n return;\n }\n\n // imperfect solution of loading session just to update it\n // but fine for now, pretty low latency\n const currentSession = await getSession(\n ideMessenger,\n sessionMetadata.sessionId,\n );\n await dispatch(\n updateSession({\n ...currentSession,\n title: sessionTitleEditValue,\n }),\n );\n }\n setEditing(false);\n } else if (e.key === \"Escape\") {\n setSessionTitleEditValue(sessionMetadata.title);\n setEditing(false);\n }\n };\n\n return (\n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n data-testid={`history-row-${index}`}\n className=\"hover:bg-input relative mb-2 box-border flex w-full cursor-pointer overflow-hidden rounded-lg p-3\"\n onClick={async () => {\n // Handle remote sessions - load remote session data\n if (isRemote) {\n const remoteSession = sessionMetadata as RemoteSessionMetadata;\n await dispatch(exitEdit({}));\n await dispatch(\n loadRemoteSession({\n remoteId: remoteSession.remoteId,\n saveCurrentSession: true,\n }),\n );\n navigate(\"/\");\n return;\n }\n\n // Handle local sessions - load and navigate as before\n await dispatch(exitEdit({}));\n if (sessionMetadata.sessionId !== currentSessionId) {\n await dispatch(\n loadSession({\n sessionId: sessionMetadata.sessionId,\n saveCurrentSession: true,\n }),\n );\n }\n navigate(\"/\");\n }}\n >\n \n {editing ? (\n
    \n titleInput && titleInput.focus()}\n value={sessionTitleEditValue}\n onChange={(e) => setSessionTitleEditValue(e.target.value)}\n onKeyUp={(e) => handleKeyUp(e)}\n onBlur={() => setEditing(false)}\n />\n
    \n ) : (\n
    \n \n {sessionMetadata.title}\n \n {isRemote && (\n \n Remote\n \n )}\n\n {sessionMetadata.messageCount !== undefined && (\n \n \n {sessionMetadata.messageCount}\n \n \n )}\n
    \n )}\n\n
    \n \n {getUriPathBasename(sessionMetadata.workspaceDirectory || \"\")}\n \n {/* Uncomment to show the date */}\n {/* \n {date.toLocaleString(\"en-US\", {\n year: \"2-digit\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n })}\n */}\n
    \n \n\n {hovered && !editing && (\n \n {isRemote ? (\n {\n e.stopPropagation();\n await ideMessenger.request(\"controlPlane/openUrl\", {\n path: `/agents/${sessionMetadata.remoteId}`,\n });\n }}\n >\n \n \n ) : (\n <>\n {\n e.stopPropagation();\n setEditing(true);\n }}\n >\n \n \n {shareSessionSupported && (\n {\n e.stopPropagation();\n await shareSession(sessionMetadata.sessionId);\n }}\n >\n \n \n )}\n {\n e.stopPropagation();\n await dispatch(deleteSession(sessionMetadata.sessionId));\n }}\n >\n \n \n \n )}\n \n )}\n \n );\n}\n","import { BaseSessionMetadata } from \"core\";\nimport type { RemoteSessionMetadata } from \"core/control-plane/client\";\n\nexport const parseDate = (date: string): Date => {\n let dateObj = new Date(date);\n if (isNaN(dateObj.getTime())) {\n dateObj = new Date(parseInt(date));\n }\n return dateObj;\n};\n\nexport interface SessionGroup {\n label: string;\n sessions: (BaseSessionMetadata | RemoteSessionMetadata)[];\n}\n\nexport const groupSessionsByDate = (\n sessions: (BaseSessionMetadata | RemoteSessionMetadata)[],\n): SessionGroup[] => {\n const yesterday = new Date(Date.now() - 1000 * 60 * 60 * 24);\n const lastWeek = new Date(Date.now() - 1000 * 60 * 60 * 24 * 7);\n const lastMonth = new Date(Date.now() - 1000 * 60 * 60 * 24 * 30);\n\n const groups: SessionGroup[] = [];\n\n const todaySessions = sessions.filter(\n (session) => parseDate(session.dateCreated) > yesterday,\n );\n const weekSessions = sessions.filter((session) => {\n const date = parseDate(session.dateCreated);\n return date <= yesterday && date > lastWeek;\n });\n const monthSessions = sessions.filter((session) => {\n const date = parseDate(session.dateCreated);\n return date <= lastWeek && date > lastMonth;\n });\n const olderSessions = sessions.filter(\n (session) => parseDate(session.dateCreated) <= lastMonth,\n );\n\n if (todaySessions.length > 0)\n groups.push({ label: \"Today\", sessions: todaySessions });\n if (weekSessions.length > 0)\n groups.push({ label: \"This Week\", sessions: weekSessions });\n if (monthSessions.length > 0)\n groups.push({ label: \"This Month\", sessions: monthSessions });\n if (olderSessions.length > 0)\n groups.push({ label: \"Older\", sessions: olderSessions });\n\n return groups;\n};\n","import { BaseSessionMetadata } from \"core\";\nimport type { RemoteSessionMetadata } from \"core/control-plane/client\";\nimport MiniSearch from \"minisearch\";\nimport React, {\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport Shortcut from \"../gui/Shortcut\";\n\nimport { XMarkIcon } from \"@heroicons/react/24/solid\";\nimport { useNavigate } from \"react-router-dom\";\nimport { IdeMessengerContext } from \"../../context/IdeMessenger\";\nimport { useAppDispatch, useAppSelector } from \"../../redux/hooks\";\nimport {\n newSession,\n setAllSessionMetadata,\n} from \"../../redux/slices/sessionSlice\";\nimport { setDialogMessage, setShowDialog } from \"../../redux/slices/uiSlice\";\nimport { refreshSessionMetadata } from \"../../redux/thunks/session\";\nimport { getFontSize, getPlatform } from \"../../util\";\nimport { ROUTES } from \"../../util/navigation\";\nimport ConfirmationDialog from \"../dialogs/ConfirmationDialog\";\nimport { Button } from \"../ui\";\nimport { HistoryTableRow } from \"./HistoryTableRow\";\nimport { groupSessionsByDate, parseDate } from \"./util\";\n\nexport function History() {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const searchInputRef = React.useRef(null);\n const ideMessenger = useContext(IdeMessengerContext);\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const minisearch = useRef(\n new MiniSearch({\n fields: [\"title\"],\n storeFields: [\"title\", \"sessionId\", \"id\"],\n }),\n ).current;\n\n const allSessionMetadata = useAppSelector(\n (state) => state.session.allSessionMetadata,\n );\n const isSessionMetadataLoading = useAppSelector(\n (state) => state.session.isSessionMetadataLoading,\n );\n\n useEffect(() => {\n try {\n minisearch.removeAll();\n minisearch.addAll(\n allSessionMetadata.map((session) => ({\n title: session.title,\n sessionId: session.sessionId,\n id: session.sessionId,\n })),\n );\n } catch (e) {\n console.log(\"error adding sessions to minisearch\", e);\n }\n }, [allSessionMetadata]);\n\n const platform = useMemo(() => getPlatform(), []);\n\n const filteredAndSortedSessions: (\n | BaseSessionMetadata\n | RemoteSessionMetadata\n )[] = useMemo(() => {\n // 1. Exact phrase matching\n const exactResults = minisearch.search(searchTerm, {\n fuzzy: false,\n });\n\n // 2. Fuzzy matching with higher tolerance\n const fuzzyResults = minisearch.search(searchTerm, {\n fuzzy: 0.3,\n });\n\n // 3. Prefix matching for partial words\n const prefixResults = minisearch.search(searchTerm, {\n prefix: true,\n fuzzy: 0.2,\n });\n\n // Combine results, with exact matches having higher priority\n const allResults = [\n ...exactResults.map((r) => ({ ...r, priority: 3 })),\n ...fuzzyResults.map((r) => ({ ...r, priority: 2 })),\n ...prefixResults.map((r) => ({ ...r, priority: 1 })),\n ];\n\n // Remove duplicates while preserving highest priority\n const uniqueResultsMap = new Map();\n allResults.forEach((result) => {\n const existing = uniqueResultsMap.get(result.id);\n if (!existing || existing.priority < result.priority) {\n uniqueResultsMap.set(result.id, result);\n }\n });\n const uniqueResults = Array.from(uniqueResultsMap.values());\n\n const sessionIds = uniqueResults\n .sort((a, b) => b.priority - a.priority || b.score - a.score)\n .map((result) => result.id);\n\n return allSessionMetadata\n .filter((session) => {\n return searchTerm === \"\" || sessionIds.includes(session.sessionId);\n })\n .sort(\n (a, b) =>\n parseDate(b.dateCreated).getTime() -\n parseDate(a.dateCreated).getTime(),\n );\n }, [allSessionMetadata, searchTerm, minisearch]);\n\n const sessionGroups = useMemo(() => {\n return groupSessionsByDate(filteredAndSortedSessions);\n }, [filteredAndSortedSessions]);\n\n const showClearSessionsDialog = () => {\n dispatch(\n setDialogMessage(\n {\n // optimistic update\n dispatch(setAllSessionMetadata([]));\n\n // actual update + refresh\n await ideMessenger.request(\"history/clear\", undefined);\n void dispatch(refreshSessionMetadata({}));\n\n // start a new session\n dispatch(newSession());\n navigate(ROUTES.HOME);\n }}\n />,\n ),\n );\n dispatch(setShowDialog(true));\n };\n\n return (\n \n
    \n setSearchTerm(e.target.value)}\n />\n {searchTerm && (\n {\n setSearchTerm(\"\");\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }}\n />\n )}\n
    \n\n
    \n {filteredAndSortedSessions.length === 0 && (\n
    \n {isSessionMetadataLoading ? (\n \"Loading Sessions...\"\n ) : (\n <>\n No past sessions found. To start a new session, either click the\n \"+\" button or use the keyboard shortcut:{\" \"}\n meta L\n \n )}\n
    \n )}\n\n \n \n {sessionGroups.map((group, groupIndex) => (\n \n \n \n \n {group.sessions.map((session, sessionIndex) => (\n \n ))}\n \n ))}\n \n
    {group.label}
    \n
    \n\n
    \n \n \n Chat history is saved to{\" \"}\n \n {platform === \"windows\"\n ? \"%USERPROFILE%/.continue\"\n : \"~/.continue/sessions\"}\n \n \n
    \n
    \n );\n}\n","import { History } from \"../../components/History\";\nimport { Chat } from \"./Chat\";\n\nexport default function GUI() {\n return (\n
    \n \n
    \n \n
    \n
    \n );\n}\n","import { ArrowLeftIcon } from \"@heroicons/react/24/outline\";\n\nexport interface PageHeaderProps {\n onTitleClick?: () => void;\n title?: string;\n showBorder?: boolean;\n}\n\nexport function PageHeader({\n onTitleClick,\n title,\n showBorder = true,\n}: PageHeaderProps) {\n return (\n \n \n \n {title && {title}}\n
    \n \n );\n}\n","import { useNavigate } from \"react-router-dom\";\nimport { History } from \"../../components/History\";\nimport { PageHeader } from \"../../components/PageHeader\";\nimport { getFontSize } from \"../../util\";\n\nexport default function HistoryPage() {\n const navigate = useNavigate();\n\n return (\n \n navigate(\"/\")} title=\"Chat\" />\n \n \n );\n}\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","/* eslint-disable yoda */\n'use strict';\n\nconst isFullwidthCodePoint = codePoint => {\n\tif (Number.isNaN(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tcodePoint >= 0x1100 && (\n\t\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\nmodule.exports = isFullwidthCodePoint;\nmodule.exports.default = isFullwidthCodePoint;\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst emojiRegex = require('emoji-regex');\n\nconst stringWidth = string => {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst code = string.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n\nmodule.exports = stringWidth;\n// TODO: remove this in the next major version\nmodule.exports.default = stringWidth;\n","'use strict';\nconst regex = '[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]';\n\nconst astralRegex = options => options && options.exact ? new RegExp(`^${regex}$`) : new RegExp(regex, 'g');\n\nmodule.exports = astralRegex;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst astralRegex = require('astral-regex');\nconst ansiStyles = require('ansi-styles');\n\nconst ESCAPES = [\n\t'\\u001B',\n\t'\\u009B'\n];\n\nconst wrapAnsi = code => `${ESCAPES[0]}[${code}m`;\n\nconst checkAnsi = (ansiCodes, isEscapes, endAnsiCode) => {\n\tlet output = [];\n\tansiCodes = [...ansiCodes];\n\n\tfor (let ansiCode of ansiCodes) {\n\t\tconst ansiCodeOrigin = ansiCode;\n\t\tif (ansiCode.includes(';')) {\n\t\t\tansiCode = ansiCode.split(';')[0][0] + '0';\n\t\t}\n\n\t\tconst item = ansiStyles.codes.get(Number.parseInt(ansiCode, 10));\n\t\tif (item) {\n\t\t\tconst indexEscape = ansiCodes.indexOf(item.toString());\n\t\t\tif (indexEscape === -1) {\n\t\t\t\toutput.push(wrapAnsi(isEscapes ? item : ansiCodeOrigin));\n\t\t\t} else {\n\t\t\t\tansiCodes.splice(indexEscape, 1);\n\t\t\t}\n\t\t} else if (isEscapes) {\n\t\t\toutput.push(wrapAnsi(0));\n\t\t\tbreak;\n\t\t} else {\n\t\t\toutput.push(wrapAnsi(ansiCodeOrigin));\n\t\t}\n\t}\n\n\tif (isEscapes) {\n\t\toutput = output.filter((element, index) => output.indexOf(element) === index);\n\n\t\tif (endAnsiCode !== undefined) {\n\t\t\tconst fistEscapeCode = wrapAnsi(ansiStyles.codes.get(Number.parseInt(endAnsiCode, 10)));\n\t\t\toutput = output.reduce((current, next) => next === fistEscapeCode ? [next, ...current] : [...current, next], []);\n\t\t}\n\t}\n\n\treturn output.join('');\n};\n\nmodule.exports = (string, begin, end) => {\n\tconst characters = [...string];\n\tconst ansiCodes = [];\n\n\tlet stringEnd = typeof end === 'number' ? end : characters.length;\n\tlet isInsideEscape = false;\n\tlet ansiCode;\n\tlet visible = 0;\n\tlet output = '';\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tlet leftEscape = false;\n\n\t\tif (ESCAPES.includes(character)) {\n\t\t\tconst code = /\\d[^m]*/.exec(string.slice(index, index + 18));\n\t\t\tansiCode = code && code.length > 0 ? code[0] : undefined;\n\n\t\t\tif (visible < stringEnd) {\n\t\t\t\tisInsideEscape = true;\n\n\t\t\t\tif (ansiCode !== undefined) {\n\t\t\t\t\tansiCodes.push(ansiCode);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isInsideEscape && character === 'm') {\n\t\t\tisInsideEscape = false;\n\t\t\tleftEscape = true;\n\t\t}\n\n\t\tif (!isInsideEscape && !leftEscape) {\n\t\t\tvisible++;\n\t\t}\n\n\t\tif (!astralRegex({exact: true}).test(character) && isFullwidthCodePoint(character.codePointAt())) {\n\t\t\tvisible++;\n\n\t\t\tif (typeof end !== 'number') {\n\t\t\t\tstringEnd++;\n\t\t\t}\n\t\t}\n\n\t\tif (visible > begin && visible <= stringEnd) {\n\t\t\toutput += character;\n\t\t} else if (visible === begin && !isInsideEscape && ansiCode !== undefined) {\n\t\t\toutput = checkAnsi(ansiCodes);\n\t\t} else if (visible >= stringEnd) {\n\t\t\toutput += checkAnsi(ansiCodes, true, ansiCode);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn output;\n};\n","\"use strict\";\n/* eslint-disable sort-keys-fix/sort-keys-fix */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = void 0;\nconst getBorderCharacters = (name) => {\n if (name === 'honeywell') {\n return {\n topBody: '═',\n topJoin: '╤',\n topLeft: '╔',\n topRight: '╗',\n bottomBody: '═',\n bottomJoin: '╧',\n bottomLeft: '╚',\n bottomRight: '╝',\n bodyLeft: '║',\n bodyRight: '║',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '╟',\n joinRight: '╢',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'norc') {\n return {\n topBody: '─',\n topJoin: '┬',\n topLeft: '┌',\n topRight: '┐',\n bottomBody: '─',\n bottomJoin: '┴',\n bottomLeft: '└',\n bottomRight: '┘',\n bodyLeft: '│',\n bodyRight: '│',\n bodyJoin: '│',\n headerJoin: '┬',\n joinBody: '─',\n joinLeft: '├',\n joinRight: '┤',\n joinJoin: '┼',\n joinMiddleDown: '┬',\n joinMiddleUp: '┴',\n joinMiddleLeft: '┤',\n joinMiddleRight: '├',\n };\n }\n if (name === 'ramac') {\n return {\n topBody: '-',\n topJoin: '+',\n topLeft: '+',\n topRight: '+',\n bottomBody: '-',\n bottomJoin: '+',\n bottomLeft: '+',\n bottomRight: '+',\n bodyLeft: '|',\n bodyRight: '|',\n bodyJoin: '|',\n headerJoin: '+',\n joinBody: '-',\n joinLeft: '|',\n joinRight: '|',\n joinJoin: '|',\n joinMiddleDown: '+',\n joinMiddleUp: '+',\n joinMiddleLeft: '+',\n joinMiddleRight: '+',\n };\n }\n if (name === 'void') {\n return {\n topBody: '',\n topJoin: '',\n topLeft: '',\n topRight: '',\n bottomBody: '',\n bottomJoin: '',\n bottomLeft: '',\n bottomRight: '',\n bodyLeft: '',\n bodyRight: '',\n bodyJoin: '',\n headerJoin: '',\n joinBody: '',\n joinLeft: '',\n joinRight: '',\n joinJoin: '',\n joinMiddleDown: '',\n joinMiddleUp: '',\n joinMiddleLeft: '',\n joinMiddleRight: '',\n };\n }\n throw new Error('Unknown border template \"' + name + '\".');\n};\nexports.getBorderCharacters = getBorderCharacters;\n//# sourceMappingURL=getBorderCharacters.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\n/**\n * Converts Windows-style newline to Unix-style\n *\n * @internal\n */\nconst normalizeString = (input) => {\n return input.replace(/\\r\\n/g, '\\n');\n};\nexports.normalizeString = normalizeString;\n/**\n * Splits ansi string by newlines\n *\n * @internal\n */\nconst splitAnsi = (input) => {\n const lengths = (0, strip_ansi_1.default)(input).split('\\n').map(string_width_1.default);\n const result = [];\n let startIndex = 0;\n lengths.forEach((length) => {\n result.push(length === 0 ? '' : (0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n // Plus 1 for the newline character itself\n startIndex += length + 1;\n });\n return result;\n};\nexports.splitAnsi = splitAnsi;\n/**\n * Merges user provided border characters with the default border (\"honeywell\") characters.\n *\n * @internal\n */\nconst makeBorderConfig = (border) => {\n return {\n ...(0, getBorderCharacters_1.getBorderCharacters)('honeywell'),\n ...border,\n };\n};\nexports.makeBorderConfig = makeBorderConfig;\n/**\n * Groups the array into sub-arrays by sizes.\n *\n * @internal\n * @example\n * groupBySizes(['a', 'b', 'c', 'd', 'e'], [2, 1, 2]) = [ ['a', 'b'], ['c'], ['d', 'e'] ]\n */\nconst groupBySizes = (array, sizes) => {\n let startIndex = 0;\n return sizes.map((size) => {\n const group = array.slice(startIndex, startIndex + size);\n startIndex += size;\n return group;\n });\n};\nexports.groupBySizes = groupBySizes;\n/**\n * Counts the number of continuous spaces in a string\n *\n * @internal\n * @example\n * countGroupSpaces('a bc de f') = 3\n */\nconst countSpaceSequence = (input) => {\n var _a, _b;\n return (_b = (_a = input.match(/\\s+/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n};\nexports.countSpaceSequence = countSpaceSequence;\n/**\n * Creates the non-increasing number array given sum and length\n * whose the difference between maximum and minimum is not greater than 1\n *\n * @internal\n * @example\n * distributeUnevenly(6, 3) = [2, 2, 2]\n * distributeUnevenly(8, 3) = [3, 3, 2]\n */\nconst distributeUnevenly = (sum, length) => {\n const result = Array.from({ length }).fill(Math.floor(sum / length));\n return result.map((element, index) => {\n return element + (index < sum % length ? 1 : 0);\n });\n};\nexports.distributeUnevenly = distributeUnevenly;\nconst sequence = (start, end) => {\n return Array.from({ length: end - start + 1 }, (_, index) => {\n return index + start;\n });\n};\nexports.sequence = sequence;\nconst sumArray = (array) => {\n return array.reduce((accumulator, element) => {\n return accumulator + element;\n }, 0);\n};\nexports.sumArray = sumArray;\nconst extractTruncates = (config) => {\n return config.columns.map(({ truncate }) => {\n return truncate;\n });\n};\nexports.extractTruncates = extractTruncates;\nconst flatten = (array) => {\n return [].concat(...array);\n};\nexports.flatten = flatten;\nconst calculateRangeCoordinate = (spanningCellConfig) => {\n const { row, col, colSpan = 1, rowSpan = 1 } = spanningCellConfig;\n return { bottomRight: { col: col + colSpan - 1,\n row: row + rowSpan - 1 },\n topLeft: { col,\n row } };\n};\nexports.calculateRangeCoordinate = calculateRangeCoordinate;\nconst areCellEqual = (cell1, cell2) => {\n return cell1.row === cell2.row && cell1.col === cell2.col;\n};\nexports.areCellEqual = areCellEqual;\nconst isCellInRange = (cell, { topLeft, bottomRight }) => {\n return (topLeft.row <= cell.row &&\n cell.row <= bottomRight.row &&\n topLeft.col <= cell.col &&\n cell.col <= bottomRight.col);\n};\nexports.isCellInRange = isCellInRange;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignString = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst alignLeft = (subject, width) => {\n return subject + ' '.repeat(width);\n};\nconst alignRight = (subject, width) => {\n return ' '.repeat(width) + subject;\n};\nconst alignCenter = (subject, width) => {\n return ' '.repeat(Math.floor(width / 2)) + subject + ' '.repeat(Math.ceil(width / 2));\n};\nconst alignJustify = (subject, width) => {\n const spaceSequenceCount = (0, utils_1.countSpaceSequence)(subject);\n if (spaceSequenceCount === 0) {\n return alignLeft(subject, width);\n }\n const addingSpaces = (0, utils_1.distributeUnevenly)(width, spaceSequenceCount);\n if (Math.max(...addingSpaces) > 3) {\n return alignLeft(subject, width);\n }\n let spaceSequenceIndex = 0;\n return subject.replace(/\\s+/g, (groupSpace) => {\n return groupSpace + ' '.repeat(addingSpaces[spaceSequenceIndex++]);\n });\n};\n/**\n * Pads a string to the left and/or right to position the subject\n * text in a desired alignment within a container.\n */\nconst alignString = (subject, containerWidth, alignment) => {\n const subjectWidth = (0, string_width_1.default)(subject);\n if (subjectWidth === containerWidth) {\n return subject;\n }\n if (subjectWidth > containerWidth) {\n throw new Error('Subject parameter value width cannot be greater than the container width.');\n }\n if (subjectWidth === 0) {\n return ' '.repeat(containerWidth);\n }\n const availableWidth = containerWidth - subjectWidth;\n if (alignment === 'left') {\n return alignLeft(subject, availableWidth);\n }\n if (alignment === 'right') {\n return alignRight(subject, availableWidth);\n }\n if (alignment === 'justify') {\n return alignJustify(subject, availableWidth);\n }\n return alignCenter(subject, availableWidth);\n};\nexports.alignString = alignString;\n//# sourceMappingURL=alignString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignTableData = void 0;\nconst alignString_1 = require(\"./alignString\");\nconst alignTableData = (rows, config) => {\n return rows.map((row, rowIndex) => {\n return row.map((cell, cellIndex) => {\n var _a;\n const { width, alignment } = config.columns[cellIndex];\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n return (0, alignString_1.alignString)(cell, width, alignment);\n });\n });\n};\nexports.alignTableData = alignTableData;\n//# sourceMappingURL=alignTableData.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapString = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst string_width_1 = __importDefault(require(\"string-width\"));\n/**\n * Creates an array of strings split into groups the length of size.\n * This function works with strings that contain ASCII characters.\n *\n * wrapText is different from would-be \"chunk\" implementation\n * in that whitespace characters that occur on a chunk size limit are trimmed.\n *\n */\nconst wrapString = (subject, size) => {\n let subjectSlice = subject;\n const chunks = [];\n do {\n chunks.push((0, slice_ansi_1.default)(subjectSlice, 0, size));\n subjectSlice = (0, slice_ansi_1.default)(subjectSlice, size).trim();\n } while ((0, string_width_1.default)(subjectSlice));\n return chunks;\n};\nexports.wrapString = wrapString;\n//# sourceMappingURL=wrapString.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapWord = void 0;\nconst slice_ansi_1 = __importDefault(require(\"slice-ansi\"));\nconst strip_ansi_1 = __importDefault(require(\"strip-ansi\"));\nconst calculateStringLengths = (input, size) => {\n let subject = (0, strip_ansi_1.default)(input);\n const chunks = [];\n // https://regex101.com/r/gY5kZ1/1\n const re = new RegExp('(^.{1,' + String(Math.max(size, 1)) + '}(\\\\s+|$))|(^.{1,' + String(Math.max(size - 1, 1)) + '}(\\\\\\\\|/|_|\\\\.|,|;|-))');\n do {\n let chunk;\n const match = re.exec(subject);\n if (match) {\n chunk = match[0];\n subject = subject.slice(chunk.length);\n const trimmedLength = chunk.trim().length;\n const offset = chunk.length - trimmedLength;\n chunks.push([trimmedLength, offset]);\n }\n else {\n chunk = subject.slice(0, size);\n subject = subject.slice(size);\n chunks.push([chunk.length, 0]);\n }\n } while (subject.length);\n return chunks;\n};\nconst wrapWord = (input, size) => {\n const result = [];\n let startIndex = 0;\n calculateStringLengths(input, size).forEach(([length, offset]) => {\n result.push((0, slice_ansi_1.default)(input, startIndex, startIndex + length));\n startIndex += length + offset;\n });\n return result;\n};\nexports.wrapWord = wrapWord;\n//# sourceMappingURL=wrapWord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapCell = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapString_1 = require(\"./wrapString\");\nconst wrapWord_1 = require(\"./wrapWord\");\n/**\n * Wrap a single cell value into a list of lines\n *\n * Always wraps on newlines, for the remainder uses either word or string wrapping\n * depending on user configuration.\n *\n */\nconst wrapCell = (cellValue, cellWidth, useWrapWord) => {\n // First split on literal newlines\n const cellLines = (0, utils_1.splitAnsi)(cellValue);\n // Then iterate over the list and word-wrap every remaining line if necessary.\n for (let lineNr = 0; lineNr < cellLines.length;) {\n let lineChunks;\n if (useWrapWord) {\n lineChunks = (0, wrapWord_1.wrapWord)(cellLines[lineNr], cellWidth);\n }\n else {\n lineChunks = (0, wrapString_1.wrapString)(cellLines[lineNr], cellWidth);\n }\n // Replace our original array element with whatever the wrapping returned\n cellLines.splice(lineNr, 1, ...lineChunks);\n lineNr += lineChunks.length;\n }\n return cellLines;\n};\nexports.wrapCell = wrapCell;\n//# sourceMappingURL=wrapCell.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateCellHeight = void 0;\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Calculates height of cell content in regard to its width and word wrapping.\n */\nconst calculateCellHeight = (value, columnWidth, useWrapWord = false) => {\n return (0, wrapCell_1.wrapCell)(value, columnWidth, useWrapWord).length;\n};\nexports.calculateCellHeight = calculateCellHeight;\n//# sourceMappingURL=calculateCellHeight.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateRowHeights = void 0;\nconst calculateCellHeight_1 = require(\"./calculateCellHeight\");\nconst utils_1 = require(\"./utils\");\n/**\n * Produces an array of values that describe the largest value length (height) in every row.\n */\nconst calculateRowHeights = (rows, config) => {\n const rowHeights = [];\n for (const [rowIndex, row] of rows.entries()) {\n let rowHeight = 1;\n row.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex });\n if (!containingRange) {\n const cellHeight = (0, calculateCellHeight_1.calculateCellHeight)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n rowHeight = Math.max(rowHeight, cellHeight);\n return;\n }\n const { topLeft, bottomRight, height } = containingRange;\n // bottom-most cell of a range needs to contain all remain lines of spanning cells\n if (rowIndex === bottomRight.row) {\n const totalOccupiedSpanningCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row));\n const totalHorizontalBorderHeight = bottomRight.row - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n var _a;\n /* istanbul ignore next */\n return !((_a = config.drawHorizontalLine) === null || _a === void 0 ? void 0 : _a.call(config, horizontalBorderIndex, rows.length));\n }).length;\n const cellHeight = height - totalOccupiedSpanningCellHeight - totalHorizontalBorderHeight + totalHiddenHorizontalBorderHeight;\n rowHeight = Math.max(rowHeight, cellHeight);\n }\n // otherwise, just depend on other sibling cell heights in the row\n });\n rowHeights.push(rowHeight);\n }\n return rowHeights;\n};\nexports.calculateRowHeights = calculateRowHeights;\n//# sourceMappingURL=calculateRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawContent = void 0;\nconst drawContent = (parameters) => {\n const { contents, separatorGetter, drawSeparator, spanningCellManager, rowIndex, elementType } = parameters;\n const contentSize = contents.length;\n const result = [];\n if (drawSeparator(0, contentSize)) {\n result.push(separatorGetter(0, contentSize));\n }\n contents.forEach((content, contentIndex) => {\n if (!elementType || elementType === 'border' || elementType === 'row') {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex === undefined) {\n result.push(content);\n }\n if (elementType === 'cell' && rowIndex !== undefined) {\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: contentIndex,\n row: rowIndex });\n // when drawing content row, just add a cell when it is a normal cell\n // or belongs to first column of spanning cell\n if (!containingRange || contentIndex === containingRange.topLeft.col) {\n result.push(content);\n }\n }\n // Only append the middle separator if the content is not the last\n if (contentIndex + 1 < contentSize && drawSeparator(contentIndex + 1, contentSize)) {\n const separator = separatorGetter(contentIndex + 1, contentSize);\n if (elementType === 'cell' && rowIndex !== undefined) {\n const currentCell = { col: contentIndex + 1,\n row: rowIndex };\n /* istanbul ignore next */\n const containingRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange(currentCell);\n if (!containingRange || containingRange.topLeft.col === currentCell.col) {\n result.push(separator);\n }\n }\n else {\n result.push(separator);\n }\n }\n });\n if (drawSeparator(contentSize, contentSize)) {\n result.push(separatorGetter(contentSize, contentSize));\n }\n return result.join('');\n};\nexports.drawContent = drawContent;\n//# sourceMappingURL=drawContent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTableBorderGetter = exports.drawBorderBottom = exports.drawBorderJoin = exports.drawBorderTop = exports.drawBorder = exports.createSeparatorGetter = exports.drawBorderSegments = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawBorderSegments = (columnWidths, parameters) => {\n const { separator, horizontalBorderIndex, spanningCellManager } = parameters;\n return columnWidths.map((columnWidth, columnIndex) => {\n const normalSegment = separator.body.repeat(columnWidth);\n if (horizontalBorderIndex === undefined) {\n return normalSegment;\n }\n /* istanbul ignore next */\n const range = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.getContainingRange({ col: columnIndex,\n row: horizontalBorderIndex });\n if (!range) {\n return normalSegment;\n }\n const { topLeft } = range;\n // draw border segments as usual for top border of spanning cell\n if (horizontalBorderIndex === topLeft.row) {\n return normalSegment;\n }\n // if for first column/row of spanning cell, just skip\n if (columnIndex !== topLeft.col) {\n return '';\n }\n return range.extractBorderContent(horizontalBorderIndex);\n });\n};\nexports.drawBorderSegments = drawBorderSegments;\nconst createSeparatorGetter = (dependencies) => {\n const { separator, spanningCellManager, horizontalBorderIndex, rowCount } = dependencies;\n // eslint-disable-next-line complexity\n return (verticalBorderIndex, columnCount) => {\n const inSameRange = spanningCellManager === null || spanningCellManager === void 0 ? void 0 : spanningCellManager.inSameRange;\n if (horizontalBorderIndex !== undefined && inSameRange) {\n const topCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex - 1 };\n const leftCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex };\n const oppositeCell = { col: verticalBorderIndex - 1,\n row: horizontalBorderIndex - 1 };\n const currentCell = { col: verticalBorderIndex,\n row: horizontalBorderIndex };\n const pairs = [\n [oppositeCell, topCell],\n [topCell, currentCell],\n [currentCell, leftCell],\n [leftCell, oppositeCell],\n ];\n // left side of horizontal border\n if (verticalBorderIndex === 0) {\n if (inSameRange(currentCell, topCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.left;\n }\n // right side of horizontal border\n if (verticalBorderIndex === columnCount) {\n if (inSameRange(oppositeCell, leftCell) && separator.bodyJoinOuter) {\n return separator.bodyJoinOuter;\n }\n return separator.right;\n }\n // top horizontal border\n if (horizontalBorderIndex === 0) {\n if (inSameRange(currentCell, leftCell)) {\n return separator.body;\n }\n return separator.join;\n }\n // bottom horizontal border\n if (horizontalBorderIndex === rowCount) {\n if (inSameRange(topCell, oppositeCell)) {\n return separator.body;\n }\n return separator.join;\n }\n const sameRangeCount = pairs.map((pair) => {\n return inSameRange(...pair);\n }).filter(Boolean).length;\n // four cells are belongs to different spanning cells\n if (sameRangeCount === 0) {\n return separator.join;\n }\n // belong to one spanning cell\n if (sameRangeCount === 4) {\n return '';\n }\n // belongs to two spanning cell\n if (sameRangeCount === 2) {\n if (inSameRange(...pairs[1]) && inSameRange(...pairs[3]) && separator.bodyJoinInner) {\n return separator.bodyJoinInner;\n }\n return separator.body;\n }\n /* istanbul ignore next */\n if (sameRangeCount === 1) {\n if (!separator.joinRight || !separator.joinLeft || !separator.joinUp || !separator.joinDown) {\n throw new Error(`Can not get border separator for position [${horizontalBorderIndex}, ${verticalBorderIndex}]`);\n }\n if (inSameRange(...pairs[0])) {\n return separator.joinDown;\n }\n if (inSameRange(...pairs[1])) {\n return separator.joinLeft;\n }\n if (inSameRange(...pairs[2])) {\n return separator.joinUp;\n }\n return separator.joinRight;\n }\n /* istanbul ignore next */\n throw new Error('Invalid case');\n }\n if (verticalBorderIndex === 0) {\n return separator.left;\n }\n if (verticalBorderIndex === columnCount) {\n return separator.right;\n }\n return separator.join;\n };\n};\nexports.createSeparatorGetter = createSeparatorGetter;\nconst drawBorder = (columnWidths, parameters) => {\n const borderSegments = (0, exports.drawBorderSegments)(columnWidths, parameters);\n const { drawVerticalLine, horizontalBorderIndex, spanningCellManager } = parameters;\n return (0, drawContent_1.drawContent)({\n contents: borderSegments,\n drawSeparator: drawVerticalLine,\n elementType: 'border',\n rowIndex: horizontalBorderIndex,\n separatorGetter: (0, exports.createSeparatorGetter)(parameters),\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawBorder = drawBorder;\nconst drawBorderTop = (columnWidths, parameters) => {\n const { border } = parameters;\n const result = (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.topBody,\n join: border.topJoin,\n left: border.topLeft,\n right: border.topRight,\n },\n });\n if (result === '\\n') {\n return '';\n }\n return result;\n};\nexports.drawBorderTop = drawBorderTop;\nconst drawBorderJoin = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.joinBody,\n bodyJoinInner: border.bodyJoin,\n bodyJoinOuter: border.bodyLeft,\n join: border.joinJoin,\n joinDown: border.joinMiddleDown,\n joinLeft: border.joinMiddleLeft,\n joinRight: border.joinMiddleRight,\n joinUp: border.joinMiddleUp,\n left: border.joinLeft,\n right: border.joinRight,\n },\n });\n};\nexports.drawBorderJoin = drawBorderJoin;\nconst drawBorderBottom = (columnWidths, parameters) => {\n const { border } = parameters;\n return (0, exports.drawBorder)(columnWidths, {\n ...parameters,\n separator: {\n body: border.bottomBody,\n join: border.bottomJoin,\n left: border.bottomLeft,\n right: border.bottomRight,\n },\n });\n};\nexports.drawBorderBottom = drawBorderBottom;\nconst createTableBorderGetter = (columnWidths, parameters) => {\n return (index, size) => {\n const drawBorderParameters = { ...parameters,\n horizontalBorderIndex: index };\n if (index === 0) {\n return (0, exports.drawBorderTop)(columnWidths, drawBorderParameters);\n }\n else if (index === size) {\n return (0, exports.drawBorderBottom)(columnWidths, drawBorderParameters);\n }\n return (0, exports.drawBorderJoin)(columnWidths, drawBorderParameters);\n };\n};\nexports.createTableBorderGetter = createTableBorderGetter;\n//# sourceMappingURL=drawBorder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawRow = void 0;\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow = (row, config) => {\n const { border, drawVerticalLine, rowIndex, spanningCellManager } = config;\n return (0, drawContent_1.drawContent)({\n contents: row,\n drawSeparator: drawVerticalLine,\n elementType: 'cell',\n rowIndex,\n separatorGetter: (index, columnCount) => {\n if (index === 0) {\n return border.bodyLeft;\n }\n if (index === columnCount) {\n return border.bodyRight;\n }\n return border.bodyJoin;\n },\n spanningCellManager,\n }) + '\\n';\n};\nexports.drawRow = drawRow;\n//# sourceMappingURL=drawRow.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nexports[\"config.json\"] = validate43;\nconst schema13 = {\n \"$id\": \"config.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"header\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"content\"],\n \"additionalProperties\": false\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n },\n \"drawHorizontalLine\": {\n \"typeof\": \"function\"\n },\n \"singleLine\": {\n \"typeof\": \"boolean\"\n },\n \"spanningCells\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"col\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"row\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"colSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"rowSpan\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"alignment\": {\n \"$ref\": \"shared.json#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"shared.json#/definitions/verticalAlignment\"\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\"row\", \"col\"],\n \"additionalProperties\": false\n }\n }\n },\n \"additionalProperties\": false\n};\nconst schema15 = {\n \"type\": \"object\",\n \"properties\": {\n \"topBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"topRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bottomRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"bodyJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"headerJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinBody\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinRight\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinJoin\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleUp\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleDown\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleLeft\": {\n \"$ref\": \"#/definitions/border\"\n },\n \"joinMiddleRight\": {\n \"$ref\": \"#/definitions/border\"\n }\n },\n \"additionalProperties\": false\n};\nconst func8 = Object.prototype.hasOwnProperty;\nconst schema16 = {\n \"type\": \"string\"\n};\nfunction validate46(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n validate46.errors = vErrors;\n return errors === 0;\n}\nfunction validate45(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate45.errors = vErrors;\n return errors === 0;\n}\nconst schema17 = {\n \"type\": \"string\",\n \"enum\": [\"left\", \"right\", \"center\", \"justify\"]\n};\nconst func0 = require(\"ajv/dist/runtime/equal\").default;\nfunction validate68(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate68.errors = vErrors;\n return errors === 0;\n}\nconst schema18 = {\n \"oneOf\": [{\n \"type\": \"object\",\n \"patternProperties\": {\n \"^[0-9]+$\": {\n \"$ref\": \"#/definitions/column\"\n }\n },\n \"additionalProperties\": false\n }, {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/column\"\n }\n }]\n};\nconst pattern0 = new RegExp(\"^[0-9]+$\", \"u\");\nconst schema19 = {\n \"type\": \"object\",\n \"properties\": {\n \"alignment\": {\n \"$ref\": \"#/definitions/alignment\"\n },\n \"verticalAlignment\": {\n \"$ref\": \"#/definitions/verticalAlignment\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"wrapWord\": {\n \"type\": \"boolean\"\n },\n \"truncate\": {\n \"type\": \"integer\"\n },\n \"paddingLeft\": {\n \"type\": \"integer\"\n },\n \"paddingRight\": {\n \"type\": \"integer\"\n }\n },\n \"additionalProperties\": false\n};\nfunction validate72(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!((((data === \"left\") || (data === \"right\")) || (data === \"center\")) || (data === \"justify\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema17.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate72.errors = vErrors;\n return errors === 0;\n}\nconst schema21 = {\n \"type\": \"string\",\n \"enum\": [\"top\", \"middle\", \"bottom\"]\n};\nfunction validate74(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate74.errors = vErrors;\n return errors === 0;\n}\nfunction validate71(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate71.errors = vErrors;\n return errors === 0;\n}\nfunction validate70(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate70.errors = vErrors;\n return errors === 0;\n}\nfunction validate79(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate79.errors = vErrors;\n return errors === 0;\n}\nfunction validate84(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (typeof data !== \"string\") {\n const err0 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (!(((data === \"top\") || (data === \"middle\")) || (data === \"bottom\"))) {\n const err1 = {\n instancePath,\n schemaPath: \"#/enum\",\n keyword: \"enum\",\n params: {\n allowedValues: schema21.enum\n },\n message: \"must be equal to one of the allowed values\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate84.errors = vErrors;\n return errors === 0;\n}\nfunction validate43(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"config.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!((((((((key0 === \"border\") || (key0 === \"header\")) || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"drawVerticalLine\")) || (key0 === \"drawHorizontalLine\")) || (key0 === \"singleLine\")) || (key0 === \"spanningCells\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate45(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate45.errors : vErrors.concat(validate45.errors);\n errors = vErrors.length;\n }\n }\n if (data.header !== undefined) {\n let data1 = data.header;\n if (data1 && typeof data1 == \"object\" && !Array.isArray(data1)) {\n if (data1.content === undefined) {\n const err1 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"content\"\n },\n message: \"must have required property '\" + \"content\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key1 in data1) {\n if (!((((((key1 === \"content\") || (key1 === \"alignment\")) || (key1 === \"wrapWord\")) || (key1 === \"truncate\")) || (key1 === \"paddingLeft\")) || (key1 === \"paddingRight\"))) {\n const err2 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key1\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data1.content !== undefined) {\n if (typeof data1.content !== \"string\") {\n const err3 = {\n instancePath: instancePath + \"/header/content\",\n schemaPath: \"#/properties/header/properties/content/type\",\n keyword: \"type\",\n params: {\n type: \"string\"\n },\n message: \"must be string\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data1.alignment !== undefined) {\n if (!(validate68(data1.alignment, {\n instancePath: instancePath + \"/header/alignment\",\n parentData: data1,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data1.wrapWord !== undefined) {\n if (typeof data1.wrapWord !== \"boolean\") {\n const err4 = {\n instancePath: instancePath + \"/header/wrapWord\",\n schemaPath: \"#/properties/header/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data1.truncate !== undefined) {\n let data5 = data1.truncate;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/header/truncate\",\n schemaPath: \"#/properties/header/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data1.paddingLeft !== undefined) {\n let data6 = data1.paddingLeft;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/header/paddingLeft\",\n schemaPath: \"#/properties/header/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n if (data1.paddingRight !== undefined) {\n let data7 = data1.paddingRight;\n if (!(((typeof data7 == \"number\") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) {\n const err7 = {\n instancePath: instancePath + \"/header/paddingRight\",\n schemaPath: \"#/properties/header/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n }\n }\n else {\n const err8 = {\n instancePath: instancePath + \"/header\",\n schemaPath: \"#/properties/header/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err8];\n }\n else {\n vErrors.push(err8);\n }\n errors++;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate70(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate79(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors);\n errors = vErrors.length;\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err9 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err9];\n }\n else {\n vErrors.push(err9);\n }\n errors++;\n }\n }\n if (data.drawHorizontalLine !== undefined) {\n if (typeof data.drawHorizontalLine != \"function\") {\n const err10 = {\n instancePath: instancePath + \"/drawHorizontalLine\",\n schemaPath: \"#/properties/drawHorizontalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err10];\n }\n else {\n vErrors.push(err10);\n }\n errors++;\n }\n }\n if (data.singleLine !== undefined) {\n if (typeof data.singleLine != \"boolean\") {\n const err11 = {\n instancePath: instancePath + \"/singleLine\",\n schemaPath: \"#/properties/singleLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err11];\n }\n else {\n vErrors.push(err11);\n }\n errors++;\n }\n }\n if (data.spanningCells !== undefined) {\n let data13 = data.spanningCells;\n if (Array.isArray(data13)) {\n const len0 = data13.length;\n for (let i0 = 0; i0 < len0; i0++) {\n let data14 = data13[i0];\n if (data14 && typeof data14 == \"object\" && !Array.isArray(data14)) {\n if (data14.row === undefined) {\n const err12 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"row\"\n },\n message: \"must have required property '\" + \"row\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err12];\n }\n else {\n vErrors.push(err12);\n }\n errors++;\n }\n if (data14.col === undefined) {\n const err13 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"col\"\n },\n message: \"must have required property '\" + \"col\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err13];\n }\n else {\n vErrors.push(err13);\n }\n errors++;\n }\n for (const key2 in data14) {\n if (!(func8.call(schema13.properties.spanningCells.items.properties, key2))) {\n const err14 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key2\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err14];\n }\n else {\n vErrors.push(err14);\n }\n errors++;\n }\n }\n if (data14.col !== undefined) {\n let data15 = data14.col;\n if (!(((typeof data15 == \"number\") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) {\n const err15 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err15];\n }\n else {\n vErrors.push(err15);\n }\n errors++;\n }\n if ((typeof data15 == \"number\") && (isFinite(data15))) {\n if (data15 < 0 || isNaN(data15)) {\n const err16 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/col\",\n schemaPath: \"#/properties/spanningCells/items/properties/col/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err16];\n }\n else {\n vErrors.push(err16);\n }\n errors++;\n }\n }\n }\n if (data14.row !== undefined) {\n let data16 = data14.row;\n if (!(((typeof data16 == \"number\") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) {\n const err17 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err17];\n }\n else {\n vErrors.push(err17);\n }\n errors++;\n }\n if ((typeof data16 == \"number\") && (isFinite(data16))) {\n if (data16 < 0 || isNaN(data16)) {\n const err18 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/row\",\n schemaPath: \"#/properties/spanningCells/items/properties/row/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 0\n },\n message: \"must be >= 0\"\n };\n if (vErrors === null) {\n vErrors = [err18];\n }\n else {\n vErrors.push(err18);\n }\n errors++;\n }\n }\n }\n if (data14.colSpan !== undefined) {\n let data17 = data14.colSpan;\n if (!(((typeof data17 == \"number\") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) {\n const err19 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err19];\n }\n else {\n vErrors.push(err19);\n }\n errors++;\n }\n if ((typeof data17 == \"number\") && (isFinite(data17))) {\n if (data17 < 1 || isNaN(data17)) {\n const err20 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/colSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/colSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err20];\n }\n else {\n vErrors.push(err20);\n }\n errors++;\n }\n }\n }\n if (data14.rowSpan !== undefined) {\n let data18 = data14.rowSpan;\n if (!(((typeof data18 == \"number\") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) {\n const err21 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err21];\n }\n else {\n vErrors.push(err21);\n }\n errors++;\n }\n if ((typeof data18 == \"number\") && (isFinite(data18))) {\n if (data18 < 1 || isNaN(data18)) {\n const err22 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/rowSpan\",\n schemaPath: \"#/properties/spanningCells/items/properties/rowSpan/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err22];\n }\n else {\n vErrors.push(err22);\n }\n errors++;\n }\n }\n }\n if (data14.alignment !== undefined) {\n if (!(validate68(data14.alignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/alignment\",\n parentData: data14,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);\n errors = vErrors.length;\n }\n }\n if (data14.verticalAlignment !== undefined) {\n if (!(validate84(data14.verticalAlignment, {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/verticalAlignment\",\n parentData: data14,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate84.errors : vErrors.concat(validate84.errors);\n errors = vErrors.length;\n }\n }\n if (data14.wrapWord !== undefined) {\n if (typeof data14.wrapWord !== \"boolean\") {\n const err23 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/wrapWord\",\n schemaPath: \"#/properties/spanningCells/items/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err23];\n }\n else {\n vErrors.push(err23);\n }\n errors++;\n }\n }\n if (data14.truncate !== undefined) {\n let data22 = data14.truncate;\n if (!(((typeof data22 == \"number\") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) {\n const err24 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/truncate\",\n schemaPath: \"#/properties/spanningCells/items/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err24];\n }\n else {\n vErrors.push(err24);\n }\n errors++;\n }\n }\n if (data14.paddingLeft !== undefined) {\n let data23 = data14.paddingLeft;\n if (!(((typeof data23 == \"number\") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))) {\n const err25 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingLeft\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err25];\n }\n else {\n vErrors.push(err25);\n }\n errors++;\n }\n }\n if (data14.paddingRight !== undefined) {\n let data24 = data14.paddingRight;\n if (!(((typeof data24 == \"number\") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))) {\n const err26 = {\n instancePath: instancePath + \"/spanningCells/\" + i0 + \"/paddingRight\",\n schemaPath: \"#/properties/spanningCells/items/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err26];\n }\n else {\n vErrors.push(err26);\n }\n errors++;\n }\n }\n }\n else {\n const err27 = {\n instancePath: instancePath + \"/spanningCells/\" + i0,\n schemaPath: \"#/properties/spanningCells/items/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err27];\n }\n else {\n vErrors.push(err27);\n }\n errors++;\n }\n }\n }\n else {\n const err28 = {\n instancePath: instancePath + \"/spanningCells\",\n schemaPath: \"#/properties/spanningCells/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err28];\n }\n else {\n vErrors.push(err28);\n }\n errors++;\n }\n }\n }\n else {\n const err29 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err29];\n }\n else {\n vErrors.push(err29);\n }\n errors++;\n }\n validate43.errors = vErrors;\n return errors === 0;\n}\nexports[\"streamConfig.json\"] = validate86;\nconst schema24 = {\n \"$id\": \"streamConfig.json\",\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"type\": \"object\",\n \"properties\": {\n \"border\": {\n \"$ref\": \"shared.json#/definitions/borders\"\n },\n \"columns\": {\n \"$ref\": \"shared.json#/definitions/columns\"\n },\n \"columnDefault\": {\n \"$ref\": \"shared.json#/definitions/column\"\n },\n \"columnCount\": {\n \"type\": \"integer\",\n \"minimum\": 1\n },\n \"drawVerticalLine\": {\n \"typeof\": \"function\"\n }\n },\n \"required\": [\"columnDefault\", \"columnCount\"],\n \"additionalProperties\": false\n};\nfunction validate87(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(func8.call(schema15.properties, key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.topBody !== undefined) {\n if (!(validate46(data.topBody, {\n instancePath: instancePath + \"/topBody\",\n parentData: data,\n parentDataProperty: \"topBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topJoin !== undefined) {\n if (!(validate46(data.topJoin, {\n instancePath: instancePath + \"/topJoin\",\n parentData: data,\n parentDataProperty: \"topJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topLeft !== undefined) {\n if (!(validate46(data.topLeft, {\n instancePath: instancePath + \"/topLeft\",\n parentData: data,\n parentDataProperty: \"topLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.topRight !== undefined) {\n if (!(validate46(data.topRight, {\n instancePath: instancePath + \"/topRight\",\n parentData: data,\n parentDataProperty: \"topRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomBody !== undefined) {\n if (!(validate46(data.bottomBody, {\n instancePath: instancePath + \"/bottomBody\",\n parentData: data,\n parentDataProperty: \"bottomBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomJoin !== undefined) {\n if (!(validate46(data.bottomJoin, {\n instancePath: instancePath + \"/bottomJoin\",\n parentData: data,\n parentDataProperty: \"bottomJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomLeft !== undefined) {\n if (!(validate46(data.bottomLeft, {\n instancePath: instancePath + \"/bottomLeft\",\n parentData: data,\n parentDataProperty: \"bottomLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bottomRight !== undefined) {\n if (!(validate46(data.bottomRight, {\n instancePath: instancePath + \"/bottomRight\",\n parentData: data,\n parentDataProperty: \"bottomRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyLeft !== undefined) {\n if (!(validate46(data.bodyLeft, {\n instancePath: instancePath + \"/bodyLeft\",\n parentData: data,\n parentDataProperty: \"bodyLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyRight !== undefined) {\n if (!(validate46(data.bodyRight, {\n instancePath: instancePath + \"/bodyRight\",\n parentData: data,\n parentDataProperty: \"bodyRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.bodyJoin !== undefined) {\n if (!(validate46(data.bodyJoin, {\n instancePath: instancePath + \"/bodyJoin\",\n parentData: data,\n parentDataProperty: \"bodyJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.headerJoin !== undefined) {\n if (!(validate46(data.headerJoin, {\n instancePath: instancePath + \"/headerJoin\",\n parentData: data,\n parentDataProperty: \"headerJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinBody !== undefined) {\n if (!(validate46(data.joinBody, {\n instancePath: instancePath + \"/joinBody\",\n parentData: data,\n parentDataProperty: \"joinBody\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinLeft !== undefined) {\n if (!(validate46(data.joinLeft, {\n instancePath: instancePath + \"/joinLeft\",\n parentData: data,\n parentDataProperty: \"joinLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinRight !== undefined) {\n if (!(validate46(data.joinRight, {\n instancePath: instancePath + \"/joinRight\",\n parentData: data,\n parentDataProperty: \"joinRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinJoin !== undefined) {\n if (!(validate46(data.joinJoin, {\n instancePath: instancePath + \"/joinJoin\",\n parentData: data,\n parentDataProperty: \"joinJoin\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleUp !== undefined) {\n if (!(validate46(data.joinMiddleUp, {\n instancePath: instancePath + \"/joinMiddleUp\",\n parentData: data,\n parentDataProperty: \"joinMiddleUp\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleDown !== undefined) {\n if (!(validate46(data.joinMiddleDown, {\n instancePath: instancePath + \"/joinMiddleDown\",\n parentData: data,\n parentDataProperty: \"joinMiddleDown\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleLeft !== undefined) {\n if (!(validate46(data.joinMiddleLeft, {\n instancePath: instancePath + \"/joinMiddleLeft\",\n parentData: data,\n parentDataProperty: \"joinMiddleLeft\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n if (data.joinMiddleRight !== undefined) {\n if (!(validate46(data.joinMiddleRight, {\n instancePath: instancePath + \"/joinMiddleRight\",\n parentData: data,\n parentDataProperty: \"joinMiddleRight\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n validate87.errors = vErrors;\n return errors === 0;\n}\nfunction validate109(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n const _errs0 = errors;\n let valid0 = false;\n let passing0 = null;\n const _errs1 = errors;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(pattern0.test(key0))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/oneOf/0/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n for (const key1 in data) {\n if (pattern0.test(key1)) {\n if (!(validate71(data[key1], {\n instancePath: instancePath + \"/\" + key1.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),\n parentData: data,\n parentDataProperty: key1,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n }\n else {\n const err1 = {\n instancePath,\n schemaPath: \"#/oneOf/0/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n var _valid0 = _errs1 === errors;\n if (_valid0) {\n valid0 = true;\n passing0 = 0;\n }\n const _errs5 = errors;\n if (Array.isArray(data)) {\n const len0 = data.length;\n for (let i0 = 0; i0 < len0; i0++) {\n if (!(validate71(data[i0], {\n instancePath: instancePath + \"/\" + i0,\n parentData: data,\n parentDataProperty: i0,\n rootData\n }))) {\n vErrors = vErrors === null ? validate71.errors : vErrors.concat(validate71.errors);\n errors = vErrors.length;\n }\n }\n }\n else {\n const err2 = {\n instancePath,\n schemaPath: \"#/oneOf/1/type\",\n keyword: \"type\",\n params: {\n type: \"array\"\n },\n message: \"must be array\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n var _valid0 = _errs5 === errors;\n if (_valid0 && valid0) {\n valid0 = false;\n passing0 = [passing0, 1];\n }\n else {\n if (_valid0) {\n valid0 = true;\n passing0 = 1;\n }\n }\n if (!valid0) {\n const err3 = {\n instancePath,\n schemaPath: \"#/oneOf\",\n keyword: \"oneOf\",\n params: {\n passingSchemas: passing0\n },\n message: \"must match exactly one schema in oneOf\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n else {\n errors = _errs0;\n if (vErrors !== null) {\n if (_errs0) {\n vErrors.length = _errs0;\n }\n else {\n vErrors = null;\n }\n }\n }\n validate109.errors = vErrors;\n return errors === 0;\n}\nfunction validate113(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n for (const key0 in data) {\n if (!(((((((key0 === \"alignment\") || (key0 === \"verticalAlignment\")) || (key0 === \"width\")) || (key0 === \"wrapWord\")) || (key0 === \"truncate\")) || (key0 === \"paddingLeft\")) || (key0 === \"paddingRight\"))) {\n const err0 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n }\n if (data.alignment !== undefined) {\n if (!(validate72(data.alignment, {\n instancePath: instancePath + \"/alignment\",\n parentData: data,\n parentDataProperty: \"alignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);\n errors = vErrors.length;\n }\n }\n if (data.verticalAlignment !== undefined) {\n if (!(validate74(data.verticalAlignment, {\n instancePath: instancePath + \"/verticalAlignment\",\n parentData: data,\n parentDataProperty: \"verticalAlignment\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate74.errors : vErrors.concat(validate74.errors);\n errors = vErrors.length;\n }\n }\n if (data.width !== undefined) {\n let data2 = data.width;\n if (!(((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {\n const err1 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n if ((typeof data2 == \"number\") && (isFinite(data2))) {\n if (data2 < 1 || isNaN(data2)) {\n const err2 = {\n instancePath: instancePath + \"/width\",\n schemaPath: \"#/properties/width/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n }\n if (data.wrapWord !== undefined) {\n if (typeof data.wrapWord !== \"boolean\") {\n const err3 = {\n instancePath: instancePath + \"/wrapWord\",\n schemaPath: \"#/properties/wrapWord/type\",\n keyword: \"type\",\n params: {\n type: \"boolean\"\n },\n message: \"must be boolean\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n }\n if (data.truncate !== undefined) {\n let data4 = data.truncate;\n if (!(((typeof data4 == \"number\") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {\n const err4 = {\n instancePath: instancePath + \"/truncate\",\n schemaPath: \"#/properties/truncate/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n if (data.paddingLeft !== undefined) {\n let data5 = data.paddingLeft;\n if (!(((typeof data5 == \"number\") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {\n const err5 = {\n instancePath: instancePath + \"/paddingLeft\",\n schemaPath: \"#/properties/paddingLeft/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n if (data.paddingRight !== undefined) {\n let data6 = data.paddingRight;\n if (!(((typeof data6 == \"number\") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {\n const err6 = {\n instancePath: instancePath + \"/paddingRight\",\n schemaPath: \"#/properties/paddingRight/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n }\n }\n else {\n const err7 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err7];\n }\n else {\n vErrors.push(err7);\n }\n errors++;\n }\n validate113.errors = vErrors;\n return errors === 0;\n}\nfunction validate86(data, { instancePath = \"\", parentData, parentDataProperty, rootData = data } = {}) {\n /*# sourceURL=\"streamConfig.json\" */ ;\n let vErrors = null;\n let errors = 0;\n if (data && typeof data == \"object\" && !Array.isArray(data)) {\n if (data.columnDefault === undefined) {\n const err0 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnDefault\"\n },\n message: \"must have required property '\" + \"columnDefault\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err0];\n }\n else {\n vErrors.push(err0);\n }\n errors++;\n }\n if (data.columnCount === undefined) {\n const err1 = {\n instancePath,\n schemaPath: \"#/required\",\n keyword: \"required\",\n params: {\n missingProperty: \"columnCount\"\n },\n message: \"must have required property '\" + \"columnCount\" + \"'\"\n };\n if (vErrors === null) {\n vErrors = [err1];\n }\n else {\n vErrors.push(err1);\n }\n errors++;\n }\n for (const key0 in data) {\n if (!(((((key0 === \"border\") || (key0 === \"columns\")) || (key0 === \"columnDefault\")) || (key0 === \"columnCount\")) || (key0 === \"drawVerticalLine\"))) {\n const err2 = {\n instancePath,\n schemaPath: \"#/additionalProperties\",\n keyword: \"additionalProperties\",\n params: {\n additionalProperty: key0\n },\n message: \"must NOT have additional properties\"\n };\n if (vErrors === null) {\n vErrors = [err2];\n }\n else {\n vErrors.push(err2);\n }\n errors++;\n }\n }\n if (data.border !== undefined) {\n if (!(validate87(data.border, {\n instancePath: instancePath + \"/border\",\n parentData: data,\n parentDataProperty: \"border\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate87.errors : vErrors.concat(validate87.errors);\n errors = vErrors.length;\n }\n }\n if (data.columns !== undefined) {\n if (!(validate109(data.columns, {\n instancePath: instancePath + \"/columns\",\n parentData: data,\n parentDataProperty: \"columns\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate109.errors : vErrors.concat(validate109.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnDefault !== undefined) {\n if (!(validate113(data.columnDefault, {\n instancePath: instancePath + \"/columnDefault\",\n parentData: data,\n parentDataProperty: \"columnDefault\",\n rootData\n }))) {\n vErrors = vErrors === null ? validate113.errors : vErrors.concat(validate113.errors);\n errors = vErrors.length;\n }\n }\n if (data.columnCount !== undefined) {\n let data3 = data.columnCount;\n if (!(((typeof data3 == \"number\") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {\n const err3 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/type\",\n keyword: \"type\",\n params: {\n type: \"integer\"\n },\n message: \"must be integer\"\n };\n if (vErrors === null) {\n vErrors = [err3];\n }\n else {\n vErrors.push(err3);\n }\n errors++;\n }\n if ((typeof data3 == \"number\") && (isFinite(data3))) {\n if (data3 < 1 || isNaN(data3)) {\n const err4 = {\n instancePath: instancePath + \"/columnCount\",\n schemaPath: \"#/properties/columnCount/minimum\",\n keyword: \"minimum\",\n params: {\n comparison: \">=\",\n limit: 1\n },\n message: \"must be >= 1\"\n };\n if (vErrors === null) {\n vErrors = [err4];\n }\n else {\n vErrors.push(err4);\n }\n errors++;\n }\n }\n }\n if (data.drawVerticalLine !== undefined) {\n if (typeof data.drawVerticalLine != \"function\") {\n const err5 = {\n instancePath: instancePath + \"/drawVerticalLine\",\n schemaPath: \"#/properties/drawVerticalLine/typeof\",\n keyword: \"typeof\",\n params: {},\n message: \"must pass \\\"typeof\\\" keyword validation\"\n };\n if (vErrors === null) {\n vErrors = [err5];\n }\n else {\n vErrors.push(err5);\n }\n errors++;\n }\n }\n }\n else {\n const err6 = {\n instancePath,\n schemaPath: \"#/type\",\n keyword: \"type\",\n params: {\n type: \"object\"\n },\n message: \"must be object\"\n };\n if (vErrors === null) {\n vErrors = [err6];\n }\n else {\n vErrors.push(err6);\n }\n errors++;\n }\n validate86.errors = vErrors;\n return errors === 0;\n}\n//# sourceMappingURL=validators.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateConfig = void 0;\nconst validators_1 = __importDefault(require(\"./generated/validators\"));\nconst validateConfig = (schemaId, config) => {\n const validate = validators_1.default[schemaId];\n if (!validate(config) && validate.errors) {\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n const errors = validate.errors.map((error) => {\n return {\n message: error.message,\n params: error.params,\n schemaPath: error.schemaPath,\n };\n });\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('errors', errors);\n /* eslint-enable no-console */\n throw new Error('Invalid config.');\n }\n};\nexports.validateConfig = validateConfig;\n//# sourceMappingURL=validateConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeStreamConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (columnCount, columns = {}, columnDefault) => {\n return Array.from({ length: columnCount }).map((_, index) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n wrapWord: false,\n ...columnDefault,\n ...columns[index],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeStreamConfig = (config) => {\n (0, validateConfig_1.validateConfig)('streamConfig.json', config);\n if (config.columnDefault.width === undefined) {\n throw new Error('Must provide config.columnDefault.width when creating a stream.');\n }\n return {\n drawVerticalLine: () => {\n return true;\n },\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: makeColumnsConfig(config.columnCount, config.columns, config.columnDefault),\n };\n};\nexports.makeStreamConfig = makeStreamConfig;\n//# sourceMappingURL=makeStreamConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapDataUsingRowHeights = exports.padCellVertically = void 0;\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\nconst createEmptyStrings = (length) => {\n return new Array(length).fill('');\n};\nconst padCellVertically = (lines, rowHeight, verticalAlignment) => {\n const availableLines = rowHeight - lines.length;\n if (verticalAlignment === 'top') {\n return [...lines, ...createEmptyStrings(availableLines)];\n }\n if (verticalAlignment === 'bottom') {\n return [...createEmptyStrings(availableLines), ...lines];\n }\n return [\n ...createEmptyStrings(Math.floor(availableLines / 2)),\n ...lines,\n ...createEmptyStrings(Math.ceil(availableLines / 2)),\n ];\n};\nexports.padCellVertically = padCellVertically;\nconst mapDataUsingRowHeights = (unmappedRows, rowHeights, config) => {\n const nColumns = unmappedRows[0].length;\n const mappedRows = unmappedRows.map((unmappedRow, unmappedRowIndex) => {\n const outputRowHeight = rowHeights[unmappedRowIndex];\n const outputRow = Array.from({ length: outputRowHeight }, () => {\n return new Array(nColumns).fill('');\n });\n unmappedRow.forEach((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: unmappedRowIndex });\n if (containingRange) {\n containingRange.extractCellContent(unmappedRowIndex).forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n return;\n }\n const cellLines = (0, wrapCell_1.wrapCell)(cell, config.columns[cellIndex].width, config.columns[cellIndex].wrapWord);\n const paddedCellLines = (0, exports.padCellVertically)(cellLines, outputRowHeight, config.columns[cellIndex].verticalAlignment);\n paddedCellLines.forEach((cellLine, cellLineIndex) => {\n outputRow[cellLineIndex][cellIndex] = cellLine;\n });\n });\n return outputRow;\n });\n return (0, utils_1.flatten)(mappedRows);\n};\nexports.mapDataUsingRowHeights = mapDataUsingRowHeights;\n//# sourceMappingURL=mapDataUsingRowHeights.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padTableData = exports.padString = void 0;\nconst padString = (input, paddingLeft, paddingRight) => {\n return ' '.repeat(paddingLeft) + input + ' '.repeat(paddingRight);\n};\nexports.padString = padString;\nconst padTableData = (rows, config) => {\n return rows.map((cells, rowIndex) => {\n return cells.map((cell, cellIndex) => {\n var _a;\n const containingRange = (_a = config.spanningCellManager) === null || _a === void 0 ? void 0 : _a.getContainingRange({ col: cellIndex,\n row: rowIndex }, { mapped: true });\n if (containingRange) {\n return cell;\n }\n const { paddingLeft, paddingRight } = config.columns[cellIndex];\n return (0, exports.padString)(cell, paddingLeft, paddingRight);\n });\n });\n};\nexports.padTableData = padTableData;\n//# sourceMappingURL=padTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringifyTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst stringifyTableData = (rows) => {\n return rows.map((cells) => {\n return cells.map((cell) => {\n return (0, utils_1.normalizeString)(String(cell));\n });\n });\n};\nexports.stringifyTableData = stringifyTableData;\n//# sourceMappingURL=stringifyTableData.js.map","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n result++;\n }\n return result;\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObject(value) && objectToString.call(value) == regexpTag;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nmodule.exports = truncate;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.truncateTableData = exports.truncateString = void 0;\nconst lodash_truncate_1 = __importDefault(require(\"lodash.truncate\"));\nconst truncateString = (input, length) => {\n return (0, lodash_truncate_1.default)(input, { length,\n omission: '…' });\n};\nexports.truncateString = truncateString;\n/**\n * @todo Make it work with ASCII content.\n */\nconst truncateTableData = (rows, truncates) => {\n return rows.map((cells) => {\n return cells.map((cell, cellIndex) => {\n return (0, exports.truncateString)(cell, truncates[cellIndex]);\n });\n });\n};\nexports.truncateTableData = truncateTableData;\n//# sourceMappingURL=truncateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStream = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawRow_1 = require(\"./drawRow\");\nconst makeStreamConfig_1 = require(\"./makeStreamConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst prepareData = (data, config) => {\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n rows = (0, truncateTableData_1.truncateTableData)(rows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n return rows;\n};\nconst create = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output;\n output = '';\n output += (0, drawBorder_1.drawBorderTop)(columnWidths, config);\n output += body;\n output += (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst append = (row, columnWidths, config) => {\n const rows = prepareData([row], config);\n const body = rows.map((literalRow) => {\n return (0, drawRow_1.drawRow)(literalRow, config);\n }).join('');\n let output = '';\n const bottom = (0, drawBorder_1.drawBorderBottom)(columnWidths, config);\n if (bottom !== '\\n') {\n output = '\\r\\u001B[K';\n }\n output += (0, drawBorder_1.drawBorderJoin)(columnWidths, config);\n output += body;\n output += bottom;\n output = output.trimEnd();\n process.stdout.write(output);\n};\nconst createStream = (userConfig) => {\n const config = (0, makeStreamConfig_1.makeStreamConfig)(userConfig);\n const columnWidths = Object.values(config.columns).map((column) => {\n return column.width + column.paddingLeft + column.paddingRight;\n });\n let empty = true;\n return {\n write: (row) => {\n if (row.length !== config.columnCount) {\n throw new Error('Row cell count does not match the config.columnCount.');\n }\n if (empty) {\n empty = false;\n create(row, columnWidths, config);\n }\n else {\n append(row, columnWidths, config);\n }\n },\n };\n};\nexports.createStream = createStream;\n//# sourceMappingURL=createStream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateOutputColumnWidths = void 0;\nconst calculateOutputColumnWidths = (config) => {\n return config.columns.map((col) => {\n return col.paddingLeft + col.width + col.paddingRight;\n });\n};\nexports.calculateOutputColumnWidths = calculateOutputColumnWidths;\n//# sourceMappingURL=calculateOutputColumnWidths.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.drawTable = void 0;\nconst drawBorder_1 = require(\"./drawBorder\");\nconst drawContent_1 = require(\"./drawContent\");\nconst drawRow_1 = require(\"./drawRow\");\nconst utils_1 = require(\"./utils\");\nconst drawTable = (rows, outputColumnWidths, rowHeights, config) => {\n const { drawHorizontalLine, singleLine, } = config;\n const contents = (0, utils_1.groupBySizes)(rows, rowHeights).map((group, groupIndex) => {\n return group.map((row) => {\n return (0, drawRow_1.drawRow)(row, { ...config,\n rowIndex: groupIndex });\n }).join('');\n });\n return (0, drawContent_1.drawContent)({ contents,\n drawSeparator: (index, size) => {\n // Top/bottom border\n if (index === 0 || index === size) {\n return drawHorizontalLine(index, size);\n }\n return !singleLine && drawHorizontalLine(index, size);\n },\n elementType: 'row',\n rowIndex: -1,\n separatorGetter: (0, drawBorder_1.createTableBorderGetter)(outputColumnWidths, { ...config,\n rowCount: contents.length }),\n spanningCellManager: config.spanningCellManager });\n};\nexports.drawTable = drawTable;\n//# sourceMappingURL=drawTable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectHeaderConfig = void 0;\nconst injectHeaderConfig = (rows, config) => {\n var _a;\n let spanningCellConfig = (_a = config.spanningCells) !== null && _a !== void 0 ? _a : [];\n const headerConfig = config.header;\n const adjustedRows = [...rows];\n if (headerConfig) {\n spanningCellConfig = spanningCellConfig.map(({ row, ...rest }) => {\n return { ...rest,\n row: row + 1 };\n });\n const { content, ...headerStyles } = headerConfig;\n spanningCellConfig.unshift({ alignment: 'center',\n col: 0,\n colSpan: rows[0].length,\n paddingLeft: 1,\n paddingRight: 1,\n row: 0,\n wrapWord: false,\n ...headerStyles });\n adjustedRows.unshift([content, ...Array.from({ length: rows[0].length - 1 }).fill('')]);\n }\n return [adjustedRows,\n spanningCellConfig];\n};\nexports.injectHeaderConfig = injectHeaderConfig;\n//# sourceMappingURL=injectHeaderConfig.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateMaximumColumnWidths = exports.calculateMaximumCellWidth = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst utils_1 = require(\"./utils\");\nconst calculateMaximumCellWidth = (cell) => {\n return Math.max(...cell.split('\\n').map(string_width_1.default));\n};\nexports.calculateMaximumCellWidth = calculateMaximumCellWidth;\n/**\n * Produces an array of values that describe the largest value length (width) in every column.\n */\nconst calculateMaximumColumnWidths = (rows, spanningCellConfigs = []) => {\n const columnWidths = new Array(rows[0].length).fill(0);\n const rangeCoordinates = spanningCellConfigs.map(utils_1.calculateRangeCoordinate);\n const isSpanningCell = (rowIndex, columnIndex) => {\n return rangeCoordinates.some((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)({ col: columnIndex,\n row: rowIndex }, rangeCoordinate);\n });\n };\n rows.forEach((row, rowIndex) => {\n row.forEach((cell, cellIndex) => {\n if (isSpanningCell(rowIndex, cellIndex)) {\n return;\n }\n columnWidths[cellIndex] = Math.max(columnWidths[cellIndex], (0, exports.calculateMaximumCellWidth)(cell));\n });\n });\n return columnWidths;\n};\nexports.calculateMaximumColumnWidths = calculateMaximumColumnWidths;\n//# sourceMappingURL=calculateMaximumColumnWidths.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alignVerticalRangeContent = exports.wrapRangeContent = void 0;\nconst string_width_1 = __importDefault(require(\"string-width\"));\nconst alignString_1 = require(\"./alignString\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst wrapCell_1 = require(\"./wrapCell\");\n/**\n * Fill content into all cells in range in order to calculate total height\n */\nconst wrapRangeContent = (rangeConfig, rangeWidth, context) => {\n const { topLeft, paddingRight, paddingLeft, truncate, wrapWord, alignment } = rangeConfig;\n const originalContent = context.rows[topLeft.row][topLeft.col];\n const contentWidth = rangeWidth - paddingLeft - paddingRight;\n return (0, wrapCell_1.wrapCell)((0, truncateTableData_1.truncateString)(originalContent, truncate), contentWidth, wrapWord).map((line) => {\n const alignedLine = (0, alignString_1.alignString)(line, contentWidth, alignment);\n return (0, padTableData_1.padString)(alignedLine, paddingLeft, paddingRight);\n });\n};\nexports.wrapRangeContent = wrapRangeContent;\nconst alignVerticalRangeContent = (range, content, context) => {\n const { rows, drawHorizontalLine, rowHeights } = context;\n const { topLeft, bottomRight, verticalAlignment } = range;\n // They are empty before calculateRowHeights function run\n if (rowHeights.length === 0) {\n return [];\n }\n const totalCellHeight = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, bottomRight.row + 1));\n const totalBorderHeight = bottomRight.row - topLeft.row;\n const hiddenHorizontalBorderCount = (0, utils_1.sequence)(topLeft.row + 1, bottomRight.row).filter((horizontalBorderIndex) => {\n return !drawHorizontalLine(horizontalBorderIndex, rows.length);\n }).length;\n const availableRangeHeight = totalCellHeight + totalBorderHeight - hiddenHorizontalBorderCount;\n return (0, mapDataUsingRowHeights_1.padCellVertically)(content, availableRangeHeight, verticalAlignment).map((line) => {\n if (line.length === 0) {\n return ' '.repeat((0, string_width_1.default)(content[0]));\n }\n return line;\n });\n};\nexports.alignVerticalRangeContent = alignVerticalRangeContent;\n//# sourceMappingURL=alignSpanningCell.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateSpanningCellWidth = void 0;\nconst utils_1 = require(\"./utils\");\nconst calculateSpanningCellWidth = (rangeConfig, dependencies) => {\n const { columnsConfig, drawVerticalLine } = dependencies;\n const { topLeft, bottomRight } = rangeConfig;\n const totalWidth = (0, utils_1.sumArray)(columnsConfig.slice(topLeft.col, bottomRight.col + 1).map(({ width }) => {\n return width;\n }));\n const totalPadding = topLeft.col === bottomRight.col ?\n columnsConfig[topLeft.col].paddingRight +\n columnsConfig[bottomRight.col].paddingLeft :\n (0, utils_1.sumArray)(columnsConfig\n .slice(topLeft.col, bottomRight.col + 1)\n .map(({ paddingLeft, paddingRight }) => {\n return paddingLeft + paddingRight;\n }));\n const totalBorderWidths = bottomRight.col - topLeft.col;\n const totalHiddenVerticalBorders = (0, utils_1.sequence)(topLeft.col + 1, bottomRight.col).filter((verticalBorderIndex) => {\n return !drawVerticalLine(verticalBorderIndex, columnsConfig.length);\n }).length;\n return totalWidth + totalPadding + totalBorderWidths - totalHiddenVerticalBorders;\n};\nexports.calculateSpanningCellWidth = calculateSpanningCellWidth;\n//# sourceMappingURL=calculateSpanningCellWidth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeRangeConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst makeRangeConfig = (spanningCellConfig, columnsConfig) => {\n var _a;\n const { topLeft, bottomRight } = (0, utils_1.calculateRangeCoordinate)(spanningCellConfig);\n const cellConfig = {\n ...columnsConfig[topLeft.col],\n ...spanningCellConfig,\n paddingRight: (_a = spanningCellConfig.paddingRight) !== null && _a !== void 0 ? _a : columnsConfig[bottomRight.col].paddingRight,\n };\n return { ...cellConfig,\n bottomRight,\n topLeft };\n};\nexports.makeRangeConfig = makeRangeConfig;\n//# sourceMappingURL=makeRangeConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSpanningCellManager = void 0;\nconst alignSpanningCell_1 = require(\"./alignSpanningCell\");\nconst calculateSpanningCellWidth_1 = require(\"./calculateSpanningCellWidth\");\nconst makeRangeConfig_1 = require(\"./makeRangeConfig\");\nconst utils_1 = require(\"./utils\");\nconst findRangeConfig = (cell, rangeConfigs) => {\n return rangeConfigs.find((rangeCoordinate) => {\n return (0, utils_1.isCellInRange)(cell, rangeCoordinate);\n });\n};\nconst getContainingRange = (rangeConfig, context) => {\n const width = (0, calculateSpanningCellWidth_1.calculateSpanningCellWidth)(rangeConfig, context);\n const wrappedContent = (0, alignSpanningCell_1.wrapRangeContent)(rangeConfig, width, context);\n const alignedContent = (0, alignSpanningCell_1.alignVerticalRangeContent)(rangeConfig, wrappedContent, context);\n const getCellContent = (rowIndex) => {\n const { topLeft } = rangeConfig;\n const { drawHorizontalLine, rowHeights } = context;\n const totalWithinHorizontalBorderHeight = rowIndex - topLeft.row;\n const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, rowIndex).filter((index) => {\n /* istanbul ignore next */\n return !(drawHorizontalLine === null || drawHorizontalLine === void 0 ? void 0 : drawHorizontalLine(index, rowHeights.length));\n }).length;\n const offset = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, rowIndex)) + totalWithinHorizontalBorderHeight - totalHiddenHorizontalBorderHeight;\n return alignedContent.slice(offset, offset + rowHeights[rowIndex]);\n };\n const getBorderContent = (borderIndex) => {\n const { topLeft } = rangeConfig;\n const offset = (0, utils_1.sumArray)(context.rowHeights.slice(topLeft.row, borderIndex)) + (borderIndex - topLeft.row - 1);\n return alignedContent[offset];\n };\n return {\n ...rangeConfig,\n extractBorderContent: getBorderContent,\n extractCellContent: getCellContent,\n height: wrappedContent.length,\n width,\n };\n};\nconst inSameRange = (cell1, cell2, ranges) => {\n const range1 = findRangeConfig(cell1, ranges);\n const range2 = findRangeConfig(cell2, ranges);\n if (range1 && range2) {\n return (0, utils_1.areCellEqual)(range1.topLeft, range2.topLeft);\n }\n return false;\n};\nconst hashRange = (range) => {\n const { row, col } = range.topLeft;\n return `${row}/${col}`;\n};\nconst createSpanningCellManager = (parameters) => {\n const { spanningCellConfigs, columnsConfig } = parameters;\n const ranges = spanningCellConfigs.map((config) => {\n return (0, makeRangeConfig_1.makeRangeConfig)(config, columnsConfig);\n });\n const rangeCache = {};\n let rowHeights = [];\n let rowIndexMapping = [];\n return { getContainingRange: (cell, options) => {\n var _a;\n const originalRow = (options === null || options === void 0 ? void 0 : options.mapped) ? rowIndexMapping[cell.row] : cell.row;\n const range = findRangeConfig({ ...cell,\n row: originalRow }, ranges);\n if (!range) {\n return undefined;\n }\n if (rowHeights.length === 0) {\n return getContainingRange(range, { ...parameters,\n rowHeights });\n }\n const hash = hashRange(range);\n (_a = rangeCache[hash]) !== null && _a !== void 0 ? _a : (rangeCache[hash] = getContainingRange(range, { ...parameters,\n rowHeights }));\n return rangeCache[hash];\n },\n inSameRange: (cell1, cell2) => {\n return inSameRange(cell1, cell2, ranges);\n },\n rowHeights,\n rowIndexMapping,\n setRowHeights: (_rowHeights) => {\n rowHeights = _rowHeights;\n },\n setRowIndexMapping: (mappedRowHeights) => {\n rowIndexMapping = (0, utils_1.flatten)(mappedRowHeights.map((height, index) => {\n return Array.from({ length: height }, () => {\n return index;\n });\n }));\n } };\n};\nexports.createSpanningCellManager = createSpanningCellManager;\n//# sourceMappingURL=spanningCellManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSpanningCellConfig = void 0;\nconst utils_1 = require(\"./utils\");\nconst inRange = (start, end, value) => {\n return start <= value && value <= end;\n};\nconst validateSpanningCellConfig = (rows, configs) => {\n const [nRow, nCol] = [rows.length, rows[0].length];\n configs.forEach((config, configIndex) => {\n const { colSpan, rowSpan } = config;\n if (colSpan === undefined && rowSpan === undefined) {\n throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${configIndex}]`);\n }\n if (colSpan !== undefined && colSpan < 1) {\n throw new Error(`Expect colSpan is not equal zero, instead got: ${colSpan} in config.spanningCells[${configIndex}]`);\n }\n if (rowSpan !== undefined && rowSpan < 1) {\n throw new Error(`Expect rowSpan is not equal zero, instead got: ${rowSpan} in config.spanningCells[${configIndex}]`);\n }\n });\n const rangeCoordinates = configs.map(utils_1.calculateRangeCoordinate);\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n if (!inRange(0, nCol - 1, topLeft.col) ||\n !inRange(0, nRow - 1, topLeft.row) ||\n !inRange(0, nCol - 1, bottomRight.col) ||\n !inRange(0, nRow - 1, bottomRight.row)) {\n throw new Error(`Some cells in config.spanningCells[${rangeIndex}] are out of the table`);\n }\n });\n const configOccupy = Array.from({ length: nRow }, () => {\n return Array.from({ length: nCol });\n });\n rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {\n (0, utils_1.sequence)(topLeft.row, bottomRight.row).forEach((row) => {\n (0, utils_1.sequence)(topLeft.col, bottomRight.col).forEach((col) => {\n if (configOccupy[row][col] !== undefined) {\n throw new Error(`Spanning cells in config.spanningCells[${configOccupy[row][col]}] and config.spanningCells[${rangeIndex}] are overlap each other`);\n }\n configOccupy[row][col] = rangeIndex;\n });\n });\n });\n};\nexports.validateSpanningCellConfig = validateSpanningCellConfig;\n//# sourceMappingURL=validateSpanningCellConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeTableConfig = void 0;\nconst calculateMaximumColumnWidths_1 = require(\"./calculateMaximumColumnWidths\");\nconst spanningCellManager_1 = require(\"./spanningCellManager\");\nconst utils_1 = require(\"./utils\");\nconst validateConfig_1 = require(\"./validateConfig\");\nconst validateSpanningCellConfig_1 = require(\"./validateSpanningCellConfig\");\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n */\nconst makeColumnsConfig = (rows, columns, columnDefault, spanningCellConfigs) => {\n const columnWidths = (0, calculateMaximumColumnWidths_1.calculateMaximumColumnWidths)(rows, spanningCellConfigs);\n return rows[0].map((_, columnIndex) => {\n return {\n alignment: 'left',\n paddingLeft: 1,\n paddingRight: 1,\n truncate: Number.POSITIVE_INFINITY,\n verticalAlignment: 'top',\n width: columnWidths[columnIndex],\n wrapWord: false,\n ...columnDefault,\n ...columns === null || columns === void 0 ? void 0 : columns[columnIndex],\n };\n });\n};\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n */\nconst makeTableConfig = (rows, config = {}, injectedSpanningCellConfig) => {\n var _a, _b, _c, _d, _e;\n (0, validateConfig_1.validateConfig)('config.json', config);\n (0, validateSpanningCellConfig_1.validateSpanningCellConfig)(rows, (_a = config.spanningCells) !== null && _a !== void 0 ? _a : []);\n const spanningCellConfigs = (_b = injectedSpanningCellConfig !== null && injectedSpanningCellConfig !== void 0 ? injectedSpanningCellConfig : config.spanningCells) !== null && _b !== void 0 ? _b : [];\n const columnsConfig = makeColumnsConfig(rows, config.columns, config.columnDefault, spanningCellConfigs);\n const drawVerticalLine = (_c = config.drawVerticalLine) !== null && _c !== void 0 ? _c : (() => {\n return true;\n });\n const drawHorizontalLine = (_d = config.drawHorizontalLine) !== null && _d !== void 0 ? _d : (() => {\n return true;\n });\n return {\n ...config,\n border: (0, utils_1.makeBorderConfig)(config.border),\n columns: columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n singleLine: (_e = config.singleLine) !== null && _e !== void 0 ? _e : false,\n spanningCellManager: (0, spanningCellManager_1.createSpanningCellManager)({\n columnsConfig,\n drawHorizontalLine,\n drawVerticalLine,\n rows,\n spanningCellConfigs,\n }),\n };\n};\nexports.makeTableConfig = makeTableConfig;\n//# sourceMappingURL=makeTableConfig.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTableData = void 0;\nconst utils_1 = require(\"./utils\");\nconst validateTableData = (rows) => {\n if (!Array.isArray(rows)) {\n throw new TypeError('Table data must be an array.');\n }\n if (rows.length === 0) {\n throw new Error('Table must define at least one row.');\n }\n if (rows[0].length === 0) {\n throw new Error('Table must define at least one column.');\n }\n const columnNumber = rows[0].length;\n for (const row of rows) {\n if (!Array.isArray(row)) {\n throw new TypeError('Table row data must be an array.');\n }\n if (row.length !== columnNumber) {\n throw new Error('Table must have a consistent number of cells.');\n }\n for (const cell of row) {\n // eslint-disable-next-line no-control-regex\n if (/[\\u0001-\\u0006\\u0008\\u0009\\u000B-\\u001A]/.test((0, utils_1.normalizeString)(String(cell)))) {\n throw new Error('Table data must not contain control characters.');\n }\n }\n }\n};\nexports.validateTableData = validateTableData;\n//# sourceMappingURL=validateTableData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.table = void 0;\nconst alignTableData_1 = require(\"./alignTableData\");\nconst calculateOutputColumnWidths_1 = require(\"./calculateOutputColumnWidths\");\nconst calculateRowHeights_1 = require(\"./calculateRowHeights\");\nconst drawTable_1 = require(\"./drawTable\");\nconst injectHeaderConfig_1 = require(\"./injectHeaderConfig\");\nconst makeTableConfig_1 = require(\"./makeTableConfig\");\nconst mapDataUsingRowHeights_1 = require(\"./mapDataUsingRowHeights\");\nconst padTableData_1 = require(\"./padTableData\");\nconst stringifyTableData_1 = require(\"./stringifyTableData\");\nconst truncateTableData_1 = require(\"./truncateTableData\");\nconst utils_1 = require(\"./utils\");\nconst validateTableData_1 = require(\"./validateTableData\");\nconst table = (data, userConfig = {}) => {\n (0, validateTableData_1.validateTableData)(data);\n let rows = (0, stringifyTableData_1.stringifyTableData)(data);\n const [injectedRows, injectedSpanningCellConfig] = (0, injectHeaderConfig_1.injectHeaderConfig)(rows, userConfig);\n const config = (0, makeTableConfig_1.makeTableConfig)(injectedRows, userConfig, injectedSpanningCellConfig);\n rows = (0, truncateTableData_1.truncateTableData)(injectedRows, (0, utils_1.extractTruncates)(config));\n const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);\n config.spanningCellManager.setRowHeights(rowHeights);\n config.spanningCellManager.setRowIndexMapping(rowHeights);\n rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);\n rows = (0, alignTableData_1.alignTableData)(rows, config);\n rows = (0, padTableData_1.padTableData)(rows, config);\n const outputColumnWidths = (0, calculateOutputColumnWidths_1.calculateOutputColumnWidths)(config);\n return (0, drawTable_1.drawTable)(rows, outputColumnWidths, rowHeights, config);\n};\nexports.table = table;\n//# sourceMappingURL=table.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=api.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBorderCharacters = exports.createStream = exports.table = void 0;\nconst createStream_1 = require(\"./createStream\");\nObject.defineProperty(exports, \"createStream\", { enumerable: true, get: function () { return createStream_1.createStream; } });\nconst getBorderCharacters_1 = require(\"./getBorderCharacters\");\nObject.defineProperty(exports, \"getBorderCharacters\", { enumerable: true, get: function () { return getBorderCharacters_1.getBorderCharacters; } });\nconst table_1 = require(\"./table\");\nObject.defineProperty(exports, \"table\", { enumerable: true, get: function () { return table_1.table; } });\n__exportStar(require(\"./types/api\"), exports);\n//# sourceMappingURL=index.js.map","import { useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport { table } from \"table\";\nimport { lightGray, vscBackground, vscInputBackground } from \"../components\";\nimport { CopyIconButton } from \"../components/gui/CopyIconButton\";\nimport { PageHeader } from \"../components/PageHeader\";\nimport { IdeMessengerContext } from \"../context/IdeMessenger\";\nimport { useNavigationListener } from \"../hooks/useNavigationListener\";\n\nconst Th = styled.th`\n padding: 0.5rem;\n text-align: left;\n border: 1px solid ${lightGray};\n`;\n\nconst Tr = styled.tr`\n &:hover {\n background-color: ${vscInputBackground};\n }\n\n overflow-wrap: anywhere;\n\n border: 1px solid ${lightGray};\n`;\n\nconst Td = styled.td`\n padding: 0.5rem;\n border: 1px solid ${lightGray};\n`;\n\nfunction generateTable(data: unknown[][]) {\n return table(data);\n}\n\nfunction Stats() {\n useNavigationListener();\n const navigate = useNavigate();\n const ideMessenger = useContext(IdeMessengerContext);\n\n const [days, setDays] = useState<\n { day: string; promptTokens: number; generatedTokens: number }[]\n >([]);\n const [models, setModels] = useState<\n { model: string; promptTokens: number; generatedTokens: number }[]\n >([]);\n\n useEffect(() => {\n ideMessenger.request(\"stats/getTokensPerDay\", undefined).then((result) => {\n result.status === \"success\" && setDays(result.content);\n });\n }, []);\n\n useEffect(() => {\n ideMessenger\n .request(\"stats/getTokensPerModel\", undefined)\n .then((result) => {\n result.status === \"success\" && setModels(result.content);\n });\n }, []);\n\n return (\n \n navigate(-1)} showBorder />\n\n
    \n
    \n

    Tokens per Day

    \n [\n day.day,\n day.generatedTokens,\n day.promptTokens,\n ]),\n ),\n )}\n />\n
    \n \n \n \n \n \n \n \n \n \n {days.map((day) => (\n \n \n \n \n \n ))}\n \n
    DayGenerated TokensPrompt Tokens
    {day.day}{day.generatedTokens.toLocaleString()}{day.promptTokens.toLocaleString()}
    \n\n
    \n

    Tokens per Model

    \n [\n model.model,\n model.generatedTokens.toLocaleString(),\n model.promptTokens.toLocaleString(),\n ]),\n ),\n )}\n />\n
    \n \n \n \n \n \n \n \n \n \n {models.map((model) => (\n \n \n \n \n \n ))}\n \n
    ModelGenerated TokensPrompt Tokens
    {model.model}{model.generatedTokens.toLocaleString()}{model.promptTokens.toLocaleString()}
    \n
    \n \n );\n}\n\nexport default Stats;\n","import {\n CheckCircleIcon,\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { useContext, useEffect, useMemo, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Button } from \"../components\";\nimport { IdeMessengerContext } from \"../context/IdeMessenger\";\nimport { isJetBrains } from \"../util\";\nimport { ROUTES } from \"../util/navigation\";\nimport {\n clearThemeLocalCache,\n setDocumentStylesFromTheme,\n THEME_COLORS,\n varWithFallback,\n} from \"./theme\";\n\nconst ThemeTailwindClassExample = ({\n colorName,\n varNames,\n defaultColor,\n isMissing,\n}: {\n colorName: string;\n varNames: string[];\n defaultColor: string;\n isMissing?: boolean;\n}) => {\n return (\n <>\n
    \n {colorName}\n
    \n \n {varNames.join(\", \")}\n \n \n {defaultColor}\n \n \n );\n};\n\nfunction ThemePage() {\n const navigate = useNavigate();\n const [listToggled, setListToggled] = useState(false);\n const ideMessenger = useContext(IdeMessengerContext);\n const jetbrains = useMemo(() => {\n return isJetBrains();\n }, []);\n\n const [missingVars, setMissingVars] = useState([]);\n const refreshColors = () => {\n if (jetbrains) {\n // Jetbrains: get colors and check which ones are missing from theme\n void ideMessenger\n .request(\"jetbrains/getColors\", undefined)\n .then((result) => {\n console.log(result);\n if (result.status === \"success\") {\n const missingColors = setDocumentStylesFromTheme(result.content);\n setMissingVars(missingColors);\n }\n });\n } else {\n // VS Code: find actual missing CSS variables\n const notFound: string[] = [];\n Object.entries(THEME_COLORS).forEach(([colorName, themeVals], idx) => {\n let found = false;\n themeVals.vars.forEach((cssVar) => {\n const value = getComputedStyle(\n document.documentElement,\n ).getPropertyValue(cssVar);\n if (!value) {\n notFound.push(`cssVar (choice #${idx + 1} for color ${colorName}`);\n }\n });\n });\n setMissingVars(notFound);\n }\n };\n\n useEffect(() => {\n refreshColors();\n }, []);\n\n return (\n
    \n navigate(ROUTES.HOME)}\n >\n \n Back to Chat\n \n

    \n Theme Tester\n

    \n
    \n
    \n

    Normal text

    \n

    Description text

    \n

    Muted text

    \n
    \n\n \n \n\n
    \n Normal border\n
    \n\n
    \n Focus border\n
    \n\n \n\n
    \n Badge\n
    \n\n
    \n \n Success\n
    \n
    \n \n Warning\n
    \n
    \n \n Error\n
    \n\n setListToggled(!listToggled)}\n className={`cursor-pointer p-2 ${listToggled ? \"bg-list-active text-list-active-foreground\" : \"bg-background text-foreground hover:bg-list-hover\"}`}\n >\n List item (clickable)\n
    \n
    \n Editor\n
    \n \n \n \n \n \n \n \n \n \n
    \n even table row\n
    \n odd table row\n
    \n
    \n Link\n
    \n
    \n find match\n current match\n
    \n
    \n Accent\n
    \n
    \n
    \n

    Manage Theme

    \n

    Missing Theme Colors

    \n {missingVars.length > 0 ? (\n
    \n {missingVars.map((varName) => (\n
    \n {varName}\n
    \n ))}\n
    \n ) : (\n
    No missing variables
    \n )}\n \n {jetbrains ? (\n \n ) : null}\n

    All Theme Colors

    \n
    \n
    \n Theme Color\n
    \n
    \n CSS Var\n
    \n
    \n Default\n
    \n {Object.entries(THEME_COLORS).map(([colorName, val]) => (\n \n ))}\n
    \n
    \n );\n}\nexport default ThemePage;\n","import { RouterProvider, createMemoryRouter } from \"react-router-dom\";\nimport Layout from \"./components/Layout\";\nimport { MainEditorProvider } from \"./components/mainInput/TipTapEditor\";\nimport { SubmenuContextProvidersProvider } from \"./context/SubmenuContextProviders\";\nimport { VscThemeProvider } from \"./context/VscTheme\";\nimport ParallelListeners from \"./hooks/ParallelListeners\";\nimport ConfigPage from \"./pages/config\";\nimport ErrorPage from \"./pages/error\";\nimport Chat from \"./pages/gui\";\nimport History from \"./pages/history\";\nimport Stats from \"./pages/stats\";\nimport ThemePage from \"./styles/ThemePage\";\nimport { ROUTES } from \"./util/navigation\";\n\nconst router = createMemoryRouter([\n {\n path: ROUTES.HOME,\n element: ,\n errorElement: ,\n children: [\n {\n path: \"/index.html\",\n element: ,\n },\n {\n path: ROUTES.HOME,\n element: ,\n },\n {\n path: \"/history\",\n element: ,\n },\n {\n path: ROUTES.STATS,\n element: ,\n },\n {\n path: ROUTES.CONFIG,\n element: ,\n },\n {\n path: ROUTES.THEME,\n element: ,\n },\n ],\n },\n]);\n\n/*\n ParallelListeners prevents entire app from rerendering on any change in the listeners,\n most of which interact with redux etc.\n*/\nfunction App() {\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel2: \n - merges 2 level of substate\n - skips substate if already modified\n - this is essentially redux-perist v4 behavior\n*/\nexport default function autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n }\n\n if (isPlainEnoughObject(reducedState[key])) {\n // if object is plain enough shallow merge the new values (hence \"Level2\")\n newState[key] = _objectSpread({}, newState[key], {}, inboundState[key]);\n return;\n } // otherwise hard set\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}\n\nfunction isPlainEnoughObject(o) {\n return o !== null && !Array.isArray(o) && _typeof(o) === 'object';\n}","import { combineReducers } from 'redux';\nimport persistReducer from './persistReducer';\nimport autoMergeLevel2 from './stateReconciler/autoMergeLevel2';\n// combineReducers + persistReducer with stateReconciler defaulted to autoMergeLevel2\nexport default function persistCombineReducers(config, reducers) {\n config.stateReconciler = config.stateReconciler === undefined ? autoMergeLevel2 : config.stateReconciler;\n return persistReducer(config, combineReducers(reducers));\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","import { DEFAULT_VERSION } from './constants';\nexport default function createMigrate(migrations, config) {\n var _ref = config || {},\n debug = _ref.debug;\n\n return function (state, currentVersion) {\n if (!state) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: no inbound state, skipping migration');\n return Promise.resolve(undefined);\n }\n\n var inboundVersion = state._persist && state._persist.version !== undefined ? state._persist.version : DEFAULT_VERSION;\n\n if (inboundVersion === currentVersion) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: versions match, noop migration');\n return Promise.resolve(state);\n }\n\n if (inboundVersion > currentVersion) {\n if (process.env.NODE_ENV !== 'production') console.error('redux-persist: downgrading version is not supported');\n return Promise.resolve(state);\n }\n\n var migrationKeys = Object.keys(migrations).map(function (ver) {\n return parseInt(ver);\n }).filter(function (key) {\n return currentVersion >= key && key > inboundVersion;\n }).sort(function (a, b) {\n return a - b;\n });\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: migrationKeys', migrationKeys);\n\n try {\n var migratedState = migrationKeys.reduce(function (state, versionKey) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist: running migration for versionKey', versionKey);\n return migrations[versionKey](state);\n }, state);\n return Promise.resolve(migratedState);\n } catch (err) {\n return Promise.reject(err);\n }\n };\n}","export default function createTransform( // @NOTE inbound: transform state coming from redux on its way to being serialized and stored\ninbound, // @NOTE outbound: transform state coming from storage, on its way to be rehydrated into redux\noutbound) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var whitelist = config.whitelist || null;\n var blacklist = config.blacklist || null;\n\n function whitelistBlacklistCheck(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return true;\n if (blacklist && blacklist.indexOf(key) !== -1) return true;\n return false;\n }\n\n return {\n in: function _in(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key, fullState) : state;\n },\n out: function out(state, key, fullState) {\n return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key, fullState) : state;\n }\n };\n}","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n\n // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg\n var index = -1,\n length = path.length;\n\n if (!length) {\n return true;\n }\n\n var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function');\n\n while (++index < length) {\n var key = path[index];\n\n // skip non-string keys (e.g., Symbols, numbers)\n if (typeof key !== 'string') {\n continue;\n }\n\n // Always block \"__proto__\" anywhere in the path if it's not expected\n if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {\n return false;\n }\n\n // Block \"constructor.prototype\" chains\n if (key === 'constructor' &&\n (index + 1) < length &&\n typeof path[index + 1] === 'string' &&\n path[index + 1] === 'prototype') {\n\n // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a')\n if (isRootPrimitive && index === 0) {\n continue;\n }\n\n return false;\n }\n }\n\n var obj = parent(object, path);\n return obj == null || delete obj[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var baseUnset = require('./_baseUnset');\n\n/**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\nfunction unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n}\n\nmodule.exports = unset;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var baseFor = require('./_baseFor'),\n castFunction = require('./_castFunction'),\n keysIn = require('./keysIn');\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nmodule.exports = forIn;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.createFilter = createFilter;\nexports.createWhitelistFilter = createWhitelistFilter;\nexports.createBlacklistFilter = createBlacklistFilter;\nexports.persistFilter = persistFilter;\n\nvar _reduxPersist = require('redux-persist');\n\nvar _get = require('lodash/get');\n\nvar _get2 = _interopRequireDefault(_get);\n\nvar _set = require('lodash/set');\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _unset = require('lodash/unset');\n\nvar _unset2 = _interopRequireDefault(_unset);\n\nvar _pickBy = require('lodash/pickBy');\n\nvar _pickBy2 = _interopRequireDefault(_pickBy);\n\nvar _isEmpty = require('lodash/isEmpty');\n\nvar _isEmpty2 = _interopRequireDefault(_isEmpty);\n\nvar _forIn = require('lodash/forIn');\n\nvar _forIn2 = _interopRequireDefault(_forIn);\n\nvar _cloneDeep = require('lodash/cloneDeep');\n\nvar _cloneDeep2 = _interopRequireDefault(_cloneDeep);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createFilter(reducerName, inboundPaths, outboundPaths) {\n\tvar transformType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'whitelist';\n\n\treturn (0, _reduxPersist.createTransform)(\n\t// inbound\n\tfunction (inboundState, key) {\n\t\treturn inboundPaths ? persistFilter(inboundState, inboundPaths, transformType) : inboundState;\n\t},\n\n\t// outbound\n\tfunction (outboundState, key) {\n\t\treturn outboundPaths ? persistFilter(outboundState, outboundPaths, transformType) : outboundState;\n\t}, { 'whitelist': [reducerName] });\n};\n\nfunction createWhitelistFilter(reducerName, inboundPaths, outboundPaths) {\n\treturn createFilter(reducerName, inboundPaths, outboundPaths, 'whitelist');\n}\n\nfunction createBlacklistFilter(reducerName, inboundPaths, outboundPaths) {\n\treturn createFilter(reducerName, inboundPaths, outboundPaths, 'blacklist');\n}\n\nfunction filterObject(_ref, state) {\n\tvar path = _ref.path,\n\t _ref$filterFunction = _ref.filterFunction,\n\t filterFunction = _ref$filterFunction === undefined ? function () {\n\t\treturn true;\n\t} : _ref$filterFunction;\n\n\tvar value = (0, _get2.default)(state, path, state);\n\n\tif (value instanceof Array) {\n\t\treturn value.filter(filterFunction);\n\t}\n\n\treturn (0, _pickBy2.default)(value, filterFunction);\n}\n\nfunction persistFilter(state) {\n\tvar paths = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\tvar transformType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'whitelist';\n\n\tvar subset = {};\n\n\t// support only one key\n\tif (typeof paths === 'string') {\n\t\tpaths = [paths];\n\t}\n\n\tif (transformType === 'whitelist') {\n\t\tpaths.forEach(function (path) {\n\t\t\tif ((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && !(path instanceof Array)) {\n\t\t\t\tvar value = filterObject(path, state);\n\n\t\t\t\tif (!(0, _isEmpty2.default)(value)) {\n\t\t\t\t\t(0, _set2.default)(subset, path.path, value);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar _value = (0, _get2.default)(state, path);\n\n\t\t\t\tif (typeof _value !== 'undefined') {\n\t\t\t\t\t(0, _set2.default)(subset, path, _value);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else if (transformType === 'blacklist') {\n\t\tsubset = (0, _cloneDeep2.default)(state);\n\t\tpaths.forEach(function (path) {\n\t\t\tif ((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && !(path instanceof Array)) {\n\t\t\t\tvar value = filterObject(path, state);\n\n\t\t\t\tif (!(0, _isEmpty2.default)(value)) {\n\t\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\t\t(0, _set2.default)(subset, path.path, (0, _get2.default)(subset, path.path, subset).filter(function (x) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\t(0, _forIn2.default)(value, function (value, key) {\n\t\t\t\t\t\t\t(0, _unset2.default)(subset, path.path + '[' + key + ']');\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsubset = value;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar _value2 = (0, _get2.default)(state, path);\n\n\t\t\t\tif (typeof _value2 !== 'undefined') {\n\t\t\t\t\t(0, _unset2.default)(subset, path);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsubset = state;\n\t}\n\n\treturn subset;\n}\n\nexports.default = createFilter;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = autoMergeLevel2;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel2: \n - merges 2 level of substate\n - skips substate if already modified\n - this is essentially redux-perist v4 behavior\n*/\nfunction autoMergeLevel2(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n }\n\n if (isPlainEnoughObject(reducedState[key])) {\n // if object is plain enough shallow merge the new values (hence \"Level2\")\n newState[key] = _objectSpread({}, newState[key], {}, inboundState[key]);\n return;\n } // otherwise hard set\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}\n\nfunction isPlainEnoughObject(o) {\n return o !== null && !Array.isArray(o) && _typeof(o) === 'object';\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n getItem: noop,\n setItem: noop,\n removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n return false;\n }\n\n try {\n var storage = self[storageType];\n var testKey = \"redux-persist \".concat(storageType, \" test\");\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n return false;\n }\n\n return true;\n}\n\nfunction getStorage(type) {\n var storageType = \"\".concat(type, \"Storage\");\n if (hasStorage(storageType)) return self[storageType];else {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n }\n\n return noopStorage;\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n var storage = (0, _getStorage.default)(type);\n return {\n getItem: function getItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.getItem(key));\n });\n },\n setItem: function setItem(key, item) {\n return new Promise(function (resolve, reject) {\n resolve(storage.setItem(key, item));\n });\n },\n removeItem: function removeItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.removeItem(key));\n });\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","import {\n combineReducers,\n configureStore,\n ThunkDispatch,\n UnknownAction,\n} from \"@reduxjs/toolkit\";\nimport { createLogger } from \"redux-logger\";\nimport {\n createMigrate,\n MigrationManifest,\n persistReducer,\n persistStore,\n} from \"redux-persist\";\nimport { createFilter } from \"redux-persist-transform-filter\";\nimport autoMergeLevel2 from \"redux-persist/lib/stateReconciler/autoMergeLevel2\";\nimport storage from \"redux-persist/lib/storage\";\nimport { IdeMessenger, IIdeMessenger } from \"../context/IdeMessenger\";\nimport configReducer from \"./slices/configSlice\";\nimport editModeStateReducer from \"./slices/editState\";\nimport indexingReducer from \"./slices/indexingSlice\";\nimport { profilesReducer } from \"./slices/profilesSlice\";\nimport sessionReducer from \"./slices/sessionSlice\";\nimport tabsReducer from \"./slices/tabsSlice\";\nimport uiReducer from \"./slices/uiSlice\";\n\nconst rootReducer = combineReducers({\n session: sessionReducer,\n ui: uiReducer,\n editModeState: editModeStateReducer,\n config: configReducer,\n indexing: indexingReducer,\n tabs: tabsReducer,\n profiles: profilesReducer,\n});\n\nconst saveSubsetFilters = [\n createFilter(\"session\", [\n \"id\",\n \"lastSessionId\",\n \"title\",\n\n // Persist edit mode in case closes in middle\n \"mode\",\n\n // higher risk to persist\n // codeBlockApplyStates\n // symbols\n ]),\n createFilter(\"editModeState\", [\n \"returnToMode\",\n \"lastNonEditSessionWasEmpty\",\n \"codeToEdit\",\n ]),\n createFilter(\"config\", []),\n createFilter(\"ui\", [\n \"toolSettings\",\n \"toolGroupSettings\",\n \"ruleSettings\",\n \"reasoningSettings\",\n ]),\n createFilter(\"indexing\", []),\n createFilter(\"tabs\", [\"tabs\"]),\n createFilter(\"profiles\", [\n \"preferencesByProfileId\",\n \"selectedProfileId\",\n \"selectedOrganizationId\",\n \"organizations\",\n ]),\n];\n\nconst migrations: MigrationManifest = {\n \"0\": (state) => {\n const oldState = state as any;\n\n return {\n config: {\n defaultModelTitle: oldState?.state?.defaultModelTitle ?? undefined,\n },\n session: {\n id: oldState?.state?.sessionId ?? \"\",\n },\n tabs: {\n tabs: [\n {\n id:\n Date.now().toString(36) + Math.random().toString(36).substring(2),\n title: \"Chat 1\",\n isActive: true,\n },\n ],\n },\n _persist: oldState?._persist,\n };\n },\n};\n\nconst persistConfig = {\n version: 1,\n key: \"root\",\n storage,\n transforms: [...saveSubsetFilters],\n stateReconciler: autoMergeLevel2,\n migrate: createMigrate(migrations, { debug: false }),\n};\n\nconst persistedReducer = persistReducer>(\n persistConfig,\n rootReducer,\n);\n\nexport function setupStore(options: { ideMessenger?: IIdeMessenger }) {\n const ideMessenger = options.ideMessenger ?? new IdeMessenger();\n\n const logger = createLogger({\n // Customize logger options if needed\n collapsed: true, // Collapse console groups by default\n timestamp: false, // Remove timestamps from log\n diff: true, // Show diff between states\n });\n\n return configureStore({\n // persistedReducer causes type errors with async thunks\n reducer: persistedReducer as unknown as typeof rootReducer,\n // reducer: rootReducer,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: false,\n thunk: {\n extraArgument: {\n ideMessenger,\n },\n },\n }),\n // This can be uncommented to get detailed Redux logs\n // .concat(logger),\n });\n}\n\nexport type ThunkExtrasType = { ideMessenger: IIdeMessenger };\n\nexport type ThunkApiType = {\n state: RootState;\n extra: ThunkExtrasType;\n};\n\nexport type AppThunkDispatch = ThunkDispatch<\n RootState,\n ThunkExtrasType,\n UnknownAction\n>;\n\nexport const store = setupStore({});\n\nexport type RootState = ReturnType;\n\nexport type AppDispatch = typeof store.dispatch;\n\nexport const persistor = persistStore(store);\n","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { Provider } from \"react-redux\";\nimport { PersistGate } from \"redux-persist/integration/react\";\nimport App from \"./App\";\nimport \"./index.css\";\nimport { persistor, store } from \"./redux/store\";\n\n(async () => {\n const container = document.getElementById(\"root\") as HTMLElement;\n\n // Create React root\n const root = ReactDOM.createRoot(container);\n\n root.render(\n \n \n \n \n \n \n ,\n );\n})();\n"],"file":"assets/index.js"} \ No newline at end of file diff --git a/extensions/continue/gui/assets/indexConsole.css b/extensions/continue/gui/assets/indexConsole.css new file mode 100644 index 000000000000..ee5d3588b680 --- /dev/null +++ b/extensions/continue/gui/assets/indexConsole.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width: 170px){.\!container{max-width:170px!important}.container{max-width:170px}}@media (min-width: 250px){.\!container{max-width:250px!important}.container{max-width:250px}}@media (min-width: 330px){.\!container{max-width:330px!important}.container{max-width:330px}}@media (min-width: 380px){.\!container{max-width:380px!important}.container{max-width:380px}}@media (min-width: 460px){.\!container{max-width:460px!important}.container{max-width:460px}}@media (min-width: 590px){.\!container{max-width:590px!important}.container{max-width:590px}}@media (min-width: 720px){.\!container{max-width:720px!important}.container{max-width:720px}}@media (min-width: 860px){.\!container{max-width:860px!important}.container{max-width:860px}}@media (min-width: 1000px){.\!container{max-width:1000px!important}.container{max-width:1000px}}@media (min-width: 1180px){.\!container{max-width:1180px!important}.container{max-width:1180px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.-top-2{top:-.5rem}.bottom-0{bottom:0}.left-0{left:0}.left-1\/4{left:25%}.left-3{left:.75rem}.left-\[9px\]{left:9px}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-\[9px\]{right:9px}.top-0{top:0}.top-1\/2{top:50%}.top-12{top:3rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[2px\]{top:2px}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[5\]{z-index:5}.col-span-2{grid-column:span 2 / span 2}.float-right{float:right}.\!m-0{margin:0!important}.m-0{margin:0}.m-0\.5{margin:.125rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-auto{margin:auto}.\!my-0{margin-top:0!important;margin-bottom:0!important}.\!my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[0\.1em\]{margin-left:.1em;margin-right:.1em}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-8{margin-top:2rem;margin-bottom:2rem}.\!mb-0{margin-bottom:0!important}.\!mb-0\.5{margin-bottom:.125rem!important}.\!mt-0{margin-top:0!important}.-mb-0\.5{margin-bottom:-.125rem}.-mb-1{margin-bottom:-.25rem}.-mb-px{margin-bottom:-1px}.-ml-1\.5{margin-left:-.375rem}.-mt-0\.5{margin-top:-.125rem}.-mt-\[2px\]{margin-top:-2px}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[0\.15em\]{margin-bottom:.15em}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[1px\]{margin-top:1px}.box-border{box-sizing:border-box}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.h-0{height:0px}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[1\.2em\]{height:1.2em}.h-\[100px\]{height:100px}.h-\[13px\]{height:13px}.h-\[14px\]{height:14px}.h-\[16px\]{height:16px}.h-\[18px\]{height:18px}.h-\[300px\]{height:300px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.h-px{height:1px}.max-h-0{max-height:0px}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-72{max-height:18rem}.max-h-96{max-height:24rem}.max-h-\[100px\]{max-height:100px}.max-h-\[210px\]{max-height:210px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[95\%\]{max-height:95%}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-5{min-height:1.25rem}.min-h-px{min-height:1px}.\!w-20{width:5rem!important}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-96{width:24rem}.w-\[1\.2em\]{width:1.2em}.w-\[13px\]{width:13px}.w-\[150px\]{width:150px}.w-\[16px\]{width:16px}.w-\[70px\]{width:70px}.w-\[7px\]{width:7px}.w-\[92\%\]{width:92%}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.\!min-w-0{min-width:0px!important}.min-w-0{min-width:0px}.min-w-12{min-width:3rem}.min-w-16{min-width:4rem}.min-w-32{min-width:8rem}.min-w-40{min-width:10rem}.min-w-5{min-width:1.25rem}.min-w-\[10\%\]{min-width:10%}.min-w-\[160px\]{min-width:160px}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.min-w-full{min-width:100%}.max-w-36{max-width:9rem}.max-w-48{max-width:12rem}.max-w-6xl{max-width:72rem}.max-w-96{max-width:24rem}.max-w-\[130px\]{max-width:130px}.max-w-\[170px\]{max-width:170px}.max-w-\[200px\]{max-width:200px}.max-w-\[25rem\]{max-width:25rem}.max-w-\[400px\]{max-width:400px}.max-w-\[50\%\]{max-width:50%}.max-w-\[600px\]{max-width:600px}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.\!flex-none{flex:none!important}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x: .75;--tw-scale-y: .75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-\[97\%\]{--tw-scale-x: 97%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin-slow{animation:spin 6s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.columns-3{-moz-columns:3;columns:3}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.\!gap-0{gap:0px!important}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\[0\.2rem\]{gap:.2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-md{border-radius:.375rem!important}.rounded{border-radius:.25rem}.rounded-\[1px\]{border-radius:1px}.rounded-default{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-l-default{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r-default{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t-default{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-sm{border-top-left-radius:.125rem;border-top-right-radius:.125rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\[0\.2px\]{border-width:.2px}.border-\[0\.5px\]{border-width:.5px}.border-x-0{border-left-width:0px;border-right-width:0px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-solid{border-style:solid}.\!border-none{border-style:none!important}.border-none{border-style:none}.border-\[color\:var\(--vscode-panel-border\)\]{border-color:var(--vscode-panel-border)}.border-border{border-color:var(--vscode-sideBar-border, var(--vscode-panel-border, #2a2a2a))}.border-border-focus{border-color:var(--vscode-focusBorder, #3a6db3)}.border-command-border{border-color:var(--vscode-commandCenter-inactiveBorder, #555555)}.border-description{border-color:var(--vscode-descriptionForeground, #b3b3b3)}.border-error{border-color:var(--vscode-editorError-foreground, var(--vscode-list-errorForeground, #f44336))}.border-foreground{border-color:var(--vscode-sideBar-foreground, var(--vscode-editor-foreground, var(--vscode-panel-foreground, #e6e6e6)))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-green-600{--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity, 1))}.border-info{border-color:var(--vscode-charts-blue, var(--vscode-notebookStatusRunningIcon-foreground, #2196f3))}.border-inherit{border-color:inherit}.border-input{border-color:var(--vscode-input-background, #2d2d2d)}.border-input-border{border-color:var(--vscode-input-border, var(--vscode-commandCenter-inactiveBorder, var(vscode-border, #555555)))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-900{--tw-border-opacity: 1;border-color:rgb(127 29 29 / var(--tw-border-opacity, 1))}.border-success{border-color:var(--vscode-notebookStatusSuccessIcon-foreground, var(--vscode-testing-iconPassed, var(--vscode-gitDecoration-addedResourceForeground, var(--vscode-charts-green, #4caf50))))}.border-transparent{border-color:transparent}.border-vsc-input-border{border-color:var(--vscode-input-border, var(--vscode-commandCenter-inactiveBorder, var(vscode-border, #555555)))}.border-warning{border-color:var(--vscode-editorWarning-foreground, var(--vscode-list-warningForeground, #ffb74d))}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-zinc-700{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.border-b-command-border{border-bottom-color:var(--vscode-commandCenter-inactiveBorder, #555555)}.border-b-zinc-700{--tw-border-opacity: 1;border-bottom-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.border-r-border{border-right-color:var(--vscode-sideBar-border, var(--vscode-panel-border, #2a2a2a))}.border-t-vsc-input-border{border-top-color:var(--vscode-input-border, var(--vscode-commandCenter-inactiveBorder, var(vscode-border, #555555)))}.border-t-zinc-700{--tw-border-opacity: 1;border-top-color:rgb(63 63 70 / var(--tw-border-opacity, 1))}.\!bg-transparent{background-color:transparent!important}.bg-\[color\:var\(--vscode-button-background\)\]{background-color:var(--vscode-button-background)}.bg-\[color\:var\(--vscode-editor-background\)\]{background-color:var(--vscode-editor-background)}.bg-\[color\:var\(--vscode-list-inactiveSelectionBackground\)\]{background-color:var(--vscode-list-inactiveSelectionBackground)}.bg-\[color\:var\(--vscode-panel-background\)\]{background-color:var(--vscode-panel-background)}.bg-\[color\:var\(--vscode-statusBarItem-errorBackground\)\]{background-color:var(--vscode-statusBarItem-errorBackground)}.bg-\[color\:var\(--vscode-statusBarItem-warningBackground\)\]{background-color:var(--vscode-statusBarItem-warningBackground)}.bg-accent{background-color:var(--vscode-tab-activeBorderTop, var(--vscode-focusBorder, #4d8bf0))}.bg-background{background-color:var(--vscode-sideBar-background, var(--vscode-editor-background, var(--vscode-panel-background, #1e1e1e)))}.bg-badge{background-color:var(--vscode-badge-background, #4d4d4d)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/85{background-color:#000000d9}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-border{background-color:var(--vscode-sideBar-border, var(--vscode-panel-border, #2a2a2a))}.bg-description{background-color:var(--vscode-descriptionForeground, #b3b3b3)}.bg-description-muted{background-color:var(--vscode-list-deemphasizedForeground, #8c8c8c)}.bg-editor{background-color:var(--vscode-editor-background, #1e1e1e)}.bg-error{background-color:var(--vscode-editorError-foreground, var(--vscode-list-errorForeground, #f44336))}.bg-findMatch{background-color:#264f7840}.bg-findMatch-selected{background-color:var(--vscode-editor-findMatchHighlightBackground, #ffb74d40)}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600\/20{background-color:#16a34a33}.bg-inherit{background-color:inherit}.bg-input{background-color:var(--vscode-input-background, #2d2d2d)}.bg-lightgray\/20{background-color:#99999833}.bg-list-active{background-color:var(--vscode-list-activeSelectionBackground, #2c5aa050)}.bg-primary{background-color:var(--vscode-button-background, #2c5aa0)}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:var(--vscode-button-secondaryBackground, #303030)}.bg-stone-500{--tw-bg-opacity: 1;background-color:rgb(120 113 108 / var(--tw-bg-opacity, 1))}.bg-success{background-color:var(--vscode-notebookStatusSuccessIcon-foreground, var(--vscode-testing-iconPassed, var(--vscode-gitDecoration-addedResourceForeground, var(--vscode-charts-green, #4caf50))))}.bg-table-oddRow{background-color:var(--vscode-tree-tableOddRowsBackground, #2d2d2d)}.bg-transparent{background-color:transparent}.bg-vsc-background{background-color:var(--vscode-sideBar-background, var(--vscode-editor-background, var(--vscode-panel-background, #1e1e1e)))}.bg-vsc-editor-background{background-color:var(--vscode-editor-background, #1e1e1e)}.bg-vsc-input-background{background-color:var(--vscode-input-background, #2d2d2d)}.bg-warning{background-color:var(--vscode-editorWarning-foreground, var(--vscode-list-warningForeground, #ffb74d))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-opacity-5{--tw-bg-opacity: .05}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-editor{--tw-gradient-from: var(--vscode-editor-background, #1e1e1e) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-center{-o-object-position:center;object-position:center}.\!p-0{padding:0!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}.\!py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[5px\]{padding-left:5px;padding-right:5px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.\!pt-0{padding-top:0!important}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-\[3px\]{padding-bottom:3px}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pl-\[3px\]{padding-left:3px}.pl-\[4px\]{padding-left:4px}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pr-\[0\.2em\]{padding-right:.2em}.pr-\[2px\]{padding-right:2px}.pr-\[4px\]{padding-right:4px}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.pt-\[3px\]{padding-top:3px}.pt-\[8px\]{padding-top:8px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-2xs{font-size:.6875rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-\[color\:var\(--vscode-button-foreground\)\]{color:var(--vscode-button-foreground)}.text-\[color\:var\(--vscode-charts-green\)\]{color:var(--vscode-charts-green)}.text-\[color\:var\(--vscode-charts-red\)\]{color:var(--vscode-charts-red)}.text-\[color\:var\(--vscode-charts-yellow\)\]{color:var(--vscode-charts-yellow)}.text-\[color\:var\(--vscode-descriptionForeground\)\]{color:var(--vscode-descriptionForeground)}.text-\[color\:var\(--vscode-foreground\)\]{color:var(--vscode-foreground)}.text-\[color\:var\(--vscode-list-errorForeground\)\]{color:var(--vscode-list-errorForeground)}.text-\[color\:var\(--vscode-list-inctiveSelectionForeground\)\]{color:var(--vscode-list-inctiveSelectionForeground)}.text-\[color\:var\(--vscode-list-warningForeground\)\]{color:var(--vscode-list-warningForeground)}.text-\[color\:var\(--vscode-textLink-foreground\)\]{color:var(--vscode-textLink-foreground)}.text-badge-foreground{color:var(--vscode-badge-foreground, #ffffff)}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-description{color:var(--vscode-descriptionForeground, #b3b3b3)}.text-description-muted{color:var(--vscode-list-deemphasizedForeground, #8c8c8c)}.text-editor-foreground{color:var(--vscode-editor-foreground, #e6e6e6)}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-error{color:var(--vscode-editorError-foreground, var(--vscode-list-errorForeground, #f44336))}.text-foreground{color:var(--vscode-sideBar-foreground, var(--vscode-editor-foreground, var(--vscode-panel-foreground, #e6e6e6)))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-info{color:var(--vscode-charts-blue, var(--vscode-notebookStatusRunningIcon-foreground, #2196f3))}.text-inherit{color:inherit}.text-input-foreground{color:var(--vscode-input-foreground, #e6e6e6)}.text-input-placeholder{color:var(--vscode-input-placeholderForeground, #9e9e9e)}.text-lightgray{--tw-text-opacity: 1;color:rgb(153 153 152 / var(--tw-text-opacity, 1))}.text-link{color:var(--vscode-textLink-foreground, #5c9ce6)}.text-list-active-foreground{color:var(--vscode-list-activeSelectionForeground, #ffffff)}.text-primary-foreground{color:var(--vscode-button-foreground, #ffffff)}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:var(--vscode-button-secondaryForeground, #e6e6e6)}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-stone-500{--tw-text-opacity: 1;color:rgb(120 113 108 / var(--tw-text-opacity, 1))}.text-success{color:var(--vscode-notebookStatusSuccessIcon-foreground, var(--vscode-testing-iconPassed, var(--vscode-gitDecoration-addedResourceForeground, var(--vscode-charts-green, #4caf50))))}.text-terminal{color:var(--vscode-terminal-ansiGreen, #0dbc79)}.text-vsc-foreground{color:var(--vscode-editor-foreground, #e6e6e6)}.text-warning{color:var(--vscode-editorWarning-foreground, var(--vscode-list-warningForeground, #ffb74d))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.placeholder-description-muted::-moz-placeholder{color:var(--vscode-list-deemphasizedForeground, #8c8c8c)}.placeholder-description-muted::placeholder{color:var(--vscode-list-deemphasizedForeground, #8c8c8c)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-1{outline-width:1px}.-outline-offset-0\.5{outline-offset:-.5px}.outline-command-border{outline-color:var(--vscode-commandCenter-inactiveBorder, #555555)}.outline-green-500{outline-color:#22c55e}.outline-red-500{outline-color:#ef4444}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-description{--tw-ring-color: var(--vscode-descriptionForeground, #b3b3b3)}.ring-foreground{--tw-ring-color: var(--vscode-sideBar-foreground, var(--vscode-editor-foreground, var(--vscode-panel-foreground, #e6e6e6)))}.ring-green-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.ring-offset-background{--tw-ring-offset-color: var(--vscode-sideBar-background, var(--vscode-editor-background, var(--vscode-panel-background, #1e1e1e)))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-125{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-150{--tw-brightness: brightness(1.5);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-200{--tw-brightness: brightness(2);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-75{--tw-brightness: brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html,body,#root{height:100%}.placeholder\:text-input-placeholder::-moz-placeholder{color:var(--vscode-input-placeholderForeground, #9e9e9e)}.placeholder\:text-input-placeholder::placeholder{color:var(--vscode-input-placeholderForeground, #9e9e9e)}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:border-border-focus:focus-within{border-color:var(--vscode-focusBorder, #3a6db3)}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-border-focus:focus-within{--tw-ring-color: var(--vscode-focusBorder, #3a6db3)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-error:hover{border-color:var(--vscode-editorError-foreground, var(--vscode-list-errorForeground, #f44336))}.hover\:border-yellow-500:hover{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.hover\:bg-\[color\:var\(--vscode-button-hoverBackground\)\]:hover{background-color:var(--vscode-button-hoverBackground)}.hover\:bg-\[color\:var\(--vscode-list-inactiveSelectionBackground\)\]:hover{background-color:var(--vscode-list-inactiveSelectionBackground)}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700\/10:hover{background-color:#3741511a}.hover\:bg-input:hover{background-color:var(--vscode-input-background, #2d2d2d)}.hover\:bg-lightgray\/20:hover{background-color:#99999833}.hover\:bg-list-active:hover{background-color:var(--vscode-list-activeSelectionBackground, #2c5aa050)}.hover\:bg-list-hover:hover{background-color:var(--vscode-list-hoverBackground, #383838)}.hover\:bg-primary-hover:hover{background-color:var(--vscode-button-hoverBackground, #3a6db3)}.hover\:bg-secondary-hover:hover{background-color:var(--vscode-button-secondaryHoverBackground, #3a3a3a)}.hover\:bg-vsc-background:hover{background-color:var(--vscode-sideBar-background, var(--vscode-editor-background, var(--vscode-panel-background, #1e1e1e)))}.hover\:bg-vsc-input-background:hover{background-color:var(--vscode-input-background, #2d2d2d)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-yellow-700:hover{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.hover\:bg-opacity-5:hover{--tw-bg-opacity: .05}.hover\:text-\[color\:var\(--vscode-charts-blue\)\]:hover{color:var(--vscode-charts-blue)}.hover\:text-\[color\:var\(--vscode-textLink-activeForeground\)\]:hover{color:var(--vscode-textLink-activeForeground)}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-inherit:hover{color:inherit}.hover\:text-link:hover{color:var(--vscode-textLink-foreground, #5c9ce6)}.hover\:text-list-active-foreground:hover{color:var(--vscode-list-activeSelectionForeground, #ffffff)}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:ring-1:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:brightness-105:hover{--tw-brightness: brightness(1.05);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-125:hover{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-150:hover{--tw-brightness: brightness(1.5);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-none:focus{border-style:none}.focus\:border-border-focus:focus{border-color:var(--vscode-focusBorder, #3a6db3)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.hover\:enabled\:cursor-pointer:enabled:hover{cursor:pointer}.hover\:enabled\:border-description:enabled:hover{border-color:var(--vscode-descriptionForeground, #b3b3b3)}.hover\:enabled\:bg-input:enabled:hover{background-color:var(--vscode-input-background, #2d2d2d)}.hover\:enabled\:text-error:enabled:hover{color:var(--vscode-editorError-foreground, var(--vscode-list-errorForeground, #f44336))}.hover\:enabled\:text-foreground:enabled:hover{color:var(--vscode-sideBar-foreground, var(--vscode-editor-foreground, var(--vscode-panel-foreground, #e6e6e6)))}.hover\:enabled\:brightness-125:enabled:hover{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:brightness-75:disabled{--tw-brightness: brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.group:focus-within .group-focus-within\:bg-\[color\:var\(--vscode-list-activeSelectionBackground\)\]{background-color:var(--vscode-list-activeSelectionBackground)}.group:focus-within .group-focus-within\:text-\[color\:var\(--vscode-list-activeSelectionForeground\)\]{color:var(--vscode-list-activeSelectionForeground)}.group:hover .group-hover\:text-foreground{color:var(--vscode-sideBar-foreground, var(--vscode-editor-foreground, var(--vscode-panel-foreground, #e6e6e6)))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}@media not all and (min-width: 460px){.max-md\:hidden{display:none}}@media not all and (min-width: 330px){.max-sm\:hidden{display:none}}@media not all and (min-width: 170px){.max-2xs\:hidden{display:none}}@media (min-width: 200px){.min-\[200px\]\:flex{display:flex}}@media (min-width: 250px){.xs\:line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.xs\:block{display:block}.xs\:inline{display:inline}.xs\:flex{display:flex}.xs\:hidden{display:none}.xs\:h-3{height:.75rem}.xs\:h-4{height:1rem}.xs\:w-3{width:.75rem}.xs\:w-4{width:1rem}.xs\:w-\[90\%\]{width:90%}.xs\:gap-1\.5{gap:.375rem}.xs\:px-0{padding-left:0;padding-right:0}.xs\:px-2{padding-left:.5rem;padding-right:.5rem}.xs\:px-4{padding-left:1rem;padding-right:1rem}.xs\:py-4{padding-top:1rem;padding-bottom:1rem}}@media (min-width: 330px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:w-24{width:6rem}.sm\:w-\[88\%\]{width:88%}.sm\:w-auto{width:auto}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:pb-0{padding-bottom:0}}@media (min-width: 460px){.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:grid{display:grid}.md\:\!hidden{display:none!important}.md\:hidden{display:none}.md\:h-\[10px\]{height:10px}.md\:w-40{width:10rem}.md\:w-\[5px\]{width:5px}.md\:w-\[80\%\]{width:80%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:justify-start{justify-content:flex-start}.md\:gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.md\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.md\:pt-1{padding-top:.25rem}}@media (min-width: 590px){.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:gap-4{gap:1rem}}@media (min-width: 1180px){.\34xl\:flex{display:flex}}@media (prefers-color-scheme: dark){.dark\:bg-blue-900\/20{background-color:#1e3a8a33}.dark\:text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\]\:\!max-h-\[30vh\]{max-height:30vh!important} diff --git a/extensions/continue/gui/assets/indexConsole.js b/extensions/continue/gui/assets/indexConsole.js new file mode 100644 index 000000000000..ff1a816e2437 --- /dev/null +++ b/extensions/continue/gui/assets/indexConsole.js @@ -0,0 +1,8 @@ +import{r as x,v as L,j as e,F as O,a as P,b as D,c as A,d as G,e as U,R as z,f as _}from"./XCircleIcon.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new t.Error().stack;r&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="768e9d05-caee-4bd7-a839-7e99dcdf8f79",t._sentryDebugIdIdentifier="sentry-dbid-768e9d05-caee-4bd7-a839-7e99dcdf8f79")})()}catch{}const R=32;function H(t,r){let s=t.results[t.results.length-1];s==null||s.length==R?t.results.push([r]):s.push(r)}function J(t){t.results;let r=t.results[t.results.length-1],s;return r==null||r.length==R?s=[...t.results]:(s=t.results.slice(0,-1),s.push([...r])),{...t,results:s}}function I(t,r){const s=t.interactions,o=new Map;let l=t.order,c=!1;for(const n of r){let a=o.get(n.interactionId);if(a===void 0){const d=s.get(n.interactionId);d?a=J(d):(a={results:[]},c?l.push(n.interactionId):(l=[...l,n.interactionId],c=!0)),o.set(n.interactionId,a)}switch(n.kind){case"startChat":case"startComplete":case"startFim":a.start=n;break;case"chunk":case"message":H(a,n);break;case"success":case"error":case"cancel":a.end=n;break}}for(const n of s.keys())o.has(n)||o.set(n,s.get(n));return{loading:!1,interactions:o,order:l}}function K(t,r){const s=new Map(t.interactions);s.delete(r);const o=t.order.filter(l=>l!==r);return{loading:!1,interactions:s,order:o}}function V(){const[t,r]=x.useReducer((s,o)=>{switch(o.type){case"init":return I(s,o.items);case"item":return I(s,[o.item]);case"remove":return K(s,o.interactionId);case"clear":return{loading:!1,interactions:new Map,order:[]}}},{loading:!0,interactions:new Map,order:[]});return x.useEffect(function(){const s=L(),o=l=>{l.data.uuid===s&&r(l.data)};return window.addEventListener("message",o),vscode.postMessage({type:"start",uuid:s}),()=>{vscode.postMessage({type:"stop",uuid:s}),window.removeEventListener("message",o)}},[]),t}function q(t,r){const s=t.toLowerCase(),o={"claude-opus-4-5":{input:5,output:25,cacheWrite:6.25,cacheRead:.5},"claude-3-opus":{input:15,output:75,cacheWrite:18.75,cacheRead:1.5},"claude-3-5-sonnet":{input:3,output:15,cacheWrite:3.75,cacheRead:.3},"claude-3-5-haiku":{input:.8,output:4,cacheWrite:1,cacheRead:.08},"claude-3-haiku":{input:.25,output:1.25,cacheWrite:.3,cacheRead:.03}},l=Object.keys(o).sort((p,m)=>m.length-p.length);let c=null;for(const p of l)if(s.startsWith(p)){c=o[p];break}if(!c)return null;const n=r.promptTokens/1e6*c.input,a=r.completionTokens/1e6*c.output,d=[];r.promptTokens>0&&d.push(`Input: ${r.promptTokens.toLocaleString()} tokens × $${c.input}/MTok = $${n.toFixed(6)}`),r.completionTokens>0&&d.push(`Output: ${r.completionTokens.toLocaleString()} tokens × $${c.output}/MTok = $${a.toFixed(6)}`);let v=0;if(r.promptTokensDetails){const{cachedTokens:p,cacheWriteTokens:m}=r.promptTokensDetails;if(m&&m>0){const h=m/1e6*c.cacheWrite;v+=h,d.push(`Cache Write: ${m.toLocaleString()} tokens × $${c.cacheWrite}/MTok = $${h.toFixed(6)}`)}if(p&&p>0){const h=p/1e6*c.cacheRead;v+=h,d.push(`Cache Read: ${p.toLocaleString()} tokens × $${c.cacheRead}/MTok = $${h.toFixed(6)}`)}}const i=n+a+v;let u=`Model: ${t} +`;return u+=d.join(` +`),d.length>1&&(u+=` +Total: $${i.toFixed(6)}`),{cost:i,breakdown:u}}function X(t,r){const s=t.toLowerCase(),o={"gpt-4o-mini":{input:.15,output:.6},"gpt-4o":{input:2.5,output:10},"gpt-4-turbo":{input:10,output:30},"gpt-3.5-turbo-0125":{input:.5,output:1.5},"gpt-3.5-turbo-1106":{input:1,output:2},"gpt-3.5-turbo":{input:1.5,output:2},"gpt-4":{input:30,output:60}},l=Object.keys(o).sort((u,p)=>p.length-u.length);let c=null;for(const u of l)if(s.startsWith(u)){c=o[u];break}if(!c)return null;const n=r.promptTokens/1e6*c.input,a=r.completionTokens/1e6*c.output,d=[];r.promptTokens>0&&d.push(`Input: ${r.promptTokens.toLocaleString()} tokens × $${c.input}/MTok = $${n.toFixed(6)}`),r.completionTokens>0&&d.push(`Output: ${r.completionTokens.toLocaleString()} tokens × $${c.output}/MTok = $${a.toFixed(6)}`);const v=n+a;let i=`Model: ${t} +`;return i+=d.join(` +`),d.length>1&&(i+=` +Total: $${v.toFixed(6)}`),{cost:v,breakdown:i}}function F(t,r,s){switch(t.toLowerCase()){case"anthropic":return q(r,s);case"openai":return X(r,s);default:return null}}function B(t){return x.useMemo(()=>{var i,u,p,m,h;if(t.start==null)return{result:"",type:""};const r=t.start.kind.slice(5);let s;switch((i=t.end)==null?void 0:i.kind){case"cancel":s="Cancelled";break;case"error":s="Error";break;case"success":s="Success";break;case void 0:s=""}let o,l,c,n,a,d;if(t.start!=null&&t.results.length>0){const g=t.results[0],b=g?g[0]:void 0;l=b?b.timestamp-t.start.timestamp:void 0}if(t.end!=null)o=t.end.timestamp-t.start.timestamp,n=t.end.promptTokens,a=t.end.generatedTokens,d=t.end.thinkingTokens,l!=null&&(c=(a+d)/((o-l)/1e3));else{const g=t.results[t.results.length-1],b=g?g[g.length-1]:void 0;o=b?b.timestamp-t.start.timestamp:void 0}let v=null;return(u=t.end)!=null&&u.usage&&((p=t.start)!=null&&p.provider)&&((h=(m=t.start)==null?void 0:m.options)!=null&&h.model)&&(v=F(t.start.provider,t.start.options.model,t.end.usage)),{result:s,type:r,totalTime:o,toFirstToken:l,tokensPerSecond:c,promptTokens:n,generatedTokens:a,thinkingTokens:d,costBreakdown:v}},[t])}function Y({item:t}){switch(t.kind){case"success":return e.jsx(e.Fragment,{});case"error":return e.jsxs("div",{children:[e.jsx("span",{className:"text-[color:var(--vscode-statusBarItem-errorForeground) m-0.5 inline-block rounded-sm bg-[color:var(--vscode-statusBarItem-errorBackground)] p-0.5",children:"Error"}),t.message]});case"cancel":return e.jsx("div",{children:e.jsx("span",{className:"text-[color:var(--vscode-statusBarItem-warningForeground) m-0.5 inline-block rounded-sm bg-[color:var(--vscode-statusBarItem-warningBackground)] p-0.5",children:"Cancelled"})})}}function y(t){return e.jsx("span",{className:"whitespace-pre-wrap",children:t})}function N(t){return e.jsx("div",{children:e.jsx("span",{className:"bg-[color:var(--vscode-list-inactiveSelectionBackground)] text-xs",children:t})})}function S(t){return typeof t.content=="string"?y(t.content):t.content.map(r=>r.type=="text"?y(r.text):e.jsxs("div",{children:["Image: ",r.imageUrl.url]}))}function $(t,r){switch(t.role){case"assistant":return e.jsxs(e.Fragment,{children:[r?N(t.role):"",t.toolCalls?t.toolCalls.map(s=>e.jsxs("pre",{children:["Tool call: ",JSON.stringify(s,void 0,2)]},s.id)):"",S(t)]});case"thinking":return e.jsxs(e.Fragment,{children:[r?N(t.role):"",t.toolCalls?t.toolCalls.map(s=>e.jsxs("pre",{children:["Tool call: ",JSON.stringify(s,void 0,2)]})):"",S(t),t.redactedThinking&&e.jsxs("pre",{children:["Redacted Thinking: ",t.redactedThinking]}),t.signature&&e.jsxs("pre",{children:["Signature: ",t.signature]})]});case"user":return e.jsxs(e.Fragment,{children:[r?N(t.role):"",S(t)]});case"system":return e.jsxs(e.Fragment,{children:[r?N(t.role):"",y(t.content)]});case"tool":return e.jsxs(e.Fragment,{children:[r?N(t.role):"",e.jsxs("pre",{children:["Tool Call ID: ",t.toolCallId]}),y(t.content)]})}}const Q=x.memo(function({message:r}){return $(r,!0)}),Z=x.memo(function({result:r,prevResult:s}){switch(r.kind){case"chunk":return e.jsx("span",{children:r.chunk});case"message":switch(r.message.role){case"assistant":case"thinking":const o=!((s==null?void 0:s.kind)==="message"&&s.message.role===r.message.role);return $(r.message,o);default:return e.jsx("div",{className:"border-[color:var(--vscode-panel-border) border-2 border-solid p-1",children:$(r.message,!0)})}break}}),ee=x.memo(function({group:r}){return e.jsx(e.Fragment,{children:r.map((s,o)=>e.jsx(Z,{result:s,prevResult:r[o-1]},`${s.timestamp}-${o}`))})});function k({label:t,children:r}){const[s,o]=x.useState(!1);return e.jsxs("div",{children:[e.jsxs("div",{className:"text-base",onClick:()=>o(!s),children:[s?e.jsx(O,{className:"h-[16px] w-[16px]"}):e.jsx(P,{className:"h-[16px] w-[16px]"})," ",e.jsx("span",{className:"align-top text-sm font-bold",children:t})]}),s&&e.jsx("div",{children:r})]})}function te({item:t}){return e.jsx("div",{className:"border-0 border-b-2 border-solid border-[color:var(--vscode-panel-border)] p-1",children:(()=>{switch(t.kind){case"startChat":return e.jsxs(e.Fragment,{children:[e.jsx(k,{label:"Prompt",children:e.jsx("div",{className:"p-1",children:t.messages.map((r,s)=>e.jsx(Q,{message:r},s))})}),e.jsx(k,{label:"Options",children:e.jsx("pre",{className:"m-0",children:JSON.stringify(t.options,void 0,2)})})]});case"startComplete":return e.jsxs(e.Fragment,{children:[e.jsx(k,{label:"Prompt",children:e.jsx("pre",{className:"m-0",children:t.prompt})}),e.jsx(k,{label:"Options",children:e.jsx("pre",{className:"m-0",children:JSON.stringify(t.options,void 0,2)})})]});case"startFim":return e.jsxs(e.Fragment,{children:[e.jsx(k,{label:"Prefix",children:e.jsx("pre",{className:"m-0",children:t.prefix})}),e.jsx(k,{label:"Suffix",children:e.jsx("pre",{className:"m-0",children:t.suffix})}),e.jsx(k,{label:"Options",children:e.jsx("pre",{className:"m-0",children:JSON.stringify(t.options,void 0,2)})})]})}})()})}function W({interaction:t}){if(t.end)switch(t.end.kind){case"success":return e.jsx(G,{className:"relative top-[2px] -mt-[2px] h-[16px] w-[16px] pr-[2px] text-[color:var(--vscode-charts-green)]"});case"cancel":return e.jsx(A,{className:"relative top-[2px] -mt-[2px] h-[16px] w-[16px] pr-[2px] text-[color:var(--vscode-list-warningForeground)]"});case"error":return e.jsx(D,{className:"relative top-[2px] -mt-[2px] h-[16px] w-[16px] pr-[2px] text-[color:var(--vscode-list-errorForeground)]"})}else return e.jsx(U,{className:"relative top-[2px] -mt-[2px] h-[16px] w-[16px] pr-[2px]"})}function E(t){return e.jsx("div",{className:"border-0 border-r-2 border-solid border-[color:var(--vscode-panel-border)] pl-2 pr-2 text-sm",children:t})}function j({label:t,value:r,format:s}){return E(r!=null?`${t}: ${s?s(r):r}`:"")}function re({children:t}){return E(t)}function M(t){return(t/1e3).toFixed(2)+"s"}function se({interaction:t}){const r=x.useRef(null),s=x.useRef(null),o=B(t),[l,c]=x.useState(!0);function n(){const a=r.current;if(!a)return;c(a.scrollHeight-a.scrollTop-a.clientHeight<5)}return x.useEffect(()=>{var d;if(t.end)return;const a=t.results[t.results.length-1];if(a!=s.current&&(s.current=a,l)){const v=(d=r.current)==null?void 0:d.lastChild;v&&v.scrollIntoView({behavior:"auto",block:"end"})}},[t,l]),e.jsxs("div",{className:"m-0 flex min-w-0 flex-1 shrink grow flex-col",children:[e.jsxs("div",{className:"shrink-0 text-base",children:[e.jsxs("div",{className:"columns-3 gap-0 border-0 border-b-2 border-solid border-[color:var(--vscode-panel-border)] p-0",children:[e.jsx(j,{label:"Type",value:o.type}),e.jsxs(re,{children:["Result: ",e.jsx(W,{interaction:t}),o.result]})]}),e.jsxs("div",{className:"columns-3 gap-0 border-0 border-b-2 border-solid border-[color:var(--vscode-panel-border)] p-0",children:[e.jsx(j,{label:"Prompt Tokens",value:o.promptTokens}),e.jsx(j,{label:"Generated Tokens",value:o.generatedTokens}),e.jsx(j,{label:"ThinkingTokens",value:o.thinkingTokens})]}),e.jsxs("div",{className:"columns-3 gap-0 border-0 border-b-2 border-solid border-[color:var(--vscode-panel-border)] p-0",children:[e.jsx(j,{label:"Total Time",value:o.totalTime,format:M}),e.jsx(j,{label:"To First Token",value:o.toFirstToken,format:M}),e.jsx(j,{label:"Tokens/s",value:o.tokensPerSecond,format:a=>a.toFixed(1)})]})]}),e.jsxs("div",{ref:r,className:"grow overflow-auto",onScroll:n,children:[t.start?e.jsx(te,{item:t.start}):"",e.jsx("div",{className:"whitespace-pre-wrap p-2",children:t.results.map((a,d)=>e.jsx(ee,{group:a},d))}),t.end?e.jsx(Y,{item:t.end}):""]})]})}function oe(t){const r=new Date(t),s=r.getHours().toString().padStart(2,"0"),o=r.getMinutes().toString().padStart(2,"0"),l=r.getSeconds(),c=r.getMilliseconds(),n=`${l}.${Math.floor(c/100)}`;return`${s}:${o}:${n.padStart(4,"0")}`}function ne({interactionId:t,interaction:r,onClickInteraction:s,selected:o}){const l=B(r);return e.jsxs("li",{className:"w-full cursor-pointer pb-[3px] pl-[4px] pr-[4px] pt-[3px] "+(o?"bg-[color:var(--vscode-list-inactiveSelectionBackground)] text-[color:var(--vscode-list-inctiveSelectionForeground)] group-focus-within:bg-[color:var(--vscode-list-activeSelectionBackground)] group-focus-within:text-[color:var(--vscode-list-activeSelectionForeground)]":"hover:bg-[color:var(--vscode-list-inactiveSelectionBackground)]"),onClick:()=>s(t),children:[e.jsx(W,{interaction:r})," ",e.jsx("span",{className:"inline-block w-[70px]",children:r.start?oe(r.start.timestamp):""}),e.jsx("span",{className:"inline-block",children:l.type})]},t)}function ce({llmLog:t,onClickInteraction:r}){const s=x.useRef(null),[o,l]=x.useState(void 0),c=x.useRef(0);return x.useEffect(()=>{var n;if(t.order.length!=c.current){l(t.order[t.order.length-1]),r(t.order[t.order.length-1]),c.current=t.order.length;const a=(n=s.current)==null?void 0:n.lastChild;a&&a.scrollIntoView({behavior:"smooth",block:"end"})}}),e.jsx("ul",{tabIndex:1,ref:s,className:"group m-0 w-[150px] flex-none list-none overflow-auto border-0 border-r-2 border-solid border-[color:var(--vscode-panel-border)] p-0",children:t.order.map(n=>e.jsx(ne,{interactionId:n,interaction:t.interactions.get(n),onClickInteraction:a=>{var d;(d=s.current)==null||d.focus(),l(a),r(a)},selected:n==o},n))})}function ae(t){return x.useMemo(()=>{var p,m,h,g,b;let r=0,s=0,o=0,l=0,c=0,n=0,a=0,d=0,v=0,i=0;const u=[];for(const f of t.interactions.values())if(f.end){if(n++,r+=f.end.promptTokens||0,s+=f.end.generatedTokens||0,o+=f.end.thinkingTokens||0,f.end.usage){const w=f.end.usage;if(l+=((p=w.promptTokensDetails)==null?void 0:p.cachedTokens)||0,c+=((m=w.promptTokensDetails)==null?void 0:m.cacheWriteTokens)||0,(h=f.start)!=null&&h.provider&&((b=(g=f.start)==null?void 0:g.options)!=null&&b.model)){const T=F(f.start.provider,f.start.options.model,w);T&&(i+=T.cost,u.push(T))}}switch(f.end.kind){case"success":a++;break;case"error":d++;break;case"cancel":v++;break}}return{totalPromptTokens:r,totalGeneratedTokens:s,totalThinkingTokens:o,totalCachedTokens:l,totalCacheWriteTokens:c,totalInteractions:n,totalSuccessfulInteractions:a,totalErrorInteractions:d,totalCancelledInteractions:v,totalCost:i,costBreakdowns:u}},[t])}const C=({label:t,value:r,color:s="var(--vscode-foreground)"})=>e.jsxs("div",{className:"flex flex-col items-center rounded-lg border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-3",children:[e.jsx("div",{className:"text-sm text-[color:var(--vscode-descriptionForeground)]",children:t}),e.jsx("div",{className:"text-lg font-semibold",style:{color:s},children:r.toLocaleString()})]}),le=({llmLog:t})=>{const r=x.useMemo(()=>{let i=0;const u=[];return t.order.forEach((p,m)=>{var g,b,f,w;const h=t.interactions.get(p);if((g=h==null?void 0:h.end)!=null&&g.usage&&((b=h.start)!=null&&b.provider)&&((w=(f=h.start)==null?void 0:f.options)!=null&&w.model)){const T=F(h.start.provider,h.start.options.model,h.end.usage);T&&(i+=T.cost)}u.push({interaction:m+1,cost:i})}),u},[t.order,t.interactions]);if(r.length===0||r[r.length-1].cost===0)return null;const s=Math.max(...r.map(i=>i.cost)),o=r.length,l=400,c=200,n=40,a=i=>(i-1)/(o-1)*(l-2*n)+n,d=i=>c-n-i/s*(c-2*n),v=r.map((i,u)=>`${u===0?"M":"L"} ${a(i.interaction)} ${d(i.cost)}`).join(" ");return e.jsxs("div",{className:"mb-4 rounded-lg border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-4",children:[e.jsx("h3",{className:"mb-3 text-sm font-semibold text-[color:var(--vscode-foreground)]",children:"Cumulative Cost Over Interactions"}),e.jsx("div",{className:"flex justify-center",children:e.jsxs("svg",{width:l,height:c,className:"overflow-visible",children:[e.jsx("defs",{children:e.jsx("pattern",{id:"grid",width:"20",height:"20",patternUnits:"userSpaceOnUse",children:e.jsx("path",{d:"M 20 0 L 0 0 0 20",fill:"none",stroke:"var(--vscode-panel-border)",strokeWidth:"0.5",opacity:"0.3"})})}),e.jsx("rect",{width:l,height:c,fill:"url(#grid)"}),e.jsx("rect",{x:n,y:n,width:l-2*n,height:c-2*n,fill:"var(--vscode-editor-background)",stroke:"var(--vscode-panel-border)",strokeWidth:"1"}),e.jsx("path",{d:v,fill:"none",stroke:"var(--vscode-charts-green)",strokeWidth:"2",strokeLinecap:"round"}),r.map((i,u)=>e.jsx("circle",{cx:a(i.interaction),cy:d(i.cost),r:"3",fill:"var(--vscode-charts-green)",stroke:"var(--vscode-editor-background)",strokeWidth:"1"},u)),[0,.25,.5,.75,1].map(i=>{const u=s*i,p=d(u);return e.jsxs("g",{children:[e.jsx("line",{x1:n-5,y1:p,x2:n,y2:p,stroke:"var(--vscode-foreground)",strokeWidth:"1"}),e.jsxs("text",{x:n-8,y:p+4,textAnchor:"end",fontSize:"10",fill:"var(--vscode-descriptionForeground)",children:["$",u.toFixed(4)]})]},i)}),[0,.25,.5,.75,1].map(i=>{const u=Math.round(1+i*(o-1)),p=a(u);return e.jsxs("g",{children:[e.jsx("line",{x1:p,y1:c-n,x2:p,y2:c-n+5,stroke:"var(--vscode-foreground)",strokeWidth:"1"}),e.jsx("text",{x:p,y:c-n+18,textAnchor:"middle",fontSize:"10",fill:"var(--vscode-descriptionForeground)",children:u})]},i)}),e.jsx("text",{x:l/2,y:c-5,textAnchor:"middle",fontSize:"12",fill:"var(--vscode-foreground)",children:"Interaction Number"}),e.jsx("text",{x:15,y:c/2,textAnchor:"middle",fontSize:"12",fill:"var(--vscode-foreground)",transform:`rotate(-90 15 ${c/2})`,children:"Cumulative Cost ($)"})]})})]})},de=({llmLog:t})=>{const r=ae(t),[s,o]=x.useState(!1);return e.jsxs("div",{className:"border-b border-[color:var(--vscode-panel-border)] p-4",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold text-[color:var(--vscode-foreground)]",children:"Total Usage Summary"}),e.jsxs("div",{className:"flex items-center gap-4",children:[r.totalCost>0&&e.jsxs("button",{onClick:()=>o(!s),className:"cursor-pointer text-lg font-semibold text-[color:var(--vscode-charts-green)] hover:text-[color:var(--vscode-charts-blue)]",children:["$",r.totalCost.toFixed(6)]}),e.jsxs("div",{className:"text-sm text-[color:var(--vscode-descriptionForeground)]",children:[r.totalInteractions," interactions"]})]})]}),s&&r.costBreakdowns.length>0&&e.jsxs("div",{className:"mb-4 max-h-32 overflow-y-auto rounded border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-3",children:[e.jsx("h3",{className:"mb-2 text-sm font-semibold text-[color:var(--vscode-foreground)]",children:"Cost Breakdown"}),e.jsx("div",{className:"space-y-2 text-xs",children:r.costBreakdowns.map((l,c)=>e.jsx("div",{className:"border-b border-[color:var(--vscode-panel-border)] pb-2 last:border-b-0",children:e.jsx("pre",{className:"whitespace-pre-wrap text-[color:var(--vscode-descriptionForeground)]",children:l.breakdown})},c))})]}),e.jsxs("div",{className:"mb-4 grid grid-cols-2 gap-3 md:grid-cols-4",children:[e.jsx(C,{label:"Input Tokens",value:r.totalPromptTokens,color:"var(--vscode-charts-blue)"}),e.jsx(C,{label:"Output Tokens",value:r.totalGeneratedTokens,color:"var(--vscode-charts-green)"}),e.jsx(C,{label:"Thinking Tokens",value:r.totalThinkingTokens,color:"var(--vscode-charts-purple)"}),e.jsx(C,{label:"Cache Read",value:r.totalCachedTokens,color:"var(--vscode-charts-orange)"})]}),r.totalCost>0&&e.jsxs(e.Fragment,{children:[e.jsx(le,{llmLog:t}),e.jsx("div",{className:"mb-4",children:e.jsxs("div",{className:"flex flex-col items-center rounded-lg border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-3",children:[e.jsx("div",{className:"text-sm text-[color:var(--vscode-descriptionForeground)]",children:"Total Cost"}),e.jsxs("div",{className:"text-2xl font-bold text-[color:var(--vscode-charts-green)]",children:["$",r.totalCost.toFixed(6)]}),e.jsxs("div",{className:"text-xs text-[color:var(--vscode-descriptionForeground)]",children:[r.costBreakdowns.length," cost calculations"]})]})})]}),r.totalCacheWriteTokens>0&&e.jsxs("div",{className:"mb-4 grid grid-cols-1 gap-3 md:grid-cols-2",children:[e.jsx(C,{label:"Cache Write",value:r.totalCacheWriteTokens,color:"var(--vscode-charts-red)"}),e.jsx("div",{className:"flex items-center justify-center rounded-lg border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-3",children:e.jsxs("div",{className:"text-sm text-[color:var(--vscode-descriptionForeground)]",children:["Cache Hit Rate:"," ",r.totalPromptTokens>0?(r.totalCachedTokens/r.totalPromptTokens*100).toFixed(1):"0","%"]})})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 text-sm",children:[e.jsxs("div",{className:"rounded border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-2 text-center",children:[e.jsx("div",{className:"text-[color:var(--vscode-charts-green)]",children:r.totalSuccessfulInteractions}),e.jsx("div",{className:"text-[color:var(--vscode-descriptionForeground)]",children:"Success"})]}),e.jsxs("div",{className:"rounded border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-2 text-center",children:[e.jsx("div",{className:"text-[color:var(--vscode-charts-red)]",children:r.totalErrorInteractions}),e.jsx("div",{className:"text-[color:var(--vscode-descriptionForeground)]",children:"Error"})]}),e.jsxs("div",{className:"rounded border border-[color:var(--vscode-panel-border)] bg-[color:var(--vscode-editor-background)] p-2 text-center",children:[e.jsx("div",{className:"text-[color:var(--vscode-charts-yellow)]",children:r.totalCancelledInteractions}),e.jsx("div",{className:"text-[color:var(--vscode-descriptionForeground)]",children:"Cancelled"})]})]})]})};function ie(){const t=V(),[r,s]=x.useState(void 0),[o,l]=x.useState(!1),c=r?t.interactions.get(r):void 0;return t.loading?e.jsx("div",{children:"Loading..."}):e.jsxs("div",{className:"flex h-full w-full",children:[e.jsx("div",{className:"flex h-full w-full flex-col",children:e.jsxs("div",{className:"flex min-h-0 flex-1 overflow-hidden",children:[e.jsx(ce,{llmLog:t,onClickInteraction:n=>{s(n)}}),c&&e.jsx(se,{interaction:c},"{selectedId}")]})}),o&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50",children:e.jsxs("div",{className:"relative h-full w-full max-w-6xl overflow-hidden bg-[color:var(--vscode-panel-background)] shadow-2xl",children:[e.jsx("button",{onClick:()=>l(!1),className:"absolute right-4 top-4 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-[color:var(--vscode-button-background)] text-[color:var(--vscode-button-foreground)] transition-colors hover:bg-[color:var(--vscode-button-hoverBackground)]",children:"×"}),e.jsx("div",{className:"h-full overflow-y-auto p-6",children:e.jsx(de,{llmLog:t})})]})})]})}(async()=>z.createRoot(document.getElementById("root")).render(e.jsx(_.StrictMode,{children:e.jsx(ie,{})})))(); +//# sourceMappingURL=indexConsole.js.map diff --git a/extensions/continue/gui/assets/indexConsole.js.map b/extensions/continue/gui/assets/indexConsole.js.map new file mode 100644 index 000000000000..ba303e347739 --- /dev/null +++ b/extensions/continue/gui/assets/indexConsole.js.map @@ -0,0 +1 @@ +{"version":3,"file":"indexConsole.js","sources":["../../src/hooks/useLLMLog.ts","../../../core/llm/utils/calculateRequestCost.ts","../../src/hooks/useLLMSummary.ts","../../src/components/console/End.tsx","../../src/components/console/Message.tsx","../../src/components/console/Result.tsx","../../src/components/console/ResultGroup.tsx","../../src/components/console/Expander.tsx","../../src/components/console/Start.tsx","../../src/components/console/StatusIcon.tsx","../../src/components/console/Details.tsx","../../src/components/console/ListItem.tsx","../../src/components/console/List.tsx","../../src/hooks/useTotalUsage.ts","../../src/components/console/TotalUsage.tsx","../../src/components/console/Layout.tsx","../../src/console.tsx"],"sourcesContent":["import {\n LLMInteractionCancel,\n LLMInteractionChunk,\n LLMInteractionError,\n LLMInteractionItem,\n LLMInteractionMessage,\n LLMInteractionStartChat,\n LLMInteractionStartComplete,\n LLMInteractionStartFim,\n LLMInteractionSuccess,\n} from \"core\";\nimport { useEffect, useReducer } from \"react\";\nimport { v4 as uuidv4 } from \"uuid\";\n\ndeclare const vscode: any;\n\nexport type LLMResult = LLMInteractionMessage | LLMInteractionChunk;\n\nconst MAX_GROUP_LENGTH = 32;\n\ninterface ToConsoleViewInit {\n type: \"init\";\n uuid: string;\n items: LLMInteractionItem[];\n}\n\ninterface ToConsoleViewItem {\n type: \"item\";\n uuid: string;\n item: LLMInteractionItem;\n}\n\ninterface ToConsoleViewRemove {\n type: \"remove\";\n uuid: string;\n interactionId: string;\n}\n\ninterface ToConsoleViewClear {\n type: \"clear\";\n uuid: string;\n}\n\ntype ToConsoleView =\n | ToConsoleViewInit\n | ToConsoleViewItem\n | ToConsoleViewRemove\n | ToConsoleViewClear;\n\n/**\n * Represents a linear list of LLMInteractionItem, transformed into\n * a form that is more convenient for rendering.\n */\nexport interface LLMInteraction {\n start?:\n | LLMInteractionStartChat\n | LLMInteractionStartComplete\n | LLMInteractionStartFim;\n\n // We use an array-of-arrays for efficiency when rendering a streamed result\n // with lots and lots of separate tokens; instead of having a linear list\n // of 1024 Result components, we have 32 ResultGroup components each rendering\n // 32 Results.\n //\n // Inline content can split between one group and the next - we'll let the\n // browser engine sort that out.\n results: LLMResult[][];\n\n end?: LLMInteractionSuccess | LLMInteractionError | LLMInteractionCancel;\n}\n\nexport interface LLMLog {\n loading: boolean;\n interactions: Map;\n order: string[];\n}\n\n/**\n * Appends a new result item (chunk or message) to an interaction,\n * existing iteractions must already have been copied with\n * copyInteractionForMutation().\n */\nfunction appendItemToInteractionResult(\n interaction: LLMInteraction,\n item: LLMInteractionMessage | LLMInteractionChunk,\n) {\n let lastGroup = interaction.results[interaction.results.length - 1];\n\n if (lastGroup == undefined || lastGroup.length == MAX_GROUP_LENGTH) {\n interaction.results.push([item]);\n } else {\n lastGroup.push(item);\n }\n}\n\n/**\n * Makes a copy of an interaction that can be mutated without changing\n * any objects/arrays that are part of the old state. We always make\n * a copy of the last (open) result group, so that we can simply append\n * to it; this is very slightly inefficient for the case where we're\n * handling a single end item with no results, but makes things simpler.\n */\nfunction copyInteractionForMutation(oldInteraction: LLMInteraction) {\n const oldResults = oldInteraction.results;\n let oldLastGroup = oldInteraction.results[oldInteraction.results.length - 1];\n let newResults;\n\n if (oldLastGroup == undefined || oldLastGroup.length == MAX_GROUP_LENGTH) {\n newResults = [...oldInteraction.results];\n } else {\n newResults = oldInteraction.results.slice(0, -1);\n newResults.push([...oldLastGroup]);\n }\n\n return { ...oldInteraction, results: newResults };\n}\n\nfunction appendItemsToLLMLog(\n oldLog: LLMLog,\n items: LLMInteractionItem[],\n): LLMLog {\n const oldInteractions = oldLog.interactions;\n const newInteractions: Map = new Map();\n let order = oldLog.order;\n let interactionsAdded = false;\n\n // Add the new items to the log, making mutable copies of old\n // LLMInteraction as necessary\n for (const item of items) {\n let interaction = newInteractions.get(item.interactionId);\n if (interaction === undefined) {\n const oldInteraction = oldInteractions.get(item.interactionId);\n if (oldInteraction) {\n interaction = copyInteractionForMutation(oldInteraction);\n } else {\n interaction = {\n results: [],\n };\n\n if (interactionsAdded) {\n order.push(item.interactionId);\n } else {\n order = [...order, item.interactionId];\n interactionsAdded = true;\n }\n }\n newInteractions.set(item.interactionId, interaction);\n }\n\n switch (item.kind) {\n case \"startChat\":\n case \"startComplete\":\n case \"startFim\":\n interaction.start = item;\n break;\n case \"chunk\":\n case \"message\":\n appendItemToInteractionResult(interaction, item);\n break;\n case \"success\":\n case \"error\":\n case \"cancel\":\n interaction.end = item;\n break;\n }\n }\n\n // Copy over unchanged interactions\n for (const interactionId of oldInteractions.keys()) {\n if (!newInteractions.has(interactionId)) {\n newInteractions.set(interactionId, oldInteractions.get(interactionId)!);\n }\n }\n\n return {\n loading: false,\n interactions: newInteractions,\n order,\n };\n}\n\nfunction removeInteractionFromLLMLog(\n llmLog: LLMLog,\n interactionId: string,\n): LLMLog {\n const newInteractions = new Map(llmLog.interactions);\n newInteractions.delete(interactionId);\n const newOrder = llmLog.order.filter((id) => id !== interactionId);\n\n return {\n loading: false,\n interactions: newInteractions,\n order: newOrder,\n };\n}\n\n/**\n * Hook to accumulate log data structures based on messages passed\n * from the core. Note that each call site will create an independent\n * data structure, so this should be only used once at a toplevel\n * component.\n * @returns currently log datastructure.\n */\nexport default function useLLMLog() {\n const [llmLog, dispatchLlmLog] = useReducer(\n (llmLog: LLMLog, message: ToConsoleView) => {\n switch (message.type) {\n case \"init\":\n return appendItemsToLLMLog(llmLog, message.items);\n case \"item\":\n return appendItemsToLLMLog(llmLog, [message.item]);\n case \"remove\":\n return removeInteractionFromLLMLog(llmLog, message.interactionId);\n case \"clear\":\n return {\n loading: false,\n interactions: new Map(),\n order: [],\n };\n }\n },\n {\n loading: true,\n interactions: new Map(),\n order: [],\n },\n );\n\n useEffect(function () {\n // The uuid here marks the \"generation\" when the webview is\n // reloaded, so we don't get confused if there are inflight\n // messages from the previous generation. In particular, this\n // avoids problems when React.StrictMode runs this effect\n // twice - we don't want to process two \"init\" messages.\n const uuid = uuidv4();\n const onMessage = (event: MessageEvent) => {\n if (event.data.uuid !== uuid) {\n return;\n }\n\n dispatchLlmLog(event.data);\n };\n window.addEventListener(\"message\", onMessage);\n vscode.postMessage({ type: \"start\", uuid });\n\n return () => {\n vscode.postMessage({ type: \"stop\", uuid });\n window.removeEventListener(\"message\", onMessage);\n };\n }, []);\n\n return llmLog;\n}\n","import { Usage } from \"../..\";\n\nexport interface CostBreakdown {\n cost: number;\n breakdown: string;\n}\n\nfunction calculateAnthropicCost(\n model: string,\n usage: Usage,\n): CostBreakdown | null {\n // Normalize model name to handle various formats\n const normalizedModel = model.toLowerCase();\n\n // Define pricing per million tokens (MTok) by model family prefix\n const pricing: Record<\n string,\n { input: number; output: number; cacheWrite: number; cacheRead: number }\n > = {\n // Claude Opus 4.5 (most intelligent model)\n \"claude-opus-4-5\": {\n input: 5,\n output: 25,\n cacheWrite: 6.25,\n cacheRead: 0.5,\n },\n\n // Claude Opus 4 (legacy)\n \"claude-3-opus\": {\n input: 15,\n output: 75,\n cacheWrite: 18.75,\n cacheRead: 1.5,\n },\n\n // Claude Sonnet 4 (optimal balance)\n \"claude-3-5-sonnet\": {\n input: 3,\n output: 15,\n cacheWrite: 3.75,\n cacheRead: 0.3,\n },\n\n // Claude Haiku 3.5 (fastest, most cost-effective)\n \"claude-3-5-haiku\": {\n input: 0.8,\n output: 4,\n cacheWrite: 1,\n cacheRead: 0.08,\n },\n\n // Legacy Claude 3 Haiku\n \"claude-3-haiku\": {\n input: 0.25,\n output: 1.25,\n cacheWrite: 0.3,\n cacheRead: 0.03,\n },\n };\n\n // Sort keys by length (longest first) to match most specific patterns first\n const sortedKeys = Object.keys(pricing).sort((a, b) => b.length - a.length);\n\n let modelPricing = null;\n for (const prefix of sortedKeys) {\n if (normalizedModel.startsWith(prefix)) {\n modelPricing = pricing[prefix];\n break;\n }\n }\n\n if (!modelPricing) {\n return null; // Unknown model\n }\n\n // Calculate costs\n const inputCost = (usage.promptTokens / 1_000_000) * modelPricing.input;\n const outputCost = (usage.completionTokens / 1_000_000) * modelPricing.output;\n\n // Build breakdown components\n const breakdownParts: string[] = [];\n\n // Input tokens breakdown\n if (usage.promptTokens > 0) {\n breakdownParts.push(\n `Input: ${usage.promptTokens.toLocaleString()} tokens × $${modelPricing.input}/MTok = $${inputCost.toFixed(6)}`,\n );\n }\n\n // Output tokens breakdown\n if (usage.completionTokens > 0) {\n breakdownParts.push(\n `Output: ${usage.completionTokens.toLocaleString()} tokens × $${modelPricing.output}/MTok = $${outputCost.toFixed(6)}`,\n );\n }\n\n // Handle prompt caching costs if available\n let cacheCost = 0;\n if (usage.promptTokensDetails) {\n const { cachedTokens, cacheWriteTokens } = usage.promptTokensDetails;\n\n if (cacheWriteTokens && cacheWriteTokens > 0) {\n const cacheWriteCost =\n (cacheWriteTokens / 1_000_000) * modelPricing.cacheWrite;\n cacheCost += cacheWriteCost;\n breakdownParts.push(\n `Cache Write: ${cacheWriteTokens.toLocaleString()} tokens × $${modelPricing.cacheWrite}/MTok = $${cacheWriteCost.toFixed(6)}`,\n );\n }\n\n if (cachedTokens && cachedTokens > 0) {\n const cacheReadCost = (cachedTokens / 1_000_000) * modelPricing.cacheRead;\n cacheCost += cacheReadCost;\n breakdownParts.push(\n `Cache Read: ${cachedTokens.toLocaleString()} tokens × $${modelPricing.cacheRead}/MTok = $${cacheReadCost.toFixed(6)}`,\n );\n }\n }\n\n const totalCost = inputCost + outputCost + cacheCost;\n\n // Build final breakdown string\n let breakdown = `Model: ${model}\\n`;\n breakdown += breakdownParts.join(\"\\n\");\n if (breakdownParts.length > 1) {\n breakdown += `\\nTotal: $${totalCost.toFixed(6)}`;\n }\n\n return {\n cost: totalCost,\n breakdown,\n };\n}\n\nfunction calculateOpenAICost(\n model: string,\n usage: Usage,\n): CostBreakdown | null {\n // Normalize model name\n const normalizedModel = model.toLowerCase();\n\n // Define pricing per million tokens (MTok) by model family prefix\n const pricing: Record = {\n // GPT-4o models (most specific first)\n \"gpt-4o-mini\": { input: 0.15, output: 0.6 },\n \"gpt-4o\": { input: 2.5, output: 10 },\n\n // GPT-4 Turbo models\n \"gpt-4-turbo\": { input: 10, output: 30 },\n\n // GPT-3.5 Turbo models (most specific first)\n \"gpt-3.5-turbo-0125\": { input: 0.5, output: 1.5 },\n \"gpt-3.5-turbo-1106\": { input: 1, output: 2 },\n \"gpt-3.5-turbo\": { input: 1.5, output: 2 },\n\n // Base GPT-4 (fallback for other gpt-4 variants)\n \"gpt-4\": { input: 30, output: 60 },\n };\n\n // Sort keys by length (longest first) to match most specific patterns first\n const sortedKeys = Object.keys(pricing).sort((a, b) => b.length - a.length);\n\n let modelPricing = null;\n for (const prefix of sortedKeys) {\n if (normalizedModel.startsWith(prefix)) {\n modelPricing = pricing[prefix];\n break;\n }\n }\n\n if (!modelPricing) {\n return null; // Unknown model\n }\n\n // Calculate costs\n const inputCost = (usage.promptTokens / 1_000_000) * modelPricing.input;\n const outputCost = (usage.completionTokens / 1_000_000) * modelPricing.output;\n\n // Build breakdown components\n const breakdownParts: string[] = [];\n\n if (usage.promptTokens > 0) {\n breakdownParts.push(\n `Input: ${usage.promptTokens.toLocaleString()} tokens × $${modelPricing.input}/MTok = $${inputCost.toFixed(6)}`,\n );\n }\n\n if (usage.completionTokens > 0) {\n breakdownParts.push(\n `Output: ${usage.completionTokens.toLocaleString()} tokens × $${modelPricing.output}/MTok = $${outputCost.toFixed(6)}`,\n );\n }\n\n const totalCost = inputCost + outputCost;\n\n // Build final breakdown string\n let breakdown = `Model: ${model}\\n`;\n breakdown += breakdownParts.join(\"\\n\");\n if (breakdownParts.length > 1) {\n breakdown += `\\nTotal: $${totalCost.toFixed(6)}`;\n }\n\n return {\n cost: totalCost,\n breakdown,\n };\n}\n\nexport function calculateRequestCost(\n provider: string,\n model: string,\n usage: Usage,\n): CostBreakdown | null {\n switch (provider.toLowerCase()) {\n case \"anthropic\":\n return calculateAnthropicCost(model, usage);\n case \"openai\":\n return calculateOpenAICost(model, usage);\n default:\n return null;\n }\n}\n","import {\n calculateRequestCost,\n CostBreakdown,\n} from \"core/llm/utils/calculateRequestCost\";\nimport { useMemo } from \"react\";\nimport { LLMInteraction } from \"./useLLMLog\";\n\n/**\n * Hook returning memoized information about single logged prompt/response\n * query to the LLM.\n */\nexport default function useLLMSummary(interaction: LLMInteraction) {\n return useMemo(() => {\n if (interaction.start == undefined) {\n return {\n result: \"\",\n type: \"\",\n };\n }\n\n const type = interaction.start.kind.slice(5);\n\n let result;\n switch (interaction.end?.kind) {\n case \"cancel\":\n result = \"Cancelled\";\n break;\n case \"error\":\n result = \"Error\";\n break;\n case \"success\":\n result = \"Success\";\n break;\n case undefined:\n result = \"\";\n }\n\n let totalTime,\n toFirstToken,\n tokensPerSecond,\n promptTokens,\n generatedTokens,\n thinkingTokens;\n if (interaction.start != undefined && interaction.results.length > 0) {\n const firstGroup = interaction.results[0];\n const firstItem = firstGroup ? firstGroup[0] : undefined;\n toFirstToken = firstItem\n ? firstItem.timestamp - interaction.start.timestamp\n : undefined;\n }\n if (interaction.end != undefined) {\n totalTime = interaction.end.timestamp - interaction.start.timestamp;\n promptTokens = interaction.end.promptTokens;\n generatedTokens = interaction.end.generatedTokens;\n thinkingTokens = interaction.end.thinkingTokens;\n if (toFirstToken != undefined) {\n tokensPerSecond =\n (generatedTokens + thinkingTokens) /\n ((totalTime - toFirstToken) / 1000);\n }\n } else {\n const lastGroup = interaction.results[interaction.results.length - 1];\n const lastItem = lastGroup ? lastGroup[lastGroup.length - 1] : undefined;\n totalTime = lastItem\n ? lastItem.timestamp - interaction.start.timestamp\n : undefined;\n }\n\n let costBreakdown: CostBreakdown | null = null;\n if (\n interaction.end?.usage &&\n interaction.start?.provider &&\n interaction.start?.options?.model\n ) {\n costBreakdown = calculateRequestCost(\n interaction.start.provider,\n interaction.start.options.model,\n interaction.end.usage,\n );\n }\n\n return {\n result,\n type,\n totalTime,\n toFirstToken,\n tokensPerSecond,\n promptTokens,\n generatedTokens,\n thinkingTokens,\n costBreakdown,\n };\n }, [interaction]);\n}\n","import {\n LLMInteractionCancel,\n LLMInteractionError,\n LLMInteractionSuccess,\n} from \"core\";\nimport Expander from \"./Expander\";\nimport Message from \"./Message\";\n\nexport interface StartProps {\n item: LLMInteractionSuccess | LLMInteractionError | LLMInteractionCancel;\n}\n\nexport default function Start({ item }: StartProps) {\n //
    \n switch (item.kind) {\n case \"success\":\n return <>;\n case \"error\":\n return (\n
    \n \n Error\n \n {item.message}\n
    \n );\n break;\n case \"cancel\":\n return (\n
    \n \n Cancelled\n \n
    \n );\n }\n}\n","import {\n AssistantChatMessage,\n ChatMessage,\n ThinkingChatMessage,\n UserChatMessage,\n} from \"core\";\nimport { memo } from \"react\";\n\nexport interface MessageProps {\n message: ChatMessage;\n}\n\nfunction renderMessageText(text: string) {\n return {text};\n}\n\nexport function renderMessageRole(role: ChatMessage[\"role\"]) {\n return (\n
    \n \n {role}\n \n
    \n );\n}\n\nfunction renderMessageContent(\n message: AssistantChatMessage | UserChatMessage | ThinkingChatMessage,\n) {\n if (typeof message.content == \"string\") {\n return renderMessageText(message.content);\n } else {\n return message.content.map((part) => {\n if (part.type == \"text\") {\n return renderMessageText(part.text);\n } else {\n return
    Image: {part.imageUrl.url}
    ;\n }\n });\n }\n}\n\nexport function renderMessage(message: ChatMessage, includeRole: boolean) {\n switch (message.role) {\n case \"assistant\":\n return (\n <>\n {includeRole ? renderMessageRole(message.role) : \"\"}\n {message.toolCalls\n ? message.toolCalls.map((toolCall) => (\n
    \n                  Tool call: {JSON.stringify(toolCall, undefined, 2)}\n                
    \n ))\n : \"\"}\n {renderMessageContent(message)}\n \n );\n break;\n case \"thinking\":\n return (\n <>\n {includeRole ? renderMessageRole(message.role) : \"\"}\n {message.toolCalls\n ? message.toolCalls.map((toolCall) => (\n
    Tool call: {JSON.stringify(toolCall, undefined, 2)}
    \n ))\n : \"\"}\n {renderMessageContent(message)}\n {message.redactedThinking && (\n
    Redacted Thinking: {message.redactedThinking}
    \n )}\n {message.signature &&
    Signature: {message.signature}
    }\n \n );\n break;\n case \"user\":\n return (\n <>\n {includeRole ? renderMessageRole(message.role) : \"\"}\n {renderMessageContent(message)}\n \n );\n break;\n case \"system\":\n return (\n <>\n {includeRole ? renderMessageRole(message.role) : \"\"}\n {renderMessageText(message.content)}\n \n );\n case \"tool\":\n return (\n <>\n {includeRole ? renderMessageRole(message.role) : \"\"}\n
    Tool Call ID: {message.toolCallId}
    \n {renderMessageText(message.content)}\n \n );\n break;\n }\n}\n\nconst Message = memo(function Message({ message }: MessageProps) {\n return renderMessage(message, true);\n});\n\nexport default Message;\n","import { memo } from \"react\";\nimport { LLMResult } from \"../../hooks/useLLMLog\";\nimport { renderMessage } from \"./Message\";\n\ninterface ResultProps {\n result: LLMResult;\n prevResult: LLMResult | undefined;\n}\n\nconst Result = memo(function Result({ result, prevResult }: ResultProps) {\n switch (result.kind) {\n case \"chunk\":\n return {result.chunk};\n break;\n case \"message\":\n switch (result.message.role) {\n case \"assistant\":\n case \"thinking\":\n const includeRole = !(\n prevResult?.kind === \"message\" &&\n prevResult.message.role === result.message.role\n );\n return renderMessage(result.message, includeRole);\n default:\n // We don't expect anything but AssistantChatMessages and ThinkingChatMessages in the reply\n // from the LLM output, but log them if they do occur.\n return (\n
    \n {renderMessage(result.message, true)}\n
    \n );\n }\n break;\n }\n});\n\nexport default Result;\n","import { memo } from \"react\";\nimport { LLMResult } from \"../../hooks/useLLMLog\";\nimport Result from \"./Result\";\n\ninterface ResultGroupProps {\n group: LLMResult[];\n}\n\nconst ResultGroup = memo(function ResultGroup({ group }: ResultGroupProps) {\n return (\n <>\n {group.map((result, i) => (\n \n ))}\n \n );\n});\n\nexport default ResultGroup;\n","import { ChevronDownIcon, ChevronRightIcon } from \"@heroicons/react/24/outline\";\nimport { ReactNode, useState } from \"react\";\n\nexport interface ExpanderProps {\n label: string;\n children: ReactNode;\n}\n\nexport default function Expander({ label, children }: ExpanderProps) {\n const [expanded, setExpanded] = useState(false);\n\n return (\n
    \n
    setExpanded(!expanded)}>\n {expanded ? (\n \n ) : (\n \n )}{\" \"}\n {label}\n
    \n {expanded &&
    {children}
    }\n
    \n );\n}\n","import {\n LLMInteractionStartChat,\n LLMInteractionStartComplete,\n LLMInteractionStartFim,\n} from \"core\";\nimport Expander from \"./Expander\";\nimport Message from \"./Message\";\n\nexport interface StartProps {\n item:\n | LLMInteractionStartChat\n | LLMInteractionStartComplete\n | LLMInteractionStartFim;\n}\n\nexport default function Start({ item }: StartProps) {\n return (\n
    \n {(() => {\n switch (item.kind) {\n case \"startChat\":\n return (\n <>\n \n
    \n {item.messages.map((message, i) => (\n \n ))}\n
    \n
    \n \n
    \n                    {JSON.stringify(item.options, undefined, 2)}\n                  
    \n
    \n \n );\n break;\n case \"startComplete\":\n return (\n <>\n \n
    {item.prompt}
    \n
    \n \n
    \n                    {JSON.stringify(item.options, undefined, 2)}\n                  
    \n
    \n \n );\n break;\n case \"startFim\":\n return (\n <>\n \n
    {item.prefix}
    \n
    \n \n
    {item.suffix}
    \n
    \n \n
    \n                    {JSON.stringify(item.options, undefined, 2)}\n                  
    \n
    \n \n );\n }\n })()}\n
    \n );\n}\n","import {\n CheckIcon,\n EllipsisHorizontalIcon,\n StopCircleIcon,\n XCircleIcon,\n} from \"@heroicons/react/24/outline\";\nimport { LLMInteraction } from \"../../hooks/useLLMLog\";\n\nexport interface StatusIconProps {\n interaction: LLMInteraction;\n}\n\nexport default function StatusIcon({ interaction }: StatusIconProps) {\n if (interaction.end) {\n switch (interaction.end.kind) {\n case \"success\":\n return (\n \n );\n case \"cancel\":\n return (\n \n );\n case \"error\":\n return (\n \n );\n }\n } else {\n return (\n \n );\n }\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { LLMInteraction } from \"../../hooks/useLLMLog\";\nimport useLLMSummary from \"../../hooks/useLLMSummary\";\nimport End from \"./End\";\nimport ResultGroup from \"./ResultGroup\";\nimport Start from \"./Start\";\nimport StatusIcon from \"./StatusIcon\";\n\nexport interface DetailsProps {\n interaction: LLMInteraction;\n}\n\nfunction renderCell(children: React.ReactNode) {\n return (\n
    \n {children}\n
    \n );\n}\n\n/**\n * A cell of statistics at the top of the details view\n */\nfunction Cell({\n label,\n value,\n format,\n}: {\n label: string;\n value: any;\n format?: (value: any) => string;\n}) {\n return renderCell(\n value != undefined ? `${label}: ${format ? format(value) : value}` : \"\",\n );\n}\n\n/**\n * A cell of statistics at the top of the details view with custom content\n */\nfunction CustomCell({ children }: { children: React.ReactNode }) {\n return renderCell(children);\n}\n\nfunction formatSeconds(milliseconds: number) {\n return (milliseconds / 1000).toFixed(2) + \"s\";\n}\n\nexport default function Details({ interaction }: DetailsProps) {\n const scrollTop = useRef(null);\n const lastResult = useRef(null);\n const summary = useLLMSummary(interaction);\n const [isAtBottom, setIsAtBottom] = useState(true);\n\n // Handler to check if user is at the bottom\n function handleScroll() {\n const elt = scrollTop.current;\n if (!elt) {\n return;\n }\n // Allow a small threshold for floating point errors\n const threshold = 5;\n setIsAtBottom(\n elt.scrollHeight - elt.scrollTop - elt.clientHeight < threshold,\n );\n }\n\n useEffect(() => {\n if (interaction.end) {\n return;\n }\n\n const last = interaction.results[interaction.results.length - 1];\n if (last != lastResult.current) {\n lastResult.current = last;\n if (isAtBottom) {\n const lastChild = scrollTop.current?.lastChild;\n if (lastChild) {\n (lastChild as HTMLElement).scrollIntoView({\n behavior: \"auto\",\n block: \"end\",\n });\n }\n }\n }\n }, [interaction, isAtBottom]);\n\n return (\n
    \n
    \n
    \n \n \n Result: \n {summary.result}\n \n
    \n
    \n \n \n \n
    \n
    \n \n \n v.toFixed(1)}\n >\n
    \n {/* {summary.costBreakdown && (\n
    \n            {summary.costBreakdown.breakdown}\n          
    \n )} */}\n
    \n \n {interaction.start ? : \"\"}\n
    \n {interaction.results.map((group, i) => {\n return ;\n })}\n
    \n {interaction.end ? : \"\"}\n
    \n
    \n );\n}\n","import { LLMInteraction } from \"../../hooks/useLLMLog\";\nimport useLLMSummary from \"../../hooks/useLLMSummary\";\nimport StatusIcon from \"./StatusIcon\";\n\nexport interface ListItemProps {\n interactionId: string;\n interaction: LLMInteraction;\n selected: boolean;\n onClickInteraction: (interactionId: string) => void;\n}\n\nfunction formatTimestamp(timestamp: number) {\n const date = new Date(timestamp);\n\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n\n // Format seconds with one decimal place\n const secondsFormatted = `${seconds}.${Math.floor(milliseconds / 100)}`;\n\n return `${hours}:${minutes}:${secondsFormatted.padStart(4, \"0\")}`;\n}\n\nexport default function ListItem({\n interactionId,\n interaction,\n onClickInteraction,\n selected,\n}: ListItemProps) {\n const summary = useLLMSummary(interaction);\n\n return (\n onClickInteraction(interactionId)}\n >\n {\" \"}\n \n {interaction.start ? formatTimestamp(interaction.start.timestamp) : \"\"}\n \n {summary.type}\n \n );\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { LLMLog } from \"../../hooks/useLLMLog\";\nimport ListItem from \"./ListItem\";\n\nexport interface ListProps {\n llmLog: LLMLog;\n onClickInteraction: (interactionId: string) => void;\n}\n\nexport default function List({ llmLog, onClickInteraction }: ListProps) {\n const topRef = useRef(null);\n const [selectedId, setSelectedId] = useState(undefined);\n\n const lastSize = useRef(0);\n\n useEffect(() => {\n if (llmLog.order.length != lastSize.current) {\n setSelectedId(llmLog.order[llmLog.order.length - 1]);\n onClickInteraction(llmLog.order[llmLog.order.length - 1]);\n\n lastSize.current = llmLog.order.length;\n const lastChild = topRef.current?.lastChild;\n if (lastChild) {\n (lastChild as HTMLElement).scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n });\n }\n }\n });\n\n return (\n \n {llmLog.order.map((id) => (\n {\n topRef.current?.focus();\n setSelectedId(interactionId);\n onClickInteraction(interactionId);\n }}\n selected={id == selectedId}\n >\n ))}\n \n );\n}\n","import {\n calculateRequestCost,\n CostBreakdown,\n} from \"core/llm/utils/calculateRequestCost\";\nimport { useMemo } from \"react\";\nimport { LLMLog } from \"./useLLMLog\";\n\nexport interface TotalUsage {\n totalPromptTokens: number;\n totalGeneratedTokens: number;\n totalThinkingTokens: number;\n totalCachedTokens: number;\n totalCacheWriteTokens: number;\n totalInteractions: number;\n totalSuccessfulInteractions: number;\n totalErrorInteractions: number;\n totalCancelledInteractions: number;\n totalCost: number;\n costBreakdowns: CostBreakdown[];\n}\n\n/**\n * Hook to calculate total usage across all interactions in the LLM log\n */\nexport default function useTotalUsage(llmLog: LLMLog): TotalUsage {\n return useMemo(() => {\n let totalPromptTokens = 0;\n let totalGeneratedTokens = 0;\n let totalThinkingTokens = 0;\n let totalCachedTokens = 0;\n let totalCacheWriteTokens = 0;\n let totalInteractions = 0;\n let totalSuccessfulInteractions = 0;\n let totalErrorInteractions = 0;\n let totalCancelledInteractions = 0;\n let totalCost = 0;\n const costBreakdowns: CostBreakdown[] = [];\n\n // Iterate through all interactions\n for (const interaction of llmLog.interactions.values()) {\n if (interaction.end) {\n totalInteractions++;\n\n // Add basic token counts\n totalPromptTokens += interaction.end.promptTokens || 0;\n totalGeneratedTokens += interaction.end.generatedTokens || 0;\n totalThinkingTokens += interaction.end.thinkingTokens || 0;\n\n // Add cache-related tokens from usage if available\n if (interaction.end.usage) {\n const usage = interaction.end.usage;\n totalCachedTokens += usage.promptTokensDetails?.cachedTokens || 0;\n totalCacheWriteTokens +=\n usage.promptTokensDetails?.cacheWriteTokens || 0;\n\n // Calculate cost if we have the necessary information\n if (\n interaction.start?.provider &&\n interaction.start?.options?.model\n ) {\n const costBreakdown = calculateRequestCost(\n interaction.start.provider,\n interaction.start.options.model,\n usage,\n );\n if (costBreakdown) {\n totalCost += costBreakdown.cost;\n costBreakdowns.push(costBreakdown);\n }\n }\n }\n\n // Count interaction outcomes\n switch (interaction.end.kind) {\n case \"success\":\n totalSuccessfulInteractions++;\n break;\n case \"error\":\n totalErrorInteractions++;\n break;\n case \"cancel\":\n totalCancelledInteractions++;\n break;\n }\n }\n }\n\n return {\n totalPromptTokens,\n totalGeneratedTokens,\n totalThinkingTokens,\n totalCachedTokens,\n totalCacheWriteTokens,\n totalInteractions,\n totalSuccessfulInteractions,\n totalErrorInteractions,\n totalCancelledInteractions,\n totalCost,\n costBreakdowns,\n };\n }, [llmLog]);\n}\n","import { calculateRequestCost } from \"core/llm/utils/calculateRequestCost\";\nimport React, { useMemo, useState } from \"react\";\nimport { LLMLog } from \"../../hooks/useLLMLog\";\nimport useTotalUsage from \"../../hooks/useTotalUsage\";\n\ninterface TotalUsageProps {\n llmLog: LLMLog;\n}\n\nconst StatCard: React.FC<{ label: string; value: number; color?: string }> = ({\n label,\n value,\n color = \"var(--vscode-foreground)\",\n}) => (\n
    \n
    \n {label}\n
    \n
    \n {value.toLocaleString()}\n
    \n
    \n);\n\nconst CostChart: React.FC<{ llmLog: LLMLog }> = ({ llmLog }) => {\n const chartData = useMemo(() => {\n let cumulativeCost = 0;\n const dataPoints: { interaction: number; cost: number }[] = [];\n\n llmLog.order.forEach((id, index) => {\n const interaction = llmLog.interactions.get(id);\n\n // Calculate cost for this interaction if we have the necessary data\n if (\n interaction?.end?.usage &&\n interaction.start?.provider &&\n interaction.start?.options?.model\n ) {\n const costBreakdown = calculateRequestCost(\n interaction.start.provider,\n interaction.start.options.model,\n interaction.end.usage,\n );\n if (costBreakdown) {\n cumulativeCost += costBreakdown.cost;\n }\n }\n\n dataPoints.push({ interaction: index + 1, cost: cumulativeCost });\n });\n\n return dataPoints;\n }, [llmLog.order, llmLog.interactions]);\n\n if (chartData.length === 0 || chartData[chartData.length - 1].cost === 0) {\n return null;\n }\n\n const maxCost = Math.max(...chartData.map((d) => d.cost));\n const maxInteraction = chartData.length;\n const chartWidth = 400;\n const chartHeight = 200;\n const padding = 40;\n\n const xScale = (interaction: number) =>\n ((interaction - 1) / (maxInteraction - 1)) * (chartWidth - 2 * padding) +\n padding;\n\n const yScale = (cost: number) =>\n chartHeight - padding - (cost / maxCost) * (chartHeight - 2 * padding);\n\n const pathData = chartData\n .map(\n (d, i) =>\n `${i === 0 ? \"M\" : \"L\"} ${xScale(d.interaction)} ${yScale(d.cost)}`,\n )\n .join(\" \");\n\n return (\n
    \n

    \n Cumulative Cost Over Interactions\n

    \n
    \n \n {/* Grid lines */}\n \n \n \n \n \n \n\n {/* Chart area background */}\n \n\n {/* Cost line */}\n \n\n {/* Data points */}\n {chartData.map((d, i) => (\n \n ))}\n\n {/* Y-axis labels */}\n {[0, 0.25, 0.5, 0.75, 1].map((ratio) => {\n const cost = maxCost * ratio;\n const y = yScale(cost);\n return (\n \n \n \n ${cost.toFixed(4)}\n \n \n );\n })}\n\n {/* X-axis labels */}\n {[0, 0.25, 0.5, 0.75, 1].map((ratio) => {\n const interaction = Math.round(1 + ratio * (maxInteraction - 1));\n const x = xScale(interaction);\n return (\n \n \n \n {interaction}\n \n \n );\n })}\n\n {/* Axis labels */}\n \n Interaction Number\n \n \n Cumulative Cost ($)\n \n \n
    \n
    \n );\n};\n\nconst TotalUsage: React.FC = ({ llmLog }) => {\n const totalUsage = useTotalUsage(llmLog);\n const [showCostBreakdown, setShowCostBreakdown] = useState(false);\n\n return (\n
    \n
    \n

    \n Total Usage Summary\n

    \n
    \n {totalUsage.totalCost > 0 && (\n setShowCostBreakdown(!showCostBreakdown)}\n className=\"cursor-pointer text-lg font-semibold text-[color:var(--vscode-charts-green)] hover:text-[color:var(--vscode-charts-blue)]\"\n >\n ${totalUsage.totalCost.toFixed(6)}\n \n )}\n
    \n {totalUsage.totalInteractions} interactions\n
    \n
    \n
    \n\n {showCostBreakdown && totalUsage.costBreakdowns.length > 0 && (\n
    \n

    \n Cost Breakdown\n

    \n
    \n {totalUsage.costBreakdowns.map((breakdown, index) => (\n \n
    \n                  {breakdown.breakdown}\n                
    \n
    \n ))}\n
    \n
    \n )}\n\n
    \n \n \n \n \n
    \n\n {totalUsage.totalCost > 0 && (\n <>\n \n
    \n
    \n
    \n Total Cost\n
    \n
    \n ${totalUsage.totalCost.toFixed(6)}\n
    \n
    \n {totalUsage.costBreakdowns.length} cost calculations\n
    \n
    \n
    \n \n )}\n\n {totalUsage.totalCacheWriteTokens > 0 && (\n
    \n \n
    \n
    \n Cache Hit Rate:{\" \"}\n {totalUsage.totalPromptTokens > 0\n ? (\n (totalUsage.totalCachedTokens /\n totalUsage.totalPromptTokens) *\n 100\n ).toFixed(1)\n : \"0\"}\n %\n
    \n
    \n
    \n )}\n\n
    \n
    \n
    \n {totalUsage.totalSuccessfulInteractions}\n
    \n
    \n Success\n
    \n
    \n
    \n
    \n {totalUsage.totalErrorInteractions}\n
    \n
    \n Error\n
    \n
    \n
    \n
    \n {totalUsage.totalCancelledInteractions}\n
    \n
    \n Cancelled\n
    \n
    \n
    \n \n );\n};\n\nexport default TotalUsage;\n","import { useState } from \"react\";\nimport useLLMLog from \"../../hooks/useLLMLog\";\nimport Details from \"./Details\";\nimport List from \"./List\";\nimport TotalUsage from \"./TotalUsage\";\n\nexport default function Layout() {\n const llmLog = useLLMLog();\n\n const [selectedId, setSelectedId] = useState(undefined);\n const [showTotalUsage, setShowTotalUsage] = useState(false);\n\n const interaction = selectedId\n ? llmLog.interactions.get(selectedId)\n : undefined;\n\n return llmLog.loading ? (\n
    Loading...
    \n ) : (\n
    \n
    \n {/*
    \n setShowTotalUsage(true)}\n className=\"float-right cursor-pointer border-none bg-transparent text-sm text-[color:var(--vscode-textLink-foreground)] underline hover:text-[color:var(--vscode-textLink-activeForeground)]\"\n >\n View Total Usage Summary\n \n
    */}\n
    \n {\n setSelectedId(interactionId);\n }}\n >\n {interaction && (\n
    \n )}\n
    \n
    \n\n {/* Full-screen popover for TotalUsage */}\n {showTotalUsage && (\n
    \n
    \n {/* Close button */}\n setShowTotalUsage(false)}\n className=\"absolute right-4 top-4 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-[color:var(--vscode-button-background)] text-[color:var(--vscode-button-foreground)] transition-colors hover:bg-[color:var(--vscode-button-hoverBackground)]\"\n >\n ×\n \n\n {/* Content container with scroll */}\n
    \n \n
    \n
    \n
    \n )}\n
    \n );\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport Layout from \"./components/console/Layout\";\nimport \"./indexConsole.css\";\n\nvoid (async () => {\n ReactDOM.createRoot(document.getElementById(\"root\") as HTMLElement).render(\n \n \n ,\n );\n})();\n"],"names":["MAX_GROUP_LENGTH","appendItemToInteractionResult","interaction","item","lastGroup","copyInteractionForMutation","oldInteraction","oldLastGroup","newResults","appendItemsToLLMLog","oldLog","items","oldInteractions","newInteractions","order","interactionsAdded","interactionId","removeInteractionFromLLMLog","llmLog","newOrder","id","useLLMLog","dispatchLlmLog","useReducer","message","useEffect","uuid","uuidv4","onMessage","event","calculateAnthropicCost","model","usage","normalizedModel","pricing","sortedKeys","a","b","modelPricing","prefix","inputCost","outputCost","breakdownParts","cacheCost","cachedTokens","cacheWriteTokens","cacheWriteCost","cacheReadCost","totalCost","breakdown","calculateOpenAICost","calculateRequestCost","provider","useLLMSummary","useMemo","type","result","_a","totalTime","toFirstToken","tokensPerSecond","promptTokens","generatedTokens","thinkingTokens","firstGroup","firstItem","lastItem","costBreakdown","_b","_c","_e","_d","Start","jsx","Fragment","renderMessageText","text","renderMessageRole","role","renderMessageContent","part","renderMessage","includeRole","jsxs","toolCall","Message","memo","Result","prevResult","ResultGroup","group","i","Expander","label","children","expanded","setExpanded","useState","ChevronDownIcon","ChevronRightIcon","StatusIcon","CheckIcon","StopCircleIcon","XCircleIcon","EllipsisHorizontalIcon","renderCell","Cell","value","format","CustomCell","formatSeconds","milliseconds","Details","scrollTop","useRef","lastResult","summary","isAtBottom","setIsAtBottom","handleScroll","elt","last","lastChild","v","End","formatTimestamp","timestamp","date","hours","minutes","seconds","secondsFormatted","ListItem","onClickInteraction","selected","List","topRef","selectedId","setSelectedId","lastSize","useTotalUsage","totalPromptTokens","totalGeneratedTokens","totalThinkingTokens","totalCachedTokens","totalCacheWriteTokens","totalInteractions","totalSuccessfulInteractions","totalErrorInteractions","totalCancelledInteractions","costBreakdowns","StatCard","color","CostChart","chartData","cumulativeCost","dataPoints","index","maxCost","d","maxInteraction","chartWidth","chartHeight","padding","xScale","yScale","cost","pathData","ratio","y","x","TotalUsage","totalUsage","showCostBreakdown","setShowCostBreakdown","Layout","showTotalUsage","setShowTotalUsage","ReactDOM","React"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js b/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js new file mode 100644 index 000000000000..362af9591472 --- /dev/null +++ b/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js @@ -0,0 +1,3 @@ +import{_ as r,l as t,H as o,e as i,I as s}from"./index.js";import{p as f}from"./treemap-75Q7IDZK.js";import"./XCircleIcon.js";import"./_baseUniq.js";import"./_basePickBy.js";import"./clone.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="4eda93c2-2d8a-4f42-88cf-4e7e34fdd451",e._sentryDebugIdIdentifier="sentry-dbid-4eda93c2-2d8a-4f42-88cf-4e7e34fdd451")})()}catch{}var g={parse:r(async e=>{const a=await f("info",e);t.debug(a)},"parse")},l={version:s.version+""},p=r(()=>l.version,"getVersion"),c={getVersion:p},u=r((e,a,d)=>{t.debug(`rendering info diagram +`+e);const n=o(a);i(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${d}`)},"draw"),b={draw:u},I={parser:g,db:c,renderer:b};export{I as diagram}; +//# sourceMappingURL=infoDiagram-STP46IZ2.js.map diff --git a/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js.map b/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js.map new file mode 100644 index 000000000000..38473674c741 --- /dev/null +++ b/extensions/continue/gui/assets/infoDiagram-STP46IZ2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"infoDiagram-STP46IZ2.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-STP46IZ2.mjs"],"sourcesContent":["import {\n package_default\n} from \"./chunk-57QY23SG.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n configureSvgSize\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/info/infoParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"info\", input);\n log.debug(ast);\n }, \"parse\")\n};\n\n// src/diagrams/info/infoDb.ts\nvar DEFAULT_INFO_DB = {\n version: package_default.version + (true ? \"\" : \"-tiny\")\n};\nvar getVersion = /* @__PURE__ */ __name(() => DEFAULT_INFO_DB.version, \"getVersion\");\nvar db = {\n getVersion\n};\n\n// src/diagrams/info/infoRenderer.ts\nvar draw = /* @__PURE__ */ __name((text, id, version) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version}`);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/info/infoDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer\n};\nexport {\n diagram\n};\n"],"names":["parser","__name","input","ast","parse","log","DEFAULT_INFO_DB","package_default","getVersion","db","draw","text","id","version","svg","selectSvgElement","configureSvgSize","renderer","diagram"],"mappings":"wuBAgBA,IAAIA,EAAS,CACX,MAAuBC,EAAO,MAAOC,GAAU,CAC7C,MAAMC,EAAM,MAAMC,EAAM,OAAQF,CAAK,EACrCG,EAAI,MAAMF,CAAG,CACf,EAAG,OAAO,CACZ,EAGIG,EAAkB,CACpB,QAASC,EAAgB,QAAkB,EAC7C,EACIC,EAA6BP,EAAO,IAAMK,EAAgB,QAAS,YAAY,EAC/EG,EAAK,CACP,WAAAD,CACF,EAGIE,EAAuBT,EAAO,CAACU,EAAMC,EAAIC,IAAY,CACvDR,EAAI,MAAM;AAAA,EAA6BM,CAAI,EAC3C,MAAMG,EAAMC,EAAiBH,CAAE,EAC/BI,EAAiBF,EAAK,IAAK,IAAK,EAAI,EACtBA,EAAI,OAAO,GAAG,EACtB,OAAO,MAAM,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,IAAK,EAAE,EAAE,KAAK,QAAS,SAAS,EAAE,KAAK,YAAa,EAAE,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAK,IAAID,CAAO,EAAE,CACpJ,EAAG,MAAM,EACLI,EAAW,CAAE,KAAAP,CAAI,EAGjBQ,EAAU,CACZ,OAAAlB,EACA,GAAAS,EACA,SAAAQ,CACF","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/init.js b/extensions/continue/gui/assets/init.js new file mode 100644 index 000000000000..a867ec0c071d --- /dev/null +++ b/extensions/continue/gui/assets/init.js @@ -0,0 +1,2 @@ +(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9b901efe-858f-4692-ab19-32faca48422c",e._sentryDebugIdIdentifier="sentry-dbid-9b901efe-858f-4692-ab19-32faca48422c")})()}catch{}function f(e,n){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(n).domain(e);break}return this}export{f as i}; +//# sourceMappingURL=init.js.map diff --git a/extensions/continue/gui/assets/init.js.map b/extensions/continue/gui/assets/init.js.map new file mode 100644 index 000000000000..7cf222970abe --- /dev/null +++ b/extensions/continue/gui/assets/init.js.map @@ -0,0 +1 @@ +{"version":3,"file":"init.js","sources":["../../node_modules/d3-scale/src/init.js"],"sourcesContent":["export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n"],"names":["initRange","domain","range"],"mappings":"uiBAAO,SAASA,EAAUC,EAAQC,EAAO,CACvC,OAAQ,UAAU,OAAM,CACtB,IAAK,GAAG,MACR,IAAK,GAAG,KAAK,MAAMD,CAAM,EAAG,MAC5B,QAAS,KAAK,MAAMC,CAAK,EAAE,OAAOD,CAAM,EAAG,KAC/C,CACE,OAAO,IACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js b/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js new file mode 100644 index 000000000000..ac2b3d855029 --- /dev/null +++ b/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js @@ -0,0 +1,140 @@ +import{a as gt,g as lt,f as mt,d as xt}from"./chunk-TZMSLE5B.js";import{g as kt}from"./chunk-FMBD7UC4.js";import{_ as r,g as bt,s as _t,a as vt,b as wt,q as Tt,p as St,c as V,d as X,e as $t,y as Et}from"./index.js";import{d as et}from"./arc.js";import"./XCircleIcon.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="0c007607-81b3-46cf-824a-c1e939bb735e",t._sentryDebugIdIdentifier="sentry-dbid-0c007607-81b3-46cf-824a-c1e939bb735e")})()}catch{}var U=(function(){var t=r(function(h,i,a,l){for(a=a||{},l=h.length;l--;a[h[l]]=i);return a},"o"),e=[6,8,10,11,12,14,16,17,18],s=[1,9],c=[1,10],n=[1,11],f=[1,12],u=[1,13],y=[1,14],g={trace:r(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:r(function(i,a,l,d,p,o,v){var k=o.length-1;switch(p){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:d.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),d.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),d.setAccDescription(this.$);break;case 12:d.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:d.addTask(o[k-1],o[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:s,12:c,14:n,16:f,17:u,18:y},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:s,12:c,14:n,16:f,17:u,18:y},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:r(function(i,a){if(a.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=a,l}},"parseError"),parse:r(function(i){var a=this,l=[0],d=[],p=[null],o=[],v=this.table,k="",C=0,K=0,dt=2,Q=1,yt=o.slice.call(arguments,1),b=Object.create(this.lexer),P={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(P.yy[O]=this.yy[O]);b.setInput(i,P.yy),P.yy.lexer=b,P.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var Y=b.yylloc;o.push(Y);var ft=b.options&&b.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,p.length=p.length-w,o.length=o.length-w}r(pt,"popStack");function D(){var w;return w=d.pop()||b.lex()||Q,typeof w!="number"&&(w instanceof Array&&(d=w,w=d.pop()),w=a.symbols_[w]||w),w}r(D,"lex");for(var _,A,T,q,F={},N,E,tt,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((_===null||typeof _>"u")&&(_=D()),T=v[A]&&v[A][_]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>dt&&z.push("'"+this.terminals_[N]+"'");b.showPosition?H="Parse error on line "+(C+1)+`: +`+b.showPosition()+` +Expecting `+z.join(", ")+", got '"+(this.terminals_[_]||_)+"'":H="Parse error on line "+(C+1)+": Unexpected "+(_==Q?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(H,{text:b.match,token:this.terminals_[_]||_,line:b.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+_);switch(T[0]){case 1:l.push(_),p.push(b.yytext),o.push(b.yylloc),l.push(T[1]),_=null,K=b.yyleng,k=b.yytext,C=b.yylineno,Y=b.yylloc;break;case 2:if(E=this.productions_[T[1]][1],F.$=p[p.length-E],F._$={first_line:o[o.length-(E||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(E||1)].first_column,last_column:o[o.length-1].last_column},ft&&(F._$.range=[o[o.length-(E||1)].range[0],o[o.length-1].range[1]]),q=this.performAction.apply(F,[k,K,C,P.yy,T[1],p,o].concat(yt)),typeof q<"u")return q;E&&(l=l.slice(0,-1*E*2),p=p.slice(0,-1*E),o=o.slice(0,-1*E)),l.push(this.productions_[T[1]][0]),p.push(F.$),o.push(F._$),tt=v[l[l.length-2]][l[l.length-1]],l.push(tt);break;case 3:return!0}}return!0},"parse")},m=(function(){var h={EOF:1,parseError:r(function(a,l){if(this.yy.parser)this.yy.parser.parseError(a,l);else throw new Error(a)},"parseError"),setInput:r(function(i,a){return this.yy=a||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:r(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:r(function(i){var a=i.length,l=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===d.length?this.yylloc.first_column:0)+d[d.length-l.length].length-l[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:r(function(i){this.unput(this.match.slice(i))},"less"),pastInput:r(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:r(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:r(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+a+"^"},"showPosition"),test_match:r(function(i,a){var l,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=i[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],l=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var o in p)this[o]=p[o];return!1}return!1},"test_match"),next:r(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,a,l,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),o=0;oa[0].length)){if(a=l,d=o,this.options.backtrack_lexer){if(i=this.test_match(l,p[o]),i!==!1)return i;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(i=this.test_match(a,p[d]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:r(function(){var a=this.next();return a||this.lex()},"lex"),begin:r(function(a){this.conditionStack.push(a)},"begin"),popState:r(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:r(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:r(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:r(function(a){this.begin(a)},"pushState"),stateStackSize:r(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:r(function(a,l,d,p){switch(d){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return h})();g.lexer=m;function x(){this.yy={}}return r(x,"Parser"),x.prototype=g,g.Parser=x,new x})();U.parser=U;var Mt=U,R="",Z=[],L=[],B=[],Ct=r(function(){Z.length=0,L.length=0,R="",B.length=0,Et()},"clear"),It=r(function(t){R=t,Z.push(t)},"addSection"),Pt=r(function(){return Z},"getSections"),At=r(function(){let t=it();const e=100;let s=0;for(;!t&&s{s.people&&t.push(...s.people)}),[...new Set(t)].sort()},"updateActors"),Rt=r(function(t,e){const s=e.substr(1).split(":");let c=0,n=[];s.length===1?(c=Number(s[0]),n=[]):(c=Number(s[0]),n=s[1].split(","));const f=n.map(y=>y.trim()),u={section:R,type:R,people:f,task:t,score:c};B.push(u)},"addTask"),Vt=r(function(t){const e={section:R,type:R,description:t,task:t,classes:[]};L.push(e)},"addTaskOrg"),it=r(function(){const t=r(function(s){return B[s].processed},"compileTask");let e=!0;for(const[s,c]of B.entries())t(s),e=e&&c.processed;return e},"compileTasks"),Lt=r(function(){return Ft()},"getActors"),nt={getConfig:r(()=>V().journey,"getConfig"),clear:Ct,setDiagramTitle:St,getDiagramTitle:Tt,setAccTitle:wt,getAccTitle:vt,setAccDescription:_t,getAccDescription:bt,addSection:It,getSections:Pt,getTasks:At,addTask:Rt,addTaskOrg:Vt,getActors:Lt},Bt=r(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + font-family: ${t.fontFamily}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } + ${kt()} +`,"getStyles"),jt=Bt,J=r(function(t,e){return xt(t,e)},"drawRect"),Nt=r(function(t,e){const c=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=t.append("g");n.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function f(g){const m=et().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}r(f,"smile");function u(g){const m=et().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);g.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}r(u,"sad");function y(g){g.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return r(y,"ambivalent"),e.score>3?f(n):e.score<3?u(n):y(n),c},"drawFace"),ot=r(function(t,e){const s=t.append("circle");return s.attr("cx",e.cx),s.attr("cy",e.cy),s.attr("class","actor-"+e.pos),s.attr("fill",e.fill),s.attr("stroke",e.stroke),s.attr("r",e.r),s.class!==void 0&&s.attr("class",s.class),e.title!==void 0&&s.append("title").text(e.title),s},"drawCircle"),ct=r(function(t,e){return mt(t,e)},"drawText"),zt=r(function(t,e){function s(n,f,u,y,g){return n+","+f+" "+(n+u)+","+f+" "+(n+u)+","+(f+y-g)+" "+(n+u-g*1.2)+","+(f+y)+" "+n+","+(f+y)}r(s,"genPoints");const c=t.append("polygon");c.attr("points",s(e.x,e.y,50,20,7)),c.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,ct(t,e)},"drawLabel"),Wt=r(function(t,e,s){const c=t.append("g"),n=lt();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=s.width*e.taskCount+s.diagramMarginX*(e.taskCount-1),n.height=s.height,n.class="journey-section section-type-"+e.num,n.rx=3,n.ry=3,J(c,n),ht(s)(e.text,c,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+e.num},s,e.colour)},"drawSection"),rt=-1,Ot=r(function(t,e,s){const c=e.x+s.width/2,n=t.append("g");rt++,n.append("line").attr("id","task"+rt).attr("x1",c).attr("y1",e.y).attr("x2",c).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Nt(n,{cx:c,cy:300+(5-e.score)*30,score:e.score});const u=lt();u.x=e.x,u.y=e.y,u.fill=e.fill,u.width=s.width,u.height=s.height,u.class="task task-type-"+e.num,u.rx=3,u.ry=3,J(n,u);let y=e.x+14;e.people.forEach(g=>{const m=e.actors[g].color,x={cx:y,cy:e.y,r:7,fill:m,stroke:"#000",title:g,pos:e.actors[g].position};ot(n,x),y+=10}),ht(s)(e.task,n,u.x,u.y,u.width,u.height,{class:"task"},s,e.colour)},"drawTask"),Yt=r(function(t,e){gt(t,e)},"drawBackgroundRect"),ht=(function(){function t(n,f,u,y,g,m,x,h){const i=f.append("text").attr("x",u+g/2).attr("y",y+m/2+5).style("font-color",h).style("text-anchor","middle").text(n);c(i,x)}r(t,"byText");function e(n,f,u,y,g,m,x,h,i){const{taskFontSize:a,taskFontFamily:l}=h,d=n.split(//gi);for(let p=0;p{const f=M[n].color,u={cx:20,cy:c,r:7,fill:f,stroke:"#000",pos:M[n].position};j.drawCircle(t,u);let y=t.append("text").attr("visibility","hidden").text(n);const g=y.node().getBoundingClientRect().width;y.remove();let m=[];if(g<=s)m=[n];else{const x=n.split(" ");let h="";y=t.append("text").attr("visibility","hidden"),x.forEach(i=>{const a=h?`${h} ${i}`:i;if(y.text(a),y.node().getBoundingClientRect().width>s){if(h&&m.push(h),h=i,y.text(i),y.node().getBoundingClientRect().width>s){let d="";for(const p of i)d+=p,y.text(d+"-"),y.node().getBoundingClientRect().width>s&&(m.push(d.slice(0,-1)+"-"),d=p);h=d}}else h=a}),h&&m.push(h),y.remove()}m.forEach((x,h)=>{const i={x:40,y:c+7+h*20,fill:"#666",text:x,textMargin:e.boxTextMargin??5},l=j.drawText(t,i).node().getBoundingClientRect().width;l>W&&l>e.leftMargin-l&&(W=l)}),c+=Math.max(20,m.length*20)})}r(ut,"drawActorLegend");var $=V().journey,I=0,Xt=r(function(t,e,s,c){const n=V(),f=n.journey.titleColor,u=n.journey.titleFontSize,y=n.journey.titleFontFamily,g=n.securityLevel;let m;g==="sandbox"&&(m=X("#i"+e));const x=g==="sandbox"?X(m.nodes()[0].contentDocument.body):X("body");S.init();const h=x.select("#"+e);j.initGraphics(h);const i=c.db.getTasks(),a=c.db.getDiagramTitle(),l=c.db.getActors();for(const C in M)delete M[C];let d=0;l.forEach(C=>{M[C]={color:$.actorColours[d%$.actorColours.length],position:d},d++}),ut(h),I=$.leftMargin+W,S.insert(0,0,I,Object.keys(M).length*50),Gt(h,i,0);const p=S.getBounds();a&&h.append("text").text(a).attr("x",I).attr("font-size",u).attr("font-weight","bold").attr("y",25).attr("fill",f).attr("font-family",y);const o=p.stopy-p.starty+2*$.diagramMarginY,v=I+p.stopx+2*$.diagramMarginX;$t(h,o,v,$.useMaxWidth),h.append("line").attr("x1",I).attr("y1",$.height*4).attr("x2",v-I-4).attr("y2",$.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const k=a?70:0;h.attr("viewBox",`${p.startx} -25 ${v} ${o+k}`),h.attr("preserveAspectRatio","xMinYMin meet"),h.attr("height",o+k+25)},"draw"),S={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:r(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:r(function(t,e,s,c){t[e]===void 0?t[e]=s:t[e]=c(s,t[e])},"updateVal"),updateBounds:r(function(t,e,s,c){const n=V().journey,f=this;let u=0;function y(g){return r(function(x){u++;const h=f.sequenceItems.length-u+1;f.updateVal(x,"starty",e-h*n.boxMargin,Math.min),f.updateVal(x,"stopy",c+h*n.boxMargin,Math.max),f.updateVal(S.data,"startx",t-h*n.boxMargin,Math.min),f.updateVal(S.data,"stopx",s+h*n.boxMargin,Math.max),g!=="activation"&&(f.updateVal(x,"startx",t-h*n.boxMargin,Math.min),f.updateVal(x,"stopx",s+h*n.boxMargin,Math.max),f.updateVal(S.data,"starty",e-h*n.boxMargin,Math.min),f.updateVal(S.data,"stopy",c+h*n.boxMargin,Math.max))},"updateItemBounds")}r(y,"updateFn"),this.sequenceItems.forEach(y())},"updateBounds"),insert:r(function(t,e,s,c){const n=Math.min(t,s),f=Math.max(t,s),u=Math.min(e,c),y=Math.max(e,c);this.updateVal(S.data,"startx",n,Math.min),this.updateVal(S.data,"starty",u,Math.min),this.updateVal(S.data,"stopx",f,Math.max),this.updateVal(S.data,"stopy",y,Math.max),this.updateBounds(n,u,f,y)},"insert"),bumpVerticalPos:r(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:r(function(){return this.verticalPos},"getVerticalPos"),getBounds:r(function(){return this.data},"getBounds")},G=$.sectionFills,st=$.sectionColours,Gt=r(function(t,e,s){const c=V().journey;let n="";const f=c.height*2+c.diagramMarginY,u=s+f;let y=0,g="#CCC",m="black",x=0;for(const[h,i]of e.entries()){if(n!==i.section){g=G[y%G.length],x=y%G.length,m=st[y%st.length];let l=0;const d=i.section;for(let o=h;o(M[d]&&(l[d]=M[d]),l),{});i.x=h*c.taskMargin+h*c.width+I,i.y=u,i.width=c.diagramMarginX,i.height=c.diagramMarginY,i.colour=m,i.fill=g,i.num=x,i.actors=a,j.drawTask(t,i,c),S.insert(i.x,i.y,i.x+i.width+c.taskMargin,450)}},"drawTasks"),at={setConf:Ht,draw:Xt},Dt={parser:Mt,db:nt,renderer:at,styles:jt,init:r(t=>{at.setConf(t.journey),nt.clear()},"init")};export{Dt as diagram}; +//# sourceMappingURL=journeyDiagram-BIP6EPQ6.js.map diff --git a/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js.map b/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js.map new file mode 100644 index 000000000000..c529afc0d88e --- /dev/null +++ b/extensions/continue/gui/assets/journeyDiagram-BIP6EPQ6.js.map @@ -0,0 +1 @@ +{"version":3,"file":"journeyDiagram-BIP6EPQ6.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-BIP6EPQ6.mjs"],"sourcesContent":["import {\n drawBackgroundRect,\n drawRect,\n drawText,\n getNoteRect\n} from \"./chunk-TZMSLE5B.mjs\";\nimport {\n getIconStyles\n} from \"./chunk-FMBD7UC4.mjs\";\nimport {\n clear,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/user-journey/parser/journey.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"journey\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"title\": 11, \"acc_title\": 12, \"acc_title_value\": 13, \"acc_descr\": 14, \"acc_descr_value\": 15, \"acc_descr_multiline_value\": 16, \"section\": 17, \"taskName\": 18, \"taskData\": 19, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"journey\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 11: \"title\", 12: \"acc_title\", 13: \"acc_title_value\", 14: \"acc_descr\", 15: \"acc_descr_value\", 16: \"acc_descr_multiline_value\", 17: \"section\", 18: \"taskName\", 19: \"taskData\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 13:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])],\n defaultActions: {},\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n break;\n case 6:\n return 11;\n break;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n break;\n case 8:\n this.popState();\n return \"acc_title_value\";\n break;\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n break;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n break;\n case 14:\n return 17;\n break;\n case 15:\n return 18;\n break;\n case 16:\n return 19;\n break;\n case 17:\n return \":\";\n break;\n case 18:\n return 6;\n break;\n case 19:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:journey\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar journey_default = parser;\n\n// src/diagrams/user-journey/journeyDb.js\nvar currentSection = \"\";\nvar sections = [];\nvar tasks = [];\nvar rawTasks = [];\nvar clear2 = /* @__PURE__ */ __name(function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear();\n}, \"clear\");\nvar addSection = /* @__PURE__ */ __name(function(txt) {\n currentSection = txt;\n sections.push(txt);\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(function() {\n return sections;\n}, \"getSections\");\nvar getTasks = /* @__PURE__ */ __name(function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n}, \"getTasks\");\nvar updateActors = /* @__PURE__ */ __name(function() {\n const tempActors = [];\n tasks.forEach((task) => {\n if (task.people) {\n tempActors.push(...task.people);\n }\n });\n const unique = new Set(tempActors);\n return [...unique].sort();\n}, \"updateActors\");\nvar addTask = /* @__PURE__ */ __name(function(descr, taskData) {\n const pieces = taskData.substr(1).split(\":\");\n let score = 0;\n let peeps = [];\n if (pieces.length === 1) {\n score = Number(pieces[0]);\n peeps = [];\n } else {\n score = Number(pieces[0]);\n peeps = pieces[1].split(\",\");\n }\n const peopleList = peeps.map((s) => s.trim());\n const rawTask = {\n section: currentSection,\n type: currentSection,\n people: peopleList,\n task: descr,\n score\n };\n rawTasks.push(rawTask);\n}, \"addTask\");\nvar addTaskOrg = /* @__PURE__ */ __name(function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n}, \"addTaskOrg\");\nvar compileTasks = /* @__PURE__ */ __name(function() {\n const compileTask = /* @__PURE__ */ __name(function(pos) {\n return rawTasks[pos].processed;\n }, \"compileTask\");\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n}, \"compileTasks\");\nvar getActors = /* @__PURE__ */ __name(function() {\n return updateActors();\n}, \"getActors\");\nvar journeyDb_default = {\n getConfig: /* @__PURE__ */ __name(() => getConfig().journey, \"getConfig\"),\n clear: clear2,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n getActors\n};\n\n// src/diagrams/user-journey/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n font-family: ${options.fontFamily};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor ? `fill: ${options.faceColor}` : \"fill: #FFF8DC\"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${options.fillType0 ? `fill: ${options.fillType0}` : \"\"};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0 ? `fill: ${options.fillType1}` : \"\"};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0 ? `fill: ${options.fillType2}` : \"\"};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0 ? `fill: ${options.fillType3}` : \"\"};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0 ? `fill: ${options.fillType4}` : \"\"};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0 ? `fill: ${options.fillType5}` : \"\"};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0 ? `fill: ${options.fillType6}` : \"\"};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0 ? `fill: ${options.fillType7}` : \"\"};\n }\n\n .actor-0 {\n ${options.actor0 ? `fill: ${options.actor0}` : \"\"};\n }\n .actor-1 {\n ${options.actor1 ? `fill: ${options.actor1}` : \"\"};\n }\n .actor-2 {\n ${options.actor2 ? `fill: ${options.actor2}` : \"\"};\n }\n .actor-3 {\n ${options.actor3 ? `fill: ${options.actor3}` : \"\"};\n }\n .actor-4 {\n ${options.actor4 ? `fill: ${options.actor4}` : \"\"};\n }\n .actor-5 {\n ${options.actor5 ? `fill: ${options.actor5}` : \"\"};\n }\n ${getIconStyles()}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/user-journey/journeyRenderer.ts\nimport { select } from \"d3\";\n\n// src/diagrams/user-journey/svgDraw.js\nimport { arc as d3arc } from \"d3\";\nvar drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {\n return drawRect(elem, rectData);\n}, \"drawRect\");\nvar drawFace = /* @__PURE__ */ __name(function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n __name(smile, \"smile\");\n function sad(face2) {\n const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n __name(sad, \"sad\");\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n __name(ambivalent, \"ambivalent\");\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n}, \"drawFace\");\nvar drawCircle = /* @__PURE__ */ __name(function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n}, \"drawCircle\");\nvar drawText2 = /* @__PURE__ */ __name(function(elem, textData) {\n return drawText(elem, textData);\n}, \"drawText\");\nvar drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n __name(genPoints, \"genPoints\");\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText2(elem, txtObject);\n}, \"drawLabel\");\nvar drawSection = /* @__PURE__ */ __name(function(elem, section, conf2) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf2.width * section.taskCount + // width of the tasks\n conf2.diagramMarginX * (section.taskCount - 1);\n rect.height = conf2.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect2(g, rect);\n _drawTextCandidateFunc(conf2)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf2,\n section.colour\n );\n}, \"drawSection\");\nvar taskCount = -1;\nvar drawTask = /* @__PURE__ */ __name(function(elem, task, conf2) {\n const center = task.x + conf2.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf2.width;\n rect.height = conf2.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect2(g, rect);\n let xPos = task.x + 14;\n task.people.forEach((person) => {\n const colour = task.actors[person].color;\n const circle = {\n cx: xPos,\n cy: task.y,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n title: person,\n pos: task.actors[person].position\n };\n drawCircle(g, circle);\n xPos += 10;\n });\n _drawTextCandidateFunc(conf2)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf2,\n task.colour\n );\n}, \"drawTask\");\nvar drawBackgroundRect2 = /* @__PURE__ */ __name(function(elem, bounds2) {\n drawBackgroundRect(elem, bounds2);\n}, \"drawBackgroundRect\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {\n const { taskFontSize, taskFontFamily } = conf2;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar initGraphics = /* @__PURE__ */ __name(function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n}, \"initGraphics\");\nvar svgDraw_default = {\n drawRect: drawRect2,\n drawCircle,\n drawSection,\n drawText: drawText2,\n drawLabel,\n drawTask,\n drawBackgroundRect: drawBackgroundRect2,\n initGraphics\n};\n\n// src/diagrams/user-journey/journeyRenderer.ts\nvar setConf = /* @__PURE__ */ __name(function(cnf) {\n const keys = Object.keys(cnf);\n keys.forEach(function(key) {\n conf[key] = cnf[key];\n });\n}, \"setConf\");\nvar actors = {};\nvar maxWidth = 0;\nfunction drawActorLegend(diagram2) {\n const conf2 = getConfig().journey;\n const maxLabelWidth = conf2.maxLabelWidth;\n maxWidth = 0;\n let yPos = 60;\n Object.keys(actors).forEach((person) => {\n const colour = actors[person].color;\n const circleData = {\n cx: 20,\n cy: yPos,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n pos: actors[person].position\n };\n svgDraw_default.drawCircle(diagram2, circleData);\n let measureText = diagram2.append(\"text\").attr(\"visibility\", \"hidden\").text(person);\n const fullTextWidth = measureText.node().getBoundingClientRect().width;\n measureText.remove();\n let lines = [];\n if (fullTextWidth <= maxLabelWidth) {\n lines = [person];\n } else {\n const words = person.split(\" \");\n let currentLine = \"\";\n measureText = diagram2.append(\"text\").attr(\"visibility\", \"hidden\");\n words.forEach((word) => {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n measureText.text(testLine);\n const textWidth = measureText.node().getBoundingClientRect().width;\n if (textWidth > maxLabelWidth) {\n if (currentLine) {\n lines.push(currentLine);\n }\n currentLine = word;\n measureText.text(word);\n if (measureText.node().getBoundingClientRect().width > maxLabelWidth) {\n let brokenWord = \"\";\n for (const char of word) {\n brokenWord += char;\n measureText.text(brokenWord + \"-\");\n if (measureText.node().getBoundingClientRect().width > maxLabelWidth) {\n lines.push(brokenWord.slice(0, -1) + \"-\");\n brokenWord = char;\n }\n }\n currentLine = brokenWord;\n }\n } else {\n currentLine = testLine;\n }\n });\n if (currentLine) {\n lines.push(currentLine);\n }\n measureText.remove();\n }\n lines.forEach((line, index) => {\n const labelData = {\n x: 40,\n y: yPos + 7 + index * 20,\n fill: \"#666\",\n text: line,\n textMargin: conf2.boxTextMargin ?? 5\n };\n const textElement = svgDraw_default.drawText(diagram2, labelData);\n const lineWidth = textElement.node().getBoundingClientRect().width;\n if (lineWidth > maxWidth && lineWidth > conf2.leftMargin - lineWidth) {\n maxWidth = lineWidth;\n }\n });\n yPos += Math.max(20, lines.length * 20);\n });\n}\n__name(drawActorLegend, \"drawActorLegend\");\nvar conf = getConfig().journey;\nvar leftMargin = 0;\nvar draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n const configObject = getConfig();\n const titleColor = configObject.journey.titleColor;\n const titleFontSize = configObject.journey.titleFontSize;\n const titleFontFamily = configObject.journey.titleFontFamily;\n const securityLevel = configObject.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n bounds.init();\n const diagram2 = root.select(\"#\" + id);\n svgDraw_default.initGraphics(diagram2);\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getDiagramTitle();\n const actorNames = diagObj.db.getActors();\n for (const member in actors) {\n delete actors[member];\n }\n let actorPos = 0;\n actorNames.forEach((actorName) => {\n actors[actorName] = {\n color: conf.actorColours[actorPos % conf.actorColours.length],\n position: actorPos\n };\n actorPos++;\n });\n drawActorLegend(diagram2);\n leftMargin = conf.leftMargin + maxWidth;\n bounds.insert(0, 0, leftMargin, Object.keys(actors).length * 50);\n drawTasks(diagram2, tasks2, 0);\n const box = bounds.getBounds();\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", leftMargin).attr(\"font-size\", titleFontSize).attr(\"font-weight\", \"bold\").attr(\"y\", 25).attr(\"fill\", titleColor).attr(\"font-family\", titleFontFamily);\n }\n const height = box.stopy - box.starty + 2 * conf.diagramMarginY;\n const width = leftMargin + box.stopx + 2 * conf.diagramMarginX;\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n diagram2.append(\"line\").attr(\"x1\", leftMargin).attr(\"y1\", conf.height * 4).attr(\"x2\", width - leftMargin - 4).attr(\"y2\", conf.height * 4).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n const extraVertForTitle = title ? 70 : 0;\n diagram2.attr(\"viewBox\", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);\n diagram2.attr(\"preserveAspectRatio\", \"xMinYMin meet\");\n diagram2.attr(\"height\", height + extraVertForTitle + 25);\n}, \"draw\");\nvar bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n init: /* @__PURE__ */ __name(function() {\n this.sequenceItems = [];\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n }, \"init\"),\n updateVal: /* @__PURE__ */ __name(function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }, \"updateVal\"),\n updateBounds: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {\n const conf2 = getConfig().journey;\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return /* @__PURE__ */ __name(function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n }\n }, \"updateItemBounds\");\n }\n __name(updateFn, \"updateFn\");\n this.sequenceItems.forEach(updateFn());\n }, \"updateBounds\"),\n insert: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {\n const _startx = Math.min(startx, stopx);\n const _stopx = Math.max(startx, stopx);\n const _starty = Math.min(starty, stopy);\n const _stopy = Math.max(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n }, \"insert\"),\n bumpVerticalPos: /* @__PURE__ */ __name(function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = this.verticalPos;\n }, \"bumpVerticalPos\"),\n getVerticalPos: /* @__PURE__ */ __name(function() {\n return this.verticalPos;\n }, \"getVerticalPos\"),\n getBounds: /* @__PURE__ */ __name(function() {\n return this.data;\n }, \"getBounds\")\n};\nvar fills = conf.sectionFills;\nvar textColours = conf.sectionColours;\nvar drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, verticalPos) {\n const conf2 = getConfig().journey;\n let lastSection = \"\";\n const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;\n const taskPos = verticalPos + sectionVHeight;\n let sectionNumber = 0;\n let fill = \"#CCC\";\n let colour = \"black\";\n let num = 0;\n for (const [i, task] of tasks2.entries()) {\n if (lastSection !== task.section) {\n fill = fills[sectionNumber % fills.length];\n num = sectionNumber % fills.length;\n colour = textColours[sectionNumber % textColours.length];\n let taskInSectionCount = 0;\n const currentSection2 = task.section;\n for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {\n if (tasks2[taskIndex].section == currentSection2) {\n taskInSectionCount = taskInSectionCount + 1;\n } else {\n break;\n }\n }\n const section = {\n x: i * conf2.taskMargin + i * conf2.width + leftMargin,\n y: 50,\n text: task.section,\n fill,\n num,\n colour,\n taskCount: taskInSectionCount\n };\n svgDraw_default.drawSection(diagram2, section, conf2);\n lastSection = task.section;\n sectionNumber++;\n }\n const taskActors = task.people.reduce((acc, actorName) => {\n if (actors[actorName]) {\n acc[actorName] = actors[actorName];\n }\n return acc;\n }, {});\n task.x = i * conf2.taskMargin + i * conf2.width + leftMargin;\n task.y = taskPos;\n task.width = conf2.diagramMarginX;\n task.height = conf2.diagramMarginY;\n task.colour = colour;\n task.fill = fill;\n task.num = num;\n task.actors = taskActors;\n svgDraw_default.drawTask(diagram2, task, conf2);\n bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);\n }\n}, \"drawTasks\");\nvar journeyRenderer_default = {\n setConf,\n draw\n};\n\n// src/diagrams/user-journey/journeyDiagram.ts\nvar diagram = {\n parser: journey_default,\n db: journeyDb_default,\n renderer: journeyRenderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n journeyRenderer_default.setConf(cnf.journey);\n journeyDb_default.clear();\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","journey_default","currentSection","sections","tasks","rawTasks","clear2","clear","addSection","txt","getSections","getTasks","allItemsProcessed","compileTasks","maxDepth","iterationCount","updateActors","tempActors","task","addTask","descr","taskData","pieces","score","peeps","peopleList","s","rawTask","addTaskOrg","newTask","compileTask","pos","allProcessed","getActors","journeyDb_default","getConfig","setDiagramTitle","getDiagramTitle","setAccTitle","getAccTitle","setAccDescription","getAccDescription","getStyles","options","getIconStyles","styles_default","drawRect2","elem","rectData","drawRect","drawFace","element","faceData","circleElement","face","smile","face2","arc","d3arc","sad","ambivalent","drawCircle","circleData","drawText2","textData","drawText","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf2","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","center","xPos","person","colour","circle","drawBackgroundRect2","bounds2","drawBackgroundRect","byText","content","textAttrs","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","svgDraw_default","setConf","cnf","conf","actors","maxWidth","drawActorLegend","diagram2","maxLabelWidth","yPos","measureText","fullTextWidth","words","currentLine","word","testLine","brokenWord","char","line","labelData","lineWidth","leftMargin","draw","id","version","diagObj","configObject","titleColor","titleFontSize","titleFontFamily","securityLevel","sandboxElement","select","root","bounds","tasks2","title","actorNames","member","actorPos","actorName","drawTasks","box","configureSvgSize","extraVertForTitle","obj","val","fun","startx","starty","stopx","stopy","_self","cnt","updateFn","type","item","_startx","_stopx","_starty","_stopy","bump","fills","textColours","verticalPos","lastSection","sectionVHeight","taskPos","sectionNumber","fill","num","taskInSectionCount","currentSection2","taskIndex","taskActors","acc","journeyRenderer_default","diagram"],"mappings":"qzBAyBA,IAAIA,GAAS,UAAW,CACtB,IAAIC,EAAoBC,EAAO,SAASC,EAAGC,EAAGC,EAAI,EAAG,CACnD,IAAKA,EAAKA,GAAM,GAAI,EAAIF,EAAE,OAAQ,IAAKE,EAAGF,EAAE,CAAC,CAAC,EAAIC,EAAG,CACrD,OAAOC,CACT,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EACrIC,EAAU,CACZ,MAAuBX,EAAO,UAAiB,CAC/C,EAAG,OAAO,EACV,GAAI,CAAA,EACJ,SAAU,CAAE,MAAS,EAAG,MAAS,EAAG,QAAW,EAAG,SAAY,EAAG,IAAO,EAAG,KAAQ,EAAG,MAAS,EAAG,UAAa,EAAG,QAAW,GAAI,MAAS,GAAI,UAAa,GAAI,gBAAmB,GAAI,UAAa,GAAI,gBAAmB,GAAI,0BAA6B,GAAI,QAAW,GAAI,SAAY,GAAI,SAAY,GAAI,QAAW,EAAG,KAAQ,CAAC,EACrU,WAAY,CAAE,EAAG,QAAS,EAAG,UAAW,EAAG,MAAO,EAAG,QAAS,GAAI,UAAW,GAAI,QAAS,GAAI,YAAa,GAAI,kBAAmB,GAAI,YAAa,GAAI,kBAAmB,GAAI,4BAA6B,GAAI,UAAW,GAAI,WAAY,GAAI,UAAU,EACxP,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EACxH,cAA+BA,EAAO,SAAmBY,EAAQC,EAAQC,EAAUC,EAAIC,EAASC,EAAIC,EAAI,CACtG,IAAIC,EAAKF,EAAG,OAAS,EACrB,OAAQD,EAAO,CACb,IAAK,GACH,OAAOC,EAAGE,EAAK,CAAC,EAElB,IAAK,GACH,KAAK,EAAI,CAAA,EACT,MACF,IAAK,GACHF,EAAGE,EAAK,CAAC,EAAE,KAAKF,EAAGE,CAAE,CAAC,EACtB,KAAK,EAAIF,EAAGE,EAAK,CAAC,EAClB,MACF,IAAK,GACL,IAAK,GACH,KAAK,EAAIF,EAAGE,CAAE,EACd,MACF,IAAK,GACL,IAAK,GACH,KAAK,EAAI,CAAA,EACT,MACF,IAAK,GACHJ,EAAG,gBAAgBE,EAAGE,CAAE,EAAE,OAAO,CAAC,CAAC,EACnC,KAAK,EAAIF,EAAGE,CAAE,EAAE,OAAO,CAAC,EACxB,MACF,IAAK,GACH,KAAK,EAAIF,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,YAAY,KAAK,CAAC,EACrB,MACF,IAAK,IACL,IAAK,IACH,KAAK,EAAIE,EAAGE,CAAE,EAAE,KAAI,EACpBJ,EAAG,kBAAkB,KAAK,CAAC,EAC3B,MACF,IAAK,IACHA,EAAG,WAAWE,EAAGE,CAAE,EAAE,OAAO,CAAC,CAAC,EAC9B,KAAK,EAAIF,EAAGE,CAAE,EAAE,OAAO,CAAC,EACxB,MACF,IAAK,IACHJ,EAAG,QAAQE,EAAGE,EAAK,CAAC,EAAGF,EAAGE,CAAE,CAAC,EAC7B,KAAK,EAAI,OACT,KACV,CACI,EAAG,WAAW,EACd,MAAO,CAAC,CAAE,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,CAAC,EAAI,CAAE,EAAG,CAAC,CAAC,CAAC,EAAIpB,EAAEK,EAAK,CAAC,EAAG,CAAC,EAAG,CAAE,EAAG,CAAC,CAAE,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,CAAG,EAAIX,EAAEK,EAAK,CAAC,EAAG,CAAC,EAAG,CAAE,EAAG,CAAC,EAAG,CAAC,CAAC,CAAE,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,EAAG,GAAI,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,EAAK,GAAIC,GAAOX,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAI,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAIL,EAAEK,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,EAAE,CAAC,EAAG,CAAE,GAAI,CAAC,EAAG,EAAE,CAAC,EAAIL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,CAAC,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,EAAE,CAAC,EAAGL,EAAEK,EAAK,CAAC,EAAG,EAAE,CAAC,CAAC,EAChe,eAAgB,CAAA,EAChB,WAA4BJ,EAAO,SAAoBoB,EAAKC,EAAM,CAChE,GAAIA,EAAK,YACP,KAAK,MAAMD,CAAG,MACT,CACL,IAAIE,EAAQ,IAAI,MAAMF,CAAG,EACzB,MAAAE,EAAM,KAAOD,EACPC,CACR,CACF,EAAG,YAAY,EACf,MAAuBtB,EAAO,SAAeuB,EAAO,CAC/C,IAACC,EAAO,KAAMC,EAAQ,CAAC,CAAC,EAAGC,EAAS,CAAA,EAAIC,EAAS,CAAC,IAAI,EAAGC,EAAS,CAAA,EAAIC,EAAQ,KAAK,MAAOjB,EAAS,GAAIE,EAAW,EAAGD,EAAS,EAAmBiB,GAAS,EAAGC,EAAM,EAClKC,GAAOJ,EAAO,MAAM,KAAK,UAAW,CAAC,EACrCK,EAAS,OAAO,OAAO,KAAK,KAAK,EACjCC,EAAc,CAAE,GAAI,EAAE,EAC1B,QAASjC,KAAK,KAAK,GACb,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,CAAC,IACjDiC,EAAY,GAAGjC,CAAC,EAAI,KAAK,GAAGA,CAAC,GAGjCgC,EAAO,SAASV,EAAOW,EAAY,EAAE,EACrCA,EAAY,GAAG,MAAQD,EACvBC,EAAY,GAAG,OAAS,KACpB,OAAOD,EAAO,OAAU,MAC1BA,EAAO,OAAS,CAAA,GAElB,IAAIE,EAAQF,EAAO,OACnBL,EAAO,KAAKO,CAAK,EACjB,IAAIC,GAASH,EAAO,SAAWA,EAAO,QAAQ,OAC1C,OAAOC,EAAY,GAAG,YAAe,WACvC,KAAK,WAAaA,EAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAEhD,SAASG,GAASC,EAAG,CACnBb,EAAM,OAASA,EAAM,OAAS,EAAIa,EAClCX,EAAO,OAASA,EAAO,OAASW,EAChCV,EAAO,OAASA,EAAO,OAASU,CAClC,CACAtC,EAAOqC,GAAU,UAAU,EAC3B,SAASE,GAAM,CACb,IAAIC,EACJ,OAAAA,EAAQd,EAAO,IAAG,GAAMO,EAAO,IAAG,GAAMF,EACpC,OAAOS,GAAU,WACfA,aAAiB,QACnBd,EAASc,EACTA,EAAQd,EAAO,IAAG,GAEpBc,EAAQhB,EAAK,SAASgB,CAAK,GAAKA,GAE3BA,CACT,CACAxC,EAAOuC,EAAK,KAAK,EAEjB,QADIE,EAAwBC,EAAOC,EAAWC,EAAGC,EAAQ,CAAA,EAAIC,EAAGC,EAAKC,GAAUC,IAClE,CAUX,GATAP,EAAQjB,EAAMA,EAAM,OAAS,CAAC,EAC1B,KAAK,eAAeiB,CAAK,EAC3BC,EAAS,KAAK,eAAeD,CAAK,IAE9BD,IAAW,MAAQ,OAAOA,EAAU,OACtCA,EAASF,EAAG,GAEdI,EAASd,EAAMa,CAAK,GAAKb,EAAMa,CAAK,EAAED,CAAM,GAE1C,OAAOE,EAAW,KAAe,CAACA,EAAO,QAAU,CAACA,EAAO,CAAC,EAAG,CACjE,IAAIO,EAAS,GACbD,EAAW,CAAA,EACX,IAAKH,KAAKjB,EAAMa,CAAK,EACf,KAAK,WAAWI,CAAC,GAAKA,EAAIhB,IAC5BmB,EAAS,KAAK,IAAM,KAAK,WAAWH,CAAC,EAAI,GAAG,EAG5Cb,EAAO,aACTiB,EAAS,wBAA0BpC,EAAW,GAAK;AAAA,EAAQmB,EAAO,aAAY,EAAK;AAAA,YAAiBgB,EAAS,KAAK,IAAI,EAAI,WAAa,KAAK,WAAWR,CAAM,GAAKA,GAAU,IAE5KS,EAAS,wBAA0BpC,EAAW,GAAK,iBAAmB2B,GAAUV,EAAM,eAAiB,KAAO,KAAK,WAAWU,CAAM,GAAKA,GAAU,KAErJ,KAAK,WAAWS,EAAQ,CACtB,KAAMjB,EAAO,MACb,MAAO,KAAK,WAAWQ,CAAM,GAAKA,EAClC,KAAMR,EAAO,SACb,IAAKE,EACL,SAAAc,CACZ,CAAW,CACH,CACA,GAAIN,EAAO,CAAC,YAAa,OAASA,EAAO,OAAS,EAChD,MAAM,IAAI,MAAM,oDAAsDD,EAAQ,YAAcD,CAAM,EAEpG,OAAQE,EAAO,CAAC,EAAC,CACf,IAAK,GACHlB,EAAM,KAAKgB,CAAM,EACjBd,EAAO,KAAKM,EAAO,MAAM,EACzBL,EAAO,KAAKK,EAAO,MAAM,EACzBR,EAAM,KAAKkB,EAAO,CAAC,CAAC,EACpBF,EAAS,KAEP5B,EAASoB,EAAO,OAChBrB,EAASqB,EAAO,OAChBnB,EAAWmB,EAAO,SAClBE,EAAQF,EAAO,OAQjB,MACF,IAAK,GAwBH,GAvBAc,EAAM,KAAK,aAAaJ,EAAO,CAAC,CAAC,EAAE,CAAC,EACpCE,EAAM,EAAIlB,EAAOA,EAAO,OAASoB,CAAG,EACpCF,EAAM,GAAK,CACT,WAAYjB,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,WAC/C,UAAWnB,EAAOA,EAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,aACjD,YAAanB,EAAOA,EAAO,OAAS,CAAC,EAAE,WACrD,EACgBQ,KACFS,EAAM,GAAG,MAAQ,CACfjB,EAAOA,EAAO,QAAUmB,GAAO,EAAE,EAAE,MAAM,CAAC,EAC1CnB,EAAOA,EAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACjD,GAEYgB,EAAI,KAAK,cAAc,MAAMC,EAAO,CAClCjC,EACAC,EACAC,EACAoB,EAAY,GACZS,EAAO,CAAC,EACRhB,EACAC,CACd,EAAc,OAAOI,EAAI,CAAC,EACV,OAAOY,EAAM,IACf,OAAOA,EAELG,IACFtB,EAAQA,EAAM,MAAM,EAAG,GAAKsB,EAAM,CAAC,EACnCpB,EAASA,EAAO,MAAM,EAAG,GAAKoB,CAAG,EACjCnB,EAASA,EAAO,MAAM,EAAG,GAAKmB,CAAG,GAEnCtB,EAAM,KAAK,KAAK,aAAakB,EAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1ChB,EAAO,KAAKkB,EAAM,CAAC,EACnBjB,EAAO,KAAKiB,EAAM,EAAE,EACpBG,GAAWnB,EAAMJ,EAAMA,EAAM,OAAS,CAAC,CAAC,EAAEA,EAAMA,EAAM,OAAS,CAAC,CAAC,EACjEA,EAAM,KAAKuB,EAAQ,EACnB,MACF,IAAK,GACH,MAAO,EACnB,CACM,CACA,MAAO,EACT,EAAG,OAAO,CACd,EACMG,GAAwB,UAAW,CACrC,IAAIlB,EAAS,CACX,IAAK,EACL,WAA4BjC,EAAO,SAAoBoB,EAAKC,EAAM,CAChE,GAAI,KAAK,GAAG,OACV,KAAK,GAAG,OAAO,WAAWD,EAAKC,CAAI,MAEnC,OAAM,IAAI,MAAMD,CAAG,CAEvB,EAAG,YAAY,EAEf,SAA0BpB,EAAO,SAASuB,EAAOR,EAAI,CACnD,YAAK,GAAKA,GAAM,KAAK,IAAM,CAAA,EAC3B,KAAK,OAASQ,EACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACZ,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CACvB,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,EAAG,CAAC,GAE3B,KAAK,OAAS,EACP,IACT,EAAG,UAAU,EAEb,MAAuBvB,EAAO,UAAW,CACvC,IAAIoD,EAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,EACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,EACd,KAAK,SAAWA,EAChB,IAAIC,EAAQD,EAAG,MAAM,iBAAiB,EACtC,OAAIC,GACF,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEV,KAAK,QAAQ,QACf,KAAK,OAAO,MAAM,CAAC,IAErB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1BD,CACT,EAAG,OAAO,EAEV,MAAuBpD,EAAO,SAASoD,EAAI,CACzC,IAAIL,EAAMK,EAAG,OACTC,EAAQD,EAAG,MAAM,eAAe,EACpC,KAAK,OAASA,EAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAASL,CAAG,EAC5D,KAAK,QAAUA,EACf,IAAIO,EAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EACzDD,EAAM,OAAS,IACjB,KAAK,UAAYA,EAAM,OAAS,GAElC,IAAIT,EAAI,KAAK,OAAO,MACpB,YAAK,OAAS,CACZ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaS,GAASA,EAAM,SAAWC,EAAS,OAAS,KAAK,OAAO,aAAe,GAAKA,EAASA,EAAS,OAASD,EAAM,MAAM,EAAE,OAASA,EAAM,CAAC,EAAE,OAAS,KAAK,OAAO,aAAeN,CAClM,EACY,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAACH,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,KAAK,OAASG,CAAG,GAErD,KAAK,OAAS,KAAK,OAAO,OACnB,IACT,EAAG,OAAO,EAEV,KAAsB/C,EAAO,UAAW,CACtC,YAAK,MAAQ,GACN,IACT,EAAG,MAAM,EAET,OAAwBA,EAAO,UAAW,CACxC,GAAI,KAAK,QAAQ,gBACf,KAAK,WAAa,OAElB,QAAO,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAChO,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,EAEH,OAAO,IACT,EAAG,QAAQ,EAEX,KAAsBA,EAAO,SAASsC,EAAG,CACvC,KAAK,MAAM,KAAK,MAAM,MAAMA,CAAC,CAAC,CAChC,EAAG,MAAM,EAET,UAA2BtC,EAAO,UAAW,CAC3C,IAAIuD,EAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,EAAK,OAAS,GAAK,MAAQ,IAAMA,EAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC7E,EAAG,WAAW,EAEd,cAA+BvD,EAAO,UAAW,CAC/C,IAAIwD,EAAO,KAAK,MAChB,OAAIA,EAAK,OAAS,KAChBA,GAAQ,KAAK,OAAO,OAAO,EAAG,GAAKA,EAAK,MAAM,IAExCA,EAAK,OAAO,EAAG,EAAE,GAAKA,EAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CACjF,EAAG,eAAe,EAElB,aAA8BxD,EAAO,UAAW,CAC9C,IAAIyD,EAAM,KAAK,UAAS,EACpBC,EAAI,IAAI,MAAMD,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,EAAM,KAAK,cAAa,EAAK;AAAA,EAAOC,EAAI,GACjD,EAAG,cAAc,EAEjB,WAA4B1D,EAAO,SAAS2D,EAAOC,EAAc,CAC/D,IAAIpB,EAAOa,EAAOQ,EAmDlB,GAlDI,KAAK,QAAQ,kBACfA,EAAS,CACP,SAAU,KAAK,SACf,OAAQ,CACN,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WACvC,EACY,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACvB,EACc,KAAK,QAAQ,SACfA,EAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAGnDR,EAAQM,EAAM,CAAC,EAAE,MAAM,iBAAiB,EACpCN,IACF,KAAK,UAAYA,EAAM,QAEzB,KAAK,OAAS,CACZ,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,EAAQA,EAAMA,EAAM,OAAS,CAAC,EAAE,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAAS,KAAK,OAAO,YAAcM,EAAM,CAAC,EAAE,MACvJ,EACQ,KAAK,QAAUA,EAAM,CAAC,EACtB,KAAK,OAASA,EAAM,CAAC,EACrB,KAAK,QAAUA,EACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACf,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAE9D,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,EAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,EAAM,CAAC,EACvBnB,EAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMoB,EAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SACpB,KAAK,KAAO,IAEVpB,EACF,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1B,QAASvC,KAAK4D,EACZ,KAAK5D,CAAC,EAAI4D,EAAO5D,CAAC,EAEpB,MAAO,EACT,CACA,MAAO,EACT,EAAG,YAAY,EAEf,KAAsBD,EAAO,UAAW,CACtC,GAAI,KAAK,KACP,OAAO,KAAK,IAET,KAAK,SACR,KAAK,KAAO,IAEd,IAAIwC,EAAOmB,EAAOG,EAAWC,EACxB,KAAK,QACR,KAAK,OAAS,GACd,KAAK,MAAQ,IAGf,QADIC,EAAQ,KAAK,cAAa,EACrBC,EAAI,EAAGA,EAAID,EAAM,OAAQC,IAEhC,GADAH,EAAY,KAAK,OAAO,MAAM,KAAK,MAAME,EAAMC,CAAC,CAAC,CAAC,EAC9CH,IAAc,CAACH,GAASG,EAAU,CAAC,EAAE,OAASH,EAAM,CAAC,EAAE,SAGzD,GAFAA,EAAQG,EACRC,EAAQE,EACJ,KAAK,QAAQ,gBAAiB,CAEhC,GADAzB,EAAQ,KAAK,WAAWsB,EAAWE,EAAMC,CAAC,CAAC,EACvCzB,IAAU,GACZ,OAAOA,EACF,GAAI,KAAK,WAAY,CAC1BmB,EAAQ,GACR,QACF,KACE,OAAO,EAEX,SAAW,CAAC,KAAK,QAAQ,KACvB,MAIN,OAAIA,GACFnB,EAAQ,KAAK,WAAWmB,EAAOK,EAAMD,CAAK,CAAC,EACvCvB,IAAU,GACLA,EAEF,IAEL,KAAK,SAAW,GACX,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACtH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QACvB,CAAW,CAEL,EAAG,MAAM,EAET,IAAqBxC,EAAO,UAAe,CACzC,IAAI4C,EAAI,KAAK,KAAI,EACjB,OAAIA,GAGK,KAAK,IAAG,CAEnB,EAAG,KAAK,EAER,MAAuB5C,EAAO,SAAekE,EAAW,CACtD,KAAK,eAAe,KAAKA,CAAS,CACpC,EAAG,OAAO,EAEV,SAA0BlE,EAAO,UAAoB,CACnD,IAAIsC,EAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,EAAI,EACC,KAAK,eAAe,IAAG,EAEvB,KAAK,eAAe,CAAC,CAEhC,EAAG,UAAU,EAEb,cAA+BtC,EAAO,UAAyB,CAC7D,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EAC3E,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAEtC,EAAG,eAAe,EAElB,SAA0BA,EAAO,SAAkBsC,EAAG,CAEpD,OADAA,EAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,GAAK,CAAC,EAChDA,GAAK,EACA,KAAK,eAAeA,CAAC,EAErB,SAEX,EAAG,UAAU,EAEb,UAA2BtC,EAAO,SAAmBkE,EAAW,CAC9D,KAAK,MAAMA,CAAS,CACtB,EAAG,WAAW,EAEd,eAAgClE,EAAO,UAA0B,CAC/D,OAAO,KAAK,eAAe,MAC7B,EAAG,gBAAgB,EACnB,QAAS,CAAE,mBAAoB,EAAI,EACnC,cAA+BA,EAAO,SAAmBe,EAAIoD,EAAKC,EAA2BC,EAAU,CAErG,OAAQD,EAAyB,CAC/B,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,GACH,MAAO,IAET,IAAK,GACH,MACF,IAAK,GACH,MACF,IAAK,GACH,MAAO,GAET,IAAK,GACH,MAAO,IAET,IAAK,GACH,YAAK,MAAM,WAAW,EACf,GAET,IAAK,GACH,YAAK,SAAQ,EACN,kBAET,IAAK,GACH,YAAK,MAAM,WAAW,EACf,GAET,IAAK,IACH,YAAK,SAAQ,EACN,kBAET,IAAK,IACH,KAAK,MAAM,qBAAqB,EAChC,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,MAAO,4BAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,MAAO,SAEnB,CACM,EAAG,WAAW,EACd,MAAO,CAAC,sBAAuB,sBAAuB,cAAe,YAAa,gBAAiB,kBAAmB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,yBAA0B,aAAc,eAAgB,2BAA4B,kBAAmB,kBAAmB,UAAW,UAAW,SAAS,EAC5Y,WAAY,CAAE,oBAAuB,CAAE,MAAS,CAAC,GAAI,EAAE,EAAG,UAAa,EAAK,EAAI,UAAa,CAAE,MAAS,CAAC,EAAE,EAAG,UAAa,EAAK,EAAI,UAAa,CAAE,MAAS,CAAC,CAAC,EAAG,UAAa,EAAK,EAAI,QAAW,CAAE,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAG,UAAa,EAAI,CAAE,CAC/R,EACI,OAAOnC,CACT,GAAC,EACDtB,EAAQ,MAAQwC,EAChB,SAASmB,GAAS,CAChB,KAAK,GAAK,CAAA,CACZ,CACA,OAAAtE,EAAOsE,EAAQ,QAAQ,EACvBA,EAAO,UAAY3D,EACnBA,EAAQ,OAAS2D,EACV,IAAIA,CACb,GAAC,EACDxE,EAAO,OAASA,EAChB,IAAIyE,GAAkBzE,EAGlB0E,EAAiB,GACjBC,EAAW,CAAA,EACXC,EAAQ,CAAA,EACRC,EAAW,CAAA,EACXC,GAAyB5E,EAAO,UAAW,CAC7CyE,EAAS,OAAS,EAClBC,EAAM,OAAS,EACfF,EAAiB,GACjBG,EAAS,OAAS,EAClBE,GAAK,CACP,EAAG,OAAO,EACNC,GAA6B9E,EAAO,SAAS+E,EAAK,CACpDP,EAAiBO,EACjBN,EAAS,KAAKM,CAAG,CACnB,EAAG,YAAY,EACXC,GAA8BhF,EAAO,UAAW,CAClD,OAAOyE,CACT,EAAG,aAAa,EACZQ,GAA2BjF,EAAO,UAAW,CAC/C,IAAIkF,EAAoBC,GAAY,EACpC,MAAMC,EAAW,IACjB,IAAIC,EAAiB,EACrB,KAAO,CAACH,GAAqBG,EAAiBD,GAC5CF,EAAoBC,GAAY,EAChCE,IAEF,OAAAX,EAAM,KAAK,GAAGC,CAAQ,EACfD,CACT,EAAG,UAAU,EACTY,GAA+BtF,EAAO,UAAW,CACnD,MAAMuF,EAAa,CAAA,EACnB,OAAAb,EAAM,QAASc,GAAS,CAClBA,EAAK,QACPD,EAAW,KAAK,GAAGC,EAAK,MAAM,CAElC,CAAC,EAEM,CAAC,GADO,IAAI,IAAID,CAAU,CAChB,EAAE,KAAI,CACzB,EAAG,cAAc,EACbE,GAA0BzF,EAAO,SAAS0F,EAAOC,EAAU,CAC7D,MAAMC,EAASD,EAAS,OAAO,CAAC,EAAE,MAAM,GAAG,EAC3C,IAAIE,EAAQ,EACRC,EAAQ,CAAA,EACRF,EAAO,SAAW,GACpBC,EAAQ,OAAOD,EAAO,CAAC,CAAC,EACxBE,EAAQ,CAAA,IAERD,EAAQ,OAAOD,EAAO,CAAC,CAAC,EACxBE,EAAQF,EAAO,CAAC,EAAE,MAAM,GAAG,GAE7B,MAAMG,EAAaD,EAAM,IAAKE,GAAMA,EAAE,MAAM,EACtCC,EAAU,CACd,QAASzB,EACT,KAAMA,EACN,OAAQuB,EACR,KAAML,EACN,MAAAG,CACJ,EACElB,EAAS,KAAKsB,CAAO,CACvB,EAAG,SAAS,EACRC,GAA6BlG,EAAO,SAAS0F,EAAO,CACtD,MAAMS,EAAU,CACd,QAAS3B,EACT,KAAMA,EACN,YAAakB,EACb,KAAMA,EACN,QAAS,CAAA,CACb,EACEhB,EAAM,KAAKyB,CAAO,CACpB,EAAG,YAAY,EACXhB,GAA+BnF,EAAO,UAAW,CACnD,MAAMoG,EAA8BpG,EAAO,SAASqG,EAAK,CACvD,OAAO1B,EAAS0B,CAAG,EAAE,SACvB,EAAG,aAAa,EAChB,IAAIC,EAAe,GACnB,SAAW,CAACrC,EAAGgC,CAAO,IAAKtB,EAAS,QAAO,EACzCyB,EAAYnC,CAAC,EACbqC,EAAeA,GAAgBL,EAAQ,UAEzC,OAAOK,CACT,EAAG,cAAc,EACbC,GAA4BvG,EAAO,UAAW,CAChD,OAAOsF,GAAY,CACrB,EAAG,WAAW,EACVkB,GAAoB,CACtB,UAA2BxG,EAAO,IAAMyG,EAAS,EAAG,QAAS,WAAW,EACxE,MAAO7B,GACP,gBAAA8B,GACA,gBAAAC,GACA,YAAAC,GACA,YAAAC,GACA,kBAAAC,GACA,kBAAAC,GACA,WAAAjC,GACA,YAAAE,GACA,SAAAC,GACA,QAAAQ,GACA,WAAAS,GACA,UAAAK,EACF,EAGIS,GAA4BhH,EAAQiH,GAAY;AAAA,mBACjCA,EAAQ,UAAU;AAAA,aACxBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAOhBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,YAInBA,EAAQ,SAAS;AAAA,mBACVA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAOxBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,MAIxBA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAS5DA,EAAQ,OAAO;AAAA,cACbA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAYpBA,EAAQ,cAAc;AAAA;AAAA;AAAA;AAAA,cAIpBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,cAKjBA,EAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKPA,EAAQ,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWvCA,EAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAQXA,EAAQ,UAAU;AAAA;AAAA,kBAEnBA,EAAQ,aAAa;AAAA,wBACfA,EAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOjCA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA,MAGrDA,EAAQ,UAAY,SAASA,EAAQ,SAAS,GAAK,EAAE;AAAA;AAAA;AAAA;AAAA,MAIrDA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA;AAAA,MAG/CA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA;AAAA,MAG/CA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA;AAAA,MAG/CA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA;AAAA,MAG/CA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA;AAAA,MAG/CA,EAAQ,OAAS,SAASA,EAAQ,MAAM,GAAK,EAAE;AAAA;AAAA,IAEjDC,GAAa,CAAE;AAAA,EAChB,WAAW,EACVC,GAAiBH,GAOjBI,EAA4BpH,EAAO,SAASqH,EAAMC,EAAU,CAC9D,OAAOC,GAASF,EAAMC,CAAQ,CAChC,EAAG,UAAU,EACTE,GAA2BxH,EAAO,SAASyH,EAASC,EAAU,CAEhE,MAAMC,EAAgBF,EAAQ,OAAO,QAAQ,EAAE,KAAK,KAAMC,EAAS,EAAE,EAAE,KAAK,KAAMA,EAAS,EAAE,EAAE,KAAK,QAAS,MAAM,EAAE,KAAK,IAAK,EAAM,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,WAAY,SAAS,EACnLE,EAAOH,EAAQ,OAAO,GAAG,EAC/BG,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMF,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,OAAQ,MAAM,EAAE,KAAK,SAAU,MAAM,EACjLE,EAAK,OAAO,QAAQ,EAAE,KAAK,KAAMF,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,GAAS,CAAC,EAAE,KAAK,IAAK,GAAG,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,OAAQ,MAAM,EAAE,KAAK,SAAU,MAAM,EACjL,SAASG,EAAMC,EAAO,CACpB,MAAMC,EAAMC,GAAK,EAAG,WAAW,KAAK,GAAK,CAAC,EAAE,SAAS,GAAK,KAAK,GAAK,EAAE,EAAE,YAAY,GAAU,EAAE,YAAY,kBAAY,EACxHF,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,IAAKC,CAAG,EAAE,KAAK,YAAa,aAAeL,EAAS,GAAK,KAAOA,EAAS,GAAK,GAAK,GAAG,CACzI,CACA1H,EAAO6H,EAAO,OAAO,EACrB,SAASI,EAAIH,EAAO,CAClB,MAAMC,EAAMC,GAAK,EAAG,WAAW,EAAI,KAAK,GAAK,CAAC,EAAE,SAAS,GAAK,KAAK,GAAK,EAAE,EAAE,YAAY,GAAU,EAAE,YAAY,kBAAY,EAC5HF,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,IAAKC,CAAG,EAAE,KAAK,YAAa,aAAeL,EAAS,GAAK,KAAOA,EAAS,GAAK,GAAK,GAAG,CACzI,CACA1H,EAAOiI,EAAK,KAAK,EACjB,SAASC,EAAWJ,EAAO,CACzBA,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,SAAU,CAAC,EAAE,KAAK,KAAMJ,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,KAAMA,EAAS,GAAK,CAAC,EAAE,KAAK,QAAS,OAAO,EAAE,KAAK,eAAgB,KAAK,EAAE,KAAK,SAAU,MAAM,CACxP,CACA,OAAA1H,EAAOkI,EAAY,YAAY,EAC3BR,EAAS,MAAQ,EACnBG,EAAMD,CAAI,EACDF,EAAS,MAAQ,EAC1BO,EAAIL,CAAI,EAERM,EAAWN,CAAI,EAEVD,CACT,EAAG,UAAU,EACTQ,GAA6BnI,EAAO,SAASyH,EAASW,EAAY,CACpE,MAAMT,EAAgBF,EAAQ,OAAO,QAAQ,EAC7C,OAAAE,EAAc,KAAK,KAAMS,EAAW,EAAE,EACtCT,EAAc,KAAK,KAAMS,EAAW,EAAE,EACtCT,EAAc,KAAK,QAAS,SAAWS,EAAW,GAAG,EACrDT,EAAc,KAAK,OAAQS,EAAW,IAAI,EAC1CT,EAAc,KAAK,SAAUS,EAAW,MAAM,EAC9CT,EAAc,KAAK,IAAKS,EAAW,CAAC,EAChCT,EAAc,QAAU,QAC1BA,EAAc,KAAK,QAASA,EAAc,KAAK,EAE7CS,EAAW,QAAU,QACvBT,EAAc,OAAO,OAAO,EAAE,KAAKS,EAAW,KAAK,EAE9CT,CACT,EAAG,YAAY,EACXU,GAA4BrI,EAAO,SAASqH,EAAMiB,EAAU,CAC9D,OAAOC,GAASlB,EAAMiB,CAAQ,CAChC,EAAG,UAAU,EACTE,GAA4BxI,EAAO,SAASqH,EAAMoB,EAAW,CAC/D,SAASC,EAAUC,EAAGC,EAAGC,EAAOC,EAAQC,EAAK,CAC3C,OAAOJ,EAAI,IAAMC,EAAI,KAAOD,EAAIE,GAAS,IAAMD,EAAI,KAAOD,EAAIE,GAAS,KAAOD,EAAIE,EAASC,GAAO,KAAOJ,EAAIE,EAAQE,EAAM,KAAO,KAAOH,EAAIE,GAAU,IAAMH,EAAI,KAAOC,EAAIE,EAC9K,CACA9I,EAAO0I,EAAW,WAAW,EAC7B,MAAMM,EAAU3B,EAAK,OAAO,SAAS,EACrC2B,EAAQ,KAAK,SAAUN,EAAUD,EAAU,EAAGA,EAAU,EAAG,GAAI,GAAI,CAAC,CAAC,EACrEO,EAAQ,KAAK,QAAS,UAAU,EAChCP,EAAU,EAAIA,EAAU,EAAIA,EAAU,YACtCA,EAAU,EAAIA,EAAU,EAAI,GAAMA,EAAU,YAC5CJ,GAAUhB,EAAMoB,CAAS,CAC3B,EAAG,WAAW,EACVQ,GAA8BjJ,EAAO,SAASqH,EAAM6B,EAASC,EAAO,CACtE,MAAMC,EAAI/B,EAAK,OAAO,GAAG,EACnBgC,EAAOC,GAAW,EACxBD,EAAK,EAAIH,EAAQ,EACjBG,EAAK,EAAIH,EAAQ,EACjBG,EAAK,KAAOH,EAAQ,KACpBG,EAAK,MAAQF,EAAM,MAAQD,EAAQ,UACnCC,EAAM,gBAAkBD,EAAQ,UAAY,GAC5CG,EAAK,OAASF,EAAM,OACpBE,EAAK,MAAQ,gCAAkCH,EAAQ,IACvDG,EAAK,GAAK,EACVA,EAAK,GAAK,EACVjC,EAAUgC,EAAGC,CAAI,EACjBE,GAAuBJ,CAAK,EAC1BD,EAAQ,KACRE,EACAC,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,gCAAkCH,EAAQ,GAAG,EACtDC,EACAD,EAAQ,MACZ,CACA,EAAG,aAAa,EACZM,GAAY,GACZC,GAA2BzJ,EAAO,SAASqH,EAAM7B,EAAM2D,EAAO,CAChE,MAAMO,EAASlE,EAAK,EAAI2D,EAAM,MAAQ,EAChCC,EAAI/B,EAAK,OAAO,GAAG,EACzBmC,KAEAJ,EAAE,OAAO,MAAM,EAAE,KAAK,KAAM,OAASI,EAAS,EAAE,KAAK,KAAME,CAAM,EAAE,KAAK,KAAMlE,EAAK,CAAC,EAAE,KAAK,KAAMkE,CAAM,EAAE,KAAK,KAD5F,GAC2G,EAAE,KAAK,QAAS,WAAW,EAAE,KAAK,eAAgB,KAAK,EAAE,KAAK,mBAAoB,KAAK,EAAE,KAAK,SAAU,MAAM,EAC3OlC,GAAS4B,EAAG,CACV,GAAIM,EACJ,GAAI,KAAO,EAAIlE,EAAK,OAAS,GAC7B,MAAOA,EAAK,KAChB,CAAG,EACD,MAAM6D,EAAOC,GAAW,EACxBD,EAAK,EAAI7D,EAAK,EACd6D,EAAK,EAAI7D,EAAK,EACd6D,EAAK,KAAO7D,EAAK,KACjB6D,EAAK,MAAQF,EAAM,MACnBE,EAAK,OAASF,EAAM,OACpBE,EAAK,MAAQ,kBAAoB7D,EAAK,IACtC6D,EAAK,GAAK,EACVA,EAAK,GAAK,EACVjC,EAAUgC,EAAGC,CAAI,EACjB,IAAIM,EAAOnE,EAAK,EAAI,GACpBA,EAAK,OAAO,QAASoE,GAAW,CAC9B,MAAMC,EAASrE,EAAK,OAAOoE,CAAM,EAAE,MAC7BE,EAAS,CACb,GAAIH,EACJ,GAAInE,EAAK,EACT,EAAG,EACH,KAAMqE,EACN,OAAQ,OACR,MAAOD,EACP,IAAKpE,EAAK,OAAOoE,CAAM,EAAE,QAC/B,EACIzB,GAAWiB,EAAGU,CAAM,EACpBH,GAAQ,EACV,CAAC,EACDJ,GAAuBJ,CAAK,EAC1B3D,EAAK,KACL4D,EACAC,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACL,CAAE,MAAO,MAAM,EACfF,EACA3D,EAAK,MACT,CACA,EAAG,UAAU,EACTuE,GAAsC/J,EAAO,SAASqH,EAAM2C,EAAS,CACvEC,GAAmB5C,EAAM2C,CAAO,CAClC,EAAG,oBAAoB,EACnBT,IAAyC,UAAW,CACtD,SAASW,EAAOC,EAASf,EAAGT,EAAG,EAAGE,EAAOC,EAAQsB,EAAWP,EAAQ,CAClE,MAAMQ,EAAOjB,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKT,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAK,EAAIC,EAAS,EAAI,CAAC,EAAE,MAAM,aAAce,CAAM,EAAE,MAAM,cAAe,QAAQ,EAAE,KAAKM,CAAO,EAC5JG,EAAcD,EAAMD,CAAS,CAC/B,CACApK,EAAOkK,EAAQ,QAAQ,EACvB,SAASK,EAAQJ,EAASf,EAAGT,EAAG,EAAGE,EAAOC,EAAQsB,EAAWjB,EAAOU,EAAQ,CAC1E,KAAM,CAAE,aAAAW,EAAc,eAAAC,CAAc,EAAKtB,EACnC9F,EAAQ8G,EAAQ,MAAM,cAAc,EAC1C,QAASlG,EAAI,EAAGA,EAAIZ,EAAM,OAAQY,IAAK,CACrC,MAAMyG,EAAKzG,EAAIuG,EAAeA,GAAgBnH,EAAM,OAAS,GAAK,EAC5DgH,EAAOjB,EAAE,OAAO,MAAM,EAAE,KAAK,IAAKT,EAAIE,EAAQ,CAAC,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,OAAQgB,CAAM,EAAE,MAAM,cAAe,QAAQ,EAAE,MAAM,YAAaW,CAAY,EAAE,MAAM,cAAeC,CAAc,EAC5LJ,EAAK,OAAO,OAAO,EAAE,KAAK,IAAK1B,EAAIE,EAAQ,CAAC,EAAE,KAAK,KAAM6B,CAAE,EAAE,KAAKrH,EAAMY,CAAC,CAAC,EAC1EoG,EAAK,KAAK,IAAK,EAAIvB,EAAS,CAAC,EAAE,KAAK,oBAAqB,SAAS,EAAE,KAAK,qBAAsB,SAAS,EACxGwB,EAAcD,EAAMD,CAAS,CAC/B,CACF,CACApK,EAAOuK,EAAS,SAAS,EACzB,SAASI,EAAKR,EAASf,EAAGT,EAAG,EAAGE,EAAOC,EAAQsB,EAAWjB,EAAO,CAC/D,MAAMyB,EAAOxB,EAAE,OAAO,QAAQ,EAExBiB,EADIO,EAAK,OAAO,eAAe,EAAE,KAAK,IAAKjC,CAAC,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAASE,CAAK,EAAE,KAAK,SAAUC,CAAM,EAAE,KAAK,WAAY,OAAO,EACtH,OAAO,WAAW,EAAE,MAAM,UAAW,OAAO,EAAE,MAAM,SAAU,MAAM,EAAE,MAAM,QAAS,MAAM,EAC1GuB,EAAK,OAAO,KAAK,EAAE,KAAK,QAAS,OAAO,EAAE,MAAM,UAAW,YAAY,EAAE,MAAM,aAAc,QAAQ,EAAE,MAAM,iBAAkB,QAAQ,EAAE,KAAKF,CAAO,EACrJI,EAAQJ,EAASS,EAAMjC,EAAG,EAAGE,EAAOC,EAAQsB,EAAWjB,CAAK,EAC5DmB,EAAcD,EAAMD,CAAS,CAC/B,CACApK,EAAO2K,EAAM,MAAM,EACnB,SAASL,EAAcO,EAAQC,EAAmB,CAChD,UAAWC,KAAOD,EACZC,KAAOD,GACTD,EAAO,KAAKE,EAAKD,EAAkBC,CAAG,CAAC,CAG7C,CACA,OAAA/K,EAAOsK,EAAe,eAAe,EAC9B,SAASnB,EAAO,CACrB,OAAOA,EAAM,gBAAkB,KAAOwB,EAAOxB,EAAM,gBAAkB,MAAQe,EAASK,CACxF,CACF,GAAC,EACGS,GAA+BhL,EAAO,SAASiL,EAAU,CAC3DA,EAAS,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,KAAM,WAAW,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,OAAQ,CAAC,EAAE,KAAK,cAAe,CAAC,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,IAAK,kBAAkB,CACpN,EAAG,cAAc,EACbC,EAAkB,CACpB,SAAU9D,EACV,WAAAe,GACA,YAAAc,GACA,SAAUZ,GACV,UAAAG,GACA,SAAAiB,GACA,mBAAoBM,GACpB,aAAAiB,EACF,EAGIG,GAA0BnL,EAAO,SAASoL,EAAK,CACpC,OAAO,KAAKA,CAAG,EACvB,QAAQ,SAASL,EAAK,CACzBM,EAAKN,CAAG,EAAIK,EAAIL,CAAG,CACrB,CAAC,CACH,EAAG,SAAS,EACRO,EAAS,CAAA,EACTC,EAAW,EACf,SAASC,GAAgBC,EAAU,CACjC,MAAMtC,EAAQ1C,EAAS,EAAG,QACpBiF,EAAgBvC,EAAM,cAC5BoC,EAAW,EACX,IAAII,EAAO,GACX,OAAO,KAAKL,CAAM,EAAE,QAAS1B,GAAW,CACtC,MAAMC,EAASyB,EAAO1B,CAAM,EAAE,MACxBxB,EAAa,CACjB,GAAI,GACJ,GAAIuD,EACJ,EAAG,EACH,KAAM9B,EACN,OAAQ,OACR,IAAKyB,EAAO1B,CAAM,EAAE,QAC1B,EACIsB,EAAgB,WAAWO,EAAUrD,CAAU,EAC/C,IAAIwD,EAAcH,EAAS,OAAO,MAAM,EAAE,KAAK,aAAc,QAAQ,EAAE,KAAK7B,CAAM,EAClF,MAAMiC,EAAgBD,EAAY,KAAI,EAAG,sBAAqB,EAAG,MACjEA,EAAY,OAAM,EAClB,IAAIvI,EAAQ,CAAA,EACZ,GAAIwI,GAAiBH,EACnBrI,EAAQ,CAACuG,CAAM,MACV,CACL,MAAMkC,EAAQlC,EAAO,MAAM,GAAG,EAC9B,IAAImC,EAAc,GAClBH,EAAcH,EAAS,OAAO,MAAM,EAAE,KAAK,aAAc,QAAQ,EACjEK,EAAM,QAASE,GAAS,CACtB,MAAMC,EAAWF,EAAc,GAAGA,CAAW,IAAIC,CAAI,GAAKA,EAG1D,GAFAJ,EAAY,KAAKK,CAAQ,EACPL,EAAY,KAAI,EAAG,sBAAqB,EAAG,MAC7CF,GAMd,GALIK,GACF1I,EAAM,KAAK0I,CAAW,EAExBA,EAAcC,EACdJ,EAAY,KAAKI,CAAI,EACjBJ,EAAY,KAAI,EAAG,sBAAqB,EAAG,MAAQF,EAAe,CACpE,IAAIQ,EAAa,GACjB,UAAWC,KAAQH,EACjBE,GAAcC,EACdP,EAAY,KAAKM,EAAa,GAAG,EAC7BN,EAAY,KAAI,EAAG,sBAAqB,EAAG,MAAQF,IACrDrI,EAAM,KAAK6I,EAAW,MAAM,EAAG,EAAE,EAAI,GAAG,EACxCA,EAAaC,GAGjBJ,EAAcG,CAChB,OAEAH,EAAcE,CAElB,CAAC,EACGF,GACF1I,EAAM,KAAK0I,CAAW,EAExBH,EAAY,OAAM,CACpB,CACAvI,EAAM,QAAQ,CAAC+I,EAAMrI,IAAU,CAC7B,MAAMsI,EAAY,CAChB,EAAG,GACH,EAAGV,EAAO,EAAI5H,EAAQ,GACtB,KAAM,OACN,KAAMqI,EACN,WAAYjD,EAAM,eAAiB,CAC3C,EAEYmD,EADcpB,EAAgB,SAASO,EAAUY,CAAS,EAClC,KAAI,EAAG,sBAAqB,EAAG,MACzDC,EAAYf,GAAYe,EAAYnD,EAAM,WAAamD,IACzDf,EAAWe,EAEf,CAAC,EACDX,GAAQ,KAAK,IAAI,GAAItI,EAAM,OAAS,EAAE,CACxC,CAAC,CACH,CACArD,EAAOwL,GAAiB,iBAAiB,EACzC,IAAIH,EAAO5E,EAAS,EAAG,QACnB8F,EAAa,EACbC,GAAuBxM,EAAO,SAASqK,EAAMoC,EAAIC,EAASC,EAAS,CACrE,MAAMC,EAAenG,EAAS,EACxBoG,EAAaD,EAAa,QAAQ,WAClCE,EAAgBF,EAAa,QAAQ,cACrCG,EAAkBH,EAAa,QAAQ,gBACvCI,EAAgBJ,EAAa,cACnC,IAAIK,EACAD,IAAkB,YACpBC,EAAiBC,EAAO,KAAOT,CAAE,GAEnC,MAAMU,EAAOH,IAAkB,UAAYE,EAAOD,EAAe,QAAQ,CAAC,EAAE,gBAAgB,IAAI,EAAIC,EAAO,MAAM,EACjHE,EAAO,KAAI,EACX,MAAM3B,EAAW0B,EAAK,OAAO,IAAMV,CAAE,EACrCvB,EAAgB,aAAaO,CAAQ,EACrC,MAAM4B,EAASV,EAAQ,GAAG,SAAQ,EAC5BW,EAAQX,EAAQ,GAAG,gBAAe,EAClCY,EAAaZ,EAAQ,GAAG,UAAS,EACvC,UAAWa,KAAUlC,EACnB,OAAOA,EAAOkC,CAAM,EAEtB,IAAIC,EAAW,EACfF,EAAW,QAASG,GAAc,CAChCpC,EAAOoC,CAAS,EAAI,CAClB,MAAOrC,EAAK,aAAaoC,EAAWpC,EAAK,aAAa,MAAM,EAC5D,SAAUoC,CAChB,EACIA,GACF,CAAC,EACDjC,GAAgBC,CAAQ,EACxBc,EAAalB,EAAK,WAAaE,EAC/B6B,EAAO,OAAO,EAAG,EAAGb,EAAY,OAAO,KAAKjB,CAAM,EAAE,OAAS,EAAE,EAC/DqC,GAAUlC,EAAU4B,EAAQ,CAAC,EAC7B,MAAMO,EAAMR,EAAO,UAAS,EACxBE,GACF7B,EAAS,OAAO,MAAM,EAAE,KAAK6B,CAAK,EAAE,KAAK,IAAKf,CAAU,EAAE,KAAK,YAAaO,CAAa,EAAE,KAAK,cAAe,MAAM,EAAE,KAAK,IAAK,EAAE,EAAE,KAAK,OAAQD,CAAU,EAAE,KAAK,cAAeE,CAAe,EAEnM,MAAMjE,EAAS8E,EAAI,MAAQA,EAAI,OAAS,EAAIvC,EAAK,eAC3CxC,EAAQ0D,EAAaqB,EAAI,MAAQ,EAAIvC,EAAK,eAChDwC,GAAiBpC,EAAU3C,EAAQD,EAAOwC,EAAK,WAAW,EAC1DI,EAAS,OAAO,MAAM,EAAE,KAAK,KAAMc,CAAU,EAAE,KAAK,KAAMlB,EAAK,OAAS,CAAC,EAAE,KAAK,KAAMxC,EAAQ0D,EAAa,CAAC,EAAE,KAAK,KAAMlB,EAAK,OAAS,CAAC,EAAE,KAAK,eAAgB,CAAC,EAAE,KAAK,SAAU,OAAO,EAAE,KAAK,aAAc,iBAAiB,EAC9N,MAAMyC,EAAoBR,EAAQ,GAAK,EACvC7B,EAAS,KAAK,UAAW,GAAGmC,EAAI,MAAM,QAAQ/E,CAAK,IAAIC,EAASgF,CAAiB,EAAE,EACnFrC,EAAS,KAAK,sBAAuB,eAAe,EACpDA,EAAS,KAAK,SAAU3C,EAASgF,EAAoB,EAAE,CACzD,EAAG,MAAM,EACLV,EAAS,CACX,KAAM,CACJ,OAAQ,OACR,MAAO,OACP,OAAQ,OACR,MAAO,MACX,EACE,YAAa,EACb,cAAe,CAAA,EACf,KAAsBpN,EAAO,UAAW,CACtC,KAAK,cAAgB,CAAA,EACrB,KAAK,KAAO,CACV,OAAQ,OACR,MAAO,OACP,OAAQ,OACR,MAAO,MACb,EACI,KAAK,YAAc,CACrB,EAAG,MAAM,EACT,UAA2BA,EAAO,SAAS+N,EAAKhD,EAAKiD,EAAKC,EAAK,CACzDF,EAAIhD,CAAG,IAAM,OACfgD,EAAIhD,CAAG,EAAIiD,EAEXD,EAAIhD,CAAG,EAAIkD,EAAID,EAAKD,EAAIhD,CAAG,CAAC,CAEhC,EAAG,WAAW,EACd,aAA8B/K,EAAO,SAASkO,EAAQC,EAAQC,EAAOC,EAAO,CAC1E,MAAMlF,EAAQ1C,EAAS,EAAG,QACpB6H,EAAQ,KACd,IAAIC,EAAM,EACV,SAASC,EAASC,EAAM,CACtB,OAAuBzO,EAAO,SAA0B0O,EAAM,CAC5DH,IACA,MAAMjM,EAAIgM,EAAM,cAAc,OAASC,EAAM,EAC7CD,EAAM,UAAUI,EAAM,SAAUP,EAAS7L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EACtEmF,EAAM,UAAUI,EAAM,QAASL,EAAQ/L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EACpEmF,EAAM,UAAUlB,EAAO,KAAM,SAAUc,EAAS5L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EAC7EmF,EAAM,UAAUlB,EAAO,KAAM,QAASgB,EAAQ9L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EACrEsF,IAAS,eACbH,EAAM,UAAUI,EAAM,SAAUR,EAAS5L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EACtEmF,EAAM,UAAUI,EAAM,QAASN,EAAQ9L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EACpEmF,EAAM,UAAUlB,EAAO,KAAM,SAAUe,EAAS7L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EAC7EmF,EAAM,UAAUlB,EAAO,KAAM,QAASiB,EAAQ/L,EAAI6G,EAAM,UAAW,KAAK,GAAG,EAE/E,EAAG,kBAAkB,CACvB,CACAnJ,EAAOwO,EAAU,UAAU,EAC3B,KAAK,cAAc,QAAQA,GAAU,CACvC,EAAG,cAAc,EACjB,OAAwBxO,EAAO,SAASkO,EAAQC,EAAQC,EAAOC,EAAO,CACpE,MAAMM,EAAU,KAAK,IAAIT,EAAQE,CAAK,EAChCQ,EAAS,KAAK,IAAIV,EAAQE,CAAK,EAC/BS,EAAU,KAAK,IAAIV,EAAQE,CAAK,EAChCS,EAAS,KAAK,IAAIX,EAAQE,CAAK,EACrC,KAAK,UAAUjB,EAAO,KAAM,SAAUuB,EAAS,KAAK,GAAG,EACvD,KAAK,UAAUvB,EAAO,KAAM,SAAUyB,EAAS,KAAK,GAAG,EACvD,KAAK,UAAUzB,EAAO,KAAM,QAASwB,EAAQ,KAAK,GAAG,EACrD,KAAK,UAAUxB,EAAO,KAAM,QAAS0B,EAAQ,KAAK,GAAG,EACrD,KAAK,aAAaH,EAASE,EAASD,EAAQE,CAAM,CACpD,EAAG,QAAQ,EACX,gBAAiC9O,EAAO,SAAS+O,EAAM,CACrD,KAAK,YAAc,KAAK,YAAcA,EACtC,KAAK,KAAK,MAAQ,KAAK,WACzB,EAAG,iBAAiB,EACpB,eAAgC/O,EAAO,UAAW,CAChD,OAAO,KAAK,WACd,EAAG,gBAAgB,EACnB,UAA2BA,EAAO,UAAW,CAC3C,OAAO,KAAK,IACd,EAAG,WAAW,CAChB,EACIgP,EAAQ3D,EAAK,aACb4D,GAAc5D,EAAK,eACnBsC,GAA4B3N,EAAO,SAASyL,EAAU4B,EAAQ6B,EAAa,CAC7E,MAAM/F,EAAQ1C,EAAS,EAAG,QAC1B,IAAI0I,EAAc,GAClB,MAAMC,EAAiBjG,EAAM,OAAS,EAAIA,EAAM,eAC1CkG,EAAUH,EAAcE,EAC9B,IAAIE,EAAgB,EAChBC,EAAO,OACP1F,EAAS,QACT2F,EAAM,EACV,SAAW,CAACvL,EAAGuB,CAAI,IAAK6H,EAAO,QAAO,EAAI,CACxC,GAAI8B,IAAgB3J,EAAK,QAAS,CAChC+J,EAAOP,EAAMM,EAAgBN,EAAM,MAAM,EACzCQ,EAAMF,EAAgBN,EAAM,OAC5BnF,EAASoF,GAAYK,EAAgBL,GAAY,MAAM,EACvD,IAAIQ,EAAqB,EACzB,MAAMC,EAAkBlK,EAAK,QAC7B,QAASmK,EAAY1L,EAAG0L,EAAYtC,EAAO,QACrCA,EAAOsC,CAAS,EAAE,SAAWD,EADgBC,IAE/CF,EAAqBA,EAAqB,EAK9C,MAAMvG,EAAU,CACd,EAAGjF,EAAIkF,EAAM,WAAalF,EAAIkF,EAAM,MAAQoD,EAC5C,EAAG,GACH,KAAM/G,EAAK,QACX,KAAA+J,EACA,IAAAC,EACA,OAAA3F,EACA,UAAW4F,CACnB,EACMvE,EAAgB,YAAYO,EAAUvC,EAASC,CAAK,EACpDgG,EAAc3J,EAAK,QACnB8J,GACF,CACA,MAAMM,EAAapK,EAAK,OAAO,OAAO,CAACqK,EAAKnC,KACtCpC,EAAOoC,CAAS,IAClBmC,EAAInC,CAAS,EAAIpC,EAAOoC,CAAS,GAE5BmC,GACN,CAAA,CAAE,EACLrK,EAAK,EAAIvB,EAAIkF,EAAM,WAAalF,EAAIkF,EAAM,MAAQoD,EAClD/G,EAAK,EAAI6J,EACT7J,EAAK,MAAQ2D,EAAM,eACnB3D,EAAK,OAAS2D,EAAM,eACpB3D,EAAK,OAASqE,EACdrE,EAAK,KAAO+J,EACZ/J,EAAK,IAAMgK,EACXhK,EAAK,OAASoK,EACd1E,EAAgB,SAASO,EAAUjG,EAAM2D,CAAK,EAC9CiE,EAAO,OAAO5H,EAAK,EAAGA,EAAK,EAAGA,EAAK,EAAIA,EAAK,MAAQ2D,EAAM,WAAY,GAAY,CACpF,CACF,EAAG,WAAW,EACV2G,GAA0B,CAC5B,QAAA3E,GACA,KAAAqB,EACF,EAGIuD,GAAU,CACZ,OAAQxL,GACR,GAAIiC,GACJ,SAAUsJ,GACV,OAAQ3I,GACR,KAAsBnH,EAAQoL,GAAQ,CACpC0E,GAAwB,QAAQ1E,EAAI,OAAO,EAC3C5E,GAAkB,MAAK,CACzB,EAAG,MAAM,CACX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js b/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js new file mode 100644 index 000000000000..167f517fa4d3 --- /dev/null +++ b/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js @@ -0,0 +1,90 @@ +import{_ as c,l as te,c as W,H as pe,af as ye,ag as be,ah as me,V as _e,F as K,i as G,t as Ee,J as ke,W as Se,X as le,Y as ce}from"./index.js";import{g as Ne}from"./chunk-FMBD7UC4.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},u=new e.Error().stack;u&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[u]="25a5d0b9-320b-4c1d-8b8e-c81bb976912f",e._sentryDebugIdIdentifier="sentry-dbid-25a5d0b9-320b-4c1d-8b8e-c81bb976912f")})()}catch{}var $=(function(){var e=c(function(_,i,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=i);return n},"o"),u=[1,4],d=[1,13],r=[1,12],f=[1,15],E=[1,16],p=[1,20],h=[1,19],L=[6,7,8],w=[1,26],C=[1,24],N=[1,25],s=[6,7,11],H=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],M=[1,35],U=[1,36],A=[1,6,7,11,13,16,17,20,23],j=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(i,n,a,o,g,t,B){var l=t.length-1;switch(g){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",t[l-1].id),o.addNode(t[l-2].length,t[l-1].id,t[l-1].descr,t[l-1].type,t[l]);break;case 16:o.getLogger().info("Node: ",t[l].id),o.addNode(t[l-1].length,t[l].id,t[l].descr,t[l].type);break;case 17:o.getLogger().trace("Icon: ",t[l]),o.decorateNode({icon:t[l]});break;case 18:case 23:o.decorateNode({class:t[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",t[l-1].id),o.addNode(0,t[l-1].id,t[l-1].descr,t[l-1].type,t[l]);break;case 21:o.getLogger().trace("Node: ",t[l].id),o.addNode(0,t[l].id,t[l].descr,t[l].type);break;case 22:o.decorateNode({icon:t[l]});break;case 27:o.getLogger().trace("node found ..",t[l-2]),this.$={id:t[l-1],descr:t[l-1],type:o.getType(t[l-2],t[l])};break;case 28:this.$={id:t[l],descr:t[l],type:0};break;case 29:o.getLogger().trace("node found ..",t[l-3]),this.$={id:t[l-3],descr:t[l-1],type:o.getType(t[l-2],t[l])};break;case 30:this.$=t[l-1]+t[l];break;case 31:this.$=t[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:u},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:u},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:f,17:E,18:17,19:18,20:p,23:h},e(L,[2,3]),{1:[2,2]},e(L,[2,4]),e(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:f,17:E,18:17,19:18,20:p,23:h},{6:d,9:22,12:11,13:r,14:14,16:f,17:E,18:17,19:18,20:p,23:h},{6:w,7:C,10:23,11:N},e(s,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:p,23:h}),e(s,[2,19]),e(s,[2,21],{15:30,24:H}),e(s,[2,22]),e(s,[2,23]),e(x,[2,25]),e(x,[2,26]),e(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:w,7:C,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:f,17:E,18:17,19:18,20:p,23:h},e(P,[2,14],{7:M,11:U}),e(A,[2,8]),e(A,[2,9]),e(A,[2,10]),e(s,[2,16],{15:37,24:H}),e(s,[2,17]),e(s,[2,18]),e(s,[2,20],{24:j}),e(x,[2,31]),{21:[1,39]},{22:[1,40]},e(P,[2,13],{7:M,11:U}),e(A,[2,11]),e(A,[2,12]),e(s,[2,15],{24:j}),e(x,[2,30]),{22:[1,41]},e(x,[2,27]),e(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},"parseError"),parse:c(function(i){var n=this,a=[0],o=[],g=[null],t=[],B=this.table,l="",z=0,se=0,ue=2,re=1,ge=t.slice.call(arguments,1),b=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);b.setInput(i,T.yy),T.yy.lexer=b,T.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;t.push(q);var de=b.options&&b.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fe(S){a.length=a.length-2*S,g.length=g.length-S,t.length=t.length-S}c(fe,"popStack");function ae(){var S;return S=o.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var k,R,v,Q,F={},X,O,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((k===null||typeof k>"u")&&(k=ae()),v=B[R]&&B[R][k]),typeof v>"u"||!v.length||!v[0]){var Z="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Z="Parse error on line "+(z+1)+`: +`+b.showPosition()+` +Expecting `+Y.join(", ")+", got '"+(this.terminals_[k]||k)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(k==re?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(Z,{text:b.match,token:this.terminals_[k]||k,line:b.yylineno,loc:q,expected:Y})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+k);switch(v[0]){case 1:a.push(k),g.push(b.yytext),t.push(b.yylloc),a.push(v[1]),k=null,se=b.yyleng,l=b.yytext,z=b.yylineno,q=b.yylloc;break;case 2:if(O=this.productions_[v[1]][1],F.$=g[g.length-O],F._$={first_line:t[t.length-(O||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(O||1)].first_column,last_column:t[t.length-1].last_column},de&&(F._$.range=[t[t.length-(O||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(F,[l,se,z,T.yy,v[1],g,t].concat(ge)),typeof Q<"u")return Q;O&&(a=a.slice(0,-1*O*2),g=g.slice(0,-1*O),t=t.slice(0,-1*O)),a.push(this.productions_[v[1]][0]),g.push(F.$),t.push(F._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},m=(function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:c(function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var g=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[g[0],g[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(i){this.unput(this.match.slice(i))},"less"),pastInput:c(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},"showPosition"),test_match:c(function(i,n){var a,o,g;if(this.options.backtrack_lexer&&(g={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(g.yylloc.range=this.yylloc.range.slice(0))),o=i[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var t in g)this[t]=g[t];return!1}return!1},"test_match"),next:c(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,o;this._more||(this.yytext="",this.match="");for(var g=this._currentRules(),t=0;tn[0].length)){if(n=a,o=t,this.options.backtrack_lexer){if(i=this.test_match(a,g[t]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,g[o]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:c(function(){var n=this.next();return n||this.lex()},"lex"),begin:c(function(n){this.conditionStack.push(n)},"begin"),popState:c(function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:c(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:c(function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:c(function(n){this.begin(n)},"pushState"),stateStackSize:c(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:c(function(n,a,o,g){switch(o){case 0:return this.pushState("shapeData"),a.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:const t=/\n\s*/g;return a.yytext=a.yytext.replace(t,"
    "),24;case 4:return 24;case 5:this.popState();break;case 6:return n.getLogger().trace("Found comment",a.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 10:this.popState();break;case 11:n.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return n.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:n.getLogger().trace("end icon"),this.popState();break;case 16:return n.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return n.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return n.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return n.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:return this.begin("NODE"),20;case 21:return this.begin("NODE"),20;case 22:return this.begin("NODE"),20;case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:n.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return n.getLogger().trace("description:",a.yytext),"NODE_DESCR";case 32:this.popState();break;case 33:return this.popState(),n.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),n.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),n.getLogger().trace("node end ...",a.yytext),"NODE_DEND";case 36:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 37:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 38:return this.popState(),n.getLogger().trace("node end (-"),"NODE_DEND";case 39:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 40:return this.popState(),n.getLogger().trace("node end (("),"NODE_DEND";case 41:return n.getLogger().trace("Long description:",a.yytext),21;case 42:return n.getLogger().trace("Long description:",a.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return _})();V.lexer=m;function I(){this.yy={}}return c(I,"Parser"),I.prototype=V,V.Parser=I,new I})();$.parser=$;var xe=$,D=[],ne=[],ee=0,ie={},ve=c(()=>{D=[],ne=[],ee=0,ie={}},"clear"),De=c(e=>{if(D.length===0)return null;const u=D[0].level;let d=null;for(let r=D.length-1;r>=0;r--)if(D[r].level===u&&!d&&(d=D[r]),D[r].levelh.parentId===f.id);for(const h of p){const L={id:h.id,parentId:f.id,label:G(h.label??"",r),isGroup:!1,ticket:h==null?void 0:h.ticket,priority:h==null?void 0:h.priority,assigned:h==null?void 0:h.assigned,icon:h==null?void 0:h.icon,shape:"kanbanItem",level:h.level,rx:5,ry:5,cssStyles:["text-align: left"]};u.push(L)}}return{nodes:u,edges:e,other:{},config:W()}},"getData"),Ie=c((e,u,d,r,f)=>{var w,C;const E=W();let p=((w=E.mindmap)==null?void 0:w.padding)??K.mindmap.padding;switch(r){case y.ROUNDED_RECT:case y.RECT:case y.HEXAGON:p*=2}const h={id:G(u,E)||"kbn"+ee++,level:e,label:G(d,E),width:((C=E.mindmap)==null?void 0:C.maxNodeWidth)??K.mindmap.maxNodeWidth,padding:p,isGroup:!1};if(f!==void 0){let N;f.includes(` +`)?N=f+` +`:N=`{ +`+f+` +}`;const s=Ee(N,{schema:ke});if(s.shape&&(s.shape!==s.shape.toLowerCase()||s.shape.includes("_")))throw new Error(`No such shape: ${s.shape}. Shape names should be lowercase.`);s!=null&&s.shape&&s.shape==="kanbanItem"&&(h.shape=s==null?void 0:s.shape),s!=null&&s.label&&(h.label=s==null?void 0:s.label),s!=null&&s.icon&&(h.icon=s==null?void 0:s.icon.toString()),s!=null&&s.assigned&&(h.assigned=s==null?void 0:s.assigned.toString()),s!=null&&s.ticket&&(h.ticket=s==null?void 0:s.ticket.toString()),s!=null&&s.priority&&(h.priority=s==null?void 0:s.priority)}const L=De(e);L?h.parentId=L.id||"kbn"+ee++:ne.push(h),D.push(h)},"addNode"),y={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Oe=c((e,u)=>{switch(te.debug("In get type",e,u),e){case"[":return y.RECT;case"(":return u===")"?y.ROUNDED_RECT:y.CLOUD;case"((":return y.CIRCLE;case")":return y.CLOUD;case"))":return y.BANG;case"{{":return y.HEXAGON;default:return y.DEFAULT}},"getType"),we=c((e,u)=>{ie[e]=u},"setElementForId"),Ce=c(e=>{if(!e)return;const u=W(),d=D[D.length-1];e.icon&&(d.icon=G(e.icon,u)),e.class&&(d.cssClasses=G(e.class,u))},"decorateNode"),Ae=c(e=>{switch(e){case y.DEFAULT:return"no-border";case y.RECT:return"rect";case y.ROUNDED_RECT:return"rounded-rect";case y.CIRCLE:return"circle";case y.CLOUD:return"cloud";case y.BANG:return"bang";case y.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),Te=c(()=>te,"getLogger"),Re=c(e=>ie[e],"getElementById"),Pe={clear:ve,addNode:Ie,getSections:he,getData:Le,nodeType:y,getType:Oe,setElementForId:we,decorateNode:Ce,type2Str:Ae,getLogger:Te,getElementById:Re},Ve=Pe,Be=c(async(e,u,d,r)=>{var M,U,A,j,V;te.debug(`Rendering kanban diagram +`+e);const E=r.db.getData(),p=W();p.htmlLabels=!1;const h=pe(u),L=h.append("g");L.attr("class","sections");const w=h.append("g");w.attr("class","items");const C=E.nodes.filter(m=>m.isGroup);let N=0;const s=10,H=[];let x=25;for(const m of C){const I=((M=p==null?void 0:p.kanban)==null?void 0:M.sectionWidth)||200;N=N+1,m.x=I*N+(N-1)*s/2,m.width=I,m.y=0,m.height=I*3,m.rx=5,m.ry=5,m.cssClasses=m.cssClasses+" section-"+N;const _=await ye(L,m);x=Math.max(x,(U=_==null?void 0:_.labelBBox)==null?void 0:U.height),H.push(_)}let P=0;for(const m of C){const I=H[P];P=P+1;const _=((A=p==null?void 0:p.kanban)==null?void 0:A.sectionWidth)||200,i=-_*3/2+x;let n=i;const a=E.nodes.filter(t=>t.parentId===m.id);for(const t of a){if(t.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");t.x=m.x,t.width=_-1.5*s;const l=(await be(w,t,{config:p})).node().getBBox();t.y=n+l.height/2,await me(t),n=t.y+l.height/2+s/2}const o=I.cluster.select("rect"),g=Math.max(n-i+3*s,50)+(x-25);o.attr("height",g)}_e(void 0,h,((j=p.mindmap)==null?void 0:j.padding)??K.kanban.padding,((V=p.mindmap)==null?void 0:V.useMaxWidth)??K.kanban.useMaxWidth)},"draw"),Fe={draw:Be},Ge=c(e=>{let u="";for(let r=0;re.darkMode?ce(r,f):le(r,f),"adjuster");for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Ge(e)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${e.textColor}; + fill: ${e.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } + ${Ne()} +`,"getStyles"),Me=He,ze={db:Ve,renderer:Fe,parser:xe,styles:Me};export{ze as diagram}; +//# sourceMappingURL=kanban-definition-6OIFK2YF.js.map diff --git a/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js.map b/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js.map new file mode 100644 index 000000000000..d7a05eeccaa6 --- /dev/null +++ b/extensions/continue/gui/assets/kanban-definition-6OIFK2YF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"kanban-definition-6OIFK2YF.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/kanban-definition-6OIFK2YF.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n getIconStyles\n} from \"./chunk-FMBD7UC4.mjs\";\nimport {\n JSON_SCHEMA,\n load\n} from \"./chunk-ZPAFE4SF.mjs\";\nimport {\n insertCluster,\n insertNode,\n positionNode\n} from \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport {\n defaultConfig_default,\n getConfig2 as getConfig,\n sanitizeText,\n setupGraphViewbox\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/kanban/parser/kanban.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 31], $Vd = [6, 7, 11, 24], $Ve = [1, 6, 13, 16, 17, 20, 23], $Vf = [1, 35], $Vg = [1, 36], $Vh = [1, 6, 7, 11, 13, 16, 17, 20, 23], $Vi = [1, 38];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mindMap\": 4, \"spaceLines\": 5, \"SPACELINE\": 6, \"NL\": 7, \"KANBAN\": 8, \"document\": 9, \"stop\": 10, \"EOF\": 11, \"statement\": 12, \"SPACELIST\": 13, \"node\": 14, \"shapeData\": 15, \"ICON\": 16, \"CLASS\": 17, \"nodeWithId\": 18, \"nodeWithoutId\": 19, \"NODE_DSTART\": 20, \"NODE_DESCR\": 21, \"NODE_DEND\": 22, \"NODE_ID\": 23, \"SHAPE_DATA\": 24, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"SPACELINE\", 7: \"NL\", 8: \"KANBAN\", 11: \"EOF\", 13: \"SPACELIST\", 16: \"ICON\", 17: \"CLASS\", 20: \"NODE_DSTART\", 21: \"NODE_DESCR\", 22: \"NODE_DEND\", 23: \"NODE_ID\", 24: \"SHAPE_DATA\" },\n productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 3], [12, 2], [12, 2], [12, 2], [12, 1], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [19, 3], [18, 1], [18, 4], [15, 2], [15, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n break;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0 - 1].id);\n yy.addNode($$[$0 - 2].length, $$[$0 - 1].id, $$[$0 - 1].descr, $$[$0 - 1].type, $$[$0]);\n break;\n case 16:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 17:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 18:\n case 23:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 19:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 20:\n yy.getLogger().trace(\"Node: \", $$[$0 - 1].id);\n yy.addNode(0, $$[$0 - 1].id, $$[$0 - 1].descr, $$[$0 - 1].type, $$[$0]);\n break;\n case 21:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 22:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 28:\n this.$ = { id: $$[$0], descr: $$[$0], type: 0 };\n break;\n case 29:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 30:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 31:\n this.$ = $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 16: $V3, 17: $V4, 18: 17, 19: 18, 20: $V5, 23: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 16: $V3, 17: $V4, 18: 17, 19: 18, 20: $V5, 23: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 16: $V3, 17: $V4, 18: 17, 19: 18, 20: $V5, 23: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 24], { 18: 17, 19: 18, 14: 27, 16: [1, 28], 17: [1, 29], 20: $V5, 23: $V6 }), o($Vb, [2, 19]), o($Vb, [2, 21], { 15: 30, 24: $Vc }), o($Vb, [2, 22]), o($Vb, [2, 23]), o($Vd, [2, 25]), o($Vd, [2, 26]), o($Vd, [2, 28], { 20: [1, 32] }), { 21: [1, 33] }, { 6: $V8, 7: $V9, 10: 34, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 16: $V3, 17: $V4, 18: 17, 19: 18, 20: $V5, 23: $V6 }, o($Ve, [2, 14], { 7: $Vf, 11: $Vg }), o($Vh, [2, 8]), o($Vh, [2, 9]), o($Vh, [2, 10]), o($Vb, [2, 16], { 15: 37, 24: $Vc }), o($Vb, [2, 17]), o($Vb, [2, 18]), o($Vb, [2, 20], { 24: $Vi }), o($Vd, [2, 31]), { 21: [1, 39] }, { 22: [1, 40] }, o($Ve, [2, 13], { 7: $Vf, 11: $Vg }), o($Vh, [2, 11]), o($Vh, [2, 12]), o($Vb, [2, 15], { 24: $Vi }), o($Vd, [2, 30]), { 22: [1, 41] }, o($Vd, [2, 27]), o($Vd, [2, 29])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n this.pushState(\"shapeData\");\n yy_.yytext = \"\";\n return 24;\n break;\n case 1:\n this.pushState(\"shapeDataStr\");\n return 24;\n break;\n case 2:\n this.popState();\n return 24;\n break;\n case 3:\n const re = /\\n\\s*/g;\n yy_.yytext = yy_.yytext.replace(re, \"
    \");\n return 24;\n break;\n case 4:\n return 24;\n break;\n case 5:\n this.popState();\n break;\n case 6:\n yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n break;\n case 7:\n return 8;\n break;\n case 8:\n this.begin(\"CLASS\");\n break;\n case 9:\n this.popState();\n return 17;\n break;\n case 10:\n this.popState();\n break;\n case 11:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 12:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n break;\n case 13:\n return 7;\n break;\n case 14:\n return 16;\n break;\n case 15:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 16:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 20;\n break;\n case 17:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 20;\n break;\n case 18:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 20;\n break;\n case 19:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 20;\n break;\n case 20:\n this.begin(\"NODE\");\n return 20;\n break;\n case 21:\n this.begin(\"NODE\");\n return 20;\n break;\n case 22:\n this.begin(\"NODE\");\n return 20;\n break;\n case 23:\n this.begin(\"NODE\");\n return 20;\n break;\n case 24:\n return 13;\n break;\n case 25:\n return 23;\n break;\n case 26:\n return 11;\n break;\n case 27:\n this.begin(\"NSTR2\");\n break;\n case 28:\n return \"NODE_DESCR\";\n break;\n case 29:\n this.popState();\n break;\n case 30:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 31:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n break;\n case 32:\n this.popState();\n break;\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n break;\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n break;\n case 35:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n break;\n case 36:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 37:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n break;\n case 38:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n break;\n case 39:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 40:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 41:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 21;\n break;\n case 42:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 21;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:@\\{)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\\\"]+)/i, /^(?:[^}^\"]+)/i, /^(?:\\})/i, /^(?:\\s*%%.*)/i, /^(?:kanban\\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\\n)/i, /^(?:::icon\\()/i, /^(?:[\\s]+[\\n])/i, /^(?:[\\n]+)/i, /^(?:[^\\)]+)/i, /^(?:\\))/i, /^(?:-\\))/i, /^(?:\\(-)/i, /^(?:\\)\\))/i, /^(?:\\))/i, /^(?:\\(\\()/i, /^(?:\\{\\{)/i, /^(?:\\()/i, /^(?:\\[)/i, /^(?:[\\s]+)/i, /^(?:[^\\(\\[\\n\\)\\{\\}@]+)/i, /^(?:$)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[^\"]+)/i, /^(?:[\"])/i, /^(?:[\\)]\\))/i, /^(?:[\\)])/i, /^(?:[\\]])/i, /^(?:\\}\\})/i, /^(?:\\(-)/i, /^(?:-\\))/i, /^(?:\\(\\()/i, /^(?:\\()/i, /^(?:[^\\)\\]\\(\\}]+)/i, /^(?:.+(?!\\(\\())/i],\n conditions: { \"shapeDataEndBracket\": { \"rules\": [], \"inclusive\": false }, \"shapeDataStr\": { \"rules\": [2, 3], \"inclusive\": false }, \"shapeData\": { \"rules\": [1, 4, 5], \"inclusive\": false }, \"CLASS\": { \"rules\": [9, 10], \"inclusive\": false }, \"ICON\": { \"rules\": [14, 15], \"inclusive\": false }, \"NSTR2\": { \"rules\": [28, 29], \"inclusive\": false }, \"NSTR\": { \"rules\": [31, 32], \"inclusive\": false }, \"NODE\": { \"rules\": [27, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 6, 7, 8, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar kanban_default = parser;\n\n// src/diagrams/kanban/kanbanDb.ts\nvar nodes = [];\nvar sections = [];\nvar cnt = 0;\nvar elements = {};\nvar clear = /* @__PURE__ */ __name(() => {\n nodes = [];\n sections = [];\n cnt = 0;\n elements = {};\n}, \"clear\");\nvar getSection = /* @__PURE__ */ __name((level) => {\n if (nodes.length === 0) {\n return null;\n }\n const sectionLevel = nodes[0].level;\n let lastSection = null;\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level === sectionLevel && !lastSection) {\n lastSection = nodes[i];\n }\n if (nodes[i].level < sectionLevel) {\n throw new Error('Items without section detected, found section (\"' + nodes[i].label + '\")');\n }\n }\n if (level === lastSection?.level) {\n return null;\n }\n return lastSection;\n}, \"getSection\");\nvar getSections = /* @__PURE__ */ __name(function() {\n return sections;\n}, \"getSections\");\nvar getData = /* @__PURE__ */ __name(function() {\n const edges = [];\n const _nodes = [];\n const sections2 = getSections();\n const conf = getConfig();\n for (const section of sections2) {\n const node = {\n id: section.id,\n label: sanitizeText(section.label ?? \"\", conf),\n isGroup: true,\n ticket: section.ticket,\n shape: \"kanbanSection\",\n level: section.level,\n look: conf.look\n };\n _nodes.push(node);\n const children = nodes.filter((n) => n.parentId === section.id);\n for (const item of children) {\n const childNode = {\n id: item.id,\n parentId: section.id,\n label: sanitizeText(item.label ?? \"\", conf),\n isGroup: false,\n ticket: item?.ticket,\n priority: item?.priority,\n assigned: item?.assigned,\n icon: item?.icon,\n shape: \"kanbanItem\",\n level: item.level,\n rx: 5,\n ry: 5,\n cssStyles: [\"text-align: left\"]\n };\n _nodes.push(childNode);\n }\n }\n return { nodes: _nodes, edges, other: {}, config: getConfig() };\n}, \"getData\");\nvar addNode = /* @__PURE__ */ __name((level, id, descr, type, shapeData) => {\n const conf = getConfig();\n let padding = conf.mindmap?.padding ?? defaultConfig_default.mindmap.padding;\n switch (type) {\n case nodeType.ROUNDED_RECT:\n case nodeType.RECT:\n case nodeType.HEXAGON:\n padding *= 2;\n }\n const node = {\n id: sanitizeText(id, conf) || \"kbn\" + cnt++,\n level,\n label: sanitizeText(descr, conf),\n width: conf.mindmap?.maxNodeWidth ?? defaultConfig_default.mindmap.maxNodeWidth,\n padding,\n isGroup: false\n };\n if (shapeData !== void 0) {\n let yamlData;\n if (!shapeData.includes(\"\\n\")) {\n yamlData = \"{\\n\" + shapeData + \"\\n}\";\n } else {\n yamlData = shapeData + \"\\n\";\n }\n const doc = load(yamlData, { schema: JSON_SCHEMA });\n if (doc.shape && (doc.shape !== doc.shape.toLowerCase() || doc.shape.includes(\"_\"))) {\n throw new Error(`No such shape: ${doc.shape}. Shape names should be lowercase.`);\n }\n if (doc?.shape && doc.shape === \"kanbanItem\") {\n node.shape = doc?.shape;\n }\n if (doc?.label) {\n node.label = doc?.label;\n }\n if (doc?.icon) {\n node.icon = doc?.icon.toString();\n }\n if (doc?.assigned) {\n node.assigned = doc?.assigned.toString();\n }\n if (doc?.ticket) {\n node.ticket = doc?.ticket.toString();\n }\n if (doc?.priority) {\n node.priority = doc?.priority;\n }\n }\n const section = getSection(level);\n if (section) {\n node.parentId = section.id || \"kbn\" + cnt++;\n } else {\n sections.push(node);\n }\n nodes.push(node);\n}, \"addNode\");\nvar nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nvar getType = /* @__PURE__ */ __name((startStr, endStr) => {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case \"((\":\n return nodeType.CIRCLE;\n case \")\":\n return nodeType.CLOUD;\n case \"))\":\n return nodeType.BANG;\n case \"{{\":\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n}, \"getType\");\nvar setElementForId = /* @__PURE__ */ __name((id, element) => {\n elements[id] = element;\n}, \"setElementForId\");\nvar decorateNode = /* @__PURE__ */ __name((decoration) => {\n if (!decoration) {\n return;\n }\n const config = getConfig();\n const node = nodes[nodes.length - 1];\n if (decoration.icon) {\n node.icon = sanitizeText(decoration.icon, config);\n }\n if (decoration.class) {\n node.cssClasses = sanitizeText(decoration.class, config);\n }\n}, \"decorateNode\");\nvar type2Str = /* @__PURE__ */ __name((type) => {\n switch (type) {\n case nodeType.DEFAULT:\n return \"no-border\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case nodeType.CIRCLE:\n return \"circle\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexgon\";\n // cspell: disable-line\n default:\n return \"no-border\";\n }\n}, \"type2Str\");\nvar getLogger = /* @__PURE__ */ __name(() => log, \"getLogger\");\nvar getElementById = /* @__PURE__ */ __name((id) => elements[id], \"getElementById\");\nvar db = {\n clear,\n addNode,\n getSections,\n getData,\n nodeType,\n getType,\n setElementForId,\n decorateNode,\n type2Str,\n getLogger,\n getElementById\n};\nvar kanbanDb_default = db;\n\n// src/diagrams/kanban/kanbanRenderer.ts\nvar draw = /* @__PURE__ */ __name(async (text, id, _version, diagObj) => {\n log.debug(\"Rendering kanban diagram\\n\" + text);\n const db2 = diagObj.db;\n const data4Layout = db2.getData();\n const conf = getConfig();\n conf.htmlLabels = false;\n const svg = selectSvgElement(id);\n const sectionsElem = svg.append(\"g\");\n sectionsElem.attr(\"class\", \"sections\");\n const nodesElem = svg.append(\"g\");\n nodesElem.attr(\"class\", \"items\");\n const sections2 = data4Layout.nodes.filter(\n // TODO: TypeScript 5.5 will infer this predicate automatically\n (node) => node.isGroup\n );\n let cnt2 = 0;\n const padding = 10;\n const sectionObjects = [];\n let maxLabelHeight = 25;\n for (const section of sections2) {\n const WIDTH = conf?.kanban?.sectionWidth || 200;\n cnt2 = cnt2 + 1;\n section.x = WIDTH * cnt2 + (cnt2 - 1) * padding / 2;\n section.width = WIDTH;\n section.y = 0;\n section.height = WIDTH * 3;\n section.rx = 5;\n section.ry = 5;\n section.cssClasses = section.cssClasses + \" section-\" + cnt2;\n const sectionObj = await insertCluster(sectionsElem, section);\n maxLabelHeight = Math.max(maxLabelHeight, sectionObj?.labelBBox?.height);\n sectionObjects.push(sectionObj);\n }\n let i = 0;\n for (const section of sections2) {\n const sectionObj = sectionObjects[i];\n i = i + 1;\n const WIDTH = conf?.kanban?.sectionWidth || 200;\n const top = -WIDTH * 3 / 2 + maxLabelHeight;\n let y = top;\n const sectionItems = data4Layout.nodes.filter((node) => node.parentId === section.id);\n for (const item of sectionItems) {\n if (item.isGroup) {\n throw new Error(\"Groups within groups are not allowed in Kanban diagrams\");\n }\n item.x = section.x;\n item.width = WIDTH - 1.5 * padding;\n const nodeEl = await insertNode(nodesElem, item, { config: conf });\n const bbox = nodeEl.node().getBBox();\n item.y = y + bbox.height / 2;\n await positionNode(item);\n y = item.y + bbox.height / 2 + padding / 2;\n }\n const rect = sectionObj.cluster.select(\"rect\");\n const height = Math.max(y - top + 3 * padding, 50) + (maxLabelHeight - 25);\n rect.attr(\"height\", height);\n }\n setupGraphViewbox(\n void 0,\n svg,\n conf.mindmap?.padding ?? defaultConfig_default.kanban.padding,\n conf.mindmap?.useMaxWidth ?? defaultConfig_default.kanban.useMaxWidth\n );\n}, \"draw\");\nvar kanbanRenderer_default = {\n draw\n};\n\n// src/diagrams/kanban/styles.ts\nimport { darken, lighten, isDark } from \"khroma\";\nvar genSections = /* @__PURE__ */ __name((options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n const adjuster = /* @__PURE__ */ __name((color, level) => options.darkMode ? darken(color, level) : lighten(color, level), \"adjuster\");\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {\n fill: ${adjuster(options[\"cScale\" + i], 10)};\n stroke: ${adjuster(options[\"cScale\" + i], 10)};\n\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .kanban-ticket-link {\n fill: ${options.background};\n stroke: ${options.nodeBorder};\n text-decoration: underline;\n }\n `;\n }\n return sections2;\n}, \"genSections\");\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .cluster-label, .label {\n color: ${options.textColor};\n fill: ${options.textColor};\n }\n .kanban-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n ${getIconStyles()}\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/kanban/kanban-definition.ts\nvar diagram = {\n db: kanbanDb_default,\n renderer: kanbanRenderer_default,\n parser: kanban_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","re","Parser","kanban_default","nodes","sections","cnt","elements","clear","getSection","level","sectionLevel","lastSection","getSections","getData","edges","_nodes","sections2","conf","getConfig","section","node","sanitizeText","children","item","childNode","addNode","id","descr","type","shapeData","padding","_a","defaultConfig_default","nodeType","_b","yamlData","doc","load","JSON_SCHEMA","getType","startStr","endStr","log","setElementForId","element","decorateNode","decoration","config","type2Str","getLogger","getElementById","db","kanbanDb_default","draw","text","_version","diagObj","data4Layout","svg","selectSvgElement","sectionsElem","nodesElem","cnt2","sectionObjects","maxLabelHeight","WIDTH","sectionObj","insertCluster","_c","top","y","sectionItems","bbox","insertNode","positionNode","rect","height","setupGraphViewbox","_d","_e","kanbanRenderer_default","genSections","options","isDark","lighten","darken","adjuster","color","sw","getStyles","getIconStyles","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/layout.js b/extensions/continue/gui/assets/layout.js new file mode 100644 index 000000000000..3a9c7d59e9ed --- /dev/null +++ b/extensions/continue/gui/assets/layout.js @@ -0,0 +1,2 @@ +import{G as g}from"./graph.js";import{b as Te,p as ce,q as le,g as z,e as ee,l as j,o as Ie,s as Me,c as Se,u as Fe,d as f,i as m,f as C,v as E,r as M}from"./_baseUniq.js";import{f as O,b as he,a as je,c as Ve,d as Ae,t as V,m as w,e as _,h as ve,g as X,l as T,i as Be}from"./_basePickBy.js";import{b7 as Ye,b8 as Ge,b9 as De,aS as qe,ba as We,aW as pe,aV as we,bb as $e,aR as q,aA as ze,aY as Xe,aC as Ue,bc as W}from"./index.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="dd6448e4-9313-48f3-9e57-c1bddda17820",e._sentryDebugIdIdentifier="sentry-dbid-dd6448e4-9313-48f3-9e57-c1bddda17820")})()}catch{}function He(e){return Ye(Ge(e,void 0,O),e+"")}var Je=1,Ze=4;function Ke(e){return Te(e,Je|Ze)}function Qe(e,n){return e==null?e:De(e,ce(n),qe)}function en(e,n){return e&&le(e,ce(n))}function nn(e,n){return e>n}function S(e,n){var r={};return n=z(n),le(e,function(t,a,i){We(r,a,n(t,a,i))}),r}function y(e){return e&&e.length?he(e,pe,nn):void 0}function U(e,n){return e&&e.length?he(e,z(n),je):void 0}function rn(e,n){var r=e.length;for(e.sort(n);r--;)e[r]=e[r].value;return e}function tn(e,n){if(e!==n){var r=e!==void 0,t=e===null,a=e===e,i=ee(e),o=n!==void 0,u=n===null,d=n===n,s=ee(n);if(!u&&!s&&!i&&e>n||i&&o&&d&&!u&&!s||t&&o&&d||!r&&d||!a)return 1;if(!t&&!i&&!s&&e=u)return d;var s=r[t];return d*(s=="desc"?-1:1)}}return e.index-n.index}function on(e,n,r){n.length?n=j(n,function(i){return we(i)?function(o){return Ie(o,i.length===1?i[0]:i)}:i}):n=[pe];var t=-1;n=j(n,$e(z));var a=Ve(e,function(i,o,u){var d=j(n,function(s){return s(i)});return{criteria:d,index:++t,value:i}});return rn(a,function(i,o){return an(i,o,r)})}function un(e,n){return Ae(e,n,function(r,t){return Me(e,t)})}var I=He(function(e,n){return e==null?{}:un(e,n)}),dn=Math.ceil,sn=Math.max;function fn(e,n,r,t){for(var a=-1,i=sn(dn((n-e)/(r||1)),0),o=Array(i);i--;)o[++a]=e,e+=r;return o}function cn(e){return function(n,r,t){return t&&typeof t!="number"&&q(n,r,t)&&(r=t=void 0),n=V(n),r===void 0?(r=n,n=0):r=V(r),t=t===void 0?n1&&q(e,n[0],n[1])?n=[]:r>2&&q(n[0],n[1],n[2])&&(n=[n[0]]),on(e,Se(n),[])}),ln=0;function H(e){var n=++ln;return Fe(e)+n}function hn(e,n,r){for(var t=-1,a=e.length,i=n.length,o={};++t0;--u)if(o=n[u].dequeue(),o){t=t.concat(A(e,n,r,o,!0));break}}}return t}function A(e,n,r,t,a){var i=a?[]:void 0;return f(e.inEdges(t.v),function(o){var u=e.edge(o),d=e.node(o.v);a&&i.push({v:o.v,w:o.w}),d.out-=u,$(n,r,d)}),f(e.outEdges(t.v),function(o){var u=e.edge(o),d=o.w,s=e.node(d);s.in-=u,$(n,r,s)}),e.removeNode(t.v),i}function yn(e,n){var r=new g,t=0,a=0;f(e.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),f(e.edges(),function(u){var d=r.edge(u.v,u.w)||0,s=n(u),c=d+s;r.setEdge(u.v,u.w,c),a=Math.max(a,r.node(u.v).out+=s),t=Math.max(t,r.node(u.w).in+=s)});var i=x(a+t+3).map(function(){return new pn}),o=t+1;return f(r.nodes(),function(u){$(i,o,r.node(u))}),{graph:r,buckets:i,zeroIdx:o}}function $(e,n,r){r.out?r.in?e[r.out-r.in+n].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}function kn(e){var n=e.graph().acyclicer==="greedy"?mn(e,r(e)):En(e);f(n,function(t){var a=e.edge(t);e.removeEdge(t),a.forwardName=t.name,a.reversed=!0,e.setEdge(t.w,t.v,a,H("rev"))});function r(t){return function(a){return t.edge(a).weight}}}function En(e){var n=[],r={},t={};function a(i){Object.prototype.hasOwnProperty.call(t,i)||(t[i]=!0,r[i]=!0,f(e.outEdges(i),function(o){Object.prototype.hasOwnProperty.call(r,o.w)?n.push(o):a(o.w)}),delete r[i])}return f(e.nodes(),a),n}function xn(e){f(e.edges(),function(n){var r=e.edge(n);if(r.reversed){e.removeEdge(n);var t=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(n.w,n.v,r,t)}})}function L(e,n,r,t){var a;do a=H(t);while(e.hasNode(a));return r.dummy=n,e.setNode(a,r),a}function On(e){var n=new g().setGraph(e.graph());return f(e.nodes(),function(r){n.setNode(r,e.node(r))}),f(e.edges(),function(r){var t=n.edge(r.v,r.w)||{weight:0,minlen:1},a=e.edge(r);n.setEdge(r.v,r.w,{weight:t.weight+a.weight,minlen:Math.max(t.minlen,a.minlen)})}),n}function be(e){var n=new g({multigraph:e.isMultigraph()}).setGraph(e.graph());return f(e.nodes(),function(r){e.children(r).length||n.setNode(r,e.node(r))}),f(e.edges(),function(r){n.setEdge(r,e.edge(r))}),n}function re(e,n){var r=e.x,t=e.y,a=n.x-r,i=n.y-t,o=e.width/2,u=e.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var d,s;return Math.abs(i)*o>Math.abs(a)*u?(i<0&&(u=-u),d=u*a/i,s=u):(a<0&&(o=-o),d=o,s=o*i/a),{x:r+d,y:t+s}}function F(e){var n=w(x(me(e)+1),function(){return[]});return f(e.nodes(),function(r){var t=e.node(r),a=t.rank;m(a)||(n[a][t.order]=r)}),n}function Ln(e){var n=_(w(e.nodes(),function(r){return e.node(r).rank}));f(e.nodes(),function(r){var t=e.node(r);ve(t,"rank")&&(t.rank-=n)})}function Nn(e){var n=_(w(e.nodes(),function(i){return e.node(i).rank})),r=[];f(e.nodes(),function(i){var o=e.node(i).rank-n;r[o]||(r[o]=[]),r[o].push(i)});var t=0,a=e.graph().nodeRankFactor;f(r,function(i,o){m(i)&&o%a!==0?--t:t&&f(i,function(u){e.node(u).rank+=t})})}function te(e,n,r,t){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=t),L(e,"border",a,n)}function me(e){return y(w(e.nodes(),function(n){var r=e.node(n).rank;if(!m(r))return r}))}function _n(e,n){var r={lhs:[],rhs:[]};return f(e,function(t){n(t)?r.lhs.push(t):r.rhs.push(t)}),r}function Pn(e,n){return n()}function Cn(e){function n(r){var t=e.children(r),a=e.node(r);if(t.length&&f(t,n),Object.prototype.hasOwnProperty.call(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var i=a.minRank,o=a.maxRank+1;io.lim&&(u=o,d=!0);var s=C(n.edges(),function(c){return d===oe(e,e.node(c.v),u)&&d!==oe(e,e.node(c.w),u)});return U(s,function(c){return P(n,c)})}function _e(e,n,r,t){var a=r.v,i=r.w;e.removeEdge(a,i),e.setEdge(t.v,t.w,{}),K(e),Z(e,n),Wn(e,n)}function Wn(e,n){var r=X(e.nodes(),function(a){return!n.node(a).parent}),t=Dn(e,r);t=t.slice(1),f(t,function(a){var i=e.node(a).parent,o=n.edge(a,i),u=!1;o||(o=n.edge(i,a),u=!0),n.node(a).rank=n.node(i).rank+(u?o.minlen:-o.minlen)})}function $n(e,n,r){return e.hasEdge(n,r)}function oe(e,n,r){return r.low<=n.lim&&n.lim<=r.lim}function zn(e){switch(e.graph().ranker){case"network-simplex":ue(e);break;case"tight-tree":Un(e);break;case"longest-path":Xn(e);break;default:ue(e)}}var Xn=J;function Un(e){J(e),ye(e)}function ue(e){k(e)}function Hn(e){var n=L(e,"root",{},"_root"),r=Jn(e),t=y(E(r))-1,a=2*t+1;e.graph().nestingRoot=n,f(e.edges(),function(o){e.edge(o).minlen*=a});var i=Zn(e)+1;f(e.children(),function(o){Pe(e,n,a,i,t,r,o)}),e.graph().nodeRankFactor=a}function Pe(e,n,r,t,a,i,o){var u=e.children(o);if(!u.length){o!==n&&e.setEdge(n,o,{weight:0,minlen:r});return}var d=te(e,"_bt"),s=te(e,"_bb"),c=e.node(o);e.setParent(d,o),c.borderTop=d,e.setParent(s,o),c.borderBottom=s,f(u,function(l){Pe(e,n,r,t,a,i,l);var h=e.node(l),v=h.borderTop?h.borderTop:l,p=h.borderBottom?h.borderBottom:l,b=h.borderTop?t:2*t,N=v!==p?1:a-i[o]+1;e.setEdge(d,v,{weight:b,minlen:N,nestingEdge:!0}),e.setEdge(p,s,{weight:b,minlen:N,nestingEdge:!0})}),e.parent(o)||e.setEdge(n,d,{weight:0,minlen:a+i[o]})}function Jn(e){var n={};function r(t,a){var i=e.children(t);i&&i.length&&f(i,function(o){r(o,a+1)}),n[t]=a}return f(e.children(),function(t){r(t,1)}),n}function Zn(e){return M(e.edges(),function(n,r){return n+e.edge(r).weight},0)}function Kn(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,f(e.edges(),function(r){var t=e.edge(r);t.nestingEdge&&e.removeEdge(r)})}function Qn(e,n,r){var t={},a;f(r,function(i){for(var o=e.parent(i),u,d;o;){if(u=e.parent(o),u?(d=t[u],t[u]=o):(d=a,a=o),d&&d!==o){n.setEdge(d,o);return}o=u}})}function er(e,n,r){var t=nr(e),a=new g({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(i){return e.node(i)});return f(e.nodes(),function(i){var o=e.node(i),u=e.parent(i);(o.rank===n||o.minRank<=n&&n<=o.maxRank)&&(a.setNode(i),a.setParent(i,u||t),f(e[r](i),function(d){var s=d.v===i?d.w:d.v,c=a.edge(s,i),l=m(c)?0:c.weight;a.setEdge(s,i,{weight:e.edge(d).weight+l})}),Object.prototype.hasOwnProperty.call(o,"minRank")&&a.setNode(i,{borderLeft:o.borderLeft[n],borderRight:o.borderRight[n]}))}),a}function nr(e){for(var n;e.hasNode(n=H("_root")););return n}function rr(e,n){for(var r=0,t=1;t0;)c%2&&(l+=u[c+1]),c=c-1>>1,u[c]+=s.weight;d+=s.weight*l})),d}function ar(e){var n={},r=C(e.nodes(),function(u){return!e.children(u).length}),t=y(w(r,function(u){return e.node(u).rank})),a=w(x(t+1),function(){return[]});function i(u){if(!ve(n,u)){n[u]=!0;var d=e.node(u);a[d.rank].push(u),f(e.successors(u),i)}}var o=R(r,function(u){return e.node(u).rank});return f(o,i),a}function ir(e,n){return w(n,function(r){var t=e.inEdges(r);if(t.length){var a=M(t,function(i,o){var u=e.edge(o),d=e.node(o.v);return{sum:i.sum+u.weight*d.order,weight:i.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}function or(e,n){var r={};f(e,function(a,i){var o=r[a.v]={indegree:0,in:[],out:[],vs:[a.v],i};m(a.barycenter)||(o.barycenter=a.barycenter,o.weight=a.weight)}),f(n.edges(),function(a){var i=r[a.v],o=r[a.w];!m(i)&&!m(o)&&(o.indegree++,i.out.push(r[a.w]))});var t=C(r,function(a){return!a.indegree});return ur(t)}function ur(e){var n=[];function r(i){return function(o){o.merged||(m(o.barycenter)||m(i.barycenter)||o.barycenter>=i.barycenter)&&dr(i,o)}}function t(i){return function(o){o.in.push(i),--o.indegree===0&&e.push(o)}}for(;e.length;){var a=e.pop();n.push(a),f(a.in.reverse(),r(a)),f(a.out,t(a))}return w(C(n,function(i){return!i.merged}),function(i){return I(i,["vs","i","barycenter","weight"])})}function dr(e,n){var r=0,t=0;e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/t,e.weight=t,e.i=Math.min(n.i,e.i),n.merged=!0}function sr(e,n){var r=_n(e,function(c){return Object.prototype.hasOwnProperty.call(c,"barycenter")}),t=r.lhs,a=R(r.rhs,function(c){return-c.i}),i=[],o=0,u=0,d=0;t.sort(fr(!!n)),d=de(i,a,d),f(t,function(c){d+=c.vs.length,i.push(c.vs),o+=c.barycenter*c.weight,u+=c.weight,d=de(i,a,d)});var s={vs:O(i)};return u&&(s.barycenter=o/u,s.weight=u),s}function de(e,n,r){for(var t;n.length&&(t=T(n)).i<=r;)n.pop(),e.push(t.vs),r++;return r}function fr(e){return function(n,r){return n.barycenterr.barycenter?1:e?r.i-n.i:n.i-r.i}}function Ce(e,n,r,t){var a=e.children(n),i=e.node(n),o=i?i.borderLeft:void 0,u=i?i.borderRight:void 0,d={};o&&(a=C(a,function(p){return p!==o&&p!==u}));var s=ir(e,a);f(s,function(p){if(e.children(p.v).length){var b=Ce(e,p.v,r,t);d[p.v]=b,Object.prototype.hasOwnProperty.call(b,"barycenter")&&lr(p,b)}});var c=or(s,r);cr(c,d);var l=sr(c,t);if(o&&(l.vs=O([o,l.vs,u]),e.predecessors(o).length)){var h=e.node(e.predecessors(o)[0]),v=e.node(e.predecessors(u)[0]);Object.prototype.hasOwnProperty.call(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+v.order)/(l.weight+2),l.weight+=2}return l}function cr(e,n){f(e,function(r){r.vs=O(r.vs.map(function(t){return n[t]?n[t].vs:t}))})}function lr(e,n){m(e.barycenter)?(e.barycenter=n.barycenter,e.weight=n.weight):(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight)}function hr(e){var n=me(e),r=se(e,x(1,n+1),"inEdges"),t=se(e,x(n-1,-1,-1),"outEdges"),a=ar(e);fe(e,a);for(var i=Number.POSITIVE_INFINITY,o,u=0,d=0;d<4;++u,++d){vr(u%2?r:t,u%4>=2),a=F(e);var s=rr(e,a);so||u>n[d].lim));for(s=d,d=t;(d=e.parent(d))!==s;)i.push(d);return{path:a.concat(i.reverse()),lca:s}}function br(e){var n={},r=0;function t(a){var i=r;f(e.children(a),t),n[a]={low:i,lim:r++}}return f(e.children(),t),n}function mr(e,n){var r={};function t(a,i){var o=0,u=0,d=a.length,s=T(i);return f(i,function(c,l){var h=yr(e,c),v=h?e.node(h).order:d;(h||c===s)&&(f(i.slice(u,l+1),function(p){f(e.predecessors(p),function(b){var N=e.node(b),Q=N.order;(Qs)&&Re(r,h,c)})})}function a(i,o){var u=-1,d,s=0;return f(o,function(c,l){if(e.node(c).dummy==="border"){var h=e.predecessors(c);h.length&&(d=e.node(h[0]).order,t(o,s,l,u,d),s=l,u=d)}t(o,s,o.length,d,i.length)}),o}return M(n,a),r}function yr(e,n){if(e.node(n).dummy)return X(e.predecessors(n),function(r){return e.node(r).dummy})}function Re(e,n,r){if(n>r){var t=n;n=r,r=t}var a=e[n];a||(e[n]=a={}),a[r]=!0}function kr(e,n,r){if(n>r){var t=n;n=r,r=t}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],r)}function Er(e,n,r,t){var a={},i={},o={};return f(n,function(u){f(u,function(d,s){a[d]=d,i[d]=d,o[d]=s})}),f(n,function(u){var d=-1;f(u,function(s){var c=t(s);if(c.length){c=R(c,function(b){return o[b]});for(var l=(c.length-1)/2,h=Math.floor(l),v=Math.ceil(l);h<=v;++h){var p=c[h];i[s]===s&&d{var t=r(" buildLayoutGraph",()=>qr(e));r(" runLayout",()=>Mr(t,r)),r(" updateInputGraph",()=>Sr(e,t))})}function Mr(e,n){n(" makeSpaceForEdgeLabels",()=>Wr(e)),n(" removeSelfEdges",()=>Qr(e)),n(" acyclic",()=>kn(e)),n(" nestingGraph.run",()=>Hn(e)),n(" rank",()=>zn(be(e))),n(" injectEdgeLabelProxies",()=>$r(e)),n(" removeEmptyRanks",()=>Nn(e)),n(" nestingGraph.cleanup",()=>Kn(e)),n(" normalizeRanks",()=>Ln(e)),n(" assignRankMinMax",()=>zr(e)),n(" removeEdgeLabelProxies",()=>Xr(e)),n(" normalize.run",()=>Sn(e)),n(" parentDummyChains",()=>pr(e)),n(" addBorderSegments",()=>Cn(e)),n(" order",()=>hr(e)),n(" insertSelfEdges",()=>et(e)),n(" adjustCoordinateSystem",()=>Rn(e)),n(" position",()=>Tr(e)),n(" positionSelfEdges",()=>nt(e)),n(" removeBorderNodes",()=>Kr(e)),n(" normalize.undo",()=>jn(e)),n(" fixupEdgeLabelCoords",()=>Jr(e)),n(" undoCoordinateSystem",()=>Tn(e)),n(" translateGraph",()=>Ur(e)),n(" assignNodeIntersects",()=>Hr(e)),n(" reversePoints",()=>Zr(e)),n(" acyclic.undo",()=>xn(e))}function Sr(e,n){f(e.nodes(),function(r){var t=e.node(r),a=n.node(r);t&&(t.x=a.x,t.y=a.y,n.children(r).length&&(t.width=a.width,t.height=a.height))}),f(e.edges(),function(r){var t=e.edge(r),a=n.edge(r);t.points=a.points,Object.prototype.hasOwnProperty.call(a,"x")&&(t.x=a.x,t.y=a.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var Fr=["nodesep","edgesep","ranksep","marginx","marginy"],jr={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Vr=["acyclicer","ranker","rankdir","align"],Ar=["width","height"],Br={width:0,height:0},Yr=["minlen","weight","width","height","labeloffset"],Gr={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Dr=["labelpos"];function qr(e){var n=new g({multigraph:!0,compound:!0}),r=D(e.graph());return n.setGraph(W({},jr,G(r,Fr),I(r,Vr))),f(e.nodes(),function(t){var a=D(e.node(t));n.setNode(t,Be(G(a,Ar),Br)),n.setParent(t,e.parent(t))}),f(e.edges(),function(t){var a=D(e.edge(t));n.setEdge(t,W({},Gr,G(a,Yr),I(a,Dr)))}),n}function Wr(e){var n=e.graph();n.ranksep/=2,f(e.edges(),function(r){var t=e.edge(r);t.minlen*=2,t.labelpos.toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?t.width+=t.labeloffset:t.height+=t.labeloffset)})}function $r(e){f(e.edges(),function(n){var r=e.edge(n);if(r.width&&r.height){var t=e.node(n.v),a=e.node(n.w),i={rank:(a.rank-t.rank)/2+t.rank,e:n};L(e,"edge-proxy",i,"_ep")}})}function zr(e){var n=0;f(e.nodes(),function(r){var t=e.node(r);t.borderTop&&(t.minRank=e.node(t.borderTop).rank,t.maxRank=e.node(t.borderBottom).rank,n=y(n,t.maxRank))}),e.graph().maxRank=n}function Xr(e){f(e.nodes(),function(n){var r=e.node(n);r.dummy==="edge-proxy"&&(e.edge(r.e).labelRank=r.rank,e.removeNode(n))})}function Ur(e){var n=Number.POSITIVE_INFINITY,r=0,t=Number.POSITIVE_INFINITY,a=0,i=e.graph(),o=i.marginx||0,u=i.marginy||0;function d(s){var c=s.x,l=s.y,h=s.width,v=s.height;n=Math.min(n,c-h/2),r=Math.max(r,c+h/2),t=Math.min(t,l-v/2),a=Math.max(a,l+v/2)}f(e.nodes(),function(s){d(e.node(s))}),f(e.edges(),function(s){var c=e.edge(s);Object.prototype.hasOwnProperty.call(c,"x")&&d(c)}),n-=o,t-=u,f(e.nodes(),function(s){var c=e.node(s);c.x-=n,c.y-=t}),f(e.edges(),function(s){var c=e.edge(s);f(c.points,function(l){l.x-=n,l.y-=t}),Object.prototype.hasOwnProperty.call(c,"x")&&(c.x-=n),Object.prototype.hasOwnProperty.call(c,"y")&&(c.y-=t)}),i.width=r-n+o,i.height=a-t+u}function Hr(e){f(e.edges(),function(n){var r=e.edge(n),t=e.node(n.v),a=e.node(n.w),i,o;r.points?(i=r.points[0],o=r.points[r.points.length-1]):(r.points=[],i=a,o=t),r.points.unshift(re(t,i)),r.points.push(re(a,o))})}function Jr(e){f(e.edges(),function(n){var r=e.edge(n);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function Zr(e){f(e.edges(),function(n){var r=e.edge(n);r.reversed&&r.points.reverse()})}function Kr(e){f(e.nodes(),function(n){if(e.children(n).length){var r=e.node(n),t=e.node(r.borderTop),a=e.node(r.borderBottom),i=e.node(T(r.borderLeft)),o=e.node(T(r.borderRight));r.width=Math.abs(o.x-i.x),r.height=Math.abs(a.y-t.y),r.x=i.x+r.width/2,r.y=t.y+r.height/2}}),f(e.nodes(),function(n){e.node(n).dummy==="border"&&e.removeNode(n)})}function Qr(e){f(e.edges(),function(n){if(n.v===n.w){var r=e.node(n.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function et(e){var n=F(e);f(n,function(r){var t=0;f(r,function(a,i){var o=e.node(a);o.order=i+t,f(o.selfEdges,function(u){L(e,"selfedge",{width:u.label.width,height:u.label.height,rank:o.rank,order:i+ ++t,e:u.e,label:u.label},"_se")}),delete o.selfEdges})})}function nt(e){f(e.nodes(),function(n){var r=e.node(n);if(r.dummy==="selfedge"){var t=e.node(r.e.v),a=t.x+t.width/2,i=t.y,o=r.x-a,u=t.height/2;e.setEdge(r.e,r.label),e.removeNode(n),r.label.points=[{x:a+2*o/3,y:i-u},{x:a+5*o/6,y:i-u},{x:a+o,y:i},{x:a+5*o/6,y:i+u},{x:a+2*o/3,y:i+u}],r.label.x=r.x,r.label.y=r.y}})}function G(e,n){return S(I(e,n),Number)}function D(e){var n={};return f(e,function(r,t){n[t.toLowerCase()]=r}),n}export{ot as l}; +//# sourceMappingURL=layout.js.map diff --git a/extensions/continue/gui/assets/layout.js.map b/extensions/continue/gui/assets/layout.js.map new file mode 100644 index 000000000000..abd6763cbe88 --- /dev/null +++ b/extensions/continue/gui/assets/layout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layout.js","sources":["../../node_modules/lodash-es/_flatRest.js","../../node_modules/lodash-es/cloneDeep.js","../../node_modules/lodash-es/forIn.js","../../node_modules/lodash-es/forOwn.js","../../node_modules/lodash-es/_baseGt.js","../../node_modules/lodash-es/mapValues.js","../../node_modules/lodash-es/max.js","../../node_modules/lodash-es/minBy.js","../../node_modules/lodash-es/_baseSortBy.js","../../node_modules/lodash-es/_compareAscending.js","../../node_modules/lodash-es/_compareMultiple.js","../../node_modules/lodash-es/_baseOrderBy.js","../../node_modules/lodash-es/_basePick.js","../../node_modules/lodash-es/pick.js","../../node_modules/lodash-es/_baseRange.js","../../node_modules/lodash-es/_createRange.js","../../node_modules/lodash-es/range.js","../../node_modules/lodash-es/sortBy.js","../../node_modules/lodash-es/uniqueId.js","../../node_modules/lodash-es/_baseZipObject.js","../../node_modules/lodash-es/zipObject.js","../../node_modules/dagre-d3-es/src/dagre/data/list.js","../../node_modules/dagre-d3-es/src/dagre/greedy-fas.js","../../node_modules/dagre-d3-es/src/dagre/acyclic.js","../../node_modules/dagre-d3-es/src/dagre/util.js","../../node_modules/dagre-d3-es/src/dagre/add-border-segments.js","../../node_modules/dagre-d3-es/src/dagre/coordinate-system.js","../../node_modules/dagre-d3-es/src/dagre/normalize.js","../../node_modules/dagre-d3-es/src/dagre/rank/util.js","../../node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js","../../node_modules/dagre-d3-es/src/graphlib/alg/topsort.js","../../node_modules/dagre-d3-es/src/graphlib/alg/dfs.js","../../node_modules/dagre-d3-es/src/graphlib/alg/postorder.js","../../node_modules/dagre-d3-es/src/graphlib/alg/preorder.js","../../node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js","../../node_modules/dagre-d3-es/src/dagre/rank/index.js","../../node_modules/dagre-d3-es/src/dagre/nesting-graph.js","../../node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js","../../node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js","../../node_modules/dagre-d3-es/src/dagre/order/cross-count.js","../../node_modules/dagre-d3-es/src/dagre/order/init-order.js","../../node_modules/dagre-d3-es/src/dagre/order/barycenter.js","../../node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js","../../node_modules/dagre-d3-es/src/dagre/order/sort.js","../../node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js","../../node_modules/dagre-d3-es/src/dagre/order/index.js","../../node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js","../../node_modules/dagre-d3-es/src/dagre/position/bk.js","../../node_modules/dagre-d3-es/src/dagre/position/index.js","../../node_modules/dagre-d3-es/src/dagre/layout.js"],"sourcesContent":["import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n","import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nexport { List };\n\nclass List {\n constructor() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n dequeue() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n enqueue(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n toString() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return '[' + strs.join(', ') + ']';\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== '_next' && k !== '_prev') {\n return v;\n }\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { List } from './data/list.js';\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nexport { greedyFAS };\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(\n _.map(results, function (e) {\n return g.outEdges(e.v, e.w);\n }),\n );\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n while ((entry = sources.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry['in'] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function (v) {\n fasGraph.setNode(v, { v: v, in: 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function (e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, (fasGraph.node(e.v).out += weight));\n maxIn = Math.max(maxIn, (fasGraph.node(e.w)['in'] += weight));\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function () {\n return new List();\n });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function (v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry['in']) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry['in'] + zeroIdx].enqueue(entry);\n }\n}\n","import * as _ from 'lodash-es';\nimport { greedyFAS } from './greedy-fas.js';\n\nexport { run, undo };\n\nfunction run(g) {\n var fas = g.graph().acyclicer === 'greedy' ? greedyFAS(g, weightFn(g)) : dfsFAS(g);\n _.forEach(fas, function (e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId('rev'));\n });\n\n function weightFn(g) {\n return function (e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (Object.prototype.hasOwnProperty.call(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function (e) {\n if (Object.prototype.hasOwnProperty.call(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function (e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\n\nexport {\n addDummyNode,\n simplify,\n asNonCompoundGraph,\n successorWeights,\n predecessorWeights,\n intersectRect,\n buildLayerMatrix,\n normalizeRanks,\n removeEmptyRanks,\n addBorderNode,\n maxRank,\n partition,\n time,\n notime,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n simplified.setNode(v, g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen),\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function (e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function (e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var preds = {};\n _.forEach(g.inEdges(v), function (e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error('Not possible to find intersection inside of the rectangle');\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function () {\n return [];\n });\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n }),\n );\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (_.has(node, 'rank')) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n }),\n );\n\n var layers = [];\n _.forEach(g.nodes(), function (v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function (vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function (v) {\n g.node(v).rank += delta;\n });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0,\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, 'border', node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(\n _.map(g.nodes(), function (v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n }),\n );\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function (value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + ' time: ' + (_.now() - start) + 'ms');\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n","import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { addBorderSegments };\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'minRank')) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {\n addBorderNode(g, 'borderLeft', '_bl', v, node, rank);\n addBorderNode(g, 'borderRight', '_br', v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, 'border', label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","import * as _ from 'lodash-es';\n\nexport { adjust, undo };\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'bt' || rankDir === 'rl') {\n reverseY(g);\n }\n\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function (v) {\n swapWidthHeightOne(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n swapWidthHeightOne(g.edge(e));\n });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function (v) {\n reverseYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (Object.prototype.hasOwnProperty.call(edge, 'y')) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function (v) {\n swapXYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/**\n * TypeScript type imports:\n *\n * @import { Graph } from '../graphlib/graph.js';\n */\nimport * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, undo };\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function (edge) {\n normalizeEdge(g, edge);\n });\n}\n\n/**\n * @param {Graph} g\n */\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n /**\n * @typedef {Object} Attrs\n * @property {number} width\n * @property {number} height\n * @property {ReturnType} edgeLabel\n * @property {any} edgeObj\n * @property {ReturnType[\"rank\"]} rank\n * @property {string} [dummy]\n * @property {ReturnType[\"labelpos\"]} [labelpos]\n */\n\n /** @type {Attrs | undefined} */\n var attrs = undefined;\n var dummy, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0,\n height: 0,\n edgeLabel: edgeLabel,\n edgeObj: e,\n rank: vRank,\n };\n dummy = util.addDummyNode(g, 'edge', attrs, '_d');\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = 'edge-label';\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === 'edge-label') {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { longestPath, slack };\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (Object.prototype.hasOwnProperty.call(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(\n _.map(g.outEdges(v), function (e) {\n return dfs(e.w) - g.edge(e).minlen;\n }),\n );\n\n if (\n rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null\n ) {\n // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport { slack } from './util.js';\n\nexport { feasibleTree };\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function (e) {\n var edgeV = e.v,\n w = v === edgeV ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function (e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function (v) {\n g.node(v).rank += delta;\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { topsort, CycleException };\n\ntopsort.CycleException = CycleException;\n\nfunction topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (Object.prototype.hasOwnProperty.call(stack, node)) {\n throw new CycleException();\n }\n\n if (!Object.prototype.hasOwnProperty.call(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n _.each(g.predecessors(node), visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n _.each(g.sinks(), visit);\n\n if (_.size(visited) !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nfunction CycleException() {}\nCycleException.prototype = new Error(); // must be an instance of Error to pass testing\n","import * as _ from 'lodash-es';\n\nexport { dfs };\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * Order must be one of \"pre\" or \"post\".\n */\nfunction dfs(g, vs, order) {\n if (!_.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);\n\n var acc = [];\n var visited = {};\n _.each(vs, function (v) {\n if (!g.hasNode(v)) {\n throw new Error('Graph does not have node: ' + v);\n }\n\n doDfs(g, v, order === 'post', visited, navigation, acc);\n });\n return acc;\n}\n\nfunction doDfs(g, v, postorder, visited, navigation, acc) {\n if (!Object.prototype.hasOwnProperty.call(visited, v)) {\n visited[v] = true;\n\n if (!postorder) {\n acc.push(v);\n }\n _.each(navigation(v), function (w) {\n doDfs(g, w, postorder, visited, navigation, acc);\n });\n if (postorder) {\n acc.push(v);\n }\n }\n}\n","import { dfs } from './dfs.js';\n\nexport { postorder };\n\nfunction postorder(g, vs) {\n return dfs(g, vs, 'post');\n}\n","import { dfs } from './dfs.js';\n\nexport { preorder };\n\nfunction preorder(g, vs) {\n return dfs(g, vs, 'pre');\n}\n","import * as _ from 'lodash-es';\nimport * as alg from '../../graphlib/alg/index.js';\nimport { simplify } from '../util.js';\nimport { feasibleTree } from './feasible-tree.js';\nimport { longestPath, slack } from './util.js';\n\nexport { networkSimplex };\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n longestPath(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = alg.postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function (v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function (e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function (w) {\n if (!Object.prototype.hasOwnProperty.call(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function (e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function (edge) {\n return (\n flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel)\n );\n });\n\n return _.minBy(candidates, function (edge) {\n return slack(g, edge);\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function (v) {\n return !g.node(v).parent;\n });\n var vs = alg.preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function (v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","import { feasibleTree } from './feasible-tree.js';\nimport { networkSimplex } from './network-simplex.js';\nimport { longestPath } from './util.js';\n\nexport { rank };\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch (g.graph().ranker) {\n case 'network-simplex':\n networkSimplexRanker(g);\n break;\n case 'tight-tree':\n tightTreeRanker(g);\n break;\n case 'longest-path':\n longestPathRanker(g);\n break;\n default:\n networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, cleanup };\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, 'root', {}, '_root');\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function (e) {\n g.edge(e).minlen *= nodeSep;\n });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, '_bt');\n var bottom = util.addBorderNode(g, '_bb');\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function (child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function (v) {\n dfs(v, 1);\n });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(\n g.edges(),\n function (acc, e) {\n return acc + g.edge(e).weight;\n },\n 0,\n );\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { addSubgraphConstraints };\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function (v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\n\nexport { buildLayerGraph };\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true })\n .setGraph({ root: root })\n .setDefaultNodeLabel(function (v) {\n return g.node(v);\n });\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || (node.minRank <= rank && rank <= node.maxRank)) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function (e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (Object.prototype.hasOwnProperty.call(node, 'minRank')) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank],\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId('_root'))));\n return v;\n}\n","import * as _ from 'lodash-es';\n\nexport { crossCount };\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(\n southLayer,\n _.map(southLayer, function (v, i) {\n return i;\n }),\n );\n var southEntries = _.flatten(\n _.map(northLayer, function (v) {\n return _.sortBy(\n _.map(g.outEdges(v), function (e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }),\n 'pos',\n );\n }),\n );\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function () {\n return 0;\n });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(\n // @ts-expect-error\n southEntries.forEach(function (entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n // @ts-expect-error\n while (index > 0) {\n // @ts-expect-error\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n // @ts-expect-error\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n }),\n );\n\n return cc;\n}\n","import * as _ from 'lodash-es';\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nexport function initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function (v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(\n _.map(simpleNodes, function (v) {\n return g.node(v).rank;\n }),\n );\n var layers = _.map(_.range(maxRank + 1), function () {\n return [];\n });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function (v) {\n return g.node(v).rank;\n });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n","import * as _ from 'lodash-es';\n\nexport { barycenter };\n\nfunction barycenter(g, movable) {\n return _.map(movable, function (v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(\n inV,\n function (acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + edge.weight * nodeU.order,\n weight: acc.weight + edge.weight,\n };\n },\n { sum: 0, weight: 0 },\n );\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight,\n };\n }\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { resolveConflicts };\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function (entry, i) {\n var tmp = (mappedEntries[entry.v] = {\n indegree: 0,\n in: [],\n out: [],\n vs: [entry.v],\n i: i,\n });\n if (!_.isUndefined(entry.barycenter)) {\n // @ts-expect-error\n tmp.barycenter = entry.barycenter;\n // @ts-expect-error\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function (e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function (entry) {\n // @ts-expect-error\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function (uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (\n _.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter\n ) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function (wEntry) {\n wEntry['in'].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry['in'].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(\n _.filter(entries, function (entry) {\n return !entry.merged;\n }),\n function (entry) {\n return _.pick(entry, ['vs', 'i', 'barycenter', 'weight']);\n },\n );\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","import * as _ from 'lodash-es';\nimport * as util from '../util.js';\n\nexport { sort };\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function (entry) {\n return Object.prototype.hasOwnProperty.call(entry, 'barycenter');\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function (entry) {\n return -entry.i;\n }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function (entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","import * as _ from 'lodash-es';\nimport { barycenter } from './barycenter.js';\nimport { resolveConflicts } from './resolve-conflicts.js';\nimport { sort } from './sort.js';\n\nexport { sortSubgraph };\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight : undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function (w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function (entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (Object.prototype.hasOwnProperty.call(subgraphResult, 'barycenter')) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br]);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!Object.prototype.hasOwnProperty.call(result, 'barycenter')) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter =\n (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function (entry) {\n entry.vs = _.flatten(\n entry.vs.map(function (v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n }),\n );\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter =\n (target.barycenter * target.weight + other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\nimport { addSubgraphConstraints } from './add-subgraph-constraints.js';\nimport { buildLayerGraph } from './build-layer-graph.js';\nimport { crossCount } from './cross-count.js';\nimport { initOrder } from './init-order.js';\nimport { sortSubgraph } from './sort-subgraph.js';\n\nexport { order };\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), 'inEdges'),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), 'outEdges');\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function (rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function (lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function (v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, i) {\n g.node(v).order = i;\n });\n });\n}\n","import * as _ from 'lodash-es';\n\nexport { parentDummyChains };\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (\n pathIdx < path.length - 1 &&\n g.node((pathV = path[pathIdx + 1])).minRank <= node.rank\n ) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nexport {\n positionX,\n findType1Conflicts,\n findType2Conflicts,\n addConflict,\n hasConflict,\n verticalAlignment,\n horizontalCompaction,\n alignCoordinates,\n findSmallestWidthAlignment,\n balance,\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function (v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i + 1), function (scanNode) {\n _.forEach(g.predecessors(scanNode), function (u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n // @ts-expect-error\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function (i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function (u) {\n var uNode = g.node(u);\n if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function (v, southLookahead) {\n if (g.node(v).dummy === 'border') {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n // @ts-expect-error\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function (u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return !!conflicts[v] && Object.prototype.hasOwnProperty.call(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function (layer) {\n var prevIdx = -1;\n _.forEach(layer, function (v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function (w) {\n return pos[w];\n });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? 'borderLeft' : 'borderRight';\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function (acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function (acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function (v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function (layer) {\n var u;\n _.forEach(layer, function (v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach(['u', 'd'], function (vert) {\n _.forEach(['l', 'r'], function (horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === 'l' ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function (x) {\n return x + delta;\n });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function (ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(findType1Conflicts(g, layering), findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach(['u', 'd'], function (vert) {\n adjustedLayering = vert === 'u' ? layering : _.values(layering).reverse();\n _.forEach(['l', 'r'], function (horiz) {\n if (horiz === 'r') {\n adjustedLayering = _.map(adjustedLayering, function (inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === 'u' ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === 'r');\n if (horiz === 'r') {\n xs = _.mapValues(xs, function (x) {\n return -x;\n });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function (g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (Object.prototype.hasOwnProperty.call(vLabel, 'labelpos')) {\n switch (vLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = -vLabel.width / 2;\n break;\n case 'r':\n delta = vLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (Object.prototype.hasOwnProperty.call(wLabel, 'labelpos')) {\n switch (wLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = wLabel.width / 2;\n break;\n case 'r':\n delta = -wLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","import * as _ from 'lodash-es';\nimport * as util from '../util.js';\nimport { positionX } from './bk.js';\n\nexport { position };\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forOwn(positionX(g), function (x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function (layer) {\n var maxHeight = _.max(\n _.map(layer, function (v) {\n return g.node(v).height;\n }),\n );\n _.forEach(layer, function (v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n","import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { addBorderSegments } from './add-border-segments.js';\nimport * as coordinateSystem from './coordinate-system.js';\nimport * as acyclic from './acyclic.js';\nimport * as normalize from './normalize.js';\nimport { rank } from './rank/index.js';\nimport * as nestingGraph from './nesting-graph.js';\nimport { order } from './order/index.js';\nimport { parentDummyChains } from './parent-dummy-chains.js';\nimport { position } from './position/index.js';\nimport * as util from './util.js';\n\nexport { layout };\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time('layout', () => {\n var layoutGraph = time(' buildLayoutGraph', () => buildLayoutGraph(g));\n time(' runLayout', () => runLayout(layoutGraph, time));\n time(' updateInputGraph', () => updateInputGraph(g, layoutGraph));\n });\n}\n\nfunction runLayout(g, time) {\n time(' makeSpaceForEdgeLabels', () => makeSpaceForEdgeLabels(g));\n time(' removeSelfEdges', () => removeSelfEdges(g));\n time(' acyclic', () => acyclic.run(g));\n time(' nestingGraph.run', () => nestingGraph.run(g));\n time(' rank', () => rank(util.asNonCompoundGraph(g)));\n time(' injectEdgeLabelProxies', () => injectEdgeLabelProxies(g));\n time(' removeEmptyRanks', () => util.removeEmptyRanks(g));\n time(' nestingGraph.cleanup', () => nestingGraph.cleanup(g));\n time(' normalizeRanks', () => util.normalizeRanks(g));\n time(' assignRankMinMax', () => assignRankMinMax(g));\n time(' removeEdgeLabelProxies', () => removeEdgeLabelProxies(g));\n time(' normalize.run', () => normalize.run(g));\n time(' parentDummyChains', () => parentDummyChains(g));\n time(' addBorderSegments', () => addBorderSegments(g));\n time(' order', () => order(g));\n time(' insertSelfEdges', () => insertSelfEdges(g));\n time(' adjustCoordinateSystem', () => coordinateSystem.adjust(g));\n time(' position', () => position(g));\n time(' positionSelfEdges', () => positionSelfEdges(g));\n time(' removeBorderNodes', () => removeBorderNodes(g));\n time(' normalize.undo', () => normalize.undo(g));\n time(' fixupEdgeLabelCoords', () => fixupEdgeLabelCoords(g));\n time(' undoCoordinateSystem', () => coordinateSystem.undo(g));\n time(' translateGraph', () => translateGraph(g));\n time(' assignNodeIntersects', () => assignNodeIntersects(g));\n time(' reversePoints', () => reversePointsForReversedEdges(g));\n time(' acyclic.undo', () => acyclic.undo(g));\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function (v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (Object.prototype.hasOwnProperty.call(layoutLabel, 'x')) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' };\nvar graphAttrs = ['acyclicer', 'ranker', 'rankdir', 'align'];\nvar nodeNumAttrs = ['width', 'height'];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];\nvar edgeDefaults = {\n minlen: 1,\n weight: 1,\n width: 0,\n height: 0,\n labeloffset: 10,\n labelpos: 'r',\n};\nvar edgeAttrs = ['labelpos'];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(\n _.merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), _.pick(graph, graphAttrs)),\n );\n\n _.forEach(inputGraph.nodes(), function (v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(\n e,\n _.merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), _.pick(edge, edgeAttrs)),\n );\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== 'c') {\n if (graph.rankdir === 'TB' || graph.rankdir === 'BT') {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, 'edge-proxy', label, '_ep');\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n // @ts-expect-error\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'edge-proxy') {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function (v) {\n getExtremes(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function (p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n edge.x -= minX;\n }\n if (Object.prototype.hasOwnProperty.call(edge, 'y')) {\n edge.y -= minY;\n }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (Object.prototype.hasOwnProperty.call(edge, 'x')) {\n if (edge.labelpos === 'l' || edge.labelpos === 'r') {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case 'l':\n edge.x -= edge.width / 2 + edge.labeloffset;\n break;\n case 'r':\n edge.x += edge.width / 2 + edge.labeloffset;\n break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function (v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function (v) {\n if (g.node(v).dummy === 'border') {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function (e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function (layer) {\n var orderShift = 0;\n _.forEach(layer, function (v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function (selfEdge) {\n util.addDummyNode(\n g,\n 'selfedge',\n {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + ++orderShift,\n e: selfEdge.e,\n label: selfEdge.label,\n },\n '_se',\n );\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'selfedge') {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + (2 * dx) / 3, y: y - dy },\n { x: x + (5 * dx) / 6, y: y - dy },\n { x: x + dx, y: y },\n { x: x + (5 * dx) / 6, y: y + dy },\n { x: x + (2 * dx) / 3, y: y + dy },\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function (v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n"],"names":["flatRest","func","setToString","overRest","flatten","CLONE_DEEP_FLAG","CLONE_SYMBOLS_FLAG","cloneDeep","value","baseClone","forIn","object","iteratee","baseFor","castFunction","keysIn","forOwn","baseForOwn","baseGt","other","mapValues","result","baseIteratee","key","baseAssignValue","max","array","baseExtremum","identity","minBy","baseLt","baseSortBy","comparer","length","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","isSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareMultiple","orders","index","objCriteria","othCriteria","ordersLength","order","baseOrderBy","collection","iteratees","arrayMap","isArray","baseGet","baseUnary","baseMap","criteria","basePick","paths","basePickBy","path","hasIn","pick","nativeCeil","nativeMax","baseRange","start","end","step","fromRight","createRange","isIterateeCall","toFinite","range","sortBy","baseRest","baseFlatten","idCounter","uniqueId","prefix","id","toString","baseZipObject","props","values","assignFunc","valsLength","zipObject","assignValue","List","sentinel","entry","unlink","strs","curr","filterOutLinks","k","v","DEFAULT_WEIGHT_FN","_.constant","greedyFAS","g","weightFn","state","buildState","results","doGreedyFAS","_.flatten","_.map","e","buckets","zeroIdx","sources","sinks","removeNode","i","collectPredecessors","_.forEach","edge","weight","uEntry","assignBucket","w","wEntry","fasGraph","Graph","maxIn","maxOut","prevWeight","edgeWeight","_.range","run","fas","dfsFAS","label","_.uniqueId","stack","visited","dfs","undo","forwardName","addDummyNode","type","attrs","name","simplify","simplified","simpleLabel","asNonCompoundGraph","intersectRect","rect","point","x","y","dx","dy","h","sx","sy","buildLayerMatrix","layering","maxRank","node","rank","_.isUndefined","normalizeRanks","min","_.min","_.has","removeEmptyRanks","offset","layers","delta","nodeRankFactor","vs","addBorderNode","_.max","partition","fn","notime","addBorderSegments","children","prop","sg","sgNode","prev","util.addDummyNode","adjust","rankDir","swapWidthHeight","reverseY","swapXY","swapWidthHeightOne","reverseYOne","swapXYOne","normalizeEdge","vRank","wRank","edgeLabel","labelRank","dummy","origLabel","longestPath","slack","feasibleTree","t","size","tightTree","findMinSlackEdge","shiftRanks","edgeV","_.minBy","CycleException","_.isArray","navigation","acc","_.each","doDfs","postorder","preorder","networkSimplex","initLowLimValues","initCutValues","calcCutValue","leaveEdge","enterEdge","exchangeEdges","f","alg.postorder","assignCutValue","child","childLab","parent","childIsTail","graphEdge","cutValue","isOutEdge","pointsToHead","otherWeight","isTreeEdge","otherCutValue","tree","root","dfsAssignLowLim","nextLim","low","_.find","vLabel","wLabel","tailLabel","flip","candidates","_.filter","isDescendant","updateRanks","alg.preorder","flipped","u","rootLabel","networkSimplexRanker","tightTreeRanker","longestPathRanker","depths","treeDepths","height","_.values","nodeSep","sumWeights","top","util.addBorderNode","bottom","childNode","childTop","childBottom","thisWeight","minlen","depth","_.reduce","cleanup","graphLabel","addSubgraphConstraints","cg","rootPrev","prevChild","buildLayerGraph","relationship","createRootNode","crossCount","cc","twoLayerCrossCount","northLayer","southLayer","southPos","_.zipObject","southEntries","_.sortBy","firstIndex","treeSize","weightSum","initOrder","simpleNodes","orderedVs","barycenter","movable","inV","nodeU","resolveConflicts","entries","mappedEntries","tmp","entryV","entryW","sourceSet","doResolveConflicts","handleIn","vEntry","mergeEntries","handleOut","_.pick","target","source","sum","sort","biasRight","parts","util.partition","sortable","unsortable","vsIndex","compareWithBias","consumeUnsortable","last","_.last","bias","sortSubgraph","bl","br","subgraphs","barycenters","subgraphResult","mergeBarycenters","expandSubgraphs","blPred","brPred","util.maxRank","downLayerGraphs","buildLayerGraphs","upLayerGraphs","assignOrder","bestCC","best","lastBest","sweepLayerGraphs","util.buildLayerMatrix","_.cloneDeep","ranks","layerGraphs","lg","sorted","layer","parentDummyChains","postorderNums","edgeObj","pathData","findPath","lca","pathIdx","pathV","ascending","vPath","wPath","lim","findType1Conflicts","conflicts","visitLayer","prevLayer","k0","scanPos","prevLayerLength","lastNode","findOtherInnerSegmentNode","k1","scanNode","uLabel","uPos","addConflict","findType2Conflicts","scan","south","southEnd","prevNorthBorder","nextNorthBorder","uNode","north","prevNorthPos","nextNorthPos","southLookahead","predecessors","conflictsV","hasConflict","verticalAlignment","neighborFn","align","pos","prevIdx","ws","mp","il","horizontalCompaction","reverseSep","xs","blockG","buildBlockGraph","borderType","iterate","setXsFunc","nextNodesFunc","elem","pass1","pass2","blockGraph","sepFn","sep","vRoot","uRoot","prevMax","findSmallestWidthAlignment","xss","_.forIn","halfWidth","width","alignCoordinates","alignTo","alignToVals","alignToMin","alignToMax","vert","horiz","alignment","xsVals","_.mapValues","balance","ignore","positionX","_.merge","adjustedLayering","inner","smallestWidth","edgeSep","position","util.asNonCompoundGraph","positionY","_.forOwn","rankSep","prevY","maxHeight","layout","opts","time","util.notime","layoutGraph","buildLayoutGraph","runLayout","updateInputGraph","makeSpaceForEdgeLabels","removeSelfEdges","acyclic.run","nestingGraph.run","injectEdgeLabelProxies","util.removeEmptyRanks","nestingGraph.cleanup","util.normalizeRanks","assignRankMinMax","removeEdgeLabelProxies","normalize.run","insertSelfEdges","coordinateSystem.adjust","positionSelfEdges","removeBorderNodes","normalize.undo","fixupEdgeLabelCoords","coordinateSystem.undo","translateGraph","assignNodeIntersects","reversePointsForReversedEdges","acyclic.undo","inputGraph","inputLabel","layoutLabel","graphNumAttrs","graphDefaults","graphAttrs","nodeNumAttrs","nodeDefaults","edgeNumAttrs","edgeDefaults","edgeAttrs","graph","canonicalize","selectNumberAttrs","_.defaults","minX","maxX","minY","maxY","marginX","marginY","getExtremes","p","nodeV","nodeW","p1","p2","util.intersectRect","b","l","r","orderShift","selfEdge","selfNode","obj","newAttrs"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/linear.js b/extensions/continue/gui/assets/linear.js new file mode 100644 index 000000000000..850635fbb8c6 --- /dev/null +++ b/extensions/continue/gui/assets/linear.js @@ -0,0 +1,2 @@ +import{aL as D,aM as M,aN as N,aO as I,aP as k}from"./index.js";import{i as S}from"./init.js";import{e as m,f as T,a as E,b as _}from"./defaultLocale.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="e23c5bc0-f5af-4a17-95e7-757b5f6910ac",n._sentryDebugIdIdentifier="sentry-dbid-e23c5bc0-f5af-4a17-95e7-757b5f6910ac")})()}catch{}function g(n,e){return n==null||e==null?NaN:ne?1:n>=e?0:NaN}function j(n,e){return n==null||e==null?NaN:en?1:e>=n?0:NaN}function b(n){let e,t,r;n.length!==2?(e=g,t=(f,c)=>g(n(f),c),r=(f,c)=>n(f)-c):(e=n===g||n===j?n:q,t=n,r=n);function u(f,c,i=0,h=f.length){if(i>>1;t(f[l],c)<0?i=l+1:h=l}while(i>>1;t(f[l],c)<=0?i=l+1:h=l}while(ii&&r(f[l-1],c)>-r(f[l],c)?l-1:l}return{left:u,center:a,right:o}}function q(){return 0}function F(n){return n===null?NaN:+n}const P=b(g),z=P.right;b(F).center;const B=Math.sqrt(50),L=Math.sqrt(10),O=Math.sqrt(2);function y(n,e,t){const r=(e-n)/Math.max(0,t),u=Math.floor(Math.log10(r)),o=r/Math.pow(10,u),a=o>=B?10:o>=L?5:o>=O?2:1;let f,c,i;return u<0?(i=Math.pow(10,-u)/a,f=Math.round(n*i),c=Math.round(e*i),f/ie&&--c,i=-i):(i=Math.pow(10,u)*a,f=Math.round(n/i),c=Math.round(e/i),f*ie&&--c),c0))return[];if(n===e)return[n];const r=e=u))return[];const f=o-u+1,c=new Array(f);if(r)if(a<0)for(let i=0;ie&&(t=n,n=e,e=t),function(r){return Math.max(n,Math.min(e,r))}}function nn(n,e,t){var r=n[0],u=n[1],o=e[0],a=e[1];return u2?en:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?o:(c||(c=f(n.map(r),e,t)))(r(a(s)))}return l.invert=function(s){return a(u((i||(i=f(e,n.map(r),M)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,X),h()):n.slice()},l.range=function(s){return arguments.length?(e=Array.from(s),h()):e.slice()},l.rangeRound=function(s){return e=Array.from(s),t=J,h()},l.clamp=function(s){return arguments.length?(a=s?!0:d,h()):a!==d},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(o=s,l):o},function(s,R){return r=s,u=R,h()}}function un(){return tn()(d,d)}function an(n,e,t,r){var u=$(n,e,t),o;switch(r=T(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(e));return r.precision==null&&!isNaN(o=Q(u,a))&&(r.precision=o),E(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=U(u,Math.max(Math.abs(n),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=K(u))&&(r.precision=o-(r.type==="%")*2);break}}return _(r)}function fn(n){var e=n.domain;return n.ticks=function(t){var r=e();return V(r[0],r[r.length-1],t??10)},n.tickFormat=function(t,r){var u=e();return an(u[0],u[u.length-1],t??10,r)},n.nice=function(t){t==null&&(t=10);var r=e(),u=0,o=r.length-1,a=r[u],f=r[o],c,i,h=10;for(f0;){if(i=p(a,f,t),i===c)return r[u]=a,r[o]=f,e(r);if(i>0)a=Math.floor(a/i)*i,f=Math.ceil(f/i)*i;else if(i<0)a=Math.ceil(a*i)/i,f=Math.floor(f*i)/i;else break;c=i}return n},n}function on(){var n=un();return n.copy=function(){return rn(n,on())},S.apply(n,arguments),fn(n)}export{rn as a,b,un as c,on as l,$ as t}; +//# sourceMappingURL=linear.js.map diff --git a/extensions/continue/gui/assets/linear.js.map b/extensions/continue/gui/assets/linear.js.map new file mode 100644 index 000000000000..dcb81b457120 --- /dev/null +++ b/extensions/continue/gui/assets/linear.js.map @@ -0,0 +1 @@ +{"version":3,"file":"linear.js","sources":["../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/descending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js"],"sourcesContent":["export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n"],"names":["ascending","a","b","descending","bisector","f","compare1","compare2","delta","d","x","zero","left","lo","hi","mid","right","center","i","number","ascendingBisect","bisectRight","e10","e5","e2","tickSpec","start","stop","count","step","power","error","factor","i1","i2","inc","ticks","reverse","n","tickIncrement","tickStep","numberArray","c","t","isNumberArray","genericArray","nb","na","value","date","object","k","interpolate","constant","color","rgb","string","interpolateRound","precisionFixed","exponent","precisionPrefix","precisionRound","max","constants","unit","identity","normalize","clamper","bimap","domain","range","d0","d1","r0","r1","polymap","j","r","bisect","copy","source","target","transformer","interpolateValue","transform","untransform","unknown","clamp","piecewise","output","input","rescale","scale","y","interpolateNumber","_","u","continuous","tickFormat","specifier","precision","formatSpecifier","formatPrefix","format","linearish","i0","prestep","maxIter","linear","initRange"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js b/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js new file mode 100644 index 000000000000..b70578cf1764 --- /dev/null +++ b/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js @@ -0,0 +1,69 @@ +import{g as le}from"./chunk-55IACEB6.js";import{s as he}from"./chunk-QN33PNHL.js";import{_ as l,l as C,o as de,r as ge,F as B,c as z,i as F,aH as ue,W as pe,X as fe,Y as ye}from"./index.js";import"./XCircleIcon.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="f5bc81de-f13b-4578-8ed8-e35091c4fa74",t._sentryDebugIdIdentifier="sentry-dbid-f5bc81de-f13b-4578-8ed8-e35091c4fa74")})()}catch{}const b=[];for(let t=0;t<256;++t)b.push((t+256).toString(16).slice(1));function me(t,e=0){return(b[t[e+0]]+b[t[e+1]]+b[t[e+2]]+b[t[e+3]]+"-"+b[t[e+4]]+b[t[e+5]]+"-"+b[t[e+6]]+b[t[e+7]]+"-"+b[t[e+8]]+b[t[e+9]]+"-"+b[t[e+10]]+b[t[e+11]]+b[t[e+12]]+b[t[e+13]]+b[t[e+14]]+b[t[e+15]]).toLowerCase()}let X;const be=new Uint8Array(16);function Ee(){if(!X){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");X=crypto.getRandomValues.bind(crypto)}return X(be)}const _e=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:_e};function Se(t,e,n){var u;if(ne.randomUUID&&!t)return ne.randomUUID();t=t||{};const c=t.random??((u=t.rng)==null?void 0:u.call(t))??Ee();if(c.length<16)throw new Error("Random bytes length must be >= 16");return c[6]=c[6]&15|64,c[8]=c[8]&63|128,me(c)}var Y=(function(){var t=l(function(v,s,i,o){for(i=i||{},o=v.length;o--;i[v[o]]=s);return i},"o"),e=[1,4],n=[1,13],c=[1,12],u=[1,15],h=[1,16],p=[1,20],f=[1,19],N=[6,7,8],E=[1,26],m=[1,24],q=[1,25],S=[6,7,11],J=[1,6,13,15,16,19,22],K=[1,33],Q=[1,34],R=[1,6,7,11,13,15,16,19,22],j={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:l(function(s,i,o,a,g,r,A){var d=r.length-1;switch(g){case 6:case 7:return a;case 8:a.getLogger().trace("Stop NL ");break;case 9:a.getLogger().trace("Stop EOF ");break;case 11:a.getLogger().trace("Stop NL2 ");break;case 12:a.getLogger().trace("Stop EOF2 ");break;case 15:a.getLogger().info("Node: ",r[d].id),a.addNode(r[d-1].length,r[d].id,r[d].descr,r[d].type);break;case 16:a.getLogger().trace("Icon: ",r[d]),a.decorateNode({icon:r[d]});break;case 17:case 21:a.decorateNode({class:r[d]});break;case 18:a.getLogger().trace("SPACELIST");break;case 19:a.getLogger().trace("Node: ",r[d].id),a.addNode(0,r[d].id,r[d].descr,r[d].type);break;case 20:a.decorateNode({icon:r[d]});break;case 25:a.getLogger().trace("node found ..",r[d-2]),this.$={id:r[d-1],descr:r[d-1],type:a.getType(r[d-2],r[d])};break;case 26:this.$={id:r[d],descr:r[d],type:a.nodeType.DEFAULT};break;case 27:a.getLogger().trace("node found ..",r[d-3]),this.$={id:r[d-3],descr:r[d-1],type:a.getType(r[d-2],r[d])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:f},t(N,[2,3]),{1:[2,2]},t(N,[2,4]),t(N,[2,5]),{1:[2,6],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:f},{6:n,9:22,12:11,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:f},{6:E,7:m,10:23,11:q},t(S,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:f}),t(S,[2,18]),t(S,[2,19]),t(S,[2,20]),t(S,[2,21]),t(S,[2,23]),t(S,[2,24]),t(S,[2,26],{19:[1,30]}),{20:[1,31]},{6:E,7:m,10:32,11:q},{1:[2,7],6:n,12:21,13:c,14:14,15:u,16:h,17:17,18:18,19:p,22:f},t(J,[2,14],{7:K,11:Q}),t(R,[2,8]),t(R,[2,9]),t(R,[2,10]),t(S,[2,15]),t(S,[2,16]),t(S,[2,17]),{20:[1,35]},{21:[1,36]},t(J,[2,13],{7:K,11:Q}),t(R,[2,11]),t(R,[2,12]),{21:[1,37]},t(S,[2,25]),t(S,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(s,i){if(i.recoverable)this.trace(s);else{var o=new Error(s);throw o.hash=i,o}},"parseError"),parse:l(function(s){var i=this,o=[0],a=[],g=[null],r=[],A=this.table,d="",P=0,Z=0,re=2,ee=1,oe=r.slice.call(arguments,1),y=Object.create(this.lexer),T={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(T.yy[G]=this.yy[G]);y.setInput(s,T.yy),T.yy.lexer=y,T.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var H=y.yylloc;r.push(H);var ae=y.options&&y.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ce(D){o.length=o.length-2*D,g.length=g.length-D,r.length=r.length-D}l(ce,"popStack");function te(){var D;return D=a.pop()||y.lex()||ee,typeof D!="number"&&(D instanceof Array&&(a=D,D=a.pop()),D=i.symbols_[D]||D),D}l(te,"lex");for(var _,I,k,$,O={},M,L,ie,V;;){if(I=o[o.length-1],this.defaultActions[I]?k=this.defaultActions[I]:((_===null||typeof _>"u")&&(_=te()),k=A[I]&&A[I][_]),typeof k>"u"||!k.length||!k[0]){var W="";V=[];for(M in A[I])this.terminals_[M]&&M>re&&V.push("'"+this.terminals_[M]+"'");y.showPosition?W="Parse error on line "+(P+1)+`: +`+y.showPosition()+` +Expecting `+V.join(", ")+", got '"+(this.terminals_[_]||_)+"'":W="Parse error on line "+(P+1)+": Unexpected "+(_==ee?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(W,{text:y.match,token:this.terminals_[_]||_,line:y.yylineno,loc:H,expected:V})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+I+", token: "+_);switch(k[0]){case 1:o.push(_),g.push(y.yytext),r.push(y.yylloc),o.push(k[1]),_=null,Z=y.yyleng,d=y.yytext,P=y.yylineno,H=y.yylloc;break;case 2:if(L=this.productions_[k[1]][1],O.$=g[g.length-L],O._$={first_line:r[r.length-(L||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(L||1)].first_column,last_column:r[r.length-1].last_column},ae&&(O._$.range=[r[r.length-(L||1)].range[0],r[r.length-1].range[1]]),$=this.performAction.apply(O,[d,Z,P,T.yy,k[1],g,r].concat(oe)),typeof $<"u")return $;L&&(o=o.slice(0,-1*L*2),g=g.slice(0,-1*L),r=r.slice(0,-1*L)),o.push(this.productions_[k[1]][0]),g.push(O.$),r.push(O._$),ie=A[o[o.length-2]][o[o.length-1]],o.push(ie);break;case 3:return!0}}return!0},"parse")},se=(function(){var v={EOF:1,parseError:l(function(i,o){if(this.yy.parser)this.yy.parser.parseError(i,o);else throw new Error(i)},"parseError"),setInput:l(function(s,i){return this.yy=i||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var i=s.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var i=s.length,o=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),o.length-1&&(this.yylineno-=o.length-1);var g=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:o?(o.length===a.length?this.yylloc.first_column:0)+a[a.length-o.length].length-o[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[g[0],g[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(s){this.unput(this.match.slice(s))},"less"),pastInput:l(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var s=this.pastInput(),i=new Array(s.length+1).join("-");return s+this.upcomingInput()+` +`+i+"^"},"showPosition"),test_match:l(function(s,i){var o,a,g;if(this.options.backtrack_lexer&&(g={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(g.yylloc.range=this.yylloc.range.slice(0))),a=s[0].match(/(?:\r\n?|\n).*/g),a&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],o=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),o)return o;if(this._backtrack){for(var r in g)this[r]=g[r];return!1}return!1},"test_match"),next:l(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,i,o,a;this._more||(this.yytext="",this.match="");for(var g=this._currentRules(),r=0;ri[0].length)){if(i=o,a=r,this.options.backtrack_lexer){if(s=this.test_match(o,g[r]),s!==!1)return s;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(s=this.test_match(i,g[a]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:l(function(){var i=this.next();return i||this.lex()},"lex"),begin:l(function(i){this.conditionStack.push(i)},"begin"),popState:l(function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:l(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:l(function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},"topState"),pushState:l(function(i){this.begin(i)},"pushState"),stateStackSize:l(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:l(function(i,o,a,g){switch(a){case 0:return i.getLogger().trace("Found comment",o.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:i.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return i.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:i.getLogger().trace("end icon"),this.popState();break;case 10:return i.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return i.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return i.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return i.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:i.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return i.getLogger().trace("description:",o.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),i.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),i.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),i.getLogger().trace("node end ...",o.yytext),"NODE_DEND";case 30:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),i.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),i.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 35:return i.getLogger().trace("Long description:",o.yytext),20;case 36:return i.getLogger().trace("Long description:",o.yytext),20}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return v})();j.lexer=se;function U(){this.yy={}}return l(U,"Parser"),U.prototype=j,j.Parser=U,new U})();Y.parser=Y;var De=Y,x={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},w,Ne=(w=class{constructor(){this.nodes=[],this.count=0,this.elements={},this.getLogger=this.getLogger.bind(this),this.nodeType=x,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}clear(){this.nodes=[],this.count=0,this.elements={}}getParent(e){for(let n=this.nodes.length-1;n>=0;n--)if(this.nodes[n].level0?this.nodes[0]:null}addNode(e,n,c,u){var E,m;C.info("addNode",e,n,c,u);const h=z();let p=((E=h.mindmap)==null?void 0:E.padding)??B.mindmap.padding;switch(u){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:p*=2;break}const f={id:this.count++,nodeId:F(n,h),level:e,descr:F(c,h),type:u,children:[],width:((m=h.mindmap)==null?void 0:m.maxNodeWidth)??B.mindmap.maxNodeWidth,padding:p},N=this.getParent(e);if(N)N.children.push(f),this.nodes.push(f);else if(this.nodes.length===0)this.nodes.push(f);else throw new Error(`There can be only one root. No parent could be found for ("${f.descr}")`)}getType(e,n){switch(C.debug("In get type",e,n),e){case"[":return this.nodeType.RECT;case"(":return n===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,n){this.elements[e]=n}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;const n=z(),c=this.nodes[this.nodes.length-1];e.icon&&(c.icon=F(e.icon,n)),e.class&&(c.class=F(e.class,n))}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,n){if(e.level===0?e.section=void 0:e.section=n,e.children)for(const[c,u]of e.children.entries()){const h=e.level===0?c:n;this.assignSections(u,h)}}flattenNodes(e,n){const c=["mindmap-node"];e.level===0?c.push("section-root","section--1"):e.section!==void 0&&c.push(`section-${e.section}`),e.class&&c.push(e.class);const u=c.join(" "),h=l(f=>{switch(f){case x.CIRCLE:return"mindmapCircle";case x.RECT:return"rect";case x.ROUNDED_RECT:return"rounded";case x.CLOUD:return"cloud";case x.BANG:return"bang";case x.HEXAGON:return"hexagon";case x.DEFAULT:return"defaultMindmapNode";case x.NO_BORDER:default:return"rect"}},"getShapeFromType"),p={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,isGroup:!1,shape:h(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:u,cssStyles:[],look:"default",icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(n.push(p),e.children)for(const f of e.children)this.flattenNodes(f,n)}generateEdges(e,n){if(e.children)for(const c of e.children){let u="edge";c.section!==void 0&&(u+=` section-edge-${c.section}`);const h=e.level+1;u+=` edge-depth-${h}`;const p={id:`edge_${e.id}_${c.id}`,start:e.id.toString(),end:c.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:"default",classes:u,depth:e.level,section:c.section};n.push(p),this.generateEdges(c,n)}}getData(){const e=this.getMindmap(),n=z(),u=ue().layout!==void 0,h=n;if(u||(h.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:h};C.debug("getData: mindmapRoot",e,n),this.assignSections(e);const p=[],f=[];this.flattenNodes(e,p),this.generateEdges(e,f),C.debug(`getData: processed ${p.length} nodes and ${f.length} edges`);const N=new Map;for(const E of p)N.set(E.id,{shape:E.shape,width:E.width,height:E.height,padding:E.padding});return{nodes:p,edges:f,config:h,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(N),type:"mindmap",diagramId:"mindmap-"+Se()}}getLogger(){return C}},l(w,"MindmapDB"),w),ke=l(async(t,e,n,c)=>{var N,E;C.debug(`Rendering mindmap diagram +`+t);const u=c.db,h=u.getData(),p=le(e,h.config.securityLevel);h.type=c.type,h.layoutAlgorithm=de(h.config.layout,{fallback:"cose-bilkent"}),h.diagramId=e,u.getMindmap()&&(h.nodes.forEach(m=>{m.shape==="rounded"?(m.radius=15,m.taper=15,m.stroke="none",m.width=0,m.padding=15):m.shape==="circle"?m.padding=10:m.shape==="rect"&&(m.width=0,m.padding=10)}),await ge(h,p),he(p,((N=h.config.mindmap)==null?void 0:N.padding)??B.mindmap.padding,"mindmapDiagram",((E=h.config.mindmap)==null?void 0:E.useMaxWidth)??B.mindmap.useMaxWidth))},"draw"),Le={draw:ke},xe=l(t=>{let e="";for(let n=0;n` + .edge { + stroke-width: 3; + } + ${xe(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .section-root span { + color: ${t.gitBranchLabel0}; + } + .section-2 span { + color: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),Te=ve,Re={get db(){return new Ne},renderer:Le,parser:De,styles:Te};export{Re as diagram}; +//# sourceMappingURL=mindmap-definition-Q6HEUPPD.js.map diff --git a/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js.map b/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js.map new file mode 100644 index 000000000000..5729d1230461 --- /dev/null +++ b/extensions/continue/gui/assets/mindmap-definition-Q6HEUPPD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mindmap-definition-Q6HEUPPD.js","sources":["../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/native.js","../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/mermaid/dist/chunks/mermaid.core/mindmap-definition-Q6HEUPPD.mjs"],"sourcesContent":["import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import {\n getDiagramElement\n} from \"./chunk-55IACEB6.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport {\n defaultConfig_default,\n getConfig2 as getConfig,\n getUserDefinedConfig,\n sanitizeText\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/mindmap/parser/mindmap.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mindMap\": 4, \"spaceLines\": 5, \"SPACELINE\": 6, \"NL\": 7, \"MINDMAP\": 8, \"document\": 9, \"stop\": 10, \"EOF\": 11, \"statement\": 12, \"SPACELIST\": 13, \"node\": 14, \"ICON\": 15, \"CLASS\": 16, \"nodeWithId\": 17, \"nodeWithoutId\": 18, \"NODE_DSTART\": 19, \"NODE_DESCR\": 20, \"NODE_DEND\": 21, \"NODE_ID\": 22, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"SPACELINE\", 7: \"NL\", 8: \"MINDMAP\", 11: \"EOF\", 13: \"SPACELIST\", 15: \"ICON\", 16: \"CLASS\", 19: \"NODE_DSTART\", 20: \"NODE_DESCR\", 21: \"NODE_DEND\", 22: \"NODE_ID\" },\n productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n break;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 16:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 17:\n case 21:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 18:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 19:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 20:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 25:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 26:\n this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n break;\n case 1:\n return 8;\n break;\n case 2:\n this.begin(\"CLASS\");\n break;\n case 3:\n this.popState();\n return 16;\n break;\n case 4:\n this.popState();\n break;\n case 5:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 6:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n break;\n case 7:\n return 7;\n break;\n case 8:\n return 15;\n break;\n case 9:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 10:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 19;\n break;\n case 11:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 19;\n break;\n case 12:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 19;\n break;\n case 13:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 19;\n break;\n case 14:\n this.begin(\"NODE\");\n return 19;\n break;\n case 15:\n this.begin(\"NODE\");\n return 19;\n break;\n case 16:\n this.begin(\"NODE\");\n return 19;\n break;\n case 17:\n this.begin(\"NODE\");\n return 19;\n break;\n case 18:\n return 13;\n break;\n case 19:\n return 22;\n break;\n case 20:\n return 11;\n break;\n case 21:\n this.begin(\"NSTR2\");\n break;\n case 22:\n return \"NODE_DESCR\";\n break;\n case 23:\n this.popState();\n break;\n case 24:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 25:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n break;\n case 26:\n this.popState();\n break;\n case 27:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n break;\n case 28:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n break;\n case 29:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n break;\n case 30:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 31:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n break;\n case 32:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n break;\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n break;\n case 35:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n break;\n case 36:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:\\s*%%.*)/i, /^(?:mindmap\\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\\n)/i, /^(?:::icon\\()/i, /^(?:[\\s]+[\\n])/i, /^(?:[\\n]+)/i, /^(?:[^\\)]+)/i, /^(?:\\))/i, /^(?:-\\))/i, /^(?:\\(-)/i, /^(?:\\)\\))/i, /^(?:\\))/i, /^(?:\\(\\()/i, /^(?:\\{\\{)/i, /^(?:\\()/i, /^(?:\\[)/i, /^(?:[\\s]+)/i, /^(?:[^\\(\\[\\n\\)\\{\\}]+)/i, /^(?:$)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[^\"]+)/i, /^(?:[\"])/i, /^(?:[\\)]\\))/i, /^(?:[\\)])/i, /^(?:[\\]])/i, /^(?:\\}\\})/i, /^(?:\\(-)/i, /^(?:-\\))/i, /^(?:\\(\\()/i, /^(?:\\()/i, /^(?:[^\\)\\]\\(\\}]+)/i, /^(?:.+(?!\\(\\())/i],\n conditions: { \"CLASS\": { \"rules\": [3, 4], \"inclusive\": false }, \"ICON\": { \"rules\": [8, 9], \"inclusive\": false }, \"NSTR2\": { \"rules\": [22, 23], \"inclusive\": false }, \"NSTR\": { \"rules\": [25, 26], \"inclusive\": false }, \"NODE\": { \"rules\": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar mindmap_default = parser;\n\n// src/diagrams/mindmap/mindmapDb.ts\nimport { v4 } from \"uuid\";\nvar nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nvar MindmapDB = class {\n constructor() {\n this.nodes = [];\n this.count = 0;\n this.elements = {};\n this.getLogger = this.getLogger.bind(this);\n this.nodeType = nodeType;\n this.clear();\n this.getType = this.getType.bind(this);\n this.getElementById = this.getElementById.bind(this);\n this.getParent = this.getParent.bind(this);\n this.getMindmap = this.getMindmap.bind(this);\n this.addNode = this.addNode.bind(this);\n this.decorateNode = this.decorateNode.bind(this);\n }\n static {\n __name(this, \"MindmapDB\");\n }\n clear() {\n this.nodes = [];\n this.count = 0;\n this.elements = {};\n }\n getParent(level) {\n for (let i = this.nodes.length - 1; i >= 0; i--) {\n if (this.nodes[i].level < level) {\n return this.nodes[i];\n }\n }\n return null;\n }\n getMindmap() {\n return this.nodes.length > 0 ? this.nodes[0] : null;\n }\n addNode(level, id, descr, type) {\n log.info(\"addNode\", level, id, descr, type);\n const conf = getConfig();\n let padding = conf.mindmap?.padding ?? defaultConfig_default.mindmap.padding;\n switch (type) {\n case this.nodeType.ROUNDED_RECT:\n case this.nodeType.RECT:\n case this.nodeType.HEXAGON:\n padding *= 2;\n break;\n }\n const node = {\n id: this.count++,\n nodeId: sanitizeText(id, conf),\n level,\n descr: sanitizeText(descr, conf),\n type,\n children: [],\n width: conf.mindmap?.maxNodeWidth ?? defaultConfig_default.mindmap.maxNodeWidth,\n padding\n };\n const parent = this.getParent(level);\n if (parent) {\n parent.children.push(node);\n this.nodes.push(node);\n } else {\n if (this.nodes.length === 0) {\n this.nodes.push(node);\n } else {\n throw new Error(\n `There can be only one root. No parent could be found for (\"${node.descr}\")`\n );\n }\n }\n }\n getType(startStr, endStr) {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return this.nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? this.nodeType.ROUNDED_RECT : this.nodeType.CLOUD;\n case \"((\":\n return this.nodeType.CIRCLE;\n case \")\":\n return this.nodeType.CLOUD;\n case \"))\":\n return this.nodeType.BANG;\n case \"{{\":\n return this.nodeType.HEXAGON;\n default:\n return this.nodeType.DEFAULT;\n }\n }\n setElementForId(id, element) {\n this.elements[id] = element;\n }\n getElementById(id) {\n return this.elements[id];\n }\n decorateNode(decoration) {\n if (!decoration) {\n return;\n }\n const config = getConfig();\n const node = this.nodes[this.nodes.length - 1];\n if (decoration.icon) {\n node.icon = sanitizeText(decoration.icon, config);\n }\n if (decoration.class) {\n node.class = sanitizeText(decoration.class, config);\n }\n }\n type2Str(type) {\n switch (type) {\n case this.nodeType.DEFAULT:\n return \"no-border\";\n case this.nodeType.RECT:\n return \"rect\";\n case this.nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case this.nodeType.CIRCLE:\n return \"circle\";\n case this.nodeType.CLOUD:\n return \"cloud\";\n case this.nodeType.BANG:\n return \"bang\";\n case this.nodeType.HEXAGON:\n return \"hexgon\";\n // cspell: disable-line\n default:\n return \"no-border\";\n }\n }\n /**\n * Assign section numbers to nodes based on their position relative to root\n * @param node - The mindmap node to process\n * @param sectionNumber - The section number to assign (undefined for root)\n */\n assignSections(node, sectionNumber) {\n if (node.level === 0) {\n node.section = void 0;\n } else {\n node.section = sectionNumber;\n }\n if (node.children) {\n for (const [index, child] of node.children.entries()) {\n const childSectionNumber = node.level === 0 ? index : sectionNumber;\n this.assignSections(child, childSectionNumber);\n }\n }\n }\n /**\n * Convert mindmap tree structure to flat array of nodes\n * @param node - The mindmap node to process\n * @param processedNodes - Array to collect processed nodes\n */\n flattenNodes(node, processedNodes) {\n const cssClasses = [\"mindmap-node\"];\n if (node.level === 0) {\n cssClasses.push(\"section-root\", \"section--1\");\n } else if (node.section !== void 0) {\n cssClasses.push(`section-${node.section}`);\n }\n if (node.class) {\n cssClasses.push(node.class);\n }\n const classes = cssClasses.join(\" \");\n const getShapeFromType = /* @__PURE__ */ __name((type) => {\n switch (type) {\n case nodeType.CIRCLE:\n return \"mindmapCircle\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexagon\";\n case nodeType.DEFAULT:\n return \"defaultMindmapNode\";\n case nodeType.NO_BORDER:\n default:\n return \"rect\";\n }\n }, \"getShapeFromType\");\n const processedNode = {\n id: node.id.toString(),\n domId: \"node_\" + node.id.toString(),\n label: node.descr,\n isGroup: false,\n shape: getShapeFromType(node.type),\n width: node.width,\n height: node.height ?? 0,\n padding: node.padding,\n cssClasses: classes,\n cssStyles: [],\n look: \"default\",\n icon: node.icon,\n x: node.x,\n y: node.y,\n // Mindmap-specific properties\n level: node.level,\n nodeId: node.nodeId,\n type: node.type,\n section: node.section\n };\n processedNodes.push(processedNode);\n if (node.children) {\n for (const child of node.children) {\n this.flattenNodes(child, processedNodes);\n }\n }\n }\n /**\n * Generate edges from parent-child relationships in mindmap tree\n * @param node - The mindmap node to process\n * @param edges - Array to collect edges\n */\n generateEdges(node, edges) {\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n let edgeClasses = \"edge\";\n if (child.section !== void 0) {\n edgeClasses += ` section-edge-${child.section}`;\n }\n const edgeDepth = node.level + 1;\n edgeClasses += ` edge-depth-${edgeDepth}`;\n const edge = {\n id: `edge_${node.id}_${child.id}`,\n start: node.id.toString(),\n end: child.id.toString(),\n type: \"normal\",\n curve: \"basis\",\n thickness: \"normal\",\n look: \"default\",\n classes: edgeClasses,\n // Store mindmap-specific data\n depth: node.level,\n section: child.section\n };\n edges.push(edge);\n this.generateEdges(child, edges);\n }\n }\n /**\n * Get structured data for layout algorithms\n * Following the pattern established by ER diagrams\n * @returns Structured data containing nodes, edges, and config\n */\n getData() {\n const mindmapRoot = this.getMindmap();\n const config = getConfig();\n const userDefinedConfig = getUserDefinedConfig();\n const hasUserDefinedLayout = userDefinedConfig.layout !== void 0;\n const finalConfig = config;\n if (!hasUserDefinedLayout) {\n finalConfig.layout = \"cose-bilkent\";\n }\n if (!mindmapRoot) {\n return {\n nodes: [],\n edges: [],\n config: finalConfig\n };\n }\n log.debug(\"getData: mindmapRoot\", mindmapRoot, config);\n this.assignSections(mindmapRoot);\n const processedNodes = [];\n const processedEdges = [];\n this.flattenNodes(mindmapRoot, processedNodes);\n this.generateEdges(mindmapRoot, processedEdges);\n log.debug(\n `getData: processed ${processedNodes.length} nodes and ${processedEdges.length} edges`\n );\n const shapes = /* @__PURE__ */ new Map();\n for (const node of processedNodes) {\n shapes.set(node.id, {\n shape: node.shape,\n width: node.width,\n height: node.height,\n padding: node.padding\n });\n }\n return {\n nodes: processedNodes,\n edges: processedEdges,\n config: finalConfig,\n // Store the root node for mindmap-specific layout algorithms\n rootNode: mindmapRoot,\n // Properties required by dagre layout algorithm\n markers: [\"point\"],\n // Mindmaps don't use markers\n direction: \"TB\",\n // Top-to-bottom direction for mindmaps\n nodeSpacing: 50,\n // Default spacing between nodes\n rankSpacing: 50,\n // Default spacing between ranks\n // Add shapes for ELK compatibility\n shapes: Object.fromEntries(shapes),\n // Additional properties that layout algorithms might expect\n type: \"mindmap\",\n diagramId: \"mindmap-\" + v4()\n };\n }\n // Expose logger to grammar\n getLogger() {\n return log;\n }\n};\n\n// src/diagrams/mindmap/mindmapRenderer.ts\nvar draw = /* @__PURE__ */ __name(async (text, id, _version, diagObj) => {\n log.debug(\"Rendering mindmap diagram\\n\" + text);\n const db = diagObj.db;\n const data4Layout = db.getData();\n const svg = getDiagramElement(id, data4Layout.config.securityLevel);\n data4Layout.type = diagObj.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(data4Layout.config.layout, {\n fallback: \"cose-bilkent\"\n });\n data4Layout.diagramId = id;\n const mm = db.getMindmap();\n if (!mm) {\n return;\n }\n data4Layout.nodes.forEach((node) => {\n if (node.shape === \"rounded\") {\n node.radius = 15;\n node.taper = 15;\n node.stroke = \"none\";\n node.width = 0;\n node.padding = 15;\n } else if (node.shape === \"circle\") {\n node.padding = 10;\n } else if (node.shape === \"rect\") {\n node.width = 0;\n node.padding = 10;\n }\n });\n await render(data4Layout, svg);\n setupViewPortForSVG(\n svg,\n data4Layout.config.mindmap?.padding ?? defaultConfig_default.mindmap.padding,\n \"mindmapDiagram\",\n data4Layout.config.mindmap?.useMaxWidth ?? defaultConfig_default.mindmap.useMaxWidth\n );\n}, \"draw\");\nvar mindmapRenderer_default = {\n draw\n};\n\n// src/diagrams/mindmap/styles.ts\nimport { darken, lighten, isDark } from \"khroma\";\nvar genSections = /* @__PURE__ */ __name((options) => {\n let sections = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections;\n}, \"genSections\");\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .section-root span {\n color: ${options.gitBranchLabel0};\n }\n .section-2 span {\n color: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/mindmap/mindmap-definition.ts\nvar diagram = {\n get db() {\n return new MindmapDB();\n },\n renderer: mindmapRenderer_default,\n parser: mindmap_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["byteToHex","i","unsafeStringify","arr","offset","getRandomValues","rnds8","rng","randomUUID","native","v4","options","buf","rnds","_a","parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","mindmap_default","nodeType","MindmapDB","level","id","descr","type","log","conf","getConfig","padding","defaultConfig_default","node","sanitizeText","_b","parent","startStr","endStr","element","decoration","config","sectionNumber","child","childSectionNumber","processedNodes","cssClasses","classes","getShapeFromType","processedNode","edges","edgeClasses","edgeDepth","edge","mindmapRoot","hasUserDefinedLayout","getUserDefinedConfig","finalConfig","processedEdges","shapes","draw","text","_version","diagObj","db","data4Layout","svg","getDiagramElement","getRegisteredLayoutAlgorithm","render","setupViewPortForSVG","mindmapRenderer_default","genSections","sections","isDark","lighten","darken","sw","getStyles","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/ordinal.js b/extensions/continue/gui/assets/ordinal.js new file mode 100644 index 000000000000..5324c026ea8a --- /dev/null +++ b/extensions/continue/gui/assets/ordinal.js @@ -0,0 +1,2 @@ +import{i as c}from"./init.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="80cc63bc-dbf4-4475-bde9-eda3183f8654",e._sentryDebugIdIdentifier="sentry-dbid-80cc63bc-dbf4-4475-bde9-eda3183f8654")})()}catch{}class f extends Map{constructor(n,t=g){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),n!=null)for(const[r,i]of n)this.set(r,i)}get(n){return super.get(u(this,n))}has(n){return super.has(u(this,n))}set(n,t){return super.set(a(this,n),t)}delete(n){return super.delete(l(this,n))}}function u({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):t}function a({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):(e.set(r,t),t)}function l({_intern:e,_key:n},t){const r=n(t);return e.has(r)&&(t=e.get(r),e.delete(r)),t}function g(e){return e!==null&&typeof e=="object"?e.valueOf():e}const d=Symbol("implicit");function p(){var e=new f,n=[],t=[],r=d;function i(o){let s=e.get(o);if(s===void 0){if(r!==d)return r;e.set(o,s=n.push(o)-1)}return t[s%t.length]}return i.domain=function(o){if(!arguments.length)return n.slice();n=[],e=new f;for(const s of o)e.has(s)||e.set(s,n.push(s)-1);return i},i.range=function(o){return arguments.length?(t=Array.from(o),i):t.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return p(n,t).unknown(r)},c.apply(i,arguments),i}export{p as o}; +//# sourceMappingURL=ordinal.js.map diff --git a/extensions/continue/gui/assets/ordinal.js.map b/extensions/continue/gui/assets/ordinal.js.map new file mode 100644 index 000000000000..bc0023a0abad --- /dev/null +++ b/extensions/continue/gui/assets/ordinal.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ordinal.js","sources":["../../node_modules/internmap/src/index.js","../../node_modules/d3-scale/src/ordinal.js"],"sourcesContent":["export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n"],"names":["InternMap","entries","key","keyof","value","intern_get","intern_set","intern_delete","_intern","_key","implicit","ordinal","index","domain","range","unknown","scale","d","i","_","initRange"],"mappings":"qkBAAO,MAAMA,UAAkB,GAAI,CACjC,YAAYC,EAASC,EAAMC,EAAO,CAGhC,GAFA,MAAK,EACL,OAAO,iBAAiB,KAAM,CAAC,QAAS,CAAC,MAAO,IAAI,GAAK,EAAG,KAAM,CAAC,MAAOD,CAAG,CAAC,CAAC,EAC3ED,GAAW,KAAM,SAAW,CAACC,EAAKE,CAAK,IAAKH,EAAS,KAAK,IAAIC,EAAKE,CAAK,CAC9E,CACA,IAAIF,EAAK,CACP,OAAO,MAAM,IAAIG,EAAW,KAAMH,CAAG,CAAC,CACxC,CACA,IAAIA,EAAK,CACP,OAAO,MAAM,IAAIG,EAAW,KAAMH,CAAG,CAAC,CACxC,CACA,IAAIA,EAAKE,EAAO,CACd,OAAO,MAAM,IAAIE,EAAW,KAAMJ,CAAG,EAAGE,CAAK,CAC/C,CACA,OAAOF,EAAK,CACV,OAAO,MAAM,OAAOK,EAAc,KAAML,CAAG,CAAC,CAC9C,CACF,CAmBA,SAASG,EAAW,CAAC,QAAAG,EAAS,KAAAC,CAAI,EAAGL,EAAO,CAC1C,MAAMF,EAAMO,EAAKL,CAAK,EACtB,OAAOI,EAAQ,IAAIN,CAAG,EAAIM,EAAQ,IAAIN,CAAG,EAAIE,CAC/C,CAEA,SAASE,EAAW,CAAC,QAAAE,EAAS,KAAAC,CAAI,EAAGL,EAAO,CAC1C,MAAMF,EAAMO,EAAKL,CAAK,EACtB,OAAII,EAAQ,IAAIN,CAAG,EAAUM,EAAQ,IAAIN,CAAG,GAC5CM,EAAQ,IAAIN,EAAKE,CAAK,EACfA,EACT,CAEA,SAASG,EAAc,CAAC,QAAAC,EAAS,KAAAC,CAAI,EAAGL,EAAO,CAC7C,MAAMF,EAAMO,EAAKL,CAAK,EACtB,OAAII,EAAQ,IAAIN,CAAG,IACjBE,EAAQI,EAAQ,IAAIN,CAAG,EACvBM,EAAQ,OAAON,CAAG,GAEbE,CACT,CAEA,SAASD,EAAMC,EAAO,CACpB,OAAOA,IAAU,MAAQ,OAAOA,GAAU,SAAWA,EAAM,QAAO,EAAKA,CACzE,CCzDO,MAAMM,EAAW,OAAO,UAAU,EAE1B,SAASC,GAAU,CAChC,IAAIC,EAAQ,IAAIZ,EACZa,EAAS,CAAA,EACTC,EAAQ,CAAA,EACRC,EAAUL,EAEd,SAASM,EAAMC,EAAG,CAChB,IAAIC,EAAIN,EAAM,IAAIK,CAAC,EACnB,GAAIC,IAAM,OAAW,CACnB,GAAIH,IAAYL,EAAU,OAAOK,EACjCH,EAAM,IAAIK,EAAGC,EAAIL,EAAO,KAAKI,CAAC,EAAI,CAAC,CACrC,CACA,OAAOH,EAAMI,EAAIJ,EAAM,MAAM,CAC/B,CAEA,OAAAE,EAAM,OAAS,SAASG,EAAG,CACzB,GAAI,CAAC,UAAU,OAAQ,OAAON,EAAO,MAAK,EAC1CA,EAAS,CAAA,EAAID,EAAQ,IAAIZ,EACzB,UAAWI,KAASe,EACdP,EAAM,IAAIR,CAAK,GACnBQ,EAAM,IAAIR,EAAOS,EAAO,KAAKT,CAAK,EAAI,CAAC,EAEzC,OAAOY,CACT,EAEAA,EAAM,MAAQ,SAASG,EAAG,CACxB,OAAO,UAAU,QAAUL,EAAQ,MAAM,KAAKK,CAAC,EAAGH,GAASF,EAAM,MAAK,CACxE,EAEAE,EAAM,QAAU,SAASG,EAAG,CAC1B,OAAO,UAAU,QAAUJ,EAAUI,EAAGH,GAASD,CACnD,EAEAC,EAAM,KAAO,UAAW,CACtB,OAAOL,EAAQE,EAAQC,CAAK,EAAE,QAAQC,CAAO,CAC/C,EAEAK,EAAU,MAAMJ,EAAO,SAAS,EAEzBA,CACT","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js b/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js new file mode 100644 index 000000000000..ebae3f95c646 --- /dev/null +++ b/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js @@ -0,0 +1,31 @@ +import{a8 as v,a3 as M,aG as j,_ as u,g as q,s as H,a as Y,b as Z,q as J,p as K,l as _,c as Q,D as X,H as ee,N as te,e as ae,y as re,F as ne}from"./index.js";import{p as ie}from"./chunk-4BX2VUAB.js";import{p as se}from"./treemap-75Q7IDZK.js";import{d as L}from"./arc.js";import{o as le}from"./ordinal.js";import"./XCircleIcon.js";import"./_baseUniq.js";import"./_basePickBy.js";import"./clone.js";import"./init.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="607d7b30-cba5-46f7-8d2d-4e7c41024247",e._sentryDebugIdIdentifier="sentry-dbid-607d7b30-cba5-46f7-8d2d-4e7c41024247")})()}catch{}function oe(e,a){return ae?1:a>=e?0:NaN}function ce(e){return e}function de(){var e=ce,a=oe,g=null,w=v(0),s=v(M),o=v(0);function l(t){var n,c=(t=j(t)).length,p,S,m=0,d=new Array(c),i=new Array(c),y=+w.apply(this,arguments),b=Math.min(M,Math.max(-M,s.apply(this,arguments)-y)),h,A=Math.min(Math.abs(b)/c,o.apply(this,arguments)),T=A*(b<0?-1:1),f;for(n=0;n0&&(m+=f);for(a!=null?d.sort(function(x,D){return a(i[x],i[D])}):g!=null&&d.sort(function(x,D){return g(t[x],t[D])}),n=0,S=m?(b-c*T)/m:0;n0?f*S:0)+T,i[p]={data:t[p],index:n,value:f,startAngle:y,endAngle:h,padAngle:A};return i}return l.value=function(t){return arguments.length?(e=typeof t=="function"?t:v(+t),l):e},l.sortValues=function(t){return arguments.length?(a=t,g=null,l):a},l.sort=function(t){return arguments.length?(g=t,a=null,l):g},l.startAngle=function(t){return arguments.length?(w=typeof t=="function"?t:v(+t),l):w},l.endAngle=function(t){return arguments.length?(s=typeof t=="function"?t:v(+t),l):s},l.padAngle=function(t){return arguments.length?(o=typeof t=="function"?t:v(+t),l):o},l}var ue=ne.pie,F={sections:new Map,showData:!1},C=F.sections,N=F.showData,pe=structuredClone(ue),fe=u(()=>structuredClone(pe),"getConfig"),ge=u(()=>{C=new Map,N=F.showData,re()},"clear"),he=u(({label:e,value:a})=>{if(a<0)throw new Error(`"${e}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);C.has(e)||(C.set(e,a),_.debug(`added new section: ${e}, with value: ${a}`))},"addSection"),me=u(()=>C,"getSections"),ye=u(e=>{N=e},"setShowData"),ve=u(()=>N,"getShowData"),O={getConfig:fe,clear:ge,setDiagramTitle:K,getDiagramTitle:J,setAccTitle:Z,getAccTitle:Y,setAccDescription:H,getAccDescription:q,addSection:he,getSections:me,setShowData:ye,getShowData:ve},we=u((e,a)=>{ie(e,a),a.setShowData(e.showData),e.sections.map(a.addSection)},"populateDb"),Se={parse:u(async e=>{const a=await se("pie",e);_.debug(a),we(a,O)},"parse")},be=u(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),xe=be,De=u(e=>{const a=[...e.values()].reduce((s,o)=>s+o,0),g=[...e.entries()].map(([s,o])=>({label:s,value:o})).filter(s=>s.value/a*100>=1).sort((s,o)=>o.value-s.value);return de().value(s=>s.value)(g)},"createPieArcs"),Ae=u((e,a,g,w)=>{_.debug(`rendering pie chart +`+e);const s=w.db,o=Q(),l=X(s.getConfig(),o.pie),t=40,n=18,c=4,p=450,S=p,m=ee(a),d=m.append("g");d.attr("transform","translate("+S/2+","+p/2+")");const{themeVariables:i}=o;let[y]=te(i.pieOuterStrokeWidth);y??(y=2);const b=l.textPosition,h=Math.min(S,p)/2-t,A=L().innerRadius(0).outerRadius(h),T=L().innerRadius(h*b).outerRadius(h*b);d.append("circle").attr("cx",0).attr("cy",0).attr("r",h+y/2).attr("class","pieOuterCircle");const f=s.getSections(),x=De(f),D=[i.pie1,i.pie2,i.pie3,i.pie4,i.pie5,i.pie6,i.pie7,i.pie8,i.pie9,i.pie10,i.pie11,i.pie12];let $=0;f.forEach(r=>{$+=r});const z=x.filter(r=>(r.data.value/$*100).toFixed(0)!=="0"),E=le(D);d.selectAll("mySlices").data(z).enter().append("path").attr("d",A).attr("fill",r=>E(r.data.label)).attr("class","pieCircle"),d.selectAll("mySlices").data(z).enter().append("text").text(r=>(r.data.value/$*100).toFixed(0)+"%").attr("transform",r=>"translate("+T.centroid(r)+")").style("text-anchor","middle").attr("class","slice"),d.append("text").text(s.getDiagramTitle()).attr("x",0).attr("y",-400/2).attr("class","pieTitleText");const G=[...f.entries()].map(([r,I])=>({label:r,value:I})),k=d.selectAll(".legend").data(G).enter().append("g").attr("class","legend").attr("transform",(r,I)=>{const W=n+c,B=W*G.length/2,V=12*n,U=I*W-B;return"translate("+V+","+U+")"});k.append("rect").attr("width",n).attr("height",n).style("fill",r=>E(r.label)).style("stroke",r=>E(r.label)),k.append("text").attr("x",n+c).attr("y",n-c).text(r=>s.getShowData()?`${r.label} [${r.value}]`:r.label);const P=Math.max(...k.selectAll("text").nodes().map(r=>(r==null?void 0:r.getBoundingClientRect().width)??0)),R=S+t+n+c+P;m.attr("viewBox",`0 0 ${R} ${p}`),ae(m,p,R,l.useMaxWidth)},"draw"),Te={draw:Ae},Ge={parser:Se,db:O,renderer:Te,styles:xe};export{Ge as diagram}; +//# sourceMappingURL=pieDiagram-ADFJNKIX.js.map diff --git a/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js.map b/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js.map new file mode 100644 index 000000000000..1e18fe080fc1 --- /dev/null +++ b/extensions/continue/gui/assets/pieDiagram-ADFJNKIX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pieDiagram-ADFJNKIX.js","sources":["../../node_modules/d3-shape/src/descending.js","../../node_modules/d3-shape/src/identity.js","../../node_modules/d3-shape/src/pie.js","../../node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.mjs"],"sourcesContent":["export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge,\n parseFontSize\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/pie/pieParser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/pie/pieDb.ts\nvar DEFAULT_PIE_CONFIG = defaultConfig_default.pie;\nvar DEFAULT_PIE_DB = {\n sections: /* @__PURE__ */ new Map(),\n showData: false,\n config: DEFAULT_PIE_CONFIG\n};\nvar sections = DEFAULT_PIE_DB.sections;\nvar showData = DEFAULT_PIE_DB.showData;\nvar config = structuredClone(DEFAULT_PIE_CONFIG);\nvar getConfig2 = /* @__PURE__ */ __name(() => structuredClone(config), \"getConfig\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n sections = /* @__PURE__ */ new Map();\n showData = DEFAULT_PIE_DB.showData;\n clear();\n}, \"clear\");\nvar addSection = /* @__PURE__ */ __name(({ label, value }) => {\n if (value < 0) {\n throw new Error(\n `\"${label}\" has invalid value: ${value}. Negative values are not allowed in pie charts. All slice values must be >= 0.`\n );\n }\n if (!sections.has(label)) {\n sections.set(label, value);\n log.debug(`added new section: ${label}, with value: ${value}`);\n }\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(() => sections, \"getSections\");\nvar setShowData = /* @__PURE__ */ __name((toggle) => {\n showData = toggle;\n}, \"setShowData\");\nvar getShowData = /* @__PURE__ */ __name(() => showData, \"getShowData\");\nvar db = {\n getConfig: getConfig2,\n clear: clear2,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n setShowData,\n getShowData\n};\n\n// src/diagrams/pie/pieParser.ts\nvar populateDb = /* @__PURE__ */ __name((ast, db2) => {\n populateCommonDb(ast, db2);\n db2.setShowData(ast.showData);\n ast.sections.map(db2.addSection);\n}, \"populateDb\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"pie\", input);\n log.debug(ast);\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/pie/pieStyles.ts\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .pieCircle{\n stroke: ${options.pieStrokeColor};\n stroke-width : ${options.pieStrokeWidth};\n opacity : ${options.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${options.pieOuterStrokeColor};\n stroke-width: ${options.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${options.pieTitleTextSize};\n fill: ${options.pieTitleTextColor};\n font-family: ${options.fontFamily};\n }\n .slice {\n font-family: ${options.fontFamily};\n fill: ${options.pieSectionTextColor};\n font-size:${options.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${options.pieLegendTextColor};\n font-family: ${options.fontFamily};\n font-size: ${options.pieLegendTextSize};\n }\n`, \"getStyles\");\nvar pieStyles_default = getStyles;\n\n// src/diagrams/pie/pieRenderer.ts\nimport { arc, pie as d3pie, scaleOrdinal } from \"d3\";\nvar createPieArcs = /* @__PURE__ */ __name((sections2) => {\n const sum = [...sections2.values()].reduce((acc, val) => acc + val, 0);\n const pieData = [...sections2.entries()].map(([label, value]) => ({ label, value })).filter((d) => d.value / sum * 100 >= 1).sort((a, b) => b.value - a.value);\n const pie = d3pie().value((d) => d.value);\n return pie(pieData);\n}, \"createPieArcs\");\nvar draw = /* @__PURE__ */ __name((text, id, _version, diagObj) => {\n log.debug(\"rendering pie chart\\n\" + text);\n const db2 = diagObj.db;\n const globalConfig = getConfig();\n const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie);\n const MARGIN = 40;\n const LEGEND_RECT_SIZE = 18;\n const LEGEND_SPACING = 4;\n const height = 450;\n const pieWidth = height;\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\");\n group.attr(\"transform\", \"translate(\" + pieWidth / 2 + \",\" + height / 2 + \")\");\n const { themeVariables } = globalConfig;\n let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);\n outerStrokeWidth ??= 2;\n const textPosition = pieConfig.textPosition;\n const radius = Math.min(pieWidth, height) / 2 - MARGIN;\n const arcGenerator = arc().innerRadius(0).outerRadius(radius);\n const labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);\n group.append(\"circle\").attr(\"cx\", 0).attr(\"cy\", 0).attr(\"r\", radius + outerStrokeWidth / 2).attr(\"class\", \"pieOuterCircle\");\n const sections2 = db2.getSections();\n const arcs = createPieArcs(sections2);\n const myGeneratedColors = [\n themeVariables.pie1,\n themeVariables.pie2,\n themeVariables.pie3,\n themeVariables.pie4,\n themeVariables.pie5,\n themeVariables.pie6,\n themeVariables.pie7,\n themeVariables.pie8,\n themeVariables.pie9,\n themeVariables.pie10,\n themeVariables.pie11,\n themeVariables.pie12\n ];\n let sum = 0;\n sections2.forEach((section) => {\n sum += section;\n });\n const filteredArcs = arcs.filter((datum) => (datum.data.value / sum * 100).toFixed(0) !== \"0\");\n const color = scaleOrdinal(myGeneratedColors);\n group.selectAll(\"mySlices\").data(filteredArcs).enter().append(\"path\").attr(\"d\", arcGenerator).attr(\"fill\", (datum) => {\n return color(datum.data.label);\n }).attr(\"class\", \"pieCircle\");\n group.selectAll(\"mySlices\").data(filteredArcs).enter().append(\"text\").text((datum) => {\n return (datum.data.value / sum * 100).toFixed(0) + \"%\";\n }).attr(\"transform\", (datum) => {\n return \"translate(\" + labelArcGenerator.centroid(datum) + \")\";\n }).style(\"text-anchor\", \"middle\").attr(\"class\", \"slice\");\n group.append(\"text\").text(db2.getDiagramTitle()).attr(\"x\", 0).attr(\"y\", -(height - 50) / 2).attr(\"class\", \"pieTitleText\");\n const allSectionData = [...sections2.entries()].map(([label, value]) => ({\n label,\n value\n }));\n const legend = group.selectAll(\".legend\").data(allSectionData).enter().append(\"g\").attr(\"class\", \"legend\").attr(\"transform\", (_datum, index) => {\n const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING;\n const offset = height2 * allSectionData.length / 2;\n const horizontal = 12 * LEGEND_RECT_SIZE;\n const vertical = index * height2 - offset;\n return \"translate(\" + horizontal + \",\" + vertical + \")\";\n });\n legend.append(\"rect\").attr(\"width\", LEGEND_RECT_SIZE).attr(\"height\", LEGEND_RECT_SIZE).style(\"fill\", (d) => color(d.label)).style(\"stroke\", (d) => color(d.label));\n legend.append(\"text\").attr(\"x\", LEGEND_RECT_SIZE + LEGEND_SPACING).attr(\"y\", LEGEND_RECT_SIZE - LEGEND_SPACING).text((d) => {\n if (db2.getShowData()) {\n return `${d.label} [${d.value}]`;\n }\n return d.label;\n });\n const longestTextWidth = Math.max(\n ...legend.selectAll(\"text\").nodes().map((node) => node?.getBoundingClientRect().width ?? 0)\n );\n const totalWidth = pieWidth + MARGIN + LEGEND_RECT_SIZE + LEGEND_SPACING + longestTextWidth;\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${height}`);\n configureSvgSize(svg, height, totalWidth, pieConfig.useMaxWidth);\n}, \"draw\");\nvar renderer = { draw };\n\n// src/diagrams/pie/pieDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles: pieStyles_default\n};\nexport {\n diagram\n};\n"],"names":["descending","a","b","identity","d","d3pie","value","sortValues","sort","startAngle","constant","endAngle","tau","padAngle","pie","data","i","n","array","j","k","sum","index","arcs","a0","da","a1","p","pa","v","_","DEFAULT_PIE_CONFIG","defaultConfig_default","DEFAULT_PIE_DB","sections","showData","config","getConfig2","__name","clear2","clear","addSection","label","log","getSections","setShowData","toggle","getShowData","db","setDiagramTitle","getDiagramTitle","setAccTitle","getAccTitle","setAccDescription","getAccDescription","populateDb","ast","db2","populateCommonDb","parser","input","parse","getStyles","options","pieStyles_default","createPieArcs","sections2","acc","val","pieData","draw","text","id","_version","diagObj","globalConfig","getConfig","pieConfig","cleanAndMerge","MARGIN","LEGEND_RECT_SIZE","LEGEND_SPACING","height","pieWidth","svg","selectSvgElement","group","themeVariables","outerStrokeWidth","parseFontSize","textPosition","radius","arcGenerator","arc","labelArcGenerator","myGeneratedColors","section","filteredArcs","datum","color","scaleOrdinal","allSectionData","legend","_datum","height2","offset","horizontal","vertical","longestTextWidth","node","totalWidth","configureSvgSize","renderer","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js b/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js new file mode 100644 index 000000000000..830d6f0974a7 --- /dev/null +++ b/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js @@ -0,0 +1,8 @@ +import{_ as o,s as Se,g as Ae,q as ie,p as ke,a as Fe,b as Pe,c as Vt,l as At,d as wt,e as ve,y as Ce,F as D,K as Le,i as Ee}from"./index.js";import{l as ee}from"./linear.js";import"./XCircleIcon.js";import"./init.js";import"./defaultLocale.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new t.Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="deffa5ee-b5fc-4d98-ad5d-8e715907a723",t._sentryDebugIdIdentifier="sentry-dbid-deffa5ee-b5fc-4d98-ad5d-8e715907a723")})()}catch{}var zt=(function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),a=[1,3],u=[1,4],h=[1,5],c=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],_=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],n=[55,56,57],A=[2,36],d=[1,37],T=[1,36],q=[1,38],m=[1,35],b=[1,43],f=[1,41],O=[1,14],Y=[1,23],G=[1,18],yt=[1,19],Tt=[1,20],dt=[1,21],Ft=[1,22],ut=[1,24],ft=[1,25],xt=[1,26],gt=[1,27],i=[1,28],Rt=[1,29],W=[1,32],U=[1,33],k=[1,34],F=[1,39],P=[1,40],v=[1,42],C=[1,44],H=[1,62],X=[1,61],L=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Bt=[1,65],Nt=[1,66],Wt=[1,67],Ut=[1,68],Qt=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],I=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],$=[1,91],tt=[1,92],et=[1,99],it=[1,93],at=[1,96],nt=[1,94],st=[1,95],rt=[1,97],ot=[1,98],Pt=[1,102],Kt=[10,55,56,57],B=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,x,S,e,pt){var s=e.length-1;switch(S){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],x.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),x.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),x.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),x.setAccDescription(this.$);break;case 46:x.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:x.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:x.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:x.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:x.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:x.setXAxisLeftText(e[s-2]),x.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",x.setXAxisLeftText(e[s-1]);break;case 53:x.setXAxisLeftText(e[s]);break;case 54:x.setYAxisBottomText(e[s-2]),x.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",x.setYAxisBottomText(e[s-1]);break;case 56:x.setYAxisBottomText(e[s]);break;case 57:x.setQuadrant1Text(e[s]);break;case 58:x.setQuadrant2Text(e[s]);break;case 59:x.setQuadrant3Text(e[s]);break;case 60:x.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:a,26:1,27:2,28:u,55:h,56:c,57:p},{1:[3]},{18:a,26:8,27:2,28:u,55:h,56:c,57:p},{18:a,26:9,27:2,28:u,55:h,56:c,57:p},t(y,[2,33],{29:10}),t(_,[2,61]),t(_,[2,62]),t(_,[2,63]),{1:[2,30]},{1:[2,31]},t(n,A,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:q,12:m,13:b,14:f,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:ft,51:xt,52:gt,53:i,54:Rt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(y,[2,34]),{27:45,55:h,56:c,57:p},t(n,[2,37]),t(n,A,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:T,10:q,12:m,13:b,14:f,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:ft,51:xt,52:gt,53:i,54:Rt,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(n,[2,39]),t(n,[2,40]),t(n,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(n,[2,45]),t(n,[2,46]),{18:[1,50]},{4:d,5:T,10:q,12:m,13:b,14:f,43:51,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:f,43:52,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:f,43:53,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:f,43:54,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:f,43:55,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:f,43:56,58:31,60:W,61:U,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,44:[1,57],47:[1,58],58:60,59:59,63:k,64:F,65:P,66:v,67:C},t(L,[2,64]),t(L,[2,66]),t(L,[2,67]),t(L,[2,70]),t(L,[2,71]),t(L,[2,72]),t(L,[2,73]),t(L,[2,74]),t(L,[2,75]),t(L,[2,76]),t(L,[2,77]),t(L,[2,78]),t(L,[2,79]),t(L,[2,80]),t(y,[2,35]),t(n,[2,38]),t(n,[2,42]),t(n,[2,43]),t(n,[2,44]),{3:64,4:Bt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,21:63},t(n,[2,53],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,49:[1,77],63:k,64:F,65:P,66:v,67:C}),t(n,[2,56],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,49:[1,78],63:k,64:F,65:P,66:v,67:C}),t(n,[2,57],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),t(n,[2,58],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),t(n,[2,59],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),t(n,[2,60],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),{45:[1,79]},{44:[1,80]},t(L,[2,65]),t(L,[2,81]),t(L,[2,82]),t(L,[2,83]),{3:82,4:Bt,5:Nt,6:Wt,7:Ut,8:Qt,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,18:[1,81]},t(I,[2,23]),t(I,[2,1]),t(I,[2,2]),t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12]),t(n,[2,52],{58:31,43:83,4:d,5:T,10:q,12:m,13:b,14:f,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),t(n,[2,55],{58:31,43:84,4:d,5:T,10:q,12:m,13:b,14:f,60:W,61:U,63:k,64:F,65:P,66:v,67:C}),{46:[1,85]},{45:[1,86]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:88,23:87},t(I,[2,24]),t(n,[2,51],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),t(n,[2,54],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:f,18:X,63:k,64:F,65:P,66:v,67:C}),t(n,[2,47],{22:88,16:89,23:100,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,101]},t(n,[2,29],{10:Pt}),t(Kt,[2,27],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(B,[2,25]),t(B,[2,13]),t(B,[2,14]),t(B,[2,15]),t(B,[2,16]),t(B,[2,17]),t(B,[2,18]),t(B,[2,19]),t(B,[2,20]),t(B,[2,21]),t(B,[2,22]),t(n,[2,49],{10:Pt}),t(n,[2,48],{22:88,16:89,23:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:105},t(B,[2,26]),t(n,[2,50],{10:Pt}),t(Kt,[2,28],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],x=[],S=[null],e=[],pt=this.table,s="",mt=0,Zt=0,qe=2,Jt=1,me=e.slice.call(arguments,1),E=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);E.setInput(r,K.yy),K.yy.lexer=E,K.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var Lt=E.yylloc;e.push(Lt);var be=E.options&&E.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(R){g.length=g.length-2*R,S.length=S.length-R,e.length=e.length-R}o(_e,"popStack");function $t(){var R;return R=x.pop()||E.lex()||Jt,typeof R!="number"&&(R instanceof Array&&(x=R,R=x.pop()),R=l.symbols_[R]||R),R}o($t,"lex");for(var V,Z,N,Et,lt={},bt,M,te,_t;;){if(Z=g[g.length-1],this.defaultActions[Z]?N=this.defaultActions[Z]:((V===null||typeof V>"u")&&(V=$t()),N=pt[Z]&&pt[Z][V]),typeof N>"u"||!N.length||!N[0]){var Dt="";_t=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&_t.push("'"+this.terminals_[bt]+"'");E.showPosition?Dt="Parse error on line "+(mt+1)+`: +`+E.showPosition()+` +Expecting `+_t.join(", ")+", got '"+(this.terminals_[V]||V)+"'":Dt="Parse error on line "+(mt+1)+": Unexpected "+(V==Jt?"end of input":"'"+(this.terminals_[V]||V)+"'"),this.parseError(Dt,{text:E.match,token:this.terminals_[V]||V,line:E.yylineno,loc:Lt,expected:_t})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+V);switch(N[0]){case 1:g.push(V),S.push(E.yytext),e.push(E.yylloc),g.push(N[1]),V=null,Zt=E.yyleng,s=E.yytext,mt=E.yylineno,Lt=E.yylloc;break;case 2:if(M=this.productions_[N[1]][1],lt.$=S[S.length-M],lt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},be&&(lt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Et=this.performAction.apply(lt,[s,Zt,mt,K.yy,N[1],S,e].concat(me)),typeof Et<"u")return Et;M&&(g=g.slice(0,-1*M*2),S=S.slice(0,-1*M),e=e.slice(0,-1*M)),g.push(this.productions_[N[1]][0]),S.push(lt.$),e.push(lt._$),te=pt[g[g.length-2]][g[g.length-1]],g.push(te);break;case 3:return!0}}return!0},"parse")},Te=(function(){var j={EOF:1,parseError:o(function(l,g){if(this.yy.parser)this.yy.parser.parseError(l,g);else throw new Error(l)},"parseError"),setInput:o(function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:o(function(r){var l=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(r){this.unput(this.match.slice(r))},"less"),pastInput:o(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+l+"^"},"showPosition"),test_match:o(function(r,l){var g,x,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),x=r[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],g=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var e in S)this[e]=S[e];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,l,g,x;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),e=0;el[0].length)){if(l=g,x=e,this.options.backtrack_lexer){if(r=this.test_match(g,S[e]),r!==!1)return r;if(this._backtrack){l=!1;continue}else return!1}else if(!this.options.flex)break}return l?(r=this.test_match(l,S[x]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var l=this.next();return l||this.lex()},"lex"),begin:o(function(l){this.conditionStack.push(l)},"begin"),popState:o(function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},"topState"),pushState:o(function(l){this.begin(l)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(l,g,x,S){switch(x){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return j})();vt.lexer=Te;function qt(){this.yy={}}return o(qt,"Parser"),qt.prototype=vt,vt.Parser=qt,new qt})();zt.parser=zt;var De=zt,z=Le(),ct,we=(ct=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var a,u,h,c,p,y,_,n,A,d,T,q,m,b,f,O,Y,G;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((a=D.quadrantChart)==null?void 0:a.chartWidth)||500,chartWidth:((u=D.quadrantChart)==null?void 0:u.chartHeight)||500,titlePadding:((h=D.quadrantChart)==null?void 0:h.titlePadding)||10,titleFontSize:((c=D.quadrantChart)==null?void 0:c.titleFontSize)||20,quadrantPadding:((p=D.quadrantChart)==null?void 0:p.quadrantPadding)||5,xAxisLabelPadding:((y=D.quadrantChart)==null?void 0:y.xAxisLabelPadding)||5,yAxisLabelPadding:((_=D.quadrantChart)==null?void 0:_.yAxisLabelPadding)||5,xAxisLabelFontSize:((n=D.quadrantChart)==null?void 0:n.xAxisLabelFontSize)||16,yAxisLabelFontSize:((A=D.quadrantChart)==null?void 0:A.yAxisLabelFontSize)||16,quadrantLabelFontSize:((d=D.quadrantChart)==null?void 0:d.quadrantLabelFontSize)||16,quadrantTextTopPadding:((T=D.quadrantChart)==null?void 0:T.quadrantTextTopPadding)||5,pointTextPadding:((q=D.quadrantChart)==null?void 0:q.pointTextPadding)||5,pointLabelFontSize:((m=D.quadrantChart)==null?void 0:m.pointLabelFontSize)||12,pointRadius:((b=D.quadrantChart)==null?void 0:b.pointRadius)||5,xAxisPosition:((f=D.quadrantChart)==null?void 0:f.xAxisPosition)||"top",yAxisPosition:((O=D.quadrantChart)==null?void 0:O.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((Y=D.quadrantChart)==null?void 0:Y.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((G=D.quadrantChart)==null?void 0:G.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:z.quadrant1Fill,quadrant2Fill:z.quadrant2Fill,quadrant3Fill:z.quadrant3Fill,quadrant4Fill:z.quadrant4Fill,quadrant1TextFill:z.quadrant1TextFill,quadrant2TextFill:z.quadrant2TextFill,quadrant3TextFill:z.quadrant3TextFill,quadrant4TextFill:z.quadrant4TextFill,quadrantPointFill:z.quadrantPointFill,quadrantPointTextFill:z.quadrantPointTextFill,quadrantXAxisTextFill:z.quadrantXAxisTextFill,quadrantYAxisTextFill:z.quadrantYAxisTextFill,quadrantTitleFill:z.quadrantTitleFill,quadrantInternalBorderStrokeFill:z.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:z.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,At.info("clear called")}setData(a){this.data={...this.data,...a}}addPoints(a){this.data.points=[...a,...this.data.points]}addClass(a,u){this.classes.set(a,u)}setConfig(a){At.trace("setConfig called with: ",a),this.config={...this.config,...a}}setThemeConfig(a){At.trace("setThemeConfig called with: ",a),this.themeConfig={...this.themeConfig,...a}}calculateSpace(a,u,h,c){const p=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,y={top:a==="top"&&u?p:0,bottom:a==="bottom"&&u?p:0},_=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,n={left:this.config.yAxisPosition==="left"&&h?_:0,right:this.config.yAxisPosition==="right"&&h?_:0},A=this.config.titleFontSize+this.config.titlePadding*2,d={top:c?A:0},T=this.config.quadrantPadding+n.left,q=this.config.quadrantPadding+y.top+d.top,m=this.config.chartWidth-this.config.quadrantPadding*2-n.left-n.right,b=this.config.chartHeight-this.config.quadrantPadding*2-y.top-y.bottom-d.top,f=m/2,O=b/2;return{xAxisSpace:y,yAxisSpace:n,titleSpace:d,quadrantSpace:{quadrantLeft:T,quadrantTop:q,quadrantWidth:m,quadrantHalfWidth:f,quadrantHeight:b,quadrantHalfHeight:O}}}getAxisLabels(a,u,h,c){const{quadrantSpace:p,titleSpace:y}=c,{quadrantHalfHeight:_,quadrantHeight:n,quadrantLeft:A,quadrantHalfWidth:d,quadrantTop:T,quadrantWidth:q}=p,m=!!this.data.xAxisRightText,b=!!this.data.yAxisTopText,f=[];return this.data.xAxisLeftText&&u&&f.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:A+(m?d/2:0),y:a==="top"?this.config.xAxisLabelPadding+y.top:this.config.xAxisLabelPadding+T+n+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&u&&f.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:A+d+(m?d/2:0),y:a==="top"?this.config.xAxisLabelPadding+y.top:this.config.xAxisLabelPadding+T+n+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&h&&f.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+A+q+this.config.quadrantPadding,y:T+n-(b?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:b?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&h&&f.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+A+q+this.config.quadrantPadding,y:T+_-(b?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:b?"center":"left",horizontalPos:"top",rotation:-90}),f}getQuadrants(a){const{quadrantSpace:u}=a,{quadrantHalfHeight:h,quadrantLeft:c,quadrantHalfWidth:p,quadrantTop:y}=u,_=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:c+p,y,width:p,height:h,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:c,y,width:p,height:h,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:c,y:y+h,width:p,height:h,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:c+p,y:y+h,width:p,height:h,fill:this.themeConfig.quadrant4Fill}];for(const n of _)n.text.x=n.x+n.width/2,this.data.points.length===0?(n.text.y=n.y+n.height/2,n.text.horizontalPos="middle"):(n.text.y=n.y+this.config.quadrantTextTopPadding,n.text.horizontalPos="top");return _}getQuadrantPoints(a){const{quadrantSpace:u}=a,{quadrantHeight:h,quadrantLeft:c,quadrantTop:p,quadrantWidth:y}=u,_=ee().domain([0,1]).range([c,y+c]),n=ee().domain([0,1]).range([h+p,p]);return this.data.points.map(d=>{const T=this.classes.get(d.className);return T&&(d={...T,...d}),{x:_(d.x),y:n(d.y),fill:d.color??this.themeConfig.quadrantPointFill,radius:d.radius??this.config.pointRadius,text:{text:d.text,fill:this.themeConfig.quadrantPointTextFill,x:_(d.x),y:n(d.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:d.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:d.strokeWidth??"0px"}})}getBorders(a){const u=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:h}=a,{quadrantHalfHeight:c,quadrantHeight:p,quadrantLeft:y,quadrantHalfWidth:_,quadrantTop:n,quadrantWidth:A}=h;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:y-u,y1:n,x2:y+A+u,y2:n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:y+A,y1:n+u,x2:y+A,y2:n+p-u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:y-u,y1:n+p,x2:y+A+u,y2:n+p},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:y,y1:n+u,x2:y,y2:n+p-u},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:y+_,y1:n+u,x2:y+_,y2:n+p-u},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:y+u,y1:n+c,x2:y+A-u,y2:n+c}]}getTitle(a){if(a)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const a=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),u=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),h=this.config.showTitle&&!!this.data.titleText,c=this.data.points.length>0?"bottom":this.config.xAxisPosition,p=this.calculateSpace(c,a,u,h);return{points:this.getQuadrantPoints(p),quadrants:this.getQuadrants(p),axisLabels:this.getAxisLabels(c,a,u,p),borderLines:this.getBorders(p),title:this.getTitle(h)}}},o(ct,"QuadrantBuilder"),ct),ht,St=(ht=class extends Error{constructor(a,u,h){super(`value for ${a} ${u} is invalid, please use a valid ${h}`),this.name="InvalidStyleError"}},o(ht,"InvalidStyleError"),ht);function It(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}o(It,"validateHexCode");function ae(t){return!/^\d+$/.test(t)}o(ae,"validateNumber");function ne(t){return!/^\d+px$/.test(t)}o(ne,"validateSizeInPixels");var ze=Vt();function Q(t){return Ee(t.trim(),ze)}o(Q,"textSanitizer");var w=new we;function se(t){w.setData({quadrant1Text:Q(t.text)})}o(se,"setQuadrant1Text");function re(t){w.setData({quadrant2Text:Q(t.text)})}o(re,"setQuadrant2Text");function oe(t){w.setData({quadrant3Text:Q(t.text)})}o(oe,"setQuadrant3Text");function le(t){w.setData({quadrant4Text:Q(t.text)})}o(le,"setQuadrant4Text");function ce(t){w.setData({xAxisLeftText:Q(t.text)})}o(ce,"setXAxisLeftText");function he(t){w.setData({xAxisRightText:Q(t.text)})}o(he,"setXAxisRightText");function de(t){w.setData({yAxisTopText:Q(t.text)})}o(de,"setYAxisTopText");function ue(t){w.setData({yAxisBottomText:Q(t.text)})}o(ue,"setYAxisBottomText");function kt(t){const a={};for(const u of t){const[h,c]=u.trim().split(/\s*:\s*/);if(h==="radius"){if(ae(c))throw new St(h,c,"number");a.radius=parseInt(c)}else if(h==="color"){if(It(c))throw new St(h,c,"hex code");a.color=c}else if(h==="stroke-color"){if(It(c))throw new St(h,c,"hex code");a.strokeColor=c}else if(h==="stroke-width"){if(ne(c))throw new St(h,c,"number of pixels (eg. 10px)");a.strokeWidth=c}else throw new Error(`style named ${h} is not supported.`)}return a}o(kt,"parseStyles");function fe(t,a,u,h,c){const p=kt(c);w.addPoints([{x:u,y:h,text:Q(t.text),className:a,...p}])}o(fe,"addPoint");function xe(t,a){w.addClass(t,kt(a))}o(xe,"addClass");function ge(t){w.setConfig({chartWidth:t})}o(ge,"setWidth");function pe(t){w.setConfig({chartHeight:t})}o(pe,"setHeight");function ye(){const t=Vt(),{themeVariables:a,quadrantChart:u}=t;return u&&w.setConfig(u),w.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),w.setData({titleText:ie()}),w.build()}o(ye,"getQuadrantData");var Ie=o(function(){w.clear(),Ce()},"clear"),Ve={setWidth:ge,setHeight:pe,setQuadrant1Text:se,setQuadrant2Text:re,setQuadrant3Text:oe,setQuadrant4Text:le,setXAxisLeftText:ce,setXAxisRightText:he,setYAxisTopText:de,setYAxisBottomText:ue,parseStyles:kt,addPoint:fe,addClass:xe,getQuadrantData:ye,clear:Ie,setAccTitle:Pe,getAccTitle:Fe,setDiagramTitle:ke,getDiagramTitle:ie,getAccDescription:Ae,setAccDescription:Se},Re=o((t,a,u,h)=>{var ft,xt,gt;function c(i){return i==="top"?"hanging":"middle"}o(c,"getDominantBaseLine");function p(i){return i==="left"?"start":"middle"}o(p,"getTextAnchor");function y(i){return`translate(${i.x}, ${i.y}) rotate(${i.rotation||0})`}o(y,"getTransformation");const _=Vt();At.debug(`Rendering quadrant chart +`+t);const n=_.securityLevel;let A;n==="sandbox"&&(A=wt("#i"+a));const T=(n==="sandbox"?wt(A.nodes()[0].contentDocument.body):wt("body")).select(`[id="${a}"]`),q=T.append("g").attr("class","main"),m=((ft=_.quadrantChart)==null?void 0:ft.chartWidth)??500,b=((xt=_.quadrantChart)==null?void 0:xt.chartHeight)??500;ve(T,b,m,((gt=_.quadrantChart)==null?void 0:gt.useMaxWidth)??!0),T.attr("viewBox","0 0 "+m+" "+b),h.db.setHeight(b),h.db.setWidth(m);const f=h.db.getQuadrantData(),O=q.append("g").attr("class","quadrants"),Y=q.append("g").attr("class","border"),G=q.append("g").attr("class","data-points"),yt=q.append("g").attr("class","labels"),Tt=q.append("g").attr("class","title");f.title&&Tt.append("text").attr("x",0).attr("y",0).attr("fill",f.title.fill).attr("font-size",f.title.fontSize).attr("dominant-baseline",c(f.title.horizontalPos)).attr("text-anchor",p(f.title.verticalPos)).attr("transform",y(f.title)).text(f.title.text),f.borderLines&&Y.selectAll("line").data(f.borderLines).enter().append("line").attr("x1",i=>i.x1).attr("y1",i=>i.y1).attr("x2",i=>i.x2).attr("y2",i=>i.y2).style("stroke",i=>i.strokeFill).style("stroke-width",i=>i.strokeWidth);const dt=O.selectAll("g.quadrant").data(f.quadrants).enter().append("g").attr("class","quadrant");dt.append("rect").attr("x",i=>i.x).attr("y",i=>i.y).attr("width",i=>i.width).attr("height",i=>i.height).attr("fill",i=>i.fill),dt.append("text").attr("x",0).attr("y",0).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>c(i.text.horizontalPos)).attr("text-anchor",i=>p(i.text.verticalPos)).attr("transform",i=>y(i.text)).text(i=>i.text.text),yt.selectAll("g.label").data(f.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(i=>i.text).attr("fill",i=>i.fill).attr("font-size",i=>i.fontSize).attr("dominant-baseline",i=>c(i.horizontalPos)).attr("text-anchor",i=>p(i.verticalPos)).attr("transform",i=>y(i));const ut=G.selectAll("g.data-point").data(f.points).enter().append("g").attr("class","data-point");ut.append("circle").attr("cx",i=>i.x).attr("cy",i=>i.y).attr("r",i=>i.radius).attr("fill",i=>i.fill).attr("stroke",i=>i.strokeColor).attr("stroke-width",i=>i.strokeWidth),ut.append("text").attr("x",0).attr("y",0).text(i=>i.text.text).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>c(i.text.horizontalPos)).attr("text-anchor",i=>p(i.text.verticalPos)).attr("transform",i=>y(i.text))},"draw"),Be={draw:Re},He={parser:De,db:Ve,renderer:Be,styles:o(()=>"","styles")};export{He as diagram}; +//# sourceMappingURL=quadrantDiagram-LMRXKWRM.js.map diff --git a/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js.map b/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js.map new file mode 100644 index 000000000000..126891cb2a08 --- /dev/null +++ b/extensions/continue/gui/assets/quadrantDiagram-LMRXKWRM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quadrantDiagram-LMRXKWRM.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-LMRXKWRM.mjs"],"sourcesContent":["import {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n getThemeVariables,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/quadrant-chart/parser/quadrant.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 4, 5, 10, 12, 13, 14, 18, 25, 35, 37, 39, 41, 42, 48, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 63, 64, 65, 66, 67], $V6 = [1, 4, 5, 10, 12, 13, 14, 18, 25, 28, 35, 37, 39, 41, 42, 48, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 63, 64, 65, 66, 67], $V7 = [55, 56, 57], $V8 = [2, 36], $V9 = [1, 37], $Va = [1, 36], $Vb = [1, 38], $Vc = [1, 35], $Vd = [1, 43], $Ve = [1, 41], $Vf = [1, 14], $Vg = [1, 23], $Vh = [1, 18], $Vi = [1, 19], $Vj = [1, 20], $Vk = [1, 21], $Vl = [1, 22], $Vm = [1, 24], $Vn = [1, 25], $Vo = [1, 26], $Vp = [1, 27], $Vq = [1, 28], $Vr = [1, 29], $Vs = [1, 32], $Vt = [1, 33], $Vu = [1, 34], $Vv = [1, 39], $Vw = [1, 40], $Vx = [1, 42], $Vy = [1, 44], $Vz = [1, 62], $VA = [1, 61], $VB = [4, 5, 8, 10, 12, 13, 14, 18, 44, 47, 49, 55, 56, 57, 63, 64, 65, 66, 67], $VC = [1, 65], $VD = [1, 66], $VE = [1, 67], $VF = [1, 68], $VG = [1, 69], $VH = [1, 70], $VI = [1, 71], $VJ = [1, 72], $VK = [1, 73], $VL = [1, 74], $VM = [1, 75], $VN = [1, 76], $VO = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], $VP = [1, 90], $VQ = [1, 91], $VR = [1, 92], $VS = [1, 99], $VT = [1, 93], $VU = [1, 96], $VV = [1, 94], $VW = [1, 95], $VX = [1, 97], $VY = [1, 98], $VZ = [1, 102], $V_ = [10, 55, 56, 57], $V$ = [4, 5, 6, 8, 10, 11, 13, 17, 18, 19, 20, 55, 56, 57];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"idStringToken\": 3, \"ALPHA\": 4, \"NUM\": 5, \"NODE_STRING\": 6, \"DOWN\": 7, \"MINUS\": 8, \"DEFAULT\": 9, \"COMMA\": 10, \"COLON\": 11, \"AMP\": 12, \"BRKT\": 13, \"MULT\": 14, \"UNICODE_TEXT\": 15, \"styleComponent\": 16, \"UNIT\": 17, \"SPACE\": 18, \"STYLE\": 19, \"PCT\": 20, \"idString\": 21, \"style\": 22, \"stylesOpt\": 23, \"classDefStatement\": 24, \"CLASSDEF\": 25, \"start\": 26, \"eol\": 27, \"QUADRANT\": 28, \"document\": 29, \"line\": 30, \"statement\": 31, \"axisDetails\": 32, \"quadrantDetails\": 33, \"points\": 34, \"title\": 35, \"title_value\": 36, \"acc_title\": 37, \"acc_title_value\": 38, \"acc_descr\": 39, \"acc_descr_value\": 40, \"acc_descr_multiline_value\": 41, \"section\": 42, \"text\": 43, \"point_start\": 44, \"point_x\": 45, \"point_y\": 46, \"class_name\": 47, \"X-AXIS\": 48, \"AXIS-TEXT-DELIMITER\": 49, \"Y-AXIS\": 50, \"QUADRANT_1\": 51, \"QUADRANT_2\": 52, \"QUADRANT_3\": 53, \"QUADRANT_4\": 54, \"NEWLINE\": 55, \"SEMI\": 56, \"EOF\": 57, \"alphaNumToken\": 58, \"textNoTagsToken\": 59, \"STR\": 60, \"MD_STR\": 61, \"alphaNum\": 62, \"PUNCTUATION\": 63, \"PLUS\": 64, \"EQUALS\": 65, \"DOT\": 66, \"UNDERSCORE\": 67, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ALPHA\", 5: \"NUM\", 6: \"NODE_STRING\", 7: \"DOWN\", 8: \"MINUS\", 9: \"DEFAULT\", 10: \"COMMA\", 11: \"COLON\", 12: \"AMP\", 13: \"BRKT\", 14: \"MULT\", 15: \"UNICODE_TEXT\", 17: \"UNIT\", 18: \"SPACE\", 19: \"STYLE\", 20: \"PCT\", 25: \"CLASSDEF\", 28: \"QUADRANT\", 35: \"title\", 36: \"title_value\", 37: \"acc_title\", 38: \"acc_title_value\", 39: \"acc_descr\", 40: \"acc_descr_value\", 41: \"acc_descr_multiline_value\", 42: \"section\", 44: \"point_start\", 45: \"point_x\", 46: \"point_y\", 47: \"class_name\", 48: \"X-AXIS\", 49: \"AXIS-TEXT-DELIMITER\", 50: \"Y-AXIS\", 51: \"QUADRANT_1\", 52: \"QUADRANT_2\", 53: \"QUADRANT_3\", 54: \"QUADRANT_4\", 55: \"NEWLINE\", 56: \"SEMI\", 57: \"EOF\", 60: \"STR\", 61: \"MD_STR\", 63: \"PUNCTUATION\", 64: \"PLUS\", 65: \"EQUALS\", 66: \"DOT\", 67: \"UNDERSCORE\" },\n productions_: [0, [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [16, 1], [21, 1], [21, 2], [22, 1], [22, 2], [23, 1], [23, 3], [24, 5], [26, 2], [26, 2], [26, 2], [29, 0], [29, 2], [30, 2], [31, 0], [31, 1], [31, 2], [31, 1], [31, 1], [31, 1], [31, 2], [31, 2], [31, 2], [31, 1], [31, 1], [34, 4], [34, 5], [34, 5], [34, 6], [32, 4], [32, 3], [32, 2], [32, 4], [32, 3], [32, 2], [33, 2], [33, 2], [33, 2], [33, 2], [27, 1], [27, 1], [27, 1], [43, 1], [43, 2], [43, 1], [43, 1], [62, 1], [62, 2], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [58, 1], [59, 1], [59, 1], [59, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 23:\n this.$ = $$[$0];\n break;\n case 24:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n case 26:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 27:\n this.$ = [$$[$0].trim()];\n break;\n case 28:\n $$[$0 - 2].push($$[$0].trim());\n this.$ = $$[$0 - 2];\n break;\n case 29:\n this.$ = $$[$0 - 4];\n yy.addClass($$[$0 - 2], $$[$0]);\n break;\n case 37:\n this.$ = [];\n break;\n case 42:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 43:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 44:\n case 45:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 46:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 47:\n yy.addPoint($$[$0 - 3], \"\", $$[$0 - 1], $$[$0], []);\n break;\n case 48:\n yy.addPoint($$[$0 - 4], $$[$0 - 3], $$[$0 - 1], $$[$0], []);\n break;\n case 49:\n yy.addPoint($$[$0 - 4], \"\", $$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 50:\n yy.addPoint($$[$0 - 5], $$[$0 - 4], $$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 51:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 52:\n $$[$0 - 1].text += \" \\u27F6 \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 53:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 54:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 55:\n $$[$0 - 1].text += \" \\u27F6 \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 56:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 57:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 58:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 59:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 60:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 64:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 65:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 66:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 67:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 68:\n this.$ = $$[$0];\n break;\n case 69:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 18: $V0, 26: 1, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, { 1: [3] }, { 18: $V0, 26: 8, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, { 18: $V0, 26: 9, 27: 2, 28: $V1, 55: $V2, 56: $V3, 57: $V4 }, o($V5, [2, 33], { 29: 10 }), o($V6, [2, 61]), o($V6, [2, 62]), o($V6, [2, 63]), { 1: [2, 30] }, { 1: [2, 31] }, o($V7, $V8, { 30: 11, 31: 12, 24: 13, 32: 15, 33: 16, 34: 17, 43: 30, 58: 31, 1: [2, 32], 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $Vf, 25: $Vg, 35: $Vh, 37: $Vi, 39: $Vj, 41: $Vk, 42: $Vl, 48: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V5, [2, 34]), { 27: 45, 55: $V2, 56: $V3, 57: $V4 }, o($V7, [2, 37]), o($V7, $V8, { 24: 13, 32: 15, 33: 16, 34: 17, 43: 30, 58: 31, 31: 46, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $Vf, 25: $Vg, 35: $Vh, 37: $Vi, 39: $Vj, 41: $Vk, 42: $Vl, 48: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 39]), o($V7, [2, 40]), o($V7, [2, 41]), { 36: [1, 47] }, { 38: [1, 48] }, { 40: [1, 49] }, o($V7, [2, 45]), o($V7, [2, 46]), { 18: [1, 50] }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 51, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 52, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 53, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 54, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 55, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 43: 56, 58: 31, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, { 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 44: [1, 57], 47: [1, 58], 58: 60, 59: 59, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }, o($VB, [2, 64]), o($VB, [2, 66]), o($VB, [2, 67]), o($VB, [2, 70]), o($VB, [2, 71]), o($VB, [2, 72]), o($VB, [2, 73]), o($VB, [2, 74]), o($VB, [2, 75]), o($VB, [2, 76]), o($VB, [2, 77]), o($VB, [2, 78]), o($VB, [2, 79]), o($VB, [2, 80]), o($V5, [2, 35]), o($V7, [2, 38]), o($V7, [2, 42]), o($V7, [2, 43]), o($V7, [2, 44]), { 3: 64, 4: $VC, 5: $VD, 6: $VE, 7: $VF, 8: $VG, 9: $VH, 10: $VI, 11: $VJ, 12: $VK, 13: $VL, 14: $VM, 15: $VN, 21: 63 }, o($V7, [2, 53], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 49: [1, 77], 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 56], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 49: [1, 78], 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 57], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 58], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 59], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 60], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), { 45: [1, 79] }, { 44: [1, 80] }, o($VB, [2, 65]), o($VB, [2, 81]), o($VB, [2, 82]), o($VB, [2, 83]), { 3: 82, 4: $VC, 5: $VD, 6: $VE, 7: $VF, 8: $VG, 9: $VH, 10: $VI, 11: $VJ, 12: $VK, 13: $VL, 14: $VM, 15: $VN, 18: [1, 81] }, o($VO, [2, 23]), o($VO, [2, 1]), o($VO, [2, 2]), o($VO, [2, 3]), o($VO, [2, 4]), o($VO, [2, 5]), o($VO, [2, 6]), o($VO, [2, 7]), o($VO, [2, 8]), o($VO, [2, 9]), o($VO, [2, 10]), o($VO, [2, 11]), o($VO, [2, 12]), o($V7, [2, 52], { 58: 31, 43: 83, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 55], { 58: 31, 43: 84, 4: $V9, 5: $Va, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 60: $Vs, 61: $Vt, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), { 46: [1, 85] }, { 45: [1, 86] }, { 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 16: 89, 17: $VV, 18: $VW, 19: $VX, 20: $VY, 22: 88, 23: 87 }, o($VO, [2, 24]), o($V7, [2, 51], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 54], { 59: 59, 58: 60, 4: $V9, 5: $Va, 8: $Vz, 10: $Vb, 12: $Vc, 13: $Vd, 14: $Ve, 18: $VA, 63: $Vu, 64: $Vv, 65: $Vw, 66: $Vx, 67: $Vy }), o($V7, [2, 47], { 22: 88, 16: 89, 23: 100, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), { 46: [1, 101] }, o($V7, [2, 29], { 10: $VZ }), o($V_, [2, 27], { 16: 103, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), o($V$, [2, 25]), o($V$, [2, 13]), o($V$, [2, 14]), o($V$, [2, 15]), o($V$, [2, 16]), o($V$, [2, 17]), o($V$, [2, 18]), o($V$, [2, 19]), o($V$, [2, 20]), o($V$, [2, 21]), o($V$, [2, 22]), o($V7, [2, 49], { 10: $VZ }), o($V7, [2, 48], { 22: 88, 16: 89, 23: 104, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY }), { 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 16: 89, 17: $VV, 18: $VW, 19: $VX, 20: $VY, 22: 105 }, o($V$, [2, 26]), o($V7, [2, 50], { 10: $VZ }), o($V_, [2, 28], { 16: 103, 4: $VP, 5: $VQ, 6: $VR, 8: $VS, 11: $VT, 13: $VU, 17: $VV, 18: $VW, 19: $VX, 20: $VY })],\n defaultActions: { 8: [2, 30], 9: [2, 31] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 55;\n break;\n case 3:\n break;\n case 4:\n this.begin(\"title\");\n return 35;\n break;\n case 5:\n this.popState();\n return \"title_value\";\n break;\n case 6:\n this.begin(\"acc_title\");\n return 37;\n break;\n case 7:\n this.popState();\n return \"acc_title_value\";\n break;\n case 8:\n this.begin(\"acc_descr\");\n return 39;\n break;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n break;\n case 13:\n return 48;\n break;\n case 14:\n return 50;\n break;\n case 15:\n return 49;\n break;\n case 16:\n return 51;\n break;\n case 17:\n return 52;\n break;\n case 18:\n return 53;\n break;\n case 19:\n return 54;\n break;\n case 20:\n return 25;\n break;\n case 21:\n this.begin(\"md_string\");\n break;\n case 22:\n return \"MD_STR\";\n break;\n case 23:\n this.popState();\n break;\n case 24:\n this.begin(\"string\");\n break;\n case 25:\n this.popState();\n break;\n case 26:\n return \"STR\";\n break;\n case 27:\n this.begin(\"class_name\");\n break;\n case 28:\n this.popState();\n return 47;\n break;\n case 29:\n this.begin(\"point_start\");\n return 44;\n break;\n case 30:\n this.begin(\"point_x\");\n return 45;\n break;\n case 31:\n this.popState();\n break;\n case 32:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 33:\n this.popState();\n return 46;\n break;\n case 34:\n return 28;\n break;\n case 35:\n return 4;\n break;\n case 36:\n return 11;\n break;\n case 37:\n return 64;\n break;\n case 38:\n return 10;\n break;\n case 39:\n return 65;\n break;\n case 40:\n return 65;\n break;\n case 41:\n return 14;\n break;\n case 42:\n return 13;\n break;\n case 43:\n return 67;\n break;\n case 44:\n return 66;\n break;\n case 45:\n return 12;\n break;\n case 46:\n return 8;\n break;\n case 47:\n return 5;\n break;\n case 48:\n return 18;\n break;\n case 49:\n return 56;\n break;\n case 50:\n return 63;\n break;\n case 51:\n return 57;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:classDef\\b)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?::::)/i, /^(?:^\\w+)/i, /^(?:\\s*:\\s*\\[\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?:\\s*\\] *)/i, /^(?:\\s*,\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s)/i, /^(?:;)/i, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i, /^(?:$)/i],\n conditions: { \"class_name\": { \"rules\": [28], \"inclusive\": false }, \"point_y\": { \"rules\": [33], \"inclusive\": false }, \"point_x\": { \"rules\": [32], \"inclusive\": false }, \"point_start\": { \"rules\": [30, 31], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"title\": { \"rules\": [5], \"inclusive\": false }, \"md_string\": { \"rules\": [22, 23], \"inclusive\": false }, \"string\": { \"rules\": [25, 26], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 27, 29, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar quadrant_default = parser;\n\n// src/diagrams/quadrant-chart/quadrantBuilder.ts\nimport { scaleLinear } from \"d3\";\nvar defaultThemeVariables = getThemeVariables();\nvar QuadrantBuilder = class {\n constructor() {\n this.classes = /* @__PURE__ */ new Map();\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n static {\n __name(this, \"QuadrantBuilder\");\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: defaultConfig_default.quadrantChart?.chartWidth || 500,\n chartWidth: defaultConfig_default.quadrantChart?.chartHeight || 500,\n titlePadding: defaultConfig_default.quadrantChart?.titlePadding || 10,\n titleFontSize: defaultConfig_default.quadrantChart?.titleFontSize || 20,\n quadrantPadding: defaultConfig_default.quadrantChart?.quadrantPadding || 5,\n xAxisLabelPadding: defaultConfig_default.quadrantChart?.xAxisLabelPadding || 5,\n yAxisLabelPadding: defaultConfig_default.quadrantChart?.yAxisLabelPadding || 5,\n xAxisLabelFontSize: defaultConfig_default.quadrantChart?.xAxisLabelFontSize || 16,\n yAxisLabelFontSize: defaultConfig_default.quadrantChart?.yAxisLabelFontSize || 16,\n quadrantLabelFontSize: defaultConfig_default.quadrantChart?.quadrantLabelFontSize || 16,\n quadrantTextTopPadding: defaultConfig_default.quadrantChart?.quadrantTextTopPadding || 5,\n pointTextPadding: defaultConfig_default.quadrantChart?.pointTextPadding || 5,\n pointLabelFontSize: defaultConfig_default.quadrantChart?.pointLabelFontSize || 12,\n pointRadius: defaultConfig_default.quadrantChart?.pointRadius || 5,\n xAxisPosition: defaultConfig_default.quadrantChart?.xAxisPosition || \"top\",\n yAxisPosition: defaultConfig_default.quadrantChart?.yAxisPosition || \"left\",\n quadrantInternalBorderStrokeWidth: defaultConfig_default.quadrantChart?.quadrantInternalBorderStrokeWidth || 1,\n quadrantExternalBorderStrokeWidth: defaultConfig_default.quadrantChart?.quadrantExternalBorderStrokeWidth || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n this.classes = /* @__PURE__ */ new Map();\n log.info(\"clear called\");\n }\n setData(data) {\n this.data = { ...this.data, ...data };\n }\n addPoints(points) {\n this.data.points = [...points, ...this.data.points];\n }\n addClass(className, styles) {\n this.classes.set(className, styles);\n }\n setConfig(config2) {\n log.trace(\"setConfig called with: \", config2);\n this.config = { ...this.config, ...config2 };\n }\n setThemeConfig(themeConfig) {\n log.trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = { ...this.themeConfig, ...themeConfig };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft,\n quadrantTop,\n quadrantWidth,\n quadrantHalfWidth,\n quadrantHeight,\n quadrantHalfHeight\n };\n return {\n xAxisSpace,\n yAxisSpace,\n titleSpace,\n quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace, titleSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.xAxisRightText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.yAxisBottomText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n if (this.data.yAxisTopText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants) {\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n const points = this.data.points.map((point) => {\n const classStyles = this.classes.get(point.className);\n if (classStyles) {\n point = { ...classStyles, ...point };\n }\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: point.color ?? this.themeConfig.quadrantPointFill,\n radius: point.radius ?? this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n },\n strokeColor: point.strokeColor ?? this.themeConfig.quadrantPointFill,\n strokeWidth: point.strokeWidth ?? \"0px\"\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) {\n return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n }\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n};\n\n// src/diagrams/quadrant-chart/utils.ts\nvar InvalidStyleError = class extends Error {\n static {\n __name(this, \"InvalidStyleError\");\n }\n constructor(style, value, type) {\n super(`value for ${style} ${value} is invalid, please use a valid ${type}`);\n this.name = \"InvalidStyleError\";\n }\n};\nfunction validateHexCode(value) {\n return !/^#?([\\dA-Fa-f]{6}|[\\dA-Fa-f]{3})$/.test(value);\n}\n__name(validateHexCode, \"validateHexCode\");\nfunction validateNumber(value) {\n return !/^\\d+$/.test(value);\n}\n__name(validateNumber, \"validateNumber\");\nfunction validateSizeInPixels(value) {\n return !/^\\d+px$/.test(value);\n}\n__name(validateSizeInPixels, \"validateSizeInPixels\");\n\n// src/diagrams/quadrant-chart/quadrantDb.ts\nvar config = getConfig();\nfunction textSanitizer(text) {\n return sanitizeText(text.trim(), config);\n}\n__name(textSanitizer, \"textSanitizer\");\nvar quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\n__name(setQuadrant1Text, \"setQuadrant1Text\");\nfunction setQuadrant2Text(textObj) {\n quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\n__name(setQuadrant2Text, \"setQuadrant2Text\");\nfunction setQuadrant3Text(textObj) {\n quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\n__name(setQuadrant3Text, \"setQuadrant3Text\");\nfunction setQuadrant4Text(textObj) {\n quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\n__name(setQuadrant4Text, \"setQuadrant4Text\");\nfunction setXAxisLeftText(textObj) {\n quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\n__name(setXAxisLeftText, \"setXAxisLeftText\");\nfunction setXAxisRightText(textObj) {\n quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\n__name(setXAxisRightText, \"setXAxisRightText\");\nfunction setYAxisTopText(textObj) {\n quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\n__name(setYAxisTopText, \"setYAxisTopText\");\nfunction setYAxisBottomText(textObj) {\n quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\n__name(setYAxisBottomText, \"setYAxisBottomText\");\nfunction parseStyles(styles) {\n const stylesObject = {};\n for (const style of styles) {\n const [key, value] = style.trim().split(/\\s*:\\s*/);\n if (key === \"radius\") {\n if (validateNumber(value)) {\n throw new InvalidStyleError(key, value, \"number\");\n }\n stylesObject.radius = parseInt(value);\n } else if (key === \"color\") {\n if (validateHexCode(value)) {\n throw new InvalidStyleError(key, value, \"hex code\");\n }\n stylesObject.color = value;\n } else if (key === \"stroke-color\") {\n if (validateHexCode(value)) {\n throw new InvalidStyleError(key, value, \"hex code\");\n }\n stylesObject.strokeColor = value;\n } else if (key === \"stroke-width\") {\n if (validateSizeInPixels(value)) {\n throw new InvalidStyleError(key, value, \"number of pixels (eg. 10px)\");\n }\n stylesObject.strokeWidth = value;\n } else {\n throw new Error(`style named ${key} is not supported.`);\n }\n }\n return stylesObject;\n}\n__name(parseStyles, \"parseStyles\");\nfunction addPoint(textObj, className, x, y, styles) {\n const stylesObject = parseStyles(styles);\n quadrantBuilder.addPoints([\n {\n x,\n y,\n text: textSanitizer(textObj.text),\n className,\n ...stylesObject\n }\n ]);\n}\n__name(addPoint, \"addPoint\");\nfunction addClass(className, styles) {\n quadrantBuilder.addClass(className, parseStyles(styles));\n}\n__name(addClass, \"addClass\");\nfunction setWidth(width) {\n quadrantBuilder.setConfig({ chartWidth: width });\n}\n__name(setWidth, \"setWidth\");\nfunction setHeight(height) {\n quadrantBuilder.setConfig({ chartHeight: height });\n}\n__name(setHeight, \"setHeight\");\nfunction getQuadrantData() {\n const config2 = getConfig();\n const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) {\n quadrantBuilder.setConfig(quadrantChartConfig);\n }\n quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n quadrantBuilder.setData({ titleText: getDiagramTitle() });\n return quadrantBuilder.build();\n}\n__name(getQuadrantData, \"getQuadrantData\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n quadrantBuilder.clear();\n clear();\n}, \"clear\");\nvar quadrantDb_default = {\n setWidth,\n setHeight,\n setQuadrant1Text,\n setQuadrant2Text,\n setQuadrant3Text,\n setQuadrant4Text,\n setXAxisLeftText,\n setXAxisRightText,\n setYAxisTopText,\n setYAxisBottomText,\n parseStyles,\n addPoint,\n addClass,\n getQuadrantData,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/quadrant-chart/quadrantRenderer.ts\nimport { select } from \"d3\";\nvar draw = /* @__PURE__ */ __name((txt, id, _version, diagObj) => {\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n __name(getDominantBaseLine, \"getDominantBaseLine\");\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n __name(getTextAnchor, \"getTextAnchor\");\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n __name(getTransformation, \"getTransformation\");\n const conf = getConfig();\n log.debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = conf.quadrantChart?.chartWidth ?? 500;\n const height = conf.quadrantChart?.chartHeight ?? 500;\n configureSvgSize(svg, height, width, conf.quadrantChart?.useMaxWidth ?? true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) {\n titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n }\n if (quadrantData.borderLines) {\n borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n }\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeColor).attr(\"stroke-width\", (data) => data.strokeWidth);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n}, \"draw\");\nvar quadrantRenderer_default = {\n draw\n};\n\n// src/diagrams/quadrant-chart/quadrantDiagram.ts\nvar diagram = {\n parser: quadrant_default,\n db: quadrantDb_default,\n renderer: quadrantRenderer_default,\n styles: /* @__PURE__ */ __name(() => \"\", \"styles\")\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","quadrant_default","defaultThemeVariables","getThemeVariables","QuadrantBuilder","_a","defaultConfig_default","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","log","data","points","className","styles","config2","themeConfig","xAxisPosition","showXAxis","showYAxis","showTitle","xAxisSpaceCalculation","xAxisSpace","yAxisSpaceCalculation","yAxisSpace","titleSpaceCalculation","titleSpace","quadrantLeft","quadrantTop","quadrantWidth","quadrantHeight","quadrantHalfWidth","quadrantHalfHeight","spaceData","quadrantSpace","drawXAxisLabelsInMiddle","drawYAxisLabelsInMiddle","axisLabels","quadrants","quadrant","xAxis","scaleLinear","yAxis","point","classStyles","halfExternalBorderWidth","calculatedSpace","InvalidStyleError","style","value","type","validateHexCode","validateNumber","validateSizeInPixels","config","getConfig","textSanitizer","text","sanitizeText","quadrantBuilder","setQuadrant1Text","textObj","setQuadrant2Text","setQuadrant3Text","setQuadrant4Text","setXAxisLeftText","setXAxisRightText","setYAxisTopText","setYAxisBottomText","parseStyles","stylesObject","key","addPoint","x","y","addClass","setWidth","width","setHeight","height","getQuadrantData","themeVariables","quadrantChartConfig","getDiagramTitle","clear2","clear","quadrantDb_default","setAccTitle","getAccTitle","setDiagramTitle","getAccDescription","setAccDescription","draw","txt","id","_version","diagObj","getDominantBaseLine","horizontalPos","getTextAnchor","verticalPos","getTransformation","conf","securityLevel","sandboxElement","select","svg","group","configureSvgSize","quadrantData","quadrantsGroup","borderGroup","dataPointGroup","labelGroup","titleGroup","dataPoints","quadrantRenderer_default","diagram"],"mappings":"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GAAI,OAAQ,GAAI,SAAU,GAAI,MAAO,GAAI,YAAY,EAClvB,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAA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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js b/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js new file mode 100644 index 000000000000..87c2f3f8ebef --- /dev/null +++ b/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js @@ -0,0 +1,65 @@ +import{g as Ge}from"./chunk-55IACEB6.js";import{s as ze}from"./chunk-QN33PNHL.js";import{_ as f,b as Xe,a as Je,s as Ze,g as et,p as tt,q as st,c as Ne,l as qe,y as it,B as rt,o as nt,r as at,u as lt}from"./index.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="f202d111-1227-42e7-aab9-52883fdf4a27",e._sentryDebugIdIdentifier="sentry-dbid-f202d111-1227-42e7-aab9-52883fdf4a27")})()}catch{}var Ae=(function(){var e=f(function(P,i,n,l){for(n=n||{},l=P.length;l--;n[P[l]]=i);return n},"o"),r=[1,3],u=[1,4],o=[1,5],d=[1,6],c=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],p=[1,22],R=[2,7],h=[1,26],m=[1,27],b=[1,28],k=[1,29],A=[1,33],C=[1,34],V=[1,35],v=[1,36],w=[1,37],x=[1,38],L=[1,24],D=[1,31],O=[1,32],M=[1,30],g=[1,39],_=[1,40],y=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],$=[1,61],X=[89,90],Ce=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Ee=[27,29],Ve=[1,70],ve=[1,71],we=[1,72],xe=[1,73],Le=[1,74],De=[1,75],Oe=[1,76],ee=[1,83],U=[1,80],te=[1,84],se=[1,85],ie=[1,86],re=[1,87],ne=[1,88],ae=[1,89],le=[1,90],ce=[1,91],oe=[1,92],pe=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Y=[63,64],Me=[1,101],Fe=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],N=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],he=[1,116],ue=[1,117],fe=[1,114],de=[1,115],Se={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:f(function(i,n,l,s,E,t,me){var a=t.length-1;switch(E){case 4:this.$=t[a].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[a].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[a-3],t[a-4]);break;case 22:s.addRequirement(t[a-5],t[a-6]),s.setClass([t[a-5]],t[a-3]);break;case 23:s.setNewReqId(t[a-2]);break;case 24:s.setNewReqText(t[a-2]);break;case 25:s.setNewReqRisk(t[a-2]);break;case 26:s.setNewReqVerifyMethod(t[a-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[a-3]);break;case 43:s.addElement(t[a-5]),s.setClass([t[a-5]],t[a-3]);break;case 44:s.setNewElementType(t[a-2]);break;case 45:s.setNewElementDocRef(t[a-2]);break;case 48:s.addRelationship(t[a-2],t[a],t[a-4]);break;case 49:s.addRelationship(t[a-2],t[a-4],t[a]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[a-2],s.defineClass(t[a-1],t[a]);break;case 58:s.setClass(t[a-1],t[a]);break;case 59:s.setClass([t[a-2]],t[a]);break;case 60:case 62:this.$=[t[a]];break;case 61:case 63:this.$=t[a-2].concat([t[a]]);break;case 64:this.$=t[a-2],s.setCssStyle(t[a-1],t[a]);break;case 65:this.$=[t[a]];break;case 66:t[a-2].push(t[a]),this.$=t[a-2];break;case 68:this.$=t[a-1]+t[a];break}},"anonymous"),table:[{3:1,4:2,6:r,9:u,11:o,13:d},{1:[3]},{3:8,4:2,5:[1,7],6:r,9:u,11:o,13:d},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(c,[2,6]),{3:12,4:2,6:r,9:u,11:o,13:d},{1:[2,2]},{4:17,5:p,7:13,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},e(c,[2,4]),e(c,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:p,7:42,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:43,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:44,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:45,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:46,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:47,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:48,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:49,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{4:17,5:p,7:50,8:R,9:u,11:o,13:d,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:m,23:b,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:w,46:x,54:L,72:D,74:O,77:M,89:g,90:_},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(y,[2,17]),e(y,[2,18]),e(y,[2,19]),e(y,[2,20]),{30:60,33:62,75:$,89:g,90:_},{30:63,33:62,75:$,89:g,90:_},{30:64,33:62,75:$,89:g,90:_},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ce,[2,81]),e(Ce,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(Ee,[2,79]),e(Ee,[2,80]),{27:[1,67],29:[1,68]},e(Ee,[2,85]),e(Ee,[2,86]),{62:69,65:Ve,66:ve,67:we,68:xe,69:Le,70:De,71:Oe},{62:77,65:Ve,66:ve,67:we,68:xe,69:Le,70:De,71:Oe},{30:78,33:62,75:$,89:g,90:_},{73:79,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,60]),e(pe,[2,62]),{73:93,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},{30:94,33:62,75:$,76:U,89:g,90:_},{5:[1,95]},{30:96,33:62,75:$,89:g,90:_},{5:[1,97]},{30:98,33:62,75:$,89:g,90:_},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(y,[2,59],{76:U}),e(y,[2,64],{76:Me}),{33:103,75:[1,102],89:g,90:_},e(Fe,[2,65],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),e(N,[2,67]),e(N,[2,69]),e(N,[2,70]),e(N,[2,71]),e(N,[2,72]),e(N,[2,73]),e(N,[2,74]),e(N,[2,75]),e(N,[2,76]),e(N,[2,77]),e(N,[2,78]),e(y,[2,57],{76:Me}),e(y,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:he,40:ue,56:113,57:fe,59:de},{27:[1,118],76:U},{33:119,89:g,90:_},{33:120,89:g,90:_},{75:ee,78:121,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,61]),e(pe,[2,63]),e(N,[2,68]),e(y,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(y,[2,28]),{5:[1,127]},e(y,[2,42]),{32:[1,128]},{32:[1,129]},{5:he,40:ue,56:130,57:fe,59:de},e(y,[2,47]),{5:[1,131]},e(y,[2,48]),e(y,[2,49]),e(Fe,[2,66],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),{33:132,89:g,90:_},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(y,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(y,[2,46]),{5:he,40:ue,56:152,57:fe,59:de},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(y,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(y,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:he,40:ue,56:163,57:fe,59:de},{5:he,40:ue,56:164,57:fe,59:de},e(y,[2,23]),e(y,[2,24]),e(y,[2,25]),e(y,[2,26]),e(y,[2,44]),e(y,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:f(function(i,n){if(n.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=n,l}},"parseError"),parse:f(function(i){var n=this,l=[0],s=[],E=[null],t=[],me=this.table,a="",ye=0,Pe=0,He=2,$e=1,Ke=t.slice.call(arguments,1),S=Object.create(this.lexer),G={yy:{}};for(var be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,be)&&(G.yy[be]=this.yy[be]);S.setInput(i,G.yy),G.yy.lexer=S,G.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var Ie=S.yylloc;t.push(Ie);var We=S.options&&S.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(T){l.length=l.length-2*T,E.length=E.length-T,t.length=t.length-T}f(je,"popStack");function Ue(){var T;return T=s.pop()||S.lex()||$e,typeof T!="number"&&(T instanceof Array&&(s=T,T=s.pop()),T=n.symbols_[T]||T),T}f(Ue,"lex");for(var I,z,q,Te,J={},ge,F,Ye,_e;;){if(z=l[l.length-1],this.defaultActions[z]?q=this.defaultActions[z]:((I===null||typeof I>"u")&&(I=Ue()),q=me[z]&&me[z][I]),typeof q>"u"||!q.length||!q[0]){var ke="";_e=[];for(ge in me[z])this.terminals_[ge]&&ge>He&&_e.push("'"+this.terminals_[ge]+"'");S.showPosition?ke="Parse error on line "+(ye+1)+`: +`+S.showPosition()+` +Expecting `+_e.join(", ")+", got '"+(this.terminals_[I]||I)+"'":ke="Parse error on line "+(ye+1)+": Unexpected "+(I==$e?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(ke,{text:S.match,token:this.terminals_[I]||I,line:S.yylineno,loc:Ie,expected:_e})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+z+", token: "+I);switch(q[0]){case 1:l.push(I),E.push(S.yytext),t.push(S.yylloc),l.push(q[1]),I=null,Pe=S.yyleng,a=S.yytext,ye=S.yylineno,Ie=S.yylloc;break;case 2:if(F=this.productions_[q[1]][1],J.$=E[E.length-F],J._$={first_line:t[t.length-(F||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(F||1)].first_column,last_column:t[t.length-1].last_column},We&&(J._$.range=[t[t.length-(F||1)].range[0],t[t.length-1].range[1]]),Te=this.performAction.apply(J,[a,Pe,ye,G.yy,q[1],E,t].concat(Ke)),typeof Te<"u")return Te;F&&(l=l.slice(0,-1*F*2),E=E.slice(0,-1*F),t=t.slice(0,-1*F)),l.push(this.productions_[q[1]][0]),E.push(J.$),t.push(J._$),Ye=me[l[l.length-2]][l[l.length-1]],l.push(Ye);break;case 3:return!0}}return!0},"parse")},Qe=(function(){var P={EOF:1,parseError:f(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:f(function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:f(function(i){var n=i.length,l=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===s.length?this.yylloc.first_column:0)+s[s.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(i){this.unput(this.match.slice(i))},"less"),pastInput:f(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},"showPosition"),test_match:f(function(i,n){var l,s,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),s=i[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],l=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var t in E)this[t]=E[t];return!1}return!1},"test_match"),next:f(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,l,s;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),t=0;tn[0].length)){if(n=l,s=t,this.options.backtrack_lexer){if(i=this.test_match(l,E[t]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,E[s]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:f(function(){var n=this.next();return n||this.lex()},"lex"),begin:f(function(n){this.conditionStack.push(n)},"begin"),popState:f(function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:f(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:f(function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},"topState"),pushState:f(function(n){this.begin(n)},"pushState"),stateStackSize:f(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:f(function(n,l,s,E){switch(s){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;case 60:return this.begin("style"),74;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return l.yytext=l.yytext.trim(),89;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return P})();Se.lexer=Qe;function Re(){this.yy={}}return f(Re,"Parser"),Re.prototype=Se,Se.Parser=Re,new Re})();Ae.parser=Ae;var ct=Ae,Z,ot=(Z=class{constructor(){this.relations=[],this.latestRequirement=this.getInitialRequirement(),this.requirements=new Map,this.latestElement=this.getInitialElement(),this.elements=new Map,this.classes=new Map,this.direction="TB",this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},this.setAccTitle=Xe,this.getAccTitle=Je,this.setAccDescription=Ze,this.getAccDescription=et,this.setDiagramTitle=tt,this.getDiagramTitle=st,this.getConfig=f(()=>Ne().requirement,"getConfig"),this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}getDirection(){return this.direction}setDirection(r){this.direction=r}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(r,u){return this.requirements.has(r)||this.requirements.set(r,{name:r,type:u,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(r)}getRequirements(){return this.requirements}setNewReqId(r){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=r)}setNewReqText(r){this.latestRequirement!==void 0&&(this.latestRequirement.text=r)}setNewReqRisk(r){this.latestRequirement!==void 0&&(this.latestRequirement.risk=r)}setNewReqVerifyMethod(r){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=r)}addElement(r){return this.elements.has(r)||(this.elements.set(r,{name:r,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),qe.info("Added new element: ",r)),this.resetLatestElement(),this.elements.get(r)}getElements(){return this.elements}setNewElementType(r){this.latestElement!==void 0&&(this.latestElement.type=r)}setNewElementDocRef(r){this.latestElement!==void 0&&(this.latestElement.docRef=r)}addRelationship(r,u,o){this.relations.push({type:r,src:u,dst:o})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,it()}setCssStyle(r,u){for(const o of r){const d=this.requirements.get(o)??this.elements.get(o);if(!u||!d)return;for(const c of u)c.includes(",")?d.cssStyles.push(...c.split(",")):d.cssStyles.push(c)}}setClass(r,u){var o;for(const d of r){const c=this.requirements.get(d)??this.elements.get(d);if(c)for(const p of u){c.classes.push(p);const R=(o=this.classes.get(p))==null?void 0:o.styles;R&&c.cssStyles.push(...R)}}}defineClass(r,u){for(const o of r){let d=this.classes.get(o);d===void 0&&(d={id:o,styles:[],textStyles:[]},this.classes.set(o,d)),u&&u.forEach(function(c){if(/color/.exec(c)){const p=c.replace("fill","bgFill");d.textStyles.push(p)}d.styles.push(c)}),this.requirements.forEach(c=>{c.classes.includes(o)&&c.cssStyles.push(...u.flatMap(p=>p.split(",")))}),this.elements.forEach(c=>{c.classes.includes(o)&&c.cssStyles.push(...u.flatMap(p=>p.split(",")))})}}getClasses(){return this.classes}getData(){var d,c,p,R;const r=Ne(),u=[],o=[];for(const h of this.requirements.values()){const m=h;m.id=h.name,m.cssStyles=h.cssStyles,m.cssClasses=h.classes.join(" "),m.shape="requirementBox",m.look=r.look,u.push(m)}for(const h of this.elements.values()){const m=h;m.shape="requirementBox",m.look=r.look,m.id=h.name,m.cssStyles=h.cssStyles,m.cssClasses=h.classes.join(" "),u.push(m)}for(const h of this.relations){let m=0;const b=h.type===this.Relationships.CONTAINS,k={id:`${h.src}-${h.dst}-${m}`,start:((d=this.requirements.get(h.src))==null?void 0:d.name)??((c=this.elements.get(h.src))==null?void 0:c.name),end:((p=this.requirements.get(h.dst))==null?void 0:p.name)??((R=this.elements.get(h.dst))==null?void 0:R.name),label:`<<${h.type}>>`,classes:"relationshipLine",style:["fill:none",b?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:b?"normal":"dashed",arrowTypeStart:b?"requirement_contains":"",arrowTypeEnd:b?"":"requirement_arrow",look:r.look};o.push(k),m++}return{nodes:u,edges:o,other:{},config:r,direction:this.getDirection()}}},f(Z,"RequirementDB"),Z),ht=f(e=>` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + .divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; + } + .label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .label text,span { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + .labelBkg { + background-color: ${e.edgeLabelBackground}; + } + +`,"getStyles"),ut=ht,Be={};rt(Be,{draw:()=>ft});var ft=f(async function(e,r,u,o){qe.info("REF0:"),qe.info("Drawing requirement diagram (unified)",r);const{securityLevel:d,state:c,layout:p}=Ne(),R=o.db.getData(),h=Ge(r,d);R.type=o.type,R.layoutAlgorithm=nt(p),R.nodeSpacing=(c==null?void 0:c.nodeSpacing)??50,R.rankSpacing=(c==null?void 0:c.rankSpacing)??50,R.markers=["requirement_contains","requirement_arrow"],R.diagramId=r,await at(R,h);const m=8;lt.insertTitle(h,"requirementDiagramTitleText",(c==null?void 0:c.titleTopMargin)??25,o.db.getDiagramTitle()),ze(h,m,"requirementDiagram",(c==null?void 0:c.useMaxWidth)??!0)},"draw"),Rt={parser:ct,get db(){return new ot},renderer:Be,styles:ut};export{Rt as diagram}; +//# sourceMappingURL=requirementDiagram-4UW4RH46.js.map diff --git a/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js.map b/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js.map new file mode 100644 index 000000000000..e542019b50e7 --- /dev/null +++ b/extensions/continue/gui/assets/requirementDiagram-4UW4RH46.js.map @@ -0,0 +1 @@ +{"version":3,"file":"requirementDiagram-4UW4RH46.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/requirementDiagram-4UW4RH46.mjs"],"sourcesContent":["import {\n getDiagramElement\n} from \"./chunk-55IACEB6.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __export,\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/requirement/parser/requirementDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 21, 22, 23, 24, 41, 42, 43, 44, 45, 46, 54, 72, 74, 77, 89, 90], $V5 = [1, 22], $V6 = [2, 7], $V7 = [1, 26], $V8 = [1, 27], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 38], $Vh = [1, 24], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 30], $Vl = [1, 39], $Vm = [1, 40], $Vn = [5, 8, 9, 11, 13, 21, 22, 23, 24, 41, 42, 43, 44, 45, 46, 54, 72, 74, 77, 89, 90], $Vo = [1, 61], $Vp = [89, 90], $Vq = [5, 8, 9, 11, 13, 21, 22, 23, 24, 27, 29, 41, 42, 43, 44, 45, 46, 54, 61, 63, 72, 74, 75, 76, 77, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90], $Vr = [27, 29], $Vs = [1, 70], $Vt = [1, 71], $Vu = [1, 72], $Vv = [1, 73], $Vw = [1, 74], $Vx = [1, 75], $Vy = [1, 76], $Vz = [1, 83], $VA = [1, 80], $VB = [1, 84], $VC = [1, 85], $VD = [1, 86], $VE = [1, 87], $VF = [1, 88], $VG = [1, 89], $VH = [1, 90], $VI = [1, 91], $VJ = [1, 92], $VK = [5, 8, 9, 11, 13, 21, 22, 23, 24, 27, 41, 42, 43, 44, 45, 46, 54, 72, 74, 75, 76, 77, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90], $VL = [63, 64], $VM = [1, 101], $VN = [5, 8, 9, 11, 13, 21, 22, 23, 24, 41, 42, 43, 44, 45, 46, 54, 72, 74, 76, 77, 89, 90], $VO = [5, 8, 9, 11, 13, 21, 22, 23, 24, 41, 42, 43, 44, 45, 46, 54, 72, 74, 75, 76, 77, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90], $VP = [1, 110], $VQ = [1, 106], $VR = [1, 107], $VS = [1, 108], $VT = [1, 109], $VU = [1, 111], $VV = [1, 116], $VW = [1, 117], $VX = [1, 114], $VY = [1, 115];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"directive\": 4, \"NEWLINE\": 5, \"RD\": 6, \"diagram\": 7, \"EOF\": 8, \"acc_title\": 9, \"acc_title_value\": 10, \"acc_descr\": 11, \"acc_descr_value\": 12, \"acc_descr_multiline_value\": 13, \"requirementDef\": 14, \"elementDef\": 15, \"relationshipDef\": 16, \"direction\": 17, \"styleStatement\": 18, \"classDefStatement\": 19, \"classStatement\": 20, \"direction_tb\": 21, \"direction_bt\": 22, \"direction_rl\": 23, \"direction_lr\": 24, \"requirementType\": 25, \"requirementName\": 26, \"STRUCT_START\": 27, \"requirementBody\": 28, \"STYLE_SEPARATOR\": 29, \"idList\": 30, \"ID\": 31, \"COLONSEP\": 32, \"id\": 33, \"TEXT\": 34, \"text\": 35, \"RISK\": 36, \"riskLevel\": 37, \"VERIFYMTHD\": 38, \"verifyType\": 39, \"STRUCT_STOP\": 40, \"REQUIREMENT\": 41, \"FUNCTIONAL_REQUIREMENT\": 42, \"INTERFACE_REQUIREMENT\": 43, \"PERFORMANCE_REQUIREMENT\": 44, \"PHYSICAL_REQUIREMENT\": 45, \"DESIGN_CONSTRAINT\": 46, \"LOW_RISK\": 47, \"MED_RISK\": 48, \"HIGH_RISK\": 49, \"VERIFY_ANALYSIS\": 50, \"VERIFY_DEMONSTRATION\": 51, \"VERIFY_INSPECTION\": 52, \"VERIFY_TEST\": 53, \"ELEMENT\": 54, \"elementName\": 55, \"elementBody\": 56, \"TYPE\": 57, \"type\": 58, \"DOCREF\": 59, \"ref\": 60, \"END_ARROW_L\": 61, \"relationship\": 62, \"LINE\": 63, \"END_ARROW_R\": 64, \"CONTAINS\": 65, \"COPIES\": 66, \"DERIVES\": 67, \"SATISFIES\": 68, \"VERIFIES\": 69, \"REFINES\": 70, \"TRACES\": 71, \"CLASSDEF\": 72, \"stylesOpt\": 73, \"CLASS\": 74, \"ALPHA\": 75, \"COMMA\": 76, \"STYLE\": 77, \"style\": 78, \"styleComponent\": 79, \"NUM\": 80, \"COLON\": 81, \"UNIT\": 82, \"SPACE\": 83, \"BRKT\": 84, \"PCT\": 85, \"MINUS\": 86, \"LABEL\": 87, \"SEMICOLON\": 88, \"unqString\": 89, \"qString\": 90, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"NEWLINE\", 6: \"RD\", 8: \"EOF\", 9: \"acc_title\", 10: \"acc_title_value\", 11: \"acc_descr\", 12: \"acc_descr_value\", 13: \"acc_descr_multiline_value\", 21: \"direction_tb\", 22: \"direction_bt\", 23: \"direction_rl\", 24: \"direction_lr\", 27: \"STRUCT_START\", 29: \"STYLE_SEPARATOR\", 31: \"ID\", 32: \"COLONSEP\", 34: \"TEXT\", 36: \"RISK\", 38: \"VERIFYMTHD\", 40: \"STRUCT_STOP\", 41: \"REQUIREMENT\", 42: \"FUNCTIONAL_REQUIREMENT\", 43: \"INTERFACE_REQUIREMENT\", 44: \"PERFORMANCE_REQUIREMENT\", 45: \"PHYSICAL_REQUIREMENT\", 46: \"DESIGN_CONSTRAINT\", 47: \"LOW_RISK\", 48: \"MED_RISK\", 49: \"HIGH_RISK\", 50: \"VERIFY_ANALYSIS\", 51: \"VERIFY_DEMONSTRATION\", 52: \"VERIFY_INSPECTION\", 53: \"VERIFY_TEST\", 54: \"ELEMENT\", 57: \"TYPE\", 59: \"DOCREF\", 61: \"END_ARROW_L\", 63: \"LINE\", 64: \"END_ARROW_R\", 65: \"CONTAINS\", 66: \"COPIES\", 67: \"DERIVES\", 68: \"SATISFIES\", 69: \"VERIFIES\", 70: \"REFINES\", 71: \"TRACES\", 72: \"CLASSDEF\", 74: \"CLASS\", 75: \"ALPHA\", 76: \"COMMA\", 77: \"STYLE\", 80: \"NUM\", 81: \"COLON\", 82: \"UNIT\", 83: \"SPACE\", 84: \"BRKT\", 85: \"PCT\", 86: \"MINUS\", 87: \"LABEL\", 88: \"SEMICOLON\", 89: \"unqString\", 90: \"qString\" },\n productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [17, 1], [17, 1], [17, 1], [17, 1], [14, 5], [14, 7], [28, 5], [28, 5], [28, 5], [28, 5], [28, 2], [28, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [37, 1], [37, 1], [37, 1], [39, 1], [39, 1], [39, 1], [39, 1], [15, 5], [15, 7], [56, 5], [56, 5], [56, 2], [56, 1], [16, 5], [16, 5], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [62, 1], [19, 3], [20, 3], [20, 3], [30, 1], [30, 3], [30, 1], [30, 3], [18, 3], [73, 1], [73, 3], [78, 1], [78, 2], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [79, 1], [26, 1], [26, 1], [33, 1], [33, 1], [35, 1], [35, 1], [55, 1], [55, 1], [58, 1], [58, 1], [60, 1], [60, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 5:\n case 6:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 7:\n this.$ = [];\n break;\n case 17:\n yy.setDirection(\"TB\");\n break;\n case 18:\n yy.setDirection(\"BT\");\n break;\n case 19:\n yy.setDirection(\"RL\");\n break;\n case 20:\n yy.setDirection(\"LR\");\n break;\n case 21:\n yy.addRequirement($$[$0 - 3], $$[$0 - 4]);\n break;\n case 22:\n yy.addRequirement($$[$0 - 5], $$[$0 - 6]);\n yy.setClass([$$[$0 - 5]], $$[$0 - 3]);\n break;\n case 23:\n yy.setNewReqId($$[$0 - 2]);\n break;\n case 24:\n yy.setNewReqText($$[$0 - 2]);\n break;\n case 25:\n yy.setNewReqRisk($$[$0 - 2]);\n break;\n case 26:\n yy.setNewReqVerifyMethod($$[$0 - 2]);\n break;\n case 29:\n this.$ = yy.RequirementType.REQUIREMENT;\n break;\n case 30:\n this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;\n break;\n case 31:\n this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;\n break;\n case 32:\n this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;\n break;\n case 33:\n this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;\n break;\n case 34:\n this.$ = yy.RequirementType.DESIGN_CONSTRAINT;\n break;\n case 35:\n this.$ = yy.RiskLevel.LOW_RISK;\n break;\n case 36:\n this.$ = yy.RiskLevel.MED_RISK;\n break;\n case 37:\n this.$ = yy.RiskLevel.HIGH_RISK;\n break;\n case 38:\n this.$ = yy.VerifyType.VERIFY_ANALYSIS;\n break;\n case 39:\n this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;\n break;\n case 40:\n this.$ = yy.VerifyType.VERIFY_INSPECTION;\n break;\n case 41:\n this.$ = yy.VerifyType.VERIFY_TEST;\n break;\n case 42:\n yy.addElement($$[$0 - 3]);\n break;\n case 43:\n yy.addElement($$[$0 - 5]);\n yy.setClass([$$[$0 - 5]], $$[$0 - 3]);\n break;\n case 44:\n yy.setNewElementType($$[$0 - 2]);\n break;\n case 45:\n yy.setNewElementDocRef($$[$0 - 2]);\n break;\n case 48:\n yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 49:\n yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 50:\n this.$ = yy.Relationships.CONTAINS;\n break;\n case 51:\n this.$ = yy.Relationships.COPIES;\n break;\n case 52:\n this.$ = yy.Relationships.DERIVES;\n break;\n case 53:\n this.$ = yy.Relationships.SATISFIES;\n break;\n case 54:\n this.$ = yy.Relationships.VERIFIES;\n break;\n case 55:\n this.$ = yy.Relationships.REFINES;\n break;\n case 56:\n this.$ = yy.Relationships.TRACES;\n break;\n case 57:\n this.$ = $$[$0 - 2];\n yy.defineClass($$[$0 - 1], $$[$0]);\n break;\n case 58:\n yy.setClass($$[$0 - 1], $$[$0]);\n break;\n case 59:\n yy.setClass([$$[$0 - 2]], $$[$0]);\n break;\n case 60:\n case 62:\n this.$ = [$$[$0]];\n break;\n case 61:\n case 63:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n case 64:\n this.$ = $$[$0 - 2];\n yy.setCssStyle($$[$0 - 1], $$[$0]);\n break;\n case 65:\n this.$ = [$$[$0]];\n break;\n case 66:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 68:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 41] }, { 4: 17, 5: $V5, 7: 42, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 43, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 44, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 45, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 46, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 47, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 48, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 49, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 4: 17, 5: $V5, 7: 50, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 18, 18: 19, 19: 20, 20: 21, 21: $V7, 22: $V8, 23: $V9, 24: $Va, 25: 23, 33: 25, 41: $Vb, 42: $Vc, 43: $Vd, 44: $Ve, 45: $Vf, 46: $Vg, 54: $Vh, 72: $Vi, 74: $Vj, 77: $Vk, 89: $Vl, 90: $Vm }, { 26: 51, 89: [1, 52], 90: [1, 53] }, { 55: 54, 89: [1, 55], 90: [1, 56] }, { 29: [1, 59], 61: [1, 57], 63: [1, 58] }, o($Vn, [2, 17]), o($Vn, [2, 18]), o($Vn, [2, 19]), o($Vn, [2, 20]), { 30: 60, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, { 30: 63, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, { 30: 64, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, o($Vp, [2, 29]), o($Vp, [2, 30]), o($Vp, [2, 31]), o($Vp, [2, 32]), o($Vp, [2, 33]), o($Vp, [2, 34]), o($Vq, [2, 81]), o($Vq, [2, 82]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 8: [2, 13] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 27: [1, 65], 29: [1, 66] }, o($Vr, [2, 79]), o($Vr, [2, 80]), { 27: [1, 67], 29: [1, 68] }, o($Vr, [2, 85]), o($Vr, [2, 86]), { 62: 69, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx, 71: $Vy }, { 62: 77, 65: $Vs, 66: $Vt, 67: $Vu, 68: $Vv, 69: $Vw, 70: $Vx, 71: $Vy }, { 30: 78, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, { 73: 79, 75: $Vz, 76: $VA, 78: 81, 79: 82, 80: $VB, 81: $VC, 82: $VD, 83: $VE, 84: $VF, 85: $VG, 86: $VH, 87: $VI, 88: $VJ }, o($VK, [2, 60]), o($VK, [2, 62]), { 73: 93, 75: $Vz, 76: $VA, 78: 81, 79: 82, 80: $VB, 81: $VC, 82: $VD, 83: $VE, 84: $VF, 85: $VG, 86: $VH, 87: $VI, 88: $VJ }, { 30: 94, 33: 62, 75: $Vo, 76: $VA, 89: $Vl, 90: $Vm }, { 5: [1, 95] }, { 30: 96, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, { 5: [1, 97] }, { 30: 98, 33: 62, 75: $Vo, 89: $Vl, 90: $Vm }, { 63: [1, 99] }, o($VL, [2, 50]), o($VL, [2, 51]), o($VL, [2, 52]), o($VL, [2, 53]), o($VL, [2, 54]), o($VL, [2, 55]), o($VL, [2, 56]), { 64: [1, 100] }, o($Vn, [2, 59], { 76: $VA }), o($Vn, [2, 64], { 76: $VM }), { 33: 103, 75: [1, 102], 89: $Vl, 90: $Vm }, o($VN, [2, 65], { 79: 104, 75: $Vz, 80: $VB, 81: $VC, 82: $VD, 83: $VE, 84: $VF, 85: $VG, 86: $VH, 87: $VI, 88: $VJ }), o($VO, [2, 67]), o($VO, [2, 69]), o($VO, [2, 70]), o($VO, [2, 71]), o($VO, [2, 72]), o($VO, [2, 73]), o($VO, [2, 74]), o($VO, [2, 75]), o($VO, [2, 76]), o($VO, [2, 77]), o($VO, [2, 78]), o($Vn, [2, 57], { 76: $VM }), o($Vn, [2, 58], { 76: $VA }), { 5: $VP, 28: 105, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 27: [1, 112], 76: $VA }, { 5: $VV, 40: $VW, 56: 113, 57: $VX, 59: $VY }, { 27: [1, 118], 76: $VA }, { 33: 119, 89: $Vl, 90: $Vm }, { 33: 120, 89: $Vl, 90: $Vm }, { 75: $Vz, 78: 121, 79: 82, 80: $VB, 81: $VC, 82: $VD, 83: $VE, 84: $VF, 85: $VG, 86: $VH, 87: $VI, 88: $VJ }, o($VK, [2, 61]), o($VK, [2, 63]), o($VO, [2, 68]), o($Vn, [2, 21]), { 32: [1, 122] }, { 32: [1, 123] }, { 32: [1, 124] }, { 32: [1, 125] }, { 5: $VP, 28: 126, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, o($Vn, [2, 28]), { 5: [1, 127] }, o($Vn, [2, 42]), { 32: [1, 128] }, { 32: [1, 129] }, { 5: $VV, 40: $VW, 56: 130, 57: $VX, 59: $VY }, o($Vn, [2, 47]), { 5: [1, 131] }, o($Vn, [2, 48]), o($Vn, [2, 49]), o($VN, [2, 66], { 79: 104, 75: $Vz, 80: $VB, 81: $VC, 82: $VD, 83: $VE, 84: $VF, 85: $VG, 86: $VH, 87: $VI, 88: $VJ }), { 33: 132, 89: $Vl, 90: $Vm }, { 35: 133, 89: [1, 134], 90: [1, 135] }, { 37: 136, 47: [1, 137], 48: [1, 138], 49: [1, 139] }, { 39: 140, 50: [1, 141], 51: [1, 142], 52: [1, 143], 53: [1, 144] }, o($Vn, [2, 27]), { 5: $VP, 28: 145, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 58: 146, 89: [1, 147], 90: [1, 148] }, { 60: 149, 89: [1, 150], 90: [1, 151] }, o($Vn, [2, 46]), { 5: $VV, 40: $VW, 56: 152, 57: $VX, 59: $VY }, { 5: [1, 153] }, { 5: [1, 154] }, { 5: [2, 83] }, { 5: [2, 84] }, { 5: [1, 155] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [1, 156] }, { 5: [2, 38] }, { 5: [2, 39] }, { 5: [2, 40] }, { 5: [2, 41] }, o($Vn, [2, 22]), { 5: [1, 157] }, { 5: [2, 87] }, { 5: [2, 88] }, { 5: [1, 158] }, { 5: [2, 89] }, { 5: [2, 90] }, o($Vn, [2, 43]), { 5: $VP, 28: 159, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 5: $VP, 28: 160, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 5: $VP, 28: 161, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 5: $VP, 28: 162, 31: $VQ, 34: $VR, 36: $VS, 38: $VT, 40: $VU }, { 5: $VV, 40: $VW, 56: 163, 57: $VX, 59: $VY }, { 5: $VV, 40: $VW, 56: 164, 57: $VX, 59: $VY }, o($Vn, [2, 23]), o($Vn, [2, 24]), o($Vn, [2, 25]), o($Vn, [2, 26]), o($Vn, [2, 44]), o($Vn, [2, 45])],\n defaultActions: { 8: [2, 2], 12: [2, 1], 41: [2, 3], 42: [2, 8], 43: [2, 9], 44: [2, 10], 45: [2, 11], 46: [2, 12], 47: [2, 13], 48: [2, 14], 49: [2, 15], 50: [2, 16], 134: [2, 83], 135: [2, 84], 137: [2, 35], 138: [2, 36], 139: [2, 37], 141: [2, 38], 142: [2, 39], 143: [2, 40], 144: [2, 41], 147: [2, 87], 148: [2, 88], 150: [2, 89], 151: [2, 90] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return \"title\";\n break;\n case 1:\n this.begin(\"acc_title\");\n return 9;\n break;\n case 2:\n this.popState();\n return \"acc_title_value\";\n break;\n case 3:\n this.begin(\"acc_descr\");\n return 11;\n break;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n break;\n case 8:\n return 21;\n break;\n case 9:\n return 22;\n break;\n case 10:\n return 23;\n break;\n case 11:\n return 24;\n break;\n case 12:\n return 5;\n break;\n case 13:\n break;\n case 14:\n break;\n case 15:\n break;\n case 16:\n return 8;\n break;\n case 17:\n return 6;\n break;\n case 18:\n return 27;\n break;\n case 19:\n return 40;\n break;\n case 20:\n return 29;\n break;\n case 21:\n return 32;\n break;\n case 22:\n return 31;\n break;\n case 23:\n return 34;\n break;\n case 24:\n return 36;\n break;\n case 25:\n return 38;\n break;\n case 26:\n return 41;\n break;\n case 27:\n return 42;\n break;\n case 28:\n return 43;\n break;\n case 29:\n return 44;\n break;\n case 30:\n return 45;\n break;\n case 31:\n return 46;\n break;\n case 32:\n return 47;\n break;\n case 33:\n return 48;\n break;\n case 34:\n return 49;\n break;\n case 35:\n return 50;\n break;\n case 36:\n return 51;\n break;\n case 37:\n return 52;\n break;\n case 38:\n return 53;\n break;\n case 39:\n return 54;\n break;\n case 40:\n return 65;\n break;\n case 41:\n return 66;\n break;\n case 42:\n return 67;\n break;\n case 43:\n return 68;\n break;\n case 44:\n return 69;\n break;\n case 45:\n return 70;\n break;\n case 46:\n return 71;\n break;\n case 47:\n return 57;\n break;\n case 48:\n return 59;\n break;\n case 49:\n this.begin(\"style\");\n return 77;\n break;\n case 50:\n return 75;\n break;\n case 51:\n return 81;\n break;\n case 52:\n return 88;\n break;\n case 53:\n return \"PERCENT\";\n break;\n case 54:\n return 86;\n break;\n case 55:\n return 84;\n break;\n case 56:\n break;\n case 57:\n this.begin(\"string\");\n break;\n case 58:\n this.popState();\n break;\n case 59:\n this.begin(\"style\");\n return 72;\n break;\n case 60:\n this.begin(\"style\");\n return 74;\n break;\n case 61:\n return 61;\n break;\n case 62:\n return 64;\n break;\n case 63:\n return 63;\n break;\n case 64:\n this.begin(\"string\");\n break;\n case 65:\n this.popState();\n break;\n case 66:\n return \"qString\";\n break;\n case 67:\n yy_.yytext = yy_.yytext.trim();\n return 89;\n break;\n case 68:\n return 75;\n break;\n case 69:\n return 80;\n break;\n case 70:\n return 76;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\\b)/i, /^(?:\\{)/i, /^(?:\\})/i, /^(?::{3})/i, /^(?::)/i, /^(?:id\\b)/i, /^(?:text\\b)/i, /^(?:risk\\b)/i, /^(?:verifyMethod\\b)/i, /^(?:requirement\\b)/i, /^(?:functionalRequirement\\b)/i, /^(?:interfaceRequirement\\b)/i, /^(?:performanceRequirement\\b)/i, /^(?:physicalRequirement\\b)/i, /^(?:designConstraint\\b)/i, /^(?:low\\b)/i, /^(?:medium\\b)/i, /^(?:high\\b)/i, /^(?:analysis\\b)/i, /^(?:demonstration\\b)/i, /^(?:inspection\\b)/i, /^(?:test\\b)/i, /^(?:element\\b)/i, /^(?:contains\\b)/i, /^(?:copies\\b)/i, /^(?:derives\\b)/i, /^(?:satisfies\\b)/i, /^(?:verifies\\b)/i, /^(?:refines\\b)/i, /^(?:traces\\b)/i, /^(?:type\\b)/i, /^(?:docref\\b)/i, /^(?:style\\b)/i, /^(?:\\w+)/i, /^(?::)/i, /^(?:;)/i, /^(?:%)/i, /^(?:-)/i, /^(?:#)/i, /^(?: )/i, /^(?:[\"])/i, /^(?:\\n)/i, /^(?:classDef\\b)/i, /^(?:class\\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[\\w][^:,\\r\\n\\{\\<\\>\\-\\=]*)/i, /^(?:\\w+)/i, /^(?:[0-9]+)/i, /^(?:,)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7, 68, 69, 70], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4, 68, 69, 70], \"inclusive\": false }, \"acc_title\": { \"rules\": [2, 68, 69, 70], \"inclusive\": false }, \"style\": { \"rules\": [50, 51, 52, 53, 54, 55, 56, 57, 58, 68, 69, 70], \"inclusive\": false }, \"unqString\": { \"rules\": [68, 69, 70], \"inclusive\": false }, \"token\": { \"rules\": [68, 69, 70], \"inclusive\": false }, \"string\": { \"rules\": [65, 66, 68, 69, 70], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 59, 60, 61, 62, 63, 64, 67, 68, 69, 70], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar requirementDiagram_default = parser;\n\n// src/diagrams/requirement/requirementDb.ts\nvar RequirementDB = class {\n constructor() {\n this.relations = [];\n this.latestRequirement = this.getInitialRequirement();\n this.requirements = /* @__PURE__ */ new Map();\n this.latestElement = this.getInitialElement();\n this.elements = /* @__PURE__ */ new Map();\n this.classes = /* @__PURE__ */ new Map();\n this.direction = \"TB\";\n this.RequirementType = {\n REQUIREMENT: \"Requirement\",\n FUNCTIONAL_REQUIREMENT: \"Functional Requirement\",\n INTERFACE_REQUIREMENT: \"Interface Requirement\",\n PERFORMANCE_REQUIREMENT: \"Performance Requirement\",\n PHYSICAL_REQUIREMENT: \"Physical Requirement\",\n DESIGN_CONSTRAINT: \"Design Constraint\"\n };\n this.RiskLevel = {\n LOW_RISK: \"Low\",\n MED_RISK: \"Medium\",\n HIGH_RISK: \"High\"\n };\n this.VerifyType = {\n VERIFY_ANALYSIS: \"Analysis\",\n VERIFY_DEMONSTRATION: \"Demonstration\",\n VERIFY_INSPECTION: \"Inspection\",\n VERIFY_TEST: \"Test\"\n };\n this.Relationships = {\n CONTAINS: \"contains\",\n COPIES: \"copies\",\n DERIVES: \"derives\",\n SATISFIES: \"satisfies\",\n VERIFIES: \"verifies\",\n REFINES: \"refines\",\n TRACES: \"traces\"\n };\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setAccDescription = setAccDescription;\n this.getAccDescription = getAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getConfig = /* @__PURE__ */ __name(() => getConfig().requirement, \"getConfig\");\n this.clear();\n this.setDirection = this.setDirection.bind(this);\n this.addRequirement = this.addRequirement.bind(this);\n this.setNewReqId = this.setNewReqId.bind(this);\n this.setNewReqRisk = this.setNewReqRisk.bind(this);\n this.setNewReqText = this.setNewReqText.bind(this);\n this.setNewReqVerifyMethod = this.setNewReqVerifyMethod.bind(this);\n this.addElement = this.addElement.bind(this);\n this.setNewElementType = this.setNewElementType.bind(this);\n this.setNewElementDocRef = this.setNewElementDocRef.bind(this);\n this.addRelationship = this.addRelationship.bind(this);\n this.setCssStyle = this.setCssStyle.bind(this);\n this.setClass = this.setClass.bind(this);\n this.defineClass = this.defineClass.bind(this);\n this.setAccTitle = this.setAccTitle.bind(this);\n this.setAccDescription = this.setAccDescription.bind(this);\n }\n static {\n __name(this, \"RequirementDB\");\n }\n getDirection() {\n return this.direction;\n }\n setDirection(dir) {\n this.direction = dir;\n }\n resetLatestRequirement() {\n this.latestRequirement = this.getInitialRequirement();\n }\n resetLatestElement() {\n this.latestElement = this.getInitialElement();\n }\n getInitialRequirement() {\n return {\n requirementId: \"\",\n text: \"\",\n risk: \"\",\n verifyMethod: \"\",\n name: \"\",\n type: \"\",\n cssStyles: [],\n classes: [\"default\"]\n };\n }\n getInitialElement() {\n return {\n name: \"\",\n type: \"\",\n docRef: \"\",\n cssStyles: [],\n classes: [\"default\"]\n };\n }\n addRequirement(name, type) {\n if (!this.requirements.has(name)) {\n this.requirements.set(name, {\n name,\n type,\n requirementId: this.latestRequirement.requirementId,\n text: this.latestRequirement.text,\n risk: this.latestRequirement.risk,\n verifyMethod: this.latestRequirement.verifyMethod,\n cssStyles: [],\n classes: [\"default\"]\n });\n }\n this.resetLatestRequirement();\n return this.requirements.get(name);\n }\n getRequirements() {\n return this.requirements;\n }\n setNewReqId(id) {\n if (this.latestRequirement !== void 0) {\n this.latestRequirement.requirementId = id;\n }\n }\n setNewReqText(text) {\n if (this.latestRequirement !== void 0) {\n this.latestRequirement.text = text;\n }\n }\n setNewReqRisk(risk) {\n if (this.latestRequirement !== void 0) {\n this.latestRequirement.risk = risk;\n }\n }\n setNewReqVerifyMethod(verifyMethod) {\n if (this.latestRequirement !== void 0) {\n this.latestRequirement.verifyMethod = verifyMethod;\n }\n }\n addElement(name) {\n if (!this.elements.has(name)) {\n this.elements.set(name, {\n name,\n type: this.latestElement.type,\n docRef: this.latestElement.docRef,\n cssStyles: [],\n classes: [\"default\"]\n });\n log.info(\"Added new element: \", name);\n }\n this.resetLatestElement();\n return this.elements.get(name);\n }\n getElements() {\n return this.elements;\n }\n setNewElementType(type) {\n if (this.latestElement !== void 0) {\n this.latestElement.type = type;\n }\n }\n setNewElementDocRef(docRef) {\n if (this.latestElement !== void 0) {\n this.latestElement.docRef = docRef;\n }\n }\n addRelationship(type, src, dst) {\n this.relations.push({\n type,\n src,\n dst\n });\n }\n getRelationships() {\n return this.relations;\n }\n clear() {\n this.relations = [];\n this.resetLatestRequirement();\n this.requirements = /* @__PURE__ */ new Map();\n this.resetLatestElement();\n this.elements = /* @__PURE__ */ new Map();\n this.classes = /* @__PURE__ */ new Map();\n clear();\n }\n setCssStyle(ids, styles) {\n for (const id of ids) {\n const node = this.requirements.get(id) ?? this.elements.get(id);\n if (!styles || !node) {\n return;\n }\n for (const s of styles) {\n if (s.includes(\",\")) {\n node.cssStyles.push(...s.split(\",\"));\n } else {\n node.cssStyles.push(s);\n }\n }\n }\n }\n setClass(ids, classNames) {\n for (const id of ids) {\n const node = this.requirements.get(id) ?? this.elements.get(id);\n if (node) {\n for (const _class of classNames) {\n node.classes.push(_class);\n const styles = this.classes.get(_class)?.styles;\n if (styles) {\n node.cssStyles.push(...styles);\n }\n }\n }\n }\n }\n defineClass(ids, style) {\n for (const id of ids) {\n let styleClass = this.classes.get(id);\n if (styleClass === void 0) {\n styleClass = { id, styles: [], textStyles: [] };\n this.classes.set(id, styleClass);\n }\n if (style) {\n style.forEach(function(s) {\n if (/color/.exec(s)) {\n const newStyle = s.replace(\"fill\", \"bgFill\");\n styleClass.textStyles.push(newStyle);\n }\n styleClass.styles.push(s);\n });\n }\n this.requirements.forEach((value) => {\n if (value.classes.includes(id)) {\n value.cssStyles.push(...style.flatMap((s) => s.split(\",\")));\n }\n });\n this.elements.forEach((value) => {\n if (value.classes.includes(id)) {\n value.cssStyles.push(...style.flatMap((s) => s.split(\",\")));\n }\n });\n }\n }\n getClasses() {\n return this.classes;\n }\n getData() {\n const config = getConfig();\n const nodes = [];\n const edges = [];\n for (const requirement of this.requirements.values()) {\n const node = requirement;\n node.id = requirement.name;\n node.cssStyles = requirement.cssStyles;\n node.cssClasses = requirement.classes.join(\" \");\n node.shape = \"requirementBox\";\n node.look = config.look;\n nodes.push(node);\n }\n for (const element of this.elements.values()) {\n const node = element;\n node.shape = \"requirementBox\";\n node.look = config.look;\n node.id = element.name;\n node.cssStyles = element.cssStyles;\n node.cssClasses = element.classes.join(\" \");\n nodes.push(node);\n }\n for (const relation of this.relations) {\n let counter = 0;\n const isContains = relation.type === this.Relationships.CONTAINS;\n const edge = {\n id: `${relation.src}-${relation.dst}-${counter}`,\n start: this.requirements.get(relation.src)?.name ?? this.elements.get(relation.src)?.name,\n end: this.requirements.get(relation.dst)?.name ?? this.elements.get(relation.dst)?.name,\n label: `<<${relation.type}>>`,\n classes: \"relationshipLine\",\n style: [\"fill:none\", isContains ? \"\" : \"stroke-dasharray: 10,7\"],\n labelpos: \"c\",\n thickness: \"normal\",\n type: \"normal\",\n pattern: isContains ? \"normal\" : \"dashed\",\n arrowTypeStart: isContains ? \"requirement_contains\" : \"\",\n arrowTypeEnd: isContains ? \"\" : \"requirement_arrow\",\n look: config.look\n };\n edges.push(edge);\n counter++;\n }\n return { nodes, edges, other: {}, config, direction: this.getDirection() };\n }\n};\n\n// src/diagrams/requirement/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `\n\n marker {\n fill: ${options.relationColor};\n stroke: ${options.relationColor};\n }\n\n marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n .reqBox {\n fill: ${options.requirementBackground};\n fill-opacity: 1.0;\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${options.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${options.relationLabelBackground};\n fill-opacity: 1.0;\n }\n\n .req-title-line {\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${options.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${options.relationLabelColor};\n }\n .divider {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n }\n .label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .label text,span {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n .labelBkg {\n background-color: ${options.edgeLabelBackground};\n }\n\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/requirement/requirementRenderer.ts\nvar requirementRenderer_exports = {};\n__export(requirementRenderer_exports, {\n draw: () => draw\n});\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing requirement diagram (unified)\", id);\n const { securityLevel, state: conf, layout } = getConfig();\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n data4Layout.nodeSpacing = conf?.nodeSpacing ?? 50;\n data4Layout.rankSpacing = conf?.rankSpacing ?? 50;\n data4Layout.markers = [\"requirement_contains\", \"requirement_arrow\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"requirementDiagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, \"requirementDiagram\", conf?.useMaxWidth ?? true);\n}, \"draw\");\n\n// src/diagrams/requirement/requirementDiagram.ts\nvar diagram = {\n parser: requirementDiagram_default,\n get db() {\n return new RequirementDB();\n },\n renderer: requirementRenderer_exports,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","requirementDiagram_default","RequirementDB","_a","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","getConfig","dir","name","type","id","text","risk","verifyMethod","log","docRef","src","dst","clear","ids","styles","node","s","classNames","_class","style","styleClass","newStyle","value","config","nodes","edges","requirement","element","relation","counter","isContains","edge","_b","_c","_d","getStyles","options","styles_default","requirementRenderer_exports","__export","draw","_version","diag","securityLevel","conf","layout","data4Layout","svg","getDiagramElement","getRegisteredLayoutAlgorithm","render","padding","utils_default","setupViewPortForSVG","diagram"],"mappings":"yxBAoCA,IAAIA,IAAS,UAAW,CACtB,IAAIC,EAAoBC,EAAO,SAASC,EAAGC,EAAGC,EAAI,EAAG,CACnD,IAAKA,EAAKA,GAAM,GAAI,EAAIF,EAAE,OAAQ,IAAKE,EAAGF,EAAE,CAAC,CAAC,EAAIC,EAAG,CACrD,OAAOC,CACT,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,CAAC,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,GAAM,CAAC,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAE,EAAGC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,GAAI,EAAE,EAAGC,GAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,EAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,GAAG,EAAGC,GAAM,CAAC,EAAG,GAAG,EACz/CC,GAAU,CACZ,MAAuBjE,EAAO,UAAiB,CAC/C,EAAG,OAAO,EACV,GAAI,CAAA,EACJ,SAAU,CAAE,MAAS,EAAG,MAAS,EAAG,UAAa,EAAG,QAAW,EAAG,GAAM,EAAG,QAAW,EAAG,IAAO,EAAG,UAAa,EAAG,gBAAmB,GAAI,UAAa,GAAI,gBAAmB,GAAI,0BAA6B,GAAI,eAAkB,GAAI,WAAc,GAAI,gBAAmB,GAAI,UAAa,GAAI,eAAkB,GAAI,kBAAqB,GAAI,eAAkB,GAAI,aAAgB,GAAI,aAAgB,GAAI,aAAgB,GAAI,aAAgB,GAAI,gBAAmB,GAAI,gBAAmB,GAAI,aAAgB,GAAI,gBAAmB,GAAI,gBAAmB,GAAI,OAAU,GAAI,GAAM,GAAI,SAAY,GAAI,GAAM,GAAI,KAAQ,GAAI,KAAQ,GAAI,KAAQ,GAAI,UAAa,GAAI,WAAc,GAAI,WAAc,GAAI,YAAe,GAAI,YAAe,GAAI,uBAA0B,GAAI,sBAAyB,GAAI,wBAA2B,GAAI,qBAAwB,GAAI,kBAAqB,GAAI,SAAY,GAAI,SAAY,GAAI,UAAa,GAAI,gBAAmB,GAAI,qBAAwB,GAAI,kBAAqB,GAAI,YAAe,GAAI,QAAW,GAAI,YAAe,GAAI,YAAe,GAAI,KAAQ,GAAI,KAAQ,GAAI,OAAU,GAAI,IAAO,GAAI,YAAe,GAAI,aAAgB,GAAI,KAAQ,GAAI,YAAe,GAAI,SAAY,GAAI,OAAU,GAAI,QAAW,GAAI,UAAa,GAAI,SAAY,GAAI,QAAW,GAAI,OAAU,GAAI,SAAY,GAAI,UAAa,GAAI,MAAS,GAAI,MAAS,GAAI,MAAS,GAAI,MAAS,GAAI,MAAS,GAAI,eAAkB,GAAI,IAAO,GAAI,MAAS,GAAI,KAAQ,GAAI,MAAS,GAAI,KAAQ,GAAI,IAAO,GAAI,MAAS,GAAI,MAAS,GAAI,UAAa,GAAI,UAAa,GAAI,QAAW,GAAI,QAAW,EAAG,KAAQ,CAAC,EACjjD,WAAY,CAAE,EAAG,QAAS,EAAG,UAAW,EAAG,KAAM,EAAG,MAAO,EAAG,YAAa,GAAI,kBAAmB,GAAI,YAAa,GAAI,kBAAmB,GAAI,4BAA6B,GAAI,eAAgB,GAAI,eAAgB,GAAI,eAAgB,GAAI,eAAgB,GAAI,eAAgB,GAAI,kBAAmB,GAAI,KAAM,GAAI,WAAY,GAAI,OAAQ,GAAI,OAAQ,GAAI,aAAc,GAAI,cAAe,GAAI,cAAe,GAAI,yBAA0B,GAAI,wBAAyB,GAAI,0BAA2B,GAAI,uBAAwB,GAAI,oBAAqB,GAAI,WAAY,GAAI,WAAY,GAAI,YAAa,GAAI,kBAAmB,GAAI,uBAAwB,GAAI,oBAAqB,GAAI,cAAe,GAAI,UAAW,GAAI,OAAQ,GAAI,SAAU,GAAI,cAAe,GAAI,OAAQ,GAAI,cAAe,GAAI,WAAY,GAAI,SAAU,GAAI,UAAW,GAAI,YAAa,GAAI,WAAY,GAAI,UAAW,GAAI,SAAU,GAAI,WAAY,GAAI,QAAS,GAAI,QAAS,GAAI,QAAS,GAAI,QAAS,GAAI,MAAO,GAAI,QAAS,GAAI,OAAQ,GAAI,QAAS,GAAI,OAAQ,GAAI,MAAO,GAAI,QAAS,GAAI,QAAS,GAAI,YAAa,GAAI,YAAa,GAAI,SAAS,EAC1kC,aAAc,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC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,EAChC,MACF,IAAK,GACH,KAAK,SAAQ,EACb,MACF,IAAK,GACH,MAAO,4BAET,IAAK,GACH,MAAO,IAET,IAAK,GACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,MACF,IAAK,IACH,MACF,IAAK,IACH,MACF,IAAK,IACH,MAAO,GAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,UAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MACF,IAAK,IACH,KAAK,MAAM,QAAQ,EACnB,MACF,IAAK,IACH,KAAK,SAAQ,EACb,MACF,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,MAAO,IAET,IAAK,I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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js b/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js new file mode 100644 index 000000000000..d07f89c7ac01 --- /dev/null +++ b/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js @@ -0,0 +1,11 @@ +import{_ as p,p as _t,q as xt,s as vt,g as bt,b as wt,a as St,c as lt,z as Et,d as H,V as Lt,y as Tt,k as At}from"./index.js";import{o as Mt}from"./ordinal.js";import"./XCircleIcon.js";import"./init.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="4868738c-367f-4061-b6c9-f0ff5f4ddfc4",t._sentryDebugIdIdentifier="sentry-dbid-4868738c-367f-4061-b6c9-f0ff5f4ddfc4")})()}catch{}function It(t){for(var e=t.length/6|0,i=new Array(e),a=0;a=a)&&(i=a);else{let a=-1;for(let h of t)(h=e(h,++a,t))!=null&&(i=h)&&(i=h)}return i}function pt(t,e){let i;if(e===void 0)for(const a of t)a!=null&&(i>a||i===void 0&&a>=a)&&(i=a);else{let a=-1;for(let h of t)(h=e(h,++a,t))!=null&&(i>h||i===void 0&&h>=h)&&(i=h)}return i}function nt(t,e){let i=0;if(e===void 0)for(let a of t)(a=+a)&&(i+=a);else{let a=-1;for(let h of t)(h=+e(h,++a,t))&&(i+=h)}return i}function Pt(t){return t.target.depth}function Ct(t){return t.depth}function Ot(t,e){return e-1-t.height}function mt(t,e){return t.sourceLinks.length?t.depth:e-1}function Dt(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?pt(t.sourceLinks,Pt)-1:0}function X(t){return function(){return t}}function ut(t,e){return Q(t.source,e.source)||t.index-e.index}function ht(t,e){return Q(t.target,e.target)||t.index-e.index}function Q(t,e){return t.y0-e.y0}function it(t){return t.value}function zt(t){return t.index}function $t(t){return t.nodes}function jt(t){return t.links}function ft(t,e){const i=t.get(e);if(!i)throw new Error("missing: "+e);return i}function yt({nodes:t}){for(const e of t){let i=e.y0,a=i;for(const h of e.sourceLinks)h.y0=i+h.width/2,i+=h.width;for(const h of e.targetLinks)h.y1=a+h.width/2,a+=h.width}}function Rt(){let t=0,e=0,i=1,a=1,h=24,d=8,m,_=zt,s=mt,o,l,x=$t,v=jt,y=6;function b(){const n={nodes:x.apply(null,arguments),links:v.apply(null,arguments)};return M(n),A(n),I(n),C(n),S(n),yt(n),n}b.update=function(n){return yt(n),n},b.nodeId=function(n){return arguments.length?(_=typeof n=="function"?n:X(n),b):_},b.nodeAlign=function(n){return arguments.length?(s=typeof n=="function"?n:X(n),b):s},b.nodeSort=function(n){return arguments.length?(o=n,b):o},b.nodeWidth=function(n){return arguments.length?(h=+n,b):h},b.nodePadding=function(n){return arguments.length?(d=m=+n,b):d},b.nodes=function(n){return arguments.length?(x=typeof n=="function"?n:X(n),b):x},b.links=function(n){return arguments.length?(v=typeof n=="function"?n:X(n),b):v},b.linkSort=function(n){return arguments.length?(l=n,b):l},b.size=function(n){return arguments.length?(t=e=0,i=+n[0],a=+n[1],b):[i-t,a-e]},b.extent=function(n){return arguments.length?(t=+n[0][0],i=+n[1][0],e=+n[0][1],a=+n[1][1],b):[[t,e],[i,a]]},b.iterations=function(n){return arguments.length?(y=+n,b):y};function M({nodes:n,links:f}){for(const[c,r]of n.entries())r.index=c,r.sourceLinks=[],r.targetLinks=[];const u=new Map(n.map((c,r)=>[_(c,r,n),c]));for(const[c,r]of f.entries()){r.index=c;let{source:k,target:w}=r;typeof k!="object"&&(k=r.source=ft(u,k)),typeof w!="object"&&(w=r.target=ft(u,w)),k.sourceLinks.push(r),w.targetLinks.push(r)}if(l!=null)for(const{sourceLinks:c,targetLinks:r}of n)c.sort(l),r.sort(l)}function A({nodes:n}){for(const f of n)f.value=f.fixedValue===void 0?Math.max(nt(f.sourceLinks,it),nt(f.targetLinks,it)):f.fixedValue}function I({nodes:n}){const f=n.length;let u=new Set(n),c=new Set,r=0;for(;u.size;){for(const k of u){k.depth=r;for(const{target:w}of k.sourceLinks)c.add(w)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function C({nodes:n}){const f=n.length;let u=new Set(n),c=new Set,r=0;for(;u.size;){for(const k of u){k.height=r;for(const{source:w}of k.targetLinks)c.add(w)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function z({nodes:n}){const f=ct(n,r=>r.depth)+1,u=(i-t-h)/(f-1),c=new Array(f);for(const r of n){const k=Math.max(0,Math.min(f-1,Math.floor(s.call(null,r,f))));r.layer=k,r.x0=t+k*u,r.x1=r.x0+h,c[k]?c[k].push(r):c[k]=[r]}if(o)for(const r of c)r.sort(o);return c}function B(n){const f=pt(n,u=>(a-e-(u.length-1)*m)/nt(u,it));for(const u of n){let c=e;for(const r of u){r.y0=c,r.y1=c+r.value*f,c=r.y1+m;for(const k of r.sourceLinks)k.width=k.value*f}c=(a-c+m)/(u.length+1);for(let r=0;ru.length)-1)),B(f);for(let u=0;u0))continue;let G=(E/V-w.y0)*f;w.y0+=G,w.y1+=G,L(w)}o===void 0&&k.sort(Q),O(k,u)}}function R(n,f,u){for(let c=n.length,r=c-2;r>=0;--r){const k=n[r];for(const w of k){let E=0,V=0;for(const{target:Y,value:et}of w.sourceLinks){let q=et*(Y.layer-w.layer);E+=N(w,Y)*q,V+=q}if(!(V>0))continue;let G=(E/V-w.y0)*f;w.y0+=G,w.y1+=G,L(w)}o===void 0&&k.sort(Q),O(k,u)}}function O(n,f){const u=n.length>>1,c=n[u];g(n,c.y0-m,u-1,f),D(n,c.y1+m,u+1,f),g(n,a,n.length-1,f),D(n,e,0,f)}function D(n,f,u,c){for(;u1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+m}}function g(n,f,u,c){for(;u>=0;--u){const r=n[u],k=(r.y1-f)*c;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-m}}function L({sourceLinks:n,targetLinks:f}){if(l===void 0){for(const{source:{sourceLinks:u}}of f)u.sort(ht);for(const{target:{targetLinks:u}}of n)u.sort(ut)}}function T(n){if(l===void 0)for(const{sourceLinks:f,targetLinks:u}of n)f.sort(ht),u.sort(ut)}function $(n,f){let u=n.y0-(n.sourceLinks.length-1)*m/2;for(const{target:c,width:r}of n.sourceLinks){if(c===f)break;u+=r+m}for(const{source:c,width:r}of f.targetLinks){if(c===n)break;u-=r}return u}function N(n,f){let u=f.y0-(f.targetLinks.length-1)*m/2;for(const{source:c,width:r}of f.targetLinks){if(c===n)break;u+=r+m}for(const{target:c,width:r}of n.sourceLinks){if(c===f)break;u-=r}return u}return b}var st=Math.PI,rt=2*st,F=1e-6,Bt=rt-F;function ot(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function kt(){return new ot}ot.prototype=kt.prototype={constructor:ot,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,i,a){this._+="Q"+ +t+","+ +e+","+(this._x1=+i)+","+(this._y1=+a)},bezierCurveTo:function(t,e,i,a,h,d){this._+="C"+ +t+","+ +e+","+ +i+","+ +a+","+(this._x1=+h)+","+(this._y1=+d)},arcTo:function(t,e,i,a,h){t=+t,e=+e,i=+i,a=+a,h=+h;var d=this._x1,m=this._y1,_=i-t,s=a-e,o=d-t,l=m-e,x=o*o+l*l;if(h<0)throw new Error("negative radius: "+h);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(x>F)if(!(Math.abs(l*_-s*o)>F)||!h)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var v=i-d,y=a-m,b=_*_+s*s,M=v*v+y*y,A=Math.sqrt(b),I=Math.sqrt(x),C=h*Math.tan((st-Math.acos((b+x-M)/(2*A*I)))/2),z=C/I,B=C/A;Math.abs(z-1)>F&&(this._+="L"+(t+z*o)+","+(e+z*l)),this._+="A"+h+","+h+",0,0,"+ +(l*v>o*y)+","+(this._x1=t+B*_)+","+(this._y1=e+B*s)}},arc:function(t,e,i,a,h,d){t=+t,e=+e,i=+i,d=!!d;var m=i*Math.cos(a),_=i*Math.sin(a),s=t+m,o=e+_,l=1^d,x=d?a-h:h-a;if(i<0)throw new Error("negative radius: "+i);this._x1===null?this._+="M"+s+","+o:(Math.abs(this._x1-s)>F||Math.abs(this._y1-o)>F)&&(this._+="L"+s+","+o),i&&(x<0&&(x=x%rt+rt),x>Bt?this._+="A"+i+","+i+",0,1,"+l+","+(t-m)+","+(e-_)+"A"+i+","+i+",0,1,"+l+","+(this._x1=s)+","+(this._y1=o):x>F&&(this._+="A"+i+","+i+",0,"+ +(x>=st)+","+l+","+(this._x1=t+i*Math.cos(h))+","+(this._y1=e+i*Math.sin(h))))},rect:function(t,e,i,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +i+"v"+ +a+"h"+-i+"Z"},toString:function(){return this._}};function dt(t){return function(){return t}}function Vt(t){return t[0]}function Ft(t){return t[1]}var Wt=Array.prototype.slice;function Ut(t){return t.source}function Gt(t){return t.target}function Yt(t){var e=Ut,i=Gt,a=Vt,h=Ft,d=null;function m(){var _,s=Wt.call(arguments),o=e.apply(this,s),l=i.apply(this,s);if(d||(d=_=kt()),t(d,+a.apply(this,(s[0]=o,s)),+h.apply(this,s),+a.apply(this,(s[0]=l,s)),+h.apply(this,s)),_)return d=null,_+""||null}return m.source=function(_){return arguments.length?(e=_,m):e},m.target=function(_){return arguments.length?(i=_,m):i},m.x=function(_){return arguments.length?(a=typeof _=="function"?_:dt(+_),m):a},m.y=function(_){return arguments.length?(h=typeof _=="function"?_:dt(+_),m):h},m.context=function(_){return arguments.length?(d=_??null,m):d},m}function qt(t,e,i,a,h){t.moveTo(e,i),t.bezierCurveTo(e=(e+a)/2,i,e,h,a,h)}function Ht(){return Yt(qt)}function Xt(t){return[t.source.x1,t.y0]}function Qt(t){return[t.target.x0,t.y1]}function Kt(){return Ht().source(Xt).target(Qt)}var at=(function(){var t=p(function(_,s,o,l){for(o=o||{},l=_.length;l--;o[_[l]]=s);return o},"o"),e=[1,9],i=[1,10],a=[1,5,10,12],h={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:p(function(s,o,l,x,v,y,b){var M=y.length-1;switch(v){case 7:const A=x.findOrCreateNode(y[M-4].trim().replaceAll('""','"')),I=x.findOrCreateNode(y[M-2].trim().replaceAll('""','"')),C=parseFloat(y[M].trim());x.addLink(A,I,C);break;case 8:case 9:case 11:this.$=y[M];break;case 10:this.$=y[M-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:i},{1:[2,6],7:11,10:[1,12]},t(i,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(i,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:i},{15:18,16:7,17:8,18:e,20:i},{18:[1,19]},t(i,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:e,20:i},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:p(function(s,o){if(o.recoverable)this.trace(s);else{var l=new Error(s);throw l.hash=o,l}},"parseError"),parse:p(function(s){var o=this,l=[0],x=[],v=[null],y=[],b=this.table,M="",A=0,I=0,C=2,z=1,B=y.slice.call(arguments,1),S=Object.create(this.lexer),P={yy:{}};for(var R in this.yy)Object.prototype.hasOwnProperty.call(this.yy,R)&&(P.yy[R]=this.yy[R]);S.setInput(s,P.yy),P.yy.lexer=S,P.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var O=S.yylloc;y.push(O);var D=S.options&&S.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function g(E){l.length=l.length-2*E,v.length=v.length-E,y.length=y.length-E}p(g,"popStack");function L(){var E;return E=x.pop()||S.lex()||z,typeof E!="number"&&(E instanceof Array&&(x=E,E=x.pop()),E=o.symbols_[E]||E),E}p(L,"lex");for(var T,$,N,n,f={},u,c,r,k;;){if($=l[l.length-1],this.defaultActions[$]?N=this.defaultActions[$]:((T===null||typeof T>"u")&&(T=L()),N=b[$]&&b[$][T]),typeof N>"u"||!N.length||!N[0]){var w="";k=[];for(u in b[$])this.terminals_[u]&&u>C&&k.push("'"+this.terminals_[u]+"'");S.showPosition?w="Parse error on line "+(A+1)+`: +`+S.showPosition()+` +Expecting `+k.join(", ")+", got '"+(this.terminals_[T]||T)+"'":w="Parse error on line "+(A+1)+": Unexpected "+(T==z?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(w,{text:S.match,token:this.terminals_[T]||T,line:S.yylineno,loc:O,expected:k})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+T);switch(N[0]){case 1:l.push(T),v.push(S.yytext),y.push(S.yylloc),l.push(N[1]),T=null,I=S.yyleng,M=S.yytext,A=S.yylineno,O=S.yylloc;break;case 2:if(c=this.productions_[N[1]][1],f.$=v[v.length-c],f._$={first_line:y[y.length-(c||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(c||1)].first_column,last_column:y[y.length-1].last_column},D&&(f._$.range=[y[y.length-(c||1)].range[0],y[y.length-1].range[1]]),n=this.performAction.apply(f,[M,I,A,P.yy,N[1],v,y].concat(B)),typeof n<"u")return n;c&&(l=l.slice(0,-1*c*2),v=v.slice(0,-1*c),y=y.slice(0,-1*c)),l.push(this.productions_[N[1]][0]),v.push(f.$),y.push(f._$),r=b[l[l.length-2]][l[l.length-1]],l.push(r);break;case 3:return!0}}return!0},"parse")},d=(function(){var _={EOF:1,parseError:p(function(o,l){if(this.yy.parser)this.yy.parser.parseError(o,l);else throw new Error(o)},"parseError"),setInput:p(function(s,o){return this.yy=o||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:p(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var o=s.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:p(function(s){var o=s.length,l=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===x.length?this.yylloc.first_column:0)+x[x.length-l.length].length-l[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},"unput"),more:p(function(){return this._more=!0,this},"more"),reject:p(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:p(function(s){this.unput(this.match.slice(s))},"less"),pastInput:p(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:p(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:p(function(){var s=this.pastInput(),o=new Array(s.length+1).join("-");return s+this.upcomingInput()+` +`+o+"^"},"showPosition"),test_match:p(function(s,o){var l,x,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),x=s[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],l=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var y in v)this[y]=v[y];return!1}return!1},"test_match"),next:p(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,o,l,x;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),y=0;yo[0].length)){if(o=l,x=y,this.options.backtrack_lexer){if(s=this.test_match(l,v[y]),s!==!1)return s;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(s=this.test_match(o,v[x]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:p(function(){var o=this.next();return o||this.lex()},"lex"),begin:p(function(o){this.conditionStack.push(o)},"begin"),popState:p(function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:p(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:p(function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},"topState"),pushState:p(function(o){this.begin(o)},"pushState"),stateStackSize:p(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:p(function(o,l,x,v){switch(x){case 0:return this.pushState("csv"),4;case 1:return this.pushState("csv"),4;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;case 6:return 20;case 7:return this.popState("escaped_text"),18;case 8:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:sankey\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[2,3,4,5,6,7,8],inclusive:!1},escaped_text:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8],inclusive:!0}}};return _})();h.lexer=d;function m(){this.yy={}}return p(m,"Parser"),m.prototype=h,h.Parser=m,new m})();at.parser=at;var K=at,J=[],tt=[],Z=new Map,Zt=p(()=>{J=[],tt=[],Z=new Map,Tt()},"clear"),W,Jt=(W=class{constructor(e,i,a=0){this.source=e,this.target=i,this.value=a}},p(W,"SankeyLink"),W),te=p((t,e,i)=>{J.push(new Jt(t,e,i))},"addLink"),U,ee=(U=class{constructor(e){this.ID=e}},p(U,"SankeyNode"),U),ne=p(t=>{t=At.sanitizeText(t,lt());let e=Z.get(t);return e===void 0&&(e=new ee(t),Z.set(t,e),tt.push(e)),e},"findOrCreateNode"),ie=p(()=>tt,"getNodes"),se=p(()=>J,"getLinks"),re=p(()=>({nodes:tt.map(t=>({id:t.ID})),links:J.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),oe={nodesMap:Z,getConfig:p(()=>lt().sankey,"getConfig"),getNodes:ie,getLinks:se,getGraph:re,addLink:te,findOrCreateNode:ne,getAccTitle:St,setAccTitle:wt,getAccDescription:bt,setAccDescription:vt,getDiagramTitle:xt,setDiagramTitle:_t,clear:Zt},j,gt=(j=class{static next(e){return new j(e+ ++j.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}},p(j,"Uid"),j.count=0,j),ae={left:Ct,right:Ot,center:Dt,justify:mt},le=p(function(t,e,i,a){const{securityLevel:h,sankey:d}=lt(),m=Et.sankey;let _;h==="sandbox"&&(_=H("#i"+e));const s=h==="sandbox"?H(_.nodes()[0].contentDocument.body):H("body"),o=h==="sandbox"?s.select(`[id="${e}"]`):H(`[id="${e}"]`),l=(d==null?void 0:d.width)??m.width,x=(d==null?void 0:d.height)??m.width,v=(d==null?void 0:d.useMaxWidth)??m.useMaxWidth,y=(d==null?void 0:d.nodeAlignment)??m.nodeAlignment,b=(d==null?void 0:d.prefix)??m.prefix,M=(d==null?void 0:d.suffix)??m.suffix,A=(d==null?void 0:d.showValues)??m.showValues,I=a.db.getGraph(),C=ae[y];Rt().nodeId(g=>g.id).nodeWidth(10).nodePadding(10+(A?15:0)).nodeAlign(C).extent([[0,0],[l,x]])(I);const S=Mt(Nt);o.append("g").attr("class","nodes").selectAll(".node").data(I.nodes).join("g").attr("class","node").attr("id",g=>(g.uid=gt.next("node-")).id).attr("transform",function(g){return"translate("+g.x0+","+g.y0+")"}).attr("x",g=>g.x0).attr("y",g=>g.y0).append("rect").attr("height",g=>g.y1-g.y0).attr("width",g=>g.x1-g.x0).attr("fill",g=>S(g.id));const P=p(({id:g,value:L})=>A?`${g} +${b}${Math.round(L*100)/100}${M}`:g,"getText");o.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(I.nodes).join("text").attr("x",g=>g.x0(g.y1+g.y0)/2).attr("dy",`${A?"0":"0.35"}em`).attr("text-anchor",g=>g.x0(L.uid=gt.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",L=>L.source.x1).attr("x2",L=>L.target.x0);g.append("stop").attr("offset","0%").attr("stop-color",L=>S(L.source.id)),g.append("stop").attr("offset","100%").attr("stop-color",L=>S(L.target.id))}let D;switch(O){case"gradient":D=p(g=>g.uid,"coloring");break;case"source":D=p(g=>S(g.source.id),"coloring");break;case"target":D=p(g=>S(g.target.id),"coloring");break;default:D=O}R.append("path").attr("d",Kt()).attr("stroke",D).attr("stroke-width",g=>Math.max(1,g.width)),Lt(void 0,o,0,v)},"draw"),ce={draw:le},ue=p(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing"),he=p(t=>`.label { + font-family: ${t.fontFamily}; + }`,"getStyles"),fe=he,ye=K.parse.bind(K);K.parse=t=>ye(ue(t));var ke={styles:fe,parser:K,db:oe,renderer:ce};export{ke as diagram}; +//# sourceMappingURL=sankeyDiagram-GR3RE2ED.js.map diff --git a/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js.map b/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js.map new file mode 100644 index 000000000000..fec6eb8875bf --- /dev/null +++ b/extensions/continue/gui/assets/sankeyDiagram-GR3RE2ED.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sankeyDiagram-GR3RE2ED.js","sources":["../../node_modules/d3-scale-chromatic/src/colors.js","../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../../node_modules/d3-sankey/src/align.js","../../node_modules/d3-sankey/src/constant.js","../../node_modules/d3-sankey/src/sankey.js","../../node_modules/d3-sankey/node_modules/d3-path/src/path.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/point.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/array.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js","../../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../../node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-GR3RE2ED.mjs"],"sourcesContent":["export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","import {\n clear,\n common_default,\n defaultConfig2 as defaultConfig,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/sankey/parser/sankey.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SANKEY\": 4, \"NEWLINE\": 5, \"csv\": 6, \"opt_eof\": 7, \"record\": 8, \"csv_tail\": 9, \"EOF\": 10, \"field[source]\": 11, \"COMMA\": 12, \"field[target]\": 13, \"field[value]\": 14, \"field\": 15, \"escaped\": 16, \"non_escaped\": 17, \"DQUOTE\": 18, \"ESCAPED_TEXT\": 19, \"NON_ESCAPED_TEXT\": 20, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SANKEY\", 5: \"NEWLINE\", 10: \"EOF\", 11: \"field[source]\", 12: \"COMMA\", 13: \"field[target]\", 14: \"field[value]\", 18: \"DQUOTE\", 19: \"ESCAPED_TEXT\", 20: \"NON_ESCAPED_TEXT\" },\n productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 7:\n const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('\"\"', '\"'));\n const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('\"\"', '\"'));\n const value = parseFloat($$[$0].trim());\n yy.addLink(source, target, value);\n break;\n case 8:\n case 9:\n case 11:\n this.$ = $$[$0];\n break;\n case 10:\n this.$ = $$[$0 - 1];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])],\n defaultActions: { 11: [2, 1], 12: [2, 5] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n this.pushState(\"csv\");\n return 4;\n break;\n case 1:\n this.pushState(\"csv\");\n return 4;\n break;\n case 2:\n return 10;\n break;\n case 3:\n return 5;\n break;\n case 4:\n return 12;\n break;\n case 5:\n this.pushState(\"escaped_text\");\n return 18;\n break;\n case 6:\n return 20;\n break;\n case 7:\n this.popState(\"escaped_text\");\n return 18;\n break;\n case 8:\n return 19;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:sankey-beta\\b)/i, /^(?:sankey\\b)/i, /^(?:$)/i, /^(?:((\\u000D\\u000A)|(\\u000A)))/i, /^(?:(\\u002C))/i, /^(?:(\\u0022))/i, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/i, /^(?:(\\u0022)(?!(\\u0022)))/i, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/i],\n conditions: { \"csv\": { \"rules\": [2, 3, 4, 5, 6, 7, 8], \"inclusive\": false }, \"escaped_text\": { \"rules\": [7, 8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 8], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar sankey_default = parser;\n\n// src/diagrams/sankey/sankeyDB.ts\nvar links = [];\nvar nodes = [];\nvar nodesMap = /* @__PURE__ */ new Map();\nvar clear2 = /* @__PURE__ */ __name(() => {\n links = [];\n nodes = [];\n nodesMap = /* @__PURE__ */ new Map();\n clear();\n}, \"clear\");\nvar SankeyLink = class {\n constructor(source, target, value = 0) {\n this.source = source;\n this.target = target;\n this.value = value;\n }\n static {\n __name(this, \"SankeyLink\");\n }\n};\nvar addLink = /* @__PURE__ */ __name((source, target, value) => {\n links.push(new SankeyLink(source, target, value));\n}, \"addLink\");\nvar SankeyNode = class {\n constructor(ID) {\n this.ID = ID;\n }\n static {\n __name(this, \"SankeyNode\");\n }\n};\nvar findOrCreateNode = /* @__PURE__ */ __name((ID) => {\n ID = common_default.sanitizeText(ID, getConfig());\n let node = nodesMap.get(ID);\n if (node === void 0) {\n node = new SankeyNode(ID);\n nodesMap.set(ID, node);\n nodes.push(node);\n }\n return node;\n}, \"findOrCreateNode\");\nvar getNodes = /* @__PURE__ */ __name(() => nodes, \"getNodes\");\nvar getLinks = /* @__PURE__ */ __name(() => links, \"getLinks\");\nvar getGraph = /* @__PURE__ */ __name(() => ({\n nodes: nodes.map((node) => ({ id: node.ID })),\n links: links.map((link) => ({\n source: link.source.ID,\n target: link.target.ID,\n value: link.value\n }))\n}), \"getGraph\");\nvar sankeyDB_default = {\n nodesMap,\n getConfig: /* @__PURE__ */ __name(() => getConfig().sankey, \"getConfig\"),\n getNodes,\n getLinks,\n getGraph,\n addLink,\n findOrCreateNode,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n getDiagramTitle,\n setDiagramTitle,\n clear: clear2\n};\n\n// src/diagrams/sankey/sankeyRenderer.ts\nimport {\n select as d3select,\n scaleOrdinal as d3scaleOrdinal,\n schemeTableau10 as d3schemeTableau10\n} from \"d3\";\nimport {\n sankey as d3Sankey,\n sankeyLinkHorizontal as d3SankeyLinkHorizontal,\n sankeyLeft as d3SankeyLeft,\n sankeyRight as d3SankeyRight,\n sankeyCenter as d3SankeyCenter,\n sankeyJustify as d3SankeyJustify\n} from \"d3-sankey\";\n\n// src/rendering-util/uid.ts\nvar Uid = class _Uid {\n static {\n __name(this, \"Uid\");\n }\n static {\n this.count = 0;\n }\n static next(name) {\n return new _Uid(name + ++_Uid.count);\n }\n constructor(id) {\n this.id = id;\n this.href = `#${id}`;\n }\n toString() {\n return \"url(\" + this.href + \")\";\n }\n};\n\n// src/diagrams/sankey/sankeyRenderer.ts\nvar alignmentsMap = {\n left: d3SankeyLeft,\n right: d3SankeyRight,\n center: d3SankeyCenter,\n justify: d3SankeyJustify\n};\nvar draw = /* @__PURE__ */ __name(function(text, id, _version, diagObj) {\n const { securityLevel, sankey: conf } = getConfig();\n const defaultSankeyConfig = defaultConfig.sankey;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = d3select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : d3select(`[id=\"${id}\"]`);\n const width = conf?.width ?? defaultSankeyConfig.width;\n const height = conf?.height ?? defaultSankeyConfig.width;\n const useMaxWidth = conf?.useMaxWidth ?? defaultSankeyConfig.useMaxWidth;\n const nodeAlignment = conf?.nodeAlignment ?? defaultSankeyConfig.nodeAlignment;\n const prefix = conf?.prefix ?? defaultSankeyConfig.prefix;\n const suffix = conf?.suffix ?? defaultSankeyConfig.suffix;\n const showValues = conf?.showValues ?? defaultSankeyConfig.showValues;\n const graph = diagObj.db.getGraph();\n const nodeAlign = alignmentsMap[nodeAlignment];\n const nodeWidth = 10;\n const sankey = d3Sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([\n [0, 0],\n [width, height]\n ]);\n sankey(graph);\n const colorScheme = d3scaleOrdinal(d3schemeTableau10);\n svg.append(\"g\").attr(\"class\", \"nodes\").selectAll(\".node\").data(graph.nodes).join(\"g\").attr(\"class\", \"node\").attr(\"id\", (d) => (d.uid = Uid.next(\"node-\")).id).attr(\"transform\", function(d) {\n return \"translate(\" + d.x0 + \",\" + d.y0 + \")\";\n }).attr(\"x\", (d) => d.x0).attr(\"y\", (d) => d.y0).append(\"rect\").attr(\"height\", (d) => {\n return d.y1 - d.y0;\n }).attr(\"width\", (d) => d.x1 - d.x0).attr(\"fill\", (d) => colorScheme(d.id));\n const getText = /* @__PURE__ */ __name(({ id: id2, value }) => {\n if (!showValues) {\n return id2;\n }\n return `${id2}\n${prefix}${Math.round(value * 100) / 100}${suffix}`;\n }, \"getText\");\n svg.append(\"g\").attr(\"class\", \"node-labels\").attr(\"font-size\", 14).selectAll(\"text\").data(graph.nodes).join(\"text\").attr(\"x\", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr(\"y\", (d) => (d.y1 + d.y0) / 2).attr(\"dy\", `${showValues ? \"0\" : \"0.35\"}em`).attr(\"text-anchor\", (d) => d.x0 < width / 2 ? \"start\" : \"end\").text(getText);\n const link = svg.append(\"g\").attr(\"class\", \"links\").attr(\"fill\", \"none\").attr(\"stroke-opacity\", 0.5).selectAll(\".link\").data(graph.links).join(\"g\").attr(\"class\", \"link\").style(\"mix-blend-mode\", \"multiply\");\n const linkColor = conf?.linkColor ?? \"gradient\";\n if (linkColor === \"gradient\") {\n const gradient = link.append(\"linearGradient\").attr(\"id\", (d) => (d.uid = Uid.next(\"linearGradient-\")).id).attr(\"gradientUnits\", \"userSpaceOnUse\").attr(\"x1\", (d) => d.source.x1).attr(\"x2\", (d) => d.target.x0);\n gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", (d) => colorScheme(d.source.id));\n gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (d) => colorScheme(d.target.id));\n }\n let coloring;\n switch (linkColor) {\n case \"gradient\":\n coloring = /* @__PURE__ */ __name((d) => d.uid, \"coloring\");\n break;\n case \"source\":\n coloring = /* @__PURE__ */ __name((d) => colorScheme(d.source.id), \"coloring\");\n break;\n case \"target\":\n coloring = /* @__PURE__ */ __name((d) => colorScheme(d.target.id), \"coloring\");\n break;\n default:\n coloring = linkColor;\n }\n link.append(\"path\").attr(\"d\", d3SankeyLinkHorizontal()).attr(\"stroke\", coloring).attr(\"stroke-width\", (d) => Math.max(1, d.width));\n setupGraphViewbox(void 0, svg, 0, useMaxWidth);\n}, \"draw\");\nvar sankeyRenderer_default = {\n draw\n};\n\n// src/diagrams/sankey/sankeyUtils.ts\nvar prepareTextForParsing = /* @__PURE__ */ __name((text) => {\n const textToParse = text.replaceAll(/^[^\\S\\n\\r]+|[^\\S\\n\\r]+$/g, \"\").replaceAll(/([\\n\\r])+/g, \"\\n\").trim();\n return textToParse;\n}, \"prepareTextForParsing\");\n\n// src/diagrams/sankey/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `.label {\n font-family: ${options.fontFamily};\n }`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/sankey/sankeyDiagram.ts\nvar originalParse = sankey_default.parse.bind(sankey_default);\nsankey_default.parse = (text) => originalParse(prepareTextForParsing(text));\nvar diagram = {\n styles: styles_default,\n parser: sankey_default,\n db: sankeyDB_default,\n renderer: sankeyRenderer_default\n};\nexport {\n diagram\n};\n"],"names":["colors","specifier","n","i","d3schemeTableau10","max","values","valueof","value","index","min","sum","targetDepth","d","left","node","right","justify","center","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","find","nodeById","id","computeLinkBreadths","nodes","y0","y1","link","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","links","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","_","source","target","sourceLinks","targetLinks","current","next","computeNodeLayers","kx","columns","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","width","pi","tau","epsilon","tauEpsilon","Path","path","x2","y2","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","cw","da","h","p","slice","linkSource","linkTarget","curve","pointX","pointY","context","buffer","argv","s","t","curveHorizontal","linkHorizontal","horizontalSource","horizontalTarget","d3SankeyLinkHorizontal","parser","o","__name","k","o2","$V0","$V1","$V2","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","lex","token","symbol","state","action","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","pre","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","sankey_default","nodesMap","clear2","clear","SankeyLink","_a","addLink","SankeyNode","ID","findOrCreateNode","common_default","getConfig","getNodes","getLinks","getGraph","sankeyDB_default","getAccTitle","setAccTitle","getAccDescription","setAccDescription","getDiagramTitle","setDiagramTitle","Uid","name","alignmentsMap","d3SankeyLeft","d3SankeyRight","d3SankeyCenter","d3SankeyJustify","draw","text","_version","diagObj","securityLevel","conf","defaultSankeyConfig","defaultConfig","sandboxElement","d3select","root","svg","height","useMaxWidth","nodeAlignment","prefix","suffix","showValues","nodeAlign","d3Sankey","colorScheme","d3scaleOrdinal","getText","id2","linkColor","gradient","coloring","setupGraphViewbox","sankeyRenderer_default","prepareTextForParsing","getStyles","options","styles_default","originalParse","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js b/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js new file mode 100644 index 000000000000..dd8d9c1a48c6 --- /dev/null +++ b/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js @@ -0,0 +1,146 @@ +import{a as we,b as Xt,g as ct,d as ve,c as Jt,e as Qt}from"./chunk-TZMSLE5B.js";import{_ as x,n as Ie,c as st,d as St,l as Q,j as re,e as _e,f as Le,k as I,b as se,s as Ae,p as ke,a as Pe,g as Ne,q as Se,t as Me,J as De,y as Re,i as Mt,u as F,L as z,M as Lt,N as ie,Z as Ce,O as Oe,P as ne,E as Ht}from"./index.js";import{I as Be}from"./chunk-QZHKN3VN.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50a9c9f1-68b7-4ecb-bd16-7c4ab1757d99",e._sentryDebugIdIdentifier="sentry-dbid-50a9c9f1-68b7-4ecb-bd16-7c4ab1757d99")})()}catch{}var Ut=(function(){var e=x(function(pt,v,A,_){for(A=A||{},_=pt.length;_--;A[pt[_]]=v);return A},"o"),t=[1,2],n=[1,3],s=[1,4],r=[2,4],i=[1,9],c=[1,11],h=[1,13],o=[1,14],a=[1,16],p=[1,17],g=[1,18],f=[1,24],y=[1,25],b=[1,26],w=[1,27],k=[1,28],N=[1,29],S=[1,30],M=[1,31],C=[1,32],Y=[1,33],H=[1,34],Z=[1,35],at=[1,36],U=[1,37],G=[1,38],q=[1,39],O=[1,41],$=[1,42],K=[1,43],j=[1,44],rt=[1,45],R=[1,46],E=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,55,60,61,62,63,71],L=[2,71],X=[4,5,16,50,52,53],tt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,55,60,61,62,63,71],D=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,55,60,61,62,63,71],Vt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,55,60,61,62,63,71],Zt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,55,60,61,62,63,71],ot=[69,70,71],lt=[1,127],Yt={trace:x(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,actor_with_config:54,note:55,placement:56,text2:57,over:58,actor_pair:59,links:60,link:61,properties:62,details:63,spaceList:64,",":65,left_of:66,right_of:67,signaltype:68,"+":69,"-":70,ACTOR:71,config_object:72,CONFIG_START:73,CONFIG_CONTENT:74,CONFIG_END:75,SOLID_OPEN_ARROW:76,DOTTED_OPEN_ARROW:77,SOLID_ARROW:78,BIDIRECTIONAL_SOLID_ARROW:79,DOTTED_ARROW:80,BIDIRECTIONAL_DOTTED_ARROW:81,SOLID_CROSS:82,DOTTED_CROSS:83,SOLID_POINT:84,DOTTED_POINT:85,TXT:86,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",55:"note",58:"over",60:"links",61:"link",62:"properties",63:"details",65:",",66:"left_of",67:"right_of",69:"+",70:"-",71:"ACTOR",73:"CONFIG_START",74:"CONFIG_CONTENT",75:"CONFIG_END",76:"SOLID_OPEN_ARROW",77:"DOTTED_OPEN_ARROW",78:"SOLID_ARROW",79:"BIDIRECTIONAL_SOLID_ARROW",80:"DOTTED_ARROW",81:"BIDIRECTIONAL_DOTTED_ARROW",82:"SOLID_CROSS",83:"DOTTED_CROSS",84:"SOLID_POINT",85:"DOTTED_POINT",86:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[64,2],[64,1],[59,3],[59,1],[56,1],[56,1],[17,5],[17,5],[17,4],[54,2],[72,3],[22,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[68,1],[57,1]],performAction:x(function(v,A,_,m,B,d,It){var u=d.length-1;switch(B){case 3:return m.apply(d[u]),d[u];case 4:case 9:this.$=[];break;case 5:case 10:d[u-1].push(d[u]),this.$=d[u-1];break;case 6:case 7:case 11:case 12:this.$=d[u];break;case 8:case 13:this.$=[];break;case 15:d[u].type="createParticipant",this.$=d[u];break;case 16:d[u-1].unshift({type:"boxStart",boxData:m.parseBoxData(d[u-2])}),d[u-1].push({type:"boxEnd",boxText:d[u-2]}),this.$=d[u-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(d[u-2]),sequenceIndexStep:Number(d[u-1]),sequenceVisible:!0,signalType:m.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(d[u-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:m.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:m.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:m.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:m.LINETYPE.ACTIVE_START,actor:d[u-1].actor};break;case 23:this.$={type:"activeEnd",signalType:m.LINETYPE.ACTIVE_END,actor:d[u-1].actor};break;case 29:m.setDiagramTitle(d[u].substring(6)),this.$=d[u].substring(6);break;case 30:m.setDiagramTitle(d[u].substring(7)),this.$=d[u].substring(7);break;case 31:this.$=d[u].trim(),m.setAccTitle(this.$);break;case 32:case 33:this.$=d[u].trim(),m.setAccDescription(this.$);break;case 34:d[u-1].unshift({type:"loopStart",loopText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.LOOP_START}),d[u-1].push({type:"loopEnd",loopText:d[u-2],signalType:m.LINETYPE.LOOP_END}),this.$=d[u-1];break;case 35:d[u-1].unshift({type:"rectStart",color:m.parseMessage(d[u-2]),signalType:m.LINETYPE.RECT_START}),d[u-1].push({type:"rectEnd",color:m.parseMessage(d[u-2]),signalType:m.LINETYPE.RECT_END}),this.$=d[u-1];break;case 36:d[u-1].unshift({type:"optStart",optText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.OPT_START}),d[u-1].push({type:"optEnd",optText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.OPT_END}),this.$=d[u-1];break;case 37:d[u-1].unshift({type:"altStart",altText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.ALT_START}),d[u-1].push({type:"altEnd",signalType:m.LINETYPE.ALT_END}),this.$=d[u-1];break;case 38:d[u-1].unshift({type:"parStart",parText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.PAR_START}),d[u-1].push({type:"parEnd",signalType:m.LINETYPE.PAR_END}),this.$=d[u-1];break;case 39:d[u-1].unshift({type:"parStart",parText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.PAR_OVER_START}),d[u-1].push({type:"parEnd",signalType:m.LINETYPE.PAR_END}),this.$=d[u-1];break;case 40:d[u-1].unshift({type:"criticalStart",criticalText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.CRITICAL_START}),d[u-1].push({type:"criticalEnd",signalType:m.LINETYPE.CRITICAL_END}),this.$=d[u-1];break;case 41:d[u-1].unshift({type:"breakStart",breakText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.BREAK_START}),d[u-1].push({type:"breakEnd",optText:m.parseMessage(d[u-2]),signalType:m.LINETYPE.BREAK_END}),this.$=d[u-1];break;case 43:this.$=d[u-3].concat([{type:"option",optionText:m.parseMessage(d[u-1]),signalType:m.LINETYPE.CRITICAL_OPTION},d[u]]);break;case 45:this.$=d[u-3].concat([{type:"and",parText:m.parseMessage(d[u-1]),signalType:m.LINETYPE.PAR_AND},d[u]]);break;case 47:this.$=d[u-3].concat([{type:"else",altText:m.parseMessage(d[u-1]),signalType:m.LINETYPE.ALT_ELSE},d[u]]);break;case 48:d[u-3].draw="participant",d[u-3].type="addParticipant",d[u-3].description=m.parseMessage(d[u-1]),this.$=d[u-3];break;case 49:d[u-1].draw="participant",d[u-1].type="addParticipant",this.$=d[u-1];break;case 50:d[u-3].draw="actor",d[u-3].type="addParticipant",d[u-3].description=m.parseMessage(d[u-1]),this.$=d[u-3];break;case 51:d[u-1].draw="actor",d[u-1].type="addParticipant",this.$=d[u-1];break;case 52:d[u-1].type="destroyParticipant",this.$=d[u-1];break;case 53:d[u-1].draw="participant",d[u-1].type="addParticipant",this.$=d[u-1];break;case 54:this.$=[d[u-1],{type:"addNote",placement:d[u-2],actor:d[u-1].actor,text:d[u]}];break;case 55:d[u-2]=[].concat(d[u-1],d[u-1]).slice(0,2),d[u-2][0]=d[u-2][0].actor,d[u-2][1]=d[u-2][1].actor,this.$=[d[u-1],{type:"addNote",placement:m.PLACEMENT.OVER,actor:d[u-2].slice(0,2),text:d[u]}];break;case 56:this.$=[d[u-1],{type:"addLinks",actor:d[u-1].actor,text:d[u]}];break;case 57:this.$=[d[u-1],{type:"addALink",actor:d[u-1].actor,text:d[u]}];break;case 58:this.$=[d[u-1],{type:"addProperties",actor:d[u-1].actor,text:d[u]}];break;case 59:this.$=[d[u-1],{type:"addDetails",actor:d[u-1].actor,text:d[u]}];break;case 62:this.$=[d[u-2],d[u]];break;case 63:this.$=d[u];break;case 64:this.$=m.PLACEMENT.LEFTOF;break;case 65:this.$=m.PLACEMENT.RIGHTOF;break;case 66:this.$=[d[u-4],d[u-1],{type:"addMessage",from:d[u-4].actor,to:d[u-1].actor,signalType:d[u-3],msg:d[u],activate:!0},{type:"activeStart",signalType:m.LINETYPE.ACTIVE_START,actor:d[u-1].actor}];break;case 67:this.$=[d[u-4],d[u-1],{type:"addMessage",from:d[u-4].actor,to:d[u-1].actor,signalType:d[u-3],msg:d[u]},{type:"activeEnd",signalType:m.LINETYPE.ACTIVE_END,actor:d[u-4].actor}];break;case 68:this.$=[d[u-3],d[u-1],{type:"addMessage",from:d[u-3].actor,to:d[u-1].actor,signalType:d[u-2],msg:d[u]}];break;case 69:this.$={type:"addParticipant",actor:d[u-1],config:d[u]};break;case 70:this.$=d[u-1].trim();break;case 71:this.$={type:"addParticipant",actor:d[u]};break;case 72:this.$=m.LINETYPE.SOLID_OPEN;break;case 73:this.$=m.LINETYPE.DOTTED_OPEN;break;case 74:this.$=m.LINETYPE.SOLID;break;case 75:this.$=m.LINETYPE.BIDIRECTIONAL_SOLID;break;case 76:this.$=m.LINETYPE.DOTTED;break;case 77:this.$=m.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 78:this.$=m.LINETYPE.SOLID_CROSS;break;case 79:this.$=m.LINETYPE.DOTTED_CROSS;break;case 80:this.$=m.LINETYPE.SOLID_POINT;break;case 81:this.$=m.LINETYPE.DOTTED_POINT;break;case 82:this.$=m.parseMessage(d[u].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:n,6:s},{1:[3]},{3:5,4:t,5:n,6:s},{3:6,4:t,5:n,6:s},e([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,55,60,61,62,63,71],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:i,5:c,8:8,9:10,12:12,13:h,14:o,17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},e(E,[2,5]),{9:47,12:12,13:h,14:o,17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},e(E,[2,7]),e(E,[2,8]),e(E,[2,14]),{12:48,50:U,52:G,53:q},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,71:R},{22:55,71:R},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},e(E,[2,29]),e(E,[2,30]),{32:[1,61]},{34:[1,62]},e(E,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,54:72,71:[1,73]},{22:74,71:R},{22:75,71:R},{68:76,76:[1,77],77:[1,78],78:[1,79],79:[1,80],80:[1,81],81:[1,82],82:[1,83],83:[1,84],84:[1,85],85:[1,86]},{56:87,58:[1,88],66:[1,89],67:[1,90]},{22:91,71:R},{22:92,71:R},{22:93,71:R},{22:94,71:R},e([5,51,65,76,77,78,79,80,81,82,83,84,85,86],L),e(E,[2,6]),e(E,[2,15]),e(X,[2,9],{10:95}),e(E,[2,17]),{5:[1,97],19:[1,96]},{5:[1,98]},e(E,[2,21]),{5:[1,99]},{5:[1,100]},e(E,[2,24]),e(E,[2,25]),e(E,[2,26]),e(E,[2,27]),e(E,[2,28]),e(E,[2,31]),e(E,[2,32]),e(tt,r,{7:101}),e(tt,r,{7:102}),e(tt,r,{7:103}),e(D,r,{40:104,7:105}),e(Vt,r,{42:106,7:107}),e(Vt,r,{7:107,42:108}),e(Zt,r,{45:109,7:110}),e(tt,r,{7:111}),{5:[1,113],51:[1,112]},{5:[1,114]},e([5,51],L,{72:115,73:[1,116]}),{5:[1,118],51:[1,117]},{5:[1,119]},{22:122,69:[1,120],70:[1,121],71:R},e(ot,[2,72]),e(ot,[2,73]),e(ot,[2,74]),e(ot,[2,75]),e(ot,[2,76]),e(ot,[2,77]),e(ot,[2,78]),e(ot,[2,79]),e(ot,[2,80]),e(ot,[2,81]),{22:123,71:R},{22:125,59:124,71:R},{71:[2,64]},{71:[2,65]},{57:126,86:lt},{57:128,86:lt},{57:129,86:lt},{57:130,86:lt},{4:[1,133],5:[1,135],11:132,12:134,16:[1,131],50:U,52:G,53:q},{5:[1,136]},e(E,[2,19]),e(E,[2,20]),e(E,[2,22]),e(E,[2,23]),{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[1,137],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[1,138],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[1,139],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{16:[1,140]},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[2,46],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,49:[1,141],50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{16:[1,142]},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[2,44],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,48:[1,143],50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{16:[1,144]},{16:[1,145]},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[2,42],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,47:[1,146],50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{4:i,5:c,8:8,9:10,12:12,13:h,14:o,16:[1,147],17:15,18:a,21:p,22:40,23:g,24:19,25:20,26:21,27:22,28:23,29:f,30:y,31:b,33:w,35:k,36:N,37:S,38:M,39:C,41:Y,43:H,44:Z,46:at,50:U,52:G,53:q,55:O,60:$,61:K,62:j,63:rt,71:R},{15:[1,148]},e(E,[2,49]),e(E,[2,53]),{5:[2,69]},{74:[1,149]},{15:[1,150]},e(E,[2,51]),e(E,[2,52]),{22:151,71:R},{22:152,71:R},{57:153,86:lt},{57:154,86:lt},{57:155,86:lt},{65:[1,156],86:[2,63]},{5:[2,56]},{5:[2,82]},{5:[2,57]},{5:[2,58]},{5:[2,59]},e(E,[2,16]),e(X,[2,10]),{12:157,50:U,52:G,53:q},e(X,[2,12]),e(X,[2,13]),e(E,[2,18]),e(E,[2,34]),e(E,[2,35]),e(E,[2,36]),e(E,[2,37]),{15:[1,158]},e(E,[2,38]),{15:[1,159]},e(E,[2,39]),e(E,[2,40]),{15:[1,160]},e(E,[2,41]),{5:[1,161]},{75:[1,162]},{5:[1,163]},{57:164,86:lt},{57:165,86:lt},{5:[2,68]},{5:[2,54]},{5:[2,55]},{22:166,71:R},e(X,[2,11]),e(D,r,{7:105,40:167}),e(Vt,r,{7:107,42:168}),e(Zt,r,{7:110,45:169}),e(E,[2,48]),{5:[2,70]},e(E,[2,50]),{5:[2,66]},{5:[2,67]},{86:[2,62]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],89:[2,64],90:[2,65],115:[2,69],126:[2,56],127:[2,82],128:[2,57],129:[2,58],130:[2,59],153:[2,68],154:[2,54],155:[2,55],162:[2,70],164:[2,66],165:[2,67],166:[2,62],167:[2,47],168:[2,45],169:[2,43]},parseError:x(function(v,A){if(A.recoverable)this.trace(v);else{var _=new Error(v);throw _.hash=A,_}},"parseError"),parse:x(function(v){var A=this,_=[0],m=[],B=[null],d=[],It=this.table,u="",kt=0,$t=0,Te=2,jt=1,Ee=d.slice.call(arguments,1),W=Object.create(this.lexer),xt={yy:{}};for(var Wt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Wt)&&(xt.yy[Wt]=this.yy[Wt]);W.setInput(v,xt.yy),xt.yy.lexer=W,xt.yy.parser=this,typeof W.yylloc>"u"&&(W.yylloc={});var Ft=W.yylloc;d.push(Ft);var be=W.options&&W.options.ranges;typeof xt.yy.parseError=="function"?this.parseError=xt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(et){_.length=_.length-2*et,B.length=B.length-et,d.length=d.length-et}x(me,"popStack");function te(){var et;return et=m.pop()||W.lex()||jt,typeof et!="number"&&(et instanceof Array&&(m=et,et=m.pop()),et=A.symbols_[et]||et),et}x(te,"lex");for(var J,yt,it,qt,bt={},Pt,ht,ee,Nt;;){if(yt=_[_.length-1],this.defaultActions[yt]?it=this.defaultActions[yt]:((J===null||typeof J>"u")&&(J=te()),it=It[yt]&&It[yt][J]),typeof it>"u"||!it.length||!it[0]){var zt="";Nt=[];for(Pt in It[yt])this.terminals_[Pt]&&Pt>Te&&Nt.push("'"+this.terminals_[Pt]+"'");W.showPosition?zt="Parse error on line "+(kt+1)+`: +`+W.showPosition()+` +Expecting `+Nt.join(", ")+", got '"+(this.terminals_[J]||J)+"'":zt="Parse error on line "+(kt+1)+": Unexpected "+(J==jt?"end of input":"'"+(this.terminals_[J]||J)+"'"),this.parseError(zt,{text:W.match,token:this.terminals_[J]||J,line:W.yylineno,loc:Ft,expected:Nt})}if(it[0]instanceof Array&&it.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+J);switch(it[0]){case 1:_.push(J),B.push(W.yytext),d.push(W.yylloc),_.push(it[1]),J=null,$t=W.yyleng,u=W.yytext,kt=W.yylineno,Ft=W.yylloc;break;case 2:if(ht=this.productions_[it[1]][1],bt.$=B[B.length-ht],bt._$={first_line:d[d.length-(ht||1)].first_line,last_line:d[d.length-1].last_line,first_column:d[d.length-(ht||1)].first_column,last_column:d[d.length-1].last_column},be&&(bt._$.range=[d[d.length-(ht||1)].range[0],d[d.length-1].range[1]]),qt=this.performAction.apply(bt,[u,$t,kt,xt.yy,it[1],B,d].concat(Ee)),typeof qt<"u")return qt;ht&&(_=_.slice(0,-1*ht*2),B=B.slice(0,-1*ht),d=d.slice(0,-1*ht)),_.push(this.productions_[it[1]][0]),B.push(bt.$),d.push(bt._$),ee=It[_[_.length-2]][_[_.length-1]],_.push(ee);break;case 3:return!0}}return!0},"parse")},ye=(function(){var pt={EOF:1,parseError:x(function(A,_){if(this.yy.parser)this.yy.parser.parseError(A,_);else throw new Error(A)},"parseError"),setInput:x(function(v,A){return this.yy=A||this.yy||{},this._input=v,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:x(function(){var v=this._input[0];this.yytext+=v,this.yyleng++,this.offset++,this.match+=v,this.matched+=v;var A=v.match(/(?:\r\n?|\n).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),v},"input"),unput:x(function(v){var A=v.length,_=v.split(/(?:\r\n?|\n)/g);this._input=v+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),_.length-1&&(this.yylineno-=_.length-1);var B=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:_?(_.length===m.length?this.yylloc.first_column:0)+m[m.length-_.length].length-_[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[B[0],B[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},"unput"),more:x(function(){return this._more=!0,this},"more"),reject:x(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:x(function(v){this.unput(this.match.slice(v))},"less"),pastInput:x(function(){var v=this.matched.substr(0,this.matched.length-this.match.length);return(v.length>20?"...":"")+v.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:x(function(){var v=this.match;return v.length<20&&(v+=this._input.substr(0,20-v.length)),(v.substr(0,20)+(v.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:x(function(){var v=this.pastInput(),A=new Array(v.length+1).join("-");return v+this.upcomingInput()+` +`+A+"^"},"showPosition"),test_match:x(function(v,A){var _,m,B;if(this.options.backtrack_lexer&&(B={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(B.yylloc.range=this.yylloc.range.slice(0))),m=v[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+v[0].length},this.yytext+=v[0],this.match+=v[0],this.matches=v,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(v[0].length),this.matched+=v[0],_=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),_)return _;if(this._backtrack){for(var d in B)this[d]=B[d];return!1}return!1},"test_match"),next:x(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var v,A,_,m;this._more||(this.yytext="",this.match="");for(var B=this._currentRules(),d=0;dA[0].length)){if(A=_,m=d,this.options.backtrack_lexer){if(v=this.test_match(_,B[d]),v!==!1)return v;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(v=this.test_match(A,B[m]),v!==!1?v:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:x(function(){var A=this.next();return A||this.lex()},"lex"),begin:x(function(A){this.conditionStack.push(A)},"begin"),popState:x(function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:x(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:x(function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},"topState"),pushState:x(function(A){this.begin(A)},"pushState"),stateStackSize:x(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:x(function(A,_,m,B){switch(m){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("CONFIG"),73;case 8:return 74;case 9:return this.popState(),this.popState(),75;case 10:return _.yytext=_.yytext.trim(),71;case 11:return _.yytext=_.yytext.trim(),this.begin("ALIAS"),71;case 12:return this.begin("LINE"),14;case 13:return this.begin("ID"),50;case 14:return this.begin("ID"),52;case 15:return 13;case 16:return this.begin("ID"),53;case 17:return _.yytext=_.yytext.trim(),this.begin("ALIAS"),71;case 18:return this.popState(),this.popState(),this.begin("LINE"),51;case 19:return this.popState(),this.popState(),5;case 20:return this.begin("LINE"),36;case 21:return this.begin("LINE"),37;case 22:return this.begin("LINE"),38;case 23:return this.begin("LINE"),39;case 24:return this.begin("LINE"),49;case 25:return this.begin("LINE"),41;case 26:return this.begin("LINE"),43;case 27:return this.begin("LINE"),48;case 28:return this.begin("LINE"),44;case 29:return this.begin("LINE"),47;case 30:return this.begin("LINE"),46;case 31:return this.popState(),15;case 32:return 16;case 33:return 66;case 34:return 67;case 35:return 60;case 36:return 61;case 37:return 62;case 38:return 63;case 39:return 58;case 40:return 55;case 41:return this.begin("ID"),21;case 42:return this.begin("ID"),23;case 43:return 29;case 44:return 30;case 45:return this.begin("acc_title"),31;case 46:return this.popState(),"acc_title_value";case 47:return this.begin("acc_descr"),33;case 48:return this.popState(),"acc_descr_value";case 49:this.begin("acc_descr_multiline");break;case 50:this.popState();break;case 51:return"acc_descr_multiline_value";case 52:return 6;case 53:return 18;case 54:return 20;case 55:return 65;case 56:return 5;case 57:return _.yytext=_.yytext.trim(),71;case 58:return 78;case 59:return 79;case 60:return 80;case 61:return 81;case 62:return 76;case 63:return 77;case 64:return 82;case 65:return 83;case 66:return 84;case 67:return 85;case 68:return 86;case 69:return 86;case 70:return 69;case 71:return 70;case 72:return 5;case 73:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:@\{)/i,/^(?:[^\}]+)/i,/^(?:\})/i,/^(?:[^\<->\->:\n,;@\s]+(?=@\{))/i,/^(?:[^\<->\->:\n,;@]+?([\-]*[^\<->\->:\n,;@]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^<\->\->:\n,;]+?([\-]*[^<\->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^+<\->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+<\->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]*)/i,/^(?::)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[50,51],inclusive:!1},acc_descr:{rules:[48],inclusive:!1},acc_title:{rules:[46],inclusive:!1},ID:{rules:[2,3,7,10,11,17],inclusive:!1},ALIAS:{rules:[2,3,18,19],inclusive:!1},LINE:{rules:[2,3,31],inclusive:!1},CONFIG:{rules:[8,9],inclusive:!1},CONFIG_DATA:{rules:[],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,47,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73],inclusive:!0}}};return pt})();Yt.lexer=ye;function At(){this.yy={}}return x(At,"Parser"),At.prototype=Yt,Yt.Parser=At,new At})();Ut.parser=Ut;var Ve=Ut,Ye={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},We={FILLED:0,OPEN:1},Fe={LEFTOF:0,RIGHTOF:1,OVER:2},Dt={ACTOR:"actor",CONTROL:"control",DATABASE:"database",ENTITY:"entity"},wt,qe=(wt=class{constructor(){this.state=new Be(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),this.setAccTitle=se,this.setAccDescription=Ae,this.setDiagramTitle=ke,this.getAccTitle=Pe,this.getAccDescription=Ne,this.getDiagramTitle=Se,this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(st().wrap),this.LINETYPE=Ye,this.ARROWTYPE=We,this.PLACEMENT=Fe}addBox(t){this.state.records.boxes.push({name:t.text,wrap:t.wrap??this.autoWrap(),fill:t.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(t,n,s,r,i){let c=this.state.records.currentBox,h;if(i!==void 0){let a;i.includes(` +`)?a=i+` +`:a=`{ +`+i+` +}`,h=Me(a,{schema:De})}r=(h==null?void 0:h.type)??r;const o=this.state.records.actors.get(t);if(o){if(this.state.records.currentBox&&o.box&&this.state.records.currentBox!==o.box)throw new Error(`A same participant should only be defined in one Box: ${o.name} can't be in '${o.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(c=o.box?o.box:this.state.records.currentBox,o.box=c,o&&n===o.name&&s==null)return}if((s==null?void 0:s.text)==null&&(s={text:n,type:r}),(r==null||s.text==null)&&(s={text:n,type:r}),this.state.records.actors.set(t,{box:c,name:n,description:s.text,wrap:s.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:r??"participant"}),this.state.records.prevActor){const a=this.state.records.actors.get(this.state.records.prevActor);a&&(a.nextActor=t)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(t),this.state.records.prevActor=t}activationCount(t){let n,s=0;if(!t)return 0;for(n=0;n>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},h}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:t,to:n,message:(s==null?void 0:s.text)??"",wrap:(s==null?void 0:s.wrap)??this.autoWrap(),type:r,activate:i}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(t=>t.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(t){return this.state.records.actors.get(t)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(t){this.state.records.wrapEnabled=t}extractWrap(t){if(t===void 0)return{};t=t.trim();const n=/^:?wrap:/.exec(t)!==null?!0:/^:?nowrap:/.exec(t)!==null?!1:void 0;return{cleanedText:(n===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:n}}autoWrap(){var t;return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:((t=st().sequence)==null?void 0:t.wrap)??!1}clear(){this.state.reset(),Re()}parseMessage(t){const n=t.trim(),{wrap:s,cleanedText:r}=this.extractWrap(n),i={text:r,wrap:s};return Q.debug(`parseMessage: ${JSON.stringify(i)}`),i}parseBoxData(t){const n=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t);let s=n!=null&&n[1]?n[1].trim():"transparent",r=n!=null&&n[2]?n[2].trim():void 0;if(window!=null&&window.CSS)window.CSS.supports("color",s)||(s="transparent",r=t.trim());else{const h=new Option().style;h.color=s,h.color!==s&&(s="transparent",r=t.trim())}const{wrap:i,cleanedText:c}=this.extractWrap(r);return{text:c?Mt(c,st()):void 0,color:s,wrap:i}}addNote(t,n,s){const r={actor:t,placement:n,message:s.text,wrap:s.wrap??this.autoWrap()},i=[].concat(t,t);this.state.records.notes.push(r),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:i[0],to:i[1],message:s.text,wrap:s.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:n})}addLinks(t,n){const s=this.getActor(t);try{let r=Mt(n.text,st());r=r.replace(/=/g,"="),r=r.replace(/&/g,"&");const i=JSON.parse(r);this.insertLinks(s,i)}catch(r){Q.error("error while parsing actor link text",r)}}addALink(t,n){const s=this.getActor(t);try{const r={};let i=Mt(n.text,st());const c=i.indexOf("@");i=i.replace(/=/g,"="),i=i.replace(/&/g,"&");const h=i.slice(0,c-1).trim(),o=i.slice(c+1).trim();r[h]=o,this.insertLinks(s,r)}catch(r){Q.error("error while parsing actor link text",r)}}insertLinks(t,n){if(t.links==null)t.links=n;else for(const s in n)t.links[s]=n[s]}addProperties(t,n){const s=this.getActor(t);try{const r=Mt(n.text,st()),i=JSON.parse(r);this.insertProperties(s,i)}catch(r){Q.error("error while parsing actor properties text",r)}}insertProperties(t,n){if(t.properties==null)t.properties=n;else for(const s in n)t.properties[s]=n[s]}boxEnd(){this.state.records.currentBox=void 0}addDetails(t,n){const s=this.getActor(t),r=document.getElementById(n.text);try{const i=r.innerHTML,c=JSON.parse(i);c.properties&&this.insertProperties(s,c.properties),c.links&&this.insertLinks(s,c.links)}catch(i){Q.error("error while parsing actor details text",i)}}getActorProperty(t,n){if((t==null?void 0:t.properties)!==void 0)return t.properties[n]}apply(t){if(Array.isArray(t))t.forEach(n=>{this.apply(n)});else switch(t.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":this.addActor(t.actor,t.actor,t.description,t.draw,t.config);break;case"createParticipant":if(this.state.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=t.actor,this.addActor(t.actor,t.actor,t.description,t.draw,t.config),this.state.records.createdActors.set(t.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=t.actor,this.state.records.destroyedActors.set(t.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"addNote":this.addNote(t.actor,t.placement,t.text);break;case"addLinks":this.addLinks(t.actor,t.text);break;case"addALink":this.addALink(t.actor,t.text);break;case"addProperties":this.addProperties(t.actor,t.text);break;case"addDetails":this.addDetails(t.actor,t.text);break;case"addMessage":if(this.state.records.lastCreated){if(t.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(t.to!==this.state.records.lastDestroyed&&t.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":this.addBox(t.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"rectStart":this.addSignal(void 0,void 0,t.color,t.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"optStart":this.addSignal(void 0,void 0,t.optText,t.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"altStart":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"else":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":se(t.text);break;case"parStart":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"and":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,t.criticalText,t.signalType);break;case"option":this.addSignal(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"breakStart":this.addSignal(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break}}getConfig(){return st().sequence}},x(wt,"SequenceDB"),wt),ze=x(e=>`.actor { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + } + + text.actor > tspan { + fill: ${e.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${e.actorLineColor}; + } + + .innerArc { + stroke-width: 1.5; + stroke-dasharray: none; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${e.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${e.signalColor}; + } + + #arrowhead path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .sequenceNumber { + fill: ${e.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${e.signalColor}; + } + + #crosshead path { + fill: ${e.signalColor}; + stroke: ${e.signalColor}; + } + + .messageText { + fill: ${e.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${e.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${e.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${e.labelBoxBorderColor}; + fill: ${e.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${e.noteBorderColor}; + fill: ${e.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${e.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation1 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .activation2 { + fill: ${e.activationBkgColor}; + stroke: ${e.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${e.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + } + .actor-man circle, line { + stroke: ${e.actorBorder}; + fill: ${e.actorBkg}; + stroke-width: 2px; + } + +`,"getStyles"),He=ze,Tt=36,gt="actor-top",ft="actor-bottom",Ct="actor-box",ut="actor-man",_t=x(function(e,t){return ve(e,t)},"drawRect"),Ue=x(function(e,t,n,s,r){if(t.links===void 0||t.links===null||Object.keys(t.links).length===0)return{height:0,width:0};const i=t.links,c=t.actorCnt,h=t.rectData;var o="none";r&&(o="block !important");const a=e.append("g");a.attr("id","actor"+c+"_popup"),a.attr("class","actorPopupMenu"),a.attr("display",o);var p="";h.class!==void 0&&(p=" "+h.class);let g=h.width>n?h.width:n;const f=a.append("rect");if(f.attr("class","actorPopupMenuPanel"+p),f.attr("x",h.x),f.attr("y",h.height),f.attr("fill",h.fill),f.attr("stroke",h.stroke),f.attr("width",g),f.attr("height",h.height),f.attr("rx",h.rx),f.attr("ry",h.ry),i!=null){var y=20;for(let k in i){var b=a.append("a"),w=re.sanitizeUrl(i[k]);b.attr("xlink:href",w),b.attr("target","_blank"),us(s)(k,b,h.x+10,h.height+y,g,20,{class:"actor"},s),y+=30}}return f.attr("height",y),{height:h.height+y,width:g}},"drawPopup"),Ot=x(function(e){return"var pu = document.getElementById('"+e+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Rt=x(async function(e,t,n=null){let s=e.append("foreignObject");const r=await ne(t.text,Ht()),c=s.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(r).node().getBoundingClientRect();if(s.attr("height",Math.round(c.height)).attr("width",Math.round(c.width)),t.class==="noteText"){const h=e.node().firstChild;h.setAttribute("height",c.height+2*t.textMargin);const o=h.getBBox();s.attr("x",Math.round(o.x+o.width/2-c.width/2)).attr("y",Math.round(o.y+o.height/2-c.height/2))}else if(n){let{startx:h,stopx:o,starty:a}=n;if(h>o){const p=h;h=o,o=p}s.attr("x",Math.round(h+Math.abs(h-o)/2-c.width/2)),t.class==="loopText"?s.attr("y",Math.round(a)):s.attr("y",Math.round(a-c.height))}return[s]},"drawKatex"),vt=x(function(e,t){let n=0,s=0;const r=t.text.split(I.lineBreakRegex),[i,c]=ie(t.fontSize);let h=[],o=0,a=x(()=>t.y,"yfunc");if(t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0)switch(t.valign){case"top":case"start":a=x(()=>Math.round(t.y+t.textMargin),"yfunc");break;case"middle":case"center":a=x(()=>Math.round(t.y+(n+s+t.textMargin)/2),"yfunc");break;case"bottom":case"end":a=x(()=>Math.round(t.y+(n+s+2*t.textMargin)-t.textMargin),"yfunc");break}if(t.anchor!==void 0&&t.textMargin!==void 0&&t.width!==void 0)switch(t.anchor){case"left":case"start":t.x=Math.round(t.x+t.textMargin),t.anchor="start",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"middle":case"center":t.x=Math.round(t.x+t.width/2),t.anchor="middle",t.dominantBaseline="middle",t.alignmentBaseline="middle";break;case"right":case"end":t.x=Math.round(t.x+t.width-t.textMargin),t.anchor="end",t.dominantBaseline="middle",t.alignmentBaseline="middle";break}for(let[p,g]of r.entries()){t.textMargin!==void 0&&t.textMargin===0&&i!==void 0&&(o=p*i);const f=e.append("text");f.attr("x",t.x),f.attr("y",a()),t.anchor!==void 0&&f.attr("text-anchor",t.anchor).attr("dominant-baseline",t.dominantBaseline).attr("alignment-baseline",t.alignmentBaseline),t.fontFamily!==void 0&&f.style("font-family",t.fontFamily),c!==void 0&&f.style("font-size",c),t.fontWeight!==void 0&&f.style("font-weight",t.fontWeight),t.fill!==void 0&&f.attr("fill",t.fill),t.class!==void 0&&f.attr("class",t.class),t.dy!==void 0?f.attr("dy",t.dy):o!==0&&f.attr("dy",o);const y=g||Ce;if(t.tspan){const b=f.append("tspan");b.attr("x",t.x),t.fill!==void 0&&b.attr("fill",t.fill),b.text(y)}else f.text(y);t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0&&(s+=(f._groups||f)[0][0].getBBox().height,n=s),h.push(f)}return h},"drawText"),oe=x(function(e,t){function n(r,i,c,h,o){return r+","+i+" "+(r+c)+","+i+" "+(r+c)+","+(i+h-o)+" "+(r+c-o*1.2)+","+(i+h)+" "+r+","+(i+h)}x(n,"genPoints");const s=e.append("polygon");return s.attr("points",n(t.x,t.y,t.width,t.height,7)),s.attr("class","labelBox"),t.y=t.y+t.height/2,vt(e,t),s},"drawLabel"),P=-1,ce=x((e,t,n,s)=>{e.select&&n.forEach(r=>{const i=t.get(r),c=e.select("#actor"+i.actorCnt);!s.mirrorActors&&i.stopy?c.attr("y2",i.stopy+i.height/2):s.mirrorActors&&c.attr("y2",i.stopy)})},"fixLifeLineHeights"),Ge=x(function(e,t,n,s){var y,b;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+t.height,h=e.append("g").lower();var o=h;s||(P++,Object.keys(t.links||{}).length&&!n.forceMenus&&o.attr("onclick",Ot(`actor${P}_popup`)).attr("cursor","pointer"),o.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),o=h.append("g"),t.actorCnt=P,t.links!=null&&o.attr("id","root-"+P));const a=ct();var p="actor";(y=t.properties)!=null&&y.class?p=t.properties.class:a.fill="#eaeaea",s?p+=` ${ft}`:p+=` ${gt}`,a.x=t.x,a.y=r,a.width=t.width,a.height=t.height,a.class=p,a.rx=3,a.ry=3,a.name=t.name;const g=_t(o,a);if(t.rectData=a,(b=t.properties)!=null&&b.icon){const w=t.properties.icon.trim();w.charAt(0)==="@"?Jt(o,a.x+a.width-20,a.y+10,w.substr(1)):Qt(o,a.x+a.width-20,a.y+10,w)}dt(n,z(t.description))(t.description,o,a.x,a.y,a.width,a.height,{class:`actor ${Ct}`},n);let f=t.height;if(g.node){const w=g.node().getBBox();t.height=w.height,f=w.height}return f},"drawActorTypeParticipant"),Ke=x(function(e,t,n,s){var w,k;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+t.height,h=e.append("g").lower();var o=h;s||(P++,Object.keys(t.links||{}).length&&!n.forceMenus&&o.attr("onclick",Ot(`actor${P}_popup`)).attr("cursor","pointer"),o.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),o=h.append("g"),t.actorCnt=P,t.links!=null&&o.attr("id","root-"+P));const a=ct();var p="actor";(w=t.properties)!=null&&w.class?p=t.properties.class:a.fill="#eaeaea",s?p+=` ${ft}`:p+=` ${gt}`,a.x=t.x,a.y=r,a.width=t.width,a.height=t.height,a.class=p,a.name=t.name;const g=6,f={...a,x:a.x+-g,y:a.y+ +g,class:"actor"},y=_t(o,a);if(_t(o,f),t.rectData=a,(k=t.properties)!=null&&k.icon){const N=t.properties.icon.trim();N.charAt(0)==="@"?Jt(o,a.x+a.width-20,a.y+10,N.substr(1)):Qt(o,a.x+a.width-20,a.y+10,N)}dt(n,z(t.description))(t.description,o,a.x-g,a.y+g,a.width,a.height,{class:`actor ${Ct}`},n);let b=t.height;if(y.node){const N=y.node().getBBox();t.height=N.height,b=N.height}return b},"drawActorTypeCollections"),Xe=x(function(e,t,n,s){var N,S;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+t.height,h=e.append("g").lower();let o=h;s||(P++,Object.keys(t.links||{}).length&&!n.forceMenus&&o.attr("onclick",Ot(`actor${P}_popup`)).attr("cursor","pointer"),o.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),o=h.append("g"),t.actorCnt=P,t.links!=null&&o.attr("id","root-"+P));const a=ct();let p="actor";(N=t.properties)!=null&&N.class?p=t.properties.class:a.fill="#eaeaea",s?p+=` ${ft}`:p+=` ${gt}`,a.x=t.x,a.y=r,a.width=t.width,a.height=t.height,a.class=p,a.name=t.name;const g=a.height/2,f=g/(2.5+a.height/50),y=o.append("g"),b=o.append("g");if(y.append("path").attr("d",`M ${a.x},${a.y+g} + a ${f},${g} 0 0 0 0,${a.height} + h ${a.width-2*f} + a ${f},${g} 0 0 0 0,-${a.height} + Z + `).attr("class",p),b.append("path").attr("d",`M ${a.x},${a.y+g} + a ${f},${g} 0 0 0 0,${a.height}`).attr("stroke","#666").attr("stroke-width","1px").attr("class",p),y.attr("transform",`translate(${f}, ${-(a.height/2)})`),b.attr("transform",`translate(${a.width-f}, ${-a.height/2})`),t.rectData=a,(S=t.properties)!=null&&S.icon){const M=t.properties.icon.trim(),C=a.x+a.width-20,Y=a.y+10;M.charAt(0)==="@"?Jt(o,C,Y,M.substr(1)):Qt(o,C,Y,M)}dt(n,z(t.description))(t.description,o,a.x,a.y,a.width,a.height,{class:`actor ${Ct}`},n);let w=t.height;const k=y.select("path:last-child");if(k.node()){const M=k.node().getBBox();t.height=M.height,w=M.height}return w},"drawActorTypeQueue"),Je=x(function(e,t,n,s){var w;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+75,h=e.append("g").lower();s||(P++,h.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),t.actorCnt=P);const o=e.append("g");let a=ut;s?a+=` ${ft}`:a+=` ${gt}`,o.attr("class",a),o.attr("name",t.name);const p=ct();p.x=t.x,p.y=r,p.fill="#eaeaea",p.width=t.width,p.height=t.height,p.class="actor";const g=t.x+t.width/2,f=r+30,y=18;o.append("defs").append("marker").attr("id","filled-head-control").attr("refX",11).attr("refY",5.8).attr("markerWidth",20).attr("markerHeight",28).attr("orient","172.5").append("path").attr("d","M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z"),o.append("circle").attr("cx",g).attr("cy",f).attr("r",y).attr("fill","#eaeaf7").attr("stroke","#666").attr("stroke-width",1.2),o.append("line").attr("marker-end","url(#filled-head-control)").attr("transform",`translate(${g}, ${f-y})`);const b=o.node().getBBox();return t.height=b.height+2*(((w=n==null?void 0:n.sequence)==null?void 0:w.labelBoxHeight)??0),dt(n,z(t.description))(t.description,o,p.x,p.y+y+(s?5:10),p.width,p.height,{class:`actor ${ut}`},n),t.height},"drawActorTypeControl"),Qe=x(function(e,t,n,s){var w;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+75,h=e.append("g").lower(),o=e.append("g");let a=ut;s?a+=` ${ft}`:a+=` ${gt}`,o.attr("class",a),o.attr("name",t.name);const p=ct();p.x=t.x,p.y=r,p.fill="#eaeaea",p.width=t.width,p.height=t.height,p.class="actor";const g=t.x+t.width/2,f=r+(s?10:25),y=18;o.append("circle").attr("cx",g).attr("cy",f).attr("r",y).attr("width",t.width).attr("height",t.height),o.append("line").attr("x1",g-y).attr("x2",g+y).attr("y1",f+y).attr("y2",f+y).attr("stroke","#333").attr("stroke-width",2);const b=o.node().getBBox();return t.height=b.height+(((w=n==null?void 0:n.sequence)==null?void 0:w.labelBoxHeight)??0),s||(P++,h.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),t.actorCnt=P),dt(n,z(t.description))(t.description,o,p.x,p.y+(s?(f-r+y-5)/2:(f+y-r)/2),p.width,p.height,{class:`actor ${ut}`},n),s?o.attr("transform",`translate(0, ${y/2})`):o.attr("transform",`translate(0, ${y/2})`),t.height},"drawActorTypeEntity"),Ze=x(function(e,t,n,s){var S;const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+t.height+2*n.boxTextMargin,h=e.append("g").lower();let o=h;s||(P++,Object.keys(t.links||{}).length&&!n.forceMenus&&o.attr("onclick",Ot(`actor${P}_popup`)).attr("cursor","pointer"),o.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),o=h.append("g"),t.actorCnt=P,t.links!=null&&o.attr("id","root-"+P));const a=ct();let p="actor";(S=t.properties)!=null&&S.class?p=t.properties.class:a.fill="#eaeaea",s?p+=` ${ft}`:p+=` ${gt}`,a.x=t.x,a.y=r,a.width=t.width,a.height=t.height,a.class=p,a.name=t.name,a.x=t.x,a.y=r;const g=a.width/4,f=a.width/4,y=g/2,b=y/(2.5+g/50),w=o.append("g"),k=` + M ${a.x},${a.y+b} + a ${y},${b} 0 0 0 ${g},0 + a ${y},${b} 0 0 0 -${g},0 + l 0,${f-2*b} + a ${y},${b} 0 0 0 ${g},0 + l 0,-${f-2*b} +`;w.append("path").attr("d",k).attr("fill","#eaeaea").attr("stroke","#000").attr("stroke-width",1).attr("class",p),s?w.attr("transform",`translate(${g*1.5}, ${a.height/4-2*b})`):w.attr("transform",`translate(${g*1.5}, ${(a.height+b)/4})`),t.rectData=a,dt(n,z(t.description))(t.description,o,a.x,a.y+(s?(a.height+f)/4:(a.height+b)/2),a.width,a.height,{class:`actor ${Ct}`},n);const N=w.select("path:last-child");if(N.node()){const M=N.node().getBBox();t.height=M.height+(n.sequence.labelBoxHeight??0)}return t.height},"drawActorTypeDatabase"),$e=x(function(e,t,n,s){const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+80,h=30,o=e.append("g").lower();s||(P++,o.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),t.actorCnt=P);const a=e.append("g");let p=ut;s?p+=` ${ft}`:p+=` ${gt}`,a.attr("class",p),a.attr("name",t.name);const g=ct();g.x=t.x,g.y=r,g.fill="#eaeaea",g.width=t.width,g.height=t.height,g.class="actor",a.append("line").attr("id","actor-man-torso"+P).attr("x1",t.x+t.width/2-h*2.5).attr("y1",r+10).attr("x2",t.x+t.width/2-15).attr("y2",r+10),a.append("line").attr("id","actor-man-arms"+P).attr("x1",t.x+t.width/2-h*2.5).attr("y1",r+0).attr("x2",t.x+t.width/2-h*2.5).attr("y2",r+20),a.append("circle").attr("cx",t.x+t.width/2).attr("cy",r+10).attr("r",h);const f=a.node().getBBox();return t.height=f.height+(n.sequence.labelBoxHeight??0),dt(n,z(t.description))(t.description,a,g.x,g.y+(s?h/2-4:h/2+3),g.width,g.height,{class:`actor ${ut}`},n),s?a.attr("transform",`translate(0,${h/2+7})`):a.attr("transform",`translate(0,${h/2+7})`),t.height},"drawActorTypeBoundary"),je=x(function(e,t,n,s){const r=s?t.stopy:t.starty,i=t.x+t.width/2,c=r+80,h=e.append("g").lower();s||(P++,h.append("line").attr("id","actor"+P).attr("x1",i).attr("y1",c).attr("x2",i).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",t.name),t.actorCnt=P);const o=e.append("g");let a=ut;s?a+=` ${ft}`:a+=` ${gt}`,o.attr("class",a),o.attr("name",t.name);const p=ct();p.x=t.x,p.y=r,p.fill="#eaeaea",p.width=t.width,p.height=t.height,p.class="actor",p.rx=3,p.ry=3,o.append("line").attr("id","actor-man-torso"+P).attr("x1",i).attr("y1",r+25).attr("x2",i).attr("y2",r+45),o.append("line").attr("id","actor-man-arms"+P).attr("x1",i-Tt/2).attr("y1",r+33).attr("x2",i+Tt/2).attr("y2",r+33),o.append("line").attr("x1",i-Tt/2).attr("y1",r+60).attr("x2",i).attr("y2",r+45),o.append("line").attr("x1",i).attr("y1",r+45).attr("x2",i+Tt/2-2).attr("y2",r+60);const g=o.append("circle");g.attr("cx",t.x+t.width/2),g.attr("cy",r+10),g.attr("r",15),g.attr("width",t.width),g.attr("height",t.height);const f=o.node().getBBox();return t.height=f.height,dt(n,z(t.description))(t.description,o,p.x,p.y+35,p.width,p.height,{class:`actor ${ut}`},n),t.height},"drawActorTypeActor"),ts=x(async function(e,t,n,s){switch(t.type){case"actor":return await je(e,t,n,s);case"participant":return await Ge(e,t,n,s);case"boundary":return await $e(e,t,n,s);case"control":return await Je(e,t,n,s);case"entity":return await Qe(e,t,n,s);case"database":return await Ze(e,t,n,s);case"collections":return await Ke(e,t,n,s);case"queue":return await Xe(e,t,n,s)}},"drawActor"),es=x(function(e,t,n){const r=e.append("g");le(r,t),t.name&&dt(n)(t.name,r,t.x,t.y+n.boxTextMargin+(t.textMaxHeight||0)/2,t.width,0,{class:"text"},n),r.lower()},"drawBox"),ss=x(function(e){return e.append("g")},"anchorElement"),as=x(function(e,t,n,s,r){const i=ct(),c=t.anchored;i.x=t.startx,i.y=t.starty,i.class="activation"+r%3,i.width=t.stopx-t.startx,i.height=n-t.starty,_t(c,i)},"drawActivation"),rs=x(async function(e,t,n,s){const{boxMargin:r,boxTextMargin:i,labelBoxHeight:c,labelBoxWidth:h,messageFontFamily:o,messageFontSize:a,messageFontWeight:p}=s,g=e.append("g"),f=x(function(w,k,N,S){return g.append("line").attr("x1",w).attr("y1",k).attr("x2",N).attr("y2",S).attr("class","loopLine")},"drawLoopLine");f(t.startx,t.starty,t.stopx,t.starty),f(t.stopx,t.starty,t.stopx,t.stopy),f(t.startx,t.stopy,t.stopx,t.stopy),f(t.startx,t.starty,t.startx,t.stopy),t.sections!==void 0&&t.sections.forEach(function(w){f(t.startx,w.y,t.stopx,w.y).style("stroke-dasharray","3, 3")});let y=Xt();y.text=n,y.x=t.startx,y.y=t.starty,y.fontFamily=o,y.fontSize=a,y.fontWeight=p,y.anchor="middle",y.valign="middle",y.tspan=!1,y.width=h||50,y.height=c||20,y.textMargin=i,y.class="labelText",oe(g,y),y=he(),y.text=t.title,y.x=t.startx+h/2+(t.stopx-t.startx)/2,y.y=t.starty+r+i,y.anchor="middle",y.valign="middle",y.textMargin=i,y.class="loopText",y.fontFamily=o,y.fontSize=a,y.fontWeight=p,y.wrap=!0;let b=z(y.text)?await Rt(g,y,t):vt(g,y);if(t.sectionTitles!==void 0){for(const[w,k]of Object.entries(t.sectionTitles))if(k.message){y.text=k.message,y.x=t.startx+(t.stopx-t.startx)/2,y.y=t.sections[w].y+r+i,y.class="loopText",y.anchor="middle",y.valign="middle",y.tspan=!1,y.fontFamily=o,y.fontSize=a,y.fontWeight=p,y.wrap=t.wrap,z(y.text)?(t.starty=t.sections[w].y,await Rt(g,y,t)):vt(g,y);let N=Math.round(b.map(S=>(S._groups||S)[0][0].getBBox().height).reduce((S,M)=>S+M));t.sections[w].height+=N-(r+i)}}return t.height=Math.round(t.stopy-t.starty),g},"drawLoop"),le=x(function(e,t){we(e,t)},"drawBackgroundRect"),is=x(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),ns=x(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),os=x(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),cs=x(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),ls=x(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),hs=x(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),ds=x(function(e){e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),he=x(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),ps=x(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),dt=(function(){function e(i,c,h,o,a,p,g){const f=c.append("text").attr("x",h+a/2).attr("y",o+p/2+5).style("text-anchor","middle").text(i);r(f,g)}x(e,"byText");function t(i,c,h,o,a,p,g,f){const{actorFontSize:y,actorFontFamily:b,actorFontWeight:w}=f,[k,N]=ie(y),S=i.split(I.lineBreakRegex);for(let M=0;Me.height||0))+(this.loops.length===0?0:this.loops.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.messages.length===0?0:this.messages.map(e=>e.height||0).reduce((e,t)=>e+t))+(this.notes.length===0?0:this.notes.map(e=>e.height||0).reduce((e,t)=>e+t))},"getHeight"),clear:x(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:x(function(e){this.boxes.push(e)},"addBox"),addActor:x(function(e){this.actors.push(e)},"addActor"),addLoop:x(function(e){this.loops.push(e)},"addLoop"),addMessage:x(function(e){this.messages.push(e)},"addMessage"),addNote:x(function(e){this.notes.push(e)},"addNote"),lastActor:x(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:x(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:x(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:x(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:x(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,ue(st())},"init"),updateVal:x(function(e,t,n,s){e[t]===void 0?e[t]=n:e[t]=s(n,e[t])},"updateVal"),updateBounds:x(function(e,t,n,s){const r=this;let i=0;function c(h){return x(function(a){i++;const p=r.sequenceItems.length-i+1;r.updateVal(a,"starty",t-p*l.boxMargin,Math.min),r.updateVal(a,"stopy",s+p*l.boxMargin,Math.max),r.updateVal(T.data,"startx",e-p*l.boxMargin,Math.min),r.updateVal(T.data,"stopx",n+p*l.boxMargin,Math.max),h!=="activation"&&(r.updateVal(a,"startx",e-p*l.boxMargin,Math.min),r.updateVal(a,"stopx",n+p*l.boxMargin,Math.max),r.updateVal(T.data,"starty",t-p*l.boxMargin,Math.min),r.updateVal(T.data,"stopy",s+p*l.boxMargin,Math.max))},"updateItemBounds")}x(c,"updateFn"),this.sequenceItems.forEach(c()),this.activations.forEach(c("activation"))},"updateBounds"),insert:x(function(e,t,n,s){const r=I.getMin(e,n),i=I.getMax(e,n),c=I.getMin(t,s),h=I.getMax(t,s);this.updateVal(T.data,"startx",r,Math.min),this.updateVal(T.data,"starty",c,Math.min),this.updateVal(T.data,"stopx",i,Math.max),this.updateVal(T.data,"stopy",h,Math.max),this.updateBounds(r,c,i,h)},"insert"),newActivation:x(function(e,t,n){const s=n.get(e.from),r=Bt(e.from).length||0,i=s.x+s.width/2+(r-1)*l.activationWidth/2;this.activations.push({startx:i,starty:this.verticalPos+2,stopx:i+l.activationWidth,stopy:void 0,actor:e.from,anchored:V.anchorElement(t)})},"newActivation"),endActivation:x(function(e){const t=this.activations.map(function(n){return n.actor}).lastIndexOf(e.from);return this.activations.splice(t,1)[0]},"endActivation"),createLoop:x(function(e={message:void 0,wrap:!1,width:void 0},t){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:e.message,wrap:e.wrap,width:e.width,height:0,fill:t}},"createLoop"),newLoop:x(function(e={message:void 0,wrap:!1,width:void 0},t){this.sequenceItems.push(this.createLoop(e,t))},"newLoop"),endLoop:x(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:x(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:x(function(e){const t=this.sequenceItems.pop();t.sections=t.sections||[],t.sectionTitles=t.sectionTitles||[],t.sections.push({y:T.getVerticalPos(),height:0}),t.sectionTitles.push(e),this.sequenceItems.push(t)},"addSectionToLoop"),saveVerticalPos:x(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:x(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:x(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=I.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:x(function(){return this.verticalPos},"getVerticalPos"),getBounds:x(function(){return{bounds:this.data,models:this.models}},"getBounds")},gs=x(async function(e,t){T.bumpVerticalPos(l.boxMargin),t.height=l.boxMargin,t.starty=T.getVerticalPos();const n=ct();n.x=t.startx,n.y=t.starty,n.width=t.width||l.width,n.class="note";const s=e.append("g"),r=V.drawRect(s,n),i=Xt();i.x=t.startx,i.y=t.starty,i.width=n.width,i.dy="1em",i.text=t.message,i.class="noteText",i.fontFamily=l.noteFontFamily,i.fontSize=l.noteFontSize,i.fontWeight=l.noteFontWeight,i.anchor=l.noteAlign,i.textMargin=l.noteMargin,i.valign="center";const c=z(i.text)?await Rt(s,i):vt(s,i),h=Math.round(c.map(o=>(o._groups||o)[0][0].getBBox().height).reduce((o,a)=>o+a));r.attr("height",h+2*l.noteMargin),t.height+=h+2*l.noteMargin,T.bumpVerticalPos(h+2*l.noteMargin),t.stopy=t.starty+h+2*l.noteMargin,t.stopx=t.startx+n.width,T.insert(t.startx,t.starty,t.stopx,t.stopy),T.models.addNote(t)},"drawNote"),Et=x(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont"),mt=x(e=>({fontFamily:e.noteFontFamily,fontSize:e.noteFontSize,fontWeight:e.noteFontWeight}),"noteFont"),Gt=x(e=>({fontFamily:e.actorFontFamily,fontSize:e.actorFontSize,fontWeight:e.actorFontWeight}),"actorFont");async function de(e,t){T.bumpVerticalPos(10);const{startx:n,stopx:s,message:r}=t,i=I.splitBreaks(r).length,c=z(r),h=c?await Lt(r,st()):F.calculateTextDimensions(r,Et(l));if(!c){const g=h.height/i;t.height+=g,T.bumpVerticalPos(g)}let o,a=h.height-10;const p=h.width;if(n===s){o=T.getVerticalPos()+a,l.rightAngles||(a+=l.boxMargin,o=T.getVerticalPos()+a),a+=30;const g=I.getMax(p/2,l.width/2);T.insert(n-g,T.getVerticalPos()-10+a,s+g,T.getVerticalPos()+30+a)}else a+=l.boxMargin,o=T.getVerticalPos()+a,T.insert(n,o-10,s,o);return T.bumpVerticalPos(a),t.height+=a,t.stopy=t.starty+t.height,T.insert(t.fromBounds,t.starty,t.toBounds,t.stopy),o}x(de,"boundMessage");var fs=x(async function(e,t,n,s){const{startx:r,stopx:i,starty:c,message:h,type:o,sequenceIndex:a,sequenceVisible:p}=t,g=F.calculateTextDimensions(h,Et(l)),f=Xt();f.x=r,f.y=c+10,f.width=i-r,f.class="messageText",f.dy="1em",f.text=h,f.fontFamily=l.messageFontFamily,f.fontSize=l.messageFontSize,f.fontWeight=l.messageFontWeight,f.anchor=l.messageAlign,f.valign="center",f.textMargin=l.wrapPadding,f.tspan=!1,z(f.text)?await Rt(e,f,{startx:r,stopx:i,starty:n}):vt(e,f);const y=g.width;let b;r===i?l.rightAngles?b=e.append("path").attr("d",`M ${r},${n} H ${r+I.getMax(l.width/2,y/2)} V ${n+25} H ${r}`):b=e.append("path").attr("d","M "+r+","+n+" C "+(r+60)+","+(n-10)+" "+(r+60)+","+(n+30)+" "+r+","+(n+20)):(b=e.append("line"),b.attr("x1",r),b.attr("y1",n),b.attr("x2",i),b.attr("y2",n)),o===s.db.LINETYPE.DOTTED||o===s.db.LINETYPE.DOTTED_CROSS||o===s.db.LINETYPE.DOTTED_POINT||o===s.db.LINETYPE.DOTTED_OPEN||o===s.db.LINETYPE.BIDIRECTIONAL_DOTTED?(b.style("stroke-dasharray","3, 3"),b.attr("class","messageLine1")):b.attr("class","messageLine0");let w="";l.arrowMarkerAbsolute&&(w=Oe(!0)),b.attr("stroke-width",2),b.attr("stroke","none"),b.style("fill","none"),(o===s.db.LINETYPE.SOLID||o===s.db.LINETYPE.DOTTED)&&b.attr("marker-end","url("+w+"#arrowhead)"),(o===s.db.LINETYPE.BIDIRECTIONAL_SOLID||o===s.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(b.attr("marker-start","url("+w+"#arrowhead)"),b.attr("marker-end","url("+w+"#arrowhead)")),(o===s.db.LINETYPE.SOLID_POINT||o===s.db.LINETYPE.DOTTED_POINT)&&b.attr("marker-end","url("+w+"#filled-head)"),(o===s.db.LINETYPE.SOLID_CROSS||o===s.db.LINETYPE.DOTTED_CROSS)&&b.attr("marker-end","url("+w+"#crosshead)"),(p||l.showSequenceNumbers)&&((o===s.db.LINETYPE.BIDIRECTIONAL_SOLID||o===s.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(rr&&(r=a.height),a.width+h.x>i&&(i=a.width+h.x)}return{maxHeight:r,maxWidth:i}},"drawActorsPopup"),ue=x(function(e){Le(l,e),e.fontFamily&&(l.actorFontFamily=l.noteFontFamily=l.messageFontFamily=e.fontFamily),e.fontSize&&(l.actorFontSize=l.noteFontSize=l.messageFontSize=e.fontSize),e.fontWeight&&(l.actorFontWeight=l.noteFontWeight=l.messageFontWeight=e.fontWeight)},"setConf"),Bt=x(function(e){return T.activations.filter(function(t){return t.actor===e})},"actorActivations"),ae=x(function(e,t){const n=t.get(e),s=Bt(e),r=s.reduce(function(c,h){return I.getMin(c,h.startx)},n.x+n.width/2-1),i=s.reduce(function(c,h){return I.getMax(c,h.stopx)},n.x+n.width/2+1);return[r,i]},"activationBounds");function nt(e,t,n,s,r){T.bumpVerticalPos(n);let i=s;if(t.id&&t.message&&e[t.id]){const c=e[t.id].width,h=Et(l);t.message=F.wrapLabel(`[${t.message}]`,c-2*l.wrapPadding,h),t.width=c,t.wrap=!0;const o=F.calculateTextDimensions(t.message,h),a=I.getMax(o.height,l.labelBoxHeight);i=s+a,Q.debug(`${a} - ${t.message}`)}r(t),T.bumpVerticalPos(i)}x(nt,"adjustLoopHeightForWrap");function ge(e,t,n,s,r,i,c){function h(p,g){p.x{E.add(L.from),E.add(L.to)}),b=b.filter(L=>E.has(L))}xs(a,p,g,b,0,w,!1);const C=await ms(w,p,M,s);V.insertArrowHead(a),V.insertArrowCrossHead(a),V.insertArrowFilledHead(a),V.insertSequenceNumber(a);function Y(E,L){const X=T.endActivation(E);X.starty+18>L&&(X.starty=L-6,L+=12),V.drawActivation(a,X,L,l,Bt(E.from).length),T.insert(X.startx,L-10,X.stopx,L)}x(Y,"activeEnd");let H=1,Z=1;const at=[],U=[];let G=0;for(const E of w){let L,X,tt;switch(E.type){case s.db.LINETYPE.NOTE:T.resetVerticalPos(),X=E.noteModel,await gs(a,X);break;case s.db.LINETYPE.ACTIVE_START:T.newActivation(E,a,p);break;case s.db.LINETYPE.ACTIVE_END:Y(E,T.getVerticalPos());break;case s.db.LINETYPE.LOOP_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D));break;case s.db.LINETYPE.LOOP_END:L=T.endLoop(),await V.drawLoop(a,L,"loop",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;case s.db.LINETYPE.RECT_START:nt(C,E,l.boxMargin,l.boxMargin,D=>T.newLoop(void 0,D.message));break;case s.db.LINETYPE.RECT_END:L=T.endLoop(),U.push(L),T.models.addLoop(L),T.bumpVerticalPos(L.stopy-T.getVerticalPos());break;case s.db.LINETYPE.OPT_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D));break;case s.db.LINETYPE.OPT_END:L=T.endLoop(),await V.drawLoop(a,L,"opt",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;case s.db.LINETYPE.ALT_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D));break;case s.db.LINETYPE.ALT_ELSE:nt(C,E,l.boxMargin+l.boxTextMargin,l.boxMargin,D=>T.addSectionToLoop(D));break;case s.db.LINETYPE.ALT_END:L=T.endLoop(),await V.drawLoop(a,L,"alt",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D)),T.saveVerticalPos();break;case s.db.LINETYPE.PAR_AND:nt(C,E,l.boxMargin+l.boxTextMargin,l.boxMargin,D=>T.addSectionToLoop(D));break;case s.db.LINETYPE.PAR_END:L=T.endLoop(),await V.drawLoop(a,L,"par",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;case s.db.LINETYPE.AUTONUMBER:H=E.message.start||H,Z=E.message.step||Z,E.message.visible?s.db.enableSequenceNumbers():s.db.disableSequenceNumbers();break;case s.db.LINETYPE.CRITICAL_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D));break;case s.db.LINETYPE.CRITICAL_OPTION:nt(C,E,l.boxMargin+l.boxTextMargin,l.boxMargin,D=>T.addSectionToLoop(D));break;case s.db.LINETYPE.CRITICAL_END:L=T.endLoop(),await V.drawLoop(a,L,"critical",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;case s.db.LINETYPE.BREAK_START:nt(C,E,l.boxMargin,l.boxMargin+l.boxTextMargin,D=>T.newLoop(D));break;case s.db.LINETYPE.BREAK_END:L=T.endLoop(),await V.drawLoop(a,L,"break",l),T.bumpVerticalPos(L.stopy-T.getVerticalPos()),T.models.addLoop(L);break;default:try{tt=E.msgModel,tt.starty=T.getVerticalPos(),tt.sequenceIndex=H,tt.sequenceVisible=s.db.showSequenceNumbers();const D=await de(a,tt);ge(E,tt,D,G,p,g,f),at.push({messageModel:tt,lineStartY:D}),T.models.addMessage(tt)}catch(D){Q.error("error while drawing message",D)}}[s.db.LINETYPE.SOLID_OPEN,s.db.LINETYPE.DOTTED_OPEN,s.db.LINETYPE.SOLID,s.db.LINETYPE.DOTTED,s.db.LINETYPE.SOLID_CROSS,s.db.LINETYPE.DOTTED_CROSS,s.db.LINETYPE.SOLID_POINT,s.db.LINETYPE.DOTTED_POINT,s.db.LINETYPE.BIDIRECTIONAL_SOLID,s.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(E.type)&&(H=H+Z),G++}Q.debug("createdActors",g),Q.debug("destroyedActors",f),await Kt(a,p,b,!1);for(const E of at)await fs(a,E.messageModel,E.lineStartY,s);l.mirrorActors&&await Kt(a,p,b,!0),U.forEach(E=>V.drawBackgroundRect(a,E)),ce(a,p,b,l);for(const E of T.models.boxes){E.height=T.getVerticalPos()-E.y,T.insert(E.x,E.y,E.x+E.width,E.height);const L=l.boxMargin*2;E.startx=E.x-L,E.starty=E.y-L*.25,E.stopx=E.startx+E.width+2*L,E.stopy=E.starty+E.height+L*.75,E.stroke="rgb(0,0,0, 0.5)",V.drawBox(a,E,l)}N&&T.bumpVerticalPos(l.boxMargin);const q=pe(a,p,b,o),{bounds:O}=T.getBounds();O.startx===void 0&&(O.startx=0),O.starty===void 0&&(O.starty=0),O.stopx===void 0&&(O.stopx=0),O.stopy===void 0&&(O.stopy=0);let $=O.stopy-O.starty;${const c=Et(l);let h=i.actorKeys.reduce((g,f)=>g+=e.get(f).width+(e.get(f).margin||0),0);const o=l.boxMargin*8;h+=o,h-=2*l.boxTextMargin,i.wrap&&(i.name=F.wrapLabel(i.name,h-2*l.wrapPadding,c));const a=F.calculateTextDimensions(i.name,c);r=I.getMax(a.height,r);const p=I.getMax(h,a.width+2*l.wrapPadding);if(i.margin=l.boxTextMargin,hi.textMaxHeight=r),I.getMax(s,l.height)}x(xe,"calculateActorMargins");var Es=x(async function(e,t,n){const s=t.get(e.from),r=t.get(e.to),i=s.x,c=r.x,h=e.wrap&&e.message;let o=z(e.message)?await Lt(e.message,st()):F.calculateTextDimensions(h?F.wrapLabel(e.message,l.width,mt(l)):e.message,mt(l));const a={width:h?l.width:I.getMax(l.width,o.width+2*l.noteMargin),height:0,startx:s.x,stopx:0,starty:0,stopy:0,message:e.message};return e.placement===n.db.PLACEMENT.RIGHTOF?(a.width=h?I.getMax(l.width,o.width):I.getMax(s.width/2+r.width/2,o.width+2*l.noteMargin),a.startx=i+(s.width+l.actorMargin)/2):e.placement===n.db.PLACEMENT.LEFTOF?(a.width=h?I.getMax(l.width,o.width+2*l.noteMargin):I.getMax(s.width/2+r.width/2,o.width+2*l.noteMargin),a.startx=i-a.width+(s.width-l.actorMargin)/2):e.to===e.from?(o=F.calculateTextDimensions(h?F.wrapLabel(e.message,I.getMax(l.width,s.width),mt(l)):e.message,mt(l)),a.width=h?I.getMax(l.width,s.width):I.getMax(s.width,l.width,o.width+2*l.noteMargin),a.startx=i+(s.width-a.width)/2):(a.width=Math.abs(i+s.width/2-(c+r.width/2))+l.actorMargin,a.startx=i2,g=x(w=>h?-w:w,"adjustValue");e.from===e.to?a=o:(e.activate&&!p&&(a+=g(l.activationWidth/2-1)),[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN].includes(e.type)||(a+=g(3)),[n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(e.type)&&(o-=g(3)));const f=[s,r,i,c],y=Math.abs(o-a);e.wrap&&e.message&&(e.message=F.wrapLabel(e.message,I.getMax(y+2*l.wrapPadding,l.width),Et(l)));const b=F.calculateTextDimensions(e.message,Et(l));return{width:I.getMax(e.wrap?0:b.width+2*l.wrapPadding,y+2*l.wrapPadding,l.width),height:0,startx:o,stopx:a,starty:0,stopy:0,message:e.message,type:e.type,wrap:e.wrap,fromBounds:Math.min.apply(null,f),toBounds:Math.max.apply(null,f)}},"buildMessageModel"),ms=x(async function(e,t,n,s){const r={},i=[];let c,h,o;for(const a of e){switch(a.type){case s.db.LINETYPE.LOOP_START:case s.db.LINETYPE.ALT_START:case s.db.LINETYPE.OPT_START:case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:case s.db.LINETYPE.CRITICAL_START:case s.db.LINETYPE.BREAK_START:i.push({id:a.id,msg:a.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case s.db.LINETYPE.ALT_ELSE:case s.db.LINETYPE.PAR_AND:case s.db.LINETYPE.CRITICAL_OPTION:a.message&&(c=i.pop(),r[c.id]=c,r[a.id]=c,i.push(c));break;case s.db.LINETYPE.LOOP_END:case s.db.LINETYPE.ALT_END:case s.db.LINETYPE.OPT_END:case s.db.LINETYPE.PAR_END:case s.db.LINETYPE.CRITICAL_END:case s.db.LINETYPE.BREAK_END:c=i.pop(),r[c.id]=c;break;case s.db.LINETYPE.ACTIVE_START:{const g=t.get(a.from?a.from:a.to.actor),f=Bt(a.from?a.from:a.to.actor).length,y=g.x+g.width/2+(f-1)*l.activationWidth/2,b={startx:y,stopx:y+l.activationWidth,actor:a.from,enabled:!0};T.activations.push(b)}break;case s.db.LINETYPE.ACTIVE_END:{const g=T.activations.map(f=>f.actor).lastIndexOf(a.from);T.activations.splice(g,1).splice(0,1)}break}a.placement!==void 0?(h=await Es(a,t,s),a.noteModel=h,i.forEach(g=>{c=g,c.from=I.getMin(c.from,h.startx),c.to=I.getMax(c.to,h.startx+h.width),c.width=I.getMax(c.width,Math.abs(c.from-c.to))-l.labelBoxWidth})):(o=bs(a,t,s),a.msgModel=o,o.startx&&o.stopx&&i.length>0&&i.forEach(g=>{if(c=g,o.startx===o.stopx){const f=t.get(a.from),y=t.get(a.to);c.from=I.getMin(f.x-o.width/2,f.x-f.width/2,c.from),c.to=I.getMax(y.x+o.width/2,y.x+f.width/2,c.to),c.width=I.getMax(c.width,Math.abs(c.to-c.from))-l.labelBoxWidth}else c.from=I.getMin(o.startx,c.from),c.to=I.getMax(o.stopx,c.to),c.width=I.getMax(c.width,o.width)-l.labelBoxWidth}))}return T.activations=[],Q.debug("Loop type widths:",r),r},"calculateLoopBounds"),ws={bounds:T,drawActors:Kt,drawActorsPopup:pe,setConf:ue,draw:ys},As={parser:Ve,get db(){return new qe},renderer:ws,styles:He,init:x(e=>{e.sequence||(e.sequence={}),e.wrap&&(e.sequence.wrap=e.wrap,Ie({sequence:{wrap:e.wrap}}))},"init")};export{As as diagram}; +//# sourceMappingURL=sequenceDiagram-C3RYC4MD.js.map diff --git a/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js.map b/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js.map new file mode 100644 index 000000000000..5167de4a521f --- /dev/null +++ b/extensions/continue/gui/assets/sequenceDiagram-C3RYC4MD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceDiagram-C3RYC4MD.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-C3RYC4MD.mjs"],"sourcesContent":["import {\n drawBackgroundRect,\n drawEmbeddedImage,\n drawImage,\n drawRect,\n getNoteRect,\n getTextObj\n} from \"./chunk-TZMSLE5B.mjs\";\nimport {\n JSON_SCHEMA,\n load\n} from \"./chunk-ZPAFE4SF.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-QZHKN3VN.mjs\";\nimport {\n ZERO_WIDTH_SPACE,\n parseFontSize,\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n assignWithDepth_default,\n calculateMathMLDimensions,\n clear,\n common_default,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n getUrl,\n hasKatex,\n renderKatexSanitized,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setConfig2 as setConfig,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/sequence/parser/sequenceDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 60, 61, 62, 63, 71], $Vy = [2, 71], $Vz = [4, 5, 16, 50, 52, 53], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 55, 60, 61, 62, 63, 71], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 55, 60, 61, 62, 63, 71], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 55, 60, 61, 62, 63, 71], $VD = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 55, 60, 61, 62, 63, 71], $VE = [69, 70, 71], $VF = [1, 127];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NEWLINE\": 5, \"SD\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"box_section\": 10, \"box_line\": 11, \"participant_statement\": 12, \"create\": 13, \"box\": 14, \"restOfLine\": 15, \"end\": 16, \"signal\": 17, \"autonumber\": 18, \"NUM\": 19, \"off\": 20, \"activate\": 21, \"actor\": 22, \"deactivate\": 23, \"note_statement\": 24, \"links_statement\": 25, \"link_statement\": 26, \"properties_statement\": 27, \"details_statement\": 28, \"title\": 29, \"legacy_title\": 30, \"acc_title\": 31, \"acc_title_value\": 32, \"acc_descr\": 33, \"acc_descr_value\": 34, \"acc_descr_multiline_value\": 35, \"loop\": 36, \"rect\": 37, \"opt\": 38, \"alt\": 39, \"else_sections\": 40, \"par\": 41, \"par_sections\": 42, \"par_over\": 43, \"critical\": 44, \"option_sections\": 45, \"break\": 46, \"option\": 47, \"and\": 48, \"else\": 49, \"participant\": 50, \"AS\": 51, \"participant_actor\": 52, \"destroy\": 53, \"actor_with_config\": 54, \"note\": 55, \"placement\": 56, \"text2\": 57, \"over\": 58, \"actor_pair\": 59, \"links\": 60, \"link\": 61, \"properties\": 62, \"details\": 63, \"spaceList\": 64, \",\": 65, \"left_of\": 66, \"right_of\": 67, \"signaltype\": 68, \"+\": 69, \"-\": 70, \"ACTOR\": 71, \"config_object\": 72, \"CONFIG_START\": 73, \"CONFIG_CONTENT\": 74, \"CONFIG_END\": 75, \"SOLID_OPEN_ARROW\": 76, \"DOTTED_OPEN_ARROW\": 77, \"SOLID_ARROW\": 78, \"BIDIRECTIONAL_SOLID_ARROW\": 79, \"DOTTED_ARROW\": 80, \"BIDIRECTIONAL_DOTTED_ARROW\": 81, \"SOLID_CROSS\": 82, \"DOTTED_CROSS\": 83, \"SOLID_POINT\": 84, \"DOTTED_POINT\": 85, \"TXT\": 86, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NEWLINE\", 6: \"SD\", 13: \"create\", 14: \"box\", 15: \"restOfLine\", 16: \"end\", 18: \"autonumber\", 19: \"NUM\", 20: \"off\", 21: \"activate\", 23: \"deactivate\", 29: \"title\", 30: \"legacy_title\", 31: \"acc_title\", 32: \"acc_title_value\", 33: \"acc_descr\", 34: \"acc_descr_value\", 35: \"acc_descr_multiline_value\", 36: \"loop\", 37: \"rect\", 38: \"opt\", 39: \"alt\", 41: \"par\", 43: \"par_over\", 44: \"critical\", 46: \"break\", 47: \"option\", 48: \"and\", 49: \"else\", 50: \"participant\", 51: \"AS\", 52: \"participant_actor\", 53: \"destroy\", 55: \"note\", 58: \"over\", 60: \"links\", 61: \"link\", 62: \"properties\", 63: \"details\", 65: \",\", 66: \"left_of\", 67: \"right_of\", 69: \"+\", 70: \"-\", 71: \"ACTOR\", 73: \"CONFIG_START\", 74: \"CONFIG_CONTENT\", 75: \"CONFIG_END\", 76: \"SOLID_OPEN_ARROW\", 77: \"DOTTED_OPEN_ARROW\", 78: \"SOLID_ARROW\", 79: \"BIDIRECTIONAL_SOLID_ARROW\", 80: \"DOTTED_ARROW\", 81: \"BIDIRECTIONAL_DOTTED_ARROW\", 82: \"SOLID_CROSS\", 83: \"DOTTED_CROSS\", 84: \"SOLID_POINT\", 85: \"DOTTED_POINT\", 86: \"TXT\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [64, 2], [64, 1], [59, 3], [59, 1], [56, 1], [56, 1], [17, 5], [17, 5], [17, 4], [54, 2], [72, 3], [22, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [68, 1], [57, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.apply($$[$0]);\n return $$[$0];\n break;\n case 4:\n case 9:\n this.$ = [];\n break;\n case 5:\n case 10:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 6:\n case 7:\n case 11:\n case 12:\n this.$ = $$[$0];\n break;\n case 8:\n case 13:\n this.$ = [];\n break;\n case 15:\n $$[$0].type = \"createParticipant\";\n this.$ = $$[$0];\n break;\n case 16:\n $$[$0 - 1].unshift({ type: \"boxStart\", boxData: yy.parseBoxData($$[$0 - 2]) });\n $$[$0 - 1].push({ type: \"boxEnd\", boxText: $$[$0 - 2] });\n this.$ = $$[$0 - 1];\n break;\n case 18:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 19:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 20:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 21:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 22:\n this.$ = { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1].actor };\n break;\n case 23:\n this.$ = { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1].actor };\n break;\n case 29:\n yy.setDiagramTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 30:\n yy.setDiagramTitle($$[$0].substring(7));\n this.$ = $$[$0].substring(7);\n break;\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 32:\n case 33:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 34:\n $$[$0 - 1].unshift({ type: \"loopStart\", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });\n $$[$0 - 1].push({ type: \"loopEnd\", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });\n this.$ = $$[$0 - 1];\n break;\n case 35:\n $$[$0 - 1].unshift({ type: \"rectStart\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });\n $$[$0 - 1].push({ type: \"rectEnd\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });\n this.$ = $$[$0 - 1];\n break;\n case 36:\n $$[$0 - 1].unshift({ type: \"optStart\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });\n $$[$0 - 1].push({ type: \"optEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });\n this.$ = $$[$0 - 1];\n break;\n case 37:\n $$[$0 - 1].unshift({ type: \"altStart\", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });\n $$[$0 - 1].push({ type: \"altEnd\", signalType: yy.LINETYPE.ALT_END });\n this.$ = $$[$0 - 1];\n break;\n case 38:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 39:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 40:\n $$[$0 - 1].unshift({ type: \"criticalStart\", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });\n $$[$0 - 1].push({ type: \"criticalEnd\", signalType: yy.LINETYPE.CRITICAL_END });\n this.$ = $$[$0 - 1];\n break;\n case 41:\n $$[$0 - 1].unshift({ type: \"breakStart\", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });\n $$[$0 - 1].push({ type: \"breakEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });\n this.$ = $$[$0 - 1];\n break;\n case 43:\n this.$ = $$[$0 - 3].concat([{ type: \"option\", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);\n break;\n case 45:\n this.$ = $$[$0 - 3].concat([{ type: \"and\", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);\n break;\n case 47:\n this.$ = $$[$0 - 3].concat([{ type: \"else\", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);\n break;\n case 48:\n $$[$0 - 3].draw = \"participant\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 49:\n $$[$0 - 1].draw = \"participant\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 50:\n $$[$0 - 3].draw = \"actor\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 51:\n $$[$0 - 1].draw = \"actor\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 52:\n $$[$0 - 1].type = \"destroyParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 53:\n $$[$0 - 1].draw = \"participant\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 54:\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 55:\n $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);\n $$[$0 - 2][0] = $$[$0 - 2][0].actor;\n $$[$0 - 2][1] = $$[$0 - 2][1].actor;\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];\n break;\n case 56:\n this.$ = [$$[$0 - 1], { type: \"addLinks\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 57:\n this.$ = [$$[$0 - 1], { type: \"addALink\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 58:\n this.$ = [$$[$0 - 1], { type: \"addProperties\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 59:\n this.$ = [$$[$0 - 1], { type: \"addDetails\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 62:\n this.$ = [$$[$0 - 2], $$[$0]];\n break;\n case 63:\n this.$ = $$[$0];\n break;\n case 64:\n this.$ = yy.PLACEMENT.LEFTOF;\n break;\n case 65:\n this.$ = yy.PLACEMENT.RIGHTOF;\n break;\n case 66:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true },\n { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1].actor }\n ];\n break;\n case 67:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },\n { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4].actor }\n ];\n break;\n case 68:\n this.$ = [$$[$0 - 3], $$[$0 - 1], { type: \"addMessage\", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];\n break;\n case 69:\n this.$ = {\n type: \"addParticipant\",\n actor: $$[$0 - 1],\n config: $$[$0]\n };\n break;\n case 70:\n this.$ = $$[$0 - 1].trim();\n break;\n case 71:\n this.$ = { type: \"addParticipant\", actor: $$[$0] };\n break;\n case 72:\n this.$ = yy.LINETYPE.SOLID_OPEN;\n break;\n case 73:\n this.$ = yy.LINETYPE.DOTTED_OPEN;\n break;\n case 74:\n this.$ = yy.LINETYPE.SOLID;\n break;\n case 75:\n this.$ = yy.LINETYPE.BIDIRECTIONAL_SOLID;\n break;\n case 76:\n this.$ = yy.LINETYPE.DOTTED;\n break;\n case 77:\n this.$ = yy.LINETYPE.BIDIRECTIONAL_DOTTED;\n break;\n case 78:\n this.$ = yy.LINETYPE.SOLID_CROSS;\n break;\n case 79:\n this.$ = yy.LINETYPE.DOTTED_CROSS;\n break;\n case 80:\n this.$ = yy.LINETYPE.SOLID_POINT;\n break;\n case 81:\n this.$ = yy.LINETYPE.DOTTED_POINT;\n break;\n case 82:\n this.$ = yy.parseMessage($$[$0].trim().substring(1));\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 55, 60, 61, 62, 63, 71], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 71: $Vw }, { 22: 55, 71: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 54: 72, 71: [1, 73] }, { 22: 74, 71: $Vw }, { 22: 75, 71: $Vw }, { 68: 76, 76: [1, 77], 77: [1, 78], 78: [1, 79], 79: [1, 80], 80: [1, 81], 81: [1, 82], 82: [1, 83], 83: [1, 84], 84: [1, 85], 85: [1, 86] }, { 56: 87, 58: [1, 88], 66: [1, 89], 67: [1, 90] }, { 22: 91, 71: $Vw }, { 22: 92, 71: $Vw }, { 22: 93, 71: $Vw }, { 22: 94, 71: $Vw }, o([5, 51, 65, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], $Vy), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vz, [2, 9], { 10: 95 }), o($Vx, [2, 17]), { 5: [1, 97], 19: [1, 96] }, { 5: [1, 98] }, o($Vx, [2, 21]), { 5: [1, 99] }, { 5: [1, 100] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($VA, $V3, { 7: 101 }), o($VA, $V3, { 7: 102 }), o($VA, $V3, { 7: 103 }), o($VB, $V3, { 40: 104, 7: 105 }), o($VC, $V3, { 42: 106, 7: 107 }), o($VC, $V3, { 7: 107, 42: 108 }), o($VD, $V3, { 45: 109, 7: 110 }), o($VA, $V3, { 7: 111 }), { 5: [1, 113], 51: [1, 112] }, { 5: [1, 114] }, o([5, 51], $Vy, { 72: 115, 73: [1, 116] }), { 5: [1, 118], 51: [1, 117] }, { 5: [1, 119] }, { 22: 122, 69: [1, 120], 70: [1, 121], 71: $Vw }, o($VE, [2, 72]), o($VE, [2, 73]), o($VE, [2, 74]), o($VE, [2, 75]), o($VE, [2, 76]), o($VE, [2, 77]), o($VE, [2, 78]), o($VE, [2, 79]), o($VE, [2, 80]), o($VE, [2, 81]), { 22: 123, 71: $Vw }, { 22: 125, 59: 124, 71: $Vw }, { 71: [2, 64] }, { 71: [2, 65] }, { 57: 126, 86: $VF }, { 57: 128, 86: $VF }, { 57: 129, 86: $VF }, { 57: 130, 86: $VF }, { 4: [1, 133], 5: [1, 135], 11: 132, 12: 134, 16: [1, 131], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 136] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 137], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 138], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 139], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 16: [1, 140] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 141], 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 16: [1, 142] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 143], 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 16: [1, 144] }, { 16: [1, 145] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 146], 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 147], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 55: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 71: $Vw }, { 15: [1, 148] }, o($Vx, [2, 49]), o($Vx, [2, 53]), { 5: [2, 69] }, { 74: [1, 149] }, { 15: [1, 150] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 151, 71: $Vw }, { 22: 152, 71: $Vw }, { 57: 153, 86: $VF }, { 57: 154, 86: $VF }, { 57: 155, 86: $VF }, { 65: [1, 156], 86: [2, 63] }, { 5: [2, 56] }, { 5: [2, 82] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [2, 59] }, o($Vx, [2, 16]), o($Vz, [2, 10]), { 12: 157, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vz, [2, 12]), o($Vz, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 158] }, o($Vx, [2, 38]), { 15: [1, 159] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 160] }, o($Vx, [2, 41]), { 5: [1, 161] }, { 75: [1, 162] }, { 5: [1, 163] }, { 57: 164, 86: $VF }, { 57: 165, 86: $VF }, { 5: [2, 68] }, { 5: [2, 54] }, { 5: [2, 55] }, { 22: 166, 71: $Vw }, o($Vz, [2, 11]), o($VB, $V3, { 7: 105, 40: 167 }), o($VC, $V3, { 7: 107, 42: 168 }), o($VD, $V3, { 7: 110, 45: 169 }), o($Vx, [2, 48]), { 5: [2, 70] }, o($Vx, [2, 50]), { 5: [2, 66] }, { 5: [2, 67] }, { 86: [2, 62] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }],\n defaultActions: { 5: [2, 1], 6: [2, 2], 89: [2, 64], 90: [2, 65], 115: [2, 69], 126: [2, 56], 127: [2, 82], 128: [2, 57], 129: [2, 58], 130: [2, 59], 153: [2, 68], 154: [2, 54], 155: [2, 55], 162: [2, 70], 164: [2, 66], 165: [2, 67], 166: [2, 62], 167: [2, 47], 168: [2, 45], 169: [2, 43] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n return 5;\n break;\n case 1:\n break;\n case 2:\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n break;\n case 6:\n return 19;\n break;\n case 7:\n this.begin(\"CONFIG\");\n return 73;\n break;\n case 8:\n return 74;\n break;\n case 9:\n this.popState();\n this.popState();\n return 75;\n break;\n case 10:\n yy_.yytext = yy_.yytext.trim();\n return 71;\n break;\n case 11:\n yy_.yytext = yy_.yytext.trim();\n this.begin(\"ALIAS\");\n return 71;\n break;\n case 12:\n this.begin(\"LINE\");\n return 14;\n break;\n case 13:\n this.begin(\"ID\");\n return 50;\n break;\n case 14:\n this.begin(\"ID\");\n return 52;\n break;\n case 15:\n return 13;\n break;\n case 16:\n this.begin(\"ID\");\n return 53;\n break;\n case 17:\n yy_.yytext = yy_.yytext.trim();\n this.begin(\"ALIAS\");\n return 71;\n break;\n case 18:\n this.popState();\n this.popState();\n this.begin(\"LINE\");\n return 51;\n break;\n case 19:\n this.popState();\n this.popState();\n return 5;\n break;\n case 20:\n this.begin(\"LINE\");\n return 36;\n break;\n case 21:\n this.begin(\"LINE\");\n return 37;\n break;\n case 22:\n this.begin(\"LINE\");\n return 38;\n break;\n case 23:\n this.begin(\"LINE\");\n return 39;\n break;\n case 24:\n this.begin(\"LINE\");\n return 49;\n break;\n case 25:\n this.begin(\"LINE\");\n return 41;\n break;\n case 26:\n this.begin(\"LINE\");\n return 43;\n break;\n case 27:\n this.begin(\"LINE\");\n return 48;\n break;\n case 28:\n this.begin(\"LINE\");\n return 44;\n break;\n case 29:\n this.begin(\"LINE\");\n return 47;\n break;\n case 30:\n this.begin(\"LINE\");\n return 46;\n break;\n case 31:\n this.popState();\n return 15;\n break;\n case 32:\n return 16;\n break;\n case 33:\n return 66;\n break;\n case 34:\n return 67;\n break;\n case 35:\n return 60;\n break;\n case 36:\n return 61;\n break;\n case 37:\n return 62;\n break;\n case 38:\n return 63;\n break;\n case 39:\n return 58;\n break;\n case 40:\n return 55;\n break;\n case 41:\n this.begin(\"ID\");\n return 21;\n break;\n case 42:\n this.begin(\"ID\");\n return 23;\n break;\n case 43:\n return 29;\n break;\n case 44:\n return 30;\n break;\n case 45:\n this.begin(\"acc_title\");\n return 31;\n break;\n case 46:\n this.popState();\n return \"acc_title_value\";\n break;\n case 47:\n this.begin(\"acc_descr\");\n return 33;\n break;\n case 48:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 49:\n this.begin(\"acc_descr_multiline\");\n break;\n case 50:\n this.popState();\n break;\n case 51:\n return \"acc_descr_multiline_value\";\n break;\n case 52:\n return 6;\n break;\n case 53:\n return 18;\n break;\n case 54:\n return 20;\n break;\n case 55:\n return 65;\n break;\n case 56:\n return 5;\n break;\n case 57:\n yy_.yytext = yy_.yytext.trim();\n return 71;\n break;\n case 58:\n return 78;\n break;\n case 59:\n return 79;\n break;\n case 60:\n return 80;\n break;\n case 61:\n return 81;\n break;\n case 62:\n return 76;\n break;\n case 63:\n return 77;\n break;\n case 64:\n return 82;\n break;\n case 65:\n return 83;\n break;\n case 66:\n return 84;\n break;\n case 67:\n return 85;\n break;\n case 68:\n return 86;\n break;\n case 69:\n return 86;\n break;\n case 70:\n return 69;\n break;\n case 71:\n return 70;\n break;\n case 72:\n return 5;\n break;\n case 73:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[0-9]+(?=[ \\n]+))/i, /^(?:@\\{)/i, /^(?:[^\\}]+)/i, /^(?:\\})/i, /^(?:[^\\<->\\->:\\n,;@\\s]+(?=@\\{))/i, /^(?:[^\\<->\\->:\\n,;@]+?([\\-]*[^\\<->\\->:\\n,;@]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i, /^(?:box\\b)/i, /^(?:participant\\b)/i, /^(?:actor\\b)/i, /^(?:create\\b)/i, /^(?:destroy\\b)/i, /^(?:[^<\\->\\->:\\n,;]+?([\\-]*[^<\\->\\->:\\n,;]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i, /^(?:as\\b)/i, /^(?:(?:))/i, /^(?:loop\\b)/i, /^(?:rect\\b)/i, /^(?:opt\\b)/i, /^(?:alt\\b)/i, /^(?:else\\b)/i, /^(?:par\\b)/i, /^(?:par_over\\b)/i, /^(?:and\\b)/i, /^(?:critical\\b)/i, /^(?:option\\b)/i, /^(?:break\\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i, /^(?:end\\b)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:links\\b)/i, /^(?:link\\b)/i, /^(?:properties\\b)/i, /^(?:details\\b)/i, /^(?:over\\b)/i, /^(?:note\\b)/i, /^(?:activate\\b)/i, /^(?:deactivate\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:title:\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:sequenceDiagram\\b)/i, /^(?:autonumber\\b)/i, /^(?:off\\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^+<\\->\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+<\\->\\->:\\n,;]+)*)/i, /^(?:->>)/i, /^(?:<<->>)/i, /^(?:-->>)/i, /^(?:<<-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\\)])/i, /^(?:--[\\)])/i, /^(?::(?:(?:no)?wrap)?[^#\\n;]*)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [50, 51], \"inclusive\": false }, \"acc_descr\": { \"rules\": [48], \"inclusive\": false }, \"acc_title\": { \"rules\": [46], \"inclusive\": false }, \"ID\": { \"rules\": [2, 3, 7, 10, 11, 17], \"inclusive\": false }, \"ALIAS\": { \"rules\": [2, 3, 18, 19], \"inclusive\": false }, \"LINE\": { \"rules\": [2, 3, 31], \"inclusive\": false }, \"CONFIG\": { \"rules\": [8, 9], \"inclusive\": false }, \"CONFIG_DATA\": { \"rules\": [], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 4, 5, 6, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar sequenceDiagram_default = parser;\n\n// src/diagrams/sequence/sequenceDb.ts\nvar LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n AUTONUMBER: 26,\n CRITICAL_START: 27,\n CRITICAL_OPTION: 28,\n CRITICAL_END: 29,\n BREAK_START: 30,\n BREAK_END: 31,\n PAR_OVER_START: 32,\n BIDIRECTIONAL_SOLID: 33,\n BIDIRECTIONAL_DOTTED: 34\n};\nvar ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nvar PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nvar PARTICIPANT_TYPE = {\n ACTOR: \"actor\",\n BOUNDARY: \"boundary\",\n COLLECTIONS: \"collections\",\n CONTROL: \"control\",\n DATABASE: \"database\",\n ENTITY: \"entity\",\n PARTICIPANT: \"participant\",\n QUEUE: \"queue\"\n};\nvar SequenceDB = class {\n constructor() {\n this.state = new ImperativeState(() => ({\n prevActor: void 0,\n actors: /* @__PURE__ */ new Map(),\n createdActors: /* @__PURE__ */ new Map(),\n destroyedActors: /* @__PURE__ */ new Map(),\n boxes: [],\n messages: [],\n notes: [],\n sequenceNumbersEnabled: false,\n wrapEnabled: void 0,\n currentBox: void 0,\n lastCreated: void 0,\n lastDestroyed: void 0\n }));\n this.setAccTitle = setAccTitle;\n this.setAccDescription = setAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getAccTitle = getAccTitle;\n this.getAccDescription = getAccDescription;\n this.getDiagramTitle = getDiagramTitle;\n this.apply = this.apply.bind(this);\n this.parseBoxData = this.parseBoxData.bind(this);\n this.parseMessage = this.parseMessage.bind(this);\n this.clear();\n this.setWrap(getConfig2().wrap);\n this.LINETYPE = LINETYPE;\n this.ARROWTYPE = ARROWTYPE;\n this.PLACEMENT = PLACEMENT;\n }\n static {\n __name(this, \"SequenceDB\");\n }\n addBox(data) {\n this.state.records.boxes.push({\n name: data.text,\n wrap: data.wrap ?? this.autoWrap(),\n fill: data.color,\n actorKeys: []\n });\n this.state.records.currentBox = this.state.records.boxes.slice(-1)[0];\n }\n addActor(id, name, description, type, metadata) {\n let assignedBox = this.state.records.currentBox;\n let doc;\n if (metadata !== void 0) {\n let yamlData;\n if (!metadata.includes(\"\\n\")) {\n yamlData = \"{\\n\" + metadata + \"\\n}\";\n } else {\n yamlData = metadata + \"\\n\";\n }\n doc = load(yamlData, { schema: JSON_SCHEMA });\n }\n type = doc?.type ?? type;\n const old = this.state.records.actors.get(id);\n if (old) {\n if (this.state.records.currentBox && old.box && this.state.records.currentBox !== old.box) {\n throw new Error(\n `A same participant should only be defined in one Box: ${old.name} can't be in '${old.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`\n );\n }\n assignedBox = old.box ? old.box : this.state.records.currentBox;\n old.box = assignedBox;\n if (old && name === old.name && description == null) {\n return;\n }\n }\n if (description?.text == null) {\n description = { text: name, type };\n }\n if (type == null || description.text == null) {\n description = { text: name, type };\n }\n this.state.records.actors.set(id, {\n box: assignedBox,\n name,\n description: description.text,\n wrap: description.wrap ?? this.autoWrap(),\n prevActor: this.state.records.prevActor,\n links: {},\n properties: {},\n actorCnt: null,\n rectData: null,\n type: type ?? \"participant\"\n });\n if (this.state.records.prevActor) {\n const prevActorInRecords = this.state.records.actors.get(this.state.records.prevActor);\n if (prevActorInRecords) {\n prevActorInRecords.nextActor = id;\n }\n }\n if (this.state.records.currentBox) {\n this.state.records.currentBox.actorKeys.push(id);\n }\n this.state.records.prevActor = id;\n }\n activationCount(part) {\n let i;\n let count = 0;\n if (!part) {\n return 0;\n }\n for (i = 0; i < this.state.records.messages.length; i++) {\n if (this.state.records.messages[i].type === this.LINETYPE.ACTIVE_START && this.state.records.messages[i].from === part) {\n count++;\n }\n if (this.state.records.messages[i].type === this.LINETYPE.ACTIVE_END && this.state.records.messages[i].from === part) {\n count--;\n }\n }\n return count;\n }\n addMessage(idFrom, idTo, message, answer) {\n this.state.records.messages.push({\n id: this.state.records.messages.length.toString(),\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap ?? this.autoWrap(),\n answer\n });\n }\n addSignal(idFrom, idTo, message, messageType, activate = false) {\n if (messageType === this.LINETYPE.ACTIVE_END) {\n const cnt = this.activationCount(idFrom ?? \"\");\n if (cnt < 1) {\n const error = new Error(\"Trying to inactivate an inactive participant (\" + idFrom + \")\");\n error.hash = {\n text: \"->>-\",\n token: \"->>-\",\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"'ACTIVE_PARTICIPANT'\"]\n };\n throw error;\n }\n }\n this.state.records.messages.push({\n id: this.state.records.messages.length.toString(),\n from: idFrom,\n to: idTo,\n message: message?.text ?? \"\",\n wrap: message?.wrap ?? this.autoWrap(),\n type: messageType,\n activate\n });\n return true;\n }\n hasAtLeastOneBox() {\n return this.state.records.boxes.length > 0;\n }\n hasAtLeastOneBoxWithTitle() {\n return this.state.records.boxes.some((b) => b.name);\n }\n getMessages() {\n return this.state.records.messages;\n }\n getBoxes() {\n return this.state.records.boxes;\n }\n getActors() {\n return this.state.records.actors;\n }\n getCreatedActors() {\n return this.state.records.createdActors;\n }\n getDestroyedActors() {\n return this.state.records.destroyedActors;\n }\n getActor(id) {\n return this.state.records.actors.get(id);\n }\n getActorKeys() {\n return [...this.state.records.actors.keys()];\n }\n enableSequenceNumbers() {\n this.state.records.sequenceNumbersEnabled = true;\n }\n disableSequenceNumbers() {\n this.state.records.sequenceNumbersEnabled = false;\n }\n showSequenceNumbers() {\n return this.state.records.sequenceNumbersEnabled;\n }\n setWrap(wrapSetting) {\n this.state.records.wrapEnabled = wrapSetting;\n }\n extractWrap(text) {\n if (text === void 0) {\n return {};\n }\n text = text.trim();\n const wrap = /^:?wrap:/.exec(text) !== null ? true : /^:?nowrap:/.exec(text) !== null ? false : void 0;\n const cleanedText = (wrap === void 0 ? text : text.replace(/^:?(?:no)?wrap:/, \"\")).trim();\n return { cleanedText, wrap };\n }\n autoWrap() {\n if (this.state.records.wrapEnabled !== void 0) {\n return this.state.records.wrapEnabled;\n }\n return getConfig2().sequence?.wrap ?? false;\n }\n clear() {\n this.state.reset();\n clear();\n }\n parseMessage(str) {\n const trimmedStr = str.trim();\n const { wrap, cleanedText } = this.extractWrap(trimmedStr);\n const message = {\n text: cleanedText,\n wrap\n };\n log.debug(`parseMessage: ${JSON.stringify(message)}`);\n return message;\n }\n // We expect the box statement to be color first then description\n // The color can be rgb,rgba,hsl,hsla, or css code names #hex codes are not supported for now because of the way the char # is handled\n // We extract first segment as color, the rest of the line is considered as text\n parseBoxData(str) {\n const match = /^((?:rgba?|hsla?)\\s*\\(.*\\)|\\w*)(.*)$/.exec(str);\n let color = match?.[1] ? match[1].trim() : \"transparent\";\n let title = match?.[2] ? match[2].trim() : void 0;\n if (window?.CSS) {\n if (!window.CSS.supports(\"color\", color)) {\n color = \"transparent\";\n title = str.trim();\n }\n } else {\n const style = new Option().style;\n style.color = color;\n if (style.color !== color) {\n color = \"transparent\";\n title = str.trim();\n }\n }\n const { wrap, cleanedText } = this.extractWrap(title);\n return {\n text: cleanedText ? sanitizeText(cleanedText, getConfig2()) : void 0,\n color,\n wrap\n };\n }\n addNote(actor, placement, message) {\n const note = {\n actor,\n placement,\n message: message.text,\n wrap: message.wrap ?? this.autoWrap()\n };\n const actors = [].concat(actor, actor);\n this.state.records.notes.push(note);\n this.state.records.messages.push({\n id: this.state.records.messages.length.toString(),\n from: actors[0],\n to: actors[1],\n message: message.text,\n wrap: message.wrap ?? this.autoWrap(),\n type: this.LINETYPE.NOTE,\n placement\n });\n }\n addLinks(actorId, text) {\n const actor = this.getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig2());\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n const links = JSON.parse(sanitizedText);\n this.insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n }\n addALink(actorId, text) {\n const actor = this.getActor(actorId);\n try {\n const links = {};\n let sanitizedText = sanitizeText(text.text, getConfig2());\n const sep = sanitizedText.indexOf(\"@\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n const label = sanitizedText.slice(0, sep - 1).trim();\n const link = sanitizedText.slice(sep + 1).trim();\n links[label] = link;\n this.insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n }\n insertLinks(actor, links) {\n if (actor.links == null) {\n actor.links = links;\n } else {\n for (const key in links) {\n actor.links[key] = links[key];\n }\n }\n }\n addProperties(actorId, text) {\n const actor = this.getActor(actorId);\n try {\n const sanitizedText = sanitizeText(text.text, getConfig2());\n const properties = JSON.parse(sanitizedText);\n this.insertProperties(actor, properties);\n } catch (e) {\n log.error(\"error while parsing actor properties text\", e);\n }\n }\n insertProperties(actor, properties) {\n if (actor.properties == null) {\n actor.properties = properties;\n } else {\n for (const key in properties) {\n actor.properties[key] = properties[key];\n }\n }\n }\n boxEnd() {\n this.state.records.currentBox = void 0;\n }\n addDetails(actorId, text) {\n const actor = this.getActor(actorId);\n const elem = document.getElementById(text.text);\n try {\n const text2 = elem.innerHTML;\n const details = JSON.parse(text2);\n if (details.properties) {\n this.insertProperties(actor, details.properties);\n }\n if (details.links) {\n this.insertLinks(actor, details.links);\n }\n } catch (e) {\n log.error(\"error while parsing actor details text\", e);\n }\n }\n getActorProperty(actor, key) {\n if (actor?.properties !== void 0) {\n return actor.properties[key];\n }\n return void 0;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-redundant-type-constituents\n apply(param) {\n if (Array.isArray(param)) {\n param.forEach((item) => {\n this.apply(item);\n });\n } else {\n switch (param.type) {\n case \"sequenceIndex\":\n this.state.records.messages.push({\n id: this.state.records.messages.length.toString(),\n from: void 0,\n to: void 0,\n message: {\n start: param.sequenceIndex,\n step: param.sequenceIndexStep,\n visible: param.sequenceVisible\n },\n wrap: false,\n type: param.signalType\n });\n break;\n case \"addParticipant\":\n this.addActor(param.actor, param.actor, param.description, param.draw, param.config);\n break;\n case \"createParticipant\":\n if (this.state.records.actors.has(param.actor)) {\n throw new Error(\n \"It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior\"\n );\n }\n this.state.records.lastCreated = param.actor;\n this.addActor(param.actor, param.actor, param.description, param.draw, param.config);\n this.state.records.createdActors.set(param.actor, this.state.records.messages.length);\n break;\n case \"destroyParticipant\":\n this.state.records.lastDestroyed = param.actor;\n this.state.records.destroyedActors.set(param.actor, this.state.records.messages.length);\n break;\n case \"activeStart\":\n this.addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"activeEnd\":\n this.addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"addNote\":\n this.addNote(param.actor, param.placement, param.text);\n break;\n case \"addLinks\":\n this.addLinks(param.actor, param.text);\n break;\n case \"addALink\":\n this.addALink(param.actor, param.text);\n break;\n case \"addProperties\":\n this.addProperties(param.actor, param.text);\n break;\n case \"addDetails\":\n this.addDetails(param.actor, param.text);\n break;\n case \"addMessage\":\n if (this.state.records.lastCreated) {\n if (param.to !== this.state.records.lastCreated) {\n throw new Error(\n \"The created participant \" + this.state.records.lastCreated.name + \" does not have an associated creating message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n this.state.records.lastCreated = void 0;\n }\n } else if (this.state.records.lastDestroyed) {\n if (param.to !== this.state.records.lastDestroyed && param.from !== this.state.records.lastDestroyed) {\n throw new Error(\n \"The destroyed participant \" + this.state.records.lastDestroyed.name + \" does not have an associated destroying message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n this.state.records.lastDestroyed = void 0;\n }\n }\n this.addSignal(param.from, param.to, param.msg, param.signalType, param.activate);\n break;\n case \"boxStart\":\n this.addBox(param.boxData);\n break;\n case \"boxEnd\":\n this.boxEnd();\n break;\n case \"loopStart\":\n this.addSignal(void 0, void 0, param.loopText, param.signalType);\n break;\n case \"loopEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"rectStart\":\n this.addSignal(void 0, void 0, param.color, param.signalType);\n break;\n case \"rectEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"optStart\":\n this.addSignal(void 0, void 0, param.optText, param.signalType);\n break;\n case \"optEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"altStart\":\n this.addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"else\":\n this.addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"altEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"setAccTitle\":\n setAccTitle(param.text);\n break;\n case \"parStart\":\n this.addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"and\":\n this.addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"parEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"criticalStart\":\n this.addSignal(void 0, void 0, param.criticalText, param.signalType);\n break;\n case \"option\":\n this.addSignal(void 0, void 0, param.optionText, param.signalType);\n break;\n case \"criticalEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"breakStart\":\n this.addSignal(void 0, void 0, param.breakText, param.signalType);\n break;\n case \"breakEnd\":\n this.addSignal(void 0, void 0, void 0, param.signalType);\n break;\n }\n }\n }\n getConfig() {\n return getConfig2().sequence;\n }\n};\n\n// src/diagrams/sequence/styles.js\nvar getStyles = /* @__PURE__ */ __name((options) => `.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n \n .innerArc {\n stroke-width: 1.5;\n stroke-dasharray: none;\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n #arrowhead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${options.signalColor};\n }\n\n #crosshead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/sequence/sequenceRenderer.ts\nimport { select } from \"d3\";\n\n// src/diagrams/sequence/svgDraw.js\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar ACTOR_TYPE_WIDTH = 18 * 2;\nvar TOP_ACTOR_CLASS = \"actor-top\";\nvar BOTTOM_ACTOR_CLASS = \"actor-bottom\";\nvar ACTOR_BOX_CLASS = \"actor-box\";\nvar ACTOR_MAN_FIGURE_CLASS = \"actor-man\";\nvar drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {\n return drawRect(elem, rectData);\n}, \"drawRect\");\nvar drawPopup = /* @__PURE__ */ __name(function(elem, actor, minMenuWidth, textAttrs, forceMenus) {\n if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {\n return { height: 0, width: 0 };\n }\n const links = actor.links;\n const actorCnt2 = actor.actorCnt;\n const rectData = actor.rectData;\n var displayValue = \"none\";\n if (forceMenus) {\n displayValue = \"block !important\";\n }\n const g = elem.append(\"g\");\n g.attr(\"id\", \"actor\" + actorCnt2 + \"_popup\");\n g.attr(\"class\", \"actorPopupMenu\");\n g.attr(\"display\", displayValue);\n var actorClass = \"\";\n if (rectData.class !== void 0) {\n actorClass = \" \" + rectData.class;\n }\n let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;\n const rectElem = g.append(\"rect\");\n rectElem.attr(\"class\", \"actorPopupMenuPanel\" + actorClass);\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.height);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", menuWidth);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (links != null) {\n var linkY = 20;\n for (let key in links) {\n var linkElem = g.append(\"a\");\n var sanitizedLink = sanitizeUrl(links[key]);\n linkElem.attr(\"xlink:href\", sanitizedLink);\n linkElem.attr(\"target\", \"_blank\");\n _drawMenuItemTextCandidateFunc(textAttrs)(\n key,\n linkElem,\n rectData.x + 10,\n rectData.height + linkY,\n menuWidth,\n 20,\n { class: \"actor\" },\n textAttrs\n );\n linkY += 30;\n }\n }\n rectElem.attr(\"height\", linkY);\n return { height: rectData.height + linkY, width: menuWidth };\n}, \"drawPopup\");\nvar popupMenuToggle = /* @__PURE__ */ __name(function(popId) {\n return \"var pu = document.getElementById('\" + popId + \"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }\";\n}, \"popupMenuToggle\");\nvar drawKatex = /* @__PURE__ */ __name(async function(elem, textData, msgModel = null) {\n let textElem = elem.append(\"foreignObject\");\n const linesSanitized = await renderKatexSanitized(textData.text, getConfig());\n const divElem = textElem.append(\"xhtml:div\").attr(\"style\", \"width: fit-content;\").attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\").html(linesSanitized);\n const dim = divElem.node().getBoundingClientRect();\n textElem.attr(\"height\", Math.round(dim.height)).attr(\"width\", Math.round(dim.width));\n if (textData.class === \"noteText\") {\n const rectElem = elem.node().firstChild;\n rectElem.setAttribute(\"height\", dim.height + 2 * textData.textMargin);\n const rectDim = rectElem.getBBox();\n textElem.attr(\"x\", Math.round(rectDim.x + rectDim.width / 2 - dim.width / 2)).attr(\"y\", Math.round(rectDim.y + rectDim.height / 2 - dim.height / 2));\n } else if (msgModel) {\n let { startx, stopx, starty } = msgModel;\n if (startx > stopx) {\n const temp = startx;\n startx = stopx;\n stopx = temp;\n }\n textElem.attr(\"x\", Math.round(startx + Math.abs(startx - stopx) / 2 - dim.width / 2));\n if (textData.class === \"loopText\") {\n textElem.attr(\"y\", Math.round(starty));\n } else {\n textElem.attr(\"y\", Math.round(starty - dim.height));\n }\n }\n return [textElem];\n}, \"drawKatex\");\nvar drawText = /* @__PURE__ */ __name(function(elem, textData) {\n let prevTextHeight = 0;\n let textHeight = 0;\n const lines = textData.text.split(common_default.lineBreakRegex);\n const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);\n let textElems = [];\n let dy = 0;\n let yfunc = /* @__PURE__ */ __name(() => textData.y, \"yfunc\");\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n switch (textData.valign) {\n case \"top\":\n case \"start\":\n yfunc = /* @__PURE__ */ __name(() => Math.round(textData.y + textData.textMargin), \"yfunc\");\n break;\n case \"middle\":\n case \"center\":\n yfunc = /* @__PURE__ */ __name(() => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2), \"yfunc\");\n break;\n case \"bottom\":\n case \"end\":\n yfunc = /* @__PURE__ */ __name(() => Math.round(\n textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin\n ), \"yfunc\");\n break;\n }\n }\n if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {\n switch (textData.anchor) {\n case \"left\":\n case \"start\":\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = \"start\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"middle\":\n case \"center\":\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = \"middle\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"right\":\n case \"end\":\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = \"end\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n }\n }\n for (let [i, line] of lines.entries()) {\n if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {\n dy = i * _textFontSize;\n }\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", yfunc());\n if (textData.anchor !== void 0) {\n textElem.attr(\"text-anchor\", textData.anchor).attr(\"dominant-baseline\", textData.dominantBaseline).attr(\"alignment-baseline\", textData.alignmentBaseline);\n }\n if (textData.fontFamily !== void 0) {\n textElem.style(\"font-family\", textData.fontFamily);\n }\n if (_textFontSizePx !== void 0) {\n textElem.style(\"font-size\", _textFontSizePx);\n }\n if (textData.fontWeight !== void 0) {\n textElem.style(\"font-weight\", textData.fontWeight);\n }\n if (textData.fill !== void 0) {\n textElem.attr(\"fill\", textData.fill);\n }\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n if (textData.dy !== void 0) {\n textElem.attr(\"dy\", textData.dy);\n } else if (dy !== 0) {\n textElem.attr(\"dy\", dy);\n }\n const text = line || ZERO_WIDTH_SPACE;\n if (textData.tspan) {\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x);\n if (textData.fill !== void 0) {\n span.attr(\"fill\", textData.fill);\n }\n span.text(text);\n } else {\n textElem.text(text);\n }\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n textElems.push(textElem);\n }\n return textElems;\n}, \"drawText\");\nvar drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n __name(genPoints, \"genPoints\");\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.height / 2;\n drawText(elem, txtObject);\n return polygon;\n}, \"drawLabel\");\nvar actorCnt = -1;\nvar fixLifeLineHeights = /* @__PURE__ */ __name((diagram2, actors, actorKeys, conf2) => {\n if (!diagram2.select) {\n return;\n }\n actorKeys.forEach((actorKey) => {\n const actor = actors.get(actorKey);\n const actorDOM = diagram2.select(\"#actor\" + actor.actorCnt);\n if (!conf2.mirrorActors && actor.stopy) {\n actorDOM.attr(\"y2\", actor.stopy + actor.height / 2);\n } else if (conf2.mirrorActors) {\n actorDOM.attr(\"y2\", actor.stopy);\n }\n });\n}, \"fixLifeLineHeights\");\nvar drawActorTypeParticipant = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + actor.height;\n const boxplusLineGroup = elem.append(\"g\").lower();\n var g = boxplusLineGroup;\n if (!isFooter) {\n actorCnt++;\n if (Object.keys(actor.links || {}).length && !conf2.forceMenus) {\n g.attr(\"onclick\", popupMenuToggle(`actor${actorCnt}_popup`)).attr(\"cursor\", \"pointer\");\n }\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n g = boxplusLineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n }\n }\n const rect = getNoteRect();\n var cssclass = \"actor\";\n if (actor.properties?.class) {\n cssclass = actor.properties.class;\n } else {\n rect.fill = \"#eaeaea\";\n }\n if (isFooter) {\n cssclass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssclass += ` ${TOP_ACTOR_CLASS}`;\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.rx = 3;\n rect.ry = 3;\n rect.name = actor.name;\n const rectElem = drawRect2(g, rect);\n actor.rectData = rect;\n if (actor.properties?.icon) {\n const iconSrc = actor.properties.icon.trim();\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));\n } else {\n drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);\n }\n }\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_BOX_CLASS}` },\n conf2\n );\n let height = actor.height;\n if (rectElem.node) {\n const bounds2 = rectElem.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n}, \"drawActorTypeParticipant\");\nvar drawActorTypeCollections = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + actor.height;\n const boxplusLineGroup = elem.append(\"g\").lower();\n var g = boxplusLineGroup;\n if (!isFooter) {\n actorCnt++;\n if (Object.keys(actor.links || {}).length && !conf2.forceMenus) {\n g.attr(\"onclick\", popupMenuToggle(`actor${actorCnt}_popup`)).attr(\"cursor\", \"pointer\");\n }\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n g = boxplusLineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n }\n }\n const rect = getNoteRect();\n var cssclass = \"actor\";\n if (actor.properties?.class) {\n cssclass = actor.properties.class;\n } else {\n rect.fill = \"#eaeaea\";\n }\n if (isFooter) {\n cssclass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssclass += ` ${TOP_ACTOR_CLASS}`;\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.name = actor.name;\n const offset = 6;\n const shadowRect = {\n ...rect,\n x: rect.x + (isFooter ? -offset : -offset),\n y: rect.y + (isFooter ? +offset : +offset),\n class: \"actor\"\n };\n const rectElem = drawRect2(g, rect);\n drawRect2(g, shadowRect);\n actor.rectData = rect;\n if (actor.properties?.icon) {\n const iconSrc = actor.properties.icon.trim();\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));\n } else {\n drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);\n }\n }\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n g,\n rect.x - offset,\n rect.y + offset,\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_BOX_CLASS}` },\n conf2\n );\n let height = actor.height;\n if (rectElem.node) {\n const bounds2 = rectElem.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n}, \"drawActorTypeCollections\");\nvar drawActorTypeQueue = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + actor.height;\n const boxplusLineGroup = elem.append(\"g\").lower();\n let g = boxplusLineGroup;\n if (!isFooter) {\n actorCnt++;\n if (Object.keys(actor.links || {}).length && !conf2.forceMenus) {\n g.attr(\"onclick\", popupMenuToggle(`actor${actorCnt}_popup`)).attr(\"cursor\", \"pointer\");\n }\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n g = boxplusLineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n }\n }\n const rect = getNoteRect();\n let cssclass = \"actor\";\n if (actor.properties?.class) {\n cssclass = actor.properties.class;\n } else {\n rect.fill = \"#eaeaea\";\n }\n if (isFooter) {\n cssclass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssclass += ` ${TOP_ACTOR_CLASS}`;\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.name = actor.name;\n const ry = rect.height / 2;\n const rx = ry / (2.5 + rect.height / 50);\n const cylinderGroup = g.append(\"g\");\n const cylinderArc = g.append(\"g\");\n cylinderGroup.append(\"path\").attr(\n \"d\",\n `M ${rect.x},${rect.y + ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}\n h ${rect.width - 2 * rx}\n a ${rx},${ry} 0 0 0 0,-${rect.height}\n Z\n `\n ).attr(\"class\", cssclass);\n cylinderArc.append(\"path\").attr(\n \"d\",\n `M ${rect.x},${rect.y + ry}\n a ${rx},${ry} 0 0 0 0,${rect.height}`\n ).attr(\"stroke\", \"#666\").attr(\"stroke-width\", \"1px\").attr(\"class\", cssclass);\n cylinderGroup.attr(\"transform\", `translate(${rx}, ${-(rect.height / 2)})`);\n cylinderArc.attr(\"transform\", `translate(${rect.width - rx}, ${-rect.height / 2})`);\n actor.rectData = rect;\n if (actor.properties?.icon) {\n const iconSrc = actor.properties.icon.trim();\n const iconX = rect.x + rect.width - 20;\n const iconY = rect.y + 10;\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, iconX, iconY, iconSrc.substr(1));\n } else {\n drawImage(g, iconX, iconY, iconSrc);\n }\n }\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_BOX_CLASS}` },\n conf2\n );\n let height = actor.height;\n const lastPath = cylinderGroup.select(\"path:last-child\");\n if (lastPath.node()) {\n const bounds2 = lastPath.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n}, \"drawActorTypeQueue\");\nvar drawActorTypeControl = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 75;\n const line = elem.append(\"g\").lower();\n if (!isFooter) {\n actorCnt++;\n line.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n actor.actorCnt = actorCnt;\n }\n const actElem = elem.append(\"g\");\n let cssClass = ACTOR_MAN_FIGURE_CLASS;\n if (isFooter) {\n cssClass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssClass += ` ${TOP_ACTOR_CLASS}`;\n }\n actElem.attr(\"class\", cssClass);\n actElem.attr(\"name\", actor.name);\n const rect = getNoteRect();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n const cx = actor.x + actor.width / 2;\n const cy = actorY + 30;\n const r = 18;\n actElem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head-control\").attr(\"refX\", 11).attr(\"refY\", 5.8).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"172.5\").append(\"path\").attr(\"d\", \"M 14.4 5.6 L 7.2 10.4 L 8.8 5.6 L 7.2 0.8 Z\");\n actElem.append(\"circle\").attr(\"cx\", cx).attr(\"cy\", cy).attr(\"r\", r).attr(\"fill\", \"#eaeaf7\").attr(\"stroke\", \"#666\").attr(\"stroke-width\", 1.2);\n actElem.append(\"line\").attr(\"marker-end\", \"url(#filled-head-control)\").attr(\"transform\", `translate(${cx}, ${cy - r})`);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height + 2 * (conf2?.sequence?.labelBoxHeight ?? 0);\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n actElem,\n rect.x,\n rect.y + r + (isFooter ? 5 : 10),\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_MAN_FIGURE_CLASS}` },\n conf2\n );\n return actor.height;\n}, \"drawActorTypeControl\");\nvar drawActorTypeEntity = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 75;\n const line = elem.append(\"g\").lower();\n const actElem = elem.append(\"g\");\n let cssClass = ACTOR_MAN_FIGURE_CLASS;\n if (isFooter) {\n cssClass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssClass += ` ${TOP_ACTOR_CLASS}`;\n }\n actElem.attr(\"class\", cssClass);\n actElem.attr(\"name\", actor.name);\n const rect = getNoteRect();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n const cx = actor.x + actor.width / 2;\n const cy = actorY + (!isFooter ? 25 : 10);\n const r = 18;\n actElem.append(\"circle\").attr(\"cx\", cx).attr(\"cy\", cy).attr(\"r\", r).attr(\"width\", actor.width).attr(\"height\", actor.height);\n actElem.append(\"line\").attr(\"x1\", cx - r).attr(\"x2\", cx + r).attr(\"y1\", cy + r).attr(\"y2\", cy + r).attr(\"stroke\", \"#333\").attr(\"stroke-width\", 2);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height + (conf2?.sequence?.labelBoxHeight ?? 0);\n if (!isFooter) {\n actorCnt++;\n line.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n actor.actorCnt = actorCnt;\n }\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n actElem,\n rect.x,\n rect.y + (!isFooter ? (cy + r - actorY) / 2 : (cy - actorY + r - 5) / 2),\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_MAN_FIGURE_CLASS}` },\n conf2\n );\n if (!isFooter) {\n actElem.attr(\"transform\", `translate(${0}, ${r / 2})`);\n } else {\n actElem.attr(\"transform\", `translate(${0}, ${r / 2})`);\n }\n return actor.height;\n}, \"drawActorTypeEntity\");\nvar drawActorTypeDatabase = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + actor.height + 2 * conf2.boxTextMargin;\n const boxplusLineGroup = elem.append(\"g\").lower();\n let g = boxplusLineGroup;\n if (!isFooter) {\n actorCnt++;\n if (Object.keys(actor.links || {}).length && !conf2.forceMenus) {\n g.attr(\"onclick\", popupMenuToggle(`actor${actorCnt}_popup`)).attr(\"cursor\", \"pointer\");\n }\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n g = boxplusLineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n }\n }\n const rect = getNoteRect();\n let cssclass = \"actor\";\n if (actor.properties?.class) {\n cssclass = actor.properties.class;\n } else {\n rect.fill = \"#eaeaea\";\n }\n if (isFooter) {\n cssclass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssclass += ` ${TOP_ACTOR_CLASS}`;\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.name = actor.name;\n rect.x = actor.x;\n rect.y = actorY;\n const w = rect.width / 4;\n const h = rect.width / 4;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const cylinderGroup = g.append(\"g\");\n const d = `\n M ${rect.x},${rect.y + ry}\n a ${rx},${ry} 0 0 0 ${w},0\n a ${rx},${ry} 0 0 0 -${w},0\n l 0,${h - 2 * ry}\n a ${rx},${ry} 0 0 0 ${w},0\n l 0,-${h - 2 * ry}\n`;\n cylinderGroup.append(\"path\").attr(\"d\", d).attr(\"fill\", \"#eaeaea\").attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1).attr(\"class\", cssclass);\n if (!isFooter) {\n cylinderGroup.attr(\"transform\", `translate(${w * 1.5}, ${(rect.height + ry) / 4})`);\n } else {\n cylinderGroup.attr(\"transform\", `translate(${w * 1.5}, ${rect.height / 4 - 2 * ry})`);\n }\n actor.rectData = rect;\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n g,\n rect.x,\n rect.y + (!isFooter ? (rect.height + ry) / 2 : (rect.height + h) / 4),\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_BOX_CLASS}` },\n conf2\n );\n const lastPath = cylinderGroup.select(\"path:last-child\");\n if (lastPath.node()) {\n const bounds2 = lastPath.node().getBBox();\n actor.height = bounds2.height + (conf2.sequence.labelBoxHeight ?? 0);\n }\n return actor.height;\n}, \"drawActorTypeDatabase\");\nvar drawActorTypeBoundary = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 80;\n const radius = 30;\n const line = elem.append(\"g\").lower();\n if (!isFooter) {\n actorCnt++;\n line.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n actor.actorCnt = actorCnt;\n }\n const actElem = elem.append(\"g\");\n let cssClass = ACTOR_MAN_FIGURE_CLASS;\n if (isFooter) {\n cssClass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssClass += ` ${TOP_ACTOR_CLASS}`;\n }\n actElem.attr(\"class\", cssClass);\n actElem.attr(\"name\", actor.name);\n const rect = getNoteRect();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n actElem.append(\"line\").attr(\"id\", \"actor-man-torso\" + actorCnt).attr(\"x1\", actor.x + actor.width / 2 - radius * 2.5).attr(\"y1\", actorY + 10).attr(\"x2\", actor.x + actor.width / 2 - 15).attr(\"y2\", actorY + 10);\n actElem.append(\"line\").attr(\"id\", \"actor-man-arms\" + actorCnt).attr(\"x1\", actor.x + actor.width / 2 - radius * 2.5).attr(\"y1\", actorY + 0).attr(\"x2\", actor.x + actor.width / 2 - radius * 2.5).attr(\"y2\", actorY + 20);\n actElem.append(\"circle\").attr(\"cx\", actor.x + actor.width / 2).attr(\"cy\", actorY + 10).attr(\"r\", radius);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height + (conf2.sequence.labelBoxHeight ?? 0);\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n actElem,\n rect.x,\n rect.y + (!isFooter ? radius / 2 + 3 : radius / 2 - 4),\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_MAN_FIGURE_CLASS}` },\n conf2\n );\n if (!isFooter) {\n actElem.attr(\"transform\", `translate(0,${radius / 2 + 7})`);\n } else {\n actElem.attr(\"transform\", `translate(0,${radius / 2 + 7})`);\n }\n return actor.height;\n}, \"drawActorTypeBoundary\");\nvar drawActorTypeActor = /* @__PURE__ */ __name(function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 80;\n const line = elem.append(\"g\").lower();\n if (!isFooter) {\n actorCnt++;\n line.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line 200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\").attr(\"name\", actor.name);\n actor.actorCnt = actorCnt;\n }\n const actElem = elem.append(\"g\");\n let cssClass = ACTOR_MAN_FIGURE_CLASS;\n if (isFooter) {\n cssClass += ` ${BOTTOM_ACTOR_CLASS}`;\n } else {\n cssClass += ` ${TOP_ACTOR_CLASS}`;\n }\n actElem.attr(\"class\", cssClass);\n actElem.attr(\"name\", actor.name);\n const rect = getNoteRect();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n rect.rx = 3;\n rect.ry = 3;\n actElem.append(\"line\").attr(\"id\", \"actor-man-torso\" + actorCnt).attr(\"x1\", center).attr(\"y1\", actorY + 25).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"id\", \"actor-man-arms\" + actorCnt).attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 33).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2).attr(\"y2\", actorY + 33);\n actElem.append(\"line\").attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 60).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"x1\", center).attr(\"y1\", actorY + 45).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2 - 2).attr(\"y2\", actorY + 60);\n const circle = actElem.append(\"circle\");\n circle.attr(\"cx\", actor.x + actor.width / 2);\n circle.attr(\"cy\", actorY + 10);\n circle.attr(\"r\", 15);\n circle.attr(\"width\", actor.width);\n circle.attr(\"height\", actor.height);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height;\n _drawTextCandidateFunc(conf2, hasKatex(actor.description))(\n actor.description,\n actElem,\n rect.x,\n rect.y + 35,\n rect.width,\n rect.height,\n { class: `actor ${ACTOR_MAN_FIGURE_CLASS}` },\n conf2\n );\n return actor.height;\n}, \"drawActorTypeActor\");\nvar drawActor = /* @__PURE__ */ __name(async function(elem, actor, conf2, isFooter) {\n switch (actor.type) {\n case \"actor\":\n return await drawActorTypeActor(elem, actor, conf2, isFooter);\n case \"participant\":\n return await drawActorTypeParticipant(elem, actor, conf2, isFooter);\n case \"boundary\":\n return await drawActorTypeBoundary(elem, actor, conf2, isFooter);\n case \"control\":\n return await drawActorTypeControl(elem, actor, conf2, isFooter);\n case \"entity\":\n return await drawActorTypeEntity(elem, actor, conf2, isFooter);\n case \"database\":\n return await drawActorTypeDatabase(elem, actor, conf2, isFooter);\n case \"collections\":\n return await drawActorTypeCollections(elem, actor, conf2, isFooter);\n case \"queue\":\n return await drawActorTypeQueue(elem, actor, conf2, isFooter);\n }\n}, \"drawActor\");\nvar drawBox = /* @__PURE__ */ __name(function(elem, box, conf2) {\n const boxplusTextGroup = elem.append(\"g\");\n const g = boxplusTextGroup;\n drawBackgroundRect2(g, box);\n if (box.name) {\n _drawTextCandidateFunc(conf2)(\n box.name,\n g,\n box.x,\n box.y + conf2.boxTextMargin + (box.textMaxHeight || 0) / 2,\n box.width,\n 0,\n { class: \"text\" },\n conf2\n );\n }\n g.lower();\n}, \"drawBox\");\nvar anchorElement = /* @__PURE__ */ __name(function(elem) {\n return elem.append(\"g\");\n}, \"anchorElement\");\nvar drawActivation = /* @__PURE__ */ __name(function(elem, bounds2, verticalPos, conf2, actorActivations2) {\n const rect = getNoteRect();\n const g = bounds2.anchored;\n rect.x = bounds2.startx;\n rect.y = bounds2.starty;\n rect.class = \"activation\" + actorActivations2 % 3;\n rect.width = bounds2.stopx - bounds2.startx;\n rect.height = verticalPos - bounds2.starty;\n drawRect2(g, rect);\n}, \"drawActivation\");\nvar drawLoop = /* @__PURE__ */ __name(async function(elem, loopModel, labelText, conf2) {\n const {\n boxMargin,\n boxTextMargin,\n labelBoxHeight,\n labelBoxWidth,\n messageFontFamily: fontFamily,\n messageFontSize: fontSize,\n messageFontWeight: fontWeight\n } = conf2;\n const g = elem.append(\"g\");\n const drawLoopLine = /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {\n return g.append(\"line\").attr(\"x1\", startx).attr(\"y1\", starty).attr(\"x2\", stopx).attr(\"y2\", stopy).attr(\"class\", \"loopLine\");\n }, \"drawLoopLine\");\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);\n drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);\n if (loopModel.sections !== void 0) {\n loopModel.sections.forEach(function(item) {\n drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(\n \"stroke-dasharray\",\n \"3, 3\"\n );\n });\n }\n let txt = getTextObj();\n txt.text = labelText;\n txt.x = loopModel.startx;\n txt.y = loopModel.starty;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.width = labelBoxWidth || 50;\n txt.height = labelBoxHeight || 20;\n txt.textMargin = boxTextMargin;\n txt.class = \"labelText\";\n drawLabel(g, txt);\n txt = getTextObj2();\n txt.text = loopModel.title;\n txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.starty + boxMargin + boxTextMargin;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.textMargin = boxTextMargin;\n txt.class = \"loopText\";\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = true;\n let textElem = hasKatex(txt.text) ? await drawKatex(g, txt, loopModel) : drawText(g, txt);\n if (loopModel.sectionTitles !== void 0) {\n for (const [idx, item] of Object.entries(loopModel.sectionTitles)) {\n if (item.message) {\n txt.text = item.message;\n txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;\n txt.class = \"loopText\";\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = loopModel.wrap;\n if (hasKatex(txt.text)) {\n loopModel.starty = loopModel.sections[idx].y;\n await drawKatex(g, txt, loopModel);\n } else {\n drawText(g, txt);\n }\n let sectionHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);\n }\n }\n }\n loopModel.height = Math.round(loopModel.stopy - loopModel.starty);\n return g;\n}, \"drawLoop\");\nvar drawBackgroundRect2 = /* @__PURE__ */ __name(function(elem, bounds2) {\n drawBackgroundRect(elem, bounds2);\n}, \"drawBackgroundRect\");\nvar insertDatabaseIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n}, \"insertDatabaseIcon\");\nvar insertComputerIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n}, \"insertComputerIcon\");\nvar insertClockIcon = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n}, \"insertClockIcon\");\nvar insertArrowHead = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 7.9).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto-start-reverse\").append(\"path\").attr(\"d\", \"M -1 0 L 10 5 L 0 10 z\");\n}, \"insertArrowHead\");\nvar insertArrowFilledHead = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 15.5).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertArrowFilledHead\");\nvar insertSequenceNumber = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n}, \"insertSequenceNumber\");\nvar insertArrowCrossHead = /* @__PURE__ */ __name(function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 4).attr(\"refY\", 4.5);\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1pt\").attr(\"d\", \"M 1,2 L 6,7 M 6,2 L 1,7\");\n}, \"insertArrowCrossHead\");\nvar getTextObj2 = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: void 0,\n style: \"#666\",\n width: void 0,\n height: void 0,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: void 0\n };\n}, \"getTextObj\");\nvar getNoteRect2 = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n}, \"getNoteRect\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);\n const lines = content.split(common_default.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").style(\"font-size\", _actorFontSizePx).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n async function byKatex(content, g, x, y, width, height, textAttrs, conf2) {\n const dim = await calculateMathMLDimensions(content, getConfig());\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x + width / 2 - dim.width / 2).attr(\"y\", y + height / 2 - dim.height / 2).attr(\"width\", dim.width).attr(\"height\", dim.height);\n const text = f.append(\"xhtml:div\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(await renderKatexSanitized(content, getConfig()));\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byKatex, \"byKatex\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2, hasKatex2 = false) {\n if (hasKatex2) {\n return byKatex;\n }\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar _drawMenuItemTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const lines = content.split(common_default.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").style(\"font-size\", actorFontSize).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar svgDraw_default = {\n drawRect: drawRect2,\n drawText,\n drawLabel,\n drawActor,\n drawBox,\n drawPopup,\n anchorElement,\n drawActivation,\n drawLoop,\n drawBackgroundRect: drawBackgroundRect2,\n insertArrowHead,\n insertArrowFilledHead,\n insertSequenceNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj: getTextObj2,\n getNoteRect: getNoteRect2,\n fixLifeLineHeights,\n sanitizeUrl\n};\n\n// src/diagrams/sequence/sequenceRenderer.ts\nvar conf = {};\nvar bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n activations: [],\n models: {\n getHeight: /* @__PURE__ */ __name(function() {\n return Math.max.apply(\n null,\n this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)\n ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));\n }, \"getHeight\"),\n clear: /* @__PURE__ */ __name(function() {\n this.actors = [];\n this.boxes = [];\n this.loops = [];\n this.messages = [];\n this.notes = [];\n }, \"clear\"),\n addBox: /* @__PURE__ */ __name(function(boxModel) {\n this.boxes.push(boxModel);\n }, \"addBox\"),\n addActor: /* @__PURE__ */ __name(function(actorModel) {\n this.actors.push(actorModel);\n }, \"addActor\"),\n addLoop: /* @__PURE__ */ __name(function(loopModel) {\n this.loops.push(loopModel);\n }, \"addLoop\"),\n addMessage: /* @__PURE__ */ __name(function(msgModel) {\n this.messages.push(msgModel);\n }, \"addMessage\"),\n addNote: /* @__PURE__ */ __name(function(noteModel) {\n this.notes.push(noteModel);\n }, \"addNote\"),\n lastActor: /* @__PURE__ */ __name(function() {\n return this.actors[this.actors.length - 1];\n }, \"lastActor\"),\n lastLoop: /* @__PURE__ */ __name(function() {\n return this.loops[this.loops.length - 1];\n }, \"lastLoop\"),\n lastMessage: /* @__PURE__ */ __name(function() {\n return this.messages[this.messages.length - 1];\n }, \"lastMessage\"),\n lastNote: /* @__PURE__ */ __name(function() {\n return this.notes[this.notes.length - 1];\n }, \"lastNote\"),\n actors: [],\n boxes: [],\n loops: [],\n messages: [],\n notes: []\n },\n init: /* @__PURE__ */ __name(function() {\n this.sequenceItems = [];\n this.activations = [];\n this.models.clear();\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n setConf(getConfig2());\n }, \"init\"),\n updateVal: /* @__PURE__ */ __name(function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }, \"updateVal\"),\n updateBounds: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return /* @__PURE__ */ __name(function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n }\n }, \"updateItemBounds\");\n }\n __name(updateFn, \"updateFn\");\n this.sequenceItems.forEach(updateFn());\n this.activations.forEach(updateFn(\"activation\"));\n }, \"updateBounds\"),\n insert: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {\n const _startx = common_default.getMin(startx, stopx);\n const _stopx = common_default.getMax(startx, stopx);\n const _starty = common_default.getMin(starty, stopy);\n const _stopy = common_default.getMax(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n }, \"insert\"),\n newActivation: /* @__PURE__ */ __name(function(message, diagram2, actors) {\n const actorRect = actors.get(message.from);\n const stackedSize = actorActivations(message.from).length || 0;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n this.activations.push({\n startx: x,\n starty: this.verticalPos + 2,\n stopx: x + conf.activationWidth,\n stopy: void 0,\n actor: message.from,\n anchored: svgDraw_default.anchorElement(diagram2)\n });\n }, \"newActivation\"),\n endActivation: /* @__PURE__ */ __name(function(message) {\n const lastActorActivationIdx = this.activations.map(function(activation) {\n return activation.actor;\n }).lastIndexOf(message.from);\n return this.activations.splice(lastActorActivationIdx, 1)[0];\n }, \"endActivation\"),\n createLoop: /* @__PURE__ */ __name(function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n return {\n startx: void 0,\n starty: this.verticalPos,\n stopx: void 0,\n stopy: void 0,\n title: title.message,\n wrap: title.wrap,\n width: title.width,\n height: 0,\n fill\n };\n }, \"createLoop\"),\n newLoop: /* @__PURE__ */ __name(function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n this.sequenceItems.push(this.createLoop(title, fill));\n }, \"newLoop\"),\n endLoop: /* @__PURE__ */ __name(function() {\n return this.sequenceItems.pop();\n }, \"endLoop\"),\n isLoopOverlap: /* @__PURE__ */ __name(function() {\n return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;\n }, \"isLoopOverlap\"),\n addSectionToLoop: /* @__PURE__ */ __name(function(message) {\n const loop = this.sequenceItems.pop();\n loop.sections = loop.sections || [];\n loop.sectionTitles = loop.sectionTitles || [];\n loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });\n loop.sectionTitles.push(message);\n this.sequenceItems.push(loop);\n }, \"addSectionToLoop\"),\n saveVerticalPos: /* @__PURE__ */ __name(function() {\n if (this.isLoopOverlap()) {\n this.savedVerticalPos = this.verticalPos;\n }\n }, \"saveVerticalPos\"),\n resetVerticalPos: /* @__PURE__ */ __name(function() {\n if (this.isLoopOverlap()) {\n this.verticalPos = this.savedVerticalPos;\n }\n }, \"resetVerticalPos\"),\n bumpVerticalPos: /* @__PURE__ */ __name(function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = common_default.getMax(this.data.stopy, this.verticalPos);\n }, \"bumpVerticalPos\"),\n getVerticalPos: /* @__PURE__ */ __name(function() {\n return this.verticalPos;\n }, \"getVerticalPos\"),\n getBounds: /* @__PURE__ */ __name(function() {\n return { bounds: this.data, models: this.models };\n }, \"getBounds\")\n};\nvar drawNote = /* @__PURE__ */ __name(async function(elem, noteModel) {\n bounds.bumpVerticalPos(conf.boxMargin);\n noteModel.height = conf.boxMargin;\n noteModel.starty = bounds.getVerticalPos();\n const rect = getNoteRect();\n rect.x = noteModel.startx;\n rect.y = noteModel.starty;\n rect.width = noteModel.width || conf.width;\n rect.class = \"note\";\n const g = elem.append(\"g\");\n const rectElem = svgDraw_default.drawRect(g, rect);\n const textObj = getTextObj();\n textObj.x = noteModel.startx;\n textObj.y = noteModel.starty;\n textObj.width = rect.width;\n textObj.dy = \"1em\";\n textObj.text = noteModel.message;\n textObj.class = \"noteText\";\n textObj.fontFamily = conf.noteFontFamily;\n textObj.fontSize = conf.noteFontSize;\n textObj.fontWeight = conf.noteFontWeight;\n textObj.anchor = conf.noteAlign;\n textObj.textMargin = conf.noteMargin;\n textObj.valign = \"center\";\n const textElem = hasKatex(textObj.text) ? await drawKatex(g, textObj) : drawText(g, textObj);\n const textHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n rectElem.attr(\"height\", textHeight + 2 * conf.noteMargin);\n noteModel.height += textHeight + 2 * conf.noteMargin;\n bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);\n noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;\n noteModel.stopx = noteModel.startx + rect.width;\n bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);\n bounds.models.addNote(noteModel);\n}, \"drawNote\");\nvar messageFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n}, \"messageFont\");\nvar noteFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.noteFontFamily,\n fontSize: cnf.noteFontSize,\n fontWeight: cnf.noteFontWeight\n };\n}, \"noteFont\");\nvar actorFont = /* @__PURE__ */ __name((cnf) => {\n return {\n fontFamily: cnf.actorFontFamily,\n fontSize: cnf.actorFontSize,\n fontWeight: cnf.actorFontWeight\n };\n}, \"actorFont\");\nasync function boundMessage(_diagram, msgModel) {\n bounds.bumpVerticalPos(10);\n const { startx, stopx, message } = msgModel;\n const lines = common_default.splitBreaks(message).length;\n const isKatexMsg = hasKatex(message);\n const textDims = isKatexMsg ? await calculateMathMLDimensions(message, getConfig2()) : utils_default.calculateTextDimensions(message, messageFont(conf));\n if (!isKatexMsg) {\n const lineHeight = textDims.height / lines;\n msgModel.height += lineHeight;\n bounds.bumpVerticalPos(lineHeight);\n }\n let lineStartY;\n let totalOffset = textDims.height - 10;\n const textWidth = textDims.width;\n if (startx === stopx) {\n lineStartY = bounds.getVerticalPos() + totalOffset;\n if (!conf.rightAngles) {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n }\n totalOffset += 30;\n const dx = common_default.getMax(textWidth / 2, conf.width / 2);\n bounds.insert(\n startx - dx,\n bounds.getVerticalPos() - 10 + totalOffset,\n stopx + dx,\n bounds.getVerticalPos() + 30 + totalOffset\n );\n } else {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n bounds.insert(startx, lineStartY - 10, stopx, lineStartY);\n }\n bounds.bumpVerticalPos(totalOffset);\n msgModel.height += totalOffset;\n msgModel.stopy = msgModel.starty + msgModel.height;\n bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);\n return lineStartY;\n}\n__name(boundMessage, \"boundMessage\");\nvar drawMessage = /* @__PURE__ */ __name(async function(diagram2, msgModel, lineStartY, diagObj) {\n const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;\n const textDims = utils_default.calculateTextDimensions(message, messageFont(conf));\n const textObj = getTextObj();\n textObj.x = startx;\n textObj.y = starty + 10;\n textObj.width = stopx - startx;\n textObj.class = \"messageText\";\n textObj.dy = \"1em\";\n textObj.text = message;\n textObj.fontFamily = conf.messageFontFamily;\n textObj.fontSize = conf.messageFontSize;\n textObj.fontWeight = conf.messageFontWeight;\n textObj.anchor = conf.messageAlign;\n textObj.valign = \"center\";\n textObj.textMargin = conf.wrapPadding;\n textObj.tspan = false;\n if (hasKatex(textObj.text)) {\n await drawKatex(diagram2, textObj, { startx, stopx, starty: lineStartY });\n } else {\n drawText(diagram2, textObj);\n }\n const textWidth = textDims.width;\n let line;\n if (startx === stopx) {\n if (conf.rightAngles) {\n line = diagram2.append(\"path\").attr(\n \"d\",\n `M ${startx},${lineStartY} H ${startx + common_default.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`\n );\n } else {\n line = diagram2.append(\"path\").attr(\n \"d\",\n \"M \" + startx + \",\" + lineStartY + \" C \" + (startx + 60) + \",\" + (lineStartY - 10) + \" \" + (startx + 60) + \",\" + (lineStartY + 30) + \" \" + startx + \",\" + (lineStartY + 20)\n );\n }\n } else {\n line = diagram2.append(\"line\");\n line.attr(\"x1\", startx);\n line.attr(\"y1\", lineStartY);\n line.attr(\"x2\", stopx);\n line.attr(\"y2\", lineStartY);\n }\n if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN || type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED) {\n line.style(\"stroke-dasharray\", \"3, 3\");\n line.attr(\"class\", \"messageLine1\");\n } else {\n line.attr(\"class\", \"messageLine0\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n line.attr(\"stroke-width\", 2);\n line.attr(\"stroke\", \"none\");\n line.style(\"fill\", \"none\");\n if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (type === diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID || type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED) {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowhead)\");\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {\n line.attr(\"marker-end\", \"url(\" + url + \"#filled-head)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {\n line.attr(\"marker-end\", \"url(\" + url + \"#crosshead)\");\n }\n if (sequenceVisible || conf.showSequenceNumbers) {\n const isBidirectional = type === diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID || type === diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED;\n if (isBidirectional) {\n const SEQUENCE_NUMBER_RADIUS = 6;\n if (startx < stopx) {\n line.attr(\"x1\", startx + 2 * SEQUENCE_NUMBER_RADIUS);\n } else {\n line.attr(\"x1\", startx + SEQUENCE_NUMBER_RADIUS);\n }\n }\n diagram2.append(\"line\").attr(\"x1\", startx).attr(\"y1\", lineStartY).attr(\"x2\", startx).attr(\"y2\", lineStartY).attr(\"stroke-width\", 0).attr(\"marker-start\", \"url(\" + url + \"#sequencenumber)\");\n diagram2.append(\"text\").attr(\"x\", startx).attr(\"y\", lineStartY + 4).attr(\"font-family\", \"sans-serif\").attr(\"font-size\", \"12px\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"sequenceNumber\").text(sequenceIndex);\n }\n}, \"drawMessage\");\nvar addActorRenderingData = /* @__PURE__ */ __name(function(diagram2, actors, createdActors, actorKeys, verticalPos, messages, isFooter) {\n let prevWidth = 0;\n let prevMargin = 0;\n let prevBox = void 0;\n let maxHeight = 0;\n for (const actorKey of actorKeys) {\n const actor = actors.get(actorKey);\n const box = actor.box;\n if (prevBox && prevBox != box) {\n if (!isFooter) {\n bounds.models.addBox(prevBox);\n }\n prevMargin += conf.boxMargin + prevBox.margin;\n }\n if (box && box != prevBox) {\n if (!isFooter) {\n box.x = prevWidth + prevMargin;\n box.y = verticalPos;\n }\n prevMargin += box.margin;\n }\n actor.width = actor.width || conf.width;\n actor.height = common_default.getMax(actor.height || conf.height, conf.height);\n actor.margin = actor.margin || conf.actorMargin;\n maxHeight = common_default.getMax(maxHeight, actor.height);\n if (createdActors.get(actor.name)) {\n prevMargin += actor.width / 2;\n }\n actor.x = prevWidth + prevMargin;\n actor.starty = bounds.getVerticalPos();\n bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);\n prevWidth += actor.width + prevMargin;\n if (actor.box) {\n actor.box.width = prevWidth + box.margin - actor.box.x;\n }\n prevMargin = actor.margin;\n prevBox = actor.box;\n bounds.models.addActor(actor);\n }\n if (prevBox && !isFooter) {\n bounds.models.addBox(prevBox);\n }\n bounds.bumpVerticalPos(maxHeight);\n}, \"addActorRenderingData\");\nvar drawActors = /* @__PURE__ */ __name(async function(diagram2, actors, actorKeys, isFooter) {\n if (!isFooter) {\n for (const actorKey of actorKeys) {\n const actor = actors.get(actorKey);\n await svgDraw_default.drawActor(diagram2, actor, conf, false);\n }\n } else {\n let maxHeight = 0;\n bounds.bumpVerticalPos(conf.boxMargin * 2);\n for (const actorKey of actorKeys) {\n const actor = actors.get(actorKey);\n if (!actor.stopy) {\n actor.stopy = bounds.getVerticalPos();\n }\n const height = await svgDraw_default.drawActor(diagram2, actor, conf, true);\n maxHeight = common_default.getMax(maxHeight, height);\n }\n bounds.bumpVerticalPos(maxHeight + conf.boxMargin);\n }\n}, \"drawActors\");\nvar drawActorsPopup = /* @__PURE__ */ __name(function(diagram2, actors, actorKeys, doc) {\n let maxHeight = 0;\n let maxWidth = 0;\n for (const actorKey of actorKeys) {\n const actor = actors.get(actorKey);\n const minMenuWidth = getRequiredPopupWidth(actor);\n const menuDimensions = svgDraw_default.drawPopup(\n diagram2,\n actor,\n minMenuWidth,\n conf,\n conf.forceMenus,\n doc\n );\n if (menuDimensions.height > maxHeight) {\n maxHeight = menuDimensions.height;\n }\n if (menuDimensions.width + actor.x > maxWidth) {\n maxWidth = menuDimensions.width + actor.x;\n }\n }\n return { maxHeight, maxWidth };\n}, \"drawActorsPopup\");\nvar setConf = /* @__PURE__ */ __name(function(cnf) {\n assignWithDepth_default(conf, cnf);\n if (cnf.fontFamily) {\n conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n}, \"setConf\");\nvar actorActivations = /* @__PURE__ */ __name(function(actor) {\n return bounds.activations.filter(function(activation) {\n return activation.actor === actor;\n });\n}, \"actorActivations\");\nvar activationBounds = /* @__PURE__ */ __name(function(actor, actors) {\n const actorObj = actors.get(actor);\n const activations = actorActivations(actor);\n const left = activations.reduce(\n function(acc, activation) {\n return common_default.getMin(acc, activation.startx);\n },\n actorObj.x + actorObj.width / 2 - 1\n );\n const right = activations.reduce(\n function(acc, activation) {\n return common_default.getMax(acc, activation.stopx);\n },\n actorObj.x + actorObj.width / 2 + 1\n );\n return [left, right];\n}, \"activationBounds\");\nfunction adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {\n bounds.bumpVerticalPos(preMargin);\n let heightAdjust = postMargin;\n if (msg.id && msg.message && loopWidths[msg.id]) {\n const loopWidth = loopWidths[msg.id].width;\n const textConf = messageFont(conf);\n msg.message = utils_default.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);\n msg.width = loopWidth;\n msg.wrap = true;\n const textDims = utils_default.calculateTextDimensions(msg.message, textConf);\n const totalOffset = common_default.getMax(textDims.height, conf.labelBoxHeight);\n heightAdjust = postMargin + totalOffset;\n log.debug(`${totalOffset} - ${msg.message}`);\n }\n addLoopFn(msg);\n bounds.bumpVerticalPos(heightAdjust);\n}\n__name(adjustLoopHeightForWrap, \"adjustLoopHeightForWrap\");\nfunction adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors, createdActors, destroyedActors) {\n function receiverAdjustment(actor, adjustment) {\n if (actor.x < actors.get(msg.from).x) {\n bounds.insert(\n msgModel.stopx - adjustment,\n msgModel.starty,\n msgModel.startx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx + adjustment;\n } else {\n bounds.insert(\n msgModel.startx,\n msgModel.starty,\n msgModel.stopx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx - adjustment;\n }\n }\n __name(receiverAdjustment, \"receiverAdjustment\");\n function senderAdjustment(actor, adjustment) {\n if (actor.x < actors.get(msg.to).x) {\n bounds.insert(\n msgModel.startx - adjustment,\n msgModel.starty,\n msgModel.stopx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx + adjustment;\n } else {\n bounds.insert(\n msgModel.stopx,\n msgModel.starty,\n msgModel.startx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx - adjustment;\n }\n }\n __name(senderAdjustment, \"senderAdjustment\");\n const actorArray = [\n PARTICIPANT_TYPE.ACTOR,\n PARTICIPANT_TYPE.CONTROL,\n PARTICIPANT_TYPE.ENTITY,\n PARTICIPANT_TYPE.DATABASE\n ];\n if (createdActors.get(msg.to) == index) {\n const actor = actors.get(msg.to);\n const adjustment = actorArray.includes(actor.type) ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n actor.starty = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors.get(msg.from) == index) {\n const actor = actors.get(msg.from);\n if (conf.mirrorActors) {\n const adjustment = actorArray.includes(actor.type) ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2;\n senderAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors.get(msg.to) == index) {\n const actor = actors.get(msg.to);\n if (conf.mirrorActors) {\n const adjustment = actorArray.includes(actor.type) ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n }\n}\n__name(adjustCreatedDestroyedData, \"adjustCreatedDestroyedData\");\nvar draw = /* @__PURE__ */ __name(async function(_text, id, _version, diagObj) {\n const { securityLevel, sequence } = getConfig2();\n conf = sequence;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n bounds.init();\n log.debug(diagObj.db);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const actors = diagObj.db.getActors();\n const createdActors = diagObj.db.getCreatedActors();\n const destroyedActors = diagObj.db.getDestroyedActors();\n const boxes = diagObj.db.getBoxes();\n let actorKeys = diagObj.db.getActorKeys();\n const messages = diagObj.db.getMessages();\n const title = diagObj.db.getDiagramTitle();\n const hasBoxes = diagObj.db.hasAtLeastOneBox();\n const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();\n const maxMessageWidthPerActor = await getMaxMessageWidthPerActor(actors, messages, diagObj);\n conf.height = await calculateActorMargins(actors, maxMessageWidthPerActor, boxes);\n svgDraw_default.insertComputerIcon(diagram2);\n svgDraw_default.insertDatabaseIcon(diagram2);\n svgDraw_default.insertClockIcon(diagram2);\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n if (hasBoxTitles) {\n bounds.bumpVerticalPos(boxes[0].textMaxHeight);\n }\n }\n if (conf.hideUnusedParticipants === true) {\n const newActors = /* @__PURE__ */ new Set();\n messages.forEach((message) => {\n newActors.add(message.from);\n newActors.add(message.to);\n });\n actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));\n }\n addActorRenderingData(diagram2, actors, createdActors, actorKeys, 0, messages, false);\n const loopWidths = await calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj);\n svgDraw_default.insertArrowHead(diagram2);\n svgDraw_default.insertArrowCrossHead(diagram2);\n svgDraw_default.insertArrowFilledHead(diagram2);\n svgDraw_default.insertSequenceNumber(diagram2);\n function activeEnd(msg, verticalPos) {\n const activationData = bounds.endActivation(msg);\n if (activationData.starty + 18 > verticalPos) {\n activationData.starty = verticalPos - 6;\n verticalPos += 12;\n }\n svgDraw_default.drawActivation(\n diagram2,\n activationData,\n verticalPos,\n conf,\n actorActivations(msg.from).length\n );\n bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);\n }\n __name(activeEnd, \"activeEnd\");\n let sequenceIndex = 1;\n let sequenceIndexStep = 1;\n const messagesToDraw = [];\n const backgrounds = [];\n let index = 0;\n for (const msg of messages) {\n let loopModel, noteModel, msgModel;\n switch (msg.type) {\n case diagObj.db.LINETYPE.NOTE:\n bounds.resetVerticalPos();\n noteModel = msg.noteModel;\n await drawNote(diagram2, noteModel);\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n bounds.newActivation(msg, diagram2, actors);\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n activeEnd(msg, bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.LOOP_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"loop\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.RECT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin,\n (message) => bounds.newLoop(void 0, message.message)\n );\n break;\n case diagObj.db.LINETYPE.RECT_END:\n loopModel = bounds.endLoop();\n backgrounds.push(loopModel);\n bounds.models.addLoop(loopModel);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.OPT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.OPT_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"opt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.ALT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"alt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n bounds.saveVerticalPos();\n break;\n case diagObj.db.LINETYPE.PAR_AND:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.PAR_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"par\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.AUTONUMBER:\n sequenceIndex = msg.message.start || sequenceIndex;\n sequenceIndexStep = msg.message.step || sequenceIndexStep;\n if (msg.message.visible) {\n diagObj.db.enableSequenceNumbers();\n } else {\n diagObj.db.disableSequenceNumbers();\n }\n break;\n case diagObj.db.LINETYPE.CRITICAL_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"critical\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.BREAK_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.BREAK_END:\n loopModel = bounds.endLoop();\n await svgDraw_default.drawLoop(diagram2, loopModel, \"break\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n default:\n try {\n msgModel = msg.msgModel;\n msgModel.starty = bounds.getVerticalPos();\n msgModel.sequenceIndex = sequenceIndex;\n msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();\n const lineStartY = await boundMessage(diagram2, msgModel);\n adjustCreatedDestroyedData(\n msg,\n msgModel,\n lineStartY,\n index,\n actors,\n createdActors,\n destroyedActors\n );\n messagesToDraw.push({ messageModel: msgModel, lineStartY });\n bounds.models.addMessage(msgModel);\n } catch (e) {\n log.error(\"error while drawing message\", e);\n }\n }\n if ([\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT,\n diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,\n diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED\n ].includes(msg.type)) {\n sequenceIndex = sequenceIndex + sequenceIndexStep;\n }\n index++;\n }\n log.debug(\"createdActors\", createdActors);\n log.debug(\"destroyedActors\", destroyedActors);\n await drawActors(diagram2, actors, actorKeys, false);\n for (const e of messagesToDraw) {\n await drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj);\n }\n if (conf.mirrorActors) {\n await drawActors(diagram2, actors, actorKeys, true);\n }\n backgrounds.forEach((e) => svgDraw_default.drawBackgroundRect(diagram2, e));\n fixLifeLineHeights(diagram2, actors, actorKeys, conf);\n for (const box2 of bounds.models.boxes) {\n box2.height = bounds.getVerticalPos() - box2.y;\n bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);\n const boxPadding = conf.boxMargin * 2;\n box2.startx = box2.x - boxPadding;\n box2.starty = box2.y - boxPadding * 0.25;\n box2.stopx = box2.startx + box2.width + 2 * boxPadding;\n box2.stopy = box2.starty + box2.height + boxPadding * 0.75;\n box2.stroke = \"rgb(0,0,0, 0.5)\";\n svgDraw_default.drawBox(diagram2, box2, conf);\n }\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n }\n const requiredBoxSize = drawActorsPopup(diagram2, actors, actorKeys, doc);\n const { bounds: box } = bounds.getBounds();\n if (box.startx === void 0) {\n box.startx = 0;\n }\n if (box.starty === void 0) {\n box.starty = 0;\n }\n if (box.stopx === void 0) {\n box.stopx = 0;\n }\n if (box.stopy === void 0) {\n box.stopy = 0;\n }\n let boxHeight = box.stopy - box.starty;\n if (boxHeight < requiredBoxSize.maxHeight) {\n boxHeight = requiredBoxSize.maxHeight;\n }\n let height = boxHeight + 2 * conf.diagramMarginY;\n if (conf.mirrorActors) {\n height = height - conf.boxMargin + conf.bottomMarginAdj;\n }\n let boxWidth = box.stopx - box.startx;\n if (boxWidth < requiredBoxSize.maxWidth) {\n boxWidth = requiredBoxSize.maxWidth;\n }\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr(\"y\", -25);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title ? 40 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, bounds.models);\n}, \"draw\");\nasync function getMaxMessageWidthPerActor(actors, messages, diagObj) {\n const maxMessageWidthPerActor = {};\n for (const msg of messages) {\n if (actors.get(msg.to) && actors.get(msg.from)) {\n const actor = actors.get(msg.to);\n if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {\n continue;\n }\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {\n continue;\n }\n const isNote = msg.placement !== void 0;\n const isMessage = !isNote;\n const textFont = isNote ? noteFont(conf) : messageFont(conf);\n const wrappedMessage = msg.wrap ? utils_default.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;\n const messageDimensions = hasKatex(wrappedMessage) ? await calculateMathMLDimensions(msg.message, getConfig2()) : utils_default.calculateTextDimensions(wrappedMessage, textFont);\n const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;\n if (isMessage && msg.from === actor.nextActor) {\n maxMessageWidthPerActor[msg.to] = common_default.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === actor.prevActor) {\n maxMessageWidthPerActor[msg.from] = common_default.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === msg.to) {\n maxMessageWidthPerActor[msg.from] = common_default.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n maxMessageWidthPerActor[msg.to] = common_default.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth / 2\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n maxMessageWidthPerActor[msg.from] = common_default.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n maxMessageWidthPerActor[actor.prevActor] = common_default.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {\n if (actor.prevActor) {\n maxMessageWidthPerActor[actor.prevActor] = common_default.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth / 2\n );\n }\n if (actor.nextActor) {\n maxMessageWidthPerActor[msg.from] = common_default.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n }\n }\n }\n }\n log.debug(\"maxMessageWidthPerActor:\", maxMessageWidthPerActor);\n return maxMessageWidthPerActor;\n}\n__name(getMaxMessageWidthPerActor, \"getMaxMessageWidthPerActor\");\nvar getRequiredPopupWidth = /* @__PURE__ */ __name(function(actor) {\n let requiredPopupWidth = 0;\n const textFont = actorFont(conf);\n for (const key in actor.links) {\n const labelDimensions = utils_default.calculateTextDimensions(key, textFont);\n const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;\n if (requiredPopupWidth < labelWidth) {\n requiredPopupWidth = labelWidth;\n }\n }\n return requiredPopupWidth;\n}, \"getRequiredPopupWidth\");\nasync function calculateActorMargins(actors, actorToMessageWidth, boxes) {\n let maxHeight = 0;\n for (const prop of actors.keys()) {\n const actor = actors.get(prop);\n if (actor.wrap) {\n actor.description = utils_default.wrapLabel(\n actor.description,\n conf.width - 2 * conf.wrapPadding,\n actorFont(conf)\n );\n }\n const actDims = hasKatex(actor.description) ? await calculateMathMLDimensions(actor.description, getConfig2()) : utils_default.calculateTextDimensions(actor.description, actorFont(conf));\n actor.width = actor.wrap ? conf.width : common_default.getMax(conf.width, actDims.width + 2 * conf.wrapPadding);\n actor.height = actor.wrap ? common_default.getMax(actDims.height, conf.height) : conf.height;\n maxHeight = common_default.getMax(maxHeight, actor.height);\n }\n for (const actorKey in actorToMessageWidth) {\n const actor = actors.get(actorKey);\n if (!actor) {\n continue;\n }\n const nextActor = actors.get(actor.nextActor);\n if (!nextActor) {\n const messageWidth2 = actorToMessageWidth[actorKey];\n const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;\n actor.margin = common_default.getMax(actorWidth2, conf.actorMargin);\n continue;\n }\n const messageWidth = actorToMessageWidth[actorKey];\n const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;\n actor.margin = common_default.getMax(actorWidth, conf.actorMargin);\n }\n let maxBoxHeight = 0;\n boxes.forEach((box) => {\n const textFont = messageFont(conf);\n let totalWidth = box.actorKeys.reduce((total, aKey) => {\n return total += actors.get(aKey).width + (actors.get(aKey).margin || 0);\n }, 0);\n const standardBoxPadding = conf.boxMargin * 8;\n totalWidth += standardBoxPadding;\n totalWidth -= 2 * conf.boxTextMargin;\n if (box.wrap) {\n box.name = utils_default.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);\n }\n const boxMsgDimensions = utils_default.calculateTextDimensions(box.name, textFont);\n maxBoxHeight = common_default.getMax(boxMsgDimensions.height, maxBoxHeight);\n const minWidth = common_default.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);\n box.margin = conf.boxTextMargin;\n if (totalWidth < minWidth) {\n const missing = (minWidth - totalWidth) / 2;\n box.margin += missing;\n }\n });\n boxes.forEach((box) => box.textMaxHeight = maxBoxHeight);\n return common_default.getMax(maxHeight, conf.height);\n}\n__name(calculateActorMargins, \"calculateActorMargins\");\nvar buildNoteModel = /* @__PURE__ */ __name(async function(msg, actors, diagObj) {\n const fromActor = actors.get(msg.from);\n const toActor = actors.get(msg.to);\n const startx = fromActor.x;\n const stopx = toActor.x;\n const shouldWrap = msg.wrap && msg.message;\n let textDimensions = hasKatex(msg.message) ? await calculateMathMLDimensions(msg.message, getConfig2()) : utils_default.calculateTextDimensions(\n shouldWrap ? utils_default.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,\n noteFont(conf)\n );\n const noteModel = {\n width: shouldWrap ? conf.width : common_default.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin),\n height: 0,\n startx: fromActor.x,\n stopx: 0,\n starty: 0,\n stopy: 0,\n message: msg.message\n };\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n noteModel.width = shouldWrap ? common_default.getMax(conf.width, textDimensions.width) : common_default.getMax(\n fromActor.width / 2 + toActor.width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (fromActor.width + conf.actorMargin) / 2;\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n noteModel.width = shouldWrap ? common_default.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common_default.getMax(\n fromActor.width / 2 + toActor.width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx - noteModel.width + (fromActor.width - conf.actorMargin) / 2;\n } else if (msg.to === msg.from) {\n textDimensions = utils_default.calculateTextDimensions(\n shouldWrap ? utils_default.wrapLabel(msg.message, common_default.getMax(conf.width, fromActor.width), noteFont(conf)) : msg.message,\n noteFont(conf)\n );\n noteModel.width = shouldWrap ? common_default.getMax(conf.width, fromActor.width) : common_default.getMax(fromActor.width, conf.width, textDimensions.width + 2 * conf.noteMargin);\n noteModel.startx = startx + (fromActor.width - noteModel.width) / 2;\n } else {\n noteModel.width = Math.abs(startx + fromActor.width / 2 - (stopx + toActor.width / 2)) + conf.actorMargin;\n noteModel.startx = startx < stopx ? startx + fromActor.width / 2 - conf.actorMargin / 2 : stopx + toActor.width / 2 - conf.actorMargin / 2;\n }\n if (shouldWrap) {\n noteModel.message = utils_default.wrapLabel(\n msg.message,\n noteModel.width - 2 * conf.wrapPadding,\n noteFont(conf)\n );\n }\n log.debug(\n `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`\n );\n return noteModel;\n}, \"buildNoteModel\");\nvar buildMessageModel = /* @__PURE__ */ __name(function(msg, actors, diagObj) {\n if (![\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT,\n diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID,\n diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED\n ].includes(msg.type)) {\n return {};\n }\n const [fromLeft, fromRight] = activationBounds(msg.from, actors);\n const [toLeft, toRight] = activationBounds(msg.to, actors);\n const isArrowToRight = fromLeft <= toLeft;\n let startx = isArrowToRight ? fromRight : fromLeft;\n let stopx = isArrowToRight ? toLeft : toRight;\n const isArrowToActivation = Math.abs(toLeft - toRight) > 2;\n const adjustValue = /* @__PURE__ */ __name((value) => {\n return isArrowToRight ? -value : value;\n }, \"adjustValue\");\n if (msg.from === msg.to) {\n stopx = startx;\n } else {\n if (msg.activate && !isArrowToActivation) {\n stopx += adjustValue(conf.activationWidth / 2 - 1);\n }\n if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) {\n stopx += adjustValue(3);\n }\n if ([diagObj.db.LINETYPE.BIDIRECTIONAL_SOLID, diagObj.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(\n msg.type\n )) {\n startx -= adjustValue(3);\n }\n }\n const allBounds = [fromLeft, fromRight, toLeft, toRight];\n const boundedWidth = Math.abs(startx - stopx);\n if (msg.wrap && msg.message) {\n msg.message = utils_default.wrapLabel(\n msg.message,\n common_default.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width),\n messageFont(conf)\n );\n }\n const msgDims = utils_default.calculateTextDimensions(msg.message, messageFont(conf));\n return {\n width: common_default.getMax(\n msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,\n boundedWidth + 2 * conf.wrapPadding,\n conf.width\n ),\n height: 0,\n startx,\n stopx,\n starty: 0,\n stopy: 0,\n message: msg.message,\n type: msg.type,\n wrap: msg.wrap,\n fromBounds: Math.min.apply(null, allBounds),\n toBounds: Math.max.apply(null, allBounds)\n };\n}, \"buildMessageModel\");\nvar calculateLoopBounds = /* @__PURE__ */ __name(async function(messages, actors, _maxWidthPerActor, diagObj) {\n const loops = {};\n const stack = [];\n let current, noteModel, msgModel;\n for (const msg of messages) {\n switch (msg.type) {\n case diagObj.db.LINETYPE.LOOP_START:\n case diagObj.db.LINETYPE.ALT_START:\n case diagObj.db.LINETYPE.OPT_START:\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n case diagObj.db.LINETYPE.CRITICAL_START:\n case diagObj.db.LINETYPE.BREAK_START:\n stack.push({\n id: msg.id,\n msg: msg.message,\n from: Number.MAX_SAFE_INTEGER,\n to: Number.MIN_SAFE_INTEGER,\n width: 0\n });\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n case diagObj.db.LINETYPE.PAR_AND:\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n if (msg.message) {\n current = stack.pop();\n loops[current.id] = current;\n loops[msg.id] = current;\n stack.push(current);\n }\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n case diagObj.db.LINETYPE.ALT_END:\n case diagObj.db.LINETYPE.OPT_END:\n case diagObj.db.LINETYPE.PAR_END:\n case diagObj.db.LINETYPE.CRITICAL_END:\n case diagObj.db.LINETYPE.BREAK_END:\n current = stack.pop();\n loops[current.id] = current;\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n {\n const actorRect = actors.get(msg.from ? msg.from : msg.to.actor);\n const stackedSize = actorActivations(msg.from ? msg.from : msg.to.actor).length;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n const toAdd = {\n startx: x,\n stopx: x + conf.activationWidth,\n actor: msg.from,\n enabled: true\n };\n bounds.activations.push(toAdd);\n }\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n {\n const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from);\n bounds.activations.splice(lastActorActivationIdx, 1).splice(0, 1);\n }\n break;\n }\n const isNote = msg.placement !== void 0;\n if (isNote) {\n noteModel = await buildNoteModel(msg, actors, diagObj);\n msg.noteModel = noteModel;\n stack.forEach((stk) => {\n current = stk;\n current.from = common_default.getMin(current.from, noteModel.startx);\n current.to = common_default.getMax(current.to, noteModel.startx + noteModel.width);\n current.width = common_default.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;\n });\n } else {\n msgModel = buildMessageModel(msg, actors, diagObj);\n msg.msgModel = msgModel;\n if (msgModel.startx && msgModel.stopx && stack.length > 0) {\n stack.forEach((stk) => {\n current = stk;\n if (msgModel.startx === msgModel.stopx) {\n const from = actors.get(msg.from);\n const to = actors.get(msg.to);\n current.from = common_default.getMin(\n from.x - msgModel.width / 2,\n from.x - from.width / 2,\n current.from\n );\n current.to = common_default.getMax(\n to.x + msgModel.width / 2,\n to.x + from.width / 2,\n current.to\n );\n current.width = common_default.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;\n } else {\n current.from = common_default.getMin(msgModel.startx, current.from);\n current.to = common_default.getMax(msgModel.stopx, current.to);\n current.width = common_default.getMax(current.width, msgModel.width) - conf.labelBoxWidth;\n }\n });\n }\n }\n }\n bounds.activations = [];\n log.debug(\"Loop type widths:\", loops);\n return loops;\n}, \"calculateLoopBounds\");\nvar sequenceRenderer_default = {\n bounds,\n drawActors,\n drawActorsPopup,\n setConf,\n draw\n};\n\n// src/diagrams/sequence/sequenceDiagram.ts\nvar diagram = {\n parser: sequenceDiagram_default,\n get db() {\n return new SequenceDB();\n },\n renderer: sequenceRenderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.sequence) {\n cnf.sequence = {};\n }\n if (cnf.wrap) {\n cnf.sequence.wrap = cnf.wrap;\n setConfig({ sequence: { wrap: cnf.wrap } });\n }\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","sequenceDiagram_default","LINETYPE","ARROWTYPE","PLACEMENT","PARTICIPANT_TYPE","SequenceDB","_a","ImperativeState","setAccTitle","setAccDescription","setDiagramTitle","getAccTitle","getAccDescription","getDiagramTitle","getConfig2","data","id","name","description","type","metadata","assignedBox","doc","yamlData","load","JSON_SCHEMA","old","prevActorInRecords","part","count","idFrom","idTo","message","answer","messageType","activate","b","wrapSetting","text","wrap","clear","trimmedStr","cleanedText","log","color","title","style","sanitizeText","actor","placement","note","actors","actorId","sanitizedText","links","e","sep","label","link","key","properties","elem","text2","details","param","item","getStyles","options","styles_default","ACTOR_TYPE_WIDTH","TOP_ACTOR_CLASS","BOTTOM_ACTOR_CLASS","ACTOR_BOX_CLASS","ACTOR_MAN_FIGURE_CLASS","drawRect2","rectData","drawRect","drawPopup","minMenuWidth","textAttrs","forceMenus","actorCnt2","displayValue","g","actorClass","menuWidth","rectElem","linkY","linkElem","sanitizedLink","sanitizeUrl","_drawMenuItemTextCandidateFunc","popupMenuToggle","popId","drawKatex","textData","msgModel","textElem","linesSanitized","renderKatexSanitized","getConfig","dim","rectDim","startx","stopx","starty","temp","drawText","prevTextHeight","textHeight","common_default","_textFontSize","_textFontSizePx","parseFontSize","textElems","dy","yfunc","line","ZERO_WIDTH_SPACE","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","actorCnt","fixLifeLineHeights","diagram2","actorKeys","conf2","actorKey","actorDOM","drawActorTypeParticipant","isFooter","actorY","center","centerY","boxplusLineGroup","rect","getNoteRect","cssclass","_b","iconSrc","drawEmbeddedImage","drawImage","_drawTextCandidateFunc","hasKatex","bounds2","drawActorTypeCollections","offset","shadowRect","drawActorTypeQueue","ry","rx","cylinderGroup","cylinderArc","iconX","iconY","lastPath","drawActorTypeControl","actElem","cssClass","cx","cy","drawActorTypeEntity","drawActorTypeDatabase","w","h","d","drawActorTypeBoundary","radius","drawActorTypeActor","circle","drawActor","drawBox","box","drawBackgroundRect2","anchorElement","drawActivation","verticalPos","actorActivations2","drawLoop","loopModel","labelText","boxMargin","boxTextMargin","labelBoxHeight","labelBoxWidth","fontFamily","fontSize","fontWeight","drawLoopLine","stopy","txt","getTextObj","getTextObj2","idx","sectionHeight","te","acc","curr","drawBackgroundRect","insertDatabaseIcon","insertComputerIcon","insertClockIcon","insertArrowHead","insertArrowFilledHead","insertSequenceNumber","insertArrowCrossHead","getNoteRect2","byText","content","_setTextAttrs","byTspan","actorFontSize","actorFontFamily","actorFontWeight","_actorFontSize","_actorFontSizePx","byFo","s","byKatex","calculateMathMLDimensions","toText","fromTextAttrsDict","hasKatex2","svgDraw_default","conf","bounds","it","boxModel","actorModel","noteModel","setConf","obj","val","fun","_self","cnt","updateFn","_startx","_stopx","_starty","_stopy","actorRect","stackedSize","actorActivations","lastActorActivationIdx","activation","fill","loop","bump","drawNote","textObj","messageFont","cnf","noteFont","actorFont","boundMessage","_diagram","isKatexMsg","textDims","utils_default","lineHeight","lineStartY","totalOffset","textWidth","dx","drawMessage","diagObj","sequenceIndex","sequenceVisible","url","getUrl","addActorRenderingData","createdActors","messages","prevWidth","prevMargin","prevBox","maxHeight","drawActors","drawActorsPopup","maxWidth","getRequiredPopupWidth","menuDimensions","assignWithDepth_default","activationBounds","actorObj","activations","left","right","adjustLoopHeightForWrap","loopWidths","msg","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","textConf","adjustCreatedDestroyedData","destroyedActors","receiverAdjustment","adjustment","senderAdjustment","actorArray","draw","_text","_version","securityLevel","sequence","sandboxElement","select","root","boxes","hasBoxes","hasBoxTitles","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","newActors","calculateLoopBounds","activeEnd","activationData","sequenceIndexStep","messagesToDraw","backgrounds","box2","boxPadding","requiredBoxSize","boxHeight","boxWidth","configureSvgSize","extraVertForTitle","isNote","isMessage","textFont","wrappedMessage","messageWidth","requiredPopupWidth","labelWidth","actorToMessageWidth","prop","actDims","nextActor","actorWidth2","actorWidth","maxBoxHeight","totalWidth","total","aKey","standardBoxPadding","boxMsgDimensions","minWidth","missing","buildNoteModel","fromActor","toActor","shouldWrap","textDimensions","buildMessageModel","fromLeft","fromRight","toLeft","toRight","isArrowToRight","isArrowToActivation","adjustValue","value","allBounds","boundedWidth","msgDims","_maxWidthPerActor","loops","current","toAdd","a","stk","from","to","sequenceRenderer_default","diagram","setConfig"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js b/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js new file mode 100644 index 000000000000..4679a1437145 --- /dev/null +++ b/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js @@ -0,0 +1,2 @@ +import{s as A,a as G,S as N}from"./chunk-TVAH2DTR.js";import{_ as u,c as t,d as M,l as S,e as W,k as z,R as P,S as U,O as C,u as D}from"./index.js";import{G as F}from"./graph.js";import{l as I}from"./layout.js";import"./chunk-55IACEB6.js";import"./chunk-QN33PNHL.js";import"./XCircleIcon.js";import"./_baseUniq.js";import"./_basePickBy.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="cd671491-8716-452f-8f49-33a04e240ad5",e._sentryDebugIdIdentifier="sentry-dbid-cd671491-8716-452f-8f49-33a04e240ad5")})()}catch{}var O=u(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),J=u(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),X=u((e,a)=>{const s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(a.id),l=s.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",l.width+2*t().state.padding).attr("height",l.height+2*t().state.padding).attr("rx",t().state.radius),s},"drawSimpleState"),Y=u((e,a)=>{const s=u(function(c,m,b){const v=c.append("tspan").attr("x",2*t().state.padding).text(m);b||v.attr("dy",t().state.textHeight)},"addTspan"),r=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),g=r.height,f=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let i=!0,d=!0;a.descriptions.forEach(function(c){i||(s(f,c,d),d=!1),i=!1});const w=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),p=f.node().getBBox(),o=Math.max(p.width,r.width);return w.attr("x2",o+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",o+2*t().state.padding).attr("height",p.height+g+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),$=u((e,a,s)=>{const l=t().state.padding,r=2*t().state.padding,g=e.node().getBBox(),f=g.width,i=g.x,d=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(a.id),p=d.node().getBBox().width+r;let o=Math.max(p,f);o===f&&(o=o+r);let c;const m=e.node().getBBox();a.doc,c=i-l,p>f&&(c=(f-o)/2+l),Math.abs(i-m.x)f&&(c=i-(p-f)/2);const b=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",c).attr("y",b).attr("class",s?"alt-composit":"composit").attr("width",o).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),d.attr("x",c+l),p<=f&&d.attr("x",i+(o-r)/2-p/2+l),e.insert("rect",":first-child").attr("x",c).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",o).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",c).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",o).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),q=u(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),Z=u((e,a)=>{let s=t().state.forkWidth,l=t().state.forkHeight;if(a.parentId){let r=s;s=l,l=r}return e.append("rect").style("stroke","black").style("fill","black").attr("width",s).attr("height",l).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),j=u((e,a,s,l)=>{let r=0;const g=l.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let f=e.replace(/\r\n/g,"
    ");f=f.replace(/\n/g,"
    ");const i=f.split(z.lineBreakRegex);let d=1.25*t().state.noteMargin;for(const w of i){const p=w.trim();if(p.length>0){const o=g.append("tspan");if(o.text(p),d===0){const c=o.node().getBBox();d+=c.height}r+=d,o.attr("x",a+t().state.noteMargin),o.attr("y",s+r+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:r}},"_drawLongText"),K=u((e,a)=>{a.attr("class","state-note");const s=a.append("rect").attr("x",0).attr("y",t().state.padding),l=a.append("g"),{textWidth:r,textHeight:g}=j(e,0,0,l);return s.attr("height",g+2*t().state.noteMargin),s.attr("width",r+t().state.noteMargin*2),s},"drawNote"),L=u(function(e,a){const s=a.id,l={id:s,label:a.id,width:0,height:0},r=e.append("g").attr("id",s).attr("class","stateGroup");a.type==="start"&&O(r),a.type==="end"&&q(r),(a.type==="fork"||a.type==="join")&&Z(r,a),a.type==="note"&&K(a.note.text,r),a.type==="divider"&&J(r),a.type==="default"&&a.descriptions.length===0&&X(r,a),a.type==="default"&&a.descriptions.length>0&&Y(r,a);const g=r.node().getBBox();return l.width=g.width+2*t().state.padding,l.height=g.height+2*t().state.padding,l},"drawState"),_=0,Q=u(function(e,a,s){const l=u(function(d){switch(d){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");a.points=a.points.filter(d=>!Number.isNaN(d.y));const r=a.points,g=P().x(function(d){return d.x}).y(function(d){return d.y}).curve(U),f=e.append("path").attr("d",g(r)).attr("id","edge"+_).attr("class","transition");let i="";if(t().state.arrowMarkerAbsolute&&(i=C(!0)),f.attr("marker-end","url("+i+"#"+l(N.relationType.DEPENDENCY)+"End)"),s.title!==void 0){const d=e.append("g").attr("class","stateLabel"),{x:w,y:p}=D.calcLabelPosition(a.points),o=z.getRows(s.title);let c=0;const m=[];let b=0,v=0;for(let x=0;x<=o.length;x++){const h=d.append("text").attr("text-anchor","middle").text(o[x]).attr("x",w).attr("y",p+c),y=h.node().getBBox();b=Math.max(b,y.width),v=Math.min(v,y.x),S.info(y.x,w,p+c),c===0&&(c=h.node().getBBox().height,S.info("Title height",c,p)),m.push(h)}let k=c*o.length;if(o.length>1){const x=(o.length-1)*c*.5;m.forEach((h,y)=>h.attr("y",p+y*c-x)),k=c*o.length}const n=d.node().getBBox();d.insert("rect",":first-child").attr("class","box").attr("x",w-b/2-t().state.padding/2).attr("y",p-k/2-t().state.padding/2-3.5).attr("width",b+t().state.padding).attr("height",k+t().state.padding),S.info(n)}_++},"drawEdge"),B,H={},V=u(function(){},"setConf"),tt=u(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),et=u(function(e,a,s,l){B=t().state;const r=t().securityLevel;let g;r==="sandbox"&&(g=M("#i"+a));const f=r==="sandbox"?M(g.nodes()[0].contentDocument.body):M("body"),i=r==="sandbox"?g.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const d=f.select(`[id='${a}']`);tt(d);const w=l.db.getRootDoc();R(w,d,void 0,!1,f,i,l);const p=B.padding,o=d.node().getBBox(),c=o.width+p*2,m=o.height+p*2,b=c*1.75;W(d,m,b,B.useMaxWidth),d.attr("viewBox",`${o.x-B.padding} ${o.y-B.padding} `+c+" "+m)},"draw"),at=u(e=>e?e.length*B.fontSizeFactor:1,"getLabelWidth"),R=u((e,a,s,l,r,g,f)=>{const i=new F({compound:!0,multigraph:!0});let d,w=!0;for(d=0;d{const y=h.parentElement;let E=0,T=0;y&&(y.parentElement&&(E=y.parentElement.getBBox().width),T=parseInt(y.getAttribute("data-x-shift"),10),Number.isNaN(T)&&(T=0)),h.setAttribute("x1",0-T+8),h.setAttribute("x2",E-T-8)})):S.debug("No Node "+n+": "+JSON.stringify(i.node(n)))});let v=b.getBBox();i.edges().forEach(function(n){n!==void 0&&i.edge(n)!==void 0&&(S.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(i.edge(n))),Q(a,i.edge(n),i.edge(n).relation))}),v=b.getBBox();const k={id:s||"root",label:s||"root",width:0,height:0};return k.width=v.width+2*B.padding,k.height=v.height+2*B.padding,S.debug("Doc rendered",k,i),k},"renderDoc"),it={setConf:V,draw:et},pt={parser:G,get db(){return new N(1)},renderer:it,styles:A,init:u(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{pt as diagram}; +//# sourceMappingURL=stateDiagram-KXAO66HF.js.map diff --git a/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js.map b/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js.map new file mode 100644 index 000000000000..5a139b409c80 --- /dev/null +++ b/extensions/continue/gui/assets/stateDiagram-KXAO66HF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stateDiagram-KXAO66HF.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-KXAO66HF.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n styles_default\n} from \"./chunk-TVAH2DTR.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-QN33PNHL.mjs\";\nimport \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n configureSvgSize,\n getConfig2 as getConfig,\n getUrl\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateRenderer.js\nimport { select } from \"d3\";\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/diagrams/state/shapes.js\nimport { line, curveBasis } from \"d3\";\nvar drawStartState = /* @__PURE__ */ __name((g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit), \"drawStartState\");\nvar drawDivider = /* @__PURE__ */ __name((g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0), \"drawDivider\");\nvar drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n}, \"drawSimpleState\");\nvar drawDescrState = /* @__PURE__ */ __name((g, stateDef) => {\n const addTspan = /* @__PURE__ */ __name(function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n }, \"addTspan\");\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"drawDescrState\");\nvar addTitleAndBox = /* @__PURE__ */ __name((g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc) {\n }\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"addTitleAndBox\");\nvar drawEndState = /* @__PURE__ */ __name((g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n}, \"drawEndState\");\nvar drawForkJoinState = /* @__PURE__ */ __name((g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n}, \"drawForkJoinState\");\nvar _drawLongText = /* @__PURE__ */ __name((_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"
    \");\n text = text.replace(/\\n/g, \"
    \");\n const lines = text.split(common_default.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n}, \"_drawLongText\");\nvar drawNote = /* @__PURE__ */ __name((text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n}, \"drawNote\");\nvar drawState = /* @__PURE__ */ __name(function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n return stateInfo;\n}, \"drawState\");\nvar edgeCount = 0;\nvar drawEdge = /* @__PURE__ */ __name(function(elem, path, relation) {\n const getRelationType = /* @__PURE__ */ __name(function(type) {\n switch (type) {\n case StateDB.relationType.AGGREGATION:\n return \"aggregation\";\n case StateDB.relationType.EXTENSION:\n return \"extension\";\n case StateDB.relationType.COMPOSITION:\n return \"composition\";\n case StateDB.relationType.DEPENDENCY:\n return \"dependency\";\n }\n }, \"getRelationType\");\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(StateDB.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils_default.calcLabelPosition(path.points);\n const rows = common_default.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundsTmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundsTmp.width);\n minX = Math.min(minX, boundsTmp.x);\n log.info(boundsTmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n}, \"drawEdge\");\n\n// src/diagrams/state/stateRenderer.js\nvar conf;\nvar transformationLog = {};\nvar setConf = /* @__PURE__ */ __name(function() {\n}, \"setConf\");\nvar insertMarkers = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertMarkers\");\nvar draw = /* @__PURE__ */ __name(function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n}, \"draw\");\nvar getLabelWidth = /* @__PURE__ */ __name((text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n}, \"getLabelWidth\");\nvar renderDoc = /* @__PURE__ */ __name((doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys = Object.keys(states);\n let first = true;\n for (const key of keys) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n if (first) {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n } else {\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height;\n }\n } else {\n node = drawState(diagram2, stateDef, graph);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef, graph);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common_default.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n dagreLayout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n}, \"renderDoc\");\nvar stateRenderer_default = {\n setConf,\n draw\n};\n\n// src/diagrams/state/stateDiagram.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(1);\n },\n renderer: stateRenderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["drawStartState","__name","g","getConfig","drawDivider","drawSimpleState","stateDef","state","classBox","drawDescrState","addTspan","textEl","txt","isFirst2","tSpan","titleBox","titleHeight","description","isFirst","isSecond","descr","descrLine","descrBox","width","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","title","titleWidth","startX","graphBox","lineY","drawEndState","drawForkJoinState","height","tmp","_drawLongText","_text","x","y","textHeight","textElem","text","lines","common_default","tHeight","line2","span","textBounds","drawNote","note","rectElem","textWidth","drawState","elem","id","stateInfo","stateBox","edgeCount","drawEdge","path","relation","getRelationType","type","StateDB","p","lineData","lineFunction","line","curveBasis","svgPath","url","getUrl","label","utils_default","rows","titleRows","maxWidth","minX","i","boundsTmp","log","boxHeight","heightAdj","bounds","conf","transformationLog","setConf","insertMarkers","draw","_version","diagObj","securityLevel","sandboxElement","select","root","doc","diagram2","rootDoc","renderDoc","padding","svgWidth","configureSvgSize","getLabelWidth","parentId","domDocument","graph","graphlib.Graph","edgeFreeDoc","states","relations","keys","key","node","sub","boxBounds","noteDef","cnt","dagreLayout","svgElem","v","divider","parent","pWidth","pShift","e","stateRenderer_default","diagram","stateDiagram_default","styles_default","cnf"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js b/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js new file mode 100644 index 000000000000..f2f8dea90588 --- /dev/null +++ b/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js @@ -0,0 +1,2 @@ +import{s as a,b as d,a as r,S as f}from"./chunk-TVAH2DTR.js";import{_ as n}from"./index.js";import"./chunk-55IACEB6.js";import"./chunk-QN33PNHL.js";import"./XCircleIcon.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ca49b37f-8246-403b-8fff-2e1dbb6972e6",e._sentryDebugIdIdentifier="sentry-dbid-ca49b37f-8246-403b-8fff-2e1dbb6972e6")})()}catch{}var u={parser:r,get db(){return new f(2)},renderer:d,styles:a,init:n(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{u as diagram}; +//# sourceMappingURL=stateDiagram-v2-UMBNRL4Z.js.map diff --git a/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js.map b/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js.map new file mode 100644 index 000000000000..e7e2e5ade266 --- /dev/null +++ b/extensions/continue/gui/assets/stateDiagram-v2-UMBNRL4Z.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stateDiagram-v2-UMBNRL4Z.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-UMBNRL4Z.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-TVAH2DTR.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-QN33PNHL.mjs\";\nimport \"./chunk-6OXUPJBA.mjs\";\nimport \"./chunk-3AY6CYHV.mjs\";\nimport \"./chunk-7GE3RBXV.mjs\";\nimport \"./chunk-CXMOBAN2.mjs\";\nimport \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-QYVHNE3D.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateDiagram-v2.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(2);\n },\n renderer: stateRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"names":["diagram","stateDiagram_default","StateDB","stateRenderer_v3_unified_default","styles_default","__name","cnf"],"mappings":"otBAsBG,IAACA,EAAU,CACZ,OAAQC,EACR,IAAI,IAAK,CACP,OAAO,IAAIC,EAAQ,CAAC,CACtB,EACA,SAAUC,EACV,OAAQC,EACR,KAAsBC,EAAQC,GAAQ,CAC/BA,EAAI,QACPA,EAAI,MAAQ,CAAA,GAEdA,EAAI,MAAM,oBAAsBA,EAAI,mBACtC,EAAG,MAAM,CACX","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js b/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js new file mode 100644 index 000000000000..320cc1ddca4a --- /dev/null +++ b/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js @@ -0,0 +1,62 @@ +import{_ as s,c as xt,l as E,d as q,V as bt,W as kt,X as vt,Y as _t,B as wt,$ as St,y as Et}from"./index.js";import{d as nt}from"./arc.js";import"./XCircleIcon.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="41f86bee-ceaa-4f50-82e5-b3a977dfbbe6",n._sentryDebugIdIdentifier="sentry-dbid-41f86bee-ceaa-4f50-82e5-b3a977dfbbe6")})()}catch{}var X=(function(){var n=s(function(g,r,a,h){for(a=a||{},h=g.length;h--;a[g[h]]=r);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],i=[1,11],d=[1,12],c=[1,13],f=[1,16],m=[1,17],p={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(r,a,h,u,y,o,S){var b=o.length-1;switch(y){case 1:return o[b-1];case 2:this.$=[];break;case 3:o[b-1].push(o[b]),this.$=o[b-1];break;case 4:case 5:this.$=o[b];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[b].substr(6)),this.$=o[b].substr(6);break;case 9:this.$=o[b].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[b].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[b].substr(8)),this.$=o[b].substr(8);break;case 15:u.addTask(o[b],0,""),this.$=o[b];break;case 16:u.addEvent(o[b].substr(2)),this.$=o[b];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:i,16:d,17:c,18:14,19:15,20:f,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:i,16:d,17:c,18:14,19:15,20:f,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(r,a){if(a.recoverable)this.trace(r);else{var h=new Error(r);throw h.hash=a,h}},"parseError"),parse:s(function(r){var a=this,h=[0],u=[],y=[null],o=[],S=this.table,b="",$=0,C=0,B=2,J=1,O=o.slice.call(arguments,1),k=Object.create(this.lexer),N={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(N.yy[L]=this.yy[L]);k.setInput(r,N.yy),N.yy.lexer=k,N.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var _=k.yylloc;o.push(_);var M=k.options&&k.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(T){h.length=h.length-2*T,y.length=y.length-T,o.length=o.length-T}s(R,"popStack");function P(){var T;return T=u.pop()||k.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=a.symbols_[T]||T),T}s(P,"lex");for(var w,H,I,K,V={},j,A,et,G;;){if(H=h[h.length-1],this.defaultActions[H]?I=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=P()),I=S[H]&&S[H][w]),typeof I>"u"||!I.length||!I[0]){var Q="";G=[];for(j in S[H])this.terminals_[j]&&j>B&&G.push("'"+this.terminals_[j]+"'");k.showPosition?Q="Parse error on line "+($+1)+`: +`+k.showPosition()+` +Expecting `+G.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Q="Parse error on line "+($+1)+": Unexpected "+(w==J?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Q,{text:k.match,token:this.terminals_[w]||w,line:k.yylineno,loc:_,expected:G})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(I[0]){case 1:h.push(w),y.push(k.yytext),o.push(k.yylloc),h.push(I[1]),w=null,C=k.yyleng,b=k.yytext,$=k.yylineno,_=k.yylloc;break;case 2:if(A=this.productions_[I[1]][1],V.$=y[y.length-A],V._$={first_line:o[o.length-(A||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(A||1)].first_column,last_column:o[o.length-1].last_column},M&&(V._$.range=[o[o.length-(A||1)].range[0],o[o.length-1].range[1]]),K=this.performAction.apply(V,[b,C,$,N.yy,I[1],y,o].concat(O)),typeof K<"u")return K;A&&(h=h.slice(0,-1*A*2),y=y.slice(0,-1*A),o=o.slice(0,-1*A)),h.push(this.productions_[I[1]][0]),y.push(V.$),o.push(V._$),et=S[h[h.length-2]][h[h.length-1]],h.push(et);break;case 3:return!0}}return!0},"parse")},x=(function(){var g={EOF:1,parseError:s(function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},"parseError"),setInput:s(function(r,a){return this.yy=a||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var a=r.length,h=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===u.length?this.yylloc.first_column:0)+u[u.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+a+"^"},"showPosition"),test_match:s(function(r,a){var h,u,y;if(this.options.backtrack_lexer&&(y={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(y.yylloc.range=this.yylloc.range.slice(0))),u=r[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var o in y)this[o]=y[o];return!1}return!1},"test_match"),next:s(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,a,h,u;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),o=0;oa[0].length)){if(a=h,u=o,this.options.backtrack_lexer){if(r=this.test_match(h,y[o]),r!==!1)return r;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(r=this.test_match(a,y[u]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:s(function(){var a=this.next();return a||this.lex()},"lex"),begin:s(function(a){this.conditionStack.push(a)},"begin"),popState:s(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:s(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:s(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:s(function(a){this.begin(a)},"pushState"),stateStackSize:s(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:s(function(a,h,u,y){switch(u){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return g})();p.lexer=x;function v(){this.yy={}}return s(v,"Parser"),v.prototype=p,p.Parser=v,new v})();X.parser=X;var Tt=X,at={};wt(at,{addEvent:()=>yt,addSection:()=>ht,addTask:()=>pt,addTaskOrg:()=>ft,clear:()=>ct,default:()=>It,getCommonDb:()=>ot,getSections:()=>dt,getTasks:()=>ut});var W="",lt=0,Y=[],U=[],z=[],ot=s(()=>St,"getCommonDb"),ct=s(function(){Y.length=0,U.length=0,W="",z.length=0,Et()},"clear"),ht=s(function(n){W=n,Y.push(n)},"addSection"),dt=s(function(){return Y},"getSections"),ut=s(function(){let n=it();const t=100;let e=0;for(;!n&&ee.id===lt-1).events.push(n)},"addEvent"),ft=s(function(n){const t={section:W,type:W,description:n,task:n,classes:[]};U.push(t)},"addTaskOrg"),it=s(function(){const n=s(function(e){return z[e].processed},"compileTask");let t=!0;for(const[e,l]of z.entries())n(e),t=t&&l.processed;return t},"compileTasks"),It={clear:ct,getCommonDb:ot,addSection:ht,getSections:dt,getTasks:ut,addTask:pt,addTaskOrg:ft,addEvent:yt},Nt=12,Z=s(function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},"drawRect"),Lt=s(function(n,t){const l=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=n.append("g");i.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function d(m){const p=nt().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);m.append("path").attr("class","mouth").attr("d",p).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}s(d,"smile");function c(m){const p=nt().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);m.append("path").attr("class","mouth").attr("d",p).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}s(c,"sad");function f(m){m.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s(f,"ambivalent"),t.score>3?d(i):t.score<3?c(i):f(i),l},"drawFace"),$t=s(function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},"drawCircle"),gt=s(function(n,t){const e=t.text.replace(//gi," "),l=n.append("text");l.attr("x",t.x),l.attr("y",t.y),l.attr("class","legend"),l.style("text-anchor",t.anchor),t.class!==void 0&&l.attr("class",t.class);const i=l.append("tspan");return i.attr("x",t.x+t.textMargin*2),i.text(e),l},"drawText"),Mt=s(function(n,t){function e(i,d,c,f,m){return i+","+d+" "+(i+c)+","+d+" "+(i+c)+","+(d+f-m)+" "+(i+c-m*1.2)+","+(d+f)+" "+i+","+(d+f)}s(e,"genPoints");const l=n.append("polygon");l.attr("points",e(t.x,t.y,50,20,7)),l.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,gt(n,t)},"drawLabel"),Ht=s(function(n,t,e){const l=n.append("g"),i=D();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=e.width,i.height=e.height,i.class="journey-section section-type-"+t.num,i.rx=3,i.ry=3,Z(l,i),mt(e)(t.text,l,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+t.num},e,t.colour)},"drawSection"),rt=-1,At=s(function(n,t,e){const l=t.x+e.width/2,i=n.append("g");rt++,i.append("line").attr("id","task"+rt).attr("x1",l).attr("y1",t.y).attr("x2",l).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Lt(i,{cx:l,cy:300+(5-t.score)*30,score:t.score});const c=D();c.x=t.x,c.y=t.y,c.fill=t.fill,c.width=e.width,c.height=e.height,c.class="task task-type-"+t.num,c.rx=3,c.ry=3,Z(i,c),mt(e)(t.task,i,c.x,c.y,c.width,c.height,{class:"task"},e,t.colour)},"drawTask"),Pt=s(function(n,t){Z(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),Ct=s(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),D=s(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),mt=(function(){function n(i,d,c,f,m,p,x,v){const g=d.append("text").attr("x",c+m/2).attr("y",f+p/2+5).style("font-color",v).style("text-anchor","middle").text(i);l(g,x)}s(n,"byText");function t(i,d,c,f,m,p,x,v,g){const{taskFontSize:r,taskFontFamily:a}=v,h=i.split(//gi);for(let u=0;u)/).reverse(),i,d=[],c=1.1,f=e.attr("y"),m=parseFloat(e.attr("dy")),p=e.text(null).append("tspan").attr("x",0).attr("y",f).attr("dy",m+"em");for(let x=0;xt||i==="
    ")&&(d.pop(),p.text(d.join(" ").trim()),i==="
    "?d=[""]:d=[i],p=e.append("tspan").attr("x",0).attr("y",f).attr("dy",c+"em").text(i))})}s(tt,"wrap");var Ft=s(function(n,t,e,l){var v;const i=e%Nt-1,d=n.append("g");t.section=i,d.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+i));const c=d.append("g"),f=d.append("g"),p=f.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(tt,t.width).node().getBBox(),x=(v=l.fontSize)!=null&&v.replace?l.fontSize.replace("px",""):l.fontSize;return t.height=p.height+x*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,f.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),Wt(c,t,i,l),t},"drawNode"),Vt=s(function(n,t,e){var f;const l=n.append("g"),d=l.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(tt,t.width).node().getBBox(),c=(f=e.fontSize)!=null&&f.replace?e.fontSize.replace("px",""):e.fontSize;return l.remove(),d.height+c*1.1*.5+t.padding},"getVirtualNodeHeight"),Wt=s(function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+10} q0,-5 5,-5 h${t.width-10} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),F={drawRect:Z,drawCircle:$t,drawSection:Ht,drawText:gt,drawLabel:Mt,drawTask:At,drawBackgroundRect:Pt,getTextObj:Ct,getNoteRect:D,initGraphics:Rt,drawNode:Ft,getVirtualNodeHeight:Vt},zt=s(function(n,t,e,l){var O,k,N;const i=xt(),d=((O=i.timeline)==null?void 0:O.leftMargin)??50;E.debug("timeline",l.db);const c=i.securityLevel;let f;c==="sandbox"&&(f=q("#i"+t));const p=(c==="sandbox"?q(f.nodes()[0].contentDocument.body):q("body")).select("#"+t);p.append("g");const x=l.db.getTasks(),v=l.db.getCommonDb().getDiagramTitle();E.debug("task",x),F.initGraphics(p);const g=l.db.getSections();E.debug("sections",g);let r=0,a=0,h=0,u=0,y=50+d,o=50;u=50;let S=0,b=!0;g.forEach(function(L){const _={number:S,descr:L,section:S,width:150,padding:20,maxHeight:r},M=F.getVirtualNodeHeight(p,_,i);E.debug("sectionHeight before draw",M),r=Math.max(r,M+20)});let $=0,C=0;E.debug("tasks.length",x.length);for(const[L,_]of x.entries()){const M={number:L,descr:_,section:_.section,width:150,padding:20,maxHeight:a},R=F.getVirtualNodeHeight(p,M,i);E.debug("taskHeight before draw",R),a=Math.max(a,R+20),$=Math.max($,_.events.length);let P=0;for(const w of _.events){const H={descr:w,section:_.section,number:_.section,width:150,padding:20,maxHeight:50};P+=F.getVirtualNodeHeight(p,H,i)}_.events.length>0&&(P+=(_.events.length-1)*10),C=Math.max(C,P)}E.debug("maxSectionHeight before draw",r),E.debug("maxTaskHeight before draw",a),g&&g.length>0?g.forEach(L=>{const _=x.filter(w=>w.section===L),M={number:S,descr:L,section:S,width:200*Math.max(_.length,1)-50,padding:20,maxHeight:r};E.debug("sectionNode",M);const R=p.append("g"),P=F.drawNode(R,M,S,i);E.debug("sectionNode output",P),R.attr("transform",`translate(${y}, ${u})`),o+=r+50,_.length>0&&st(p,_,S,y,o,a,i,$,C,r,!1),y+=200*Math.max(_.length,1),o=u,S++}):(b=!1,st(p,x,S,y,o,a,i,$,C,r,!0));const B=p.node().getBBox();E.debug("bounds",B),v&&p.append("text").text(v).attr("x",B.width/2-d).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),h=b?r+a+150:a+100,p.append("g").attr("class","lineWrapper").append("line").attr("x1",d).attr("y1",h).attr("x2",B.width+3*d).attr("y2",h).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),bt(void 0,p,((k=i.timeline)==null?void 0:k.padding)??50,((N=i.timeline)==null?void 0:N.useMaxWidth)??!1)},"draw"),st=s(function(n,t,e,l,i,d,c,f,m,p,x){var v;for(const g of t){const r={descr:g.task,section:e,number:e,width:150,padding:20,maxHeight:d};E.debug("taskNode",r);const a=n.append("g").attr("class","taskWrapper"),u=F.drawNode(a,r,e,c).height;if(E.debug("taskHeight after draw",u),a.attr("transform",`translate(${l}, ${i})`),d=Math.max(d,u),g.events){const y=n.append("g").attr("class","lineWrapper");let o=d;i+=100,o=o+Bt(n,g.events,e,l,i,c),i-=100,y.append("line").attr("x1",l+190/2).attr("y1",i+d).attr("x2",l+190/2).attr("y2",i+d+100+m+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}l=l+200,x&&!((v=c.timeline)!=null&&v.disableMulticolor)&&e++}i=i-10},"drawTasks"),Bt=s(function(n,t,e,l,i,d){let c=0;const f=i;i=i+100;for(const m of t){const p={descr:m,section:e,number:e,width:150,padding:20,maxHeight:50};E.debug("eventNode",p);const x=n.append("g").attr("class","eventWrapper"),g=F.drawNode(x,p,e,d).height;c=c+g,x.attr("transform",`translate(${l}, ${i})`),i=i+10+g}return i=f,c},"drawEvents"),Ot={setConf:s(()=>{},"setConf"),draw:zt},jt=s(n=>{let t="";for(let e=0;e` + .edge { + stroke-width: 3; + } + ${jt(n)} + .section-root rect, .section-root path, .section-root circle { + fill: ${n.git0}; + } + .section-root text { + fill: ${n.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),qt=Gt,Kt={db:at,renderer:Ot,parser:Tt,styles:qt};export{Kt as diagram}; +//# sourceMappingURL=timeline-definition-XQNQX7LJ.js.map diff --git a/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js.map b/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js.map new file mode 100644 index 000000000000..73bcb15fc3b6 --- /dev/null +++ b/extensions/continue/gui/assets/timeline-definition-XQNQX7LJ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeline-definition-XQNQX7LJ.js","sources":["../../node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-XQNQX7LJ.mjs"],"sourcesContent":["import {\n clear,\n commonDb_exports,\n getConfig2 as getConfig,\n setupGraphViewbox\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __export,\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/timeline/parser/timeline.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"timeline\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"title\": 11, \"acc_title\": 12, \"acc_title_value\": 13, \"acc_descr\": 14, \"acc_descr_value\": 15, \"acc_descr_multiline_value\": 16, \"section\": 17, \"period_statement\": 18, \"event_statement\": 19, \"period\": 20, \"event\": 21, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"timeline\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 11: \"title\", 12: \"acc_title\", 13: \"acc_title_value\", 14: \"acc_descr\", 15: \"acc_descr_value\", 16: \"acc_descr_multiline_value\", 17: \"section\", 20: \"period\", 21: \"event\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 15:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 16:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])],\n defaultActions: {},\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n break;\n case 6:\n return 11;\n break;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n break;\n case 8:\n this.popState();\n return \"acc_title_value\";\n break;\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n break;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n break;\n case 14:\n return 17;\n break;\n case 15:\n return 21;\n break;\n case 16:\n return 20;\n break;\n case 17:\n return 6;\n break;\n case 18:\n return \"INVALID\";\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:timeline\\b)/i, /^(?:title\\s[^\\n]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^:\\n]+)/i, /^(?::\\s(?:[^:\\n]|:(?!\\s))+)/i, /^(?:[^#:\\n]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar timeline_default = parser;\n\n// src/diagrams/timeline/timelineDb.js\nvar timelineDb_exports = {};\n__export(timelineDb_exports, {\n addEvent: () => addEvent,\n addSection: () => addSection,\n addTask: () => addTask,\n addTaskOrg: () => addTaskOrg,\n clear: () => clear2,\n default: () => timelineDb_default,\n getCommonDb: () => getCommonDb,\n getSections: () => getSections,\n getTasks: () => getTasks\n});\nvar currentSection = \"\";\nvar currentTaskId = 0;\nvar sections = [];\nvar tasks = [];\nvar rawTasks = [];\nvar getCommonDb = /* @__PURE__ */ __name(() => commonDb_exports, \"getCommonDb\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear();\n}, \"clear\");\nvar addSection = /* @__PURE__ */ __name(function(txt) {\n currentSection = txt;\n sections.push(txt);\n}, \"addSection\");\nvar getSections = /* @__PURE__ */ __name(function() {\n return sections;\n}, \"getSections\");\nvar getTasks = /* @__PURE__ */ __name(function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n}, \"getTasks\");\nvar addTask = /* @__PURE__ */ __name(function(period, length, event) {\n const rawTask = {\n id: currentTaskId++,\n section: currentSection,\n type: currentSection,\n task: period,\n score: length ? length : 0,\n //if event is defined, then add it the events array\n events: event ? [event] : []\n };\n rawTasks.push(rawTask);\n}, \"addTask\");\nvar addEvent = /* @__PURE__ */ __name(function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n}, \"addEvent\");\nvar addTaskOrg = /* @__PURE__ */ __name(function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n}, \"addTaskOrg\");\nvar compileTasks = /* @__PURE__ */ __name(function() {\n const compileTask = /* @__PURE__ */ __name(function(pos) {\n return rawTasks[pos].processed;\n }, \"compileTask\");\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n}, \"compileTasks\");\nvar timelineDb_default = {\n clear: clear2,\n getCommonDb,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nimport { select as select2 } from \"d3\";\n\n// src/diagrams/timeline/svgDraw.js\nimport { arc as d3arc, select } from \"d3\";\nvar MAX_SECTIONS = 12;\nvar drawRect = /* @__PURE__ */ __name(function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.class !== void 0) {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n}, \"drawRect\");\nvar drawFace = /* @__PURE__ */ __name(function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n __name(smile, \"smile\");\n function sad(face2) {\n const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n __name(sad, \"sad\");\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n __name(ambivalent, \"ambivalent\");\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n}, \"drawFace\");\nvar drawCircle = /* @__PURE__ */ __name(function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n}, \"drawCircle\");\nvar drawText = /* @__PURE__ */ __name(function(elem, textData) {\n const nText = textData.text.replace(//gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n __name(genPoints, \"genPoints\");\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n}, \"drawLabel\");\nvar drawSection = /* @__PURE__ */ __name(function(elem, section, conf) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf,\n section.colour\n );\n}, \"drawSection\");\nvar taskCount = -1;\nvar drawTask = /* @__PURE__ */ __name(function(elem, task, conf) {\n const center = task.x + conf.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf,\n task.colour\n );\n}, \"drawTask\");\nvar drawBackgroundRect = /* @__PURE__ */ __name(function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n class: \"rect\"\n });\n rectElem.lower();\n}, \"drawBackgroundRect\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n \"text-anchor\": \"start\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0\n };\n}, \"getTextObj\");\nvar getNoteRect = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n}, \"getNoteRect\");\nvar _drawTextCandidateFunc = /* @__PURE__ */ function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n __name(byText, \"byText\");\n function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n const { taskFontSize, taskFontFamily } = conf;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n __name(byTspan, \"byTspan\");\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n __name(byFo, \"byFo\");\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n __name(_setTextAttrs, \"_setTextAttrs\");\n return function(conf) {\n return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nvar initGraphics = /* @__PURE__ */ __name(function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n}, \"initGraphics\");\nfunction wrap(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/(\\s+|
    )/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n for (let j = 0; j < words.length; j++) {\n word = words[words.length - 1 - j];\n line.push(word);\n tspan.text(line.join(\" \").trim());\n if (tspan.node().getComputedTextLength() > width || word === \"
    \") {\n line.pop();\n tspan.text(line.join(\" \").trim());\n if (word === \"
    \") {\n line = [\"\"];\n } else {\n line = [word];\n }\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n }\n }\n });\n}\n__name(wrap, \"wrap\");\nvar drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf) {\n const section = fullSection % MAX_SECTIONS - 1;\n const nodeElem = elem.append(\"g\");\n node.section = section;\n nodeElem.attr(\n \"class\",\n (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n );\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.height = Math.max(node.height, node.maxHeight);\n node.width = node.width + 2 * node.padding;\n textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n defaultBkg(bkgElem, node, section, conf);\n return node;\n}, \"drawNode\");\nvar getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node, conf) {\n const textElem = elem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize?.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n}, \"getVirtualNodeHeight\");\nvar defaultBkg = /* @__PURE__ */ __name(function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n}, \"defaultBkg\");\nvar svgDraw_default = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n getTextObj,\n getNoteRect,\n initGraphics,\n drawNode,\n getVirtualNodeHeight\n};\n\n// src/diagrams/timeline/timelineRenderer.ts\nvar draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {\n const conf = getConfig();\n const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select2(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select2(sandboxElement.nodes()[0].contentDocument.body) : select2(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw_default.initGraphics(svg);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n let depthY = 0;\n let sectionBeginY = 0;\n let masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n sectionBeginY = 50;\n let sectionNumber = 0;\n let hasSections = true;\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n });\n let maxEventCount = 0;\n let maxEventLineLength = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n maxEventCount = Math.max(maxEventCount, task.events.length);\n let maxEventLineLengthTemp = 0;\n for (const event of task.events) {\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n maxEventLineLengthTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);\n }\n if (task.events.length > 0) {\n maxEventLineLengthTemp += (task.events.length - 1) * 10;\n }\n maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n if (sections2 && sections2.length > 0) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 200 * Math.max(tasksForSection.length, 1) - 50,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false\n );\n }\n masterX += 200 * Math.max(tasksForSection.length, 1);\n masterY = sectionBeginY;\n sectionNumber++;\n });\n } else {\n hasSections = false;\n drawTasks(\n svg,\n tasks2,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true\n );\n }\n const box = svg.node().getBBox();\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n }\n depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n setupGraphViewbox(\n void 0,\n svg,\n conf.timeline?.padding ?? 50,\n conf.timeline?.useMaxWidth ?? false\n );\n}, \"draw\");\nvar drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events) {\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n let lineLength = maxTaskHeight;\n masterY += 100;\n lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\"y2\", masterY + maxTaskHeight + 100 + maxEventLineLength + 100).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !conf.timeline?.disableMulticolor) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n}, \"drawTasks\");\nvar drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, masterX, masterY, conf) {\n let maxEventHeight = 0;\n const eventBeginY = masterY;\n masterY = masterY + 100;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf);\n const eventHeight = node.height;\n maxEventHeight = maxEventHeight + eventHeight;\n eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n masterY = masterY + 10 + eventHeight;\n }\n masterY = eventBeginY;\n return maxEventHeight;\n}, \"drawEvents\");\nvar timelineRenderer_default = {\n setConf: /* @__PURE__ */ __name(() => {\n }, \"setConf\"),\n draw\n};\n\n// src/diagrams/timeline/styles.js\nimport { darken, lighten, isDark } from \"khroma\";\nvar genSections = /* @__PURE__ */ __name((options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${options[\"cScaleLabel\" + i]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections2;\n}, \"genSections\");\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/timeline/timeline-definition.ts\nvar diagram = {\n db: timelineDb_exports,\n renderer: timelineRenderer_default,\n parser: timeline_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","timeline_default","timelineDb_exports","__export","addEvent","addSection","addTask","addTaskOrg","clear2","timelineDb_default","getCommonDb","getSections","getTasks","currentSection","currentTaskId","sections","tasks","rawTasks","commonDb_exports","clear","txt","allItemsProcessed","compileTasks","maxDepth","iterationCount","period","length","event","rawTask","task","descr","newTask","compileTask","pos","allProcessed","MAX_SECTIONS","drawRect","elem","rectData","rectElem","drawFace","element","faceData","circleElement","face","smile","face2","arc","d3arc","sad","ambivalent","drawCircle","circleData","drawText","textData","nText","textElem","span","drawLabel","txtObject","genPoints","x","y","width","height","cut","polygon","drawSection","section","conf","g","rect","getNoteRect","_drawTextCandidateFunc","taskCount","drawTask","center","drawBackgroundRect","bounds","getTextObj","byText","content","textAttrs","colour","text","_setTextAttrs","byTspan","taskFontSize","taskFontFamily","dy","byFo","body","toText","fromTextAttrsDict","key","initGraphics","graphics","wrap","text2","select","words","word","line","lineHeight","tspan","j","drawNode","node","fullSection","nodeElem","bkgElem","bbox","fontSize","_a","defaultBkg","getVirtualNodeHeight","svgDraw_default","draw","id","version","diagObj","getConfig","LEFT_MARGIN","log","securityLevel","sandboxElement","select2","svg","tasks2","title","sections2","maxSectionHeight","maxTaskHeight","depthY","sectionBeginY","masterX","masterY","sectionNumber","hasSections","sectionNode","sectionHeight","maxEventCount","maxEventLineLength","taskNode","taskHeight","maxEventLineLengthTemp","eventNode","tasksForSection","sectionNodeWrapper","drawTasks","box","setupGraphViewbox","_b","_c","diagram2","sectionColor","isWithoutSections","taskWrapper","lineWrapper","lineLength","drawEvents","events","maxEventHeight","eventBeginY","eventWrapper","eventHeight","timelineRenderer_default","genSections","options","isDark","lighten","darken","sw","getStyles","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/extensions/continue/gui/assets/treemap-75Q7IDZK.js b/extensions/continue/gui/assets/treemap-75Q7IDZK.js new file mode 100644 index 000000000000..a08bfe34209b --- /dev/null +++ b/extensions/continue/gui/assets/treemap-75Q7IDZK.js @@ -0,0 +1,129 @@ +var _u=Object.defineProperty;var Lu=(n,e,t)=>e in n?_u(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>Lu(n,typeof e!="symbol"?e+"":e,t);import{bA as bu,bB as Ou,aU as xl,bk as Pu,aY as Mu,aV as te,aA as Du,aB as ya,ba as Fu,bd as Il,be as Cl,bb as Gu,bp as Ta,aD as kt,aE as D,aW as Ra,aQ as Uu,bC as ht}from"./index.js";import{k as Jt,j as Bs,g as sn,S as Bu,w as Vu,x as Ku,c as Nl,v as z,y as wl,l as Wu,z as ju,A as Hu,B as zu,C as qu,a as _l,d as C,i as Ye,r as le,f as $e,D as Y}from"./_baseUniq.js";import{j as Vs,m as S,d as Yu,f as Ne,g as Qt,h as N,i as Ks,l as Zt,e as Xu}from"./_basePickBy.js";import{c as re}from"./clone.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="a536c9f6-703c-4658-bfdf-5bec2afcf349",n._sentryDebugIdIdentifier="sentry-dbid-a536c9f6-703c-4658-bfdf-5bec2afcf349")})()}catch{}var Ju=Object.prototype,Qu=Ju.hasOwnProperty,ke=bu(function(n,e){if(Ou(e)||xl(e)){Pu(e,Jt(e),n);return}for(var t in e)Qu.call(e,t)&&Mu(n,t,e[t])});function Ll(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r=nd&&(s=Ku,a=!1,e=new Bu(e));e:for(;++i-1:!!i&&wl(n,e,t)>-1}function va(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return wl(n,e,i)}var dd="[object RegExp]";function fd(n){return Il(n)&&Cl(n)==dd}var Aa=Ta&&Ta.isRegExp,Xe=Aa?Gu(Aa):fd,hd="Expected a function";function pd(n){if(typeof n!="function")throw new TypeError(hd);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Me(n,e){if(n==null)return{};var t=Wu(ju(n),function(r){return[r]});return e=sn(e),Yu(n,t,function(r,i){return e(r,i[0])})}function mi(n,e){var t=te(n)?Hu:zu;return t(n,pd(sn(e)))}function md(n,e){var t;return Bs(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function bl(n,e,t){var r=te(n)?qu:md;return r(n,sn(e))}function Ws(n){return n&&n.length?_l(n):[]}function gd(n,e){return n&&n.length?_l(n,sn(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function yd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function wr(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Jn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Pl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Ml(n){return Jn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Td(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(jr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(jr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Td(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function jr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Rd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(jr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ss;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(ss||(ss={}));function as(n){return new js(n,e=>Jn(e)?e.content:[],{includeRoot:!0})}function vd(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function os(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Hr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function Ad(n,e){if(n.end.linee.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.lineHe.After}const kd=/^[\w\p{L}]$/u;function $d(n,e){if(n){const t=Sd(n,!0);if(t&&Ea(t,e))return t;if(Ml(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Ea(s,e))return s}}}}function Ea(n,e){return Pl(n)&&e.includes(n.tokenType.name)}function Sd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class Dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function tr(n){throw new Error("Error! The input value was not handled.")}const lr="AbstractRule",cr="AbstractType",_i="Condition",ka="TypeDefinition",Li="ValueLiteral",hn="AbstractElement";function xd(n){return M.isInstance(n,hn)}const ur="ArrayLiteral",dr="ArrayType",pn="BooleanLiteral";function Id(n){return M.isInstance(n,pn)}const mn="Conjunction";function Cd(n){return M.isInstance(n,mn)}const gn="Disjunction";function Nd(n){return M.isInstance(n,gn)}const fr="Grammar",bi="GrammarImport",yn="InferredType";function Fl(n){return M.isInstance(n,yn)}const Tn="Interface";function Gl(n){return M.isInstance(n,Tn)}const Oi="NamedArgument",Rn="Negation";function wd(n){return M.isInstance(n,Rn)}const hr="NumberLiteral",pr="Parameter",vn="ParameterReference";function _d(n){return M.isInstance(n,vn)}const An="ParserRule";function we(n){return M.isInstance(n,An)}const mr="ReferenceType",_r="ReturnType";function Ld(n){return M.isInstance(n,_r)}const En="SimpleType";function bd(n){return M.isInstance(n,En)}const gr="StringLiteral",wt="TerminalRule";function $t(n){return M.isInstance(n,wt)}const kn="Type";function Ul(n){return M.isInstance(n,kn)}const Pi="TypeAttribute",yr="UnionType",$n="Action";function gi(n){return M.isInstance(n,$n)}const Sn="Alternatives";function Bl(n){return M.isInstance(n,Sn)}const xn="Assignment";function yt(n){return M.isInstance(n,xn)}const In="CharacterRange";function Od(n){return M.isInstance(n,In)}const Cn="CrossReference";function Hs(n){return M.isInstance(n,Cn)}const Nn="EndOfFile";function Pd(n){return M.isInstance(n,Nn)}const wn="Group";function zs(n){return M.isInstance(n,wn)}const _n="Keyword";function Tt(n){return M.isInstance(n,_n)}const Ln="NegatedToken";function Md(n){return M.isInstance(n,Ln)}const bn="RegexToken";function Dd(n){return M.isInstance(n,bn)}const On="RuleCall";function Rt(n){return M.isInstance(n,On)}const Pn="TerminalAlternatives";function Fd(n){return M.isInstance(n,Pn)}const Mn="TerminalGroup";function Gd(n){return M.isInstance(n,Mn)}const Dn="TerminalRuleCall";function Ud(n){return M.isInstance(n,Dn)}const Fn="UnorderedGroup";function Vl(n){return M.isInstance(n,Fn)}const Gn="UntilToken";function Bd(n){return M.isInstance(n,Gn)}const Un="Wildcard";function Vd(n){return M.isInstance(n,Un)}class Kl extends Ol{getAllTypes(){return[hn,lr,cr,$n,Sn,ur,dr,xn,pn,In,_i,mn,Cn,gn,Nn,fr,bi,wn,yn,Tn,_n,Oi,Ln,Rn,hr,pr,vn,An,mr,bn,_r,On,En,gr,Pn,Mn,wt,Dn,kn,Pi,ka,yr,Fn,Gn,Li,Un]}computeIsSubtype(e,t){switch(e){case $n:case Sn:case xn:case In:case Cn:case Nn:case wn:case _n:case Ln:case bn:case On:case Pn:case Mn:case Dn:case Fn:case Gn:case Un:return this.isSubtype(hn,t);case ur:case hr:case gr:return this.isSubtype(Li,t);case dr:case mr:case En:case yr:return this.isSubtype(ka,t);case pn:return this.isSubtype(_i,t)||this.isSubtype(Li,t);case mn:case gn:case Rn:case vn:return this.isSubtype(_i,t);case yn:case Tn:case kn:return this.isSubtype(cr,t);case An:return this.isSubtype(lr,t)||this.isSubtype(cr,t);case wt:return this.isSubtype(lr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return cr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return lr;case"Grammar:usedGrammars":return fr;case"NamedArgument:parameter":case"ParameterReference:parameter":return pr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case hn:return{name:hn,properties:[{name:"cardinality"},{name:"lookahead"}]};case ur:return{name:ur,properties:[{name:"elements",defaultValue:[]}]};case dr:return{name:dr,properties:[{name:"elementType"}]};case pn:return{name:pn,properties:[{name:"true",defaultValue:!1}]};case mn:return{name:mn,properties:[{name:"left"},{name:"right"}]};case gn:return{name:gn,properties:[{name:"left"},{name:"right"}]};case fr:return{name:fr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"path"}]};case yn:return{name:yn,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Rn:return{name:Rn,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"value"}]};case pr:return{name:pr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"parameter"}]};case An:return{name:An,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case mr:return{name:mr,properties:[{name:"referenceType"}]};case _r:return{name:_r,properties:[{name:"name"}]};case En:return{name:En,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case gr:return{name:gr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case yr:return{name:yr,properties:[{name:"types",defaultValue:[]}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case On:return{name:On,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Gn:return{name:Gn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Un:return{name:Un,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Kl;function Kd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function yi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=ls(n).$document;if(!t)throw new Error("AST node has no document.");return t}function ls(n){for(;n.$container;)n=n.$container;return n}function qs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndexqs(t,e))}function Lt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e),{includeRoot:!0})}function $a(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Ed(r,e):!1}function Wl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class Ti{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const qd=/\r?\n/gm,Yd=new Hl;class Xd extends Ti{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const r=Ri(t);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),r=new RegExp(t);this.multiline=!!` +`.match(r)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}}const Di=new Xd;function Jd(n){try{return typeof n=="string"&&(n=new RegExp(n)),n=n.toString(),Di.reset(n),Di.visit(Yd.pattern(n)),Di.multiline}catch{return!1}}const Qd=`\f +\r \v              \u2028\u2029   \uFEFF`.split("");function cs(n){const e=typeof n=="string"?new RegExp(n):n;return Qd.some(t=>e.test(t))}function Ri(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Zd(n){return Array.prototype.map.call(n,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Ri(e)).join("")}function ef(n,e){const t=tf(n),r=e.match(t);return!!r&&r[0].length>0}function tf(n){typeof n=="string"&&(n=new RegExp(n));const e=n,t=n.source;let r=0;function i(){let s="",a;function o(c){s+=t.substr(r,c),r+=c}function l(c){s+="(?:"+t.substr(r,c)+"|$)",r+=c}for(;r",r)-r+1);break;default:l(2);break}break;case"[":a=/\[(?:\\.|.)*?\]/g,a.lastIndex=r,a=a.exec(t)||[],l(a[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":o(1);break;case"{":a=/\{\d+,?\d*\}/g,a.lastIndex=r,a=a.exec(t),a?o(a[0].length):l(1);break;case"(":if(t[r+1]==="?")switch(t[r+2]){case":":s+="(?:",r+=3,s+=i()+"|$)";break;case"=":s+="(?=",r+=3,s+=i()+")";break;case"!":a=r,r+=3,i(),s+=t.substr(a,r-a);break;case"<":switch(t[r+3]){case"=":case"!":a=r,r+=4,i(),s+=t.substr(a,r-a);break;default:o(t.indexOf(">",r)-r+1),s+=i()+"|$)";break}break}else o(1),s+=i()+"|$)";break;case")":return++r,s;default:l(1);break}return s}return new RegExp(i(),n.flags)}function nf(n){return n.rules.find(e=>we(e)&&e.entry)}function rf(n){return n.rules.filter(e=>$t(e)&&e.hidden)}function zl(n,e){const t=new Set,r=nf(n);if(!r)return new Set(n.rules);const i=[r].concat(rf(n));for(const a of i)ql(a,t,e);const s=new Set;for(const a of n.rules)(t.has(a.name)||$t(a)&&a.hidden)&&s.add(a);return s}function ql(n,e,t){e.add(n.name),nr(n).forEach(r=>{if(Rt(r)||t){const i=r.rule.ref;i&&!e.has(i.name)&&ql(i,e,t)}})}function sf(n){if(n.terminal)return n.terminal;if(n.type.ref){const e=Xl(n.type.ref);return e==null?void 0:e.terminal}}function af(n){return n.hidden&&!cs(Qs(n))}function of(n,e){return!n||!e?[]:Ys(n,e,n.astNode,!0)}function Yl(n,e,t){if(!n||!e)return;const r=Ys(n,e,n.astNode,!0);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function Ys(n,e,t,r){if(!r){const i=yi(n.grammarSource,yt);if(i&&i.feature===e)return[n]}return Jn(n)&&n.astNode===t?n.content.flatMap(i=>Ys(i,e,t,!1)):[]}function lf(n,e,t){if(!n)return;const r=cf(n,e,n==null?void 0:n.astNode);if(r.length!==0)return t!==void 0?t=Math.max(0,Math.min(t,r.length-1)):t=0,r[t]}function cf(n,e,t){if(n.astNode!==t)return[];if(Tt(n.grammarSource)&&n.grammarSource.value===e)return[n];const r=as(n).iterator();let i;const s=[];do if(i=r.next(),!i.done){const a=i.value;a.astNode===t?Tt(a.grammarSource)&&a.grammarSource.value===e&&s.push(a):r.prune()}while(!i.done);return s}function uf(n){var e;const t=n.astNode;for(;t===((e=n.container)===null||e===void 0?void 0:e.astNode);){const r=yi(n.grammarSource,yt);if(r)return r;n=n.container}}function Xl(n){let e=n;return Fl(e)&&(gi(e.$container)?e=e.$container.$container:we(e.$container)?e=e.$container:tr(e.$container)),Jl(n,e,new Map)}function Jl(n,e,t){var r;function i(s,a){let o;return yi(s,yt)||(o=Jl(a,a,t)),t.set(n,o),o}if(t.has(n))return t.get(n);t.set(n,void 0);for(const s of nr(e)){if(yt(s)&&s.feature.toLowerCase()==="name")return t.set(n,s),s;if(Rt(s)&&we(s.rule.ref))return i(s,s.rule.ref);if(bd(s)&&(!((r=s.typeRef)===null||r===void 0)&&r.ref))return i(s,s.typeRef.ref)}}function Ql(n){return Zl(n,new Set)}function Zl(n,e){if(e.has(n))return!0;e.add(n);for(const t of nr(n))if(Rt(t)){if(!t.rule.ref||we(t.rule.ref)&&!Zl(t.rule.ref,e))return!1}else{if(yt(t))return!1;if(gi(t))return!1}return!!n.definition}function Xs(n){if(n.inferredType)return n.inferredType.name;if(n.dataType)return n.dataType;if(n.returnType){const e=n.returnType.ref;if(e){if(we(e))return e.name;if(Gl(e)||Ul(e))return e.name}}}function Js(n){var e;if(we(n))return Ql(n)?n.name:(e=Xs(n))!==null&&e!==void 0?e:n.name;if(Gl(n)||Ul(n)||Ld(n))return n.name;if(gi(n)){const t=df(n);if(t)return t}else if(Fl(n))return n.name;throw new Error("Cannot get name of Unknown Type")}function df(n){var e;if(n.inferredType)return n.inferredType.name;if(!((e=n.type)===null||e===void 0)&&e.ref)return Js(n.type.ref)}function ff(n){var e,t,r;return $t(n)?(t=(e=n.type)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:"string":(r=Xs(n))!==null&&r!==void 0?r:n.name}function Qs(n){const e={s:!1,i:!1,u:!1},t=an(n.definition,e),r=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(t,r)}const Zs=/[\s\S]/.source;function an(n,e){if(Fd(n))return hf(n);if(Gd(n))return pf(n);if(Od(n))return yf(n);if(Ud(n)){const t=n.rule.ref;if(!t)throw new Error("Missing rule reference.");return qe(an(t.definition),{cardinality:n.cardinality,lookahead:n.lookahead})}else{if(Md(n))return gf(n);if(Bd(n))return mf(n);if(Dd(n)){const t=n.regex.lastIndexOf("/"),r=n.regex.substring(1,t),i=n.regex.substring(t+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),qe(r,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}else{if(Vd(n))return qe(Zs,{cardinality:n.cardinality,lookahead:n.lookahead});throw new Error(`Invalid terminal element: ${n==null?void 0:n.$type}`)}}}function hf(n){return qe(n.elements.map(e=>an(e)).join("|"),{cardinality:n.cardinality,lookahead:n.lookahead})}function pf(n){return qe(n.elements.map(e=>an(e)).join(""),{cardinality:n.cardinality,lookahead:n.lookahead})}function mf(n){return qe(`${Zs}*?${an(n.terminal)}`,{cardinality:n.cardinality,lookahead:n.lookahead})}function gf(n){return qe(`(?!${an(n.terminal)})${Zs}*?`,{cardinality:n.cardinality,lookahead:n.lookahead})}function yf(n){return n.right?qe(`[${Fi(n.left)}-${Fi(n.right)}]`,{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1}):qe(Fi(n.left),{cardinality:n.cardinality,lookahead:n.lookahead,wrap:!1})}function Fi(n){return Ri(n.value)}function qe(n,e){var t;return(e.wrap!==!1||e.lookahead)&&(n=`(${(t=e.lookahead)!==null&&t!==void 0?t:""}${n})`),e.cardinality?`${n}${e.cardinality}`:n}function Tf(n){const e=[],t=n.Grammar;for(const r of t.rules)$t(r)&&af(r)&&Jd(Qs(r))&&e.push(r.name);return{multilineCommentRules:e,nameRegexp:kd}}function us(n){console&&console.error&&console.error(`Error: ${n}`)}function ec(n){console&&console.warn&&console.warn(`Warning: ${n}`)}function tc(n){const e=new Date().getTime(),t=n();return{time:new Date().getTime()-e,value:t}}function nc(n){function e(){}e.prototype=n;const t=new e;function r(){return typeof t.bar}return r(),r(),n}function Rf(n){return vf(n)?n.LABEL:n.name}function vf(n){return he(n.LABEL)&&n.LABEL!==""}class Be{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),C(this.definition,t=>{t.accept(e)})}}class ce extends Be{constructor(e){super([]),this.idx=1,ke(this,Me(e,t=>t!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class on extends Be{constructor(e){super(e.definition),this.orgText="",ke(this,Me(e,t=>t!==void 0))}}class pe extends Be{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ke(this,Me(e,t=>t!==void 0))}}let ne=class extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}};class Se extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class xe extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class W extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class me extends Be{constructor(e){super(e.definition),this.idx=1,ke(this,Me(e,t=>t!==void 0))}}class ge extends Be{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ke(this,Me(e,t=>t!==void 0))}}class G{constructor(e){this.idx=1,ke(this,Me(e,t=>t!==void 0))}accept(e){e.visit(this)}}function Af(n){return S(n,Lr)}function Lr(n){function e(t){return S(t,Lr)}if(n instanceof ce){const t={type:"NonTerminal",name:n.nonTerminalName,idx:n.idx};return he(n.label)&&(t.label=n.label),t}else{if(n instanceof pe)return{type:"Alternative",definition:e(n.definition)};if(n instanceof ne)return{type:"Option",idx:n.idx,definition:e(n.definition)};if(n instanceof Se)return{type:"RepetitionMandatory",idx:n.idx,definition:e(n.definition)};if(n instanceof xe)return{type:"RepetitionMandatoryWithSeparator",idx:n.idx,separator:Lr(new G({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof me)return{type:"RepetitionWithSeparator",idx:n.idx,separator:Lr(new G({terminalType:n.separator})),definition:e(n.definition)};if(n instanceof W)return{type:"Repetition",idx:n.idx,definition:e(n.definition)};if(n instanceof ge)return{type:"Alternation",idx:n.idx,definition:e(n.definition)};if(n instanceof G){const t={type:"Terminal",name:n.terminalType.name,label:Rf(n.terminalType),idx:n.idx};he(n.label)&&(t.terminalLabel=n.label);const r=n.terminalType.PATTERN;return n.terminalType.PATTERN&&(t.pattern=Xe(r)?r.source:r),t}else{if(n instanceof on)return{type:"Rule",name:n.name,orgText:n.orgText,definition:e(n.definition)};throw Error("non exhaustive match")}}}class ln{visit(e){const t=e;switch(t.constructor){case ce:return this.visitNonTerminal(t);case pe:return this.visitAlternative(t);case ne:return this.visitOption(t);case Se:return this.visitRepetitionMandatory(t);case xe:return this.visitRepetitionMandatoryWithSeparator(t);case me:return this.visitRepetitionWithSeparator(t);case W:return this.visitRepetition(t);case ge:return this.visitAlternation(t);case G:return this.visitTerminal(t);case on:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function Ef(n){return n instanceof pe||n instanceof ne||n instanceof W||n instanceof Se||n instanceof xe||n instanceof me||n instanceof G||n instanceof on}function Yr(n,e=[]){return n instanceof ne||n instanceof W||n instanceof me?!0:n instanceof ge?bl(n.definition,r=>Yr(r,e)):n instanceof ce&&de(e,n)?!1:n instanceof Be?(n instanceof ce&&e.push(n),Oe(n.definition,r=>Yr(r,e))):!1}function kf(n){return n instanceof ge}function Ge(n){if(n instanceof ce)return"SUBRULE";if(n instanceof ne)return"OPTION";if(n instanceof ge)return"OR";if(n instanceof Se)return"AT_LEAST_ONE";if(n instanceof xe)return"AT_LEAST_ONE_SEP";if(n instanceof me)return"MANY_SEP";if(n instanceof W)return"MANY";if(n instanceof G)return"CONSUME";throw Error("non exhaustive match")}class vi{walk(e,t=[]){C(e.definition,(r,i)=>{const s=Q(e.definition,i+1);if(r instanceof ce)this.walkProdRef(r,s,t);else if(r instanceof G)this.walkTerminal(r,s,t);else if(r instanceof pe)this.walkFlat(r,s,t);else if(r instanceof ne)this.walkOption(r,s,t);else if(r instanceof Se)this.walkAtLeastOne(r,s,t);else if(r instanceof xe)this.walkAtLeastOneSep(r,s,t);else if(r instanceof me)this.walkManySep(r,s,t);else if(r instanceof W)this.walkMany(r,s,t);else if(r instanceof ge)this.walkOr(r,s,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const i=t.concat(r);this.walk(e,i)}walkOption(e,t,r){const i=t.concat(r);this.walk(e,i)}walkAtLeastOne(e,t,r){const i=[new ne({definition:e.definition})].concat(t,r);this.walk(e,i)}walkAtLeastOneSep(e,t,r){const i=Ia(e,t,r);this.walk(e,i)}walkMany(e,t,r){const i=[new ne({definition:e.definition})].concat(t,r);this.walk(e,i)}walkManySep(e,t,r){const i=Ia(e,t,r);this.walk(e,i)}walkOr(e,t,r){const i=t.concat(r);C(e.definition,s=>{const a=new pe({definition:[s]});this.walk(a,i)})}}function Ia(n,e,t){return[new ne({definition:[new G({terminalType:n.separator})].concat(n.definition)})].concat(e,t)}function rr(n){if(n instanceof ce)return rr(n.referencedRule);if(n instanceof G)return xf(n);if(Ef(n))return $f(n);if(kf(n))return Sf(n);throw Error("non exhaustive match")}function $f(n){let e=[];const t=n.definition;let r=0,i=t.length>r,s,a=!0;for(;i&&a;)s=t[r],a=Yr(s),e=e.concat(rr(s)),r=r+1,i=t.length>r;return Ws(e)}function Sf(n){const e=S(n.definition,t=>rr(t));return Ws(Ne(e))}function xf(n){return[n.terminalType]}const rc="_~IN~_";class If extends vi{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const i=Nf(e.referencedRule,e.idx)+this.topProd.name,s=t.concat(r),a=new pe({definition:s}),o=rr(a);this.follows[i]=o}}function Cf(n){const e={};return C(n,t=>{const r=new If(t).startWalking();ke(e,r)}),e}function Nf(n,e){return n.name+e+rc}let br={};const wf=new Hl;function Ai(n){const e=n.toString();if(br.hasOwnProperty(e))return br[e];{const t=wf.pattern(e);return br[e]=t,t}}function _f(){br={}}const ic="Complement Sets are not supported for first char optimization",Xr=`Unable to use "first char" lexer optimizations: +`;function Lf(n,e=!1){try{const t=Ai(n);return ds(t.value,{},t.flags.ignoreCase)}catch(t){if(t.message===ic)e&&ec(`${Xr} Unable to optimize: < ${n.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";e&&(r=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),us(`${Xr} + Failed parsing: < ${n.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function ds(n,e,t){switch(n.type){case"Disjunction":for(let i=0;i{if(typeof l=="number")Rr(l,e,t);else{const c=l;if(t===!0)for(let u=c.from;u<=c.to;u++)Rr(u,e,t);else{for(let u=c.from;u<=c.to&&u=Vn){const u=c.from>=Vn?c.from:Vn,d=c.to,h=tt(u),f=tt(d);for(let m=h;m<=f;m++)e[m]=m}}}});break;case"Group":ds(a.value,e,t);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==void 0&&a.quantifier.atLeast===0;if(a.type==="Group"&&fs(a)===!1||a.type!=="Group"&&o===!1)break}break;default:throw Error("non exhaustive match!")}return z(e)}function Rr(n,e,t){const r=tt(n);e[r]=r,t===!0&&bf(n,e)}function bf(n,e){const t=String.fromCharCode(n),r=t.toUpperCase();if(r!==t){const i=tt(r.charCodeAt(0));e[i]=i}else{const i=t.toLowerCase();if(i!==t){const s=tt(i.charCodeAt(0));e[s]=s}}}function Ca(n,e){return Qt(n.value,t=>{if(typeof t=="number")return de(e,t);{const r=t;return Qt(e,i=>r.from<=i&&i<=r.to)!==void 0}})}function fs(n){const e=n.quantifier;return e&&e.atLeast===0?!0:n.value?te(n.value)?Oe(n.value,fs):fs(n.value):!1}class Of extends Ti{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){de(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Ca(e,this.targetCharCodes)===void 0&&(this.found=!0):Ca(e,this.targetCharCodes)!==void 0&&(this.found=!0)}}function ea(n,e){if(e instanceof RegExp){const t=Ai(e),r=new Of(n);return r.visit(t),r.found}else return Qt(e,t=>de(n,t.charCodeAt(0)))!==void 0}const vt="PATTERN",Bn="defaultMode",vr="modes";let sc=typeof new RegExp("(?:)").sticky=="boolean";function Pf(n,e){e=Ks(e,{useSticky:sc,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:(E,R)=>R()});const t=e.tracer;t("initCharCodeToOptimizedIndexMap",()=>{ih()});let r;t("Reject Lexer.NA",()=>{r=mi(n,E=>E[vt]===fe.NA)});let i=!1,s;t("Transform Patterns",()=>{i=!1,s=S(r,E=>{const R=E[vt];if(Xe(R)){const I=R.source;return I.length===1&&I!=="^"&&I!=="$"&&I!=="."&&!R.ignoreCase?I:I.length===2&&I[0]==="\\"&&!de(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],I[1])?I[1]:e.useSticky?wa(R):Na(R)}else{if(kt(R))return i=!0,{exec:R};if(typeof R=="object")return i=!0,R;if(typeof R=="string"){if(R.length===1)return R;{const I=R.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),F=new RegExp(I);return e.useSticky?wa(F):Na(F)}}else throw Error("non exhaustive match")}})});let a,o,l,c,u;t("misc mapping",()=>{a=S(r,E=>E.tokenTypeIdx),o=S(r,E=>{const R=E.GROUP;if(R!==fe.SKIPPED){if(he(R))return R;if(Ye(R))return!1;throw Error("non exhaustive match")}}),l=S(r,E=>{const R=E.LONGER_ALT;if(R)return te(R)?S(R,F=>va(r,F)):[va(r,R)]}),c=S(r,E=>E.PUSH_MODE),u=S(r,E=>N(E,"POP_MODE"))});let d;t("Line Terminator Handling",()=>{const E=lc(e.lineTerminatorCharacters);d=S(r,R=>!1),e.positionTracking!=="onlyOffset"&&(d=S(r,R=>N(R,"LINE_BREAKS")?!!R.LINE_BREAKS:oc(R,E)===!1&&ea(E,R.PATTERN)))});let h,f,m,g;t("Misc Mapping #2",()=>{h=S(r,ac),f=S(s,th),m=le(r,(E,R)=>{const I=R.GROUP;return he(I)&&I!==fe.SKIPPED&&(E[I]=[]),E},{}),g=S(s,(E,R)=>({pattern:s[R],longerAlt:l[R],canLineTerminator:d[R],isCustom:h[R],short:f[R],group:o[R],push:c[R],pop:u[R],tokenTypeIdx:a[R],tokenType:r[R]}))});let A=!0,y=[];return e.safeMode||t("First Char Optimization",()=>{y=le(r,(E,R,I)=>{if(typeof R.PATTERN=="string"){const F=R.PATTERN.charCodeAt(0),ie=tt(F);Gi(E,ie,g[I])}else if(te(R.START_CHARS_HINT)){let F;C(R.START_CHARS_HINT,ie=>{const _e=typeof ie=="string"?ie.charCodeAt(0):ie,ye=tt(_e);F!==ye&&(F=ye,Gi(E,ye,g[I]))})}else if(Xe(R.PATTERN))if(R.PATTERN.unicode)A=!1,e.ensureOptimizations&&us(`${Xr} Unable to analyze < ${R.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const F=Lf(R.PATTERN,e.ensureOptimizations);D(F)&&(A=!1),C(F,ie=>{Gi(E,ie,g[I])})}else e.ensureOptimizations&&us(`${Xr} TokenType: <${R.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),A=!1;return E},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:y,hasCustom:i,canBeOptimized:A}}function Mf(n,e){let t=[];const r=Ff(n);t=t.concat(r.errors);const i=Gf(r.valid),s=i.valid;return t=t.concat(i.errors),t=t.concat(Df(s)),t=t.concat(zf(s)),t=t.concat(qf(s,e)),t=t.concat(Yf(s)),t}function Df(n){let e=[];const t=$e(n,r=>Xe(r[vt]));return e=e.concat(Bf(t)),e=e.concat(Wf(t)),e=e.concat(jf(t)),e=e.concat(Hf(t)),e=e.concat(Vf(t)),e}function Ff(n){const e=$e(n,i=>!N(i,vt)),t=S(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:j.MISSING_PATTERN,tokenTypes:[i]})),r=pi(n,e);return{errors:t,valid:r}}function Gf(n){const e=$e(n,i=>{const s=i[vt];return!Xe(s)&&!kt(s)&&!N(s,"exec")&&!he(s)}),t=S(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:j.INVALID_PATTERN,tokenTypes:[i]})),r=pi(n,e);return{errors:t,valid:r}}const Uf=/[^\\][$]/;function Bf(n){class e extends Ti{constructor(){super(...arguments),this.found=!1}visitEndAnchor(s){this.found=!0}}const t=$e(n,i=>{const s=i.PATTERN;try{const a=Ai(s),o=new e;return o.visit(a),o.found}catch{return Uf.test(s.source)}});return S(t,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:j.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function Vf(n){const e=$e(n,r=>r.PATTERN.test(""));return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:j.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}const Kf=/[^\\[][\^]|^\^/;function Wf(n){class e extends Ti{constructor(){super(...arguments),this.found=!1}visitStartAnchor(s){this.found=!0}}const t=$e(n,i=>{const s=i.PATTERN;try{const a=Ai(s),o=new e;return o.visit(a),o.found}catch{return Kf.test(s.source)}});return S(t,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:j.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function jf(n){const e=$e(n,r=>{const i=r[vt];return i instanceof RegExp&&(i.multiline||i.global)});return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:j.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function Hf(n){const e=[];let t=S(n,s=>le(n,(a,o)=>(s.PATTERN.source===o.PATTERN.source&&!de(e,o)&&o.PATTERN!==fe.NA&&(e.push(o),a.push(o)),a),[]));t=er(t);const r=$e(t,s=>s.length>1);return S(r,s=>{const a=S(s,l=>l.name);return{message:`The same RegExp pattern ->${Pe(s).PATTERN}<-has been used in all of the following Token Types: ${a.join(", ")} <-`,type:j.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}})}function zf(n){const e=$e(n,r=>{if(!N(r,"GROUP"))return!1;const i=r.GROUP;return i!==fe.SKIPPED&&i!==fe.NA&&!he(i)});return S(e,r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:j.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function qf(n,e){const t=$e(n,i=>i.PUSH_MODE!==void 0&&!de(e,i.PUSH_MODE));return S(t,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:j.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function Yf(n){const e=[],t=le(n,(r,i,s)=>{const a=i.PATTERN;return a===fe.NA||(he(a)?r.push({str:a,idx:s,tokenType:i}):Xe(a)&&Jf(a)&&r.push({str:a.source,idx:s,tokenType:i})),r},[]);return C(n,(r,i)=>{C(t,({str:s,idx:a,tokenType:o})=>{if(i${o.name}<- can never be matched. +Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:l,type:j.UNREACHABLE_PATTERN,tokenTypes:[r,o]})}})}),e}function Xf(n,e){if(Xe(e)){const t=e.exec(n);return t!==null&&t.index===0}else{if(kt(e))return e(n,0,[],{});if(N(e,"exec"))return e.exec(n,0,[],{});if(typeof e=="string")return e===n;throw Error("non exhaustive match")}}function Jf(n){return Qt([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>n.source.indexOf(t)!==-1)===void 0}function Na(n){const e=n.ignoreCase?"i":"";return new RegExp(`^(?:${n.source})`,e)}function wa(n){const e=n.ignoreCase?"iy":"y";return new RegExp(`${n.source}`,e)}function Qf(n,e,t){const r=[];return N(n,Bn)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Bn+`> property in its definition +`,type:j.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),N(n,vr)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+vr+`> property in its definition +`,type:j.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),N(n,vr)&&N(n,Bn)&&!N(n.modes,n.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${Bn}: <${n.defaultMode}>which does not exist +`,type:j.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),N(n,vr)&&C(n.modes,(i,s)=>{C(i,(a,o)=>{if(Ye(a))r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${s}> at index: <${o}> +`,type:j.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(N(a,"LONGER_ALT")){const l=te(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];C(l,c=>{!Ye(c)&&!de(i,c)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${a.name}> outside of mode <${s}> +`,type:j.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),r}function Zf(n,e,t){const r=[];let i=!1;const s=er(Ne(z(n.modes))),a=mi(s,l=>l[vt]===fe.NA),o=lc(t);return e&&C(a,l=>{const c=oc(l,o);if(c!==!1){const d={message:rh(l,c),type:c.issue,tokenType:l};r.push(d)}else N(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):ea(o,l.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:j.NO_LINE_BREAKS_FLAGS}),r}function eh(n){const e={},t=Jt(n);return C(t,r=>{const i=n[r];if(te(i))e[r]=[];else throw Error("non exhaustive match")}),e}function ac(n){const e=n.PATTERN;if(Xe(e))return!1;if(kt(e))return!0;if(N(e,"exec"))return!0;if(he(e))return!1;throw Error("non exhaustive match")}function th(n){return he(n)&&n.length===1?n.charCodeAt(0):!1}const nh={test:function(n){const e=n.length;for(let t=this.lastIndex;t Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===j.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${n.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function lc(n){return S(n,t=>he(t)?t.charCodeAt(0):t)}function Gi(n,e,t){n[e]===void 0?n[e]=[t]:n[e].push(t)}const Vn=256;let Or=[];function tt(n){return n255?255+~~(n/255):n}}function ir(n,e){const t=n.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}function Jr(n,e){return n.tokenTypeIdx===e.tokenTypeIdx}let _a=1;const cc={};function sr(n){const e=sh(n);ah(e),lh(e),oh(e),C(e,t=>{t.isParent=t.categoryMatches.length>0})}function sh(n){let e=re(n),t=n,r=!0;for(;r;){t=er(Ne(S(t,s=>s.CATEGORIES)));const i=pi(t,e);e=e.concat(i),D(i)?r=!1:t=i}return e}function ah(n){C(n,e=>{dc(e)||(cc[_a]=e,e.tokenTypeIdx=_a++),La(e)&&!te(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),La(e)||(e.CATEGORIES=[]),ch(e)||(e.categoryMatches=[]),uh(e)||(e.categoryMatchesMap={})})}function oh(n){C(n,e=>{e.categoryMatches=[],C(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(cc[r].tokenTypeIdx)})})}function lh(n){C(n,e=>{uc([],e)})}function uc(n,e){C(n,t=>{e.categoryMatchesMap[t.tokenTypeIdx]=!0}),C(e.CATEGORIES,t=>{const r=n.concat(e);de(r,t)||uc(r,t)})}function dc(n){return N(n,"tokenTypeIdx")}function La(n){return N(n,"CATEGORIES")}function ch(n){return N(n,"categoryMatches")}function uh(n){return N(n,"categoryMatchesMap")}function dh(n){return N(n,"tokenTypeIdx")}const hs={buildUnableToPopLexerModeMessage(n){return`Unable to pop Lexer Mode after encountering Token ->${n.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(n,e,t,r,i){return`unexpected character: ->${n.charAt(e)}<- at offset: ${e}, skipped ${t} characters.`}};var j;(function(n){n[n.MISSING_PATTERN=0]="MISSING_PATTERN",n[n.INVALID_PATTERN=1]="INVALID_PATTERN",n[n.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",n[n.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",n[n.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",n[n.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",n[n.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",n[n.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",n[n.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",n[n.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",n[n.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",n[n.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",n[n.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",n[n.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",n[n.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",n[n.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",n[n.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",n[n.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(j||(j={}));const Kn={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:hs,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Kn);class fe{constructor(e,t=Kn){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,s)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;const a=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);const{time:o,value:l}=tc(s),c=o>10?console.warn:console.log;return this.traceInitIndent time: ${o}ms`),this.traceInitIndent--,l}else return s()},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=ke({},Kn,t);const r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,s=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Kn.lineTerminatorsPattern)this.config.lineTerminatorsPattern=nh;else if(this.config.lineTerminatorCharacters===Kn.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),te(e)?i={modes:{defaultMode:re(e)},defaultMode:Bn}:(s=!1,i=re(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Qf(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Zf(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},C(i.modes,(o,l)=>{i.modes[l]=mi(o,c=>Ye(c))});const a=Jt(i.modes);if(C(i.modes,(o,l)=>{this.TRACE_INIT(`Mode: <${l}> processing`,()=>{if(this.modes.push(l),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Mf(o,a))}),D(this.lexerDefinitionErrors)){sr(o);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=Pf(o,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[l]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[l]=c.charCodeToPatternIdxToConfig,this.emptyGroups=ke({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[l]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,!D(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const l=S(this.lexerDefinitionErrors,c=>c.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+l)}C(this.lexerDefinitionWarning,o=>{ec(o.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(sc?(this.chopInput=Ra,this.match=this.matchWithTest):(this.updateLastIndex=Y,this.match=this.matchWithExec),s&&(this.handleModes=Y),this.trackStartLines===!1&&(this.computeNewColumn=Ra),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Y),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const o=le(this.canModeBeOptimized,(l,c,u)=>(c===!1&&l.push(u),l),[]);if(t.ensureOptimizations&&!D(o))throw Error(`Lexer Modes: < ${o.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{_f()}),this.TRACE_INIT("toFastProperties",()=>{nc(this)})})}tokenize(e,t=this.defaultMode){if(!D(this.lexerDefinitionErrors)){const i=S(this.lexerDefinitionErrors,s=>s.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,i,s,a,o,l,c,u,d,h,f,m,g,A,y;const E=e,R=E.length;let I=0,F=0;const ie=this.hasCustom?0:Math.floor(e.length/10),_e=new Array(ie),ye=[];let Fe=this.trackStartLines?1:void 0,Ie=this.trackStartLines?1:void 0;const $=eh(this.emptyGroups),T=this.trackStartLines,k=this.config.lineTerminatorsPattern;let x=0,b=[],L=[];const _=[],Te=[];Object.freeze(Te);let q;function K(){return b}function dt(se){const Ce=tt(se),Ct=L[Ce];return Ct===void 0?Te:Ct}const wu=se=>{if(_.length===1&&se.tokenType.PUSH_MODE===void 0){const Ce=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(se);ye.push({offset:se.startOffset,line:se.startLine,column:se.startColumn,length:se.image.length,message:Ce})}else{_.pop();const Ce=Zt(_);b=this.patternIdxToConfig[Ce],L=this.charCodeToPatternIdxToConfig[Ce],x=b.length;const Ct=this.canModeBeOptimized[Ce]&&this.config.safeMode===!1;L&&Ct?q=dt:q=K}};function pa(se){_.push(se),L=this.charCodeToPatternIdxToConfig[se],b=this.patternIdxToConfig[se],x=b.length,x=b.length;const Ce=this.canModeBeOptimized[se]&&this.config.safeMode===!1;L&&Ce?q=dt:q=K}pa.call(this,t);let Le;const ma=this.config.recoveryEnabled;for(;Il.length){l=a,c=u,Le=Ke;break}}}break}}if(l!==null){if(d=l.length,h=Le.group,h!==void 0&&(f=Le.tokenTypeIdx,m=this.createTokenInstance(l,I,f,Le.tokenType,Fe,Ie,d),this.handlePayload(m,c),h===!1?F=this.addToken(_e,F,m):$[h].push(m)),e=this.chopInput(e,d),I=I+d,Ie=this.computeNewColumn(Ie,d),T===!0&&Le.canLineTerminator===!0){let Re=0,Ve,Qe;k.lastIndex=0;do Ve=k.test(l),Ve===!0&&(Qe=k.lastIndex-1,Re++);while(Ve===!0);Re!==0&&(Fe=Fe+Re,Ie=d-Qe,this.updateTokenEndLineColumnLocation(m,h,Qe,Re,Fe,Ie,d))}this.handleModes(Le,wu,pa,m)}else{const Re=I,Ve=Fe,Qe=Ie;let Ke=ma===!1;for(;Ke===!1&&I ${bt(n)} <--`:`token of type --> ${n.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:n,ruleName:e}){return"Redundant input, expecting EOF but found: "+n.image},buildNoViableAltMessage({expectedPathsPerAlt:n,actual:e,previous:t,customUserDescription:r,ruleName:i}){const s="Expecting: ",o=` +but found: '`+Pe(e).image+"'";if(r)return s+r+o;{const l=le(n,(h,f)=>h.concat(f),[]),c=S(l,h=>`[${S(h,f=>bt(f)).join(", ")}]`),d=`one of these possible Token sequences: +${S(c,(h,f)=>` ${f+1}. ${h}`).join(` +`)}`;return s+d+o}},buildEarlyExitMessage({expectedIterationPaths:n,actual:e,customUserDescription:t,ruleName:r}){const i="Expecting: ",a=` +but found: '`+Pe(e).image+"'";if(t)return i+t+a;{const l=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${S(n,c=>`[${S(c,u=>bt(u)).join(",")}]`).join(" ,")}>`;return i+l+a}}};Object.freeze(_t);const ph={buildRuleNotFoundError(n,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+n.name+"<-"}},gt={buildDuplicateFoundError(n,e){function t(u){return u instanceof G?u.terminalType.name:u instanceof ce?u.nonTerminalName:""}const r=n.name,i=Pe(e),s=i.idx,a=Ge(i),o=t(i),l=s>0;let c=`->${a}${l?s:""}<- ${o?`with argument: ->${o}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${r}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError(n){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${n.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(n){const e=S(n.prefixPath,i=>bt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;return`Ambiguous alternatives: <${n.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${n.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(n){const e=S(n.prefixPath,i=>bt(i)).join(", "),t=n.alternation.idx===0?"":n.alternation.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(" ,")}> in inside <${n.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,r},buildEmptyRepetitionError(n){let e=Ge(n.repetition);return n.repetition.idx!==0&&(e+=n.repetition.idx),`The repetition <${e}> within Rule <${n.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(n){return"deprecated"},buildEmptyAlternationError(n){return`Ambiguous empty alternative: <${n.emptyChoiceIdx+1}> in inside <${n.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(n){return`An Alternation cannot have more than 256 alternatives: + inside <${n.topLevelRule.name}> Rule. + has ${n.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(n){const e=n.topLevelRule.name,t=S(n.leftRecursionPath,s=>s.name),r=`${e} --> ${t.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${r} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(n){return"deprecated"},buildDuplicateRuleNameError(n){let e;return n.topLevelRule instanceof on?e=n.topLevelRule.name:e=n.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${n.grammarName}<-`}};function mh(n,e){const t=new gh(n,e);return t.resolveRefs(),t.errors}class gh extends ln{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){C(z(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:r,type:ue.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class yh extends vi{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=re(this.path.ruleStack).reverse(),this.occurrenceStack=re(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const i=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){D(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Th extends yh{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const i=t.concat(r),s=new pe({definition:i});this.possibleTokTypes=rr(s),this.found=!0}}}class Ei extends vi{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class Rh extends Ei{walkMany(e,t,r){if(e.idx===this.occurrence){const i=Pe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,t,r)}}class Ba extends Ei{walkManySep(e,t,r){if(e.idx===this.occurrence){const i=Pe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,t,r)}}class vh extends Ei{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const i=Pe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,t,r)}}class Va extends Ei{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const i=Pe(t.concat(r));this.result.isEndOfRule=i===void 0,i instanceof G&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,t,r)}}function ps(n,e,t=[]){t=re(t);let r=[],i=0;function s(o){return o.concat(Q(n,i+1))}function a(o){const l=ps(s(o),e,t);return r.concat(l)}for(;t.length{D(l.definition)===!1&&(r=a(l.definition))}),r;if(o instanceof G)t.push(o.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:t,suffixDef:Q(n,i)}),r}function mc(n,e,t,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=e.length,c=l-r-1,u=[],d=[];for(d.push({idx:-1,def:n,ruleStack:[],occurrenceStack:[]});!D(d);){const h=d.pop();if(h===a){o&&Zt(d).idx<=c&&d.pop();continue}const f=h.def,m=h.idx,g=h.ruleStack,A=h.occurrenceStack;if(D(f))continue;const y=f[0];if(y===i){const E={idx:m,def:Q(f),ruleStack:Xn(g),occurrenceStack:Xn(A)};d.push(E)}else if(y instanceof G)if(m=0;E--){const R=y.definition[E],I={idx:m,def:R.definition.concat(Q(f)),ruleStack:g,occurrenceStack:A};d.push(I),d.push(a)}else if(y instanceof pe)d.push({idx:m,def:y.definition.concat(Q(f)),ruleStack:g,occurrenceStack:A});else if(y instanceof on)d.push(Ah(y,m,g,A));else throw Error("non exhaustive match")}return u}function Ah(n,e,t,r){const i=re(t);i.push(n.name);const s=re(r);return s.push(1),{idx:e,def:n.definition,ruleStack:i,occurrenceStack:s}}var B;(function(n){n[n.OPTION=0]="OPTION",n[n.REPETITION=1]="REPETITION",n[n.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",n[n.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",n[n.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",n[n.ALTERNATION=5]="ALTERNATION"})(B||(B={}));function na(n){if(n instanceof ne||n==="Option")return B.OPTION;if(n instanceof W||n==="Repetition")return B.REPETITION;if(n instanceof Se||n==="RepetitionMandatory")return B.REPETITION_MANDATORY;if(n instanceof xe||n==="RepetitionMandatoryWithSeparator")return B.REPETITION_MANDATORY_WITH_SEPARATOR;if(n instanceof me||n==="RepetitionWithSeparator")return B.REPETITION_WITH_SEPARATOR;if(n instanceof ge||n==="Alternation")return B.ALTERNATION;throw Error("non exhaustive match")}function Ka(n){const{occurrence:e,rule:t,prodType:r,maxLookahead:i}=n,s=na(r);return s===B.ALTERNATION?ki(e,t,i):$i(e,t,s,i)}function Eh(n,e,t,r,i,s){const a=ki(n,e,t),o=Tc(a)?Jr:ir;return s(a,r,o,i)}function kh(n,e,t,r,i,s){const a=$i(n,e,i,t),o=Tc(a)?Jr:ir;return s(a[0],o,r)}function $h(n,e,t,r){const i=n.length,s=Oe(n,a=>Oe(a,o=>o.length===1));if(e)return function(a){const o=S(a,l=>l.GATE);for(let l=0;lNe(l)),o=le(a,(l,c,u)=>(C(c,d=>{N(l,d.tokenTypeIdx)||(l[d.tokenTypeIdx]=u),C(d.categoryMatches,h=>{N(l,h)||(l[h]=u)})}),l),{});return function(){const l=this.LA(1);return o[l.tokenTypeIdx]}}else return function(){for(let a=0;as.length===1),i=n.length;if(r&&!t){const s=Ne(n);if(s.length===1&&D(s[0].categoryMatches)){const o=s[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===o}}else{const a=le(s,(o,l,c)=>(o[l.tokenTypeIdx]=!0,C(l.categoryMatches,u=>{o[u]=!0}),o),[]);return function(){const o=this.LA(1);return a[o.tokenTypeIdx]===!0}}}else return function(){e:for(let s=0;sps([a],1)),r=Wa(t.length),i=S(t,a=>{const o={};return C(a,l=>{const c=Ui(l.partialPath);C(c,u=>{o[u]=!0})}),o});let s=t;for(let a=1;a<=e;a++){const o=s;s=Wa(o.length);for(let l=0;l{const y=Ui(A.partialPath);C(y,E=>{i[l][E]=!0})})}}}}return r}function ki(n,e,t,r){const i=new gc(n,B.ALTERNATION,r);return e.accept(i),yc(i.result,t)}function $i(n,e,t,r){const i=new gc(n,t);e.accept(i);const s=i.result,o=new xh(e,n,t).startWalking(),l=new pe({definition:s}),c=new pe({definition:o});return yc([l,c],r)}function ms(n,e){e:for(let t=0;t{const i=e[r];return t===i||i.categoryMatchesMap[t.tokenTypeIdx]})}function Tc(n){return Oe(n,e=>Oe(e,t=>Oe(t,r=>D(r.categoryMatches))))}function Nh(n){const e=n.lookaheadStrategy.validate({rules:n.rules,tokenTypes:n.tokenTypes,grammarName:n.grammarName});return S(e,t=>Object.assign({type:ue.CUSTOM_LOOKAHEAD_VALIDATION},t))}function wh(n,e,t,r){const i=Ee(n,l=>_h(l,t)),s=Kh(n,e,t),a=Ee(n,l=>Gh(l,t)),o=Ee(n,l=>Oh(l,n,r,t));return i.concat(s,a,o)}function _h(n,e){const t=new bh;n.accept(t);const r=t.allProductions,i=ld(r,Lh),s=Me(i,o=>o.length>1);return S(z(s),o=>{const l=Pe(o),c=e.buildDuplicateFoundError(n,o),u=Ge(l),d={message:c,type:ue.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:u,occurrence:l.idx},h=Rc(l);return h&&(d.parameter=h),d})}function Lh(n){return`${Ge(n)}_#_${n.idx}_#_${Rc(n)}`}function Rc(n){return n instanceof G?n.terminalType.name:n instanceof ce?n.nonTerminalName:""}class bh extends ln{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function Oh(n,e,t,r){const i=[];if(le(e,(a,o)=>o.name===n.name?a+1:a,0)>1){const a=r.buildDuplicateRuleNameError({topLevelRule:n,grammarName:t});i.push({message:a,type:ue.DUPLICATE_RULE_NAME,ruleName:n.name})}return i}function Ph(n,e,t){const r=[];let i;return de(e,n)||(i=`Invalid rule override, rule: ->${n}<- cannot be overridden in the grammar: ->${t}<-as it is not defined in any of the super grammars `,r.push({message:i,type:ue.INVALID_RULE_OVERRIDE,ruleName:n})),r}function vc(n,e,t,r=[]){const i=[],s=Pr(e.definition);if(D(s))return[];{const a=n.name;de(s,n)&&i.push({message:t.buildLeftRecursionError({topLevelRule:n,leftRecursionPath:r}),type:ue.LEFT_RECURSION,ruleName:a});const l=pi(s,r.concat([n])),c=Ee(l,u=>{const d=re(r);return d.push(u),vc(n,u,t,d)});return i.concat(c)}}function Pr(n){let e=[];if(D(n))return e;const t=Pe(n);if(t instanceof ce)e.push(t.referencedRule);else if(t instanceof pe||t instanceof ne||t instanceof Se||t instanceof xe||t instanceof me||t instanceof W)e=e.concat(Pr(t.definition));else if(t instanceof ge)e=Ne(S(t.definition,s=>Pr(s.definition)));else if(!(t instanceof G))throw Error("non exhaustive match");const r=Yr(t),i=n.length>1;if(r&&i){const s=Q(n);return e.concat(Pr(s))}else return e}class ra extends ln{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Mh(n,e){const t=new ra;n.accept(t);const r=t.alternations;return Ee(r,s=>{const a=Xn(s.definition);return Ee(a,(o,l)=>{const c=mc([o],[],ir,1);return D(c)?[{message:e.buildEmptyAlternationError({topLevelRule:n,alternation:s,emptyChoiceIdx:l}),type:ue.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:s.idx,alternative:l+1}]:[]})})}function Dh(n,e,t){const r=new ra;n.accept(r);let i=r.alternations;return i=mi(i,a=>a.ignoreAmbiguities===!0),Ee(i,a=>{const o=a.idx,l=a.maxLookahead||e,c=ki(o,n,l,a),u=Bh(c,a,n,t),d=Vh(c,a,n,t);return u.concat(d)})}class Fh extends ln{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function Gh(n,e){const t=new ra;n.accept(t);const r=t.alternations;return Ee(r,s=>s.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:n,alternation:s}),type:ue.TOO_MANY_ALTS,ruleName:n.name,occurrence:s.idx}]:[])}function Uh(n,e,t){const r=[];return C(n,i=>{const s=new Fh;i.accept(s);const a=s.allProductions;C(a,o=>{const l=na(o),c=o.maxLookahead||e,u=o.idx,h=$i(u,i,l,c)[0];if(D(Ne(h))){const f=t.buildEmptyRepetitionError({topLevelRule:i,repetition:o});r.push({message:f,type:ue.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function Bh(n,e,t,r){const i=[],s=le(n,(o,l,c)=>(e.definition[c].ignoreAmbiguities===!0||C(l,u=>{const d=[c];C(n,(h,f)=>{c!==f&&ms(h,u)&&e.definition[f].ignoreAmbiguities!==!0&&d.push(f)}),d.length>1&&!ms(i,u)&&(i.push(u),o.push({alts:d,path:u}))}),o),[]);return S(s,o=>{const l=S(o.alts,u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:o.path}),type:ue.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:o.alts}})}function Vh(n,e,t,r){const i=le(n,(a,o,l)=>{const c=S(o,u=>({idx:l,path:u}));return a.concat(c)},[]);return er(Ee(i,a=>{if(e.definition[a.idx].ignoreAmbiguities===!0)return[];const l=a.idx,c=a.path,u=$e(i,h=>e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{const f=[h.idx+1,l+1],m=e.idx===0?"":e.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:f,prefixPath:h.path}),type:ue.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:m,alternatives:f}})}))}function Kh(n,e,t){const r=[],i=S(e,s=>s.name);return C(n,s=>{const a=s.name;if(de(i,a)){const o=t.buildNamespaceConflictError(s);r.push({message:o,type:ue.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:a})}}),r}function Wh(n){const e=Ks(n,{errMsgProvider:ph}),t={};return C(n.rules,r=>{t[r.name]=r}),mh(t,e.errMsgProvider)}function jh(n){return n=Ks(n,{errMsgProvider:gt}),wh(n.rules,n.tokenTypes,n.errMsgProvider,n.grammarName)}const Ac="MismatchedTokenException",Ec="NoViableAltException",kc="EarlyExitException",$c="NotAllInputParsedException",Sc=[Ac,Ec,kc,$c];Object.freeze(Sc);function Qr(n){return de(Sc,n.name)}class Si extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class xc extends Si{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Ac}}class Hh extends Si{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Ec}}class zh extends Si{constructor(e,t){super(e,t),this.name=$c}}class qh extends Si{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=kc}}const Bi={},Ic="InRuleRecoveryException";class Yh extends Error{constructor(e){super(e),this.name=Ic}}class Xh{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=N(e,"recoveryEnabled")?e.recoveryEnabled:Je.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Jh)}getTokenToInsert(e){const t=ta(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,i){const s=this.findReSyncTokenType(),a=this.exportLexerState(),o=[];let l=!1;const c=this.LA(1);let u=this.LA(1);const d=()=>{const h=this.LA(0),f=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:h,ruleName:this.getCurrRuleFullName()}),m=new xc(f,c,this.LA(0));m.resyncedTokens=Xn(o),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){d();return}else if(r.call(this)){d(),e.apply(this,t);return}else this.tokenMatcher(u,s)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,o));this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(r===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new Yh("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||D(t))return!1;const r=this.LA(1);return Qt(t,s=>this.tokenMatcher(r,s))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey(),r=this.getFollowSetFromFollowKey(t);return de(r,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const i=Qt(e,s=>pc(t,s));if(i!==void 0)return i;t=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return Bi;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return S(e,(r,i)=>i===0?Bi:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){const e=S(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return Ne(e)}getFollowSetFromFollowKey(e){if(e===Bi)return[nt];const t=e.ruleName+e.idxInCallingRule+rc+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,nt)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;this.tokenMatcher(r,e)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return Xn(t)}attemptInRepetitionRecovery(e,t,r,i,s,a,o){}getCurrentGrammarPath(e,t){const r=this.getHumanReadableRuleStack(),i=re(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:i,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return S(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}}function Jh(n,e,t,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(l===void 0){const h=this.getCurrRuleFullName(),f=this.getGAstProductions()[h];l=new s(f,i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&c===void 0&&(c=nt,u=1),!(c===void 0||u===void 0)&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(n,e,t,c)}const Qh=4,st=8,Cc=1<vc(t,t,gt))}validateEmptyOrAlternatives(e){return Ee(e,t=>Mh(t,gt))}validateAmbiguousAlternationAlternatives(e,t){return Ee(e,r=>Dh(r,t,gt))}validateSomeNonEmptyLookaheadPath(e,t){return Uh(e,t,gt)}buildLookaheadForAlternation(e){return Eh(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,$h)}buildLookaheadForOptional(e){return kh(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,na(e.prodType),Sh)}}class Zh{initLooksAhead(e){this.dynamicTokensEnabled=N(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Je.dynamicTokensEnabled,this.maxLookahead=N(e,"maxLookahead")?e.maxLookahead:Je.maxLookahead,this.lookaheadStrategy=N(e,"lookaheadStrategy")?e.lookaheadStrategy:new ia({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){C(e,t=>{this.TRACE_INIT(`${t.name} Rule Lookahead`,()=>{const{alternation:r,repetition:i,option:s,repetitionMandatory:a,repetitionMandatoryWithSeparator:o,repetitionWithSeparator:l}=tp(t);C(r,c=>{const u=c.idx===0?"":c.idx;this.TRACE_INIT(`${Ge(c)}${u}`,()=>{const d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:t,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),h=Vi(this.fullRuleNameToShort[t.name],Cc,c.idx);this.setLaFuncCache(h,d)})}),C(i,c=>{this.computeLookaheadFunc(t,c.idx,gs,"Repetition",c.maxLookahead,Ge(c))}),C(s,c=>{this.computeLookaheadFunc(t,c.idx,Nc,"Option",c.maxLookahead,Ge(c))}),C(a,c=>{this.computeLookaheadFunc(t,c.idx,ys,"RepetitionMandatory",c.maxLookahead,Ge(c))}),C(o,c=>{this.computeLookaheadFunc(t,c.idx,Mr,"RepetitionMandatoryWithSeparator",c.maxLookahead,Ge(c))}),C(l,c=>{this.computeLookaheadFunc(t,c.idx,Ts,"RepetitionWithSeparator",c.maxLookahead,Ge(c))})})})}computeLookaheadFunc(e,t,r,i,s,a){this.TRACE_INIT(`${a}${t===0?"":t}`,()=>{const o=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),l=Vi(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(l,o)})}getKeyForAutomaticLookahead(e,t){const r=this.getLastExplicitRuleShortName();return Vi(r,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class ep extends ln{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const Ar=new ep;function tp(n){Ar.reset(),n.accept(Ar);const e=Ar.dslMethods;return Ar.reset(),e}function ja(n,e){isNaN(n.startOffset)===!0?(n.startOffset=e.startOffset,n.endOffset=e.endOffset):n.endOffseta.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${s.join(` + +`).replace(/\n/g,` + `)}`)}}};return t.prototype=r,t.prototype.constructor=t,t._RULE_NAMES=e,t}function op(n,e,t){const r=function(){};wc(r,n+"BaseSemanticsWithDefaults");const i=Object.create(t.prototype);return C(e,s=>{i[s]=sp}),r.prototype=i,r.prototype.constructor=r,r}var Rs;(function(n){n[n.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",n[n.MISSING_METHOD=1]="MISSING_METHOD"})(Rs||(Rs={}));function lp(n,e){return cp(n,e)}function cp(n,e){const t=$e(e,i=>kt(n[i])===!1),r=S(t,i=>({msg:`Missing visitor method: <${i}> on ${n.constructor.name} CST Visitor.`,type:Rs.MISSING_METHOD,methodName:i}));return er(r)}class up{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=N(e,"nodeLocationTracking")?e.nodeLocationTracking:Je.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Y,this.cstFinallyStateUpdate=Y,this.cstPostTerminal=Y,this.cstPostNonTerminal=Y,this.cstPostRule=Y;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Ha,this.setNodeLocationFromNode=Ha,this.cstPostRule=Y,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Y,this.setNodeLocationFromNode=Y,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=ja,this.setNodeLocationFromNode=ja,this.cstPostRule=Y,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Y,this.setNodeLocationFromNode=Y,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Y,this.setNodeLocationFromNode=Y,this.cstPostRule=Y,this.setInitialNodeLocation=Y;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];np(r,t,e),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];rp(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(Ye(this.baseCstVisitorConstructor)){const e=ap(this.className,Jt(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Ye(this.baseCstVisitorWithDefaultsConstructor)){const e=op(this.className,Jt(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class dp{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):ei}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?ei:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class fp{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=ti){if(de(this.definedRulesNames,e)){const a={message:gt.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:ue.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);const i=this.defineRule(e,t,r);return this[e]=i,i}OVERRIDE_RULE(e,t,r=ti){const i=Ph(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);const s=this.defineRule(e,t,r);return this[e]=s,s}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(i){if(Qr(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Af(z(this.gastProductionsCache))}}class hp{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Jr,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},N(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(te(e)){if(D(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(te(e))this.tokensMap=le(e,(s,a)=>(s[a.name]=a,s),{});else if(N(e,"modes")&&Oe(Ne(z(e.modes)),dh)){const s=Ne(z(e.modes)),a=Ws(s);this.tokensMap=le(a,(o,l)=>(o[l.name]=l,o),{})}else if(Uu(e))this.tokensMap=re(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=nt;const r=N(e,"modes")?Ne(z(e.modes)):z(e),i=Oe(r,s=>D(s.categoryMatches));this.tokenMatcher=i?Jr:ir,sr(z(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const i=N(r,"resyncEnabled")?r.resyncEnabled:ti.resyncEnabled,s=N(r,"recoveryValueFunc")?r.recoveryValueFunc:ti.recoveryValueFunc,a=this.ruleShortNameIdx<a.call(this)&&o.call(this)}}else s=e;if(i.call(this)===!0)return s.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(ys,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const a=t.GATE;if(a!==void 0){const o=i;i=()=>a.call(this)&&o.call(this)}}else s=t;if(i.call(this)===!0){let a=this.doSingleRepetition(s);for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s)}else throw this.raiseEarlyExitException(e,B.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,ys,e,vh)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Mr,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Va],o,Mr,e,Va)}else throw this.raiseEarlyExitException(e,B.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(gs,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let i=this.getLaFuncFromCache(r),s;if(typeof t!="function"){s=t.DEF;const o=t.GATE;if(o!==void 0){const l=i;i=()=>o.call(this)&&l.call(this)}}else s=t;let a=!0;for(;i.call(this)===!0&&a===!0;)a=this.doSingleRepetition(s);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,gs,e,Rh,a)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ts,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const i=t.DEF,s=t.SEP;if(this.getLaFuncFromCache(r).call(this)===!0){i.call(this);const o=()=>this.tokenMatcher(this.LA(1),s);for(;this.tokenMatcher(this.LA(1),s)===!0;)this.CONSUME(s),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,s,o,i,Ba],o,Ts,e,Ba)}}repetitionSepSecondInternal(e,t,r,i,s){for(;r();)this.CONSUME(t),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,i,s],r,Mr,e,s)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(Cc,t),i=te(e)?e:e.DEF,a=this.getLaFuncFromCache(r).call(this,i);if(a!==void 0)return i[a].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new zh(t,e))}}subruleInternal(e,t,r){let i;try{const s=r!==void 0?r.ARGS:void 0;return this.subruleIdx=t,i=e.apply(this,s),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(s){throw this.subruleInternalError(s,r,e.ruleName)}}subruleInternalError(e,t,r){throw Qr(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let i;try{const s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),i=s):this.consumeInternalError(e,s,r)}catch(s){i=this.consumeInternalRecovery(e,t,s)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i}consumeInternalError(e,t,r){let i;const s=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new xc(i,t,s))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(s){throw s.name===Ic?r:s}}else throw r}saveRecogState(){const e=this.errors,t=re(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),nt)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}class pp{initErrorHandler(e){this._errors=[],this.errorMessageProvider=N(e,"errorMessageProvider")?e.errorMessageProvider:Je.errorMessageProvider}SAVE_ERROR(e){if(Qr(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:re(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return re(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const i=this.getCurrRuleFullName(),s=this.getGAstProductions()[i],o=$i(e,s,t,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));const c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:o,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new qh(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],s=ki(e,i,this.maxLookahead),a=[];for(let c=1;c<=this.maxLookahead;c++)a.push(this.LA(c));const o=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:a,previous:o,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Hh(l,this.LA(1),o))}}class mp{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(Ye(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return mc([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=Pe(e.ruleStack),i=this.getGAstProductions()[t];return new Th(i,e).startWalking()}}const xi={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(xi);const za=!0,qa=Math.pow(2,st)-1,_c=hc({name:"RECORDING_PHASE_TOKEN",pattern:fe.NA});sr([_c]);const Lc=ta(_c,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Lc);const gp={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}};class yp{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(r,i){return this.consumeInternalRecord(r,e,i)},this[`SUBRULE${t}`]=function(r,i){return this.subruleInternalRecord(r,e,i)},this[`OPTION${t}`]=function(r){return this.optionInternalRecord(r,e)},this[`OR${t}`]=function(r){return this.orInternalRecord(r,e)},this[`MANY${t}`]=function(r){this.manyInternalRecord(e,r)},this[`MANY_SEP${t}`]=function(r){this.manySepFirstInternalRecord(e,r)},this[`AT_LEAST_ONE${t}`]=function(r){this.atLeastOneInternalRecord(e,r)},this[`AT_LEAST_ONE_SEP${t}`]=function(r){this.atLeastOneSepFirstInternalRecord(e,r)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return ei}topLevelRuleRecord(e,t){try{const r=new on({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(e,t){return dn.call(this,ne,e,t)}atLeastOneInternalRecord(e,t){dn.call(this,Se,t,e)}atLeastOneSepFirstInternalRecord(e,t){dn.call(this,xe,t,e,za)}manyInternalRecord(e,t){dn.call(this,W,t,e)}manySepFirstInternalRecord(e,t){dn.call(this,me,t,e,za)}orInternalRecord(e,t){return Tp.call(this,e,t)}subruleInternalRecord(e,t,r){if(Zr(t),!e||N(e,"ruleName")===!1){const o=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw o.KNOWN_RECORDER_ERROR=!0,o}const i=Zt(this.recordingProdStack),s=e.ruleName,a=new ce({idx:t,nonTerminalName:s,label:r==null?void 0:r.LABEL,referencedRule:void 0});return i.definition.push(a),this.outputCst?gp:xi}consumeInternalRecord(e,t,r){if(Zr(t),!dc(e)){const a=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}const i=Zt(this.recordingProdStack),s=new G({idx:t,terminalType:e,label:r==null?void 0:r.LABEL});return i.definition.push(s),Lc}}function dn(n,e,t,r=!1){Zr(t);const i=Zt(this.recordingProdStack),s=kt(e)?e:e.DEF,a=new n({definition:[],idx:t});return r&&(a.separator=e.SEP),N(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),xi}function Tp(n,e){Zr(e);const t=Zt(this.recordingProdStack),r=te(n)===!1,i=r===!1?n:n.DEF,s=new ge({definition:[],idx:e,ignoreAmbiguities:r&&n.IGNORE_AMBIGUITIES===!0});N(n,"MAX_LOOKAHEAD")&&(s.maxLookahead=n.MAX_LOOKAHEAD);const a=bl(i,o=>kt(o.GATE));return s.hasPredicates=a,t.definition.push(s),C(i,o=>{const l=new pe({definition:[]});s.definition.push(l),N(o,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=o.IGNORE_AMBIGUITIES:N(o,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),o.ALT.call(this),this.recordingProdStack.pop()}),xi}function Ya(n){return n===0?"":`${n}`}function Zr(n){if(n<0||n>qa){const e=new Error(`Invalid DSL Method idx value: <${n}> + Idx value must be a none negative value smaller than ${qa+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}class Rp{initPerformanceTracer(e){if(N(e,"traceInitPerf")){const t=e.traceInitPerf,r=typeof t=="number";this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Je.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);const{time:i,value:s}=tc(t),a=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,s}else return t()}}function vp(n,e){e.forEach(t=>{const r=t.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;const s=Object.getOwnPropertyDescriptor(r,i);s&&(s.get||s.set)?Object.defineProperty(n.prototype,i,s):n.prototype[i]=t.prototype[i]})})}const ei=ta(nt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(ei);const Je=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:_t,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),ti=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var ue;(function(n){n[n.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",n[n.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",n[n.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",n[n.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",n[n.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",n[n.LEFT_RECURSION=5]="LEFT_RECURSION",n[n.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",n[n.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",n[n.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",n[n.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",n[n.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",n[n.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",n[n.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",n[n.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(ue||(ue={}));function Xa(n=void 0){return function(){return n}}class ar{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{nc(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),C(this.definedRulesNames,i=>{const a=this[i].originalGrammarAction;let o;this.TRACE_INIT(`${i} Rule`,()=>{o=this.topLevelRuleRecord(i,a)}),this.gastProductionsCache[i]=o})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=Wh({rules:z(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(D(r)&&this.skipValidations===!1){const i=jh({rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),errMsgProvider:gt,grammarName:t}),s=Nh({lookaheadStrategy:this.lookaheadStrategy,rules:z(this.gastProductionsCache),tokenTypes:z(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(i,s)}}),D(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const i=Cf(z(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,s;(s=(i=this.lookaheadStrategy).initialize)===null||s===void 0||s.call(i,{rules:z(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(z(this.gastProductionsCache))})),!ar.DEFER_DEFINITION_ERRORS_HANDLING&&!D(this.definitionErrors))throw e=S(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),N(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=N(t,"skipValidations")?t.skipValidations:Je.skipValidations}}ar.DEFER_DEFINITION_ERRORS_HANDLING=!1;vp(ar,[Xh,Zh,up,dp,hp,fp,pp,mp,yp,Rp]);class Ap extends ar{constructor(e,t=Je){const r=re(t);r.outputCst=!1,super(e,r)}}function en(n,e,t){return`${n.name}_${e}_${t}`}const rt=1,Ep=2,bc=4,Oc=5,or=7,kp=8,$p=9,Sp=10,xp=11,Pc=12;class sa{constructor(e){this.target=e}isEpsilon(){return!1}}class aa extends sa{constructor(e,t){super(e),this.tokenType=t}}class Mc extends sa{constructor(e){super(e)}isEpsilon(){return!0}}class oa extends sa{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function Ip(n){const e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};Cp(e,n);const t=n.length;for(let r=0;rDc(n,e,a));return cn(n,e,r,t,...i)}function Op(n,e,t){const r=X(n,e,t,{type:rt});at(n,r);const i=cn(n,e,r,t,St(n,e,t));return Pp(n,e,t,i)}function St(n,e,t){const r=$e(S(t.definition,i=>Dc(n,e,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Dp(n,r)}function Fc(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:xp});at(n,o);const l=X(n,e,t,{type:Pc});return s.loopback=o,l.loopback=o,n.decisionMap[en(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",t.idx)]=o,H(a,o),i===void 0?(H(o,s),H(o,l)):(H(o,l),H(o,i.left),H(i.right,s)),{left:s,right:l}}function Gc(n,e,t,r,i){const s=r.left,a=r.right,o=X(n,e,t,{type:Sp});at(n,o);const l=X(n,e,t,{type:Pc}),c=X(n,e,t,{type:$p});return o.loopback=c,l.loopback=c,H(o,s),H(o,l),H(a,c),i!==void 0?(H(c,l),H(c,i.left),H(i.right,s)):H(c,o),n.decisionMap[en(e,i?"RepetitionWithSeparator":"Repetition",t.idx)]=o,{left:o,right:l}}function Pp(n,e,t,r){const i=r.left,s=r.right;return H(i,s),n.decisionMap[en(e,"Option",t.idx)]=i,r}function at(n,e){return n.decisionStates.push(e),e.decision=n.decisionStates.length-1,e.decision}function cn(n,e,t,r,...i){const s=X(n,e,r,{type:kp,start:t});t.end=s;for(const o of i)o!==void 0?(H(t,o.left),H(o.right,s)):H(t,s);const a={left:t,right:s};return n.decisionMap[en(e,Mp(r),r.idx)]=t,a}function Mp(n){if(n instanceof ge)return"Alternation";if(n instanceof ne)return"Option";if(n instanceof W)return"Repetition";if(n instanceof me)return"RepetitionWithSeparator";if(n instanceof Se)return"RepetitionMandatory";if(n instanceof xe)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Dp(n,e){const t=e.length;for(let s=0;se.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Uc(n,e=!0){return`${e?`a${n.alt}`:""}s${n.state.stateNumber}:${n.stack.map(t=>t.stateNumber.toString()).join("_")}`}function Bp(n,e){const t={};return r=>{const i=r.toString();let s=t[i];return s!==void 0||(s={atnStartState:n,decision:e,states:{}},t[i]=s),s}}class Bc{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let r=0;rconsole.log(r))}initialize(e){this.atn=Ip(e.rules),this.dfas=Kp(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:r,hasPredicates:i,dynamicTokensEnabled:s}=e,a=this.dfas,o=this.logging,l=en(r,"Alternation",t),u=this.atn.decisionMap[l].decision,d=S(Ka({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),h=>S(h,f=>f[0]));if(Qa(d,!1)&&!s){const h=le(d,(f,m,g)=>(C(m,A=>{A&&(f[A.tokenTypeIdx]=g,C(A.categoryMatches,y=>{f[y]=g}))}),f),{});return i?function(f){var m;const g=this.LA(1),A=h[g.tokenTypeIdx];if(f!==void 0&&A!==void 0){const y=(m=f[A])===null||m===void 0?void 0:m.GATE;if(y!==void 0&&y.call(this)===!1)return}return A}:function(){const f=this.LA(1);return h[f.tokenTypeIdx]}}else return i?function(h){const f=new Bc,m=h===void 0?0:h.length;for(let A=0;AS(h,f=>f[0]));if(Qa(d)&&d[0][0]&&!s){const h=d[0],f=Ne(h);if(f.length===1&&D(f[0].categoryMatches)){const g=f[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===g}}else{const m=le(f,(g,A)=>(A!==void 0&&(g[A.tokenTypeIdx]=!0,C(A.categoryMatches,y=>{g[y]=!0})),g),{});return function(){const g=this.LA(1);return m[g.tokenTypeIdx]===!0}}}return function(){const h=Ki.call(this,a,u,Ja,o);return typeof h=="object"?!1:h===0}}}function Qa(n,e=!0){const t=new Set;for(const r of n){const i=new Set;for(const s of r){if(s===void 0){if(e)break;return!1}const a=[s.tokenTypeIdx].concat(s.categoryMatches);for(const o of a)if(t.has(o)){if(!i.has(o))return!1}else t.add(o),i.add(o)}}return!0}function Kp(n){const e=n.decisionStates.length,t=Array(e);for(let r=0;rbt(i)).join(", "),t=n.production.idx===0?"":n.production.idx;let r=`Ambiguous Alternatives Detected: <${n.ambiguityIndices.join(", ")}> in <${qp(n.production)}${t}> inside <${n.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,r}function qp(n){if(n instanceof ce)return"SUBRULE";if(n instanceof ne)return"OPTION";if(n instanceof ge)return"OR";if(n instanceof Se)return"AT_LEAST_ONE";if(n instanceof xe)return"AT_LEAST_ONE_SEP";if(n instanceof me)return"MANY_SEP";if(n instanceof W)return"MANY";if(n instanceof G)return"CONSUME";throw Error("non exhaustive match")}function Yp(n,e,t){const r=Ee(e.configs.elements,s=>s.state.transitions),i=gd(r.filter(s=>s instanceof aa).map(s=>s.tokenType),s=>s.tokenTypeIdx);return{actualToken:t,possibleTokenTypes:i,tokenPath:n}}function Xp(n,e){return n.edges[e.tokenTypeIdx]}function Jp(n,e,t){const r=new vs,i=[];for(const a of n.elements){if(t.is(a.alt)===!1)continue;if(a.state.type===or){i.push(a);continue}const o=a.state.transitions.length;for(let l=0;l0&&!nm(s))for(const a of i)s.add(a);return s}function Qp(n,e){if(n instanceof aa&&pc(e,n.tokenType))return n.target}function Zp(n,e){let t;for(const r of n.elements)if(e.is(r.alt)===!0){if(t===void 0)t=r.alt;else if(t!==r.alt)return}return t}function Vc(n){return{configs:n,edges:{},isAcceptState:!1,prediction:-1}}function Za(n,e,t,r){return r=Kc(n,r),e.edges[t.tokenTypeIdx]=r,r}function Kc(n,e){if(e===ni)return e;const t=e.configs.key,r=n.states[t];return r!==void 0?r:(e.configs.finalize(),n.states[t]=e,e)}function em(n){const e=new vs,t=n.transitions.length;for(let r=0;r0){const i=[...n.stack],a={state:i.pop(),alt:n.alt,stack:i};ri(a,e)}else e.add(n);return}t.epsilonOnlyTransitions||e.add(n);const r=t.transitions.length;for(let i=0;i1)return!0;return!1}function om(n){for(const e of Array.from(n.values()))if(Object.keys(e).length===1)return!0;return!1}var eo;(function(n){function e(t){return typeof t=="string"}n.is=e})(eo||(eo={}));var As;(function(n){function e(t){return typeof t=="string"}n.is=e})(As||(As={}));var to;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(to||(to={}));var ii;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(ii||(ii={}));var P;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=ii.MAX_VALUE),i===Number.MAX_VALUE&&(i=ii.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&p.uinteger(i.line)&&p.uinteger(i.character)}n.is=t})(P||(P={}));var O;(function(n){function e(r,i,s,a){if(p.uinteger(r)&&p.uinteger(i)&&p.uinteger(s)&&p.uinteger(a))return{start:P.create(r,i),end:P.create(s,a)};if(P.is(r)&&P.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&P.is(i.start)&&P.is(i.end)}n.is=t})(O||(O={}));var si;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(p.string(i.uri)||p.undefined(i.uri))}n.is=t})(si||(si={}));var no;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.targetRange)&&p.string(i.targetUri)&&O.is(i.targetSelectionRange)&&(O.is(i.originSelectionRange)||p.undefined(i.originSelectionRange))}n.is=t})(no||(no={}));var Es;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.numberRange(i.red,0,1)&&p.numberRange(i.green,0,1)&&p.numberRange(i.blue,0,1)&&p.numberRange(i.alpha,0,1)}n.is=t})(Es||(Es={}));var ro;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&O.is(i.range)&&Es.is(i.color)}n.is=t})(ro||(ro={}));var io;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.undefined(i.textEdit)||nn.is(i))&&(p.undefined(i.additionalTextEdits)||p.typedArray(i.additionalTextEdits,nn.is))}n.is=t})(io||(io={}));var so;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(so||(so={}));var ao;(function(n){function e(r,i,s,a,o,l){const c={startLine:r,endLine:i};return p.defined(s)&&(c.startCharacter=s),p.defined(a)&&(c.endCharacter=a),p.defined(o)&&(c.kind=o),p.defined(l)&&(c.collapsedText=l),c}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.uinteger(i.startLine)&&p.uinteger(i.startLine)&&(p.undefined(i.startCharacter)||p.uinteger(i.startCharacter))&&(p.undefined(i.endCharacter)||p.uinteger(i.endCharacter))&&(p.undefined(i.kind)||p.string(i.kind))}n.is=t})(ao||(ao={}));var ks;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&si.is(i.location)&&p.string(i.message)}n.is=t})(ks||(ks={}));var oo;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(oo||(oo={}));var lo;(function(n){n.Unnecessary=1,n.Deprecated=2})(lo||(lo={}));var co;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&p.string(r.href)}n.is=e})(co||(co={}));var ai;(function(n){function e(r,i,s,a,o,l){let c={range:r,message:i};return p.defined(s)&&(c.severity=s),p.defined(a)&&(c.code=a),p.defined(o)&&(c.source=o),p.defined(l)&&(c.relatedInformation=l),c}n.create=e;function t(r){var i;let s=r;return p.defined(s)&&O.is(s.range)&&p.string(s.message)&&(p.number(s.severity)||p.undefined(s.severity))&&(p.integer(s.code)||p.string(s.code)||p.undefined(s.code))&&(p.undefined(s.codeDescription)||p.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(p.string(s.source)||p.undefined(s.source))&&(p.undefined(s.relatedInformation)||p.typedArray(s.relatedInformation,ks.is))}n.is=t})(ai||(ai={}));var tn;(function(n){function e(r,i,...s){let a={title:r,command:i};return p.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.title)&&p.string(i.command)}n.is=t})(tn||(tn={}));var nn;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){const a=s;return p.objectLiteral(a)&&p.string(a.newText)&&O.is(a.range)}n.is=i})(nn||(nn={}));var $s;(function(n){function e(r,i,s){const a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&p.string(i.label)&&(p.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(p.string(i.description)||i.description===void 0)}n.is=t})($s||($s={}));var rn;(function(n){function e(t){const r=t;return p.string(r)}n.is=e})(rn||(rn={}));var uo;(function(n){function e(s,a,o){return{range:s,newText:a,annotationId:o}}n.replace=e;function t(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){const a=s;return nn.is(a)&&($s.is(a.annotationId)||rn.is(a.annotationId))}n.is=i})(uo||(uo={}));var Ss;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&ws.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(Ss||(Ss={}));var xs;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&p.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||rn.is(i.annotationId))}n.is=t})(xs||(xs={}));var Is;(function(n){function e(r,i,s,a){let o={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&p.string(i.oldUri)&&p.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||p.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||p.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||rn.is(i.annotationId))}n.is=t})(Is||(Is={}));var Cs;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&p.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||p.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||p.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||rn.is(i.annotationId))}n.is=t})(Cs||(Cs={}));var Ns;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>p.string(i.kind)?xs.is(i)||Is.is(i)||Cs.is(i):Ss.is(i)))}n.is=e})(Ns||(Ns={}));var fo;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)}n.is=t})(fo||(fo={}));var ho;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.integer(i.version)}n.is=t})(ho||(ho={}));var ws;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&(i.version===null||p.integer(i.version))}n.is=t})(ws||(ws={}));var po;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.string(i.uri)&&p.string(i.languageId)&&p.integer(i.version)&&p.string(i.text)}n.is=t})(po||(po={}));var _s;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){const r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(_s||(_s={}));var Qn;(function(n){function e(t){const r=t;return p.objectLiteral(t)&&_s.is(r.kind)&&p.string(r.value)}n.is=e})(Qn||(Qn={}));var mo;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(mo||(mo={}));var go;(function(n){n.PlainText=1,n.Snippet=2})(go||(go={}));var yo;(function(n){n.Deprecated=1})(yo||(yo={}));var To;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){const i=r;return i&&p.string(i.newText)&&O.is(i.insert)&&O.is(i.replace)}n.is=t})(To||(To={}));var Ro;(function(n){n.asIs=1,n.adjustIndentation=2})(Ro||(Ro={}));var vo;(function(n){function e(t){const r=t;return r&&(p.string(r.detail)||r.detail===void 0)&&(p.string(r.description)||r.description===void 0)}n.is=e})(vo||(vo={}));var Ao;(function(n){function e(t){return{label:t}}n.create=e})(Ao||(Ao={}));var Eo;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(Eo||(Eo={}));var oi;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){const i=r;return p.string(i)||p.objectLiteral(i)&&p.string(i.language)&&p.string(i.value)}n.is=t})(oi||(oi={}));var ko;(function(n){function e(t){let r=t;return!!r&&p.objectLiteral(r)&&(Qn.is(r.contents)||oi.is(r.contents)||p.typedArray(r.contents,oi.is))&&(t.range===void 0||O.is(t.range))}n.is=e})(ko||(ko={}));var $o;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})($o||($o={}));var So;(function(n){function e(t,r,...i){let s={label:t};return p.defined(r)&&(s.documentation=r),p.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(So||(So={}));var xo;(function(n){n.Text=1,n.Read=2,n.Write=3})(xo||(xo={}));var Io;(function(n){function e(t,r){let i={range:t};return p.number(r)&&(i.kind=r),i}n.create=e})(Io||(Io={}));var Co;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(Co||(Co={}));var No;(function(n){n.Deprecated=1})(No||(No={}));var wo;(function(n){function e(t,r,i,s,a){let o={name:t,kind:r,location:{uri:s,range:i}};return a&&(o.containerName=a),o}n.create=e})(wo||(wo={}));var _o;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(_o||(_o={}));var Lo;(function(n){function e(r,i,s,a,o,l){let c={name:r,detail:i,kind:s,range:a,selectionRange:o};return l!==void 0&&(c.children=l),c}n.create=e;function t(r){let i=r;return i&&p.string(i.name)&&p.number(i.kind)&&O.is(i.range)&&O.is(i.selectionRange)&&(i.detail===void 0||p.string(i.detail))&&(i.deprecated===void 0||p.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(Lo||(Lo={}));var bo;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(bo||(bo={}));var li;(function(n){n.Invoked=1,n.Automatic=2})(li||(li={}));var Oo;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return p.defined(i)&&p.typedArray(i.diagnostics,ai.is)&&(i.only===void 0||p.typedArray(i.only,p.string))&&(i.triggerKind===void 0||i.triggerKind===li.Invoked||i.triggerKind===li.Automatic)}n.is=t})(Oo||(Oo={}));var Po;(function(n){function e(r,i,s){let a={title:r},o=!0;return typeof i=="string"?(o=!1,a.kind=i):tn.is(i)?a.command=i:a.edit=i,o&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&p.string(i.title)&&(i.diagnostics===void 0||p.typedArray(i.diagnostics,ai.is))&&(i.kind===void 0||p.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||tn.is(i.command))&&(i.isPreferred===void 0||p.boolean(i.isPreferred))&&(i.edit===void 0||Ns.is(i.edit))}n.is=t})(Po||(Po={}));var Mo;(function(n){function e(r,i){let s={range:r};return p.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.command)||tn.is(i.command))}n.is=t})(Mo||(Mo={}));var Do;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return p.defined(i)&&p.uinteger(i.tabSize)&&p.boolean(i.insertSpaces)}n.is=t})(Do||(Do={}));var Fo;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return p.defined(i)&&O.is(i.range)&&(p.undefined(i.target)||p.string(i.target))}n.is=t})(Fo||(Fo={}));var Go;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return p.objectLiteral(i)&&O.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(Go||(Go={}));var Uo;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(Uo||(Uo={}));var Bo;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(Bo||(Bo={}));var Vo;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(Vo||(Vo={}));var Ko;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.string(i.text)}n.is=t})(Ko||(Ko={}));var Wo;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&p.boolean(i.caseSensitiveLookup)&&(p.string(i.variableName)||i.variableName===void 0)}n.is=t})(Wo||(Wo={}));var jo;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){const i=r;return i!=null&&O.is(i.range)&&(p.string(i.expression)||i.expression===void 0)}n.is=t})(jo||(jo={}));var Ho;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){const i=r;return p.defined(i)&&O.is(r.stoppedLocation)}n.is=t})(Ho||(Ho={}));var Ls;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(Ls||(Ls={}));var bs;(function(n){function e(r){return{value:r}}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&(i.tooltip===void 0||p.string(i.tooltip)||Qn.is(i.tooltip))&&(i.location===void 0||si.is(i.location))&&(i.command===void 0||tn.is(i.command))}n.is=t})(bs||(bs={}));var zo;(function(n){function e(r,i,s){const a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){const i=r;return p.objectLiteral(i)&&P.is(i.position)&&(p.string(i.label)||p.typedArray(i.label,bs.is))&&(i.kind===void 0||Ls.is(i.kind))&&i.textEdits===void 0||p.typedArray(i.textEdits,nn.is)&&(i.tooltip===void 0||p.string(i.tooltip)||Qn.is(i.tooltip))&&(i.paddingLeft===void 0||p.boolean(i.paddingLeft))&&(i.paddingRight===void 0||p.boolean(i.paddingRight))}n.is=t})(zo||(zo={}));var qo;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(qo||(qo={}));var Yo;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(Yo||(Yo={}));var Xo;(function(n){function e(t){return{items:t}}n.create=e})(Xo||(Xo={}));var Jo;(function(n){n.Invoked=0,n.Automatic=1})(Jo||(Jo={}));var Qo;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(Qo||(Qo={}));var Zo;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(Zo||(Zo={}));var el;(function(n){function e(t){const r=t;return p.objectLiteral(r)&&As.is(r.uri)&&p.string(r.name)}n.is=e})(el||(el={}));var tl;(function(n){function e(s,a,o,l){return new lm(s,a,o,l)}n.create=e;function t(s){let a=s;return!!(p.defined(a)&&p.string(a.uri)&&(p.undefined(a.languageId)||p.string(a.languageId))&&p.uinteger(a.lineCount)&&p.func(a.getText)&&p.func(a.positionAt)&&p.func(a.offsetAt))}n.is=t;function r(s,a){let o=s.getText(),l=i(a,(u,d)=>{let h=u.range.start.line-d.range.start.line;return h===0?u.range.start.character-d.range.start.character:h}),c=o.length;for(let u=l.length-1;u>=0;u--){let d=l[u],h=s.offsetAt(d.range.start),f=s.offsetAt(d.range.end);if(f<=c)o=o.substring(0,h)+d.newText+o.substring(f,o.length);else throw new Error("Overlapping edit");c=h}return o}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;const o=s.length/2|0,l=s.slice(0,o),c=s.slice(o);i(l,a),i(c,a);let u=0,d=0,h=0;for(;u0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return P.create(0,e);for(;re?i=a:r=a+1}let s=r-1;return P.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1"u"}n.undefined=r;function i(f){return f===!0||f===!1}n.boolean=i;function s(f){return e.call(f)==="[object String]"}n.string=s;function a(f){return e.call(f)==="[object Number]"}n.number=a;function o(f,m,g){return e.call(f)==="[object Number]"&&m<=f&&f<=g}n.numberRange=o;function l(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}n.integer=l;function c(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}n.uinteger=c;function u(f){return e.call(f)==="[object Function]"}n.func=u;function d(f){return f!==null&&typeof f=="object"}n.objectLiteral=d;function h(f,m){return Array.isArray(f)&&f.every(m)}n.typedArray=h})(p||(p={}));class cm{constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new jc(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new ua;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const r=new Os(e.startOffset,e.image.length,os(e),e.tokenType,!t);return r.grammarSource=t,r.root=this.rootNode,this.current.content.push(r),r}removeNode(e){const t=e.container;if(t){const r=t.content.indexOf(e);r>=0&&t.content.splice(r,1)}}addHiddenNodes(e){const t=[];for(const s of e){const a=new Os(s.startOffset,s.image.length,os(s),s.tokenType,!0);a.root=this.rootNode,t.push(a)}let r=this.current,i=!1;if(r.content.length>0){r.content.push(...t);return}for(;r.container;){const s=r.container.content.indexOf(r);if(s>0){r.container.content.splice(s,0,...t),i=!0;break}r=r.container}i||this.rootNode.content.unshift(...t)}construct(e){const t=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=t;const r=this.nodeStack.pop();(r==null?void 0:r.content.length)===0&&this.removeNode(r)}}class Wc{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const r=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!r)throw new Error("This node has no associated AST element");return r}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Os extends Wc{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,r,i,s=!1){super(),this._hidden=s,this._offset=e,this._tokenType=i,this._length=t,this._range=r}}class ua extends Wc{constructor(){super(...arguments),this.content=new da(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===void 0){const{range:r}=e,{range:i}=t;this._rangeCache={start:r.start,end:i.end.line=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class da extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,da.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(const t of e)t.container=this.parent}}class jc extends ua{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const Ps=Symbol("Datatype");function Wi(n){return n.$type===Ps}const nl="​",Hc=n=>n.endsWith(nl)?n:n+nl;class zc{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,r=e.LanguageMetaData.mode==="production";this.wrapper=new pm(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:r,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class um extends zc{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new cm,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const r=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(Hc(e.name),this.startImplementation(r,t).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Ql(e))return Ps;{const t=Xs(e);return t??e.name}}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const r=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=r.tokens;const i=t.rule?this.allRules.get(t.rule):this.mainRule;if(!i)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const s=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{const i=!this.isRecording()&&e!==void 0;if(i){const a={$type:e};this.stack.push(a),e===Ps&&(a.value="")}let s;try{s=t(r)}catch{s=void 0}return s===void 0&&i&&(s=this.construct()),s}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const r=e.startOffset;for(let i=0;ir)return t.splice(0,i);return t.splice(0,t.length)}consume(e,t,r){const i=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(i)){const s=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(s);const a=this.nodeBuilder.buildLeafNode(i,r),{assignment:o,isCrossRef:l}=this.getAssignment(r),c=this.current;if(o){const u=Tt(r)?i.image:this.converter.convert(i.image,a);this.assign(o.operator,o.feature,u,a,l)}else if(Wi(c)){let u=i.image;Tt(r)||(u=this.converter.convert(u,a).toString()),c.value+=u}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,t,r,i,s){let a;!this.isRecording()&&!r&&(a=this.nodeBuilder.buildCompositeNode(i));const o=this.wrapper.wrapSubrule(e,t,s);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(o,i,a)}performSubruleAssignment(e,t,r){const{assignment:i,isCrossRef:s}=this.getAssignment(t);if(i)this.assign(i.operator,i.feature,e,r,s);else if(!i){const a=this.current;if(Wi(a))a.value+=e.toString();else if(typeof e=="object"&&e){const l=this.assignWithoutOverride(e,a);this.stack.pop(),this.stack.push(l)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(t.feature&&t.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(r.$cstNode);const s={$type:e};this.stack.push(s),this.assign(t.operator,t.feature,r,r.$cstNode,!1)}else r.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return Kd(e),this.nodeBuilder.construct(e),this.stack.pop(),Wi(e)?this.converter.convert(e.value,e.$cstNode):(Wd(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=yi(e,yt);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?Hs(t.terminal):!1})}return this.assignmentMap.get(e)}assign(e,t,r,i,s){const a=this.current;let o;switch(s&&typeof r=="string"?o=this.linker.buildReference(a,t,i,r):o=r,e){case"=":{a[t]=o;break}case"?=":{a[t]=!0;break}case"+=":Array.isArray(a[t])||(a[t]=[]),a[t].push(o)}}assignWithoutOverride(e,t){for(const[i,s]of Object.entries(t)){const a=e[i];a===void 0?e[i]=s:Array.isArray(a)&&Array.isArray(s)&&(s.push(...a),e[i]=s)}const r=e.$cstNode;return r&&(r.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class dm{buildMismatchTokenMessage(e){return _t.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return _t.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return _t.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return _t.buildEarlyExitMessage(e)}}class qc extends dm{buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class fm extends zc{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const r=this.wrapper.DEFINE_RULE(Hc(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,i,s){this.before(i),this.wrapper.wrapSubrule(e,t,s),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const hm={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new qc};class pm extends Ap{constructor(e,t){const r=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},hm),{lookaheadStrategy:r?new ia({maxLookahead:t.maxLookahead}):new Vp({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function Yc(n,e,t){return mm({parser:e,tokens:t,ruleNames:new Map},n),e}function mm(n,e){const t=zl(e,!1),r=ee(e.rules).filter(we).filter(i=>t.has(i));for(const i of r){const s=Object.assign(Object.assign({},n),{consume:1,optional:1,subrule:1,many:1,or:1});n.parser.rule(i,At(s,i.definition))}}function At(n,e,t=!1){let r;if(Tt(e))r=Em(n,e);else if(gi(e))r=gm(n,e);else if(yt(e))r=At(n,e.terminal);else if(Hs(e))r=Xc(n,e);else if(Rt(e))r=ym(n,e);else if(Bl(e))r=Rm(n,e);else if(Vl(e))r=vm(n,e);else if(zs(e))r=Am(n,e);else if(Pd(e)){const i=n.consume++;r=()=>n.parser.consume(i,nt,e)}else throw new Dl(e.$cstNode,`Unexpected element type: ${e.$type}`);return Jc(n,t?void 0:ci(e),r,e.cardinality)}function gm(n,e){const t=Js(e);return()=>n.parser.action(t,e)}function ym(n,e){const t=e.rule.ref;if(we(t)){const r=n.subrule++,i=t.fragment,s=e.arguments.length>0?Tm(t,e.arguments):()=>({});return a=>n.parser.subrule(r,Qc(n,t),i,e,s(a))}else if($t(t)){const r=n.consume++,i=Ms(n,t.name);return()=>n.parser.consume(r,i,e)}else if(t)tr();else throw new Dl(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function Tm(n,e){const t=e.map(r=>ze(r.value));return r=>{const i={};for(let s=0;se(r)||t(r)}else if(Cd(n)){const e=ze(n.left),t=ze(n.right);return r=>e(r)&&t(r)}else if(wd(n)){const e=ze(n.value);return t=>!e(t)}else if(_d(n)){const e=n.parameter.ref.name;return t=>t!==void 0&&t[e]===!0}else if(Id(n)){const e=!!n.true;return()=>e}tr()}function Rm(n,e){if(e.elements.length===1)return At(n,e.elements[0]);{const t=[];for(const i of e.elements){const s={ALT:At(n,i,!0)},a=ci(i);a&&(s.GATE=ze(a)),t.push(s)}const r=n.or++;return i=>n.parser.alternatives(r,t.map(s=>{const a={ALT:()=>s.ALT(i)},o=s.GATE;return o&&(a.GATE=()=>o(i)),a}))}}function vm(n,e){if(e.elements.length===1)return At(n,e.elements[0]);const t=[];for(const o of e.elements){const l={ALT:At(n,o,!0)},c=ci(o);c&&(l.GATE=ze(c)),t.push(l)}const r=n.or++,i=(o,l)=>{const c=l.getRuleStack().join("-");return`uGroup_${o}_${c}`},s=o=>n.parser.alternatives(r,t.map((l,c)=>{const u={ALT:()=>!0},d=n.parser;u.ALT=()=>{if(l.ALT(o),!d.isRecording()){const f=i(r,d);d.unorderedGroups.get(f)||d.unorderedGroups.set(f,[]);const m=d.unorderedGroups.get(f);typeof(m==null?void 0:m[c])>"u"&&(m[c]=!0)}};const h=l.GATE;return h?u.GATE=()=>h(o):u.GATE=()=>{const f=d.unorderedGroups.get(i(r,d));return!(f!=null&&f[c])},u})),a=Jc(n,ci(e),s,"*");return o=>{a(o),n.parser.isRecording()||n.parser.unorderedGroups.delete(i(r,n.parser))}}function Am(n,e){const t=e.elements.map(r=>At(n,r));return r=>t.forEach(i=>i(r))}function ci(n){if(zs(n))return n.guardCondition}function Xc(n,e,t=e.terminal){if(t)if(Rt(t)&&we(t.rule.ref)){const r=t.rule.ref,i=n.subrule++;return s=>n.parser.subrule(i,Qc(n,r),!1,e,s)}else if(Rt(t)&&$t(t.rule.ref)){const r=n.consume++,i=Ms(n,t.rule.ref.name);return()=>n.parser.consume(r,i,e)}else if(Tt(t)){const r=n.consume++,i=Ms(n,t.value);return()=>n.parser.consume(r,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);const r=Xl(e.type.ref),i=r==null?void 0:r.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Js(e.type.ref));return Xc(n,e,i)}}function Em(n,e){const t=n.consume++,r=n.tokens[e.value];if(!r)throw new Error("Could not find token for keyword: "+e.value);return()=>n.parser.consume(t,r,e)}function Jc(n,e,t,r){const i=e&&ze(e);if(!r)if(i){const s=n.or++;return a=>n.parser.alternatives(s,[{ALT:()=>t(a),GATE:()=>i(a)},{ALT:Xa(),GATE:()=>!i(a)}])}else return t;if(r==="*"){const s=n.many++;return a=>n.parser.many(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else if(r==="+"){const s=n.many++;if(i){const a=n.or++;return o=>n.parser.alternatives(a,[{ALT:()=>n.parser.atLeastOne(s,{DEF:()=>t(o)}),GATE:()=>i(o)},{ALT:Xa(),GATE:()=>!i(o)}])}else return a=>n.parser.atLeastOne(s,{DEF:()=>t(a)})}else if(r==="?"){const s=n.optional++;return a=>n.parser.optional(s,{DEF:()=>t(a),GATE:i?()=>i(a):void 0})}else tr()}function Qc(n,e){const t=km(n,e),r=n.parser.getRule(t);if(!r)throw new Error(`Rule "${t}" not found."`);return r}function km(n,e){if(we(e))return e.name;if(n.ruleNames.has(e))return n.ruleNames.get(e);{let t=e,r=t.$container,i=e.$type;for(;!we(r);)(zs(r)||Bl(r)||Vl(r))&&(i=r.elements.indexOf(t).toString()+":"+i),t=r,r=r.$container;return i=r.name+":"+i,n.ruleNames.set(e,i),i}}function Ms(n,e){const t=n.tokens[e];if(!t)throw new Error(`Token "${e}" not found."`);return t}function $m(n){const e=n.Grammar,t=n.parser.Lexer,r=new fm(n);return Yc(e,r,t.definition),r.finalize(),r}function Sm(n){const e=xm(n);return e.finalize(),e}function xm(n){const e=n.Grammar,t=n.parser.Lexer,r=new um(n);return Yc(e,r,t.definition)}class Zc{constructor(){this.diagnostics=[]}buildTokens(e,t){const r=ee(zl(e,!1)),i=this.buildTerminalTokens(r),s=this.buildKeywordTokens(r,i,t);return i.forEach(a=>{const o=a.PATTERN;typeof o=="object"&&o&&"test"in o&&cs(o)?s.unshift(a):s.push(a)}),s}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter($t).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(e){const t=Qs(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,i={name:e.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=cs(t)?fe.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?(t.lastIndex=i,t.exec(r))}buildKeywordTokens(e,t,r){return e.filter(we).flatMap(i=>nr(i).filter(Tt)).distinct(i=>i.value).toArray().sort((i,s)=>s.value.length-i.value.length).map(i=>this.buildKeywordToken(i,t,!!(r!=null&&r.caseInsensitive)))}buildKeywordToken(e,t,r){const i=this.buildKeywordPattern(e,r),s={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,t)};return typeof i=="function"&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(e,t){return t?new RegExp(Zd(e.value)):e.value}findLongerAlt(e,t){return t.reduce((r,i)=>{const s=i==null?void 0:i.PATTERN;return s!=null&&s.source&&ef("^"+s.source+"$",e.value)&&r.push(i),r},[])}}class eu{convert(e,t){let r=t.grammarSource;if(Hs(r)&&(r=sf(r)),Rt(r)){const i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,t)}return e}runConverter(e,t,r){var i;switch(e.name.toUpperCase()){case"INT":return We.convertInt(t);case"STRING":return We.convertString(t);case"ID":return We.convertID(t)}switch((i=ff(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return We.convertNumber(t);case"boolean":return We.convertBoolean(t);case"bigint":return We.convertBigint(t);case"date":return We.convertDate(t);default:return t}}}var We;(function(n){function e(c){let u="";for(let d=1;de(l))}return J.stringArray=a,J}var mt={},sl;function nu(){if(sl)return mt;sl=1,Object.defineProperty(mt,"__esModule",{value:!0}),mt.Emitter=mt.Event=void 0;const n=tu();var e;(function(i){const s={dispose(){}};i.None=function(){return s}})(e||(mt.Event=e={}));class t{add(s,a=null,o){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(o)&&o.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let o=!1;for(let l=0,c=this._callbacks.length;l{this._callbacks||(this._callbacks=new t),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const l={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),l.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(o)&&o.push(l),l}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return mt.Emitter=r,r._noop=function(){},mt}var al;function Cm(){if(al)return pt;al=1,Object.defineProperty(pt,"__esModule",{value:!0}),pt.CancellationTokenSource=pt.CancellationToken=void 0;const n=tu(),e=Im(),t=nu();var r;(function(o){o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:t.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:t.Event.None});function l(c){const u=c;return u&&(u===o.None||u===o.Cancelled||e.boolean(u.isCancellationRequested)&&!!u.onCancellationRequested)}o.is=l})(r||(pt.CancellationToken=r={}));const i=Object.freeze(function(o,l){const c=(0,n.default)().timer.setTimeout(o.bind(l),0);return{dispose(){c.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?i:(this._emitter||(this._emitter=new t.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=r.None}}return pt.CancellationTokenSource=a,pt}var V=Cm();function Nm(){return new Promise(n=>{typeof setImmediate>"u"?setTimeout(n,0):setImmediate(n)})}let Dr=0,wm=10;function _m(){return Dr=performance.now(),new V.CancellationTokenSource}const ui=Symbol("OperationCancelled");function Ii(n){return n===ui}async function Ae(n){if(n===V.CancellationToken.None)return;const e=performance.now();if(e-Dr>=wm&&(Dr=e,await Nm(),Dr=performance.now()),n.isCancellationRequested)throw ui}class fa{constructor(){this.promise=new Promise((e,t)=>{this.resolve=r=>(e(r),this),this.reject=r=>(t(r),this)})}}class Zn{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(const r of e)if(Zn.isIncremental(r)){const i=iu(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const o=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let c=this._lineOffsets;const u=ol(r.text,!1,s);if(l-o===u.length)for(let h=0,f=u.length;he?i=a:r=a+1}const s=r-1;return e=this.ensureBeforeEOL(e,t[s]),{line:s,character:e-t[s]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const r=t[e.line];if(e.character<=0)return r;const i=e.line+1t&&ru(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){const t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}}var Ds;(function(n){function e(i,s,a,o){return new Zn(i,s,a,o)}n.create=e;function t(i,s,a){if(i instanceof Zn)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}n.update=t;function r(i,s){const a=i.getText(),o=Fs(s.map(Lm),(u,d)=>{const h=u.range.start.line-d.range.start.line;return h===0?u.range.start.character-d.range.start.character:h});let l=0;const c=[];for(const u of o){const d=i.offsetAt(u.range.start);if(dl&&c.push(a.substring(l,d)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(a.substr(l)),c.join("")}n.applyEdits=r})(Ds||(Ds={}));function Fs(n,e){if(n.length<=1)return n;const t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);Fs(r,e),Fs(i,e);let s=0,a=0,o=0;for(;st.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function Lm(n){const e=iu(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var su;(()=>{var n={470:i=>{function s(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function a(l,c){for(var u,d="",h=0,f=-1,m=0,g=0;g<=l.length;++g){if(g2){var A=d.lastIndexOf("/");if(A!==d.length-1){A===-1?(d="",h=0):h=(d=d.slice(0,A)).length-1-d.lastIndexOf("/"),f=g,m=0;continue}}else if(d.length===2||d.length===1){d="",h=0,f=g,m=0;continue}}c&&(d.length>0?d+="/..":d="..",h=2)}else d.length>0?d+="/"+l.slice(f+1,g):d=l.slice(f+1,g),h=g-f-1;f=g,m=0}else u===46&&m!==-1?++m:m=-1}return d}var o={resolve:function(){for(var l,c="",u=!1,d=arguments.length-1;d>=-1&&!u;d--){var h;d>=0?h=arguments[d]:(l===void 0&&(l=process.cwd()),h=l),s(h),h.length!==0&&(c=h+"/"+c,u=h.charCodeAt(0)===47)}return c=a(c,!u),u?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(l){if(s(l),l.length===0)return".";var c=l.charCodeAt(0)===47,u=l.charCodeAt(l.length-1)===47;return(l=a(l,!c)).length!==0||c||(l="."),l.length>0&&u&&(l+="/"),c?"/"+l:l},isAbsolute:function(l){return s(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,c=0;c0&&(l===void 0?l=u:l+="/"+u)}return l===void 0?".":o.normalize(l)},relative:function(l,c){if(s(l),s(c),l===c||(l=o.resolve(l))===(c=o.resolve(c)))return"";for(var u=1;ug){if(c.charCodeAt(f+y)===47)return c.slice(f+y+1);if(y===0)return c.slice(f+y)}else h>g&&(l.charCodeAt(u+y)===47?A=y:y===0&&(A=0));break}var E=l.charCodeAt(u+y);if(E!==c.charCodeAt(f+y))break;E===47&&(A=y)}var R="";for(y=u+A+1;y<=d;++y)y!==d&&l.charCodeAt(y)!==47||(R.length===0?R+="..":R+="/..");return R.length>0?R+c.slice(f+A):(f+=A,c.charCodeAt(f)===47&&++f,c.slice(f))},_makeLong:function(l){return l},dirname:function(l){if(s(l),l.length===0)return".";for(var c=l.charCodeAt(0),u=c===47,d=-1,h=!0,f=l.length-1;f>=1;--f)if((c=l.charCodeAt(f))===47){if(!h){d=f;break}}else h=!1;return d===-1?u?"/":".":u&&d===1?"//":l.slice(0,d)},basename:function(l,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(l);var u,d=0,h=-1,f=!0;if(c!==void 0&&c.length>0&&c.length<=l.length){if(c.length===l.length&&c===l)return"";var m=c.length-1,g=-1;for(u=l.length-1;u>=0;--u){var A=l.charCodeAt(u);if(A===47){if(!f){d=u+1;break}}else g===-1&&(f=!1,g=u+1),m>=0&&(A===c.charCodeAt(m)?--m==-1&&(h=u):(m=-1,h=g))}return d===h?h=g:h===-1&&(h=l.length),l.slice(d,h)}for(u=l.length-1;u>=0;--u)if(l.charCodeAt(u)===47){if(!f){d=u+1;break}}else h===-1&&(f=!1,h=u+1);return h===-1?"":l.slice(d,h)},extname:function(l){s(l);for(var c=-1,u=0,d=-1,h=!0,f=0,m=l.length-1;m>=0;--m){var g=l.charCodeAt(m);if(g!==47)d===-1&&(h=!1,d=m+1),g===46?c===-1?c=m:f!==1&&(f=1):c!==-1&&(f=-1);else if(!h){u=m+1;break}}return c===-1||d===-1||f===0||f===1&&c===d-1&&c===u+1?"":l.slice(c,d)},format:function(l){if(l===null||typeof l!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof l);return(function(c,u){var d=u.dir||u.root,h=u.base||(u.name||"")+(u.ext||"");return d?d===u.root?d+h:d+"/"+h:h})(0,l)},parse:function(l){s(l);var c={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return c;var u,d=l.charCodeAt(0),h=d===47;h?(c.root="/",u=1):u=0;for(var f=-1,m=0,g=-1,A=!0,y=l.length-1,E=0;y>=u;--y)if((d=l.charCodeAt(y))!==47)g===-1&&(A=!1,g=y+1),d===46?f===-1?f=y:E!==1&&(E=1):f!==-1&&(E=-1);else if(!A){m=y+1;break}return f===-1||g===-1||E===0||E===1&&f===g-1&&f===m+1?g!==-1&&(c.base=c.name=m===0&&h?l.slice(1,g):l.slice(m,g)):(m===0&&h?(c.name=l.slice(1,f),c.base=l.slice(1,g)):(c.name=l.slice(m,f),c.base=l.slice(m,g)),c.ext=l.slice(f,g)),m>0?c.dir=l.slice(0,m-1):h&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,i.exports=o}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return n[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>h,Utils:()=>Ie}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);const s=/^\w[\w\d+.-]*$/,a=/^\//,o=/^\/\//;function l($,T){if(!$.scheme&&T)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${$.authority}", path: "${$.path}", query: "${$.query}", fragment: "${$.fragment}"}`);if($.scheme&&!s.test($.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if($.path){if($.authority){if(!a.test($.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(o.test($.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}const c="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{constructor(T,k,x,b,L,_=!1){Ze(this,"scheme");Ze(this,"authority");Ze(this,"path");Ze(this,"query");Ze(this,"fragment");typeof T=="object"?(this.scheme=T.scheme||c,this.authority=T.authority||c,this.path=T.path||c,this.query=T.query||c,this.fragment=T.fragment||c):(this.scheme=(function(Te,q){return Te||q?Te:"file"})(T,_),this.authority=k||c,this.path=(function(Te,q){switch(Te){case"https":case"http":case"file":q?q[0]!==u&&(q=u+q):q=u}return q})(this.scheme,x||c),this.query=b||c,this.fragment=L||c,l(this,_))}static isUri(T){return T instanceof h||!!T&&typeof T.authority=="string"&&typeof T.fragment=="string"&&typeof T.path=="string"&&typeof T.query=="string"&&typeof T.scheme=="string"&&typeof T.fsPath=="string"&&typeof T.with=="function"&&typeof T.toString=="function"}get fsPath(){return E(this)}with(T){if(!T)return this;let{scheme:k,authority:x,path:b,query:L,fragment:_}=T;return k===void 0?k=this.scheme:k===null&&(k=c),x===void 0?x=this.authority:x===null&&(x=c),b===void 0?b=this.path:b===null&&(b=c),L===void 0?L=this.query:L===null&&(L=c),_===void 0?_=this.fragment:_===null&&(_=c),k===this.scheme&&x===this.authority&&b===this.path&&L===this.query&&_===this.fragment?this:new m(k,x,b,L,_)}static parse(T,k=!1){const x=d.exec(T);return x?new m(x[2]||c,ie(x[4]||c),ie(x[5]||c),ie(x[7]||c),ie(x[9]||c),k):new m(c,c,c,c,c)}static file(T){let k=c;if(i&&(T=T.replace(/\\/g,u)),T[0]===u&&T[1]===u){const x=T.indexOf(u,2);x===-1?(k=T.substring(2),T=u):(k=T.substring(2,x),T=T.substring(x)||u)}return new m("file",k,T,c,c)}static from(T){const k=new m(T.scheme,T.authority,T.path,T.query,T.fragment);return l(k,!0),k}toString(T=!1){return R(this,T)}toJSON(){return this}static revive(T){if(T){if(T instanceof h)return T;{const k=new m(T);return k._formatted=T.external,k._fsPath=T._sep===f?T.fsPath:null,k}}return T}}const f=i?1:void 0;class m extends h{constructor(){super(...arguments);Ze(this,"_formatted",null);Ze(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=E(this)),this._fsPath}toString(k=!1){return k?R(this,!0):(this._formatted||(this._formatted=R(this,!1)),this._formatted)}toJSON(){const k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=f),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A($,T,k){let x,b=-1;for(let L=0;L<$.length;L++){const _=$.charCodeAt(L);if(_>=97&&_<=122||_>=65&&_<=90||_>=48&&_<=57||_===45||_===46||_===95||_===126||T&&_===47||k&&_===91||k&&_===93||k&&_===58)b!==-1&&(x+=encodeURIComponent($.substring(b,L)),b=-1),x!==void 0&&(x+=$.charAt(L));else{x===void 0&&(x=$.substr(0,L));const Te=g[_];Te!==void 0?(b!==-1&&(x+=encodeURIComponent($.substring(b,L)),b=-1),x+=Te):b===-1&&(b=L)}}return b!==-1&&(x+=encodeURIComponent($.substring(b))),x!==void 0?x:$}function y($){let T;for(let k=0;k<$.length;k++){const x=$.charCodeAt(k);x===35||x===63?(T===void 0&&(T=$.substr(0,k)),T+=g[x]):T!==void 0&&(T+=$[k])}return T!==void 0?T:$}function E($,T){let k;return k=$.authority&&$.path.length>1&&$.scheme==="file"?`//${$.authority}${$.path}`:$.path.charCodeAt(0)===47&&($.path.charCodeAt(1)>=65&&$.path.charCodeAt(1)<=90||$.path.charCodeAt(1)>=97&&$.path.charCodeAt(1)<=122)&&$.path.charCodeAt(2)===58?$.path[1].toLowerCase()+$.path.substr(2):$.path,i&&(k=k.replace(/\//g,"\\")),k}function R($,T){const k=T?y:A;let x="",{scheme:b,authority:L,path:_,query:Te,fragment:q}=$;if(b&&(x+=b,x+=":"),(L||b==="file")&&(x+=u,x+=u),L){let K=L.indexOf("@");if(K!==-1){const dt=L.substr(0,K);L=L.substr(K+1),K=dt.lastIndexOf(":"),K===-1?x+=k(dt,!1,!1):(x+=k(dt.substr(0,K),!1,!1),x+=":",x+=k(dt.substr(K+1),!1,!0)),x+="@"}L=L.toLowerCase(),K=L.lastIndexOf(":"),K===-1?x+=k(L,!1,!0):(x+=k(L.substr(0,K),!1,!0),x+=L.substr(K))}if(_){if(_.length>=3&&_.charCodeAt(0)===47&&_.charCodeAt(2)===58){const K=_.charCodeAt(1);K>=65&&K<=90&&(_=`/${String.fromCharCode(K+32)}:${_.substr(3)}`)}else if(_.length>=2&&_.charCodeAt(1)===58){const K=_.charCodeAt(0);K>=65&&K<=90&&(_=`${String.fromCharCode(K+32)}:${_.substr(2)}`)}x+=k(_,!0,!1)}return Te&&(x+="?",x+=k(Te,!1,!1)),q&&(x+="#",x+=T?q:A(q,!1,!1)),x}function I($){try{return decodeURIComponent($)}catch{return $.length>3?$.substr(0,3)+I($.substr(3)):$}}const F=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ie($){return $.match(F)?$.replace(F,(T=>I(T))):$}var _e=t(470);const ye=_e.posix||_e,Fe="/";var Ie;(function($){$.joinPath=function(T,...k){return T.with({path:ye.join(T.path,...k)})},$.resolvePath=function(T,...k){let x=T.path,b=!1;x[0]!==Fe&&(x=Fe+x,b=!0);let L=ye.resolve(x,...k);return b&&L[0]===Fe&&!T.authority&&(L=L.substring(1)),T.with({path:L})},$.dirname=function(T){if(T.path.length===0||T.path===Fe)return T;let k=ye.dirname(T.path);return k.length===1&&k.charCodeAt(0)===46&&(k=""),T.with({path:k})},$.basename=function(T){return ye.basename(T.path)},$.extname=function(T){return ye.extname(T.path)}})(Ie||(Ie={}))})(),su=r})();const{URI:Et,Utils:fn}=su;var it;(function(n){n.basename=fn.basename,n.dirname=fn.dirname,n.extname=fn.extname,n.joinPath=fn.joinPath,n.resolvePath=fn.resolvePath;function e(i,s){return(i==null?void 0:i.toString())===(s==null?void 0:s.toString())}n.equals=e;function t(i,s){const a=typeof i=="string"?i:i.path,o=typeof s=="string"?s:s.path,l=a.split("/").filter(f=>f.length>0),c=o.split("/").filter(f=>f.length>0);let u=0;for(;ui??(i=Ds.create(e.toString(),r.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Om{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return ee(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r||(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(i=>(this.addDocument(i),i));{const i=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(this.serviceRegistry.getServices(e).references.Linker.unlink(r),r.state=U.Changed,r.precomputedScopes=void 0,r.diagnostics=void 0),r}deleteDocument(e){const t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=U.Changed,this.documentMap.delete(t)),r}}const ji=Symbol("ref_resolving");class Pm{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=V.CancellationToken.None){for(const r of Lt(e.parseResult.value))await Ae(t),Wl(r).forEach(i=>this.doLink(i,e))}doLink(e,t){var r;const i=e.reference;if(i._ref===void 0){i._ref=ji;try{const s=this.getCandidate(e);if(wr(s))i._ref=s;else if(i._nodeDescription=s,this.langiumDocuments().hasDocument(s.documentUri)){const a=this.loadAstNode(s);i._ref=a??this.createLinkingError(e,s)}else i._ref=void 0}catch(s){console.error(`An error occurred while resolving reference to '${i.$refText}':`,s);const a=(r=s.message)!==null&&r!==void 0?r:String(s);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${a}`})}t.references.push(i)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){const r=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return r??this.createLinkingError(e)}buildReference(e,t,r,i){const s=this,a={$refNode:r,$refText:i,get ref(){var o;if(ae(this._ref))return this._ref;if(yd(this._nodeDescription)){const l=s.loadAstNode(this._nodeDescription);this._ref=l??s.createLinkingError({reference:a,container:e,property:t},this._nodeDescription)}else if(this._ref===void 0){this._ref=ji;const l=ls(e).$document,c=s.getLinkedNode({reference:a,container:e,property:t});if(c.error&&l&&l.state=e.end)return s.ref}}if(r){const i=this.nameProvider.getNameNode(r);if(i&&(i===e||vd(e,i)))return r}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(t!=null&&t.$cstNode){const r=this.nameProvider.getNameNode(t);return r??t.$cstNode}}findReferences(e,t){const r=[];if(t.includeDeclaration){const s=this.getReferenceToSelf(e);s&&r.push(s)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(i=i.filter(s=>it.equals(s.sourceUri,t.documentUri))),r.push(...i),ee(r)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const r=et(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:i,targetUri:r.uri,targetPath:i,segment:Hr(t),local:!0}}}}class di{constructor(e){if(this.map=new Map,e)for(const[t,r]of e)this.add(t,r)}get size(){return ss.sum(ee(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(t===void 0)return this.map.delete(e);{const r=this.map.get(e);if(r){const i=r.indexOf(t);if(i>=0)return r.length===1?this.map.delete(e):r.splice(i,1),!0}return!1}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===void 0)return this.map.has(e);{const r=this.map.get(e);return r?r.indexOf(t)>=0:!1}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(i=>e(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ee(this.map.entries()).flatMap(([e,t])=>t.map(r=>[e,r]))}keys(){return ee(this.map.keys())}values(){return ee(this.map.values()).flat()}entriesGroupedByKey(){return ee(this.map.entries())}}class ll{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return t!==void 0?(this.map.delete(e),this.inverse.delete(t),!0):!1}}class Gm{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=V.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=qs,i=V.CancellationToken.None){const s=[];this.exportNode(e,s,t);for(const a of r(e))await Ae(i),this.exportNode(a,s,t);return s}exportNode(e,t,r){const i=this.nameProvider.getName(e);i&&t.push(this.descriptions.createDescription(e,i,r))}async computeLocalScopes(e,t=V.CancellationToken.None){const r=e.parseResult.value,i=new di;for(const s of nr(r))await Ae(t),this.processNode(s,e,i);return i}processNode(e,t,r){const i=e.$container;if(i){const s=this.nameProvider.getName(e);s&&r.add(i,this.descriptions.createDescription(e,s,t))}}}class cl{constructor(e,t,r){var i;this.elements=e,this.outerScope=t,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){const t=this.caseInsensitive?this.elements.find(r=>r.name.toLowerCase()===e.toLowerCase()):this.elements.find(r=>r.name===e);if(t)return t;if(this.outerScope)return this.outerScope.getElement(e)}}class Um{constructor(e,t,r){var i;this.elements=new Map,this.caseInsensitive=(i=r==null?void 0:r.caseInsensitive)!==null&&i!==void 0?i:!1;for(const s of e){const a=this.caseInsensitive?s.name.toLowerCase():s.name;this.elements.set(a,s)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=ee(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class au{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Bm extends au{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const r=t();return this.cache.set(e,r),r}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class Vm extends au{constructor(e){super(),this.cache=new Map,this.converter=e??(t=>t)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();const i=this.cacheForContext(e);if(i.has(t))return i.get(t);if(r){const s=r();return i.set(t,s),s}else return}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let r=this.cache.get(t);return r||(r=new Map,this.cache.set(t,r)),r}}class Km extends Bm{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class Wm{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Km(e.shared)}getScope(e){const t=[],r=this.reflection.getReferenceType(e),i=et(e.container).precomputedScopes;if(i){let a=e.container;do{const o=i.get(a);o.length>0&&t.push(ee(o).filter(l=>this.reflection.isSubtype(l.type,r))),a=a.$container}while(a)}let s=this.getGlobalScope(r,e);for(let a=t.length-1;a>=0;a--)s=this.createScope(t[a],s);return s}createScope(e,t,r){return new cl(ee(e),t,r)}createScopeForNodes(e,t,r){const i=ee(e).map(s=>{const a=this.nameProvider.getName(s);if(a)return this.descriptions.createDescription(s,a)}).nonNullable();return new cl(i,t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Um(this.indexManager.allElements(e)))}}function jm(n){return typeof n.$comment=="string"}function ul(n){return typeof n=="object"&&!!n&&("$ref"in n||"$error"in n)}class Hm{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const r=t??{},i=t==null?void 0:t.replacer,s=(o,l)=>this.replacer(o,l,r),a=i?(o,l)=>i(o,l,s):s;try{return this.currentDocument=et(e),JSON.stringify(e,a,t==null?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const r=t??{},i=JSON.parse(e);return this.linkNode(i,i,r),i}replacer(e,t,{refText:r,sourceText:i,textRegions:s,comments:a,uriConverter:o}){var l,c,u,d;if(!this.ignoreProperties.has(e))if(Ue(t)){const h=t.ref,f=r?t.$refText:void 0;if(h){const m=et(h);let g="";this.currentDocument&&this.currentDocument!==m&&(o?g=o(m.uri,t):g=m.uri.toString());const A=this.astNodeLocator.getAstNodePath(h);return{$ref:`${g}#${A}`,$refText:f}}else return{$error:(c=(l=t.error)===null||l===void 0?void 0:l.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText:f}}else if(ae(t)){let h;if(s&&(h=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&(h!=null&&h.$textRegion)&&(h.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString())),i&&!e&&(h??(h=Object.assign({},t)),h.$sourceText=(d=t.$cstNode)===null||d===void 0?void 0:d.text),a){h??(h=Object.assign({},t));const f=this.commentProvider.getComment(t);f&&(h.$comment=f.replace(/\r/g,""))}return h??t}else return t}addAstNodeRegionWithAssignmentsTo(e){const t=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(e.$cstNode){const r=e.$textRegion=t(e.$cstNode),i=r.assignments={};return Object.keys(e).filter(s=>!s.startsWith("$")).forEach(s=>{const a=of(e.$cstNode,s).map(t);a.length!==0&&(i[s]=a)}),e}}linkNode(e,t,r,i,s,a){for(const[l,c]of Object.entries(e))if(Array.isArray(c))for(let u=0;u{await this.handleException(()=>e.call(t,r,i,s),"An error occurred during validation",i,r)}}async handleException(e,t,r,i){try{await e()}catch(s){if(Ii(s))throw s;console.error(`${t}:`,s),s instanceof Error&&s.stack&&console.error(s.stack);const a=s instanceof Error?s.message:String(s);r("error",`${t}: ${a}`,{node:i})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=ee(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(i=>t.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,r){return async(i,s,a,o)=>{await this.handleException(()=>e.call(r,i,s,a,o),t,s,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Ym{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=V.CancellationToken.None){const i=e.parseResult,s=[];if(await Ae(r),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(i,s,t),t.stopAfterLexingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===be.LexingError})||(this.processParsingErrors(i,s,t),t.stopAfterParsingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===be.ParsingError}))||(this.processLinkingErrors(e,s,t),t.stopAfterLinkingErrors&&s.some(a=>{var o;return((o=a.data)===null||o===void 0?void 0:o.code)===be.LinkingError}))))return s;try{s.push(...await this.validateAst(i.value,t,r))}catch(a){if(Ii(a))throw a;console.error("An error occurred during validation:",a)}return await Ae(r),s}processLexingErrors(e,t,r){var i,s,a;const o=[...e.lexerErrors,...(s=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&s!==void 0?s:[]];for(const l of o){const c=(a=l.severity)!==null&&a!==void 0?a:"error",u={severity:Hi(c),range:{start:{line:l.line-1,character:l.column-1},end:{line:l.line-1,character:l.column+l.length-1}},message:l.message,data:Jm(c),source:this.getSource()};t.push(u)}}processParsingErrors(e,t,r){for(const i of e.parserErrors){let s;if(isNaN(i.token.startOffset)){if("previousToken"in i){const a=i.previousToken;if(isNaN(a.startOffset)){const o={line:0,character:0};s={start:o,end:o}}else{const o={line:a.endLine-1,character:a.endColumn};s={start:o,end:o}}}}else s=os(i.token);if(s){const a={severity:Hi("error"),range:s,message:i.message,data:Wn(be.ParsingError),source:this.getSource()};t.push(a)}}}processLinkingErrors(e,t,r){for(const i of e.references){const s=i.error;if(s){const a={node:s.container,property:s.property,index:s.index,data:{code:be.LinkingError,containerType:s.container.$type,property:s.property,refText:s.reference.$refText}};t.push(this.toDiagnostic("error",s.message,a))}}}async validateAst(e,t,r=V.CancellationToken.None){const i=[],s=(a,o,l)=>{i.push(this.toDiagnostic(a,o,l))};return await this.validateAstBefore(e,t,s,r),await this.validateAstNodes(e,t,s,r),await this.validateAstAfter(e,t,s,r),i}async validateAstBefore(e,t,r,i=V.CancellationToken.None){var s;const a=this.validationRegistry.checksBefore;for(const o of a)await Ae(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}async validateAstNodes(e,t,r,i=V.CancellationToken.None){await Promise.all(Lt(e).map(async s=>{await Ae(i);const a=this.validationRegistry.getChecks(s.$type,t.categories);for(const o of a)await o(s,r,i)}))}async validateAstAfter(e,t,r,i=V.CancellationToken.None){var s;const a=this.validationRegistry.checksAfter;for(const o of a)await Ae(i),await o(e,r,(s=t.categories)!==null&&s!==void 0?s:[],i)}toDiagnostic(e,t,r){return{message:t,range:Xm(r),severity:Hi(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function Xm(n){if(n.range)return n.range;let e;return typeof n.property=="string"?e=Yl(n.node.$cstNode,n.property,n.index):typeof n.keyword=="string"&&(e=lf(n.node.$cstNode,n.keyword,n.index)),e??(e=n.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Hi(n){switch(n){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+n)}}function Jm(n){switch(n){case"error":return Wn(be.LexingError);case"warning":return Wn(be.LexingWarning);case"info":return Wn(be.LexingInfo);case"hint":return Wn(be.LexingHint);default:throw new Error("Invalid diagnostic severity: "+n)}}var be;(function(n){n.LexingError="lexing-error",n.LexingWarning="lexing-warning",n.LexingInfo="lexing-info",n.LexingHint="lexing-hint",n.ParsingError="parsing-error",n.LinkingError="linking-error"})(be||(be={}));class Qm{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r){const i=r??et(e);t??(t=this.nameProvider.getName(e));const s=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${s} has no name.`);let a;const o=()=>{var l;return a??(a=Hr((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:Hr(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class Zm{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=V.CancellationToken.None){const r=[],i=e.parseResult.value;for(const s of Lt(i))await Ae(t),Wl(s).filter(a=>!wr(a)).forEach(a=>{const o=this.createDescription(a);o&&r.push(o)});return r}createDescription(e){const t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;const i=et(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:Hr(r),local:it.equals(t.documentUri,i)}}}class eg{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return t!==void 0?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((i,s)=>{if(!i||s.length===0)return i;const a=s.indexOf(this.indexSeparator);if(a>0){const o=s.substring(0,a),l=parseInt(s.substring(a+1)),c=i[o];return c==null?void 0:c[l]}return i[s]},e)}}var tg=nu();class ng{constructor(e){this._ready=new fa,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new tg.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=(r=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&r!==void 0?r:!1}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((i,s)=>{this.updateSectionConfiguration(i.section,r[s])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const r=e.settings[t];this.updateSectionConfiguration(t,r),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:r})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var Yn;(function(n){function e(t){return{dispose:async()=>await t()}}n.create=e})(Yn||(Yn={}));class rg{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new di,this.documentPhaseListeners=new di,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=U.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=V.CancellationToken.None){var i,s;for(const a of e){const o=a.uri.toString();if(a.state===U.Validated){if(typeof t.validation=="boolean"&&t.validation)a.state=U.IndexedReferences,a.diagnostics=void 0,this.buildState.delete(o);else if(typeof t.validation=="object"){const l=this.buildState.get(o),c=(i=l==null?void 0:l.result)===null||i===void 0?void 0:i.validationChecks;if(c){const d=((s=t.validation.categories)!==null&&s!==void 0?s:fi.all).filter(h=>!c.includes(h));d.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:d})},result:l.result}),a.state=U.IndexedReferences)}}}else this.buildState.delete(o)}this.currentState=U.Changed,await this.emitUpdate(e.map(a=>a.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=V.CancellationToken.None){this.currentState=U.Changed;for(const a of t)this.langiumDocuments.deleteDocument(a),this.buildState.delete(a.toString()),this.indexManager.remove(a);for(const a of e){if(!this.langiumDocuments.invalidateDocument(a)){const l=this.langiumDocumentFactory.fromModel({$type:"INVALID"},a);l.state=U.Changed,this.langiumDocuments.addDocument(l)}this.buildState.delete(a.toString())}const i=ee(e).concat(t).map(a=>a.toString()).toSet();this.langiumDocuments.all.filter(a=>!i.has(a.uri.toString())&&this.shouldRelink(a,i)).forEach(a=>{this.serviceRegistry.getServices(a.uri).references.Linker.unlink(a),a.state=Math.min(a.state,U.ComputedScopes),a.diagnostics=void 0}),await this.emitUpdate(e,t),await Ae(r);const s=this.sortDocuments(this.langiumDocuments.all.filter(a=>{var o;return a.stater(e,t)))}sortDocuments(e){let t=0,r=e.length-1;for(;t=0&&!this.hasTextDocument(e[r]);)r--;tr.error!==void 0)?!0:this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),Yn.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,U.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(e,U.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(e,U.ComputedScopes,r,async s=>{const a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.precomputedScopes=await a.computeLocalScopes(s,r)}),await this.runCancelable(e,U.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(e,U.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));const i=e.filter(s=>this.shouldValidate(s));await this.runCancelable(i,U.Validated,r,s=>this.validate(s,r));for(const s of e){const a=this.buildState.get(s.uri.toString());a&&(a.completed=!0)}}prepareBuild(e,t){for(const r of e){const i=r.uri.toString(),s=this.buildState.get(i);(!s||s.completed)&&this.buildState.set(i,{completed:!1,options:t,result:s==null?void 0:s.result})}}async runCancelable(e,t,r,i){const s=e.filter(o=>o.stateo.state===t);await this.notifyBuildPhase(a,t,r),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),Yn.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),Yn.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let i;if(t&&"path"in t?i=t:r=t,r??(r=V.CancellationToken.None),i){const s=this.langiumDocuments.getDocument(i);if(s&&s.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(ui):new Promise((s,a)=>{const o=this.onBuildPhase(e,()=>{if(o.dispose(),l.dispose(),i){const c=this.langiumDocuments.getDocument(i);s(c==null?void 0:c.uri)}else s(void 0)}),l=r.onCancellationRequested(()=>{o.dispose(),l.dispose(),a(ui)})})}async notifyDocumentPhase(e,t,r){const s=this.documentPhaseListeners.get(t).slice();for(const a of s)try{await a(e,r)}catch(o){if(!Ii(o))throw o}}async notifyBuildPhase(e,t,r){if(e.length===0)return;const s=this.buildPhaseListeners.get(t).slice();for(const a of s)await Ae(r),await a(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,i;const s=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,o=typeof a=="object"?a:void 0,l=await s.validateDocument(e,o,t);e.diagnostics?e.diagnostics.push(...l):e.diagnostics=l;const c=this.buildState.get(e.uri.toString());if(c){(r=c.result)!==null&&r!==void 0||(c.result={});const u=(i=o==null?void 0:o.categories)!==null&&i!==void 0?i:fi.all;c.result.validationChecks?c.result.validationChecks.push(...u):c.result.validationChecks=[...u]}}getBuildOptions(e){var t,r;return(r=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&r!==void 0?r:{}}}class ig{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new Vm,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const r=et(e).uri,i=[];return this.referenceIndex.forEach(s=>{s.forEach(a=>{it.equals(a.targetUri,r)&&a.targetPath===t&&i.push(a)})}),ee(i)}allElements(e,t){let r=ee(this.symbolIndex.keys());return t&&(r=r.filter(i=>!t||t.has(i))),r.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var s;return((s=this.symbolIndex.get(e))!==null&&s!==void 0?s:[]).filter(o=>this.astReflection.isSubtype(o.type,t))}):(r=this.symbolIndex.get(e))!==null&&r!==void 0?r:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=V.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),s=e.uri.toString();this.symbolIndex.set(s,i),this.symbolByTypeIndex.clear(s)}async updateReferences(e,t=V.CancellationToken.None){const i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,t){const r=this.referenceIndex.get(e.uri.toString());return r?r.some(i=>!i.local&&t.has(i.targetUri.toString())):!1}}class sg{constructor(e){this.initialBuildOptions={},this._ready=new fa,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:void 0}initialized(e){return this.mutex.write(t=>{var r;return this.initializeWorkspace((r=this.folders)!==null&&r!==void 0?r:[],t)})}async initializeWorkspace(e,t=V.CancellationToken.None){const r=await this.performStartup(e);await Ae(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(s=>s.LanguageMetaData.fileExtensions),r=[],i=s=>{r.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(s=>[s,this.getRootFolder(s)]).map(async s=>this.traverseFolder(...s,t,i))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return Et.parse(e.uri)}async traverseFolder(e,t,r,i){const s=await this.fileSystemProvider.readDirectory(t);await Promise.all(s.map(async a=>{if(this.includeEntry(e,a,r)){if(a.isDirectory)await this.traverseFolder(e,a.uri,r,i);else if(a.isFile){const o=await this.langiumDocuments.getOrCreateDocument(a.uri);i(o)}}}))}includeEntry(e,t,r){const i=it.basename(t.uri);if(i.startsWith("."))return!1;if(t.isDirectory)return i!=="node_modules"&&i!=="out";if(t.isFile){const s=it.extname(t.uri);return r.includes(s)}return!1}}class ag{buildUnexpectedCharactersMessage(e,t,r,i,s){return hs.buildUnexpectedCharactersMessage(e,t,r,i,s)}buildUnableToPopLexerModeMessage(e){return hs.buildUnableToPopLexerModeMessage(e)}}const og={mode:"full"};class lg{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const r=dl(t)?Object.values(t):t,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new fe(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=og){var r,i,s;const a=this.chevrotainLexer.tokenize(e);return{tokens:a.tokens,errors:a.errors,hidden:(r=a.groups.hidden)!==null&&r!==void 0?r:[],report:(s=(i=this.tokenBuilder).flushLexingReport)===null||s===void 0?void 0:s.call(i,e)}}toTokenTypeDictionary(e){if(dl(e))return e;const t=ou(e)?Object.values(e.modes).flat():e,r={};return t.forEach(i=>r[i.name]=i),r}}function cg(n){return Array.isArray(n)&&(n.length===0||"name"in n[0])}function ou(n){return n&&"modes"in n&&"defaultMode"in n}function dl(n){return!cg(n)&&!ou(n)}function ug(n,e,t){let r,i;typeof n=="string"?(i=e,r=t):(i=n.range.start,r=e),i||(i=P.create(0,0));const s=lu(n),a=ha(r),o=hg({lines:s,position:i,options:a});return Tg({index:0,tokens:o,position:i})}function dg(n,e){const t=ha(e),r=lu(n);if(r.length===0)return!1;const i=r[0],s=r[r.length-1],a=t.start,o=t.end;return!!(a!=null&&a.exec(i))&&!!(o!=null&&o.exec(s))}function lu(n){let e="";return typeof n=="string"?e=n:e=n.text,e.split(qd)}const fl=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,fg=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function hg(n){var e,t,r;const i=[];let s=n.position.line,a=n.position.character;for(let o=0;o=u.length){if(i.length>0){const f=P.create(s,a);i.push({type:"break",content:"",range:O.create(f,f)})}}else{fl.lastIndex=d;const f=fl.exec(u);if(f){const m=f[0],g=f[1],A=P.create(s,a+d),y=P.create(s,a+d+m.length);i.push({type:"tag",content:g,range:O.create(A,y)}),d+=m.length,d=Gs(u,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function pg(n,e,t,r){const i=[];if(n.length===0){const s=P.create(t,r),a=P.create(t,r+e.length);i.push({type:"text",content:e,range:O.create(s,a)})}else{let s=0;for(const o of n){const l=o.index,c=e.substring(s,l);c.length>0&&i.push({type:"text",content:e.substring(s,l),range:O.create(P.create(t,s+r),P.create(t,l+r))});let u=c.length+1;const d=o[1];if(i.push({type:"inline-tag",content:d,range:O.create(P.create(t,s+u+r),P.create(t,s+u+d.length+r))}),u+=d.length,o.length===4){u+=o[2].length;const h=o[3];i.push({type:"text",content:h,range:O.create(P.create(t,s+u+r),P.create(t,s+u+h.length+r))})}else i.push({type:"text",content:"",range:O.create(P.create(t,s+u+r),P.create(t,s+u+r))});s=l+o[0].length}const a=e.substring(s);a.length>0&&i.push({type:"text",content:a,range:O.create(P.create(t,s+r),P.create(t,s+r+a.length))})}return i}const mg=/\S/,gg=/\s*$/;function Gs(n,e){const t=n.substring(e).match(mg);return t?e+t.index:n.length}function yg(n){const e=n.match(gg);if(e&&typeof e.index=="number")return e.index}function Tg(n){var e,t,r,i;const s=P.create(n.position.line,n.position.character);if(n.tokens.length===0)return new hl([],O.create(s,s));const a=[];for(;n.indext.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(e.length===0)e=t.toString();else{const r=t.toString();e+=pl(e)+r}return e.trim()}toMarkdown(e){let t="";for(const r of this.elements)if(t.length===0)t=r.toMarkdown(e);else{const i=r.toMarkdown(e);t+=pl(t)+i}return t.trim()}}class qi{constructor(e,t,r,i){this.name=e,this.content=t,this.inline=r,this.range=i}toString(){let e=`@${this.name}`;const t=this.content.toString();return this.content.inlines.length===1?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,r;return(r=(t=e==null?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&r!==void 0?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const s=Eg(this.name,t,e??{});if(typeof s=="string")return s}let r="";(e==null?void 0:e.tag)==="italic"||(e==null?void 0:e.tag)===void 0?r="*":(e==null?void 0:e.tag)==="bold"?r="**":(e==null?void 0:e.tag)==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} — ${t}`:this.content.inlines.length>1&&(i=`${i} +${t}`),this.inline?`{${i}}`:i}}function Eg(n,e,t){var r,i;if(n==="linkplain"||n==="linkcode"||n==="link"){const s=e.indexOf(" ");let a=e;if(s>0){const l=Gs(e,s);a=e.substring(l),e=e.substring(0,s)}return(n==="linkcode"||n==="link"&&t.link==="code")&&(a=`\`${a}\``),(i=(r=t.renderLink)===null||r===void 0?void 0:r.call(t,e,a))!==null&&i!==void 0?i:kg(e,a)}}function kg(n,e){try{return Et.parse(n,!0),`[${e}](${n})`}catch{return n}}class Us{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;tr.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let t="";for(let r=0;ri.range.start.line&&(t+=` +`)}return t}}class fu{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function pl(n){return n.endsWith(` +`)?` +`:` + +`}class $g{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&dg(t))return ug(t).toMarkdown({renderLink:(i,s)=>this.documentationLinkRenderer(e,i,s),renderTag:i=>this.documentationTagRenderer(e,i)})}documentationLinkRenderer(e,t,r){var i;const s=(i=this.findNameInPrecomputedScopes(e,t))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,t);if(s&&s.nameSegment){const a=s.nameSegment.range.start.line+1,o=s.nameSegment.range.start.character+1,l=s.documentUri.with({fragment:`L${a},${o}`});return`[${r}](${l.toString()})`}else return}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const i=et(e).precomputedScopes;if(!i)return;let s=e;do{const o=i.get(s).find(l=>l.name===t);if(o)return o;s=s.$container}while(s)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(i=>i.name===t)}}class Sg{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return jm(e)?e.$comment:(t=$d(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class xg{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Ig{constructor(){this.previousTokenSource=new V.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=_m();return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r=V.CancellationToken.None){const i=new fa,s={action:t,deferred:i,cancellationToken:r};return e.push(s),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:t,deferred:r,cancellationToken:i})=>{try{const s=await Promise.resolve().then(()=>t(i));r.resolve(s)}catch(s){Ii(s)?r.resolve(void 0):r.reject(s)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Cg{constructor(e){this.grammarElementIdMap=new ll,this.tokenTypeIdMap=new ll,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,r=new Map;for(const i of Lt(e))t.set(i,{});if(e.$cstNode)for(const i of as(e.$cstNode))r.set(i,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.dehydrateAstNode(o,t)):Ue(o)?a.push(this.dehydrateReference(o,t)):a.push(o)}else ae(s)?r[i]=this.dehydrateAstNode(s,t):Ue(s)?r[i]=this.dehydrateReference(s,t):s!==void 0&&(r[i]=s);return r}dehydrateReference(e,t){const r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){const r=t.cstNodes.get(e);return Ml(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),Jn(e)?r.content=e.content.map(i=>this.dehydrateCstNode(i,t)):Pl(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){const t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){const t=new Map,r=new Map;for(const s of Lt(e))t.set(s,{});let i;if(e.$cstNode)for(const s of as(e.$cstNode)){let a;"fullText"in s?(a=new jc(s.fullText),i=a):"content"in s?a=new ua:"tokenType"in s&&(a=this.hydrateCstLeafNode(s)),a&&(r.set(s,a),a.root=i)}return{astNodes:t,cstNodes:r}}hydrateAstNode(e,t){const r=t.astNodes.get(e);r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode));for(const[i,s]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(s)){const a=[];r[i]=a;for(const o of s)ae(o)?a.push(this.setParent(this.hydrateAstNode(o,t),r)):Ue(o)?a.push(this.hydrateReference(o,r,i,t)):a.push(o)}else ae(s)?r[i]=this.setParent(this.hydrateAstNode(s,t),r):Ue(s)?r[i]=this.hydrateReference(s,r,i,t):s!==void 0&&(r[i]=s);return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,i){return this.linker.buildReference(t,r,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){const i=t.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=t.astNodes.get(e.astNode),Jn(i))for(const s of e.content){const a=this.hydrateCstNode(s,t,r++);i.content.push(a)}return i}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),r=e.offset,i=e.length,s=e.startLine,a=e.startColumn,o=e.endLine,l=e.endColumn,c=e.hidden;return new Os(r,i,{start:{line:s,character:a},end:{line:o,character:l}},t,c)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of Lt(this.grammar))xd(t)&&this.grammarElementIdMap.set(t,e++)}}function ot(n){return{documentation:{CommentProvider:e=>new Sg(e),DocumentationProvider:e=>new $g(e)},parser:{AsyncParser:e=>new xg(e),GrammarConfig:e=>Tf(e),LangiumParser:e=>Sm(e),CompletionParser:e=>$m(e),ValueConverter:()=>new eu,TokenBuilder:()=>new Zc,Lexer:e=>new lg(e),ParserErrorMessageProvider:()=>new qc,LexerErrorMessageProvider:()=>new ag},workspace:{AstNodeLocator:()=>new eg,AstNodeDescriptionProvider:e=>new Qm(e),ReferenceDescriptionProvider:e=>new Zm(e)},references:{Linker:e=>new Pm(e),NameProvider:()=>new Dm,ScopeProvider:e=>new Wm(e),ScopeComputation:e=>new Gm(e),References:e=>new Fm(e)},serializer:{Hydrator:e=>new Cg(e),JsonSerializer:e=>new Hm(e)},validation:{DocumentValidator:e=>new Ym(e),ValidationRegistry:e=>new qm(e)},shared:()=>n.shared}}function lt(n){return{ServiceRegistry:e=>new zm(e),workspace:{LangiumDocuments:e=>new Om(e),LangiumDocumentFactory:e=>new bm(e),DocumentBuilder:e=>new rg(e),IndexManager:e=>new ig(e),WorkspaceManager:e=>new sg(e),FileSystemProvider:e=>n.fileSystemProvider(e),WorkspaceLock:()=>new Ig,ConfigurationProvider:e=>new ng(e)}}}var ml;(function(n){n.merge=(e,t)=>hi(hi({},e),t)})(ml||(ml={}));function oe(n,e,t,r,i,s,a,o,l){const c=[n,e,t,r,i,s,a,o,l].reduce(hi,{});return hu(c)}const Ng=Symbol("isProxy");function hu(n,e){const t=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===Ng?!0:yl(r,i,n,e||t),getOwnPropertyDescriptor:(r,i)=>(yl(r,i,n,e||t),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in n,ownKeys:()=>[...Object.getOwnPropertyNames(n)]});return t}const gl=Symbol();function yl(n,e,t,r){if(e in n){if(n[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:n[e]});if(n[e]===gl)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return n[e]}else if(e in t){const i=t[e];n[e]=gl;try{n[e]=typeof i=="function"?i(r):hu(i,r)}catch(s){throw n[e]=s instanceof Error?s:void 0,s}return n[e]}else return}function hi(n,e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const i=n[t];i!==null&&r!==null&&typeof i=="object"&&typeof r=="object"?n[t]=hi(i,r):n[t]=r}}return n}class wg{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const ct={fileSystemProvider:()=>new wg},_g={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Lg={AstReflection:()=>new Kl};function bg(){const n=oe(lt(ct),Lg),e=oe(ot({shared:n}),_g);return n.ServiceRegistry.register(e),e}function xt(n){var e;const t=bg(),r=t.serializer.JsonSerializer.deserialize(n);return t.shared.workspace.LangiumDocumentFactory.fromModel(r,Et.parse(`memory://${(e=r.name)!==null&&e!==void 0?e:"grammar"}.langium`)),r}var Og=Object.defineProperty,v=(n,e)=>Og(n,"name",{value:e,configurable:!0}),Tl="Statement",Fr="Architecture";function Pg(n){return De.isInstance(n,Fr)}v(Pg,"isArchitecture");var kr="Axis",jn="Branch";function Mg(n){return De.isInstance(n,jn)}v(Mg,"isBranch");var $r="Checkout",Sr="CherryPicking",Yi="ClassDefStatement",Hn="Commit";function Dg(n){return De.isInstance(n,Hn)}v(Dg,"isCommit");var Xi="Curve",Ji="Edge",Qi="Entry",zn="GitGraph";function Fg(n){return De.isInstance(n,zn)}v(Fg,"isGitGraph");var Zi="Group",Gr="Info";function Gg(n){return De.isInstance(n,Gr)}v(Gg,"isInfo");var xr="Item",es="Junction",qn="Merge";function Ug(n){return De.isInstance(n,qn)}v(Ug,"isMerge");var ts="Option",Ur="Packet";function Bg(n){return De.isInstance(n,Ur)}v(Bg,"isPacket");var Br="PacketBlock";function Vg(n){return De.isInstance(n,Br)}v(Vg,"isPacketBlock");var Vr="Pie";function Kg(n){return De.isInstance(n,Vr)}v(Kg,"isPie");var Kr="PieSection";function Wg(n){return De.isInstance(n,Kr)}v(Wg,"isPieSection");var ns="Radar",rs="Service",Wr="Treemap";function jg(n){return De.isInstance(n,Wr)}v(jg,"isTreemap");var is="TreemapRow",Ir="Direction",Cr="Leaf",Nr="Section",Ot,pu=(Ot=class extends Ol{getAllTypes(){return[Fr,kr,jn,$r,Sr,Yi,Hn,Xi,Ir,Ji,Qi,zn,Zi,Gr,xr,es,Cr,qn,ts,Ur,Br,Vr,Kr,ns,Nr,rs,Tl,Wr,is]}computeIsSubtype(e,t){switch(e){case jn:case $r:case Sr:case Hn:case qn:return this.isSubtype(Tl,t);case Ir:return this.isSubtype(zn,t);case Cr:case Nr:return this.isSubtype(xr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Entry:axis":return kr;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Fr:return{name:Fr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case kr:return{name:kr,properties:[{name:"label"},{name:"name"}]};case jn:return{name:jn,properties:[{name:"name"},{name:"order"}]};case $r:return{name:$r,properties:[{name:"branch"}]};case Sr:return{name:Sr,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Yi:return{name:Yi,properties:[{name:"className"},{name:"styleText"}]};case Hn:return{name:Hn,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case Xi:return{name:Xi,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case Ji:return{name:Ji,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case Qi:return{name:Qi,properties:[{name:"axis"},{name:"value"}]};case zn:return{name:zn,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case Zi:return{name:Zi,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case Gr:return{name:Gr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case xr:return{name:xr,properties:[{name:"classSelector"},{name:"name"}]};case es:return{name:es,properties:[{name:"id"},{name:"in"}]};case qn:return{name:qn,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case ts:return{name:ts,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case Ur:return{name:Ur,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case Br:return{name:Br,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case Vr:return{name:Vr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case Kr:return{name:Kr,properties:[{name:"label"},{name:"value"}]};case ns:return{name:ns,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case rs:return{name:rs,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case Wr:return{name:Wr,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case is:return{name:is,properties:[{name:"indent"},{name:"item"}]};case Ir:return{name:Ir,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case Cr:return{name:Cr,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case Nr:return{name:Nr,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},v(Ot,"MermaidAstReflection"),Ot),De=new pu,Rl,Hg=v(()=>Rl??(Rl=xt(`{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"InfoGrammar"),vl,zg=v(()=>vl??(vl=xt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),Al,qg=v(()=>Al??(Al=xt(`{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"PieGrammar"),El,Yg=v(()=>El??(El=xt(`{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"ArchitectureGrammar"),kl,Xg=v(()=>kl??(kl=xt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),$l,Jg=v(()=>$l??($l=xt(`{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|'([^'\\\\\\\\]|\\\\\\\\.)*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),Sl,Qg=v(()=>Sl??(Sl=xt(`{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}`)),"TreemapGrammar"),Zg={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ey={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ty={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ny={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ry={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},iy={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},sy={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},It={AstReflection:v(()=>new pu,"AstReflection")},ay={Grammar:v(()=>Hg(),"Grammar"),LanguageMetaData:v(()=>Zg,"LanguageMetaData"),parser:{}},oy={Grammar:v(()=>zg(),"Grammar"),LanguageMetaData:v(()=>ey,"LanguageMetaData"),parser:{}},ly={Grammar:v(()=>qg(),"Grammar"),LanguageMetaData:v(()=>ty,"LanguageMetaData"),parser:{}},cy={Grammar:v(()=>Yg(),"Grammar"),LanguageMetaData:v(()=>ny,"LanguageMetaData"),parser:{}},uy={Grammar:v(()=>Xg(),"Grammar"),LanguageMetaData:v(()=>ry,"LanguageMetaData"),parser:{}},dy={Grammar:v(()=>Jg(),"Grammar"),LanguageMetaData:v(()=>iy,"LanguageMetaData"),parser:{}},fy={Grammar:v(()=>Qg(),"Grammar"),LanguageMetaData:v(()=>sy,"LanguageMetaData"),parser:{}},hy=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,py=/accTitle[\t ]*:([^\n\r]*)/,my=/title([\t ][^\n\r]*|)/,gy={ACC_DESCR:hy,ACC_TITLE:py,TITLE:my},Pt,Ci=(Pt=class extends eu{runConverter(e,t,r){let i=this.runCommonConverter(e,t,r);return i===void 0&&(i=this.runCustomConverter(e,t,r)),i===void 0?super.runConverter(e,t,r):i}runCommonConverter(e,t,r){const i=gy[e.name];if(i===void 0)return;const s=i.exec(t);if(s!==null){if(s[1]!==void 0)return s[1].trim().replace(/[\t ]{2,}/gm," ");if(s[2]!==void 0)return s[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},v(Pt,"AbstractMermaidValueConverter"),Pt),Mt,Ni=(Mt=class extends Ci{runCustomConverter(e,t,r){}},v(Mt,"CommonValueConverter"),Mt),Dt,ut=(Dt=class extends Zc{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){const i=super.buildKeywordTokens(e,t,r);return i.forEach(s=>{this.keywords.has(s.name)&&s.PATTERN!==void 0&&(s.PATTERN=new RegExp(s.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),i}},v(Dt,"AbstractMermaidTokenBuilder"),Dt),Ft;Ft=class extends ut{},v(Ft,"CommonTokenBuilder");var Gt,yy=(Gt=class extends ut{constructor(){super(["gitGraph"])}},v(Gt,"GitGraphTokenBuilder"),Gt),mu={parser:{TokenBuilder:v(()=>new yy,"TokenBuilder"),ValueConverter:v(()=>new Ni,"ValueConverter")}};function gu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),uy,mu);return e.ServiceRegistry.register(t),{shared:e,GitGraph:t}}v(gu,"createGitGraphServices");var Ut,Ty=(Ut=class extends ut{constructor(){super(["info","showInfo"])}},v(Ut,"InfoTokenBuilder"),Ut),yu={parser:{TokenBuilder:v(()=>new Ty,"TokenBuilder"),ValueConverter:v(()=>new Ni,"ValueConverter")}};function Tu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),ay,yu);return e.ServiceRegistry.register(t),{shared:e,Info:t}}v(Tu,"createInfoServices");var Bt,Ry=(Bt=class extends ut{constructor(){super(["packet"])}},v(Bt,"PacketTokenBuilder"),Bt),Ru={parser:{TokenBuilder:v(()=>new Ry,"TokenBuilder"),ValueConverter:v(()=>new Ni,"ValueConverter")}};function vu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),oy,Ru);return e.ServiceRegistry.register(t),{shared:e,Packet:t}}v(vu,"createPacketServices");var Vt,vy=(Vt=class extends ut{constructor(){super(["pie","showData"])}},v(Vt,"PieTokenBuilder"),Vt),Kt,Ay=(Kt=class extends Ci{runCustomConverter(e,t,r){if(e.name==="PIE_SECTION_LABEL")return t.replace(/"/g,"").trim()}},v(Kt,"PieValueConverter"),Kt),Au={parser:{TokenBuilder:v(()=>new vy,"TokenBuilder"),ValueConverter:v(()=>new Ay,"ValueConverter")}};function Eu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),ly,Au);return e.ServiceRegistry.register(t),{shared:e,Pie:t}}v(Eu,"createPieServices");var Wt,Ey=(Wt=class extends ut{constructor(){super(["architecture"])}},v(Wt,"ArchitectureTokenBuilder"),Wt),jt,ky=(jt=class extends Ci{runCustomConverter(e,t,r){if(e.name==="ARCH_ICON")return t.replace(/[()]/g,"").trim();if(e.name==="ARCH_TEXT_ICON")return t.replace(/["()]/g,"");if(e.name==="ARCH_TITLE")return t.replace(/[[\]]/g,"").trim()}},v(jt,"ArchitectureValueConverter"),jt),ku={parser:{TokenBuilder:v(()=>new Ey,"TokenBuilder"),ValueConverter:v(()=>new ky,"ValueConverter")}};function $u(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),cy,ku);return e.ServiceRegistry.register(t),{shared:e,Architecture:t}}v($u,"createArchitectureServices");var Ht,$y=(Ht=class extends ut{constructor(){super(["radar-beta"])}},v(Ht,"RadarTokenBuilder"),Ht),Su={parser:{TokenBuilder:v(()=>new $y,"TokenBuilder"),ValueConverter:v(()=>new Ni,"ValueConverter")}};function xu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),dy,Su);return e.ServiceRegistry.register(t),{shared:e,Radar:t}}v(xu,"createRadarServices");var zt,Sy=(zt=class extends ut{constructor(){super(["treemap"])}},v(zt,"TreemapTokenBuilder"),zt),xy=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,qt,Iy=(qt=class extends Ci{runCustomConverter(e,t,r){if(e.name==="NUMBER2")return parseFloat(t.replace(/,/g,""));if(e.name==="SEPARATOR")return t.substring(1,t.length-1);if(e.name==="STRING2")return t.substring(1,t.length-1);if(e.name==="INDENTATION")return t.length;if(e.name==="ClassDef"){if(typeof t!="string")return t;const i=xy.exec(t);if(i)return{$type:"ClassDefStatement",className:i[1],styleText:i[2]||void 0}}}},v(qt,"TreemapValueConverter"),qt);function Iu(n){const e=n.validation.TreemapValidator,t=n.validation.ValidationRegistry;if(t){const r={Treemap:e.checkSingleRoot.bind(e)};t.register(r,e)}}v(Iu,"registerValidationChecks");var Yt,Cy=(Yt=class{checkSingleRoot(e,t){let r;for(const i of e.TreemapRows)i.item&&(r===void 0&&i.indent===void 0?r=0:i.indent===void 0?t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}):r!==void 0&&r>=parseInt(i.indent,10)&&t("error","Multiple root nodes are not allowed in a treemap.",{node:i,property:"item"}))}},v(Yt,"TreemapValidator"),Yt),Cu={parser:{TokenBuilder:v(()=>new Sy,"TokenBuilder"),ValueConverter:v(()=>new Iy,"ValueConverter")},validation:{TreemapValidator:v(()=>new Cy,"TreemapValidator")}};function Nu(n=ct){const e=oe(lt(n),It),t=oe(ot({shared:e}),fy,Cu);return e.ServiceRegistry.register(t),Iu(t),{shared:e,Treemap:t}}v(Nu,"createTreemapServices");var je={},Ny={info:v(async()=>{const{createInfoServices:n}=await ht(async()=>{const{createInfoServices:t}=await Promise.resolve().then(()=>Ly);return{createInfoServices:t}},void 0),e=n().Info.parser.LangiumParser;je.info=e},"info"),packet:v(async()=>{const{createPacketServices:n}=await ht(async()=>{const{createPacketServices:t}=await Promise.resolve().then(()=>by);return{createPacketServices:t}},void 0),e=n().Packet.parser.LangiumParser;je.packet=e},"packet"),pie:v(async()=>{const{createPieServices:n}=await ht(async()=>{const{createPieServices:t}=await Promise.resolve().then(()=>Oy);return{createPieServices:t}},void 0),e=n().Pie.parser.LangiumParser;je.pie=e},"pie"),architecture:v(async()=>{const{createArchitectureServices:n}=await ht(async()=>{const{createArchitectureServices:t}=await Promise.resolve().then(()=>Py);return{createArchitectureServices:t}},void 0),e=n().Architecture.parser.LangiumParser;je.architecture=e},"architecture"),gitGraph:v(async()=>{const{createGitGraphServices:n}=await ht(async()=>{const{createGitGraphServices:t}=await Promise.resolve().then(()=>My);return{createGitGraphServices:t}},void 0),e=n().GitGraph.parser.LangiumParser;je.gitGraph=e},"gitGraph"),radar:v(async()=>{const{createRadarServices:n}=await ht(async()=>{const{createRadarServices:t}=await Promise.resolve().then(()=>Dy);return{createRadarServices:t}},void 0),e=n().Radar.parser.LangiumParser;je.radar=e},"radar"),treemap:v(async()=>{const{createTreemapServices:n}=await ht(async()=>{const{createTreemapServices:t}=await Promise.resolve().then(()=>Fy);return{createTreemapServices:t}},void 0),e=n().Treemap.parser.LangiumParser;je.treemap=e},"treemap")};async function wy(n,e){const t=Ny[n];if(!t)throw new Error(`Unknown diagram type: ${n}`);je[n]||await t();const i=je[n].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new _y(i);return i.value}v(wy,"parse");var Xt,_y=(Xt=class extends Error{constructor(e){const t=e.lexerErrors.map(i=>i.message).join(` +`),r=e.parserErrors.map(i=>i.message).join(` +`);super(`Parsing failed: ${t} ${r}`),this.result=e}},v(Xt,"MermaidParseError"),Xt);const Ly=Object.freeze(Object.defineProperty({__proto__:null,InfoModule:yu,createInfoServices:Tu},Symbol.toStringTag,{value:"Module"})),by=Object.freeze(Object.defineProperty({__proto__:null,PacketModule:Ru,createPacketServices:vu},Symbol.toStringTag,{value:"Module"})),Oy=Object.freeze(Object.defineProperty({__proto__:null,PieModule:Au,createPieServices:Eu},Symbol.toStringTag,{value:"Module"})),Py=Object.freeze(Object.defineProperty({__proto__:null,ArchitectureModule:ku,createArchitectureServices:$u},Symbol.toStringTag,{value:"Module"})),My=Object.freeze(Object.defineProperty({__proto__:null,GitGraphModule:mu,createGitGraphServices:gu},Symbol.toStringTag,{value:"Module"})),Dy=Object.freeze(Object.defineProperty({__proto__:null,RadarModule:Su,createRadarServices:xu},Symbol.toStringTag,{value:"Module"})),Fy=Object.freeze(Object.defineProperty({__proto__:null,TreemapModule:Cu,createTreemapServices:Nu},Symbol.toStringTag,{value:"Module"}));export{wy as p}; +//# sourceMappingURL=treemap-75Q7IDZK.js.map diff --git a/extensions/continue/gui/assets/treemap-75Q7IDZK.js.map b/extensions/continue/gui/assets/treemap-75Q7IDZK.js.map new file mode 100644 index 000000000000..f1892640285d --- /dev/null +++ b/extensions/continue/gui/assets/treemap-75Q7IDZK.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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","names":["objectProto","hasOwnProperty","assign","createAssigner","object","source","isPrototype","isArrayLike","copyObject","keys","key","assignValue","baseSlice","array","start","end","index","length","result","compact","resIndex","value","arrayAggregator","setter","iteratee","accumulator","baseAggregator","collection","baseEach","createAggregator","initializer","func","isArray","baseIteratee","LARGE_ARRAY_SIZE","baseDifference","values","comparator","includes","arrayIncludes","isCommon","valuesLength","cacheHas","SetCache","outer","computed","valuesIndex","difference","baseRest","isArrayLikeObject","baseFlatten","drop","n","guard","toInteger","dropRight","arrayEvery","predicate","baseEvery","every","head","flatMap","map","groupBy","baseAssignValue","stringTag","isString","isObjectLike","baseGetTag","nativeMax","fromIndex","baseIndexOf","indexOf","regexpTag","baseIsRegExp","nodeIsRegExp","nodeUtil","isRegExp","baseUnary","FUNC_ERROR_TEXT","negate","args","pickBy","props","arrayMap","getAllKeysIn","prop","basePickBy","path","reject","arrayFilter","baseFilter","baseSome","some","arraySome","uniq","baseUniq","uniqBy","isAstNode","obj","isReference","isAstNodeDescription","isLinkingError","AbstractAstReflection","node","type","subtype","supertype","nested","existing","allTypes","types","possibleSubType","isCompositeCstNode","isLeafCstNode","isRootCstNode","StreamImpl","startFn","nextFn","iterator","count","next","keyFn","valueFn","entryStream","element","other","state","DONE_RESULT","separator","addSeparator","toString","searchElement","callbackfn","done","initialValue","previousValue","mapped","isIterable","depth","stream","skipCount","i","maxSize","by","otherKeySet","item","e","ownKey","EMPTY_STREAM","collections","TreeStreamImpl","root","children","options","Reduction","sum","b","product","min","max","streamCst","isChildNode","child","parent","tokenToRange","token","toDocumentSegment","offset","range","RangeComparison","compareRange","to","startInside","endInside","inRange","DefaultNameRegexp","findCommentNode","cstNode","commentNames","previous","getPreviousNode","isCommentNode","endIndex","hidden","ErrorWithLocation","message","assertUnreachable","_","AbstractRule","AbstractType","Condition","TypeDefinition","ValueLiteral","AbstractElement","isAbstractElement","reflection","ArrayLiteral","ArrayType","BooleanLiteral","isBooleanLiteral","Conjunction","isConjunction","Disjunction","isDisjunction","Grammar","GrammarImport","InferredType","isInferredType","Interface","isInterface","NamedArgument","Negation","isNegation","NumberLiteral","Parameter","ParameterReference","isParameterReference","ParserRule","isParserRule","ReferenceType","ReturnType","isReturnType","SimpleType","isSimpleType","StringLiteral","TerminalRule","isTerminalRule","Type","isType","TypeAttribute","UnionType","Action","isAction","Alternatives","isAlternatives","Assignment","isAssignment","CharacterRange","isCharacterRange","CrossReference","isCrossReference","EndOfFile","isEndOfFile","Group","isGroup","Keyword","isKeyword","NegatedToken","isNegatedToken","RegexToken","isRegexToken","RuleCall","isRuleCall","TerminalAlternatives","isTerminalAlternatives","TerminalGroup","isTerminalGroup","TerminalRuleCall","isTerminalRuleCall","UnorderedGroup","isUnorderedGroup","UntilToken","isUntilToken","Wildcard","isWildcard","LangiumGrammarAstReflection","refInfo","referenceId","linkContentToContainer","name","getContainerOfType","typePredicate","getDocument","findRootNode","streamContents","property","isAstNodeInRange","streamAllContents","streamAst","astNode","_a","nodeRange","streamReferences","assignMandatoryProperties","typeMetaData","genericNode","copyDefaultValue","propertyType","cc","char","insertToSet","set","subItem","addFlag","flagObj","flagKey","ASSERT_EXISTS","ASSERT_NEVER_REACH_HERE","isCharacter","digitsCharCodes","wordCharCodes","whitespaceCodes","hexDigitPattern","decimalPattern","decimalPatternNoZero","RegExpParser","newState","input","flags","alts","begin","terms","disjunction","isBacktracking","atLeast","atMost","atom","complement","escapeCode","letter","escapedChar","nextChar","from","capturing","groupAst","number","howMuch","prevState","howMany","hexString","hexChar","BaseRegExpVisitor","subChild","NEWLINE_REGEXP","regexpParser","TerminalRegExpVisitor","regex","escapeRegExp","visitor","isMultilineComment","regexp","whitespaceCharacters","isWhitespace","ws","getCaseInsensitivePattern","keyword","partialMatches","partial","partialRegExp","match","re","process","tmp","appendRaw","nbChars","appendOptional","getEntryRule","grammar","ast.isParserRule","getHiddenRules","ast.isTerminalRule","getAllReachableRules","allTerminals","ruleNames","entryRule","topMostRules","rule","ruleDfs","rules","visitedSet","ast.isRuleCall","refRule","getCrossReferenceTerminal","crossRef","nameAssigment","findNameAssignment","isCommentTerminal","terminalRule","terminalRegex","findNodesForProperty","findNodesForPropertyInternal","findNodeForProperty","nodes","first","nodeFeature","ast.isAssignment","findNodeForKeyword","findNodesForKeywordInternal","ast.isKeyword","treeIterator","keywordNodes","childNode","findAssignment","assignment","startNode","ast.isInferredType","ast.isAction","findNameAssignmentInternal","cache","go","refType","childAssignment","ast.isSimpleType","isDataTypeRule","isDataTypeRuleInternal","visited","getExplicitRuleType","ast.isInterface","ast.isType","getTypeName","ast.isReturnType","actionType","getActionType","action","getRuleType","_b","_c","abstractElementToRegex","flagText","WILDCARD","ast.isTerminalAlternatives","terminalAlternativesToRegex","ast.isTerminalGroup","terminalGroupToRegex","ast.isCharacterRange","characterRangeToRegex","ast.isTerminalRuleCall","withCardinality","ast.isNegatedToken","negateTokenToRegex","ast.isUntilToken","untilTokenToRegex","ast.isRegexToken","lastSlash","regexFlags","ast.isWildcard","alternatives","group","until","keywordToRegex","createGrammarConfig","services","PRINT_ERROR","msg","PRINT_WARNING","timer","val","toFastProperties","toBecomeFast","FakeConstructor","fakeInstance","fakeAccess","tokenLabel","tokType","hasTokenLabel","AbstractProduction","_definition","forEach","prod","NonTerminal","v","definition","Rule","Alternative","RepetitionMandatory","RepetitionMandatoryWithSeparator","Repetition","RepetitionWithSeparator","Alternation","Terminal","serializeGrammar","topRules","serializeProduction","convertDefinition","serializedNonTerminal","Option","serializedTerminal","pattern","GAstVisitor","nodeAny","isSequenceProd","isOptionalProd","alreadyVisited","subProd","isBranchingProd","getProductionDslName","RestWalker","prevRest","currRest","terminal","refProd","flatProd","fullOrRest","optionProd","atLeastOneProd","fullAtLeastOneRest","atLeastOneSepProd","fullAtLeastOneSepRest","restForRepetitionWithSeparator","manyProd","fullManyRest","manySepProd","fullManySepRest","orProd","alt","prodWrapper","repSepProd","firstForTerminal","firstForSequence","firstForBranching","firstSet","seq","nextSubProdIdx","hasInnerProdsRemaining","currSubProd","isLastInnerProdOptional","allAlternativesFirsts","innerProd","flatten","IN","ResyncFollowsWalker","topProd","followName","buildBetweenProdsFollowPrefix","fullRest","restProd","t_in_topProd_follows","computeAllProdsFollows","topProductions","reSyncFollows","currRefsFollow","inner","occurenceInParent","regExpAstCache","regExpParser","getRegExpAst","regExp","regExpStr","regExpAst","clearRegExpParserCache","complementErrorMessage","failedOptimizationPrefixMsg","getOptimizedStartCodesIndices","ensureOptimizations","ast","firstCharOptimizedIndices","msgSuffix","ignoreCase","term","addOptimizedIdxToResult","code","rangeCode","minOptimizationVal","minUnOptVal","maxUnOptVal","minOptIdx","charCodeToOptimizedIndex","maxOptIdx","currOptIdx","isOptionalQuantifier","isWholeOptional","optimizedCharIdx","handleIgnoreCase","upperChar","lowerChar","findCode","setNode","targetCharCodes","find","codeOrRange","targetCode","quantifier","CharCodeFinder","canMatchCharCode","charCodes","charCodeFinder","PATTERN","DEFAULT_MODE","MODES","SUPPORT_STICKY","analyzeTokenTypes","tokenTypes","defaults","tracer","initCharCodeToOptimizedIndexMap","onlyRelevantTypes","currType","Lexer","hasCustom","allTransformedPatterns","currPattern","regExpSource","addStickyFlag","addStartOfInput","isFunction","escapedRegExpString","wrappedRegExp","patternIdxToType","patternIdxToGroup","patternIdxToLongerAltIdxArr","patternIdxToPushMode","patternIdxToPopMode","clazz","groupName","isUndefined","longerAltType","has","patternIdxToCanLineTerminator","lineTerminatorCharCodes","getCharCodes","checkLineBreaksIssues","patternIdxToIsCustom","patternIdxToShort","emptyGroups","patternIdxToConfig","isCustomPattern","isShortPattern","reduce","acc","x","idx","canBeOptimized","charCodeToPatternIdxToConfig","currTokType","charCode","optimizedIdx","addToMapOfArrays","lastOptimizedIdx","charOrInt","currOptimizedIdx","optimizedCodes","isEmpty","validatePatterns","validModesNames","errors","missingResult","findMissingPatterns","invalidResult","findInvalidPatterns","validTokenTypes","validateRegExpPattern","findInvalidGroupType","findModesThatDoNotExist","findUnreachablePatterns","withRegExpPatterns","filter","findEndOfInputAnchor","findStartOfInputAnchor","findUnsupportedFlags","findDuplicatePatterns","findEmptyMatchRegExps","tokenTypesWithMissingPattern","LexerDefinitionErrorType","valid","tokenTypesWithInvalidPattern","end_of_input","EndAnchorFinder","invalidRegex","regexpAst","endAnchorVisitor","matchesEmptyString","start_of_input","StartAnchorFinder","startAnchorVisitor","invalidFlags","found","identicalPatterns","outerType","innerType","duplicatePatterns","currIdenticalSet","setOfIdentical","tokenTypeNames","invalidTypes","validModes","invalidModes","canBeTested","noMetaChar","testIdx","str","tokenType","testTokenType","regExpArray","performRuntimeChecks","lexerDefinition","trackLines","lineTerminatorCharacters","currModeValue","currModeName","currIdx","longerAlt","currLongerAlt","performWarningRuntimeChecks","warnings","hasAnyLineBreak","allTokenTypes","concreteTokenTypes","terminatorCharCodes","currIssue","warningDescriptor","buildLineBreakIssueMessage","cloneEmptyGroups","clonedResult","groupKeys","currKey","currGroupValue","LineTerminatorOptimizedTester","text","len","c","details","charsOrCodes","numOrString","charCodeToOptimizedIdxMap","tokenStructuredMatcher","tokInstance","tokConstructor","instanceType","tokenStructuredMatcherNoCategories","tokenShortNameIdx","tokenIdxToClass","augmentTokenTypes","tokenTypesAndParents","expandCategories","assignTokenDefaultProps","assignCategoriesMapProp","assignCategoriesTokensProp","clone","categories","searching","newCategories","hasShortKeyProperty","hasCategoriesProperty","hasExtendingTokensTypesProperty","hasExtendingTokensTypesMapProperty","singleAssignCategoriesToksMap","nextNode","pathNode","nextCategory","newPath","isTokenType","defaultLexerErrorProvider","fullText","startOffset","line","column","DEFAULT_LEXER_CONFIG","config","phaseDesc","phaseImpl","indent","time","traceMethod","traceInitVal","actualDefinition","hasOnlySingleMode","allModeNames","currModDef","currModName","currAnalyzeResult","allErrMessagesString","error","identity","noop","unOptimizedModes","cannotBeOptimized","modeName","initialMode","j","k","matchAltImage","matchedImage","payload","altPayload","imageLength","newToken","errLength","orgText","orgLength","matchedTokensIndex","guessedNumberOfTokens","matchedTokens","groups","lineTerminatorPattern","currModePatternsLength","currCharCodeToPatternIdxToConfig","modeStack","emptyArray","getPossiblePatterns","getPossiblePatternsSlow","getPossiblePatternsOptimized","possiblePatterns","pop_mode","popToken","newMode","last","modeCanBeOptimized","push_mode","currConfig","recoveryEnabled","nextCharCode","chosenPatternIdxToConfig","chosenPatternsLength","singleCharCode","longerAltLength","longerAltConfig","longerAltPattern","numOfLTsInMatch","foundTerminator","lastLTEndOffset","errorStartOffset","errorLine","errorColumn","foundResyncPoint","pushMode","newLastIndex","lastLTIdx","lastCharIsLT","fixForEndingInLT","oldColumn","image","tokenTypeIdx","startLine","startColumn","tokenVector","tokenToAdd","PARENT","CATEGORIES","LABEL","GROUP","PUSH_MODE","POP_MODE","LONGER_ALT","LINE_BREAKS","START_CHARS_HINT","createToken","createTokenInternal","EOF","createTokenInstance","endOffset","endLine","endColumn","tokenMatcher","defaultParserErrorProvider","expected","actual","ruleName","firstRedundant","expectedPathsPerAlt","customUserDescription","errPrefix","errSuffix","allLookAheadPaths","currAltPaths","nextValidTokenSequences","currPath","currTokenType","calculatedDescription","itemMsg","expectedIterationPaths","defaultGrammarResolverErrorProvider","topLevelRule","undefinedRule","defaultGrammarValidatorErrorProvider","duplicateProds","getExtraProductionArgument","topLevelName","duplicateProd","dslName","extraArgument","hasExplicitIndex","pathMsg","currTok","occurrence","currtok","currMessage","pathNames","currRule","leftRecursivePath","resolveGrammar","topLevels","errMsgProvider","refResolver","GastRefResolverVisitor","nameToTopRule","ref","ParserDefinitionErrorType","AbstractNextPossibleTokensWalker","NextAfterTokenWalker","AbstractNextTerminalAfterProductionWalker","topRule","NextTerminalAfterManyWalker","firstAfterMany","_first","NextTerminalAfterManySepWalker","firstAfterManySep","NextTerminalAfterAtLeastOneWalker","firstAfterAtLeastOne","NextTerminalAfterAtLeastOneSepWalker","atleastOneSepProd","firstAfterfirstAfterAtLeastOneSep","possiblePathsFrom","targetDef","maxLength","remainingPathWith","nextDef","getAlternativesForProd","newDef","currAlt","nextPossibleTokensAfter","initialDef","tokMatcher","maxLookAhead","EXIT_NON_TERMINAL","EXIT_NON_TERMINAL_ARR","EXIT_ALTERNATIVE","foundCompletePath","tokenVectorLength","minimalAlternativesIndex","possiblePaths","currDef","currRuleStack","currOccurrenceStack","nextPath","nextIdx","actualToken","newRuleStack","newOccurrenceStack","nextPathWithout","nextPathWith","secondIteration","separatorGast","nthRepetition","currAltPath","expandTopLevelRule","newCurrOccurrenceStack","PROD_TYPE","getProdType","getLookaheadPaths","prodType","maxLookahead","getLookaheadPathsForOr","getLookaheadPathsForOptionalProd","buildLookaheadFuncForOr","ruleGrammar","hasPredicates","dynamicTokensEnabled","laFuncBuilder","lookAheadPaths","areTokenCategoriesNotUsed","buildLookaheadFuncForOptionalProd","lookaheadBuilder","buildAlternativesLookAheadFunc","numOfAlts","areAllOneTokenLookahead","orAlts","predicates","t","currNumOfPaths","currPredicate","currPathLength","nextToken","singleTokenAlts","choiceToAlt","currExtendingType","buildSingleAlternativeLookaheadFunction","numOfPaths","singleTokensTypes","expectedTokenUniqueKey","RestDefinitionFinderWalker","targetOccurrence","targetProdType","expectedProdType","InsideDefinitionFinderVisitor","targetRef","expectedProdName","initializeArrayOfArrays","size","pathToHashKeys","longerKeys","currShorterKey","categoriesKeySuffix","isUniquePrefixHash","altKnownPathsKeys","searchPathKeys","currAltIdx","otherAltKnownPathsKeys","searchIdx","searchKey","lookAheadSequenceFromAlternatives","altsDefs","partialAlts","finalResult","altsHashes","dict","newData","pathLength","currDataset","altIdx","currAltPathsAndSuffixes","currPathIdx","currPathPrefix","suffixDef","prefixKeys","currAltResult","containsPath","newPartialPathsAndSuffixes","insideDefVisitor","insideDef","afterDef","insideFlat","AlternativeGAST","afterFlat","alternative","searchPath","compareOtherPath","otherPath","searchTok","otherTok","isStrictPrefixOfPath","prefix","otherTokType","singleAltPaths","singlePath","validateLookahead","lookaheadValidationErrorMessages","errorMessage","validateGrammar","grammarName","duplicateErrors","currTopLevel","validateDuplicateProductions","termsNamespaceConflictErrors","checkTerminalAndNoneTerminalsNameSpace","tooManyAltsErrors","curRule","validateTooManyAlts","duplicateRulesError","validateRuleDoesNotAlreadyExist","collectorVisitor","OccurrenceValidationCollector","allRuleProductions","productionGroups","identifyProductionForDuplicates","duplicates","currGroup","currDuplicates","firstProd","defError","param","subrule","option","manySep","atLeastOne","atLeastOneSep","many","or","allRules","className","errMsg","validateRuleIsOverridden","definedRulesNames","validateNoLeftRecursion","nextNonTerminals","getFirstNoneTerminal","validNextSteps","errorsFromNextSteps","currRefRule","currSubDef","isFirstOptional","hasMore","rest","OrCollector","validateEmptyOrAlternative","orCollector","ors","currOr","exceptLast","currAlternative","possibleFirstInAlt","validateAmbiguousAlternationAlternatives","globalMaxLookahead","currOccurrence","actualMaxLookahead","altsAmbiguityErrors","checkAlternativesAmbiguities","altsPrefixAmbiguityErrors","checkPrefixAlternativesAmbiguities","RepetitionCollector","validateSomeNonEmptyLookaheadPath","topLevelRules","currTopRule","currProd","pathsInsideProduction","alternation","foundAmbiguousPaths","identicalAmbiguities","altsCurrPathAppearsIn","currOtherAlt","currOtherAltIdx","currAmbDescriptor","ambgIndices","pathsAndIndices","currPathsAndIdx","currPathAndIdx","targetIdx","targetPath","prefixAmbiguitiesPathsAndIndices","searchPathAndIdx","currAmbPathAndIdx","tokenNames","currToken","currRuleName","actualOptions","topRulesTable","orgResolveGrammar","orgValidateGrammar","MISMATCHED_TOKEN_EXCEPTION","NO_VIABLE_ALT_EXCEPTION","EARLY_EXIT_EXCEPTION","NOT_ALL_INPUT_PARSED_EXCEPTION","RECOGNITION_EXCEPTION_NAMES","isRecognitionException","RecognitionException","MismatchedTokenException","previousToken","NoViableAltException","NotAllInputParsedException","EarlyExitException","EOF_FOLLOW_KEY","IN_RULE_RECOVERY_EXCEPTION","InRuleRecoveryException","Recoverable","DEFAULT_PARSER_CONFIG","attemptInRepetitionRecovery","tokToInsert","grammarRule","grammarRuleArgs","lookAheadFunc","expectedTokType","reSyncTokType","savedLexerState","resyncedTokens","passedResyncPoint","nextTokenWithoutResync","generateErrorMessage","expectTokAfterLastMatch","nextTokIdx","notStuck","tokIdxInRule","grammarPath","follows","nextTok","expectedToken","mismatchedTok","possibleFollowsTokType","followKey","currentRuleReSyncSet","allPossibleReSyncTokTypes","foundMatch","resyncTokType","currRuleShortName","currRuleIdx","prevRuleShortName","explicitRuleStack","explicitOccurrenceStack","followStack","resyncTokens","prodFunc","lookaheadFunc","dslMethodIdx","prodOccurrence","nextToksWalker","pathRuleStack","pathOccurrenceStack","currShortName","firstAfterRepInfo","isEndOfRule","BITS_FOR_METHOD_TYPE","BITS_FOR_OCCURRENCE_IDX","OR_IDX","OPTION_IDX","MANY_IDX","AT_LEAST_ONE_IDX","MANY_SEP_IDX","AT_LEAST_ONE_SEP_IDX","getKeyForAutomaticLookahead","ruleIdx","LLkLookaheadStrategy","leftRecursionErrors","emptyAltErrors","ambiguousAltsErrors","emptyRepetitionErrors","LooksAhead","repetition","repetitionMandatory","repetitionMandatoryWithSeparator","repetitionWithSeparator","collectMethods","prodIdx","laFunc","prodKey","prodMaxLookahead","dslMethodName","DslMethodsCollectorVisitor","dslMethods","setNodeLocationOnlyOffset","currNodeLocation","newLocationInfo","setNodeLocationFull","addTerminalToCst","tokenTypeName","addNoneTerminalToCst","ruleResult","NAME","defineNameProp","nameValue","defaultVisit","ctx","childrenNames","childrenNamesLength","currChildName","currChildArray","currChildArrayLength","currChild","createBaseSemanticVisitorConstructor","derivedConstructor","semanticProto","semanticDefinitionErrors","validateVisitor","errorMessages","currDefError","createBaseVisitorConstructorWithDefaults","baseConstructor","withDefaultsProto","CstVisitorDefinitionError","visitorInstance","validateMissingCstMethods","missingRuleNames","TreeBuilder","fullRuleName","ruleCstNode","prevToken","loc","consumedToken","rootCst","ruleCstResult","preCstNode","newBaseCstVisitorConstructor","newConstructor","ruleStack","occurrenceStack","LexerAdapter","newInput","END_OF_FILE","soughtIdx","RecognizerApi","impl","ruleToCall","actionORMethodDef","altsOrOpts","implementation","DEFAULT_RULE_CONFIG","ruleImplementation","ruleErrors","orgState","RecognizerEngine","tokenVocabulary","uniqueTokens","isObject","noTokenCategoriesUsed","tokenConstructor","resyncEnabled","recoveryValueFunc","shortName","invokeRuleWithTry","cst","resyncEnabledConfig","isFirstInvokedRule","reSyncEnabled","recogError","partialCstResult","orgLookaheadFunction","laKey","separatorLookAheadFunc","lookaheadFunction","nextTerminalAfterWalker","beforeIteration","altIdxToTake","firstRedundantTok","eFromConsumption","eFromInRuleRecovery","savedErrors","savedRuleStack","fullName","idxInCallingRule","ErrorHandler","newErrors","userDefinedErrMsg","insideProdPaths","actualTokens","errMsgTypes","lookAheadPathsPerAlternative","ContentAssist","startRuleName","precedingInput","startRuleGast","topRuleName","topProduction","RECORDING_NULL_OBJECT","HANDLE_SEPARATOR","MAX_METHOD_IDX","RFT","RECORDING_PHASE_TOKEN","RECORDING_PHASE_CSTNODE","GastRecorder","arg1","arg2","that","def","newTopLevelRule","originalError","recordProd","recordOrProd","assertMethodIdxIsValid","getIdxSuffix","prevProd","peek","newNoneTerminal","prodConstructor","mainProdArg","handleSep","grammarAction","newProd","hasOptions","newOrProd","currAltFlat","PerformanceTracer","userTraceInitPerf","traceIsNumber","applyMixins","derivedCtor","baseCtors","baseCtor","baseProto","propName","basePropDescriptor","EMPTY_ALT","Parser","parserInstance","defErrorsMsgs","originalGrammarAction","recordedRuleGast","resolverErrors","validationErrors","lookaheadValidationErrors","allFollows","EmbeddedActionsParser","configClone","buildATNKey","ATN_BASIC","ATN_RULE_START","ATN_PLUS_BLOCK_START","ATN_STAR_BLOCK_START","ATN_RULE_STOP","ATN_BLOCK_END","ATN_STAR_LOOP_BACK","ATN_STAR_LOOP_ENTRY","ATN_PLUS_LOOP_BACK","ATN_LOOP_END","AbstractTransition","target","AtomTransition","EpsilonTransition","RuleTransition","ruleStart","followState","createATN","atn","createRuleStartAndStopATNStates","ruleLength","ruleBlock","block","buildRuleHandle","stop","production","tokenRef","ruleRef","repetitionSep","repetitionMandatorySep","starState","defineDecisionState","handle","makeAlts","star","sep","plusState","plus","optional","handles","makeBlock","blkStart","blkEnd","loop","epsilon","entry","loopEnd","altsLength","transition","isRuleTransition","ruleTransition","removeState","left","right","addTransition","currentRule","nonTerminal","call","a","DFA_ERROR","ATNConfigSet","getATNConfigKey","createDFACache","startState","decision","predicateSet","PredicateSet","EMPTY_PREDICATES","LLStarLookaheadStrategy","initATNSimulator","dfas","logging","decisionIndex","isLL1Sequence","prediction","gate","adaptivePredict","g","sequences","allowEmpty","fullSet","altSet","indices","decisionLength","decisionToDFA","dfaCaches","dfa","closure","computeStartState","addDFAState","newDFAState","performLookahead","s0","previousD","d","getExistingTargetState","computeLookaheadTarget","buildAdaptivePredictError","lookahead","reach","computeReachSet","addDFAEdge","predictedAlt","getUniqueAlt","hasConflictTerminatingPrediction","reportLookaheadAmbiguity","ambiguityIndices","prefixPath","atnState","buildAmbiguityError","current","nextTransitions","nextTokenTypes","configs","intermediate","skippedStopStates","transitionLength","getReachableTarget","hasConfigInRuleStopState","mapKey","numberOfTransitions","p","atnStack","followConfig","getEpsilonTarget","stack","allConfigsInRuleStopStates","altSets","getConflictingAltSets","hasConflictingAltSet","hasStateAssociatedWithOneAlt","configToAlts","DocumentUri","is","URI","integer","uinteger","Position","create","character","candidate","Is","Range","one","two","three","four","Location","uri","LocationLink","targetUri","targetRange","targetSelectionRange","originSelectionRange","Color","red","green","blue","alpha","ColorInformation","color","ColorPresentation","label","textEdit","additionalTextEdits","TextEdit","FoldingRangeKind","FoldingRange","startCharacter","endCharacter","kind","collapsedText","DiagnosticRelatedInformation","location","DiagnosticSeverity","DiagnosticTag","CodeDescription","Diagnostic","severity","relatedInformation","Command","title","command","replace","newText","insert","position","del","ChangeAnnotation","needsConfirmation","description","ChangeAnnotationIdentifier","AnnotatedTextEdit","annotation","TextDocumentEdit","textDocument","edits","OptionalVersionedTextDocumentIdentifier","CreateFile","RenameFile","oldUri","newUri","DeleteFile","WorkspaceEdit","change","TextDocumentIdentifier","VersionedTextDocumentIdentifier","version","TextDocumentItem","languageId","MarkupKind","MarkupContent","CompletionItemKind","InsertTextFormat","CompletionItemTag","InsertReplaceEdit","InsertTextMode","CompletionItemLabelDetails","CompletionItem","CompletionList","items","isIncomplete","MarkedString","fromPlainText","plainText","Hover","ParameterInformation","documentation","SignatureInformation","parameters","DocumentHighlightKind","DocumentHighlight","SymbolKind","SymbolTag","SymbolInformation","containerName","WorkspaceSymbol","DocumentSymbol","detail","selectionRange","CodeActionKind","CodeActionTriggerKind","CodeActionContext","diagnostics","only","triggerKind","CodeAction","kindOrCommandOrEdit","checkKind","CodeLens","data","FormattingOptions","tabSize","insertSpaces","DocumentLink","SelectionRange","SemanticTokenTypes","SemanticTokenModifiers","SemanticTokens","InlineValueText","InlineValueVariableLookup","variableName","caseSensitiveLookup","InlineValueEvaluatableExpression","expression","InlineValueContext","frameId","stoppedLocation","InlayHintKind","InlayHintLabelPart","InlayHint","StringValue","createSnippet","InlineCompletionItem","insertText","filterText","InlineCompletionList","InlineCompletionTriggerKind","SelectedCompletionInfo","InlineCompletionContext","selectedCompletionInfo","WorkspaceFolder","TextDocument","content","FullTextDocument","applyEdits","document","sortedEdits","mergeSort","diff","lastModifiedOffset","compare","leftIdx","rightIdx","FullTextDocument$1","event","lineOffsets","isLineStart","ch","low","high","mid","lineOffset","nextLineOffset","defined","undefined","boolean","string","numberRange","objectLiteral","typedArray","check","CstNodeBuilder","RootCstNodeImpl","feature","compositeNode","CompositeCstNodeImpl","leafNode","LeafCstNodeImpl","tokens","added","AbstractCstNode","CstNodeContainer","firstNode","lastNode","firstRange","lastRange","DatatypeSymbol","isDataTypeNode","ruleSuffix","withRuleSuffix","AbstractLangiumParser","ChevrotainWrapper","choices","callback","LangiumParser","ruleMethod","explicit","lexerResult","$type","createNode","hiddenTokens","isCrossRef","convertedValue","fragment","subruleResult","newItem","operator","existingValue","newValue","targetCstNode","AbstractParserErrorMessageProvider","LangiumParserErrorMessageProvider","LangiumCompletionParser","defaultConfig","useDefaultLookahead","createParser","parser","buildRules","parserContext","reachable","parserRules","buildElement","ignoreGuard","method","buildKeyword","buildAction","buildCrossReference","buildRuleCall","buildAlternatives","buildUnorderedGroup","buildGroup","wrap","getGuardCondition","ruleCall","buildRuleCallPredicate","getRule","getToken","namedArgs","buildPredicate","ruleArgs","ruleTarget","condition","methods","predicatedMethod","orIdx","idFunc","groupIdx","lParser","stackId","groupState","trackedAlternatives","wrapped","assignTerminal","cardinality","getRuleName","createCompletionParser","lexer","createLangiumParser","prepareLangiumParser","DefaultTokenBuilder","reachableRules","terminalTokens","terminalToken","stickyRegex","caseInsensitive","keywordPattern","longerAlts","DefaultValueConverter","ValueConverter","convertString","c1","convertEscapeCharacter","convertID","convertInt","convertBigint","convertDate","convertNumber","convertBoolean","ral","_ral","RAL","install","stringArray","elem","events","ral_1","require$$0","Event","_disposable","CallbackList","context","bucket","foundCallbackWithDifferentContext","ret","callbacks","contexts","Emitter","_options","listener","thisArgs","disposables","cancellation","require$$1","events_1","require$$2","CancellationToken","shortcutEvent","MutableToken","CancellationTokenSource","delayNextTick","resolve","lastTick","globalInterruptionPeriod","startCancelableOperation","OperationCancelled","isOperationCancelled","err","interruptAndCheck","Deferred","arg","changes","getWellformedRange","addedLineOffsets","computeLineOffsets","isEOL","update","getWellformedEdit","spans","isAtLineStart","textOffset","LIB","r","o","s","h","f","u","l","P","__publicField","m","C","y","A","w","Utils","UriUtils","equals","relative","fromPath","toPath","fromParts","toParts","backPart","toPart","normalize","DocumentState","DefaultLangiumDocumentFactory","cancellationToken","model","parseResult","cancelToken","textDocumentGetter","oldText","serviceRegistry","textDoc","DefaultLangiumDocuments","uriString","langiumDoc","ref_resolving","DefaultLinker","linkedNode","refNode","refText","linker","reference","refData","nodeDescription","doc","targetDescription","referenceType","isNamed","DefaultNameProvider","DefaultReferences","sourceCstNode","nodeElem","nameNode","targetNode","refs","indexReferences","MultiMap","elements","BiMap","DefaultScopeComputation","parentNode","exports","rootNode","scopes","container","StreamScope","outerScope","local","MapScope","localName","elementStream","DisposableCache","disposable","SimpleCache","provider","ContextCache","converter","contextKey","contextCache","documentCache","WorkspaceCache","sharedServices","_changed","deleted","DefaultScopeProvider","precomputed","currentNode","allDescriptions","desc","_context","isAstNodeWithComment","isIntermediateReference","DefaultJsonSerializer","serializeOptions","specificReplacer","defaultReplacer","replacer","deserializeOptions","sourceText","textRegions","comments","uriConverter","_d","refValue","$refText","targetDocument","comment","createDocumentSegment","textRegion","assignments","propertyAssignments","containerProperty","containerIndex","propertyName","mutable","fragmentIndex","documentUri","DefaultServiceRegistry","language","ext","diagnosticData","ValidationCategory","ValidationRegistry","checksRecord","thisObj","category","accept","functionality","messageContext","messageDetails","checks","checkBefore","checkAfter","DefaultDocumentValidator","DocumentValidator","lexerDiagnostics","lexerDiagnostic","diagnostic","toDiagnosticSeverity","toDiagnosticData","parserError","linkingError","info","validationItems","acceptor","checksBefore","checksAfter","getDiagnosticRange","DefaultAstNodeDescriptionProvider","nameNodeSegment","nameSegmentGetter","DefaultReferenceDescriptionProvider","descr","targetNodeDescr","refCstNode","docUri","DefaultAstNodeLocator","containerPath","newSegment","$containerProperty","$containerIndex","currentValue","propertyIndex","arrayIndex","DefaultConfigurationProvider","params","languages","lang","configToUpdate","conf","section","configuration","sectionName","Disposable","DefaultDocumentBuilder","documents","buildState","previousCategories","changed","deletedUri","changedUri","newDocument","allChangedUris","rebuildDocuments","changedUris","scopeComputation","toBeValidated","targetState","filtered","targetStateDocs","uriOrToken","buildDisposable","cancelDisposable","listenersCopy","validator","validationSetting","DefaultIndexManager","astNodePath","targetDocUri","docRefs","refDescr","nodeType","uris","documentUris","indexData","references","DefaultWorkspaceManager","_params","folders","fileExtensions","collector","wf","_folders","_collector","workspaceFolder","folderPath","_workspaceFolder","extname","DefaultLexerErrorMessageProvider","DEFAULT_TOKENIZE_OPTIONS","DefaultLexer","lexerTokens","isTokenTypeDictionary","ChevrotainLexer","chevrotainResult","buildTokens","isIMultiModeLexerDefinition","res","isTokenTypeArray","parseJSDoc","opts","lines","getLines","normalizedOptions","normalizeOptions","tokenize","parseJSDocComment","isJSDoc","firstRegex","lastRegex","tagRegex","inlineTagRegex","currentLine","currentCharacter","lastCharacter","skipWhitespace","tagMatch","fullMatch","inlineTagMatches","buildInlineTokens","tags","lineIndex","characterIndex","lastIndex","matchIndex","startContent","tagName","endContent","nonWhitespaceRegex","whitespaceEndRegex","startPosition","JSDocCommentImpl","parseJSDocElement","parseJSDocTag","parseJSDocText","appendEmptyLine","JSDocLineImpl","firstToken","lastToken","parseJSDocInline","JSDocTextImpl","parseJSDocLine","inline","tagToken","docLine","JSDocTagImpl","normalizeOption","escaped","fillNewlines","rendered","renderInlineTag","marker","tag","display","displayStart","renderLinkDefault","JSDocDocumentationProvider","link","_node","_tag","DefaultCommentProvider","DefaultAsyncParser","_cancelToken","DefaultWorkspaceLock","tokenSource","queue","deferred","entries","DefaultHydrator","lexerReport","astNodes","cstNodes","arr","num","cstNodeObj","hydrated","id","createDefaultCoreModule","createDefaultSharedCoreModule","Module","m1","m2","_merge","inject","module1","module2","module3","module4","module5","module6","module7","module8","module9","module","_inject","isProxy","injector","proxy","_resolve","__requested__","value2","value1","EmptyFileSystemProvider","EmptyFileSystem","minimalGrammarModule","minimalSharedGrammarModule","ast.LangiumGrammarAstReflection","createMinimalGrammarServices","shared","loadGrammarFromJson","json","__defProp","__name","Statement","Architecture","isArchitecture","Axis","Branch","isBranch","Checkout","CherryPicking","ClassDefStatement","Commit","isCommit","Curve","Edge","Entry","GitGraph","isGitGraph","Info","isInfo","Item","Junction","Merge","isMerge","Packet","isPacket","PacketBlock","isPacketBlock","Pie","isPie","PieSection","isPieSection","Radar","Service","Treemap","isTreemap","TreemapRow","Direction","Leaf","Section","MermaidAstReflection","loadedInfoGrammar","InfoGrammar","loadedPacketGrammar","PacketGrammar","loadedPieGrammar","PieGrammar","loadedArchitectureGrammar","ArchitectureGrammar","loadedGitGraphGrammar","GitGraphGrammar","loadedRadarGrammar","RadarGrammar","loadedTreemapGrammar","TreemapGrammar","InfoLanguageMetaData","PacketLanguageMetaData","PieLanguageMetaData","ArchitectureLanguageMetaData","GitGraphLanguageMetaData","RadarLanguageMetaData","TreemapLanguageMetaData","MermaidGeneratedSharedModule","InfoGeneratedModule","PacketGeneratedModule","PieGeneratedModule","ArchitectureGeneratedModule","GitGraphGeneratedModule","RadarGeneratedModule","TreemapGeneratedModule","accessibilityDescrRegex","accessibilityTitleRegex","titleRegex","rulesRegexes","AbstractMermaidValueConverter","_cstNode","CommonValueConverter","_rule","_input","AbstractMermaidTokenBuilder","keywords","GitGraphTokenBuilder","GitGraphModule","createGitGraphServices","InfoTokenBuilder","InfoModule","createInfoServices","PacketTokenBuilder","PacketModule","createPacketServices","PieTokenBuilder","PieValueConverter","PieModule","createPieServices","ArchitectureTokenBuilder","ArchitectureValueConverter","ArchitectureModule","createArchitectureServices","RadarTokenBuilder","RadarModule","createRadarServices","TreemapTokenBuilder","classDefRegex","TreemapValueConverter","registerValidationChecks","registry","TreemapValidator","rootNodeIndentation","row","TreemapModule","createTreemapServices","parsers","initializers","createInfoServices2","__vitePreload","info63CPKGFF","createPacketServices2","packetHUATNLJX","createPieServices2","pieWTHONI2E","createArchitectureServices2","architectureO4VJ6CD3","createGitGraphServices2","gitGraphZV4HHKMB","createRadarServices2","radarNJJJXTRR","createTreemapServices2","treemap75Q7IDZK","parse","diagramType","MermaidParseError","lexerErrors","parserErrors"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140],"sources":["../../node_modules/lodash-es/assign.js","../../node_modules/lodash-es/_baseSlice.js","../../node_modules/lodash-es/compact.js","../../node_modules/lodash-es/_arrayAggregator.js","../../node_modules/lodash-es/_baseAggregator.js","../../node_modules/lodash-es/_createAggregator.js","../../node_modules/lodash-es/_baseDifference.js","../../node_modules/lodash-es/difference.js","../../node_modules/lodash-es/drop.js","../../node_modules/lodash-es/dropRight.js","../../node_modules/lodash-es/_arrayEvery.js","../../node_modules/lodash-es/_baseEvery.js","../../node_modules/lodash-es/every.js","../../node_modules/lodash-es/head.js","../../node_modules/lodash-es/flatMap.js","../../node_modules/lodash-es/groupBy.js","../../node_modules/lodash-es/isString.js","../../node_modules/lodash-es/includes.js","../../node_modules/lodash-es/indexOf.js","../../node_modules/lodash-es/_baseIsRegExp.js","../../node_modules/lodash-es/isRegExp.js","../../node_modules/lodash-es/negate.js","../../node_modules/lodash-es/pickBy.js","../../node_modules/lodash-es/reject.js","../../node_modules/lodash-es/_baseSome.js","../../node_modules/lodash-es/some.js","../../node_modules/lodash-es/uniq.js","../../node_modules/lodash-es/uniqBy.js","../../node_modules/langium/lib/syntax-tree.js","../../node_modules/langium/lib/utils/stream.js","../../node_modules/langium/lib/utils/cst-utils.js","../../node_modules/langium/lib/utils/errors.js","../../node_modules/langium/lib/languages/generated/ast.js","../../node_modules/langium/lib/utils/ast-utils.js","../../node_modules/@chevrotain/regexp-to-ast/lib/src/utils.js","../../node_modules/@chevrotain/regexp-to-ast/lib/src/character-classes.js","../../node_modules/@chevrotain/regexp-to-ast/lib/src/regexp-parser.js","../../node_modules/@chevrotain/regexp-to-ast/lib/src/base-regexp-visitor.js","../../node_modules/langium/lib/utils/regexp-utils.js","../../node_modules/langium/lib/utils/grammar-utils.js","../../node_modules/langium/lib/languages/grammar-config.js","../../node_modules/@chevrotain/utils/lib/src/print.js","../../node_modules/@chevrotain/utils/lib/src/timer.js","../../node_modules/@chevrotain/utils/lib/src/to-fast-properties.js","../../node_modules/@chevrotain/gast/lib/src/model.js","../../node_modules/@chevrotain/gast/lib/src/visitor.js","../../node_modules/@chevrotain/gast/lib/src/helpers.js","../../node_modules/chevrotain/lib/src/parse/grammar/rest.js","../../node_modules/chevrotain/lib/src/parse/grammar/first.js","../../node_modules/chevrotain/lib/src/parse/constants.js","../../node_modules/chevrotain/lib/src/parse/grammar/follow.js","../../node_modules/chevrotain/lib/src/scan/reg_exp_parser.js","../../node_modules/chevrotain/lib/src/scan/reg_exp.js","../../node_modules/chevrotain/lib/src/scan/lexer.js","../../node_modules/chevrotain/lib/src/scan/tokens.js","../../node_modules/chevrotain/lib/src/scan/lexer_errors_public.js","../../node_modules/chevrotain/lib/src/scan/lexer_public.js","../../node_modules/chevrotain/lib/src/scan/tokens_public.js","../../node_modules/chevrotain/lib/src/parse/errors_public.js","../../node_modules/chevrotain/lib/src/parse/grammar/resolver.js","../../node_modules/chevrotain/lib/src/parse/grammar/interpreter.js","../../node_modules/chevrotain/lib/src/parse/grammar/lookahead.js","../../node_modules/chevrotain/lib/src/parse/grammar/checks.js","../../node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js","../../node_modules/chevrotain/lib/src/parse/exceptions_public.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js","../../node_modules/chevrotain/lib/src/parse/grammar/keys.js","../../node_modules/chevrotain/lib/src/parse/grammar/llk_lookahead.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js","../../node_modules/chevrotain/lib/src/parse/cst/cst.js","../../node_modules/chevrotain/lib/src/lang/lang_extensions.js","../../node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js","../../node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js","../../node_modules/chevrotain/lib/src/parse/parser/utils/apply_mixins.js","../../node_modules/chevrotain/lib/src/parse/parser/parser.js","../../node_modules/chevrotain-allstar/lib/atn.js","../../node_modules/chevrotain-allstar/lib/dfa.js","../../node_modules/chevrotain-allstar/lib/all-star-lookahead.js","../../node_modules/vscode-languageserver-types/lib/esm/main.js","../../node_modules/langium/lib/parser/cst-node-builder.js","../../node_modules/langium/lib/parser/langium-parser.js","../../node_modules/langium/lib/parser/parser-builder-base.js","../../node_modules/langium/lib/parser/completion-parser-builder.js","../../node_modules/langium/lib/parser/langium-parser-builder.js","../../node_modules/langium/lib/parser/token-builder.js","../../node_modules/langium/lib/parser/value-converter.js","../../node_modules/vscode-jsonrpc/lib/common/ral.js","../../node_modules/vscode-jsonrpc/lib/common/is.js","../../node_modules/vscode-jsonrpc/lib/common/events.js","../../node_modules/vscode-jsonrpc/lib/common/cancellation.js","../../node_modules/langium/lib/utils/promise-utils.js","../../node_modules/vscode-languageserver-textdocument/lib/esm/main.js","../../node_modules/vscode-uri/lib/esm/index.mjs","../../node_modules/langium/lib/utils/uri-utils.js","../../node_modules/langium/lib/workspace/documents.js","../../node_modules/langium/lib/references/linker.js","../../node_modules/langium/lib/references/name-provider.js","../../node_modules/langium/lib/references/references.js","../../node_modules/langium/lib/utils/collections.js","../../node_modules/langium/lib/references/scope-computation.js","../../node_modules/langium/lib/references/scope.js","../../node_modules/langium/lib/utils/caching.js","../../node_modules/langium/lib/references/scope-provider.js","../../node_modules/langium/lib/serializer/json-serializer.js","../../node_modules/langium/lib/service-registry.js","../../node_modules/langium/lib/validation/validation-registry.js","../../node_modules/langium/lib/validation/document-validator.js","../../node_modules/langium/lib/workspace/ast-descriptions.js","../../node_modules/langium/lib/workspace/ast-node-locator.js","../../node_modules/langium/lib/workspace/configuration.js","../../node_modules/langium/lib/utils/disposable.js","../../node_modules/langium/lib/workspace/document-builder.js","../../node_modules/langium/lib/workspace/index-manager.js","../../node_modules/langium/lib/workspace/workspace-manager.js","../../node_modules/langium/lib/parser/lexer.js","../../node_modules/langium/lib/documentation/jsdoc.js","../../node_modules/langium/lib/documentation/documentation-provider.js","../../node_modules/langium/lib/documentation/comment-provider.js","../../node_modules/langium/lib/parser/async-parser.js","../../node_modules/langium/lib/workspace/workspace-lock.js","../../node_modules/langium/lib/serializer/hydrator.js","../../node_modules/langium/lib/default-module.js","../../node_modules/langium/lib/dependency-injection.js","../../node_modules/langium/lib/workspace/file-system-provider.js","../../node_modules/langium/lib/utils/grammar-loader.js","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-4KMFLZZN.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-BN7GFLIU.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-T44TD3VJ.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-KMC2YHZD.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-WFWHJNB7.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-JEIROHC2.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-WFRQ32O7.mjs","../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-XRWGC2XP.mjs","../../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs"],"sourcesContent":["import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n","import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","import baseUniq from './_baseUniq.js';\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nexport default uniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport function isAstNode(obj) {\n return typeof obj === 'object' && obj !== null && typeof obj.$type === 'string';\n}\nexport function isReference(obj) {\n return typeof obj === 'object' && obj !== null && typeof obj.$refText === 'string';\n}\nexport function isAstNodeDescription(obj) {\n return typeof obj === 'object' && obj !== null\n && typeof obj.name === 'string'\n && typeof obj.type === 'string'\n && typeof obj.path === 'string';\n}\nexport function isLinkingError(obj) {\n return typeof obj === 'object' && obj !== null\n && isAstNode(obj.container)\n && isReference(obj.reference)\n && typeof obj.message === 'string';\n}\n/**\n * An abstract implementation of the {@link AstReflection} interface.\n * Serves to cache subtype computation results to improve performance throughout different parts of Langium.\n */\nexport class AbstractAstReflection {\n constructor() {\n this.subtypes = {};\n this.allSubtypes = {};\n }\n isInstance(node, type) {\n return isAstNode(node) && this.isSubtype(node.$type, type);\n }\n isSubtype(subtype, supertype) {\n if (subtype === supertype) {\n return true;\n }\n let nested = this.subtypes[subtype];\n if (!nested) {\n nested = this.subtypes[subtype] = {};\n }\n const existing = nested[supertype];\n if (existing !== undefined) {\n return existing;\n }\n else {\n const result = this.computeIsSubtype(subtype, supertype);\n nested[supertype] = result;\n return result;\n }\n }\n getAllSubTypes(type) {\n const existing = this.allSubtypes[type];\n if (existing) {\n return existing;\n }\n else {\n const allTypes = this.getAllTypes();\n const types = [];\n for (const possibleSubType of allTypes) {\n if (this.isSubtype(possibleSubType, type)) {\n types.push(possibleSubType);\n }\n }\n this.allSubtypes[type] = types;\n return types;\n }\n }\n}\nexport function isCompositeCstNode(node) {\n return typeof node === 'object' && node !== null && Array.isArray(node.content);\n}\nexport function isLeafCstNode(node) {\n return typeof node === 'object' && node !== null && typeof node.tokenType === 'object';\n}\nexport function isRootCstNode(node) {\n return isCompositeCstNode(node) && typeof node.fullText === 'string';\n}\n//# sourceMappingURL=syntax-tree.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n/**\n * The default implementation of `Stream` works with two input functions:\n * - The first function creates the initial state of an iteration.\n * - The second function gets the current state as argument and returns an `IteratorResult`.\n */\nexport class StreamImpl {\n constructor(startFn, nextFn) {\n this.startFn = startFn;\n this.nextFn = nextFn;\n }\n iterator() {\n const iterator = {\n state: this.startFn(),\n next: () => this.nextFn(iterator.state),\n [Symbol.iterator]: () => iterator\n };\n return iterator;\n }\n [Symbol.iterator]() {\n return this.iterator();\n }\n isEmpty() {\n const iterator = this.iterator();\n return Boolean(iterator.next().done);\n }\n count() {\n const iterator = this.iterator();\n let count = 0;\n let next = iterator.next();\n while (!next.done) {\n count++;\n next = iterator.next();\n }\n return count;\n }\n toArray() {\n const result = [];\n const iterator = this.iterator();\n let next;\n do {\n next = iterator.next();\n if (next.value !== undefined) {\n result.push(next.value);\n }\n } while (!next.done);\n return result;\n }\n toSet() {\n return new Set(this);\n }\n toMap(keyFn, valueFn) {\n const entryStream = this.map(element => [\n keyFn ? keyFn(element) : element,\n valueFn ? valueFn(element) : element\n ]);\n return new Map(entryStream);\n }\n toString() {\n return this.join();\n }\n concat(other) {\n return new StreamImpl(() => ({ first: this.startFn(), firstDone: false, iterator: other[Symbol.iterator]() }), state => {\n let result;\n if (!state.firstDone) {\n do {\n result = this.nextFn(state.first);\n if (!result.done) {\n return result;\n }\n } while (!result.done);\n state.firstDone = true;\n }\n do {\n result = state.iterator.next();\n if (!result.done) {\n return result;\n }\n } while (!result.done);\n return DONE_RESULT;\n });\n }\n join(separator = ',') {\n const iterator = this.iterator();\n let value = '';\n let result;\n let addSeparator = false;\n do {\n result = iterator.next();\n if (!result.done) {\n if (addSeparator) {\n value += separator;\n }\n value += toString(result.value);\n }\n addSeparator = true;\n } while (!result.done);\n return value;\n }\n indexOf(searchElement, fromIndex = 0) {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n if (index >= fromIndex && next.value === searchElement) {\n return index;\n }\n next = iterator.next();\n index++;\n }\n return -1;\n }\n every(predicate) {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (!predicate(next.value)) {\n return false;\n }\n next = iterator.next();\n }\n return true;\n }\n some(predicate) {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return true;\n }\n next = iterator.next();\n }\n return false;\n }\n forEach(callbackfn) {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n callbackfn(next.value, index);\n next = iterator.next();\n index++;\n }\n }\n map(callbackfn) {\n return new StreamImpl(this.startFn, (state) => {\n const { done, value } = this.nextFn(state);\n if (done) {\n return DONE_RESULT;\n }\n else {\n return { done: false, value: callbackfn(value) };\n }\n });\n }\n filter(predicate) {\n return new StreamImpl(this.startFn, state => {\n let result;\n do {\n result = this.nextFn(state);\n if (!result.done && predicate(result.value)) {\n return result;\n }\n } while (!result.done);\n return DONE_RESULT;\n });\n }\n nonNullable() {\n return this.filter(e => e !== undefined && e !== null);\n }\n reduce(callbackfn, initialValue) {\n const iterator = this.iterator();\n let previousValue = initialValue;\n let next = iterator.next();\n while (!next.done) {\n if (previousValue === undefined) {\n previousValue = next.value;\n }\n else {\n previousValue = callbackfn(previousValue, next.value);\n }\n next = iterator.next();\n }\n return previousValue;\n }\n reduceRight(callbackfn, initialValue) {\n return this.recursiveReduce(this.iterator(), callbackfn, initialValue);\n }\n recursiveReduce(iterator, callbackfn, initialValue) {\n const next = iterator.next();\n if (next.done) {\n return initialValue;\n }\n const previousValue = this.recursiveReduce(iterator, callbackfn, initialValue);\n if (previousValue === undefined) {\n return next.value;\n }\n return callbackfn(previousValue, next.value);\n }\n find(predicate) {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return next.value;\n }\n next = iterator.next();\n }\n return undefined;\n }\n findIndex(predicate) {\n const iterator = this.iterator();\n let index = 0;\n let next = iterator.next();\n while (!next.done) {\n if (predicate(next.value)) {\n return index;\n }\n next = iterator.next();\n index++;\n }\n return -1;\n }\n includes(searchElement) {\n const iterator = this.iterator();\n let next = iterator.next();\n while (!next.done) {\n if (next.value === searchElement) {\n return true;\n }\n next = iterator.next();\n }\n return false;\n }\n flatMap(callbackfn) {\n return new StreamImpl(() => ({ this: this.startFn() }), (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (next.done) {\n state.iterator = undefined;\n }\n else {\n return next;\n }\n }\n const { done, value } = this.nextFn(state.this);\n if (!done) {\n const mapped = callbackfn(value);\n if (isIterable(mapped)) {\n state.iterator = mapped[Symbol.iterator]();\n }\n else {\n return { done: false, value: mapped };\n }\n }\n } while (state.iterator);\n return DONE_RESULT;\n });\n }\n flat(depth) {\n if (depth === undefined) {\n depth = 1;\n }\n if (depth <= 0) {\n return this;\n }\n const stream = depth > 1 ? this.flat(depth - 1) : this;\n return new StreamImpl(() => ({ this: stream.startFn() }), (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (next.done) {\n state.iterator = undefined;\n }\n else {\n return next;\n }\n }\n const { done, value } = stream.nextFn(state.this);\n if (!done) {\n if (isIterable(value)) {\n state.iterator = value[Symbol.iterator]();\n }\n else {\n return { done: false, value: value };\n }\n }\n } while (state.iterator);\n return DONE_RESULT;\n });\n }\n head() {\n const iterator = this.iterator();\n const result = iterator.next();\n if (result.done) {\n return undefined;\n }\n return result.value;\n }\n tail(skipCount = 1) {\n return new StreamImpl(() => {\n const state = this.startFn();\n for (let i = 0; i < skipCount; i++) {\n const next = this.nextFn(state);\n if (next.done) {\n return state;\n }\n }\n return state;\n }, this.nextFn);\n }\n limit(maxSize) {\n return new StreamImpl(() => ({ size: 0, state: this.startFn() }), state => {\n state.size++;\n if (state.size > maxSize) {\n return DONE_RESULT;\n }\n return this.nextFn(state.state);\n });\n }\n distinct(by) {\n return new StreamImpl(() => ({ set: new Set(), internalState: this.startFn() }), state => {\n let result;\n do {\n result = this.nextFn(state.internalState);\n if (!result.done) {\n const value = by ? by(result.value) : result.value;\n if (!state.set.has(value)) {\n state.set.add(value);\n return result;\n }\n }\n } while (!result.done);\n return DONE_RESULT;\n });\n }\n exclude(other, key) {\n const otherKeySet = new Set();\n for (const item of other) {\n const value = key ? key(item) : item;\n otherKeySet.add(value);\n }\n return this.filter(e => {\n const ownKey = key ? key(e) : e;\n return !otherKeySet.has(ownKey);\n });\n }\n}\nfunction toString(item) {\n if (typeof item === 'string') {\n return item;\n }\n if (typeof item === 'undefined') {\n return 'undefined';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof item.toString === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return item.toString();\n }\n return Object.prototype.toString.call(item);\n}\nfunction isIterable(obj) {\n return !!obj && typeof obj[Symbol.iterator] === 'function';\n}\n/**\n * An empty stream of any type.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EMPTY_STREAM = new StreamImpl(() => undefined, () => DONE_RESULT);\n/**\n * Use this `IteratorResult` when implementing a `StreamImpl` to indicate that there are no more elements in the stream.\n */\nexport const DONE_RESULT = Object.freeze({ done: true, value: undefined });\n/**\n * Create a stream from one or more iterables or array-likes.\n */\nexport function stream(...collections) {\n if (collections.length === 1) {\n const collection = collections[0];\n if (collection instanceof StreamImpl) {\n return collection;\n }\n if (isIterable(collection)) {\n return new StreamImpl(() => collection[Symbol.iterator](), (iterator) => iterator.next());\n }\n if (typeof collection.length === 'number') {\n return new StreamImpl(() => ({ index: 0 }), (state) => {\n if (state.index < collection.length) {\n return { done: false, value: collection[state.index++] };\n }\n else {\n return DONE_RESULT;\n }\n });\n }\n }\n if (collections.length > 1) {\n return new StreamImpl(() => ({ collIndex: 0, arrIndex: 0 }), (state) => {\n do {\n if (state.iterator) {\n const next = state.iterator.next();\n if (!next.done) {\n return next;\n }\n state.iterator = undefined;\n }\n if (state.array) {\n if (state.arrIndex < state.array.length) {\n return { done: false, value: state.array[state.arrIndex++] };\n }\n state.array = undefined;\n state.arrIndex = 0;\n }\n if (state.collIndex < collections.length) {\n const collection = collections[state.collIndex++];\n if (isIterable(collection)) {\n state.iterator = collection[Symbol.iterator]();\n }\n else if (collection && typeof collection.length === 'number') {\n state.array = collection;\n }\n }\n } while (state.iterator || state.array || state.collIndex < collections.length);\n return DONE_RESULT;\n });\n }\n return EMPTY_STREAM;\n}\n/**\n * The default implementation of `TreeStream` takes a root element and a function that computes the\n * children of its argument. Whether the root node included in the stream is controlled with the\n * `includeRoot` option, which defaults to `false`.\n */\nexport class TreeStreamImpl extends StreamImpl {\n constructor(root, children, options) {\n super(() => ({\n iterators: (options === null || options === void 0 ? void 0 : options.includeRoot) ? [[root][Symbol.iterator]()] : [children(root)[Symbol.iterator]()],\n pruned: false\n }), state => {\n if (state.pruned) {\n state.iterators.pop();\n state.pruned = false;\n }\n while (state.iterators.length > 0) {\n const iterator = state.iterators[state.iterators.length - 1];\n const next = iterator.next();\n if (next.done) {\n state.iterators.pop();\n }\n else {\n state.iterators.push(children(next.value)[Symbol.iterator]());\n return next;\n }\n }\n return DONE_RESULT;\n });\n }\n iterator() {\n const iterator = {\n state: this.startFn(),\n next: () => this.nextFn(iterator.state),\n prune: () => {\n iterator.state.pruned = true;\n },\n [Symbol.iterator]: () => iterator\n };\n return iterator;\n }\n}\n/**\n * A set of utility functions that reduce a stream to a single value.\n */\nexport var Reduction;\n(function (Reduction) {\n /**\n * Compute the sum of a number stream.\n */\n function sum(stream) {\n return stream.reduce((a, b) => a + b, 0);\n }\n Reduction.sum = sum;\n /**\n * Compute the product of a number stream.\n */\n function product(stream) {\n return stream.reduce((a, b) => a * b, 0);\n }\n Reduction.product = product;\n /**\n * Compute the minimum of a number stream. Returns `undefined` if the stream is empty.\n */\n function min(stream) {\n return stream.reduce((a, b) => Math.min(a, b));\n }\n Reduction.min = min;\n /**\n * Compute the maximum of a number stream. Returns `undefined` if the stream is empty.\n */\n function max(stream) {\n return stream.reduce((a, b) => Math.max(a, b));\n }\n Reduction.max = max;\n})(Reduction || (Reduction = {}));\n//# sourceMappingURL=stream.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { isCompositeCstNode, isLeafCstNode, isRootCstNode } from '../syntax-tree.js';\nimport { TreeStreamImpl } from './stream.js';\n/**\n * Create a stream of all CST nodes that are directly and indirectly contained in the given root node,\n * including the root node itself.\n */\nexport function streamCst(node) {\n return new TreeStreamImpl(node, element => {\n if (isCompositeCstNode(element)) {\n return element.content;\n }\n else {\n return [];\n }\n }, { includeRoot: true });\n}\n/**\n * Create a stream of all leaf nodes that are directly and indirectly contained in the given root node.\n */\nexport function flattenCst(node) {\n return streamCst(node).filter(isLeafCstNode);\n}\n/**\n * Determines whether the specified cst node is a child of the specified parent node.\n */\nexport function isChildNode(child, parent) {\n while (child.container) {\n child = child.container;\n if (child === parent) {\n return true;\n }\n }\n return false;\n}\nexport function tokenToRange(token) {\n // Chevrotain uses 1-based indices everywhere\n // So we subtract 1 from every value to align with the LSP\n return {\n start: {\n character: token.startColumn - 1,\n line: token.startLine - 1\n },\n end: {\n character: token.endColumn, // endColumn uses the correct index\n line: token.endLine - 1\n }\n };\n}\nexport function toDocumentSegment(node) {\n if (!node) {\n return undefined;\n }\n const { offset, end, range } = node;\n return {\n range,\n offset,\n end,\n length: end - offset\n };\n}\nexport var RangeComparison;\n(function (RangeComparison) {\n RangeComparison[RangeComparison[\"Before\"] = 0] = \"Before\";\n RangeComparison[RangeComparison[\"After\"] = 1] = \"After\";\n RangeComparison[RangeComparison[\"OverlapFront\"] = 2] = \"OverlapFront\";\n RangeComparison[RangeComparison[\"OverlapBack\"] = 3] = \"OverlapBack\";\n RangeComparison[RangeComparison[\"Inside\"] = 4] = \"Inside\";\n RangeComparison[RangeComparison[\"Outside\"] = 5] = \"Outside\";\n})(RangeComparison || (RangeComparison = {}));\nexport function compareRange(range, to) {\n if (range.end.line < to.start.line || (range.end.line === to.start.line && range.end.character <= to.start.character)) {\n return RangeComparison.Before;\n }\n else if (range.start.line > to.end.line || (range.start.line === to.end.line && range.start.character >= to.end.character)) {\n return RangeComparison.After;\n }\n const startInside = range.start.line > to.start.line || (range.start.line === to.start.line && range.start.character >= to.start.character);\n const endInside = range.end.line < to.end.line || (range.end.line === to.end.line && range.end.character <= to.end.character);\n if (startInside && endInside) {\n return RangeComparison.Inside;\n }\n else if (startInside) {\n return RangeComparison.OverlapBack;\n }\n else if (endInside) {\n return RangeComparison.OverlapFront;\n }\n else {\n return RangeComparison.Outside;\n }\n}\nexport function inRange(range, to) {\n const comparison = compareRange(range, to);\n return comparison > RangeComparison.After;\n}\n// The \\p{L} regex matches any unicode letter character, i.e. characters from non-english alphabets\n// Together with \\w it matches any kind of character which can commonly appear in IDs\nexport const DefaultNameRegexp = /^[\\w\\p{L}]$/u;\n/**\n * Performs `findLeafNodeAtOffset` with a minor difference: When encountering a character that matches the `nameRegexp` argument,\n * it will instead return the leaf node at the `offset - 1` position.\n *\n * For LSP services, users expect that the declaration of an element is available if the cursor is directly after the element.\n */\nexport function findDeclarationNodeAtOffset(cstNode, offset, nameRegexp = DefaultNameRegexp) {\n if (cstNode) {\n if (offset > 0) {\n const localOffset = offset - cstNode.offset;\n const textAtOffset = cstNode.text.charAt(localOffset);\n if (!nameRegexp.test(textAtOffset)) {\n offset--;\n }\n }\n return findLeafNodeAtOffset(cstNode, offset);\n }\n return undefined;\n}\nexport function findCommentNode(cstNode, commentNames) {\n if (cstNode) {\n const previous = getPreviousNode(cstNode, true);\n if (previous && isCommentNode(previous, commentNames)) {\n return previous;\n }\n if (isRootCstNode(cstNode)) {\n // Go from the first non-hidden node through all nodes in reverse order\n // We do this to find the comment node which directly precedes the root node\n const endIndex = cstNode.content.findIndex(e => !e.hidden);\n for (let i = endIndex - 1; i >= 0; i--) {\n const child = cstNode.content[i];\n if (isCommentNode(child, commentNames)) {\n return child;\n }\n }\n }\n }\n return undefined;\n}\nexport function isCommentNode(cstNode, commentNames) {\n return isLeafCstNode(cstNode) && commentNames.includes(cstNode.tokenType.name);\n}\n/**\n * Finds the leaf CST node at the specified 0-based string offset.\n * Note that the given offset will be within the range of the returned leaf node.\n *\n * If the offset does not point to a CST node (but just white space), this method will return `undefined`.\n *\n * @param node The CST node to search through.\n * @param offset The specified offset.\n * @returns The CST node at the specified offset.\n */\nexport function findLeafNodeAtOffset(node, offset) {\n if (isLeafCstNode(node)) {\n return node;\n }\n else if (isCompositeCstNode(node)) {\n const searchResult = binarySearch(node, offset, false);\n if (searchResult) {\n return findLeafNodeAtOffset(searchResult, offset);\n }\n }\n return undefined;\n}\n/**\n * Finds the leaf CST node at the specified 0-based string offset.\n * If no CST node exists at the specified position, it will return the leaf node before it.\n *\n * If there is no leaf node before the specified offset, this method will return `undefined`.\n *\n * @param node The CST node to search through.\n * @param offset The specified offset.\n * @returns The CST node closest to the specified offset.\n */\nexport function findLeafNodeBeforeOffset(node, offset) {\n if (isLeafCstNode(node)) {\n return node;\n }\n else if (isCompositeCstNode(node)) {\n const searchResult = binarySearch(node, offset, true);\n if (searchResult) {\n return findLeafNodeBeforeOffset(searchResult, offset);\n }\n }\n return undefined;\n}\nfunction binarySearch(node, offset, closest) {\n let left = 0;\n let right = node.content.length - 1;\n let closestNode = undefined;\n while (left <= right) {\n const middle = Math.floor((left + right) / 2);\n const middleNode = node.content[middle];\n if (middleNode.offset <= offset && middleNode.end > offset) {\n // Found an exact match\n return middleNode;\n }\n if (middleNode.end <= offset) {\n // Update the closest node (less than offset) and move to the right half\n closestNode = closest ? middleNode : undefined;\n left = middle + 1;\n }\n else {\n // Move to the left half\n right = middle - 1;\n }\n }\n return closestNode;\n}\nexport function getPreviousNode(node, hidden = true) {\n while (node.container) {\n const parent = node.container;\n let index = parent.content.indexOf(node);\n while (index > 0) {\n index--;\n const previous = parent.content[index];\n if (hidden || !previous.hidden) {\n return previous;\n }\n }\n node = parent;\n }\n return undefined;\n}\nexport function getNextNode(node, hidden = true) {\n while (node.container) {\n const parent = node.container;\n let index = parent.content.indexOf(node);\n const last = parent.content.length - 1;\n while (index < last) {\n index++;\n const next = parent.content[index];\n if (hidden || !next.hidden) {\n return next;\n }\n }\n node = parent;\n }\n return undefined;\n}\nexport function getStartlineNode(node) {\n if (node.range.start.character === 0) {\n return node;\n }\n const line = node.range.start.line;\n let last = node;\n let index;\n while (node.container) {\n const parent = node.container;\n const selfIndex = index !== null && index !== void 0 ? index : parent.content.indexOf(node);\n if (selfIndex === 0) {\n node = parent;\n index = undefined;\n }\n else {\n index = selfIndex - 1;\n node = parent.content[index];\n }\n if (node.range.start.line !== line) {\n break;\n }\n last = node;\n }\n return last;\n}\nexport function getInteriorNodes(start, end) {\n const commonParent = getCommonParent(start, end);\n if (!commonParent) {\n return [];\n }\n return commonParent.parent.content.slice(commonParent.a + 1, commonParent.b);\n}\nfunction getCommonParent(a, b) {\n const aParents = getParentChain(a);\n const bParents = getParentChain(b);\n let current;\n for (let i = 0; i < aParents.length && i < bParents.length; i++) {\n const aParent = aParents[i];\n const bParent = bParents[i];\n if (aParent.parent === bParent.parent) {\n current = {\n parent: aParent.parent,\n a: aParent.index,\n b: bParent.index\n };\n }\n else {\n break;\n }\n }\n return current;\n}\nfunction getParentChain(node) {\n const chain = [];\n while (node.container) {\n const parent = node.container;\n const index = parent.content.indexOf(node);\n chain.push({\n parent,\n index\n });\n node = parent;\n }\n return chain.reverse();\n}\n//# sourceMappingURL=cst-utils.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport class ErrorWithLocation extends Error {\n constructor(node, message) {\n super(node ? `${message} at ${node.range.start.line}:${node.range.start.character}` : message);\n }\n}\nexport function assertUnreachable(_) {\n throw new Error('Error! The input value was not handled.');\n}\n//# sourceMappingURL=errors.js.map","/******************************************************************************\n * This file was generated by langium-cli 3.3.0.\n * DO NOT EDIT MANUALLY!\n ******************************************************************************/\nimport { AbstractAstReflection } from '../../syntax-tree.js';\nexport const LangiumGrammarTerminals = {\n ID: /\\^?[_a-zA-Z][\\w_]*/,\n STRING: /\"(\\\\.|[^\"\\\\])*\"|'(\\\\.|[^'\\\\])*'/,\n NUMBER: /NaN|-?((\\d*\\.\\d+|\\d+)([Ee][+-]?\\d+)?|Infinity)/,\n RegexLiteral: /\\/(?![*+?])(?:[^\\r\\n\\[/\\\\]|\\\\.|\\[(?:[^\\r\\n\\]\\\\]|\\\\.)*\\])+\\/[a-z]*/,\n WS: /\\s+/,\n ML_COMMENT: /\\/\\*[\\s\\S]*?\\*\\//,\n SL_COMMENT: /\\/\\/[^\\n\\r]*/,\n};\nexport const AbstractRule = 'AbstractRule';\nexport function isAbstractRule(item) {\n return reflection.isInstance(item, AbstractRule);\n}\nexport const AbstractType = 'AbstractType';\nexport function isAbstractType(item) {\n return reflection.isInstance(item, AbstractType);\n}\nexport const Condition = 'Condition';\nexport function isCondition(item) {\n return reflection.isInstance(item, Condition);\n}\nexport function isFeatureName(item) {\n return isPrimitiveType(item) || item === 'current' || item === 'entry' || item === 'extends' || item === 'false' || item === 'fragment' || item === 'grammar' || item === 'hidden' || item === 'import' || item === 'interface' || item === 'returns' || item === 'terminal' || item === 'true' || item === 'type' || item === 'infer' || item === 'infers' || item === 'with' || (typeof item === 'string' && (/\\^?[_a-zA-Z][\\w_]*/.test(item)));\n}\nexport function isPrimitiveType(item) {\n return item === 'string' || item === 'number' || item === 'boolean' || item === 'Date' || item === 'bigint';\n}\nexport const TypeDefinition = 'TypeDefinition';\nexport function isTypeDefinition(item) {\n return reflection.isInstance(item, TypeDefinition);\n}\nexport const ValueLiteral = 'ValueLiteral';\nexport function isValueLiteral(item) {\n return reflection.isInstance(item, ValueLiteral);\n}\nexport const AbstractElement = 'AbstractElement';\nexport function isAbstractElement(item) {\n return reflection.isInstance(item, AbstractElement);\n}\nexport const ArrayLiteral = 'ArrayLiteral';\nexport function isArrayLiteral(item) {\n return reflection.isInstance(item, ArrayLiteral);\n}\nexport const ArrayType = 'ArrayType';\nexport function isArrayType(item) {\n return reflection.isInstance(item, ArrayType);\n}\nexport const BooleanLiteral = 'BooleanLiteral';\nexport function isBooleanLiteral(item) {\n return reflection.isInstance(item, BooleanLiteral);\n}\nexport const Conjunction = 'Conjunction';\nexport function isConjunction(item) {\n return reflection.isInstance(item, Conjunction);\n}\nexport const Disjunction = 'Disjunction';\nexport function isDisjunction(item) {\n return reflection.isInstance(item, Disjunction);\n}\nexport const Grammar = 'Grammar';\nexport function isGrammar(item) {\n return reflection.isInstance(item, Grammar);\n}\nexport const GrammarImport = 'GrammarImport';\nexport function isGrammarImport(item) {\n return reflection.isInstance(item, GrammarImport);\n}\nexport const InferredType = 'InferredType';\nexport function isInferredType(item) {\n return reflection.isInstance(item, InferredType);\n}\nexport const Interface = 'Interface';\nexport function isInterface(item) {\n return reflection.isInstance(item, Interface);\n}\nexport const NamedArgument = 'NamedArgument';\nexport function isNamedArgument(item) {\n return reflection.isInstance(item, NamedArgument);\n}\nexport const Negation = 'Negation';\nexport function isNegation(item) {\n return reflection.isInstance(item, Negation);\n}\nexport const NumberLiteral = 'NumberLiteral';\nexport function isNumberLiteral(item) {\n return reflection.isInstance(item, NumberLiteral);\n}\nexport const Parameter = 'Parameter';\nexport function isParameter(item) {\n return reflection.isInstance(item, Parameter);\n}\nexport const ParameterReference = 'ParameterReference';\nexport function isParameterReference(item) {\n return reflection.isInstance(item, ParameterReference);\n}\nexport const ParserRule = 'ParserRule';\nexport function isParserRule(item) {\n return reflection.isInstance(item, ParserRule);\n}\nexport const ReferenceType = 'ReferenceType';\nexport function isReferenceType(item) {\n return reflection.isInstance(item, ReferenceType);\n}\nexport const ReturnType = 'ReturnType';\nexport function isReturnType(item) {\n return reflection.isInstance(item, ReturnType);\n}\nexport const SimpleType = 'SimpleType';\nexport function isSimpleType(item) {\n return reflection.isInstance(item, SimpleType);\n}\nexport const StringLiteral = 'StringLiteral';\nexport function isStringLiteral(item) {\n return reflection.isInstance(item, StringLiteral);\n}\nexport const TerminalRule = 'TerminalRule';\nexport function isTerminalRule(item) {\n return reflection.isInstance(item, TerminalRule);\n}\nexport const Type = 'Type';\nexport function isType(item) {\n return reflection.isInstance(item, Type);\n}\nexport const TypeAttribute = 'TypeAttribute';\nexport function isTypeAttribute(item) {\n return reflection.isInstance(item, TypeAttribute);\n}\nexport const UnionType = 'UnionType';\nexport function isUnionType(item) {\n return reflection.isInstance(item, UnionType);\n}\nexport const Action = 'Action';\nexport function isAction(item) {\n return reflection.isInstance(item, Action);\n}\nexport const Alternatives = 'Alternatives';\nexport function isAlternatives(item) {\n return reflection.isInstance(item, Alternatives);\n}\nexport const Assignment = 'Assignment';\nexport function isAssignment(item) {\n return reflection.isInstance(item, Assignment);\n}\nexport const CharacterRange = 'CharacterRange';\nexport function isCharacterRange(item) {\n return reflection.isInstance(item, CharacterRange);\n}\nexport const CrossReference = 'CrossReference';\nexport function isCrossReference(item) {\n return reflection.isInstance(item, CrossReference);\n}\nexport const EndOfFile = 'EndOfFile';\nexport function isEndOfFile(item) {\n return reflection.isInstance(item, EndOfFile);\n}\nexport const Group = 'Group';\nexport function isGroup(item) {\n return reflection.isInstance(item, Group);\n}\nexport const Keyword = 'Keyword';\nexport function isKeyword(item) {\n return reflection.isInstance(item, Keyword);\n}\nexport const NegatedToken = 'NegatedToken';\nexport function isNegatedToken(item) {\n return reflection.isInstance(item, NegatedToken);\n}\nexport const RegexToken = 'RegexToken';\nexport function isRegexToken(item) {\n return reflection.isInstance(item, RegexToken);\n}\nexport const RuleCall = 'RuleCall';\nexport function isRuleCall(item) {\n return reflection.isInstance(item, RuleCall);\n}\nexport const TerminalAlternatives = 'TerminalAlternatives';\nexport function isTerminalAlternatives(item) {\n return reflection.isInstance(item, TerminalAlternatives);\n}\nexport const TerminalGroup = 'TerminalGroup';\nexport function isTerminalGroup(item) {\n return reflection.isInstance(item, TerminalGroup);\n}\nexport const TerminalRuleCall = 'TerminalRuleCall';\nexport function isTerminalRuleCall(item) {\n return reflection.isInstance(item, TerminalRuleCall);\n}\nexport const UnorderedGroup = 'UnorderedGroup';\nexport function isUnorderedGroup(item) {\n return reflection.isInstance(item, UnorderedGroup);\n}\nexport const UntilToken = 'UntilToken';\nexport function isUntilToken(item) {\n return reflection.isInstance(item, UntilToken);\n}\nexport const Wildcard = 'Wildcard';\nexport function isWildcard(item) {\n return reflection.isInstance(item, Wildcard);\n}\nexport class LangiumGrammarAstReflection extends AbstractAstReflection {\n getAllTypes() {\n return [AbstractElement, AbstractRule, AbstractType, Action, Alternatives, ArrayLiteral, ArrayType, Assignment, BooleanLiteral, CharacterRange, Condition, Conjunction, CrossReference, Disjunction, EndOfFile, Grammar, GrammarImport, Group, InferredType, Interface, Keyword, NamedArgument, NegatedToken, Negation, NumberLiteral, Parameter, ParameterReference, ParserRule, ReferenceType, RegexToken, ReturnType, RuleCall, SimpleType, StringLiteral, TerminalAlternatives, TerminalGroup, TerminalRule, TerminalRuleCall, Type, TypeAttribute, TypeDefinition, UnionType, UnorderedGroup, UntilToken, ValueLiteral, Wildcard];\n }\n computeIsSubtype(subtype, supertype) {\n switch (subtype) {\n case Action:\n case Alternatives:\n case Assignment:\n case CharacterRange:\n case CrossReference:\n case EndOfFile:\n case Group:\n case Keyword:\n case NegatedToken:\n case RegexToken:\n case RuleCall:\n case TerminalAlternatives:\n case TerminalGroup:\n case TerminalRuleCall:\n case UnorderedGroup:\n case UntilToken:\n case Wildcard: {\n return this.isSubtype(AbstractElement, supertype);\n }\n case ArrayLiteral:\n case NumberLiteral:\n case StringLiteral: {\n return this.isSubtype(ValueLiteral, supertype);\n }\n case ArrayType:\n case ReferenceType:\n case SimpleType:\n case UnionType: {\n return this.isSubtype(TypeDefinition, supertype);\n }\n case BooleanLiteral: {\n return this.isSubtype(Condition, supertype) || this.isSubtype(ValueLiteral, supertype);\n }\n case Conjunction:\n case Disjunction:\n case Negation:\n case ParameterReference: {\n return this.isSubtype(Condition, supertype);\n }\n case InferredType:\n case Interface:\n case Type: {\n return this.isSubtype(AbstractType, supertype);\n }\n case ParserRule: {\n return this.isSubtype(AbstractRule, supertype) || this.isSubtype(AbstractType, supertype);\n }\n case TerminalRule: {\n return this.isSubtype(AbstractRule, supertype);\n }\n default: {\n return false;\n }\n }\n }\n getReferenceType(refInfo) {\n const referenceId = `${refInfo.container.$type}:${refInfo.property}`;\n switch (referenceId) {\n case 'Action:type':\n case 'CrossReference:type':\n case 'Interface:superTypes':\n case 'ParserRule:returnType':\n case 'SimpleType:typeRef': {\n return AbstractType;\n }\n case 'Grammar:hiddenTokens':\n case 'ParserRule:hiddenTokens':\n case 'RuleCall:rule': {\n return AbstractRule;\n }\n case 'Grammar:usedGrammars': {\n return Grammar;\n }\n case 'NamedArgument:parameter':\n case 'ParameterReference:parameter': {\n return Parameter;\n }\n case 'TerminalRuleCall:rule': {\n return TerminalRule;\n }\n default: {\n throw new Error(`${referenceId} is not a valid reference id.`);\n }\n }\n }\n getTypeMetaData(type) {\n switch (type) {\n case AbstractElement: {\n return {\n name: AbstractElement,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n case ArrayLiteral: {\n return {\n name: ArrayLiteral,\n properties: [\n { name: 'elements', defaultValue: [] }\n ]\n };\n }\n case ArrayType: {\n return {\n name: ArrayType,\n properties: [\n { name: 'elementType' }\n ]\n };\n }\n case BooleanLiteral: {\n return {\n name: BooleanLiteral,\n properties: [\n { name: 'true', defaultValue: false }\n ]\n };\n }\n case Conjunction: {\n return {\n name: Conjunction,\n properties: [\n { name: 'left' },\n { name: 'right' }\n ]\n };\n }\n case Disjunction: {\n return {\n name: Disjunction,\n properties: [\n { name: 'left' },\n { name: 'right' }\n ]\n };\n }\n case Grammar: {\n return {\n name: Grammar,\n properties: [\n { name: 'definesHiddenTokens', defaultValue: false },\n { name: 'hiddenTokens', defaultValue: [] },\n { name: 'imports', defaultValue: [] },\n { name: 'interfaces', defaultValue: [] },\n { name: 'isDeclared', defaultValue: false },\n { name: 'name' },\n { name: 'rules', defaultValue: [] },\n { name: 'types', defaultValue: [] },\n { name: 'usedGrammars', defaultValue: [] }\n ]\n };\n }\n case GrammarImport: {\n return {\n name: GrammarImport,\n properties: [\n { name: 'path' }\n ]\n };\n }\n case InferredType: {\n return {\n name: InferredType,\n properties: [\n { name: 'name' }\n ]\n };\n }\n case Interface: {\n return {\n name: Interface,\n properties: [\n { name: 'attributes', defaultValue: [] },\n { name: 'name' },\n { name: 'superTypes', defaultValue: [] }\n ]\n };\n }\n case NamedArgument: {\n return {\n name: NamedArgument,\n properties: [\n { name: 'calledByName', defaultValue: false },\n { name: 'parameter' },\n { name: 'value' }\n ]\n };\n }\n case Negation: {\n return {\n name: Negation,\n properties: [\n { name: 'value' }\n ]\n };\n }\n case NumberLiteral: {\n return {\n name: NumberLiteral,\n properties: [\n { name: 'value' }\n ]\n };\n }\n case Parameter: {\n return {\n name: Parameter,\n properties: [\n { name: 'name' }\n ]\n };\n }\n case ParameterReference: {\n return {\n name: ParameterReference,\n properties: [\n { name: 'parameter' }\n ]\n };\n }\n case ParserRule: {\n return {\n name: ParserRule,\n properties: [\n { name: 'dataType' },\n { name: 'definesHiddenTokens', defaultValue: false },\n { name: 'definition' },\n { name: 'entry', defaultValue: false },\n { name: 'fragment', defaultValue: false },\n { name: 'hiddenTokens', defaultValue: [] },\n { name: 'inferredType' },\n { name: 'name' },\n { name: 'parameters', defaultValue: [] },\n { name: 'returnType' },\n { name: 'wildcard', defaultValue: false }\n ]\n };\n }\n case ReferenceType: {\n return {\n name: ReferenceType,\n properties: [\n { name: 'referenceType' }\n ]\n };\n }\n case ReturnType: {\n return {\n name: ReturnType,\n properties: [\n { name: 'name' }\n ]\n };\n }\n case SimpleType: {\n return {\n name: SimpleType,\n properties: [\n { name: 'primitiveType' },\n { name: 'stringType' },\n { name: 'typeRef' }\n ]\n };\n }\n case StringLiteral: {\n return {\n name: StringLiteral,\n properties: [\n { name: 'value' }\n ]\n };\n }\n case TerminalRule: {\n return {\n name: TerminalRule,\n properties: [\n { name: 'definition' },\n { name: 'fragment', defaultValue: false },\n { name: 'hidden', defaultValue: false },\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case Type: {\n return {\n name: Type,\n properties: [\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case TypeAttribute: {\n return {\n name: TypeAttribute,\n properties: [\n { name: 'defaultValue' },\n { name: 'isOptional', defaultValue: false },\n { name: 'name' },\n { name: 'type' }\n ]\n };\n }\n case UnionType: {\n return {\n name: UnionType,\n properties: [\n { name: 'types', defaultValue: [] }\n ]\n };\n }\n case Action: {\n return {\n name: Action,\n properties: [\n { name: 'cardinality' },\n { name: 'feature' },\n { name: 'inferredType' },\n { name: 'lookahead' },\n { name: 'operator' },\n { name: 'type' }\n ]\n };\n }\n case Alternatives: {\n return {\n name: Alternatives,\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case Assignment: {\n return {\n name: Assignment,\n properties: [\n { name: 'cardinality' },\n { name: 'feature' },\n { name: 'lookahead' },\n { name: 'operator' },\n { name: 'terminal' }\n ]\n };\n }\n case CharacterRange: {\n return {\n name: CharacterRange,\n properties: [\n { name: 'cardinality' },\n { name: 'left' },\n { name: 'lookahead' },\n { name: 'right' }\n ]\n };\n }\n case CrossReference: {\n return {\n name: CrossReference,\n properties: [\n { name: 'cardinality' },\n { name: 'deprecatedSyntax', defaultValue: false },\n { name: 'lookahead' },\n { name: 'terminal' },\n { name: 'type' }\n ]\n };\n }\n case EndOfFile: {\n return {\n name: EndOfFile,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n case Group: {\n return {\n name: Group,\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'guardCondition' },\n { name: 'lookahead' }\n ]\n };\n }\n case Keyword: {\n return {\n name: Keyword,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'value' }\n ]\n };\n }\n case NegatedToken: {\n return {\n name: NegatedToken,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'terminal' }\n ]\n };\n }\n case RegexToken: {\n return {\n name: RegexToken,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'regex' }\n ]\n };\n }\n case RuleCall: {\n return {\n name: RuleCall,\n properties: [\n { name: 'arguments', defaultValue: [] },\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'rule' }\n ]\n };\n }\n case TerminalAlternatives: {\n return {\n name: TerminalAlternatives,\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case TerminalGroup: {\n return {\n name: TerminalGroup,\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case TerminalRuleCall: {\n return {\n name: TerminalRuleCall,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'rule' }\n ]\n };\n }\n case UnorderedGroup: {\n return {\n name: UnorderedGroup,\n properties: [\n { name: 'cardinality' },\n { name: 'elements', defaultValue: [] },\n { name: 'lookahead' }\n ]\n };\n }\n case UntilToken: {\n return {\n name: UntilToken,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' },\n { name: 'terminal' }\n ]\n };\n }\n case Wildcard: {\n return {\n name: Wildcard,\n properties: [\n { name: 'cardinality' },\n { name: 'lookahead' }\n ]\n };\n }\n default: {\n return {\n name: type,\n properties: []\n };\n }\n }\n }\n}\nexport const reflection = new LangiumGrammarAstReflection();\n//# sourceMappingURL=ast.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { isAstNode, isReference } from '../syntax-tree.js';\nimport { DONE_RESULT, stream, StreamImpl, TreeStreamImpl } from './stream.js';\nimport { inRange } from './cst-utils.js';\n/**\n * Link the `$container` and other related properties of every AST node that is directly contained\n * in the given `node`.\n */\nexport function linkContentToContainer(node) {\n for (const [name, value] of Object.entries(node)) {\n if (!name.startsWith('$')) {\n if (Array.isArray(value)) {\n value.forEach((item, index) => {\n if (isAstNode(item)) {\n item.$container = node;\n item.$containerProperty = name;\n item.$containerIndex = index;\n }\n });\n }\n else if (isAstNode(value)) {\n value.$container = node;\n value.$containerProperty = name;\n }\n }\n }\n}\n/**\n * Walk along the hierarchy of containers from the given AST node to the root and return the first\n * node that matches the type predicate. If the start node itself matches, it is returned.\n * If no container matches, `undefined` is returned.\n */\nexport function getContainerOfType(node, typePredicate) {\n let item = node;\n while (item) {\n if (typePredicate(item)) {\n return item;\n }\n item = item.$container;\n }\n return undefined;\n}\n/**\n * Walk along the hierarchy of containers from the given AST node to the root and check for existence\n * of a container that matches the given predicate. The start node is included in the checks.\n */\nexport function hasContainerOfType(node, predicate) {\n let item = node;\n while (item) {\n if (predicate(item)) {\n return true;\n }\n item = item.$container;\n }\n return false;\n}\n/**\n * Retrieve the document in which the given AST node is contained. A reference to the document is\n * usually held by the root node of the AST.\n *\n * @throws an error if the node is not contained in a document.\n */\nexport function getDocument(node) {\n const rootNode = findRootNode(node);\n const result = rootNode.$document;\n if (!result) {\n throw new Error('AST node has no document.');\n }\n return result;\n}\n/**\n * Returns the root node of the given AST node by following the `$container` references.\n */\nexport function findRootNode(node) {\n while (node.$container) {\n node = node.$container;\n }\n return node;\n}\n/**\n * Create a stream of all AST nodes that are directly contained in the given node. This includes\n * single-valued as well as multi-valued (array) properties.\n */\nexport function streamContents(node, options) {\n if (!node) {\n throw new Error('Node must be an AstNode.');\n }\n const range = options === null || options === void 0 ? void 0 : options.range;\n return new StreamImpl(() => ({\n keys: Object.keys(node),\n keyIndex: 0,\n arrayIndex: 0\n }), state => {\n while (state.keyIndex < state.keys.length) {\n const property = state.keys[state.keyIndex];\n if (!property.startsWith('$')) {\n const value = node[property];\n if (isAstNode(value)) {\n state.keyIndex++;\n if (isAstNodeInRange(value, range)) {\n return { done: false, value };\n }\n }\n else if (Array.isArray(value)) {\n while (state.arrayIndex < value.length) {\n const index = state.arrayIndex++;\n const element = value[index];\n if (isAstNode(element) && isAstNodeInRange(element, range)) {\n return { done: false, value: element };\n }\n }\n state.arrayIndex = 0;\n }\n }\n state.keyIndex++;\n }\n return DONE_RESULT;\n });\n}\n/**\n * Create a stream of all AST nodes that are directly and indirectly contained in the given root node.\n * This does not include the root node itself.\n */\nexport function streamAllContents(root, options) {\n if (!root) {\n throw new Error('Root node must be an AstNode.');\n }\n return new TreeStreamImpl(root, node => streamContents(node, options));\n}\n/**\n * Create a stream of all AST nodes that are directly and indirectly contained in the given root node,\n * including the root node itself.\n */\nexport function streamAst(root, options) {\n if (!root) {\n throw new Error('Root node must be an AstNode.');\n }\n else if ((options === null || options === void 0 ? void 0 : options.range) && !isAstNodeInRange(root, options.range)) {\n // Return an empty stream if the root node isn't in range\n return new TreeStreamImpl(root, () => []);\n }\n return new TreeStreamImpl(root, node => streamContents(node, options), { includeRoot: true });\n}\nfunction isAstNodeInRange(astNode, range) {\n var _a;\n if (!range) {\n return true;\n }\n const nodeRange = (_a = astNode.$cstNode) === null || _a === void 0 ? void 0 : _a.range;\n if (!nodeRange) {\n return false;\n }\n return inRange(nodeRange, range);\n}\n/**\n * Create a stream of all cross-references that are held by the given AST node. This includes\n * single-valued as well as multi-valued (array) properties.\n */\nexport function streamReferences(node) {\n return new StreamImpl(() => ({\n keys: Object.keys(node),\n keyIndex: 0,\n arrayIndex: 0\n }), state => {\n while (state.keyIndex < state.keys.length) {\n const property = state.keys[state.keyIndex];\n if (!property.startsWith('$')) {\n const value = node[property];\n if (isReference(value)) {\n state.keyIndex++;\n return { done: false, value: { reference: value, container: node, property } };\n }\n else if (Array.isArray(value)) {\n while (state.arrayIndex < value.length) {\n const index = state.arrayIndex++;\n const element = value[index];\n if (isReference(element)) {\n return { done: false, value: { reference: element, container: node, property, index } };\n }\n }\n state.arrayIndex = 0;\n }\n }\n state.keyIndex++;\n }\n return DONE_RESULT;\n });\n}\n/**\n * Returns a Stream of references to the target node from the AstNode tree\n *\n * @param targetNode AstNode we are looking for\n * @param lookup AstNode where we search for references. If not provided, the root node of the document is used as the default value\n */\nexport function findLocalReferences(targetNode, lookup = getDocument(targetNode).parseResult.value) {\n const refs = [];\n streamAst(lookup).forEach(node => {\n streamReferences(node).forEach(refInfo => {\n if (refInfo.reference.ref === targetNode) {\n refs.push(refInfo.reference);\n }\n });\n });\n return stream(refs);\n}\n/**\n * Assigns all mandatory AST properties to the specified node.\n *\n * @param reflection Reflection object used to gather mandatory properties for the node.\n * @param node Specified node is modified in place and properties are directly assigned.\n */\nexport function assignMandatoryProperties(reflection, node) {\n const typeMetaData = reflection.getTypeMetaData(node.$type);\n const genericNode = node;\n for (const property of typeMetaData.properties) {\n // Only set the value if the property is not already set and if it has a default value\n if (property.defaultValue !== undefined && genericNode[property.name] === undefined) {\n genericNode[property.name] = copyDefaultValue(property.defaultValue);\n }\n }\n}\nfunction copyDefaultValue(propertyType) {\n if (Array.isArray(propertyType)) {\n return [...propertyType.map(copyDefaultValue)];\n }\n else {\n return propertyType;\n }\n}\n/**\n * Creates a deep copy of the specified AST node.\n * The resulting copy will only contain semantically relevant information, such as the `$type` property and AST properties.\n *\n * References are copied without resolved cross reference. The specified function is used to rebuild them.\n */\nexport function copyAstNode(node, buildReference) {\n const copy = { $type: node.$type };\n for (const [name, value] of Object.entries(node)) {\n if (!name.startsWith('$')) {\n if (isAstNode(value)) {\n copy[name] = copyAstNode(value, buildReference);\n }\n else if (isReference(value)) {\n copy[name] = buildReference(copy, name, value.$refNode, value.$refText);\n }\n else if (Array.isArray(value)) {\n const copiedArray = [];\n for (const element of value) {\n if (isAstNode(element)) {\n copiedArray.push(copyAstNode(element, buildReference));\n }\n else if (isReference(element)) {\n copiedArray.push(buildReference(copy, name, element.$refNode, element.$refText));\n }\n else {\n copiedArray.push(element);\n }\n }\n copy[name] = copiedArray;\n }\n else {\n copy[name] = value;\n }\n }\n }\n linkContentToContainer(copy);\n return copy;\n}\n//# sourceMappingURL=ast-utils.js.map","export function cc(char) {\n return char.charCodeAt(0);\n}\nexport function insertToSet(item, set) {\n if (Array.isArray(item)) {\n item.forEach(function (subItem) {\n set.push(subItem);\n });\n }\n else {\n set.push(item);\n }\n}\nexport function addFlag(flagObj, flagKey) {\n if (flagObj[flagKey] === true) {\n throw \"duplicate flag \" + flagKey;\n }\n const x = flagObj[flagKey];\n flagObj[flagKey] = true;\n}\nexport function ASSERT_EXISTS(obj) {\n // istanbul ignore next\n if (obj === undefined) {\n throw Error(\"Internal Error - Should never get here!\");\n }\n return true;\n}\n// istanbul ignore next\nexport function ASSERT_NEVER_REACH_HERE() {\n throw Error(\"Internal Error - Should never get here!\");\n}\nexport function isCharacter(obj) {\n return obj[\"type\"] === \"Character\";\n}\n//# sourceMappingURL=utils.js.map","import { cc } from \"./utils.js\";\nexport const digitsCharCodes = [];\nfor (let i = cc(\"0\"); i <= cc(\"9\"); i++) {\n digitsCharCodes.push(i);\n}\nexport const wordCharCodes = [cc(\"_\")].concat(digitsCharCodes);\nfor (let i = cc(\"a\"); i <= cc(\"z\"); i++) {\n wordCharCodes.push(i);\n}\nfor (let i = cc(\"A\"); i <= cc(\"Z\"); i++) {\n wordCharCodes.push(i);\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#character-classes\nexport const whitespaceCodes = [\n cc(\" \"),\n cc(\"\\f\"),\n cc(\"\\n\"),\n cc(\"\\r\"),\n cc(\"\\t\"),\n cc(\"\\v\"),\n cc(\"\\t\"),\n cc(\"\\u00a0\"),\n cc(\"\\u1680\"),\n cc(\"\\u2000\"),\n cc(\"\\u2001\"),\n cc(\"\\u2002\"),\n cc(\"\\u2003\"),\n cc(\"\\u2004\"),\n cc(\"\\u2005\"),\n cc(\"\\u2006\"),\n cc(\"\\u2007\"),\n cc(\"\\u2008\"),\n cc(\"\\u2009\"),\n cc(\"\\u200a\"),\n cc(\"\\u2028\"),\n cc(\"\\u2029\"),\n cc(\"\\u202f\"),\n cc(\"\\u205f\"),\n cc(\"\\u3000\"),\n cc(\"\\ufeff\"),\n];\n//# sourceMappingURL=character-classes.js.map","import { addFlag, ASSERT_EXISTS, ASSERT_NEVER_REACH_HERE, cc, insertToSet, isCharacter, } from \"./utils.js\";\nimport { digitsCharCodes, whitespaceCodes, wordCharCodes, } from \"./character-classes.js\";\n// consts and utilities\nconst hexDigitPattern = /[0-9a-fA-F]/;\nconst decimalPattern = /[0-9]/;\nconst decimalPatternNoZero = /[1-9]/;\n// https://hackernoon.com/the-madness-of-parsing-real-world-javascript-regexps-d9ee336df983\n// https://www.ecma-international.org/ecma-262/8.0/index.html#prod-Pattern\nexport class RegExpParser {\n constructor() {\n this.idx = 0;\n this.input = \"\";\n this.groupIdx = 0;\n }\n saveState() {\n return {\n idx: this.idx,\n input: this.input,\n groupIdx: this.groupIdx,\n };\n }\n restoreState(newState) {\n this.idx = newState.idx;\n this.input = newState.input;\n this.groupIdx = newState.groupIdx;\n }\n pattern(input) {\n // parser state\n this.idx = 0;\n this.input = input;\n this.groupIdx = 0;\n this.consumeChar(\"/\");\n const value = this.disjunction();\n this.consumeChar(\"/\");\n const flags = {\n type: \"Flags\",\n loc: { begin: this.idx, end: input.length },\n global: false,\n ignoreCase: false,\n multiLine: false,\n unicode: false,\n sticky: false,\n };\n while (this.isRegExpFlag()) {\n switch (this.popChar()) {\n case \"g\":\n addFlag(flags, \"global\");\n break;\n case \"i\":\n addFlag(flags, \"ignoreCase\");\n break;\n case \"m\":\n addFlag(flags, \"multiLine\");\n break;\n case \"u\":\n addFlag(flags, \"unicode\");\n break;\n case \"y\":\n addFlag(flags, \"sticky\");\n break;\n }\n }\n if (this.idx !== this.input.length) {\n throw Error(\"Redundant input: \" + this.input.substring(this.idx));\n }\n return {\n type: \"Pattern\",\n flags: flags,\n value: value,\n loc: this.loc(0),\n };\n }\n disjunction() {\n const alts = [];\n const begin = this.idx;\n alts.push(this.alternative());\n while (this.peekChar() === \"|\") {\n this.consumeChar(\"|\");\n alts.push(this.alternative());\n }\n return { type: \"Disjunction\", value: alts, loc: this.loc(begin) };\n }\n alternative() {\n const terms = [];\n const begin = this.idx;\n while (this.isTerm()) {\n terms.push(this.term());\n }\n return { type: \"Alternative\", value: terms, loc: this.loc(begin) };\n }\n term() {\n if (this.isAssertion()) {\n return this.assertion();\n }\n else {\n return this.atom();\n }\n }\n assertion() {\n const begin = this.idx;\n switch (this.popChar()) {\n case \"^\":\n return {\n type: \"StartAnchor\",\n loc: this.loc(begin),\n };\n case \"$\":\n return { type: \"EndAnchor\", loc: this.loc(begin) };\n // '\\b' or '\\B'\n case \"\\\\\":\n switch (this.popChar()) {\n case \"b\":\n return {\n type: \"WordBoundary\",\n loc: this.loc(begin),\n };\n case \"B\":\n return {\n type: \"NonWordBoundary\",\n loc: this.loc(begin),\n };\n }\n // istanbul ignore next\n throw Error(\"Invalid Assertion Escape\");\n // '(?=' or '(?!'\n case \"(\":\n this.consumeChar(\"?\");\n let type;\n switch (this.popChar()) {\n case \"=\":\n type = \"Lookahead\";\n break;\n case \"!\":\n type = \"NegativeLookahead\";\n break;\n }\n ASSERT_EXISTS(type);\n const disjunction = this.disjunction();\n this.consumeChar(\")\");\n return {\n type: type,\n value: disjunction,\n loc: this.loc(begin),\n };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n quantifier(isBacktracking = false) {\n let range = undefined;\n const begin = this.idx;\n switch (this.popChar()) {\n case \"*\":\n range = {\n atLeast: 0,\n atMost: Infinity,\n };\n break;\n case \"+\":\n range = {\n atLeast: 1,\n atMost: Infinity,\n };\n break;\n case \"?\":\n range = {\n atLeast: 0,\n atMost: 1,\n };\n break;\n case \"{\":\n const atLeast = this.integerIncludingZero();\n switch (this.popChar()) {\n case \"}\":\n range = {\n atLeast: atLeast,\n atMost: atLeast,\n };\n break;\n case \",\":\n let atMost;\n if (this.isDigit()) {\n atMost = this.integerIncludingZero();\n range = {\n atLeast: atLeast,\n atMost: atMost,\n };\n }\n else {\n range = {\n atLeast: atLeast,\n atMost: Infinity,\n };\n }\n this.consumeChar(\"}\");\n break;\n }\n // throwing exceptions from \"ASSERT_EXISTS\" during backtracking\n // causes severe performance degradations\n if (isBacktracking === true && range === undefined) {\n return undefined;\n }\n ASSERT_EXISTS(range);\n break;\n }\n // throwing exceptions from \"ASSERT_EXISTS\" during backtracking\n // causes severe performance degradations\n if (isBacktracking === true && range === undefined) {\n return undefined;\n }\n // istanbul ignore else\n if (ASSERT_EXISTS(range)) {\n if (this.peekChar(0) === \"?\") {\n this.consumeChar(\"?\");\n range.greedy = false;\n }\n else {\n range.greedy = true;\n }\n range.type = \"Quantifier\";\n range.loc = this.loc(begin);\n return range;\n }\n }\n atom() {\n let atom;\n const begin = this.idx;\n switch (this.peekChar()) {\n case \".\":\n atom = this.dotAll();\n break;\n case \"\\\\\":\n atom = this.atomEscape();\n break;\n case \"[\":\n atom = this.characterClass();\n break;\n case \"(\":\n atom = this.group();\n break;\n }\n if (atom === undefined && this.isPatternCharacter()) {\n atom = this.patternCharacter();\n }\n // istanbul ignore else\n if (ASSERT_EXISTS(atom)) {\n atom.loc = this.loc(begin);\n if (this.isQuantifier()) {\n atom.quantifier = this.quantifier();\n }\n return atom;\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n dotAll() {\n this.consumeChar(\".\");\n return {\n type: \"Set\",\n complement: true,\n value: [cc(\"\\n\"), cc(\"\\r\"), cc(\"\\u2028\"), cc(\"\\u2029\")],\n };\n }\n atomEscape() {\n this.consumeChar(\"\\\\\");\n switch (this.peekChar()) {\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n return this.decimalEscapeAtom();\n case \"d\":\n case \"D\":\n case \"s\":\n case \"S\":\n case \"w\":\n case \"W\":\n return this.characterClassEscape();\n case \"f\":\n case \"n\":\n case \"r\":\n case \"t\":\n case \"v\":\n return this.controlEscapeAtom();\n case \"c\":\n return this.controlLetterEscapeAtom();\n case \"0\":\n return this.nulCharacterAtom();\n case \"x\":\n return this.hexEscapeSequenceAtom();\n case \"u\":\n return this.regExpUnicodeEscapeSequenceAtom();\n default:\n return this.identityEscapeAtom();\n }\n }\n decimalEscapeAtom() {\n const value = this.positiveInteger();\n return { type: \"GroupBackReference\", value: value };\n }\n characterClassEscape() {\n let set;\n let complement = false;\n switch (this.popChar()) {\n case \"d\":\n set = digitsCharCodes;\n break;\n case \"D\":\n set = digitsCharCodes;\n complement = true;\n break;\n case \"s\":\n set = whitespaceCodes;\n break;\n case \"S\":\n set = whitespaceCodes;\n complement = true;\n break;\n case \"w\":\n set = wordCharCodes;\n break;\n case \"W\":\n set = wordCharCodes;\n complement = true;\n break;\n }\n // istanbul ignore else\n if (ASSERT_EXISTS(set)) {\n return { type: \"Set\", value: set, complement: complement };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n controlEscapeAtom() {\n let escapeCode;\n switch (this.popChar()) {\n case \"f\":\n escapeCode = cc(\"\\f\");\n break;\n case \"n\":\n escapeCode = cc(\"\\n\");\n break;\n case \"r\":\n escapeCode = cc(\"\\r\");\n break;\n case \"t\":\n escapeCode = cc(\"\\t\");\n break;\n case \"v\":\n escapeCode = cc(\"\\v\");\n break;\n }\n // istanbul ignore else\n if (ASSERT_EXISTS(escapeCode)) {\n return { type: \"Character\", value: escapeCode };\n }\n // istanbul ignore next\n return ASSERT_NEVER_REACH_HERE();\n }\n controlLetterEscapeAtom() {\n this.consumeChar(\"c\");\n const letter = this.popChar();\n if (/[a-zA-Z]/.test(letter) === false) {\n throw Error(\"Invalid \");\n }\n const letterCode = letter.toUpperCase().charCodeAt(0) - 64;\n return { type: \"Character\", value: letterCode };\n }\n nulCharacterAtom() {\n // TODO implement '[lookahead ∉ DecimalDigit]'\n // TODO: for the deprecated octal escape sequence\n this.consumeChar(\"0\");\n return { type: \"Character\", value: cc(\"\\0\") };\n }\n hexEscapeSequenceAtom() {\n this.consumeChar(\"x\");\n return this.parseHexDigits(2);\n }\n regExpUnicodeEscapeSequenceAtom() {\n this.consumeChar(\"u\");\n return this.parseHexDigits(4);\n }\n identityEscapeAtom() {\n // TODO: implement \"SourceCharacter but not UnicodeIDContinue\"\n // // http://unicode.org/reports/tr31/#Specific_Character_Adjustments\n const escapedChar = this.popChar();\n return { type: \"Character\", value: cc(escapedChar) };\n }\n classPatternCharacterAtom() {\n switch (this.peekChar()) {\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n // istanbul ignore next\n case \"\\\\\":\n // istanbul ignore next\n case \"]\":\n throw Error(\"TBD\");\n default:\n const nextChar = this.popChar();\n return { type: \"Character\", value: cc(nextChar) };\n }\n }\n characterClass() {\n const set = [];\n let complement = false;\n this.consumeChar(\"[\");\n if (this.peekChar(0) === \"^\") {\n this.consumeChar(\"^\");\n complement = true;\n }\n while (this.isClassAtom()) {\n const from = this.classAtom();\n const isFromSingleChar = from.type === \"Character\";\n if (isCharacter(from) && this.isRangeDash()) {\n this.consumeChar(\"-\");\n const to = this.classAtom();\n const isToSingleChar = to.type === \"Character\";\n // a range can only be used when both sides are single characters\n if (isCharacter(to)) {\n if (to.value < from.value) {\n throw Error(\"Range out of order in character class\");\n }\n set.push({ from: from.value, to: to.value });\n }\n else {\n // literal dash\n insertToSet(from.value, set);\n set.push(cc(\"-\"));\n insertToSet(to.value, set);\n }\n }\n else {\n insertToSet(from.value, set);\n }\n }\n this.consumeChar(\"]\");\n return { type: \"Set\", complement: complement, value: set };\n }\n classAtom() {\n switch (this.peekChar()) {\n // istanbul ignore next\n case \"]\":\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n throw Error(\"TBD\");\n case \"\\\\\":\n return this.classEscape();\n default:\n return this.classPatternCharacterAtom();\n }\n }\n classEscape() {\n this.consumeChar(\"\\\\\");\n switch (this.peekChar()) {\n // Matches a backspace.\n // (Not to be confused with \\b word boundary outside characterClass)\n case \"b\":\n this.consumeChar(\"b\");\n return { type: \"Character\", value: cc(\"\\u0008\") };\n case \"d\":\n case \"D\":\n case \"s\":\n case \"S\":\n case \"w\":\n case \"W\":\n return this.characterClassEscape();\n case \"f\":\n case \"n\":\n case \"r\":\n case \"t\":\n case \"v\":\n return this.controlEscapeAtom();\n case \"c\":\n return this.controlLetterEscapeAtom();\n case \"0\":\n return this.nulCharacterAtom();\n case \"x\":\n return this.hexEscapeSequenceAtom();\n case \"u\":\n return this.regExpUnicodeEscapeSequenceAtom();\n default:\n return this.identityEscapeAtom();\n }\n }\n group() {\n let capturing = true;\n this.consumeChar(\"(\");\n switch (this.peekChar(0)) {\n case \"?\":\n this.consumeChar(\"?\");\n this.consumeChar(\":\");\n capturing = false;\n break;\n default:\n this.groupIdx++;\n break;\n }\n const value = this.disjunction();\n this.consumeChar(\")\");\n const groupAst = {\n type: \"Group\",\n capturing: capturing,\n value: value,\n };\n if (capturing) {\n groupAst[\"idx\"] = this.groupIdx;\n }\n return groupAst;\n }\n positiveInteger() {\n let number = this.popChar();\n // istanbul ignore next - can't ever get here due to previous lookahead checks\n // still implementing this error checking in case this ever changes.\n if (decimalPatternNoZero.test(number) === false) {\n throw Error(\"Expecting a positive integer\");\n }\n while (decimalPattern.test(this.peekChar(0))) {\n number += this.popChar();\n }\n return parseInt(number, 10);\n }\n integerIncludingZero() {\n let number = this.popChar();\n if (decimalPattern.test(number) === false) {\n throw Error(\"Expecting an integer\");\n }\n while (decimalPattern.test(this.peekChar(0))) {\n number += this.popChar();\n }\n return parseInt(number, 10);\n }\n patternCharacter() {\n const nextChar = this.popChar();\n switch (nextChar) {\n // istanbul ignore next\n case \"\\n\":\n // istanbul ignore next\n case \"\\r\":\n // istanbul ignore next\n case \"\\u2028\":\n // istanbul ignore next\n case \"\\u2029\":\n // istanbul ignore next\n case \"^\":\n // istanbul ignore next\n case \"$\":\n // istanbul ignore next\n case \"\\\\\":\n // istanbul ignore next\n case \".\":\n // istanbul ignore next\n case \"*\":\n // istanbul ignore next\n case \"+\":\n // istanbul ignore next\n case \"?\":\n // istanbul ignore next\n case \"(\":\n // istanbul ignore next\n case \")\":\n // istanbul ignore next\n case \"[\":\n // istanbul ignore next\n case \"|\":\n // istanbul ignore next\n throw Error(\"TBD\");\n default:\n return { type: \"Character\", value: cc(nextChar) };\n }\n }\n isRegExpFlag() {\n switch (this.peekChar(0)) {\n case \"g\":\n case \"i\":\n case \"m\":\n case \"u\":\n case \"y\":\n return true;\n default:\n return false;\n }\n }\n isRangeDash() {\n return this.peekChar() === \"-\" && this.isClassAtom(1);\n }\n isDigit() {\n return decimalPattern.test(this.peekChar(0));\n }\n isClassAtom(howMuch = 0) {\n switch (this.peekChar(howMuch)) {\n case \"]\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n return false;\n default:\n return true;\n }\n }\n isTerm() {\n return this.isAtom() || this.isAssertion();\n }\n isAtom() {\n if (this.isPatternCharacter()) {\n return true;\n }\n switch (this.peekChar(0)) {\n case \".\":\n case \"\\\\\": // atomEscape\n case \"[\": // characterClass\n // TODO: isAtom must be called before isAssertion - disambiguate\n case \"(\": // group\n return true;\n default:\n return false;\n }\n }\n isAssertion() {\n switch (this.peekChar(0)) {\n case \"^\":\n case \"$\":\n return true;\n // '\\b' or '\\B'\n case \"\\\\\":\n switch (this.peekChar(1)) {\n case \"b\":\n case \"B\":\n return true;\n default:\n return false;\n }\n // '(?=' or '(?!'\n case \"(\":\n return (this.peekChar(1) === \"?\" &&\n (this.peekChar(2) === \"=\" || this.peekChar(2) === \"!\"));\n default:\n return false;\n }\n }\n isQuantifier() {\n const prevState = this.saveState();\n try {\n return this.quantifier(true) !== undefined;\n }\n catch (e) {\n return false;\n }\n finally {\n this.restoreState(prevState);\n }\n }\n isPatternCharacter() {\n switch (this.peekChar()) {\n case \"^\":\n case \"$\":\n case \"\\\\\":\n case \".\":\n case \"*\":\n case \"+\":\n case \"?\":\n case \"(\":\n case \")\":\n case \"[\":\n case \"|\":\n case \"/\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n return false;\n default:\n return true;\n }\n }\n parseHexDigits(howMany) {\n let hexString = \"\";\n for (let i = 0; i < howMany; i++) {\n const hexChar = this.popChar();\n if (hexDigitPattern.test(hexChar) === false) {\n throw Error(\"Expecting a HexDecimal digits\");\n }\n hexString += hexChar;\n }\n const charCode = parseInt(hexString, 16);\n return { type: \"Character\", value: charCode };\n }\n peekChar(howMuch = 0) {\n return this.input[this.idx + howMuch];\n }\n popChar() {\n const nextChar = this.peekChar(0);\n this.consumeChar(undefined);\n return nextChar;\n }\n consumeChar(char) {\n if (char !== undefined && this.input[this.idx] !== char) {\n throw Error(\"Expected: '\" +\n char +\n \"' but found: '\" +\n this.input[this.idx] +\n \"' at offset: \" +\n this.idx);\n }\n if (this.idx >= this.input.length) {\n throw Error(\"Unexpected end of input\");\n }\n this.idx++;\n }\n loc(begin) {\n return { begin: begin, end: this.idx };\n }\n}\n//# sourceMappingURL=regexp-parser.js.map","export class BaseRegExpVisitor {\n visitChildren(node) {\n for (const key in node) {\n const child = node[key];\n /* istanbul ignore else */\n if (node.hasOwnProperty(key)) {\n if (child.type !== undefined) {\n this.visit(child);\n }\n else if (Array.isArray(child)) {\n child.forEach((subChild) => {\n this.visit(subChild);\n }, this);\n }\n }\n }\n }\n visit(node) {\n switch (node.type) {\n case \"Pattern\":\n this.visitPattern(node);\n break;\n case \"Flags\":\n this.visitFlags(node);\n break;\n case \"Disjunction\":\n this.visitDisjunction(node);\n break;\n case \"Alternative\":\n this.visitAlternative(node);\n break;\n case \"StartAnchor\":\n this.visitStartAnchor(node);\n break;\n case \"EndAnchor\":\n this.visitEndAnchor(node);\n break;\n case \"WordBoundary\":\n this.visitWordBoundary(node);\n break;\n case \"NonWordBoundary\":\n this.visitNonWordBoundary(node);\n break;\n case \"Lookahead\":\n this.visitLookahead(node);\n break;\n case \"NegativeLookahead\":\n this.visitNegativeLookahead(node);\n break;\n case \"Character\":\n this.visitCharacter(node);\n break;\n case \"Set\":\n this.visitSet(node);\n break;\n case \"Group\":\n this.visitGroup(node);\n break;\n case \"GroupBackReference\":\n this.visitGroupBackReference(node);\n break;\n case \"Quantifier\":\n this.visitQuantifier(node);\n break;\n }\n this.visitChildren(node);\n }\n visitPattern(node) { }\n visitFlags(node) { }\n visitDisjunction(node) { }\n visitAlternative(node) { }\n // Assertion\n visitStartAnchor(node) { }\n visitEndAnchor(node) { }\n visitWordBoundary(node) { }\n visitNonWordBoundary(node) { }\n visitLookahead(node) { }\n visitNegativeLookahead(node) { }\n // atoms\n visitCharacter(node) { }\n visitSet(node) { }\n visitGroup(node) { }\n visitGroupBackReference(node) { }\n visitQuantifier(node) { }\n}\n//# sourceMappingURL=base-regexp-visitor.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { RegExpParser, BaseRegExpVisitor } from '@chevrotain/regexp-to-ast';\nexport const NEWLINE_REGEXP = /\\r?\\n/gm;\nconst regexpParser = new RegExpParser();\n/**\n * This class is in charge of heuristically identifying start/end tokens of terminals.\n *\n * The way this works is by doing the following:\n * 1. Traverse the regular expression in the \"start state\"\n * 2. Add any encountered sets/single characters to the \"start regexp\"\n * 3. Once we encounter any variable-length content (i.e. with quantifiers such as +/?/*), we enter the \"end state\"\n * 4. In the end state, any sets/single characters are added to an \"end stack\".\n * 5. If we re-encounter any variable-length content we reset the end stack\n * 6. We continue visiting the regex until the end, reseting the end stack and rebuilding it as necessary\n *\n * After traversing a regular expression the `startRegexp/endRegexp` properties allow access to the stored start/end of the terminal\n */\nclass TerminalRegExpVisitor extends BaseRegExpVisitor {\n constructor() {\n super(...arguments);\n this.isStarting = true;\n this.endRegexpStack = [];\n this.multiline = false;\n }\n get endRegex() {\n return this.endRegexpStack.join('');\n }\n reset(regex) {\n this.multiline = false;\n this.regex = regex;\n this.startRegexp = '';\n this.isStarting = true;\n this.endRegexpStack = [];\n }\n visitGroup(node) {\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n }\n }\n visitCharacter(node) {\n const char = String.fromCharCode(node.value);\n if (!this.multiline && char === '\\n') {\n this.multiline = true;\n }\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n }\n else {\n const escapedChar = escapeRegExp(char);\n this.endRegexpStack.push(escapedChar);\n if (this.isStarting) {\n this.startRegexp += escapedChar;\n }\n }\n }\n visitSet(node) {\n if (!this.multiline) {\n const set = this.regex.substring(node.loc.begin, node.loc.end);\n const regex = new RegExp(set);\n this.multiline = Boolean('\\n'.match(regex));\n }\n if (node.quantifier) {\n this.isStarting = false;\n this.endRegexpStack = [];\n }\n else {\n const set = this.regex.substring(node.loc.begin, node.loc.end);\n this.endRegexpStack.push(set);\n if (this.isStarting) {\n this.startRegexp += set;\n }\n }\n }\n visitChildren(node) {\n if (node.type === 'Group') {\n // Ignore children of groups with quantifier (+/*/?)\n // These groups are unrelated to start/end tokens of terminals\n const group = node;\n if (group.quantifier) {\n return;\n }\n }\n super.visitChildren(node);\n }\n}\nconst visitor = new TerminalRegExpVisitor();\nexport function getTerminalParts(regexp) {\n try {\n if (typeof regexp !== 'string') {\n regexp = regexp.source;\n }\n regexp = `/${regexp}/`;\n const pattern = regexpParser.pattern(regexp);\n const parts = [];\n for (const alternative of pattern.value.value) {\n visitor.reset(regexp);\n visitor.visit(alternative);\n parts.push({\n start: visitor.startRegexp,\n end: visitor.endRegex\n });\n }\n return parts;\n }\n catch (_a) {\n return [];\n }\n}\nexport function isMultilineComment(regexp) {\n try {\n if (typeof regexp === 'string') {\n regexp = new RegExp(regexp);\n }\n regexp = regexp.toString();\n visitor.reset(regexp);\n // Parsing the pattern might fail (since it's user code)\n visitor.visit(regexpParser.pattern(regexp));\n return visitor.multiline;\n }\n catch (_a) {\n return false;\n }\n}\n/**\n * A set of all characters that are considered whitespace by the '\\s' RegExp character class.\n * Taken from [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Character_classes).\n */\nexport const whitespaceCharacters = ('\\f\\n\\r\\t\\v\\u0020\\u00a0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007' +\n '\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff').split('');\nexport function isWhitespace(value) {\n const regexp = typeof value === 'string' ? new RegExp(value) : value;\n return whitespaceCharacters.some((ws) => regexp.test(ws));\n}\nexport function escapeRegExp(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nexport function getCaseInsensitivePattern(keyword) {\n return Array.prototype.map.call(keyword, letter => /\\w/.test(letter) ? `[${letter.toLowerCase()}${letter.toUpperCase()}]` : escapeRegExp(letter)).join('');\n}\n/**\n * Determines whether the given input has a partial match with the specified regex.\n * @param regex The regex to partially match against\n * @param input The input string\n * @returns Whether any match exists.\n */\nexport function partialMatches(regex, input) {\n const partial = partialRegExp(regex);\n const match = input.match(partial);\n return !!match && match[0].length > 0;\n}\n/**\n * Builds a partial regex from the input regex. A partial regex is able to match incomplete input strings. E.g.\n * a partial regex constructed from `/ab/` is able to match the string `a` without needing a following `b` character. However it won't match `b` alone.\n * @param regex The input regex to be converted.\n * @returns A partial regex constructed from the input regex.\n */\nexport function partialRegExp(regex) {\n if (typeof regex === 'string') {\n regex = new RegExp(regex);\n }\n const re = regex, source = regex.source;\n let i = 0;\n function process() {\n let result = '', tmp;\n function appendRaw(nbChars) {\n result += source.substr(i, nbChars);\n i += nbChars;\n }\n function appendOptional(nbChars) {\n result += '(?:' + source.substr(i, nbChars) + '|$)';\n i += nbChars;\n }\n while (i < source.length) {\n switch (source[i]) {\n case '\\\\':\n switch (source[i + 1]) {\n case 'c':\n appendOptional(3);\n break;\n case 'x':\n appendOptional(4);\n break;\n case 'u':\n if (re.unicode) {\n if (source[i + 2] === '{') {\n appendOptional(source.indexOf('}', i) - i + 1);\n }\n else {\n appendOptional(6);\n }\n }\n else {\n appendOptional(2);\n }\n break;\n case 'p':\n case 'P':\n if (re.unicode) {\n appendOptional(source.indexOf('}', i) - i + 1);\n }\n else {\n appendOptional(2);\n }\n break;\n case 'k':\n appendOptional(source.indexOf('>', i) - i + 1);\n break;\n default:\n appendOptional(2);\n break;\n }\n break;\n case '[':\n tmp = /\\[(?:\\\\.|.)*?\\]/g;\n tmp.lastIndex = i;\n tmp = tmp.exec(source) || [];\n appendOptional(tmp[0].length);\n break;\n case '|':\n case '^':\n case '$':\n case '*':\n case '+':\n case '?':\n appendRaw(1);\n break;\n case '{':\n tmp = /\\{\\d+,?\\d*\\}/g;\n tmp.lastIndex = i;\n tmp = tmp.exec(source);\n if (tmp) {\n appendRaw(tmp[0].length);\n }\n else {\n appendOptional(1);\n }\n break;\n case '(':\n if (source[i + 1] === '?') {\n switch (source[i + 2]) {\n case ':':\n result += '(?:';\n i += 3;\n result += process() + '|$)';\n break;\n case '=':\n result += '(?=';\n i += 3;\n result += process() + ')';\n break;\n case '!':\n tmp = i;\n i += 3;\n process();\n result += source.substr(tmp, i - tmp);\n break;\n case '<':\n switch (source[i + 3]) {\n case '=':\n case '!':\n tmp = i;\n i += 4;\n process();\n result += source.substr(tmp, i - tmp);\n break;\n default:\n appendRaw(source.indexOf('>', i) - i + 1);\n result += process() + '|$)';\n break;\n }\n break;\n }\n }\n else {\n appendRaw(1);\n result += process() + '|$)';\n }\n break;\n case ')':\n ++i;\n return result;\n default:\n appendOptional(1);\n break;\n }\n }\n return result;\n }\n return new RegExp(process(), regex.flags);\n}\n//# sourceMappingURL=regexp-utils.js.map","/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { assertUnreachable } from '../utils/errors.js';\nimport * as ast from '../languages/generated/ast.js';\nimport { isCompositeCstNode } from '../syntax-tree.js';\nimport { getContainerOfType, streamAllContents } from './ast-utils.js';\nimport { streamCst } from './cst-utils.js';\nimport { escapeRegExp, isWhitespace } from './regexp-utils.js';\n/**\n * Returns the entry rule of the given grammar, if any. If the grammar file does not contain an entry rule,\n * the result is `undefined`.\n */\nexport function getEntryRule(grammar) {\n return grammar.rules.find(e => ast.isParserRule(e) && e.entry);\n}\n/**\n * Returns all hidden terminal rules of the given grammar, if any.\n */\nexport function getHiddenRules(grammar) {\n return grammar.rules.filter((e) => ast.isTerminalRule(e) && e.hidden);\n}\n/**\n * Returns all rules that can be reached from the topmost rules of the specified grammar (entry and hidden terminal rules).\n *\n * @param grammar The grammar that contains all rules\n * @param allTerminals Whether or not to include terminals that are referenced only by other terminals\n * @returns A list of referenced parser and terminal rules. If the grammar contains no entry rule,\n * this function returns all rules of the specified grammar.\n */\nexport function getAllReachableRules(grammar, allTerminals) {\n const ruleNames = new Set();\n const entryRule = getEntryRule(grammar);\n if (!entryRule) {\n return new Set(grammar.rules);\n }\n const topMostRules = [entryRule].concat(getHiddenRules(grammar));\n for (const rule of topMostRules) {\n ruleDfs(rule, ruleNames, allTerminals);\n }\n const rules = new Set();\n for (const rule of grammar.rules) {\n if (ruleNames.has(rule.name) || (ast.isTerminalRule(rule) && rule.hidden)) {\n rules.add(rule);\n }\n }\n return rules;\n}\nfunction ruleDfs(rule, visitedSet, allTerminals) {\n visitedSet.add(rule.name);\n streamAllContents(rule).forEach(node => {\n if (ast.isRuleCall(node) || (allTerminals && ast.isTerminalRuleCall(node))) {\n const refRule = node.rule.ref;\n if (refRule && !visitedSet.has(refRule.name)) {\n ruleDfs(refRule, visitedSet, allTerminals);\n }\n }\n });\n}\n/**\n * Determines the grammar expression used to parse a cross-reference (usually a reference to a terminal rule).\n * A cross-reference can declare this expression explicitly in the form `[Type : Terminal]`, but if `Terminal`\n * is omitted, this function attempts to infer it from the name of the referenced `Type` (using `findNameAssignment`).\n *\n * Returns the grammar expression used to parse the given cross-reference, or `undefined` if it is not declared\n * and cannot be inferred.\n */\nexport function getCrossReferenceTerminal(crossRef) {\n if (crossRef.terminal) {\n return crossRef.terminal;\n }\n else if (crossRef.type.ref) {\n const nameAssigment = findNameAssignment(crossRef.type.ref);\n return nameAssigment === null || nameAssigment === void 0 ? void 0 : nameAssigment.terminal;\n }\n return undefined;\n}\n/**\n * Determines whether the given terminal rule represents a comment. This is true if the rule is marked\n * as `hidden` and it does not match white space. This means every hidden token (i.e. excluded from the AST)\n * that contains visible characters is considered a comment.\n */\nexport function isCommentTerminal(terminalRule) {\n return terminalRule.hidden && !isWhitespace(terminalRegex(terminalRule));\n}\n/**\n * Find all CST nodes within the given node that contribute to the specified property.\n *\n * @param node A CST node in which to look for property assignments. If this is undefined, the result is an empty array.\n * @param property A property name of the constructed AST node. If this is undefined, the result is an empty array.\n */\nexport function findNodesForProperty(node, property) {\n if (!node || !property) {\n return [];\n }\n return findNodesForPropertyInternal(node, property, node.astNode, true);\n}\n/**\n * Find a single CST node within the given node that contributes to the specified property.\n *\n * @param node A CST node in which to look for property assignments. If this is undefined, the result is `undefined`.\n * @param property A property name of the constructed AST node. If this is undefined, the result is `undefined`.\n * @param index If no index is specified or the index is less than zero, the first found node is returned. If the\n * specified index exceeds the number of assignments to the property, the last found node is returned. Otherwise,\n * the node with the specified index is returned.\n */\nexport function findNodeForProperty(node, property, index) {\n if (!node || !property) {\n return undefined;\n }\n const nodes = findNodesForPropertyInternal(node, property, node.astNode, true);\n if (nodes.length === 0) {\n return undefined;\n }\n if (index !== undefined) {\n index = Math.max(0, Math.min(index, nodes.length - 1));\n }\n else {\n index = 0;\n }\n return nodes[index];\n}\nfunction findNodesForPropertyInternal(node, property, element, first) {\n if (!first) {\n const nodeFeature = getContainerOfType(node.grammarSource, ast.isAssignment);\n if (nodeFeature && nodeFeature.feature === property) {\n return [node];\n }\n }\n if (isCompositeCstNode(node) && node.astNode === element) {\n return node.content.flatMap(e => findNodesForPropertyInternal(e, property, element, false));\n }\n return [];\n}\n/**\n * Find all CST nodes within the given node that correspond to the specified keyword.\n *\n * @param node A CST node in which to look for keywords. If this is undefined, the result is an empty array.\n * @param keyword A keyword as specified in the grammar.\n */\nexport function findNodesForKeyword(node, keyword) {\n if (!node) {\n return [];\n }\n return findNodesForKeywordInternal(node, keyword, node === null || node === void 0 ? void 0 : node.astNode);\n}\n/**\n * Find a single CST node within the given node that corresponds to the specified keyword.\n *\n * @param node A CST node in which to look for keywords. If this is undefined, the result is `undefined`.\n * @param keyword A keyword as specified in the grammar.\n * @param index If no index is specified or the index is less than zero, the first found node is returned. If the\n * specified index exceeds the number of keyword occurrences, the last found node is returned. Otherwise,\n * the node with the specified index is returned.\n */\nexport function findNodeForKeyword(node, keyword, index) {\n if (!node) {\n return undefined;\n }\n const nodes = findNodesForKeywordInternal(node, keyword, node === null || node === void 0 ? void 0 : node.astNode);\n if (nodes.length === 0) {\n return undefined;\n }\n if (index !== undefined) {\n index = Math.max(0, Math.min(index, nodes.length - 1));\n }\n else {\n index = 0;\n }\n return nodes[index];\n}\nexport function findNodesForKeywordInternal(node, keyword, element) {\n if (node.astNode !== element) {\n return [];\n }\n if (ast.isKeyword(node.grammarSource) && node.grammarSource.value === keyword) {\n return [node];\n }\n const treeIterator = streamCst(node).iterator();\n let result;\n const keywordNodes = [];\n do {\n result = treeIterator.next();\n if (!result.done) {\n const childNode = result.value;\n if (childNode.astNode === element) {\n if (ast.isKeyword(childNode.grammarSource) && childNode.grammarSource.value === keyword) {\n keywordNodes.push(childNode);\n }\n }\n else {\n treeIterator.prune();\n }\n }\n } while (!result.done);\n return keywordNodes;\n}\n/**\n * If the given CST node was parsed in the context of a property assignment, the respective `Assignment` grammar\n * node is returned. If no assignment is found, the result is `undefined`.\n *\n * @param cstNode A CST node for which to find a property assignment.\n */\nexport function findAssignment(cstNode) {\n var _a;\n const astNode = cstNode.astNode;\n // Only search until the ast node of the parent cst node is no longer the original ast node\n // This would make us jump to a preceding rule call, which contains only unrelated assignments\n while (astNode === ((_a = cstNode.container) === null || _a === void 0 ? void 0 : _a.astNode)) {\n const assignment = getContainerOfType(cstNode.grammarSource, ast.isAssignment);\n if (assignment) {\n return assignment;\n }\n cstNode = cstNode.container;\n }\n return undefined;\n}\n/**\n * Find an assignment to the `name` property for the given grammar type. This requires the `type` to be inferred\n * from a parser rule, and that rule must contain an assignment to the `name` property. In all other cases,\n * this function returns `undefined`.\n */\nexport function findNameAssignment(type) {\n let startNode = type;\n if (ast.isInferredType(startNode)) {\n // for inferred types, the location to start searching for the name-assignment is different\n if (ast.isAction(startNode.$container)) {\n // a type which is explicitly inferred by an action: investigate the sibbling of the Action node, i.e. start searching at the Action's parent\n startNode = startNode.$container.$container;\n }\n else if (ast.isParserRule(startNode.$container)) {\n // investigate the parser rule with the explicitly inferred type\n startNode = startNode.$container;\n }\n else {\n assertUnreachable(startNode.$container);\n }\n }\n return findNameAssignmentInternal(type, startNode, new Map());\n}\nfunction findNameAssignmentInternal(type, startNode, cache) {\n var _a;\n // the cache is only required to prevent infinite loops\n function go(node, refType) {\n let childAssignment = undefined;\n const parentAssignment = getContainerOfType(node, ast.isAssignment);\n // No parent assignment implies unassigned rule call\n if (!parentAssignment) {\n childAssignment = findNameAssignmentInternal(refType, refType, cache);\n }\n cache.set(type, childAssignment);\n return childAssignment;\n }\n if (cache.has(type)) {\n return cache.get(type);\n }\n cache.set(type, undefined);\n for (const node of streamAllContents(startNode)) {\n if (ast.isAssignment(node) && node.feature.toLowerCase() === 'name') {\n cache.set(type, node);\n return node;\n }\n else if (ast.isRuleCall(node) && ast.isParserRule(node.rule.ref)) {\n return go(node, node.rule.ref);\n }\n else if (ast.isSimpleType(node) && ((_a = node.typeRef) === null || _a === void 0 ? void 0 : _a.ref)) {\n return go(node, node.typeRef.ref);\n }\n }\n return undefined;\n}\nexport function getActionAtElement(element) {\n const parent = element.$container;\n if (ast.isGroup(parent)) {\n const elements = parent.elements;\n const index = elements.indexOf(element);\n for (let i = index - 1; i >= 0; i--) {\n const item = elements[i];\n if (ast.isAction(item)) {\n return item;\n }\n else {\n const action = streamAllContents(elements[i]).find(ast.isAction);\n if (action) {\n return action;\n }\n }\n }\n }\n if (ast.isAbstractElement(parent)) {\n return getActionAtElement(parent);\n }\n else {\n return undefined;\n }\n}\nexport function isOptionalCardinality(cardinality, element) {\n return cardinality === '?' || cardinality === '*' || (ast.isGroup(element) && Boolean(element.guardCondition));\n}\nexport function isArrayCardinality(cardinality) {\n return cardinality === '*' || cardinality === '+';\n}\nexport function isArrayOperator(operator) {\n return operator === '+=';\n}\n/**\n * Determines whether the given parser rule is a _data type rule_, meaning that it has a\n * primitive return type like `number`, `boolean`, etc.\n */\nexport function isDataTypeRule(rule) {\n return isDataTypeRuleInternal(rule, new Set());\n}\nfunction isDataTypeRuleInternal(rule, visited) {\n if (visited.has(rule)) {\n return true;\n }\n else {\n visited.add(rule);\n }\n for (const node of streamAllContents(rule)) {\n if (ast.isRuleCall(node)) {\n if (!node.rule.ref) {\n // RuleCall to unresolved rule. Don't assume `rule` is a DataType rule.\n return false;\n }\n if (ast.isParserRule(node.rule.ref) && !isDataTypeRuleInternal(node.rule.ref, visited)) {\n return false;\n }\n }\n else if (ast.isAssignment(node)) {\n return false;\n }\n else if (ast.isAction(node)) {\n return false;\n }\n }\n return Boolean(rule.definition);\n}\nexport function isDataType(type) {\n return isDataTypeInternal(type.type, new Set());\n}\nfunction isDataTypeInternal(type, visited) {\n if (visited.has(type)) {\n return true;\n }\n else {\n visited.add(type);\n }\n if (ast.isArrayType(type)) {\n return false;\n }\n else if (ast.isReferenceType(type)) {\n return false;\n }\n else if (ast.isUnionType(type)) {\n return type.types.every(e => isDataTypeInternal(e, visited));\n }\n else if (ast.isSimpleType(type)) {\n if (type.primitiveType !== undefined) {\n return true;\n }\n else if (type.stringType !== undefined) {\n return true;\n }\n else if (type.typeRef !== undefined) {\n const ref = type.typeRef.ref;\n if (ast.isType(ref)) {\n return isDataTypeInternal(ref.type, visited);\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n}\nexport function getExplicitRuleType(rule) {\n if (rule.inferredType) {\n return rule.inferredType.name;\n }\n else if (rule.dataType) {\n return rule.dataType;\n }\n else if (rule.returnType) {\n const refType = rule.returnType.ref;\n if (refType) {\n // check if we need to check Action as return type\n if (ast.isParserRule(refType)) {\n return refType.name;\n }\n else if (ast.isInterface(refType) || ast.isType(refType)) {\n return refType.name;\n }\n }\n }\n return undefined;\n}\nexport function getTypeName(type) {\n var _a;\n if (ast.isParserRule(type)) {\n return isDataTypeRule(type) ? type.name : (_a = getExplicitRuleType(type)) !== null && _a !== void 0 ? _a : type.name;\n }\n else if (ast.isInterface(type) || ast.isType(type) || ast.isReturnType(type)) {\n return type.name;\n }\n else if (ast.isAction(type)) {\n const actionType = getActionType(type);\n if (actionType) {\n return actionType;\n }\n }\n else if (ast.isInferredType(type)) {\n return type.name;\n }\n throw new Error('Cannot get name of Unknown Type');\n}\nexport function getActionType(action) {\n var _a;\n if (action.inferredType) {\n return action.inferredType.name;\n }\n else if ((_a = action.type) === null || _a === void 0 ? void 0 : _a.ref) {\n return getTypeName(action.type.ref);\n }\n return undefined; // not inferring and not referencing a valid type\n}\n/**\n * This function is used at development time (for code generation and the internal type system) to get the type of the AST node produced by the given rule.\n * For data type rules, the name of the rule is returned,\n * e.g. \"INT_value returns number: MY_INT;\" returns \"INT_value\".\n * @param rule the given rule\n * @returns the name of the AST node type of the rule\n */\nexport function getRuleTypeName(rule) {\n var _a, _b, _c;\n if (ast.isTerminalRule(rule)) {\n return (_b = (_a = rule.type) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'string';\n }\n else {\n return isDataTypeRule(rule) ? rule.name : (_c = getExplicitRuleType(rule)) !== null && _c !== void 0 ? _c : rule.name;\n }\n}\n/**\n * This function is used at runtime to get the actual type of the values produced by the given rule at runtime.\n * For data type rules, the name of the declared return type of the rule is returned (if any),\n * e.g. \"INT_value returns number: MY_INT;\" returns \"number\".\n * @param rule the given rule\n * @returns the name of the type of the produced values of the rule at runtime\n */\nexport function getRuleType(rule) {\n var _a, _b, _c;\n if (ast.isTerminalRule(rule)) {\n return (_b = (_a = rule.type) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'string';\n }\n else {\n return (_c = getExplicitRuleType(rule)) !== null && _c !== void 0 ? _c : rule.name;\n }\n}\nexport function terminalRegex(terminalRule) {\n const flags = {\n s: false,\n i: false,\n u: false\n };\n const source = abstractElementToRegex(terminalRule.definition, flags);\n const flagText = Object.entries(flags).filter(([, value]) => value).map(([name]) => name).join('');\n return new RegExp(source, flagText);\n}\n// Using [\\s\\S]* allows to match everything, compared to . which doesn't match line terminators\nconst WILDCARD = /[\\s\\S]/.source;\nfunction abstractElementToRegex(element, flags) {\n if (ast.isTerminalAlternatives(element)) {\n return terminalAlternativesToRegex(element);\n }\n else if (ast.isTerminalGroup(element)) {\n return terminalGroupToRegex(element);\n }\n else if (ast.isCharacterRange(element)) {\n return characterRangeToRegex(element);\n }\n else if (ast.isTerminalRuleCall(element)) {\n const rule = element.rule.ref;\n if (!rule) {\n throw new Error('Missing rule reference.');\n }\n return withCardinality(abstractElementToRegex(rule.definition), {\n cardinality: element.cardinality,\n lookahead: element.lookahead\n });\n }\n else if (ast.isNegatedToken(element)) {\n return negateTokenToRegex(element);\n }\n else if (ast.isUntilToken(element)) {\n return untilTokenToRegex(element);\n }\n else if (ast.isRegexToken(element)) {\n const lastSlash = element.regex.lastIndexOf('/');\n const source = element.regex.substring(1, lastSlash);\n const regexFlags = element.regex.substring(lastSlash + 1);\n if (flags) {\n flags.i = regexFlags.includes('i');\n flags.s = regexFlags.includes('s');\n flags.u = regexFlags.includes('u');\n }\n return withCardinality(source, {\n cardinality: element.cardinality,\n lookahead: element.lookahead,\n wrap: false\n });\n }\n else if (ast.isWildcard(element)) {\n return withCardinality(WILDCARD, {\n cardinality: element.cardinality,\n lookahead: element.lookahead\n });\n }\n else {\n throw new Error(`Invalid terminal element: ${element === null || element === void 0 ? void 0 : element.$type}`);\n }\n}\nfunction terminalAlternativesToRegex(alternatives) {\n return withCardinality(alternatives.elements.map(e => abstractElementToRegex(e)).join('|'), {\n cardinality: alternatives.cardinality,\n lookahead: alternatives.lookahead\n });\n}\nfunction terminalGroupToRegex(group) {\n return withCardinality(group.elements.map(e => abstractElementToRegex(e)).join(''), {\n cardinality: group.cardinality,\n lookahead: group.lookahead\n });\n}\nfunction untilTokenToRegex(until) {\n return withCardinality(`${WILDCARD}*?${abstractElementToRegex(until.terminal)}`, {\n cardinality: until.cardinality,\n lookahead: until.lookahead\n });\n}\nfunction negateTokenToRegex(negate) {\n return withCardinality(`(?!${abstractElementToRegex(negate.terminal)})${WILDCARD}*?`, {\n cardinality: negate.cardinality,\n lookahead: negate.lookahead\n });\n}\nfunction characterRangeToRegex(range) {\n if (range.right) {\n return withCardinality(`[${keywordToRegex(range.left)}-${keywordToRegex(range.right)}]`, {\n cardinality: range.cardinality,\n lookahead: range.lookahead,\n wrap: false\n });\n }\n return withCardinality(keywordToRegex(range.left), {\n cardinality: range.cardinality,\n lookahead: range.lookahead,\n wrap: false\n });\n}\nfunction keywordToRegex(keyword) {\n return escapeRegExp(keyword.value);\n}\nfunction withCardinality(regex, options) {\n var _a;\n if (options.wrap !== false || options.lookahead) {\n regex = `(${(_a = options.lookahead) !== null && _a !== void 0 ? _a : ''}${regex})`;\n }\n if (options.cardinality) {\n return `${regex}${options.cardinality}`;\n }\n return regex;\n}\n//# sourceMappingURL=grammar-utils.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { DefaultNameRegexp } from '../utils/cst-utils.js';\nimport { isCommentTerminal, terminalRegex } from '../utils/grammar-utils.js';\nimport { isMultilineComment } from '../utils/regexp-utils.js';\nimport { isTerminalRule } from './generated/ast.js';\n/**\n * Create the default grammar configuration (used by `createDefaultModule`). This can be overridden in a\n * language-specific module.\n */\nexport function createGrammarConfig(services) {\n const rules = [];\n const grammar = services.Grammar;\n for (const rule of grammar.rules) {\n if (isTerminalRule(rule) && isCommentTerminal(rule) && isMultilineComment(terminalRegex(rule))) {\n rules.push(rule.name);\n }\n }\n return {\n multilineCommentRules: rules,\n nameRegexp: DefaultNameRegexp\n };\n}\n//# sourceMappingURL=grammar-config.js.map","export function PRINT_ERROR(msg) {\n /* istanbul ignore else - can't override global.console in node.js */\n if (console && console.error) {\n console.error(`Error: ${msg}`);\n }\n}\nexport function PRINT_WARNING(msg) {\n /* istanbul ignore else - can't override global.console in node.js*/\n if (console && console.warn) {\n // TODO: modify docs accordingly\n console.warn(`Warning: ${msg}`);\n }\n}\n//# sourceMappingURL=print.js.map","export function timer(func) {\n const start = new Date().getTime();\n const val = func();\n const end = new Date().getTime();\n const total = end - start;\n return { time: total, value: val };\n}\n//# sourceMappingURL=timer.js.map","// based on: https://github.com/petkaantonov/bluebird/blob/b97c0d2d487e8c5076e8bd897e0dcd4622d31846/src/util.js#L201-L216\nexport function toFastProperties(toBecomeFast) {\n function FakeConstructor() { }\n // If our object is used as a constructor, it would receive\n FakeConstructor.prototype = toBecomeFast;\n const fakeInstance = new FakeConstructor();\n function fakeAccess() {\n return typeof fakeInstance.bar;\n }\n // help V8 understand this is a \"real\" prototype by actually using\n // the fake instance.\n fakeAccess();\n fakeAccess();\n // Always true condition to suppress the Firefox warning of unreachable\n // code after a return statement.\n if (1)\n return toBecomeFast;\n // Eval prevents optimization of this method (even though this is dead code)\n // - https://esbuild.github.io/content-types/#direct-eval\n /* istanbul ignore next */\n // tslint:disable-next-line\n (0, eval)(toBecomeFast);\n}\n//# sourceMappingURL=to-fast-properties.js.map","import { assign, forEach, isRegExp, isString, map, pickBy } from \"lodash-es\";\n// TODO: duplicated code to avoid extracting another sub-package -- how to avoid?\nfunction tokenLabel(tokType) {\n if (hasTokenLabel(tokType)) {\n return tokType.LABEL;\n }\n else {\n return tokType.name;\n }\n}\n// TODO: duplicated code to avoid extracting another sub-package -- how to avoid?\nfunction hasTokenLabel(obj) {\n return isString(obj.LABEL) && obj.LABEL !== \"\";\n}\nexport class AbstractProduction {\n get definition() {\n return this._definition;\n }\n set definition(value) {\n this._definition = value;\n }\n constructor(_definition) {\n this._definition = _definition;\n }\n accept(visitor) {\n visitor.visit(this);\n forEach(this.definition, (prod) => {\n prod.accept(visitor);\n });\n }\n}\nexport class NonTerminal extends AbstractProduction {\n constructor(options) {\n super([]);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n set definition(definition) {\n // immutable\n }\n get definition() {\n if (this.referencedRule !== undefined) {\n return this.referencedRule.definition;\n }\n return [];\n }\n accept(visitor) {\n visitor.visit(this);\n // don't visit children of a reference, we will get cyclic infinite loops if we do so\n }\n}\nexport class Rule extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.orgText = \"\";\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class Alternative extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.ignoreAmbiguities = false;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class Option extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class RepetitionMandatory extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class RepetitionMandatoryWithSeparator extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class Repetition extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class RepetitionWithSeparator extends AbstractProduction {\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class Alternation extends AbstractProduction {\n get definition() {\n return this._definition;\n }\n set definition(value) {\n this._definition = value;\n }\n constructor(options) {\n super(options.definition);\n this.idx = 1;\n this.ignoreAmbiguities = false;\n this.hasPredicates = false;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n}\nexport class Terminal {\n constructor(options) {\n this.idx = 1;\n assign(this, pickBy(options, (v) => v !== undefined));\n }\n accept(visitor) {\n visitor.visit(this);\n }\n}\nexport function serializeGrammar(topRules) {\n return map(topRules, serializeProduction);\n}\nexport function serializeProduction(node) {\n function convertDefinition(definition) {\n return map(definition, serializeProduction);\n }\n /* istanbul ignore else */\n if (node instanceof NonTerminal) {\n const serializedNonTerminal = {\n type: \"NonTerminal\",\n name: node.nonTerminalName,\n idx: node.idx,\n };\n if (isString(node.label)) {\n serializedNonTerminal.label = node.label;\n }\n return serializedNonTerminal;\n }\n else if (node instanceof Alternative) {\n return {\n type: \"Alternative\",\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof Option) {\n return {\n type: \"Option\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof RepetitionMandatory) {\n return {\n type: \"RepetitionMandatory\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof RepetitionMandatoryWithSeparator) {\n return {\n type: \"RepetitionMandatoryWithSeparator\",\n idx: node.idx,\n separator: (serializeProduction(new Terminal({ terminalType: node.separator }))),\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof RepetitionWithSeparator) {\n return {\n type: \"RepetitionWithSeparator\",\n idx: node.idx,\n separator: (serializeProduction(new Terminal({ terminalType: node.separator }))),\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof Repetition) {\n return {\n type: \"Repetition\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof Alternation) {\n return {\n type: \"Alternation\",\n idx: node.idx,\n definition: convertDefinition(node.definition),\n };\n }\n else if (node instanceof Terminal) {\n const serializedTerminal = {\n type: \"Terminal\",\n name: node.terminalType.name,\n label: tokenLabel(node.terminalType),\n idx: node.idx,\n };\n if (isString(node.label)) {\n serializedTerminal.terminalLabel = node.label;\n }\n const pattern = node.terminalType.PATTERN;\n if (node.terminalType.PATTERN) {\n serializedTerminal.pattern = isRegExp(pattern)\n ? pattern.source\n : pattern;\n }\n return serializedTerminal;\n }\n else if (node instanceof Rule) {\n return {\n type: \"Rule\",\n name: node.name,\n orgText: node.orgText,\n definition: convertDefinition(node.definition),\n };\n /* c8 ignore next 3 */\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\n//# sourceMappingURL=model.js.map","import { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from \"./model.js\";\nexport class GAstVisitor {\n visit(node) {\n const nodeAny = node;\n switch (nodeAny.constructor) {\n case NonTerminal:\n return this.visitNonTerminal(nodeAny);\n case Alternative:\n return this.visitAlternative(nodeAny);\n case Option:\n return this.visitOption(nodeAny);\n case RepetitionMandatory:\n return this.visitRepetitionMandatory(nodeAny);\n case RepetitionMandatoryWithSeparator:\n return this.visitRepetitionMandatoryWithSeparator(nodeAny);\n case RepetitionWithSeparator:\n return this.visitRepetitionWithSeparator(nodeAny);\n case Repetition:\n return this.visitRepetition(nodeAny);\n case Alternation:\n return this.visitAlternation(nodeAny);\n case Terminal:\n return this.visitTerminal(nodeAny);\n case Rule:\n return this.visitRule(nodeAny);\n /* c8 ignore next 2 */\n default:\n throw Error(\"non exhaustive match\");\n }\n }\n /* c8 ignore next */\n visitNonTerminal(node) { }\n /* c8 ignore next */\n visitAlternative(node) { }\n /* c8 ignore next */\n visitOption(node) { }\n /* c8 ignore next */\n visitRepetition(node) { }\n /* c8 ignore next */\n visitRepetitionMandatory(node) { }\n /* c8 ignore next 3 */\n visitRepetitionMandatoryWithSeparator(node) { }\n /* c8 ignore next */\n visitRepetitionWithSeparator(node) { }\n /* c8 ignore next */\n visitAlternation(node) { }\n /* c8 ignore next */\n visitTerminal(node) { }\n /* c8 ignore next */\n visitRule(node) { }\n}\n//# sourceMappingURL=visitor.js.map","import { every, includes, some } from \"lodash-es\";\nimport { AbstractProduction, Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from \"./model.js\";\nexport function isSequenceProd(prod) {\n return (prod instanceof Alternative ||\n prod instanceof Option ||\n prod instanceof Repetition ||\n prod instanceof RepetitionMandatory ||\n prod instanceof RepetitionMandatoryWithSeparator ||\n prod instanceof RepetitionWithSeparator ||\n prod instanceof Terminal ||\n prod instanceof Rule);\n}\nexport function isOptionalProd(prod, alreadyVisited = []) {\n const isDirectlyOptional = prod instanceof Option ||\n prod instanceof Repetition ||\n prod instanceof RepetitionWithSeparator;\n if (isDirectlyOptional) {\n return true;\n }\n // note that this can cause infinite loop if one optional empty TOP production has a cyclic dependency with another\n // empty optional top rule\n // may be indirectly optional ((A?B?C?) | (D?E?F?))\n if (prod instanceof Alternation) {\n // for OR its enough for just one of the alternatives to be optional\n return some(prod.definition, (subProd) => {\n return isOptionalProd(subProd, alreadyVisited);\n });\n }\n else if (prod instanceof NonTerminal && includes(alreadyVisited, prod)) {\n // avoiding stack overflow due to infinite recursion\n return false;\n }\n else if (prod instanceof AbstractProduction) {\n if (prod instanceof NonTerminal) {\n alreadyVisited.push(prod);\n }\n return every(prod.definition, (subProd) => {\n return isOptionalProd(subProd, alreadyVisited);\n });\n }\n else {\n return false;\n }\n}\nexport function isBranchingProd(prod) {\n return prod instanceof Alternation;\n}\nexport function getProductionDslName(prod) {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n return \"SUBRULE\";\n }\n else if (prod instanceof Option) {\n return \"OPTION\";\n }\n else if (prod instanceof Alternation) {\n return \"OR\";\n }\n else if (prod instanceof RepetitionMandatory) {\n return \"AT_LEAST_ONE\";\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return \"AT_LEAST_ONE_SEP\";\n }\n else if (prod instanceof RepetitionWithSeparator) {\n return \"MANY_SEP\";\n }\n else if (prod instanceof Repetition) {\n return \"MANY\";\n }\n else if (prod instanceof Terminal) {\n return \"CONSUME\";\n /* c8 ignore next 3 */\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\n//# sourceMappingURL=helpers.js.map","import { drop, forEach } from \"lodash-es\";\nimport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal, } from \"@chevrotain/gast\";\n/**\n * A Grammar Walker that computes the \"remaining\" grammar \"after\" a productions in the grammar.\n */\nexport class RestWalker {\n walk(prod, prevRest = []) {\n forEach(prod.definition, (subProd, index) => {\n const currRest = drop(prod.definition, index + 1);\n /* istanbul ignore else */\n if (subProd instanceof NonTerminal) {\n this.walkProdRef(subProd, currRest, prevRest);\n }\n else if (subProd instanceof Terminal) {\n this.walkTerminal(subProd, currRest, prevRest);\n }\n else if (subProd instanceof Alternative) {\n this.walkFlat(subProd, currRest, prevRest);\n }\n else if (subProd instanceof Option) {\n this.walkOption(subProd, currRest, prevRest);\n }\n else if (subProd instanceof RepetitionMandatory) {\n this.walkAtLeastOne(subProd, currRest, prevRest);\n }\n else if (subProd instanceof RepetitionMandatoryWithSeparator) {\n this.walkAtLeastOneSep(subProd, currRest, prevRest);\n }\n else if (subProd instanceof RepetitionWithSeparator) {\n this.walkManySep(subProd, currRest, prevRest);\n }\n else if (subProd instanceof Repetition) {\n this.walkMany(subProd, currRest, prevRest);\n }\n else if (subProd instanceof Alternation) {\n this.walkOr(subProd, currRest, prevRest);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n });\n }\n walkTerminal(terminal, currRest, prevRest) { }\n walkProdRef(refProd, currRest, prevRest) { }\n walkFlat(flatProd, currRest, prevRest) {\n // ABCDEF => after the D the rest is EF\n const fullOrRest = currRest.concat(prevRest);\n this.walk(flatProd, fullOrRest);\n }\n walkOption(optionProd, currRest, prevRest) {\n // ABC(DE)?F => after the (DE)? the rest is F\n const fullOrRest = currRest.concat(prevRest);\n this.walk(optionProd, fullOrRest);\n }\n walkAtLeastOne(atLeastOneProd, currRest, prevRest) {\n // ABC(DE)+F => after the (DE)+ the rest is (DE)?F\n const fullAtLeastOneRest = [\n new Option({ definition: atLeastOneProd.definition }),\n ].concat(currRest, prevRest);\n this.walk(atLeastOneProd, fullAtLeastOneRest);\n }\n walkAtLeastOneSep(atLeastOneSepProd, currRest, prevRest) {\n // ABC DE(,DE)* F => after the (,DE)+ the rest is (,DE)?F\n const fullAtLeastOneSepRest = restForRepetitionWithSeparator(atLeastOneSepProd, currRest, prevRest);\n this.walk(atLeastOneSepProd, fullAtLeastOneSepRest);\n }\n walkMany(manyProd, currRest, prevRest) {\n // ABC(DE)*F => after the (DE)* the rest is (DE)?F\n const fullManyRest = [\n new Option({ definition: manyProd.definition }),\n ].concat(currRest, prevRest);\n this.walk(manyProd, fullManyRest);\n }\n walkManySep(manySepProd, currRest, prevRest) {\n // ABC (DE(,DE)*)? F => after the (,DE)* the rest is (,DE)?F\n const fullManySepRest = restForRepetitionWithSeparator(manySepProd, currRest, prevRest);\n this.walk(manySepProd, fullManySepRest);\n }\n walkOr(orProd, currRest, prevRest) {\n // ABC(D|E|F)G => when finding the (D|E|F) the rest is G\n const fullOrRest = currRest.concat(prevRest);\n // walk all different alternatives\n forEach(orProd.definition, (alt) => {\n // wrapping each alternative in a single definition wrapper\n // to avoid errors in computing the rest of that alternative in the invocation to computeInProdFollows\n // (otherwise for OR([alt1,alt2]) alt2 will be considered in 'rest' of alt1\n const prodWrapper = new Alternative({ definition: [alt] });\n this.walk(prodWrapper, fullOrRest);\n });\n }\n}\nfunction restForRepetitionWithSeparator(repSepProd, currRest, prevRest) {\n const repSepRest = [\n new Option({\n definition: [\n new Terminal({ terminalType: repSepProd.separator }),\n ].concat(repSepProd.definition),\n }),\n ];\n const fullRepSepRest = repSepRest.concat(currRest, prevRest);\n return fullRepSepRest;\n}\n//# sourceMappingURL=rest.js.map","import { flatten, map, uniq } from \"lodash-es\";\nimport { isBranchingProd, isOptionalProd, isSequenceProd, NonTerminal, Terminal, } from \"@chevrotain/gast\";\nexport function first(prod) {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n // this could in theory cause infinite loops if\n // (1) prod A refs prod B.\n // (2) prod B refs prod A\n // (3) AB can match the empty set\n // in other words a cycle where everything is optional so the first will keep\n // looking ahead for the next optional part and will never exit\n // currently there is no safeguard for this unique edge case because\n // (1) not sure a grammar in which this can happen is useful for anything (productive)\n return first(prod.referencedRule);\n }\n else if (prod instanceof Terminal) {\n return firstForTerminal(prod);\n }\n else if (isSequenceProd(prod)) {\n return firstForSequence(prod);\n }\n else if (isBranchingProd(prod)) {\n return firstForBranching(prod);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nexport function firstForSequence(prod) {\n let firstSet = [];\n const seq = prod.definition;\n let nextSubProdIdx = 0;\n let hasInnerProdsRemaining = seq.length > nextSubProdIdx;\n let currSubProd;\n // so we enter the loop at least once (if the definition is not empty\n let isLastInnerProdOptional = true;\n // scan a sequence until it's end or until we have found a NONE optional production in it\n while (hasInnerProdsRemaining && isLastInnerProdOptional) {\n currSubProd = seq[nextSubProdIdx];\n isLastInnerProdOptional = isOptionalProd(currSubProd);\n firstSet = firstSet.concat(first(currSubProd));\n nextSubProdIdx = nextSubProdIdx + 1;\n hasInnerProdsRemaining = seq.length > nextSubProdIdx;\n }\n return uniq(firstSet);\n}\nexport function firstForBranching(prod) {\n const allAlternativesFirsts = map(prod.definition, (innerProd) => {\n return first(innerProd);\n });\n return uniq(flatten(allAlternativesFirsts));\n}\nexport function firstForTerminal(terminal) {\n return [terminal.terminalType];\n}\n//# sourceMappingURL=first.js.map","// TODO: can this be removed? where is it used?\nexport const IN = \"_~IN~_\";\n//# sourceMappingURL=constants.js.map","import { RestWalker } from \"./rest.js\";\nimport { first } from \"./first.js\";\nimport { assign, forEach } from \"lodash-es\";\nimport { IN } from \"../constants.js\";\nimport { Alternative } from \"@chevrotain/gast\";\n// This ResyncFollowsWalker computes all of the follows required for RESYNC\n// (skipping reference production).\nexport class ResyncFollowsWalker extends RestWalker {\n constructor(topProd) {\n super();\n this.topProd = topProd;\n this.follows = {};\n }\n startWalking() {\n this.walk(this.topProd);\n return this.follows;\n }\n walkTerminal(terminal, currRest, prevRest) {\n // do nothing! just like in the public sector after 13:00\n }\n walkProdRef(refProd, currRest, prevRest) {\n const followName = buildBetweenProdsFollowPrefix(refProd.referencedRule, refProd.idx) +\n this.topProd.name;\n const fullRest = currRest.concat(prevRest);\n const restProd = new Alternative({ definition: fullRest });\n const t_in_topProd_follows = first(restProd);\n this.follows[followName] = t_in_topProd_follows;\n }\n}\nexport function computeAllProdsFollows(topProductions) {\n const reSyncFollows = {};\n forEach(topProductions, (topProd) => {\n const currRefsFollow = new ResyncFollowsWalker(topProd).startWalking();\n assign(reSyncFollows, currRefsFollow);\n });\n return reSyncFollows;\n}\nexport function buildBetweenProdsFollowPrefix(inner, occurenceInParent) {\n return inner.name + occurenceInParent + IN;\n}\nexport function buildInProdFollowPrefix(terminal) {\n const terminalName = terminal.terminalType.name;\n return terminalName + terminal.idx + IN;\n}\n//# sourceMappingURL=follow.js.map","import { RegExpParser, } from \"@chevrotain/regexp-to-ast\";\nlet regExpAstCache = {};\nconst regExpParser = new RegExpParser();\nexport function getRegExpAst(regExp) {\n const regExpStr = regExp.toString();\n if (regExpAstCache.hasOwnProperty(regExpStr)) {\n return regExpAstCache[regExpStr];\n }\n else {\n const regExpAst = regExpParser.pattern(regExpStr);\n regExpAstCache[regExpStr] = regExpAst;\n return regExpAst;\n }\n}\nexport function clearRegExpParserCache() {\n regExpAstCache = {};\n}\n//# sourceMappingURL=reg_exp_parser.js.map","import { BaseRegExpVisitor, } from \"@chevrotain/regexp-to-ast\";\nimport { every, find, forEach, includes, isArray, values } from \"lodash-es\";\nimport { PRINT_ERROR, PRINT_WARNING } from \"@chevrotain/utils\";\nimport { getRegExpAst } from \"./reg_exp_parser.js\";\nimport { charCodeToOptimizedIndex, minOptimizationVal } from \"./lexer.js\";\nconst complementErrorMessage = \"Complement Sets are not supported for first char optimization\";\nexport const failedOptimizationPrefixMsg = 'Unable to use \"first char\" lexer optimizations:\\n';\nexport function getOptimizedStartCodesIndices(regExp, ensureOptimizations = false) {\n try {\n const ast = getRegExpAst(regExp);\n const firstChars = firstCharOptimizedIndices(ast.value, {}, ast.flags.ignoreCase);\n return firstChars;\n }\n catch (e) {\n /* istanbul ignore next */\n // Testing this relies on the regexp-to-ast library having a bug... */\n // TODO: only the else branch needs to be ignored, try to fix with newer prettier / tsc\n if (e.message === complementErrorMessage) {\n if (ensureOptimizations) {\n PRINT_WARNING(`${failedOptimizationPrefixMsg}` +\n `\\tUnable to optimize: < ${regExp.toString()} >\\n` +\n \"\\tComplement Sets cannot be automatically optimized.\\n\" +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.\");\n }\n }\n else {\n let msgSuffix = \"\";\n if (ensureOptimizations) {\n msgSuffix =\n \"\\n\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.\";\n }\n PRINT_ERROR(`${failedOptimizationPrefixMsg}\\n` +\n `\\tFailed parsing: < ${regExp.toString()} >\\n` +\n `\\tUsing the @chevrotain/regexp-to-ast library\\n` +\n \"\\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues\" +\n msgSuffix);\n }\n }\n return [];\n}\nexport function firstCharOptimizedIndices(ast, result, ignoreCase) {\n switch (ast.type) {\n case \"Disjunction\":\n for (let i = 0; i < ast.value.length; i++) {\n firstCharOptimizedIndices(ast.value[i], result, ignoreCase);\n }\n break;\n case \"Alternative\":\n const terms = ast.value;\n for (let i = 0; i < terms.length; i++) {\n const term = terms[i];\n // skip terms that cannot effect the first char results\n switch (term.type) {\n case \"EndAnchor\":\n // A group back reference cannot affect potential starting char.\n // because if a back reference is the first production than automatically\n // the group being referenced has had to come BEFORE so its codes have already been added\n case \"GroupBackReference\":\n // assertions do not affect potential starting codes\n case \"Lookahead\":\n case \"NegativeLookahead\":\n case \"StartAnchor\":\n case \"WordBoundary\":\n case \"NonWordBoundary\":\n continue;\n }\n const atom = term;\n switch (atom.type) {\n case \"Character\":\n addOptimizedIdxToResult(atom.value, result, ignoreCase);\n break;\n case \"Set\":\n if (atom.complement === true) {\n throw Error(complementErrorMessage);\n }\n forEach(atom.value, (code) => {\n if (typeof code === \"number\") {\n addOptimizedIdxToResult(code, result, ignoreCase);\n }\n else {\n // range\n const range = code;\n // cannot optimize when ignoreCase is\n if (ignoreCase === true) {\n for (let rangeCode = range.from; rangeCode <= range.to; rangeCode++) {\n addOptimizedIdxToResult(rangeCode, result, ignoreCase);\n }\n }\n // Optimization (2 orders of magnitude less work for very large ranges)\n else {\n // handle unoptimized values\n for (let rangeCode = range.from; rangeCode <= range.to && rangeCode < minOptimizationVal; rangeCode++) {\n addOptimizedIdxToResult(rangeCode, result, ignoreCase);\n }\n // Less common charCode where we optimize for faster init time, by using larger \"buckets\"\n if (range.to >= minOptimizationVal) {\n const minUnOptVal = range.from >= minOptimizationVal\n ? range.from\n : minOptimizationVal;\n const maxUnOptVal = range.to;\n const minOptIdx = charCodeToOptimizedIndex(minUnOptVal);\n const maxOptIdx = charCodeToOptimizedIndex(maxUnOptVal);\n for (let currOptIdx = minOptIdx; currOptIdx <= maxOptIdx; currOptIdx++) {\n result[currOptIdx] = currOptIdx;\n }\n }\n }\n }\n });\n break;\n case \"Group\":\n firstCharOptimizedIndices(atom.value, result, ignoreCase);\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"Non Exhaustive Match\");\n }\n // reached a mandatory production, no more **start** codes can be found on this alternative\n const isOptionalQuantifier = atom.quantifier !== undefined && atom.quantifier.atLeast === 0;\n if (\n // A group may be optional due to empty contents /(?:)/\n // or if everything inside it is optional /((a)?)/\n (atom.type === \"Group\" && isWholeOptional(atom) === false) ||\n // If this term is not a group it may only be optional if it has an optional quantifier\n (atom.type !== \"Group\" && isOptionalQuantifier === false)) {\n break;\n }\n }\n break;\n /* istanbul ignore next */\n default:\n throw Error(\"non exhaustive match!\");\n }\n // console.log(Object.keys(result).length)\n return values(result);\n}\nfunction addOptimizedIdxToResult(code, result, ignoreCase) {\n const optimizedCharIdx = charCodeToOptimizedIndex(code);\n result[optimizedCharIdx] = optimizedCharIdx;\n if (ignoreCase === true) {\n handleIgnoreCase(code, result);\n }\n}\nfunction handleIgnoreCase(code, result) {\n const char = String.fromCharCode(code);\n const upperChar = char.toUpperCase();\n /* istanbul ignore else */\n if (upperChar !== char) {\n const optimizedCharIdx = charCodeToOptimizedIndex(upperChar.charCodeAt(0));\n result[optimizedCharIdx] = optimizedCharIdx;\n }\n else {\n const lowerChar = char.toLowerCase();\n if (lowerChar !== char) {\n const optimizedCharIdx = charCodeToOptimizedIndex(lowerChar.charCodeAt(0));\n result[optimizedCharIdx] = optimizedCharIdx;\n }\n }\n}\nfunction findCode(setNode, targetCharCodes) {\n return find(setNode.value, (codeOrRange) => {\n if (typeof codeOrRange === \"number\") {\n return includes(targetCharCodes, codeOrRange);\n }\n else {\n // range\n const range = codeOrRange;\n return (find(targetCharCodes, (targetCode) => range.from <= targetCode && targetCode <= range.to) !== undefined);\n }\n });\n}\nfunction isWholeOptional(ast) {\n const quantifier = ast.quantifier;\n if (quantifier && quantifier.atLeast === 0) {\n return true;\n }\n if (!ast.value) {\n return false;\n }\n return isArray(ast.value)\n ? every(ast.value, isWholeOptional)\n : isWholeOptional(ast.value);\n}\nclass CharCodeFinder extends BaseRegExpVisitor {\n constructor(targetCharCodes) {\n super();\n this.targetCharCodes = targetCharCodes;\n this.found = false;\n }\n visitChildren(node) {\n // No need to keep looking...\n if (this.found === true) {\n return;\n }\n // switch lookaheads as they do not actually consume any characters thus\n // finding a charCode at lookahead context does not mean that regexp can actually contain it in a match.\n switch (node.type) {\n case \"Lookahead\":\n this.visitLookahead(node);\n return;\n case \"NegativeLookahead\":\n this.visitNegativeLookahead(node);\n return;\n }\n super.visitChildren(node);\n }\n visitCharacter(node) {\n if (includes(this.targetCharCodes, node.value)) {\n this.found = true;\n }\n }\n visitSet(node) {\n if (node.complement) {\n if (findCode(node, this.targetCharCodes) === undefined) {\n this.found = true;\n }\n }\n else {\n if (findCode(node, this.targetCharCodes) !== undefined) {\n this.found = true;\n }\n }\n }\n}\nexport function canMatchCharCode(charCodes, pattern) {\n if (pattern instanceof RegExp) {\n const ast = getRegExpAst(pattern);\n const charCodeFinder = new CharCodeFinder(charCodes);\n charCodeFinder.visit(ast);\n return charCodeFinder.found;\n }\n else {\n return (find(pattern, (char) => {\n return includes(charCodes, char.charCodeAt(0));\n }) !== undefined);\n }\n}\n//# sourceMappingURL=reg_exp.js.map","import { BaseRegExpVisitor } from \"@chevrotain/regexp-to-ast\";\nimport { Lexer, LexerDefinitionErrorType, } from \"./lexer_public.js\";\nimport { compact, defaults, difference, filter, find, first, flatten, forEach, has, includes, indexOf, isArray, isEmpty, isFunction, isRegExp, isString, isUndefined, keys, map, reduce, reject, values, } from \"lodash-es\";\nimport { PRINT_ERROR } from \"@chevrotain/utils\";\nimport { canMatchCharCode, failedOptimizationPrefixMsg, getOptimizedStartCodesIndices, } from \"./reg_exp.js\";\nimport { getRegExpAst } from \"./reg_exp_parser.js\";\nconst PATTERN = \"PATTERN\";\nexport const DEFAULT_MODE = \"defaultMode\";\nexport const MODES = \"modes\";\nexport let SUPPORT_STICKY = typeof new RegExp(\"(?:)\").sticky === \"boolean\";\nexport function disableSticky() {\n SUPPORT_STICKY = false;\n}\nexport function enableSticky() {\n SUPPORT_STICKY = true;\n}\nexport function analyzeTokenTypes(tokenTypes, options) {\n options = defaults(options, {\n useSticky: SUPPORT_STICKY,\n debug: false,\n safeMode: false,\n positionTracking: \"full\",\n lineTerminatorCharacters: [\"\\r\", \"\\n\"],\n tracer: (msg, action) => action(),\n });\n const tracer = options.tracer;\n tracer(\"initCharCodeToOptimizedIndexMap\", () => {\n initCharCodeToOptimizedIndexMap();\n });\n let onlyRelevantTypes;\n tracer(\"Reject Lexer.NA\", () => {\n onlyRelevantTypes = reject(tokenTypes, (currType) => {\n return currType[PATTERN] === Lexer.NA;\n });\n });\n let hasCustom = false;\n let allTransformedPatterns;\n tracer(\"Transform Patterns\", () => {\n hasCustom = false;\n allTransformedPatterns = map(onlyRelevantTypes, (currType) => {\n const currPattern = currType[PATTERN];\n /* istanbul ignore else */\n if (isRegExp(currPattern)) {\n const regExpSource = currPattern.source;\n if (regExpSource.length === 1 &&\n // only these regExp meta characters which can appear in a length one regExp\n regExpSource !== \"^\" &&\n regExpSource !== \"$\" &&\n regExpSource !== \".\" &&\n !currPattern.ignoreCase) {\n return regExpSource;\n }\n else if (regExpSource.length === 2 &&\n regExpSource[0] === \"\\\\\" &&\n // not a meta character\n !includes([\n \"d\",\n \"D\",\n \"s\",\n \"S\",\n \"t\",\n \"r\",\n \"n\",\n \"t\",\n \"0\",\n \"c\",\n \"b\",\n \"B\",\n \"f\",\n \"v\",\n \"w\",\n \"W\",\n ], regExpSource[1])) {\n // escaped meta Characters: /\\+/ /\\[/\n // or redundant escaping: /\\a/\n // without the escaping \"\\\"\n return regExpSource[1];\n }\n else {\n return options.useSticky\n ? addStickyFlag(currPattern)\n : addStartOfInput(currPattern);\n }\n }\n else if (isFunction(currPattern)) {\n hasCustom = true;\n // CustomPatternMatcherFunc - custom patterns do not require any transformations, only wrapping in a RegExp Like object\n return { exec: currPattern };\n }\n else if (typeof currPattern === \"object\") {\n hasCustom = true;\n // ICustomPattern\n return currPattern;\n }\n else if (typeof currPattern === \"string\") {\n if (currPattern.length === 1) {\n return currPattern;\n }\n else {\n const escapedRegExpString = currPattern.replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\");\n const wrappedRegExp = new RegExp(escapedRegExpString);\n return options.useSticky\n ? addStickyFlag(wrappedRegExp)\n : addStartOfInput(wrappedRegExp);\n }\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n });\n });\n let patternIdxToType;\n let patternIdxToGroup;\n let patternIdxToLongerAltIdxArr;\n let patternIdxToPushMode;\n let patternIdxToPopMode;\n tracer(\"misc mapping\", () => {\n patternIdxToType = map(onlyRelevantTypes, (currType) => currType.tokenTypeIdx);\n patternIdxToGroup = map(onlyRelevantTypes, (clazz) => {\n const groupName = clazz.GROUP;\n /* istanbul ignore next */\n if (groupName === Lexer.SKIPPED) {\n return undefined;\n }\n else if (isString(groupName)) {\n return groupName;\n }\n else if (isUndefined(groupName)) {\n return false;\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n });\n patternIdxToLongerAltIdxArr = map(onlyRelevantTypes, (clazz) => {\n const longerAltType = clazz.LONGER_ALT;\n if (longerAltType) {\n const longerAltIdxArr = isArray(longerAltType)\n ? map(longerAltType, (type) => indexOf(onlyRelevantTypes, type))\n : [indexOf(onlyRelevantTypes, longerAltType)];\n return longerAltIdxArr;\n }\n });\n patternIdxToPushMode = map(onlyRelevantTypes, (clazz) => clazz.PUSH_MODE);\n patternIdxToPopMode = map(onlyRelevantTypes, (clazz) => has(clazz, \"POP_MODE\"));\n });\n let patternIdxToCanLineTerminator;\n tracer(\"Line Terminator Handling\", () => {\n const lineTerminatorCharCodes = getCharCodes(options.lineTerminatorCharacters);\n patternIdxToCanLineTerminator = map(onlyRelevantTypes, (tokType) => false);\n if (options.positionTracking !== \"onlyOffset\") {\n patternIdxToCanLineTerminator = map(onlyRelevantTypes, (tokType) => {\n if (has(tokType, \"LINE_BREAKS\")) {\n return !!tokType.LINE_BREAKS;\n }\n else {\n return (checkLineBreaksIssues(tokType, lineTerminatorCharCodes) === false &&\n canMatchCharCode(lineTerminatorCharCodes, tokType.PATTERN));\n }\n });\n }\n });\n let patternIdxToIsCustom;\n let patternIdxToShort;\n let emptyGroups;\n let patternIdxToConfig;\n tracer(\"Misc Mapping #2\", () => {\n patternIdxToIsCustom = map(onlyRelevantTypes, isCustomPattern);\n patternIdxToShort = map(allTransformedPatterns, isShortPattern);\n emptyGroups = reduce(onlyRelevantTypes, (acc, clazz) => {\n const groupName = clazz.GROUP;\n if (isString(groupName) && !(groupName === Lexer.SKIPPED)) {\n acc[groupName] = [];\n }\n return acc;\n }, {});\n patternIdxToConfig = map(allTransformedPatterns, (x, idx) => {\n return {\n pattern: allTransformedPatterns[idx],\n longerAlt: patternIdxToLongerAltIdxArr[idx],\n canLineTerminator: patternIdxToCanLineTerminator[idx],\n isCustom: patternIdxToIsCustom[idx],\n short: patternIdxToShort[idx],\n group: patternIdxToGroup[idx],\n push: patternIdxToPushMode[idx],\n pop: patternIdxToPopMode[idx],\n tokenTypeIdx: patternIdxToType[idx],\n tokenType: onlyRelevantTypes[idx],\n };\n });\n });\n let canBeOptimized = true;\n let charCodeToPatternIdxToConfig = [];\n if (!options.safeMode) {\n tracer(\"First Char Optimization\", () => {\n charCodeToPatternIdxToConfig = reduce(onlyRelevantTypes, (result, currTokType, idx) => {\n if (typeof currTokType.PATTERN === \"string\") {\n const charCode = currTokType.PATTERN.charCodeAt(0);\n const optimizedIdx = charCodeToOptimizedIndex(charCode);\n addToMapOfArrays(result, optimizedIdx, patternIdxToConfig[idx]);\n }\n else if (isArray(currTokType.START_CHARS_HINT)) {\n let lastOptimizedIdx;\n forEach(currTokType.START_CHARS_HINT, (charOrInt) => {\n const charCode = typeof charOrInt === \"string\"\n ? charOrInt.charCodeAt(0)\n : charOrInt;\n const currOptimizedIdx = charCodeToOptimizedIndex(charCode);\n // Avoid adding the config multiple times\n /* istanbul ignore else */\n // - Difficult to check this scenario effects as it is only a performance\n // optimization that does not change correctness\n if (lastOptimizedIdx !== currOptimizedIdx) {\n lastOptimizedIdx = currOptimizedIdx;\n addToMapOfArrays(result, currOptimizedIdx, patternIdxToConfig[idx]);\n }\n });\n }\n else if (isRegExp(currTokType.PATTERN)) {\n if (currTokType.PATTERN.unicode) {\n canBeOptimized = false;\n if (options.ensureOptimizations) {\n PRINT_ERROR(`${failedOptimizationPrefixMsg}` +\n `\\tUnable to analyze < ${currTokType.PATTERN.toString()} > pattern.\\n` +\n \"\\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\\n\" +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE\");\n }\n }\n else {\n const optimizedCodes = getOptimizedStartCodesIndices(currTokType.PATTERN, options.ensureOptimizations);\n /* istanbul ignore if */\n // start code will only be empty given an empty regExp or failure of regexp-to-ast library\n // the first should be a different validation and the second cannot be tested.\n if (isEmpty(optimizedCodes)) {\n // we cannot understand what codes may start possible matches\n // The optimization correctness requires knowing start codes for ALL patterns.\n // Not actually sure this is an error, no debug message\n canBeOptimized = false;\n }\n forEach(optimizedCodes, (code) => {\n addToMapOfArrays(result, code, patternIdxToConfig[idx]);\n });\n }\n }\n else {\n if (options.ensureOptimizations) {\n PRINT_ERROR(`${failedOptimizationPrefixMsg}` +\n `\\tTokenType: <${currTokType.name}> is using a custom token pattern without providing parameter.\\n` +\n \"\\tThis will disable the lexer's first char optimizations.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE\");\n }\n canBeOptimized = false;\n }\n return result;\n }, []);\n });\n }\n return {\n emptyGroups: emptyGroups,\n patternIdxToConfig: patternIdxToConfig,\n charCodeToPatternIdxToConfig: charCodeToPatternIdxToConfig,\n hasCustom: hasCustom,\n canBeOptimized: canBeOptimized,\n };\n}\nexport function validatePatterns(tokenTypes, validModesNames) {\n let errors = [];\n const missingResult = findMissingPatterns(tokenTypes);\n errors = errors.concat(missingResult.errors);\n const invalidResult = findInvalidPatterns(missingResult.valid);\n const validTokenTypes = invalidResult.valid;\n errors = errors.concat(invalidResult.errors);\n errors = errors.concat(validateRegExpPattern(validTokenTypes));\n errors = errors.concat(findInvalidGroupType(validTokenTypes));\n errors = errors.concat(findModesThatDoNotExist(validTokenTypes, validModesNames));\n errors = errors.concat(findUnreachablePatterns(validTokenTypes));\n return errors;\n}\nfunction validateRegExpPattern(tokenTypes) {\n let errors = [];\n const withRegExpPatterns = filter(tokenTypes, (currTokType) => isRegExp(currTokType[PATTERN]));\n errors = errors.concat(findEndOfInputAnchor(withRegExpPatterns));\n errors = errors.concat(findStartOfInputAnchor(withRegExpPatterns));\n errors = errors.concat(findUnsupportedFlags(withRegExpPatterns));\n errors = errors.concat(findDuplicatePatterns(withRegExpPatterns));\n errors = errors.concat(findEmptyMatchRegExps(withRegExpPatterns));\n return errors;\n}\nexport function findMissingPatterns(tokenTypes) {\n const tokenTypesWithMissingPattern = filter(tokenTypes, (currType) => {\n return !has(currType, PATTERN);\n });\n const errors = map(tokenTypesWithMissingPattern, (currType) => {\n return {\n message: \"Token Type: ->\" +\n currType.name +\n \"<- missing static 'PATTERN' property\",\n type: LexerDefinitionErrorType.MISSING_PATTERN,\n tokenTypes: [currType],\n };\n });\n const valid = difference(tokenTypes, tokenTypesWithMissingPattern);\n return { errors, valid };\n}\nexport function findInvalidPatterns(tokenTypes) {\n const tokenTypesWithInvalidPattern = filter(tokenTypes, (currType) => {\n const pattern = currType[PATTERN];\n return (!isRegExp(pattern) &&\n !isFunction(pattern) &&\n !has(pattern, \"exec\") &&\n !isString(pattern));\n });\n const errors = map(tokenTypesWithInvalidPattern, (currType) => {\n return {\n message: \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' can only be a RegExp, a\" +\n \" Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.\",\n type: LexerDefinitionErrorType.INVALID_PATTERN,\n tokenTypes: [currType],\n };\n });\n const valid = difference(tokenTypes, tokenTypesWithInvalidPattern);\n return { errors, valid };\n}\nconst end_of_input = /[^\\\\][$]/;\nexport function findEndOfInputAnchor(tokenTypes) {\n class EndAnchorFinder extends BaseRegExpVisitor {\n constructor() {\n super(...arguments);\n this.found = false;\n }\n visitEndAnchor(node) {\n this.found = true;\n }\n }\n const invalidRegex = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN;\n try {\n const regexpAst = getRegExpAst(pattern);\n const endAnchorVisitor = new EndAnchorFinder();\n endAnchorVisitor.visit(regexpAst);\n return endAnchorVisitor.found;\n }\n catch (e) {\n // old behavior in case of runtime exceptions with regexp-to-ast.\n /* istanbul ignore next - cannot ensure an error in regexp-to-ast*/\n return end_of_input.test(pattern.source);\n }\n });\n const errors = map(invalidRegex, (currType) => {\n return {\n message: \"Unexpected RegExp Anchor Error:\\n\" +\n \"\\tToken Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' cannot contain end of input anchor '$'\\n\" +\n \"\\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.EOI_ANCHOR_FOUND,\n tokenTypes: [currType],\n };\n });\n return errors;\n}\nexport function findEmptyMatchRegExps(tokenTypes) {\n const matchesEmptyString = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN;\n return pattern.test(\"\");\n });\n const errors = map(matchesEmptyString, (currType) => {\n return {\n message: \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' must not match an empty string\",\n type: LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,\n tokenTypes: [currType],\n };\n });\n return errors;\n}\nconst start_of_input = /[^\\\\[][\\^]|^\\^/;\nexport function findStartOfInputAnchor(tokenTypes) {\n class StartAnchorFinder extends BaseRegExpVisitor {\n constructor() {\n super(...arguments);\n this.found = false;\n }\n visitStartAnchor(node) {\n this.found = true;\n }\n }\n const invalidRegex = filter(tokenTypes, (currType) => {\n const pattern = currType.PATTERN;\n try {\n const regexpAst = getRegExpAst(pattern);\n const startAnchorVisitor = new StartAnchorFinder();\n startAnchorVisitor.visit(regexpAst);\n return startAnchorVisitor.found;\n }\n catch (e) {\n // old behavior in case of runtime exceptions with regexp-to-ast.\n /* istanbul ignore next - cannot ensure an error in regexp-to-ast*/\n return start_of_input.test(pattern.source);\n }\n });\n const errors = map(invalidRegex, (currType) => {\n return {\n message: \"Unexpected RegExp Anchor Error:\\n\" +\n \"\\tToken Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' cannot contain start of input anchor '^'\\n\" +\n \"\\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.SOI_ANCHOR_FOUND,\n tokenTypes: [currType],\n };\n });\n return errors;\n}\nexport function findUnsupportedFlags(tokenTypes) {\n const invalidFlags = filter(tokenTypes, (currType) => {\n const pattern = currType[PATTERN];\n return pattern instanceof RegExp && (pattern.multiline || pattern.global);\n });\n const errors = map(invalidFlags, (currType) => {\n return {\n message: \"Token Type: ->\" +\n currType.name +\n \"<- static 'PATTERN' may NOT contain global('g') or multiline('m')\",\n type: LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,\n tokenTypes: [currType],\n };\n });\n return errors;\n}\n// This can only test for identical duplicate RegExps, not semantically equivalent ones.\nexport function findDuplicatePatterns(tokenTypes) {\n const found = [];\n let identicalPatterns = map(tokenTypes, (outerType) => {\n return reduce(tokenTypes, (result, innerType) => {\n if (outerType.PATTERN.source === innerType.PATTERN.source &&\n !includes(found, innerType) &&\n innerType.PATTERN !== Lexer.NA) {\n // this avoids duplicates in the result, each Token Type may only appear in one \"set\"\n // in essence we are creating Equivalence classes on equality relation.\n found.push(innerType);\n result.push(innerType);\n return result;\n }\n return result;\n }, []);\n });\n identicalPatterns = compact(identicalPatterns);\n const duplicatePatterns = filter(identicalPatterns, (currIdenticalSet) => {\n return currIdenticalSet.length > 1;\n });\n const errors = map(duplicatePatterns, (setOfIdentical) => {\n const tokenTypeNames = map(setOfIdentical, (currType) => {\n return currType.name;\n });\n const dupPatternSrc = first(setOfIdentical).PATTERN;\n return {\n message: `The same RegExp pattern ->${dupPatternSrc}<-` +\n `has been used in all of the following Token Types: ${tokenTypeNames.join(\", \")} <-`,\n type: LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,\n tokenTypes: setOfIdentical,\n };\n });\n return errors;\n}\nexport function findInvalidGroupType(tokenTypes) {\n const invalidTypes = filter(tokenTypes, (clazz) => {\n if (!has(clazz, \"GROUP\")) {\n return false;\n }\n const group = clazz.GROUP;\n return group !== Lexer.SKIPPED && group !== Lexer.NA && !isString(group);\n });\n const errors = map(invalidTypes, (currType) => {\n return {\n message: \"Token Type: ->\" +\n currType.name +\n \"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String\",\n type: LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,\n tokenTypes: [currType],\n };\n });\n return errors;\n}\nexport function findModesThatDoNotExist(tokenTypes, validModes) {\n const invalidModes = filter(tokenTypes, (clazz) => {\n return (clazz.PUSH_MODE !== undefined && !includes(validModes, clazz.PUSH_MODE));\n });\n const errors = map(invalidModes, (tokType) => {\n const msg = `Token Type: ->${tokType.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${tokType.PUSH_MODE}<-` +\n `which does not exist`;\n return {\n message: msg,\n type: LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,\n tokenTypes: [tokType],\n };\n });\n return errors;\n}\nexport function findUnreachablePatterns(tokenTypes) {\n const errors = [];\n const canBeTested = reduce(tokenTypes, (result, tokType, idx) => {\n const pattern = tokType.PATTERN;\n if (pattern === Lexer.NA) {\n return result;\n }\n // a more comprehensive validation for all forms of regExps would require\n // deeper regExp analysis capabilities\n if (isString(pattern)) {\n result.push({ str: pattern, idx, tokenType: tokType });\n }\n else if (isRegExp(pattern) && noMetaChar(pattern)) {\n result.push({ str: pattern.source, idx, tokenType: tokType });\n }\n return result;\n }, []);\n forEach(tokenTypes, (tokType, testIdx) => {\n forEach(canBeTested, ({ str, idx, tokenType }) => {\n if (testIdx < idx && testTokenType(str, tokType.PATTERN)) {\n const msg = `Token: ->${tokenType.name}<- can never be matched.\\n` +\n `Because it appears AFTER the Token Type ->${tokType.name}<-` +\n `in the lexer's definition.\\n` +\n `See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;\n errors.push({\n message: msg,\n type: LexerDefinitionErrorType.UNREACHABLE_PATTERN,\n tokenTypes: [tokType, tokenType],\n });\n }\n });\n });\n return errors;\n}\nfunction testTokenType(str, pattern) {\n /* istanbul ignore else */\n if (isRegExp(pattern)) {\n const regExpArray = pattern.exec(str);\n return regExpArray !== null && regExpArray.index === 0;\n }\n else if (isFunction(pattern)) {\n // maintain the API of custom patterns\n return pattern(str, 0, [], {});\n }\n else if (has(pattern, \"exec\")) {\n // maintain the API of custom patterns\n return pattern.exec(str, 0, [], {});\n }\n else if (typeof pattern === \"string\") {\n return pattern === str;\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction noMetaChar(regExp) {\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\n const metaChars = [\n \".\",\n \"\\\\\",\n \"[\",\n \"]\",\n \"|\",\n \"^\",\n \"$\",\n \"(\",\n \")\",\n \"?\",\n \"*\",\n \"+\",\n \"{\",\n ];\n return (find(metaChars, (char) => regExp.source.indexOf(char) !== -1) === undefined);\n}\nexport function addStartOfInput(pattern) {\n const flags = pattern.ignoreCase ? \"i\" : \"\";\n // always wrapping in a none capturing group preceded by '^' to make sure matching can only work on start of input.\n // duplicate/redundant start of input markers have no meaning (/^^^^A/ === /^A/)\n return new RegExp(`^(?:${pattern.source})`, flags);\n}\nexport function addStickyFlag(pattern) {\n const flags = pattern.ignoreCase ? \"iy\" : \"y\";\n // always wrapping in a none capturing group preceded by '^' to make sure matching can only work on start of input.\n // duplicate/redundant start of input markers have no meaning (/^^^^A/ === /^A/)\n return new RegExp(`${pattern.source}`, flags);\n}\nexport function performRuntimeChecks(lexerDefinition, trackLines, lineTerminatorCharacters) {\n const errors = [];\n // some run time checks to help the end users.\n if (!has(lexerDefinition, DEFAULT_MODE)) {\n errors.push({\n message: \"A MultiMode Lexer cannot be initialized without a <\" +\n DEFAULT_MODE +\n \"> property in its definition\\n\",\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE,\n });\n }\n if (!has(lexerDefinition, MODES)) {\n errors.push({\n message: \"A MultiMode Lexer cannot be initialized without a <\" +\n MODES +\n \"> property in its definition\\n\",\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY,\n });\n }\n if (has(lexerDefinition, MODES) &&\n has(lexerDefinition, DEFAULT_MODE) &&\n !has(lexerDefinition.modes, lexerDefinition.defaultMode)) {\n errors.push({\n message: `A MultiMode Lexer cannot be initialized with a ${DEFAULT_MODE}: <${lexerDefinition.defaultMode}>` +\n `which does not exist\\n`,\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST,\n });\n }\n if (has(lexerDefinition, MODES)) {\n forEach(lexerDefinition.modes, (currModeValue, currModeName) => {\n forEach(currModeValue, (currTokType, currIdx) => {\n if (isUndefined(currTokType)) {\n errors.push({\n message: `A Lexer cannot be initialized using an undefined Token Type. Mode:` +\n `<${currModeName}> at index: <${currIdx}>\\n`,\n type: LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED,\n });\n }\n else if (has(currTokType, \"LONGER_ALT\")) {\n const longerAlt = isArray(currTokType.LONGER_ALT)\n ? currTokType.LONGER_ALT\n : [currTokType.LONGER_ALT];\n forEach(longerAlt, (currLongerAlt) => {\n if (!isUndefined(currLongerAlt) &&\n !includes(currModeValue, currLongerAlt)) {\n errors.push({\n message: `A MultiMode Lexer cannot be initialized with a longer_alt <${currLongerAlt.name}> on token <${currTokType.name}> outside of mode <${currModeName}>\\n`,\n type: LexerDefinitionErrorType.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE,\n });\n }\n });\n }\n });\n });\n }\n return errors;\n}\nexport function performWarningRuntimeChecks(lexerDefinition, trackLines, lineTerminatorCharacters) {\n const warnings = [];\n let hasAnyLineBreak = false;\n const allTokenTypes = compact(flatten(values(lexerDefinition.modes)));\n const concreteTokenTypes = reject(allTokenTypes, (currType) => currType[PATTERN] === Lexer.NA);\n const terminatorCharCodes = getCharCodes(lineTerminatorCharacters);\n if (trackLines) {\n forEach(concreteTokenTypes, (tokType) => {\n const currIssue = checkLineBreaksIssues(tokType, terminatorCharCodes);\n if (currIssue !== false) {\n const message = buildLineBreakIssueMessage(tokType, currIssue);\n const warningDescriptor = {\n message,\n type: currIssue.issue,\n tokenType: tokType,\n };\n warnings.push(warningDescriptor);\n }\n else {\n // we don't want to attempt to scan if the user explicitly specified the line_breaks option.\n if (has(tokType, \"LINE_BREAKS\")) {\n if (tokType.LINE_BREAKS === true) {\n hasAnyLineBreak = true;\n }\n }\n else {\n if (canMatchCharCode(terminatorCharCodes, tokType.PATTERN)) {\n hasAnyLineBreak = true;\n }\n }\n }\n });\n }\n if (trackLines && !hasAnyLineBreak) {\n warnings.push({\n message: \"Warning: No LINE_BREAKS Found.\\n\" +\n \"\\tThis Lexer has been defined to track line and column information,\\n\" +\n \"\\tBut none of the Token Types can be identified as matching a line terminator.\\n\" +\n \"\\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \\n\" +\n \"\\tfor details.\",\n type: LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS,\n });\n }\n return warnings;\n}\nexport function cloneEmptyGroups(emptyGroups) {\n const clonedResult = {};\n const groupKeys = keys(emptyGroups);\n forEach(groupKeys, (currKey) => {\n const currGroupValue = emptyGroups[currKey];\n /* istanbul ignore else */\n if (isArray(currGroupValue)) {\n clonedResult[currKey] = [];\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n });\n return clonedResult;\n}\n// TODO: refactor to avoid duplication\nexport function isCustomPattern(tokenType) {\n const pattern = tokenType.PATTERN;\n /* istanbul ignore else */\n if (isRegExp(pattern)) {\n return false;\n }\n else if (isFunction(pattern)) {\n // CustomPatternMatcherFunc - custom patterns do not require any transformations, only wrapping in a RegExp Like object\n return true;\n }\n else if (has(pattern, \"exec\")) {\n // ICustomPattern\n return true;\n }\n else if (isString(pattern)) {\n return false;\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nexport function isShortPattern(pattern) {\n if (isString(pattern) && pattern.length === 1) {\n return pattern.charCodeAt(0);\n }\n else {\n return false;\n }\n}\n/**\n * Faster than using a RegExp for default newline detection during lexing.\n */\nexport const LineTerminatorOptimizedTester = {\n // implements /\\n|\\r\\n?/g.test\n test: function (text) {\n const len = text.length;\n for (let i = this.lastIndex; i < len; i++) {\n const c = text.charCodeAt(i);\n if (c === 10) {\n this.lastIndex = i + 1;\n return true;\n }\n else if (c === 13) {\n if (text.charCodeAt(i + 1) === 10) {\n this.lastIndex = i + 2;\n }\n else {\n this.lastIndex = i + 1;\n }\n return true;\n }\n }\n return false;\n },\n lastIndex: 0,\n};\nfunction checkLineBreaksIssues(tokType, lineTerminatorCharCodes) {\n if (has(tokType, \"LINE_BREAKS\")) {\n // if the user explicitly declared the line_breaks option we will respect their choice\n // and assume it is correct.\n return false;\n }\n else {\n /* istanbul ignore else */\n if (isRegExp(tokType.PATTERN)) {\n try {\n // TODO: why is the casting suddenly needed?\n canMatchCharCode(lineTerminatorCharCodes, tokType.PATTERN);\n }\n catch (e) {\n /* istanbul ignore next - to test this we would have to mock to throw an error */\n return {\n issue: LexerDefinitionErrorType.IDENTIFY_TERMINATOR,\n errMsg: e.message,\n };\n }\n return false;\n }\n else if (isString(tokType.PATTERN)) {\n // string literal patterns can always be analyzed to detect line terminator usage\n return false;\n }\n else if (isCustomPattern(tokType)) {\n // custom token types\n return { issue: LexerDefinitionErrorType.CUSTOM_LINE_BREAK };\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n }\n}\nexport function buildLineBreakIssueMessage(tokType, details) {\n /* istanbul ignore else */\n if (details.issue === LexerDefinitionErrorType.IDENTIFY_TERMINATOR) {\n return (\"Warning: unable to identify line terminator usage in pattern.\\n\" +\n `\\tThe problem is in the <${tokType.name}> Token Type\\n` +\n `\\t Root cause: ${details.errMsg}.\\n` +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR\");\n }\n else if (details.issue === LexerDefinitionErrorType.CUSTOM_LINE_BREAK) {\n return (\"Warning: A Custom Token Pattern should specify the option.\\n\" +\n `\\tThe problem is in the <${tokType.name}> Token Type\\n` +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK\");\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction getCharCodes(charsOrCodes) {\n const charCodes = map(charsOrCodes, (numOrString) => {\n if (isString(numOrString)) {\n return numOrString.charCodeAt(0);\n }\n else {\n return numOrString;\n }\n });\n return charCodes;\n}\nfunction addToMapOfArrays(map, key, value) {\n if (map[key] === undefined) {\n map[key] = [value];\n }\n else {\n map[key].push(value);\n }\n}\nexport const minOptimizationVal = 256;\n/**\n * We are mapping charCode above ASCI (256) into buckets each in the size of 256.\n * This is because ASCI are the most common start chars so each one of those will get its own\n * possible token configs vector.\n *\n * Tokens starting with charCodes \"above\" ASCI are uncommon, so we can \"afford\"\n * to place these into buckets of possible token configs, What we gain from\n * this is avoiding the case of creating an optimization 'charCodeToPatternIdxToConfig'\n * which would contain 10,000+ arrays of small size (e.g unicode Identifiers scenario).\n * Our 'charCodeToPatternIdxToConfig' max size will now be:\n * 256 + (2^16 / 2^8) - 1 === 511\n *\n * note the hack for fast division integer part extraction\n * See: https://stackoverflow.com/a/4228528\n */\nlet charCodeToOptimizedIdxMap = [];\nexport function charCodeToOptimizedIndex(charCode) {\n return charCode < minOptimizationVal\n ? charCode\n : charCodeToOptimizedIdxMap[charCode];\n}\n/**\n * This is a compromise between cold start / hot running performance\n * Creating this array takes ~3ms on a modern machine,\n * But if we perform the computation at runtime as needed the CSS Lexer benchmark\n * performance degrades by ~10%\n *\n * TODO: Perhaps it should be lazy initialized only if a charCode > 255 is used.\n */\nfunction initCharCodeToOptimizedIndexMap() {\n if (isEmpty(charCodeToOptimizedIdxMap)) {\n charCodeToOptimizedIdxMap = new Array(65536);\n for (let i = 0; i < 65536; i++) {\n charCodeToOptimizedIdxMap[i] = i > 255 ? 255 + ~~(i / 255) : i;\n }\n }\n}\n//# sourceMappingURL=lexer.js.map","import { clone, compact, difference, flatten, forEach, has, includes, isArray, isEmpty, map, } from \"lodash-es\";\nexport function tokenStructuredMatcher(tokInstance, tokConstructor) {\n const instanceType = tokInstance.tokenTypeIdx;\n if (instanceType === tokConstructor.tokenTypeIdx) {\n return true;\n }\n else {\n return (tokConstructor.isParent === true &&\n tokConstructor.categoryMatchesMap[instanceType] === true);\n }\n}\n// Optimized tokenMatcher in case our grammar does not use token categories\n// Being so tiny it is much more likely to be in-lined and this avoid the function call overhead\nexport function tokenStructuredMatcherNoCategories(token, tokType) {\n return token.tokenTypeIdx === tokType.tokenTypeIdx;\n}\nexport let tokenShortNameIdx = 1;\nexport const tokenIdxToClass = {};\nexport function augmentTokenTypes(tokenTypes) {\n // collect the parent Token Types as well.\n const tokenTypesAndParents = expandCategories(tokenTypes);\n // add required tokenType and categoryMatches properties\n assignTokenDefaultProps(tokenTypesAndParents);\n // fill up the categoryMatches\n assignCategoriesMapProp(tokenTypesAndParents);\n assignCategoriesTokensProp(tokenTypesAndParents);\n forEach(tokenTypesAndParents, (tokType) => {\n tokType.isParent = tokType.categoryMatches.length > 0;\n });\n}\nexport function expandCategories(tokenTypes) {\n let result = clone(tokenTypes);\n let categories = tokenTypes;\n let searching = true;\n while (searching) {\n categories = compact(flatten(map(categories, (currTokType) => currTokType.CATEGORIES)));\n const newCategories = difference(categories, result);\n result = result.concat(newCategories);\n if (isEmpty(newCategories)) {\n searching = false;\n }\n else {\n categories = newCategories;\n }\n }\n return result;\n}\nexport function assignTokenDefaultProps(tokenTypes) {\n forEach(tokenTypes, (currTokType) => {\n if (!hasShortKeyProperty(currTokType)) {\n tokenIdxToClass[tokenShortNameIdx] = currTokType;\n currTokType.tokenTypeIdx = tokenShortNameIdx++;\n }\n // CATEGORIES? : TokenType | TokenType[]\n if (hasCategoriesProperty(currTokType) &&\n !isArray(currTokType.CATEGORIES)\n // &&\n // !isUndefined(currTokType.CATEGORIES.PATTERN)\n ) {\n currTokType.CATEGORIES = [currTokType.CATEGORIES];\n }\n if (!hasCategoriesProperty(currTokType)) {\n currTokType.CATEGORIES = [];\n }\n if (!hasExtendingTokensTypesProperty(currTokType)) {\n currTokType.categoryMatches = [];\n }\n if (!hasExtendingTokensTypesMapProperty(currTokType)) {\n currTokType.categoryMatchesMap = {};\n }\n });\n}\nexport function assignCategoriesTokensProp(tokenTypes) {\n forEach(tokenTypes, (currTokType) => {\n // avoid duplications\n currTokType.categoryMatches = [];\n forEach(currTokType.categoryMatchesMap, (val, key) => {\n currTokType.categoryMatches.push(tokenIdxToClass[key].tokenTypeIdx);\n });\n });\n}\nexport function assignCategoriesMapProp(tokenTypes) {\n forEach(tokenTypes, (currTokType) => {\n singleAssignCategoriesToksMap([], currTokType);\n });\n}\nexport function singleAssignCategoriesToksMap(path, nextNode) {\n forEach(path, (pathNode) => {\n nextNode.categoryMatchesMap[pathNode.tokenTypeIdx] = true;\n });\n forEach(nextNode.CATEGORIES, (nextCategory) => {\n const newPath = path.concat(nextNode);\n // avoids infinite loops due to cyclic categories.\n if (!includes(newPath, nextCategory)) {\n singleAssignCategoriesToksMap(newPath, nextCategory);\n }\n });\n}\nexport function hasShortKeyProperty(tokType) {\n return has(tokType, \"tokenTypeIdx\");\n}\nexport function hasCategoriesProperty(tokType) {\n return has(tokType, \"CATEGORIES\");\n}\nexport function hasExtendingTokensTypesProperty(tokType) {\n return has(tokType, \"categoryMatches\");\n}\nexport function hasExtendingTokensTypesMapProperty(tokType) {\n return has(tokType, \"categoryMatchesMap\");\n}\nexport function isTokenType(tokType) {\n return has(tokType, \"tokenTypeIdx\");\n}\n//# sourceMappingURL=tokens.js.map","export const defaultLexerErrorProvider = {\n buildUnableToPopLexerModeMessage(token) {\n return `Unable to pop Lexer Mode after encountering Token ->${token.image}<- The Mode Stack is empty`;\n },\n buildUnexpectedCharactersMessage(fullText, startOffset, length, line, column) {\n return (`unexpected character: ->${fullText.charAt(startOffset)}<- at offset: ${startOffset},` + ` skipped ${length} characters.`);\n },\n};\n//# sourceMappingURL=lexer_errors_public.js.map","import { analyzeTokenTypes, charCodeToOptimizedIndex, cloneEmptyGroups, DEFAULT_MODE, LineTerminatorOptimizedTester, performRuntimeChecks, performWarningRuntimeChecks, SUPPORT_STICKY, validatePatterns, } from \"./lexer.js\";\nimport { assign, clone, forEach, identity, isArray, isEmpty, isUndefined, keys, last, map, noop, reduce, reject, } from \"lodash-es\";\nimport { PRINT_WARNING, timer, toFastProperties } from \"@chevrotain/utils\";\nimport { augmentTokenTypes } from \"./tokens.js\";\nimport { defaultLexerErrorProvider } from \"./lexer_errors_public.js\";\nimport { clearRegExpParserCache } from \"./reg_exp_parser.js\";\nexport var LexerDefinitionErrorType;\n(function (LexerDefinitionErrorType) {\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"MISSING_PATTERN\"] = 0] = \"MISSING_PATTERN\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"INVALID_PATTERN\"] = 1] = \"INVALID_PATTERN\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"EOI_ANCHOR_FOUND\"] = 2] = \"EOI_ANCHOR_FOUND\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"UNSUPPORTED_FLAGS_FOUND\"] = 3] = \"UNSUPPORTED_FLAGS_FOUND\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"DUPLICATE_PATTERNS_FOUND\"] = 4] = \"DUPLICATE_PATTERNS_FOUND\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"INVALID_GROUP_TYPE_FOUND\"] = 5] = \"INVALID_GROUP_TYPE_FOUND\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"PUSH_MODE_DOES_NOT_EXIST\"] = 6] = \"PUSH_MODE_DOES_NOT_EXIST\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE\"] = 7] = \"MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY\"] = 8] = \"MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST\"] = 9] = \"MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED\"] = 10] = \"LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"SOI_ANCHOR_FOUND\"] = 11] = \"SOI_ANCHOR_FOUND\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"EMPTY_MATCH_PATTERN\"] = 12] = \"EMPTY_MATCH_PATTERN\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"NO_LINE_BREAKS_FLAGS\"] = 13] = \"NO_LINE_BREAKS_FLAGS\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"UNREACHABLE_PATTERN\"] = 14] = \"UNREACHABLE_PATTERN\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"IDENTIFY_TERMINATOR\"] = 15] = \"IDENTIFY_TERMINATOR\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"CUSTOM_LINE_BREAK\"] = 16] = \"CUSTOM_LINE_BREAK\";\n LexerDefinitionErrorType[LexerDefinitionErrorType[\"MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE\"] = 17] = \"MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE\";\n})(LexerDefinitionErrorType || (LexerDefinitionErrorType = {}));\nconst DEFAULT_LEXER_CONFIG = {\n deferDefinitionErrorsHandling: false,\n positionTracking: \"full\",\n lineTerminatorsPattern: /\\n|\\r\\n?/g,\n lineTerminatorCharacters: [\"\\n\", \"\\r\"],\n ensureOptimizations: false,\n safeMode: false,\n errorMessageProvider: defaultLexerErrorProvider,\n traceInitPerf: false,\n skipValidations: false,\n recoveryEnabled: true,\n};\nObject.freeze(DEFAULT_LEXER_CONFIG);\nexport class Lexer {\n constructor(lexerDefinition, config = DEFAULT_LEXER_CONFIG) {\n this.lexerDefinition = lexerDefinition;\n this.lexerDefinitionErrors = [];\n this.lexerDefinitionWarning = [];\n this.patternIdxToConfig = {};\n this.charCodeToPatternIdxToConfig = {};\n this.modes = [];\n this.emptyGroups = {};\n this.trackStartLines = true;\n this.trackEndLines = true;\n this.hasCustom = false;\n this.canModeBeOptimized = {};\n // Duplicated from the parser's perf trace trait to allow future extraction\n // of the lexer to a separate package.\n this.TRACE_INIT = (phaseDesc, phaseImpl) => {\n // No need to optimize this using NOOP pattern because\n // It is not called in a hot spot...\n if (this.traceInitPerf === true) {\n this.traceInitIndent++;\n const indent = new Array(this.traceInitIndent + 1).join(\"\\t\");\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n console.log(`${indent}--> <${phaseDesc}>`);\n }\n const { time, value } = timer(phaseImpl);\n /* istanbul ignore next - Difficult to reproduce specific performance behavior (>10ms) in tests */\n const traceMethod = time > 10 ? console.warn : console.log;\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n traceMethod(`${indent}<-- <${phaseDesc}> time: ${time}ms`);\n }\n this.traceInitIndent--;\n return value;\n }\n else {\n return phaseImpl();\n }\n };\n if (typeof config === \"boolean\") {\n throw Error(\"The second argument to the Lexer constructor is now an ILexerConfig Object.\\n\" +\n \"a boolean 2nd argument is no longer supported\");\n }\n // todo: defaults func?\n this.config = assign({}, DEFAULT_LEXER_CONFIG, config);\n const traceInitVal = this.config.traceInitPerf;\n if (traceInitVal === true) {\n this.traceInitMaxIdent = Infinity;\n this.traceInitPerf = true;\n }\n else if (typeof traceInitVal === \"number\") {\n this.traceInitMaxIdent = traceInitVal;\n this.traceInitPerf = true;\n }\n this.traceInitIndent = -1;\n this.TRACE_INIT(\"Lexer Constructor\", () => {\n let actualDefinition;\n let hasOnlySingleMode = true;\n this.TRACE_INIT(\"Lexer Config handling\", () => {\n if (this.config.lineTerminatorsPattern ===\n DEFAULT_LEXER_CONFIG.lineTerminatorsPattern) {\n // optimized built-in implementation for the defaults definition of lineTerminators\n this.config.lineTerminatorsPattern = LineTerminatorOptimizedTester;\n }\n else {\n if (this.config.lineTerminatorCharacters ===\n DEFAULT_LEXER_CONFIG.lineTerminatorCharacters) {\n throw Error(\"Error: Missing property on the Lexer config.\\n\" +\n \"\\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS\");\n }\n }\n if (config.safeMode && config.ensureOptimizations) {\n throw Error('\"safeMode\" and \"ensureOptimizations\" flags are mutually exclusive.');\n }\n this.trackStartLines = /full|onlyStart/i.test(this.config.positionTracking);\n this.trackEndLines = /full/i.test(this.config.positionTracking);\n // Convert SingleModeLexerDefinition into a IMultiModeLexerDefinition.\n if (isArray(lexerDefinition)) {\n actualDefinition = {\n modes: { defaultMode: clone(lexerDefinition) },\n defaultMode: DEFAULT_MODE,\n };\n }\n else {\n // no conversion needed, input should already be a IMultiModeLexerDefinition\n hasOnlySingleMode = false;\n actualDefinition = clone(lexerDefinition);\n }\n });\n if (this.config.skipValidations === false) {\n this.TRACE_INIT(\"performRuntimeChecks\", () => {\n this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(performRuntimeChecks(actualDefinition, this.trackStartLines, this.config.lineTerminatorCharacters));\n });\n this.TRACE_INIT(\"performWarningRuntimeChecks\", () => {\n this.lexerDefinitionWarning = this.lexerDefinitionWarning.concat(performWarningRuntimeChecks(actualDefinition, this.trackStartLines, this.config.lineTerminatorCharacters));\n });\n }\n // for extra robustness to avoid throwing an none informative error message\n actualDefinition.modes = actualDefinition.modes\n ? actualDefinition.modes\n : {};\n // an error of undefined TokenTypes will be detected in \"performRuntimeChecks\" above.\n // this transformation is to increase robustness in the case of partially invalid lexer definition.\n forEach(actualDefinition.modes, (currModeValue, currModeName) => {\n actualDefinition.modes[currModeName] = reject(currModeValue, (currTokType) => isUndefined(currTokType));\n });\n const allModeNames = keys(actualDefinition.modes);\n forEach(actualDefinition.modes, (currModDef, currModName) => {\n this.TRACE_INIT(`Mode: <${currModName}> processing`, () => {\n this.modes.push(currModName);\n if (this.config.skipValidations === false) {\n this.TRACE_INIT(`validatePatterns`, () => {\n this.lexerDefinitionErrors = this.lexerDefinitionErrors.concat(validatePatterns(currModDef, allModeNames));\n });\n }\n // If definition errors were encountered, the analysis phase may fail unexpectedly/\n // Considering a lexer with definition errors may never be used, there is no point\n // to performing the analysis anyhow...\n if (isEmpty(this.lexerDefinitionErrors)) {\n augmentTokenTypes(currModDef);\n let currAnalyzeResult;\n this.TRACE_INIT(`analyzeTokenTypes`, () => {\n currAnalyzeResult = analyzeTokenTypes(currModDef, {\n lineTerminatorCharacters: this.config.lineTerminatorCharacters,\n positionTracking: config.positionTracking,\n ensureOptimizations: config.ensureOptimizations,\n safeMode: config.safeMode,\n tracer: this.TRACE_INIT,\n });\n });\n this.patternIdxToConfig[currModName] =\n currAnalyzeResult.patternIdxToConfig;\n this.charCodeToPatternIdxToConfig[currModName] =\n currAnalyzeResult.charCodeToPatternIdxToConfig;\n this.emptyGroups = assign({}, this.emptyGroups, currAnalyzeResult.emptyGroups);\n this.hasCustom = currAnalyzeResult.hasCustom || this.hasCustom;\n this.canModeBeOptimized[currModName] =\n currAnalyzeResult.canBeOptimized;\n }\n });\n });\n this.defaultMode = actualDefinition.defaultMode;\n if (!isEmpty(this.lexerDefinitionErrors) &&\n !this.config.deferDefinitionErrorsHandling) {\n const allErrMessages = map(this.lexerDefinitionErrors, (error) => {\n return error.message;\n });\n const allErrMessagesString = allErrMessages.join(\"-----------------------\\n\");\n throw new Error(\"Errors detected in definition of Lexer:\\n\" + allErrMessagesString);\n }\n // Only print warning if there are no errors, This will avoid pl\n forEach(this.lexerDefinitionWarning, (warningDescriptor) => {\n PRINT_WARNING(warningDescriptor.message);\n });\n this.TRACE_INIT(\"Choosing sub-methods implementations\", () => {\n // Choose the relevant internal implementations for this specific parser.\n // These implementations should be in-lined by the JavaScript engine\n // to provide optimal performance in each scenario.\n if (SUPPORT_STICKY) {\n this.chopInput = identity;\n this.match = this.matchWithTest;\n }\n else {\n this.updateLastIndex = noop;\n this.match = this.matchWithExec;\n }\n if (hasOnlySingleMode) {\n this.handleModes = noop;\n }\n if (this.trackStartLines === false) {\n this.computeNewColumn = identity;\n }\n if (this.trackEndLines === false) {\n this.updateTokenEndLineColumnLocation = noop;\n }\n if (/full/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createFullToken;\n }\n else if (/onlyStart/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createStartOnlyToken;\n }\n else if (/onlyOffset/i.test(this.config.positionTracking)) {\n this.createTokenInstance = this.createOffsetOnlyToken;\n }\n else {\n throw Error(`Invalid config option: \"${this.config.positionTracking}\"`);\n }\n if (this.hasCustom) {\n this.addToken = this.addTokenUsingPush;\n this.handlePayload = this.handlePayloadWithCustom;\n }\n else {\n this.addToken = this.addTokenUsingMemberAccess;\n this.handlePayload = this.handlePayloadNoCustom;\n }\n });\n this.TRACE_INIT(\"Failed Optimization Warnings\", () => {\n const unOptimizedModes = reduce(this.canModeBeOptimized, (cannotBeOptimized, canBeOptimized, modeName) => {\n if (canBeOptimized === false) {\n cannotBeOptimized.push(modeName);\n }\n return cannotBeOptimized;\n }, []);\n if (config.ensureOptimizations && !isEmpty(unOptimizedModes)) {\n throw Error(`Lexer Modes: < ${unOptimizedModes.join(\", \")} > cannot be optimized.\\n` +\n '\\t Disable the \"ensureOptimizations\" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\\n' +\n \"\\t Or inspect the console log for details on how to resolve these issues.\");\n }\n });\n this.TRACE_INIT(\"clearRegExpParserCache\", () => {\n clearRegExpParserCache();\n });\n this.TRACE_INIT(\"toFastProperties\", () => {\n toFastProperties(this);\n });\n });\n }\n tokenize(text, initialMode = this.defaultMode) {\n if (!isEmpty(this.lexerDefinitionErrors)) {\n const allErrMessages = map(this.lexerDefinitionErrors, (error) => {\n return error.message;\n });\n const allErrMessagesString = allErrMessages.join(\"-----------------------\\n\");\n throw new Error(\"Unable to Tokenize because Errors detected in definition of Lexer:\\n\" +\n allErrMessagesString);\n }\n return this.tokenizeInternal(text, initialMode);\n }\n // There is quite a bit of duplication between this and \"tokenizeInternalLazy\"\n // This is intentional due to performance considerations.\n // this method also used quite a bit of `!` none null assertions because it is too optimized\n // for `tsc` to always understand it is \"safe\"\n tokenizeInternal(text, initialMode) {\n let i, j, k, matchAltImage, longerAlt, matchedImage, payload, altPayload, imageLength, group, tokType, newToken, errLength, droppedChar, msg, match;\n const orgText = text;\n const orgLength = orgText.length;\n let offset = 0;\n let matchedTokensIndex = 0;\n // initializing the tokensArray to the \"guessed\" size.\n // guessing too little will still reduce the number of array re-sizes on pushes.\n // guessing too large (Tested by guessing x4 too large) may cost a bit more of memory\n // but would still have a faster runtime by avoiding (All but one) array resizing.\n const guessedNumberOfTokens = this.hasCustom\n ? 0 // will break custom token pattern APIs the matchedTokens array will contain undefined elements.\n : Math.floor(text.length / 10);\n const matchedTokens = new Array(guessedNumberOfTokens);\n const errors = [];\n let line = this.trackStartLines ? 1 : undefined;\n let column = this.trackStartLines ? 1 : undefined;\n const groups = cloneEmptyGroups(this.emptyGroups);\n const trackLines = this.trackStartLines;\n const lineTerminatorPattern = this.config.lineTerminatorsPattern;\n let currModePatternsLength = 0;\n let patternIdxToConfig = [];\n let currCharCodeToPatternIdxToConfig = [];\n const modeStack = [];\n const emptyArray = [];\n Object.freeze(emptyArray);\n let getPossiblePatterns;\n function getPossiblePatternsSlow() {\n return patternIdxToConfig;\n }\n function getPossiblePatternsOptimized(charCode) {\n const optimizedCharIdx = charCodeToOptimizedIndex(charCode);\n const possiblePatterns = currCharCodeToPatternIdxToConfig[optimizedCharIdx];\n if (possiblePatterns === undefined) {\n return emptyArray;\n }\n else {\n return possiblePatterns;\n }\n }\n const pop_mode = (popToken) => {\n // TODO: perhaps avoid this error in the edge case there is no more input?\n if (modeStack.length === 1 &&\n // if we have both a POP_MODE and a PUSH_MODE this is in-fact a \"transition\"\n // So no error should occur.\n popToken.tokenType.PUSH_MODE === undefined) {\n // if we try to pop the last mode there lexer will no longer have ANY mode.\n // thus the pop is ignored, an error will be created and the lexer will continue parsing in the previous mode.\n const msg = this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(popToken);\n errors.push({\n offset: popToken.startOffset,\n line: popToken.startLine,\n column: popToken.startColumn,\n length: popToken.image.length,\n message: msg,\n });\n }\n else {\n modeStack.pop();\n const newMode = last(modeStack);\n patternIdxToConfig = this.patternIdxToConfig[newMode];\n currCharCodeToPatternIdxToConfig =\n this.charCodeToPatternIdxToConfig[newMode];\n currModePatternsLength = patternIdxToConfig.length;\n const modeCanBeOptimized = this.canModeBeOptimized[newMode] && this.config.safeMode === false;\n if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {\n getPossiblePatterns = getPossiblePatternsOptimized;\n }\n else {\n getPossiblePatterns = getPossiblePatternsSlow;\n }\n }\n };\n function push_mode(newMode) {\n modeStack.push(newMode);\n currCharCodeToPatternIdxToConfig =\n this.charCodeToPatternIdxToConfig[newMode];\n patternIdxToConfig = this.patternIdxToConfig[newMode];\n currModePatternsLength = patternIdxToConfig.length;\n currModePatternsLength = patternIdxToConfig.length;\n const modeCanBeOptimized = this.canModeBeOptimized[newMode] && this.config.safeMode === false;\n if (currCharCodeToPatternIdxToConfig && modeCanBeOptimized) {\n getPossiblePatterns = getPossiblePatternsOptimized;\n }\n else {\n getPossiblePatterns = getPossiblePatternsSlow;\n }\n }\n // this pattern seems to avoid a V8 de-optimization, although that de-optimization does not\n // seem to matter performance wise.\n push_mode.call(this, initialMode);\n let currConfig;\n const recoveryEnabled = this.config.recoveryEnabled;\n while (offset < orgLength) {\n matchedImage = null;\n const nextCharCode = orgText.charCodeAt(offset);\n const chosenPatternIdxToConfig = getPossiblePatterns(nextCharCode);\n const chosenPatternsLength = chosenPatternIdxToConfig.length;\n for (i = 0; i < chosenPatternsLength; i++) {\n currConfig = chosenPatternIdxToConfig[i];\n const currPattern = currConfig.pattern;\n payload = null;\n // manually in-lined because > 600 chars won't be in-lined in V8\n const singleCharCode = currConfig.short;\n if (singleCharCode !== false) {\n if (nextCharCode === singleCharCode) {\n // single character string\n matchedImage = currPattern;\n }\n }\n else if (currConfig.isCustom === true) {\n match = currPattern.exec(orgText, offset, matchedTokens, groups);\n if (match !== null) {\n matchedImage = match[0];\n if (match.payload !== undefined) {\n payload = match.payload;\n }\n }\n else {\n matchedImage = null;\n }\n }\n else {\n this.updateLastIndex(currPattern, offset);\n matchedImage = this.match(currPattern, text, offset);\n }\n if (matchedImage !== null) {\n // even though this pattern matched we must try a another longer alternative.\n // this can be used to prioritize keywords over identifiers\n longerAlt = currConfig.longerAlt;\n if (longerAlt !== undefined) {\n // TODO: micro optimize, avoid extra prop access\n // by saving/linking longerAlt on the original config?\n const longerAltLength = longerAlt.length;\n for (k = 0; k < longerAltLength; k++) {\n const longerAltConfig = patternIdxToConfig[longerAlt[k]];\n const longerAltPattern = longerAltConfig.pattern;\n altPayload = null;\n // single Char can never be a longer alt so no need to test it.\n // manually in-lined because > 600 chars won't be in-lined in V8\n if (longerAltConfig.isCustom === true) {\n match = longerAltPattern.exec(orgText, offset, matchedTokens, groups);\n if (match !== null) {\n matchAltImage = match[0];\n if (match.payload !== undefined) {\n altPayload = match.payload;\n }\n }\n else {\n matchAltImage = null;\n }\n }\n else {\n this.updateLastIndex(longerAltPattern, offset);\n matchAltImage = this.match(longerAltPattern, text, offset);\n }\n if (matchAltImage && matchAltImage.length > matchedImage.length) {\n matchedImage = matchAltImage;\n payload = altPayload;\n currConfig = longerAltConfig;\n // Exit the loop early after matching one of the longer alternatives\n // The first matched alternative takes precedence\n break;\n }\n }\n }\n break;\n }\n }\n // successful match\n if (matchedImage !== null) {\n imageLength = matchedImage.length;\n group = currConfig.group;\n if (group !== undefined) {\n tokType = currConfig.tokenTypeIdx;\n // TODO: \"offset + imageLength\" and the new column may be computed twice in case of \"full\" location information inside\n // createFullToken method\n newToken = this.createTokenInstance(matchedImage, offset, tokType, currConfig.tokenType, line, column, imageLength);\n this.handlePayload(newToken, payload);\n // TODO: optimize NOOP in case there are no special groups?\n if (group === false) {\n matchedTokensIndex = this.addToken(matchedTokens, matchedTokensIndex, newToken);\n }\n else {\n groups[group].push(newToken);\n }\n }\n text = this.chopInput(text, imageLength);\n offset = offset + imageLength;\n // TODO: with newlines the column may be assigned twice\n column = this.computeNewColumn(column, imageLength);\n if (trackLines === true && currConfig.canLineTerminator === true) {\n let numOfLTsInMatch = 0;\n let foundTerminator;\n let lastLTEndOffset;\n lineTerminatorPattern.lastIndex = 0;\n do {\n foundTerminator = lineTerminatorPattern.test(matchedImage);\n if (foundTerminator === true) {\n lastLTEndOffset = lineTerminatorPattern.lastIndex - 1;\n numOfLTsInMatch++;\n }\n } while (foundTerminator === true);\n if (numOfLTsInMatch !== 0) {\n line = line + numOfLTsInMatch;\n column = imageLength - lastLTEndOffset;\n this.updateTokenEndLineColumnLocation(newToken, group, lastLTEndOffset, numOfLTsInMatch, line, column, imageLength);\n }\n }\n // will be NOOP if no modes present\n this.handleModes(currConfig, pop_mode, push_mode, newToken);\n }\n else {\n // error recovery, drop characters until we identify a valid token's start point\n const errorStartOffset = offset;\n const errorLine = line;\n const errorColumn = column;\n let foundResyncPoint = recoveryEnabled === false;\n while (foundResyncPoint === false && offset < orgLength) {\n // Identity Func (when sticky flag is enabled)\n text = this.chopInput(text, 1);\n offset++;\n for (j = 0; j < currModePatternsLength; j++) {\n const currConfig = patternIdxToConfig[j];\n const currPattern = currConfig.pattern;\n // manually in-lined because > 600 chars won't be in-lined in V8\n const singleCharCode = currConfig.short;\n if (singleCharCode !== false) {\n if (orgText.charCodeAt(offset) === singleCharCode) {\n // single character string\n foundResyncPoint = true;\n }\n }\n else if (currConfig.isCustom === true) {\n foundResyncPoint =\n currPattern.exec(orgText, offset, matchedTokens, groups) !== null;\n }\n else {\n this.updateLastIndex(currPattern, offset);\n foundResyncPoint = currPattern.exec(text) !== null;\n }\n if (foundResyncPoint === true) {\n break;\n }\n }\n }\n errLength = offset - errorStartOffset;\n column = this.computeNewColumn(column, errLength);\n // at this point we either re-synced or reached the end of the input text\n msg = this.config.errorMessageProvider.buildUnexpectedCharactersMessage(orgText, errorStartOffset, errLength, errorLine, errorColumn);\n errors.push({\n offset: errorStartOffset,\n line: errorLine,\n column: errorColumn,\n length: errLength,\n message: msg,\n });\n if (recoveryEnabled === false) {\n break;\n }\n }\n }\n // if we do have custom patterns which push directly into the\n // TODO: custom tokens should not push directly??\n if (!this.hasCustom) {\n // if we guessed a too large size for the tokens array this will shrink it to the right size.\n matchedTokens.length = matchedTokensIndex;\n }\n return {\n tokens: matchedTokens,\n groups: groups,\n errors: errors,\n };\n }\n handleModes(config, pop_mode, push_mode, newToken) {\n if (config.pop === true) {\n // need to save the PUSH_MODE property as if the mode is popped\n // patternIdxToPopMode is updated to reflect the new mode after popping the stack\n const pushMode = config.push;\n pop_mode(newToken);\n if (pushMode !== undefined) {\n push_mode.call(this, pushMode);\n }\n }\n else if (config.push !== undefined) {\n push_mode.call(this, config.push);\n }\n }\n chopInput(text, length) {\n return text.substring(length);\n }\n updateLastIndex(regExp, newLastIndex) {\n regExp.lastIndex = newLastIndex;\n }\n // TODO: decrease this under 600 characters? inspect stripping comments option in TSC compiler\n updateTokenEndLineColumnLocation(newToken, group, lastLTIdx, numOfLTsInMatch, line, column, imageLength) {\n let lastCharIsLT, fixForEndingInLT;\n if (group !== undefined) {\n // a none skipped multi line Token, need to update endLine/endColumn\n lastCharIsLT = lastLTIdx === imageLength - 1;\n fixForEndingInLT = lastCharIsLT ? -1 : 0;\n if (!(numOfLTsInMatch === 1 && lastCharIsLT === true)) {\n // if a token ends in a LT that last LT only affects the line numbering of following Tokens\n newToken.endLine = line + fixForEndingInLT;\n // the last LT in a token does not affect the endColumn either as the [columnStart ... columnEnd)\n // inclusive to exclusive range.\n newToken.endColumn = column - 1 + -fixForEndingInLT;\n }\n // else single LT in the last character of a token, no need to modify the endLine/EndColumn\n }\n }\n computeNewColumn(oldColumn, imageLength) {\n return oldColumn + imageLength;\n }\n createOffsetOnlyToken(image, startOffset, tokenTypeIdx, tokenType) {\n return {\n image,\n startOffset,\n tokenTypeIdx,\n tokenType,\n };\n }\n createStartOnlyToken(image, startOffset, tokenTypeIdx, tokenType, startLine, startColumn) {\n return {\n image,\n startOffset,\n startLine,\n startColumn,\n tokenTypeIdx,\n tokenType,\n };\n }\n createFullToken(image, startOffset, tokenTypeIdx, tokenType, startLine, startColumn, imageLength) {\n return {\n image,\n startOffset,\n endOffset: startOffset + imageLength - 1,\n startLine,\n endLine: startLine,\n startColumn,\n endColumn: startColumn + imageLength - 1,\n tokenTypeIdx,\n tokenType,\n };\n }\n addTokenUsingPush(tokenVector, index, tokenToAdd) {\n tokenVector.push(tokenToAdd);\n return index;\n }\n addTokenUsingMemberAccess(tokenVector, index, tokenToAdd) {\n tokenVector[index] = tokenToAdd;\n index++;\n return index;\n }\n handlePayloadNoCustom(token, payload) { }\n handlePayloadWithCustom(token, payload) {\n if (payload !== null) {\n token.payload = payload;\n }\n }\n matchWithTest(pattern, text, offset) {\n const found = pattern.test(text);\n if (found === true) {\n return text.substring(offset, pattern.lastIndex);\n }\n return null;\n }\n matchWithExec(pattern, text) {\n const regExpArray = pattern.exec(text);\n return regExpArray !== null ? regExpArray[0] : null;\n }\n}\nLexer.SKIPPED = \"This marks a skipped Token pattern, this means each token identified by it will\" +\n \"be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.\";\nLexer.NA = /NOT_APPLICABLE/;\n//# sourceMappingURL=lexer_public.js.map","import { has, isString, isUndefined } from \"lodash-es\";\nimport { Lexer } from \"./lexer_public.js\";\nimport { augmentTokenTypes, tokenStructuredMatcher } from \"./tokens.js\";\nexport function tokenLabel(tokType) {\n if (hasTokenLabel(tokType)) {\n return tokType.LABEL;\n }\n else {\n return tokType.name;\n }\n}\nexport function tokenName(tokType) {\n return tokType.name;\n}\nexport function hasTokenLabel(obj) {\n return isString(obj.LABEL) && obj.LABEL !== \"\";\n}\nconst PARENT = \"parent\";\nconst CATEGORIES = \"categories\";\nconst LABEL = \"label\";\nconst GROUP = \"group\";\nconst PUSH_MODE = \"push_mode\";\nconst POP_MODE = \"pop_mode\";\nconst LONGER_ALT = \"longer_alt\";\nconst LINE_BREAKS = \"line_breaks\";\nconst START_CHARS_HINT = \"start_chars_hint\";\nexport function createToken(config) {\n return createTokenInternal(config);\n}\nfunction createTokenInternal(config) {\n const pattern = config.pattern;\n const tokenType = {};\n tokenType.name = config.name;\n if (!isUndefined(pattern)) {\n tokenType.PATTERN = pattern;\n }\n if (has(config, PARENT)) {\n throw (\"The parent property is no longer supported.\\n\" +\n \"See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.\");\n }\n if (has(config, CATEGORIES)) {\n // casting to ANY as this will be fixed inside `augmentTokenTypes``\n tokenType.CATEGORIES = config[CATEGORIES];\n }\n augmentTokenTypes([tokenType]);\n if (has(config, LABEL)) {\n tokenType.LABEL = config[LABEL];\n }\n if (has(config, GROUP)) {\n tokenType.GROUP = config[GROUP];\n }\n if (has(config, POP_MODE)) {\n tokenType.POP_MODE = config[POP_MODE];\n }\n if (has(config, PUSH_MODE)) {\n tokenType.PUSH_MODE = config[PUSH_MODE];\n }\n if (has(config, LONGER_ALT)) {\n tokenType.LONGER_ALT = config[LONGER_ALT];\n }\n if (has(config, LINE_BREAKS)) {\n tokenType.LINE_BREAKS = config[LINE_BREAKS];\n }\n if (has(config, START_CHARS_HINT)) {\n tokenType.START_CHARS_HINT = config[START_CHARS_HINT];\n }\n return tokenType;\n}\nexport const EOF = createToken({ name: \"EOF\", pattern: Lexer.NA });\naugmentTokenTypes([EOF]);\nexport function createTokenInstance(tokType, image, startOffset, endOffset, startLine, endLine, startColumn, endColumn) {\n return {\n image,\n startOffset,\n endOffset,\n startLine,\n endLine,\n startColumn,\n endColumn,\n tokenTypeIdx: tokType.tokenTypeIdx,\n tokenType: tokType,\n };\n}\nexport function tokenMatcher(token, tokType) {\n return tokenStructuredMatcher(token, tokType);\n}\n//# sourceMappingURL=tokens_public.js.map","import { hasTokenLabel, tokenLabel } from \"../scan/tokens_public.js\";\nimport { first, map, reduce } from \"lodash-es\";\nimport { getProductionDslName, NonTerminal, Rule, Terminal, } from \"@chevrotain/gast\";\nexport const defaultParserErrorProvider = {\n buildMismatchTokenMessage({ expected, actual, previous, ruleName }) {\n const hasLabel = hasTokenLabel(expected);\n const expectedMsg = hasLabel\n ? `--> ${tokenLabel(expected)} <--`\n : `token of type --> ${expected.name} <--`;\n const msg = `Expecting ${expectedMsg} but found --> '${actual.image}' <--`;\n return msg;\n },\n buildNotAllInputParsedMessage({ firstRedundant, ruleName }) {\n return \"Redundant input, expecting EOF but found: \" + firstRedundant.image;\n },\n buildNoViableAltMessage({ expectedPathsPerAlt, actual, previous, customUserDescription, ruleName, }) {\n const errPrefix = \"Expecting: \";\n // TODO: issue: No Viable Alternative Error may have incomplete details. #502\n const actualText = first(actual).image;\n const errSuffix = \"\\nbut found: '\" + actualText + \"'\";\n if (customUserDescription) {\n return errPrefix + customUserDescription + errSuffix;\n }\n else {\n const allLookAheadPaths = reduce(expectedPathsPerAlt, (result, currAltPaths) => result.concat(currAltPaths), []);\n const nextValidTokenSequences = map(allLookAheadPaths, (currPath) => `[${map(currPath, (currTokenType) => tokenLabel(currTokenType)).join(\", \")}]`);\n const nextValidSequenceItems = map(nextValidTokenSequences, (itemMsg, idx) => ` ${idx + 1}. ${itemMsg}`);\n const calculatedDescription = `one of these possible Token sequences:\\n${nextValidSequenceItems.join(\"\\n\")}`;\n return errPrefix + calculatedDescription + errSuffix;\n }\n },\n buildEarlyExitMessage({ expectedIterationPaths, actual, customUserDescription, ruleName, }) {\n const errPrefix = \"Expecting: \";\n // TODO: issue: No Viable Alternative Error may have incomplete details. #502\n const actualText = first(actual).image;\n const errSuffix = \"\\nbut found: '\" + actualText + \"'\";\n if (customUserDescription) {\n return errPrefix + customUserDescription + errSuffix;\n }\n else {\n const nextValidTokenSequences = map(expectedIterationPaths, (currPath) => `[${map(currPath, (currTokenType) => tokenLabel(currTokenType)).join(\",\")}]`);\n const calculatedDescription = `expecting at least one iteration which starts with one of these possible Token sequences::\\n ` +\n `<${nextValidTokenSequences.join(\" ,\")}>`;\n return errPrefix + calculatedDescription + errSuffix;\n }\n },\n};\nObject.freeze(defaultParserErrorProvider);\nexport const defaultGrammarResolverErrorProvider = {\n buildRuleNotFoundError(topLevelRule, undefinedRule) {\n const msg = \"Invalid grammar, reference to a rule which is not defined: ->\" +\n undefinedRule.nonTerminalName +\n \"<-\\n\" +\n \"inside top level rule: ->\" +\n topLevelRule.name +\n \"<-\";\n return msg;\n },\n};\nexport const defaultGrammarValidatorErrorProvider = {\n buildDuplicateFoundError(topLevelRule, duplicateProds) {\n function getExtraProductionArgument(prod) {\n if (prod instanceof Terminal) {\n return prod.terminalType.name;\n }\n else if (prod instanceof NonTerminal) {\n return prod.nonTerminalName;\n }\n else {\n return \"\";\n }\n }\n const topLevelName = topLevelRule.name;\n const duplicateProd = first(duplicateProds);\n const index = duplicateProd.idx;\n const dslName = getProductionDslName(duplicateProd);\n const extraArgument = getExtraProductionArgument(duplicateProd);\n const hasExplicitIndex = index > 0;\n let msg = `->${dslName}${hasExplicitIndex ? index : \"\"}<- ${extraArgument ? `with argument: ->${extraArgument}<-` : \"\"}\n appears more than once (${duplicateProds.length} times) in the top level rule: ->${topLevelName}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;\n // white space trimming time! better to trim afterwards as it allows to use WELL formatted multi line template strings...\n msg = msg.replace(/[ \\t]+/g, \" \");\n msg = msg.replace(/\\s\\s+/g, \"\\n\");\n return msg;\n },\n buildNamespaceConflictError(rule) {\n const errMsg = `Namespace conflict found in grammar.\\n` +\n `The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${rule.name}>.\\n` +\n `To resolve this make sure each Terminal and Non-Terminal names are unique\\n` +\n `This is easy to accomplish by using the convention that Terminal names start with an uppercase letter\\n` +\n `and Non-Terminal names start with a lower case letter.`;\n return errMsg;\n },\n buildAlternationPrefixAmbiguityError(options) {\n const pathMsg = map(options.prefixPath, (currTok) => tokenLabel(currTok)).join(\", \");\n const occurrence = options.alternation.idx === 0 ? \"\" : options.alternation.idx;\n const errMsg = `Ambiguous alternatives: <${options.ambiguityIndices.join(\" ,\")}> due to common lookahead prefix\\n` +\n `in inside <${options.topLevelRule.name}> Rule,\\n` +\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n` +\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\\n` +\n `For Further details.`;\n return errMsg;\n },\n buildAlternationAmbiguityError(options) {\n const pathMsg = map(options.prefixPath, (currtok) => tokenLabel(currtok)).join(\", \");\n const occurrence = options.alternation.idx === 0 ? \"\" : options.alternation.idx;\n let currMessage = `Ambiguous Alternatives Detected: <${options.ambiguityIndices.join(\" ,\")}> in ` +\n ` inside <${options.topLevelRule.name}> Rule,\\n` +\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n`;\n currMessage =\n currMessage +\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\\n` +\n `For Further details.`;\n return currMessage;\n },\n buildEmptyRepetitionError(options) {\n let dslName = getProductionDslName(options.repetition);\n if (options.repetition.idx !== 0) {\n dslName += options.repetition.idx;\n }\n const errMsg = `The repetition <${dslName}> within Rule <${options.topLevelRule.name}> can never consume any tokens.\\n` +\n `This could lead to an infinite loop.`;\n return errMsg;\n },\n // TODO: remove - `errors_public` from nyc.config.js exclude\n // once this method is fully removed from this file\n buildTokenNameError(options) {\n /* istanbul ignore next */\n return \"deprecated\";\n },\n buildEmptyAlternationError(options) {\n const errMsg = `Ambiguous empty alternative: <${options.emptyChoiceIdx + 1}>` +\n ` in inside <${options.topLevelRule.name}> Rule.\\n` +\n `Only the last alternative may be an empty alternative.`;\n return errMsg;\n },\n buildTooManyAlternativesError(options) {\n const errMsg = `An Alternation cannot have more than 256 alternatives:\\n` +\n ` inside <${options.topLevelRule.name}> Rule.\\n has ${options.alternation.definition.length + 1} alternatives.`;\n return errMsg;\n },\n buildLeftRecursionError(options) {\n const ruleName = options.topLevelRule.name;\n const pathNames = map(options.leftRecursionPath, (currRule) => currRule.name);\n const leftRecursivePath = `${ruleName} --> ${pathNames\n .concat([ruleName])\n .join(\" --> \")}`;\n const errMsg = `Left Recursion found in grammar.\\n` +\n `rule: <${ruleName}> can be invoked from itself (directly or indirectly)\\n` +\n `without consuming any Tokens. The grammar path that causes this is: \\n ${leftRecursivePath}\\n` +\n ` To fix this refactor your grammar to remove the left recursion.\\n` +\n `see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`;\n return errMsg;\n },\n // TODO: remove - `errors_public` from nyc.config.js exclude\n // once this method is fully removed from this file\n buildInvalidRuleNameError(options) {\n /* istanbul ignore next */\n return \"deprecated\";\n },\n buildDuplicateRuleNameError(options) {\n let ruleName;\n if (options.topLevelRule instanceof Rule) {\n ruleName = options.topLevelRule.name;\n }\n else {\n ruleName = options.topLevelRule;\n }\n const errMsg = `Duplicate definition, rule: ->${ruleName}<- is already defined in the grammar: ->${options.grammarName}<-`;\n return errMsg;\n },\n};\n//# sourceMappingURL=errors_public.js.map","import { ParserDefinitionErrorType, } from \"../parser/parser.js\";\nimport { forEach, values } from \"lodash-es\";\nimport { GAstVisitor } from \"@chevrotain/gast\";\nexport function resolveGrammar(topLevels, errMsgProvider) {\n const refResolver = new GastRefResolverVisitor(topLevels, errMsgProvider);\n refResolver.resolveRefs();\n return refResolver.errors;\n}\nexport class GastRefResolverVisitor extends GAstVisitor {\n constructor(nameToTopRule, errMsgProvider) {\n super();\n this.nameToTopRule = nameToTopRule;\n this.errMsgProvider = errMsgProvider;\n this.errors = [];\n }\n resolveRefs() {\n forEach(values(this.nameToTopRule), (prod) => {\n this.currTopLevel = prod;\n prod.accept(this);\n });\n }\n visitNonTerminal(node) {\n const ref = this.nameToTopRule[node.nonTerminalName];\n if (!ref) {\n const msg = this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel, node);\n this.errors.push({\n message: msg,\n type: ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,\n ruleName: this.currTopLevel.name,\n unresolvedRefName: node.nonTerminalName,\n });\n }\n else {\n node.referencedRule = ref;\n }\n }\n}\n//# sourceMappingURL=resolver.js.map","import { clone, drop, dropRight, first as _first, forEach, isEmpty, last, } from \"lodash-es\";\nimport { first } from \"./first.js\";\nimport { RestWalker } from \"./rest.js\";\nimport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from \"@chevrotain/gast\";\nexport class AbstractNextPossibleTokensWalker extends RestWalker {\n constructor(topProd, path) {\n super();\n this.topProd = topProd;\n this.path = path;\n this.possibleTokTypes = [];\n this.nextProductionName = \"\";\n this.nextProductionOccurrence = 0;\n this.found = false;\n this.isAtEndOfPath = false;\n }\n startWalking() {\n this.found = false;\n if (this.path.ruleStack[0] !== this.topProd.name) {\n throw Error(\"The path does not start with the walker's top Rule!\");\n }\n // immutable for the win\n this.ruleStack = clone(this.path.ruleStack).reverse(); // intelij bug requires assertion\n this.occurrenceStack = clone(this.path.occurrenceStack).reverse(); // intelij bug requires assertion\n // already verified that the first production is valid, we now seek the 2nd production\n this.ruleStack.pop();\n this.occurrenceStack.pop();\n this.updateExpectedNext();\n this.walk(this.topProd);\n return this.possibleTokTypes;\n }\n walk(prod, prevRest = []) {\n // stop scanning once we found the path\n if (!this.found) {\n super.walk(prod, prevRest);\n }\n }\n walkProdRef(refProd, currRest, prevRest) {\n // found the next production, need to keep walking in it\n if (refProd.referencedRule.name === this.nextProductionName &&\n refProd.idx === this.nextProductionOccurrence) {\n const fullRest = currRest.concat(prevRest);\n this.updateExpectedNext();\n this.walk(refProd.referencedRule, fullRest);\n }\n }\n updateExpectedNext() {\n // need to consume the Terminal\n if (isEmpty(this.ruleStack)) {\n // must reset nextProductionXXX to avoid walking down another Top Level production while what we are\n // really seeking is the last Terminal...\n this.nextProductionName = \"\";\n this.nextProductionOccurrence = 0;\n this.isAtEndOfPath = true;\n }\n else {\n this.nextProductionName = this.ruleStack.pop();\n this.nextProductionOccurrence = this.occurrenceStack.pop();\n }\n }\n}\nexport class NextAfterTokenWalker extends AbstractNextPossibleTokensWalker {\n constructor(topProd, path) {\n super(topProd, path);\n this.path = path;\n this.nextTerminalName = \"\";\n this.nextTerminalOccurrence = 0;\n this.nextTerminalName = this.path.lastTok.name;\n this.nextTerminalOccurrence = this.path.lastTokOccurrence;\n }\n walkTerminal(terminal, currRest, prevRest) {\n if (this.isAtEndOfPath &&\n terminal.terminalType.name === this.nextTerminalName &&\n terminal.idx === this.nextTerminalOccurrence &&\n !this.found) {\n const fullRest = currRest.concat(prevRest);\n const restProd = new Alternative({ definition: fullRest });\n this.possibleTokTypes = first(restProd);\n this.found = true;\n }\n }\n}\n/**\n * This walker only \"walks\" a single \"TOP\" level in the Grammar Ast, this means\n * it never \"follows\" production refs\n */\nexport class AbstractNextTerminalAfterProductionWalker extends RestWalker {\n constructor(topRule, occurrence) {\n super();\n this.topRule = topRule;\n this.occurrence = occurrence;\n this.result = {\n token: undefined,\n occurrence: undefined,\n isEndOfRule: undefined,\n };\n }\n startWalking() {\n this.walk(this.topRule);\n return this.result;\n }\n}\nexport class NextTerminalAfterManyWalker extends AbstractNextTerminalAfterProductionWalker {\n walkMany(manyProd, currRest, prevRest) {\n if (manyProd.idx === this.occurrence) {\n const firstAfterMany = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterMany === undefined;\n if (firstAfterMany instanceof Terminal) {\n this.result.token = firstAfterMany.terminalType;\n this.result.occurrence = firstAfterMany.idx;\n }\n }\n else {\n super.walkMany(manyProd, currRest, prevRest);\n }\n }\n}\nexport class NextTerminalAfterManySepWalker extends AbstractNextTerminalAfterProductionWalker {\n walkManySep(manySepProd, currRest, prevRest) {\n if (manySepProd.idx === this.occurrence) {\n const firstAfterManySep = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterManySep === undefined;\n if (firstAfterManySep instanceof Terminal) {\n this.result.token = firstAfterManySep.terminalType;\n this.result.occurrence = firstAfterManySep.idx;\n }\n }\n else {\n super.walkManySep(manySepProd, currRest, prevRest);\n }\n }\n}\nexport class NextTerminalAfterAtLeastOneWalker extends AbstractNextTerminalAfterProductionWalker {\n walkAtLeastOne(atLeastOneProd, currRest, prevRest) {\n if (atLeastOneProd.idx === this.occurrence) {\n const firstAfterAtLeastOne = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterAtLeastOne === undefined;\n if (firstAfterAtLeastOne instanceof Terminal) {\n this.result.token = firstAfterAtLeastOne.terminalType;\n this.result.occurrence = firstAfterAtLeastOne.idx;\n }\n }\n else {\n super.walkAtLeastOne(atLeastOneProd, currRest, prevRest);\n }\n }\n}\n// TODO: reduce code duplication in the AfterWalkers\nexport class NextTerminalAfterAtLeastOneSepWalker extends AbstractNextTerminalAfterProductionWalker {\n walkAtLeastOneSep(atleastOneSepProd, currRest, prevRest) {\n if (atleastOneSepProd.idx === this.occurrence) {\n const firstAfterfirstAfterAtLeastOneSep = _first(currRest.concat(prevRest));\n this.result.isEndOfRule = firstAfterfirstAfterAtLeastOneSep === undefined;\n if (firstAfterfirstAfterAtLeastOneSep instanceof Terminal) {\n this.result.token = firstAfterfirstAfterAtLeastOneSep.terminalType;\n this.result.occurrence = firstAfterfirstAfterAtLeastOneSep.idx;\n }\n }\n else {\n super.walkAtLeastOneSep(atleastOneSepProd, currRest, prevRest);\n }\n }\n}\nexport function possiblePathsFrom(targetDef, maxLength, currPath = []) {\n // avoid side effects\n currPath = clone(currPath);\n let result = [];\n let i = 0;\n // TODO: avoid inner funcs\n function remainingPathWith(nextDef) {\n return nextDef.concat(drop(targetDef, i + 1));\n }\n // TODO: avoid inner funcs\n function getAlternativesForProd(definition) {\n const alternatives = possiblePathsFrom(remainingPathWith(definition), maxLength, currPath);\n return result.concat(alternatives);\n }\n /**\n * Mandatory productions will halt the loop as the paths computed from their recursive calls will already contain the\n * following (rest) of the targetDef.\n *\n * For optional productions (Option/Repetition/...) the loop will continue to represent the paths that do not include the\n * the optional production.\n */\n while (currPath.length < maxLength && i < targetDef.length) {\n const prod = targetDef[i];\n /* istanbul ignore else */\n if (prod instanceof Alternative) {\n return getAlternativesForProd(prod.definition);\n }\n else if (prod instanceof NonTerminal) {\n return getAlternativesForProd(prod.definition);\n }\n else if (prod instanceof Option) {\n result = getAlternativesForProd(prod.definition);\n }\n else if (prod instanceof RepetitionMandatory) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: prod.definition,\n }),\n ]);\n return getAlternativesForProd(newDef);\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n const newDef = [\n new Alternative({ definition: prod.definition }),\n new Repetition({\n definition: [new Terminal({ terminalType: prod.separator })].concat(prod.definition),\n }),\n ];\n return getAlternativesForProd(newDef);\n }\n else if (prod instanceof RepetitionWithSeparator) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: [new Terminal({ terminalType: prod.separator })].concat(prod.definition),\n }),\n ]);\n result = getAlternativesForProd(newDef);\n }\n else if (prod instanceof Repetition) {\n const newDef = prod.definition.concat([\n new Repetition({\n definition: prod.definition,\n }),\n ]);\n result = getAlternativesForProd(newDef);\n }\n else if (prod instanceof Alternation) {\n forEach(prod.definition, (currAlt) => {\n // TODO: this is a limited check for empty alternatives\n // It would prevent a common case of infinite loops during parser initialization.\n // However **in-directly** empty alternatives may still cause issues.\n if (isEmpty(currAlt.definition) === false) {\n result = getAlternativesForProd(currAlt.definition);\n }\n });\n return result;\n }\n else if (prod instanceof Terminal) {\n currPath.push(prod.terminalType);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n i++;\n }\n result.push({\n partialPath: currPath,\n suffixDef: drop(targetDef, i),\n });\n return result;\n}\nexport function nextPossibleTokensAfter(initialDef, tokenVector, tokMatcher, maxLookAhead) {\n const EXIT_NON_TERMINAL = \"EXIT_NONE_TERMINAL\";\n // to avoid creating a new Array each time.\n const EXIT_NON_TERMINAL_ARR = [EXIT_NON_TERMINAL];\n const EXIT_ALTERNATIVE = \"EXIT_ALTERNATIVE\";\n let foundCompletePath = false;\n const tokenVectorLength = tokenVector.length;\n const minimalAlternativesIndex = tokenVectorLength - maxLookAhead - 1;\n const result = [];\n const possiblePaths = [];\n possiblePaths.push({\n idx: -1,\n def: initialDef,\n ruleStack: [],\n occurrenceStack: [],\n });\n while (!isEmpty(possiblePaths)) {\n const currPath = possiblePaths.pop();\n // skip alternatives if no more results can be found (assuming deterministic grammar with fixed lookahead)\n if (currPath === EXIT_ALTERNATIVE) {\n if (foundCompletePath &&\n last(possiblePaths).idx <= minimalAlternativesIndex) {\n // remove irrelevant alternative\n possiblePaths.pop();\n }\n continue;\n }\n const currDef = currPath.def;\n const currIdx = currPath.idx;\n const currRuleStack = currPath.ruleStack;\n const currOccurrenceStack = currPath.occurrenceStack;\n // For Example: an empty path could exist in a valid grammar in the case of an EMPTY_ALT\n if (isEmpty(currDef)) {\n continue;\n }\n const prod = currDef[0];\n /* istanbul ignore else */\n if (prod === EXIT_NON_TERMINAL) {\n const nextPath = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: dropRight(currRuleStack),\n occurrenceStack: dropRight(currOccurrenceStack),\n };\n possiblePaths.push(nextPath);\n }\n else if (prod instanceof Terminal) {\n /* istanbul ignore else */\n if (currIdx < tokenVectorLength - 1) {\n const nextIdx = currIdx + 1;\n const actualToken = tokenVector[nextIdx];\n if (tokMatcher(actualToken, prod.terminalType)) {\n const nextPath = {\n idx: nextIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n }\n // end of the line\n }\n else if (currIdx === tokenVectorLength - 1) {\n // IGNORE ABOVE ELSE\n result.push({\n nextTokenType: prod.terminalType,\n nextTokenOccurrence: prod.idx,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n });\n foundCompletePath = true;\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n }\n else if (prod instanceof NonTerminal) {\n const newRuleStack = clone(currRuleStack);\n newRuleStack.push(prod.nonTerminalName);\n const newOccurrenceStack = clone(currOccurrenceStack);\n newOccurrenceStack.push(prod.idx);\n const nextPath = {\n idx: currIdx,\n def: prod.definition.concat(EXIT_NON_TERMINAL_ARR, drop(currDef)),\n ruleStack: newRuleStack,\n occurrenceStack: newOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n }\n else if (prod instanceof Option) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n const nextPathWith = {\n idx: currIdx,\n def: prod.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n }\n else if (prod instanceof RepetitionMandatory) {\n // TODO:(THE NEW operators here take a while...) (convert once?)\n const secondIteration = new Repetition({\n definition: prod.definition,\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([secondIteration], drop(currDef));\n const nextPath = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n // TODO:(THE NEW operators here take a while...) (convert once?)\n const separatorGast = new Terminal({\n terminalType: prod.separator,\n });\n const secondIteration = new Repetition({\n definition: [separatorGast].concat(prod.definition),\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([secondIteration], drop(currDef));\n const nextPath = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPath);\n }\n else if (prod instanceof RepetitionWithSeparator) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n const separatorGast = new Terminal({\n terminalType: prod.separator,\n });\n const nthRepetition = new Repetition({\n definition: [separatorGast].concat(prod.definition),\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([nthRepetition], drop(currDef));\n const nextPathWith = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n }\n else if (prod instanceof Repetition) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n const nextPathWithout = {\n idx: currIdx,\n def: drop(currDef),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWithout);\n // required marker to avoid backtracking paths whose higher priority alternatives already matched\n possiblePaths.push(EXIT_ALTERNATIVE);\n // TODO: an empty repetition will cause infinite loops here, will the parser detect this in selfAnalysis?\n const nthRepetition = new Repetition({\n definition: prod.definition,\n idx: prod.idx,\n });\n const nextDef = prod.definition.concat([nthRepetition], drop(currDef));\n const nextPathWith = {\n idx: currIdx,\n def: nextDef,\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(nextPathWith);\n }\n else if (prod instanceof Alternation) {\n // the order of alternatives is meaningful, FILO (Last path will be traversed first).\n for (let i = prod.definition.length - 1; i >= 0; i--) {\n const currAlt = prod.definition[i];\n const currAltPath = {\n idx: currIdx,\n def: currAlt.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n };\n possiblePaths.push(currAltPath);\n possiblePaths.push(EXIT_ALTERNATIVE);\n }\n }\n else if (prod instanceof Alternative) {\n possiblePaths.push({\n idx: currIdx,\n def: prod.definition.concat(drop(currDef)),\n ruleStack: currRuleStack,\n occurrenceStack: currOccurrenceStack,\n });\n }\n else if (prod instanceof Rule) {\n // last because we should only encounter at most a single one of these per invocation.\n possiblePaths.push(expandTopLevelRule(prod, currIdx, currRuleStack, currOccurrenceStack));\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n }\n return result;\n}\nfunction expandTopLevelRule(topRule, currIdx, currRuleStack, currOccurrenceStack) {\n const newRuleStack = clone(currRuleStack);\n newRuleStack.push(topRule.name);\n const newCurrOccurrenceStack = clone(currOccurrenceStack);\n // top rule is always assumed to have been called with occurrence index 1\n newCurrOccurrenceStack.push(1);\n return {\n idx: currIdx,\n def: topRule.definition,\n ruleStack: newRuleStack,\n occurrenceStack: newCurrOccurrenceStack,\n };\n}\n//# sourceMappingURL=interpreter.js.map","import { every, flatten, forEach, has, isEmpty, map, reduce } from \"lodash-es\";\nimport { possiblePathsFrom } from \"./interpreter.js\";\nimport { RestWalker } from \"./rest.js\";\nimport { tokenStructuredMatcher, tokenStructuredMatcherNoCategories, } from \"../../scan/tokens.js\";\nimport { Alternation, Alternative as AlternativeGAST, GAstVisitor, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, } from \"@chevrotain/gast\";\nexport var PROD_TYPE;\n(function (PROD_TYPE) {\n PROD_TYPE[PROD_TYPE[\"OPTION\"] = 0] = \"OPTION\";\n PROD_TYPE[PROD_TYPE[\"REPETITION\"] = 1] = \"REPETITION\";\n PROD_TYPE[PROD_TYPE[\"REPETITION_MANDATORY\"] = 2] = \"REPETITION_MANDATORY\";\n PROD_TYPE[PROD_TYPE[\"REPETITION_MANDATORY_WITH_SEPARATOR\"] = 3] = \"REPETITION_MANDATORY_WITH_SEPARATOR\";\n PROD_TYPE[PROD_TYPE[\"REPETITION_WITH_SEPARATOR\"] = 4] = \"REPETITION_WITH_SEPARATOR\";\n PROD_TYPE[PROD_TYPE[\"ALTERNATION\"] = 5] = \"ALTERNATION\";\n})(PROD_TYPE || (PROD_TYPE = {}));\nexport function getProdType(prod) {\n /* istanbul ignore else */\n if (prod instanceof Option || prod === \"Option\") {\n return PROD_TYPE.OPTION;\n }\n else if (prod instanceof Repetition || prod === \"Repetition\") {\n return PROD_TYPE.REPETITION;\n }\n else if (prod instanceof RepetitionMandatory ||\n prod === \"RepetitionMandatory\") {\n return PROD_TYPE.REPETITION_MANDATORY;\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator ||\n prod === \"RepetitionMandatoryWithSeparator\") {\n return PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR;\n }\n else if (prod instanceof RepetitionWithSeparator ||\n prod === \"RepetitionWithSeparator\") {\n return PROD_TYPE.REPETITION_WITH_SEPARATOR;\n }\n else if (prod instanceof Alternation || prod === \"Alternation\") {\n return PROD_TYPE.ALTERNATION;\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nexport function getLookaheadPaths(options) {\n const { occurrence, rule, prodType, maxLookahead } = options;\n const type = getProdType(prodType);\n if (type === PROD_TYPE.ALTERNATION) {\n return getLookaheadPathsForOr(occurrence, rule, maxLookahead);\n }\n else {\n return getLookaheadPathsForOptionalProd(occurrence, rule, type, maxLookahead);\n }\n}\nexport function buildLookaheadFuncForOr(occurrence, ruleGrammar, maxLookahead, hasPredicates, dynamicTokensEnabled, laFuncBuilder) {\n const lookAheadPaths = getLookaheadPathsForOr(occurrence, ruleGrammar, maxLookahead);\n const tokenMatcher = areTokenCategoriesNotUsed(lookAheadPaths)\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n return laFuncBuilder(lookAheadPaths, hasPredicates, tokenMatcher, dynamicTokensEnabled);\n}\n/**\n * When dealing with an Optional production (OPTION/MANY/2nd iteration of AT_LEAST_ONE/...) we need to compare\n * the lookahead \"inside\" the production and the lookahead immediately \"after\" it in the same top level rule (context free).\n *\n * Example: given a production:\n * ABC(DE)?DF\n *\n * The optional '(DE)?' should only be entered if we see 'DE'. a single Token 'D' is not sufficient to distinguish between the two\n * alternatives.\n *\n * @returns A Lookahead function which will return true IFF the parser should parse the Optional production.\n */\nexport function buildLookaheadFuncForOptionalProd(occurrence, ruleGrammar, k, dynamicTokensEnabled, prodType, lookaheadBuilder) {\n const lookAheadPaths = getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, k);\n const tokenMatcher = areTokenCategoriesNotUsed(lookAheadPaths)\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n return lookaheadBuilder(lookAheadPaths[0], tokenMatcher, dynamicTokensEnabled);\n}\nexport function buildAlternativesLookAheadFunc(alts, hasPredicates, tokenMatcher, dynamicTokensEnabled) {\n const numOfAlts = alts.length;\n const areAllOneTokenLookahead = every(alts, (currAlt) => {\n return every(currAlt, (currPath) => {\n return currPath.length === 1;\n });\n });\n // This version takes into account the predicates as well.\n if (hasPredicates) {\n /**\n * @returns {number} - The chosen alternative index\n */\n return function (orAlts) {\n // unfortunately the predicates must be extracted every single time\n // as they cannot be cached due to references to parameters(vars) which are no longer valid.\n // note that in the common case of no predicates, no cpu time will be wasted on this (see else block)\n const predicates = map(orAlts, (currAlt) => currAlt.GATE);\n for (let t = 0; t < numOfAlts; t++) {\n const currAlt = alts[t];\n const currNumOfPaths = currAlt.length;\n const currPredicate = predicates[t];\n if (currPredicate !== undefined && currPredicate.call(this) === false) {\n // if the predicate does not match there is no point in checking the paths\n continue;\n }\n nextPath: for (let j = 0; j < currNumOfPaths; j++) {\n const currPath = currAlt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n // this will also work for an empty ALT as the loop will be skipped\n return t;\n }\n // none of the paths for the current alternative matched\n // try the next alternative\n }\n // none of the alternatives could be matched\n return undefined;\n };\n }\n else if (areAllOneTokenLookahead && !dynamicTokensEnabled) {\n // optimized (common) case of all the lookaheads paths requiring only\n // a single token lookahead. These Optimizations cannot work if dynamically defined Tokens are used.\n const singleTokenAlts = map(alts, (currAlt) => {\n return flatten(currAlt);\n });\n const choiceToAlt = reduce(singleTokenAlts, (result, currAlt, idx) => {\n forEach(currAlt, (currTokType) => {\n if (!has(result, currTokType.tokenTypeIdx)) {\n result[currTokType.tokenTypeIdx] = idx;\n }\n forEach(currTokType.categoryMatches, (currExtendingType) => {\n if (!has(result, currExtendingType)) {\n result[currExtendingType] = idx;\n }\n });\n });\n return result;\n }, {});\n /**\n * @returns {number} - The chosen alternative index\n */\n return function () {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx];\n };\n }\n else {\n // optimized lookahead without needing to check the predicates at all.\n // this causes code duplication which is intentional to improve performance.\n /**\n * @returns {number} - The chosen alternative index\n */\n return function () {\n for (let t = 0; t < numOfAlts; t++) {\n const currAlt = alts[t];\n const currNumOfPaths = currAlt.length;\n nextPath: for (let j = 0; j < currNumOfPaths; j++) {\n const currPath = currAlt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n // this will also work for an empty ALT as the loop will be skipped\n return t;\n }\n // none of the paths for the current alternative matched\n // try the next alternative\n }\n // none of the alternatives could be matched\n return undefined;\n };\n }\n}\nexport function buildSingleAlternativeLookaheadFunction(alt, tokenMatcher, dynamicTokensEnabled) {\n const areAllOneTokenLookahead = every(alt, (currPath) => {\n return currPath.length === 1;\n });\n const numOfPaths = alt.length;\n // optimized (common) case of all the lookaheads paths requiring only\n // a single token lookahead.\n if (areAllOneTokenLookahead && !dynamicTokensEnabled) {\n const singleTokensTypes = flatten(alt);\n if (singleTokensTypes.length === 1 &&\n isEmpty(singleTokensTypes[0].categoryMatches)) {\n const expectedTokenType = singleTokensTypes[0];\n const expectedTokenUniqueKey = expectedTokenType.tokenTypeIdx;\n return function () {\n return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey;\n };\n }\n else {\n const choiceToAlt = reduce(singleTokensTypes, (result, currTokType, idx) => {\n result[currTokType.tokenTypeIdx] = true;\n forEach(currTokType.categoryMatches, (currExtendingType) => {\n result[currExtendingType] = true;\n });\n return result;\n }, []);\n return function () {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx] === true;\n };\n }\n }\n else {\n return function () {\n nextPath: for (let j = 0; j < numOfPaths; j++) {\n const currPath = alt[j];\n const currPathLength = currPath.length;\n for (let i = 0; i < currPathLength; i++) {\n const nextToken = this.LA(i + 1);\n if (tokenMatcher(nextToken, currPath[i]) === false) {\n // mismatch in current path\n // try the next pth\n continue nextPath;\n }\n }\n // found a full path that matches.\n return true;\n }\n // none of the paths matched\n return false;\n };\n }\n}\nclass RestDefinitionFinderWalker extends RestWalker {\n constructor(topProd, targetOccurrence, targetProdType) {\n super();\n this.topProd = topProd;\n this.targetOccurrence = targetOccurrence;\n this.targetProdType = targetProdType;\n }\n startWalking() {\n this.walk(this.topProd);\n return this.restDef;\n }\n checkIsTarget(node, expectedProdType, currRest, prevRest) {\n if (node.idx === this.targetOccurrence &&\n this.targetProdType === expectedProdType) {\n this.restDef = currRest.concat(prevRest);\n return true;\n }\n // performance optimization, do not iterate over the entire Grammar ast after we have found the target\n return false;\n }\n walkOption(optionProd, currRest, prevRest) {\n if (!this.checkIsTarget(optionProd, PROD_TYPE.OPTION, currRest, prevRest)) {\n super.walkOption(optionProd, currRest, prevRest);\n }\n }\n walkAtLeastOne(atLeastOneProd, currRest, prevRest) {\n if (!this.checkIsTarget(atLeastOneProd, PROD_TYPE.REPETITION_MANDATORY, currRest, prevRest)) {\n super.walkOption(atLeastOneProd, currRest, prevRest);\n }\n }\n walkAtLeastOneSep(atLeastOneSepProd, currRest, prevRest) {\n if (!this.checkIsTarget(atLeastOneSepProd, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, currRest, prevRest)) {\n super.walkOption(atLeastOneSepProd, currRest, prevRest);\n }\n }\n walkMany(manyProd, currRest, prevRest) {\n if (!this.checkIsTarget(manyProd, PROD_TYPE.REPETITION, currRest, prevRest)) {\n super.walkOption(manyProd, currRest, prevRest);\n }\n }\n walkManySep(manySepProd, currRest, prevRest) {\n if (!this.checkIsTarget(manySepProd, PROD_TYPE.REPETITION_WITH_SEPARATOR, currRest, prevRest)) {\n super.walkOption(manySepProd, currRest, prevRest);\n }\n }\n}\n/**\n * Returns the definition of a target production in a top level level rule.\n */\nclass InsideDefinitionFinderVisitor extends GAstVisitor {\n constructor(targetOccurrence, targetProdType, targetRef) {\n super();\n this.targetOccurrence = targetOccurrence;\n this.targetProdType = targetProdType;\n this.targetRef = targetRef;\n this.result = [];\n }\n checkIsTarget(node, expectedProdName) {\n if (node.idx === this.targetOccurrence &&\n this.targetProdType === expectedProdName &&\n (this.targetRef === undefined || node === this.targetRef)) {\n this.result = node.definition;\n }\n }\n visitOption(node) {\n this.checkIsTarget(node, PROD_TYPE.OPTION);\n }\n visitRepetition(node) {\n this.checkIsTarget(node, PROD_TYPE.REPETITION);\n }\n visitRepetitionMandatory(node) {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_MANDATORY);\n }\n visitRepetitionMandatoryWithSeparator(node) {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR);\n }\n visitRepetitionWithSeparator(node) {\n this.checkIsTarget(node, PROD_TYPE.REPETITION_WITH_SEPARATOR);\n }\n visitAlternation(node) {\n this.checkIsTarget(node, PROD_TYPE.ALTERNATION);\n }\n}\nfunction initializeArrayOfArrays(size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = [];\n }\n return result;\n}\n/**\n * A sort of hash function between a Path in the grammar and a string.\n * Note that this returns multiple \"hashes\" to support the scenario of token categories.\n * - A single path with categories may match multiple **actual** paths.\n */\nfunction pathToHashKeys(path) {\n let keys = [\"\"];\n for (let i = 0; i < path.length; i++) {\n const tokType = path[i];\n const longerKeys = [];\n for (let j = 0; j < keys.length; j++) {\n const currShorterKey = keys[j];\n longerKeys.push(currShorterKey + \"_\" + tokType.tokenTypeIdx);\n for (let t = 0; t < tokType.categoryMatches.length; t++) {\n const categoriesKeySuffix = \"_\" + tokType.categoryMatches[t];\n longerKeys.push(currShorterKey + categoriesKeySuffix);\n }\n }\n keys = longerKeys;\n }\n return keys;\n}\n/**\n * Imperative style due to being called from a hot spot\n */\nfunction isUniquePrefixHash(altKnownPathsKeys, searchPathKeys, idx) {\n for (let currAltIdx = 0; currAltIdx < altKnownPathsKeys.length; currAltIdx++) {\n // We only want to test vs the other alternatives\n if (currAltIdx === idx) {\n continue;\n }\n const otherAltKnownPathsKeys = altKnownPathsKeys[currAltIdx];\n for (let searchIdx = 0; searchIdx < searchPathKeys.length; searchIdx++) {\n const searchKey = searchPathKeys[searchIdx];\n if (otherAltKnownPathsKeys[searchKey] === true) {\n return false;\n }\n }\n }\n // None of the SearchPathKeys were found in any of the other alternatives\n return true;\n}\nexport function lookAheadSequenceFromAlternatives(altsDefs, k) {\n const partialAlts = map(altsDefs, (currAlt) => possiblePathsFrom([currAlt], 1));\n const finalResult = initializeArrayOfArrays(partialAlts.length);\n const altsHashes = map(partialAlts, (currAltPaths) => {\n const dict = {};\n forEach(currAltPaths, (item) => {\n const keys = pathToHashKeys(item.partialPath);\n forEach(keys, (currKey) => {\n dict[currKey] = true;\n });\n });\n return dict;\n });\n let newData = partialAlts;\n // maxLookahead loop\n for (let pathLength = 1; pathLength <= k; pathLength++) {\n const currDataset = newData;\n newData = initializeArrayOfArrays(currDataset.length);\n // alternatives loop\n for (let altIdx = 0; altIdx < currDataset.length; altIdx++) {\n const currAltPathsAndSuffixes = currDataset[altIdx];\n // paths in current alternative loop\n for (let currPathIdx = 0; currPathIdx < currAltPathsAndSuffixes.length; currPathIdx++) {\n const currPathPrefix = currAltPathsAndSuffixes[currPathIdx].partialPath;\n const suffixDef = currAltPathsAndSuffixes[currPathIdx].suffixDef;\n const prefixKeys = pathToHashKeys(currPathPrefix);\n const isUnique = isUniquePrefixHash(altsHashes, prefixKeys, altIdx);\n // End of the line for this path.\n if (isUnique || isEmpty(suffixDef) || currPathPrefix.length === k) {\n const currAltResult = finalResult[altIdx];\n // TODO: Can we implement a containsPath using Maps/Dictionaries?\n if (containsPath(currAltResult, currPathPrefix) === false) {\n currAltResult.push(currPathPrefix);\n // Update all new keys for the current path.\n for (let j = 0; j < prefixKeys.length; j++) {\n const currKey = prefixKeys[j];\n altsHashes[altIdx][currKey] = true;\n }\n }\n }\n // Expand longer paths\n else {\n const newPartialPathsAndSuffixes = possiblePathsFrom(suffixDef, pathLength + 1, currPathPrefix);\n newData[altIdx] = newData[altIdx].concat(newPartialPathsAndSuffixes);\n // Update keys for new known paths\n forEach(newPartialPathsAndSuffixes, (item) => {\n const prefixKeys = pathToHashKeys(item.partialPath);\n forEach(prefixKeys, (key) => {\n altsHashes[altIdx][key] = true;\n });\n });\n }\n }\n }\n }\n return finalResult;\n}\nexport function getLookaheadPathsForOr(occurrence, ruleGrammar, k, orProd) {\n const visitor = new InsideDefinitionFinderVisitor(occurrence, PROD_TYPE.ALTERNATION, orProd);\n ruleGrammar.accept(visitor);\n return lookAheadSequenceFromAlternatives(visitor.result, k);\n}\nexport function getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, k) {\n const insideDefVisitor = new InsideDefinitionFinderVisitor(occurrence, prodType);\n ruleGrammar.accept(insideDefVisitor);\n const insideDef = insideDefVisitor.result;\n const afterDefWalker = new RestDefinitionFinderWalker(ruleGrammar, occurrence, prodType);\n const afterDef = afterDefWalker.startWalking();\n const insideFlat = new AlternativeGAST({ definition: insideDef });\n const afterFlat = new AlternativeGAST({ definition: afterDef });\n return lookAheadSequenceFromAlternatives([insideFlat, afterFlat], k);\n}\nexport function containsPath(alternative, searchPath) {\n compareOtherPath: for (let i = 0; i < alternative.length; i++) {\n const otherPath = alternative[i];\n if (otherPath.length !== searchPath.length) {\n continue;\n }\n for (let j = 0; j < otherPath.length; j++) {\n const searchTok = searchPath[j];\n const otherTok = otherPath[j];\n const matchingTokens = searchTok === otherTok ||\n otherTok.categoryMatchesMap[searchTok.tokenTypeIdx] !== undefined;\n if (matchingTokens === false) {\n continue compareOtherPath;\n }\n }\n return true;\n }\n return false;\n}\nexport function isStrictPrefixOfPath(prefix, other) {\n return (prefix.length < other.length &&\n every(prefix, (tokType, idx) => {\n const otherTokType = other[idx];\n return (tokType === otherTokType ||\n otherTokType.categoryMatchesMap[tokType.tokenTypeIdx]);\n }));\n}\nexport function areTokenCategoriesNotUsed(lookAheadPaths) {\n return every(lookAheadPaths, (singleAltPaths) => every(singleAltPaths, (singlePath) => every(singlePath, (token) => isEmpty(token.categoryMatches))));\n}\n//# sourceMappingURL=lookahead.js.map","import { clone, compact, difference, drop, dropRight, filter, first, flatMap, flatten, forEach, groupBy, includes, isEmpty, map, pickBy, reduce, reject, values, } from \"lodash-es\";\nimport { ParserDefinitionErrorType, } from \"../parser/parser.js\";\nimport { Alternation, Alternative as AlternativeGAST, GAstVisitor, getProductionDslName, isOptionalProd, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal, } from \"@chevrotain/gast\";\nimport { containsPath, getLookaheadPathsForOptionalProd, getLookaheadPathsForOr, getProdType, isStrictPrefixOfPath, } from \"./lookahead.js\";\nimport { nextPossibleTokensAfter } from \"./interpreter.js\";\nimport { tokenStructuredMatcher } from \"../../scan/tokens.js\";\nexport function validateLookahead(options) {\n const lookaheadValidationErrorMessages = options.lookaheadStrategy.validate({\n rules: options.rules,\n tokenTypes: options.tokenTypes,\n grammarName: options.grammarName,\n });\n return map(lookaheadValidationErrorMessages, (errorMessage) => (Object.assign({ type: ParserDefinitionErrorType.CUSTOM_LOOKAHEAD_VALIDATION }, errorMessage)));\n}\nexport function validateGrammar(topLevels, tokenTypes, errMsgProvider, grammarName) {\n const duplicateErrors = flatMap(topLevels, (currTopLevel) => validateDuplicateProductions(currTopLevel, errMsgProvider));\n const termsNamespaceConflictErrors = checkTerminalAndNoneTerminalsNameSpace(topLevels, tokenTypes, errMsgProvider);\n const tooManyAltsErrors = flatMap(topLevels, (curRule) => validateTooManyAlts(curRule, errMsgProvider));\n const duplicateRulesError = flatMap(topLevels, (curRule) => validateRuleDoesNotAlreadyExist(curRule, topLevels, grammarName, errMsgProvider));\n return duplicateErrors.concat(termsNamespaceConflictErrors, tooManyAltsErrors, duplicateRulesError);\n}\nfunction validateDuplicateProductions(topLevelRule, errMsgProvider) {\n const collectorVisitor = new OccurrenceValidationCollector();\n topLevelRule.accept(collectorVisitor);\n const allRuleProductions = collectorVisitor.allProductions;\n const productionGroups = groupBy(allRuleProductions, identifyProductionForDuplicates);\n const duplicates = pickBy(productionGroups, (currGroup) => {\n return currGroup.length > 1;\n });\n const errors = map(values(duplicates), (currDuplicates) => {\n const firstProd = first(currDuplicates);\n const msg = errMsgProvider.buildDuplicateFoundError(topLevelRule, currDuplicates);\n const dslName = getProductionDslName(firstProd);\n const defError = {\n message: msg,\n type: ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,\n ruleName: topLevelRule.name,\n dslName: dslName,\n occurrence: firstProd.idx,\n };\n const param = getExtraProductionArgument(firstProd);\n if (param) {\n defError.parameter = param;\n }\n return defError;\n });\n return errors;\n}\nexport function identifyProductionForDuplicates(prod) {\n return `${getProductionDslName(prod)}_#_${prod.idx}_#_${getExtraProductionArgument(prod)}`;\n}\nfunction getExtraProductionArgument(prod) {\n if (prod instanceof Terminal) {\n return prod.terminalType.name;\n }\n else if (prod instanceof NonTerminal) {\n return prod.nonTerminalName;\n }\n else {\n return \"\";\n }\n}\nexport class OccurrenceValidationCollector extends GAstVisitor {\n constructor() {\n super(...arguments);\n this.allProductions = [];\n }\n visitNonTerminal(subrule) {\n this.allProductions.push(subrule);\n }\n visitOption(option) {\n this.allProductions.push(option);\n }\n visitRepetitionWithSeparator(manySep) {\n this.allProductions.push(manySep);\n }\n visitRepetitionMandatory(atLeastOne) {\n this.allProductions.push(atLeastOne);\n }\n visitRepetitionMandatoryWithSeparator(atLeastOneSep) {\n this.allProductions.push(atLeastOneSep);\n }\n visitRepetition(many) {\n this.allProductions.push(many);\n }\n visitAlternation(or) {\n this.allProductions.push(or);\n }\n visitTerminal(terminal) {\n this.allProductions.push(terminal);\n }\n}\nexport function validateRuleDoesNotAlreadyExist(rule, allRules, className, errMsgProvider) {\n const errors = [];\n const occurrences = reduce(allRules, (result, curRule) => {\n if (curRule.name === rule.name) {\n return result + 1;\n }\n return result;\n }, 0);\n if (occurrences > 1) {\n const errMsg = errMsgProvider.buildDuplicateRuleNameError({\n topLevelRule: rule,\n grammarName: className,\n });\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,\n ruleName: rule.name,\n });\n }\n return errors;\n}\n// TODO: is there anyway to get only the rule names of rules inherited from the super grammars?\n// This is not part of the IGrammarErrorProvider because the validation cannot be performed on\n// The grammar structure, only at runtime.\nexport function validateRuleIsOverridden(ruleName, definedRulesNames, className) {\n const errors = [];\n let errMsg;\n if (!includes(definedRulesNames, ruleName)) {\n errMsg =\n `Invalid rule override, rule: ->${ruleName}<- cannot be overridden in the grammar: ->${className}<-` +\n `as it is not defined in any of the super grammars `;\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,\n ruleName: ruleName,\n });\n }\n return errors;\n}\nexport function validateNoLeftRecursion(topRule, currRule, errMsgProvider, path = []) {\n const errors = [];\n const nextNonTerminals = getFirstNoneTerminal(currRule.definition);\n if (isEmpty(nextNonTerminals)) {\n return [];\n }\n else {\n const ruleName = topRule.name;\n const foundLeftRecursion = includes(nextNonTerminals, topRule);\n if (foundLeftRecursion) {\n errors.push({\n message: errMsgProvider.buildLeftRecursionError({\n topLevelRule: topRule,\n leftRecursionPath: path,\n }),\n type: ParserDefinitionErrorType.LEFT_RECURSION,\n ruleName: ruleName,\n });\n }\n // we are only looking for cyclic paths leading back to the specific topRule\n // other cyclic paths are ignored, we still need this difference to avoid infinite loops...\n const validNextSteps = difference(nextNonTerminals, path.concat([topRule]));\n const errorsFromNextSteps = flatMap(validNextSteps, (currRefRule) => {\n const newPath = clone(path);\n newPath.push(currRefRule);\n return validateNoLeftRecursion(topRule, currRefRule, errMsgProvider, newPath);\n });\n return errors.concat(errorsFromNextSteps);\n }\n}\nexport function getFirstNoneTerminal(definition) {\n let result = [];\n if (isEmpty(definition)) {\n return result;\n }\n const firstProd = first(definition);\n /* istanbul ignore else */\n if (firstProd instanceof NonTerminal) {\n result.push(firstProd.referencedRule);\n }\n else if (firstProd instanceof AlternativeGAST ||\n firstProd instanceof Option ||\n firstProd instanceof RepetitionMandatory ||\n firstProd instanceof RepetitionMandatoryWithSeparator ||\n firstProd instanceof RepetitionWithSeparator ||\n firstProd instanceof Repetition) {\n result = result.concat(getFirstNoneTerminal(firstProd.definition));\n }\n else if (firstProd instanceof Alternation) {\n // each sub definition in alternation is a FLAT\n result = flatten(map(firstProd.definition, (currSubDef) => getFirstNoneTerminal(currSubDef.definition)));\n }\n else if (firstProd instanceof Terminal) {\n // nothing to see, move along\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n const isFirstOptional = isOptionalProd(firstProd);\n const hasMore = definition.length > 1;\n if (isFirstOptional && hasMore) {\n const rest = drop(definition);\n return result.concat(getFirstNoneTerminal(rest));\n }\n else {\n return result;\n }\n}\nclass OrCollector extends GAstVisitor {\n constructor() {\n super(...arguments);\n this.alternations = [];\n }\n visitAlternation(node) {\n this.alternations.push(node);\n }\n}\nexport function validateEmptyOrAlternative(topLevelRule, errMsgProvider) {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n const ors = orCollector.alternations;\n const errors = flatMap(ors, (currOr) => {\n const exceptLast = dropRight(currOr.definition);\n return flatMap(exceptLast, (currAlternative, currAltIdx) => {\n const possibleFirstInAlt = nextPossibleTokensAfter([currAlternative], [], tokenStructuredMatcher, 1);\n if (isEmpty(possibleFirstInAlt)) {\n return [\n {\n message: errMsgProvider.buildEmptyAlternationError({\n topLevelRule: topLevelRule,\n alternation: currOr,\n emptyChoiceIdx: currAltIdx,\n }),\n type: ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,\n ruleName: topLevelRule.name,\n occurrence: currOr.idx,\n alternative: currAltIdx + 1,\n },\n ];\n }\n else {\n return [];\n }\n });\n });\n return errors;\n}\nexport function validateAmbiguousAlternationAlternatives(topLevelRule, globalMaxLookahead, errMsgProvider) {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n let ors = orCollector.alternations;\n // New Handling of ignoring ambiguities\n // - https://github.com/chevrotain/chevrotain/issues/869\n ors = reject(ors, (currOr) => currOr.ignoreAmbiguities === true);\n const errors = flatMap(ors, (currOr) => {\n const currOccurrence = currOr.idx;\n const actualMaxLookahead = currOr.maxLookahead || globalMaxLookahead;\n const alternatives = getLookaheadPathsForOr(currOccurrence, topLevelRule, actualMaxLookahead, currOr);\n const altsAmbiguityErrors = checkAlternativesAmbiguities(alternatives, currOr, topLevelRule, errMsgProvider);\n const altsPrefixAmbiguityErrors = checkPrefixAlternativesAmbiguities(alternatives, currOr, topLevelRule, errMsgProvider);\n return altsAmbiguityErrors.concat(altsPrefixAmbiguityErrors);\n });\n return errors;\n}\nexport class RepetitionCollector extends GAstVisitor {\n constructor() {\n super(...arguments);\n this.allProductions = [];\n }\n visitRepetitionWithSeparator(manySep) {\n this.allProductions.push(manySep);\n }\n visitRepetitionMandatory(atLeastOne) {\n this.allProductions.push(atLeastOne);\n }\n visitRepetitionMandatoryWithSeparator(atLeastOneSep) {\n this.allProductions.push(atLeastOneSep);\n }\n visitRepetition(many) {\n this.allProductions.push(many);\n }\n}\nexport function validateTooManyAlts(topLevelRule, errMsgProvider) {\n const orCollector = new OrCollector();\n topLevelRule.accept(orCollector);\n const ors = orCollector.alternations;\n const errors = flatMap(ors, (currOr) => {\n if (currOr.definition.length > 255) {\n return [\n {\n message: errMsgProvider.buildTooManyAlternativesError({\n topLevelRule: topLevelRule,\n alternation: currOr,\n }),\n type: ParserDefinitionErrorType.TOO_MANY_ALTS,\n ruleName: topLevelRule.name,\n occurrence: currOr.idx,\n },\n ];\n }\n else {\n return [];\n }\n });\n return errors;\n}\nexport function validateSomeNonEmptyLookaheadPath(topLevelRules, maxLookahead, errMsgProvider) {\n const errors = [];\n forEach(topLevelRules, (currTopRule) => {\n const collectorVisitor = new RepetitionCollector();\n currTopRule.accept(collectorVisitor);\n const allRuleProductions = collectorVisitor.allProductions;\n forEach(allRuleProductions, (currProd) => {\n const prodType = getProdType(currProd);\n const actualMaxLookahead = currProd.maxLookahead || maxLookahead;\n const currOccurrence = currProd.idx;\n const paths = getLookaheadPathsForOptionalProd(currOccurrence, currTopRule, prodType, actualMaxLookahead);\n const pathsInsideProduction = paths[0];\n if (isEmpty(flatten(pathsInsideProduction))) {\n const errMsg = errMsgProvider.buildEmptyRepetitionError({\n topLevelRule: currTopRule,\n repetition: currProd,\n });\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,\n ruleName: currTopRule.name,\n });\n }\n });\n });\n return errors;\n}\nfunction checkAlternativesAmbiguities(alternatives, alternation, rule, errMsgProvider) {\n const foundAmbiguousPaths = [];\n const identicalAmbiguities = reduce(alternatives, (result, currAlt, currAltIdx) => {\n // ignore (skip) ambiguities with this alternative\n if (alternation.definition[currAltIdx].ignoreAmbiguities === true) {\n return result;\n }\n forEach(currAlt, (currPath) => {\n const altsCurrPathAppearsIn = [currAltIdx];\n forEach(alternatives, (currOtherAlt, currOtherAltIdx) => {\n if (currAltIdx !== currOtherAltIdx &&\n containsPath(currOtherAlt, currPath) &&\n // ignore (skip) ambiguities with this \"other\" alternative\n alternation.definition[currOtherAltIdx].ignoreAmbiguities !== true) {\n altsCurrPathAppearsIn.push(currOtherAltIdx);\n }\n });\n if (altsCurrPathAppearsIn.length > 1 &&\n !containsPath(foundAmbiguousPaths, currPath)) {\n foundAmbiguousPaths.push(currPath);\n result.push({\n alts: altsCurrPathAppearsIn,\n path: currPath,\n });\n }\n });\n return result;\n }, []);\n const currErrors = map(identicalAmbiguities, (currAmbDescriptor) => {\n const ambgIndices = map(currAmbDescriptor.alts, (currAltIdx) => currAltIdx + 1);\n const currMessage = errMsgProvider.buildAlternationAmbiguityError({\n topLevelRule: rule,\n alternation: alternation,\n ambiguityIndices: ambgIndices,\n prefixPath: currAmbDescriptor.path,\n });\n return {\n message: currMessage,\n type: ParserDefinitionErrorType.AMBIGUOUS_ALTS,\n ruleName: rule.name,\n occurrence: alternation.idx,\n alternatives: currAmbDescriptor.alts,\n };\n });\n return currErrors;\n}\nexport function checkPrefixAlternativesAmbiguities(alternatives, alternation, rule, errMsgProvider) {\n // flatten\n const pathsAndIndices = reduce(alternatives, (result, currAlt, idx) => {\n const currPathsAndIdx = map(currAlt, (currPath) => {\n return { idx: idx, path: currPath };\n });\n return result.concat(currPathsAndIdx);\n }, []);\n const errors = compact(flatMap(pathsAndIndices, (currPathAndIdx) => {\n const alternativeGast = alternation.definition[currPathAndIdx.idx];\n // ignore (skip) ambiguities with this alternative\n if (alternativeGast.ignoreAmbiguities === true) {\n return [];\n }\n const targetIdx = currPathAndIdx.idx;\n const targetPath = currPathAndIdx.path;\n const prefixAmbiguitiesPathsAndIndices = filter(pathsAndIndices, (searchPathAndIdx) => {\n // prefix ambiguity can only be created from lower idx (higher priority) path\n return (\n // ignore (skip) ambiguities with this \"other\" alternative\n alternation.definition[searchPathAndIdx.idx].ignoreAmbiguities !==\n true &&\n searchPathAndIdx.idx < targetIdx &&\n // checking for strict prefix because identical lookaheads\n // will be be detected using a different validation.\n isStrictPrefixOfPath(searchPathAndIdx.path, targetPath));\n });\n const currPathPrefixErrors = map(prefixAmbiguitiesPathsAndIndices, (currAmbPathAndIdx) => {\n const ambgIndices = [currAmbPathAndIdx.idx + 1, targetIdx + 1];\n const occurrence = alternation.idx === 0 ? \"\" : alternation.idx;\n const message = errMsgProvider.buildAlternationPrefixAmbiguityError({\n topLevelRule: rule,\n alternation: alternation,\n ambiguityIndices: ambgIndices,\n prefixPath: currAmbPathAndIdx.path,\n });\n return {\n message: message,\n type: ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,\n ruleName: rule.name,\n occurrence: occurrence,\n alternatives: ambgIndices,\n };\n });\n return currPathPrefixErrors;\n }));\n return errors;\n}\nfunction checkTerminalAndNoneTerminalsNameSpace(topLevels, tokenTypes, errMsgProvider) {\n const errors = [];\n const tokenNames = map(tokenTypes, (currToken) => currToken.name);\n forEach(topLevels, (currRule) => {\n const currRuleName = currRule.name;\n if (includes(tokenNames, currRuleName)) {\n const errMsg = errMsgProvider.buildNamespaceConflictError(currRule);\n errors.push({\n message: errMsg,\n type: ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,\n ruleName: currRuleName,\n });\n }\n });\n return errors;\n}\n//# sourceMappingURL=checks.js.map","import { defaults, forEach } from \"lodash-es\";\nimport { resolveGrammar as orgResolveGrammar } from \"../resolver.js\";\nimport { validateGrammar as orgValidateGrammar } from \"../checks.js\";\nimport { defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider, } from \"../../errors_public.js\";\nexport function resolveGrammar(options) {\n const actualOptions = defaults(options, {\n errMsgProvider: defaultGrammarResolverErrorProvider,\n });\n const topRulesTable = {};\n forEach(options.rules, (rule) => {\n topRulesTable[rule.name] = rule;\n });\n return orgResolveGrammar(topRulesTable, actualOptions.errMsgProvider);\n}\nexport function validateGrammar(options) {\n options = defaults(options, {\n errMsgProvider: defaultGrammarValidatorErrorProvider,\n });\n return orgValidateGrammar(options.rules, options.tokenTypes, options.errMsgProvider, options.grammarName);\n}\n//# sourceMappingURL=gast_resolver_public.js.map","import { includes } from \"lodash-es\";\nconst MISMATCHED_TOKEN_EXCEPTION = \"MismatchedTokenException\";\nconst NO_VIABLE_ALT_EXCEPTION = \"NoViableAltException\";\nconst EARLY_EXIT_EXCEPTION = \"EarlyExitException\";\nconst NOT_ALL_INPUT_PARSED_EXCEPTION = \"NotAllInputParsedException\";\nconst RECOGNITION_EXCEPTION_NAMES = [\n MISMATCHED_TOKEN_EXCEPTION,\n NO_VIABLE_ALT_EXCEPTION,\n EARLY_EXIT_EXCEPTION,\n NOT_ALL_INPUT_PARSED_EXCEPTION,\n];\nObject.freeze(RECOGNITION_EXCEPTION_NAMES);\n// hacks to bypass no support for custom Errors in javascript/typescript\nexport function isRecognitionException(error) {\n // can't do instanceof on hacked custom js exceptions\n return includes(RECOGNITION_EXCEPTION_NAMES, error.name);\n}\nclass RecognitionException extends Error {\n constructor(message, token) {\n super(message);\n this.token = token;\n this.resyncedTokens = [];\n // fix prototype chain when typescript target is ES5\n Object.setPrototypeOf(this, new.target.prototype);\n /* istanbul ignore next - V8 workaround to remove constructor from stacktrace when typescript target is ES5 */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\nexport class MismatchedTokenException extends RecognitionException {\n constructor(message, token, previousToken) {\n super(message, token);\n this.previousToken = previousToken;\n this.name = MISMATCHED_TOKEN_EXCEPTION;\n }\n}\nexport class NoViableAltException extends RecognitionException {\n constructor(message, token, previousToken) {\n super(message, token);\n this.previousToken = previousToken;\n this.name = NO_VIABLE_ALT_EXCEPTION;\n }\n}\nexport class NotAllInputParsedException extends RecognitionException {\n constructor(message, token) {\n super(message, token);\n this.name = NOT_ALL_INPUT_PARSED_EXCEPTION;\n }\n}\nexport class EarlyExitException extends RecognitionException {\n constructor(message, token, previousToken) {\n super(message, token);\n this.previousToken = previousToken;\n this.name = EARLY_EXIT_EXCEPTION;\n }\n}\n//# sourceMappingURL=exceptions_public.js.map","import { createTokenInstance, EOF, tokenMatcher, } from \"../../../scan/tokens_public.js\";\nimport { clone, dropRight, find, flatten, has, includes, isEmpty, map, } from \"lodash-es\";\nimport { MismatchedTokenException } from \"../../exceptions_public.js\";\nimport { IN } from \"../../constants.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\nexport const EOF_FOLLOW_KEY = {};\nexport const IN_RULE_RECOVERY_EXCEPTION = \"InRuleRecoveryException\";\nexport class InRuleRecoveryException extends Error {\n constructor(message) {\n super(message);\n this.name = IN_RULE_RECOVERY_EXCEPTION;\n }\n}\n/**\n * This trait is responsible for the error recovery and fault tolerant logic\n */\nexport class Recoverable {\n initRecoverable(config) {\n this.firstAfterRepMap = {};\n this.resyncFollows = {};\n this.recoveryEnabled = has(config, \"recoveryEnabled\")\n ? config.recoveryEnabled // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.recoveryEnabled;\n // performance optimization, NOOP will be inlined which\n // effectively means that this optional feature does not exist\n // when not used.\n if (this.recoveryEnabled) {\n this.attemptInRepetitionRecovery = attemptInRepetitionRecovery;\n }\n }\n getTokenToInsert(tokType) {\n const tokToInsert = createTokenInstance(tokType, \"\", NaN, NaN, NaN, NaN, NaN, NaN);\n tokToInsert.isInsertedInRecovery = true;\n return tokToInsert;\n }\n canTokenTypeBeInsertedInRecovery(tokType) {\n return true;\n }\n canTokenTypeBeDeletedInRecovery(tokType) {\n return true;\n }\n tryInRepetitionRecovery(grammarRule, grammarRuleArgs, lookAheadFunc, expectedTokType) {\n // TODO: can the resyncTokenType be cached?\n const reSyncTokType = this.findReSyncTokenType();\n const savedLexerState = this.exportLexerState();\n const resyncedTokens = [];\n let passedResyncPoint = false;\n const nextTokenWithoutResync = this.LA(1);\n let currToken = this.LA(1);\n const generateErrorMessage = () => {\n const previousToken = this.LA(0);\n // we are preemptively re-syncing before an error has been detected, therefor we must reproduce\n // the error that would have been thrown\n const msg = this.errorMessageProvider.buildMismatchTokenMessage({\n expected: expectedTokType,\n actual: nextTokenWithoutResync,\n previous: previousToken,\n ruleName: this.getCurrRuleFullName(),\n });\n const error = new MismatchedTokenException(msg, nextTokenWithoutResync, this.LA(0));\n // the first token here will be the original cause of the error, this is not part of the resyncedTokens property.\n error.resyncedTokens = dropRight(resyncedTokens);\n this.SAVE_ERROR(error);\n };\n while (!passedResyncPoint) {\n // re-synced to a point where we can safely exit the repetition/\n if (this.tokenMatcher(currToken, expectedTokType)) {\n generateErrorMessage();\n return; // must return here to avoid reverting the inputIdx\n }\n else if (lookAheadFunc.call(this)) {\n // we skipped enough tokens so we can resync right back into another iteration of the repetition grammar rule\n generateErrorMessage();\n // recursive invocation in other to support multiple re-syncs in the same top level repetition grammar rule\n grammarRule.apply(this, grammarRuleArgs);\n return; // must return here to avoid reverting the inputIdx\n }\n else if (this.tokenMatcher(currToken, reSyncTokType)) {\n passedResyncPoint = true;\n }\n else {\n currToken = this.SKIP_TOKEN();\n this.addToResyncTokens(currToken, resyncedTokens);\n }\n }\n // we were unable to find a CLOSER point to resync inside the Repetition, reset the state.\n // The parsing exception we were trying to prevent will happen in the NEXT parsing step. it may be handled by\n // \"between rules\" resync recovery later in the flow.\n this.importLexerState(savedLexerState);\n }\n shouldInRepetitionRecoveryBeTried(expectTokAfterLastMatch, nextTokIdx, notStuck) {\n // Edge case of arriving from a MANY repetition which is stuck\n // Attempting recovery in this case could cause an infinite loop\n if (notStuck === false) {\n return false;\n }\n // no need to recover, next token is what we expect...\n if (this.tokenMatcher(this.LA(1), expectTokAfterLastMatch)) {\n return false;\n }\n // error recovery is disabled during backtracking as it can make the parser ignore a valid grammar path\n // and prefer some backtracking path that includes recovered errors.\n if (this.isBackTracking()) {\n return false;\n }\n // if we can perform inRule recovery (single token insertion or deletion) we always prefer that recovery algorithm\n // because if it works, it makes the least amount of changes to the input stream (greedy algorithm)\n //noinspection RedundantIfStatementJS\n if (this.canPerformInRuleRecovery(expectTokAfterLastMatch, this.getFollowsForInRuleRecovery(expectTokAfterLastMatch, nextTokIdx))) {\n return false;\n }\n return true;\n }\n // Error Recovery functionality\n getFollowsForInRuleRecovery(tokType, tokIdxInRule) {\n const grammarPath = this.getCurrentGrammarPath(tokType, tokIdxInRule);\n const follows = this.getNextPossibleTokenTypes(grammarPath);\n return follows;\n }\n tryInRuleRecovery(expectedTokType, follows) {\n if (this.canRecoverWithSingleTokenInsertion(expectedTokType, follows)) {\n const tokToInsert = this.getTokenToInsert(expectedTokType);\n return tokToInsert;\n }\n if (this.canRecoverWithSingleTokenDeletion(expectedTokType)) {\n const nextTok = this.SKIP_TOKEN();\n this.consumeToken();\n return nextTok;\n }\n throw new InRuleRecoveryException(\"sad sad panda\");\n }\n canPerformInRuleRecovery(expectedToken, follows) {\n return (this.canRecoverWithSingleTokenInsertion(expectedToken, follows) ||\n this.canRecoverWithSingleTokenDeletion(expectedToken));\n }\n canRecoverWithSingleTokenInsertion(expectedTokType, follows) {\n if (!this.canTokenTypeBeInsertedInRecovery(expectedTokType)) {\n return false;\n }\n // must know the possible following tokens to perform single token insertion\n if (isEmpty(follows)) {\n return false;\n }\n const mismatchedTok = this.LA(1);\n const isMisMatchedTokInFollows = find(follows, (possibleFollowsTokType) => {\n return this.tokenMatcher(mismatchedTok, possibleFollowsTokType);\n }) !== undefined;\n return isMisMatchedTokInFollows;\n }\n canRecoverWithSingleTokenDeletion(expectedTokType) {\n if (!this.canTokenTypeBeDeletedInRecovery(expectedTokType)) {\n return false;\n }\n const isNextTokenWhatIsExpected = this.tokenMatcher(this.LA(2), expectedTokType);\n return isNextTokenWhatIsExpected;\n }\n isInCurrentRuleReSyncSet(tokenTypeIdx) {\n const followKey = this.getCurrFollowKey();\n const currentRuleReSyncSet = this.getFollowSetFromFollowKey(followKey);\n return includes(currentRuleReSyncSet, tokenTypeIdx);\n }\n findReSyncTokenType() {\n const allPossibleReSyncTokTypes = this.flattenFollowSet();\n // this loop will always terminate as EOF is always in the follow stack and also always (virtually) in the input\n let nextToken = this.LA(1);\n let k = 2;\n while (true) {\n const foundMatch = find(allPossibleReSyncTokTypes, (resyncTokType) => {\n const canMatch = tokenMatcher(nextToken, resyncTokType);\n return canMatch;\n });\n if (foundMatch !== undefined) {\n return foundMatch;\n }\n nextToken = this.LA(k);\n k++;\n }\n }\n getCurrFollowKey() {\n // the length is at least one as we always add the ruleName to the stack before invoking the rule.\n if (this.RULE_STACK.length === 1) {\n return EOF_FOLLOW_KEY;\n }\n const currRuleShortName = this.getLastExplicitRuleShortName();\n const currRuleIdx = this.getLastExplicitRuleOccurrenceIndex();\n const prevRuleShortName = this.getPreviousExplicitRuleShortName();\n return {\n ruleName: this.shortRuleNameToFullName(currRuleShortName),\n idxInCallingRule: currRuleIdx,\n inRule: this.shortRuleNameToFullName(prevRuleShortName),\n };\n }\n buildFullFollowKeyStack() {\n const explicitRuleStack = this.RULE_STACK;\n const explicitOccurrenceStack = this.RULE_OCCURRENCE_STACK;\n return map(explicitRuleStack, (ruleName, idx) => {\n if (idx === 0) {\n return EOF_FOLLOW_KEY;\n }\n return {\n ruleName: this.shortRuleNameToFullName(ruleName),\n idxInCallingRule: explicitOccurrenceStack[idx],\n inRule: this.shortRuleNameToFullName(explicitRuleStack[idx - 1]),\n };\n });\n }\n flattenFollowSet() {\n const followStack = map(this.buildFullFollowKeyStack(), (currKey) => {\n return this.getFollowSetFromFollowKey(currKey);\n });\n return flatten(followStack);\n }\n getFollowSetFromFollowKey(followKey) {\n if (followKey === EOF_FOLLOW_KEY) {\n return [EOF];\n }\n const followName = followKey.ruleName + followKey.idxInCallingRule + IN + followKey.inRule;\n return this.resyncFollows[followName];\n }\n // It does not make any sense to include a virtual EOF token in the list of resynced tokens\n // as EOF does not really exist and thus does not contain any useful information (line/column numbers)\n addToResyncTokens(token, resyncTokens) {\n if (!this.tokenMatcher(token, EOF)) {\n resyncTokens.push(token);\n }\n return resyncTokens;\n }\n reSyncTo(tokType) {\n const resyncedTokens = [];\n let nextTok = this.LA(1);\n while (this.tokenMatcher(nextTok, tokType) === false) {\n nextTok = this.SKIP_TOKEN();\n this.addToResyncTokens(nextTok, resyncedTokens);\n }\n // the last token is not part of the error.\n return dropRight(resyncedTokens);\n }\n attemptInRepetitionRecovery(prodFunc, args, lookaheadFunc, dslMethodIdx, prodOccurrence, nextToksWalker, notStuck) {\n // by default this is a NO-OP\n // The actual implementation is with the function(not method) below\n }\n getCurrentGrammarPath(tokType, tokIdxInRule) {\n const pathRuleStack = this.getHumanReadableRuleStack();\n const pathOccurrenceStack = clone(this.RULE_OCCURRENCE_STACK);\n const grammarPath = {\n ruleStack: pathRuleStack,\n occurrenceStack: pathOccurrenceStack,\n lastTok: tokType,\n lastTokOccurrence: tokIdxInRule,\n };\n return grammarPath;\n }\n getHumanReadableRuleStack() {\n return map(this.RULE_STACK, (currShortName) => this.shortRuleNameToFullName(currShortName));\n }\n}\nexport function attemptInRepetitionRecovery(prodFunc, args, lookaheadFunc, dslMethodIdx, prodOccurrence, nextToksWalker, notStuck) {\n const key = this.getKeyForAutomaticLookahead(dslMethodIdx, prodOccurrence);\n let firstAfterRepInfo = this.firstAfterRepMap[key];\n if (firstAfterRepInfo === undefined) {\n const currRuleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[currRuleName];\n const walker = new nextToksWalker(ruleGrammar, prodOccurrence);\n firstAfterRepInfo = walker.startWalking();\n this.firstAfterRepMap[key] = firstAfterRepInfo;\n }\n let expectTokAfterLastMatch = firstAfterRepInfo.token;\n let nextTokIdx = firstAfterRepInfo.occurrence;\n const isEndOfRule = firstAfterRepInfo.isEndOfRule;\n // special edge case of a TOP most repetition after which the input should END.\n // this will force an attempt for inRule recovery in that scenario.\n if (this.RULE_STACK.length === 1 &&\n isEndOfRule &&\n expectTokAfterLastMatch === undefined) {\n expectTokAfterLastMatch = EOF;\n nextTokIdx = 1;\n }\n // We don't have anything to re-sync to...\n // this condition was extracted from `shouldInRepetitionRecoveryBeTried` to act as a type-guard\n if (expectTokAfterLastMatch === undefined || nextTokIdx === undefined) {\n return;\n }\n if (this.shouldInRepetitionRecoveryBeTried(expectTokAfterLastMatch, nextTokIdx, notStuck)) {\n // TODO: performance optimization: instead of passing the original args here, we modify\n // the args param (or create a new one) and make sure the lookahead func is explicitly provided\n // to avoid searching the cache for it once more.\n this.tryInRepetitionRecovery(prodFunc, args, lookaheadFunc, expectTokAfterLastMatch);\n }\n}\n//# sourceMappingURL=recoverable.js.map","// Lookahead keys are 32Bit integers in the form\n// TTTTTTTT-ZZZZZZZZZZZZ-YYYY-XXXXXXXX\n// XXXX -> Occurrence Index bitmap.\n// YYYY -> DSL Method Type bitmap.\n// ZZZZZZZZZZZZZZZ -> Rule short Index bitmap.\n// TTTTTTTTT -> alternation alternative index bitmap\nexport const BITS_FOR_METHOD_TYPE = 4;\nexport const BITS_FOR_OCCURRENCE_IDX = 8;\nexport const BITS_FOR_RULE_IDX = 12;\n// TODO: validation, this means that there may at most 2^8 --> 256 alternatives for an alternation.\nexport const BITS_FOR_ALT_IDX = 8;\n// short string used as part of mapping keys.\n// being short improves the performance when composing KEYS for maps out of these\n// The 5 - 8 bits (16 possible values, are reserved for the DSL method indices)\nexport const OR_IDX = 1 << BITS_FOR_OCCURRENCE_IDX;\nexport const OPTION_IDX = 2 << BITS_FOR_OCCURRENCE_IDX;\nexport const MANY_IDX = 3 << BITS_FOR_OCCURRENCE_IDX;\nexport const AT_LEAST_ONE_IDX = 4 << BITS_FOR_OCCURRENCE_IDX;\nexport const MANY_SEP_IDX = 5 << BITS_FOR_OCCURRENCE_IDX;\nexport const AT_LEAST_ONE_SEP_IDX = 6 << BITS_FOR_OCCURRENCE_IDX;\n// this actually returns a number, but it is always used as a string (object prop key)\nexport function getKeyForAutomaticLookahead(ruleIdx, dslMethodIdx, occurrence) {\n return occurrence | dslMethodIdx | ruleIdx;\n}\nconst BITS_START_FOR_ALT_IDX = 32 - BITS_FOR_ALT_IDX;\n//# sourceMappingURL=keys.js.map","import { flatMap, isEmpty } from \"lodash-es\";\nimport { defaultGrammarValidatorErrorProvider } from \"../errors_public.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser/parser.js\";\nimport { validateAmbiguousAlternationAlternatives, validateEmptyOrAlternative, validateNoLeftRecursion, validateSomeNonEmptyLookaheadPath, } from \"./checks.js\";\nimport { buildAlternativesLookAheadFunc, buildLookaheadFuncForOptionalProd, buildLookaheadFuncForOr, buildSingleAlternativeLookaheadFunction, getProdType, } from \"./lookahead.js\";\nexport class LLkLookaheadStrategy {\n constructor(options) {\n var _a;\n this.maxLookahead =\n (_a = options === null || options === void 0 ? void 0 : options.maxLookahead) !== null && _a !== void 0 ? _a : DEFAULT_PARSER_CONFIG.maxLookahead;\n }\n validate(options) {\n const leftRecursionErrors = this.validateNoLeftRecursion(options.rules);\n if (isEmpty(leftRecursionErrors)) {\n const emptyAltErrors = this.validateEmptyOrAlternatives(options.rules);\n const ambiguousAltsErrors = this.validateAmbiguousAlternationAlternatives(options.rules, this.maxLookahead);\n const emptyRepetitionErrors = this.validateSomeNonEmptyLookaheadPath(options.rules, this.maxLookahead);\n const allErrors = [\n ...leftRecursionErrors,\n ...emptyAltErrors,\n ...ambiguousAltsErrors,\n ...emptyRepetitionErrors,\n ];\n return allErrors;\n }\n return leftRecursionErrors;\n }\n validateNoLeftRecursion(rules) {\n return flatMap(rules, (currTopRule) => validateNoLeftRecursion(currTopRule, currTopRule, defaultGrammarValidatorErrorProvider));\n }\n validateEmptyOrAlternatives(rules) {\n return flatMap(rules, (currTopRule) => validateEmptyOrAlternative(currTopRule, defaultGrammarValidatorErrorProvider));\n }\n validateAmbiguousAlternationAlternatives(rules, maxLookahead) {\n return flatMap(rules, (currTopRule) => validateAmbiguousAlternationAlternatives(currTopRule, maxLookahead, defaultGrammarValidatorErrorProvider));\n }\n validateSomeNonEmptyLookaheadPath(rules, maxLookahead) {\n return validateSomeNonEmptyLookaheadPath(rules, maxLookahead, defaultGrammarValidatorErrorProvider);\n }\n buildLookaheadForAlternation(options) {\n return buildLookaheadFuncForOr(options.prodOccurrence, options.rule, options.maxLookahead, options.hasPredicates, options.dynamicTokensEnabled, buildAlternativesLookAheadFunc);\n }\n buildLookaheadForOptional(options) {\n return buildLookaheadFuncForOptionalProd(options.prodOccurrence, options.rule, options.maxLookahead, options.dynamicTokensEnabled, getProdType(options.prodType), buildSingleAlternativeLookaheadFunction);\n }\n}\n//# sourceMappingURL=llk_lookahead.js.map","import { forEach, has } from \"lodash-es\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\nimport { AT_LEAST_ONE_IDX, AT_LEAST_ONE_SEP_IDX, getKeyForAutomaticLookahead, MANY_IDX, MANY_SEP_IDX, OPTION_IDX, OR_IDX, } from \"../../grammar/keys.js\";\nimport { GAstVisitor, getProductionDslName, } from \"@chevrotain/gast\";\nimport { LLkLookaheadStrategy } from \"../../grammar/llk_lookahead.js\";\n/**\n * Trait responsible for the lookahead related utilities and optimizations.\n */\nexport class LooksAhead {\n initLooksAhead(config) {\n this.dynamicTokensEnabled = has(config, \"dynamicTokensEnabled\")\n ? config.dynamicTokensEnabled // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.dynamicTokensEnabled;\n this.maxLookahead = has(config, \"maxLookahead\")\n ? config.maxLookahead // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.maxLookahead;\n this.lookaheadStrategy = has(config, \"lookaheadStrategy\")\n ? config.lookaheadStrategy // assumes end user provides the correct config value/type\n : new LLkLookaheadStrategy({ maxLookahead: this.maxLookahead });\n this.lookAheadFuncsCache = new Map();\n }\n preComputeLookaheadFunctions(rules) {\n forEach(rules, (currRule) => {\n this.TRACE_INIT(`${currRule.name} Rule Lookahead`, () => {\n const { alternation, repetition, option, repetitionMandatory, repetitionMandatoryWithSeparator, repetitionWithSeparator, } = collectMethods(currRule);\n forEach(alternation, (currProd) => {\n const prodIdx = currProd.idx === 0 ? \"\" : currProd.idx;\n this.TRACE_INIT(`${getProductionDslName(currProd)}${prodIdx}`, () => {\n const laFunc = this.lookaheadStrategy.buildLookaheadForAlternation({\n prodOccurrence: currProd.idx,\n rule: currRule,\n maxLookahead: currProd.maxLookahead || this.maxLookahead,\n hasPredicates: currProd.hasPredicates,\n dynamicTokensEnabled: this.dynamicTokensEnabled,\n });\n const key = getKeyForAutomaticLookahead(this.fullRuleNameToShort[currRule.name], OR_IDX, currProd.idx);\n this.setLaFuncCache(key, laFunc);\n });\n });\n forEach(repetition, (currProd) => {\n this.computeLookaheadFunc(currRule, currProd.idx, MANY_IDX, \"Repetition\", currProd.maxLookahead, getProductionDslName(currProd));\n });\n forEach(option, (currProd) => {\n this.computeLookaheadFunc(currRule, currProd.idx, OPTION_IDX, \"Option\", currProd.maxLookahead, getProductionDslName(currProd));\n });\n forEach(repetitionMandatory, (currProd) => {\n this.computeLookaheadFunc(currRule, currProd.idx, AT_LEAST_ONE_IDX, \"RepetitionMandatory\", currProd.maxLookahead, getProductionDslName(currProd));\n });\n forEach(repetitionMandatoryWithSeparator, (currProd) => {\n this.computeLookaheadFunc(currRule, currProd.idx, AT_LEAST_ONE_SEP_IDX, \"RepetitionMandatoryWithSeparator\", currProd.maxLookahead, getProductionDslName(currProd));\n });\n forEach(repetitionWithSeparator, (currProd) => {\n this.computeLookaheadFunc(currRule, currProd.idx, MANY_SEP_IDX, \"RepetitionWithSeparator\", currProd.maxLookahead, getProductionDslName(currProd));\n });\n });\n });\n }\n computeLookaheadFunc(rule, prodOccurrence, prodKey, prodType, prodMaxLookahead, dslMethodName) {\n this.TRACE_INIT(`${dslMethodName}${prodOccurrence === 0 ? \"\" : prodOccurrence}`, () => {\n const laFunc = this.lookaheadStrategy.buildLookaheadForOptional({\n prodOccurrence,\n rule,\n maxLookahead: prodMaxLookahead || this.maxLookahead,\n dynamicTokensEnabled: this.dynamicTokensEnabled,\n prodType,\n });\n const key = getKeyForAutomaticLookahead(this.fullRuleNameToShort[rule.name], prodKey, prodOccurrence);\n this.setLaFuncCache(key, laFunc);\n });\n }\n // this actually returns a number, but it is always used as a string (object prop key)\n getKeyForAutomaticLookahead(dslMethodIdx, occurrence) {\n const currRuleShortName = this.getLastExplicitRuleShortName();\n return getKeyForAutomaticLookahead(currRuleShortName, dslMethodIdx, occurrence);\n }\n getLaFuncFromCache(key) {\n return this.lookAheadFuncsCache.get(key);\n }\n /* istanbul ignore next */\n setLaFuncCache(key, value) {\n this.lookAheadFuncsCache.set(key, value);\n }\n}\nclass DslMethodsCollectorVisitor extends GAstVisitor {\n constructor() {\n super(...arguments);\n this.dslMethods = {\n option: [],\n alternation: [],\n repetition: [],\n repetitionWithSeparator: [],\n repetitionMandatory: [],\n repetitionMandatoryWithSeparator: [],\n };\n }\n reset() {\n this.dslMethods = {\n option: [],\n alternation: [],\n repetition: [],\n repetitionWithSeparator: [],\n repetitionMandatory: [],\n repetitionMandatoryWithSeparator: [],\n };\n }\n visitOption(option) {\n this.dslMethods.option.push(option);\n }\n visitRepetitionWithSeparator(manySep) {\n this.dslMethods.repetitionWithSeparator.push(manySep);\n }\n visitRepetitionMandatory(atLeastOne) {\n this.dslMethods.repetitionMandatory.push(atLeastOne);\n }\n visitRepetitionMandatoryWithSeparator(atLeastOneSep) {\n this.dslMethods.repetitionMandatoryWithSeparator.push(atLeastOneSep);\n }\n visitRepetition(many) {\n this.dslMethods.repetition.push(many);\n }\n visitAlternation(or) {\n this.dslMethods.alternation.push(or);\n }\n}\nconst collectorVisitor = new DslMethodsCollectorVisitor();\nexport function collectMethods(rule) {\n collectorVisitor.reset();\n rule.accept(collectorVisitor);\n const dslMethods = collectorVisitor.dslMethods;\n // avoid uncleaned references\n collectorVisitor.reset();\n return dslMethods;\n}\n//# sourceMappingURL=looksahead.js.map","/**\n * This nodeLocation tracking is not efficient and should only be used\n * when error recovery is enabled or the Token Vector contains virtual Tokens\n * (e.g, Python Indent/Outdent)\n * As it executes the calculation for every single terminal/nonTerminal\n * and does not rely on the fact the token vector is **sorted**\n */\nexport function setNodeLocationOnlyOffset(currNodeLocation, newLocationInfo) {\n // First (valid) update for this cst node\n if (isNaN(currNodeLocation.startOffset) === true) {\n // assumption1: Token location information is either NaN or a valid number\n // assumption2: Token location information is fully valid if it exist\n // (both start/end offsets exist and are numbers).\n currNodeLocation.startOffset = newLocationInfo.startOffset;\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n }\n // Once the startOffset has been updated with a valid number it should never receive\n // any farther updates as the Token vector is sorted.\n // We still have to check this this condition for every new possible location info\n // because with error recovery enabled we may encounter invalid tokens (NaN location props)\n else if (currNodeLocation.endOffset < newLocationInfo.endOffset === true) {\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n }\n}\n/**\n * This nodeLocation tracking is not efficient and should only be used\n * when error recovery is enabled or the Token Vector contains virtual Tokens\n * (e.g, Python Indent/Outdent)\n * As it executes the calculation for every single terminal/nonTerminal\n * and does not rely on the fact the token vector is **sorted**\n */\nexport function setNodeLocationFull(currNodeLocation, newLocationInfo) {\n // First (valid) update for this cst node\n if (isNaN(currNodeLocation.startOffset) === true) {\n // assumption1: Token location information is either NaN or a valid number\n // assumption2: Token location information is fully valid if it exist\n // (all start/end props exist and are numbers).\n currNodeLocation.startOffset = newLocationInfo.startOffset;\n currNodeLocation.startColumn = newLocationInfo.startColumn;\n currNodeLocation.startLine = newLocationInfo.startLine;\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n currNodeLocation.endColumn = newLocationInfo.endColumn;\n currNodeLocation.endLine = newLocationInfo.endLine;\n }\n // Once the start props has been updated with a valid number it should never receive\n // any farther updates as the Token vector is sorted.\n // We still have to check this this condition for every new possible location info\n // because with error recovery enabled we may encounter invalid tokens (NaN location props)\n else if (currNodeLocation.endOffset < newLocationInfo.endOffset === true) {\n currNodeLocation.endOffset = newLocationInfo.endOffset;\n currNodeLocation.endColumn = newLocationInfo.endColumn;\n currNodeLocation.endLine = newLocationInfo.endLine;\n }\n}\nexport function addTerminalToCst(node, token, tokenTypeName) {\n if (node.children[tokenTypeName] === undefined) {\n node.children[tokenTypeName] = [token];\n }\n else {\n node.children[tokenTypeName].push(token);\n }\n}\nexport function addNoneTerminalToCst(node, ruleName, ruleResult) {\n if (node.children[ruleName] === undefined) {\n node.children[ruleName] = [ruleResult];\n }\n else {\n node.children[ruleName].push(ruleResult);\n }\n}\n//# sourceMappingURL=cst.js.map","const NAME = \"name\";\nexport function defineNameProp(obj, nameValue) {\n Object.defineProperty(obj, NAME, {\n enumerable: false,\n configurable: true,\n writable: false,\n value: nameValue,\n });\n}\n//# sourceMappingURL=lang_extensions.js.map","import { compact, filter, forEach, isArray, isEmpty, isFunction, isUndefined, keys, map, } from \"lodash-es\";\nimport { defineNameProp } from \"../../lang/lang_extensions.js\";\nexport function defaultVisit(ctx, param) {\n const childrenNames = keys(ctx);\n const childrenNamesLength = childrenNames.length;\n for (let i = 0; i < childrenNamesLength; i++) {\n const currChildName = childrenNames[i];\n const currChildArray = ctx[currChildName];\n const currChildArrayLength = currChildArray.length;\n for (let j = 0; j < currChildArrayLength; j++) {\n const currChild = currChildArray[j];\n // distinction between Tokens Children and CstNode children\n if (currChild.tokenTypeIdx === undefined) {\n this[currChild.name](currChild.children, param);\n }\n }\n }\n // defaultVisit does not support generic out param\n}\nexport function createBaseSemanticVisitorConstructor(grammarName, ruleNames) {\n const derivedConstructor = function () { };\n // can be overwritten according to:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/\n // name?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FFunction%2Fname\n defineNameProp(derivedConstructor, grammarName + \"BaseSemantics\");\n const semanticProto = {\n visit: function (cstNode, param) {\n // enables writing more concise visitor methods when CstNode has only a single child\n if (isArray(cstNode)) {\n // A CST Node's children dictionary can never have empty arrays as values\n // If a key is defined there will be at least one element in the corresponding value array.\n cstNode = cstNode[0];\n }\n // enables passing optional CstNodes concisely.\n if (isUndefined(cstNode)) {\n return undefined;\n }\n return this[cstNode.name](cstNode.children, param);\n },\n validateVisitor: function () {\n const semanticDefinitionErrors = validateVisitor(this, ruleNames);\n if (!isEmpty(semanticDefinitionErrors)) {\n const errorMessages = map(semanticDefinitionErrors, (currDefError) => currDefError.msg);\n throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\\n\\t` +\n `${errorMessages.join(\"\\n\\n\").replace(/\\n/g, \"\\n\\t\")}`);\n }\n },\n };\n derivedConstructor.prototype = semanticProto;\n derivedConstructor.prototype.constructor = derivedConstructor;\n derivedConstructor._RULE_NAMES = ruleNames;\n return derivedConstructor;\n}\nexport function createBaseVisitorConstructorWithDefaults(grammarName, ruleNames, baseConstructor) {\n const derivedConstructor = function () { };\n // can be overwritten according to:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/\n // name?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FFunction%2Fname\n defineNameProp(derivedConstructor, grammarName + \"BaseSemanticsWithDefaults\");\n const withDefaultsProto = Object.create(baseConstructor.prototype);\n forEach(ruleNames, (ruleName) => {\n withDefaultsProto[ruleName] = defaultVisit;\n });\n derivedConstructor.prototype = withDefaultsProto;\n derivedConstructor.prototype.constructor = derivedConstructor;\n return derivedConstructor;\n}\nexport var CstVisitorDefinitionError;\n(function (CstVisitorDefinitionError) {\n CstVisitorDefinitionError[CstVisitorDefinitionError[\"REDUNDANT_METHOD\"] = 0] = \"REDUNDANT_METHOD\";\n CstVisitorDefinitionError[CstVisitorDefinitionError[\"MISSING_METHOD\"] = 1] = \"MISSING_METHOD\";\n})(CstVisitorDefinitionError || (CstVisitorDefinitionError = {}));\nexport function validateVisitor(visitorInstance, ruleNames) {\n const missingErrors = validateMissingCstMethods(visitorInstance, ruleNames);\n return missingErrors;\n}\nexport function validateMissingCstMethods(visitorInstance, ruleNames) {\n const missingRuleNames = filter(ruleNames, (currRuleName) => {\n return isFunction(visitorInstance[currRuleName]) === false;\n });\n const errors = map(missingRuleNames, (currRuleName) => {\n return {\n msg: `Missing visitor method: <${currRuleName}> on ${(visitorInstance.constructor.name)} CST Visitor.`,\n type: CstVisitorDefinitionError.MISSING_METHOD,\n methodName: currRuleName,\n };\n });\n return compact(errors);\n}\n//# sourceMappingURL=cst_visitor.js.map","import { addNoneTerminalToCst, addTerminalToCst, setNodeLocationFull, setNodeLocationOnlyOffset, } from \"../../cst/cst.js\";\nimport { has, isUndefined, keys, noop } from \"lodash-es\";\nimport { createBaseSemanticVisitorConstructor, createBaseVisitorConstructorWithDefaults, } from \"../../cst/cst_visitor.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n/**\n * This trait is responsible for the CST building logic.\n */\nexport class TreeBuilder {\n initTreeBuilder(config) {\n this.CST_STACK = [];\n // outputCst is no longer exposed/defined in the pubic API\n this.outputCst = config.outputCst;\n this.nodeLocationTracking = has(config, \"nodeLocationTracking\")\n ? config.nodeLocationTracking // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.nodeLocationTracking;\n if (!this.outputCst) {\n this.cstInvocationStateUpdate = noop;\n this.cstFinallyStateUpdate = noop;\n this.cstPostTerminal = noop;\n this.cstPostNonTerminal = noop;\n this.cstPostRule = noop;\n }\n else {\n if (/full/i.test(this.nodeLocationTracking)) {\n if (this.recoveryEnabled) {\n this.setNodeLocationFromToken = setNodeLocationFull;\n this.setNodeLocationFromNode = setNodeLocationFull;\n this.cstPostRule = noop;\n this.setInitialNodeLocation = this.setInitialNodeLocationFullRecovery;\n }\n else {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = this.cstPostRuleFull;\n this.setInitialNodeLocation = this.setInitialNodeLocationFullRegular;\n }\n }\n else if (/onlyOffset/i.test(this.nodeLocationTracking)) {\n if (this.recoveryEnabled) {\n this.setNodeLocationFromToken = setNodeLocationOnlyOffset;\n this.setNodeLocationFromNode = setNodeLocationOnlyOffset;\n this.cstPostRule = noop;\n this.setInitialNodeLocation =\n this.setInitialNodeLocationOnlyOffsetRecovery;\n }\n else {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = this.cstPostRuleOnlyOffset;\n this.setInitialNodeLocation =\n this.setInitialNodeLocationOnlyOffsetRegular;\n }\n }\n else if (/none/i.test(this.nodeLocationTracking)) {\n this.setNodeLocationFromToken = noop;\n this.setNodeLocationFromNode = noop;\n this.cstPostRule = noop;\n this.setInitialNodeLocation = noop;\n }\n else {\n throw Error(`Invalid config option: \"${config.nodeLocationTracking}\"`);\n }\n }\n }\n setInitialNodeLocationOnlyOffsetRecovery(cstNode) {\n cstNode.location = {\n startOffset: NaN,\n endOffset: NaN,\n };\n }\n setInitialNodeLocationOnlyOffsetRegular(cstNode) {\n cstNode.location = {\n // without error recovery the starting Location of a new CstNode is guaranteed\n // To be the next Token's startOffset (for valid inputs).\n // For invalid inputs there won't be any CSTOutput so this potential\n // inaccuracy does not matter\n startOffset: this.LA(1).startOffset,\n endOffset: NaN,\n };\n }\n setInitialNodeLocationFullRecovery(cstNode) {\n cstNode.location = {\n startOffset: NaN,\n startLine: NaN,\n startColumn: NaN,\n endOffset: NaN,\n endLine: NaN,\n endColumn: NaN,\n };\n }\n /**\n * @see setInitialNodeLocationOnlyOffsetRegular for explanation why this work\n \n * @param cstNode\n */\n setInitialNodeLocationFullRegular(cstNode) {\n const nextToken = this.LA(1);\n cstNode.location = {\n startOffset: nextToken.startOffset,\n startLine: nextToken.startLine,\n startColumn: nextToken.startColumn,\n endOffset: NaN,\n endLine: NaN,\n endColumn: NaN,\n };\n }\n cstInvocationStateUpdate(fullRuleName) {\n const cstNode = {\n name: fullRuleName,\n children: Object.create(null),\n };\n this.setInitialNodeLocation(cstNode);\n this.CST_STACK.push(cstNode);\n }\n cstFinallyStateUpdate() {\n this.CST_STACK.pop();\n }\n cstPostRuleFull(ruleCstNode) {\n // casts to `required` are safe because `cstPostRuleFull` should only be invoked when full location is enabled\n const prevToken = this.LA(0);\n const loc = ruleCstNode.location;\n // If this condition is true it means we consumed at least one Token\n // In this CstNode.\n if (loc.startOffset <= prevToken.startOffset === true) {\n loc.endOffset = prevToken.endOffset;\n loc.endLine = prevToken.endLine;\n loc.endColumn = prevToken.endColumn;\n }\n // \"empty\" CstNode edge case\n else {\n loc.startOffset = NaN;\n loc.startLine = NaN;\n loc.startColumn = NaN;\n }\n }\n cstPostRuleOnlyOffset(ruleCstNode) {\n const prevToken = this.LA(0);\n // `location' is not null because `cstPostRuleOnlyOffset` will only be invoked when location tracking is enabled.\n const loc = ruleCstNode.location;\n // If this condition is true it means we consumed at least one Token\n // In this CstNode.\n if (loc.startOffset <= prevToken.startOffset === true) {\n loc.endOffset = prevToken.endOffset;\n }\n // \"empty\" CstNode edge case\n else {\n loc.startOffset = NaN;\n }\n }\n cstPostTerminal(key, consumedToken) {\n const rootCst = this.CST_STACK[this.CST_STACK.length - 1];\n addTerminalToCst(rootCst, consumedToken, key);\n // This is only used when **both** error recovery and CST Output are enabled.\n this.setNodeLocationFromToken(rootCst.location, consumedToken);\n }\n cstPostNonTerminal(ruleCstResult, ruleName) {\n const preCstNode = this.CST_STACK[this.CST_STACK.length - 1];\n addNoneTerminalToCst(preCstNode, ruleName, ruleCstResult);\n // This is only used when **both** error recovery and CST Output are enabled.\n this.setNodeLocationFromNode(preCstNode.location, ruleCstResult.location);\n }\n getBaseCstVisitorConstructor() {\n if (isUndefined(this.baseCstVisitorConstructor)) {\n const newBaseCstVisitorConstructor = createBaseSemanticVisitorConstructor(this.className, keys(this.gastProductionsCache));\n this.baseCstVisitorConstructor = newBaseCstVisitorConstructor;\n return newBaseCstVisitorConstructor;\n }\n return this.baseCstVisitorConstructor;\n }\n getBaseCstVisitorConstructorWithDefaults() {\n if (isUndefined(this.baseCstVisitorWithDefaultsConstructor)) {\n const newConstructor = createBaseVisitorConstructorWithDefaults(this.className, keys(this.gastProductionsCache), this.getBaseCstVisitorConstructor());\n this.baseCstVisitorWithDefaultsConstructor = newConstructor;\n return newConstructor;\n }\n return this.baseCstVisitorWithDefaultsConstructor;\n }\n getLastExplicitRuleShortName() {\n const ruleStack = this.RULE_STACK;\n return ruleStack[ruleStack.length - 1];\n }\n getPreviousExplicitRuleShortName() {\n const ruleStack = this.RULE_STACK;\n return ruleStack[ruleStack.length - 2];\n }\n getLastExplicitRuleOccurrenceIndex() {\n const occurrenceStack = this.RULE_OCCURRENCE_STACK;\n return occurrenceStack[occurrenceStack.length - 1];\n }\n}\n//# sourceMappingURL=tree_builder.js.map","import { END_OF_FILE } from \"../parser.js\";\n/**\n * Trait responsible abstracting over the interaction with Lexer output (Token vector).\n *\n * This could be generalized to support other kinds of lexers, e.g.\n * - Just in Time Lexing / Lexer-Less parsing.\n * - Streaming Lexer.\n */\nexport class LexerAdapter {\n initLexerAdapter() {\n this.tokVector = [];\n this.tokVectorLength = 0;\n this.currIdx = -1;\n }\n set input(newInput) {\n // @ts-ignore - `this parameter` not supported in setters/getters\n // - https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters\n if (this.selfAnalysisDone !== true) {\n throw Error(`Missing invocation at the end of the Parser's constructor.`);\n }\n // @ts-ignore - `this parameter` not supported in setters/getters\n // - https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters\n this.reset();\n this.tokVector = newInput;\n this.tokVectorLength = newInput.length;\n }\n get input() {\n return this.tokVector;\n }\n // skips a token and returns the next token\n SKIP_TOKEN() {\n if (this.currIdx <= this.tokVector.length - 2) {\n this.consumeToken();\n return this.LA(1);\n }\n else {\n return END_OF_FILE;\n }\n }\n // Lexer (accessing Token vector) related methods which can be overridden to implement lazy lexers\n // or lexers dependent on parser context.\n LA(howMuch) {\n const soughtIdx = this.currIdx + howMuch;\n if (soughtIdx < 0 || this.tokVectorLength <= soughtIdx) {\n return END_OF_FILE;\n }\n else {\n return this.tokVector[soughtIdx];\n }\n }\n consumeToken() {\n this.currIdx++;\n }\n exportLexerState() {\n return this.currIdx;\n }\n importLexerState(newState) {\n this.currIdx = newState;\n }\n resetLexerState() {\n this.currIdx = -1;\n }\n moveToTerminatedState() {\n this.currIdx = this.tokVector.length - 1;\n }\n getLexerPosition() {\n return this.exportLexerState();\n }\n}\n//# sourceMappingURL=lexer_adapter.js.map","import { includes, values } from \"lodash-es\";\nimport { isRecognitionException } from \"../../exceptions_public.js\";\nimport { DEFAULT_RULE_CONFIG, ParserDefinitionErrorType } from \"../parser.js\";\nimport { defaultGrammarValidatorErrorProvider } from \"../../errors_public.js\";\nimport { validateRuleIsOverridden } from \"../../grammar/checks.js\";\nimport { serializeGrammar } from \"@chevrotain/gast\";\n/**\n * This trait is responsible for implementing the public API\n * for defining Chevrotain parsers, i.e:\n * - CONSUME\n * - RULE\n * - OPTION\n * - ...\n */\nexport class RecognizerApi {\n ACTION(impl) {\n return impl.call(this);\n }\n consume(idx, tokType, options) {\n return this.consumeInternal(tokType, idx, options);\n }\n subrule(idx, ruleToCall, options) {\n return this.subruleInternal(ruleToCall, idx, options);\n }\n option(idx, actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, idx);\n }\n or(idx, altsOrOpts) {\n return this.orInternal(altsOrOpts, idx);\n }\n many(idx, actionORMethodDef) {\n return this.manyInternal(idx, actionORMethodDef);\n }\n atLeastOne(idx, actionORMethodDef) {\n return this.atLeastOneInternal(idx, actionORMethodDef);\n }\n CONSUME(tokType, options) {\n return this.consumeInternal(tokType, 0, options);\n }\n CONSUME1(tokType, options) {\n return this.consumeInternal(tokType, 1, options);\n }\n CONSUME2(tokType, options) {\n return this.consumeInternal(tokType, 2, options);\n }\n CONSUME3(tokType, options) {\n return this.consumeInternal(tokType, 3, options);\n }\n CONSUME4(tokType, options) {\n return this.consumeInternal(tokType, 4, options);\n }\n CONSUME5(tokType, options) {\n return this.consumeInternal(tokType, 5, options);\n }\n CONSUME6(tokType, options) {\n return this.consumeInternal(tokType, 6, options);\n }\n CONSUME7(tokType, options) {\n return this.consumeInternal(tokType, 7, options);\n }\n CONSUME8(tokType, options) {\n return this.consumeInternal(tokType, 8, options);\n }\n CONSUME9(tokType, options) {\n return this.consumeInternal(tokType, 9, options);\n }\n SUBRULE(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 0, options);\n }\n SUBRULE1(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 1, options);\n }\n SUBRULE2(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 2, options);\n }\n SUBRULE3(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 3, options);\n }\n SUBRULE4(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 4, options);\n }\n SUBRULE5(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 5, options);\n }\n SUBRULE6(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 6, options);\n }\n SUBRULE7(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 7, options);\n }\n SUBRULE8(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 8, options);\n }\n SUBRULE9(ruleToCall, options) {\n return this.subruleInternal(ruleToCall, 9, options);\n }\n OPTION(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 0);\n }\n OPTION1(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 1);\n }\n OPTION2(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 2);\n }\n OPTION3(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 3);\n }\n OPTION4(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 4);\n }\n OPTION5(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 5);\n }\n OPTION6(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 6);\n }\n OPTION7(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 7);\n }\n OPTION8(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 8);\n }\n OPTION9(actionORMethodDef) {\n return this.optionInternal(actionORMethodDef, 9);\n }\n OR(altsOrOpts) {\n return this.orInternal(altsOrOpts, 0);\n }\n OR1(altsOrOpts) {\n return this.orInternal(altsOrOpts, 1);\n }\n OR2(altsOrOpts) {\n return this.orInternal(altsOrOpts, 2);\n }\n OR3(altsOrOpts) {\n return this.orInternal(altsOrOpts, 3);\n }\n OR4(altsOrOpts) {\n return this.orInternal(altsOrOpts, 4);\n }\n OR5(altsOrOpts) {\n return this.orInternal(altsOrOpts, 5);\n }\n OR6(altsOrOpts) {\n return this.orInternal(altsOrOpts, 6);\n }\n OR7(altsOrOpts) {\n return this.orInternal(altsOrOpts, 7);\n }\n OR8(altsOrOpts) {\n return this.orInternal(altsOrOpts, 8);\n }\n OR9(altsOrOpts) {\n return this.orInternal(altsOrOpts, 9);\n }\n MANY(actionORMethodDef) {\n this.manyInternal(0, actionORMethodDef);\n }\n MANY1(actionORMethodDef) {\n this.manyInternal(1, actionORMethodDef);\n }\n MANY2(actionORMethodDef) {\n this.manyInternal(2, actionORMethodDef);\n }\n MANY3(actionORMethodDef) {\n this.manyInternal(3, actionORMethodDef);\n }\n MANY4(actionORMethodDef) {\n this.manyInternal(4, actionORMethodDef);\n }\n MANY5(actionORMethodDef) {\n this.manyInternal(5, actionORMethodDef);\n }\n MANY6(actionORMethodDef) {\n this.manyInternal(6, actionORMethodDef);\n }\n MANY7(actionORMethodDef) {\n this.manyInternal(7, actionORMethodDef);\n }\n MANY8(actionORMethodDef) {\n this.manyInternal(8, actionORMethodDef);\n }\n MANY9(actionORMethodDef) {\n this.manyInternal(9, actionORMethodDef);\n }\n MANY_SEP(options) {\n this.manySepFirstInternal(0, options);\n }\n MANY_SEP1(options) {\n this.manySepFirstInternal(1, options);\n }\n MANY_SEP2(options) {\n this.manySepFirstInternal(2, options);\n }\n MANY_SEP3(options) {\n this.manySepFirstInternal(3, options);\n }\n MANY_SEP4(options) {\n this.manySepFirstInternal(4, options);\n }\n MANY_SEP5(options) {\n this.manySepFirstInternal(5, options);\n }\n MANY_SEP6(options) {\n this.manySepFirstInternal(6, options);\n }\n MANY_SEP7(options) {\n this.manySepFirstInternal(7, options);\n }\n MANY_SEP8(options) {\n this.manySepFirstInternal(8, options);\n }\n MANY_SEP9(options) {\n this.manySepFirstInternal(9, options);\n }\n AT_LEAST_ONE(actionORMethodDef) {\n this.atLeastOneInternal(0, actionORMethodDef);\n }\n AT_LEAST_ONE1(actionORMethodDef) {\n return this.atLeastOneInternal(1, actionORMethodDef);\n }\n AT_LEAST_ONE2(actionORMethodDef) {\n this.atLeastOneInternal(2, actionORMethodDef);\n }\n AT_LEAST_ONE3(actionORMethodDef) {\n this.atLeastOneInternal(3, actionORMethodDef);\n }\n AT_LEAST_ONE4(actionORMethodDef) {\n this.atLeastOneInternal(4, actionORMethodDef);\n }\n AT_LEAST_ONE5(actionORMethodDef) {\n this.atLeastOneInternal(5, actionORMethodDef);\n }\n AT_LEAST_ONE6(actionORMethodDef) {\n this.atLeastOneInternal(6, actionORMethodDef);\n }\n AT_LEAST_ONE7(actionORMethodDef) {\n this.atLeastOneInternal(7, actionORMethodDef);\n }\n AT_LEAST_ONE8(actionORMethodDef) {\n this.atLeastOneInternal(8, actionORMethodDef);\n }\n AT_LEAST_ONE9(actionORMethodDef) {\n this.atLeastOneInternal(9, actionORMethodDef);\n }\n AT_LEAST_ONE_SEP(options) {\n this.atLeastOneSepFirstInternal(0, options);\n }\n AT_LEAST_ONE_SEP1(options) {\n this.atLeastOneSepFirstInternal(1, options);\n }\n AT_LEAST_ONE_SEP2(options) {\n this.atLeastOneSepFirstInternal(2, options);\n }\n AT_LEAST_ONE_SEP3(options) {\n this.atLeastOneSepFirstInternal(3, options);\n }\n AT_LEAST_ONE_SEP4(options) {\n this.atLeastOneSepFirstInternal(4, options);\n }\n AT_LEAST_ONE_SEP5(options) {\n this.atLeastOneSepFirstInternal(5, options);\n }\n AT_LEAST_ONE_SEP6(options) {\n this.atLeastOneSepFirstInternal(6, options);\n }\n AT_LEAST_ONE_SEP7(options) {\n this.atLeastOneSepFirstInternal(7, options);\n }\n AT_LEAST_ONE_SEP8(options) {\n this.atLeastOneSepFirstInternal(8, options);\n }\n AT_LEAST_ONE_SEP9(options) {\n this.atLeastOneSepFirstInternal(9, options);\n }\n RULE(name, implementation, config = DEFAULT_RULE_CONFIG) {\n if (includes(this.definedRulesNames, name)) {\n const errMsg = defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({\n topLevelRule: name,\n grammarName: this.className,\n });\n const error = {\n message: errMsg,\n type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,\n ruleName: name,\n };\n this.definitionErrors.push(error);\n }\n this.definedRulesNames.push(name);\n const ruleImplementation = this.defineRule(name, implementation, config);\n this[name] = ruleImplementation;\n return ruleImplementation;\n }\n OVERRIDE_RULE(name, impl, config = DEFAULT_RULE_CONFIG) {\n const ruleErrors = validateRuleIsOverridden(name, this.definedRulesNames, this.className);\n this.definitionErrors = this.definitionErrors.concat(ruleErrors);\n const ruleImplementation = this.defineRule(name, impl, config);\n this[name] = ruleImplementation;\n return ruleImplementation;\n }\n BACKTRACK(grammarRule, args) {\n return function () {\n // save org state\n this.isBackTrackingStack.push(1);\n const orgState = this.saveRecogState();\n try {\n grammarRule.apply(this, args);\n // if no exception was thrown we have succeed parsing the rule.\n return true;\n }\n catch (e) {\n if (isRecognitionException(e)) {\n return false;\n }\n else {\n throw e;\n }\n }\n finally {\n this.reloadRecogState(orgState);\n this.isBackTrackingStack.pop();\n }\n };\n }\n // GAST export APIs\n getGAstProductions() {\n return this.gastProductionsCache;\n }\n getSerializedGastProductions() {\n return serializeGrammar(values(this.gastProductionsCache));\n }\n}\n//# sourceMappingURL=recognizer_api.js.map","import { clone, every, flatten, has, isArray, isEmpty, isObject, reduce, uniq, values, } from \"lodash-es\";\nimport { AT_LEAST_ONE_IDX, AT_LEAST_ONE_SEP_IDX, BITS_FOR_METHOD_TYPE, BITS_FOR_OCCURRENCE_IDX, MANY_IDX, MANY_SEP_IDX, OPTION_IDX, OR_IDX, } from \"../../grammar/keys.js\";\nimport { isRecognitionException, MismatchedTokenException, NotAllInputParsedException, } from \"../../exceptions_public.js\";\nimport { PROD_TYPE } from \"../../grammar/lookahead.js\";\nimport { NextTerminalAfterAtLeastOneSepWalker, NextTerminalAfterAtLeastOneWalker, NextTerminalAfterManySepWalker, NextTerminalAfterManyWalker, } from \"../../grammar/interpreter.js\";\nimport { DEFAULT_RULE_CONFIG } from \"../parser.js\";\nimport { IN_RULE_RECOVERY_EXCEPTION } from \"./recoverable.js\";\nimport { EOF } from \"../../../scan/tokens_public.js\";\nimport { augmentTokenTypes, isTokenType, tokenStructuredMatcher, tokenStructuredMatcherNoCategories, } from \"../../../scan/tokens.js\";\n/**\n * This trait is responsible for the runtime parsing engine\n * Used by the official API (recognizer_api.ts)\n */\nexport class RecognizerEngine {\n initRecognizerEngine(tokenVocabulary, config) {\n this.className = this.constructor.name;\n // TODO: would using an ES6 Map or plain object be faster (CST building scenario)\n this.shortRuleNameToFull = {};\n this.fullRuleNameToShort = {};\n this.ruleShortNameIdx = 256;\n this.tokenMatcher = tokenStructuredMatcherNoCategories;\n this.subruleIdx = 0;\n this.definedRulesNames = [];\n this.tokensMap = {};\n this.isBackTrackingStack = [];\n this.RULE_STACK = [];\n this.RULE_OCCURRENCE_STACK = [];\n this.gastProductionsCache = {};\n if (has(config, \"serializedGrammar\")) {\n throw Error(\"The Parser's configuration can no longer contain a property.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\\n\" +\n \"\\tFor Further details.\");\n }\n if (isArray(tokenVocabulary)) {\n // This only checks for Token vocabularies provided as arrays.\n // That is good enough because the main objective is to detect users of pre-V4.0 APIs\n // rather than all edge cases of empty Token vocabularies.\n if (isEmpty(tokenVocabulary)) {\n throw Error(\"A Token Vocabulary cannot be empty.\\n\" +\n \"\\tNote that the first argument for the parser constructor\\n\" +\n \"\\tis no longer a Token vector (since v4.0).\");\n }\n if (typeof tokenVocabulary[0].startOffset === \"number\") {\n throw Error(\"The Parser constructor no longer accepts a token vector as the first argument.\\n\" +\n \"\\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\\n\" +\n \"\\tFor Further details.\");\n }\n }\n if (isArray(tokenVocabulary)) {\n this.tokensMap = reduce(tokenVocabulary, (acc, tokType) => {\n acc[tokType.name] = tokType;\n return acc;\n }, {});\n }\n else if (has(tokenVocabulary, \"modes\") &&\n every(flatten(values(tokenVocabulary.modes)), isTokenType)) {\n const allTokenTypes = flatten(values(tokenVocabulary.modes));\n const uniqueTokens = uniq(allTokenTypes);\n this.tokensMap = reduce(uniqueTokens, (acc, tokType) => {\n acc[tokType.name] = tokType;\n return acc;\n }, {});\n }\n else if (isObject(tokenVocabulary)) {\n this.tokensMap = clone(tokenVocabulary);\n }\n else {\n throw new Error(\" argument must be An Array of Token constructors,\" +\n \" A dictionary of Token constructors or an IMultiModeLexerDefinition\");\n }\n // always add EOF to the tokenNames -> constructors map. it is useful to assure all the input has been\n // parsed with a clear error message (\"expecting EOF but found ...\")\n this.tokensMap[\"EOF\"] = EOF;\n const allTokenTypes = has(tokenVocabulary, \"modes\")\n ? flatten(values(tokenVocabulary.modes))\n : values(tokenVocabulary);\n const noTokenCategoriesUsed = every(allTokenTypes, (tokenConstructor) => isEmpty(tokenConstructor.categoryMatches));\n this.tokenMatcher = noTokenCategoriesUsed\n ? tokenStructuredMatcherNoCategories\n : tokenStructuredMatcher;\n // Because ES2015+ syntax should be supported for creating Token classes\n // We cannot assume that the Token classes were created using the \"extendToken\" utilities\n // Therefore we must augment the Token classes both on Lexer initialization and on Parser initialization\n augmentTokenTypes(values(this.tokensMap));\n }\n defineRule(ruleName, impl, config) {\n if (this.selfAnalysisDone) {\n throw Error(`Grammar rule <${ruleName}> may not be defined after the 'performSelfAnalysis' method has been called'\\n` +\n `Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);\n }\n const resyncEnabled = has(config, \"resyncEnabled\")\n ? config.resyncEnabled // assumes end user provides the correct config value/type\n : DEFAULT_RULE_CONFIG.resyncEnabled;\n const recoveryValueFunc = has(config, \"recoveryValueFunc\")\n ? config.recoveryValueFunc // assumes end user provides the correct config value/type\n : DEFAULT_RULE_CONFIG.recoveryValueFunc;\n // performance optimization: Use small integers as keys for the longer human readable \"full\" rule names.\n // this greatly improves Map access time (as much as 8% for some performance benchmarks).\n const shortName = this.ruleShortNameIdx << (BITS_FOR_METHOD_TYPE + BITS_FOR_OCCURRENCE_IDX);\n this.ruleShortNameIdx++;\n this.shortRuleNameToFull[shortName] = ruleName;\n this.fullRuleNameToShort[ruleName] = shortName;\n let invokeRuleWithTry;\n // Micro optimization, only check the condition **once** on rule definition\n // instead of **every single** rule invocation.\n if (this.outputCst === true) {\n invokeRuleWithTry = function invokeRuleWithTry(...args) {\n try {\n this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);\n impl.apply(this, args);\n const cst = this.CST_STACK[this.CST_STACK.length - 1];\n this.cstPostRule(cst);\n return cst;\n }\n catch (e) {\n return this.invokeRuleCatch(e, resyncEnabled, recoveryValueFunc);\n }\n finally {\n this.ruleFinallyStateUpdate();\n }\n };\n }\n else {\n invokeRuleWithTry = function invokeRuleWithTryCst(...args) {\n try {\n this.ruleInvocationStateUpdate(shortName, ruleName, this.subruleIdx);\n return impl.apply(this, args);\n }\n catch (e) {\n return this.invokeRuleCatch(e, resyncEnabled, recoveryValueFunc);\n }\n finally {\n this.ruleFinallyStateUpdate();\n }\n };\n }\n const wrappedGrammarRule = Object.assign(invokeRuleWithTry, { ruleName, originalGrammarAction: impl });\n return wrappedGrammarRule;\n }\n invokeRuleCatch(e, resyncEnabledConfig, recoveryValueFunc) {\n const isFirstInvokedRule = this.RULE_STACK.length === 1;\n // note the reSync is always enabled for the first rule invocation, because we must always be able to\n // reSync with EOF and just output some INVALID ParseTree\n // during backtracking reSync recovery is disabled, otherwise we can't be certain the backtracking\n // path is really the most valid one\n const reSyncEnabled = resyncEnabledConfig && !this.isBackTracking() && this.recoveryEnabled;\n if (isRecognitionException(e)) {\n const recogError = e;\n if (reSyncEnabled) {\n const reSyncTokType = this.findReSyncTokenType();\n if (this.isInCurrentRuleReSyncSet(reSyncTokType)) {\n recogError.resyncedTokens = this.reSyncTo(reSyncTokType);\n if (this.outputCst) {\n const partialCstResult = this.CST_STACK[this.CST_STACK.length - 1];\n partialCstResult.recoveredNode = true;\n return partialCstResult;\n }\n else {\n return recoveryValueFunc(e);\n }\n }\n else {\n if (this.outputCst) {\n const partialCstResult = this.CST_STACK[this.CST_STACK.length - 1];\n partialCstResult.recoveredNode = true;\n recogError.partialCstResult = partialCstResult;\n }\n // to be handled Further up the call stack\n throw recogError;\n }\n }\n else if (isFirstInvokedRule) {\n // otherwise a Redundant input error will be created as well and we cannot guarantee that this is indeed the case\n this.moveToTerminatedState();\n // the parser should never throw one of its own errors outside its flow.\n // even if error recovery is disabled\n return recoveryValueFunc(e);\n }\n else {\n // to be recovered Further up the call stack\n throw recogError;\n }\n }\n else {\n // some other Error type which we don't know how to handle (for example a built in JavaScript Error)\n throw e;\n }\n }\n // Implementation of parsing DSL\n optionInternal(actionORMethodDef, occurrence) {\n const key = this.getKeyForAutomaticLookahead(OPTION_IDX, occurrence);\n return this.optionInternalLogic(actionORMethodDef, occurrence, key);\n }\n optionInternalLogic(actionORMethodDef, occurrence, key) {\n let lookAheadFunc = this.getLaFuncFromCache(key);\n let action;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookAheadFunc;\n lookAheadFunc = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n }\n else {\n action = actionORMethodDef;\n }\n if (lookAheadFunc.call(this) === true) {\n return action.call(this);\n }\n return undefined;\n }\n atLeastOneInternal(prodOccurrence, actionORMethodDef) {\n const laKey = this.getKeyForAutomaticLookahead(AT_LEAST_ONE_IDX, prodOccurrence);\n return this.atLeastOneInternalLogic(prodOccurrence, actionORMethodDef, laKey);\n }\n atLeastOneInternalLogic(prodOccurrence, actionORMethodDef, key) {\n let lookAheadFunc = this.getLaFuncFromCache(key);\n let action;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookAheadFunc;\n lookAheadFunc = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n }\n else {\n action = actionORMethodDef;\n }\n if (lookAheadFunc.call(this) === true) {\n let notStuck = this.doSingleRepetition(action);\n while (lookAheadFunc.call(this) === true &&\n notStuck === true) {\n notStuck = this.doSingleRepetition(action);\n }\n }\n else {\n throw this.raiseEarlyExitException(prodOccurrence, PROD_TYPE.REPETITION_MANDATORY, actionORMethodDef.ERR_MSG);\n }\n // note that while it may seem that this can cause an error because by using a recursive call to\n // AT_LEAST_ONE we change the grammar to AT_LEAST_TWO, AT_LEAST_THREE ... , the possible recursive call\n // from the tryInRepetitionRecovery(...) will only happen IFF there really are TWO/THREE/.... items.\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(this.atLeastOneInternal, [prodOccurrence, actionORMethodDef], lookAheadFunc, AT_LEAST_ONE_IDX, prodOccurrence, NextTerminalAfterAtLeastOneWalker);\n }\n atLeastOneSepFirstInternal(prodOccurrence, options) {\n const laKey = this.getKeyForAutomaticLookahead(AT_LEAST_ONE_SEP_IDX, prodOccurrence);\n this.atLeastOneSepFirstInternalLogic(prodOccurrence, options, laKey);\n }\n atLeastOneSepFirstInternalLogic(prodOccurrence, options, key) {\n const action = options.DEF;\n const separator = options.SEP;\n const firstIterationLookaheadFunc = this.getLaFuncFromCache(key);\n // 1st iteration\n if (firstIterationLookaheadFunc.call(this) === true) {\n action.call(this);\n // TODO: Optimization can move this function construction into \"attemptInRepetitionRecovery\"\n // because it is only needed in error recovery scenarios.\n const separatorLookAheadFunc = () => {\n return this.tokenMatcher(this.LA(1), separator);\n };\n // 2nd..nth iterations\n while (this.tokenMatcher(this.LA(1), separator) === true) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n // No need for checking infinite loop here due to consuming the separator.\n action.call(this);\n }\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n NextTerminalAfterAtLeastOneSepWalker,\n ], separatorLookAheadFunc, AT_LEAST_ONE_SEP_IDX, prodOccurrence, NextTerminalAfterAtLeastOneSepWalker);\n }\n else {\n throw this.raiseEarlyExitException(prodOccurrence, PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, options.ERR_MSG);\n }\n }\n manyInternal(prodOccurrence, actionORMethodDef) {\n const laKey = this.getKeyForAutomaticLookahead(MANY_IDX, prodOccurrence);\n return this.manyInternalLogic(prodOccurrence, actionORMethodDef, laKey);\n }\n manyInternalLogic(prodOccurrence, actionORMethodDef, key) {\n let lookaheadFunction = this.getLaFuncFromCache(key);\n let action;\n if (typeof actionORMethodDef !== \"function\") {\n action = actionORMethodDef.DEF;\n const predicate = actionORMethodDef.GATE;\n // predicate present\n if (predicate !== undefined) {\n const orgLookaheadFunction = lookaheadFunction;\n lookaheadFunction = () => {\n return predicate.call(this) && orgLookaheadFunction.call(this);\n };\n }\n }\n else {\n action = actionORMethodDef;\n }\n let notStuck = true;\n while (lookaheadFunction.call(this) === true && notStuck === true) {\n notStuck = this.doSingleRepetition(action);\n }\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(this.manyInternal, [prodOccurrence, actionORMethodDef], lookaheadFunction, MANY_IDX, prodOccurrence, NextTerminalAfterManyWalker, \n // The notStuck parameter is only relevant when \"attemptInRepetitionRecovery\"\n // is invoked from manyInternal, in the MANY_SEP case and AT_LEAST_ONE[_SEP]\n // An infinite loop cannot occur as:\n // - Either the lookahead is guaranteed to consume something (Single Token Separator)\n // - AT_LEAST_ONE by definition is guaranteed to consume something (or error out).\n notStuck);\n }\n manySepFirstInternal(prodOccurrence, options) {\n const laKey = this.getKeyForAutomaticLookahead(MANY_SEP_IDX, prodOccurrence);\n this.manySepFirstInternalLogic(prodOccurrence, options, laKey);\n }\n manySepFirstInternalLogic(prodOccurrence, options, key) {\n const action = options.DEF;\n const separator = options.SEP;\n const firstIterationLaFunc = this.getLaFuncFromCache(key);\n // 1st iteration\n if (firstIterationLaFunc.call(this) === true) {\n action.call(this);\n const separatorLookAheadFunc = () => {\n return this.tokenMatcher(this.LA(1), separator);\n };\n // 2nd..nth iterations\n while (this.tokenMatcher(this.LA(1), separator) === true) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n // No need for checking infinite loop here due to consuming the separator.\n action.call(this);\n }\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n NextTerminalAfterManySepWalker,\n ], separatorLookAheadFunc, MANY_SEP_IDX, prodOccurrence, NextTerminalAfterManySepWalker);\n }\n }\n repetitionSepSecondInternal(prodOccurrence, separator, separatorLookAheadFunc, action, nextTerminalAfterWalker) {\n while (separatorLookAheadFunc()) {\n // note that this CONSUME will never enter recovery because\n // the separatorLookAheadFunc checks that the separator really does exist.\n this.CONSUME(separator);\n action.call(this);\n }\n // we can only arrive to this function after an error\n // has occurred (hence the name 'second') so the following\n // IF will always be entered, its possible to remove it...\n // however it is kept to avoid confusion and be consistent.\n // Performance optimization: \"attemptInRepetitionRecovery\" will be defined as NOOP unless recovery is enabled\n /* istanbul ignore else */\n this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [\n prodOccurrence,\n separator,\n separatorLookAheadFunc,\n action,\n nextTerminalAfterWalker,\n ], separatorLookAheadFunc, AT_LEAST_ONE_SEP_IDX, prodOccurrence, nextTerminalAfterWalker);\n }\n doSingleRepetition(action) {\n const beforeIteration = this.getLexerPosition();\n action.call(this);\n const afterIteration = this.getLexerPosition();\n // This boolean will indicate if this repetition progressed\n // or if we are \"stuck\" (potential infinite loop in the repetition).\n return afterIteration > beforeIteration;\n }\n orInternal(altsOrOpts, occurrence) {\n const laKey = this.getKeyForAutomaticLookahead(OR_IDX, occurrence);\n const alts = isArray(altsOrOpts) ? altsOrOpts : altsOrOpts.DEF;\n const laFunc = this.getLaFuncFromCache(laKey);\n const altIdxToTake = laFunc.call(this, alts);\n if (altIdxToTake !== undefined) {\n const chosenAlternative = alts[altIdxToTake];\n return chosenAlternative.ALT.call(this);\n }\n this.raiseNoAltException(occurrence, altsOrOpts.ERR_MSG);\n }\n ruleFinallyStateUpdate() {\n this.RULE_STACK.pop();\n this.RULE_OCCURRENCE_STACK.pop();\n // NOOP when cst is disabled\n this.cstFinallyStateUpdate();\n if (this.RULE_STACK.length === 0 && this.isAtEndOfInput() === false) {\n const firstRedundantTok = this.LA(1);\n const errMsg = this.errorMessageProvider.buildNotAllInputParsedMessage({\n firstRedundant: firstRedundantTok,\n ruleName: this.getCurrRuleFullName(),\n });\n this.SAVE_ERROR(new NotAllInputParsedException(errMsg, firstRedundantTok));\n }\n }\n subruleInternal(ruleToCall, idx, options) {\n let ruleResult;\n try {\n const args = options !== undefined ? options.ARGS : undefined;\n this.subruleIdx = idx;\n ruleResult = ruleToCall.apply(this, args);\n this.cstPostNonTerminal(ruleResult, options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : ruleToCall.ruleName);\n return ruleResult;\n }\n catch (e) {\n throw this.subruleInternalError(e, options, ruleToCall.ruleName);\n }\n }\n subruleInternalError(e, options, ruleName) {\n if (isRecognitionException(e) && e.partialCstResult !== undefined) {\n this.cstPostNonTerminal(e.partialCstResult, options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : ruleName);\n delete e.partialCstResult;\n }\n throw e;\n }\n consumeInternal(tokType, idx, options) {\n let consumedToken;\n try {\n const nextToken = this.LA(1);\n if (this.tokenMatcher(nextToken, tokType) === true) {\n this.consumeToken();\n consumedToken = nextToken;\n }\n else {\n this.consumeInternalError(tokType, nextToken, options);\n }\n }\n catch (eFromConsumption) {\n consumedToken = this.consumeInternalRecovery(tokType, idx, eFromConsumption);\n }\n this.cstPostTerminal(options !== undefined && options.LABEL !== undefined\n ? options.LABEL\n : tokType.name, consumedToken);\n return consumedToken;\n }\n consumeInternalError(tokType, nextToken, options) {\n let msg;\n const previousToken = this.LA(0);\n if (options !== undefined && options.ERR_MSG) {\n msg = options.ERR_MSG;\n }\n else {\n msg = this.errorMessageProvider.buildMismatchTokenMessage({\n expected: tokType,\n actual: nextToken,\n previous: previousToken,\n ruleName: this.getCurrRuleFullName(),\n });\n }\n throw this.SAVE_ERROR(new MismatchedTokenException(msg, nextToken, previousToken));\n }\n consumeInternalRecovery(tokType, idx, eFromConsumption) {\n // no recovery allowed during backtracking, otherwise backtracking may recover invalid syntax and accept it\n // but the original syntax could have been parsed successfully without any backtracking + recovery\n if (this.recoveryEnabled &&\n // TODO: more robust checking of the exception type. Perhaps Typescript extending expressions?\n eFromConsumption.name === \"MismatchedTokenException\" &&\n !this.isBackTracking()) {\n const follows = this.getFollowsForInRuleRecovery(tokType, idx);\n try {\n return this.tryInRuleRecovery(tokType, follows);\n }\n catch (eFromInRuleRecovery) {\n if (eFromInRuleRecovery.name === IN_RULE_RECOVERY_EXCEPTION) {\n // failed in RuleRecovery.\n // throw the original error in order to trigger reSync error recovery\n throw eFromConsumption;\n }\n else {\n throw eFromInRuleRecovery;\n }\n }\n }\n else {\n throw eFromConsumption;\n }\n }\n saveRecogState() {\n // errors is a getter which will clone the errors array\n const savedErrors = this.errors;\n const savedRuleStack = clone(this.RULE_STACK);\n return {\n errors: savedErrors,\n lexerState: this.exportLexerState(),\n RULE_STACK: savedRuleStack,\n CST_STACK: this.CST_STACK,\n };\n }\n reloadRecogState(newState) {\n this.errors = newState.errors;\n this.importLexerState(newState.lexerState);\n this.RULE_STACK = newState.RULE_STACK;\n }\n ruleInvocationStateUpdate(shortName, fullName, idxInCallingRule) {\n this.RULE_OCCURRENCE_STACK.push(idxInCallingRule);\n this.RULE_STACK.push(shortName);\n // NOOP when cst is disabled\n this.cstInvocationStateUpdate(fullName);\n }\n isBackTracking() {\n return this.isBackTrackingStack.length !== 0;\n }\n getCurrRuleFullName() {\n const shortName = this.getLastExplicitRuleShortName();\n return this.shortRuleNameToFull[shortName];\n }\n shortRuleNameToFullName(shortName) {\n return this.shortRuleNameToFull[shortName];\n }\n isAtEndOfInput() {\n return this.tokenMatcher(this.LA(1), EOF);\n }\n reset() {\n this.resetLexerState();\n this.subruleIdx = 0;\n this.isBackTrackingStack = [];\n this.errors = [];\n this.RULE_STACK = [];\n // TODO: extract a specific reset for TreeBuilder trait\n this.CST_STACK = [];\n this.RULE_OCCURRENCE_STACK = [];\n }\n}\n//# sourceMappingURL=recognizer_engine.js.map","import { EarlyExitException, isRecognitionException, NoViableAltException, } from \"../../exceptions_public.js\";\nimport { clone, has } from \"lodash-es\";\nimport { getLookaheadPathsForOptionalProd, getLookaheadPathsForOr, } from \"../../grammar/lookahead.js\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n/**\n * Trait responsible for runtime parsing errors.\n */\nexport class ErrorHandler {\n initErrorHandler(config) {\n this._errors = [];\n this.errorMessageProvider = has(config, \"errorMessageProvider\")\n ? config.errorMessageProvider // assumes end user provides the correct config value/type\n : DEFAULT_PARSER_CONFIG.errorMessageProvider;\n }\n SAVE_ERROR(error) {\n if (isRecognitionException(error)) {\n error.context = {\n ruleStack: this.getHumanReadableRuleStack(),\n ruleOccurrenceStack: clone(this.RULE_OCCURRENCE_STACK),\n };\n this._errors.push(error);\n return error;\n }\n else {\n throw Error(\"Trying to save an Error which is not a RecognitionException\");\n }\n }\n get errors() {\n return clone(this._errors);\n }\n set errors(newErrors) {\n this._errors = newErrors;\n }\n // TODO: consider caching the error message computed information\n raiseEarlyExitException(occurrence, prodType, userDefinedErrMsg) {\n const ruleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[ruleName];\n const lookAheadPathsPerAlternative = getLookaheadPathsForOptionalProd(occurrence, ruleGrammar, prodType, this.maxLookahead);\n const insideProdPaths = lookAheadPathsPerAlternative[0];\n const actualTokens = [];\n for (let i = 1; i <= this.maxLookahead; i++) {\n actualTokens.push(this.LA(i));\n }\n const msg = this.errorMessageProvider.buildEarlyExitMessage({\n expectedIterationPaths: insideProdPaths,\n actual: actualTokens,\n previous: this.LA(0),\n customUserDescription: userDefinedErrMsg,\n ruleName: ruleName,\n });\n throw this.SAVE_ERROR(new EarlyExitException(msg, this.LA(1), this.LA(0)));\n }\n // TODO: consider caching the error message computed information\n raiseNoAltException(occurrence, errMsgTypes) {\n const ruleName = this.getCurrRuleFullName();\n const ruleGrammar = this.getGAstProductions()[ruleName];\n // TODO: getLookaheadPathsForOr can be slow for large enough maxLookahead and certain grammars, consider caching ?\n const lookAheadPathsPerAlternative = getLookaheadPathsForOr(occurrence, ruleGrammar, this.maxLookahead);\n const actualTokens = [];\n for (let i = 1; i <= this.maxLookahead; i++) {\n actualTokens.push(this.LA(i));\n }\n const previousToken = this.LA(0);\n const errMsg = this.errorMessageProvider.buildNoViableAltMessage({\n expectedPathsPerAlt: lookAheadPathsPerAlternative,\n actual: actualTokens,\n previous: previousToken,\n customUserDescription: errMsgTypes,\n ruleName: this.getCurrRuleFullName(),\n });\n throw this.SAVE_ERROR(new NoViableAltException(errMsg, this.LA(1), previousToken));\n }\n}\n//# sourceMappingURL=error_handler.js.map","import { NextAfterTokenWalker, nextPossibleTokensAfter, } from \"../../grammar/interpreter.js\";\nimport { first, isUndefined } from \"lodash-es\";\nexport class ContentAssist {\n initContentAssist() { }\n computeContentAssist(startRuleName, precedingInput) {\n const startRuleGast = this.gastProductionsCache[startRuleName];\n if (isUndefined(startRuleGast)) {\n throw Error(`Rule ->${startRuleName}<- does not exist in this grammar.`);\n }\n return nextPossibleTokensAfter([startRuleGast], precedingInput, this.tokenMatcher, this.maxLookahead);\n }\n // TODO: should this be a member method or a utility? it does not have any state or usage of 'this'...\n // TODO: should this be more explicitly part of the public API?\n getNextPossibleTokenTypes(grammarPath) {\n const topRuleName = first(grammarPath.ruleStack);\n const gastProductions = this.getGAstProductions();\n const topProduction = gastProductions[topRuleName];\n const nextPossibleTokenTypes = new NextAfterTokenWalker(topProduction, grammarPath).startWalking();\n return nextPossibleTokenTypes;\n }\n}\n//# sourceMappingURL=context_assist.js.map","import { forEach, has, isArray, isFunction, last as peek, some, } from \"lodash-es\";\nimport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal, } from \"@chevrotain/gast\";\nimport { Lexer } from \"../../../scan/lexer_public.js\";\nimport { augmentTokenTypes, hasShortKeyProperty, } from \"../../../scan/tokens.js\";\nimport { createToken, createTokenInstance, } from \"../../../scan/tokens_public.js\";\nimport { END_OF_FILE } from \"../parser.js\";\nimport { BITS_FOR_OCCURRENCE_IDX } from \"../../grammar/keys.js\";\nconst RECORDING_NULL_OBJECT = {\n description: \"This Object indicates the Parser is during Recording Phase\",\n};\nObject.freeze(RECORDING_NULL_OBJECT);\nconst HANDLE_SEPARATOR = true;\nconst MAX_METHOD_IDX = Math.pow(2, BITS_FOR_OCCURRENCE_IDX) - 1;\nconst RFT = createToken({ name: \"RECORDING_PHASE_TOKEN\", pattern: Lexer.NA });\naugmentTokenTypes([RFT]);\nconst RECORDING_PHASE_TOKEN = createTokenInstance(RFT, \"This IToken indicates the Parser is in Recording Phase\\n\\t\" +\n \"\" +\n \"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details\", \n// Using \"-1\" instead of NaN (as in EOF) because an actual number is less likely to\n// cause errors if the output of LA or CONSUME would be (incorrectly) used during the recording phase.\n-1, -1, -1, -1, -1, -1);\nObject.freeze(RECORDING_PHASE_TOKEN);\nconst RECORDING_PHASE_CSTNODE = {\n name: \"This CSTNode indicates the Parser is in Recording Phase\\n\\t\" +\n \"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details\",\n children: {},\n};\n/**\n * This trait handles the creation of the GAST structure for Chevrotain Grammars\n */\nexport class GastRecorder {\n initGastRecorder(config) {\n this.recordingProdStack = [];\n this.RECORDING_PHASE = false;\n }\n enableRecording() {\n this.RECORDING_PHASE = true;\n this.TRACE_INIT(\"Enable Recording\", () => {\n /**\n * Warning Dark Voodoo Magic upcoming!\n * We are \"replacing\" the public parsing DSL methods API\n * With **new** alternative implementations on the Parser **instance**\n *\n * So far this is the only way I've found to avoid performance regressions during parsing time.\n * - Approx 30% performance regression was measured on Chrome 75 Canary when attempting to replace the \"internal\"\n * implementations directly instead.\n */\n for (let i = 0; i < 10; i++) {\n const idx = i > 0 ? i : \"\";\n this[`CONSUME${idx}`] = function (arg1, arg2) {\n return this.consumeInternalRecord(arg1, i, arg2);\n };\n this[`SUBRULE${idx}`] = function (arg1, arg2) {\n return this.subruleInternalRecord(arg1, i, arg2);\n };\n this[`OPTION${idx}`] = function (arg1) {\n return this.optionInternalRecord(arg1, i);\n };\n this[`OR${idx}`] = function (arg1) {\n return this.orInternalRecord(arg1, i);\n };\n this[`MANY${idx}`] = function (arg1) {\n this.manyInternalRecord(i, arg1);\n };\n this[`MANY_SEP${idx}`] = function (arg1) {\n this.manySepFirstInternalRecord(i, arg1);\n };\n this[`AT_LEAST_ONE${idx}`] = function (arg1) {\n this.atLeastOneInternalRecord(i, arg1);\n };\n this[`AT_LEAST_ONE_SEP${idx}`] = function (arg1) {\n this.atLeastOneSepFirstInternalRecord(i, arg1);\n };\n }\n // DSL methods with the idx(suffix) as an argument\n this[`consume`] = function (idx, arg1, arg2) {\n return this.consumeInternalRecord(arg1, idx, arg2);\n };\n this[`subrule`] = function (idx, arg1, arg2) {\n return this.subruleInternalRecord(arg1, idx, arg2);\n };\n this[`option`] = function (idx, arg1) {\n return this.optionInternalRecord(arg1, idx);\n };\n this[`or`] = function (idx, arg1) {\n return this.orInternalRecord(arg1, idx);\n };\n this[`many`] = function (idx, arg1) {\n this.manyInternalRecord(idx, arg1);\n };\n this[`atLeastOne`] = function (idx, arg1) {\n this.atLeastOneInternalRecord(idx, arg1);\n };\n this.ACTION = this.ACTION_RECORD;\n this.BACKTRACK = this.BACKTRACK_RECORD;\n this.LA = this.LA_RECORD;\n });\n }\n disableRecording() {\n this.RECORDING_PHASE = false;\n // By deleting these **instance** properties, any future invocation\n // will be deferred to the original methods on the **prototype** object\n // This seems to get rid of any incorrect optimizations that V8 may\n // do during the recording phase.\n this.TRACE_INIT(\"Deleting Recording methods\", () => {\n const that = this;\n for (let i = 0; i < 10; i++) {\n const idx = i > 0 ? i : \"\";\n delete that[`CONSUME${idx}`];\n delete that[`SUBRULE${idx}`];\n delete that[`OPTION${idx}`];\n delete that[`OR${idx}`];\n delete that[`MANY${idx}`];\n delete that[`MANY_SEP${idx}`];\n delete that[`AT_LEAST_ONE${idx}`];\n delete that[`AT_LEAST_ONE_SEP${idx}`];\n }\n delete that[`consume`];\n delete that[`subrule`];\n delete that[`option`];\n delete that[`or`];\n delete that[`many`];\n delete that[`atLeastOne`];\n delete that.ACTION;\n delete that.BACKTRACK;\n delete that.LA;\n });\n }\n // Parser methods are called inside an ACTION?\n // Maybe try/catch/finally on ACTIONS while disabling the recorders state changes?\n // @ts-expect-error -- noop place holder\n ACTION_RECORD(impl) {\n // NO-OP during recording\n }\n // Executing backtracking logic will break our recording logic assumptions\n BACKTRACK_RECORD(grammarRule, args) {\n return () => true;\n }\n // LA is part of the official API and may be used for custom lookahead logic\n // by end users who may forget to wrap it in ACTION or inside a GATE\n LA_RECORD(howMuch) {\n // We cannot use the RECORD_PHASE_TOKEN here because someone may depend\n // On LA return EOF at the end of the input so an infinite loop may occur.\n return END_OF_FILE;\n }\n topLevelRuleRecord(name, def) {\n try {\n const newTopLevelRule = new Rule({ definition: [], name: name });\n newTopLevelRule.name = name;\n this.recordingProdStack.push(newTopLevelRule);\n def.call(this);\n this.recordingProdStack.pop();\n return newTopLevelRule;\n }\n catch (originalError) {\n if (originalError.KNOWN_RECORDER_ERROR !== true) {\n try {\n originalError.message =\n originalError.message +\n '\\n\\t This error was thrown during the \"grammar recording phase\" For more info see:\\n\\t' +\n \"https://chevrotain.io/docs/guide/internals.html#grammar-recording\";\n }\n catch (mutabilityError) {\n // We may not be able to modify the original error object\n throw originalError;\n }\n }\n throw originalError;\n }\n }\n // Implementation of parsing DSL\n optionInternalRecord(actionORMethodDef, occurrence) {\n return recordProd.call(this, Option, actionORMethodDef, occurrence);\n }\n atLeastOneInternalRecord(occurrence, actionORMethodDef) {\n recordProd.call(this, RepetitionMandatory, actionORMethodDef, occurrence);\n }\n atLeastOneSepFirstInternalRecord(occurrence, options) {\n recordProd.call(this, RepetitionMandatoryWithSeparator, options, occurrence, HANDLE_SEPARATOR);\n }\n manyInternalRecord(occurrence, actionORMethodDef) {\n recordProd.call(this, Repetition, actionORMethodDef, occurrence);\n }\n manySepFirstInternalRecord(occurrence, options) {\n recordProd.call(this, RepetitionWithSeparator, options, occurrence, HANDLE_SEPARATOR);\n }\n orInternalRecord(altsOrOpts, occurrence) {\n return recordOrProd.call(this, altsOrOpts, occurrence);\n }\n subruleInternalRecord(ruleToCall, occurrence, options) {\n assertMethodIdxIsValid(occurrence);\n if (!ruleToCall || has(ruleToCall, \"ruleName\") === false) {\n const error = new Error(` argument is invalid` +\n ` expecting a Parser method reference but got: <${JSON.stringify(ruleToCall)}>` +\n `\\n inside top level rule: <${this.recordingProdStack[0].name}>`);\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n const prevProd = peek(this.recordingProdStack);\n const ruleName = ruleToCall.ruleName;\n const newNoneTerminal = new NonTerminal({\n idx: occurrence,\n nonTerminalName: ruleName,\n label: options === null || options === void 0 ? void 0 : options.LABEL,\n // The resolving of the `referencedRule` property will be done once all the Rule's GASTs have been created\n referencedRule: undefined,\n });\n prevProd.definition.push(newNoneTerminal);\n return this.outputCst\n ? RECORDING_PHASE_CSTNODE\n : RECORDING_NULL_OBJECT;\n }\n consumeInternalRecord(tokType, occurrence, options) {\n assertMethodIdxIsValid(occurrence);\n if (!hasShortKeyProperty(tokType)) {\n const error = new Error(` argument is invalid` +\n ` expecting a TokenType reference but got: <${JSON.stringify(tokType)}>` +\n `\\n inside top level rule: <${this.recordingProdStack[0].name}>`);\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n const prevProd = peek(this.recordingProdStack);\n const newNoneTerminal = new Terminal({\n idx: occurrence,\n terminalType: tokType,\n label: options === null || options === void 0 ? void 0 : options.LABEL,\n });\n prevProd.definition.push(newNoneTerminal);\n return RECORDING_PHASE_TOKEN;\n }\n}\nfunction recordProd(prodConstructor, mainProdArg, occurrence, handleSep = false) {\n assertMethodIdxIsValid(occurrence);\n const prevProd = peek(this.recordingProdStack);\n const grammarAction = isFunction(mainProdArg) ? mainProdArg : mainProdArg.DEF;\n const newProd = new prodConstructor({ definition: [], idx: occurrence });\n if (handleSep) {\n newProd.separator = mainProdArg.SEP;\n }\n if (has(mainProdArg, \"MAX_LOOKAHEAD\")) {\n newProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;\n }\n this.recordingProdStack.push(newProd);\n grammarAction.call(this);\n prevProd.definition.push(newProd);\n this.recordingProdStack.pop();\n return RECORDING_NULL_OBJECT;\n}\nfunction recordOrProd(mainProdArg, occurrence) {\n assertMethodIdxIsValid(occurrence);\n const prevProd = peek(this.recordingProdStack);\n // Only an array of alternatives\n const hasOptions = isArray(mainProdArg) === false;\n const alts = hasOptions === false ? mainProdArg : mainProdArg.DEF;\n const newOrProd = new Alternation({\n definition: [],\n idx: occurrence,\n ignoreAmbiguities: hasOptions && mainProdArg.IGNORE_AMBIGUITIES === true,\n });\n if (has(mainProdArg, \"MAX_LOOKAHEAD\")) {\n newOrProd.maxLookahead = mainProdArg.MAX_LOOKAHEAD;\n }\n const hasPredicates = some(alts, (currAlt) => isFunction(currAlt.GATE));\n newOrProd.hasPredicates = hasPredicates;\n prevProd.definition.push(newOrProd);\n forEach(alts, (currAlt) => {\n const currAltFlat = new Alternative({ definition: [] });\n newOrProd.definition.push(currAltFlat);\n if (has(currAlt, \"IGNORE_AMBIGUITIES\")) {\n currAltFlat.ignoreAmbiguities = currAlt.IGNORE_AMBIGUITIES; // assumes end user provides the correct config value/type\n }\n // **implicit** ignoreAmbiguities due to usage of gate\n else if (has(currAlt, \"GATE\")) {\n currAltFlat.ignoreAmbiguities = true;\n }\n this.recordingProdStack.push(currAltFlat);\n currAlt.ALT.call(this);\n this.recordingProdStack.pop();\n });\n return RECORDING_NULL_OBJECT;\n}\nfunction getIdxSuffix(idx) {\n return idx === 0 ? \"\" : `${idx}`;\n}\nfunction assertMethodIdxIsValid(idx) {\n if (idx < 0 || idx > MAX_METHOD_IDX) {\n const error = new Error(\n // The stack trace will contain all the needed details\n `Invalid DSL Method idx value: <${idx}>\\n\\t` +\n `Idx value must be a none negative value smaller than ${MAX_METHOD_IDX + 1}`);\n error.KNOWN_RECORDER_ERROR = true;\n throw error;\n }\n}\n//# sourceMappingURL=gast_recorder.js.map","import { has } from \"lodash-es\";\nimport { timer } from \"@chevrotain/utils\";\nimport { DEFAULT_PARSER_CONFIG } from \"../parser.js\";\n/**\n * Trait responsible for runtime parsing errors.\n */\nexport class PerformanceTracer {\n initPerformanceTracer(config) {\n if (has(config, \"traceInitPerf\")) {\n const userTraceInitPerf = config.traceInitPerf;\n const traceIsNumber = typeof userTraceInitPerf === \"number\";\n this.traceInitMaxIdent = traceIsNumber\n ? userTraceInitPerf\n : Infinity;\n this.traceInitPerf = traceIsNumber\n ? userTraceInitPerf > 0\n : userTraceInitPerf; // assumes end user provides the correct config value/type\n }\n else {\n this.traceInitMaxIdent = 0;\n this.traceInitPerf = DEFAULT_PARSER_CONFIG.traceInitPerf;\n }\n this.traceInitIndent = -1;\n }\n TRACE_INIT(phaseDesc, phaseImpl) {\n // No need to optimize this using NOOP pattern because\n // It is not called in a hot spot...\n if (this.traceInitPerf === true) {\n this.traceInitIndent++;\n const indent = new Array(this.traceInitIndent + 1).join(\"\\t\");\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n console.log(`${indent}--> <${phaseDesc}>`);\n }\n const { time, value } = timer(phaseImpl);\n /* istanbul ignore next - Difficult to reproduce specific performance behavior (>10ms) in tests */\n const traceMethod = time > 10 ? console.warn : console.log;\n if (this.traceInitIndent < this.traceInitMaxIdent) {\n traceMethod(`${indent}<-- <${phaseDesc}> time: ${time}ms`);\n }\n this.traceInitIndent--;\n return value;\n }\n else {\n return phaseImpl();\n }\n }\n}\n//# sourceMappingURL=perf_tracer.js.map","export function applyMixins(derivedCtor, baseCtors) {\n baseCtors.forEach((baseCtor) => {\n const baseProto = baseCtor.prototype;\n Object.getOwnPropertyNames(baseProto).forEach((propName) => {\n if (propName === \"constructor\") {\n return;\n }\n const basePropDescriptor = Object.getOwnPropertyDescriptor(baseProto, propName);\n // Handle Accessors\n if (basePropDescriptor &&\n (basePropDescriptor.get || basePropDescriptor.set)) {\n Object.defineProperty(derivedCtor.prototype, propName, basePropDescriptor);\n }\n else {\n derivedCtor.prototype[propName] = baseCtor.prototype[propName];\n }\n });\n });\n}\n//# sourceMappingURL=apply_mixins.js.map","import { clone, forEach, has, isEmpty, map, values } from \"lodash-es\";\nimport { toFastProperties } from \"@chevrotain/utils\";\nimport { computeAllProdsFollows } from \"../grammar/follow.js\";\nimport { createTokenInstance, EOF } from \"../../scan/tokens_public.js\";\nimport { defaultGrammarValidatorErrorProvider, defaultParserErrorProvider, } from \"../errors_public.js\";\nimport { resolveGrammar, validateGrammar, } from \"../grammar/gast/gast_resolver_public.js\";\nimport { Recoverable } from \"./traits/recoverable.js\";\nimport { LooksAhead } from \"./traits/looksahead.js\";\nimport { TreeBuilder } from \"./traits/tree_builder.js\";\nimport { LexerAdapter } from \"./traits/lexer_adapter.js\";\nimport { RecognizerApi } from \"./traits/recognizer_api.js\";\nimport { RecognizerEngine } from \"./traits/recognizer_engine.js\";\nimport { ErrorHandler } from \"./traits/error_handler.js\";\nimport { ContentAssist } from \"./traits/context_assist.js\";\nimport { GastRecorder } from \"./traits/gast_recorder.js\";\nimport { PerformanceTracer } from \"./traits/perf_tracer.js\";\nimport { applyMixins } from \"./utils/apply_mixins.js\";\nimport { validateLookahead } from \"../grammar/checks.js\";\nexport const END_OF_FILE = createTokenInstance(EOF, \"\", NaN, NaN, NaN, NaN, NaN, NaN);\nObject.freeze(END_OF_FILE);\nexport const DEFAULT_PARSER_CONFIG = Object.freeze({\n recoveryEnabled: false,\n maxLookahead: 3,\n dynamicTokensEnabled: false,\n outputCst: true,\n errorMessageProvider: defaultParserErrorProvider,\n nodeLocationTracking: \"none\",\n traceInitPerf: false,\n skipValidations: false,\n});\nexport const DEFAULT_RULE_CONFIG = Object.freeze({\n recoveryValueFunc: () => undefined,\n resyncEnabled: true,\n});\nexport var ParserDefinitionErrorType;\n(function (ParserDefinitionErrorType) {\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"INVALID_RULE_NAME\"] = 0] = \"INVALID_RULE_NAME\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"DUPLICATE_RULE_NAME\"] = 1] = \"DUPLICATE_RULE_NAME\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"INVALID_RULE_OVERRIDE\"] = 2] = \"INVALID_RULE_OVERRIDE\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"DUPLICATE_PRODUCTIONS\"] = 3] = \"DUPLICATE_PRODUCTIONS\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"UNRESOLVED_SUBRULE_REF\"] = 4] = \"UNRESOLVED_SUBRULE_REF\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"LEFT_RECURSION\"] = 5] = \"LEFT_RECURSION\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"NONE_LAST_EMPTY_ALT\"] = 6] = \"NONE_LAST_EMPTY_ALT\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"AMBIGUOUS_ALTS\"] = 7] = \"AMBIGUOUS_ALTS\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"CONFLICT_TOKENS_RULES_NAMESPACE\"] = 8] = \"CONFLICT_TOKENS_RULES_NAMESPACE\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"INVALID_TOKEN_NAME\"] = 9] = \"INVALID_TOKEN_NAME\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"NO_NON_EMPTY_LOOKAHEAD\"] = 10] = \"NO_NON_EMPTY_LOOKAHEAD\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"AMBIGUOUS_PREFIX_ALTS\"] = 11] = \"AMBIGUOUS_PREFIX_ALTS\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"TOO_MANY_ALTS\"] = 12] = \"TOO_MANY_ALTS\";\n ParserDefinitionErrorType[ParserDefinitionErrorType[\"CUSTOM_LOOKAHEAD_VALIDATION\"] = 13] = \"CUSTOM_LOOKAHEAD_VALIDATION\";\n})(ParserDefinitionErrorType || (ParserDefinitionErrorType = {}));\nexport function EMPTY_ALT(value = undefined) {\n return function () {\n return value;\n };\n}\nexport class Parser {\n /**\n * @deprecated use the **instance** method with the same name instead\n */\n static performSelfAnalysis(parserInstance) {\n throw Error(\"The **static** `performSelfAnalysis` method has been deprecated.\" +\n \"\\t\\nUse the **instance** method with the same name instead.\");\n }\n performSelfAnalysis() {\n this.TRACE_INIT(\"performSelfAnalysis\", () => {\n let defErrorsMsgs;\n this.selfAnalysisDone = true;\n const className = this.className;\n this.TRACE_INIT(\"toFastProps\", () => {\n // Without this voodoo magic the parser would be x3-x4 slower\n // It seems it is better to invoke `toFastProperties` **before**\n // Any manipulations of the `this` object done during the recording phase.\n toFastProperties(this);\n });\n this.TRACE_INIT(\"Grammar Recording\", () => {\n try {\n this.enableRecording();\n // Building the GAST\n forEach(this.definedRulesNames, (currRuleName) => {\n const wrappedRule = this[currRuleName];\n const originalGrammarAction = wrappedRule[\"originalGrammarAction\"];\n let recordedRuleGast;\n this.TRACE_INIT(`${currRuleName} Rule`, () => {\n recordedRuleGast = this.topLevelRuleRecord(currRuleName, originalGrammarAction);\n });\n this.gastProductionsCache[currRuleName] = recordedRuleGast;\n });\n }\n finally {\n this.disableRecording();\n }\n });\n let resolverErrors = [];\n this.TRACE_INIT(\"Grammar Resolving\", () => {\n resolverErrors = resolveGrammar({\n rules: values(this.gastProductionsCache),\n });\n this.definitionErrors = this.definitionErrors.concat(resolverErrors);\n });\n this.TRACE_INIT(\"Grammar Validations\", () => {\n // only perform additional grammar validations IFF no resolving errors have occurred.\n // as unresolved grammar may lead to unhandled runtime exceptions in the follow up validations.\n if (isEmpty(resolverErrors) && this.skipValidations === false) {\n const validationErrors = validateGrammar({\n rules: values(this.gastProductionsCache),\n tokenTypes: values(this.tokensMap),\n errMsgProvider: defaultGrammarValidatorErrorProvider,\n grammarName: className,\n });\n const lookaheadValidationErrors = validateLookahead({\n lookaheadStrategy: this.lookaheadStrategy,\n rules: values(this.gastProductionsCache),\n tokenTypes: values(this.tokensMap),\n grammarName: className,\n });\n this.definitionErrors = this.definitionErrors.concat(validationErrors, lookaheadValidationErrors);\n }\n });\n // this analysis may fail if the grammar is not perfectly valid\n if (isEmpty(this.definitionErrors)) {\n // The results of these computations are not needed unless error recovery is enabled.\n if (this.recoveryEnabled) {\n this.TRACE_INIT(\"computeAllProdsFollows\", () => {\n const allFollows = computeAllProdsFollows(values(this.gastProductionsCache));\n this.resyncFollows = allFollows;\n });\n }\n this.TRACE_INIT(\"ComputeLookaheadFunctions\", () => {\n var _a, _b;\n (_b = (_a = this.lookaheadStrategy).initialize) === null || _b === void 0 ? void 0 : _b.call(_a, {\n rules: values(this.gastProductionsCache),\n });\n this.preComputeLookaheadFunctions(values(this.gastProductionsCache));\n });\n }\n if (!Parser.DEFER_DEFINITION_ERRORS_HANDLING &&\n !isEmpty(this.definitionErrors)) {\n defErrorsMsgs = map(this.definitionErrors, (defError) => defError.message);\n throw new Error(`Parser Definition Errors detected:\\n ${defErrorsMsgs.join(\"\\n-------------------------------\\n\")}`);\n }\n });\n }\n constructor(tokenVocabulary, config) {\n this.definitionErrors = [];\n this.selfAnalysisDone = false;\n const that = this;\n that.initErrorHandler(config);\n that.initLexerAdapter();\n that.initLooksAhead(config);\n that.initRecognizerEngine(tokenVocabulary, config);\n that.initRecoverable(config);\n that.initTreeBuilder(config);\n that.initContentAssist();\n that.initGastRecorder(config);\n that.initPerformanceTracer(config);\n if (has(config, \"ignoredIssues\")) {\n throw new Error(\"The IParserConfig property has been deprecated.\\n\\t\" +\n \"Please use the flag on the relevant DSL method instead.\\n\\t\" +\n \"See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\\n\\t\" +\n \"For further details.\");\n }\n this.skipValidations = has(config, \"skipValidations\")\n ? config.skipValidations // casting assumes the end user passing the correct type\n : DEFAULT_PARSER_CONFIG.skipValidations;\n }\n}\n// Set this flag to true if you don't want the Parser to throw error when problems in it's definition are detected.\n// (normally during the parser's constructor).\n// This is a design time flag, it will not affect the runtime error handling of the parser, just design time errors,\n// for example: duplicate rule names, referencing an unresolved subrule, ect...\n// This flag should not be enabled during normal usage, it is used in special situations, for example when\n// needing to display the parser definition errors in some GUI(online playground).\nParser.DEFER_DEFINITION_ERRORS_HANDLING = false;\napplyMixins(Parser, [\n Recoverable,\n LooksAhead,\n TreeBuilder,\n LexerAdapter,\n RecognizerEngine,\n RecognizerApi,\n ErrorHandler,\n ContentAssist,\n GastRecorder,\n PerformanceTracer,\n]);\nexport class CstParser extends Parser {\n constructor(tokenVocabulary, config = DEFAULT_PARSER_CONFIG) {\n const configClone = clone(config);\n configClone.outputCst = true;\n super(tokenVocabulary, configClone);\n }\n}\nexport class EmbeddedActionsParser extends Parser {\n constructor(tokenVocabulary, config = DEFAULT_PARSER_CONFIG) {\n const configClone = clone(config);\n configClone.outputCst = false;\n super(tokenVocabulary, configClone);\n }\n}\n//# sourceMappingURL=parser.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport map from \"lodash-es/map.js\";\nimport filter from \"lodash-es/filter.js\";\nimport { Alternation, NonTerminal, Option, RepetitionMandatory, Repetition, Terminal, RepetitionWithSeparator, RepetitionMandatoryWithSeparator } from \"chevrotain\";\nexport function buildATNKey(rule, type, occurrence) {\n return `${rule.name}_${type}_${occurrence}`;\n}\nexport const ATN_INVALID_TYPE = 0;\nexport const ATN_BASIC = 1;\nexport const ATN_RULE_START = 2;\nexport const ATN_PLUS_BLOCK_START = 4;\nexport const ATN_STAR_BLOCK_START = 5;\n// Currently unused as the ATN is not used for lexing\nexport const ATN_TOKEN_START = 6;\nexport const ATN_RULE_STOP = 7;\nexport const ATN_BLOCK_END = 8;\nexport const ATN_STAR_LOOP_BACK = 9;\nexport const ATN_STAR_LOOP_ENTRY = 10;\nexport const ATN_PLUS_LOOP_BACK = 11;\nexport const ATN_LOOP_END = 12;\nexport class AbstractTransition {\n constructor(target) {\n this.target = target;\n }\n isEpsilon() {\n return false;\n }\n}\nexport class AtomTransition extends AbstractTransition {\n constructor(target, tokenType) {\n super(target);\n this.tokenType = tokenType;\n }\n}\nexport class EpsilonTransition extends AbstractTransition {\n constructor(target) {\n super(target);\n }\n isEpsilon() {\n return true;\n }\n}\nexport class RuleTransition extends AbstractTransition {\n constructor(ruleStart, rule, followState) {\n super(ruleStart);\n this.rule = rule;\n this.followState = followState;\n }\n isEpsilon() {\n return true;\n }\n}\nexport function createATN(rules) {\n const atn = {\n decisionMap: {},\n decisionStates: [],\n ruleToStartState: new Map(),\n ruleToStopState: new Map(),\n states: []\n };\n createRuleStartAndStopATNStates(atn, rules);\n const ruleLength = rules.length;\n for (let i = 0; i < ruleLength; i++) {\n const rule = rules[i];\n const ruleBlock = block(atn, rule, rule);\n if (ruleBlock === undefined) {\n continue;\n }\n buildRuleHandle(atn, rule, ruleBlock);\n }\n return atn;\n}\nfunction createRuleStartAndStopATNStates(atn, rules) {\n const ruleLength = rules.length;\n for (let i = 0; i < ruleLength; i++) {\n const rule = rules[i];\n const start = newState(atn, rule, undefined, {\n type: ATN_RULE_START\n });\n const stop = newState(atn, rule, undefined, {\n type: ATN_RULE_STOP\n });\n start.stop = stop;\n atn.ruleToStartState.set(rule, start);\n atn.ruleToStopState.set(rule, stop);\n }\n}\nfunction atom(atn, rule, production) {\n if (production instanceof Terminal) {\n return tokenRef(atn, rule, production.terminalType, production);\n }\n else if (production instanceof NonTerminal) {\n return ruleRef(atn, rule, production);\n }\n else if (production instanceof Alternation) {\n return alternation(atn, rule, production);\n }\n else if (production instanceof Option) {\n return option(atn, rule, production);\n }\n else if (production instanceof Repetition) {\n return repetition(atn, rule, production);\n }\n else if (production instanceof RepetitionWithSeparator) {\n return repetitionSep(atn, rule, production);\n }\n else if (production instanceof RepetitionMandatory) {\n return repetitionMandatory(atn, rule, production);\n }\n else if (production instanceof RepetitionMandatoryWithSeparator) {\n return repetitionMandatorySep(atn, rule, production);\n }\n else {\n return block(atn, rule, production);\n }\n}\nfunction repetition(atn, rule, repetition) {\n const starState = newState(atn, rule, repetition, {\n type: ATN_STAR_BLOCK_START\n });\n defineDecisionState(atn, starState);\n const handle = makeAlts(atn, rule, starState, repetition, block(atn, rule, repetition));\n return star(atn, rule, repetition, handle);\n}\nfunction repetitionSep(atn, rule, repetition) {\n const starState = newState(atn, rule, repetition, {\n type: ATN_STAR_BLOCK_START\n });\n defineDecisionState(atn, starState);\n const handle = makeAlts(atn, rule, starState, repetition, block(atn, rule, repetition));\n const sep = tokenRef(atn, rule, repetition.separator, repetition);\n return star(atn, rule, repetition, handle, sep);\n}\nfunction repetitionMandatory(atn, rule, repetition) {\n const plusState = newState(atn, rule, repetition, {\n type: ATN_PLUS_BLOCK_START\n });\n defineDecisionState(atn, plusState);\n const handle = makeAlts(atn, rule, plusState, repetition, block(atn, rule, repetition));\n return plus(atn, rule, repetition, handle);\n}\nfunction repetitionMandatorySep(atn, rule, repetition) {\n const plusState = newState(atn, rule, repetition, {\n type: ATN_PLUS_BLOCK_START\n });\n defineDecisionState(atn, plusState);\n const handle = makeAlts(atn, rule, plusState, repetition, block(atn, rule, repetition));\n const sep = tokenRef(atn, rule, repetition.separator, repetition);\n return plus(atn, rule, repetition, handle, sep);\n}\nfunction alternation(atn, rule, alternation) {\n const start = newState(atn, rule, alternation, {\n type: ATN_BASIC\n });\n defineDecisionState(atn, start);\n const alts = map(alternation.definition, (e) => atom(atn, rule, e));\n const handle = makeAlts(atn, rule, start, alternation, ...alts);\n return handle;\n}\nfunction option(atn, rule, option) {\n const start = newState(atn, rule, option, {\n type: ATN_BASIC\n });\n defineDecisionState(atn, start);\n const handle = makeAlts(atn, rule, start, option, block(atn, rule, option));\n return optional(atn, rule, option, handle);\n}\nfunction block(atn, rule, block) {\n const handles = filter(map(block.definition, (e) => atom(atn, rule, e)), (e) => e !== undefined);\n if (handles.length === 1) {\n return handles[0];\n }\n else if (handles.length === 0) {\n return undefined;\n }\n else {\n return makeBlock(atn, handles);\n }\n}\nfunction plus(atn, rule, plus, handle, sep) {\n const blkStart = handle.left;\n const blkEnd = handle.right;\n const loop = newState(atn, rule, plus, {\n type: ATN_PLUS_LOOP_BACK\n });\n defineDecisionState(atn, loop);\n const end = newState(atn, rule, plus, {\n type: ATN_LOOP_END\n });\n blkStart.loopback = loop;\n end.loopback = loop;\n atn.decisionMap[buildATNKey(rule, sep ? 'RepetitionMandatoryWithSeparator' : 'RepetitionMandatory', plus.idx)] = loop;\n epsilon(blkEnd, loop); // block can see loop back\n // Depending on whether we have a separator we put the exit transition at index 1 or 0\n // This influences the chosen option in the lookahead DFA\n if (sep === undefined) {\n epsilon(loop, blkStart); // loop back to start\n epsilon(loop, end); // exit\n }\n else {\n epsilon(loop, end); // exit\n // loop back to start with separator\n epsilon(loop, sep.left);\n epsilon(sep.right, blkStart);\n }\n return {\n left: blkStart,\n right: end\n };\n}\nfunction star(atn, rule, star, handle, sep) {\n const start = handle.left;\n const end = handle.right;\n const entry = newState(atn, rule, star, {\n type: ATN_STAR_LOOP_ENTRY\n });\n defineDecisionState(atn, entry);\n const loopEnd = newState(atn, rule, star, {\n type: ATN_LOOP_END\n });\n const loop = newState(atn, rule, star, {\n type: ATN_STAR_LOOP_BACK\n });\n entry.loopback = loop;\n loopEnd.loopback = loop;\n epsilon(entry, start); // loop enter edge (alt 2)\n epsilon(entry, loopEnd); // bypass loop edge (alt 1)\n epsilon(end, loop); // block end hits loop back\n if (sep !== undefined) {\n epsilon(loop, loopEnd); // end loop\n // loop back to start of handle using separator\n epsilon(loop, sep.left);\n epsilon(sep.right, start);\n }\n else {\n epsilon(loop, entry); // loop back to entry/exit decision\n }\n atn.decisionMap[buildATNKey(rule, sep ? 'RepetitionWithSeparator' : 'Repetition', star.idx)] = entry;\n return {\n left: entry,\n right: loopEnd\n };\n}\nfunction optional(atn, rule, optional, handle) {\n const start = handle.left;\n const end = handle.right;\n epsilon(start, end);\n atn.decisionMap[buildATNKey(rule, 'Option', optional.idx)] = start;\n return handle;\n}\nfunction defineDecisionState(atn, state) {\n atn.decisionStates.push(state);\n state.decision = atn.decisionStates.length - 1;\n return state.decision;\n}\nfunction makeAlts(atn, rule, start, production, ...alts) {\n const end = newState(atn, rule, production, {\n type: ATN_BLOCK_END,\n start\n });\n start.end = end;\n for (const alt of alts) {\n if (alt !== undefined) {\n // hook alts up to decision block\n epsilon(start, alt.left);\n epsilon(alt.right, end);\n }\n else {\n epsilon(start, end);\n }\n }\n const handle = {\n left: start,\n right: end\n };\n atn.decisionMap[buildATNKey(rule, getProdType(production), production.idx)] = start;\n return handle;\n}\nfunction getProdType(production) {\n if (production instanceof Alternation) {\n return 'Alternation';\n }\n else if (production instanceof Option) {\n return 'Option';\n }\n else if (production instanceof Repetition) {\n return 'Repetition';\n }\n else if (production instanceof RepetitionWithSeparator) {\n return 'RepetitionWithSeparator';\n }\n else if (production instanceof RepetitionMandatory) {\n return 'RepetitionMandatory';\n }\n else if (production instanceof RepetitionMandatoryWithSeparator) {\n return 'RepetitionMandatoryWithSeparator';\n }\n else {\n throw new Error('Invalid production type encountered');\n }\n}\nfunction makeBlock(atn, alts) {\n const altsLength = alts.length;\n for (let i = 0; i < altsLength - 1; i++) {\n const handle = alts[i];\n let transition;\n if (handle.left.transitions.length === 1) {\n transition = handle.left.transitions[0];\n }\n const isRuleTransition = transition instanceof RuleTransition;\n const ruleTransition = transition;\n const next = alts[i + 1].left;\n if (handle.left.type === ATN_BASIC &&\n handle.right.type === ATN_BASIC &&\n transition !== undefined &&\n ((isRuleTransition && ruleTransition.followState === handle.right) ||\n transition.target === handle.right)) {\n // we can avoid epsilon edge to next element\n if (isRuleTransition) {\n ruleTransition.followState = next;\n }\n else {\n transition.target = next;\n }\n removeState(atn, handle.right); // we skipped over this state\n }\n else {\n // need epsilon if previous block's right end node is complex\n epsilon(handle.right, next);\n }\n }\n const first = alts[0];\n const last = alts[altsLength - 1];\n return {\n left: first.left,\n right: last.right\n };\n}\nfunction tokenRef(atn, rule, tokenType, production) {\n const left = newState(atn, rule, production, {\n type: ATN_BASIC\n });\n const right = newState(atn, rule, production, {\n type: ATN_BASIC\n });\n addTransition(left, new AtomTransition(right, tokenType));\n return {\n left,\n right\n };\n}\nfunction ruleRef(atn, currentRule, nonTerminal) {\n const rule = nonTerminal.referencedRule;\n const start = atn.ruleToStartState.get(rule);\n const left = newState(atn, currentRule, nonTerminal, {\n type: ATN_BASIC\n });\n const right = newState(atn, currentRule, nonTerminal, {\n type: ATN_BASIC\n });\n const call = new RuleTransition(start, rule, right);\n addTransition(left, call);\n return {\n left,\n right\n };\n}\nfunction buildRuleHandle(atn, rule, block) {\n const start = atn.ruleToStartState.get(rule);\n epsilon(start, block.left);\n const stop = atn.ruleToStopState.get(rule);\n epsilon(block.right, stop);\n const handle = {\n left: start,\n right: stop\n };\n return handle;\n}\nfunction epsilon(a, b) {\n const transition = new EpsilonTransition(b);\n addTransition(a, transition);\n}\nfunction newState(atn, rule, production, partial) {\n const t = Object.assign({ atn,\n production, epsilonOnlyTransitions: false, rule, transitions: [], nextTokenWithinRule: [], stateNumber: atn.states.length }, partial);\n atn.states.push(t);\n return t;\n}\nfunction addTransition(state, transition) {\n // A single ATN state can only contain epsilon transitions or non-epsilon transitions\n // Because they are never mixed, only setting the property for the first transition is fine\n if (state.transitions.length === 0) {\n state.epsilonOnlyTransitions = transition.isEpsilon();\n }\n state.transitions.push(transition);\n}\nfunction removeState(atn, state) {\n atn.states.splice(atn.states.indexOf(state), 1);\n}\n//# sourceMappingURL=atn.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport map from \"lodash-es/map.js\";\nexport const DFA_ERROR = {};\nexport class ATNConfigSet {\n constructor() {\n this.map = {};\n this.configs = [];\n }\n get size() {\n return this.configs.length;\n }\n finalize() {\n // Empties the map to free up memory\n this.map = {};\n }\n add(config) {\n const key = getATNConfigKey(config);\n // Only add configs which don't exist in our map already\n // While this does not influence the actual algorithm, adding them anyway would massively increase memory consumption\n if (!(key in this.map)) {\n this.map[key] = this.configs.length;\n this.configs.push(config);\n }\n }\n get elements() {\n return this.configs;\n }\n get alts() {\n return map(this.configs, (e) => e.alt);\n }\n get key() {\n let value = \"\";\n for (const k in this.map) {\n value += k + \":\";\n }\n return value;\n }\n}\nexport function getATNConfigKey(config, alt = true) {\n return `${alt ? `a${config.alt}` : \"\"}s${config.state.stateNumber}:${config.stack.map((e) => e.stateNumber.toString()).join(\"_\")}`;\n}\n//# sourceMappingURL=dfa.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { tokenMatcher, tokenLabel, NonTerminal, Alternation, Option, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Repetition, Terminal, LLkLookaheadStrategy, getLookaheadPaths } from \"chevrotain\";\nimport { ATN_RULE_STOP, AtomTransition, buildATNKey, createATN, EpsilonTransition, RuleTransition } from \"./atn.js\";\nimport { ATNConfigSet, DFA_ERROR, getATNConfigKey } from \"./dfa.js\";\nimport min from \"lodash-es/min.js\";\nimport flatMap from \"lodash-es/flatMap.js\";\nimport uniqBy from \"lodash-es/uniqBy.js\";\nimport map from \"lodash-es/map.js\";\nimport flatten from \"lodash-es/flatten.js\";\nimport forEach from \"lodash-es/forEach.js\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\nimport reduce from \"lodash-es/reduce.js\";\nfunction createDFACache(startState, decision) {\n const map = {};\n return (predicateSet) => {\n const key = predicateSet.toString();\n let existing = map[key];\n if (existing !== undefined) {\n return existing;\n }\n else {\n existing = {\n atnStartState: startState,\n decision,\n states: {}\n };\n map[key] = existing;\n return existing;\n }\n };\n}\nclass PredicateSet {\n constructor() {\n this.predicates = [];\n }\n is(index) {\n return index >= this.predicates.length || this.predicates[index];\n }\n set(index, value) {\n this.predicates[index] = value;\n }\n toString() {\n let value = \"\";\n const size = this.predicates.length;\n for (let i = 0; i < size; i++) {\n value += this.predicates[i] === true ? \"1\" : \"0\";\n }\n return value;\n }\n}\nconst EMPTY_PREDICATES = new PredicateSet();\nexport class LLStarLookaheadStrategy extends LLkLookaheadStrategy {\n constructor(options) {\n var _a;\n super();\n this.logging = (_a = options === null || options === void 0 ? void 0 : options.logging) !== null && _a !== void 0 ? _a : ((message) => console.log(message));\n }\n initialize(options) {\n this.atn = createATN(options.rules);\n this.dfas = initATNSimulator(this.atn);\n }\n validateAmbiguousAlternationAlternatives() {\n return [];\n }\n validateEmptyOrAlternatives() {\n return [];\n }\n buildLookaheadForAlternation(options) {\n const { prodOccurrence, rule, hasPredicates, dynamicTokensEnabled } = options;\n const dfas = this.dfas;\n const logging = this.logging;\n const key = buildATNKey(rule, 'Alternation', prodOccurrence);\n const decisionState = this.atn.decisionMap[key];\n const decisionIndex = decisionState.decision;\n const partialAlts = map(getLookaheadPaths({\n maxLookahead: 1,\n occurrence: prodOccurrence,\n prodType: \"Alternation\",\n rule: rule\n }), (currAlt) => map(currAlt, (path) => path[0]));\n if (isLL1Sequence(partialAlts, false) && !dynamicTokensEnabled) {\n const choiceToAlt = reduce(partialAlts, (result, currAlt, idx) => {\n forEach(currAlt, (currTokType) => {\n if (currTokType) {\n result[currTokType.tokenTypeIdx] = idx;\n forEach(currTokType.categoryMatches, (currExtendingType) => {\n result[currExtendingType] = idx;\n });\n }\n });\n return result;\n }, {});\n if (hasPredicates) {\n return function (orAlts) {\n var _a;\n const nextToken = this.LA(1);\n const prediction = choiceToAlt[nextToken.tokenTypeIdx];\n if (orAlts !== undefined && prediction !== undefined) {\n const gate = (_a = orAlts[prediction]) === null || _a === void 0 ? void 0 : _a.GATE;\n if (gate !== undefined && gate.call(this) === false) {\n return undefined;\n }\n }\n return prediction;\n };\n }\n else {\n return function () {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx];\n };\n }\n }\n else if (hasPredicates) {\n return function (orAlts) {\n const predicates = new PredicateSet();\n const length = orAlts === undefined ? 0 : orAlts.length;\n for (let i = 0; i < length; i++) {\n const gate = orAlts === null || orAlts === void 0 ? void 0 : orAlts[i].GATE;\n predicates.set(i, gate === undefined || gate.call(this));\n }\n const result = adaptivePredict.call(this, dfas, decisionIndex, predicates, logging);\n return typeof result === 'number' ? result : undefined;\n };\n }\n else {\n return function () {\n const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging);\n return typeof result === 'number' ? result : undefined;\n };\n }\n }\n buildLookaheadForOptional(options) {\n const { prodOccurrence, rule, prodType, dynamicTokensEnabled } = options;\n const dfas = this.dfas;\n const logging = this.logging;\n const key = buildATNKey(rule, prodType, prodOccurrence);\n const decisionState = this.atn.decisionMap[key];\n const decisionIndex = decisionState.decision;\n const alts = map(getLookaheadPaths({\n maxLookahead: 1,\n occurrence: prodOccurrence,\n prodType,\n rule\n }), (e) => {\n return map(e, (g) => g[0]);\n });\n if (isLL1Sequence(alts) && alts[0][0] && !dynamicTokensEnabled) {\n const alt = alts[0];\n const singleTokensTypes = flatten(alt);\n if (singleTokensTypes.length === 1 &&\n isEmpty(singleTokensTypes[0].categoryMatches)) {\n const expectedTokenType = singleTokensTypes[0];\n const expectedTokenUniqueKey = expectedTokenType.tokenTypeIdx;\n return function () {\n return this.LA(1).tokenTypeIdx === expectedTokenUniqueKey;\n };\n }\n else {\n const choiceToAlt = reduce(singleTokensTypes, (result, currTokType) => {\n if (currTokType !== undefined) {\n result[currTokType.tokenTypeIdx] = true;\n forEach(currTokType.categoryMatches, (currExtendingType) => {\n result[currExtendingType] = true;\n });\n }\n return result;\n }, {});\n return function () {\n const nextToken = this.LA(1);\n return choiceToAlt[nextToken.tokenTypeIdx] === true;\n };\n }\n }\n return function () {\n const result = adaptivePredict.call(this, dfas, decisionIndex, EMPTY_PREDICATES, logging);\n return typeof result === \"object\" ? false : result === 0;\n };\n }\n}\nfunction isLL1Sequence(sequences, allowEmpty = true) {\n const fullSet = new Set();\n for (const alt of sequences) {\n const altSet = new Set();\n for (const tokType of alt) {\n if (tokType === undefined) {\n if (allowEmpty) {\n // Epsilon production encountered\n break;\n }\n else {\n return false;\n }\n }\n const indices = [tokType.tokenTypeIdx].concat(tokType.categoryMatches);\n for (const index of indices) {\n if (fullSet.has(index)) {\n if (!altSet.has(index)) {\n return false;\n }\n }\n else {\n fullSet.add(index);\n altSet.add(index);\n }\n }\n }\n }\n return true;\n}\nfunction initATNSimulator(atn) {\n const decisionLength = atn.decisionStates.length;\n const decisionToDFA = Array(decisionLength);\n for (let i = 0; i < decisionLength; i++) {\n decisionToDFA[i] = createDFACache(atn.decisionStates[i], i);\n }\n return decisionToDFA;\n}\nfunction adaptivePredict(dfaCaches, decision, predicateSet, logging) {\n const dfa = dfaCaches[decision](predicateSet);\n let start = dfa.start;\n if (start === undefined) {\n const closure = computeStartState(dfa.atnStartState);\n start = addDFAState(dfa, newDFAState(closure));\n dfa.start = start;\n }\n const alt = performLookahead.apply(this, [dfa, start, predicateSet, logging]);\n return alt;\n}\nfunction performLookahead(dfa, s0, predicateSet, logging) {\n let previousD = s0;\n let i = 1;\n const path = [];\n let t = this.LA(i++);\n while (true) {\n let d = getExistingTargetState(previousD, t);\n if (d === undefined) {\n d = computeLookaheadTarget.apply(this, [dfa, previousD, t, i, predicateSet, logging]);\n }\n if (d === DFA_ERROR) {\n return buildAdaptivePredictError(path, previousD, t);\n }\n if (d.isAcceptState === true) {\n return d.prediction;\n }\n previousD = d;\n path.push(t);\n t = this.LA(i++);\n }\n}\nfunction computeLookaheadTarget(dfa, previousD, token, lookahead, predicateSet, logging) {\n const reach = computeReachSet(previousD.configs, token, predicateSet);\n if (reach.size === 0) {\n addDFAEdge(dfa, previousD, token, DFA_ERROR);\n return DFA_ERROR;\n }\n let newState = newDFAState(reach);\n const predictedAlt = getUniqueAlt(reach, predicateSet);\n if (predictedAlt !== undefined) {\n newState.isAcceptState = true;\n newState.prediction = predictedAlt;\n newState.configs.uniqueAlt = predictedAlt;\n }\n else if (hasConflictTerminatingPrediction(reach)) {\n const prediction = min(reach.alts);\n newState.isAcceptState = true;\n newState.prediction = prediction;\n newState.configs.uniqueAlt = prediction;\n reportLookaheadAmbiguity.apply(this, [dfa, lookahead, reach.alts, logging]);\n }\n newState = addDFAEdge(dfa, previousD, token, newState);\n return newState;\n}\nfunction reportLookaheadAmbiguity(dfa, lookahead, ambiguityIndices, logging) {\n const prefixPath = [];\n for (let i = 1; i <= lookahead; i++) {\n prefixPath.push(this.LA(i).tokenType);\n }\n const atnState = dfa.atnStartState;\n const topLevelRule = atnState.rule;\n const production = atnState.production;\n const message = buildAmbiguityError({\n topLevelRule,\n ambiguityIndices,\n production,\n prefixPath\n });\n logging(message);\n}\nfunction buildAmbiguityError(options) {\n const pathMsg = map(options.prefixPath, (currtok) => tokenLabel(currtok)).join(\", \");\n const occurrence = options.production.idx === 0 ? \"\" : options.production.idx;\n let currMessage = `Ambiguous Alternatives Detected: <${options.ambiguityIndices.join(\", \")}> in <${getProductionDslName(options.production)}${occurrence}>` +\n ` inside <${options.topLevelRule.name}> Rule,\\n` +\n `<${pathMsg}> may appears as a prefix path in all these alternatives.\\n`;\n currMessage =\n currMessage +\n `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\\n` +\n `For Further details.`;\n return currMessage;\n}\nfunction getProductionDslName(prod) {\n if (prod instanceof NonTerminal) {\n return \"SUBRULE\";\n }\n else if (prod instanceof Option) {\n return \"OPTION\";\n }\n else if (prod instanceof Alternation) {\n return \"OR\";\n }\n else if (prod instanceof RepetitionMandatory) {\n return \"AT_LEAST_ONE\";\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return \"AT_LEAST_ONE_SEP\";\n }\n else if (prod instanceof RepetitionWithSeparator) {\n return \"MANY_SEP\";\n }\n else if (prod instanceof Repetition) {\n return \"MANY\";\n }\n else if (prod instanceof Terminal) {\n return \"CONSUME\";\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction buildAdaptivePredictError(path, previous, current) {\n const nextTransitions = flatMap(previous.configs.elements, (e) => e.state.transitions);\n const nextTokenTypes = uniqBy(nextTransitions\n .filter((e) => e instanceof AtomTransition)\n .map((e) => e.tokenType), (e) => e.tokenTypeIdx);\n return {\n actualToken: current,\n possibleTokenTypes: nextTokenTypes,\n tokenPath: path\n };\n}\nfunction getExistingTargetState(state, token) {\n return state.edges[token.tokenTypeIdx];\n}\nfunction computeReachSet(configs, token, predicateSet) {\n const intermediate = new ATNConfigSet();\n const skippedStopStates = [];\n for (const c of configs.elements) {\n if (predicateSet.is(c.alt) === false) {\n continue;\n }\n if (c.state.type === ATN_RULE_STOP) {\n skippedStopStates.push(c);\n continue;\n }\n const transitionLength = c.state.transitions.length;\n for (let i = 0; i < transitionLength; i++) {\n const transition = c.state.transitions[i];\n const target = getReachableTarget(transition, token);\n if (target !== undefined) {\n intermediate.add({\n state: target,\n alt: c.alt,\n stack: c.stack\n });\n }\n }\n }\n let reach;\n if (skippedStopStates.length === 0 && intermediate.size === 1) {\n reach = intermediate;\n }\n if (reach === undefined) {\n reach = new ATNConfigSet();\n for (const c of intermediate.elements) {\n closure(c, reach);\n }\n }\n if (skippedStopStates.length > 0 && !hasConfigInRuleStopState(reach)) {\n for (const c of skippedStopStates) {\n reach.add(c);\n }\n }\n return reach;\n}\nfunction getReachableTarget(transition, token) {\n if (transition instanceof AtomTransition &&\n tokenMatcher(token, transition.tokenType)) {\n return transition.target;\n }\n return undefined;\n}\nfunction getUniqueAlt(configs, predicateSet) {\n let alt;\n for (const c of configs.elements) {\n if (predicateSet.is(c.alt) === true) {\n if (alt === undefined) {\n alt = c.alt;\n }\n else if (alt !== c.alt) {\n return undefined;\n }\n }\n }\n return alt;\n}\nfunction newDFAState(closure) {\n return {\n configs: closure,\n edges: {},\n isAcceptState: false,\n prediction: -1\n };\n}\nfunction addDFAEdge(dfa, from, token, to) {\n to = addDFAState(dfa, to);\n from.edges[token.tokenTypeIdx] = to;\n return to;\n}\nfunction addDFAState(dfa, state) {\n if (state === DFA_ERROR) {\n return state;\n }\n // Repetitions have the same config set\n // Therefore, storing the key of the config in a map allows us to create a loop in our DFA\n const mapKey = state.configs.key;\n const existing = dfa.states[mapKey];\n if (existing !== undefined) {\n return existing;\n }\n state.configs.finalize();\n dfa.states[mapKey] = state;\n return state;\n}\nfunction computeStartState(atnState) {\n const configs = new ATNConfigSet();\n const numberOfTransitions = atnState.transitions.length;\n for (let i = 0; i < numberOfTransitions; i++) {\n const target = atnState.transitions[i].target;\n const config = {\n state: target,\n alt: i,\n stack: []\n };\n closure(config, configs);\n }\n return configs;\n}\nfunction closure(config, configs) {\n const p = config.state;\n if (p.type === ATN_RULE_STOP) {\n if (config.stack.length > 0) {\n const atnStack = [...config.stack];\n const followState = atnStack.pop();\n const followConfig = {\n state: followState,\n alt: config.alt,\n stack: atnStack\n };\n closure(followConfig, configs);\n }\n else {\n // Dipping into outer context, simply add the config\n // This will stop computation once every config is at the rule stop state\n configs.add(config);\n }\n return;\n }\n if (!p.epsilonOnlyTransitions) {\n configs.add(config);\n }\n const transitionLength = p.transitions.length;\n for (let i = 0; i < transitionLength; i++) {\n const transition = p.transitions[i];\n const c = getEpsilonTarget(config, transition);\n if (c !== undefined) {\n closure(c, configs);\n }\n }\n}\nfunction getEpsilonTarget(config, transition) {\n if (transition instanceof EpsilonTransition) {\n return {\n state: transition.target,\n alt: config.alt,\n stack: config.stack\n };\n }\n else if (transition instanceof RuleTransition) {\n const stack = [...config.stack, transition.followState];\n return {\n state: transition.target,\n alt: config.alt,\n stack\n };\n }\n return undefined;\n}\nfunction hasConfigInRuleStopState(configs) {\n for (const c of configs.elements) {\n if (c.state.type === ATN_RULE_STOP) {\n return true;\n }\n }\n return false;\n}\nfunction allConfigsInRuleStopStates(configs) {\n for (const c of configs.elements) {\n if (c.state.type !== ATN_RULE_STOP) {\n return false;\n }\n }\n return true;\n}\nfunction hasConflictTerminatingPrediction(configs) {\n if (allConfigsInRuleStopStates(configs)) {\n return true;\n }\n const altSets = getConflictingAltSets(configs.elements);\n const heuristic = hasConflictingAltSet(altSets) && !hasStateAssociatedWithOneAlt(altSets);\n return heuristic;\n}\nfunction getConflictingAltSets(configs) {\n const configToAlts = new Map();\n for (const c of configs) {\n const key = getATNConfigKey(c, false);\n let alts = configToAlts.get(key);\n if (alts === undefined) {\n alts = {};\n configToAlts.set(key, alts);\n }\n alts[c.alt] = true;\n }\n return configToAlts;\n}\nfunction hasConflictingAltSet(altSets) {\n for (const value of Array.from(altSets.values())) {\n if (Object.keys(value).length > 1) {\n return true;\n }\n }\n return false;\n}\nfunction hasStateAssociatedWithOneAlt(altSets) {\n for (const value of Array.from(altSets.values())) {\n if (Object.keys(value).length === 1) {\n return true;\n }\n }\n return false;\n}\n//# sourceMappingURL=all-star-lookahead.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nexport var DocumentUri;\n(function (DocumentUri) {\n function is(value) {\n return typeof value === 'string';\n }\n DocumentUri.is = is;\n})(DocumentUri || (DocumentUri = {}));\nexport var URI;\n(function (URI) {\n function is(value) {\n return typeof value === 'string';\n }\n URI.is = is;\n})(URI || (URI = {}));\nexport var integer;\n(function (integer) {\n integer.MIN_VALUE = -2147483648;\n integer.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && integer.MIN_VALUE <= value && value <= integer.MAX_VALUE;\n }\n integer.is = is;\n})(integer || (integer = {}));\nexport var uinteger;\n(function (uinteger) {\n uinteger.MIN_VALUE = 0;\n uinteger.MAX_VALUE = 2147483647;\n function is(value) {\n return typeof value === 'number' && uinteger.MIN_VALUE <= value && value <= uinteger.MAX_VALUE;\n }\n uinteger.is = is;\n})(uinteger || (uinteger = {}));\n/**\n * The Position namespace provides helper functions to work with\n * {@link Position} literals.\n */\nexport var Position;\n(function (Position) {\n /**\n * Creates a new Position literal from the given line and character.\n * @param line The position's line.\n * @param character The position's character.\n */\n function create(line, character) {\n if (line === Number.MAX_VALUE) {\n line = uinteger.MAX_VALUE;\n }\n if (character === Number.MAX_VALUE) {\n character = uinteger.MAX_VALUE;\n }\n return { line, character };\n }\n Position.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Position} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character);\n }\n Position.is = is;\n})(Position || (Position = {}));\n/**\n * The Range namespace provides helper functions to work with\n * {@link Range} literals.\n */\nexport var Range;\n(function (Range) {\n function create(one, two, three, four) {\n if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) {\n return { start: Position.create(one, two), end: Position.create(three, four) };\n }\n else if (Position.is(one) && Position.is(two)) {\n return { start: one, end: two };\n }\n else {\n throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`);\n }\n }\n Range.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Range} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\n }\n Range.is = is;\n})(Range || (Range = {}));\n/**\n * The Location namespace provides helper functions to work with\n * {@link Location} literals.\n */\nexport var Location;\n(function (Location) {\n /**\n * Creates a Location literal.\n * @param uri The location's uri.\n * @param range The location's range.\n */\n function create(uri, range) {\n return { uri, range };\n }\n Location.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Location} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\n }\n Location.is = is;\n})(Location || (Location = {}));\n/**\n * The LocationLink namespace provides helper functions to work with\n * {@link LocationLink} literals.\n */\nexport var LocationLink;\n(function (LocationLink) {\n /**\n * Creates a LocationLink literal.\n * @param targetUri The definition's uri.\n * @param targetRange The full range of the definition.\n * @param targetSelectionRange The span of the symbol definition at the target.\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\n */\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\n return { targetUri, targetRange, targetSelectionRange, originSelectionRange };\n }\n LocationLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link LocationLink} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)\n && Range.is(candidate.targetSelectionRange)\n && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\n }\n LocationLink.is = is;\n})(LocationLink || (LocationLink = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link Color} literals.\n */\nexport var Color;\n(function (Color) {\n /**\n * Creates a new Color literal.\n */\n function create(red, green, blue, alpha) {\n return {\n red,\n green,\n blue,\n alpha,\n };\n }\n Color.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Color} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.numberRange(candidate.red, 0, 1)\n && Is.numberRange(candidate.green, 0, 1)\n && Is.numberRange(candidate.blue, 0, 1)\n && Is.numberRange(candidate.alpha, 0, 1);\n }\n Color.is = is;\n})(Color || (Color = {}));\n/**\n * The ColorInformation namespace provides helper functions to work with\n * {@link ColorInformation} literals.\n */\nexport var ColorInformation;\n(function (ColorInformation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(range, color) {\n return {\n range,\n color,\n };\n }\n ColorInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && Color.is(candidate.color);\n }\n ColorInformation.is = is;\n})(ColorInformation || (ColorInformation = {}));\n/**\n * The Color namespace provides helper functions to work with\n * {@link ColorPresentation} literals.\n */\nexport var ColorPresentation;\n(function (ColorPresentation) {\n /**\n * Creates a new ColorInformation literal.\n */\n function create(label, textEdit, additionalTextEdits) {\n return {\n label,\n textEdit,\n additionalTextEdits,\n };\n }\n ColorPresentation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ColorInformation} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.label)\n && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate))\n && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\n }\n ColorPresentation.is = is;\n})(ColorPresentation || (ColorPresentation = {}));\n/**\n * A set of predefined range kinds.\n */\nexport var FoldingRangeKind;\n(function (FoldingRangeKind) {\n /**\n * Folding range for a comment\n */\n FoldingRangeKind.Comment = 'comment';\n /**\n * Folding range for an import or include\n */\n FoldingRangeKind.Imports = 'imports';\n /**\n * Folding range for a region (e.g. `#region`)\n */\n FoldingRangeKind.Region = 'region';\n})(FoldingRangeKind || (FoldingRangeKind = {}));\n/**\n * The folding range namespace provides helper functions to work with\n * {@link FoldingRange} literals.\n */\nexport var FoldingRange;\n(function (FoldingRange) {\n /**\n * Creates a new FoldingRange literal.\n */\n function create(startLine, endLine, startCharacter, endCharacter, kind, collapsedText) {\n const result = {\n startLine,\n endLine\n };\n if (Is.defined(startCharacter)) {\n result.startCharacter = startCharacter;\n }\n if (Is.defined(endCharacter)) {\n result.endCharacter = endCharacter;\n }\n if (Is.defined(kind)) {\n result.kind = kind;\n }\n if (Is.defined(collapsedText)) {\n result.collapsedText = collapsedText;\n }\n return result;\n }\n FoldingRange.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FoldingRange} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine)\n && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter))\n && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter))\n && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\n }\n FoldingRange.is = is;\n})(FoldingRange || (FoldingRange = {}));\n/**\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\n * {@link DiagnosticRelatedInformation} literals.\n */\nexport var DiagnosticRelatedInformation;\n(function (DiagnosticRelatedInformation) {\n /**\n * Creates a new DiagnosticRelatedInformation literal.\n */\n function create(location, message) {\n return {\n location,\n message\n };\n }\n DiagnosticRelatedInformation.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DiagnosticRelatedInformation} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\n }\n DiagnosticRelatedInformation.is = is;\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\n/**\n * The diagnostic's severity.\n */\nexport var DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Reports an error.\n */\n DiagnosticSeverity.Error = 1;\n /**\n * Reports a warning.\n */\n DiagnosticSeverity.Warning = 2;\n /**\n * Reports an information.\n */\n DiagnosticSeverity.Information = 3;\n /**\n * Reports a hint.\n */\n DiagnosticSeverity.Hint = 4;\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n/**\n * The diagnostic tags.\n *\n * @since 3.15.0\n */\nexport var DiagnosticTag;\n(function (DiagnosticTag) {\n /**\n * Unused or unnecessary code.\n *\n * Clients are allowed to render diagnostics with this tag faded out instead of having\n * an error squiggle.\n */\n DiagnosticTag.Unnecessary = 1;\n /**\n * Deprecated or obsolete code.\n *\n * Clients are allowed to rendered diagnostics with this tag strike through.\n */\n DiagnosticTag.Deprecated = 2;\n})(DiagnosticTag || (DiagnosticTag = {}));\n/**\n * The CodeDescription namespace provides functions to deal with descriptions for diagnostic codes.\n *\n * @since 3.16.0\n */\nexport var CodeDescription;\n(function (CodeDescription) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.href);\n }\n CodeDescription.is = is;\n})(CodeDescription || (CodeDescription = {}));\n/**\n * The Diagnostic namespace provides helper functions to work with\n * {@link Diagnostic} literals.\n */\nexport var Diagnostic;\n(function (Diagnostic) {\n /**\n * Creates a new Diagnostic literal.\n */\n function create(range, message, severity, code, source, relatedInformation) {\n let result = { range, message };\n if (Is.defined(severity)) {\n result.severity = severity;\n }\n if (Is.defined(code)) {\n result.code = code;\n }\n if (Is.defined(source)) {\n result.source = source;\n }\n if (Is.defined(relatedInformation)) {\n result.relatedInformation = relatedInformation;\n }\n return result;\n }\n Diagnostic.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Diagnostic} interface.\n */\n function is(value) {\n var _a;\n let candidate = value;\n return Is.defined(candidate)\n && Range.is(candidate.range)\n && Is.string(candidate.message)\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\n && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\n && (Is.undefined(candidate.codeDescription) || (Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)))\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\n }\n Diagnostic.is = is;\n})(Diagnostic || (Diagnostic = {}));\n/**\n * The Command namespace provides helper functions to work with\n * {@link Command} literals.\n */\nexport var Command;\n(function (Command) {\n /**\n * Creates a new Command literal.\n */\n function create(title, command, ...args) {\n let result = { title, command };\n if (Is.defined(args) && args.length > 0) {\n result.arguments = args;\n }\n return result;\n }\n Command.create = create;\n /**\n * Checks whether the given literal conforms to the {@link Command} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\n }\n Command.is = is;\n})(Command || (Command = {}));\n/**\n * The TextEdit namespace provides helper function to create replace,\n * insert and delete edits more easily.\n */\nexport var TextEdit;\n(function (TextEdit) {\n /**\n * Creates a replace text edit.\n * @param range The range of text to be replaced.\n * @param newText The new text.\n */\n function replace(range, newText) {\n return { range, newText };\n }\n TextEdit.replace = replace;\n /**\n * Creates an insert text edit.\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n */\n function insert(position, newText) {\n return { range: { start: position, end: position }, newText };\n }\n TextEdit.insert = insert;\n /**\n * Creates a delete text edit.\n * @param range The range of text to be deleted.\n */\n function del(range) {\n return { range, newText: '' };\n }\n TextEdit.del = del;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && Is.string(candidate.newText)\n && Range.is(candidate.range);\n }\n TextEdit.is = is;\n})(TextEdit || (TextEdit = {}));\nexport var ChangeAnnotation;\n(function (ChangeAnnotation) {\n function create(label, needsConfirmation, description) {\n const result = { label };\n if (needsConfirmation !== undefined) {\n result.needsConfirmation = needsConfirmation;\n }\n if (description !== undefined) {\n result.description = description;\n }\n return result;\n }\n ChangeAnnotation.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Is.string(candidate.label) &&\n (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n ChangeAnnotation.is = is;\n})(ChangeAnnotation || (ChangeAnnotation = {}));\nexport var ChangeAnnotationIdentifier;\n(function (ChangeAnnotationIdentifier) {\n function is(value) {\n const candidate = value;\n return Is.string(candidate);\n }\n ChangeAnnotationIdentifier.is = is;\n})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {}));\nexport var AnnotatedTextEdit;\n(function (AnnotatedTextEdit) {\n /**\n * Creates an annotated replace text edit.\n *\n * @param range The range of text to be replaced.\n * @param newText The new text.\n * @param annotation The annotation.\n */\n function replace(range, newText, annotation) {\n return { range, newText, annotationId: annotation };\n }\n AnnotatedTextEdit.replace = replace;\n /**\n * Creates an annotated insert text edit.\n *\n * @param position The position to insert the text at.\n * @param newText The text to be inserted.\n * @param annotation The annotation.\n */\n function insert(position, newText, annotation) {\n return { range: { start: position, end: position }, newText, annotationId: annotation };\n }\n AnnotatedTextEdit.insert = insert;\n /**\n * Creates an annotated delete text edit.\n *\n * @param range The range of text to be deleted.\n * @param annotation The annotation.\n */\n function del(range, annotation) {\n return { range, newText: '', annotationId: annotation };\n }\n AnnotatedTextEdit.del = del;\n function is(value) {\n const candidate = value;\n return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n AnnotatedTextEdit.is = is;\n})(AnnotatedTextEdit || (AnnotatedTextEdit = {}));\n/**\n * The TextDocumentEdit namespace provides helper function to create\n * an edit that manipulates a text document.\n */\nexport var TextDocumentEdit;\n(function (TextDocumentEdit) {\n /**\n * Creates a new `TextDocumentEdit`\n */\n function create(textDocument, edits) {\n return { textDocument, edits };\n }\n TextDocumentEdit.create = create;\n function is(value) {\n let candidate = value;\n return Is.defined(candidate)\n && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)\n && Array.isArray(candidate.edits);\n }\n TextDocumentEdit.is = is;\n})(TextDocumentEdit || (TextDocumentEdit = {}));\nexport var CreateFile;\n(function (CreateFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'create',\n uri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n CreateFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n CreateFile.is = is;\n})(CreateFile || (CreateFile = {}));\nexport var RenameFile;\n(function (RenameFile) {\n function create(oldUri, newUri, options, annotation) {\n let result = {\n kind: 'rename',\n oldUri,\n newUri\n };\n if (options !== undefined && (options.overwrite !== undefined || options.ignoreIfExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n RenameFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === undefined ||\n ((candidate.options.overwrite === undefined || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === undefined || Is.boolean(candidate.options.ignoreIfExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n RenameFile.is = is;\n})(RenameFile || (RenameFile = {}));\nexport var DeleteFile;\n(function (DeleteFile) {\n function create(uri, options, annotation) {\n let result = {\n kind: 'delete',\n uri\n };\n if (options !== undefined && (options.recursive !== undefined || options.ignoreIfNotExists !== undefined)) {\n result.options = options;\n }\n if (annotation !== undefined) {\n result.annotationId = annotation;\n }\n return result;\n }\n DeleteFile.create = create;\n function is(value) {\n let candidate = value;\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) && (candidate.options === undefined ||\n ((candidate.options.recursive === undefined || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === undefined || Is.boolean(candidate.options.ignoreIfNotExists)))) && (candidate.annotationId === undefined || ChangeAnnotationIdentifier.is(candidate.annotationId));\n }\n DeleteFile.is = is;\n})(DeleteFile || (DeleteFile = {}));\nexport var WorkspaceEdit;\n(function (WorkspaceEdit) {\n function is(value) {\n let candidate = value;\n return candidate &&\n (candidate.changes !== undefined || candidate.documentChanges !== undefined) &&\n (candidate.documentChanges === undefined || candidate.documentChanges.every((change) => {\n if (Is.string(change.kind)) {\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\n }\n else {\n return TextDocumentEdit.is(change);\n }\n }));\n }\n WorkspaceEdit.is = is;\n})(WorkspaceEdit || (WorkspaceEdit = {}));\nclass TextEditChangeImpl {\n constructor(edits, changeAnnotations) {\n this.edits = edits;\n this.changeAnnotations = changeAnnotations;\n }\n insert(position, newText, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.insert(position, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.insert(position, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.insert(position, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n replace(range, newText, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.replace(range, newText);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.replace(range, newText, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.replace(range, newText, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n delete(range, annotation) {\n let edit;\n let id;\n if (annotation === undefined) {\n edit = TextEdit.del(range);\n }\n else if (ChangeAnnotationIdentifier.is(annotation)) {\n id = annotation;\n edit = AnnotatedTextEdit.del(range, annotation);\n }\n else {\n this.assertChangeAnnotations(this.changeAnnotations);\n id = this.changeAnnotations.manage(annotation);\n edit = AnnotatedTextEdit.del(range, id);\n }\n this.edits.push(edit);\n if (id !== undefined) {\n return id;\n }\n }\n add(edit) {\n this.edits.push(edit);\n }\n all() {\n return this.edits;\n }\n clear() {\n this.edits.splice(0, this.edits.length);\n }\n assertChangeAnnotations(value) {\n if (value === undefined) {\n throw new Error(`Text edit change is not configured to manage change annotations.`);\n }\n }\n}\n/**\n * A helper class\n */\nclass ChangeAnnotations {\n constructor(annotations) {\n this._annotations = annotations === undefined ? Object.create(null) : annotations;\n this._counter = 0;\n this._size = 0;\n }\n all() {\n return this._annotations;\n }\n get size() {\n return this._size;\n }\n manage(idOrAnnotation, annotation) {\n let id;\n if (ChangeAnnotationIdentifier.is(idOrAnnotation)) {\n id = idOrAnnotation;\n }\n else {\n id = this.nextId();\n annotation = idOrAnnotation;\n }\n if (this._annotations[id] !== undefined) {\n throw new Error(`Id ${id} is already in use.`);\n }\n if (annotation === undefined) {\n throw new Error(`No annotation provided for id ${id}`);\n }\n this._annotations[id] = annotation;\n this._size++;\n return id;\n }\n nextId() {\n this._counter++;\n return this._counter.toString();\n }\n}\n/**\n * A workspace change helps constructing changes to a workspace.\n */\nexport class WorkspaceChange {\n constructor(workspaceEdit) {\n this._textEditChanges = Object.create(null);\n if (workspaceEdit !== undefined) {\n this._workspaceEdit = workspaceEdit;\n if (workspaceEdit.documentChanges) {\n this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations);\n workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n workspaceEdit.documentChanges.forEach((change) => {\n if (TextDocumentEdit.is(change)) {\n const textEditChange = new TextEditChangeImpl(change.edits, this._changeAnnotations);\n this._textEditChanges[change.textDocument.uri] = textEditChange;\n }\n });\n }\n else if (workspaceEdit.changes) {\n Object.keys(workspaceEdit.changes).forEach((key) => {\n const textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\n this._textEditChanges[key] = textEditChange;\n });\n }\n }\n else {\n this._workspaceEdit = {};\n }\n }\n /**\n * Returns the underlying {@link WorkspaceEdit} literal\n * use to be returned from a workspace edit operation like rename.\n */\n get edit() {\n this.initDocumentChanges();\n if (this._changeAnnotations !== undefined) {\n if (this._changeAnnotations.size === 0) {\n this._workspaceEdit.changeAnnotations = undefined;\n }\n else {\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n }\n return this._workspaceEdit;\n }\n getTextEditChange(key) {\n if (OptionalVersionedTextDocumentIdentifier.is(key)) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n const textDocument = { uri: key.uri, version: key.version };\n let result = this._textEditChanges[textDocument.uri];\n if (!result) {\n const edits = [];\n const textDocumentEdit = {\n textDocument,\n edits\n };\n this._workspaceEdit.documentChanges.push(textDocumentEdit);\n result = new TextEditChangeImpl(edits, this._changeAnnotations);\n this._textEditChanges[textDocument.uri] = result;\n }\n return result;\n }\n else {\n this.initChanges();\n if (this._workspaceEdit.changes === undefined) {\n throw new Error('Workspace edit is not configured for normal text edit changes.');\n }\n let result = this._textEditChanges[key];\n if (!result) {\n let edits = [];\n this._workspaceEdit.changes[key] = edits;\n result = new TextEditChangeImpl(edits);\n this._textEditChanges[key] = result;\n }\n return result;\n }\n }\n initDocumentChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._changeAnnotations = new ChangeAnnotations();\n this._workspaceEdit.documentChanges = [];\n this._workspaceEdit.changeAnnotations = this._changeAnnotations.all();\n }\n }\n initChanges() {\n if (this._workspaceEdit.documentChanges === undefined && this._workspaceEdit.changes === undefined) {\n this._workspaceEdit.changes = Object.create(null);\n }\n }\n createFile(uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = CreateFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = CreateFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n renameFile(oldUri, newUri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = RenameFile.create(oldUri, newUri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = RenameFile.create(oldUri, newUri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n deleteFile(uri, optionsOrAnnotation, options) {\n this.initDocumentChanges();\n if (this._workspaceEdit.documentChanges === undefined) {\n throw new Error('Workspace edit is not configured for document changes.');\n }\n let annotation;\n if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) {\n annotation = optionsOrAnnotation;\n }\n else {\n options = optionsOrAnnotation;\n }\n let operation;\n let id;\n if (annotation === undefined) {\n operation = DeleteFile.create(uri, options);\n }\n else {\n id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation);\n operation = DeleteFile.create(uri, options, id);\n }\n this._workspaceEdit.documentChanges.push(operation);\n if (id !== undefined) {\n return id;\n }\n }\n}\n/**\n * The TextDocumentIdentifier namespace provides helper functions to work with\n * {@link TextDocumentIdentifier} literals.\n */\nexport var TextDocumentIdentifier;\n(function (TextDocumentIdentifier) {\n /**\n * Creates a new TextDocumentIdentifier literal.\n * @param uri The document's uri.\n */\n function create(uri) {\n return { uri };\n }\n TextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri);\n }\n TextDocumentIdentifier.is = is;\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\n/**\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link VersionedTextDocumentIdentifier} literals.\n */\nexport var VersionedTextDocumentIdentifier;\n(function (VersionedTextDocumentIdentifier) {\n /**\n * Creates a new VersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n VersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link VersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version);\n }\n VersionedTextDocumentIdentifier.is = is;\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\n/**\n * The OptionalVersionedTextDocumentIdentifier namespace provides helper functions to work with\n * {@link OptionalVersionedTextDocumentIdentifier} literals.\n */\nexport var OptionalVersionedTextDocumentIdentifier;\n(function (OptionalVersionedTextDocumentIdentifier) {\n /**\n * Creates a new OptionalVersionedTextDocumentIdentifier literal.\n * @param uri The document's uri.\n * @param version The document's version.\n */\n function create(uri, version) {\n return { uri, version };\n }\n OptionalVersionedTextDocumentIdentifier.create = create;\n /**\n * Checks whether the given literal conforms to the {@link OptionalVersionedTextDocumentIdentifier} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version));\n }\n OptionalVersionedTextDocumentIdentifier.is = is;\n})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {}));\n/**\n * The TextDocumentItem namespace provides helper functions to work with\n * {@link TextDocumentItem} literals.\n */\nexport var TextDocumentItem;\n(function (TextDocumentItem) {\n /**\n * Creates a new TextDocumentItem literal.\n * @param uri The document's uri.\n * @param languageId The document's language identifier.\n * @param version The document's version number.\n * @param text The document's text.\n */\n function create(uri, languageId, version, text) {\n return { uri, languageId, version, text };\n }\n TextDocumentItem.create = create;\n /**\n * Checks whether the given literal conforms to the {@link TextDocumentItem} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text);\n }\n TextDocumentItem.is = is;\n})(TextDocumentItem || (TextDocumentItem = {}));\n/**\n * Describes the content type that a client supports in various\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\n *\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\n * are reserved for internal usage.\n */\nexport var MarkupKind;\n(function (MarkupKind) {\n /**\n * Plain text is supported as a content format\n */\n MarkupKind.PlainText = 'plaintext';\n /**\n * Markdown is supported as a content format\n */\n MarkupKind.Markdown = 'markdown';\n /**\n * Checks whether the given value is a value of the {@link MarkupKind} type.\n */\n function is(value) {\n const candidate = value;\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\n }\n MarkupKind.is = is;\n})(MarkupKind || (MarkupKind = {}));\nexport var MarkupContent;\n(function (MarkupContent) {\n /**\n * Checks whether the given value conforms to the {@link MarkupContent} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\n }\n MarkupContent.is = is;\n})(MarkupContent || (MarkupContent = {}));\n/**\n * The kind of a completion entry.\n */\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind.Text = 1;\n CompletionItemKind.Method = 2;\n CompletionItemKind.Function = 3;\n CompletionItemKind.Constructor = 4;\n CompletionItemKind.Field = 5;\n CompletionItemKind.Variable = 6;\n CompletionItemKind.Class = 7;\n CompletionItemKind.Interface = 8;\n CompletionItemKind.Module = 9;\n CompletionItemKind.Property = 10;\n CompletionItemKind.Unit = 11;\n CompletionItemKind.Value = 12;\n CompletionItemKind.Enum = 13;\n CompletionItemKind.Keyword = 14;\n CompletionItemKind.Snippet = 15;\n CompletionItemKind.Color = 16;\n CompletionItemKind.File = 17;\n CompletionItemKind.Reference = 18;\n CompletionItemKind.Folder = 19;\n CompletionItemKind.EnumMember = 20;\n CompletionItemKind.Constant = 21;\n CompletionItemKind.Struct = 22;\n CompletionItemKind.Event = 23;\n CompletionItemKind.Operator = 24;\n CompletionItemKind.TypeParameter = 25;\n})(CompletionItemKind || (CompletionItemKind = {}));\n/**\n * Defines whether the insert text in a completion item should be interpreted as\n * plain text or a snippet.\n */\nexport var InsertTextFormat;\n(function (InsertTextFormat) {\n /**\n * The primary text to be inserted is treated as a plain string.\n */\n InsertTextFormat.PlainText = 1;\n /**\n * The primary text to be inserted is treated as a snippet.\n *\n * A snippet can define tab stops and placeholders with `$1`, `$2`\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\n * the end of the snippet. Placeholders with equal identifiers are linked,\n * that is typing in one will update others too.\n *\n * See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax\n */\n InsertTextFormat.Snippet = 2;\n})(InsertTextFormat || (InsertTextFormat = {}));\n/**\n * Completion item tags are extra annotations that tweak the rendering of a completion\n * item.\n *\n * @since 3.15.0\n */\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n /**\n * Render a completion as obsolete, usually using a strike-out.\n */\n CompletionItemTag.Deprecated = 1;\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * The InsertReplaceEdit namespace provides functions to deal with insert / replace edits.\n *\n * @since 3.16.0\n */\nexport var InsertReplaceEdit;\n(function (InsertReplaceEdit) {\n /**\n * Creates a new insert / replace edit\n */\n function create(newText, insert, replace) {\n return { newText, insert, replace };\n }\n InsertReplaceEdit.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InsertReplaceEdit} interface.\n */\n function is(value) {\n const candidate = value;\n return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace);\n }\n InsertReplaceEdit.is = is;\n})(InsertReplaceEdit || (InsertReplaceEdit = {}));\n/**\n * How whitespace and indentation is handled during completion\n * item insertion.\n *\n * @since 3.16.0\n */\nexport var InsertTextMode;\n(function (InsertTextMode) {\n /**\n * The insertion or replace strings is taken as it is. If the\n * value is multi line the lines below the cursor will be\n * inserted using the indentation defined in the string value.\n * The client will not apply any kind of adjustments to the\n * string.\n */\n InsertTextMode.asIs = 1;\n /**\n * The editor adjusts leading whitespace of new lines so that\n * they match the indentation up to the cursor of the line for\n * which the item is accepted.\n *\n * Consider a line like this: <2tabs><3tabs>foo. Accepting a\n * multi line completion item is indented using 2 tabs and all\n * following lines inserted will be indented using 2 tabs as well.\n */\n InsertTextMode.adjustIndentation = 2;\n})(InsertTextMode || (InsertTextMode = {}));\nexport var CompletionItemLabelDetails;\n(function (CompletionItemLabelDetails) {\n function is(value) {\n const candidate = value;\n return candidate && (Is.string(candidate.detail) || candidate.detail === undefined) &&\n (Is.string(candidate.description) || candidate.description === undefined);\n }\n CompletionItemLabelDetails.is = is;\n})(CompletionItemLabelDetails || (CompletionItemLabelDetails = {}));\n/**\n * The CompletionItem namespace provides functions to deal with\n * completion items.\n */\nexport var CompletionItem;\n(function (CompletionItem) {\n /**\n * Create a completion item and seed it with a label.\n * @param label The completion item's label\n */\n function create(label) {\n return { label };\n }\n CompletionItem.create = create;\n})(CompletionItem || (CompletionItem = {}));\n/**\n * The CompletionList namespace provides functions to deal with\n * completion lists.\n */\nexport var CompletionList;\n(function (CompletionList) {\n /**\n * Creates a new completion list.\n *\n * @param items The completion items.\n * @param isIncomplete The list is not complete.\n */\n function create(items, isIncomplete) {\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\n }\n CompletionList.create = create;\n})(CompletionList || (CompletionList = {}));\nexport var MarkedString;\n(function (MarkedString) {\n /**\n * Creates a marked string from plain text.\n *\n * @param plainText The plain text.\n */\n function fromPlainText(plainText) {\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n MarkedString.fromPlainText = fromPlainText;\n /**\n * Checks whether the given value conforms to the {@link MarkedString} type.\n */\n function is(value) {\n const candidate = value;\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\n }\n MarkedString.is = is;\n})(MarkedString || (MarkedString = {}));\nexport var Hover;\n(function (Hover) {\n /**\n * Checks whether the given value conforms to the {@link Hover} interface.\n */\n function is(value) {\n let candidate = value;\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\n MarkedString.is(candidate.contents) ||\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === undefined || Range.is(value.range));\n }\n Hover.is = is;\n})(Hover || (Hover = {}));\n/**\n * The ParameterInformation namespace provides helper functions to work with\n * {@link ParameterInformation} literals.\n */\nexport var ParameterInformation;\n(function (ParameterInformation) {\n /**\n * Creates a new parameter information literal.\n *\n * @param label A label string.\n * @param documentation A doc string.\n */\n function create(label, documentation) {\n return documentation ? { label, documentation } : { label };\n }\n ParameterInformation.create = create;\n})(ParameterInformation || (ParameterInformation = {}));\n/**\n * The SignatureInformation namespace provides helper functions to work with\n * {@link SignatureInformation} literals.\n */\nexport var SignatureInformation;\n(function (SignatureInformation) {\n function create(label, documentation, ...parameters) {\n let result = { label };\n if (Is.defined(documentation)) {\n result.documentation = documentation;\n }\n if (Is.defined(parameters)) {\n result.parameters = parameters;\n }\n else {\n result.parameters = [];\n }\n return result;\n }\n SignatureInformation.create = create;\n})(SignatureInformation || (SignatureInformation = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind.Text = 1;\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind.Read = 2;\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind.Write = 3;\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * DocumentHighlight namespace to provide helper functions to work with\n * {@link DocumentHighlight} literals.\n */\nexport var DocumentHighlight;\n(function (DocumentHighlight) {\n /**\n * Create a DocumentHighlight object.\n * @param range The range the highlight applies to.\n * @param kind The highlight kind\n */\n function create(range, kind) {\n let result = { range };\n if (Is.number(kind)) {\n result.kind = kind;\n }\n return result;\n }\n DocumentHighlight.create = create;\n})(DocumentHighlight || (DocumentHighlight = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind.File = 1;\n SymbolKind.Module = 2;\n SymbolKind.Namespace = 3;\n SymbolKind.Package = 4;\n SymbolKind.Class = 5;\n SymbolKind.Method = 6;\n SymbolKind.Property = 7;\n SymbolKind.Field = 8;\n SymbolKind.Constructor = 9;\n SymbolKind.Enum = 10;\n SymbolKind.Interface = 11;\n SymbolKind.Function = 12;\n SymbolKind.Variable = 13;\n SymbolKind.Constant = 14;\n SymbolKind.String = 15;\n SymbolKind.Number = 16;\n SymbolKind.Boolean = 17;\n SymbolKind.Array = 18;\n SymbolKind.Object = 19;\n SymbolKind.Key = 20;\n SymbolKind.Null = 21;\n SymbolKind.EnumMember = 22;\n SymbolKind.Struct = 23;\n SymbolKind.Event = 24;\n SymbolKind.Operator = 25;\n SymbolKind.TypeParameter = 26;\n})(SymbolKind || (SymbolKind = {}));\n/**\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\n *\n * @since 3.16\n */\nexport var SymbolTag;\n(function (SymbolTag) {\n /**\n * Render a symbol as obsolete, usually using a strike-out.\n */\n SymbolTag.Deprecated = 1;\n})(SymbolTag || (SymbolTag = {}));\nexport var SymbolInformation;\n(function (SymbolInformation) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the location of the symbol.\n * @param uri The resource of the location of symbol.\n * @param containerName The name of the symbol containing the symbol.\n */\n function create(name, kind, range, uri, containerName) {\n let result = {\n name,\n kind,\n location: { uri, range }\n };\n if (containerName) {\n result.containerName = containerName;\n }\n return result;\n }\n SymbolInformation.create = create;\n})(SymbolInformation || (SymbolInformation = {}));\nexport var WorkspaceSymbol;\n(function (WorkspaceSymbol) {\n /**\n * Create a new workspace symbol.\n *\n * @param name The name of the symbol.\n * @param kind The kind of the symbol.\n * @param uri The resource of the location of the symbol.\n * @param range An options range of the location.\n * @returns A WorkspaceSymbol.\n */\n function create(name, kind, uri, range) {\n return range !== undefined\n ? { name, kind, location: { uri, range } }\n : { name, kind, location: { uri } };\n }\n WorkspaceSymbol.create = create;\n})(WorkspaceSymbol || (WorkspaceSymbol = {}));\nexport var DocumentSymbol;\n(function (DocumentSymbol) {\n /**\n * Creates a new symbol information literal.\n *\n * @param name The name of the symbol.\n * @param detail The detail of the symbol.\n * @param kind The kind of the symbol.\n * @param range The range of the symbol.\n * @param selectionRange The selectionRange of the symbol.\n * @param children Children of the symbol.\n */\n function create(name, detail, kind, range, selectionRange, children) {\n let result = {\n name,\n detail,\n kind,\n range,\n selectionRange\n };\n if (children !== undefined) {\n result.children = children;\n }\n return result;\n }\n DocumentSymbol.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentSymbol} interface.\n */\n function is(value) {\n let candidate = value;\n return candidate &&\n Is.string(candidate.name) && Is.number(candidate.kind) &&\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\n (candidate.detail === undefined || Is.string(candidate.detail)) &&\n (candidate.deprecated === undefined || Is.boolean(candidate.deprecated)) &&\n (candidate.children === undefined || Array.isArray(candidate.children)) &&\n (candidate.tags === undefined || Array.isArray(candidate.tags));\n }\n DocumentSymbol.is = is;\n})(DocumentSymbol || (DocumentSymbol = {}));\n/**\n * A set of predefined code action kinds\n */\nexport var CodeActionKind;\n(function (CodeActionKind) {\n /**\n * Empty kind.\n */\n CodeActionKind.Empty = '';\n /**\n * Base kind for quickfix actions: 'quickfix'\n */\n CodeActionKind.QuickFix = 'quickfix';\n /**\n * Base kind for refactoring actions: 'refactor'\n */\n CodeActionKind.Refactor = 'refactor';\n /**\n * Base kind for refactoring extraction actions: 'refactor.extract'\n *\n * Example extract actions:\n *\n * - Extract method\n * - Extract function\n * - Extract variable\n * - Extract interface from class\n * - ...\n */\n CodeActionKind.RefactorExtract = 'refactor.extract';\n /**\n * Base kind for refactoring inline actions: 'refactor.inline'\n *\n * Example inline actions:\n *\n * - Inline function\n * - Inline variable\n * - Inline constant\n * - ...\n */\n CodeActionKind.RefactorInline = 'refactor.inline';\n /**\n * Base kind for refactoring rewrite actions: 'refactor.rewrite'\n *\n * Example rewrite actions:\n *\n * - Convert JavaScript function to class\n * - Add or remove parameter\n * - Encapsulate field\n * - Make method static\n * - Move method to base class\n * - ...\n */\n CodeActionKind.RefactorRewrite = 'refactor.rewrite';\n /**\n * Base kind for source actions: `source`\n *\n * Source code actions apply to the entire file.\n */\n CodeActionKind.Source = 'source';\n /**\n * Base kind for an organize imports source action: `source.organizeImports`\n */\n CodeActionKind.SourceOrganizeImports = 'source.organizeImports';\n /**\n * Base kind for auto-fix source actions: `source.fixAll`.\n *\n * Fix all actions automatically fix errors that have a clear fix that do not require user input.\n * They should not suppress errors or perform unsafe fixes such as generating new types or classes.\n *\n * @since 3.15.0\n */\n CodeActionKind.SourceFixAll = 'source.fixAll';\n})(CodeActionKind || (CodeActionKind = {}));\n/**\n * The reason why code actions were requested.\n *\n * @since 3.17.0\n */\nexport var CodeActionTriggerKind;\n(function (CodeActionTriggerKind) {\n /**\n * Code actions were explicitly requested by the user or by an extension.\n */\n CodeActionTriggerKind.Invoked = 1;\n /**\n * Code actions were requested automatically.\n *\n * This typically happens when current selection in a file changes, but can\n * also be triggered when file content changes.\n */\n CodeActionTriggerKind.Automatic = 2;\n})(CodeActionTriggerKind || (CodeActionTriggerKind = {}));\n/**\n * The CodeActionContext namespace provides helper functions to work with\n * {@link CodeActionContext} literals.\n */\nexport var CodeActionContext;\n(function (CodeActionContext) {\n /**\n * Creates a new CodeActionContext literal.\n */\n function create(diagnostics, only, triggerKind) {\n let result = { diagnostics };\n if (only !== undefined && only !== null) {\n result.only = only;\n }\n if (triggerKind !== undefined && triggerKind !== null) {\n result.triggerKind = triggerKind;\n }\n return result;\n }\n CodeActionContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link CodeActionContext} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is)\n && (candidate.only === undefined || Is.typedArray(candidate.only, Is.string))\n && (candidate.triggerKind === undefined || candidate.triggerKind === CodeActionTriggerKind.Invoked || candidate.triggerKind === CodeActionTriggerKind.Automatic);\n }\n CodeActionContext.is = is;\n})(CodeActionContext || (CodeActionContext = {}));\nexport var CodeAction;\n(function (CodeAction) {\n function create(title, kindOrCommandOrEdit, kind) {\n let result = { title };\n let checkKind = true;\n if (typeof kindOrCommandOrEdit === 'string') {\n checkKind = false;\n result.kind = kindOrCommandOrEdit;\n }\n else if (Command.is(kindOrCommandOrEdit)) {\n result.command = kindOrCommandOrEdit;\n }\n else {\n result.edit = kindOrCommandOrEdit;\n }\n if (checkKind && kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n CodeAction.create = create;\n function is(value) {\n let candidate = value;\n return candidate && Is.string(candidate.title) &&\n (candidate.diagnostics === undefined || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&\n (candidate.kind === undefined || Is.string(candidate.kind)) &&\n (candidate.edit !== undefined || candidate.command !== undefined) &&\n (candidate.command === undefined || Command.is(candidate.command)) &&\n (candidate.isPreferred === undefined || Is.boolean(candidate.isPreferred)) &&\n (candidate.edit === undefined || WorkspaceEdit.is(candidate.edit));\n }\n CodeAction.is = is;\n})(CodeAction || (CodeAction = {}));\n/**\n * The CodeLens namespace provides helper functions to work with\n * {@link CodeLens} literals.\n */\nexport var CodeLens;\n(function (CodeLens) {\n /**\n * Creates a new CodeLens literal.\n */\n function create(range, data) {\n let result = { range };\n if (Is.defined(data)) {\n result.data = data;\n }\n return result;\n }\n CodeLens.create = create;\n /**\n * Checks whether the given literal conforms to the {@link CodeLens} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\n }\n CodeLens.is = is;\n})(CodeLens || (CodeLens = {}));\n/**\n * The FormattingOptions namespace provides helper functions to work with\n * {@link FormattingOptions} literals.\n */\nexport var FormattingOptions;\n(function (FormattingOptions) {\n /**\n * Creates a new FormattingOptions literal.\n */\n function create(tabSize, insertSpaces) {\n return { tabSize, insertSpaces };\n }\n FormattingOptions.create = create;\n /**\n * Checks whether the given literal conforms to the {@link FormattingOptions} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\n }\n FormattingOptions.is = is;\n})(FormattingOptions || (FormattingOptions = {}));\n/**\n * The DocumentLink namespace provides helper functions to work with\n * {@link DocumentLink} literals.\n */\nexport var DocumentLink;\n(function (DocumentLink) {\n /**\n * Creates a new DocumentLink literal.\n */\n function create(range, target, data) {\n return { range, target, data };\n }\n DocumentLink.create = create;\n /**\n * Checks whether the given literal conforms to the {@link DocumentLink} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\n }\n DocumentLink.is = is;\n})(DocumentLink || (DocumentLink = {}));\n/**\n * The SelectionRange namespace provides helper function to work with\n * SelectionRange literals.\n */\nexport var SelectionRange;\n(function (SelectionRange) {\n /**\n * Creates a new SelectionRange\n * @param range the range.\n * @param parent an optional parent.\n */\n function create(range, parent) {\n return { range, parent };\n }\n SelectionRange.create = create;\n function is(value) {\n let candidate = value;\n return Is.objectLiteral(candidate) && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));\n }\n SelectionRange.is = is;\n})(SelectionRange || (SelectionRange = {}));\n/**\n * A set of predefined token types. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nexport var SemanticTokenTypes;\n(function (SemanticTokenTypes) {\n SemanticTokenTypes[\"namespace\"] = \"namespace\";\n /**\n * Represents a generic type. Acts as a fallback for types which can't be mapped to\n * a specific type like class or enum.\n */\n SemanticTokenTypes[\"type\"] = \"type\";\n SemanticTokenTypes[\"class\"] = \"class\";\n SemanticTokenTypes[\"enum\"] = \"enum\";\n SemanticTokenTypes[\"interface\"] = \"interface\";\n SemanticTokenTypes[\"struct\"] = \"struct\";\n SemanticTokenTypes[\"typeParameter\"] = \"typeParameter\";\n SemanticTokenTypes[\"parameter\"] = \"parameter\";\n SemanticTokenTypes[\"variable\"] = \"variable\";\n SemanticTokenTypes[\"property\"] = \"property\";\n SemanticTokenTypes[\"enumMember\"] = \"enumMember\";\n SemanticTokenTypes[\"event\"] = \"event\";\n SemanticTokenTypes[\"function\"] = \"function\";\n SemanticTokenTypes[\"method\"] = \"method\";\n SemanticTokenTypes[\"macro\"] = \"macro\";\n SemanticTokenTypes[\"keyword\"] = \"keyword\";\n SemanticTokenTypes[\"modifier\"] = \"modifier\";\n SemanticTokenTypes[\"comment\"] = \"comment\";\n SemanticTokenTypes[\"string\"] = \"string\";\n SemanticTokenTypes[\"number\"] = \"number\";\n SemanticTokenTypes[\"regexp\"] = \"regexp\";\n SemanticTokenTypes[\"operator\"] = \"operator\";\n /**\n * @since 3.17.0\n */\n SemanticTokenTypes[\"decorator\"] = \"decorator\";\n})(SemanticTokenTypes || (SemanticTokenTypes = {}));\n/**\n * A set of predefined token modifiers. This set is not fixed\n * an clients can specify additional token types via the\n * corresponding client capabilities.\n *\n * @since 3.16.0\n */\nexport var SemanticTokenModifiers;\n(function (SemanticTokenModifiers) {\n SemanticTokenModifiers[\"declaration\"] = \"declaration\";\n SemanticTokenModifiers[\"definition\"] = \"definition\";\n SemanticTokenModifiers[\"readonly\"] = \"readonly\";\n SemanticTokenModifiers[\"static\"] = \"static\";\n SemanticTokenModifiers[\"deprecated\"] = \"deprecated\";\n SemanticTokenModifiers[\"abstract\"] = \"abstract\";\n SemanticTokenModifiers[\"async\"] = \"async\";\n SemanticTokenModifiers[\"modification\"] = \"modification\";\n SemanticTokenModifiers[\"documentation\"] = \"documentation\";\n SemanticTokenModifiers[\"defaultLibrary\"] = \"defaultLibrary\";\n})(SemanticTokenModifiers || (SemanticTokenModifiers = {}));\n/**\n * @since 3.16.0\n */\nexport var SemanticTokens;\n(function (SemanticTokens) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && (candidate.resultId === undefined || typeof candidate.resultId === 'string') &&\n Array.isArray(candidate.data) && (candidate.data.length === 0 || typeof candidate.data[0] === 'number');\n }\n SemanticTokens.is = is;\n})(SemanticTokens || (SemanticTokens = {}));\n/**\n * The InlineValueText namespace provides functions to deal with InlineValueTexts.\n *\n * @since 3.17.0\n */\nexport var InlineValueText;\n(function (InlineValueText) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, text) {\n return { range, text };\n }\n InlineValueText.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.string(candidate.text);\n }\n InlineValueText.is = is;\n})(InlineValueText || (InlineValueText = {}));\n/**\n * The InlineValueVariableLookup namespace provides functions to deal with InlineValueVariableLookups.\n *\n * @since 3.17.0\n */\nexport var InlineValueVariableLookup;\n(function (InlineValueVariableLookup) {\n /**\n * Creates a new InlineValueText literal.\n */\n function create(range, variableName, caseSensitiveLookup) {\n return { range, variableName, caseSensitiveLookup };\n }\n InlineValueVariableLookup.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range) && Is.boolean(candidate.caseSensitiveLookup)\n && (Is.string(candidate.variableName) || candidate.variableName === undefined);\n }\n InlineValueVariableLookup.is = is;\n})(InlineValueVariableLookup || (InlineValueVariableLookup = {}));\n/**\n * The InlineValueEvaluatableExpression namespace provides functions to deal with InlineValueEvaluatableExpression.\n *\n * @since 3.17.0\n */\nexport var InlineValueEvaluatableExpression;\n(function (InlineValueEvaluatableExpression) {\n /**\n * Creates a new InlineValueEvaluatableExpression literal.\n */\n function create(range, expression) {\n return { range, expression };\n }\n InlineValueEvaluatableExpression.create = create;\n function is(value) {\n const candidate = value;\n return candidate !== undefined && candidate !== null && Range.is(candidate.range)\n && (Is.string(candidate.expression) || candidate.expression === undefined);\n }\n InlineValueEvaluatableExpression.is = is;\n})(InlineValueEvaluatableExpression || (InlineValueEvaluatableExpression = {}));\n/**\n * The InlineValueContext namespace provides helper functions to work with\n * {@link InlineValueContext} literals.\n *\n * @since 3.17.0\n */\nexport var InlineValueContext;\n(function (InlineValueContext) {\n /**\n * Creates a new InlineValueContext literal.\n */\n function create(frameId, stoppedLocation) {\n return { frameId, stoppedLocation };\n }\n InlineValueContext.create = create;\n /**\n * Checks whether the given literal conforms to the {@link InlineValueContext} interface.\n */\n function is(value) {\n const candidate = value;\n return Is.defined(candidate) && Range.is(value.stoppedLocation);\n }\n InlineValueContext.is = is;\n})(InlineValueContext || (InlineValueContext = {}));\n/**\n * Inlay hint kinds.\n *\n * @since 3.17.0\n */\nexport var InlayHintKind;\n(function (InlayHintKind) {\n /**\n * An inlay hint that for a type annotation.\n */\n InlayHintKind.Type = 1;\n /**\n * An inlay hint that is for a parameter.\n */\n InlayHintKind.Parameter = 2;\n function is(value) {\n return value === 1 || value === 2;\n }\n InlayHintKind.is = is;\n})(InlayHintKind || (InlayHintKind = {}));\nexport var InlayHintLabelPart;\n(function (InlayHintLabelPart) {\n function create(value) {\n return { value };\n }\n InlayHintLabelPart.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.location === undefined || Location.is(candidate.location))\n && (candidate.command === undefined || Command.is(candidate.command));\n }\n InlayHintLabelPart.is = is;\n})(InlayHintLabelPart || (InlayHintLabelPart = {}));\nexport var InlayHint;\n(function (InlayHint) {\n function create(position, label, kind) {\n const result = { position, label };\n if (kind !== undefined) {\n result.kind = kind;\n }\n return result;\n }\n InlayHint.create = create;\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && Position.is(candidate.position)\n && (Is.string(candidate.label) || Is.typedArray(candidate.label, InlayHintLabelPart.is))\n && (candidate.kind === undefined || InlayHintKind.is(candidate.kind))\n && (candidate.textEdits === undefined) || Is.typedArray(candidate.textEdits, TextEdit.is)\n && (candidate.tooltip === undefined || Is.string(candidate.tooltip) || MarkupContent.is(candidate.tooltip))\n && (candidate.paddingLeft === undefined || Is.boolean(candidate.paddingLeft))\n && (candidate.paddingRight === undefined || Is.boolean(candidate.paddingRight));\n }\n InlayHint.is = is;\n})(InlayHint || (InlayHint = {}));\nexport var StringValue;\n(function (StringValue) {\n function createSnippet(value) {\n return { kind: 'snippet', value };\n }\n StringValue.createSnippet = createSnippet;\n})(StringValue || (StringValue = {}));\nexport var InlineCompletionItem;\n(function (InlineCompletionItem) {\n function create(insertText, filterText, range, command) {\n return { insertText, filterText, range, command };\n }\n InlineCompletionItem.create = create;\n})(InlineCompletionItem || (InlineCompletionItem = {}));\nexport var InlineCompletionList;\n(function (InlineCompletionList) {\n function create(items) {\n return { items };\n }\n InlineCompletionList.create = create;\n})(InlineCompletionList || (InlineCompletionList = {}));\n/**\n * Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.\n *\n * @since 3.18.0\n * @proposed\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered explicitly by a user gesture.\n */\n InlineCompletionTriggerKind.Invoked = 0;\n /**\n * Completion was triggered automatically while editing.\n */\n InlineCompletionTriggerKind.Automatic = 1;\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var SelectedCompletionInfo;\n(function (SelectedCompletionInfo) {\n function create(range, text) {\n return { range, text };\n }\n SelectedCompletionInfo.create = create;\n})(SelectedCompletionInfo || (SelectedCompletionInfo = {}));\nexport var InlineCompletionContext;\n(function (InlineCompletionContext) {\n function create(triggerKind, selectedCompletionInfo) {\n return { triggerKind, selectedCompletionInfo };\n }\n InlineCompletionContext.create = create;\n})(InlineCompletionContext || (InlineCompletionContext = {}));\nexport var WorkspaceFolder;\n(function (WorkspaceFolder) {\n function is(value) {\n const candidate = value;\n return Is.objectLiteral(candidate) && URI.is(candidate.uri) && Is.string(candidate.name);\n }\n WorkspaceFolder.is = is;\n})(WorkspaceFolder || (WorkspaceFolder = {}));\nexport const EOL = ['\\n', '\\r\\n', '\\r'];\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new ITextDocument literal from the given uri and content.\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param version The document's version.\n * @param content The document's content.\n */\n function create(uri, languageId, version, content) {\n return new FullTextDocument(uri, languageId, version, content);\n }\n TextDocument.create = create;\n /**\n * Checks whether the given literal conforms to the {@link ITextDocument} interface.\n */\n function is(value) {\n let candidate = value;\n return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount)\n && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\n }\n TextDocument.is = is;\n function applyEdits(document, edits) {\n let text = document.getText();\n let sortedEdits = mergeSort(edits, (a, b) => {\n let diff = a.range.start.line - b.range.start.line;\n if (diff === 0) {\n return a.range.start.character - b.range.start.character;\n }\n return diff;\n });\n let lastModifiedOffset = text.length;\n for (let i = sortedEdits.length - 1; i >= 0; i--) {\n let e = sortedEdits[i];\n let startOffset = document.offsetAt(e.range.start);\n let endOffset = document.offsetAt(e.range.end);\n if (endOffset <= lastModifiedOffset) {\n text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\n }\n else {\n throw new Error('Overlapping edit');\n }\n lastModifiedOffset = startOffset;\n }\n return text;\n }\n TextDocument.applyEdits = applyEdits;\n function mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n let ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n }\n})(TextDocument || (TextDocument = {}));\n/**\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\n */\nclass FullTextDocument {\n constructor(uri, languageId, version, content) {\n this._uri = uri;\n this._languageId = languageId;\n this._version = version;\n this._content = content;\n this._lineOffsets = undefined;\n }\n get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n let start = this.offsetAt(range.start);\n let end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(event, version) {\n this._content = event.text;\n this._version = version;\n this._lineOffsets = undefined;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n let lineOffsets = [];\n let text = this._content;\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n let ch = text.charAt(i);\n isLineStart = (ch === '\\r' || ch === '\\n');\n if (ch === '\\r' && i + 1 < text.length && text.charAt(i + 1) === '\\n') {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n this._lineOffsets = lineOffsets;\n }\n return this._lineOffsets;\n }\n positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n let lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return Position.create(0, offset);\n }\n while (low < high) {\n let mid = Math.floor((low + high) / 2);\n if (lineOffsets[mid] > offset) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n // low is the least x for which the line offset is larger than the current offset\n // or array.length if no line offset is larger than the current offset\n let line = low - 1;\n return Position.create(line, offset - lineOffsets[line]);\n }\n offsetAt(position) {\n let lineOffsets = this.getLineOffsets();\n if (position.line >= lineOffsets.length) {\n return this._content.length;\n }\n else if (position.line < 0) {\n return 0;\n }\n let lineOffset = lineOffsets[position.line];\n let nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\n }\n get lineCount() {\n return this.getLineOffsets().length;\n }\n}\nvar Is;\n(function (Is) {\n const toString = Object.prototype.toString;\n function defined(value) {\n return typeof value !== 'undefined';\n }\n Is.defined = defined;\n function undefined(value) {\n return typeof value === 'undefined';\n }\n Is.undefined = undefined;\n function boolean(value) {\n return value === true || value === false;\n }\n Is.boolean = boolean;\n function string(value) {\n return toString.call(value) === '[object String]';\n }\n Is.string = string;\n function number(value) {\n return toString.call(value) === '[object Number]';\n }\n Is.number = number;\n function numberRange(value, min, max) {\n return toString.call(value) === '[object Number]' && min <= value && value <= max;\n }\n Is.numberRange = numberRange;\n function integer(value) {\n return toString.call(value) === '[object Number]' && -2147483648 <= value && value <= 2147483647;\n }\n Is.integer = integer;\n function uinteger(value) {\n return toString.call(value) === '[object Number]' && 0 <= value && value <= 2147483647;\n }\n Is.uinteger = uinteger;\n function func(value) {\n return toString.call(value) === '[object Function]';\n }\n Is.func = func;\n function objectLiteral(value) {\n // Strictly speaking class instances pass this check as well. Since the LSP\n // doesn't use classes we ignore this for now. If we do we need to add something\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\n return value !== null && typeof value === 'object';\n }\n Is.objectLiteral = objectLiteral;\n function typedArray(value, check) {\n return Array.isArray(value) && value.every(check);\n }\n Is.typedArray = typedArray;\n})(Is || (Is = {}));\n","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Position } from 'vscode-languageserver-types';\nimport { tokenToRange } from '../utils/cst-utils.js';\nexport class CstNodeBuilder {\n constructor() {\n this.nodeStack = [];\n }\n get current() {\n var _a;\n return (_a = this.nodeStack[this.nodeStack.length - 1]) !== null && _a !== void 0 ? _a : this.rootNode;\n }\n buildRootNode(input) {\n this.rootNode = new RootCstNodeImpl(input);\n this.rootNode.root = this.rootNode;\n this.nodeStack = [this.rootNode];\n return this.rootNode;\n }\n buildCompositeNode(feature) {\n const compositeNode = new CompositeCstNodeImpl();\n compositeNode.grammarSource = feature;\n compositeNode.root = this.rootNode;\n this.current.content.push(compositeNode);\n this.nodeStack.push(compositeNode);\n return compositeNode;\n }\n buildLeafNode(token, feature) {\n const leafNode = new LeafCstNodeImpl(token.startOffset, token.image.length, tokenToRange(token), token.tokenType, !feature);\n leafNode.grammarSource = feature;\n leafNode.root = this.rootNode;\n this.current.content.push(leafNode);\n return leafNode;\n }\n removeNode(node) {\n const parent = node.container;\n if (parent) {\n const index = parent.content.indexOf(node);\n if (index >= 0) {\n parent.content.splice(index, 1);\n }\n }\n }\n addHiddenNodes(tokens) {\n const nodes = [];\n for (const token of tokens) {\n const leafNode = new LeafCstNodeImpl(token.startOffset, token.image.length, tokenToRange(token), token.tokenType, true);\n leafNode.root = this.rootNode;\n nodes.push(leafNode);\n }\n let current = this.current;\n let added = false;\n // If we are within a composite node, we add the hidden nodes to the content\n if (current.content.length > 0) {\n current.content.push(...nodes);\n return;\n }\n // Otherwise we are at a newly created node\n // Instead of adding the hidden nodes here, we search for the first parent node with content\n while (current.container) {\n const index = current.container.content.indexOf(current);\n if (index > 0) {\n // Add the hidden nodes before the current node\n current.container.content.splice(index, 0, ...nodes);\n added = true;\n break;\n }\n current = current.container;\n }\n // If we arrive at the root node, we add the hidden nodes at the beginning\n // This is the case if the hidden nodes are the first nodes in the tree\n if (!added) {\n this.rootNode.content.unshift(...nodes);\n }\n }\n construct(item) {\n const current = this.current;\n // The specified item could be a datatype ($type is symbol) or a fragment ($type is undefined)\n // Only if the $type is a string, we actually assign the element\n if (typeof item.$type === 'string') {\n this.current.astNode = item;\n }\n item.$cstNode = current;\n const node = this.nodeStack.pop();\n // Empty composite nodes are not valid\n // Simply remove the node from the tree\n if ((node === null || node === void 0 ? void 0 : node.content.length) === 0) {\n this.removeNode(node);\n }\n }\n}\nexport class AbstractCstNode {\n /** @deprecated use `container` instead. */\n get parent() {\n return this.container;\n }\n /** @deprecated use `grammarSource` instead. */\n get feature() {\n return this.grammarSource;\n }\n get hidden() {\n return false;\n }\n get astNode() {\n var _a, _b;\n const node = typeof ((_a = this._astNode) === null || _a === void 0 ? void 0 : _a.$type) === 'string' ? this._astNode : (_b = this.container) === null || _b === void 0 ? void 0 : _b.astNode;\n if (!node) {\n throw new Error('This node has no associated AST element');\n }\n return node;\n }\n set astNode(value) {\n this._astNode = value;\n }\n /** @deprecated use `astNode` instead. */\n get element() {\n return this.astNode;\n }\n get text() {\n return this.root.fullText.substring(this.offset, this.end);\n }\n}\nexport class LeafCstNodeImpl extends AbstractCstNode {\n get offset() {\n return this._offset;\n }\n get length() {\n return this._length;\n }\n get end() {\n return this._offset + this._length;\n }\n get hidden() {\n return this._hidden;\n }\n get tokenType() {\n return this._tokenType;\n }\n get range() {\n return this._range;\n }\n constructor(offset, length, range, tokenType, hidden = false) {\n super();\n this._hidden = hidden;\n this._offset = offset;\n this._tokenType = tokenType;\n this._length = length;\n this._range = range;\n }\n}\nexport class CompositeCstNodeImpl extends AbstractCstNode {\n constructor() {\n super(...arguments);\n this.content = new CstNodeContainer(this);\n }\n /** @deprecated use `content` instead. */\n get children() {\n return this.content;\n }\n get offset() {\n var _a, _b;\n return (_b = (_a = this.firstNonHiddenNode) === null || _a === void 0 ? void 0 : _a.offset) !== null && _b !== void 0 ? _b : 0;\n }\n get length() {\n return this.end - this.offset;\n }\n get end() {\n var _a, _b;\n return (_b = (_a = this.lastNonHiddenNode) === null || _a === void 0 ? void 0 : _a.end) !== null && _b !== void 0 ? _b : 0;\n }\n get range() {\n const firstNode = this.firstNonHiddenNode;\n const lastNode = this.lastNonHiddenNode;\n if (firstNode && lastNode) {\n if (this._rangeCache === undefined) {\n const { range: firstRange } = firstNode;\n const { range: lastRange } = lastNode;\n this._rangeCache = { start: firstRange.start, end: lastRange.end.line < firstRange.start.line ? firstRange.start : lastRange.end };\n }\n return this._rangeCache;\n }\n else {\n return { start: Position.create(0, 0), end: Position.create(0, 0) };\n }\n }\n get firstNonHiddenNode() {\n for (const child of this.content) {\n if (!child.hidden) {\n return child;\n }\n }\n return this.content[0];\n }\n get lastNonHiddenNode() {\n for (let i = this.content.length - 1; i >= 0; i--) {\n const child = this.content[i];\n if (!child.hidden) {\n return child;\n }\n }\n return this.content[this.content.length - 1];\n }\n}\nclass CstNodeContainer extends Array {\n constructor(parent) {\n super();\n this.parent = parent;\n Object.setPrototypeOf(this, CstNodeContainer.prototype);\n }\n push(...items) {\n this.addParents(items);\n return super.push(...items);\n }\n unshift(...items) {\n this.addParents(items);\n return super.unshift(...items);\n }\n splice(start, count, ...items) {\n this.addParents(items);\n return super.splice(start, count, ...items);\n }\n addParents(items) {\n for (const item of items) {\n item.container = this.parent;\n }\n }\n}\nexport class RootCstNodeImpl extends CompositeCstNodeImpl {\n get text() {\n return this._text.substring(this.offset, this.end);\n }\n get fullText() {\n return this._text;\n }\n constructor(input) {\n super();\n this._text = '';\n this._text = input !== null && input !== void 0 ? input : '';\n }\n}\n//# sourceMappingURL=cst-node-builder.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { defaultParserErrorProvider, EmbeddedActionsParser, LLkLookaheadStrategy } from 'chevrotain';\nimport { LLStarLookaheadStrategy } from 'chevrotain-allstar';\nimport { isAssignment, isCrossReference, isKeyword } from '../languages/generated/ast.js';\nimport { getExplicitRuleType, isDataTypeRule } from '../utils/grammar-utils.js';\nimport { assignMandatoryProperties, getContainerOfType, linkContentToContainer } from '../utils/ast-utils.js';\nimport { CstNodeBuilder } from './cst-node-builder.js';\nexport const DatatypeSymbol = Symbol('Datatype');\nfunction isDataTypeNode(node) {\n return node.$type === DatatypeSymbol;\n}\nconst ruleSuffix = '\\u200B';\nconst withRuleSuffix = (name) => name.endsWith(ruleSuffix) ? name : name + ruleSuffix;\nexport class AbstractLangiumParser {\n constructor(services) {\n this._unorderedGroups = new Map();\n this.allRules = new Map();\n this.lexer = services.parser.Lexer;\n const tokens = this.lexer.definition;\n const production = services.LanguageMetaData.mode === 'production';\n this.wrapper = new ChevrotainWrapper(tokens, Object.assign(Object.assign({}, services.parser.ParserConfig), { skipValidations: production, errorMessageProvider: services.parser.ParserErrorMessageProvider }));\n }\n alternatives(idx, choices) {\n this.wrapper.wrapOr(idx, choices);\n }\n optional(idx, callback) {\n this.wrapper.wrapOption(idx, callback);\n }\n many(idx, callback) {\n this.wrapper.wrapMany(idx, callback);\n }\n atLeastOne(idx, callback) {\n this.wrapper.wrapAtLeastOne(idx, callback);\n }\n getRule(name) {\n return this.allRules.get(name);\n }\n isRecording() {\n return this.wrapper.IS_RECORDING;\n }\n get unorderedGroups() {\n return this._unorderedGroups;\n }\n getRuleStack() {\n return this.wrapper.RULE_STACK;\n }\n finalize() {\n this.wrapper.wrapSelfAnalysis();\n }\n}\nexport class LangiumParser extends AbstractLangiumParser {\n get current() {\n return this.stack[this.stack.length - 1];\n }\n constructor(services) {\n super(services);\n this.nodeBuilder = new CstNodeBuilder();\n this.stack = [];\n this.assignmentMap = new Map();\n this.linker = services.references.Linker;\n this.converter = services.parser.ValueConverter;\n this.astReflection = services.shared.AstReflection;\n }\n rule(rule, impl) {\n const type = this.computeRuleType(rule);\n const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(type, impl).bind(this));\n this.allRules.set(rule.name, ruleMethod);\n if (rule.entry) {\n this.mainRule = ruleMethod;\n }\n return ruleMethod;\n }\n computeRuleType(rule) {\n if (rule.fragment) {\n return undefined;\n }\n else if (isDataTypeRule(rule)) {\n return DatatypeSymbol;\n }\n else {\n const explicit = getExplicitRuleType(rule);\n return explicit !== null && explicit !== void 0 ? explicit : rule.name;\n }\n }\n parse(input, options = {}) {\n this.nodeBuilder.buildRootNode(input);\n const lexerResult = this.lexerResult = this.lexer.tokenize(input);\n this.wrapper.input = lexerResult.tokens;\n const ruleMethod = options.rule ? this.allRules.get(options.rule) : this.mainRule;\n if (!ruleMethod) {\n throw new Error(options.rule ? `No rule found with name '${options.rule}'` : 'No main rule available.');\n }\n const result = ruleMethod.call(this.wrapper, {});\n this.nodeBuilder.addHiddenNodes(lexerResult.hidden);\n this.unorderedGroups.clear();\n this.lexerResult = undefined;\n return {\n value: result,\n lexerErrors: lexerResult.errors,\n lexerReport: lexerResult.report,\n parserErrors: this.wrapper.errors\n };\n }\n startImplementation($type, implementation) {\n return (args) => {\n // Only create a new AST node in case the calling rule is not a fragment rule\n const createNode = !this.isRecording() && $type !== undefined;\n if (createNode) {\n const node = { $type };\n this.stack.push(node);\n if ($type === DatatypeSymbol) {\n node.value = '';\n }\n }\n let result;\n try {\n result = implementation(args);\n }\n catch (err) {\n result = undefined;\n }\n if (result === undefined && createNode) {\n result = this.construct();\n }\n return result;\n };\n }\n extractHiddenTokens(token) {\n const hiddenTokens = this.lexerResult.hidden;\n if (!hiddenTokens.length) {\n return [];\n }\n const offset = token.startOffset;\n for (let i = 0; i < hiddenTokens.length; i++) {\n const token = hiddenTokens[i];\n if (token.startOffset > offset) {\n return hiddenTokens.splice(0, i);\n }\n }\n return hiddenTokens.splice(0, hiddenTokens.length);\n }\n consume(idx, tokenType, feature) {\n const token = this.wrapper.wrapConsume(idx, tokenType);\n if (!this.isRecording() && this.isValidToken(token)) {\n const hiddenTokens = this.extractHiddenTokens(token);\n this.nodeBuilder.addHiddenNodes(hiddenTokens);\n const leafNode = this.nodeBuilder.buildLeafNode(token, feature);\n const { assignment, isCrossRef } = this.getAssignment(feature);\n const current = this.current;\n if (assignment) {\n const convertedValue = isKeyword(feature) ? token.image : this.converter.convert(token.image, leafNode);\n this.assign(assignment.operator, assignment.feature, convertedValue, leafNode, isCrossRef);\n }\n else if (isDataTypeNode(current)) {\n let text = token.image;\n if (!isKeyword(feature)) {\n text = this.converter.convert(text, leafNode).toString();\n }\n current.value += text;\n }\n }\n }\n /**\n * Most consumed parser tokens are valid. However there are two cases in which they are not valid:\n *\n * 1. They were inserted during error recovery by the parser. These tokens don't really exist and should not be further processed\n * 2. They contain invalid token ranges. This might include the special EOF token, or other tokens produced by invalid token builders.\n */\n isValidToken(token) {\n return !token.isInsertedInRecovery && !isNaN(token.startOffset) && typeof token.endOffset === 'number' && !isNaN(token.endOffset);\n }\n subrule(idx, rule, fragment, feature, args) {\n let cstNode;\n if (!this.isRecording() && !fragment) {\n // We only want to create a new CST node if the subrule actually creates a new AST node.\n // In other cases like calls of fragment rules the current CST/AST is populated further.\n // Note that skipping this initialization and leaving cstNode unassigned also skips the subrule assignment later on.\n // This is intended, as fragment rules only enrich the current AST node\n cstNode = this.nodeBuilder.buildCompositeNode(feature);\n }\n const subruleResult = this.wrapper.wrapSubrule(idx, rule, args);\n if (!this.isRecording() && cstNode && cstNode.length > 0) {\n this.performSubruleAssignment(subruleResult, feature, cstNode);\n }\n }\n performSubruleAssignment(result, feature, cstNode) {\n const { assignment, isCrossRef } = this.getAssignment(feature);\n if (assignment) {\n this.assign(assignment.operator, assignment.feature, result, cstNode, isCrossRef);\n }\n else if (!assignment) {\n // If we call a subrule without an assignment we either:\n // 1. append the result of the subrule (data type rule)\n // 2. override the current object with the newly parsed object\n // If the current element is an AST node and the result of the subrule\n // is a data type rule, we can safely discard the results.\n const current = this.current;\n if (isDataTypeNode(current)) {\n current.value += result.toString();\n }\n else if (typeof result === 'object' && result) {\n const object = this.assignWithoutOverride(result, current);\n const newItem = object;\n this.stack.pop();\n this.stack.push(newItem);\n }\n }\n }\n action($type, action) {\n if (!this.isRecording()) {\n let last = this.current;\n if (action.feature && action.operator) {\n last = this.construct();\n this.nodeBuilder.removeNode(last.$cstNode);\n const node = this.nodeBuilder.buildCompositeNode(action);\n node.content.push(last.$cstNode);\n const newItem = { $type };\n this.stack.push(newItem);\n this.assign(action.operator, action.feature, last, last.$cstNode, false);\n }\n else {\n last.$type = $type;\n }\n }\n }\n construct() {\n if (this.isRecording()) {\n return undefined;\n }\n const obj = this.current;\n linkContentToContainer(obj);\n this.nodeBuilder.construct(obj);\n this.stack.pop();\n if (isDataTypeNode(obj)) {\n return this.converter.convert(obj.value, obj.$cstNode);\n }\n else {\n assignMandatoryProperties(this.astReflection, obj);\n }\n return obj;\n }\n getAssignment(feature) {\n if (!this.assignmentMap.has(feature)) {\n const assignment = getContainerOfType(feature, isAssignment);\n this.assignmentMap.set(feature, {\n assignment: assignment,\n isCrossRef: assignment ? isCrossReference(assignment.terminal) : false\n });\n }\n return this.assignmentMap.get(feature);\n }\n assign(operator, feature, value, cstNode, isCrossRef) {\n const obj = this.current;\n let item;\n if (isCrossRef && typeof value === 'string') {\n item = this.linker.buildReference(obj, feature, cstNode, value);\n }\n else {\n item = value;\n }\n switch (operator) {\n case '=': {\n obj[feature] = item;\n break;\n }\n case '?=': {\n obj[feature] = true;\n break;\n }\n case '+=': {\n if (!Array.isArray(obj[feature])) {\n obj[feature] = [];\n }\n obj[feature].push(item);\n }\n }\n }\n assignWithoutOverride(target, source) {\n for (const [name, existingValue] of Object.entries(source)) {\n const newValue = target[name];\n if (newValue === undefined) {\n target[name] = existingValue;\n }\n else if (Array.isArray(newValue) && Array.isArray(existingValue)) {\n existingValue.push(...newValue);\n target[name] = existingValue;\n }\n }\n // The target was parsed from a unassigned subrule\n // After the subrule construction, it received a cst node\n // This CST node will later be overriden by the cst node builder\n // To prevent references to stale AST nodes in the CST,\n // we need to remove the reference here\n const targetCstNode = target.$cstNode;\n if (targetCstNode) {\n targetCstNode.astNode = undefined;\n target.$cstNode = undefined;\n }\n return target;\n }\n get definitionErrors() {\n return this.wrapper.definitionErrors;\n }\n}\nexport class AbstractParserErrorMessageProvider {\n buildMismatchTokenMessage(options) {\n return defaultParserErrorProvider.buildMismatchTokenMessage(options);\n }\n buildNotAllInputParsedMessage(options) {\n return defaultParserErrorProvider.buildNotAllInputParsedMessage(options);\n }\n buildNoViableAltMessage(options) {\n return defaultParserErrorProvider.buildNoViableAltMessage(options);\n }\n buildEarlyExitMessage(options) {\n return defaultParserErrorProvider.buildEarlyExitMessage(options);\n }\n}\nexport class LangiumParserErrorMessageProvider extends AbstractParserErrorMessageProvider {\n buildMismatchTokenMessage({ expected, actual }) {\n const expectedMsg = expected.LABEL\n ? '`' + expected.LABEL + '`'\n : expected.name.endsWith(':KW')\n ? `keyword '${expected.name.substring(0, expected.name.length - 3)}'`\n : `token of type '${expected.name}'`;\n return `Expecting ${expectedMsg} but found \\`${actual.image}\\`.`;\n }\n buildNotAllInputParsedMessage({ firstRedundant }) {\n return `Expecting end of file but found \\`${firstRedundant.image}\\`.`;\n }\n}\nexport class LangiumCompletionParser extends AbstractLangiumParser {\n constructor() {\n super(...arguments);\n this.tokens = [];\n this.elementStack = [];\n this.lastElementStack = [];\n this.nextTokenIndex = 0;\n this.stackSize = 0;\n }\n action() {\n // NOOP\n }\n construct() {\n // NOOP\n return undefined;\n }\n parse(input) {\n this.resetState();\n const tokens = this.lexer.tokenize(input, { mode: 'partial' });\n this.tokens = tokens.tokens;\n this.wrapper.input = [...this.tokens];\n this.mainRule.call(this.wrapper, {});\n this.unorderedGroups.clear();\n return {\n tokens: this.tokens,\n elementStack: [...this.lastElementStack],\n tokenIndex: this.nextTokenIndex\n };\n }\n rule(rule, impl) {\n const ruleMethod = this.wrapper.DEFINE_RULE(withRuleSuffix(rule.name), this.startImplementation(impl).bind(this));\n this.allRules.set(rule.name, ruleMethod);\n if (rule.entry) {\n this.mainRule = ruleMethod;\n }\n return ruleMethod;\n }\n resetState() {\n this.elementStack = [];\n this.lastElementStack = [];\n this.nextTokenIndex = 0;\n this.stackSize = 0;\n }\n startImplementation(implementation) {\n return (args) => {\n const size = this.keepStackSize();\n try {\n implementation(args);\n }\n finally {\n this.resetStackSize(size);\n }\n };\n }\n removeUnexpectedElements() {\n this.elementStack.splice(this.stackSize);\n }\n keepStackSize() {\n const size = this.elementStack.length;\n this.stackSize = size;\n return size;\n }\n resetStackSize(size) {\n this.removeUnexpectedElements();\n this.stackSize = size;\n }\n consume(idx, tokenType, feature) {\n this.wrapper.wrapConsume(idx, tokenType);\n if (!this.isRecording()) {\n this.lastElementStack = [...this.elementStack, feature];\n this.nextTokenIndex = this.currIdx + 1;\n }\n }\n subrule(idx, rule, fragment, feature, args) {\n this.before(feature);\n this.wrapper.wrapSubrule(idx, rule, args);\n this.after(feature);\n }\n before(element) {\n if (!this.isRecording()) {\n this.elementStack.push(element);\n }\n }\n after(element) {\n if (!this.isRecording()) {\n const index = this.elementStack.lastIndexOf(element);\n if (index >= 0) {\n this.elementStack.splice(index);\n }\n }\n }\n get currIdx() {\n return this.wrapper.currIdx;\n }\n}\nconst defaultConfig = {\n recoveryEnabled: true,\n nodeLocationTracking: 'full',\n skipValidations: true,\n errorMessageProvider: new LangiumParserErrorMessageProvider()\n};\n/**\n * This class wraps the embedded actions parser of chevrotain and exposes protected methods.\n * This way, we can build the `LangiumParser` as a composition.\n */\nclass ChevrotainWrapper extends EmbeddedActionsParser {\n constructor(tokens, config) {\n const useDefaultLookahead = config && 'maxLookahead' in config;\n super(tokens, Object.assign(Object.assign(Object.assign({}, defaultConfig), { lookaheadStrategy: useDefaultLookahead\n ? new LLkLookaheadStrategy({ maxLookahead: config.maxLookahead })\n : new LLStarLookaheadStrategy({\n // If validations are skipped, don't log the lookahead warnings\n logging: config.skipValidations ? () => { } : undefined\n }) }), config));\n }\n get IS_RECORDING() {\n return this.RECORDING_PHASE;\n }\n DEFINE_RULE(name, impl) {\n return this.RULE(name, impl);\n }\n wrapSelfAnalysis() {\n this.performSelfAnalysis();\n }\n wrapConsume(idx, tokenType) {\n return this.consume(idx, tokenType);\n }\n wrapSubrule(idx, rule, args) {\n return this.subrule(idx, rule, {\n ARGS: [args]\n });\n }\n wrapOr(idx, choices) {\n this.or(idx, choices);\n }\n wrapOption(idx, callback) {\n this.option(idx, callback);\n }\n wrapMany(idx, callback) {\n this.many(idx, callback);\n }\n wrapAtLeastOne(idx, callback) {\n this.atLeastOne(idx, callback);\n }\n}\n//# sourceMappingURL=langium-parser.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { EMPTY_ALT, EOF } from 'chevrotain';\nimport { isAction, isAlternatives, isEndOfFile, isAssignment, isConjunction, isCrossReference, isDisjunction, isGroup, isKeyword, isNegation, isParameterReference, isParserRule, isRuleCall, isTerminalRule, isUnorderedGroup, isBooleanLiteral } from '../languages/generated/ast.js';\nimport { assertUnreachable, ErrorWithLocation } from '../utils/errors.js';\nimport { stream } from '../utils/stream.js';\nimport { findNameAssignment, getAllReachableRules, getTypeName } from '../utils/grammar-utils.js';\nexport function createParser(grammar, parser, tokens) {\n const parserContext = {\n parser,\n tokens,\n ruleNames: new Map()\n };\n buildRules(parserContext, grammar);\n return parser;\n}\nfunction buildRules(parserContext, grammar) {\n const reachable = getAllReachableRules(grammar, false);\n const parserRules = stream(grammar.rules).filter(isParserRule).filter(rule => reachable.has(rule));\n for (const rule of parserRules) {\n const ctx = Object.assign(Object.assign({}, parserContext), { consume: 1, optional: 1, subrule: 1, many: 1, or: 1 });\n parserContext.parser.rule(rule, buildElement(ctx, rule.definition));\n }\n}\nfunction buildElement(ctx, element, ignoreGuard = false) {\n let method;\n if (isKeyword(element)) {\n method = buildKeyword(ctx, element);\n }\n else if (isAction(element)) {\n method = buildAction(ctx, element);\n }\n else if (isAssignment(element)) {\n method = buildElement(ctx, element.terminal);\n }\n else if (isCrossReference(element)) {\n method = buildCrossReference(ctx, element);\n }\n else if (isRuleCall(element)) {\n method = buildRuleCall(ctx, element);\n }\n else if (isAlternatives(element)) {\n method = buildAlternatives(ctx, element);\n }\n else if (isUnorderedGroup(element)) {\n method = buildUnorderedGroup(ctx, element);\n }\n else if (isGroup(element)) {\n method = buildGroup(ctx, element);\n }\n else if (isEndOfFile(element)) {\n const idx = ctx.consume++;\n method = () => ctx.parser.consume(idx, EOF, element);\n }\n else {\n throw new ErrorWithLocation(element.$cstNode, `Unexpected element type: ${element.$type}`);\n }\n return wrap(ctx, ignoreGuard ? undefined : getGuardCondition(element), method, element.cardinality);\n}\nfunction buildAction(ctx, action) {\n const actionType = getTypeName(action);\n return () => ctx.parser.action(actionType, action);\n}\nfunction buildRuleCall(ctx, ruleCall) {\n const rule = ruleCall.rule.ref;\n if (isParserRule(rule)) {\n const idx = ctx.subrule++;\n const fragment = rule.fragment;\n const predicate = ruleCall.arguments.length > 0 ? buildRuleCallPredicate(rule, ruleCall.arguments) : () => ({});\n return (args) => ctx.parser.subrule(idx, getRule(ctx, rule), fragment, ruleCall, predicate(args));\n }\n else if (isTerminalRule(rule)) {\n const idx = ctx.consume++;\n const method = getToken(ctx, rule.name);\n return () => ctx.parser.consume(idx, method, ruleCall);\n }\n else if (!rule) {\n throw new ErrorWithLocation(ruleCall.$cstNode, `Undefined rule: ${ruleCall.rule.$refText}`);\n }\n else {\n assertUnreachable(rule);\n }\n}\nfunction buildRuleCallPredicate(rule, namedArgs) {\n const predicates = namedArgs.map(e => buildPredicate(e.value));\n return (args) => {\n const ruleArgs = {};\n for (let i = 0; i < predicates.length; i++) {\n const ruleTarget = rule.parameters[i];\n const predicate = predicates[i];\n ruleArgs[ruleTarget.name] = predicate(args);\n }\n return ruleArgs;\n };\n}\nfunction buildPredicate(condition) {\n if (isDisjunction(condition)) {\n const left = buildPredicate(condition.left);\n const right = buildPredicate(condition.right);\n return (args) => (left(args) || right(args));\n }\n else if (isConjunction(condition)) {\n const left = buildPredicate(condition.left);\n const right = buildPredicate(condition.right);\n return (args) => (left(args) && right(args));\n }\n else if (isNegation(condition)) {\n const value = buildPredicate(condition.value);\n return (args) => !value(args);\n }\n else if (isParameterReference(condition)) {\n const name = condition.parameter.ref.name;\n return (args) => args !== undefined && args[name] === true;\n }\n else if (isBooleanLiteral(condition)) {\n const value = Boolean(condition.true);\n return () => value;\n }\n assertUnreachable(condition);\n}\nfunction buildAlternatives(ctx, alternatives) {\n if (alternatives.elements.length === 1) {\n return buildElement(ctx, alternatives.elements[0]);\n }\n else {\n const methods = [];\n for (const element of alternatives.elements) {\n const predicatedMethod = {\n // Since we handle the guard condition in the alternative already\n // We can ignore the group guard condition inside\n ALT: buildElement(ctx, element, true)\n };\n const guard = getGuardCondition(element);\n if (guard) {\n predicatedMethod.GATE = buildPredicate(guard);\n }\n methods.push(predicatedMethod);\n }\n const idx = ctx.or++;\n return (args) => ctx.parser.alternatives(idx, methods.map(method => {\n const alt = {\n ALT: () => method.ALT(args)\n };\n const gate = method.GATE;\n if (gate) {\n alt.GATE = () => gate(args);\n }\n return alt;\n }));\n }\n}\nfunction buildUnorderedGroup(ctx, group) {\n if (group.elements.length === 1) {\n return buildElement(ctx, group.elements[0]);\n }\n const methods = [];\n for (const element of group.elements) {\n const predicatedMethod = {\n // Since we handle the guard condition in the alternative already\n // We can ignore the group guard condition inside\n ALT: buildElement(ctx, element, true)\n };\n const guard = getGuardCondition(element);\n if (guard) {\n predicatedMethod.GATE = buildPredicate(guard);\n }\n methods.push(predicatedMethod);\n }\n const orIdx = ctx.or++;\n const idFunc = (groupIdx, lParser) => {\n const stackId = lParser.getRuleStack().join('-');\n return `uGroup_${groupIdx}_${stackId}`;\n };\n const alternatives = (args) => ctx.parser.alternatives(orIdx, methods.map((method, idx) => {\n const alt = { ALT: () => true };\n const parser = ctx.parser;\n alt.ALT = () => {\n method.ALT(args);\n if (!parser.isRecording()) {\n const key = idFunc(orIdx, parser);\n if (!parser.unorderedGroups.get(key)) {\n // init after clear state\n parser.unorderedGroups.set(key, []);\n }\n const groupState = parser.unorderedGroups.get(key);\n if (typeof (groupState === null || groupState === void 0 ? void 0 : groupState[idx]) === 'undefined') {\n // Not accessed yet\n groupState[idx] = true;\n }\n }\n };\n const gate = method.GATE;\n if (gate) {\n alt.GATE = () => gate(args);\n }\n else {\n alt.GATE = () => {\n const trackedAlternatives = parser.unorderedGroups.get(idFunc(orIdx, parser));\n const allow = !(trackedAlternatives === null || trackedAlternatives === void 0 ? void 0 : trackedAlternatives[idx]);\n return allow;\n };\n }\n return alt;\n }));\n const wrapped = wrap(ctx, getGuardCondition(group), alternatives, '*');\n return (args) => {\n wrapped(args);\n if (!ctx.parser.isRecording()) {\n ctx.parser.unorderedGroups.delete(idFunc(orIdx, ctx.parser));\n }\n };\n}\nfunction buildGroup(ctx, group) {\n const methods = group.elements.map(e => buildElement(ctx, e));\n return (args) => methods.forEach(method => method(args));\n}\nfunction getGuardCondition(element) {\n if (isGroup(element)) {\n return element.guardCondition;\n }\n return undefined;\n}\nfunction buildCrossReference(ctx, crossRef, terminal = crossRef.terminal) {\n if (!terminal) {\n if (!crossRef.type.ref) {\n throw new Error('Could not resolve reference to type: ' + crossRef.type.$refText);\n }\n const assignment = findNameAssignment(crossRef.type.ref);\n const assignTerminal = assignment === null || assignment === void 0 ? void 0 : assignment.terminal;\n if (!assignTerminal) {\n throw new Error('Could not find name assignment for type: ' + getTypeName(crossRef.type.ref));\n }\n return buildCrossReference(ctx, crossRef, assignTerminal);\n }\n else if (isRuleCall(terminal) && isParserRule(terminal.rule.ref)) {\n // The terminal is a data type rule here. Everything else will result in a validation error.\n const rule = terminal.rule.ref;\n const idx = ctx.subrule++;\n return (args) => ctx.parser.subrule(idx, getRule(ctx, rule), false, crossRef, args);\n }\n else if (isRuleCall(terminal) && isTerminalRule(terminal.rule.ref)) {\n const idx = ctx.consume++;\n const terminalRule = getToken(ctx, terminal.rule.ref.name);\n return () => ctx.parser.consume(idx, terminalRule, crossRef);\n }\n else if (isKeyword(terminal)) {\n const idx = ctx.consume++;\n const keyword = getToken(ctx, terminal.value);\n return () => ctx.parser.consume(idx, keyword, crossRef);\n }\n else {\n throw new Error('Could not build cross reference parser');\n }\n}\nfunction buildKeyword(ctx, keyword) {\n const idx = ctx.consume++;\n const token = ctx.tokens[keyword.value];\n if (!token) {\n throw new Error('Could not find token for keyword: ' + keyword.value);\n }\n return () => ctx.parser.consume(idx, token, keyword);\n}\nfunction wrap(ctx, guard, method, cardinality) {\n const gate = guard && buildPredicate(guard);\n if (!cardinality) {\n if (gate) {\n const idx = ctx.or++;\n return (args) => ctx.parser.alternatives(idx, [\n {\n ALT: () => method(args),\n GATE: () => gate(args)\n },\n {\n ALT: EMPTY_ALT(),\n GATE: () => !gate(args)\n }\n ]);\n }\n else {\n return method;\n }\n }\n if (cardinality === '*') {\n const idx = ctx.many++;\n return (args) => ctx.parser.many(idx, {\n DEF: () => method(args),\n GATE: gate ? () => gate(args) : undefined\n });\n }\n else if (cardinality === '+') {\n const idx = ctx.many++;\n if (gate) {\n const orIdx = ctx.or++;\n // In the case of a guard condition for the `+` group\n // We combine it with an empty alternative\n // If the condition returns true, it needs to parse at least a single iteration\n // If its false, it is not allowed to parse anything\n return (args) => ctx.parser.alternatives(orIdx, [\n {\n ALT: () => ctx.parser.atLeastOne(idx, {\n DEF: () => method(args)\n }),\n GATE: () => gate(args)\n },\n {\n ALT: EMPTY_ALT(),\n GATE: () => !gate(args)\n }\n ]);\n }\n else {\n return (args) => ctx.parser.atLeastOne(idx, {\n DEF: () => method(args),\n });\n }\n }\n else if (cardinality === '?') {\n const idx = ctx.optional++;\n return (args) => ctx.parser.optional(idx, {\n DEF: () => method(args),\n GATE: gate ? () => gate(args) : undefined\n });\n }\n else {\n assertUnreachable(cardinality);\n }\n}\nfunction getRule(ctx, element) {\n const name = getRuleName(ctx, element);\n const rule = ctx.parser.getRule(name);\n if (!rule)\n throw new Error(`Rule \"${name}\" not found.\"`);\n return rule;\n}\nfunction getRuleName(ctx, element) {\n if (isParserRule(element)) {\n return element.name;\n }\n else if (ctx.ruleNames.has(element)) {\n return ctx.ruleNames.get(element);\n }\n else {\n let item = element;\n let parent = item.$container;\n let ruleName = element.$type;\n while (!isParserRule(parent)) {\n if (isGroup(parent) || isAlternatives(parent) || isUnorderedGroup(parent)) {\n const index = parent.elements.indexOf(item);\n ruleName = index.toString() + ':' + ruleName;\n }\n item = parent;\n parent = parent.$container;\n }\n const rule = parent;\n ruleName = rule.name + ':' + ruleName;\n ctx.ruleNames.set(element, ruleName);\n return ruleName;\n }\n}\nfunction getToken(ctx, name) {\n const token = ctx.tokens[name];\n if (!token)\n throw new Error(`Token \"${name}\" not found.\"`);\n return token;\n}\n//# sourceMappingURL=parser-builder-base.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { LangiumCompletionParser } from './langium-parser.js';\nimport { createParser } from './parser-builder-base.js';\nexport function createCompletionParser(services) {\n const grammar = services.Grammar;\n const lexer = services.parser.Lexer;\n const parser = new LangiumCompletionParser(services);\n createParser(grammar, parser, lexer.definition);\n parser.finalize();\n return parser;\n}\n//# sourceMappingURL=completion-parser-builder.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { LangiumParser } from './langium-parser.js';\nimport { createParser } from './parser-builder-base.js';\n/**\n * Create and finalize a Langium parser. The parser rules are derived from the grammar, which is\n * available at `services.Grammar`.\n */\nexport function createLangiumParser(services) {\n const parser = prepareLangiumParser(services);\n parser.finalize();\n return parser;\n}\n/**\n * Create a Langium parser without finalizing it. This is used to extract more detailed error\n * information when the parser is initially validated.\n */\nexport function prepareLangiumParser(services) {\n const grammar = services.Grammar;\n const lexer = services.parser.Lexer;\n const parser = new LangiumParser(services);\n return createParser(grammar, parser, lexer.definition);\n}\n//# sourceMappingURL=langium-parser-builder.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Lexer } from 'chevrotain';\nimport { isKeyword, isParserRule, isTerminalRule } from '../languages/generated/ast.js';\nimport { streamAllContents } from '../utils/ast-utils.js';\nimport { getAllReachableRules, terminalRegex } from '../utils/grammar-utils.js';\nimport { getCaseInsensitivePattern, isWhitespace, partialMatches } from '../utils/regexp-utils.js';\nimport { stream } from '../utils/stream.js';\nexport class DefaultTokenBuilder {\n constructor() {\n /**\n * The list of diagnostics stored during the lexing process of a single text.\n */\n this.diagnostics = [];\n }\n buildTokens(grammar, options) {\n const reachableRules = stream(getAllReachableRules(grammar, false));\n const terminalTokens = this.buildTerminalTokens(reachableRules);\n const tokens = this.buildKeywordTokens(reachableRules, terminalTokens, options);\n terminalTokens.forEach(terminalToken => {\n const pattern = terminalToken.PATTERN;\n if (typeof pattern === 'object' && pattern && 'test' in pattern && isWhitespace(pattern)) {\n tokens.unshift(terminalToken);\n }\n else {\n tokens.push(terminalToken);\n }\n });\n // We don't need to add the EOF token explicitly.\n // It is automatically available at the end of the token stream.\n return tokens;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n flushLexingReport(text) {\n return { diagnostics: this.popDiagnostics() };\n }\n popDiagnostics() {\n const diagnostics = [...this.diagnostics];\n this.diagnostics = [];\n return diagnostics;\n }\n buildTerminalTokens(rules) {\n return rules.filter(isTerminalRule).filter(e => !e.fragment)\n .map(terminal => this.buildTerminalToken(terminal)).toArray();\n }\n buildTerminalToken(terminal) {\n const regex = terminalRegex(terminal);\n const pattern = this.requiresCustomPattern(regex) ? this.regexPatternFunction(regex) : regex;\n const tokenType = {\n name: terminal.name,\n PATTERN: pattern,\n };\n if (typeof pattern === 'function') {\n tokenType.LINE_BREAKS = true;\n }\n if (terminal.hidden) {\n // Only skip tokens that are able to accept whitespace\n tokenType.GROUP = isWhitespace(regex) ? Lexer.SKIPPED : 'hidden';\n }\n return tokenType;\n }\n requiresCustomPattern(regex) {\n if (regex.flags.includes('u') || regex.flags.includes('s')) {\n // Unicode and dotall regexes are not supported by Chevrotain.\n return true;\n }\n else if (regex.source.includes('?<=') || regex.source.includes('? {\n stickyRegex.lastIndex = offset;\n const execResult = stickyRegex.exec(text);\n return execResult;\n };\n }\n buildKeywordTokens(rules, terminalTokens, options) {\n return rules\n // We filter by parser rules, since keywords in terminal rules get transformed into regex and are not actual tokens\n .filter(isParserRule)\n .flatMap(rule => streamAllContents(rule).filter(isKeyword))\n .distinct(e => e.value).toArray()\n // Sort keywords by descending length\n .sort((a, b) => b.value.length - a.value.length)\n .map(keyword => this.buildKeywordToken(keyword, terminalTokens, Boolean(options === null || options === void 0 ? void 0 : options.caseInsensitive)));\n }\n buildKeywordToken(keyword, terminalTokens, caseInsensitive) {\n const keywordPattern = this.buildKeywordPattern(keyword, caseInsensitive);\n const tokenType = {\n name: keyword.value,\n PATTERN: keywordPattern,\n LONGER_ALT: this.findLongerAlt(keyword, terminalTokens)\n };\n if (typeof keywordPattern === 'function') {\n tokenType.LINE_BREAKS = true;\n }\n return tokenType;\n }\n buildKeywordPattern(keyword, caseInsensitive) {\n return caseInsensitive ?\n new RegExp(getCaseInsensitivePattern(keyword.value)) :\n keyword.value;\n }\n findLongerAlt(keyword, terminalTokens) {\n return terminalTokens.reduce((longerAlts, token) => {\n const pattern = token === null || token === void 0 ? void 0 : token.PATTERN;\n if ((pattern === null || pattern === void 0 ? void 0 : pattern.source) && partialMatches('^' + pattern.source + '$', keyword.value)) {\n longerAlts.push(token);\n }\n return longerAlts;\n }, []);\n }\n}\n//# sourceMappingURL=token-builder.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { isCrossReference, isRuleCall } from '../languages/generated/ast.js';\nimport { getCrossReferenceTerminal, getRuleType } from '../utils/grammar-utils.js';\nexport class DefaultValueConverter {\n convert(input, cstNode) {\n let feature = cstNode.grammarSource;\n if (isCrossReference(feature)) {\n feature = getCrossReferenceTerminal(feature);\n }\n if (isRuleCall(feature)) {\n const rule = feature.rule.ref;\n if (!rule) {\n throw new Error('This cst node was not parsed by a rule.');\n }\n return this.runConverter(rule, input, cstNode);\n }\n return input;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n runConverter(rule, input, cstNode) {\n var _a;\n switch (rule.name.toUpperCase()) {\n case 'INT': return ValueConverter.convertInt(input);\n case 'STRING': return ValueConverter.convertString(input);\n case 'ID': return ValueConverter.convertID(input);\n }\n switch ((_a = getRuleType(rule)) === null || _a === void 0 ? void 0 : _a.toLowerCase()) {\n case 'number': return ValueConverter.convertNumber(input);\n case 'boolean': return ValueConverter.convertBoolean(input);\n case 'bigint': return ValueConverter.convertBigint(input);\n case 'date': return ValueConverter.convertDate(input);\n default: return input;\n }\n }\n}\nexport var ValueConverter;\n(function (ValueConverter) {\n function convertString(input) {\n let result = '';\n for (let i = 1; i < input.length - 1; i++) {\n const c = input.charAt(i);\n if (c === '\\\\') {\n const c1 = input.charAt(++i);\n result += convertEscapeCharacter(c1);\n }\n else {\n result += c;\n }\n }\n return result;\n }\n ValueConverter.convertString = convertString;\n function convertEscapeCharacter(char) {\n switch (char) {\n case 'b': return '\\b';\n case 'f': return '\\f';\n case 'n': return '\\n';\n case 'r': return '\\r';\n case 't': return '\\t';\n case 'v': return '\\v';\n case '0': return '\\0';\n default: return char;\n }\n }\n function convertID(input) {\n if (input.charAt(0) === '^') {\n return input.substring(1);\n }\n else {\n return input;\n }\n }\n ValueConverter.convertID = convertID;\n function convertInt(input) {\n return parseInt(input);\n }\n ValueConverter.convertInt = convertInt;\n function convertBigint(input) {\n return BigInt(input);\n }\n ValueConverter.convertBigint = convertBigint;\n function convertDate(input) {\n return new Date(input);\n }\n ValueConverter.convertDate = convertDate;\n function convertNumber(input) {\n return Number(input);\n }\n ValueConverter.convertNumber = convertNumber;\n function convertBoolean(input) {\n return input.toLowerCase() === 'true';\n }\n ValueConverter.convertBoolean = convertBoolean;\n})(ValueConverter || (ValueConverter = {}));\n//# sourceMappingURL=value-converter.js.map","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet _ral;\nfunction RAL() {\n if (_ral === undefined) {\n throw new Error(`No runtime abstraction layer installed`);\n }\n return _ral;\n}\n(function (RAL) {\n function install(ral) {\n if (ral === undefined) {\n throw new Error(`No runtime abstraction layer provided`);\n }\n _ral = ral;\n }\n RAL.install = install;\n})(RAL || (RAL = {}));\nexports.default = RAL;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;\nfunction boolean(value) {\n return value === true || value === false;\n}\nexports.boolean = boolean;\nfunction string(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexports.string = string;\nfunction number(value) {\n return typeof value === 'number' || value instanceof Number;\n}\nexports.number = number;\nfunction error(value) {\n return value instanceof Error;\n}\nexports.error = error;\nfunction func(value) {\n return typeof value === 'function';\n}\nexports.func = func;\nfunction array(value) {\n return Array.isArray(value);\n}\nexports.array = array;\nfunction stringArray(value) {\n return array(value) && value.every(elem => string(elem));\n}\nexports.stringArray = stringArray;\n","\"use strict\";\n/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = exports.Event = void 0;\nconst ral_1 = require(\"./ral\");\nvar Event;\n(function (Event) {\n const _disposable = { dispose() { } };\n Event.None = function () { return _disposable; };\n})(Event || (exports.Event = Event = {}));\nclass CallbackList {\n add(callback, context = null, bucket) {\n if (!this._callbacks) {\n this._callbacks = [];\n this._contexts = [];\n }\n this._callbacks.push(callback);\n this._contexts.push(context);\n if (Array.isArray(bucket)) {\n bucket.push({ dispose: () => this.remove(callback, context) });\n }\n }\n remove(callback, context = null) {\n if (!this._callbacks) {\n return;\n }\n let foundCallbackWithDifferentContext = false;\n for (let i = 0, len = this._callbacks.length; i < len; i++) {\n if (this._callbacks[i] === callback) {\n if (this._contexts[i] === context) {\n // callback & context match => remove it\n this._callbacks.splice(i, 1);\n this._contexts.splice(i, 1);\n return;\n }\n else {\n foundCallbackWithDifferentContext = true;\n }\n }\n }\n if (foundCallbackWithDifferentContext) {\n throw new Error('When adding a listener with a context, you should remove it with the same context');\n }\n }\n invoke(...args) {\n if (!this._callbacks) {\n return [];\n }\n const ret = [], callbacks = this._callbacks.slice(0), contexts = this._contexts.slice(0);\n for (let i = 0, len = callbacks.length; i < len; i++) {\n try {\n ret.push(callbacks[i].apply(contexts[i], args));\n }\n catch (e) {\n // eslint-disable-next-line no-console\n (0, ral_1.default)().console.error(e);\n }\n }\n return ret;\n }\n isEmpty() {\n return !this._callbacks || this._callbacks.length === 0;\n }\n dispose() {\n this._callbacks = undefined;\n this._contexts = undefined;\n }\n}\nclass Emitter {\n constructor(_options) {\n this._options = _options;\n }\n /**\n * For the public to allow to subscribe\n * to events from this Emitter\n */\n get event() {\n if (!this._event) {\n this._event = (listener, thisArgs, disposables) => {\n if (!this._callbacks) {\n this._callbacks = new CallbackList();\n }\n if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {\n this._options.onFirstListenerAdd(this);\n }\n this._callbacks.add(listener, thisArgs);\n const result = {\n dispose: () => {\n if (!this._callbacks) {\n // disposable is disposed after emitter is disposed.\n return;\n }\n this._callbacks.remove(listener, thisArgs);\n result.dispose = Emitter._noop;\n if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {\n this._options.onLastListenerRemove(this);\n }\n }\n };\n if (Array.isArray(disposables)) {\n disposables.push(result);\n }\n return result;\n };\n }\n return this._event;\n }\n /**\n * To be kept private to fire an event to\n * subscribers\n */\n fire(event) {\n if (this._callbacks) {\n this._callbacks.invoke.call(this._callbacks, event);\n }\n }\n dispose() {\n if (this._callbacks) {\n this._callbacks.dispose();\n this._callbacks = undefined;\n }\n }\n}\nexports.Emitter = Emitter;\nEmitter._noop = function () { };\n","\"use strict\";\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancellationTokenSource = exports.CancellationToken = void 0;\nconst ral_1 = require(\"./ral\");\nconst Is = require(\"./is\");\nconst events_1 = require(\"./events\");\nvar CancellationToken;\n(function (CancellationToken) {\n CancellationToken.None = Object.freeze({\n isCancellationRequested: false,\n onCancellationRequested: events_1.Event.None\n });\n CancellationToken.Cancelled = Object.freeze({\n isCancellationRequested: true,\n onCancellationRequested: events_1.Event.None\n });\n function is(value) {\n const candidate = value;\n return candidate && (candidate === CancellationToken.None\n || candidate === CancellationToken.Cancelled\n || (Is.boolean(candidate.isCancellationRequested) && !!candidate.onCancellationRequested));\n }\n CancellationToken.is = is;\n})(CancellationToken || (exports.CancellationToken = CancellationToken = {}));\nconst shortcutEvent = Object.freeze(function (callback, context) {\n const handle = (0, ral_1.default)().timer.setTimeout(callback.bind(context), 0);\n return { dispose() { handle.dispose(); } };\n});\nclass MutableToken {\n constructor() {\n this._isCancelled = false;\n }\n cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true;\n if (this._emitter) {\n this._emitter.fire(undefined);\n this.dispose();\n }\n }\n }\n get isCancellationRequested() {\n return this._isCancelled;\n }\n get onCancellationRequested() {\n if (this._isCancelled) {\n return shortcutEvent;\n }\n if (!this._emitter) {\n this._emitter = new events_1.Emitter();\n }\n return this._emitter.event;\n }\n dispose() {\n if (this._emitter) {\n this._emitter.dispose();\n this._emitter = undefined;\n }\n }\n}\nclass CancellationTokenSource {\n get token() {\n if (!this._token) {\n // be lazy and create the token only when\n // actually needed\n this._token = new MutableToken();\n }\n return this._token;\n }\n cancel() {\n if (!this._token) {\n // save an object by returning the default\n // cancelled token when cancellation happens\n // before someone asks for the token\n this._token = CancellationToken.Cancelled;\n }\n else {\n this._token.cancel();\n }\n }\n dispose() {\n if (!this._token) {\n // ensure to initialize with an empty token if we had none\n this._token = CancellationToken.None;\n }\n else if (this._token instanceof MutableToken) {\n // actually dispose\n this._token.dispose();\n }\n }\n}\nexports.CancellationTokenSource = CancellationTokenSource;\n","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken, CancellationTokenSource } from '../utils/cancellation.js';\n/**\n * Delays the execution of the current code to the next tick of the event loop.\n * Don't call this method directly in a tight loop to prevent too many promises from being created.\n */\nexport function delayNextTick() {\n return new Promise(resolve => {\n // In case we are running in a non-node environment, `setImmediate` isn't available.\n // Using `setTimeout` of the browser API accomplishes the same result.\n if (typeof setImmediate === 'undefined') {\n setTimeout(resolve, 0);\n }\n else {\n setImmediate(resolve);\n }\n });\n}\nlet lastTick = 0;\nlet globalInterruptionPeriod = 10;\n/**\n * Reset the global interruption period and create a cancellation token source.\n */\nexport function startCancelableOperation() {\n lastTick = performance.now();\n return new CancellationTokenSource();\n}\n/**\n * Change the period duration for `interruptAndCheck` to the given number of milliseconds.\n * The default value is 10ms.\n */\nexport function setInterruptionPeriod(period) {\n globalInterruptionPeriod = period;\n}\n/**\n * This symbol may be thrown in an asynchronous context by any Langium service that receives\n * a `CancellationToken`. This means that the promise returned by such a service is rejected with\n * this symbol as rejection reason.\n */\nexport const OperationCancelled = Symbol('OperationCancelled');\n/**\n * Use this in a `catch` block to check whether the thrown object indicates that the operation\n * has been cancelled.\n */\nexport function isOperationCancelled(err) {\n return err === OperationCancelled;\n}\n/**\n * This function does two things:\n * 1. Check the elapsed time since the last call to this function or to `startCancelableOperation`. If the predefined\n * period (configured with `setInterruptionPeriod`) is exceeded, execution is delayed with `delayNextTick`.\n * 2. If the predefined period is not met yet or execution is resumed after an interruption, the given cancellation\n * token is checked, and if cancellation is requested, `OperationCanceled` is thrown.\n *\n * All services in Langium that receive a `CancellationToken` may potentially call this function, so the\n * `CancellationToken` must be caught (with an `async` try-catch block or a `catch` callback attached to\n * the promise) to avoid that event being exposed as an error.\n */\nexport async function interruptAndCheck(token) {\n if (token === CancellationToken.None) {\n // Early exit in case cancellation was disabled by the caller\n return;\n }\n const current = performance.now();\n if (current - lastTick >= globalInterruptionPeriod) {\n lastTick = current;\n await delayNextTick();\n // prevent calling delayNextTick every iteration of loop\n // where delayNextTick takes up the majority or all of the\n // globalInterruptionPeriod itself\n lastTick = performance.now();\n }\n if (token.isCancellationRequested) {\n throw OperationCancelled;\n }\n}\n/**\n * Simple implementation of the deferred pattern.\n * An object that exposes a promise and functions to resolve and reject it.\n */\nexport class Deferred {\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (arg) => {\n resolve(arg);\n return this;\n };\n this.reject = (err) => {\n reject(err);\n return this;\n };\n });\n }\n}\n//# sourceMappingURL=promise-utils.js.map","/* --------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n * ------------------------------------------------------------------------------------------ */\n'use strict';\nclass FullTextDocument {\n constructor(uri, languageId, version, content) {\n this._uri = uri;\n this._languageId = languageId;\n this._version = version;\n this._content = content;\n this._lineOffsets = undefined;\n }\n get uri() {\n return this._uri;\n }\n get languageId() {\n return this._languageId;\n }\n get version() {\n return this._version;\n }\n getText(range) {\n if (range) {\n const start = this.offsetAt(range.start);\n const end = this.offsetAt(range.end);\n return this._content.substring(start, end);\n }\n return this._content;\n }\n update(changes, version) {\n for (const change of changes) {\n if (FullTextDocument.isIncremental(change)) {\n // makes sure start is before end\n const range = getWellformedRange(change.range);\n // update content\n const startOffset = this.offsetAt(range.start);\n const endOffset = this.offsetAt(range.end);\n this._content = this._content.substring(0, startOffset) + change.text + this._content.substring(endOffset, this._content.length);\n // update the offsets\n const startLine = Math.max(range.start.line, 0);\n const endLine = Math.max(range.end.line, 0);\n let lineOffsets = this._lineOffsets;\n const addedLineOffsets = computeLineOffsets(change.text, false, startOffset);\n if (endLine - startLine === addedLineOffsets.length) {\n for (let i = 0, len = addedLineOffsets.length; i < len; i++) {\n lineOffsets[i + startLine + 1] = addedLineOffsets[i];\n }\n }\n else {\n if (addedLineOffsets.length < 10000) {\n lineOffsets.splice(startLine + 1, endLine - startLine, ...addedLineOffsets);\n }\n else { // avoid too many arguments for splice\n this._lineOffsets = lineOffsets = lineOffsets.slice(0, startLine + 1).concat(addedLineOffsets, lineOffsets.slice(endLine + 1));\n }\n }\n const diff = change.text.length - (endOffset - startOffset);\n if (diff !== 0) {\n for (let i = startLine + 1 + addedLineOffsets.length, len = lineOffsets.length; i < len; i++) {\n lineOffsets[i] = lineOffsets[i] + diff;\n }\n }\n }\n else if (FullTextDocument.isFull(change)) {\n this._content = change.text;\n this._lineOffsets = undefined;\n }\n else {\n throw new Error('Unknown change event received');\n }\n }\n this._version = version;\n }\n getLineOffsets() {\n if (this._lineOffsets === undefined) {\n this._lineOffsets = computeLineOffsets(this._content, true);\n }\n return this._lineOffsets;\n }\n positionAt(offset) {\n offset = Math.max(Math.min(offset, this._content.length), 0);\n const lineOffsets = this.getLineOffsets();\n let low = 0, high = lineOffsets.length;\n if (high === 0) {\n return { line: 0, character: offset };\n }\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (lineOffsets[mid] > offset) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n // low is the least x for which the line offset is larger than the current offset\n // or array.length if no line offset is larger than the current offset\n const line = low - 1;\n offset = this.ensureBeforeEOL(offset, lineOffsets[line]);\n return { line, character: offset - lineOffsets[line] };\n }\n offsetAt(position) {\n const lineOffsets = this.getLineOffsets();\n if (position.line >= lineOffsets.length) {\n return this._content.length;\n }\n else if (position.line < 0) {\n return 0;\n }\n const lineOffset = lineOffsets[position.line];\n if (position.character <= 0) {\n return lineOffset;\n }\n const nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\n const offset = Math.min(lineOffset + position.character, nextLineOffset);\n return this.ensureBeforeEOL(offset, lineOffset);\n }\n ensureBeforeEOL(offset, lineOffset) {\n while (offset > lineOffset && isEOL(this._content.charCodeAt(offset - 1))) {\n offset--;\n }\n return offset;\n }\n get lineCount() {\n return this.getLineOffsets().length;\n }\n static isIncremental(event) {\n const candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range !== undefined &&\n (candidate.rangeLength === undefined || typeof candidate.rangeLength === 'number');\n }\n static isFull(event) {\n const candidate = event;\n return candidate !== undefined && candidate !== null &&\n typeof candidate.text === 'string' && candidate.range === undefined && candidate.rangeLength === undefined;\n }\n}\nexport var TextDocument;\n(function (TextDocument) {\n /**\n * Creates a new text document.\n *\n * @param uri The document's uri.\n * @param languageId The document's language Id.\n * @param version The document's initial version number.\n * @param content The document's content.\n */\n function create(uri, languageId, version, content) {\n return new FullTextDocument(uri, languageId, version, content);\n }\n TextDocument.create = create;\n /**\n * Updates a TextDocument by modifying its content.\n *\n * @param document the document to update. Only documents created by TextDocument.create are valid inputs.\n * @param changes the changes to apply to the document.\n * @param version the changes version for the document.\n * @returns The updated TextDocument. Note: That's the same document instance passed in as first parameter.\n *\n */\n function update(document, changes, version) {\n if (document instanceof FullTextDocument) {\n document.update(changes, version);\n return document;\n }\n else {\n throw new Error('TextDocument.update: document must be created by TextDocument.create');\n }\n }\n TextDocument.update = update;\n function applyEdits(document, edits) {\n const text = document.getText();\n const sortedEdits = mergeSort(edits.map(getWellformedEdit), (a, b) => {\n const diff = a.range.start.line - b.range.start.line;\n if (diff === 0) {\n return a.range.start.character - b.range.start.character;\n }\n return diff;\n });\n let lastModifiedOffset = 0;\n const spans = [];\n for (const e of sortedEdits) {\n const startOffset = document.offsetAt(e.range.start);\n if (startOffset < lastModifiedOffset) {\n throw new Error('Overlapping edit');\n }\n else if (startOffset > lastModifiedOffset) {\n spans.push(text.substring(lastModifiedOffset, startOffset));\n }\n if (e.newText.length) {\n spans.push(e.newText);\n }\n lastModifiedOffset = document.offsetAt(e.range.end);\n }\n spans.push(text.substr(lastModifiedOffset));\n return spans.join('');\n }\n TextDocument.applyEdits = applyEdits;\n})(TextDocument || (TextDocument = {}));\nfunction mergeSort(data, compare) {\n if (data.length <= 1) {\n // sorted\n return data;\n }\n const p = (data.length / 2) | 0;\n const left = data.slice(0, p);\n const right = data.slice(p);\n mergeSort(left, compare);\n mergeSort(right, compare);\n let leftIdx = 0;\n let rightIdx = 0;\n let i = 0;\n while (leftIdx < left.length && rightIdx < right.length) {\n const ret = compare(left[leftIdx], right[rightIdx]);\n if (ret <= 0) {\n // smaller_equal -> take left to preserve order\n data[i++] = left[leftIdx++];\n }\n else {\n // greater -> take right\n data[i++] = right[rightIdx++];\n }\n }\n while (leftIdx < left.length) {\n data[i++] = left[leftIdx++];\n }\n while (rightIdx < right.length) {\n data[i++] = right[rightIdx++];\n }\n return data;\n}\nfunction computeLineOffsets(text, isAtLineStart, textOffset = 0) {\n const result = isAtLineStart ? [textOffset] : [];\n for (let i = 0; i < text.length; i++) {\n const ch = text.charCodeAt(i);\n if (isEOL(ch)) {\n if (ch === 13 /* CharCode.CarriageReturn */ && i + 1 < text.length && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n i++;\n }\n result.push(textOffset + i + 1);\n }\n }\n return result;\n}\nfunction isEOL(char) {\n return char === 13 /* CharCode.CarriageReturn */ || char === 10 /* CharCode.LineFeed */;\n}\nfunction getWellformedRange(range) {\n const start = range.start;\n const end = range.end;\n if (start.line > end.line || (start.line === end.line && start.character > end.character)) {\n return { start: end, end: start };\n }\n return range;\n}\nfunction getWellformedEdit(textEdit) {\n const range = getWellformedRange(textEdit.range);\n if (range !== textEdit.range) {\n return { newText: textEdit.newText, range };\n }\n return textEdit;\n}\n","var LIB;(()=>{\"use strict\";var t={470:t=>{function e(t){if(\"string\"!=typeof t)throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(t))}function r(t,e){for(var r,n=\"\",i=0,o=-1,s=0,h=0;h<=t.length;++h){if(h2){var a=n.lastIndexOf(\"/\");if(a!==n.length-1){-1===a?(n=\"\",i=0):i=(n=n.slice(0,a)).length-1-n.lastIndexOf(\"/\"),o=h,s=0;continue}}else if(2===n.length||1===n.length){n=\"\",i=0,o=h,s=0;continue}e&&(n.length>0?n+=\"/..\":n=\"..\",i=2)}else n.length>0?n+=\"/\"+t.slice(o+1,h):n=t.slice(o+1,h),i=h-o-1;o=h,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var n={resolve:function(){for(var t,n=\"\",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(void 0===t&&(t=process.cwd()),s=t),e(s),0!==s.length&&(n=s+\"/\"+n,i=47===s.charCodeAt(0))}return n=r(n,!i),i?n.length>0?\"/\"+n:\"/\":n.length>0?n:\".\"},normalize:function(t){if(e(t),0===t.length)return\".\";var n=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!n)).length||n||(t=\".\"),t.length>0&&i&&(t+=\"/\"),n?\"/\"+t:t},isAbsolute:function(t){return e(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return\".\";for(var t,r=0;r0&&(void 0===t?t=i:t+=\"/\"+i)}return void 0===t?\".\":n.normalize(t)},relative:function(t,r){if(e(t),e(r),t===r)return\"\";if((t=n.resolve(t))===(r=n.resolve(r)))return\"\";for(var i=1;ic){if(47===r.charCodeAt(h+u))return r.slice(h+u+1);if(0===u)return r.slice(h+u)}else s>c&&(47===t.charCodeAt(i+u)?f=u:0===u&&(f=0));break}var l=t.charCodeAt(i+u);if(l!==r.charCodeAt(h+u))break;47===l&&(f=u)}var g=\"\";for(u=i+f+1;u<=o;++u)u!==o&&47!==t.charCodeAt(u)||(0===g.length?g+=\"..\":g+=\"/..\");return g.length>0?g+r.slice(h+f):(h+=f,47===r.charCodeAt(h)&&++h,r.slice(h))},_makeLong:function(t){return t},dirname:function(t){if(e(t),0===t.length)return\".\";for(var r=t.charCodeAt(0),n=47===r,i=-1,o=!0,s=t.length-1;s>=1;--s)if(47===(r=t.charCodeAt(s))){if(!o){i=s;break}}else o=!1;return-1===i?n?\"/\":\".\":n&&1===i?\"//\":t.slice(0,i)},basename:function(t,r){if(void 0!==r&&\"string\"!=typeof r)throw new TypeError('\"ext\" argument must be a string');e(t);var n,i=0,o=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return\"\";var h=r.length-1,a=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!s){i=n+1;break}}else-1===a&&(s=!1,a=n+1),h>=0&&(c===r.charCodeAt(h)?-1==--h&&(o=n):(h=-1,o=a))}return i===o?o=a:-1===o&&(o=t.length),t.slice(i,o)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!s){i=n+1;break}}else-1===o&&(s=!1,o=n+1);return-1===o?\"\":t.slice(i,o)},extname:function(t){e(t);for(var r=-1,n=0,i=-1,o=!0,s=0,h=t.length-1;h>=0;--h){var a=t.charCodeAt(h);if(47!==a)-1===i&&(o=!1,i=h+1),46===a?-1===r?r=h:1!==s&&(s=1):-1!==r&&(s=-1);else if(!o){n=h+1;break}}return-1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?\"\":t.slice(r,i)},format:function(t){if(null===t||\"object\"!=typeof t)throw new TypeError('The \"pathObject\" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||\"\")+(e.ext||\"\");return r?r===e.root?r+n:r+\"/\"+n:n}(0,t)},parse:function(t){e(t);var r={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===t.length)return r;var n,i=t.charCodeAt(0),o=47===i;o?(r.root=\"/\",n=1):n=0;for(var s=-1,h=0,a=-1,c=!0,f=t.length-1,u=0;f>=n;--f)if(47!==(i=t.charCodeAt(f)))-1===a&&(c=!1,a=f+1),46===i?-1===s?s=f:1!==u&&(u=1):-1!==s&&(u=-1);else if(!c){h=f+1;break}return-1===s||-1===a||0===u||1===u&&s===a-1&&s===h+1?-1!==a&&(r.base=r.name=0===h&&o?t.slice(1,a):t.slice(h,a)):(0===h&&o?(r.name=t.slice(1,s),r.base=t.slice(1,a)):(r.name=t.slice(h,s),r.base=t.slice(h,a)),r.ext=t.slice(s,a)),h>0?r.dir=t.slice(0,h-1):o&&(r.dir=\"/\"),r},sep:\"/\",delimiter:\":\",win32:null,posix:null};n.posix=n,t.exports=n}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var n={};(()=>{let t;if(r.r(n),r.d(n,{URI:()=>f,Utils:()=>P}),\"object\"==typeof process)t=\"win32\"===process.platform;else if(\"object\"==typeof navigator){let e=navigator.userAgent;t=e.indexOf(\"Windows\")>=0}const e=/^\\w[\\w\\d+.-]*$/,i=/^\\//,o=/^\\/\\//;function s(t,r){if(!t.scheme&&r)throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${t.authority}\", path: \"${t.path}\", query: \"${t.query}\", fragment: \"${t.fragment}\"}`);if(t.scheme&&!e.test(t.scheme))throw new Error(\"[UriError]: Scheme contains illegal characters.\");if(t.path)if(t.authority){if(!i.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character')}else if(o.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')}const h=\"\",a=\"/\",c=/^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;class f{static isUri(t){return t instanceof f||!!t&&\"string\"==typeof t.authority&&\"string\"==typeof t.fragment&&\"string\"==typeof t.path&&\"string\"==typeof t.query&&\"string\"==typeof t.scheme&&\"string\"==typeof t.fsPath&&\"function\"==typeof t.with&&\"function\"==typeof t.toString}scheme;authority;path;query;fragment;constructor(t,e,r,n,i,o=!1){\"object\"==typeof t?(this.scheme=t.scheme||h,this.authority=t.authority||h,this.path=t.path||h,this.query=t.query||h,this.fragment=t.fragment||h):(this.scheme=function(t,e){return t||e?t:\"file\"}(t,o),this.authority=e||h,this.path=function(t,e){switch(t){case\"https\":case\"http\":case\"file\":e?e[0]!==a&&(e=a+e):e=a}return e}(this.scheme,r||h),this.query=n||h,this.fragment=i||h,s(this,o))}get fsPath(){return m(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:r,path:n,query:i,fragment:o}=t;return void 0===e?e=this.scheme:null===e&&(e=h),void 0===r?r=this.authority:null===r&&(r=h),void 0===n?n=this.path:null===n&&(n=h),void 0===i?i=this.query:null===i&&(i=h),void 0===o?o=this.fragment:null===o&&(o=h),e===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&o===this.fragment?this:new l(e,r,n,i,o)}static parse(t,e=!1){const r=c.exec(t);return r?new l(r[2]||h,C(r[4]||h),C(r[5]||h),C(r[7]||h),C(r[9]||h),e):new l(h,h,h,h,h)}static file(e){let r=h;if(t&&(e=e.replace(/\\\\/g,a)),e[0]===a&&e[1]===a){const t=e.indexOf(a,2);-1===t?(r=e.substring(2),e=a):(r=e.substring(2,t),e=e.substring(t)||a)}return new l(\"file\",r,e,h,h)}static from(t){const e=new l(t.scheme,t.authority,t.path,t.query,t.fragment);return s(e,!0),e}toString(t=!1){return y(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof f)return t;{const e=new l(t);return e._formatted=t.external,e._fsPath=t._sep===u?t.fsPath:null,e}}return t}}const u=t?1:void 0;class l extends f{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=m(this,!1)),this._fsPath}toString(t=!1){return t?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=u),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const g={58:\"%3A\",47:\"%2F\",63:\"%3F\",35:\"%23\",91:\"%5B\",93:\"%5D\",64:\"%40\",33:\"%21\",36:\"%24\",38:\"%26\",39:\"%27\",40:\"%28\",41:\"%29\",42:\"%2A\",43:\"%2B\",44:\"%2C\",59:\"%3B\",61:\"%3D\",32:\"%20\"};function d(t,e,r){let n,i=-1;for(let o=0;o=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||e&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),void 0!==n&&(n+=t.charAt(o));else{void 0===n&&(n=t.substr(0,o));const e=g[s];void 0!==e?(-1!==i&&(n+=encodeURIComponent(t.substring(i,o)),i=-1),n+=e):-1===i&&(i=o)}}return-1!==i&&(n+=encodeURIComponent(t.substring(i))),void 0!==n?n:t}function p(t){let e;for(let r=0;r1&&\"file\"===e.scheme?`//${e.authority}${e.path}`:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?r?e.path.substr(1):e.path[1].toLowerCase()+e.path.substr(2):e.path,t&&(n=n.replace(/\\//g,\"\\\\\")),n}function y(t,e){const r=e?p:d;let n=\"\",{scheme:i,authority:o,path:s,query:h,fragment:c}=t;if(i&&(n+=i,n+=\":\"),(o||\"file\"===i)&&(n+=a,n+=a),o){let t=o.indexOf(\"@\");if(-1!==t){const e=o.substr(0,t);o=o.substr(t+1),t=e.lastIndexOf(\":\"),-1===t?n+=r(e,!1,!1):(n+=r(e.substr(0,t),!1,!1),n+=\":\",n+=r(e.substr(t+1),!1,!0)),n+=\"@\"}o=o.toLowerCase(),t=o.lastIndexOf(\":\"),-1===t?n+=r(o,!1,!0):(n+=r(o.substr(0,t),!1,!0),n+=o.substr(t))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){const t=s.charCodeAt(1);t>=65&&t<=90&&(s=`/${String.fromCharCode(t+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){const t=s.charCodeAt(0);t>=65&&t<=90&&(s=`${String.fromCharCode(t+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return h&&(n+=\"?\",n+=r(h,!1,!1)),c&&(n+=\"#\",n+=e?c:d(c,!1,!1)),n}function v(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+v(t.substr(3)):t}}const b=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(t){return t.match(b)?t.replace(b,(t=>v(t))):t}var A=r(470);const w=A.posix||A,x=\"/\";var P;!function(t){t.joinPath=function(t,...e){return t.with({path:w.join(t.path,...e)})},t.resolvePath=function(t,...e){let r=t.path,n=!1;r[0]!==x&&(r=x+r,n=!0);let i=w.resolve(r,...e);return n&&i[0]===x&&!t.authority&&(i=i.substring(1)),t.with({path:i})},t.dirname=function(t){if(0===t.path.length||t.path===x)return t;let e=w.dirname(t.path);return 1===e.length&&46===e.charCodeAt(0)&&(e=\"\"),t.with({path:e})},t.basename=function(t){return w.basename(t.path)},t.extname=function(t){return w.extname(t.path)}}(P||(P={}))})(),LIB=n})();export const{URI,Utils}=LIB;\n//# sourceMappingURL=index.mjs.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { URI, Utils } from 'vscode-uri';\nexport { URI };\nexport var UriUtils;\n(function (UriUtils) {\n UriUtils.basename = Utils.basename;\n UriUtils.dirname = Utils.dirname;\n UriUtils.extname = Utils.extname;\n UriUtils.joinPath = Utils.joinPath;\n UriUtils.resolvePath = Utils.resolvePath;\n function equals(a, b) {\n return (a === null || a === void 0 ? void 0 : a.toString()) === (b === null || b === void 0 ? void 0 : b.toString());\n }\n UriUtils.equals = equals;\n function relative(from, to) {\n const fromPath = typeof from === 'string' ? from : from.path;\n const toPath = typeof to === 'string' ? to : to.path;\n const fromParts = fromPath.split('/').filter(e => e.length > 0);\n const toParts = toPath.split('/').filter(e => e.length > 0);\n let i = 0;\n for (; i < fromParts.length; i++) {\n if (fromParts[i] !== toParts[i]) {\n break;\n }\n }\n const backPart = '../'.repeat(fromParts.length - i);\n const toPart = toParts.slice(i).join('/');\n return backPart + toPart;\n }\n UriUtils.relative = relative;\n function normalize(uri) {\n return URI.parse(uri.toString()).toString();\n }\n UriUtils.normalize = normalize;\n})(UriUtils || (UriUtils = {}));\n//# sourceMappingURL=uri-utils.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\n/**\n * Re-export 'TextDocument' from 'vscode-languageserver-textdocument' for convenience,\n * including both type _and_ symbol (namespace), as we here and there also refer to the symbol,\n * the overhead is very small, just a few kilobytes.\n * Everything else of that package (at the time contributing) is also defined\n * in 'vscode-languageserver-protocol' or 'vscode-languageserver-types'.\n */\nexport { TextDocument } from 'vscode-languageserver-textdocument';\nimport { TextDocument } from './documents.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { stream } from '../utils/stream.js';\nimport { URI } from '../utils/uri-utils.js';\n/**\n * A document is subject to several phases that are run in predefined order. Any state value implies that\n * smaller state values are finished as well.\n */\nexport var DocumentState;\n(function (DocumentState) {\n /**\n * The text content has changed and needs to be parsed again. The AST held by this outdated\n * document instance is no longer valid.\n */\n DocumentState[DocumentState[\"Changed\"] = 0] = \"Changed\";\n /**\n * An AST has been created from the text content. The document structure can be traversed,\n * but cross-references cannot be resolved yet. If necessary, the structure can be manipulated\n * at this stage as a preprocessing step.\n */\n DocumentState[DocumentState[\"Parsed\"] = 1] = \"Parsed\";\n /**\n * The `IndexManager` service has processed AST nodes of this document. This means the\n * exported symbols are available in the global scope and can be resolved from other documents.\n */\n DocumentState[DocumentState[\"IndexedContent\"] = 2] = \"IndexedContent\";\n /**\n * The `ScopeComputation` service has processed this document. This means the local symbols\n * are stored in a MultiMap so they can be looked up by the `ScopeProvider` service.\n * Once a document has reached this state, you may follow every reference - it will lazily\n * resolve its `ref` property and yield either the target AST node or `undefined` in case\n * the target is not in scope.\n */\n DocumentState[DocumentState[\"ComputedScopes\"] = 3] = \"ComputedScopes\";\n /**\n * The `Linker` service has processed this document. All outgoing references have been\n * resolved or marked as erroneous.\n */\n DocumentState[DocumentState[\"Linked\"] = 4] = \"Linked\";\n /**\n * The `IndexManager` service has processed AST node references of this document. This is\n * necessary to determine which documents are affected by a change in one of the workspace\n * documents.\n */\n DocumentState[DocumentState[\"IndexedReferences\"] = 5] = \"IndexedReferences\";\n /**\n * The `DocumentValidator` service has processed this document. The language server listens\n * to the results of this phase and sends diagnostics to the client.\n */\n DocumentState[DocumentState[\"Validated\"] = 6] = \"Validated\";\n})(DocumentState || (DocumentState = {}));\nexport class DefaultLangiumDocumentFactory {\n constructor(services) {\n this.serviceRegistry = services.ServiceRegistry;\n this.textDocuments = services.workspace.TextDocuments;\n this.fileSystemProvider = services.workspace.FileSystemProvider;\n }\n async fromUri(uri, cancellationToken = CancellationToken.None) {\n const content = await this.fileSystemProvider.readFile(uri);\n return this.createAsync(uri, content, cancellationToken);\n }\n fromTextDocument(textDocument, uri, token) {\n uri = uri !== null && uri !== void 0 ? uri : URI.parse(textDocument.uri);\n if (CancellationToken.is(token)) {\n return this.createAsync(uri, textDocument, token);\n }\n else {\n return this.create(uri, textDocument, token);\n }\n }\n fromString(text, uri, token) {\n if (CancellationToken.is(token)) {\n return this.createAsync(uri, text, token);\n }\n else {\n return this.create(uri, text, token);\n }\n }\n fromModel(model, uri) {\n return this.create(uri, { $model: model });\n }\n create(uri, content, options) {\n if (typeof content === 'string') {\n const parseResult = this.parse(uri, content, options);\n return this.createLangiumDocument(parseResult, uri, undefined, content);\n }\n else if ('$model' in content) {\n const parseResult = { value: content.$model, parserErrors: [], lexerErrors: [] };\n return this.createLangiumDocument(parseResult, uri);\n }\n else {\n const parseResult = this.parse(uri, content.getText(), options);\n return this.createLangiumDocument(parseResult, uri, content);\n }\n }\n async createAsync(uri, content, cancelToken) {\n if (typeof content === 'string') {\n const parseResult = await this.parseAsync(uri, content, cancelToken);\n return this.createLangiumDocument(parseResult, uri, undefined, content);\n }\n else {\n const parseResult = await this.parseAsync(uri, content.getText(), cancelToken);\n return this.createLangiumDocument(parseResult, uri, content);\n }\n }\n /**\n * Create a LangiumDocument from a given parse result.\n *\n * A TextDocument is created on demand if it is not provided as argument here. Usually this\n * should not be necessary because the main purpose of the TextDocument is to convert between\n * text ranges and offsets, which is done solely in LSP request handling.\n *\n * With the introduction of {@link update} below this method is supposed to be mainly called\n * during workspace initialization and on addition/recognition of new files, while changes in\n * existing documents are processed via {@link update}.\n */\n createLangiumDocument(parseResult, uri, textDocument, text) {\n let document;\n if (textDocument) {\n document = {\n parseResult,\n uri,\n state: DocumentState.Parsed,\n references: [],\n textDocument\n };\n }\n else {\n const textDocumentGetter = this.createTextDocumentGetter(uri, text);\n document = {\n parseResult,\n uri,\n state: DocumentState.Parsed,\n references: [],\n get textDocument() {\n return textDocumentGetter();\n }\n };\n }\n parseResult.value.$document = document;\n return document;\n }\n async update(document, cancellationToken) {\n var _a, _b;\n // The CST full text property contains the original text that was used to create the AST.\n const oldText = (_a = document.parseResult.value.$cstNode) === null || _a === void 0 ? void 0 : _a.root.fullText;\n const textDocument = (_b = this.textDocuments) === null || _b === void 0 ? void 0 : _b.get(document.uri.toString());\n const text = textDocument ? textDocument.getText() : await this.fileSystemProvider.readFile(document.uri);\n if (textDocument) {\n Object.defineProperty(document, 'textDocument', {\n value: textDocument\n });\n }\n else {\n const textDocumentGetter = this.createTextDocumentGetter(document.uri, text);\n Object.defineProperty(document, 'textDocument', {\n get: textDocumentGetter\n });\n }\n // Some of these documents can be pretty large, so parsing them again can be quite expensive.\n // Therefore, we only parse if the text has actually changed.\n if (oldText !== text) {\n document.parseResult = await this.parseAsync(document.uri, text, cancellationToken);\n document.parseResult.value.$document = document;\n }\n document.state = DocumentState.Parsed;\n return document;\n }\n parse(uri, text, options) {\n const services = this.serviceRegistry.getServices(uri);\n return services.parser.LangiumParser.parse(text, options);\n }\n parseAsync(uri, text, cancellationToken) {\n const services = this.serviceRegistry.getServices(uri);\n return services.parser.AsyncParser.parse(text, cancellationToken);\n }\n createTextDocumentGetter(uri, text) {\n const serviceRegistry = this.serviceRegistry;\n let textDoc = undefined;\n return () => {\n return textDoc !== null && textDoc !== void 0 ? textDoc : (textDoc = TextDocument.create(uri.toString(), serviceRegistry.getServices(uri).LanguageMetaData.languageId, 0, text !== null && text !== void 0 ? text : ''));\n };\n }\n}\nexport class DefaultLangiumDocuments {\n constructor(services) {\n this.documentMap = new Map();\n this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;\n this.serviceRegistry = services.ServiceRegistry;\n }\n get all() {\n return stream(this.documentMap.values());\n }\n addDocument(document) {\n const uriString = document.uri.toString();\n if (this.documentMap.has(uriString)) {\n throw new Error(`A document with the URI '${uriString}' is already present.`);\n }\n this.documentMap.set(uriString, document);\n }\n getDocument(uri) {\n const uriString = uri.toString();\n return this.documentMap.get(uriString);\n }\n async getOrCreateDocument(uri, cancellationToken) {\n let document = this.getDocument(uri);\n if (document) {\n return document;\n }\n document = await this.langiumDocumentFactory.fromUri(uri, cancellationToken);\n this.addDocument(document);\n return document;\n }\n createDocument(uri, text, cancellationToken) {\n if (cancellationToken) {\n return this.langiumDocumentFactory.fromString(text, uri, cancellationToken).then(document => {\n this.addDocument(document);\n return document;\n });\n }\n else {\n const document = this.langiumDocumentFactory.fromString(text, uri);\n this.addDocument(document);\n return document;\n }\n }\n hasDocument(uri) {\n return this.documentMap.has(uri.toString());\n }\n invalidateDocument(uri) {\n const uriString = uri.toString();\n const langiumDoc = this.documentMap.get(uriString);\n if (langiumDoc) {\n const linker = this.serviceRegistry.getServices(uri).references.Linker;\n linker.unlink(langiumDoc);\n langiumDoc.state = DocumentState.Changed;\n langiumDoc.precomputedScopes = undefined;\n langiumDoc.diagnostics = undefined;\n }\n return langiumDoc;\n }\n deleteDocument(uri) {\n const uriString = uri.toString();\n const langiumDoc = this.documentMap.get(uriString);\n if (langiumDoc) {\n langiumDoc.state = DocumentState.Changed;\n this.documentMap.delete(uriString);\n }\n return langiumDoc;\n }\n}\n//# sourceMappingURL=documents.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { isAstNode, isAstNodeDescription, isLinkingError } from '../syntax-tree.js';\nimport { findRootNode, streamAst, streamReferences } from '../utils/ast-utils.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\nimport { DocumentState } from '../workspace/documents.js';\nconst ref_resolving = Symbol('ref_resolving');\nexport class DefaultLinker {\n constructor(services) {\n this.reflection = services.shared.AstReflection;\n this.langiumDocuments = () => services.shared.workspace.LangiumDocuments;\n this.scopeProvider = services.references.ScopeProvider;\n this.astNodeLocator = services.workspace.AstNodeLocator;\n }\n async link(document, cancelToken = CancellationToken.None) {\n for (const node of streamAst(document.parseResult.value)) {\n await interruptAndCheck(cancelToken);\n streamReferences(node).forEach(ref => this.doLink(ref, document));\n }\n }\n doLink(refInfo, document) {\n var _a;\n const ref = refInfo.reference;\n // The reference may already have been resolved lazily by accessing its `ref` property.\n if (ref._ref === undefined) {\n ref._ref = ref_resolving;\n try {\n const description = this.getCandidate(refInfo);\n if (isLinkingError(description)) {\n ref._ref = description;\n }\n else {\n ref._nodeDescription = description;\n if (this.langiumDocuments().hasDocument(description.documentUri)) {\n // The target document is already loaded\n const linkedNode = this.loadAstNode(description);\n ref._ref = linkedNode !== null && linkedNode !== void 0 ? linkedNode : this.createLinkingError(refInfo, description);\n }\n else {\n // Try to load the target AST node later using the already provided description\n ref._ref = undefined;\n }\n }\n }\n catch (err) {\n console.error(`An error occurred while resolving reference to '${ref.$refText}':`, err);\n const errorMessage = (_a = err.message) !== null && _a !== void 0 ? _a : String(err);\n ref._ref = Object.assign(Object.assign({}, refInfo), { message: `An error occurred while resolving reference to '${ref.$refText}': ${errorMessage}` });\n }\n // Add the reference to the document's array of references\n // Only add if the reference has been not been resolved earlier\n // Otherwise we end up with duplicates\n // See also implementation of `buildReference`\n document.references.push(ref);\n }\n }\n unlink(document) {\n for (const ref of document.references) {\n delete ref._ref;\n delete ref._nodeDescription;\n }\n document.references = [];\n }\n getCandidate(refInfo) {\n const scope = this.scopeProvider.getScope(refInfo);\n const description = scope.getElement(refInfo.reference.$refText);\n return description !== null && description !== void 0 ? description : this.createLinkingError(refInfo);\n }\n buildReference(node, property, refNode, refText) {\n // See behavior description in doc of Linker, update that on changes in here.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const linker = this;\n const reference = {\n $refNode: refNode,\n $refText: refText,\n get ref() {\n var _a;\n if (isAstNode(this._ref)) {\n // Most frequent case: the target is already resolved.\n return this._ref;\n }\n else if (isAstNodeDescription(this._nodeDescription)) {\n // A candidate has been found before, but it is not loaded yet.\n const linkedNode = linker.loadAstNode(this._nodeDescription);\n this._ref = linkedNode !== null && linkedNode !== void 0 ? linkedNode : linker.createLinkingError({ reference, container: node, property }, this._nodeDescription);\n }\n else if (this._ref === undefined) {\n // The reference has not been linked yet, so do that now.\n this._ref = ref_resolving;\n const document = findRootNode(node).$document;\n const refData = linker.getLinkedNode({ reference, container: node, property });\n if (refData.error && document && document.state < DocumentState.ComputedScopes) {\n // Document scope is not ready, don't set `this._ref` so linker can retry later.\n return this._ref = undefined;\n }\n this._ref = (_a = refData.node) !== null && _a !== void 0 ? _a : refData.error;\n this._nodeDescription = refData.descr;\n document === null || document === void 0 ? void 0 : document.references.push(this);\n }\n else if (this._ref === ref_resolving) {\n throw new Error(`Cyclic reference resolution detected: ${linker.astNodeLocator.getAstNodePath(node)}/${property} (symbol '${refText}')`);\n }\n return isAstNode(this._ref) ? this._ref : undefined;\n },\n get $nodeDescription() {\n return this._nodeDescription;\n },\n get error() {\n return isLinkingError(this._ref) ? this._ref : undefined;\n }\n };\n return reference;\n }\n getLinkedNode(refInfo) {\n var _a;\n try {\n const description = this.getCandidate(refInfo);\n if (isLinkingError(description)) {\n return { error: description };\n }\n const linkedNode = this.loadAstNode(description);\n if (linkedNode) {\n return { node: linkedNode, descr: description };\n }\n else {\n return {\n descr: description,\n error: this.createLinkingError(refInfo, description)\n };\n }\n }\n catch (err) {\n console.error(`An error occurred while resolving reference to '${refInfo.reference.$refText}':`, err);\n const errorMessage = (_a = err.message) !== null && _a !== void 0 ? _a : String(err);\n return {\n error: Object.assign(Object.assign({}, refInfo), { message: `An error occurred while resolving reference to '${refInfo.reference.$refText}': ${errorMessage}` })\n };\n }\n }\n loadAstNode(nodeDescription) {\n if (nodeDescription.node) {\n return nodeDescription.node;\n }\n const doc = this.langiumDocuments().getDocument(nodeDescription.documentUri);\n if (!doc) {\n return undefined;\n }\n return this.astNodeLocator.getAstNode(doc.parseResult.value, nodeDescription.path);\n }\n createLinkingError(refInfo, targetDescription) {\n // Check whether the document is sufficiently processed by the DocumentBuilder. If not, this is a hint for a bug\n // in the language implementation.\n const document = findRootNode(refInfo.container).$document;\n if (document && document.state < DocumentState.ComputedScopes) {\n console.warn(`Attempted reference resolution before document reached ComputedScopes state (${document.uri}).`);\n }\n const referenceType = this.reflection.getReferenceType(refInfo);\n return Object.assign(Object.assign({}, refInfo), { message: `Could not resolve reference to ${referenceType} named '${refInfo.reference.$refText}'.`, targetDescription });\n }\n}\n//# sourceMappingURL=linker.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { findNodeForProperty } from '../utils/grammar-utils.js';\nexport function isNamed(node) {\n return typeof node.name === 'string';\n}\nexport class DefaultNameProvider {\n getName(node) {\n if (isNamed(node)) {\n return node.name;\n }\n return undefined;\n }\n getNameNode(node) {\n return findNodeForProperty(node.$cstNode, 'name');\n }\n}\n//# sourceMappingURL=name-provider.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { findAssignment } from '../utils/grammar-utils.js';\nimport { isReference } from '../syntax-tree.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { isChildNode, toDocumentSegment } from '../utils/cst-utils.js';\nimport { stream } from '../utils/stream.js';\nimport { UriUtils } from '../utils/uri-utils.js';\nexport class DefaultReferences {\n constructor(services) {\n this.nameProvider = services.references.NameProvider;\n this.index = services.shared.workspace.IndexManager;\n this.nodeLocator = services.workspace.AstNodeLocator;\n }\n findDeclaration(sourceCstNode) {\n if (sourceCstNode) {\n const assignment = findAssignment(sourceCstNode);\n const nodeElem = sourceCstNode.astNode;\n if (assignment && nodeElem) {\n const reference = nodeElem[assignment.feature];\n if (isReference(reference)) {\n return reference.ref;\n }\n else if (Array.isArray(reference)) {\n for (const ref of reference) {\n if (isReference(ref) && ref.$refNode\n && ref.$refNode.offset <= sourceCstNode.offset\n && ref.$refNode.end >= sourceCstNode.end) {\n return ref.ref;\n }\n }\n }\n }\n if (nodeElem) {\n const nameNode = this.nameProvider.getNameNode(nodeElem);\n // Only return the targeted node in case the targeted cst node is the name node or part of it\n if (nameNode && (nameNode === sourceCstNode || isChildNode(sourceCstNode, nameNode))) {\n return nodeElem;\n }\n }\n }\n return undefined;\n }\n findDeclarationNode(sourceCstNode) {\n const astNode = this.findDeclaration(sourceCstNode);\n if (astNode === null || astNode === void 0 ? void 0 : astNode.$cstNode) {\n const targetNode = this.nameProvider.getNameNode(astNode);\n return targetNode !== null && targetNode !== void 0 ? targetNode : astNode.$cstNode;\n }\n return undefined;\n }\n findReferences(targetNode, options) {\n const refs = [];\n if (options.includeDeclaration) {\n const ref = this.getReferenceToSelf(targetNode);\n if (ref) {\n refs.push(ref);\n }\n }\n let indexReferences = this.index.findAllReferences(targetNode, this.nodeLocator.getAstNodePath(targetNode));\n if (options.documentUri) {\n indexReferences = indexReferences.filter(ref => UriUtils.equals(ref.sourceUri, options.documentUri));\n }\n refs.push(...indexReferences);\n return stream(refs);\n }\n getReferenceToSelf(targetNode) {\n const nameNode = this.nameProvider.getNameNode(targetNode);\n if (nameNode) {\n const doc = getDocument(targetNode);\n const path = this.nodeLocator.getAstNodePath(targetNode);\n return {\n sourceUri: doc.uri,\n sourcePath: path,\n targetUri: doc.uri,\n targetPath: path,\n segment: toDocumentSegment(nameNode),\n local: true\n };\n }\n return undefined;\n }\n}\n//# sourceMappingURL=references.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Reduction, stream } from './stream.js';\n/**\n * A multimap is a variation of a Map that has potentially multiple values for every key.\n */\nexport class MultiMap {\n constructor(elements) {\n this.map = new Map();\n if (elements) {\n for (const [key, value] of elements) {\n this.add(key, value);\n }\n }\n }\n /**\n * The total number of values in the multimap.\n */\n get size() {\n return Reduction.sum(stream(this.map.values()).map(a => a.length));\n }\n /**\n * Clear all entries in the multimap.\n */\n clear() {\n this.map.clear();\n }\n /**\n * Operates differently depending on whether a `value` is given:\n * * With a value, this method deletes the specific key / value pair from the multimap.\n * * Without a value, all values associated with the given key are deleted.\n *\n * @returns `true` if a value existed and has been removed, or `false` if the specified\n * key / value does not exist.\n */\n delete(key, value) {\n if (value === undefined) {\n return this.map.delete(key);\n }\n else {\n const values = this.map.get(key);\n if (values) {\n const index = values.indexOf(value);\n if (index >= 0) {\n if (values.length === 1) {\n this.map.delete(key);\n }\n else {\n values.splice(index, 1);\n }\n return true;\n }\n }\n return false;\n }\n }\n /**\n * Returns an array of all values associated with the given key. If no value exists,\n * an empty array is returned.\n *\n * _Note:_ The returned array is assumed not to be modified. Use the `set` method to add a\n * value and `delete` to remove a value from the multimap.\n */\n get(key) {\n var _a;\n return (_a = this.map.get(key)) !== null && _a !== void 0 ? _a : [];\n }\n /**\n * Operates differently depending on whether a `value` is given:\n * * With a value, this method returns `true` if the specific key / value pair is present in the multimap.\n * * Without a value, this method returns `true` if the given key is present in the multimap.\n */\n has(key, value) {\n if (value === undefined) {\n return this.map.has(key);\n }\n else {\n const values = this.map.get(key);\n if (values) {\n return values.indexOf(value) >= 0;\n }\n return false;\n }\n }\n /**\n * Add the given key / value pair to the multimap.\n */\n add(key, value) {\n if (this.map.has(key)) {\n this.map.get(key).push(value);\n }\n else {\n this.map.set(key, [value]);\n }\n return this;\n }\n /**\n * Add the given set of key / value pairs to the multimap.\n */\n addAll(key, values) {\n if (this.map.has(key)) {\n this.map.get(key).push(...values);\n }\n else {\n this.map.set(key, Array.from(values));\n }\n return this;\n }\n /**\n * Invokes the given callback function for every key / value pair in the multimap.\n */\n forEach(callbackfn) {\n this.map.forEach((array, key) => array.forEach(value => callbackfn(value, key, this)));\n }\n /**\n * Returns an iterator of key, value pairs for every entry in the map.\n */\n [Symbol.iterator]() {\n return this.entries().iterator();\n }\n /**\n * Returns a stream of key, value pairs for every entry in the map.\n */\n entries() {\n return stream(this.map.entries())\n .flatMap(([key, array]) => array.map(value => [key, value]));\n }\n /**\n * Returns a stream of keys in the map.\n */\n keys() {\n return stream(this.map.keys());\n }\n /**\n * Returns a stream of values in the map.\n */\n values() {\n return stream(this.map.values()).flat();\n }\n /**\n * Returns a stream of key, value set pairs for every key in the map.\n */\n entriesGroupedByKey() {\n return stream(this.map.entries());\n }\n}\nexport class BiMap {\n get size() {\n return this.map.size;\n }\n constructor(elements) {\n this.map = new Map();\n this.inverse = new Map();\n if (elements) {\n for (const [key, value] of elements) {\n this.set(key, value);\n }\n }\n }\n clear() {\n this.map.clear();\n this.inverse.clear();\n }\n set(key, value) {\n this.map.set(key, value);\n this.inverse.set(value, key);\n return this;\n }\n get(key) {\n return this.map.get(key);\n }\n getKey(value) {\n return this.inverse.get(value);\n }\n delete(key) {\n const value = this.map.get(key);\n if (value !== undefined) {\n this.map.delete(key);\n this.inverse.delete(value);\n return true;\n }\n return false;\n }\n}\n//# sourceMappingURL=collections.js.map","/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { streamAllContents, streamContents } from '../utils/ast-utils.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\n/**\n * The default scope computation creates and collectes descriptions of the AST nodes to be exported into the\n * _global_ scope from the given document. By default those are the document's root AST node and its directly\n * contained child nodes.\n *\n * Besides, it gathers all AST nodes that have a name (according to the `NameProvider` service) and includes them\n * in the local scope of their particular container nodes. As a result, for every cross-reference in the AST,\n * target elements from the same level (siblings) and further up towards the root (parents and siblings of parents)\n * are visible. Elements being nested inside lower levels (children, children of siblings and parents' siblings)\n * are _invisible_ by default, but that can be changed by customizing this service.\n */\nexport class DefaultScopeComputation {\n constructor(services) {\n this.nameProvider = services.references.NameProvider;\n this.descriptions = services.workspace.AstNodeDescriptionProvider;\n }\n async computeExports(document, cancelToken = CancellationToken.None) {\n return this.computeExportsForNode(document.parseResult.value, document, undefined, cancelToken);\n }\n /**\n * Creates {@link AstNodeDescription AstNodeDescriptions} for the given {@link AstNode parentNode} and its children.\n * The list of children to be considered is determined by the function parameter {@link children}.\n * By default only the direct children of {@link parentNode} are visited, nested nodes are not exported.\n *\n * @param parentNode AST node to be exported, i.e., of which an {@link AstNodeDescription} shall be added to the returned list.\n * @param document The document containing the AST node to be exported.\n * @param children A function called with {@link parentNode} as single argument and returning an {@link Iterable} supplying the children to be visited, which must be directly or transitively contained in {@link parentNode}.\n * @param cancelToken Indicates when to cancel the current operation.\n * @throws `OperationCancelled` if a user action occurs during execution.\n * @returns A list of {@link AstNodeDescription AstNodeDescriptions} to be published to index.\n */\n async computeExportsForNode(parentNode, document, children = streamContents, cancelToken = CancellationToken.None) {\n const exports = [];\n this.exportNode(parentNode, exports, document);\n for (const node of children(parentNode)) {\n await interruptAndCheck(cancelToken);\n this.exportNode(node, exports, document);\n }\n return exports;\n }\n /**\n * Add a single node to the list of exports if it has a name. Override this method to change how\n * symbols are exported, e.g. by modifying their exported name.\n */\n exportNode(node, exports, document) {\n const name = this.nameProvider.getName(node);\n if (name) {\n exports.push(this.descriptions.createDescription(node, name, document));\n }\n }\n async computeLocalScopes(document, cancelToken = CancellationToken.None) {\n const rootNode = document.parseResult.value;\n const scopes = new MultiMap();\n // Here we navigate the full AST - local scopes shall be available in the whole document\n for (const node of streamAllContents(rootNode)) {\n await interruptAndCheck(cancelToken);\n this.processNode(node, document, scopes);\n }\n return scopes;\n }\n /**\n * Process a single node during scopes computation. The default implementation makes the node visible\n * in the subtree of its container (if the node has a name). Override this method to change this,\n * e.g. by increasing the visibility to a higher level in the AST.\n */\n processNode(node, document, scopes) {\n const container = node.$container;\n if (container) {\n const name = this.nameProvider.getName(node);\n if (name) {\n scopes.add(container, this.descriptions.createDescription(node, name, document));\n }\n }\n }\n}\n//# sourceMappingURL=scope-computation.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { EMPTY_STREAM, stream } from '../utils/stream.js';\n/**\n * The default scope implementation is based on a `Stream`. It has an optional _outer scope_ describing\n * the next level of elements, which are queried when a target element is not found in the stream provided\n * to this scope.\n */\nexport class StreamScope {\n constructor(elements, outerScope, options) {\n var _a;\n this.elements = elements;\n this.outerScope = outerScope;\n this.caseInsensitive = (_a = options === null || options === void 0 ? void 0 : options.caseInsensitive) !== null && _a !== void 0 ? _a : false;\n }\n getAllElements() {\n if (this.outerScope) {\n return this.elements.concat(this.outerScope.getAllElements());\n }\n else {\n return this.elements;\n }\n }\n getElement(name) {\n const local = this.caseInsensitive\n ? this.elements.find(e => e.name.toLowerCase() === name.toLowerCase())\n : this.elements.find(e => e.name === name);\n if (local) {\n return local;\n }\n if (this.outerScope) {\n return this.outerScope.getElement(name);\n }\n return undefined;\n }\n}\nexport class MapScope {\n constructor(elements, outerScope, options) {\n var _a;\n this.elements = new Map();\n this.caseInsensitive = (_a = options === null || options === void 0 ? void 0 : options.caseInsensitive) !== null && _a !== void 0 ? _a : false;\n for (const element of elements) {\n const name = this.caseInsensitive\n ? element.name.toLowerCase()\n : element.name;\n this.elements.set(name, element);\n }\n this.outerScope = outerScope;\n }\n getElement(name) {\n const localName = this.caseInsensitive ? name.toLowerCase() : name;\n const local = this.elements.get(localName);\n if (local) {\n return local;\n }\n if (this.outerScope) {\n return this.outerScope.getElement(name);\n }\n return undefined;\n }\n getAllElements() {\n let elementStream = stream(this.elements.values());\n if (this.outerScope) {\n elementStream = elementStream.concat(this.outerScope.getAllElements());\n }\n return elementStream;\n }\n}\nexport const EMPTY_SCOPE = {\n getElement() {\n return undefined;\n },\n getAllElements() {\n return EMPTY_STREAM;\n }\n};\n//# sourceMappingURL=scope.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport class DisposableCache {\n constructor() {\n this.toDispose = [];\n this.isDisposed = false;\n }\n onDispose(disposable) {\n this.toDispose.push(disposable);\n }\n dispose() {\n this.throwIfDisposed();\n this.clear();\n this.isDisposed = true;\n this.toDispose.forEach(disposable => disposable.dispose());\n }\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error('This cache has already been disposed');\n }\n }\n}\nexport class SimpleCache extends DisposableCache {\n constructor() {\n super(...arguments);\n this.cache = new Map();\n }\n has(key) {\n this.throwIfDisposed();\n return this.cache.has(key);\n }\n set(key, value) {\n this.throwIfDisposed();\n this.cache.set(key, value);\n }\n get(key, provider) {\n this.throwIfDisposed();\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n else if (provider) {\n const value = provider();\n this.cache.set(key, value);\n return value;\n }\n else {\n return undefined;\n }\n }\n delete(key) {\n this.throwIfDisposed();\n return this.cache.delete(key);\n }\n clear() {\n this.throwIfDisposed();\n this.cache.clear();\n }\n}\nexport class ContextCache extends DisposableCache {\n constructor(converter) {\n super();\n this.cache = new Map();\n this.converter = converter !== null && converter !== void 0 ? converter : (value => value);\n }\n has(contextKey, key) {\n this.throwIfDisposed();\n return this.cacheForContext(contextKey).has(key);\n }\n set(contextKey, key, value) {\n this.throwIfDisposed();\n this.cacheForContext(contextKey).set(key, value);\n }\n get(contextKey, key, provider) {\n this.throwIfDisposed();\n const contextCache = this.cacheForContext(contextKey);\n if (contextCache.has(key)) {\n return contextCache.get(key);\n }\n else if (provider) {\n const value = provider();\n contextCache.set(key, value);\n return value;\n }\n else {\n return undefined;\n }\n }\n delete(contextKey, key) {\n this.throwIfDisposed();\n return this.cacheForContext(contextKey).delete(key);\n }\n clear(contextKey) {\n this.throwIfDisposed();\n if (contextKey) {\n const mapKey = this.converter(contextKey);\n this.cache.delete(mapKey);\n }\n else {\n this.cache.clear();\n }\n }\n cacheForContext(contextKey) {\n const mapKey = this.converter(contextKey);\n let documentCache = this.cache.get(mapKey);\n if (!documentCache) {\n documentCache = new Map();\n this.cache.set(mapKey, documentCache);\n }\n return documentCache;\n }\n}\n/**\n * Every key/value pair in this cache is scoped to a document.\n * If this document is changed or deleted, all associated key/value pairs are deleted.\n */\nexport class DocumentCache extends ContextCache {\n /**\n * Creates a new document cache.\n *\n * @param sharedServices Service container instance to hook into document lifecycle events.\n * @param state Optional document state on which the cache should evict.\n * If not provided, the cache will evict on `DocumentBuilder#onUpdate`.\n * *Deleted* documents are considered in both cases.\n *\n * Providing a state here will use `DocumentBuilder#onDocumentPhase` instead,\n * which triggers on all documents that have been affected by this change, assuming that the\n * state is `DocumentState.Linked` or a later state.\n */\n constructor(sharedServices, state) {\n super(uri => uri.toString());\n if (state) {\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onDocumentPhase(state, document => {\n this.clear(document.uri.toString());\n }));\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onUpdate((_changed, deleted) => {\n for (const uri of deleted) { // react only on deleted documents\n this.clear(uri);\n }\n }));\n }\n else {\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onUpdate((changed, deleted) => {\n const allUris = changed.concat(deleted); // react on both changed and deleted documents\n for (const uri of allUris) {\n this.clear(uri);\n }\n }));\n }\n }\n}\n/**\n * Every key/value pair in this cache is scoped to the whole workspace.\n * If any document in the workspace is added, changed or deleted, the whole cache is evicted.\n */\nexport class WorkspaceCache extends SimpleCache {\n /**\n * Creates a new workspace cache.\n *\n * @param sharedServices Service container instance to hook into document lifecycle events.\n * @param state Optional document state on which the cache should evict.\n * If not provided, the cache will evict on `DocumentBuilder#onUpdate`.\n * *Deleted* documents are considered in both cases.\n */\n constructor(sharedServices, state) {\n super();\n if (state) {\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onBuildPhase(state, () => {\n this.clear();\n }));\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onUpdate((_changed, deleted) => {\n if (deleted.length > 0) { // react only on deleted documents\n this.clear();\n }\n }));\n }\n else {\n this.toDispose.push(sharedServices.workspace.DocumentBuilder.onUpdate(() => {\n this.clear();\n }));\n }\n }\n}\n//# sourceMappingURL=caching.js.map","/******************************************************************************\n * Copyright 2021-2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { MapScope, StreamScope } from './scope.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { stream } from '../utils/stream.js';\nimport { WorkspaceCache } from '../utils/caching.js';\nexport class DefaultScopeProvider {\n constructor(services) {\n this.reflection = services.shared.AstReflection;\n this.nameProvider = services.references.NameProvider;\n this.descriptions = services.workspace.AstNodeDescriptionProvider;\n this.indexManager = services.shared.workspace.IndexManager;\n this.globalScopeCache = new WorkspaceCache(services.shared);\n }\n getScope(context) {\n const scopes = [];\n const referenceType = this.reflection.getReferenceType(context);\n const precomputed = getDocument(context.container).precomputedScopes;\n if (precomputed) {\n let currentNode = context.container;\n do {\n const allDescriptions = precomputed.get(currentNode);\n if (allDescriptions.length > 0) {\n scopes.push(stream(allDescriptions).filter(desc => this.reflection.isSubtype(desc.type, referenceType)));\n }\n currentNode = currentNode.$container;\n } while (currentNode);\n }\n let result = this.getGlobalScope(referenceType, context);\n for (let i = scopes.length - 1; i >= 0; i--) {\n result = this.createScope(scopes[i], result);\n }\n return result;\n }\n /**\n * Create a scope for the given collection of AST node descriptions.\n */\n createScope(elements, outerScope, options) {\n return new StreamScope(stream(elements), outerScope, options);\n }\n /**\n * Create a scope for the given collection of AST nodes, which need to be transformed into respective\n * descriptions first. This is done using the `NameProvider` and `AstNodeDescriptionProvider` services.\n */\n createScopeForNodes(elements, outerScope, options) {\n const s = stream(elements).map(e => {\n const name = this.nameProvider.getName(e);\n if (name) {\n return this.descriptions.createDescription(e, name);\n }\n return undefined;\n }).nonNullable();\n return new StreamScope(s, outerScope, options);\n }\n /**\n * Create a global scope filtered for the given reference type.\n */\n getGlobalScope(referenceType, _context) {\n return this.globalScopeCache.get(referenceType, () => new MapScope(this.indexManager.allElements(referenceType)));\n }\n}\n//# sourceMappingURL=scope-provider.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { URI } from 'vscode-uri';\nimport { isAstNode, isReference } from '../syntax-tree.js';\nimport { getDocument } from '../utils/ast-utils.js';\nimport { findNodesForProperty } from '../utils/grammar-utils.js';\nexport function isAstNodeWithComment(node) {\n return typeof node.$comment === 'string';\n}\nfunction isIntermediateReference(obj) {\n return typeof obj === 'object' && !!obj && ('$ref' in obj || '$error' in obj);\n}\nexport class DefaultJsonSerializer {\n constructor(services) {\n /** The set of AstNode properties to be ignored by the serializer. */\n this.ignoreProperties = new Set(['$container', '$containerProperty', '$containerIndex', '$document', '$cstNode']);\n this.langiumDocuments = services.shared.workspace.LangiumDocuments;\n this.astNodeLocator = services.workspace.AstNodeLocator;\n this.nameProvider = services.references.NameProvider;\n this.commentProvider = services.documentation.CommentProvider;\n }\n serialize(node, options) {\n const serializeOptions = options !== null && options !== void 0 ? options : {};\n const specificReplacer = options === null || options === void 0 ? void 0 : options.replacer;\n const defaultReplacer = (key, value) => this.replacer(key, value, serializeOptions);\n const replacer = specificReplacer ? (key, value) => specificReplacer(key, value, defaultReplacer) : defaultReplacer;\n try {\n this.currentDocument = getDocument(node);\n return JSON.stringify(node, replacer, options === null || options === void 0 ? void 0 : options.space);\n }\n finally {\n this.currentDocument = undefined;\n }\n }\n deserialize(content, options) {\n const deserializeOptions = options !== null && options !== void 0 ? options : {};\n const root = JSON.parse(content);\n this.linkNode(root, root, deserializeOptions);\n return root;\n }\n replacer(key, value, { refText, sourceText, textRegions, comments, uriConverter }) {\n var _a, _b, _c, _d;\n if (this.ignoreProperties.has(key)) {\n return undefined;\n }\n else if (isReference(value)) {\n const refValue = value.ref;\n const $refText = refText ? value.$refText : undefined;\n if (refValue) {\n const targetDocument = getDocument(refValue);\n let targetUri = '';\n if (this.currentDocument && this.currentDocument !== targetDocument) {\n if (uriConverter) {\n targetUri = uriConverter(targetDocument.uri, value);\n }\n else {\n targetUri = targetDocument.uri.toString();\n }\n }\n const targetPath = this.astNodeLocator.getAstNodePath(refValue);\n return {\n $ref: `${targetUri}#${targetPath}`,\n $refText\n };\n }\n else {\n return {\n $error: (_b = (_a = value.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : 'Could not resolve reference',\n $refText\n };\n }\n }\n else if (isAstNode(value)) {\n let astNode = undefined;\n if (textRegions) {\n astNode = this.addAstNodeRegionWithAssignmentsTo(Object.assign({}, value));\n if ((!key || value.$document) && (astNode === null || astNode === void 0 ? void 0 : astNode.$textRegion)) {\n // The document URI is added to the root node of the resulting JSON tree\n astNode.$textRegion.documentURI = (_c = this.currentDocument) === null || _c === void 0 ? void 0 : _c.uri.toString();\n }\n }\n if (sourceText && !key) {\n astNode !== null && astNode !== void 0 ? astNode : (astNode = Object.assign({}, value));\n astNode.$sourceText = (_d = value.$cstNode) === null || _d === void 0 ? void 0 : _d.text;\n }\n if (comments) {\n astNode !== null && astNode !== void 0 ? astNode : (astNode = Object.assign({}, value));\n const comment = this.commentProvider.getComment(value);\n if (comment) {\n astNode.$comment = comment.replace(/\\r/g, '');\n }\n }\n return astNode !== null && astNode !== void 0 ? astNode : value;\n }\n else {\n return value;\n }\n }\n addAstNodeRegionWithAssignmentsTo(node) {\n const createDocumentSegment = cstNode => ({\n offset: cstNode.offset,\n end: cstNode.end,\n length: cstNode.length,\n range: cstNode.range,\n });\n if (node.$cstNode) {\n const textRegion = node.$textRegion = createDocumentSegment(node.$cstNode);\n const assignments = textRegion.assignments = {};\n Object.keys(node).filter(key => !key.startsWith('$')).forEach(key => {\n const propertyAssignments = findNodesForProperty(node.$cstNode, key).map(createDocumentSegment);\n if (propertyAssignments.length !== 0) {\n assignments[key] = propertyAssignments;\n }\n });\n return node;\n }\n return undefined;\n }\n linkNode(node, root, options, container, containerProperty, containerIndex) {\n for (const [propertyName, item] of Object.entries(node)) {\n if (Array.isArray(item)) {\n for (let index = 0; index < item.length; index++) {\n const element = item[index];\n if (isIntermediateReference(element)) {\n item[index] = this.reviveReference(node, propertyName, root, element, options);\n }\n else if (isAstNode(element)) {\n this.linkNode(element, root, options, node, propertyName, index);\n }\n }\n }\n else if (isIntermediateReference(item)) {\n node[propertyName] = this.reviveReference(node, propertyName, root, item, options);\n }\n else if (isAstNode(item)) {\n this.linkNode(item, root, options, node, propertyName);\n }\n }\n const mutable = node;\n mutable.$container = container;\n mutable.$containerProperty = containerProperty;\n mutable.$containerIndex = containerIndex;\n }\n reviveReference(container, property, root, reference, options) {\n let refText = reference.$refText;\n let error = reference.$error;\n if (reference.$ref) {\n const ref = this.getRefNode(root, reference.$ref, options.uriConverter);\n if (isAstNode(ref)) {\n if (!refText) {\n refText = this.nameProvider.getName(ref);\n }\n return {\n $refText: refText !== null && refText !== void 0 ? refText : '',\n ref\n };\n }\n else {\n error = ref;\n }\n }\n if (error) {\n const ref = {\n $refText: refText !== null && refText !== void 0 ? refText : ''\n };\n ref.error = {\n container,\n property,\n message: error,\n reference: ref\n };\n return ref;\n }\n else {\n return undefined;\n }\n }\n getRefNode(root, uri, uriConverter) {\n try {\n const fragmentIndex = uri.indexOf('#');\n if (fragmentIndex === 0) {\n const node = this.astNodeLocator.getAstNode(root, uri.substring(1));\n if (!node) {\n return 'Could not resolve path: ' + uri;\n }\n return node;\n }\n if (fragmentIndex < 0) {\n const documentUri = uriConverter ? uriConverter(uri) : URI.parse(uri);\n const document = this.langiumDocuments.getDocument(documentUri);\n if (!document) {\n return 'Could not find document for URI: ' + uri;\n }\n return document.parseResult.value;\n }\n const documentUri = uriConverter ? uriConverter(uri.substring(0, fragmentIndex)) : URI.parse(uri.substring(0, fragmentIndex));\n const document = this.langiumDocuments.getDocument(documentUri);\n if (!document) {\n return 'Could not find document for URI: ' + uri;\n }\n if (fragmentIndex === uri.length - 1) {\n return document.parseResult.value;\n }\n const node = this.astNodeLocator.getAstNode(document.parseResult.value, uri.substring(fragmentIndex + 1));\n if (!node) {\n return 'Could not resolve URI: ' + uri;\n }\n return node;\n }\n catch (err) {\n return String(err);\n }\n }\n}\n//# sourceMappingURL=json-serializer.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { UriUtils } from './utils/uri-utils.js';\n/**\n * Generic registry for Langium services, but capable of being used with extending service sets as well (such as the lsp-complete LangiumCoreServices set)\n */\nexport class DefaultServiceRegistry {\n /**\n * @deprecated Use the new `fileExtensionMap` (or `languageIdMap`) property instead.\n */\n get map() {\n return this.fileExtensionMap;\n }\n constructor(services) {\n this.languageIdMap = new Map();\n this.fileExtensionMap = new Map();\n this.textDocuments = services === null || services === void 0 ? void 0 : services.workspace.TextDocuments;\n }\n register(language) {\n const data = language.LanguageMetaData;\n for (const ext of data.fileExtensions) {\n if (this.fileExtensionMap.has(ext)) {\n console.warn(`The file extension ${ext} is used by multiple languages. It is now assigned to '${data.languageId}'.`);\n }\n this.fileExtensionMap.set(ext, language);\n }\n this.languageIdMap.set(data.languageId, language);\n if (this.languageIdMap.size === 1) {\n this.singleton = language;\n }\n else {\n this.singleton = undefined;\n }\n }\n getServices(uri) {\n var _a, _b;\n if (this.singleton !== undefined) {\n return this.singleton;\n }\n if (this.languageIdMap.size === 0) {\n throw new Error('The service registry is empty. Use `register` to register the services of a language.');\n }\n const languageId = (_b = (_a = this.textDocuments) === null || _a === void 0 ? void 0 : _a.get(uri)) === null || _b === void 0 ? void 0 : _b.languageId;\n if (languageId !== undefined) {\n const services = this.languageIdMap.get(languageId);\n if (services) {\n return services;\n }\n }\n const ext = UriUtils.extname(uri);\n const services = this.fileExtensionMap.get(ext);\n if (!services) {\n if (languageId) {\n throw new Error(`The service registry contains no services for the extension '${ext}' for language '${languageId}'.`);\n }\n else {\n throw new Error(`The service registry contains no services for the extension '${ext}'.`);\n }\n }\n return services;\n }\n hasServices(uri) {\n try {\n this.getServices(uri);\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n get all() {\n return Array.from(this.languageIdMap.values());\n }\n}\n//# sourceMappingURL=service-registry.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { assertUnreachable } from '../index.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { isOperationCancelled } from '../utils/promise-utils.js';\nimport { stream } from '../utils/stream.js';\n/**\n * Create DiagnosticData for a given diagnostic code. The result can be put into the `data` field of a DiagnosticInfo.\n */\nexport function diagnosticData(code) {\n return { code };\n}\nexport var ValidationCategory;\n(function (ValidationCategory) {\n ValidationCategory.all = ['fast', 'slow', 'built-in'];\n})(ValidationCategory || (ValidationCategory = {}));\n/**\n * Manages a set of `ValidationCheck`s to be applied when documents are validated.\n */\nexport class ValidationRegistry {\n constructor(services) {\n this.entries = new MultiMap();\n this.entriesBefore = [];\n this.entriesAfter = [];\n this.reflection = services.shared.AstReflection;\n }\n /**\n * Register a set of validation checks. Each value in the record can be either a single validation check (i.e. a function)\n * or an array of validation checks.\n *\n * @param checksRecord Set of validation checks to register.\n * @param category Optional category for the validation checks (defaults to `'fast'`).\n * @param thisObj Optional object to be used as `this` when calling the validation check functions.\n */\n register(checksRecord, thisObj = this, category = 'fast') {\n if (category === 'built-in') {\n throw new Error(\"The 'built-in' category is reserved for lexer, parser, and linker errors.\");\n }\n for (const [type, ch] of Object.entries(checksRecord)) {\n const callbacks = ch;\n if (Array.isArray(callbacks)) {\n for (const check of callbacks) {\n const entry = {\n check: this.wrapValidationException(check, thisObj),\n category\n };\n this.addEntry(type, entry);\n }\n }\n else if (typeof callbacks === 'function') {\n const entry = {\n check: this.wrapValidationException(callbacks, thisObj),\n category\n };\n this.addEntry(type, entry);\n }\n else {\n assertUnreachable(callbacks);\n }\n }\n }\n wrapValidationException(check, thisObj) {\n return async (node, accept, cancelToken) => {\n await this.handleException(() => check.call(thisObj, node, accept, cancelToken), 'An error occurred during validation', accept, node);\n };\n }\n async handleException(functionality, messageContext, accept, node) {\n try {\n await functionality();\n }\n catch (err) {\n if (isOperationCancelled(err)) {\n throw err;\n }\n console.error(`${messageContext}:`, err);\n if (err instanceof Error && err.stack) {\n console.error(err.stack);\n }\n const messageDetails = err instanceof Error ? err.message : String(err);\n accept('error', `${messageContext}: ${messageDetails}`, { node });\n }\n }\n addEntry(type, entry) {\n if (type === 'AstNode') {\n this.entries.add('AstNode', entry);\n return;\n }\n for (const subtype of this.reflection.getAllSubTypes(type)) {\n this.entries.add(subtype, entry);\n }\n }\n getChecks(type, categories) {\n let checks = stream(this.entries.get(type))\n .concat(this.entries.get('AstNode'));\n if (categories) {\n checks = checks.filter(entry => categories.includes(entry.category));\n }\n return checks.map(entry => entry.check);\n }\n /**\n * Register logic which will be executed once before validating all the nodes of an AST/Langium document.\n * This helps to prepare or initialize some information which are required or reusable for the following checks on the AstNodes.\n *\n * As an example, for validating unique fully-qualified names of nodes in the AST,\n * here the map for mapping names to nodes could be established.\n * During the usual checks on the nodes, they are put into this map with their name.\n *\n * Note that this approach makes validations stateful, which is relevant e.g. when cancelling the validation.\n * Therefore it is recommended to clear stored information\n * _before_ validating an AST to validate each AST unaffected from other ASTs\n * AND _after_ validating the AST to free memory by information which are no longer used.\n *\n * @param checkBefore a set-up function which will be called once before actually validating an AST\n * @param thisObj Optional object to be used as `this` when calling the validation check functions.\n */\n registerBeforeDocument(checkBefore, thisObj = this) {\n this.entriesBefore.push(this.wrapPreparationException(checkBefore, 'An error occurred during set-up of the validation', thisObj));\n }\n /**\n * Register logic which will be executed once after validating all the nodes of an AST/Langium document.\n * This helps to finally evaluate information which are collected during the checks on the AstNodes.\n *\n * As an example, for validating unique fully-qualified names of nodes in the AST,\n * here the map with all the collected nodes and their names is checked\n * and validation hints are created for all nodes with the same name.\n *\n * Note that this approach makes validations stateful, which is relevant e.g. when cancelling the validation.\n * Therefore it is recommended to clear stored information\n * _before_ validating an AST to validate each AST unaffected from other ASTs\n * AND _after_ validating the AST to free memory by information which are no longer used.\n *\n * @param checkBefore a set-up function which will be called once before actually validating an AST\n * @param thisObj Optional object to be used as `this` when calling the validation check functions.\n */\n registerAfterDocument(checkAfter, thisObj = this) {\n this.entriesAfter.push(this.wrapPreparationException(checkAfter, 'An error occurred during tear-down of the validation', thisObj));\n }\n wrapPreparationException(check, messageContext, thisObj) {\n return async (rootNode, accept, categories, cancelToken) => {\n await this.handleException(() => check.call(thisObj, rootNode, accept, categories, cancelToken), messageContext, accept, rootNode);\n };\n }\n get checksBefore() {\n return this.entriesBefore;\n }\n get checksAfter() {\n return this.entriesAfter;\n }\n}\n//# sourceMappingURL=validation-registry.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { findNodeForKeyword, findNodeForProperty } from '../utils/grammar-utils.js';\nimport { streamAst } from '../utils/ast-utils.js';\nimport { tokenToRange } from '../utils/cst-utils.js';\nimport { interruptAndCheck, isOperationCancelled } from '../utils/promise-utils.js';\nimport { diagnosticData } from './validation-registry.js';\nexport class DefaultDocumentValidator {\n constructor(services) {\n this.validationRegistry = services.validation.ValidationRegistry;\n this.metadata = services.LanguageMetaData;\n }\n async validateDocument(document, options = {}, cancelToken = CancellationToken.None) {\n const parseResult = document.parseResult;\n const diagnostics = [];\n await interruptAndCheck(cancelToken);\n if (!options.categories || options.categories.includes('built-in')) {\n this.processLexingErrors(parseResult, diagnostics, options);\n if (options.stopAfterLexingErrors && diagnostics.some(d => { var _a; return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.LexingError; })) {\n return diagnostics;\n }\n this.processParsingErrors(parseResult, diagnostics, options);\n if (options.stopAfterParsingErrors && diagnostics.some(d => { var _a; return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.ParsingError; })) {\n return diagnostics;\n }\n this.processLinkingErrors(document, diagnostics, options);\n if (options.stopAfterLinkingErrors && diagnostics.some(d => { var _a; return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.code) === DocumentValidator.LinkingError; })) {\n return diagnostics;\n }\n }\n // Process custom validations\n try {\n diagnostics.push(...await this.validateAst(parseResult.value, options, cancelToken));\n }\n catch (err) {\n if (isOperationCancelled(err)) {\n throw err;\n }\n console.error('An error occurred during validation:', err);\n }\n await interruptAndCheck(cancelToken);\n return diagnostics;\n }\n processLexingErrors(parseResult, diagnostics, _options) {\n var _a, _b, _c;\n const lexerDiagnostics = [...parseResult.lexerErrors, ...(_b = (_a = parseResult.lexerReport) === null || _a === void 0 ? void 0 : _a.diagnostics) !== null && _b !== void 0 ? _b : []];\n for (const lexerDiagnostic of lexerDiagnostics) {\n const severity = (_c = lexerDiagnostic.severity) !== null && _c !== void 0 ? _c : 'error';\n const diagnostic = {\n severity: toDiagnosticSeverity(severity),\n range: {\n start: {\n line: lexerDiagnostic.line - 1,\n character: lexerDiagnostic.column - 1\n },\n end: {\n line: lexerDiagnostic.line - 1,\n character: lexerDiagnostic.column + lexerDiagnostic.length - 1\n }\n },\n message: lexerDiagnostic.message,\n data: toDiagnosticData(severity),\n source: this.getSource()\n };\n diagnostics.push(diagnostic);\n }\n }\n processParsingErrors(parseResult, diagnostics, _options) {\n for (const parserError of parseResult.parserErrors) {\n let range = undefined;\n // We can run into the chevrotain error recovery here\n // The token contained in the parser error might be automatically inserted\n // In this case every position value will be `NaN`\n if (isNaN(parserError.token.startOffset)) {\n // Some special parser error types contain a `previousToken`\n // We can simply append our diagnostic to that token\n if ('previousToken' in parserError) {\n const token = parserError.previousToken;\n if (!isNaN(token.startOffset)) {\n const position = { line: token.endLine - 1, character: token.endColumn };\n range = { start: position, end: position };\n }\n else {\n // No valid prev token. Might be empty document or containing only hidden tokens.\n // Point to document start\n const position = { line: 0, character: 0 };\n range = { start: position, end: position };\n }\n }\n }\n else {\n range = tokenToRange(parserError.token);\n }\n if (range) {\n const diagnostic = {\n severity: toDiagnosticSeverity('error'),\n range,\n message: parserError.message,\n data: diagnosticData(DocumentValidator.ParsingError),\n source: this.getSource()\n };\n diagnostics.push(diagnostic);\n }\n }\n }\n processLinkingErrors(document, diagnostics, _options) {\n for (const reference of document.references) {\n const linkingError = reference.error;\n if (linkingError) {\n const info = {\n node: linkingError.container,\n property: linkingError.property,\n index: linkingError.index,\n data: {\n code: DocumentValidator.LinkingError,\n containerType: linkingError.container.$type,\n property: linkingError.property,\n refText: linkingError.reference.$refText\n }\n };\n diagnostics.push(this.toDiagnostic('error', linkingError.message, info));\n }\n }\n }\n async validateAst(rootNode, options, cancelToken = CancellationToken.None) {\n const validationItems = [];\n const acceptor = (severity, message, info) => {\n validationItems.push(this.toDiagnostic(severity, message, info));\n };\n await this.validateAstBefore(rootNode, options, acceptor, cancelToken);\n await this.validateAstNodes(rootNode, options, acceptor, cancelToken);\n await this.validateAstAfter(rootNode, options, acceptor, cancelToken);\n return validationItems;\n }\n async validateAstBefore(rootNode, options, acceptor, cancelToken = CancellationToken.None) {\n var _a;\n const checksBefore = this.validationRegistry.checksBefore;\n for (const checkBefore of checksBefore) {\n await interruptAndCheck(cancelToken);\n await checkBefore(rootNode, acceptor, (_a = options.categories) !== null && _a !== void 0 ? _a : [], cancelToken);\n }\n }\n async validateAstNodes(rootNode, options, acceptor, cancelToken = CancellationToken.None) {\n await Promise.all(streamAst(rootNode).map(async (node) => {\n await interruptAndCheck(cancelToken);\n const checks = this.validationRegistry.getChecks(node.$type, options.categories);\n for (const check of checks) {\n await check(node, acceptor, cancelToken);\n }\n }));\n }\n async validateAstAfter(rootNode, options, acceptor, cancelToken = CancellationToken.None) {\n var _a;\n const checksAfter = this.validationRegistry.checksAfter;\n for (const checkAfter of checksAfter) {\n await interruptAndCheck(cancelToken);\n await checkAfter(rootNode, acceptor, (_a = options.categories) !== null && _a !== void 0 ? _a : [], cancelToken);\n }\n }\n toDiagnostic(severity, message, info) {\n return {\n message,\n range: getDiagnosticRange(info),\n severity: toDiagnosticSeverity(severity),\n code: info.code,\n codeDescription: info.codeDescription,\n tags: info.tags,\n relatedInformation: info.relatedInformation,\n data: info.data,\n source: this.getSource()\n };\n }\n getSource() {\n return this.metadata.languageId;\n }\n}\nexport function getDiagnosticRange(info) {\n if (info.range) {\n return info.range;\n }\n let cstNode;\n if (typeof info.property === 'string') {\n cstNode = findNodeForProperty(info.node.$cstNode, info.property, info.index);\n }\n else if (typeof info.keyword === 'string') {\n cstNode = findNodeForKeyword(info.node.$cstNode, info.keyword, info.index);\n }\n cstNode !== null && cstNode !== void 0 ? cstNode : (cstNode = info.node.$cstNode);\n if (!cstNode) {\n return {\n start: { line: 0, character: 0 },\n end: { line: 0, character: 0 }\n };\n }\n return cstNode.range;\n}\n/**\n * Transforms the diagnostic severity from the {@link LexingDiagnosticSeverity} format to LSP's `DiagnosticSeverity` format.\n *\n * @param severity The lexing diagnostic severity\n * @returns Diagnostic severity according to `vscode-languageserver-types/lib/esm/main.js#DiagnosticSeverity`\n */\nexport function toDiagnosticSeverity(severity) {\n switch (severity) {\n case 'error':\n return 1;\n case 'warning':\n return 2;\n case 'info':\n return 3;\n case 'hint':\n return 4;\n default:\n throw new Error('Invalid diagnostic severity: ' + severity);\n }\n}\nexport function toDiagnosticData(severity) {\n switch (severity) {\n case 'error':\n return diagnosticData(DocumentValidator.LexingError);\n case 'warning':\n return diagnosticData(DocumentValidator.LexingWarning);\n case 'info':\n return diagnosticData(DocumentValidator.LexingInfo);\n case 'hint':\n return diagnosticData(DocumentValidator.LexingHint);\n default:\n throw new Error('Invalid diagnostic severity: ' + severity);\n }\n}\nexport var DocumentValidator;\n(function (DocumentValidator) {\n DocumentValidator.LexingError = 'lexing-error';\n DocumentValidator.LexingWarning = 'lexing-warning';\n DocumentValidator.LexingInfo = 'lexing-info';\n DocumentValidator.LexingHint = 'lexing-hint';\n DocumentValidator.ParsingError = 'parsing-error';\n DocumentValidator.LinkingError = 'linking-error';\n})(DocumentValidator || (DocumentValidator = {}));\n//# sourceMappingURL=document-validator.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { isLinkingError } from '../syntax-tree.js';\nimport { getDocument, streamAst, streamReferences } from '../utils/ast-utils.js';\nimport { toDocumentSegment } from '../utils/cst-utils.js';\nimport { interruptAndCheck } from '../utils/promise-utils.js';\nimport { UriUtils } from '../utils/uri-utils.js';\nexport class DefaultAstNodeDescriptionProvider {\n constructor(services) {\n this.astNodeLocator = services.workspace.AstNodeLocator;\n this.nameProvider = services.references.NameProvider;\n }\n createDescription(node, name, document) {\n const doc = document !== null && document !== void 0 ? document : getDocument(node);\n name !== null && name !== void 0 ? name : (name = this.nameProvider.getName(node));\n const path = this.astNodeLocator.getAstNodePath(node);\n if (!name) {\n throw new Error(`Node at path ${path} has no name.`);\n }\n let nameNodeSegment;\n const nameSegmentGetter = () => { var _a; return nameNodeSegment !== null && nameNodeSegment !== void 0 ? nameNodeSegment : (nameNodeSegment = toDocumentSegment((_a = this.nameProvider.getNameNode(node)) !== null && _a !== void 0 ? _a : node.$cstNode)); };\n return {\n node,\n name,\n get nameSegment() {\n return nameSegmentGetter();\n },\n selectionSegment: toDocumentSegment(node.$cstNode),\n type: node.$type,\n documentUri: doc.uri,\n path\n };\n }\n}\nexport class DefaultReferenceDescriptionProvider {\n constructor(services) {\n this.nodeLocator = services.workspace.AstNodeLocator;\n }\n async createDescriptions(document, cancelToken = CancellationToken.None) {\n const descr = [];\n const rootNode = document.parseResult.value;\n for (const astNode of streamAst(rootNode)) {\n await interruptAndCheck(cancelToken);\n streamReferences(astNode).filter(refInfo => !isLinkingError(refInfo)).forEach(refInfo => {\n // TODO: Consider logging a warning or throw an exception when DocumentState is < than Linked\n const description = this.createDescription(refInfo);\n if (description) {\n descr.push(description);\n }\n });\n }\n return descr;\n }\n createDescription(refInfo) {\n const targetNodeDescr = refInfo.reference.$nodeDescription;\n const refCstNode = refInfo.reference.$refNode;\n if (!targetNodeDescr || !refCstNode) {\n return undefined;\n }\n const docUri = getDocument(refInfo.container).uri;\n return {\n sourceUri: docUri,\n sourcePath: this.nodeLocator.getAstNodePath(refInfo.container),\n targetUri: targetNodeDescr.documentUri,\n targetPath: targetNodeDescr.path,\n segment: toDocumentSegment(refCstNode),\n local: UriUtils.equals(targetNodeDescr.documentUri, docUri)\n };\n }\n}\n//# sourceMappingURL=ast-descriptions.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport class DefaultAstNodeLocator {\n constructor() {\n this.segmentSeparator = '/';\n this.indexSeparator = '@';\n }\n getAstNodePath(node) {\n if (node.$container) {\n const containerPath = this.getAstNodePath(node.$container);\n const newSegment = this.getPathSegment(node);\n const nodePath = containerPath + this.segmentSeparator + newSegment;\n return nodePath;\n }\n return '';\n }\n getPathSegment({ $containerProperty, $containerIndex }) {\n if (!$containerProperty) {\n throw new Error(\"Missing '$containerProperty' in AST node.\");\n }\n if ($containerIndex !== undefined) {\n return $containerProperty + this.indexSeparator + $containerIndex;\n }\n return $containerProperty;\n }\n getAstNode(node, path) {\n const segments = path.split(this.segmentSeparator);\n return segments.reduce((previousValue, currentValue) => {\n if (!previousValue || currentValue.length === 0) {\n return previousValue;\n }\n const propertyIndex = currentValue.indexOf(this.indexSeparator);\n if (propertyIndex > 0) {\n const property = currentValue.substring(0, propertyIndex);\n const arrayIndex = parseInt(currentValue.substring(propertyIndex + 1));\n const array = previousValue[property];\n return array === null || array === void 0 ? void 0 : array[arrayIndex];\n }\n return previousValue[currentValue];\n }, node);\n }\n}\n//# sourceMappingURL=ast-node-locator.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Emitter } from '../utils/event.js';\nimport { Deferred } from '../utils/promise-utils.js';\n/**\n * Base configuration provider for building up other configuration providers\n */\nexport class DefaultConfigurationProvider {\n constructor(services) {\n this._ready = new Deferred();\n this.settings = {};\n this.workspaceConfig = false;\n this.onConfigurationSectionUpdateEmitter = new Emitter();\n this.serviceRegistry = services.ServiceRegistry;\n }\n get ready() {\n return this._ready.promise;\n }\n initialize(params) {\n var _a, _b;\n this.workspaceConfig = (_b = (_a = params.capabilities.workspace) === null || _a === void 0 ? void 0 : _a.configuration) !== null && _b !== void 0 ? _b : false;\n }\n async initialized(params) {\n if (this.workspaceConfig) {\n if (params.register) {\n // params.register(...) is a function to be provided by the calling language server for the sake of\n // decoupling this implementation from the concrete LSP implementations, specifically the LSP Connection\n const languages = this.serviceRegistry.all;\n params.register({\n // Listen to configuration changes for all languages\n section: languages.map(lang => this.toSectionName(lang.LanguageMetaData.languageId))\n });\n }\n if (params.fetchConfiguration) {\n // params.fetchConfiguration(...) is a function to be provided by the calling language server for the sake of\n // decoupling this implementation from the concrete LSP implementations, specifically the LSP Connection\n const configToUpdate = this.serviceRegistry.all.map(lang => ({\n // Fetch the configuration changes for all languages\n section: this.toSectionName(lang.LanguageMetaData.languageId)\n }));\n // get workspace configurations (default scope URI)\n const configs = await params.fetchConfiguration(configToUpdate);\n configToUpdate.forEach((conf, idx) => {\n this.updateSectionConfiguration(conf.section, configs[idx]);\n });\n }\n }\n this._ready.resolve();\n }\n /**\n * Updates the cached configurations using the `change` notification parameters.\n *\n * @param change The parameters of a change configuration notification.\n * `settings` property of the change object could be expressed as `Record>`\n */\n updateConfiguration(change) {\n if (!change.settings) {\n return;\n }\n Object.keys(change.settings).forEach(section => {\n const configuration = change.settings[section];\n this.updateSectionConfiguration(section, configuration);\n this.onConfigurationSectionUpdateEmitter.fire({ section, configuration });\n });\n }\n updateSectionConfiguration(section, configuration) {\n this.settings[section] = configuration;\n }\n /**\n * Returns a configuration value stored for the given language.\n *\n * @param language The language id\n * @param configuration Configuration name\n */\n async getConfiguration(language, configuration) {\n await this.ready;\n const sectionName = this.toSectionName(language);\n if (this.settings[sectionName]) {\n return this.settings[sectionName][configuration];\n }\n }\n toSectionName(languageId) {\n return `${languageId}`;\n }\n get onConfigurationSectionUpdate() {\n return this.onConfigurationSectionUpdateEmitter.event;\n }\n}\n//# sourceMappingURL=configuration.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport var Disposable;\n(function (Disposable) {\n function create(callback) {\n return {\n dispose: async () => await callback()\n };\n }\n Disposable.create = create;\n})(Disposable || (Disposable = {}));\n//# sourceMappingURL=disposable.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { Disposable } from '../utils/disposable.js';\nimport { MultiMap } from '../utils/collections.js';\nimport { OperationCancelled, interruptAndCheck, isOperationCancelled } from '../utils/promise-utils.js';\nimport { stream } from '../utils/stream.js';\nimport { ValidationCategory } from '../validation/validation-registry.js';\nimport { DocumentState } from './documents.js';\nexport class DefaultDocumentBuilder {\n constructor(services) {\n this.updateBuildOptions = {\n // Default: run only the built-in validation checks and those in the _fast_ category (includes those without category)\n validation: {\n categories: ['built-in', 'fast']\n }\n };\n this.updateListeners = [];\n this.buildPhaseListeners = new MultiMap();\n this.documentPhaseListeners = new MultiMap();\n this.buildState = new Map();\n this.documentBuildWaiters = new Map();\n this.currentState = DocumentState.Changed;\n this.langiumDocuments = services.workspace.LangiumDocuments;\n this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;\n this.textDocuments = services.workspace.TextDocuments;\n this.indexManager = services.workspace.IndexManager;\n this.serviceRegistry = services.ServiceRegistry;\n }\n async build(documents, options = {}, cancelToken = CancellationToken.None) {\n var _a, _b;\n for (const document of documents) {\n const key = document.uri.toString();\n if (document.state === DocumentState.Validated) {\n if (typeof options.validation === 'boolean' && options.validation) {\n // Force re-running all validation checks\n document.state = DocumentState.IndexedReferences;\n document.diagnostics = undefined;\n this.buildState.delete(key);\n }\n else if (typeof options.validation === 'object') {\n const buildState = this.buildState.get(key);\n const previousCategories = (_a = buildState === null || buildState === void 0 ? void 0 : buildState.result) === null || _a === void 0 ? void 0 : _a.validationChecks;\n if (previousCategories) {\n // Validation with explicit options was requested for a document that has already been partly validated.\n // In this case, we need to merge the previous validation categories with the new ones.\n const newCategories = (_b = options.validation.categories) !== null && _b !== void 0 ? _b : ValidationCategory.all;\n const categories = newCategories.filter(c => !previousCategories.includes(c));\n if (categories.length > 0) {\n this.buildState.set(key, {\n completed: false,\n options: {\n validation: Object.assign(Object.assign({}, options.validation), { categories })\n },\n result: buildState.result\n });\n document.state = DocumentState.IndexedReferences;\n }\n }\n }\n }\n else {\n // Default: forget any previous build options\n this.buildState.delete(key);\n }\n }\n this.currentState = DocumentState.Changed;\n await this.emitUpdate(documents.map(e => e.uri), []);\n await this.buildDocuments(documents, options, cancelToken);\n }\n async update(changed, deleted, cancelToken = CancellationToken.None) {\n this.currentState = DocumentState.Changed;\n // Remove all metadata of documents that are reported as deleted\n for (const deletedUri of deleted) {\n this.langiumDocuments.deleteDocument(deletedUri);\n this.buildState.delete(deletedUri.toString());\n this.indexManager.remove(deletedUri);\n }\n // Set the state of all changed documents to `Changed` so they are completely rebuilt\n for (const changedUri of changed) {\n const invalidated = this.langiumDocuments.invalidateDocument(changedUri);\n if (!invalidated) {\n // We create an unparsed, invalid document.\n // This will be parsed as soon as we reach the first document builder phase.\n // This allows to cancel the parsing process later in case we need it.\n const newDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);\n newDocument.state = DocumentState.Changed;\n this.langiumDocuments.addDocument(newDocument);\n }\n this.buildState.delete(changedUri.toString());\n }\n // Set the state of all documents that should be relinked to `ComputedScopes` (if not already lower)\n const allChangedUris = stream(changed).concat(deleted).map(uri => uri.toString()).toSet();\n this.langiumDocuments.all\n .filter(doc => !allChangedUris.has(doc.uri.toString()) && this.shouldRelink(doc, allChangedUris))\n .forEach(doc => {\n const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;\n linker.unlink(doc);\n doc.state = Math.min(doc.state, DocumentState.ComputedScopes);\n doc.diagnostics = undefined;\n });\n // Notify listeners of the update\n await this.emitUpdate(changed, deleted);\n // Only allow interrupting the execution after all state changes are done\n await interruptAndCheck(cancelToken);\n // Collect and sort all documents that we should rebuild\n const rebuildDocuments = this.sortDocuments(this.langiumDocuments.all\n .filter(doc => {\n var _a;\n // This includes those that were reported as changed and those that we selected for relinking\n return doc.state < DocumentState.Linked\n // This includes those for which a previous build has been cancelled\n || !((_a = this.buildState.get(doc.uri.toString())) === null || _a === void 0 ? void 0 : _a.completed);\n })\n .toArray());\n await this.buildDocuments(rebuildDocuments, this.updateBuildOptions, cancelToken);\n }\n async emitUpdate(changed, deleted) {\n await Promise.all(this.updateListeners.map(listener => listener(changed, deleted)));\n }\n /**\n * Sort the given documents by priority. By default, documents with an open text document are prioritized.\n * This is useful to ensure that visible documents show their diagnostics before all other documents.\n *\n * This improves the responsiveness in large workspaces as users usually don't care about diagnostics\n * in files that are currently not opened in the editor.\n */\n sortDocuments(documents) {\n let left = 0;\n let right = documents.length - 1;\n while (left < right) {\n while (left < documents.length && this.hasTextDocument(documents[left])) {\n left++;\n }\n while (right >= 0 && !this.hasTextDocument(documents[right])) {\n right--;\n }\n if (left < right) {\n [documents[left], documents[right]] = [documents[right], documents[left]];\n }\n }\n return documents;\n }\n hasTextDocument(doc) {\n var _a;\n return Boolean((_a = this.textDocuments) === null || _a === void 0 ? void 0 : _a.get(doc.uri));\n }\n /**\n * Check whether the given document should be relinked after changes were found in the given URIs.\n */\n shouldRelink(document, changedUris) {\n // Relink documents with linking errors -- maybe those references can be resolved now\n if (document.references.some(ref => ref.error !== undefined)) {\n return true;\n }\n // Check whether the document is affected by any of the changed URIs\n return this.indexManager.isAffected(document, changedUris);\n }\n onUpdate(callback) {\n this.updateListeners.push(callback);\n return Disposable.create(() => {\n const index = this.updateListeners.indexOf(callback);\n if (index >= 0) {\n this.updateListeners.splice(index, 1);\n }\n });\n }\n /**\n * Build the given documents by stepping through all build phases. If a document's state indicates\n * that a certain build phase is already done, the phase is skipped for that document.\n *\n * @param documents The documents to build.\n * @param options the {@link BuildOptions} to use.\n * @param cancelToken A cancellation token that can be used to cancel the build.\n * @returns A promise that resolves when the build is done.\n */\n async buildDocuments(documents, options, cancelToken) {\n this.prepareBuild(documents, options);\n // 0. Parse content\n await this.runCancelable(documents, DocumentState.Parsed, cancelToken, doc => this.langiumDocumentFactory.update(doc, cancelToken));\n // 1. Index content\n await this.runCancelable(documents, DocumentState.IndexedContent, cancelToken, doc => this.indexManager.updateContent(doc, cancelToken));\n // 2. Compute scopes\n await this.runCancelable(documents, DocumentState.ComputedScopes, cancelToken, async (doc) => {\n const scopeComputation = this.serviceRegistry.getServices(doc.uri).references.ScopeComputation;\n doc.precomputedScopes = await scopeComputation.computeLocalScopes(doc, cancelToken);\n });\n // 3. Linking\n await this.runCancelable(documents, DocumentState.Linked, cancelToken, doc => {\n const linker = this.serviceRegistry.getServices(doc.uri).references.Linker;\n return linker.link(doc, cancelToken);\n });\n // 4. Index references\n await this.runCancelable(documents, DocumentState.IndexedReferences, cancelToken, doc => this.indexManager.updateReferences(doc, cancelToken));\n // 5. Validation\n const toBeValidated = documents.filter(doc => this.shouldValidate(doc));\n await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, doc => this.validate(doc, cancelToken));\n // If we've made it to this point without being cancelled, we can mark the build state as completed.\n for (const doc of documents) {\n const state = this.buildState.get(doc.uri.toString());\n if (state) {\n state.completed = true;\n }\n }\n }\n /**\n * Runs prior to beginning the build process to update the {@link DocumentBuildState} for each document\n *\n * @param documents collection of documents to be built\n * @param options the {@link BuildOptions} to use\n */\n prepareBuild(documents, options) {\n for (const doc of documents) {\n const key = doc.uri.toString();\n const state = this.buildState.get(key);\n // If the document has no previous build state, we set it. If it has one, but it's already marked\n // as completed, we overwrite it. If the previous build was not completed, we keep its state\n // and continue where it was cancelled.\n if (!state || state.completed) {\n this.buildState.set(key, {\n completed: false,\n options,\n result: state === null || state === void 0 ? void 0 : state.result\n });\n }\n }\n }\n /**\n * Runs a cancelable operation on a set of documents to bring them to a specified {@link DocumentState}.\n *\n * @param documents The array of documents to process.\n * @param targetState The target {@link DocumentState} to bring the documents to.\n * @param cancelToken A token that can be used to cancel the operation.\n * @param callback A function to be called for each document.\n * @returns A promise that resolves when all documents have been processed or the operation is canceled.\n * @throws Will throw `OperationCancelled` if the operation is canceled via a `CancellationToken`.\n */\n async runCancelable(documents, targetState, cancelToken, callback) {\n const filtered = documents.filter(doc => doc.state < targetState);\n for (const document of filtered) {\n await interruptAndCheck(cancelToken);\n await callback(document);\n document.state = targetState;\n await this.notifyDocumentPhase(document, targetState, cancelToken);\n }\n // Do not use `filtered` here, as that will miss documents that have previously reached the current target state\n // For example, this happens in case the cancellation triggers between the processing of two documents\n // Or files that were picked up during the workspace initialization\n const targetStateDocs = documents.filter(doc => doc.state === targetState);\n await this.notifyBuildPhase(targetStateDocs, targetState, cancelToken);\n this.currentState = targetState;\n }\n onBuildPhase(targetState, callback) {\n this.buildPhaseListeners.add(targetState, callback);\n return Disposable.create(() => {\n this.buildPhaseListeners.delete(targetState, callback);\n });\n }\n onDocumentPhase(targetState, callback) {\n this.documentPhaseListeners.add(targetState, callback);\n return Disposable.create(() => {\n this.documentPhaseListeners.delete(targetState, callback);\n });\n }\n waitUntil(state, uriOrToken, cancelToken) {\n let uri = undefined;\n if (uriOrToken && 'path' in uriOrToken) {\n uri = uriOrToken;\n }\n else {\n cancelToken = uriOrToken;\n }\n cancelToken !== null && cancelToken !== void 0 ? cancelToken : (cancelToken = CancellationToken.None);\n if (uri) {\n const document = this.langiumDocuments.getDocument(uri);\n if (document && document.state > state) {\n return Promise.resolve(uri);\n }\n }\n if (this.currentState >= state) {\n return Promise.resolve(undefined);\n }\n else if (cancelToken.isCancellationRequested) {\n return Promise.reject(OperationCancelled);\n }\n return new Promise((resolve, reject) => {\n const buildDisposable = this.onBuildPhase(state, () => {\n buildDisposable.dispose();\n cancelDisposable.dispose();\n if (uri) {\n const document = this.langiumDocuments.getDocument(uri);\n resolve(document === null || document === void 0 ? void 0 : document.uri);\n }\n else {\n resolve(undefined);\n }\n });\n const cancelDisposable = cancelToken.onCancellationRequested(() => {\n buildDisposable.dispose();\n cancelDisposable.dispose();\n reject(OperationCancelled);\n });\n });\n }\n async notifyDocumentPhase(document, state, cancelToken) {\n const listeners = this.documentPhaseListeners.get(state);\n const listenersCopy = listeners.slice();\n for (const listener of listenersCopy) {\n try {\n await listener(document, cancelToken);\n }\n catch (err) {\n // Ignore cancellation errors\n // We want to finish the listeners before throwing\n if (!isOperationCancelled(err)) {\n throw err;\n }\n }\n }\n }\n async notifyBuildPhase(documents, state, cancelToken) {\n if (documents.length === 0) {\n // Don't notify when no document has been processed\n return;\n }\n const listeners = this.buildPhaseListeners.get(state);\n const listenersCopy = listeners.slice();\n for (const listener of listenersCopy) {\n await interruptAndCheck(cancelToken);\n await listener(documents, cancelToken);\n }\n }\n /**\n * Determine whether the given document should be validated during a build. The default\n * implementation checks the `validation` property of the build options. If it's set to `true`\n * or a `ValidationOptions` object, the document is included in the validation phase.\n */\n shouldValidate(document) {\n return Boolean(this.getBuildOptions(document).validation);\n }\n /**\n * Run validation checks on the given document and store the resulting diagnostics in the document.\n * If the document already contains diagnostics, the new ones are added to the list.\n */\n async validate(document, cancelToken) {\n var _a, _b;\n const validator = this.serviceRegistry.getServices(document.uri).validation.DocumentValidator;\n const validationSetting = this.getBuildOptions(document).validation;\n const options = typeof validationSetting === 'object' ? validationSetting : undefined;\n const diagnostics = await validator.validateDocument(document, options, cancelToken);\n if (document.diagnostics) {\n document.diagnostics.push(...diagnostics);\n }\n else {\n document.diagnostics = diagnostics;\n }\n // Store information about the executed validation in the build state\n const state = this.buildState.get(document.uri.toString());\n if (state) {\n (_a = state.result) !== null && _a !== void 0 ? _a : (state.result = {});\n const newCategories = (_b = options === null || options === void 0 ? void 0 : options.categories) !== null && _b !== void 0 ? _b : ValidationCategory.all;\n if (state.result.validationChecks) {\n state.result.validationChecks.push(...newCategories);\n }\n else {\n state.result.validationChecks = [...newCategories];\n }\n }\n }\n getBuildOptions(document) {\n var _a, _b;\n return (_b = (_a = this.buildState.get(document.uri.toString())) === null || _a === void 0 ? void 0 : _a.options) !== null && _b !== void 0 ? _b : {};\n }\n}\n//# sourceMappingURL=document-builder.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { getDocument } from '../utils/ast-utils.js';\nimport { ContextCache } from '../utils/caching.js';\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { stream } from '../utils/stream.js';\nimport { UriUtils } from '../utils/uri-utils.js';\nexport class DefaultIndexManager {\n constructor(services) {\n /**\n * The symbol index stores all `AstNodeDescription` items exported by a document.\n * The key used in this map is the string representation of the specific document URI.\n */\n this.symbolIndex = new Map();\n /**\n * This is a cache for the `allElements()` method.\n * It caches the descriptions from `symbolIndex` grouped by types.\n */\n this.symbolByTypeIndex = new ContextCache();\n /**\n * This index keeps track of all `ReferenceDescription` items exported by a document.\n * This is used to compute which elements are affected by a document change\n * and for finding references to an AST node.\n */\n this.referenceIndex = new Map();\n this.documents = services.workspace.LangiumDocuments;\n this.serviceRegistry = services.ServiceRegistry;\n this.astReflection = services.AstReflection;\n }\n findAllReferences(targetNode, astNodePath) {\n const targetDocUri = getDocument(targetNode).uri;\n const result = [];\n this.referenceIndex.forEach(docRefs => {\n docRefs.forEach(refDescr => {\n if (UriUtils.equals(refDescr.targetUri, targetDocUri) && refDescr.targetPath === astNodePath) {\n result.push(refDescr);\n }\n });\n });\n return stream(result);\n }\n allElements(nodeType, uris) {\n let documentUris = stream(this.symbolIndex.keys());\n if (uris) {\n documentUris = documentUris.filter(uri => !uris || uris.has(uri));\n }\n return documentUris\n .map(uri => this.getFileDescriptions(uri, nodeType))\n .flat();\n }\n getFileDescriptions(uri, nodeType) {\n var _a;\n if (!nodeType) {\n return (_a = this.symbolIndex.get(uri)) !== null && _a !== void 0 ? _a : [];\n }\n const descriptions = this.symbolByTypeIndex.get(uri, nodeType, () => {\n var _a;\n const allFileDescriptions = (_a = this.symbolIndex.get(uri)) !== null && _a !== void 0 ? _a : [];\n return allFileDescriptions.filter(e => this.astReflection.isSubtype(e.type, nodeType));\n });\n return descriptions;\n }\n remove(uri) {\n const uriString = uri.toString();\n this.symbolIndex.delete(uriString);\n this.symbolByTypeIndex.clear(uriString);\n this.referenceIndex.delete(uriString);\n }\n async updateContent(document, cancelToken = CancellationToken.None) {\n const services = this.serviceRegistry.getServices(document.uri);\n const exports = await services.references.ScopeComputation.computeExports(document, cancelToken);\n const uri = document.uri.toString();\n this.symbolIndex.set(uri, exports);\n this.symbolByTypeIndex.clear(uri);\n }\n async updateReferences(document, cancelToken = CancellationToken.None) {\n const services = this.serviceRegistry.getServices(document.uri);\n const indexData = await services.workspace.ReferenceDescriptionProvider.createDescriptions(document, cancelToken);\n this.referenceIndex.set(document.uri.toString(), indexData);\n }\n isAffected(document, changedUris) {\n const references = this.referenceIndex.get(document.uri.toString());\n if (!references) {\n return false;\n }\n return references.some(ref => !ref.local && changedUris.has(ref.targetUri.toString()));\n }\n}\n//# sourceMappingURL=index-manager.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken } from '../utils/cancellation.js';\nimport { Deferred, interruptAndCheck } from '../utils/promise-utils.js';\nimport { URI, UriUtils } from '../utils/uri-utils.js';\nexport class DefaultWorkspaceManager {\n constructor(services) {\n this.initialBuildOptions = {};\n this._ready = new Deferred();\n this.serviceRegistry = services.ServiceRegistry;\n this.langiumDocuments = services.workspace.LangiumDocuments;\n this.documentBuilder = services.workspace.DocumentBuilder;\n this.fileSystemProvider = services.workspace.FileSystemProvider;\n this.mutex = services.workspace.WorkspaceLock;\n }\n get ready() {\n return this._ready.promise;\n }\n get workspaceFolders() {\n return this.folders;\n }\n initialize(params) {\n var _a;\n this.folders = (_a = params.workspaceFolders) !== null && _a !== void 0 ? _a : undefined;\n }\n initialized(_params) {\n // Initialize the workspace even if there are no workspace folders\n // We still want to load additional documents (language library or similar) during initialization\n return this.mutex.write(token => { var _a; return this.initializeWorkspace((_a = this.folders) !== null && _a !== void 0 ? _a : [], token); });\n }\n async initializeWorkspace(folders, cancelToken = CancellationToken.None) {\n const documents = await this.performStartup(folders);\n // Only after creating all documents do we check whether we need to cancel the initialization\n // The document builder will later pick up on all unprocessed documents\n await interruptAndCheck(cancelToken);\n await this.documentBuilder.build(documents, this.initialBuildOptions, cancelToken);\n }\n /**\n * Performs the uninterruptable startup sequence of the workspace manager.\n * This methods loads all documents in the workspace and other documents and returns them.\n */\n async performStartup(folders) {\n const fileExtensions = this.serviceRegistry.all.flatMap(e => e.LanguageMetaData.fileExtensions);\n const documents = [];\n const collector = (document) => {\n documents.push(document);\n if (!this.langiumDocuments.hasDocument(document.uri)) {\n this.langiumDocuments.addDocument(document);\n }\n };\n // Even though we don't await the initialization of the workspace manager,\n // we can still assume that all library documents and file documents are loaded by the time we start building documents.\n // The mutex prevents anything from performing a workspace build until we check the cancellation token\n await this.loadAdditionalDocuments(folders, collector);\n await Promise.all(folders.map(wf => [wf, this.getRootFolder(wf)])\n .map(async (entry) => this.traverseFolder(...entry, fileExtensions, collector)));\n this._ready.resolve();\n return documents;\n }\n /**\n * Load all additional documents that shall be visible in the context of the given workspace\n * folders and add them to the collector. This can be used to include built-in libraries of\n * your language, which can be either loaded from provided files or constructed in memory.\n */\n loadAdditionalDocuments(_folders, _collector) {\n return Promise.resolve();\n }\n /**\n * Determine the root folder of the source documents in the given workspace folder.\n * The default implementation returns the URI of the workspace folder, but you can override\n * this to return a subfolder like `src` instead.\n */\n getRootFolder(workspaceFolder) {\n return URI.parse(workspaceFolder.uri);\n }\n /**\n * Traverse the file system folder identified by the given URI and its subfolders. All\n * contained files that match the file extensions are added to the collector.\n */\n async traverseFolder(workspaceFolder, folderPath, fileExtensions, collector) {\n const content = await this.fileSystemProvider.readDirectory(folderPath);\n await Promise.all(content.map(async (entry) => {\n if (this.includeEntry(workspaceFolder, entry, fileExtensions)) {\n if (entry.isDirectory) {\n await this.traverseFolder(workspaceFolder, entry.uri, fileExtensions, collector);\n }\n else if (entry.isFile) {\n const document = await this.langiumDocuments.getOrCreateDocument(entry.uri);\n collector(document);\n }\n }\n }));\n }\n /**\n * Determine whether the given folder entry shall be included while indexing the workspace.\n */\n includeEntry(_workspaceFolder, entry, fileExtensions) {\n const name = UriUtils.basename(entry.uri);\n if (name.startsWith('.')) {\n return false;\n }\n if (entry.isDirectory) {\n return name !== 'node_modules' && name !== 'out';\n }\n else if (entry.isFile) {\n const extname = UriUtils.extname(entry.uri);\n return fileExtensions.includes(extname);\n }\n return false;\n }\n}\n//# sourceMappingURL=workspace-manager.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Lexer as ChevrotainLexer, defaultLexerErrorProvider } from 'chevrotain';\nexport class DefaultLexerErrorMessageProvider {\n buildUnexpectedCharactersMessage(fullText, startOffset, length, line, column) {\n return defaultLexerErrorProvider.buildUnexpectedCharactersMessage(fullText, startOffset, length, line, column);\n }\n buildUnableToPopLexerModeMessage(token) {\n return defaultLexerErrorProvider.buildUnableToPopLexerModeMessage(token);\n }\n}\nexport const DEFAULT_TOKENIZE_OPTIONS = { mode: 'full' };\nexport class DefaultLexer {\n constructor(services) {\n this.errorMessageProvider = services.parser.LexerErrorMessageProvider;\n this.tokenBuilder = services.parser.TokenBuilder;\n const tokens = this.tokenBuilder.buildTokens(services.Grammar, {\n caseInsensitive: services.LanguageMetaData.caseInsensitive\n });\n this.tokenTypes = this.toTokenTypeDictionary(tokens);\n const lexerTokens = isTokenTypeDictionary(tokens) ? Object.values(tokens) : tokens;\n const production = services.LanguageMetaData.mode === 'production';\n this.chevrotainLexer = new ChevrotainLexer(lexerTokens, {\n positionTracking: 'full',\n skipValidations: production,\n errorMessageProvider: this.errorMessageProvider\n });\n }\n get definition() {\n return this.tokenTypes;\n }\n tokenize(text, _options = DEFAULT_TOKENIZE_OPTIONS) {\n var _a, _b, _c;\n const chevrotainResult = this.chevrotainLexer.tokenize(text);\n return {\n tokens: chevrotainResult.tokens,\n errors: chevrotainResult.errors,\n hidden: (_a = chevrotainResult.groups.hidden) !== null && _a !== void 0 ? _a : [],\n report: (_c = (_b = this.tokenBuilder).flushLexingReport) === null || _c === void 0 ? void 0 : _c.call(_b, text)\n };\n }\n toTokenTypeDictionary(buildTokens) {\n if (isTokenTypeDictionary(buildTokens))\n return buildTokens;\n const tokens = isIMultiModeLexerDefinition(buildTokens) ? Object.values(buildTokens.modes).flat() : buildTokens;\n const res = {};\n tokens.forEach(token => res[token.name] = token);\n return res;\n }\n}\n/**\n * Returns a check whether the given TokenVocabulary is TokenType array\n */\nexport function isTokenTypeArray(tokenVocabulary) {\n return Array.isArray(tokenVocabulary) && (tokenVocabulary.length === 0 || 'name' in tokenVocabulary[0]);\n}\n/**\n * Returns a check whether the given TokenVocabulary is IMultiModeLexerDefinition\n */\nexport function isIMultiModeLexerDefinition(tokenVocabulary) {\n return tokenVocabulary && 'modes' in tokenVocabulary && 'defaultMode' in tokenVocabulary;\n}\n/**\n * Returns a check whether the given TokenVocabulary is TokenTypeDictionary\n */\nexport function isTokenTypeDictionary(tokenVocabulary) {\n return !isTokenTypeArray(tokenVocabulary) && !isIMultiModeLexerDefinition(tokenVocabulary);\n}\n//# sourceMappingURL=lexer.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Position, Range } from 'vscode-languageserver-types';\nimport { NEWLINE_REGEXP, escapeRegExp } from '../utils/regexp-utils.js';\nimport { URI } from '../utils/uri-utils.js';\nexport function parseJSDoc(node, start, options) {\n let opts;\n let position;\n if (typeof node === 'string') {\n position = start;\n opts = options;\n }\n else {\n position = node.range.start;\n opts = start;\n }\n if (!position) {\n position = Position.create(0, 0);\n }\n const lines = getLines(node);\n const normalizedOptions = normalizeOptions(opts);\n const tokens = tokenize({\n lines,\n position,\n options: normalizedOptions\n });\n return parseJSDocComment({\n index: 0,\n tokens,\n position\n });\n}\nexport function isJSDoc(node, options) {\n const normalizedOptions = normalizeOptions(options);\n const lines = getLines(node);\n if (lines.length === 0) {\n return false;\n }\n const first = lines[0];\n const last = lines[lines.length - 1];\n const firstRegex = normalizedOptions.start;\n const lastRegex = normalizedOptions.end;\n return Boolean(firstRegex === null || firstRegex === void 0 ? void 0 : firstRegex.exec(first)) && Boolean(lastRegex === null || lastRegex === void 0 ? void 0 : lastRegex.exec(last));\n}\nfunction getLines(node) {\n let content = '';\n if (typeof node === 'string') {\n content = node;\n }\n else {\n content = node.text;\n }\n const lines = content.split(NEWLINE_REGEXP);\n return lines;\n}\nconst tagRegex = /\\s*(@([\\p{L}][\\p{L}\\p{N}]*)?)/uy;\nconst inlineTagRegex = /\\{(@[\\p{L}][\\p{L}\\p{N}]*)(\\s*)([^\\r\\n}]+)?\\}/gu;\nfunction tokenize(context) {\n var _a, _b, _c;\n const tokens = [];\n let currentLine = context.position.line;\n let currentCharacter = context.position.character;\n for (let i = 0; i < context.lines.length; i++) {\n const first = i === 0;\n const last = i === context.lines.length - 1;\n let line = context.lines[i];\n let index = 0;\n if (first && context.options.start) {\n const match = (_a = context.options.start) === null || _a === void 0 ? void 0 : _a.exec(line);\n if (match) {\n index = match.index + match[0].length;\n }\n }\n else {\n const match = (_b = context.options.line) === null || _b === void 0 ? void 0 : _b.exec(line);\n if (match) {\n index = match.index + match[0].length;\n }\n }\n if (last) {\n const match = (_c = context.options.end) === null || _c === void 0 ? void 0 : _c.exec(line);\n if (match) {\n line = line.substring(0, match.index);\n }\n }\n line = line.substring(0, lastCharacter(line));\n const whitespaceEnd = skipWhitespace(line, index);\n if (whitespaceEnd >= line.length) {\n // Only create a break token when we already have previous tokens\n if (tokens.length > 0) {\n const position = Position.create(currentLine, currentCharacter);\n tokens.push({\n type: 'break',\n content: '',\n range: Range.create(position, position)\n });\n }\n }\n else {\n tagRegex.lastIndex = index;\n const tagMatch = tagRegex.exec(line);\n if (tagMatch) {\n const fullMatch = tagMatch[0];\n const value = tagMatch[1];\n const start = Position.create(currentLine, currentCharacter + index);\n const end = Position.create(currentLine, currentCharacter + index + fullMatch.length);\n tokens.push({\n type: 'tag',\n content: value,\n range: Range.create(start, end)\n });\n index += fullMatch.length;\n index = skipWhitespace(line, index);\n }\n if (index < line.length) {\n const rest = line.substring(index);\n const inlineTagMatches = Array.from(rest.matchAll(inlineTagRegex));\n tokens.push(...buildInlineTokens(inlineTagMatches, rest, currentLine, currentCharacter + index));\n }\n }\n currentLine++;\n currentCharacter = 0;\n }\n // Remove last break token if there is one\n if (tokens.length > 0 && tokens[tokens.length - 1].type === 'break') {\n return tokens.slice(0, -1);\n }\n return tokens;\n}\nfunction buildInlineTokens(tags, line, lineIndex, characterIndex) {\n const tokens = [];\n if (tags.length === 0) {\n const start = Position.create(lineIndex, characterIndex);\n const end = Position.create(lineIndex, characterIndex + line.length);\n tokens.push({\n type: 'text',\n content: line,\n range: Range.create(start, end)\n });\n }\n else {\n let lastIndex = 0;\n for (const match of tags) {\n const matchIndex = match.index;\n const startContent = line.substring(lastIndex, matchIndex);\n if (startContent.length > 0) {\n tokens.push({\n type: 'text',\n content: line.substring(lastIndex, matchIndex),\n range: Range.create(Position.create(lineIndex, lastIndex + characterIndex), Position.create(lineIndex, matchIndex + characterIndex))\n });\n }\n let offset = startContent.length + 1;\n const tagName = match[1];\n tokens.push({\n type: 'inline-tag',\n content: tagName,\n range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + tagName.length + characterIndex))\n });\n offset += tagName.length;\n if (match.length === 4) {\n offset += match[2].length;\n const value = match[3];\n tokens.push({\n type: 'text',\n content: value,\n range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + value.length + characterIndex))\n });\n }\n else {\n tokens.push({\n type: 'text',\n content: '',\n range: Range.create(Position.create(lineIndex, lastIndex + offset + characterIndex), Position.create(lineIndex, lastIndex + offset + characterIndex))\n });\n }\n lastIndex = matchIndex + match[0].length;\n }\n const endContent = line.substring(lastIndex);\n if (endContent.length > 0) {\n tokens.push({\n type: 'text',\n content: endContent,\n range: Range.create(Position.create(lineIndex, lastIndex + characterIndex), Position.create(lineIndex, lastIndex + characterIndex + endContent.length))\n });\n }\n }\n return tokens;\n}\nconst nonWhitespaceRegex = /\\S/;\nconst whitespaceEndRegex = /\\s*$/;\nfunction skipWhitespace(line, index) {\n const match = line.substring(index).match(nonWhitespaceRegex);\n if (match) {\n return index + match.index;\n }\n else {\n return line.length;\n }\n}\nfunction lastCharacter(line) {\n const match = line.match(whitespaceEndRegex);\n if (match && typeof match.index === 'number') {\n return match.index;\n }\n return undefined;\n}\n// Parsing\nfunction parseJSDocComment(context) {\n var _a, _b, _c, _d;\n const startPosition = Position.create(context.position.line, context.position.character);\n if (context.tokens.length === 0) {\n return new JSDocCommentImpl([], Range.create(startPosition, startPosition));\n }\n const elements = [];\n while (context.index < context.tokens.length) {\n const element = parseJSDocElement(context, elements[elements.length - 1]);\n if (element) {\n elements.push(element);\n }\n }\n const start = (_b = (_a = elements[0]) === null || _a === void 0 ? void 0 : _a.range.start) !== null && _b !== void 0 ? _b : startPosition;\n const end = (_d = (_c = elements[elements.length - 1]) === null || _c === void 0 ? void 0 : _c.range.end) !== null && _d !== void 0 ? _d : startPosition;\n return new JSDocCommentImpl(elements, Range.create(start, end));\n}\nfunction parseJSDocElement(context, last) {\n const next = context.tokens[context.index];\n if (next.type === 'tag') {\n return parseJSDocTag(context, false);\n }\n else if (next.type === 'text' || next.type === 'inline-tag') {\n return parseJSDocText(context);\n }\n else {\n appendEmptyLine(next, last);\n context.index++;\n return undefined;\n }\n}\nfunction appendEmptyLine(token, element) {\n if (element) {\n const line = new JSDocLineImpl('', token.range);\n if ('inlines' in element) {\n element.inlines.push(line);\n }\n else {\n element.content.inlines.push(line);\n }\n }\n}\nfunction parseJSDocText(context) {\n let token = context.tokens[context.index];\n const firstToken = token;\n let lastToken = token;\n const lines = [];\n while (token && token.type !== 'break' && token.type !== 'tag') {\n lines.push(parseJSDocInline(context));\n lastToken = token;\n token = context.tokens[context.index];\n }\n return new JSDocTextImpl(lines, Range.create(firstToken.range.start, lastToken.range.end));\n}\nfunction parseJSDocInline(context) {\n const token = context.tokens[context.index];\n if (token.type === 'inline-tag') {\n return parseJSDocTag(context, true);\n }\n else {\n return parseJSDocLine(context);\n }\n}\nfunction parseJSDocTag(context, inline) {\n const tagToken = context.tokens[context.index++];\n const name = tagToken.content.substring(1);\n const nextToken = context.tokens[context.index];\n if ((nextToken === null || nextToken === void 0 ? void 0 : nextToken.type) === 'text') {\n if (inline) {\n const docLine = parseJSDocLine(context);\n return new JSDocTagImpl(name, new JSDocTextImpl([docLine], docLine.range), inline, Range.create(tagToken.range.start, docLine.range.end));\n }\n else {\n const textDoc = parseJSDocText(context);\n return new JSDocTagImpl(name, textDoc, inline, Range.create(tagToken.range.start, textDoc.range.end));\n }\n }\n else {\n const range = tagToken.range;\n return new JSDocTagImpl(name, new JSDocTextImpl([], range), inline, range);\n }\n}\nfunction parseJSDocLine(context) {\n const token = context.tokens[context.index++];\n return new JSDocLineImpl(token.content, token.range);\n}\nfunction normalizeOptions(options) {\n if (!options) {\n return normalizeOptions({\n start: '/**',\n end: '*/',\n line: '*'\n });\n }\n const { start, end, line } = options;\n return {\n start: normalizeOption(start, true),\n end: normalizeOption(end, false),\n line: normalizeOption(line, true)\n };\n}\nfunction normalizeOption(option, start) {\n if (typeof option === 'string' || typeof option === 'object') {\n const escaped = typeof option === 'string' ? escapeRegExp(option) : option.source;\n if (start) {\n return new RegExp(`^\\\\s*${escaped}`);\n }\n else {\n return new RegExp(`\\\\s*${escaped}\\\\s*$`);\n }\n }\n else {\n return option;\n }\n}\nclass JSDocCommentImpl {\n constructor(elements, range) {\n this.elements = elements;\n this.range = range;\n }\n getTag(name) {\n return this.getAllTags().find(e => e.name === name);\n }\n getTags(name) {\n return this.getAllTags().filter(e => e.name === name);\n }\n getAllTags() {\n return this.elements.filter((e) => 'name' in e);\n }\n toString() {\n let value = '';\n for (const element of this.elements) {\n if (value.length === 0) {\n value = element.toString();\n }\n else {\n const text = element.toString();\n value += fillNewlines(value) + text;\n }\n }\n return value.trim();\n }\n toMarkdown(options) {\n let value = '';\n for (const element of this.elements) {\n if (value.length === 0) {\n value = element.toMarkdown(options);\n }\n else {\n const text = element.toMarkdown(options);\n value += fillNewlines(value) + text;\n }\n }\n return value.trim();\n }\n}\nclass JSDocTagImpl {\n constructor(name, content, inline, range) {\n this.name = name;\n this.content = content;\n this.inline = inline;\n this.range = range;\n }\n toString() {\n let text = `@${this.name}`;\n const content = this.content.toString();\n if (this.content.inlines.length === 1) {\n text = `${text} ${content}`;\n }\n else if (this.content.inlines.length > 1) {\n text = `${text}\\n${content}`;\n }\n if (this.inline) {\n // Inline tags are surrounded by curly braces\n return `{${text}}`;\n }\n else {\n return text;\n }\n }\n toMarkdown(options) {\n var _a, _b;\n return (_b = (_a = options === null || options === void 0 ? void 0 : options.renderTag) === null || _a === void 0 ? void 0 : _a.call(options, this)) !== null && _b !== void 0 ? _b : this.toMarkdownDefault(options);\n }\n toMarkdownDefault(options) {\n const content = this.content.toMarkdown(options);\n if (this.inline) {\n const rendered = renderInlineTag(this.name, content, options !== null && options !== void 0 ? options : {});\n if (typeof rendered === 'string') {\n return rendered;\n }\n }\n let marker = '';\n if ((options === null || options === void 0 ? void 0 : options.tag) === 'italic' || (options === null || options === void 0 ? void 0 : options.tag) === undefined) {\n marker = '*';\n }\n else if ((options === null || options === void 0 ? void 0 : options.tag) === 'bold') {\n marker = '**';\n }\n else if ((options === null || options === void 0 ? void 0 : options.tag) === 'bold-italic') {\n marker = '***';\n }\n let text = `${marker}@${this.name}${marker}`;\n if (this.content.inlines.length === 1) {\n text = `${text} — ${content}`;\n }\n else if (this.content.inlines.length > 1) {\n text = `${text}\\n${content}`;\n }\n if (this.inline) {\n // Inline tags are surrounded by curly braces\n return `{${text}}`;\n }\n else {\n return text;\n }\n }\n}\nfunction renderInlineTag(tag, content, options) {\n var _a, _b;\n if (tag === 'linkplain' || tag === 'linkcode' || tag === 'link') {\n const index = content.indexOf(' ');\n let display = content;\n if (index > 0) {\n const displayStart = skipWhitespace(content, index);\n display = content.substring(displayStart);\n content = content.substring(0, index);\n }\n if (tag === 'linkcode' || (tag === 'link' && options.link === 'code')) {\n // Surround the display value in a markdown inline code block\n display = `\\`${display}\\``;\n }\n const renderedLink = (_b = (_a = options.renderLink) === null || _a === void 0 ? void 0 : _a.call(options, content, display)) !== null && _b !== void 0 ? _b : renderLinkDefault(content, display);\n return renderedLink;\n }\n return undefined;\n}\nfunction renderLinkDefault(content, display) {\n try {\n URI.parse(content, true);\n return `[${display}](${content})`;\n }\n catch (_a) {\n return content;\n }\n}\nclass JSDocTextImpl {\n constructor(lines, range) {\n this.inlines = lines;\n this.range = range;\n }\n toString() {\n let text = '';\n for (let i = 0; i < this.inlines.length; i++) {\n const inline = this.inlines[i];\n const next = this.inlines[i + 1];\n text += inline.toString();\n if (next && next.range.start.line > inline.range.start.line) {\n text += '\\n';\n }\n }\n return text;\n }\n toMarkdown(options) {\n let text = '';\n for (let i = 0; i < this.inlines.length; i++) {\n const inline = this.inlines[i];\n const next = this.inlines[i + 1];\n text += inline.toMarkdown(options);\n if (next && next.range.start.line > inline.range.start.line) {\n text += '\\n';\n }\n }\n return text;\n }\n}\nclass JSDocLineImpl {\n constructor(text, range) {\n this.text = text;\n this.range = range;\n }\n toString() {\n return this.text;\n }\n toMarkdown() {\n return this.text;\n }\n}\nfunction fillNewlines(text) {\n if (text.endsWith('\\n')) {\n return '\\n';\n }\n else {\n return '\\n\\n';\n }\n}\n//# sourceMappingURL=jsdoc.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { getDocument } from '../utils/ast-utils.js';\nimport { isJSDoc, parseJSDoc } from './jsdoc.js';\nexport class JSDocDocumentationProvider {\n constructor(services) {\n this.indexManager = services.shared.workspace.IndexManager;\n this.commentProvider = services.documentation.CommentProvider;\n }\n getDocumentation(node) {\n const comment = this.commentProvider.getComment(node);\n if (comment && isJSDoc(comment)) {\n const parsedJSDoc = parseJSDoc(comment);\n return parsedJSDoc.toMarkdown({\n renderLink: (link, display) => {\n return this.documentationLinkRenderer(node, link, display);\n },\n renderTag: (tag) => {\n return this.documentationTagRenderer(node, tag);\n }\n });\n }\n return undefined;\n }\n documentationLinkRenderer(node, name, display) {\n var _a;\n const description = (_a = this.findNameInPrecomputedScopes(node, name)) !== null && _a !== void 0 ? _a : this.findNameInGlobalScope(node, name);\n if (description && description.nameSegment) {\n const line = description.nameSegment.range.start.line + 1;\n const character = description.nameSegment.range.start.character + 1;\n const uri = description.documentUri.with({ fragment: `L${line},${character}` });\n return `[${display}](${uri.toString()})`;\n }\n else {\n return undefined;\n }\n }\n documentationTagRenderer(_node, _tag) {\n // Fall back to the default tag rendering\n return undefined;\n }\n findNameInPrecomputedScopes(node, name) {\n const document = getDocument(node);\n const precomputed = document.precomputedScopes;\n if (!precomputed) {\n return undefined;\n }\n let currentNode = node;\n do {\n const allDescriptions = precomputed.get(currentNode);\n const description = allDescriptions.find(e => e.name === name);\n if (description) {\n return description;\n }\n currentNode = currentNode.$container;\n } while (currentNode);\n return undefined;\n }\n findNameInGlobalScope(node, name) {\n const description = this.indexManager.allElements().find(e => e.name === name);\n return description;\n }\n}\n//# sourceMappingURL=documentation-provider.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { isAstNodeWithComment } from '../serializer/json-serializer.js';\nimport { findCommentNode } from '../utils/cst-utils.js';\nexport class DefaultCommentProvider {\n constructor(services) {\n this.grammarConfig = () => services.parser.GrammarConfig;\n }\n getComment(node) {\n var _a;\n if (isAstNodeWithComment(node)) {\n return node.$comment;\n }\n return (_a = findCommentNode(node.$cstNode, this.grammarConfig().multilineCommentRules)) === null || _a === void 0 ? void 0 : _a.text;\n }\n}\n//# sourceMappingURL=comment-provider.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { Deferred, OperationCancelled } from '../utils/promise-utils.js';\nimport { Emitter } from '../utils/event.js';\n/**\n * Default implementation of the async parser which simply wraps the sync parser in a promise.\n *\n * @remarks\n * A real implementation would create worker threads or web workers to offload the parsing work.\n */\nexport class DefaultAsyncParser {\n constructor(services) {\n this.syncParser = services.parser.LangiumParser;\n }\n parse(text, _cancelToken) {\n return Promise.resolve(this.syncParser.parse(text));\n }\n}\nexport class AbstractThreadedAsyncParser {\n constructor(services) {\n /**\n * The thread count determines how many threads are used to parse files in parallel.\n * The default value is 8. Decreasing this value increases startup performance, but decreases parallel parsing performance.\n */\n this.threadCount = 8;\n /**\n * The termination delay determines how long the parser waits for a thread to finish after a cancellation request.\n * The default value is 200(ms).\n */\n this.terminationDelay = 200;\n this.workerPool = [];\n this.queue = [];\n this.hydrator = services.serializer.Hydrator;\n }\n initializeWorkers() {\n while (this.workerPool.length < this.threadCount) {\n const worker = this.createWorker();\n worker.onReady(() => {\n if (this.queue.length > 0) {\n const deferred = this.queue.shift();\n if (deferred) {\n worker.lock();\n deferred.resolve(worker);\n }\n }\n });\n this.workerPool.push(worker);\n }\n }\n async parse(text, cancelToken) {\n const worker = await this.acquireParserWorker(cancelToken);\n const deferred = new Deferred();\n let timeout;\n // If the cancellation token is requested, we wait for a certain time before terminating the worker.\n // Since the cancellation token lives longer than the parsing process, we need to dispose the event listener.\n // Otherwise, we might accidentally terminate the worker after the parsing process has finished.\n const cancellation = cancelToken.onCancellationRequested(() => {\n timeout = setTimeout(() => {\n this.terminateWorker(worker);\n }, this.terminationDelay);\n });\n worker.parse(text).then(result => {\n const hydrated = this.hydrator.hydrate(result);\n deferred.resolve(hydrated);\n }).catch(err => {\n deferred.reject(err);\n }).finally(() => {\n cancellation.dispose();\n clearTimeout(timeout);\n });\n return deferred.promise;\n }\n terminateWorker(worker) {\n worker.terminate();\n const index = this.workerPool.indexOf(worker);\n if (index >= 0) {\n this.workerPool.splice(index, 1);\n }\n }\n async acquireParserWorker(cancelToken) {\n this.initializeWorkers();\n for (const worker of this.workerPool) {\n if (worker.ready) {\n worker.lock();\n return worker;\n }\n }\n const deferred = new Deferred();\n cancelToken.onCancellationRequested(() => {\n const index = this.queue.indexOf(deferred);\n if (index >= 0) {\n this.queue.splice(index, 1);\n }\n deferred.reject(OperationCancelled);\n });\n this.queue.push(deferred);\n return deferred.promise;\n }\n}\nexport class ParserWorker {\n get ready() {\n return this._ready;\n }\n get onReady() {\n return this.onReadyEmitter.event;\n }\n constructor(sendMessage, onMessage, onError, terminate) {\n this.onReadyEmitter = new Emitter();\n this.deferred = new Deferred();\n this._ready = true;\n this._parsing = false;\n this.sendMessage = sendMessage;\n this._terminate = terminate;\n onMessage(result => {\n const parseResult = result;\n this.deferred.resolve(parseResult);\n this.unlock();\n });\n onError(error => {\n this.deferred.reject(error);\n this.unlock();\n });\n }\n terminate() {\n this.deferred.reject(OperationCancelled);\n this._terminate();\n }\n lock() {\n this._ready = false;\n }\n unlock() {\n this._parsing = false;\n this._ready = true;\n this.onReadyEmitter.fire();\n }\n parse(text) {\n if (this._parsing) {\n throw new Error('Parser worker is busy');\n }\n this._parsing = true;\n this.deferred = new Deferred();\n this.sendMessage(text);\n return this.deferred.promise;\n }\n}\n//# sourceMappingURL=async-parser.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CancellationToken, CancellationTokenSource } from '../utils/cancellation.js';\nimport { Deferred, isOperationCancelled, startCancelableOperation } from '../utils/promise-utils.js';\nexport class DefaultWorkspaceLock {\n constructor() {\n this.previousTokenSource = new CancellationTokenSource();\n this.writeQueue = [];\n this.readQueue = [];\n this.done = true;\n }\n write(action) {\n this.cancelWrite();\n const tokenSource = startCancelableOperation();\n this.previousTokenSource = tokenSource;\n return this.enqueue(this.writeQueue, action, tokenSource.token);\n }\n read(action) {\n return this.enqueue(this.readQueue, action);\n }\n enqueue(queue, action, cancellationToken = CancellationToken.None) {\n const deferred = new Deferred();\n const entry = {\n action,\n deferred,\n cancellationToken\n };\n queue.push(entry);\n this.performNextOperation();\n return deferred.promise;\n }\n async performNextOperation() {\n if (!this.done) {\n return;\n }\n const entries = [];\n if (this.writeQueue.length > 0) {\n // Just perform the next write action\n entries.push(this.writeQueue.shift());\n }\n else if (this.readQueue.length > 0) {\n // Empty the read queue and perform all actions in parallel\n entries.push(...this.readQueue.splice(0, this.readQueue.length));\n }\n else {\n return;\n }\n this.done = false;\n await Promise.all(entries.map(async ({ action, deferred, cancellationToken }) => {\n try {\n // Move the execution of the action to the next event loop tick via `Promise.resolve()`\n const result = await Promise.resolve().then(() => action(cancellationToken));\n deferred.resolve(result);\n }\n catch (err) {\n if (isOperationCancelled(err)) {\n // If the operation was cancelled, we don't want to reject the promise\n deferred.resolve(undefined);\n }\n else {\n deferred.reject(err);\n }\n }\n }));\n this.done = true;\n this.performNextOperation();\n }\n cancelWrite() {\n this.previousTokenSource.cancel();\n }\n}\n//# sourceMappingURL=workspace-lock.js.map","/******************************************************************************\n * Copyright 2024 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { CompositeCstNodeImpl, LeafCstNodeImpl, RootCstNodeImpl } from '../parser/cst-node-builder.js';\nimport { isAbstractElement } from '../languages/generated/ast.js';\nimport { isRootCstNode, isCompositeCstNode, isLeafCstNode, isAstNode, isReference } from '../syntax-tree.js';\nimport { streamAst } from '../utils/ast-utils.js';\nimport { BiMap } from '../utils/collections.js';\nimport { streamCst } from '../utils/cst-utils.js';\nexport class DefaultHydrator {\n constructor(services) {\n this.grammarElementIdMap = new BiMap();\n this.tokenTypeIdMap = new BiMap();\n this.grammar = services.Grammar;\n this.lexer = services.parser.Lexer;\n this.linker = services.references.Linker;\n }\n dehydrate(result) {\n return {\n lexerErrors: result.lexerErrors,\n lexerReport: result.lexerReport ? this.dehydrateLexerReport(result.lexerReport) : undefined,\n // We need to create shallow copies of the errors\n // The original errors inherit from the `Error` class, which is not transferable across worker threads\n parserErrors: result.parserErrors.map(e => (Object.assign(Object.assign({}, e), { message: e.message }))),\n value: this.dehydrateAstNode(result.value, this.createDehyrationContext(result.value))\n };\n }\n dehydrateLexerReport(lexerReport) {\n // By default, lexer reports are serializable\n return lexerReport;\n }\n createDehyrationContext(node) {\n const astNodes = new Map();\n const cstNodes = new Map();\n for (const astNode of streamAst(node)) {\n astNodes.set(astNode, {});\n }\n if (node.$cstNode) {\n for (const cstNode of streamCst(node.$cstNode)) {\n cstNodes.set(cstNode, {});\n }\n }\n return {\n astNodes,\n cstNodes\n };\n }\n dehydrateAstNode(node, context) {\n const obj = context.astNodes.get(node);\n obj.$type = node.$type;\n obj.$containerIndex = node.$containerIndex;\n obj.$containerProperty = node.$containerProperty;\n if (node.$cstNode !== undefined) {\n obj.$cstNode = this.dehydrateCstNode(node.$cstNode, context);\n }\n for (const [name, value] of Object.entries(node)) {\n if (name.startsWith('$')) {\n continue;\n }\n if (Array.isArray(value)) {\n const arr = [];\n obj[name] = arr;\n for (const item of value) {\n if (isAstNode(item)) {\n arr.push(this.dehydrateAstNode(item, context));\n }\n else if (isReference(item)) {\n arr.push(this.dehydrateReference(item, context));\n }\n else {\n arr.push(item);\n }\n }\n }\n else if (isAstNode(value)) {\n obj[name] = this.dehydrateAstNode(value, context);\n }\n else if (isReference(value)) {\n obj[name] = this.dehydrateReference(value, context);\n }\n else if (value !== undefined) {\n obj[name] = value;\n }\n }\n return obj;\n }\n dehydrateReference(reference, context) {\n const obj = {};\n obj.$refText = reference.$refText;\n if (reference.$refNode) {\n obj.$refNode = context.cstNodes.get(reference.$refNode);\n }\n return obj;\n }\n dehydrateCstNode(node, context) {\n const cstNode = context.cstNodes.get(node);\n if (isRootCstNode(node)) {\n cstNode.fullText = node.fullText;\n }\n else {\n // Note: This returns undefined for hidden nodes (i.e. comments)\n cstNode.grammarSource = this.getGrammarElementId(node.grammarSource);\n }\n cstNode.hidden = node.hidden;\n cstNode.astNode = context.astNodes.get(node.astNode);\n if (isCompositeCstNode(node)) {\n cstNode.content = node.content.map(child => this.dehydrateCstNode(child, context));\n }\n else if (isLeafCstNode(node)) {\n cstNode.tokenType = node.tokenType.name;\n cstNode.offset = node.offset;\n cstNode.length = node.length;\n cstNode.startLine = node.range.start.line;\n cstNode.startColumn = node.range.start.character;\n cstNode.endLine = node.range.end.line;\n cstNode.endColumn = node.range.end.character;\n }\n return cstNode;\n }\n hydrate(result) {\n const node = result.value;\n const context = this.createHydrationContext(node);\n if ('$cstNode' in node) {\n this.hydrateCstNode(node.$cstNode, context);\n }\n return {\n lexerErrors: result.lexerErrors,\n lexerReport: result.lexerReport,\n parserErrors: result.parserErrors,\n value: this.hydrateAstNode(node, context)\n };\n }\n createHydrationContext(node) {\n const astNodes = new Map();\n const cstNodes = new Map();\n for (const astNode of streamAst(node)) {\n astNodes.set(astNode, {});\n }\n let root;\n if (node.$cstNode) {\n for (const cstNode of streamCst(node.$cstNode)) {\n let cst;\n if ('fullText' in cstNode) {\n cst = new RootCstNodeImpl(cstNode.fullText);\n root = cst;\n }\n else if ('content' in cstNode) {\n cst = new CompositeCstNodeImpl();\n }\n else if ('tokenType' in cstNode) {\n cst = this.hydrateCstLeafNode(cstNode);\n }\n if (cst) {\n cstNodes.set(cstNode, cst);\n cst.root = root;\n }\n }\n }\n return {\n astNodes,\n cstNodes\n };\n }\n hydrateAstNode(node, context) {\n const astNode = context.astNodes.get(node);\n astNode.$type = node.$type;\n astNode.$containerIndex = node.$containerIndex;\n astNode.$containerProperty = node.$containerProperty;\n if (node.$cstNode) {\n astNode.$cstNode = context.cstNodes.get(node.$cstNode);\n }\n for (const [name, value] of Object.entries(node)) {\n if (name.startsWith('$')) {\n continue;\n }\n if (Array.isArray(value)) {\n const arr = [];\n astNode[name] = arr;\n for (const item of value) {\n if (isAstNode(item)) {\n arr.push(this.setParent(this.hydrateAstNode(item, context), astNode));\n }\n else if (isReference(item)) {\n arr.push(this.hydrateReference(item, astNode, name, context));\n }\n else {\n arr.push(item);\n }\n }\n }\n else if (isAstNode(value)) {\n astNode[name] = this.setParent(this.hydrateAstNode(value, context), astNode);\n }\n else if (isReference(value)) {\n astNode[name] = this.hydrateReference(value, astNode, name, context);\n }\n else if (value !== undefined) {\n astNode[name] = value;\n }\n }\n return astNode;\n }\n setParent(node, parent) {\n node.$container = parent;\n return node;\n }\n hydrateReference(reference, node, name, context) {\n return this.linker.buildReference(node, name, context.cstNodes.get(reference.$refNode), reference.$refText);\n }\n hydrateCstNode(cstNode, context, num = 0) {\n const cstNodeObj = context.cstNodes.get(cstNode);\n if (typeof cstNode.grammarSource === 'number') {\n cstNodeObj.grammarSource = this.getGrammarElement(cstNode.grammarSource);\n }\n cstNodeObj.astNode = context.astNodes.get(cstNode.astNode);\n if (isCompositeCstNode(cstNodeObj)) {\n for (const child of cstNode.content) {\n const hydrated = this.hydrateCstNode(child, context, num++);\n cstNodeObj.content.push(hydrated);\n }\n }\n return cstNodeObj;\n }\n hydrateCstLeafNode(cstNode) {\n const tokenType = this.getTokenType(cstNode.tokenType);\n const offset = cstNode.offset;\n const length = cstNode.length;\n const startLine = cstNode.startLine;\n const startColumn = cstNode.startColumn;\n const endLine = cstNode.endLine;\n const endColumn = cstNode.endColumn;\n const hidden = cstNode.hidden;\n const node = new LeafCstNodeImpl(offset, length, {\n start: {\n line: startLine,\n character: startColumn\n },\n end: {\n line: endLine,\n character: endColumn\n }\n }, tokenType, hidden);\n return node;\n }\n getTokenType(name) {\n return this.lexer.definition[name];\n }\n getGrammarElementId(node) {\n if (!node) {\n return undefined;\n }\n if (this.grammarElementIdMap.size === 0) {\n this.createGrammarElementIdMap();\n }\n return this.grammarElementIdMap.get(node);\n }\n getGrammarElement(id) {\n if (this.grammarElementIdMap.size === 0) {\n this.createGrammarElementIdMap();\n }\n const element = this.grammarElementIdMap.getKey(id);\n return element;\n }\n createGrammarElementIdMap() {\n let id = 0;\n for (const element of streamAst(this.grammar)) {\n if (isAbstractElement(element)) {\n this.grammarElementIdMap.set(element, id++);\n }\n }\n }\n}\n//# sourceMappingURL=hydrator.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n******************************************************************************/\nimport { createGrammarConfig } from './languages/grammar-config.js';\nimport { createCompletionParser } from './parser/completion-parser-builder.js';\nimport { createLangiumParser } from './parser/langium-parser-builder.js';\nimport { DefaultTokenBuilder } from './parser/token-builder.js';\nimport { DefaultValueConverter } from './parser/value-converter.js';\nimport { DefaultLinker } from './references/linker.js';\nimport { DefaultNameProvider } from './references/name-provider.js';\nimport { DefaultReferences } from './references/references.js';\nimport { DefaultScopeComputation } from './references/scope-computation.js';\nimport { DefaultScopeProvider } from './references/scope-provider.js';\nimport { DefaultJsonSerializer } from './serializer/json-serializer.js';\nimport { DefaultServiceRegistry } from './service-registry.js';\nimport { DefaultDocumentValidator } from './validation/document-validator.js';\nimport { ValidationRegistry } from './validation/validation-registry.js';\nimport { DefaultAstNodeDescriptionProvider, DefaultReferenceDescriptionProvider } from './workspace/ast-descriptions.js';\nimport { DefaultAstNodeLocator } from './workspace/ast-node-locator.js';\nimport { DefaultConfigurationProvider } from './workspace/configuration.js';\nimport { DefaultDocumentBuilder } from './workspace/document-builder.js';\nimport { DefaultLangiumDocumentFactory, DefaultLangiumDocuments } from './workspace/documents.js';\nimport { DefaultIndexManager } from './workspace/index-manager.js';\nimport { DefaultWorkspaceManager } from './workspace/workspace-manager.js';\nimport { DefaultLexer, DefaultLexerErrorMessageProvider } from './parser/lexer.js';\nimport { JSDocDocumentationProvider } from './documentation/documentation-provider.js';\nimport { DefaultCommentProvider } from './documentation/comment-provider.js';\nimport { LangiumParserErrorMessageProvider } from './parser/langium-parser.js';\nimport { DefaultAsyncParser } from './parser/async-parser.js';\nimport { DefaultWorkspaceLock } from './workspace/workspace-lock.js';\nimport { DefaultHydrator } from './serializer/hydrator.js';\n/**\n * Creates a dependency injection module configuring the default core services.\n * This is a set of services that are dedicated to a specific language.\n */\nexport function createDefaultCoreModule(context) {\n return {\n documentation: {\n CommentProvider: (services) => new DefaultCommentProvider(services),\n DocumentationProvider: (services) => new JSDocDocumentationProvider(services)\n },\n parser: {\n AsyncParser: (services) => new DefaultAsyncParser(services),\n GrammarConfig: (services) => createGrammarConfig(services),\n LangiumParser: (services) => createLangiumParser(services),\n CompletionParser: (services) => createCompletionParser(services),\n ValueConverter: () => new DefaultValueConverter(),\n TokenBuilder: () => new DefaultTokenBuilder(),\n Lexer: (services) => new DefaultLexer(services),\n ParserErrorMessageProvider: () => new LangiumParserErrorMessageProvider(),\n LexerErrorMessageProvider: () => new DefaultLexerErrorMessageProvider()\n },\n workspace: {\n AstNodeLocator: () => new DefaultAstNodeLocator(),\n AstNodeDescriptionProvider: (services) => new DefaultAstNodeDescriptionProvider(services),\n ReferenceDescriptionProvider: (services) => new DefaultReferenceDescriptionProvider(services)\n },\n references: {\n Linker: (services) => new DefaultLinker(services),\n NameProvider: () => new DefaultNameProvider(),\n ScopeProvider: (services) => new DefaultScopeProvider(services),\n ScopeComputation: (services) => new DefaultScopeComputation(services),\n References: (services) => new DefaultReferences(services)\n },\n serializer: {\n Hydrator: (services) => new DefaultHydrator(services),\n JsonSerializer: (services) => new DefaultJsonSerializer(services)\n },\n validation: {\n DocumentValidator: (services) => new DefaultDocumentValidator(services),\n ValidationRegistry: (services) => new ValidationRegistry(services)\n },\n shared: () => context.shared\n };\n}\n/**\n * Creates a dependency injection module configuring the default shared core services.\n * This is the set of services that are shared between multiple languages.\n */\nexport function createDefaultSharedCoreModule(context) {\n return {\n ServiceRegistry: (services) => new DefaultServiceRegistry(services),\n workspace: {\n LangiumDocuments: (services) => new DefaultLangiumDocuments(services),\n LangiumDocumentFactory: (services) => new DefaultLangiumDocumentFactory(services),\n DocumentBuilder: (services) => new DefaultDocumentBuilder(services),\n IndexManager: (services) => new DefaultIndexManager(services),\n WorkspaceManager: (services) => new DefaultWorkspaceManager(services),\n FileSystemProvider: (services) => context.fileSystemProvider(services),\n WorkspaceLock: () => new DefaultWorkspaceLock(),\n ConfigurationProvider: (services) => new DefaultConfigurationProvider(services)\n }\n };\n}\n//# sourceMappingURL=default-module.js.map","/******************************************************************************\n * Copyright 2021 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport var Module;\n(function (Module) {\n Module.merge = (m1, m2) => _merge(_merge({}, m1), m2);\n})(Module || (Module = {}));\n/**\n * Given a set of modules, the inject function returns a lazily evaluated injector\n * that injects dependencies into the requested service when it is requested the\n * first time. Subsequent requests will return the same service.\n *\n * In the case of cyclic dependencies, an Error will be thrown. This can be fixed\n * by injecting a provider `() => T` instead of a `T`.\n *\n * Please note that the arguments may be objects or arrays. However, the result will\n * be an object. Using it with for..of will have no effect.\n *\n * @param module1 first Module\n * @param module2 (optional) second Module\n * @param module3 (optional) third Module\n * @param module4 (optional) fourth Module\n * @param module5 (optional) fifth Module\n * @param module6 (optional) sixth Module\n * @param module7 (optional) seventh Module\n * @param module8 (optional) eighth Module\n * @param module9 (optional) ninth Module\n * @returns a new object of type I\n */\nexport function inject(module1, module2, module3, module4, module5, module6, module7, module8, module9) {\n const module = [module1, module2, module3, module4, module5, module6, module7, module8, module9].reduce(_merge, {});\n return _inject(module);\n}\nconst isProxy = Symbol('isProxy');\n/**\n * Eagerly load all services in the given dependency injection container. This is sometimes\n * necessary because services can register event listeners in their constructors.\n */\nexport function eagerLoad(item) {\n if (item && item[isProxy]) {\n for (const value of Object.values(item)) {\n eagerLoad(value);\n }\n }\n return item;\n}\n/**\n * Helper function that returns an injector by creating a proxy.\n * Invariant: injector is of type I. If injector is undefined, then T = I.\n */\nfunction _inject(module, injector) {\n const proxy = new Proxy({}, {\n deleteProperty: () => false,\n set: () => {\n throw new Error('Cannot set property on injected service container');\n },\n get: (obj, prop) => {\n if (prop === isProxy) {\n return true;\n }\n else {\n return _resolve(obj, prop, module, injector || proxy);\n }\n },\n getOwnPropertyDescriptor: (obj, prop) => (_resolve(obj, prop, module, injector || proxy), Object.getOwnPropertyDescriptor(obj, prop)), // used by for..in\n has: (_, prop) => prop in module, // used by ..in..\n ownKeys: () => [...Object.getOwnPropertyNames(module)] // used by for..in\n });\n return proxy;\n}\n/**\n * Internally used to tag a requested dependency, directly before calling the factory.\n * This allows us to find cycles during instance creation.\n */\nconst __requested__ = Symbol();\n/**\n * Returns the value `obj[prop]`. If the value does not exist, yet, it is resolved from\n * the module description. The result of service factories is cached. Groups are\n * recursively proxied.\n *\n * @param obj an object holding all group proxies and services\n * @param prop the key of a value within obj\n * @param module an object containing groups and service factories\n * @param injector the first level proxy that provides access to all values\n * @returns the requested value `obj[prop]`\n * @throws Error if a dependency cycle is detected\n */\nfunction _resolve(obj, prop, module, injector) {\n if (prop in obj) {\n if (obj[prop] instanceof Error) {\n throw new Error('Construction failure. Please make sure that your dependencies are constructable.', { cause: obj[prop] });\n }\n if (obj[prop] === __requested__) {\n throw new Error('Cycle detected. Please make \"' + String(prop) + '\" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');\n }\n return obj[prop];\n }\n else if (prop in module) {\n const value = module[prop];\n obj[prop] = __requested__;\n try {\n obj[prop] = (typeof value === 'function') ? value(injector) : _inject(value, injector);\n }\n catch (error) {\n obj[prop] = error instanceof Error ? error : undefined;\n throw error;\n }\n return obj[prop];\n }\n else {\n return undefined;\n }\n}\n/**\n * Performs a deep-merge of two modules by writing source entries into the target module.\n *\n * @param target the module which is written\n * @param source the module which is read\n * @returns the target module\n */\nfunction _merge(target, source) {\n if (source) {\n for (const [key, value2] of Object.entries(source)) {\n if (value2 !== undefined) {\n const value1 = target[key];\n if (value1 !== null && value2 !== null && typeof value1 === 'object' && typeof value2 === 'object') {\n target[key] = _merge(value1, value2);\n }\n else {\n target[key] = value2;\n }\n }\n }\n }\n return target;\n}\n//# sourceMappingURL=dependency-injection.js.map","/******************************************************************************\n * Copyright 2022 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nexport class EmptyFileSystemProvider {\n readFile() {\n throw new Error('No file system is available.');\n }\n async readDirectory() {\n return [];\n }\n}\nexport const EmptyFileSystem = {\n fileSystemProvider: () => new EmptyFileSystemProvider()\n};\n//# sourceMappingURL=file-system-provider.js.map","/******************************************************************************\n * Copyright 2023 TypeFox GmbH\n * This program and the accompanying materials are made available under the\n * terms of the MIT License, which is available in the project root.\n ******************************************************************************/\nimport { createDefaultCoreModule, createDefaultSharedCoreModule } from '../default-module.js';\nimport { inject } from '../dependency-injection.js';\nimport * as ast from '../languages/generated/ast.js';\nimport { EmptyFileSystem } from '../workspace/file-system-provider.js';\nimport { URI } from './uri-utils.js';\nconst minimalGrammarModule = {\n Grammar: () => undefined,\n LanguageMetaData: () => ({\n caseInsensitive: false,\n fileExtensions: ['.langium'],\n languageId: 'langium'\n })\n};\nconst minimalSharedGrammarModule = {\n AstReflection: () => new ast.LangiumGrammarAstReflection()\n};\nfunction createMinimalGrammarServices() {\n const shared = inject(createDefaultSharedCoreModule(EmptyFileSystem), minimalSharedGrammarModule);\n const grammar = inject(createDefaultCoreModule({ shared }), minimalGrammarModule);\n shared.ServiceRegistry.register(grammar);\n return grammar;\n}\n/**\n * Load a Langium grammar for your language from a JSON string. This is used by several services,\n * most notably the parser builder which interprets the grammar to create a parser.\n */\nexport function loadGrammarFromJson(json) {\n var _a;\n const services = createMinimalGrammarServices();\n const astNode = services.serializer.JsonSerializer.deserialize(json);\n services.shared.workspace.LangiumDocumentFactory.fromModel(astNode, URI.parse(`memory://${(_a = astNode.name) !== null && _a !== void 0 ? _a : 'grammar'}.langium`));\n return astNode;\n}\n//# sourceMappingURL=grammar-loader.js.map","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/language/generated/ast.ts\nimport { AbstractAstReflection } from \"langium\";\nvar Statement = \"Statement\";\nvar Architecture = \"Architecture\";\nfunction isArchitecture(item) {\n return reflection.isInstance(item, Architecture);\n}\n__name(isArchitecture, \"isArchitecture\");\nvar Axis = \"Axis\";\nvar Branch = \"Branch\";\nfunction isBranch(item) {\n return reflection.isInstance(item, Branch);\n}\n__name(isBranch, \"isBranch\");\nvar Checkout = \"Checkout\";\nvar CherryPicking = \"CherryPicking\";\nvar ClassDefStatement = \"ClassDefStatement\";\nvar Commit = \"Commit\";\nfunction isCommit(item) {\n return reflection.isInstance(item, Commit);\n}\n__name(isCommit, \"isCommit\");\nvar Curve = \"Curve\";\nvar Edge = \"Edge\";\nvar Entry = \"Entry\";\nvar GitGraph = \"GitGraph\";\nfunction isGitGraph(item) {\n return reflection.isInstance(item, GitGraph);\n}\n__name(isGitGraph, \"isGitGraph\");\nvar Group = \"Group\";\nvar Info = \"Info\";\nfunction isInfo(item) {\n return reflection.isInstance(item, Info);\n}\n__name(isInfo, \"isInfo\");\nvar Item = \"Item\";\nvar Junction = \"Junction\";\nvar Merge = \"Merge\";\nfunction isMerge(item) {\n return reflection.isInstance(item, Merge);\n}\n__name(isMerge, \"isMerge\");\nvar Option = \"Option\";\nvar Packet = \"Packet\";\nfunction isPacket(item) {\n return reflection.isInstance(item, Packet);\n}\n__name(isPacket, \"isPacket\");\nvar PacketBlock = \"PacketBlock\";\nfunction isPacketBlock(item) {\n return reflection.isInstance(item, PacketBlock);\n}\n__name(isPacketBlock, \"isPacketBlock\");\nvar Pie = \"Pie\";\nfunction isPie(item) {\n return reflection.isInstance(item, Pie);\n}\n__name(isPie, \"isPie\");\nvar PieSection = \"PieSection\";\nfunction isPieSection(item) {\n return reflection.isInstance(item, PieSection);\n}\n__name(isPieSection, \"isPieSection\");\nvar Radar = \"Radar\";\nvar Service = \"Service\";\nvar Treemap = \"Treemap\";\nfunction isTreemap(item) {\n return reflection.isInstance(item, Treemap);\n}\n__name(isTreemap, \"isTreemap\");\nvar TreemapRow = \"TreemapRow\";\nvar Direction = \"Direction\";\nvar Leaf = \"Leaf\";\nvar Section = \"Section\";\nvar MermaidAstReflection = class extends AbstractAstReflection {\n static {\n __name(this, \"MermaidAstReflection\");\n }\n getAllTypes() {\n return [Architecture, Axis, Branch, Checkout, CherryPicking, ClassDefStatement, Commit, Curve, Direction, Edge, Entry, GitGraph, Group, Info, Item, Junction, Leaf, Merge, Option, Packet, PacketBlock, Pie, PieSection, Radar, Section, Service, Statement, Treemap, TreemapRow];\n }\n computeIsSubtype(subtype, supertype) {\n switch (subtype) {\n case Branch:\n case Checkout:\n case CherryPicking:\n case Commit:\n case Merge: {\n return this.isSubtype(Statement, supertype);\n }\n case Direction: {\n return this.isSubtype(GitGraph, supertype);\n }\n case Leaf:\n case Section: {\n return this.isSubtype(Item, supertype);\n }\n default: {\n return false;\n }\n }\n }\n getReferenceType(refInfo) {\n const referenceId = `${refInfo.container.$type}:${refInfo.property}`;\n switch (referenceId) {\n case \"Entry:axis\": {\n return Axis;\n }\n default: {\n throw new Error(`${referenceId} is not a valid reference id.`);\n }\n }\n }\n getTypeMetaData(type) {\n switch (type) {\n case Architecture: {\n return {\n name: Architecture,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"edges\", defaultValue: [] },\n { name: \"groups\", defaultValue: [] },\n { name: \"junctions\", defaultValue: [] },\n { name: \"services\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case Axis: {\n return {\n name: Axis,\n properties: [\n { name: \"label\" },\n { name: \"name\" }\n ]\n };\n }\n case Branch: {\n return {\n name: Branch,\n properties: [\n { name: \"name\" },\n { name: \"order\" }\n ]\n };\n }\n case Checkout: {\n return {\n name: Checkout,\n properties: [\n { name: \"branch\" }\n ]\n };\n }\n case CherryPicking: {\n return {\n name: CherryPicking,\n properties: [\n { name: \"id\" },\n { name: \"parent\" },\n { name: \"tags\", defaultValue: [] }\n ]\n };\n }\n case ClassDefStatement: {\n return {\n name: ClassDefStatement,\n properties: [\n { name: \"className\" },\n { name: \"styleText\" }\n ]\n };\n }\n case Commit: {\n return {\n name: Commit,\n properties: [\n { name: \"id\" },\n { name: \"message\" },\n { name: \"tags\", defaultValue: [] },\n { name: \"type\" }\n ]\n };\n }\n case Curve: {\n return {\n name: Curve,\n properties: [\n { name: \"entries\", defaultValue: [] },\n { name: \"label\" },\n { name: \"name\" }\n ]\n };\n }\n case Edge: {\n return {\n name: Edge,\n properties: [\n { name: \"lhsDir\" },\n { name: \"lhsGroup\", defaultValue: false },\n { name: \"lhsId\" },\n { name: \"lhsInto\", defaultValue: false },\n { name: \"rhsDir\" },\n { name: \"rhsGroup\", defaultValue: false },\n { name: \"rhsId\" },\n { name: \"rhsInto\", defaultValue: false },\n { name: \"title\" }\n ]\n };\n }\n case Entry: {\n return {\n name: Entry,\n properties: [\n { name: \"axis\" },\n { name: \"value\" }\n ]\n };\n }\n case GitGraph: {\n return {\n name: GitGraph,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"statements\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case Group: {\n return {\n name: Group,\n properties: [\n { name: \"icon\" },\n { name: \"id\" },\n { name: \"in\" },\n { name: \"title\" }\n ]\n };\n }\n case Info: {\n return {\n name: Info,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"title\" }\n ]\n };\n }\n case Item: {\n return {\n name: Item,\n properties: [\n { name: \"classSelector\" },\n { name: \"name\" }\n ]\n };\n }\n case Junction: {\n return {\n name: Junction,\n properties: [\n { name: \"id\" },\n { name: \"in\" }\n ]\n };\n }\n case Merge: {\n return {\n name: Merge,\n properties: [\n { name: \"branch\" },\n { name: \"id\" },\n { name: \"tags\", defaultValue: [] },\n { name: \"type\" }\n ]\n };\n }\n case Option: {\n return {\n name: Option,\n properties: [\n { name: \"name\" },\n { name: \"value\", defaultValue: false }\n ]\n };\n }\n case Packet: {\n return {\n name: Packet,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"blocks\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case PacketBlock: {\n return {\n name: PacketBlock,\n properties: [\n { name: \"bits\" },\n { name: \"end\" },\n { name: \"label\" },\n { name: \"start\" }\n ]\n };\n }\n case Pie: {\n return {\n name: Pie,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"sections\", defaultValue: [] },\n { name: \"showData\", defaultValue: false },\n { name: \"title\" }\n ]\n };\n }\n case PieSection: {\n return {\n name: PieSection,\n properties: [\n { name: \"label\" },\n { name: \"value\" }\n ]\n };\n }\n case Radar: {\n return {\n name: Radar,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"axes\", defaultValue: [] },\n { name: \"curves\", defaultValue: [] },\n { name: \"options\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case Service: {\n return {\n name: Service,\n properties: [\n { name: \"icon\" },\n { name: \"iconText\" },\n { name: \"id\" },\n { name: \"in\" },\n { name: \"title\" }\n ]\n };\n }\n case Treemap: {\n return {\n name: Treemap,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"title\" },\n { name: \"TreemapRows\", defaultValue: [] }\n ]\n };\n }\n case TreemapRow: {\n return {\n name: TreemapRow,\n properties: [\n { name: \"indent\" },\n { name: \"item\" }\n ]\n };\n }\n case Direction: {\n return {\n name: Direction,\n properties: [\n { name: \"accDescr\" },\n { name: \"accTitle\" },\n { name: \"dir\" },\n { name: \"statements\", defaultValue: [] },\n { name: \"title\" }\n ]\n };\n }\n case Leaf: {\n return {\n name: Leaf,\n properties: [\n { name: \"classSelector\" },\n { name: \"name\" },\n { name: \"value\" }\n ]\n };\n }\n case Section: {\n return {\n name: Section,\n properties: [\n { name: \"classSelector\" },\n { name: \"name\" }\n ]\n };\n }\n default: {\n return {\n name: type,\n properties: []\n };\n }\n }\n }\n};\nvar reflection = new MermaidAstReflection();\n\n// src/language/generated/grammar.ts\nimport { loadGrammarFromJson } from \"langium\";\nvar loadedInfoGrammar;\nvar InfoGrammar = /* @__PURE__ */ __name(() => loadedInfoGrammar ?? (loadedInfoGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Info\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Info\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"info\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"showInfo\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[],\"cardinality\":\"*\"}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[],\"cardinality\":\"?\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"interfaces\":[],\"types\":[],\"usedGrammars\":[]}`)), \"InfoGrammar\");\nvar loadedPacketGrammar;\nvar PacketGrammar = /* @__PURE__ */ __name(() => loadedPacketGrammar ?? (loadedPacketGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Packet\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Packet\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"packet\"},{\"$type\":\"Keyword\",\"value\":\"packet-beta\"}]},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"blocks\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"PacketBlock\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"start\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"-\"},{\"$type\":\"Assignment\",\"feature\":\"end\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}}],\"cardinality\":\"?\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"+\"},{\"$type\":\"Assignment\",\"feature\":\"bits\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}}]}]},{\"$type\":\"Keyword\",\"value\":\":\"},{\"$type\":\"Assignment\",\"feature\":\"label\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"interfaces\":[],\"types\":[],\"usedGrammars\":[]}`)), \"PacketGrammar\");\nvar loadedPieGrammar;\nvar PieGrammar = /* @__PURE__ */ __name(() => loadedPieGrammar ?? (loadedPieGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Pie\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Pie\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"pie\"},{\"$type\":\"Assignment\",\"feature\":\"showData\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"showData\"},\"cardinality\":\"?\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"sections\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"PieSection\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"label\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\":\"},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"interfaces\":[],\"types\":[],\"usedGrammars\":[]}`)), \"PieGrammar\");\nvar loadedArchitectureGrammar;\nvar ArchitectureGrammar = /* @__PURE__ */ __name(() => loadedArchitectureGrammar ?? (loadedArchitectureGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Architecture\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Architecture\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@23\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Keyword\",\"value\":\"architecture-beta\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@23\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"Statement\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"groups\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"services\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"junctions\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"edges\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"LeftPort\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\":\"},{\"$type\":\"Assignment\",\"feature\":\"lhsDir\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"RightPort\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"rhsDir\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\":\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"Arrow\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"lhsInto\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"--\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"-\"},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@29\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\"-\"}]}]},{\"$type\":\"Assignment\",\"feature\":\"rhsInto\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Group\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"group\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"icon\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@28\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@29\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Service\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"service\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"iconText\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@21\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"icon\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@28\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@29\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Junction\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"junction\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"in\"},{\"$type\":\"Assignment\",\"feature\":\"in\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Edge\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"lhsId\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"lhsGroup\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"rhsId\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"rhsGroup\",\"operator\":\"?=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARROW_DIRECTION\",\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"L\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"R\"}}]},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"T\"}}]},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"B\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARROW_GROUP\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\{group\\\\\\\\}/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARROW_INTO\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/<|>/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@23\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@16\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARCH_ICON\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\([\\\\\\\\w-:]+\\\\\\\\)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ARCH_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\[[\\\\\\\\w ]+\\\\\\\\]/\"},\"fragment\":false,\"hidden\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"interfaces\":[],\"types\":[],\"usedGrammars\":[]}`)), \"ArchitectureGrammar\");\nvar loadedGitGraphGrammar;\nvar GitGraphGrammar = /* @__PURE__ */ __name(() => loadedGitGraphGrammar ?? (loadedGitGraphGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"GitGraph\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"GitGraph\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"gitGraph\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"gitGraph\"},{\"$type\":\"Keyword\",\"value\":\":\"}]},{\"$type\":\"Keyword\",\"value\":\"gitGraph:\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"gitGraph\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]},{\"$type\":\"Keyword\",\"value\":\":\"}]}]},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"statements\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[]}}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Statement\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Direction\",\"definition\":{\"$type\":\"Assignment\",\"feature\":\"dir\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"LR\"},{\"$type\":\"Keyword\",\"value\":\"TB\"},{\"$type\":\"Keyword\",\"value\":\"BT\"}]}},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Commit\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"commit\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"id:\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"msg:\",\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"message\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"type:\"},{\"$type\":\"Assignment\",\"feature\":\"type\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"NORMAL\"},{\"$type\":\"Keyword\",\"value\":\"REVERSE\"},{\"$type\":\"Keyword\",\"value\":\"HIGHLIGHT\"}]}}]}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Branch\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"branch\"},{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@24\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"order:\"},{\"$type\":\"Assignment\",\"feature\":\"order\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"arguments\":[]}}],\"cardinality\":\"?\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Merge\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"merge\"},{\"$type\":\"Assignment\",\"feature\":\"branch\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@24\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}]}},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"id:\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"type:\"},{\"$type\":\"Assignment\",\"feature\":\"type\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"NORMAL\"},{\"$type\":\"Keyword\",\"value\":\"REVERSE\"},{\"$type\":\"Keyword\",\"value\":\"HIGHLIGHT\"}]}}]}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Checkout\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"checkout\"},{\"$type\":\"Keyword\",\"value\":\"switch\"}]},{\"$type\":\"Assignment\",\"feature\":\"branch\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@24\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"CherryPicking\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"cherry-pick\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"id:\"},{\"$type\":\"Assignment\",\"feature\":\"id\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"tag:\"},{\"$type\":\"Assignment\",\"feature\":\"tags\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"parent:\"},{\"$type\":\"Assignment\",\"feature\":\"parent\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"name\":\"REFERENCE\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\w([-\\\\\\\\./\\\\\\\\w]*[-\\\\\\\\w])?/\"},\"fragment\":false,\"hidden\":false}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"interfaces\":[],\"types\":[],\"usedGrammars\":[]}`)), \"GitGraphGrammar\");\nvar loadedRadarGrammar;\nvar RadarGrammar = /* @__PURE__ */ __name(() => loadedRadarGrammar ?? (loadedRadarGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Radar\",\"imports\":[],\"rules\":[{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Radar\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"radar-beta\"},{\"$type\":\"Keyword\",\"value\":\"radar-beta:\"},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"radar-beta\"},{\"$type\":\"Keyword\",\"value\":\":\"}]}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"axis\"},{\"$type\":\"Assignment\",\"feature\":\"axes\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\",\"},{\"$type\":\"Assignment\",\"feature\":\"axes\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}}],\"cardinality\":\"*\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"curve\"},{\"$type\":\"Assignment\",\"feature\":\"curves\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\",\"},{\"$type\":\"Assignment\",\"feature\":\"curves\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}}],\"cardinality\":\"*\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"options\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\",\"},{\"$type\":\"Assignment\",\"feature\":\"options\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]}}],\"cardinality\":\"*\"}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"Label\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\"[\"},{\"$type\":\"Assignment\",\"feature\":\"label\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[]}},{\"$type\":\"Keyword\",\"value\":\"]\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Axis\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[],\"cardinality\":\"?\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Curve\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@1\"},\"arguments\":[],\"cardinality\":\"?\"},{\"$type\":\"Keyword\",\"value\":\"{\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]},{\"$type\":\"Keyword\",\"value\":\"}\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"Entries\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Assignment\",\"feature\":\"entries\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\",\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Assignment\",\"feature\":\"entries\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]}}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Assignment\",\"feature\":\"entries\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Keyword\",\"value\":\",\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"},{\"$type\":\"Assignment\",\"feature\":\"entries\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@5\"},\"arguments\":[]}}],\"cardinality\":\"*\"},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"*\"}]}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"DetailedEntry\",\"returnType\":{\"$ref\":\"#/interfaces@0\"},\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"axis\",\"operator\":\"=\",\"terminal\":{\"$type\":\"CrossReference\",\"type\":{\"$ref\":\"#/rules@2\"},\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]},\"deprecatedSyntax\":false}},{\"$type\":\"Keyword\",\"value\":\":\",\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"NumberEntry\",\"returnType\":{\"$ref\":\"#/interfaces@0\"},\"definition\":{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Option\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"showLegend\"}},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@11\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"ticks\"}},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"max\"}},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"min\"}},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}}]},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"Keyword\",\"value\":\"graticule\"}},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]}}]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"GRATICULE\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"circle\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"polygon\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"EOL\",\"dataType\":\"string\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[],\"cardinality\":\"+\"},{\"$type\":\"EndOfFile\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@12\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@13\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"},\"arguments\":[]}}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"FLOAT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9]+\\\\\\\\.[0-9]+(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"INT\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/0|[1-9][0-9]*(?!\\\\\\\\.)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"number\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"}},{\"$type\":\"TerminalRuleCall\",\"rule\":{\"$ref\":\"#/rules@16\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"([^\\\\\"\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*\\\\\"|'([^'\\\\\\\\\\\\\\\\]|\\\\\\\\\\\\\\\\.)*'/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"string\"},\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\w]([-\\\\\\\\w]*\\\\\\\\w)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NEWLINE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WHITESPACE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"YAML\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/---[\\\\\\\\t ]*\\\\\\\\r?\\\\\\\\n(?:[\\\\\\\\S\\\\\\\\s]*?\\\\\\\\r?\\\\\\\\n)?---(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"DIRECTIVE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%{[\\\\\\\\S\\\\\\\\s]*?}%%(?:\\\\\\\\r?\\\\\\\\n|(?!\\\\\\\\S))/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"SINGLE_LINE_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*%%[^\\\\\\\\n\\\\\\\\r]*/\"},\"fragment\":false}],\"interfaces\":[{\"$type\":\"Interface\",\"name\":\"Entry\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"axis\",\"isOptional\":true,\"type\":{\"$type\":\"ReferenceType\",\"referenceType\":{\"$type\":\"SimpleType\",\"typeRef\":{\"$ref\":\"#/rules@2\"}}}},{\"$type\":\"TypeAttribute\",\"name\":\"value\",\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"number\"},\"isOptional\":false}],\"superTypes\":[]}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"types\":[],\"usedGrammars\":[]}`)), \"RadarGrammar\");\nvar loadedTreemapGrammar;\nvar TreemapGrammar = /* @__PURE__ */ __name(() => loadedTreemapGrammar ?? (loadedTreemapGrammar = loadGrammarFromJson(`{\"$type\":\"Grammar\",\"isDeclared\":true,\"name\":\"Treemap\",\"rules\":[{\"$type\":\"ParserRule\",\"fragment\":true,\"name\":\"TitleAndAccessibilities\",\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"accDescr\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@2\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"accTitle\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@3\"},\"arguments\":[]}},{\"$type\":\"Assignment\",\"feature\":\"title\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@4\"},\"arguments\":[]}}],\"cardinality\":\"+\"},\"definesHiddenTokens\":false,\"entry\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"BOOLEAN\",\"type\":{\"$type\":\"ReturnType\",\"name\":\"boolean\"},\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"true\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"false\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_DESCR\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accDescr(?:[\\\\\\\\t ]*:([^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)|\\\\\\\\s*{([^}]*)})/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ACC_TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*accTitle[\\\\\\\\t ]*:(?:[^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[^\\\\\\\\n\\\\\\\\r]*)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"TITLE\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[\\\\\\\\t ]*title(?:[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*?(?=%%)|[\\\\\\\\t ][^\\\\\\\\n\\\\\\\\r]*|)/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"entry\":true,\"name\":\"Treemap\",\"returnType\":{\"$ref\":\"#/interfaces@4\"},\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@6\"},\"arguments\":[]},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@0\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"TreemapRows\",\"operator\":\"+=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@14\"},\"arguments\":[]}}],\"cardinality\":\"*\"}]},\"definesHiddenTokens\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"TREEMAP_KEYWORD\",\"definition\":{\"$type\":\"TerminalAlternatives\",\"elements\":[{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"treemap-beta\"}},{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\"treemap\"}}]},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"CLASS_DEF\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/classDef\\\\\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\\\\\s+([^;\\\\\\\\r\\\\\\\\n]*))?(?:;)?/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"STYLE_SEPARATOR\",\"definition\":{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\":::\"}},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"SEPARATOR\",\"definition\":{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\":\"}},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"COMMA\",\"definition\":{\"$type\":\"CharacterRange\",\"left\":{\"$type\":\"Keyword\",\"value\":\",\"}},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"WS\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[ \\\\\\\\t]+/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"ML_COMMENT\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\%\\\\\\\\%[^\\\\\\\\n]*/\"},\"fragment\":false},{\"$type\":\"TerminalRule\",\"hidden\":true,\"name\":\"NL\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\\\\r?\\\\\\\\n/\"},\"fragment\":false},{\"$type\":\"ParserRule\",\"name\":\"TreemapRow\",\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"indent\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[]},\"cardinality\":\"?\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"item\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@16\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@15\"},\"arguments\":[]}]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"ClassDef\",\"dataType\":\"string\",\"definition\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@7\"},\"arguments\":[]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Item\",\"returnType\":{\"$ref\":\"#/interfaces@0\"},\"definition\":{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@18\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@17\"},\"arguments\":[]}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Section\",\"returnType\":{\"$ref\":\"#/interfaces@1\"},\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@23\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"classSelector\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}],\"cardinality\":\"?\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"ParserRule\",\"name\":\"Leaf\",\"returnType\":{\"$ref\":\"#/interfaces@2\"},\"definition\":{\"$type\":\"Group\",\"elements\":[{\"$type\":\"Assignment\",\"feature\":\"name\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@23\"},\"arguments\":[]}},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[],\"cardinality\":\"?\"},{\"$type\":\"Alternatives\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@9\"},\"arguments\":[]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@10\"},\"arguments\":[]}]},{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@19\"},\"arguments\":[],\"cardinality\":\"?\"},{\"$type\":\"Assignment\",\"feature\":\"value\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@22\"},\"arguments\":[]}},{\"$type\":\"Group\",\"elements\":[{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@8\"},\"arguments\":[]},{\"$type\":\"Assignment\",\"feature\":\"classSelector\",\"operator\":\"=\",\"terminal\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@20\"},\"arguments\":[]}}],\"cardinality\":\"?\"}]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"INDENTATION\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[ \\\\\\\\t]{1,}/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"ID2\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[a-zA-Z_][a-zA-Z0-9_]*/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"TerminalRule\",\"name\":\"NUMBER2\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/[0-9_\\\\\\\\.\\\\\\\\,]+/\"},\"fragment\":false,\"hidden\":false},{\"$type\":\"ParserRule\",\"name\":\"MyNumber\",\"dataType\":\"number\",\"definition\":{\"$type\":\"RuleCall\",\"rule\":{\"$ref\":\"#/rules@21\"},\"arguments\":[]},\"definesHiddenTokens\":false,\"entry\":false,\"fragment\":false,\"hiddenTokens\":[],\"parameters\":[],\"wildcard\":false},{\"$type\":\"TerminalRule\",\"name\":\"STRING2\",\"definition\":{\"$type\":\"RegexToken\",\"regex\":\"/\\\\\"[^\\\\\"]*\\\\\"|'[^']*'/\"},\"fragment\":false,\"hidden\":false}],\"interfaces\":[{\"$type\":\"Interface\",\"name\":\"Item\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"name\",\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"},\"isOptional\":false},{\"$type\":\"TypeAttribute\",\"name\":\"classSelector\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]},{\"$type\":\"Interface\",\"name\":\"Section\",\"superTypes\":[{\"$ref\":\"#/interfaces@0\"}],\"attributes\":[]},{\"$type\":\"Interface\",\"name\":\"Leaf\",\"superTypes\":[{\"$ref\":\"#/interfaces@0\"}],\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"value\",\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"number\"},\"isOptional\":false}]},{\"$type\":\"Interface\",\"name\":\"ClassDefStatement\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"className\",\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"},\"isOptional\":false},{\"$type\":\"TypeAttribute\",\"name\":\"styleText\",\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"},\"isOptional\":false}],\"superTypes\":[]},{\"$type\":\"Interface\",\"name\":\"Treemap\",\"attributes\":[{\"$type\":\"TypeAttribute\",\"name\":\"TreemapRows\",\"type\":{\"$type\":\"ArrayType\",\"elementType\":{\"$type\":\"SimpleType\",\"typeRef\":{\"$ref\":\"#/rules@14\"}}},\"isOptional\":false},{\"$type\":\"TypeAttribute\",\"name\":\"title\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accTitle\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}},{\"$type\":\"TypeAttribute\",\"name\":\"accDescr\",\"isOptional\":true,\"type\":{\"$type\":\"SimpleType\",\"primitiveType\":\"string\"}}],\"superTypes\":[]}],\"definesHiddenTokens\":false,\"hiddenTokens\":[],\"imports\":[],\"types\":[],\"usedGrammars\":[],\"$comment\":\"/**\\\\n * Treemap grammar for Langium\\\\n * Converted from mindmap grammar\\\\n *\\\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\\\n * before the treemap keyword, allowing for empty lines and comments before the\\\\n * treemap declaration.\\\\n */\"}`)), \"TreemapGrammar\");\n\n// src/language/generated/module.ts\nvar InfoLanguageMetaData = {\n languageId: \"info\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar PacketLanguageMetaData = {\n languageId: \"packet\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar PieLanguageMetaData = {\n languageId: \"pie\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar ArchitectureLanguageMetaData = {\n languageId: \"architecture\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar GitGraphLanguageMetaData = {\n languageId: \"gitGraph\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar RadarLanguageMetaData = {\n languageId: \"radar\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar TreemapLanguageMetaData = {\n languageId: \"treemap\",\n fileExtensions: [\".mmd\", \".mermaid\"],\n caseInsensitive: false,\n mode: \"production\"\n};\nvar MermaidGeneratedSharedModule = {\n AstReflection: /* @__PURE__ */ __name(() => new MermaidAstReflection(), \"AstReflection\")\n};\nvar InfoGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => InfoGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => InfoLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar PacketGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => PacketGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => PacketLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar PieGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => PieGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => PieLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar ArchitectureGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => ArchitectureGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => ArchitectureLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar GitGraphGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => GitGraphGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => GitGraphLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar RadarGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => RadarGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => RadarLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\nvar TreemapGeneratedModule = {\n Grammar: /* @__PURE__ */ __name(() => TreemapGrammar(), \"Grammar\"),\n LanguageMetaData: /* @__PURE__ */ __name(() => TreemapLanguageMetaData, \"LanguageMetaData\"),\n parser: {}\n};\n\n// src/language/common/valueConverter.ts\nimport { DefaultValueConverter } from \"langium\";\n\n// src/language/common/matcher.ts\nvar accessibilityDescrRegex = /accDescr(?:[\\t ]*:([^\\n\\r]*)|\\s*{([^}]*)})/;\nvar accessibilityTitleRegex = /accTitle[\\t ]*:([^\\n\\r]*)/;\nvar titleRegex = /title([\\t ][^\\n\\r]*|)/;\n\n// src/language/common/valueConverter.ts\nvar rulesRegexes = {\n ACC_DESCR: accessibilityDescrRegex,\n ACC_TITLE: accessibilityTitleRegex,\n TITLE: titleRegex\n};\nvar AbstractMermaidValueConverter = class extends DefaultValueConverter {\n static {\n __name(this, \"AbstractMermaidValueConverter\");\n }\n runConverter(rule, input, cstNode) {\n let value = this.runCommonConverter(rule, input, cstNode);\n if (value === void 0) {\n value = this.runCustomConverter(rule, input, cstNode);\n }\n if (value === void 0) {\n return super.runConverter(rule, input, cstNode);\n }\n return value;\n }\n runCommonConverter(rule, input, _cstNode) {\n const regex = rulesRegexes[rule.name];\n if (regex === void 0) {\n return void 0;\n }\n const match = regex.exec(input);\n if (match === null) {\n return void 0;\n }\n if (match[1] !== void 0) {\n return match[1].trim().replace(/[\\t ]{2,}/gm, \" \");\n }\n if (match[2] !== void 0) {\n return match[2].replace(/^\\s*/gm, \"\").replace(/\\s+$/gm, \"\").replace(/[\\t ]{2,}/gm, \" \").replace(/[\\n\\r]{2,}/gm, \"\\n\");\n }\n return void 0;\n }\n};\nvar CommonValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"CommonValueConverter\");\n }\n runCustomConverter(_rule, _input, _cstNode) {\n return void 0;\n }\n};\n\n// src/language/common/tokenBuilder.ts\nimport { DefaultTokenBuilder } from \"langium\";\nvar AbstractMermaidTokenBuilder = class extends DefaultTokenBuilder {\n static {\n __name(this, \"AbstractMermaidTokenBuilder\");\n }\n constructor(keywords) {\n super();\n this.keywords = new Set(keywords);\n }\n buildKeywordTokens(rules, terminalTokens, options) {\n const tokenTypes = super.buildKeywordTokens(rules, terminalTokens, options);\n tokenTypes.forEach((tokenType) => {\n if (this.keywords.has(tokenType.name) && tokenType.PATTERN !== void 0) {\n tokenType.PATTERN = new RegExp(tokenType.PATTERN.toString() + \"(?:(?=%%)|(?!\\\\S))\");\n }\n });\n return tokenTypes;\n }\n};\nvar CommonTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"CommonTokenBuilder\");\n }\n};\n\nexport {\n __name,\n Statement,\n Architecture,\n isArchitecture,\n Branch,\n isBranch,\n Commit,\n isCommit,\n GitGraph,\n isGitGraph,\n Info,\n isInfo,\n Merge,\n isMerge,\n Packet,\n isPacket,\n PacketBlock,\n isPacketBlock,\n Pie,\n isPie,\n PieSection,\n isPieSection,\n Radar,\n Treemap,\n isTreemap,\n MermaidGeneratedSharedModule,\n InfoGeneratedModule,\n PacketGeneratedModule,\n PieGeneratedModule,\n ArchitectureGeneratedModule,\n GitGraphGeneratedModule,\n RadarGeneratedModule,\n TreemapGeneratedModule,\n AbstractMermaidValueConverter,\n CommonValueConverter,\n AbstractMermaidTokenBuilder,\n CommonTokenBuilder\n};\n","import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n GitGraphGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/gitGraph/module.ts\nimport {\n inject,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n EmptyFileSystem\n} from \"langium\";\n\n// src/language/gitGraph/tokenBuilder.ts\nvar GitGraphTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"GitGraphTokenBuilder\");\n }\n constructor() {\n super([\"gitGraph\"]);\n }\n};\n\n// src/language/gitGraph/module.ts\nvar GitGraphModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new GitGraphTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createGitGraphServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const GitGraph = inject(\n createDefaultCoreModule({ shared }),\n GitGraphGeneratedModule,\n GitGraphModule\n );\n shared.ServiceRegistry.register(GitGraph);\n return { shared, GitGraph };\n}\n__name(createGitGraphServices, \"createGitGraphServices\");\n\nexport {\n GitGraphModule,\n createGitGraphServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n InfoGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/info/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/info/tokenBuilder.ts\nvar InfoTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"InfoTokenBuilder\");\n }\n constructor() {\n super([\"info\", \"showInfo\"]);\n }\n};\n\n// src/language/info/module.ts\nvar InfoModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new InfoTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createInfoServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Info = inject(\n createDefaultCoreModule({ shared }),\n InfoGeneratedModule,\n InfoModule\n );\n shared.ServiceRegistry.register(Info);\n return { shared, Info };\n}\n__name(createInfoServices, \"createInfoServices\");\n\nexport {\n InfoModule,\n createInfoServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n MermaidGeneratedSharedModule,\n PieGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/pie/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/pie/tokenBuilder.ts\nvar PieTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PieTokenBuilder\");\n }\n constructor() {\n super([\"pie\", \"showData\"]);\n }\n};\n\n// src/language/pie/valueConverter.ts\nvar PieValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"PieValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name !== \"PIE_SECTION_LABEL\") {\n return void 0;\n }\n return input.replace(/\"/g, \"\").trim();\n }\n};\n\n// src/language/pie/module.ts\nvar PieModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PieTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new PieValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPieServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Pie = inject(\n createDefaultCoreModule({ shared }),\n PieGeneratedModule,\n PieModule\n );\n shared.ServiceRegistry.register(Pie);\n return { shared, Pie };\n}\n__name(createPieServices, \"createPieServices\");\n\nexport {\n PieModule,\n createPieServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n ArchitectureGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/architecture/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/architecture/tokenBuilder.ts\nvar ArchitectureTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"ArchitectureTokenBuilder\");\n }\n constructor() {\n super([\"architecture\"]);\n }\n};\n\n// src/language/architecture/valueConverter.ts\nvar ArchitectureValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"ArchitectureValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"ARCH_ICON\") {\n return input.replace(/[()]/g, \"\").trim();\n } else if (rule.name === \"ARCH_TEXT_ICON\") {\n return input.replace(/[\"()]/g, \"\");\n } else if (rule.name === \"ARCH_TITLE\") {\n return input.replace(/[[\\]]/g, \"\").trim();\n }\n return void 0;\n }\n};\n\n// src/language/architecture/module.ts\nvar ArchitectureModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new ArchitectureTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new ArchitectureValueConverter(), \"ValueConverter\")\n }\n};\nfunction createArchitectureServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Architecture = inject(\n createDefaultCoreModule({ shared }),\n ArchitectureGeneratedModule,\n ArchitectureModule\n );\n shared.ServiceRegistry.register(Architecture);\n return { shared, Architecture };\n}\n__name(createArchitectureServices, \"createArchitectureServices\");\n\nexport {\n ArchitectureModule,\n createArchitectureServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n RadarGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/radar/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/radar/tokenBuilder.ts\nvar RadarTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"RadarTokenBuilder\");\n }\n constructor() {\n super([\"radar-beta\"]);\n }\n};\n\n// src/language/radar/module.ts\nvar RadarModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new RadarTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createRadarServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Radar = inject(\n createDefaultCoreModule({ shared }),\n RadarGeneratedModule,\n RadarModule\n );\n shared.ServiceRegistry.register(Radar);\n return { shared, Radar };\n}\n__name(createRadarServices, \"createRadarServices\");\n\nexport {\n RadarModule,\n createRadarServices\n};\n","import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n MermaidGeneratedSharedModule,\n TreemapGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/treemap/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/treemap/tokenBuilder.ts\nvar TreemapTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"TreemapTokenBuilder\");\n }\n constructor() {\n super([\"treemap\"]);\n }\n};\n\n// src/language/treemap/valueConverter.ts\nvar classDefRegex = /classDef\\s+([A-Z_a-z]\\w+)(?:\\s+([^\\n\\r;]*))?;?/;\nvar TreemapValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"TreemapValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"NUMBER2\") {\n return parseFloat(input.replace(/,/g, \"\"));\n } else if (rule.name === \"SEPARATOR\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"STRING2\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"INDENTATION\") {\n return input.length;\n } else if (rule.name === \"ClassDef\") {\n if (typeof input !== \"string\") {\n return input;\n }\n const match = classDefRegex.exec(input);\n if (match) {\n return {\n $type: \"ClassDefStatement\",\n className: match[1],\n styleText: match[2] || void 0\n };\n }\n }\n return void 0;\n }\n};\n\n// src/language/treemap/treemap-validator.ts\nfunction registerValidationChecks(services) {\n const validator = services.validation.TreemapValidator;\n const registry = services.validation.ValidationRegistry;\n if (registry) {\n const checks = {\n Treemap: validator.checkSingleRoot.bind(validator)\n // Remove unused validation for TreemapRow\n };\n registry.register(checks, validator);\n }\n}\n__name(registerValidationChecks, \"registerValidationChecks\");\nvar TreemapValidator = class {\n static {\n __name(this, \"TreemapValidator\");\n }\n /**\n * Validates that a treemap has only one root node.\n * A root node is defined as a node that has no indentation.\n */\n checkSingleRoot(doc, accept) {\n let rootNodeIndentation;\n for (const row of doc.TreemapRows) {\n if (!row.item) {\n continue;\n }\n if (rootNodeIndentation === void 0 && // Check if this is a root node (no indentation)\n row.indent === void 0) {\n rootNodeIndentation = 0;\n } else if (row.indent === void 0) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n } else if (rootNodeIndentation !== void 0 && rootNodeIndentation >= parseInt(row.indent, 10)) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n }\n }\n }\n};\n\n// src/language/treemap/module.ts\nvar TreemapModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new TreemapTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new TreemapValueConverter(), \"ValueConverter\")\n },\n validation: {\n TreemapValidator: /* @__PURE__ */ __name(() => new TreemapValidator(), \"TreemapValidator\")\n }\n};\nfunction createTreemapServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Treemap = inject(\n createDefaultCoreModule({ shared }),\n TreemapGeneratedModule,\n TreemapModule\n );\n shared.ServiceRegistry.register(Treemap);\n registerValidationChecks(Treemap);\n return { shared, Treemap };\n}\n__name(createTreemapServices, \"createTreemapServices\");\n\nexport {\n TreemapModule,\n createTreemapServices\n};\n","import {\n GitGraphModule,\n createGitGraphServices\n} from \"./chunks/mermaid-parser.core/chunk-BN7GFLIU.mjs\";\nimport {\n InfoModule,\n createInfoServices\n} from \"./chunks/mermaid-parser.core/chunk-T44TD3VJ.mjs\";\nimport {\n PacketModule,\n createPacketServices\n} from \"./chunks/mermaid-parser.core/chunk-KMC2YHZD.mjs\";\nimport {\n PieModule,\n createPieServices\n} from \"./chunks/mermaid-parser.core/chunk-WFWHJNB7.mjs\";\nimport {\n ArchitectureModule,\n createArchitectureServices\n} from \"./chunks/mermaid-parser.core/chunk-JEIROHC2.mjs\";\nimport {\n RadarModule,\n createRadarServices\n} from \"./chunks/mermaid-parser.core/chunk-WFRQ32O7.mjs\";\nimport {\n TreemapModule,\n createTreemapServices\n} from \"./chunks/mermaid-parser.core/chunk-XRWGC2XP.mjs\";\nimport {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n Architecture,\n ArchitectureGeneratedModule,\n Branch,\n Commit,\n CommonTokenBuilder,\n CommonValueConverter,\n GitGraph,\n GitGraphGeneratedModule,\n Info,\n InfoGeneratedModule,\n Merge,\n MermaidGeneratedSharedModule,\n Packet,\n PacketBlock,\n PacketGeneratedModule,\n Pie,\n PieGeneratedModule,\n PieSection,\n Radar,\n RadarGeneratedModule,\n Statement,\n Treemap,\n TreemapGeneratedModule,\n __name,\n isArchitecture,\n isBranch,\n isCommit,\n isGitGraph,\n isInfo,\n isMerge,\n isPacket,\n isPacketBlock,\n isPie,\n isPieSection,\n isTreemap\n} from \"./chunks/mermaid-parser.core/chunk-4KMFLZZN.mjs\";\n\n// src/parse.ts\nvar parsers = {};\nvar initializers = {\n info: /* @__PURE__ */ __name(async () => {\n const { createInfoServices: createInfoServices2 } = await import(\"./chunks/mermaid-parser.core/info-63CPKGFF.mjs\");\n const parser = createInfoServices2().Info.parser.LangiumParser;\n parsers.info = parser;\n }, \"info\"),\n packet: /* @__PURE__ */ __name(async () => {\n const { createPacketServices: createPacketServices2 } = await import(\"./chunks/mermaid-parser.core/packet-HUATNLJX.mjs\");\n const parser = createPacketServices2().Packet.parser.LangiumParser;\n parsers.packet = parser;\n }, \"packet\"),\n pie: /* @__PURE__ */ __name(async () => {\n const { createPieServices: createPieServices2 } = await import(\"./chunks/mermaid-parser.core/pie-WTHONI2E.mjs\");\n const parser = createPieServices2().Pie.parser.LangiumParser;\n parsers.pie = parser;\n }, \"pie\"),\n architecture: /* @__PURE__ */ __name(async () => {\n const { createArchitectureServices: createArchitectureServices2 } = await import(\"./chunks/mermaid-parser.core/architecture-O4VJ6CD3.mjs\");\n const parser = createArchitectureServices2().Architecture.parser.LangiumParser;\n parsers.architecture = parser;\n }, \"architecture\"),\n gitGraph: /* @__PURE__ */ __name(async () => {\n const { createGitGraphServices: createGitGraphServices2 } = await import(\"./chunks/mermaid-parser.core/gitGraph-ZV4HHKMB.mjs\");\n const parser = createGitGraphServices2().GitGraph.parser.LangiumParser;\n parsers.gitGraph = parser;\n }, \"gitGraph\"),\n radar: /* @__PURE__ */ __name(async () => {\n const { createRadarServices: createRadarServices2 } = await import(\"./chunks/mermaid-parser.core/radar-NJJJXTRR.mjs\");\n const parser = createRadarServices2().Radar.parser.LangiumParser;\n parsers.radar = parser;\n }, \"radar\"),\n treemap: /* @__PURE__ */ __name(async () => {\n const { createTreemapServices: createTreemapServices2 } = await import(\"./chunks/mermaid-parser.core/treemap-75Q7IDZK.mjs\");\n const parser = createTreemapServices2().Treemap.parser.LangiumParser;\n parsers.treemap = parser;\n }, \"treemap\")\n};\nasync function parse(diagramType, text) {\n const initializer = initializers[diagramType];\n if (!initializer) {\n throw new Error(`Unknown diagram type: ${diagramType}`);\n }\n if (!parsers[diagramType]) {\n await initializer();\n }\n const parser = parsers[diagramType];\n const result = parser.parse(text);\n if (result.lexerErrors.length > 0 || result.parserErrors.length > 0) {\n throw new MermaidParseError(result);\n }\n return result.value;\n}\n__name(parse, \"parse\");\nvar MermaidParseError = class extends Error {\n constructor(result) {\n const lexerErrors = result.lexerErrors.map((err) => err.message).join(\"\\n\");\n const parserErrors = result.parserErrors.map((err) => err.message).join(\"\\n\");\n super(`Parsing failed: ${lexerErrors} ${parserErrors}`);\n this.result = result;\n }\n static {\n __name(this, \"MermaidParseError\");\n }\n};\nexport {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n Architecture,\n ArchitectureGeneratedModule,\n ArchitectureModule,\n Branch,\n Commit,\n CommonTokenBuilder,\n CommonValueConverter,\n GitGraph,\n GitGraphGeneratedModule,\n GitGraphModule,\n Info,\n InfoGeneratedModule,\n InfoModule,\n Merge,\n MermaidGeneratedSharedModule,\n MermaidParseError,\n Packet,\n PacketBlock,\n PacketGeneratedModule,\n PacketModule,\n Pie,\n PieGeneratedModule,\n PieModule,\n PieSection,\n Radar,\n RadarGeneratedModule,\n RadarModule,\n Statement,\n Treemap,\n TreemapGeneratedModule,\n TreemapModule,\n createArchitectureServices,\n createGitGraphServices,\n createInfoServices,\n createPacketServices,\n createPieServices,\n createRadarServices,\n createTreemapServices,\n isArchitecture,\n isBranch,\n isCommit,\n isGitGraph,\n isInfo,\n isMerge,\n isPacket,\n isPacketBlock,\n isPie,\n isPieSection,\n isTreemap,\n parse\n};\n"],"file":"assets/treemap-75Q7IDZK.js"} \ No newline at end of file diff --git a/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js b/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js new file mode 100644 index 000000000000..ea1064f1cd9e --- /dev/null +++ b/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js @@ -0,0 +1,8 @@ +import{_ as a,s as gi,g as di,q as Xt,p as xi,a as fi,b as pi,l as Nt,H as mi,e as yi,y as bi,E as Ct,D as Yt,F as Ai,K as wi,i as Si,aF as Ci,R as Wt}from"./index.js";import{i as _i}from"./init.js";import{o as ki}from"./ordinal.js";import{l as zt}from"./linear.js";import"./XCircleIcon.js";import"./defaultLocale.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"89d47079907d2835afe9a9922c276dbc3fbbe92f"}}catch{}})();try{(function(){var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="880cd822-b2e4-4df9-9056-60054e8102b7",e._sentryDebugIdIdentifier="sentry-dbid-880cd822-b2e4-4df9-9056-60054e8102b7")})()}catch{}function Ti(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,r=new Array(n);++s"u"&&(R.yylloc={});var ft=R.yylloc;o.push(ft);var ci=R.options&&R.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(V){d.length=d.length-2*V,w.length=w.length-V,o.length=o.length-V}a(ui,"popStack");function Vt(){var V;return V=x.pop()||R.lex()||Mt,typeof V!="number"&&(V instanceof Array&&(x=V,V=x.pop()),V=u.symbols_[V]||V),V}a(Vt,"lex");for(var M,H,B,pt,q={},ct,O,Bt,ut;;){if(H=d[d.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=Vt()),B=at[H]&&at[H][M]),typeof B>"u"||!B.length||!B[0]){var mt="";ut=[];for(ct in at[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");R.showPosition?mt="Parse error on line "+(lt+1)+`: +`+R.showPosition()+` +Expecting `+ut.join(", ")+", got '"+(this.terminals_[M]||M)+"'":mt="Parse error on line "+(lt+1)+": Unexpected "+(M==Mt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(mt,{text:R.match,token:this.terminals_[M]||M,line:R.yylineno,loc:ft,expected:ut})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+M);switch(B[0]){case 1:d.push(M),w.push(R.yytext),o.push(R.yylloc),d.push(B[1]),M=null,It=R.yyleng,f=R.yytext,lt=R.yylineno,ft=R.yylloc;break;case 2:if(O=this.productions_[B[1]][1],q.$=w[w.length-O],q._$={first_line:o[o.length-(O||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(O||1)].first_column,last_column:o[o.length-1].last_column},ci&&(q._$.range=[o[o.length-(O||1)].range[0],o[o.length-1].range[1]]),pt=this.performAction.apply(q,[f,It,lt,Y.yy,B[1],w,o].concat(li)),typeof pt<"u")return pt;O&&(d=d.slice(0,-1*O*2),w=w.slice(0,-1*O),o=o.slice(0,-1*O)),d.push(this.productions_[B[1]][0]),w.push(q.$),o.push(q._$),Bt=at[d[d.length-2]][d[d.length-1]],d.push(Bt);break;case 3:return!0}}return!0},"parse")},Et=(function(){var F={EOF:1,parseError:a(function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},"parseError"),setInput:a(function(h,u){return this.yy=u||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var u=h.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var u=h.length,d=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===x.length?this.yylloc.first_column:0)+x[x.length-d.length].length-d[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),u=new Array(h.length+1).join("-");return h+this.upcomingInput()+` +`+u+"^"},"showPosition"),test_match:a(function(h,u){var d,x,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),x=h[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+h[0].length},this.yytext+=h[0],this.match+=h[0],this.matches=h,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(h[0].length),this.matched+=h[0],d=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var o in w)this[o]=w[o];return!1}return!1},"test_match"),next:a(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var h,u,d,x;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),o=0;ou[0].length)){if(u=d,x=o,this.options.backtrack_lexer){if(h=this.test_match(d,w[o]),h!==!1)return h;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(h=this.test_match(u,w[x]),h!==!1?h:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:a(function(){var u=this.next();return u||this.lex()},"lex"),begin:a(function(u){this.conditionStack.push(u)},"begin"),popState:a(function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:a(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:a(function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},"topState"),pushState:a(function(u){this.begin(u)},"pushState"),stateStackSize:a(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:a(function(u,d,x,w){switch(x){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 31;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 27;case 25:return this.popState(),26;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 43;case 33:return"COLON";case 34:return 44;case 35:return 28;case 36:return 45;case 37:return 46;case 38:return 48;case 39:return 50;case 40:return 47;case 41:return 41;case 42:return 49;case 43:return 42;case 44:break;case 45:return 35;case 46:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return F})();$.lexer=Et;function N(){this.yy={}}return a(N,"Parser"),N.prototype=$,$.Parser=N,new N})();bt.parser=bt;var Ri=bt;function At(e){return e.type==="bar"}a(At,"isBarPlot");function _t(e){return e.type==="band"}a(_t,"isBandAxisData");function G(e){return e.type==="linear"}a(G,"isLinearAxisData");var j,Ht=(j=class{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((r,g)=>Math.max(g.length,r),0)*i,height:i};const s={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const r of t){const g=Ci(n,1,r),m=g?g.width:r.length*i,p=g?g.height:i;s.width=Math.max(s.width,m),s.height=Math.max(s.height,p)}return n.remove(),s}},a(j,"TextDimensionCalculatorWithFont"),j),Ft=.7,Ot=.2,Q,Ut=(Q=class{constructor(t,i,s,n){this.axisConfig=t,this.title=i,this.textDimensionCalculator=s,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){Ft*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(Ft*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=Ot*t.width;this.outerPadding=Math.min(s.width/2,n);const r=s.height+this.axisConfig.labelPadding*2;this.labelTextHeight=s.height,r<=i&&(i-=r,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=Ot*t.height;this.outerPadding=Math.min(s.height/2,n);const r=s.width+this.axisConfig.labelPadding*2;r<=i&&(i-=r,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${i},${this.getScaleValue(s)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(s)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i} L ${this.getScaleValue(s)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(s)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}},a(Q,"BaseAxis"),Q),K,Di=(K=class extends Ut{constructor(t,i,s,n,r){super(t,n,r,i),this.categories=s,this.scale=yt().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=yt().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Nt.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},a(K,"BandAxis"),K),Z,vi=(Z=class extends Ut{constructor(t,i,s,n,r){super(t,n,r,i),this.domain=s,this.scale=zt().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=zt().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}},a(Z,"LinearAxis"),Z);function wt(e,t,i,s){const n=new Ht(s);return _t(e)?new Di(t,i,e.categories,e.title,n):new vi(t,i,[e.min,e.max],e.title,n)}a(wt,"getAxis");var J,Pi=(J=class{constructor(t,i,s,n){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=s,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),s=Math.max(i.width,t.width),n=i.height+2*this.chartConfig.titlePadding;return i.width<=s&&i.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=s,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}},a(J,"ChartTitle"),J);function $t(e,t,i,s){const n=new Ht(s);return new Pi(n,e,t,i)}a($t,"getChartTitleComponent");var tt,Li=(tt=class{constructor(t,i,s,n,r){this.plotData=t,this.xAxis=i,this.yAxis=s,this.orientation=n,this.plotIndex=r}getDrawableElement(){const t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]);let i;return this.orientation==="horizontal"?i=Wt().y(s=>s[0]).x(s=>s[1])(t):i=Wt().x(s=>s[0]).y(s=>s[1])(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}},a(tt,"LinePlot"),tt),it,Ei=(it=class{constructor(t,i,s,n,r,g){this.barData=t,this.boundingRect=i,this.xAxis=s,this.yAxis=n,this.orientation=r,this.plotIndex=g}getDrawableElement(){const t=this.barData.data.map(r=>[this.xAxis.getScaleValue(r[0]),this.yAxis.getScaleValue(r[1])]),s=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=s/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(r=>({x:this.boundingRect.x,y:r[0]-n,height:s,width:r[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(r=>({x:r[0]-n,y:r[1],width:s,height:this.boundingRect.y+this.boundingRect.height-r[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},a(it,"BarPlot"),it),et,Ii=(et=class{constructor(t,i,s){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const t=[];for(const[i,s]of this.chartData.plots.entries())switch(s.type){case"line":{const n=new Li(s,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break;case"bar":{const n=new Ei(s,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break}return t}},a(et,"BasePlot"),et);function qt(e,t,i){return new Ii(e,t,i)}a(qt,"getPlotComponent");var st,Mi=(st=class{constructor(t,i,s,n){this.chartConfig=t,this.chartData=i,this.componentStore={title:$t(t,i,s,n),plot:qt(t,i,s),xAxis:wt(i.xAxis,t.xAxis,{titleColor:s.xAxisTitleColor,labelColor:s.xAxisLabelColor,tickColor:s.xAxisTickColor,axisLineColor:s.xAxisLineColor},n),yAxis:wt(i.yAxis,t.yAxis,{titleColor:s.yAxisTitleColor,labelColor:s.yAxisLabelColor,tickColor:s.yAxisTickColor,axisLineColor:s.yAxisLineColor},n)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,r=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),g=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),m=this.componentStore.plot.calculateSpace({width:r,height:g});t-=m.width,i-=m.height,m=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),n=m.height,i-=m.height,this.componentStore.xAxis.setAxisPosition("bottom"),m=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=m.height,this.componentStore.yAxis.setAxisPosition("left"),m=this.componentStore.yAxis.calculateSpace({width:t,height:i}),s=m.width,t-=m.width,t>0&&(r+=t,t=0),i>0&&(g+=i,i=0),this.componentStore.plot.calculateSpace({width:r,height:g}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.xAxis.setRange([s,s+r]),this.componentStore.xAxis.setBoundingBoxXY({x:s,y:n+g}),this.componentStore.yAxis.setRange([n,n+g]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(p=>At(p))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,r=0,g=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),m=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),p=this.componentStore.plot.calculateSpace({width:g,height:m});t-=p.width,i-=p.height,p=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=p.height,i-=p.height,this.componentStore.xAxis.setAxisPosition("left"),p=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=p.width,n=p.width,this.componentStore.yAxis.setAxisPosition("top"),p=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=p.height,r=s+p.height,t>0&&(g+=t,t=0),i>0&&(m+=i,i=0),this.componentStore.plot.calculateSpace({width:g,height:m}),this.componentStore.plot.setBoundingBoxXY({x:n,y:r}),this.componentStore.yAxis.setRange([n,n+g]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:s}),this.componentStore.xAxis.setRange([r,r+m]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:r}),this.chartData.plots.some(k=>At(k))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}},a(st,"Orchestrator"),st),nt,Vi=(nt=class{static build(t,i,s,n){return new Mi(t,i,s,n).getDrawableElement()}},a(nt,"XYChartBuilder"),nt),ot=0,Gt,rt=Rt(),ht=Tt(),A=Dt(),St=ht.plotColorPalette.split(",").map(e=>e.trim()),gt=!1,kt=!1;function Tt(){const e=wi(),t=Ct();return Yt(e.xyChart,t.themeVariables.xyChart)}a(Tt,"getChartDefaultThemeConfig");function Rt(){const e=Ct();return Yt(Ai.xyChart,e.xyChart)}a(Rt,"getChartDefaultConfig");function Dt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}a(Dt,"getChartDefaultData");function dt(e){const t=Ct();return Si(e.trim(),t)}a(dt,"textSanitizer");function jt(e){Gt=e}a(jt,"setTmpSVGG");function Qt(e){e==="horizontal"?rt.chartOrientation="horizontal":rt.chartOrientation="vertical"}a(Qt,"setOrientation");function Kt(e){A.xAxis.title=dt(e.text)}a(Kt,"setXAxisTitle");function vt(e,t){A.xAxis={type:"linear",title:A.xAxis.title,min:e,max:t},gt=!0}a(vt,"setXAxisRangeData");function Zt(e){A.xAxis={type:"band",title:A.xAxis.title,categories:e.map(t=>dt(t.text))},gt=!0}a(Zt,"setXAxisBand");function Jt(e){A.yAxis.title=dt(e.text)}a(Jt,"setYAxisTitle");function ti(e,t){A.yAxis={type:"linear",title:A.yAxis.title,min:e,max:t},kt=!0}a(ti,"setYAxisRangeData");function ii(e){const t=Math.min(...e),i=Math.max(...e),s=G(A.yAxis)?A.yAxis.min:1/0,n=G(A.yAxis)?A.yAxis.max:-1/0;A.yAxis={type:"linear",title:A.yAxis.title,min:Math.min(s,t),max:Math.max(n,i)}}a(ii,"setYAxisRangeFromPlotData");function Pt(e){let t=[];if(e.length===0)return t;if(!gt){const i=G(A.xAxis)?A.xAxis.min:1/0,s=G(A.xAxis)?A.xAxis.max:-1/0;vt(Math.min(i,1),Math.max(s,e.length))}if(kt||ii(e),_t(A.xAxis)&&(t=A.xAxis.categories.map((i,s)=>[i,e[s]])),G(A.xAxis)){const i=A.xAxis.min,s=A.xAxis.max,n=(s-i)/(e.length-1),r=[];for(let g=i;g<=s;g+=n)r.push(`${g}`);t=r.map((g,m)=>[g,e[m]])}return t}a(Pt,"transformDataWithoutCategory");function Lt(e){return St[e===0?0:e%St.length]}a(Lt,"getPlotColorFromPalette");function ei(e,t){const i=Pt(t);A.plots.push({type:"line",strokeFill:Lt(ot),strokeWidth:2,data:i}),ot++}a(ei,"setLineData");function si(e,t){const i=Pt(t);A.plots.push({type:"bar",fill:Lt(ot),data:i}),ot++}a(si,"setBarData");function ni(){if(A.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return A.title=Xt(),Vi.build(rt,A,ht,Gt)}a(ni,"getDrawableElem");function ai(){return ht}a(ai,"getChartThemeConfig");function oi(){return rt}a(oi,"getChartConfig");function ri(){return A}a(ri,"getXYChartData");var Bi=a(function(){bi(),ot=0,rt=Rt(),A=Dt(),ht=Tt(),St=ht.plotColorPalette.split(",").map(e=>e.trim()),gt=!1,kt=!1},"clear"),Wi={getDrawableElem:ni,clear:Bi,setAccTitle:pi,getAccTitle:fi,setDiagramTitle:xi,getDiagramTitle:Xt,getAccDescription:di,setAccDescription:gi,setOrientation:Qt,setXAxisTitle:Kt,setXAxisRangeData:vt,setXAxisBand:Zt,setYAxisTitle:Jt,setYAxisRangeData:ti,setLineData:ei,setBarData:si,setTmpSVGG:jt,getChartThemeConfig:ai,getChartConfig:oi,getXYChartData:ri},zi=a((e,t,i,s)=>{const n=s.db,r=n.getChartThemeConfig(),g=n.getChartConfig(),m=n.getXYChartData().plots[0].data.map(y=>y[1]);function p(y){return y==="top"?"text-before-edge":"middle"}a(p,"getDominantBaseLine");function k(y){return y==="left"?"start":y==="right"?"end":"middle"}a(k,"getTextAnchor");function v(y){return`translate(${y.x}, ${y.y}) rotate(${y.rotation||0})`}a(v,"getTextTransformation"),Nt.debug(`Rendering xychart chart +`+e);const S=mi(t),b=S.append("g").attr("class","main"),E=b.append("rect").attr("width",g.width).attr("height",g.height).attr("class","background");yi(S,g.height,g.width,!0),S.attr("viewBox",`0 0 ${g.width} ${g.height}`),E.attr("fill",r.backgroundColor),n.setTmpSVGG(S.append("g").attr("class","mermaid-tmp-group"));const D=n.getDrawableElem(),P={};function I(y){let _=b,c="";for(const[W]of y.entries()){let z=b;W>0&&P[c]&&(z=P[c]),c+=y[W],_=P[c],_||(_=P[c]=z.append("g").attr("class",y[W]))}return _}a(I,"getGroup");for(const y of D){if(y.data.length===0)continue;const _=I(y.groupTexts);switch(y.type){case"rect":if(_.selectAll("rect").data(y.data).enter().append("rect").attr("x",c=>c.x).attr("y",c=>c.y).attr("width",c=>c.width).attr("height",c=>c.height).attr("fill",c=>c.fill).attr("stroke",c=>c.strokeFill).attr("stroke-width",c=>c.strokeWidth),g.showDataLabel)if(g.chartOrientation==="horizontal"){let c=function(l,L){const{data:C,label:T}=l;return L*T.length*W<=C.width-10};a(c,"fitsHorizontally");const W=.7,z=y.data.map((l,L)=>({data:l,label:m[L].toString()})).filter(l=>l.data.width>0&&l.data.height>0),U=z.map(l=>{const{data:L}=l;let C=L.height*.7;for(;!c(l,C)&&C>0;)C-=1;return C}),X=Math.floor(Math.min(...U));_.selectAll("text").data(z).enter().append("text").attr("x",l=>l.data.x+l.data.width-10).attr("y",l=>l.data.y+l.data.height/2).attr("text-anchor","end").attr("dominant-baseline","middle").attr("fill","black").attr("font-size",`${X}px`).text(l=>l.label)}else{let c=function(l,L,C){const{data:T,label:$}=l,N=L*$.length*.7,F=T.x+T.width/2,h=F-N/2,u=F+N/2,d=h>=T.x&&u<=T.x+T.width,x=T.y+C+L<=T.y+T.height;return d&&x};a(c,"fitsInBar");const W=10,z=y.data.map((l,L)=>({data:l,label:m[L].toString()})).filter(l=>l.data.width>0&&l.data.height>0),U=z.map(l=>{const{data:L,label:C}=l;let T=L.width/(C.length*.7);for(;!c(l,T,W)&&T>0;)T-=1;return T}),X=Math.floor(Math.min(...U));_.selectAll("text").data(z).enter().append("text").attr("x",l=>l.data.x+l.data.width/2).attr("y",l=>l.data.y+W).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","black").attr("font-size",`${X}px`).text(l=>l.label)}break;case"text":_.selectAll("text").data(y.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",c=>c.fill).attr("font-size",c=>c.fontSize).attr("dominant-baseline",c=>p(c.verticalPos)).attr("text-anchor",c=>k(c.horizontalPos)).attr("transform",c=>v(c)).text(c=>c.text);break;case"path":_.selectAll("path").data(y.data).enter().append("path").attr("d",c=>c.path).attr("fill",c=>c.fill?c.fill:"none").attr("stroke",c=>c.strokeFill).attr("stroke-width",c=>c.strokeWidth);break}}},"draw"),Fi={draw:zi},$i={parser:Ri,db:Wi,renderer:Fi};export{$i as diagram}; +//# sourceMappingURL=xychartDiagram-6GGTOJPD.js.map diff --git a/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js.map b/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js.map new file mode 100644 index 000000000000..6d6ab24b5458 --- /dev/null +++ b/extensions/continue/gui/assets/xychartDiagram-6GGTOJPD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"xychartDiagram-6GGTOJPD.js","sources":["../../node_modules/d3-array/src/range.js","../../node_modules/d3-scale/src/band.js","../../node_modules/mermaid/dist/chunks/mermaid.core/xychartDiagram-6GGTOJPD.mjs"],"sourcesContent":["export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n computeDimensionOfText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/xychart/parser/xychart.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"XYCHART\": 5, \"chartConfig\": 6, \"document\": 7, \"CHART_ORIENTATION\": 8, \"statement\": 9, \"title\": 10, \"text\": 11, \"X_AXIS\": 12, \"parseXAxis\": 13, \"Y_AXIS\": 14, \"parseYAxis\": 15, \"LINE\": 16, \"plotData\": 17, \"BAR\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"SQUARE_BRACES_START\": 24, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"XYCHART\", 8: \"CHART_ORIENTATION\", 10: \"title\", 12: \"X_AXIS\", 14: \"Y_AXIS\", 16: \"LINE\", 18: \"BAR\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"SQUARE_BRACES_START\", 26: \"SQUARE_BRACES_END\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n }, \"anonymous\"),\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n break;\n case 3:\n this.popState();\n return 34;\n break;\n case 4:\n return 34;\n break;\n case 5:\n break;\n case 6:\n return 10;\n break;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n break;\n case 8:\n this.popState();\n return \"acc_title_value\";\n break;\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n break;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n break;\n case 14:\n return 5;\n break;\n case 15:\n return 5;\n break;\n case 16:\n return 8;\n break;\n case 17:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n break;\n case 18:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n break;\n case 19:\n this.pushState(\"axis_band_data\");\n return 24;\n break;\n case 20:\n return 31;\n break;\n case 21:\n this.pushState(\"data\");\n return 16;\n break;\n case 22:\n this.pushState(\"data\");\n return 18;\n break;\n case 23:\n this.pushState(\"data_inner\");\n return 24;\n break;\n case 24:\n return 27;\n break;\n case 25:\n this.popState();\n return 26;\n break;\n case 26:\n this.popState();\n break;\n case 27:\n this.pushState(\"string\");\n break;\n case 28:\n this.popState();\n break;\n case 29:\n return \"STR\";\n break;\n case 30:\n return 24;\n break;\n case 31:\n return 26;\n break;\n case 32:\n return 43;\n break;\n case 33:\n return \"COLON\";\n break;\n case 34:\n return 44;\n break;\n case 35:\n return 28;\n break;\n case 36:\n return 45;\n break;\n case 37:\n return 46;\n break;\n case 38:\n return 48;\n break;\n case 39:\n return 50;\n break;\n case 40:\n return 47;\n break;\n case 41:\n return 41;\n break;\n case 42:\n return 49;\n break;\n case 43:\n return 42;\n break;\n case 44:\n break;\n case 45:\n return 35;\n break;\n case 46:\n return 36;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:(\\r?\\n))/i, /^(?:(\\r?\\n))/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:\\{)/i, /^(?:[^\\}]*)/i, /^(?:xychart-beta\\b)/i, /^(?:xychart\\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\\b)/i, /^(?:y-axis\\b)/i, /^(?:\\[)/i, /^(?:-->)/i, /^(?:line\\b)/i, /^(?:bar\\b)/i, /^(?:\\[)/i, /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i, /^(?:\\])/i, /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n\\(\\?:`))/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s+)/i, /^(?:;)/i, /^(?:$)/i],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 21, 22, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 21, 22, 23, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 21, 22, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [28, 29], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 21, 22, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar xychart_default = parser;\n\n// src/diagrams/xychart/chartBuilder/interfaces.ts\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\n__name(isBarPlot, \"isBarPlot\");\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\n__name(isBandAxisData, \"isBandAxisData\");\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\n__name(isLinearAxisData, \"isLinearAxisData\");\n\n// src/diagrams/xychart/chartBuilder/textDimensionCalculator.ts\nvar TextDimensionCalculatorWithFont = class {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n static {\n __name(this, \"TextDimensionCalculatorWithFont\");\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/axis/bandAxis.ts\nimport { scaleBand } from \"d3\";\n\n// src/diagrams/xychart/chartBuilder/components/axis/baseAxis.ts\nvar BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nvar MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nvar BaseAxis = class {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n static {\n __name(this, \"BaseAxis\");\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/axis/bandAxis.ts\nvar BandAxis = class extends BaseAxis {\n static {\n __name(this, \"BandAxis\");\n }\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) ?? this.getRange()[0];\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/axis/linearAxis.ts\nimport { scaleLinear } from \"d3\";\nvar LinearAxis = class extends BaseAxis {\n static {\n __name(this, \"LinearAxis\");\n }\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/axis/index.ts\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimensionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimensionCalculator\n );\n}\n__name(getAxis, \"getAxis\");\n\n// src/diagrams/xychart/chartBuilder/components/chartTitle.ts\nvar ChartTitle = class {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n static {\n __name(this, \"ChartTitle\");\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n};\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\n__name(getChartTitleComponent, \"getChartTitleComponent\");\n\n// src/diagrams/xychart/chartBuilder/components/plot/linePlot.ts\nimport { line } from \"d3\";\nvar LinePlot = class {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n static {\n __name(this, \"LinePlot\");\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/plot/barPlot.ts\nvar BarPlot = class {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n static {\n __name(this, \"BarPlot\");\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n};\n\n// src/diagrams/xychart/chartBuilder/components/plot/index.ts\nvar BasePlot = class {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n static {\n __name(this, \"BasePlot\");\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n};\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\n__name(getPlotComponent, \"getPlotComponent\");\n\n// src/diagrams/xychart/chartBuilder/orchestrator.ts\nvar Orchestrator = class {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n static {\n __name(this, \"Orchestrator\");\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizontalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizontalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n};\n\n// src/diagrams/xychart/chartBuilder/index.ts\nvar XYChartBuilder = class {\n static {\n __name(this, \"XYChartBuilder\");\n }\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n};\n\n// src/diagrams/xychart/xychartDb.ts\nvar plotIndex = 0;\nvar tmpSVGGroup;\nvar xyChartConfig = getChartDefaultConfig();\nvar xyChartThemeConfig = getChartDefaultThemeConfig();\nvar xyChartData = getChartDefaultData();\nvar plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nvar hasSetXAxis = false;\nvar hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\n__name(getChartDefaultThemeConfig, \"getChartDefaultThemeConfig\");\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig_default.xyChart,\n config.xyChart\n );\n}\n__name(getChartDefaultConfig, \"getChartDefaultConfig\");\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\n__name(getChartDefaultData, \"getChartDefaultData\");\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\n__name(textSanitizer, \"textSanitizer\");\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\n__name(setTmpSVGG, \"setTmpSVGG\");\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\n__name(setOrientation, \"setOrientation\");\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\n__name(setXAxisTitle, \"setXAxisTitle\");\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\n__name(setXAxisRangeData, \"setXAxisRangeData\");\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\n__name(setXAxisBand, \"setXAxisBand\");\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\n__name(setYAxisTitle, \"setYAxisTitle\");\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\n__name(setYAxisRangeData, \"setYAxisRangeData\");\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\n__name(setYAxisRangeFromPlotData, \"setYAxisRangeFromPlotData\");\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min) / (data.length - 1);\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\n__name(transformDataWithoutCategory, \"transformDataWithoutCategory\");\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\n__name(getPlotColorFromPalette, \"getPlotColorFromPalette\");\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\n__name(setLineData, \"setLineData\");\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\n__name(setBarData, \"setBarData\");\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\n__name(getDrawableElem, \"getDrawableElem\");\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\n__name(getChartThemeConfig, \"getChartThemeConfig\");\nfunction getChartConfig() {\n return xyChartConfig;\n}\n__name(getChartConfig, \"getChartConfig\");\nfunction getXYChartData() {\n return xyChartData;\n}\n__name(getXYChartData, \"getXYChartData\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n clear();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n}, \"clear\");\nvar xychartDb_default = {\n getDrawableElem,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig,\n getXYChartData\n};\n\n// src/diagrams/xychart/xychartRenderer.ts\nvar draw = /* @__PURE__ */ __name((txt, id, _version, diagObj) => {\n const db = diagObj.db;\n const themeConfig = db.getChartThemeConfig();\n const chartConfig = db.getChartConfig();\n const labelData = db.getXYChartData().plots[0].data.map((data) => data[1]);\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n __name(getDominantBaseLine, \"getDominantBaseLine\");\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n __name(getTextAnchor, \"getTextAnchor\");\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n __name(getTextTransformation, \"getTextTransformation\");\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n __name(getGroup, \"getGroup\");\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n if (chartConfig.showDataLabel) {\n if (chartConfig.chartOrientation === \"horizontal\") {\n let fitsHorizontally2 = function(item, fontSize) {\n const { data, label } = item;\n const textWidth = fontSize * label.length * charWidthFactor;\n return textWidth <= data.width - 10;\n };\n var fitsHorizontally = fitsHorizontally2;\n __name(fitsHorizontally2, \"fitsHorizontally\");\n const charWidthFactor = 0.7;\n const validItems = shape.data.map((d, i) => ({ data: d, label: labelData[i].toString() })).filter((item) => item.data.width > 0 && item.data.height > 0);\n const candidateFontSizes = validItems.map((item) => {\n const { data } = item;\n let fontSize = data.height * 0.7;\n while (!fitsHorizontally2(item, fontSize) && fontSize > 0) {\n fontSize -= 1;\n }\n return fontSize;\n });\n const uniformFontSize = Math.floor(Math.min(...candidateFontSizes));\n shapeGroup.selectAll(\"text\").data(validItems).enter().append(\"text\").attr(\"x\", (item) => item.data.x + item.data.width - 10).attr(\"y\", (item) => item.data.y + item.data.height / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").attr(\"fill\", \"black\").attr(\"font-size\", `${uniformFontSize}px`).text((item) => item.label);\n } else {\n let fitsInBar2 = function(item, fontSize, yOffset2) {\n const { data, label } = item;\n const charWidthFactor = 0.7;\n const textWidth = fontSize * label.length * charWidthFactor;\n const centerX = data.x + data.width / 2;\n const leftEdge = centerX - textWidth / 2;\n const rightEdge = centerX + textWidth / 2;\n const horizontalFits = leftEdge >= data.x && rightEdge <= data.x + data.width;\n const verticalFits = data.y + yOffset2 + fontSize <= data.y + data.height;\n return horizontalFits && verticalFits;\n };\n var fitsInBar = fitsInBar2;\n __name(fitsInBar2, \"fitsInBar\");\n const yOffset = 10;\n const validItems = shape.data.map((d, i) => ({ data: d, label: labelData[i].toString() })).filter((item) => item.data.width > 0 && item.data.height > 0);\n const candidateFontSizes = validItems.map((item) => {\n const { data, label } = item;\n let fontSize = data.width / (label.length * 0.7);\n while (!fitsInBar2(item, fontSize, yOffset) && fontSize > 0) {\n fontSize -= 1;\n }\n return fontSize;\n });\n const uniformFontSize = Math.floor(Math.min(...candidateFontSizes));\n shapeGroup.selectAll(\"text\").data(validItems).enter().append(\"text\").attr(\"x\", (item) => item.data.x + item.data.width / 2).attr(\"y\", (item) => item.data.y + yOffset).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"hanging\").attr(\"fill\", \"black\").attr(\"font-size\", `${uniformFontSize}px`).text((item) => item.label);\n }\n }\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n}, \"draw\");\nvar xychartRenderer_default = {\n draw\n};\n\n// src/diagrams/xychart/xychartDiagram.ts\nvar diagram = {\n parser: xychart_default,\n db: xychartDb_default,\n renderer: xychartRenderer_default\n};\nexport {\n diagram\n};\n"],"names":["range","start","stop","step","i","band","scale","ordinal","domain","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","values","sequence","_","initRange","parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","xychart_default","isBarPlot","data","isBandAxisData","isLinearAxisData","TextDimensionCalculatorWithFont","_a","parentGroup","texts","fontSize","acc","cur","dimension","elem","t","bbox","computeDimensionOfText","width","height","BAR_WIDTH_TO_TICK_WIDTH_RATIO","MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL","BaseAxis","axisConfig","title","textDimensionCalculator","axisThemeConfig","axisPosition","tick","availableSpace","availableHeight","spaceRequired","maxPadding","heightRequired","availableWidth","widthRequired","point","drawableElement","x","y","BandAxis","categories","scaleBand","log","value","LinearAxis","scaleLinear","getAxis","tmpSVGGroup2","ChartTitle","chartConfig","chartData","chartThemeConfig","titleDimension","drawableElem","getChartTitleComponent","LinePlot","plotData","xAxis","yAxis","orientation","plotIndex2","finalData","d","path","line","BarPlot","barData","boundingRect","barWidth","barWidthHalf","BasePlot","plot","linePlot","barPlot","getPlotComponent","Orchestrator","plotX","plotY","chartWidth","chartHeight","spaceUsed","titleYEnd","component","XYChartBuilder","config","plotIndex","tmpSVGGroup","xyChartConfig","getChartDefaultConfig","xyChartThemeConfig","getChartDefaultThemeConfig","xyChartData","getChartDefaultData","plotColorPalette","color","hasSetXAxis","hasSetYAxis","defaultThemeVariables","getThemeVariables","getConfig","cleanAndMerge","defaultConfig_default","textSanitizer","text","sanitizeText","setTmpSVGG","SVGG","setOrientation","setXAxisTitle","setXAxisRangeData","min","max","setXAxisBand","setYAxisTitle","setYAxisRangeData","setYAxisRangeFromPlotData","minValue","maxValue","prevMinValue","prevMaxValue","transformDataWithoutCategory","retData","getPlotColorFromPalette","setLineData","setBarData","getDrawableElem","getDiagramTitle","getChartThemeConfig","getChartConfig","getXYChartData","clear2","clear","xychartDb_default","setAccTitle","getAccTitle","setDiagramTitle","getAccDescription","setAccDescription","draw","txt","id","_version","diagObj","db","themeConfig","labelData","getDominantBaseLine","horizontalPos","getTextAnchor","verticalPos","getTextTransformation","svg","selectSvgElement","group","background","configureSvgSize","shapes","groups","getGroup","gList","prefix","parent","shape","shapeGroup","fitsHorizontally2","item","label","charWidthFactor","validItems","candidateFontSizes","uniformFontSize","fitsInBar2","yOffset2","textWidth","centerX","leftEdge","rightEdge","horizontalFits","verticalFits","yOffset","xychartRenderer_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/extensions/continue/gui/fonts/Inter/InterDisplay-Light.woff2 b/extensions/continue/gui/fonts/Inter/InterDisplay-Light.woff2 new file mode 100644 index 000000000000..36119a8f2402 Binary files /dev/null and b/extensions/continue/gui/fonts/Inter/InterDisplay-Light.woff2 differ diff --git a/extensions/continue/gui/fonts/Inter/LICENSE.txt b/extensions/continue/gui/fonts/Inter/LICENSE.txt new file mode 100644 index 000000000000..9b2ca37b3ffc --- /dev/null +++ b/extensions/continue/gui/fonts/Inter/LICENSE.txt @@ -0,0 +1,92 @@ +Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION AND CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/extensions/continue/gui/fonts/JetBrainsMono/AUTHORS.txt b/extensions/continue/gui/fonts/JetBrainsMono/AUTHORS.txt new file mode 100644 index 000000000000..881494169b73 --- /dev/null +++ b/extensions/continue/gui/fonts/JetBrainsMono/AUTHORS.txt @@ -0,0 +1,10 @@ +# This is the official list of project authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS.txt file. +# See the latter for an explanation. +# +# Names should be added to this file as: +# Name or Organization + +JetBrains <> +Philipp Nurullin +Konstantin Bulenkov diff --git a/extensions/continue/gui/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 b/extensions/continue/gui/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 new file mode 100644 index 000000000000..653849873683 Binary files /dev/null and b/extensions/continue/gui/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 differ diff --git a/extensions/continue/gui/fonts/JetBrainsMono/OFL.txt b/extensions/continue/gui/fonts/JetBrainsMono/OFL.txt new file mode 100644 index 000000000000..8bee4148c1d5 --- /dev/null +++ b/extensions/continue/gui/fonts/JetBrainsMono/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/extensions/continue/gui/index.html b/extensions/continue/gui/index.html new file mode 100644 index 000000000000..4b2a13b165a3 --- /dev/null +++ b/extensions/continue/gui/index.html @@ -0,0 +1,15 @@ + + + + + + + Continue + + + + + +
    + + diff --git a/extensions/continue/gui/indexConsole.html b/extensions/continue/gui/indexConsole.html new file mode 100644 index 000000000000..8461ab7abb6b --- /dev/null +++ b/extensions/continue/gui/indexConsole.html @@ -0,0 +1,15 @@ + + + + + + + Continue + + + + + +
    + + diff --git a/extensions/continue/gui/jetbrains_editorInset_index.html b/extensions/continue/gui/jetbrains_editorInset_index.html new file mode 100644 index 000000000000..1573f0bcdd92 --- /dev/null +++ b/extensions/continue/gui/jetbrains_editorInset_index.html @@ -0,0 +1,26 @@ + + + + + + + + Continue + + +
    + + + + + + + diff --git a/extensions/continue/gui/jetbrains_index.html b/extensions/continue/gui/jetbrains_index.html new file mode 100644 index 000000000000..d0cc90128bb6 --- /dev/null +++ b/extensions/continue/gui/jetbrains_index.html @@ -0,0 +1,26 @@ + + + + + + + + Continue + + +
    + + + + + + + diff --git a/extensions/continue/gui/logos/TetrateAgentRouterService.png b/extensions/continue/gui/logos/TetrateAgentRouterService.png new file mode 100644 index 000000000000..5325b0f3b233 Binary files /dev/null and b/extensions/continue/gui/logos/TetrateAgentRouterService.png differ diff --git a/extensions/continue/gui/logos/WatsonX.png b/extensions/continue/gui/logos/WatsonX.png new file mode 100644 index 000000000000..ba4807267b8c Binary files /dev/null and b/extensions/continue/gui/logos/WatsonX.png differ diff --git a/extensions/continue/gui/logos/allenai.png b/extensions/continue/gui/logos/allenai.png new file mode 100644 index 000000000000..1f1ae2f8e90b Binary files /dev/null and b/extensions/continue/gui/logos/allenai.png differ diff --git a/extensions/continue/gui/logos/anthropic.png b/extensions/continue/gui/logos/anthropic.png new file mode 100644 index 000000000000..76b245f3b40a Binary files /dev/null and b/extensions/continue/gui/logos/anthropic.png differ diff --git a/extensions/continue/gui/logos/ask-sage.png b/extensions/continue/gui/logos/ask-sage.png new file mode 100644 index 000000000000..6700221ba5f5 Binary files /dev/null and b/extensions/continue/gui/logos/ask-sage.png differ diff --git a/extensions/continue/gui/logos/azure.png b/extensions/continue/gui/logos/azure.png new file mode 100644 index 000000000000..3158c7d3ca8c Binary files /dev/null and b/extensions/continue/gui/logos/azure.png differ diff --git a/extensions/continue/gui/logos/cerebras.png b/extensions/continue/gui/logos/cerebras.png new file mode 100644 index 000000000000..024dc5b7dccc Binary files /dev/null and b/extensions/continue/gui/logos/cerebras.png differ diff --git a/extensions/continue/gui/logos/cohere.png b/extensions/continue/gui/logos/cohere.png new file mode 100644 index 000000000000..6fd546855724 Binary files /dev/null and b/extensions/continue/gui/logos/cohere.png differ diff --git a/extensions/continue/gui/logos/cometapi.png b/extensions/continue/gui/logos/cometapi.png new file mode 100644 index 000000000000..8e66ff28761a Binary files /dev/null and b/extensions/continue/gui/logos/cometapi.png differ diff --git a/extensions/continue/gui/logos/deepseek.png b/extensions/continue/gui/logos/deepseek.png new file mode 100644 index 000000000000..2ccca71dbbae Binary files /dev/null and b/extensions/continue/gui/logos/deepseek.png differ diff --git a/extensions/continue/gui/logos/docker.png b/extensions/continue/gui/logos/docker.png new file mode 100644 index 000000000000..600476cfe4b4 Binary files /dev/null and b/extensions/continue/gui/logos/docker.png differ diff --git a/extensions/continue/gui/logos/fireworks.png b/extensions/continue/gui/logos/fireworks.png new file mode 100644 index 000000000000..d7b811e83272 Binary files /dev/null and b/extensions/continue/gui/logos/fireworks.png differ diff --git a/extensions/continue/gui/logos/function-network.png b/extensions/continue/gui/logos/function-network.png new file mode 100644 index 000000000000..177f22fb6750 Binary files /dev/null and b/extensions/continue/gui/logos/function-network.png differ diff --git a/extensions/continue/gui/logos/gemini.png b/extensions/continue/gui/logos/gemini.png new file mode 100644 index 000000000000..ba998db894a8 Binary files /dev/null and b/extensions/continue/gui/logos/gemini.png differ diff --git a/extensions/continue/gui/logos/groq.png b/extensions/continue/gui/logos/groq.png new file mode 100644 index 000000000000..638e8bd36a50 Binary files /dev/null and b/extensions/continue/gui/logos/groq.png differ diff --git a/extensions/continue/gui/logos/hunyuan.png b/extensions/continue/gui/logos/hunyuan.png new file mode 100644 index 000000000000..ca6ac0a7de01 Binary files /dev/null and b/extensions/continue/gui/logos/hunyuan.png differ diff --git a/extensions/continue/gui/logos/ibm.png b/extensions/continue/gui/logos/ibm.png new file mode 100644 index 000000000000..7a465290aed4 Binary files /dev/null and b/extensions/continue/gui/logos/ibm.png differ diff --git a/extensions/continue/gui/logos/inception.png b/extensions/continue/gui/logos/inception.png new file mode 100644 index 000000000000..4ef5ad6a04f4 Binary files /dev/null and b/extensions/continue/gui/logos/inception.png differ diff --git a/extensions/continue/gui/logos/lemonade.png b/extensions/continue/gui/logos/lemonade.png new file mode 100644 index 000000000000..3e8347404099 Binary files /dev/null and b/extensions/continue/gui/logos/lemonade.png differ diff --git a/extensions/continue/gui/logos/llamacpp.png b/extensions/continue/gui/logos/llamacpp.png new file mode 100644 index 000000000000..119087b0e385 Binary files /dev/null and b/extensions/continue/gui/logos/llamacpp.png differ diff --git a/extensions/continue/gui/logos/llamafile.png b/extensions/continue/gui/logos/llamafile.png new file mode 100644 index 000000000000..98863d890179 Binary files /dev/null and b/extensions/continue/gui/logos/llamafile.png differ diff --git a/extensions/continue/gui/logos/lmstudio.png b/extensions/continue/gui/logos/lmstudio.png new file mode 100644 index 000000000000..d4286733b7ed Binary files /dev/null and b/extensions/continue/gui/logos/lmstudio.png differ diff --git a/extensions/continue/gui/logos/meta.png b/extensions/continue/gui/logos/meta.png new file mode 100644 index 000000000000..4dcb7b9d12df Binary files /dev/null and b/extensions/continue/gui/logos/meta.png differ diff --git a/extensions/continue/gui/logos/mimo.png b/extensions/continue/gui/logos/mimo.png new file mode 100644 index 000000000000..012a58277d65 Binary files /dev/null and b/extensions/continue/gui/logos/mimo.png differ diff --git a/extensions/continue/gui/logos/mistral.png b/extensions/continue/gui/logos/mistral.png new file mode 100644 index 000000000000..071a2dc37ae9 Binary files /dev/null and b/extensions/continue/gui/logos/mistral.png differ diff --git a/extensions/continue/gui/logos/moonshot.png b/extensions/continue/gui/logos/moonshot.png new file mode 100644 index 000000000000..c2d1d812cf65 Binary files /dev/null and b/extensions/continue/gui/logos/moonshot.png differ diff --git a/extensions/continue/gui/logos/ncompass.png b/extensions/continue/gui/logos/ncompass.png new file mode 100644 index 000000000000..09c306695fe7 Binary files /dev/null and b/extensions/continue/gui/logos/ncompass.png differ diff --git a/extensions/continue/gui/logos/nebius.png b/extensions/continue/gui/logos/nebius.png new file mode 100644 index 000000000000..05510a7efc8a Binary files /dev/null and b/extensions/continue/gui/logos/nebius.png differ diff --git a/extensions/continue/gui/logos/novita.png b/extensions/continue/gui/logos/novita.png new file mode 100644 index 000000000000..30ccb507e23b Binary files /dev/null and b/extensions/continue/gui/logos/novita.png differ diff --git a/extensions/continue/gui/logos/nvidia.png b/extensions/continue/gui/logos/nvidia.png new file mode 100644 index 000000000000..ed84888a0fec Binary files /dev/null and b/extensions/continue/gui/logos/nvidia.png differ diff --git a/extensions/continue/gui/logos/ollama.png b/extensions/continue/gui/logos/ollama.png new file mode 100644 index 000000000000..1f7a4ddd4839 Binary files /dev/null and b/extensions/continue/gui/logos/ollama.png differ diff --git a/extensions/continue/gui/logos/openai.png b/extensions/continue/gui/logos/openai.png new file mode 100644 index 000000000000..2948f669b708 Binary files /dev/null and b/extensions/continue/gui/logos/openai.png differ diff --git a/extensions/continue/gui/logos/openrouter.png b/extensions/continue/gui/logos/openrouter.png new file mode 100644 index 000000000000..04f998a53af0 Binary files /dev/null and b/extensions/continue/gui/logos/openrouter.png differ diff --git a/extensions/continue/gui/logos/ovhcloud.png b/extensions/continue/gui/logos/ovhcloud.png new file mode 100644 index 000000000000..8ba409324b04 Binary files /dev/null and b/extensions/continue/gui/logos/ovhcloud.png differ diff --git a/extensions/continue/gui/logos/qwen.png b/extensions/continue/gui/logos/qwen.png new file mode 100644 index 000000000000..83f5bf490a8d Binary files /dev/null and b/extensions/continue/gui/logos/qwen.png differ diff --git a/extensions/continue/gui/logos/replicate.png b/extensions/continue/gui/logos/replicate.png new file mode 100644 index 000000000000..32433380f1a6 Binary files /dev/null and b/extensions/continue/gui/logos/replicate.png differ diff --git a/extensions/continue/gui/logos/sambanova.png b/extensions/continue/gui/logos/sambanova.png new file mode 100644 index 000000000000..a3016db0b649 Binary files /dev/null and b/extensions/continue/gui/logos/sambanova.png differ diff --git a/extensions/continue/gui/logos/scaleway.png b/extensions/continue/gui/logos/scaleway.png new file mode 100644 index 000000000000..4dd73d372dc2 Binary files /dev/null and b/extensions/continue/gui/logos/scaleway.png differ diff --git a/extensions/continue/gui/logos/siliconflow.png b/extensions/continue/gui/logos/siliconflow.png new file mode 100644 index 000000000000..f32fc6ebf84f Binary files /dev/null and b/extensions/continue/gui/logos/siliconflow.png differ diff --git a/extensions/continue/gui/logos/together.png b/extensions/continue/gui/logos/together.png new file mode 100644 index 000000000000..0d983a59411e Binary files /dev/null and b/extensions/continue/gui/logos/together.png differ diff --git a/extensions/continue/gui/logos/venice.png b/extensions/continue/gui/logos/venice.png new file mode 100644 index 000000000000..be0d8eb5f549 Binary files /dev/null and b/extensions/continue/gui/logos/venice.png differ diff --git a/extensions/continue/gui/logos/vertexai.png b/extensions/continue/gui/logos/vertexai.png new file mode 100644 index 000000000000..335802425785 Binary files /dev/null and b/extensions/continue/gui/logos/vertexai.png differ diff --git a/extensions/continue/gui/logos/wizardlm.png b/extensions/continue/gui/logos/wizardlm.png new file mode 100644 index 000000000000..a420cf03870b Binary files /dev/null and b/extensions/continue/gui/logos/wizardlm.png differ diff --git a/extensions/continue/gui/logos/xAI.png b/extensions/continue/gui/logos/xAI.png new file mode 100644 index 000000000000..17ef5f556398 Binary files /dev/null and b/extensions/continue/gui/logos/xAI.png differ diff --git a/extensions/continue/gui/textmate-syntaxes/ASPVBnet.plist b/extensions/continue/gui/textmate-syntaxes/ASPVBnet.plist new file mode 100644 index 000000000000..4616ec627b1e --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/ASPVBnet.plist @@ -0,0 +1,372 @@ + + + + + comment + Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com + fileTypes + + vb + + keyEquivalent + ^~A + name + ASP vb.NET + patterns + + + match + \n + name + meta.ending-space + + + include + #round-brackets + + + begin + ^(?=\t) + end + (?=[^\t]) + name + meta.leading-space + patterns + + + captures + + 1 + + name + meta.odd-tab.tabs + + 2 + + name + meta.even-tab.tabs + + + match + (\t)(\t)? + + + + + begin + ^(?= ) + end + (?=[^ ]) + name + meta.leading-space + patterns + + + captures + + 1 + + name + meta.odd-tab.spaces + + 2 + + name + meta.even-tab.spaces + + + match + ( )( )? + + + + + captures + + 1 + + name + storage.type.function.asp + + 2 + + name + entity.name.function.asp + + 3 + + name + punctuation.definition.parameters.asp + + 4 + + name + variable.parameter.function.asp + + 5 + + name + punctuation.definition.parameters.asp + + + match + ^\s*((?i:function|sub))\s*([a-zA-Z_]\w*)\s*(\()([^)]*)(\)).*\n? + name + meta.function.asp + + + begin + (^[ \t]+)?(?=') + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.asp + + + end + (?!\G) + patterns + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.comment.asp + + + end + \n + name + comment.line.apostrophe.asp + + + + + match + (?i:\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\b) + name + keyword.control.asp + + + match + (?i:\b(Mod|And|Not|Or|Xor|as)\b) + name + keyword.operator.asp + + + captures + + 1 + + name + storage.type.asp + + 2 + + name + variable.other.bfeac.asp + + 3 + + name + meta.separator.comma.asp + + + match + (?i:(dim)\s*(?:(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)\s*(,?))) + name + variable.other.dim.asp + + + match + (?i:\s*\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End sub|End Function|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\b\s*) + name + storage.type.asp + + + match + (?i:\b(Private|Public|Default)\b) + name + storage.modifier.asp + + + match + (?i:\s*\b(Empty|False|Nothing|Null|True)\b) + name + constant.language.asp + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.asp + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.asp + + + name + string.quoted.double.asp + patterns + + + match + "" + name + constant.character.escape.apostrophe.asp + + + + + captures + + 1 + + name + punctuation.definition.variable.asp + + + match + (\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b\s* + name + variable.other.asp + + + match + (?i:\b(Application|ObjectContext|Request|Response|Server|Session)\b) + name + support.class.asp + + + match + (?i:\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\b) + name + support.class.collection.asp + + + match + (?i:\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\b) + name + support.constant.asp + + + match + (?i:\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\b) + name + support.function.asp + + + match + (?i:\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\b) + name + support.function.event.asp + + + match + (?i:(?<=as )(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)) + name + support.type.vb.asp + + + match + (?i:\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\b) + name + support.function.vb.asp + + + match + -?\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b + name + constant.numeric.asp + + + match + (?i:\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\b) + name + support.type.vb.asp + + + captures + + 1 + + name + entity.name.function.asp + + + match + (?i:(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)(?=\(\)?)) + name + support.function.asp + + + match + (?i:((?<=(\+|=|-|\&|\\|/|<|>|\(|,))\s*\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\b(?!(\(|\.))|\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\b(?=\s*(\+|=|-|\&|\\|/|<|>|\(|\))))) + name + variable.other.asp + + + match + !|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^=|\b(in|instanceof|new|delete|typeof|void)\b + name + keyword.operator.js + + + repository + + round-brackets + + begin + \( + beginCaptures + + 0 + + name + punctuation.section.round-brackets.begin.asp + + + end + \) + endCaptures + + 0 + + name + punctuation.section.round-brackets.end.asp + + + name + meta.round-brackets + patterns + + + include + $self + + + + + scopeName + source.asp.vb.net + uuid + 7F9C9343-D48E-4E7D-BFE8-F680714DCD3E + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/Batch File.tmLanguage b/extensions/continue/gui/textmate-syntaxes/Batch File.tmLanguage new file mode 100644 index 000000000000..499096364044 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/Batch File.tmLanguage @@ -0,0 +1,169 @@ + + + + + uuid + E07EC438-7B75-4437-8AA1-DA94C1E6EACC + patterns + + + name + keyword.command.dosbatch + match + \b(?i)(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\b + + + name + keyword.control.statement.dosbatch + match + \b(?i)(?:goto|call|exit)\b + + + name + keyword.control.conditional.if.dosbatch + match + \b(?i)if\s+((not)\s+)(exist|defined|errorlevel|cmdextversion)\b + + + name + keyword.control.conditional.dosbatch + match + \b(?i)(?:if|else)\b + + + name + keyword.control.repeat.dosbatch + match + \b(?i)for\b + + + name + keyword.operator.dosbatch + match + \b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\b + + + name + comment.line.rem.dosbatch + match + \b(?i)rem(?:$|\s.*$) + + + name + comment.line.colons.dosbatch + match + \s*:\s*:.*$ + + + captures + + 1 + + name + variable.parameter.function.begin.shell + + + name + variable.parameter.function.dosbatch + match + (?i)(%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?\d + + + captures + + 1 + + name + variable.parameter.loop.begin.shell + + + name + variable.parameter.loop.dosbatch + match + (?i)(%%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?[a-z] + + + captures + + 1 + + name + variable.other.parsetime.begin.shell + + 2 + + name + variable.other.parsetime.end.shell + + + name + variable.other.parsetime.dosbatch + match + (%)[^%]+(%) + + + captures + + 1 + + name + variable.other.delayed.begin.shell + + 2 + + name + variable.other.delayed.end.shell + + + name + variable.other.delayed.dosbatch + match + (!)[^!]+(!) + + + begin + " + endCaptures + + 0 + + name + punctuation.definition.string.end.shell + + + beginCaptures + + 0 + + name + punctuation.definition.string.begin.shell + + + name + string.quoted.double.dosbatch + end + "|$ + + + name + keyword.operator.pipe.dosbatch + match + [|] + + + name + keyword.operator.redirect.shell + match + &>|\d*>&\d*|\d*(>>|>|<)|\d*<&|\d*<> + + + name + Batch File + scopeName + source.dosbatch + fileTypes + + bat + + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/Clojure.tmLanguage b/extensions/continue/gui/textmate-syntaxes/Clojure.tmLanguage new file mode 100644 index 000000000000..bf864640fd16 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/Clojure.tmLanguage @@ -0,0 +1,440 @@ + + + + + fileTypes + + clj + cljs + clojure + + foldingStartMarker + \(\s*$ + foldingStopMarker + ^\s*\) + keyEquivalent + ^~C + name + Clojure + patterns + + + include + #comment + + + include + #shebang-comment + + + include + #qouted-sexp + + + include + #sexp + + + include + #keyfn + + + include + #string + + + include + #vector + + + include + #set + + + include + #map + + + include + #regexp + + + include + #var + + + include + #constants + + + include + #symbol + + + include + #whitespace + + + repository + + comment + + captures + + 1 + + name + punctuation.definition.comment.clojure + + + match + (;).*$\n? + name + comment.line.semicolon.clojure + + constants + + patterns + + + match + (nil)(?=(\s|\)|\]|\})) + name + constant.language.nil.clojure + + + match + (true|false) + name + constant.language.boolean.clojure + + + match + (\d+/\d+) + name + constant.numeric.ratio.clojure + + + match + (\d+r\d+) + name + constant.numeric.arbitrary-radix.clojure + + + match + (0x\d+) + name + constant.numeric.hexidecimal.clojure + + + match + (0\d+) + name + constant.numeric.octal.clojure + + + match + (\d+) + name + constant.numeric.decimal.clojure + + + match + (?<=(\s|\(|\[|\{)):[a-zA-Z0-9\#\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\})) + name + constant.keyword.clojure + + + + keyfn + + patterns + + + match + (?<=(\s|\(|\[|\{))(if(-[-a-z\?]*)?|when(-[-a-z]*)?|for(-[-a-z]*)?|cond|do|let(-[-a-z\?]*)?|binding|loop|recur|fn|throw[a-z\-]*|try|catch|finally|([a-z]*case))(?=(\s|\)|\]|\})) + name + storage.control.clojure + + + match + (?<=(\s|\(|\[|\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[a-z\-]*))(?=(\s|\)|\]|\})) + name + keyword.control.clojure + + + + map + + begin + (\{) + end + (\}) + name + meta.map.clojure + patterns + + + include + $self + + + + qouted-sexp + + begin + (['``]\() + beginCaptures + + 1 + + name + punctuation.section.expression.begin.clojure + + + end + (\))(\n)? + endCaptures + + 1 + + name + punctuation.section.expression.end.clojure + + 2 + + name + meta.after-expression.clojure + + + name + meta.qouted-expression.clojure + patterns + + + include + $self + + + + regexp + + begin + #\" + end + \" + name + string.regexp.clojure + patterns + + + include + #regexp_escaped_char + + + + regexp_escaped_char + + match + \\(\") + name + string.regexp.clojure + + set + + begin + (\#\{) + end + (\}) + name + meta.set.clojure + patterns + + + include + $self + + + + sexp + + begin + (\() + beginCaptures + + 1 + + name + punctuation.section.expression.begin.clojure + + + end + (\))(\n)? + endCaptures + + 1 + + name + punctuation.section.expression.end.clojure + + 2 + + name + meta.after-expression.clojure + + + name + meta.expression.clojure + patterns + + + begin + (?<=\()(ns|def|def-|defn|defn-|defvar|defvar-|defmacro|defmacro-|deftest)\s+(.+?)(?=\s) + beginCaptures + + 1 + + name + keyword.control.clojure + + 2 + + name + entity.global.clojure + + + end + (?=\)) + name + meta.definition.global.clojure + patterns + + + include + $self + + + + + include + $self + + + + shebang-comment + + captures + + 1 + + name + punctuation.definition.comment.shebang.clojure + + + match + ^(\#!).*$\n? + name + comment.line.semicolon.clojure + + string + + begin + (") + beginCaptures + + 1 + + name + punctuation.definition.string.begin.clojure + + + end + (") + endCaptures + + 1 + + name + punctuation.definition.string.end.clojure + + + name + string.quoted.double.clojure + patterns + + + match + \\. + name + constant.character.escape.clojure + + + + symbol + + patterns + + + match + (\w[\w\d]+) + name + meta.symbol.clojure + + + + var + + match + (?<=(\s|\(|\[|\{)\#)'[a-zA-Z0-9\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\})) + name + meta.var.clojure + + vector + + begin + (\[) + end + (\]) + name + meta.vector.clojure + patterns + + + include + $self + + + + whitespace + + match + \s+$ + name + invalid.trailing-whitespace + + + scopeName + source.clojure + smartTypingPairs + + + " + " + + + ( + ) + + + { + } + + + [ + ] + + + uuid + 6A87759F-F746-4E84-B788-965B46363202 + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/Dockerfile.tmLanguage b/extensions/continue/gui/textmate-syntaxes/Dockerfile.tmLanguage new file mode 100644 index 000000000000..ea224eb838d8 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/Dockerfile.tmLanguage @@ -0,0 +1,143 @@ + + + + + fileTypes + + Dockerfile + + name + Dockerfile + patterns + + + captures + + 1 + + name + keyword.control.dockerfile + + 2 + + name + keyword.other.special-method.dockerfile + + + match + ^\s*(?:(ONBUILD)\s+)?(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|VOLUME|USER|WORKDIR|COPY|LABEL|STOPSIGNAL|ARG)\s + + + captures + + 1 + + name + keyword.operator.dockerfile + + 2 + + name + keyword.other.special-method.dockerfile + + + match + ^\s*(?:(ONBUILD)\s+)?(CMD|ENTRYPOINT)\s + + + begin + " + beginCaptures + + 1 + + name + punctuation.definition.string.begin.dockerfile + + + end + " + endCaptures + + 1 + + name + punctuation.definition.string.end.dockerfile + + + name + string.quoted.double.dockerfile + patterns + + + match + \\. + name + constant.character.escaped.dockerfile + + + + + begin + ' + beginCaptures + + 1 + + name + punctuation.definition.string.begin.dockerfile + + + end + ' + endCaptures + + 1 + + name + punctuation.definition.string.end.dockerfile + + + name + string.quoted.single.dockerfile + patterns + + + match + \\. + name + constant.character.escaped.dockerfile + + + + + captures + + 1 + + name + punctuation.whitespace.comment.leading.dockerfile + + 2 + + name + comment.line.number-sign.dockerfile + + 3 + + name + punctuation.definition.comment.dockerfile + + + comment + comment.line + match + ^(\s*)((#).*$\n?) + + + scopeName + source.dockerfile + uuid + a39d8795-59d2-49af-aa00-fe74ee29576e + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/Groovy.tmLanguage b/extensions/continue/gui/textmate-syntaxes/Groovy.tmLanguage new file mode 100644 index 000000000000..e8973140a57f --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/Groovy.tmLanguage @@ -0,0 +1,2145 @@ + + + + + fileTypes + + groovy + gvy + + foldingStartMarker + (\{\s*$|^\s*// \{\{\{) + foldingStopMarker + ^\s*(\}|// \}\}\}$) + keyEquivalent + ^~G + name + Groovy + patterns + + + captures + + 1 + + name + punctuation.definition.comment.groovy + + + match + ^(#!).+$\n + name + comment.line.hashbang.groovy + + + captures + + 1 + + name + keyword.other.package.groovy + + 2 + + name + storage.modifier.package.groovy + + 3 + + name + punctuation.terminator.groovy + + + match + ^\s*(package)\b(?:\s*([^ ;$]+)\s*(;)?)? + name + meta.package.groovy + + + begin + (import static)\b\s* + beginCaptures + + 1 + + name + keyword.other.import.static.groovy + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + storage.modifier.import.groovy + + 3 + + name + punctuation.terminator.groovy + + + contentName + storage.modifier.import.groovy + end + \s*(?:$|(?=%>)(;)) + endCaptures + + 1 + + name + punctuation.terminator.groovy + + + name + meta.import.groovy + patterns + + + match + \. + name + punctuation.separator.groovy + + + match + \s + name + invalid.illegal.character_not_allowed_here.groovy + + + + + begin + (import)\b\s* + beginCaptures + + 1 + + name + keyword.other.import.groovy + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + storage.modifier.import.groovy + + 3 + + name + punctuation.terminator.groovy + + + contentName + storage.modifier.import.groovy + end + \s*(?:$|(?=%>)|(;)) + endCaptures + + 1 + + name + punctuation.terminator.groovy + + + name + meta.import.groovy + patterns + + + match + \. + name + punctuation.separator.groovy + + + match + \s + name + invalid.illegal.character_not_allowed_here.groovy + + + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + keyword.other.import.static.groovy + + 3 + + name + storage.modifier.import.groovy + + 4 + + name + punctuation.terminator.groovy + + + match + ^\s*(import)(?:\s+(static)\s+)\b(?:\s*([^ ;$]+)\s*(;)?)? + name + meta.import.groovy + + + include + #groovy + + + repository + + annotations + + patterns + + + begin + (?<!\.)(@[^ (]+)(\() + beginCaptures + + 1 + + name + storage.type.annotation.groovy + + 2 + + name + punctuation.definition.annotation-arguments.begin.groovy + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.annotation-arguments.end.groovy + + + name + meta.declaration.annotation.groovy + patterns + + + captures + + 1 + + name + constant.other.key.groovy + + 2 + + name + keyword.operator.assignment.groovy + + + match + (\w*)\s*(=) + + + include + #values + + + match + , + name + punctuation.definition.seperator.groovy + + + + + match + (?<!\.)@\S+ + name + storage.type.annotation.groovy + + + + anonymous-classes-and-new + + begin + \bnew\b + beginCaptures + + 0 + + name + keyword.control.new.groovy + + + end + (?<=\)|\])(?!\s*{)|(?<=})|(?=[;])|$ + patterns + + + begin + (\w+)\s*(?=\[) + beginCaptures + + 1 + + name + storage.type.groovy + + + end + }|(?=\s*(?:,|;|\)))|$ + patterns + + + begin + \[ + end + \] + patterns + + + include + #groovy + + + + + begin + { + end + (?=}) + patterns + + + include + #groovy + + + + + + + begin + (?=\w.*\(?) + end + (?<=\))|$ + patterns + + + include + #object-types + + + begin + \( + beginCaptures + + 1 + + name + storage.type.groovy + + + end + \) + patterns + + + include + #groovy + + + + + + + begin + { + end + } + name + meta.inner-class.groovy + patterns + + + include + #class-body + + + + + + braces + + begin + \{ + end + \} + patterns + + + include + #groovy-code + + + + class + + begin + (?=\w?[\w\s]*(?:class|(?:@)?interface|enum)\s+\w+) + end + } + endCaptures + + 0 + + name + punctuation.section.class.end.groovy + + + name + meta.definition.class.groovy + patterns + + + include + #storage-modifiers + + + include + #comments + + + captures + + 1 + + name + storage.modifier.groovy + + 2 + + name + entity.name.type.class.groovy + + + match + (class|(?:@)?interface|enum)\s+(\w+) + name + meta.class.identifier.groovy + + + begin + extends + beginCaptures + + 0 + + name + storage.modifier.extends.groovy + + + end + (?={|implements) + name + meta.definition.class.inherited.classes.groovy + patterns + + + include + #object-types-inherited + + + include + #comments + + + + + begin + (implements)\s + beginCaptures + + 1 + + name + storage.modifier.implements.groovy + + + end + (?=\s*extends|\{) + name + meta.definition.class.implemented.interfaces.groovy + patterns + + + include + #object-types-inherited + + + include + #comments + + + + + begin + { + end + (?=}) + name + meta.class.body.groovy + patterns + + + include + #class-body + + + + + + class-body + + patterns + + + include + #enum-values + + + include + #constructors + + + include + #groovy + + + + closures + + begin + \{(?=.*?->) + end + \} + patterns + + + begin + (?<=\{)(?=[^\}]*?->) + end + -> + endCaptures + + 0 + + name + keyword.operator.groovy + + + patterns + + + begin + (?!->) + end + (?=->) + name + meta.closure.parameters.groovy + patterns + + + begin + (?!,|->) + end + (?=,|->) + name + meta.closure.parameter.groovy + patterns + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + (?=,|->) + name + meta.parameter.default.groovy + patterns + + + include + #groovy-code + + + + + include + #parameters + + + + + + + + + begin + (?=[^}]) + end + (?=\}) + patterns + + + include + #groovy-code + + + + + + comment-block + + begin + /\* + captures + + 0 + + name + punctuation.definition.comment.groovy + + + end + \*/ + name + comment.block.groovy + + comments + + patterns + + + captures + + 0 + + name + punctuation.definition.comment.groovy + + + match + /\*\*/ + name + comment.block.empty.groovy + + + include + text.html.javadoc + + + include + #comment-block + + + captures + + 1 + + name + punctuation.definition.comment.groovy + + + match + (//).*$\n? + name + comment.line.double-slash.groovy + + + + constants + + patterns + + + match + \b([A-Z][A-Z0-9_]+)\b + name + constant.other.groovy + + + match + \b(true|false|null)\b + name + constant.language.groovy + + + + constructors + + applyEndPatternLast + 1 + begin + (?<=;|^)(?=\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\s+)*[A-Z]\w*\() + end + } + patterns + + + include + #method-content + + + + enum-values + + patterns + + + begin + (?<=;|^)\s*\b([A-Z0-9_]+)(?=\s*(?:,|;|}|\(|$)) + beginCaptures + + 1 + + name + constant.enum.name.groovy + + + end + ,|;|(?=})|^(?!\s*\w+\s*(?:,|$)) + patterns + + + begin + \( + end + \) + name + meta.enum.value.groovy + patterns + + + match + , + name + punctuation.definition.seperator.parameter.groovy + + + include + #groovy-code + + + + + + + + groovy + + patterns + + + include + #comments + + + include + #class + + + include + #variables + + + include + #methods + + + include + #annotations + + + include + #groovy-code + + + + groovy-code + + patterns + + + include + #groovy-code-minus-map-keys + + + include + #map-keys + + + + groovy-code-minus-map-keys + + comment + In some situations, maps can't be declared without enclosing []'s, + therefore we create a collection of everything but that + patterns + + + include + #comments + + + include + #annotations + + + include + #support-functions + + + include + #keyword-language + + + include + #values + + + include + #anonymous-classes-and-new + + + include + #keyword-operator + + + include + #types + + + include + #storage-modifiers + + + include + #parens + + + include + #closures + + + include + #braces + + + + keyword + + patterns + + + include + #keyword-operator + + + include + #keyword-language + + + + keyword-language + + patterns + + + match + \b(try|catch|finally|throw)\b + name + keyword.control.exception.groovy + + + match + \b((?<!\.)(?:return|break|continue|default|do|while|for|switch|if|else))\b + name + keyword.control.groovy + + + begin + \bcase\b + beginCaptures + + 0 + + name + keyword.control.groovy + + + end + : + endCaptures + + 0 + + name + punctuation.definition.case-terminator.groovy + + + name + meta.case.groovy + patterns + + + include + #groovy-code-minus-map-keys + + + + + begin + \b(assert)\s + beginCaptures + + 1 + + name + keyword.control.assert.groovy + + + end + $|;|} + name + meta.declaration.assertion.groovy + patterns + + + match + : + name + keyword.operator.assert.expression-seperator.groovy + + + include + #groovy-code-minus-map-keys + + + + + match + \b(throws)\b + name + keyword.other.throws.groovy + + + + keyword-operator + + patterns + + + match + \b(as)\b + name + keyword.operator.as.groovy + + + match + \b(in)\b + name + keyword.operator.in.groovy + + + match + \?\: + name + keyword.operator.elvis.groovy + + + match + \*\: + name + keyword.operator.spreadmap.groovy + + + match + \.\. + name + keyword.operator.range.groovy + + + match + \-> + name + keyword.operator.arrow.groovy + + + match + << + name + keyword.operator.leftshift.groovy + + + match + (?<=\S)\.(?=\S) + name + keyword.operator.navigation.groovy + + + match + (?<=\S)\?\.(?=\S) + name + keyword.operator.safe-navigation.groovy + + + begin + \? + beginCaptures + + 0 + + name + keyword.operator.ternary.groovy + + + end + (?=$|\)|}|]) + name + meta.evaluation.ternary.groovy + patterns + + + match + : + name + keyword.operator.ternary.expression-seperator.groovy + + + include + #groovy-code-minus-map-keys + + + + + match + ==~ + name + keyword.operator.match.groovy + + + match + =~ + name + keyword.operator.find.groovy + + + match + \b(instanceof)\b + name + keyword.operator.instanceof.groovy + + + match + (===|==|!=|<=|>=|<=>|<>|<|>|<<) + name + keyword.operator.comparison.groovy + + + match + = + name + keyword.operator.assignment.groovy + + + match + (\-\-|\+\+) + name + keyword.operator.increment-decrement.groovy + + + match + (\-|\+|\*|\/|%) + name + keyword.operator.arithmetic.groovy + + + match + (!|&&|\|\|) + name + keyword.operator.logical.groovy + + + + language-variables + + patterns + + + match + \b(this|super)\b + name + variable.language.groovy + + + + map-keys + + patterns + + + captures + + 1 + + name + constant.other.key.groovy + + 2 + + name + punctuation.definition.seperator.key-value.groovy + + + match + (\w+)\s*(:) + + + + method-call + + begin + ([\w$]+)(\() + beginCaptures + + 1 + + name + meta.method.groovy + + 2 + + name + punctuation.definition.method-parameters.begin.groovy + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.method-parameters.end.groovy + + + name + meta.method-call.groovy + patterns + + + match + , + name + punctuation.definition.seperator.parameter.groovy + + + include + #groovy-code + + + + method-content + + patterns + + + match + \s + + + include + #annotations + + + begin + (?=(?:\w|<)[^\(]*\s+(?:[\w$]|<)+\s*\() + end + (?=[\w$]+\s*\() + name + meta.method.return-type.java + patterns + + + include + #storage-modifiers + + + include + #types + + + + + begin + ([\w$]+)\s*\( + beginCaptures + + 1 + + name + entity.name.function.java + + + end + \) + name + meta.definition.method.signature.java + patterns + + + begin + (?=[^)]) + end + (?=\)) + name + meta.method.parameters.groovy + patterns + + + begin + (?=[^,)]) + end + (?=,|\)) + name + meta.method.parameter.groovy + patterns + + + match + , + name + punctuation.definition.separator.groovy + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + (?=,|\)) + name + meta.parameter.default.groovy + patterns + + + include + #groovy-code + + + + + include + #parameters + + + + + + + + + begin + (?=<) + end + (?=\s) + name + meta.method.paramerised-type.groovy + patterns + + + begin + < + end + > + name + storage.type.parameters.groovy + patterns + + + include + #types + + + match + , + name + punctuation.definition.seperator.groovy + + + + + + + begin + throws + beginCaptures + + 0 + + name + storage.modifier.groovy + + + end + (?={|;)|^(?=\s*(?:[^{\s]|$)) + name + meta.throwables.groovy + patterns + + + include + #object-types + + + + + begin + { + end + (?=}) + name + meta.method.body.java + patterns + + + include + #groovy-code + + + + + + methods + + applyEndPatternLast + 1 + begin + (?x:(?<=;|^|{)(?=\s* + (?: + (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier + | + (?:def) + | + (?: + (?: + (?:void|boolean|byte|char|short|int|float|long|double) + | + (?:@?(?:[a-zA-Z]\w*\.)*[A-Z]+\w*) # object type + ) + [\[\]]* + (?:<.*>)? + ) + + ) + \s+ + ([^=]+\s+)?\w+\s*\( + )) + end + }|(?=[^{]) + name + meta.definition.method.groovy + patterns + + + include + #method-content + + + + nest_curly + + begin + \{ + captures + + 0 + + name + punctuation.section.scope.groovy + + + end + \} + patterns + + + include + #nest_curly + + + + numbers + + patterns + + + match + ((0(x|X)[0-9a-fA-F]*)|(\+|-)?\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\b + name + constant.numeric.groovy + + + + object-types + + patterns + + + begin + \b((?:[a-z]\w*\.)*(?:[A-Z]+\w*[a-z]+\w*|UR[LI]))< + end + >|[^\w\s,\?<\[\]] + name + storage.type.generic.groovy + patterns + + + include + #object-types + + + begin + < + comment + This is just to support <>'s with no actual type prefix + end + >|[^\w\s,\[\]<] + name + storage.type.generic.groovy + + + + + begin + \b((?:[a-z]\w*\.)*[A-Z]+\w*[a-z]+\w*)(?=\[) + end + (?=[^\]\s]) + name + storage.type.object.array.groovy + patterns + + + begin + \[ + end + \] + patterns + + + include + #groovy + + + + + + + match + \b(?:[a-zA-Z]\w*\.)*(?:[A-Z]+\w*[a-z]+\w*|UR[LI])\b + name + storage.type.groovy + + + + object-types-inherited + + patterns + + + begin + \b((?:[a-zA-Z]\w*\.)*[A-Z]+\w*[a-z]+\w*)< + end + >|[^\w\s,\?<\[\]] + name + entity.other.inherited-class.groovy + patterns + + + include + #object-types-inherited + + + begin + < + comment + This is just to support <>'s with no actual type prefix + end + >|[^\w\s,\[\]<] + name + storage.type.generic.groovy + + + + + captures + + 1 + + name + keyword.operator.dereference.groovy + + + match + \b(?:[a-zA-Z]\w*(\.))*[A-Z]+\w*[a-z]+\w*\b + name + entity.other.inherited-class.groovy + + + + parameters + + patterns + + + include + #annotations + + + include + #storage-modifiers + + + include + #types + + + match + \w+ + name + variable.parameter.method.groovy + + + + parens + + begin + \( + end + \) + patterns + + + include + #groovy-code + + + + primitive-arrays + + patterns + + + match + \b(?:void|boolean|byte|char|short|int|float|long|double)(\[\])*\b + name + storage.type.primitive.array.groovy + + + + primitive-types + + patterns + + + match + \b(?:void|boolean|byte|char|short|int|float|long|double)\b + name + storage.type.primitive.groovy + + + + regexp + + patterns + + + begin + /(?=[^/]+/([^>]|$)) + beginCaptures + + 0 + + name + punctuation.definition.string.regexp.begin.groovy + + + end + / + endCaptures + + 0 + + name + punctuation.definition.string.regexp.end.groovy + + + name + string.regexp.groovy + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + + begin + ~" + beginCaptures + + 0 + + name + punctuation.definition.string.regexp.begin.groovy + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.regexp.end.groovy + + + name + string.regexp.compiled.groovy + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + + + storage-modifiers + + patterns + + + match + \b(private|protected|public)\b + name + storage.modifier.access-control.groovy + + + match + \b(static)\b + name + storage.modifier.static.groovy + + + match + \b(final)\b + name + storage.modifier.final.groovy + + + match + \b(native|synchronized|abstract|threadsafe|transient)\b + name + storage.modifier.other.groovy + + + + string-quoted-double + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.double.groovy + patterns + + + include + #string-quoted-double-contents + + + + string-quoted-double-contents + + patterns + + + match + \\. + name + constant.character.escape.groovy + + + applyEndPatternLast + 1 + begin + \$\w + end + (?=\W) + name + variable.other.interpolated.groovy + patterns + + + match + \w + name + variable.other.interpolated.groovy + + + match + \. + name + keyword.other.dereference.groovy + + + + + begin + \$\{ + captures + + 0 + + name + punctuation.section.embedded.groovy + + + end + \} + name + source.groovy.embedded.source + patterns + + + include + #nest_curly + + + + + + string-quoted-double-multiline + + begin + """ + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + """ + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.double.multiline.groovy + patterns + + + include + #string-quoted-double-contents + + + + string-quoted-single + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.single.groovy + patterns + + + include + #string-quoted-single-contents + + + + string-quoted-single-contents + + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + string-quoted-single-multiline + + begin + ''' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + ''' + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.single.multiline.groovy + patterns + + + include + #string-quoted-single-contents + + + + strings + + patterns + + + include + #string-quoted-double-multiline + + + include + #string-quoted-single-multiline + + + include + #string-quoted-double + + + include + #string-quoted-single + + + include + #regexp + + + + structures + + begin + \[ + beginCaptures + + 0 + + name + punctuation.definition.structure.begin.groovy + + + end + \] + endCaptures + + 0 + + name + punctuation.definition.structure.end.groovy + + + name + meta.structure.groovy + patterns + + + include + #groovy-code + + + match + , + name + punctuation.definition.separator.groovy + + + + support-functions + + patterns + + + match + (?x)\b(?:sprintf|print(?:f|ln)?)\b + name + support.function.print.groovy + + + match + (?x)\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same| + Null)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length| + ArrayEquals)))\b + name + support.function.testing.groovy + + + + types + + patterns + + + match + \b(def)\b + name + storage.type.def.groovy + + + include + #primitive-types + + + include + #primitive-arrays + + + include + #object-types + + + + values + + patterns + + + include + #language-variables + + + include + #strings + + + include + #numbers + + + include + #constants + + + include + #types + + + include + #structures + + + include + #method-call + + + + variables + + applyEndPatternLast + 1 + patterns + + + begin + (?x:(?= + (?: + (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier + | + (?:def) + | + (?:void|boolean|byte|char|short|int|float|long|double) + | + (?:(?:[a-z]\w*\.)*[A-Z]+\w*) # object type + ) + \s+ + [\w\d_<>\[\],\s]+ + (?:=|$) + + )) + end + ;|$ + name + meta.definition.variable.groovy + patterns + + + match + \s + + + captures + + 1 + + name + constant.variable.groovy + + + match + ([A-Z_0-9]+)\s+(?=\=) + + + captures + + 1 + + name + meta.definition.variable.name.groovy + + + match + (\w[^\s,]*)\s+(?=\=) + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + $ + patterns + + + include + #groovy-code + + + + + captures + + 1 + + name + meta.definition.variable.name.groovy + + + match + (\w[^\s=]*)(?=\s*($|;)) + + + include + #groovy-code + + + + + + + scopeName + source.groovy + uuid + B3A64888-EBBB-4436-8D9E-F1169C5D7613 + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/Handlebars.json b/extensions/continue/gui/textmate-syntaxes/Handlebars.json new file mode 100644 index 000000000000..222ce2960251 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/Handlebars.json @@ -0,0 +1,854 @@ +{ + "name": "Handlebars", + "repository": { + "html_tags": { + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>(<)/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "meta.scope.between-tag-pair.html" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "meta.tag.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml.html", + "patterns": [ + { + "include": "#tag_generic_attribute" + }, + { + "include": "#string" + } + ] + }, + { + "begin": " + + + (^|\G)(?!\s*$|#|[ ]{0,3}((([*_][ ]{0,2}\2){2,}[ \t]*$\n?)|([*+-]([ ]{1,3}|\t)))|\s*\[.+?\]:|>) + + raw_block + + begin + (^|\G)([ ]{4}|\t) + name + markup.raw.block.markdown + while + (^|\G)([ ]{4}|\t) + + fenced_code_block_css + + begin + (^|\G)\s*([`~]{3,})\s*(css|css.erb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.css + + + + fenced_code_block_basic + + begin + (^|\G)\s*([`~]{3,})\s*(html|htm|shtml|xhtml|inc|tmpl|tpl)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.html.basic + + + + fenced_code_block_ini + + begin + (^|\G)\s*([`~]{3,})\s*(ini|conf)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ini + + + + fenced_code_block_java + + begin + (^|\G)\s*([`~]{3,})\s*(java|bsh)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.java + + + + fenced_code_block_lua + + begin + (^|\G)\s*([`~]{3,})\s*(lua)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.lua + + + + fenced_code_block_makefile + + begin + (^|\G)\s*([`~]{3,})\s*(Makefile|makefile|GNUmakefile|OCamlMakefile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.makefile + + + + fenced_code_block_perl + + begin + (^|\G)\s*([`~]{3,})\s*(perl|pl|pm|pod|t|PL|psgi|vcl)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.perl + + + + fenced_code_block_r + + begin + (^|\G)\s*([`~]{3,})\s*(R|r|s|S|Rprofile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.r + + + + fenced_code_block_ruby + + begin + (^|\G)\s*([`~]{3,})\s*(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ruby + + + + fenced_code_block_php + + begin + (^|\G)\s*([`~]{3,})\s*(php|php3|php4|php5|phpt|phtml|aw|ctp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.html.php + + + + fenced_code_block_sql + + begin + (^|\G)\s*([`~]{3,})\s*(sql|ddl|dml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.sql + + + + fenced_code_block_vs_net + + begin + (^|\G)\s*([`~]{3,})\s*(vb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.asp.vb.net + + + + fenced_code_block_xml + + begin + (^|\G)\s*([`~]{3,})\s*(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.xml + + + + fenced_code_block_xsl + + begin + (^|\G)\s*([`~]{3,})\s*(xsl|xslt)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.xml.xsl + + + + fenced_code_block_yaml + + begin + (^|\G)\s*([`~]{3,})\s*(yaml|yml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.yaml + + + + fenced_code_block_dosbatch + + begin + (^|\G)\s*([`~]{3,})\s*(bat|batch)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.dosbatch + + + + fenced_code_block_clojure + + begin + (^|\G)\s*([`~]{3,})\s*(clj|cljs|clojure)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.clojure + + + + fenced_code_block_coffee + + begin + (^|\G)\s*([`~]{3,})\s*(coffee|Cakefile|coffee.erb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.coffee + + + + fenced_code_block_c + + begin + (^|\G)\s*([`~]{3,})\s*(c|h)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.c + + + + fenced_code_block_diff + + begin + (^|\G)\s*([`~]{3,})\s*(patch|diff|rej)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.diff + + + + fenced_code_block_dockerfile + + begin + (^|\G)\s*([`~]{3,})\s*(dockerfile|Dockerfile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.dockerfile + + + + fenced_code_block_git_commit + + begin + (^|\G)\s*([`~]{3,})\s*(COMMIT_EDITMSG|MERGE_MSG)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.git-commit + + + + fenced_code_block_git_rebase + + begin + (^|\G)\s*([`~]{3,})\s*(git-rebase-todo)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.git-rebase + + + + fenced_code_block_groovy + + begin + (^|\G)\s*([`~]{3,})\s*(groovy|gvy)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.groovy + + + + fenced_code_block_jade + + begin + (^|\G)\s*([`~]{3,})\s*(jade)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.jade + + + + fenced_code_block_js + + begin + (^|\G)\s*([`~]{3,})\s*(js|jsx|javascript)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.js + + + + fenced_code_block_js_regexp + + begin + (^|\G)\s*([`~]{3,})\s*(regexp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.js.regexp + + + + fenced_code_block_json + + begin + (^|\G)\s*([`~]{3,})\s*(json|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.json + + + + fenced_code_block_less + + begin + (^|\G)\s*([`~]{3,})\s*(less)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.css.less + + + + fenced_code_block_objc + + begin + (^|\G)\s*([`~]{3,})\s*(objectivec|mm|objc|obj-c|m|h)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.objc + + + + fenced_code_block_perl6 + + begin + (^|\G)\s*([`~]{3,})\s*(perl6|p6|pl6|pm6|nqp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.perl.6 + + + + fenced_code_block_powershell + + begin + (^|\G)\s*([`~]{3,})\s*(powershell|ps1|psm1|psd1)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.powershell + + + + fenced_code_block_python + + begin + (^|\G)\s*([`~]{3,})\s*(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.python + + + + fenced_code_block_regexp_python + + begin + (^|\G)\s*([`~]{3,})\s*(re)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.regexp.python + + + + fenced_code_block_shell + + begin + (^|\G)\s*([`~]{3,})\s*(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.shell + + + + fenced_code_block_ts + + begin + (^|\G)\s*([`~]{3,})\s*(typescript|ts)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ts + + + + fenced_code_block_tsx + + begin + (^|\G)\s*([`~]{3,})\s*(tsx)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.tsx + + + + fenced_code_block_csharp + + begin + (^|\G)\s*([`~]{3,})\s*(cs|csharp|c#)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)(\2)\n + patterns + + + include + source.cs + + + + separator + + match + (^|\G)[ ]{0,3}([*-_])([ ]{0,2}\2){2,}[ \t]*$\n? + name + meta.separator.markdown + + + + inline + + patterns + + + include + #ampersand + + + include + #bracket + + + include + #bold + + + include + #italic + + + include + #raw + + + include + #escape + + + include + #image-inline + + + include + #image-ref + + + include + #link-email + + + include + #link-inet + + + include + #link-inline + + + include + #link-ref + + + include + #link-ref-literal + + + repository + + ampersand + + comment + + Markdown will convert this for us. We match it so that the + HTML grammar will not mark it up as invalid. + + match + &(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);) + name + meta.other.valid-ampersand.markdown + + bold + + begin + (?x) + (\*\*|__)(?=\S) # Open + (?= + ( + <[^>]*+> # HTML tags + | (?<raw>`+)([^`]|(?!(?<!`)\k<raw>(?!`))`)*+\k<raw> + # Raw + | \\[\\`*_{}\[\]()#.!+\->]?+ # Escapes + | \[ + ( + (?<square> # Named group + [^\[\]\\] # Match most chars + | \\. # Escaped chars + | \[ \g<square>*+ \] # Nested brackets + )*+ + \] + ( + ( # Reference Link + [ ]? # Optional space + \[[^\]]*+\] # Ref name + ) + | ( # Inline Link + \( # Opening paren + [ \t]*+ # Optional whtiespace + <?(.*?)>? # URL + [ \t]*+ # Optional whtiespace + ( # Optional Title + (?<title>['"]) + (.*?) + \k<title> + )? + \) + ) + ) + ) + | (?!(?<=\S)\1). # Everything besides + # style closer + )++ + (?<=\S)\1 # Close + ) + + captures + + 1 + + name + punctuation.definition.bold.markdown + + + end + (?<=\S)(\1) + name + markup.bold.markdown + patterns + + + applyEndPatternLast + 1 + begin + (?=<[^>]*?>) + end + (?<=>) + patterns + + + include + text.html.basic + + + + + include + #escape + + + include + #ampersand + + + include + #bracket + + + include + #raw + + + include + #italic + + + include + #image-inline + + + include + #link-inline + + + include + #link-inet + + + include + #link-email + + + include + #image-ref + + + include + #link-ref-literal + + + include + #link-ref + + + + bracket + + comment + + Markdown will convert this for us. We match it so that the + HTML grammar will not mark it up as invalid. + + match + <(?![a-z/?\$!]) + name + meta.other.valid-bracket.markdown + + escape + + match + \\[-`*_#+.!(){}\[\]\\>] + name + constant.character.escape.markdown + + image-inline + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 10 + + name + string.other.link.description.title.markdown + + 11 + + name + punctuation.definition.string.markdown + + 12 + + name + punctuation.definition.string.markdown + + 13 + + name + string.other.link.description.title.markdown + + 14 + + name + punctuation.definition.string.markdown + + 15 + + name + punctuation.definition.string.markdown + + 16 + + name + punctuation.definition.metadata.markdown + + 2 + + name + string.other.link.description.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + invalid.illegal.whitespace.markdown + + 6 + + name + punctuation.definition.metadata.markdown + + 7 + + name + punctuation.definition.link.markdown + + 8 + + name + markup.underline.link.image.markdown + + 9 + + name + punctuation.definition.link.markdown + + + match + (?x: + (\!\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\]) + # Match the link text. + ([ ])? # Space not allowed + (\() # Opening paren for url + (<?)(\S+?)(>?) # The url + [ \t]* # Optional whitespace + (?: + ((\().+?(\))) # Match title in parens… + | ((").+?(")) # or in quotes. + )? # Title is optional + \s* # Optional whitespace + (\)) + ) + name + meta.image.inline.markdown + + image-ref + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.description.markdown + + 4 + + name + punctuation.definition.string.begin.markdown + + 5 + + name + punctuation.definition.constant.markdown + + 6 + + name + constant.other.reference.link.markdown + + 7 + + name + punctuation.definition.constant.markdown + + + match + (\!\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\]) + name + meta.image.reference.markdown + + italic + + begin + (?x) + (\*|_)(?=\S) # Open + (?= + ( + <[^>]*+> # HTML tags + | (?<raw>`+)([^`]|(?!(?<!`)\k<raw>(?!`))`)*+\k<raw> + # Raw + | \\[\\`*_{}\[\]()#.!+\->]?+ # Escapes + | \[ + ( + (?<square> # Named group + [^\[\]\\] # Match most chars + | \\. # Escaped chars + | \[ \g<square>*+ \] # Nested brackets + )*+ + \] + ( + ( # Reference Link + [ ]? # Optional space + \[[^\]]*+\] # Ref name + ) + | ( # Inline Link + \( # Opening paren + [ \t]*+ # Optional whtiespace + <?(.*?)>? # URL + [ \t]*+ # Optional whtiespace + ( # Optional Title + (?<title>['"]) + (.*?) + \k<title> + )? + \) + ) + ) + ) + | \1\1 # Must be bold closer + | (?!(?<=\S)\1). # Everything besides + # style closer + )++ + (?<=\S)\1 # Close + ) + + captures + + 1 + + name + punctuation.definition.italic.markdown + + + end + (?<=\S)(\1)((?!\1)|(?=\1\1)) + name + markup.italic.markdown + patterns + + + applyEndPatternLast + 1 + begin + (?=<[^>]*?>) + end + (?<=>) + patterns + + + include + text.html.basic + + + + + include + #escape + + + include + #ampersand + + + include + #bracket + + + include + #raw + + + include + #bold + + + include + #image-inline + + + include + #link-inline + + + include + #link-inet + + + include + #link-email + + + include + #image-ref + + + include + #link-ref-literal + + + include + #link-ref + + + + link-email + + captures + + 1 + + name + punctuation.definition.link.markdown + + 2 + + name + markup.underline.link.markdown + + 4 + + name + punctuation.definition.link.markdown + + + match + (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>) + name + meta.link.email.lt-gt.markdown + + link-inet + + captures + + 1 + + name + punctuation.definition.link.markdown + + 2 + + name + markup.underline.link.markdown + + 3 + + name + punctuation.definition.link.markdown + + + match + (<)((?:https?|ftp)://.*?)(>) + name + meta.link.inet.markdown + + link-inline + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 10 + + name + string.other.link.description.title.markdown + + 11 + + name + punctuation.definition.string.begin.markdown + + 12 + + name + punctuation.definition.string.end.markdown + + 13 + + name + string.other.link.description.title.markdown + + 14 + + name + punctuation.definition.string.begin.markdown + + 15 + + name + punctuation.definition.string.end.markdown + + 16 + + name + punctuation.definition.metadata.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + invalid.illegal.whitespace.markdown + + 6 + + name + punctuation.definition.metadata.markdown + + 7 + + name + punctuation.definition.link.markdown + + 8 + + name + markup.underline.link.markdown + + 9 + + name + punctuation.definition.link.markdown + + + match + (?x: + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\]) + # Match the link text. + ([ ])? # Space not allowed + (\() # Opening paren for url + (<?)(.*?)(>?) # The url + [ \t]* # Optional whitespace + (?: + ((\().+?(\))) # Match title in parens… + | ((").+?(")) # or in quotes. + )? # Title is optional + \s* # Optional whitespace + (\)) + ) + name + meta.link.inline.markdown + + link-ref + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + punctuation.definition.constant.begin.markdown + + 6 + + name + constant.other.reference.link.markdown + + 7 + + name + punctuation.definition.constant.end.markdown + + + match + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\]) + name + meta.link.reference.markdown + + link-ref-literal + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + punctuation.definition.constant.begin.markdown + + 6 + + name + punctuation.definition.constant.end.markdown + + + match + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\]) + name + meta.link.reference.literal.markdown + + raw + + captures + + 1 + + name + punctuation.definition.raw.markdown + + 3 + + name + punctuation.definition.raw.markdown + + + match + (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1) + name + markup.inline.raw.markdown + + + + + scopeName + text.html.markdown + uuid + 0A1D9874-B448-11D9-BD50-000D93B6E43C + + diff --git a/extensions/continue/gui/textmate-syntaxes/php.json b/extensions/continue/gui/textmate-syntaxes/php.json new file mode 100644 index 000000000000..7bbcb167979a --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/php.json @@ -0,0 +1,2638 @@ +{ + "scopeName": "text.html.php", + "name": "PHP", + "fileTypes": [ + "aw", + "ctp", + "inc", + "install", + "module", + "php", + "php_cs", + "php3", + "php4", + "php5", + "phpt", + "phtml", + "profile" + ], + "firstLineMatch": "^#!.*(?))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.php" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.php" + } + }, + "patterns": [ + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.metatag.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.metatag.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + } + }, + "name": "meta.embedded.line.php", + "patterns": [ + { + "captures": { + "1": { + "name": "source.php" + }, + "2": { + "name": "punctuation.section.embedded.end.php" + }, + "3": { + "name": "source.php" + } + }, + "match": "\\G(\\s*)((\\?))(?=>)", + "name": "meta.special.empty-tag.php" + }, + { + "begin": "\\G", + "contentName": "source.php", + "end": "(\\?)(?=>)", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + } + }, + "patterns": [ + { + "include": "text.html.basic" + } + ], + "repository": { + "class-builtin": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Diff\\\\(Memory|Base|DOM|File)|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection|mmandCursor)|ursor(Exception)?|lient)|Timestamp|I(n(sertBatch|t(32|64))|d)|D(B(Ref)?|eleteBatch|ate)|UpdateBatch|Pool|Write(Batch|ConcernException)|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(ync(ReaderWriter|Mutex|Semaphore|Event)|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(RTime\\\\(StopWatch|PerformanceCounter)|ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Ya(f_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|r_(Server(_Exception)?|C(oncurrent_Client|lient(_Exception)?)))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|ll(ectable|ator))|URLFile|a(chingIterator|llbackFilterIterator))|T(hread(ed)?|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tl(RuleBasedBreakIterator|BreakIterator|C(odePointBreakIterator|alendar)|TimeZone|Iterator|DateFormatter|PartsIterator)|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|Z(MQ(Socket|Context|Device|Poll)?|ipArchive)|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(I(nterface|mmutable)|Zone)?|Interval|Period))|U(n(derflowException|expectedValueException)|Converter)|JsonSerializable|finfo|P(har(Data|FileInfo)?|ool|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|ent(B(uffer(Event)?|ase)|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|F(il(terIterator|esystemIterator)|ANNConnection)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b", + "name": "support.class.builtin.php" + } + ] + }, + "class-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "begin": "(?=[\\\\a-zA-Z_])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?:#@\\+)?\\s*$", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "comment": "This now only highlights a docblock if the first line contains only /**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n\t\t\t\t\t\t\t\t- Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate", + "end": "\\*/", + "name": "comment.block.documentation.phpdoc.php", + "patterns": [ + { + "include": "#php_doc" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "name": "comment.block.php" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.double-slash.php" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.number-sign.php" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "begin": "(?xi)(?=\n\t\t\t (\n\t\t\t (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)|\n\t\t\t ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n\t\t\t )\n\t\t\t [^a-z_0-9\\\\])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "constant.other.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])", + "end": "(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])", + "patterns": [ + { + "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", + "name": "constant.language.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b", + "name": "support.constant.core.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b", + "name": "support.constant.std.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b", + "name": "support.constant.ext.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b", + "name": "support.constant.parser-token.php" + }, + { + "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\n \t\t\t\tHowever, if there is no constant defined with the given name then a notice\n \t\t\t\tis generated and the constant is assumed to have the value of its name.", + "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*", + "name": "constant.other.php" + } + ] + } + ] + }, + "function-arguments": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?xi)\n\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "support.function.construct.php" + }, + "7": { + "name": "punctuation.definition.array.begin.php" + } + }, + "contentName": "meta.array.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.function.argument.array.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "constant.language.php" + }, + "7": { + "name": "punctuation.section.array.begin.php" + }, + "8": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "9": { + "name": "punctuation.section.array.end.php" + }, + "10": { + "name": "invalid.illegal.non-null-typehinted.php" + } + }, + "match": "(?xi)\n\t\t\t\t\t\t\t\\s*(array|callable) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|(\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment\n\t\t\t\t\t\t\t", + "name": "meta.function.argument.array.php" + }, + { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z_0-9]*\\s*&?\\s*(?:\\.\\.\\.)?\\$)", + "end": "(?=,|\\)|/[/*]|\\#|$)", + "name": "meta.function.argument.typehinted.php", + "patterns": [ + { + "include": "#class-name" + }, + { + "captures": { + "1": { + "name": "support.class.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "constant.language.php" + }, + "7": { + "name": "invalid.illegal.non-null-typehinted.php" + } + }, + "match": "(?xi)\n \t\t\t\t\t\t\t\\s*([a-z_][a-z_0-9]*)? # Typehinted class name\n \t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n \t\t\t\t\t\t\t\\s*(((?:\\.\\.\\.)?\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n \t\t\t\t\t\t\t(?:\n \t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n \t\t\t\t\t\t\t)?\n \t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t " + } + ] + }, + { + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?:\\s*(&))?\\s*(((?:\\.\\.\\.)?\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.argument.no-default.php" + }, + { + "begin": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\s*(=)\\s*)\\s*(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))?", + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.assignment.php" + }, + "5": { + "name": "punctuation.section.array.begin.php" + }, + "6": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "7": { + "name": "punctuation.section.array.end.php" + } + }, + "end": "(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.argument.default.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()", + "comment": "Functions in a user-defined namespace (overrides any built-ins)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "include": "#user-function-call" + } + ] + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + }, + { + "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "comment": "Root namespace function calls (built-in or user)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "match": "(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()", + "name": "support.function.construct.php" + }, + { + "include": "#support" + }, + { + "include": "#user-function-call" + } + ] + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "(?=<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "injections": { + "*": { + "patterns": [ + { + "include": "#interpolation" + } + ] + } + }, + "name": "string.unquoted.heredoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + }, + { + "begin": "(?=<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.heredoc.nowdoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + } + ], + "repository": { + "heredoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*(['\"]?)(HTML)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "text.html", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(XML)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "text.xml", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(SQL)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.sql", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(JAVASCRIPT)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.js", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(JSON)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.json", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(CSS)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.css", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(REGEX)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "string.regexp.heredoc.php", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", + "end": "$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\2)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "end": "^(\\3)\\b", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + } + } + ] + } + } + }, + "instantiation": { + "begin": "(?i)(new)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.new.php" + } + }, + "end": "(?i)(?=[^$a-z0-9_\\\\])", + "patterns": [ + { + "match": "(parent|static|self)(?=[^a-z0-9_])", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation": { + "comment": "http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing", + "patterns": [ + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.numeric.octal.php" + }, + { + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.numeric.hex.php" + }, + { + "match": "\\\\[enrt\\\\\\$\\\"]", + "name": "constant.character.escape.php" + }, + { + "begin": "(\\{)(?=\\$.*?\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#variable-name" + } + ] + }, + "invoke-call": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + }, + "2": { + "name": "variable.other.php" + } + }, + "match": "(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()", + "name": "meta.function-call.invoke.php" + }, + "language": { + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\{", + "name": "punctuation.section.scope.begin.php" + }, + { + "match": "\\}", + "name": "punctuation.section.scope.end.php" + }, + { + "begin": "(?i)^\\s*(interface)\\s+([a-z0-9_]+)\\s*(extends)?\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.interface.php" + }, + "2": { + "name": "entity.name.type.interface.php" + }, + "3": { + "name": "storage.modifier.extends.php" + } + }, + "end": "((?:[a-zA-Z0-9_]+\\s*,\\s*)*)([a-zA-Z0-9_]+)?\\s*(?:(?=\\{)|$)", + "endCaptures": { + "1": { + "patterns": [ + { + "match": "[a-zA-Z0-9_]+", + "name": "entity.other.inherited-class.php" + }, + { + "match": ",", + "name": "punctuation.separator.classes.php" + } + ] + }, + "2": { + "name": "entity.other.inherited-class.php" + } + }, + "name": "meta.interface.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?i)^\\s*(trait)\\s+([a-z0-9_]+)", + "beginCaptures": { + "1": { + "name": "storage.type.trait.php" + }, + "2": { + "name": "entity.name.type.trait.php" + } + }, + "end": "(?=[{])", + "name": "meta.trait.php", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\b\\s+(?=([a-z0-9_\\\\]+\\s*($|[;{]|(\\/[\\/*])))|$)", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.php" + } + }, + "contentName": "entity.name.type.namespace.php", + "end": "(?i)(?=\\s*$|[^a-z0-9_\\\\])", + "name": "meta.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + { + "begin": "(?i)\\s*\\b(use)\\s+(?:((const)|(function))\\s+)?", + "beginCaptures": { + "1": { + "name": "keyword.other.use.php" + }, + "3": { + "name": "storage.type.const.php" + }, + "4": { + "name": "storage.type.function.php" + } + }, + "end": "(?=;|(?:^\\s*$))", + "name": "meta.use.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)\\s*(?=[a-z_0-9\\\\])", + "end": "(?xi)(?:\n \t\t\t (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))\n \t\t\t |(?=,|;|$)\n \t\t\t )", + "endCaptures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "name": "support.other.namespace.use-as.php" + } + }, + "patterns": [ + { + "include": "#class-builtin" + }, + { + "begin": "(?i)\\s*(?=[\\\\a-z_0-9])", + "end": "$|(?=[\\s,;])", + "name": "support.other.namespace.use.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + ] + }, + { + "match": "\\s*,\\s*" + } + ] + }, + { + "begin": "(?i)^\\s*(abstract|final)?\\s*(class)\\s+([a-z0-9_]+)\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.abstract.php" + }, + "2": { + "name": "storage.type.class.php" + }, + "3": { + "name": "entity.name.type.class.php" + } + }, + "end": "(?=[;{])", + "name": "meta.class.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?=[^a-z_0-9\\\\])", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + }, + { + "begin": "(?i)(implements)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.php" + } + }, + "end": "(?i)(?=[;{])", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(?=[a-z0-9_\\\\]+)", + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.php" + } + }, + "match": "\\s*\\b((break|c(ase|ontinue)|d(e(clare|fault)|ie|o)|e(lse(if)?|nd(declare|for(each)?|if|switch|while)|xit)|for(each)?|if|return|switch|use|while|yield))\\b" + }, + { + "begin": "(?i)\\b((?:require|include)(?:_once)?)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.php" + } + }, + "end": "(?=\\s|;|$)", + "name": "meta.include.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\b(catch)\\b\\s*\\(\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.php" + } + }, + "end": "([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*\\)", + "endCaptures": { + "1": { + "name": "support.class.exception.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "name": "meta.catch.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "match": "\\b(catch|try|throw|exception|finally)\\b", + "name": "keyword.control.exception.php" + }, + { + "begin": "(?i)\\b(function)\\s*(&\\s*)?(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.php" + }, + "2": { + "name": "storage.modifier.reference.php" + } + }, + "end": "(?=\\{)", + "name": "meta.function.closure.php", + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "contentName": "meta.function.arguments.php", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "begin": "(?i)(use)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.function.use.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", + "name": "meta.function.closure.use.php" + } + ] + } + ] + }, + { + "begin": "(?x)\\s*\n\t\t\t\t\t ((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n\t\t\t\t (function)\n\t\t\t\t (?:\\s+|(\\s*&\\s*))\n\t\t\t\t (?:\n\t\t\t\t (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n\t\t\t\t |([a-zA-Z0-9_]+)\n\t\t\t\t )\n\t\t\t\t \\s*\n\t\t\t\t (\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected|static", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "support.function.magic.php" + }, + "5": { + "name": "entity.name.function.php" + }, + "6": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "contentName": "meta.function.arguments.php", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "name": "meta.function.php", + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "include": "#invoke-call" + }, + { + "begin": "(?xi)\\s*(?=\n\t\t\t\t [a-z_0-9$\\\\]+(::)\n (?:\n \t\t\t\t ([a-z_][a-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?\n\t\t\t\t )", + "end": "(?x)(::)\n (?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.static.php" + }, + "3": { + "name": "variable.other.class.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "match": "(self|static|parent)\\b", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + }, + "3": { + "name": "punctuation.definition.array.end.php" + } + }, + "match": "(array)(\\()(\\))", + "name": "meta.array.empty.php" + }, + { + "begin": "(array)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.php" + } + }, + "match": "(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset)\\s*\\)" + }, + { + "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object)\\b", + "name": "storage.type.php" + }, + { + "match": "(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\\b", + "name": "storage.modifier.php" + }, + { + "include": "#object" + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "include": "#heredoc" + }, + { + "match": "\\.=?", + "name": "keyword.operator.string.php" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "captures": { + "1": { + "name": "keyword.operator.assignment.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "storage.modifier.reference.php" + } + }, + "match": "(?:(\\=)(&))|(&(?=[$A-Za-z_]))" + }, + { + "match": "(@)", + "name": "keyword.operator.error-control.php" + }, + { + "match": "(===|==|!==|!=|<>)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "(<=|>=|<|>)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "(\\-\\-|\\+\\+)", + "name": "keyword.operator.increment-decrement.php" + }, + { + "match": "(\\-|\\+|\\*|/|%)", + "name": "keyword.operator.arithmetic.php" + }, + { + "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", + "name": "keyword.operator.logical.php" + }, + { + "include": "#function-call" + }, + { + "match": "<<|>>|~|\\^|&|\\|", + "name": "keyword.operator.bitwise.php" + }, + { + "begin": "(?i)\\b(instanceof)\\b\\s+(?=[\\\\$a-z_])", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.php" + } + }, + "end": "(?=[^\\\\$A-Za-z_0-9])", + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#numbers" + }, + { + "include": "#instantiation" + }, + { + "captures": { + "1": { + "name": "keyword.control.goto.php" + }, + "2": { + "name": "support.other.php" + } + }, + "match": "(?i)(goto)\\s+([a-z_][a-z_0-9]*)" + }, + { + "captures": { + "1": { + "name": "entity.name.goto-label.php" + } + }, + "match": "(?i)^\\s*([a-z_][a-z_0-9]*)\\s*:" + }, + { + "include": "#string-backtick" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "namespace": { + "begin": "(?i)(?:(namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", + "beginCaptures": { + "1": { + "name": "variable.language.namespace.php" + }, + "2": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", + "name": "support.other.namespace.php", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)" + } + ] + }, + "numbers": { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", + "name": "constant.numeric.php" + }, + "object": { + "patterns": [ + { + "begin": "(->)(\\$?\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.object.php" + }, + "3": { + "name": "variable.other.property.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)(->)\n \t\t\t\t(?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#string-backtick" + }, + { + "include": "#variables" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "&(?=\\s*\\$)", + "name": "storage.modifier.reference.php" + }, + { + "begin": "(array)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + { + "include": "#instantiation" + }, + { + "begin": "(?xi)\\s*(?=\n\t\t\t\t [a-z_0-9\\\\]+(::)\n \t\t\t\t ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n\t\t\t\t )", + "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "include": "#class-name" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "php_doc": { + "patterns": [ + { + "comment": "PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character", + "match": "^(?!\\s*\\*).*$\\n?", + "name": "invalid.illegal.missing-asterisk.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "3": { + "name": "storage.modifier.php" + }, + "4": { + "name": "invalid.illegal.wrong-access-type.phpdoc.php" + } + }, + "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "2": { + "name": "markup.underline.link.php" + } + }, + "match": "(@xlink)\\s+(.+)\\s*$" + }, + { + "match": "\\@(a(pi|bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|method|p(roperty(\\-read|\\-write|)|ackage|aram)|return|s(ee|ince|ource|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b", + "name": "keyword.other.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "match": "\\{(@(link)).+?\\}", + "name": "meta.tag.inline.phpdoc.php" + } + ] + }, + "regex-double-quoted": { + "begin": "(?x)\"/ (?= (\\\\.|[^\"/])++/[imsxeADSUXu]*\" )", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.double-quoted.php", + "patterns": [ + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "include": "#interpolation" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "regex-single-quoted": { + "begin": "(?x)'/ (?= ( \\\\ (?: \\\\ (?: \\\\ [\\\\']? | [^'] ) | . ) | [^'/] )++/[imsxeADSUXu]*' )", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.single-quoted.php", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#single_quote_regex_escape" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "include": "#single_quote_regex_escape" + } + ], + "repository": { + "single_quote_regex_escape": { + "comment": "Support both PHP string and regex escaping", + "match": "(?x) \\\\ (?: \\\\ (?: \\\\ [\\\\']? | [^'] ) | . )", + "name": "constant.character.escape.php" + } + } + }, + "sql-string-double-quoted": { + "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.sql.php", + "patterns": [ + { + "match": "#(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\\"`']", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "'(?=((\\\\')|[^'\"])*(\"|$))", + "name": "string.quoted.single.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + "sql-string-single-quoted": { + "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.sql.php", + "patterns": [ + { + "match": "#(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\'`\"]", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`'])*('|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "\"(?=((\\\\\")|[^\"'])*('|$))", + "name": "string.quoted.double.unclosed.sql" + }, + { + "include": "source.sql" + } + ] + }, + "string-backtick": { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.interpolated.php", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.php" + }, + { + "include": "#interpolation" + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "comment": "This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes", + "contentName": "meta.string-contents.quoted.double.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "meta.string-contents.quoted.single.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.php", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.php" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#regex-double-quoted" + }, + { + "include": "#sql-string-double-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#regex-single-quoted" + }, + { + "include": "#sql-string-single-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b", + "name": "support.function.apc.php" + }, + { + "match": "(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey(_exists)?|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|lumn|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b", + "name": "support.function.array.php" + }, + { + "match": "(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b", + "name": "support.function.basic_functions.php" + }, + { + "match": "(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b", + "name": "support.function.bcmath.php" + }, + { + "match": "(?i)\\bblenc_encrypt\\b", + "name": "support.function.blenc.php" + }, + { + "match": "(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b", + "name": "support.function.bz2.php" + }, + { + "match": "(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b", + "name": "support.function.calendar.php" + }, + { + "match": "(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b", + "name": "support.function.classobj.php" + }, + { + "match": "(?i)\\b(com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b", + "name": "support.function.com.php" + }, + { + "match": "(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b", + "name": "support.function.ctype.php" + }, + { + "match": "(?i)\\bcurl_(s(hare_(setopt|close|init)|trerror|etopt(_array)?)|c(opy_handle|lose)|init|unescape|pause|e(scape|rr(no|or)|xec)|version|file_create|reset|getinfo|multi_(s(trerror|e(topt|lect))|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b", + "name": "support.function.curl.php" + }, + { + "match": "(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_(immutable(_from_format)?|from_format))?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b", + "name": "support.function.datetime.php" + }, + { + "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b", + "name": "support.function.dba.php" + }, + { + "match": "(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b", + "name": "support.function.dbx.php" + }, + { + "match": "(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b", + "name": "support.function.dir.php" + }, + { + "match": "(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b", + "name": "support.function.eio.php" + }, + { + "match": "(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b", + "name": "support.function.enchant.php" + }, + { + "match": "(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b", + "name": "support.function.ereg.php" + }, + { + "match": "(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b", + "name": "support.function.errorfunc.php" + }, + { + "match": "(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b", + "name": "support.function.exec.php" + }, + { + "match": "(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b", + "name": "support.function.exif.php" + }, + { + "match": "(?i)\\bfann_(s(huffle_train_data|cale_(train(_data)?|input(_train_data)?|output(_train_data)?)|ubset_train_data|et_(s(caling_params|arprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift))|ca(scade_(num_candidate_groups|candidate_(stagnation_epochs|change_fraction|limit)|output_(stagnation_epochs|change_fraction)|weight_multiplier|activation_(steepnesses|functions)|m(in_(cand_epochs|out_epochs)|ax_(cand_epochs|out_epochs)))|llback)|train(ing_algorithm|_(stop_function|error_function))|input_scaling_params|output_scaling_params|error_log|quickprop_(decay|mu)|weight(_array)?|learning_(rate|momentum)|activation_(steepness(_(hidden|output|layer))?|function(_(hidden|output|layer))?)|rprop_(increase_factor|de(crease_factor|lta_(zero|m(in|ax))))|bit_fail_limit)|ave(_train)?)|num_(input_train_data|output_train_data)|c(opy|lear_scaling_params|ascadetrain_on_(data|file)|reate_(s(hortcut(_array)?|tandard(_array)?|parse(_array)?)|train(_from_callback)?|from_file))|t(est(_data)?|rain(_(on_(data|file)|epoch))?)|init_weights|d(uplicate_train_data|es(cale_(train|input|output)|troy(_train)?))|print_error|length_train_data|r(un|e(set_(MSE|err(str|no))|ad_train_from_file)|andomize_weights)|get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|n(um_(input|output|layers)|etwork_type)|MSE|c(onnection_(array|rate)|ascade_(num_candidate(s|_groups)|candidate_(stagnation_epochs|change_fraction|limit)|output_(stagnation_epochs|change_fraction)|weight_multiplier|activation_(steepnesses(_count)?|functions(_count)?)|m(in_(cand_epochs|out_epochs)|ax_(cand_epochs|out_epochs))))|t(otal_(neurons|connections)|rain(ing_algorithm|_(stop_function|error_function)))|err(str|no)|quickprop_(decay|mu)|l(earning_(rate|momentum)|ayer_array)|activation_(steepness|function)|rprop_(increase_factor|de(crease_factor|lta_(zero|m(in|ax))))|bi(t_fail(_limit)?|as_array))|merge_train_data)\\b", + "name": "support.function.fann.php" + }, + { + "match": "(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b", + "name": "support.function.file.php" + }, + { + "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", + "name": "support.function.fileinfo.php" + }, + { + "match": "(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b", + "name": "support.function.filter.php" + }, + { + "match": "(?i)\\bfastcgi_finish_request\\b", + "name": "support.function.fpm.php" + }, + { + "match": "(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b", + "name": "support.function.funchand.php" + }, + { + "match": "(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b", + "name": "support.function.gettext.php" + }, + { + "match": "(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|i(n(tval|it|vert)|mport)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|export|fact|legendre|a(nd|dd|bs)|r(oot(rem)?|andom(_(range|bits))?)|gcd(ext)?|xor|m(od|ul))\\b", + "name": "support.function.gmp.php" + }, + { + "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|equals|fi(nal|le)|algos))?\\b", + "name": "support.function.hash.php" + }, + { + "match": "(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b", + "name": "support.function.http.php" + }, + { + "match": "(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", + "name": "support.function.iconv.php" + }, + { + "match": "(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b", + "name": "support.function.iisfunc.php" + }, + { + "match": "(?i)\\b(i(ptc(parse|embed)|mage(s(y|cale|tring(up)?|et(style|t(hickness|ile)|interpolation|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|r(op(auto)?|eate(truecolor|from(string|jpeg|png|w(ebp|bmp)|g(if|d(2(part)?)?)|x(pm|bm)))?))|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alette(copy|totruecolor))|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width)|lip)|w(ebp|bmp)|l(ine|oadfont|ayereffect)|a(ntialias|ffine(matrix(concat|get))?|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b", + "name": "support.function.image.php" + }, + { + "match": "(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|cli_(set_process_title|get_process_title)|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b", + "name": "support.function.info.php" + }, + { + "match": "(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b", + "name": "support.function.interbase.php" + }, + { + "match": "(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl(cal_get_error_(code|message)|tz_get_error_(code|message)|_(is_failure|error_name|get_error_(code|message)))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|c(ompose|anonicalize)|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b", + "name": "support.function.intl.php" + }, + { + "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", + "name": "support.function.json.php" + }, + { + "match": "(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(scape|rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify(_batch)?|_(del|add|replace))|bind)\\b", + "name": "support.function.ldap.php" + }, + { + "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", + "name": "support.function.libxml.php" + }, + { + "match": "(?i)\\b(ezmlm_hash|mail)\\b", + "name": "support.function.mail.php" + }, + { + "match": "(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b", + "name": "support.function.math.php" + }, + { + "match": "(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b", + "name": "support.function.mbstring.php" + }, + { + "match": "(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b", + "name": "support.function.mcrypt.php" + }, + { + "match": "(?i)\\bmemcache_debug\\b", + "name": "support.function.memcache.php" + }, + { + "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", + "name": "support.function.mhash.php" + }, + { + "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", + "name": "support.function.mongo.php" + }, + { + "match": "(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b", + "name": "support.function.mysql.php" + }, + { + "match": "(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query|avepoint)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|lease_savepoint|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|links_stats|metadata)|m(ore_results|ulti_query|aster_query)|b(ind_(param|result)|egin_transaction))\\b", + "name": "support.function.mysqli.php" + }, + { + "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", + "name": "support.function.mysqlnd-memcache.php" + }, + { + "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", + "name": "support.function.mysqlnd-ms.php" + }, + { + "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b", + "name": "support.function.mysqlnd-qc.php" + }, + { + "match": "(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b", + "name": "support.function.mysqlnd-uh.php" + }, + { + "match": "(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b", + "name": "support.function.network.php" + }, + { + "match": "(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b", + "name": "support.function.nsapi.php" + }, + { + "match": "(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|get_implicit_resultset|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b", + "name": "support.function.oci8.php" + }, + { + "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", + "name": "support.function.opcache.php" + }, + { + "match": "(?i)\\bopenssl_(s(ign|pki_(new|export(_challenge)?|verify)|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt)|bkdf2)|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(c(ipher_methods|ert_locations)|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|f(ingerprint|ree)|read))\\b", + "name": "support.function.openssl.php" + }, + { + "match": "(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b", + "name": "support.function.output.php" + }, + { + "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", + "name": "support.function.password.php" + }, + { + "match": "(?i)\\bpcntl_(s(trerror|ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|e(rrno|xec)|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|get(_last_error|priority))\\b", + "name": "support.function.pcntl.php" + }, + { + "match": "(?i)\\bpg_(s(ocket|e(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect))|host|num_(fields|rows)|c(o(n(sume_input|nect(ion_(status|reset|busy)|_poll)?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|lush|ree_result)|l(o_(seek|c(lose|reate)|t(ell|runcate)|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b", + "name": "support.function.pgsql.php" + }, + { + "match": "(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b", + "name": "support.function.php_apache.php" + }, + { + "match": "(?i)\\bdom_import_simplexml\\b", + "name": "support.function.php_dom.php" + }, + { + "match": "(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b", + "name": "support.function.php_ftp.php" + }, + { + "match": "(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b", + "name": "support.function.php_imap.php" + }, + { + "match": "(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b", + "name": "support.function.php_mssql.php" + }, + { + "match": "(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b", + "name": "support.function.php_odbc.php" + }, + { + "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", + "name": "support.function.php_pcre.php" + }, + { + "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", + "name": "support.function.php_spl.php" + }, + { + "match": "(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b", + "name": "support.function.php_zip.php" + }, + { + "match": "(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b", + "name": "support.function.posix.php" + }, + { + "match": "(?i)\\bset(threadtitle|proctitle)\\b", + "name": "support.function.proctitle.php" + }, + { + "match": "(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b", + "name": "support.function.pspell.php" + }, + { + "match": "(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b", + "name": "support.function.readline.php" + }, + { + "match": "(?i)\\brecode(_(string|file))?\\b", + "name": "support.function.recode.php" + }, + { + "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport))\\b", + "name": "support.function.rrd.php" + }, + { + "match": "(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b", + "name": "support.function.sem.php" + }, + { + "match": "(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|abort|re(set|g(ister(_shutdown)?|enerate_id))|get_cookie_params|module_name)\\b", + "name": "support.function.session.php" + }, + { + "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", + "name": "support.function.shmop.php" + }, + { + "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", + "name": "support.function.simplexml.php" + }, + { + "match": "(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b", + "name": "support.function.snmp.php" + }, + { + "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", + "name": "support.function.soap.php" + }, + { + "match": "(?i)\\bsocket_(s(hutdown|trerror|e(nd(to|msg)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?|msg_space)|import_stream|write|l(isten|ast_error)|accept|re(cv(from|msg)?|ad)|get(sockname|_option|peername)|bind)\\b", + "name": "support.function.sockets.php" + }, + { + "match": "(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b", + "name": "support.function.sqlite.php" + }, + { + "match": "(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b", + "name": "support.function.sqlsrv.php" + }, + { + "match": "(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b", + "name": "support.function.stats.php" + }, + { + "match": "(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b", + "name": "support.function.streamsfuncs.php" + }, + { + "match": "(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b", + "name": "support.function.string.php" + }, + { + "match": "(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b", + "name": "support.function.sybase.php" + }, + { + "match": "(?i)\\b(taint|is_tainted|untaint)\\b", + "name": "support.function.taint.php" + }, + { + "match": "(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b", + "name": "support.function.tidy.php" + }, + { + "match": "(?i)\\btoken_(name|get_all)\\b", + "name": "support.function.tokenizer.php" + }, + { + "match": "(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b", + "name": "support.function.trader.php" + }, + { + "match": "(?i)\\buopz_(co(py|mpose)|implement|overload|delete|undefine|extend|f(unction|lags)|re(store|name|define)|backup)\\b", + "name": "support.function.uopz.php" + }, + { + "match": "(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b", + "name": "support.function.url.php" + }, + { + "match": "(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b", + "name": "support.function.var.php" + }, + { + "match": "(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b", + "name": "support.function.wddx.php" + }, + { + "match": "(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b", + "name": "support.function.xhprof.php" + }, + { + "match": "(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b", + "name": "support.function.xml.php" + }, + { + "match": "(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b", + "name": "support.function.xmlrpc.php" + }, + { + "match": "(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b", + "name": "support.function.xmlwriter.php" + }, + { + "match": "(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b", + "name": "support.function.zlib.php" + }, + { + "match": "(?i)\\bis_int(eger)?\\b", + "name": "support.function.alias.php" + } + ] + }, + "user-function-call": { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", + "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "var_basic": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)\n \t\t\t (\\$+)[a-zA-Z_\\x{7f}-\\x{ff}]\n \t\t\t [a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b", + "name": "variable.other.php" + } + ] + }, + "var_global": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", + "name": "variable.other.global.php" + }, + "var_global_safer": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", + "name": "variable.other.global.safer.php" + }, + "variable-name": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.class.php" + }, + "5": { + "name": "variable.other.property.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "name": "constant.numeric.index.php" + }, + "8": { + "name": "variable.other.index.php" + }, + "9": { + "name": "punctuation.definition.variable.php" + }, + "10": { + "name": "string.unquoted.index.php" + }, + "11": { + "name": "punctuation.section.array.end.php" + } + }, + "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar", + "match": "(?x)\n\t\t\t\t\t\t((\\$)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)(\\g)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g)|(\\w+))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "comment": "Simple syntax with braces: \"foo${bar}baz\"", + "match": "(?x)\n\t\t\t\t\t\t((\\$\\{)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\t\t\t\t\t\t" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "include": "#var_basic" + }, + { + "begin": "(\\$\\{)(?=.*?\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + } +} diff --git a/extensions/continue/gui/textmate-syntaxes/properties.plist b/extensions/continue/gui/textmate-syntaxes/properties.plist new file mode 100644 index 000000000000..11436566bd5a --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/properties.plist @@ -0,0 +1,181 @@ + + + + + fileTypes + + ini + conf + + keyEquivalent + ^~I + name + Ini + patterns + + + begin + (^[ \t]+)?(?=#) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.ini + + + end + (?!\G) + patterns + + + begin + # + beginCaptures + + 0 + + name + punctuation.definition.comment.ini + + + end + \n + name + comment.line.number-sign.ini + + + + + begin + (^[ \t]+)?(?=;) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.ini + + + end + (?!\G) + patterns + + + begin + ; + beginCaptures + + 0 + + name + punctuation.definition.comment.ini + + + end + \n + name + comment.line.semicolon.ini + + + + + captures + + 1 + + name + keyword.other.definition.ini + + 2 + + name + punctuation.separator.key-value.ini + + + match + \b([a-zA-Z0-9_.-]+)\b\s*(=) + + + captures + + 1 + + name + punctuation.definition.entity.ini + + 3 + + name + punctuation.definition.entity.ini + + + match + ^(\[)(.*?)(\]) + name + entity.name.section.group-title.ini + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.ini + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.ini + + + name + string.quoted.single.ini + patterns + + + match + \\. + name + constant.character.escape.ini + + + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.ini + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.ini + + + name + string.quoted.double.ini + + + scopeName + source.properties + uuid + 77DC23B6-8A90-11D9-BAA4-000A9584EC8C + + \ No newline at end of file diff --git a/extensions/continue/gui/textmate-syntaxes/rust.json b/extensions/continue/gui/textmate-syntaxes/rust.json new file mode 100644 index 000000000000..ab76ac521b73 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/rust.json @@ -0,0 +1,593 @@ +{ + "name": "Rust", + "scopeName": "source.rust", + "fileTypes": ["rs"], + "repository": { + "block_doc_comment": { + "comment": "Block documentation comment", + "name": "comment.block.documentation.rust", + "begin": "/\\*[\\*!](?![\\*/])", + "end": "\\*/", + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + } + ] + }, + "block_comment": { + "comment": "Block comment", + "name": "comment.block.rust", + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + } + ] + }, + "line_doc_comment": { + "comment": "Single-line documentation comment", + "name": "comment.line.documentation.rust", + "begin": "//[!/](?=[^/])", + "end": "$" + }, + "line_comment": { + "comment": "Single-line comment", + "name": "comment.line.double-slash.rust", + "begin": "//", + "end": "$" + }, + "escaped_character": { + "name": "constant.character.escape.rust", + "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)" + }, + "string_literal": { + "comment": "Double-quote string literal", + "name": "string.quoted.double.rust", + "begin": "b?\"", + "end": "\"", + "patterns": [ + { + "include": "#escaped_character" + } + ] + }, + "raw_string_literal": { + "comment": "Raw double-quote string literal", + "name": "string.quoted.double.raw.rust", + "begin": "b?r(#*)\"", + "end": "\"\\1" + }, + "sigils": { + "comment": "Sigil", + "name": "keyword.operator.sigil.rust", + "match": "[&*](?=[a-zA-Z0-9_\\(\\[\\|\\\"]+)" + }, + "self": { + "comment": "Self variable", + "name": "variable.language.rust", + "match": "\\bself\\b" + }, + "mut": { + "comment": "Mutable storage modifier", + "name": "storage.modifier.mut.rust", + "match": "\\bmut\\b" + }, + "box": { + "comment": "Box storage modifier", + "name": "storage.modifier.box.rust", + "match": "\\bbox\\b" + }, + "const": { + "comment": "Const storage modifier", + "name": "storage.modifier.const.rust", + "match": "\\bconst\\b" + }, + "pub": { + "comment": "Visibility modifier", + "name": "storage.modifier.visibility.rust", + "match": "\\bpub\\b" + }, + "lifetime": { + "comment": "Named lifetime", + "name": "storage.modifier.lifetime.rust", + "match": "'([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "captures": { + "1": { + "name": "entity.name.lifetime.rust" + } + } + }, + "ref_lifetime": { + "comment": "Reference with named lifetime", + "match": "&('([a-zA-Z_][a-zA-Z0-9_]*))\\b", + "captures": { + "1": { + "name": "storage.modifier.lifetime.rust" + }, + "2": { + "name": "entity.name.lifetime.rust" + } + } + }, + "core_types": { + "comment": "Built-in/core type", + "name": "storage.type.core.rust", + "match": "\\b(bool|char|usize|isize|u8|u16|u32|u64|i8|i16|i32|i64|f32|f64|str|Self|Option|Result)\\b" + }, + "core_vars": { + "comment": "Core type variant", + "name": "support.constant.core.rust", + "match": "\\b(Some|None|Ok|Err)\\b" + }, + "core_marker": { + "comment": "Core trait (marker)", + "name": "support.type.marker.rust", + "match": "\\b(Copy|Send|Sized|Sync)\\b" + }, + "core_traits": { + "comment": "Core trait", + "name": "support.type.core.rust", + "match": "\\b(Drop|Fn|FnMut|FnOnce|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator)\\b" + }, + "where": { + "comment": "Where clause", + "name": "keyword.other.rust", + "match": "\\bwhere\\b" + }, + "std_types": { + "comment": "Standard library type", + "name": "storage.class.std.rust", + "match": "\\b(Box|String|Vec|Path|PathBuf)\\b" + }, + "std_traits": { + "comment": "Standard library trait", + "name": "support.type.std.rust", + "match": "\\b(ToOwned|ToString)\\b" + }, + "type_params": { + "comment": "Type parameters", + "name": "meta.type_params.rust", + "begin": "<(?![=<])", + "end": ">", + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + } + ] + } + }, + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + }, + { + "include": "#line_doc_comment" + }, + { + "include": "#line_comment" + }, + { + "comment": "Attribute", + "name": "meta.attribute.rust", + "begin": "#\\!?\\[", + "end": "\\]", + "patterns": [ + { + "include": "#string_literal" + } + ] + }, + { + "comment": "Single-quote string literal (character)", + "name": "string.quoted.single.rust", + "match": "b?'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'" + }, + { + "include": "#string_literal" + }, + { + "include": "#raw_string_literal" + }, + { + "comment": "Floating point literal (fraction)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (exponent)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (typed)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b" + }, + { + "comment": "Integer literal (decimal)", + "name": "constant.numeric.integer.decimal.rust", + "match": "\\b[0-9][0-9_]*([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (hexadecimal)", + "name": "constant.numeric.integer.hexadecimal.rust", + "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (octal)", + "name": "constant.numeric.integer.octal.rust", + "match": "\\b0o[0-7_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (binary)", + "name": "constant.numeric.integer.binary.rust", + "match": "\\b0b[01_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Static storage modifier", + "name": "storage.modifier.static.rust", + "match": "\\bstatic\\b" + }, + { + "comment": "Boolean constant", + "name": "constant.language.boolean.rust", + "match": "\\b(true|false)\\b" + }, + { + "comment": "Control keyword", + "name": "keyword.control.rust", + "match": "\\b(break|continue|else|if|in|for|loop|match|return|while)\\b" + }, + { + "comment": "Keyword", + "name": "keyword.other.rust", + "match": "\\b(crate|extern|mod|let|proc|ref|use|super|as|where|move)\\b" + }, + { + "comment": "Unsafe code keyword", + "name": "keyword.other.unsafe.rust", + "match": "\\bunsafe\\b" + }, + { + "include": "#sigils" + }, + { + "include": "#self" + }, + { + "include": "#mut" + }, + { + "include": "#box" + }, + { + "include": "#lifetime" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#const" + }, + { + "include": "#pub" + }, + { + "comment": "Miscellaneous operator", + "name": "keyword.operator.misc.rust", + "match": "(=>|::|\\bas\\b)" + }, + { + "comment": "Comparison operator", + "name": "keyword.operator.comparison.rust", + "match": "(&&|\\|\\||==|!=)" + }, + { + "comment": "Assignment operator", + "name": "keyword.operator.assignment.rust", + "match": "(\\+=|-=|/=|\\*=|%=|\\^=|&=|\\|=|<<=|>>=|=)" + }, + { + "comment": "Arithmetic operator", + "name": "keyword.operator.arithmetic.rust", + "match": "(!|\\+|-|/|\\*|%|\\^|&|\\||<<|>>)" + }, + { + "comment": "Comparison operator (second group because of regex precedence)", + "name": "keyword.operator.comparison.rust", + "match": "(<=|>=|<|>)" + }, + { + "include": "#core_types" + }, + { + "include": "#core_vars" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "comment": "Built-in macro", + "name": "support.function.builtin.rust", + "match": "\\b(macro_rules|format_args|env|option_env|concat_idents|concat|log_syntax|line|column|file|stringify|include|include_str|include_bytes|module_path|asm|cfg|trace_macros)!" + }, + { + "comment": "Core macro", + "name": "support.function.core.rust", + "match": "\\b(panic|assert|assert_eq|debug_assert|debug_assert_eq|try|write|writeln|unreachable|unimplemented)!" + }, + { + "comment": "Standard library macro", + "name": "support.function.std.rust", + "match": "\\b(format|print|println|select|vec)!" + }, + { + "comment": "Logging macro", + "name": "support.function.log.rust", + "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!" + }, + { + "comment": "Invokation of a macro", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]", + "captures": { + "1": { + "name": "entity.name.function.macro.rust" + } + } + }, + { + "comment": "Function call", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(", + "captures": { + "1": { + "name": "entity.name.function.rust" + } + } + }, + { + "comment": "Function definition", + "begin": "\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": "[\\{;]", + "beginCaptures": { + "1": { + "name": "keyword.other.fn.rust" + }, + "2": { + "name": "entity.name.function.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#self" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "include": "#const" + }, + { + "include": "#where" + } + ] + }, + { + "comment": "Type declaration", + "begin": "\\b(enum|struct|trait)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": "[\\{\\(;]", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "entity.name.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "include": "#core_types" + }, + { + "include": "#pub" + }, + { + "include": "#where" + } + ] + }, + { + "comment": "Type alias", + "begin": "\\b(type)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": ";", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "entity.name.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + } + ] + }, + { + "comment": "Implementation", + "begin": "\\b(impl)\\b", + "end": "\\{", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "name": "storage.type.rust", + "match": "\\bfor\\b" + }, + { + "include": "#where" + } + ] + } + ] +} diff --git a/extensions/continue/gui/textmate-syntaxes/scss.json b/extensions/continue/gui/textmate-syntaxes/scss.json new file mode 100644 index 000000000000..d0726548d76c --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/scss.json @@ -0,0 +1,1667 @@ +{ + "scopeName": "source.css.scss", + "name": "SCSS", + "fileTypes": ["scss", "css.scss", "css.scss.erb", "scss.erb"], + "patterns": [ + { + "include": "#variable_setting" + }, + { + "include": "#at_rule_include" + }, + { + "include": "#at_rule_import" + }, + { + "include": "#general" + }, + { + "include": "#flow_control" + }, + { + "include": "#rules" + }, + { + "include": "#property_list" + }, + { + "include": "#at_rule_mixin" + }, + { + "include": "#at_rule_media" + }, + { + "include": "#at_rule_function" + }, + { + "include": "#at_rule_charset" + }, + { + "include": "#at_rule_option" + }, + { + "include": "#at_rule_namespace" + }, + { + "include": "#at_rule_fontface" + }, + { + "include": "#at_rule_page" + }, + { + "include": "#at_rule_keyframes" + }, + { + "include": "#at_rule_at_root" + }, + { + "include": "#at_rule_supports" + } + ], + "repository": { + "at_rule__": { + "comment": "Note how all @rules are prefixed." + }, + "at_rule_charset": { + "begin": "\\s*((@)charset\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "comment": "Charset", + "end": "\\s*((?=;|$))", + "name": "meta.at-rule.charset.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + "at_rule_content": { + "begin": "\\s*((@)content\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.content.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.content.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_each": { + "begin": "\\s*((@)each\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.each.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=}))", + "name": "meta.at-rule.each.scss", + "patterns": [ + { + "match": "\\b(in|,)\\b", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_else": { + "begin": "\\s*((@)else(\\s*(if)?))\\s*", + "captures": { + "1": { + "name": "keyword.control.else.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.else.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_extend": { + "begin": "\\s*((@)extend\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.import.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_fontface": { + "patterns": [ + { + "begin": "^\\s*((@)font-face\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.fontface.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.fontface.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + } + ] + }, + "at_rule_for": { + "begin": "\\s*((@)for\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.for.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.for.scss", + "patterns": [ + { + "match": "(==|!=|<=|>=|<|>|from|to|through)", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_function": { + "patterns": [ + { + "begin": "\\s*((@)function\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Function with Attributes", + "end": "\\s*(?={)", + "name": "meta.at-rule.function.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Simple Function", + "match": "\\s*((@)function\\b)\\s*", + "name": "meta.at-rule.function.scss" + } + ] + }, + "at_rule_if": { + "begin": "\\s*((@)if\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.if.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.if.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_import": { + "begin": "\\s*((@)import\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;)|(?=}))", + "name": "meta.at-rule.import.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#functions" + }, + { + "include": "#comment_line" + } + ] + }, + "at_rule_include": { + "patterns": [ + { + "begin": "(?<=@include)\\s+([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.scss" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.include.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@include)\\s+([\\w-]+)", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "entity.name.function.scss" + } + } + }, + { + "match": "((@)include)\\b", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "keyword.control.at-rule.include.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + } + } + ] + }, + "at_rule_keyframes": { + "begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.keyframes.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?<=})", + "name": "meta.at-rule.keyframes.scss", + "patterns": [ + { + "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + } + }, + { + "begin": "(?<=@keyframes)\\s+(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(?<=@keyframes)\\s+(')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.keyframes.begin.scss" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.keyframes.end.scss" + } + }, + "patterns": [ + { + "match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)", + "name": "entity.other.attribute-name.scss" + }, + { + "include": "#flow_control" + }, + { + "include": "#interpolation" + }, + { + "include": "#property_list" + }, + { + "include": "#rules" + } + ] + } + ] + }, + "at_rule_media": { + "patterns": [ + { + "begin": "^\\s*((@)media\\b)\\s*", + "end": "\\s*(?={)", + "captures": { + "1": { + "name": "keyword.control.at-rule.media.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.media.scss", + "patterns": [ + { + "match": "\\b(only)\\b", + "name": "keyword.control.operator" + }, + { + "include": "#media_features" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + }, + { + "include": "#conditional_operators" + }, + { + "include": "#media_types" + }, + { + "include": "#property_names" + } + ] + } + ] + }, + "at_rule_mixin": { + "patterns": [ + { + "begin": "(?<=@mixin)\\s+([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.scss" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.mixin.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@mixin)\\s+([\\w-]+)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + }, + { + "match": "((@)mixin)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.mixin.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + } + ] + }, + "at_rule_namespace": { + "patterns": [ + { + "begin": "(?<=@namespace)\\s+(?=url)", + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "begin": "(?<=@namespace)\\s+([\\w-]*)", + "captures": { + "1": { + "name": "entity.name.namespace-prefix.scss" + } + }, + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "match": "((@)namespace)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.namespace.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.namespace.scss" + } + ] + }, + "at_rule_option": { + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "comment": "Option", + "match": "^\\s*((@)option\\b)\\s*", + "name": "meta.at-rule.option.scss" + }, + "at_rule_page": { + "patterns": [ + { + "begin": "^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)", + "captures": { + "1": { + "name": "keyword.control.at-rule.page.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Page with Attributes", + "end": "\\s*(?={)", + "name": "meta.at-rule.page.scss" + } + ] + }, + "at_rule_return": { + "begin": "\\s*((@)(return)\\b)", + "captures": { + "1": { + "name": "keyword.control.return.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.at-rule.return.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_at_root": { + "begin": "\\s*((@)(at-root))(\\s+|$)", + "end": "\\s*(?={)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.at-root.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.at-root.scss", + "patterns": [ + { + "include": "#function_attributes" + }, + { + "include": "#functions" + }, + { + "include": "#selectors" + } + ] + }, + "at_rule_supports": { + "begin": "(?<=^|\\s)(@)supports\\b", + "captures": { + "0": { + "name": "keyword.control.at-rule.supports.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?={)|$", + "name": "meta.at-rule.supports.scss", + "patterns": [ + { + "include": "#logical_operators" + }, + { + "include": "#properties" + }, + { + "match": "\\(", + "name": "punctuation.definition.condition.begin.bracket.round.scss" + }, + { + "match": "\\)", + "name": "punctuation.definition.condition.end.bracket.round.scss" + } + ] + }, + "at_rule_warn": { + "begin": "\\s*((@)(warn|debug|error)\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.warn.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.warn.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_double" + }, + { + "include": "#string_single" + } + ] + }, + "at_rule_while": { + "begin": "\\s*((@)while\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.while.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=})", + "name": "meta.at-rule.while.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "comment_block": { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "name": "comment.block.scss" + }, + "comment_line": { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\n", + "name": "comment.line.scss" + }, + "constant_color": { + "comment": "http://www.w3.org/TR/css3-color/#svg-color", + "match": "\\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|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|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|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)\\b", + "name": "support.constant.color.w3c-standard-color-name.scss" + }, + "constant_default": { + "match": "!default", + "name": "keyword.other.default.scss" + }, + "constant_deprecated_color": { + "comment": "These colours are deprecated from CSS color module level 3 http://www.w3.org/TR/css3-color/#css2-system", + "match": "\\b(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\\b", + "name": "invalid.deprecated.color.system.css.scss" + }, + "constant_font": { + "match": "(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)", + "name": "support.constant.font-name.scss" + }, + "constant_functions": { + "begin": "([\\w-]+)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.scss" + }, + "2": { + "name": "punctuation.section.function.scss" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.scss" + } + }, + "patterns": [ + { + "include": "#parameters" + } + ] + }, + "constant_hex": { + "captures": { + "1": { + "name": "punctuation.definition.constant.scss" + } + }, + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b", + "name": "constant.numeric.color.hex-value.scss" + }, + "constant_important": { + "match": "!important", + "name": "keyword.other.important.scss" + }, + "constant_mathematical_symbols": { + "match": "\\b(\\+|-|\\*|/)\\b", + "name": "support.constant.mathematical-symbols.scss" + }, + "constant_number": { + "match": "(\\b([0-9]+(\\.[0-9]+)?)|\\B\\.[0-9]+)(?=\\s*(ch|cm|deg|dpi|dpcm|dppx|em|ex|grad|in|mm|mozmm|ms|pc|pt|px|rad|rem|turn|s|vh|vmin|vmax|vw|\\b))", + "name": "constant.numeric.scss" + }, + "constant_optional": { + "match": "!optional", + "name": "keyword.other.optional.scss" + }, + "constant_property_value": { + "match": "\\b(absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|border-box|break-all|break-word|butt|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|column-reverse|column|contain|content-box|cover|crosshair|currentColor|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in-out|ease-in|ease-out|ease|ellipsis|fill|fixed|flex-end|flex-start|flex|georgian|grid|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline-flex|inline-grid|inline-table|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|landscape|left|lighter|line-edge|line-through|line|linear|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|manipulation|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|null|oblique|outset|outside|overline|pan-(x|y|left|right|up|down)|pointer|portrait|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|right|ridge|round|row-resize|row-reverse|row|rtl|ruby-base-container|ruby-base|ruby-text-container|ruby-text|ruby|s-resize|scale-down|scroll|se-resize|separate|small-caps|solid|space-around|space-between|square|static|step-end|step-start|stretch|strict|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|wrap|wrap-reverse|zero|true|false|vertical|horizontal)\\b", + "name": "support.constant.property-value.scss" + }, + "constant_rgb": { + "match": "(?x)\n(?=|<|>", + "name": "keyword.operator.comparison.scss" + }, + "logical_operators": { + "match": "\\b(not\\b|or\\b|and\\b)", + "name": "keyword.operator.logical.scss" + }, + "map": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.map.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.map.end.bracket.round.scss" + } + }, + "name": "meta.set.variable.map.scss", + "patterns": [ + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "match": "\\b([\\w-]+)\\s*(:)", + "captures": { + "1": { + "name": "support.type.map.key.scss" + }, + "2": { + "name": "punctuation.separator.key-value.scss" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + }, + { + "include": "#map" + } + ] + }, + "media_attributes": { + "patterns": [ + { + "match": ":", + "name": "punctuation.separator.key-value.scss" + }, + { + "include": "#general" + }, + { + "include": "#property_name" + }, + { + "include": "#property_values" + }, + { + "comment": "We even have error highlighting <3", + "match": "[={}\\?@]", + "name": "invalid.illegal.scss" + } + ] + }, + "media_features": { + "patterns": [ + { + "match": "\\b(min-device-aspect-ratio|max-device-aspect-ratio|device-aspect-ratio|min-aspect-ratio|max-aspect-ratio|aspect-ratio|min-device-height|max-device-height|device-height|min-device-width|max-device-width|device-width|min-monochrome|max-monochrome|monochrome|min-color-index|max-color-index|color-index|min-color|max-color|color|orientation|scan|min-resolution|max-resolution|resolution|grid|min-width|max-width|width)\\b", + "name": "support.type.property-name.media.css" + } + ] + }, + "media_types": { + "patterns": [ + { + "match": "\\b(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)\\b", + "name": "support.constant.media.css" + } + ] + }, + "operators": { + "match": "[-+*/](?!\\s*[-+*/])", + "name": "keyword.operator.css" + }, + "parameters": { + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "#comment_block" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.scss" + } + }, + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "[^'\",) \\t]+", + "name": "variable.parameter.url.scss" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + } + ] + }, + "properties": { + "patterns": [ + { + "begin": "(?(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(])", + "name": "meta.attribute-selector.scss" + }, + "selector_class": { + "begin": "(\\.)(?=[\\w-]|#{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "end": "(?![\\w-]|(#{))", + "name": "entity.other.attribute-name.class.css", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "selector_entities": { + "match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|ellipse|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line(?!-)|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object(?!-)|ol|optgroup|option|output|p|param|path|picture|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|text(?!-)|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b", + "name": "entity.name.tag.scss" + }, + "selector_custom": { + "match": "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)", + "name": "entity.name.tag.custom.scss" + }, + "selector_id": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.id.css" + }, + "selector_placeholder": { + "captures": { + "1": { + "name": "punctuation.definition.entity.scss" + } + }, + "match": "(%)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.placeholder.scss" + }, + "parent_selector_suffix": { + "match": "(?<=&)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.parent-selector-suffix.scss" + }, + "selector_pseudo_class": { + "patterns": [ + { + "begin": "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.definition.pseudo-class.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.pseudo-class.end.bracket.round.css" + } + }, + "patterns": [ + { + "match": "\\d+", + "name": "constant.numeric.scss" + }, + { + "match": "(?<=\\d)n\\b|\\b(n|even|odd)\\b", + "name": "constant.other.scss" + }, + { + "match": "\\w+", + "name": "invalid.illegal.scss" + } + ] + }, + { + "match": "(?x)\n(:)\\b\n(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|\nindeterminate|root|first-child|last-child|first-of-type|last-of-type|\nonly-child|only-of-type|empty|not|valid|invalid)\\b", + "captures": { + "0": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "1": { + "name": "punctuation.definition.entity.css" + } + } + } + ] + }, + "selector_pseudo_element": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:+)((-(moz|webkit|ms)-)?(after|before|first-letter|first-line|selection))\\b", + "name": "entity.other.attribute-name.pseudo-element.css" + }, + "selectors": { + "comment": "Stuff for Selectors.", + "patterns": [ + { + "include": "#selector_entities" + }, + { + "include": "#selector_custom" + }, + { + "include": "#selector_class" + }, + { + "include": "#selector_id" + }, + { + "include": "#selector_pseudo_class" + }, + { + "include": "#tag_wildcard" + }, + { + "include": "#tag_parent_reference" + }, + { + "include": "#selector_pseudo_element" + }, + { + "include": "#selector_attribute" + }, + { + "include": "#selector_placeholder" + }, + { + "include": "#parent_selector_suffix" + } + ] + }, + "string_double": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "string_single": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "tag_parent_reference": { + "match": "&", + "name": "entity.name.tag.reference.scss" + }, + "tag_wildcard": { + "match": "\\*", + "name": "entity.name.tag.wildcard.scss" + }, + "variable": { + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#interpolation" + } + ] + }, + "variable_setting": { + "begin": "\\s*(\\$[A-Za-z0-9_-]+\\b)\\s*(:)\\s*", + "captures": { + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.separator.key-value.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.set.variable.scss", + "patterns": [ + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "include": "#map" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + } + ] + }, + "variables": { + "match": "\\$[A-Za-z0-9_-]+\\b", + "name": "variable.scss" + } + }, + "version": "https://github.com/atom/language-sass/commit/b0417d1412a9169562f637133099fe2bb841a735" +} diff --git a/extensions/continue/gui/textmate-syntaxes/shaderlab.json b/extensions/continue/gui/textmate-syntaxes/shaderlab.json new file mode 100644 index 000000000000..e230ab23f54d --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/shaderlab.json @@ -0,0 +1,131 @@ +{ + "scopeName": "source.shaderlab", + "name": "ShaderLab", + "fileTypes": ["shader"], + "patterns": [ + { + "match": "\\b([0-9]+\\.?[0-9]*)\\b", + "name": "constant.numeric.shaderlab" + }, + { + "match": "\\b(Shader|Properties|Category|SubShader|Tags|Pass)\\b", + "name": "support.class.shaderlab" + }, + { + "match": "\\b(CGPROGRAM|ENDCG)\\b", + "name": "support.class.shaderlab" + }, + { + "match": "\\b(Dependency|Fallback)\\b", + "name": "support.variable.shaderlab" + }, + { + "match": "^\\s*\\[(HideInInspector)\\]", + "name": "keyword.shaderlab" + }, + { + "match": "\\b(_\\w+)\\b", + "name": "support.variable.input.shaderlab" + }, + { + "match": "\\b(uv(2)*_\\w+|viewDir|COLOR|screenPos|worldPos|worldRefl|worldNormal|worldRefl|worldNormal)\\b", + "name": "support.variable.input.shaderlab" + }, + { + "match": "\\b(Albedo|Normal|Emission|Specular|Gloss|Alpha)\\b", + "name": "support.variable.output.shaderlab" + }, + { + "match": "\\b(appdata_(base|tan|full|img)|SurfaceOutput)\\b", + "name": "support.variable.structure.shaderlab" + }, + { + "match": "\\b(UNITY_MATRIX_(MVP|MV|V|P|VP|T_MV|IT_MV|TEXTURE0|TEXTURE1|TEXTURE2|TEXTURE3)|_Object2World|_World2Object|_WorldSpaceCameraPos|unity_Scale)\\b", + "name": "support.variable.transformation.shaderlab" + }, + { + "match": "\\b(_ModelLightColor[0-9]|_SpecularLightColor[0-9]|_ObjectSpaceLightPos|_Light2World|_World2Light|_Object2Light)\\b", + "name": "support.variable.lighting.shaderlab" + }, + { + "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime|_ProjectionParams|_ScreenParams)\\b", + "name": "support.variable.other.shaderlab" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#functions" + }, + { + "include": "#cg" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "begin": "//", + "end": "$", + "name": "comment.line.double-slash.shaderlab" + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.line.block.shaderlab" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.shaderlab" + } + ] + }, + "functions": { + "patterns": [ + { + "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)" + } + ] + } + ] + } + ] + }, + "escaped-char": { + "patterns": [ + { + "name": "constant.character.escape.swift", + "match": "\\\\[0\\\\tnr\"']" + }, + { + "name": "constant.character.escape.swift", + "match": "\\\\(x\\h{2}|u\\h{4}|U\\h{8})" + }, + { + "name": "invalid.illegal.constant.character.escape.swift", + "match": "\\\\[^uxU]" + } + ] + }, + "identifier": { + "match": "(?x) (? \\g \\g? | ` \\g \\g? ` ){0} (? [ a-z A-Z ] | [ \\u00A8 \\u00AA \\u00AD \\u00AF \\u00B2-\\u00B5 \\u00B7-\\u00BA ] | [ \\u00BC-\\u00BE \\u00C0-\\u00D6 \\u00D8-\\u00F6 \\u00F8-\\u00FF ] | [ \\u0100-\\u02FF \\u0370-\\u167F \\u1681-\\u180D \\u180F-\\u1DBF ] | [ \\u1E00-\\u1FFF ] | [ \\u200B-\\u200D \\u202A-\\u202E \\u203F-\\u2040 \\u2054 \\u2060-\\u206F ] | [ \\u2070-\\u20CF \\u2100-\\u218F \\u2460-\\u24FF \\u2776-\\u2793 ] | [ \\u2C00-\\u2DFF \\u2E80-\\u2FFF ] | [ \\u3004-\\u3007 \\u3021-\\u302F \\u3031-\\u303F \\u3040-\\uD7FF ] | [ \\uF900-\\uFD3D \\uFD40-\\uFDCF \\uFDF0-\\uFE1F \\uFE30-\\uFE44 ] | [ \\uFE47-\\uFFFD ] | [ \\u10000-\\u1FFFD \\u20000-\\u2FFFD \\u30000-\\u3FFFD \\u40000-\\u4FFFD ] | [ \\u50000-\\u5FFFD \\u60000-\\u6FFFD \\u70000-\\u7FFFD \\u80000-\\u8FFFD ] | [ \\u90000-\\u9FFFD \\uA0000-\\uAFFFD \\uB0000-\\uBFFFD \\uC0000-\\uCFFFD ] | [ \\uD0000-\\uDFFFD \\uE0000-\\uEFFFD ] ){0} (? \\d | [ \\u0300-\\u036F \\u1DC0-\\u1DFF \\u20D0-\\u20FF \\uFE20-\\uFE2F ] | \\g ){0} (? \\g \\g? ){0} (? (?) \\$ \\d+ (?!\\g) (?# FIXME) ){0} \\g | \\g", + "captures": { + "5": { + "name": "variable.other.positional.swift" + } + } + }, + "literal": { + "patterns": [ + { + "include": "#literal-number" + }, + { + "include": "#literal-string" + }, + { + "include": "#literal-boolean" + } + ] + }, + "literal-number": { + "name": "constant.numeric.swift", + "match": "(?x) (?### INTEGER ###) (? \\g | \\g | \\g | \\g ){0} (?### BINARY ###) (? 0b \\g \\g? ){0} (? [0-1] ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### OCTAL ###) (? 0o \\g \\g? ){0} (? [0-7] ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### DECIMAL ###) (? \\g \\g? ){0} (? \\d ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### HEXADECIMAL ###) (? 0x \\g \\g? ){0} (? \\h ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### FLOATING POINT ###) (? \\g \\g? \\g? | \\g \\g? \\g ){0} (? \\. \\g ){0} (? \\g \\g? \\g ){0} (? \\. \\g? ){0} (? \\g \\g? \\g ){0} (? [eE] ){0} (? [pP] ){0} (? [+-] ){0} (?!0[box]) \\g | \\g" + }, + "literal-string": { + "name": "string.quoted.double.swift", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + } + }, + "patterns": [ + { + "include": "#quoted-text" + } + ] + }, + "literal-boolean": { + "match": "\\b(true|false)\\b(?![?!])", + "name": "constant.language.boolean.swift" + }, + "operator": { + "patterns": [ + { + "include": "#operator-character" + } + ] + }, + "operator-character": { + "name": "keyword.operator.swift", + "match": "[\\/=\\-+!*%<>&|^~.]" + }, + "quoted-text": { + "patterns": [ + { + "name": "meta.embedded.line.swift", + "contentName": "source.swift", + "begin": "\\\\\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#escaped-char" + } + ] + }, + "function": { + "name": "meta.function.swift", + "begin": "(func) \\s*", + "end": "(?=\\{|#)|;|$", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + } + }, + "comment": "match regular function like: func myFunc(...)", + "patterns": [ + { + "begin": "([a-zA-Z_0-9]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "comment": "match regular function like: func myFunc(...)", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + } + }, + { + "name": "meta.return-type.swift", + "match": "((->)\\s*([^\\{]+))", + "captures": { + "2": { + "name": "punctuation.function.swift" + }, + "3": { + "name": "entity.name.type.class.swift" + } + } + } + ] + }, + "whitespace": { + "match": "(?x) [ \\u0020 (?# space) \\u000A (?# line-feed) \\u000D (?# carriage-return) \\u0009 (?# horizontal-tab) \\u000B (?# vertical-tab) \\u000C (?# form-feed) \\u0000 (?# null) ]" + }, + "attribute": { + "name": "storage.type.attribute.swift", + "begin": "@", + "end": " " + } + } +} diff --git a/extensions/continue/gui/textmate-syntaxes/xml.json b/extensions/continue/gui/textmate-syntaxes/xml.json new file mode 100644 index 000000000000..51bff2fb61ed --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/xml.json @@ -0,0 +1,426 @@ +{ + "scopeName": "text.xml", + "name": "XML", + "fileTypes": [ + "atom", + "axml", + "bpmn", + "config", + "cpt", + "csl", + "csproj", + "csproj.user", + "dae", + "dia", + "dita", + "ditamap", + "dtml", + "fodg", + "fodp", + "fods", + "fodt", + "fsproj", + "fxml", + "glade", + "gpx", + "graphml", + "icls", + "iml", + "isml", + "jmx", + "jsp", + "launch", + "menu", + "mxml", + "nuspec", + "opml", + "owl", + "pom", + "ppj", + "proj", + "pt", + "pubxml", + "pubxml.user", + "rdf", + "rng", + "rss", + "shproj", + "storyboard", + "svg", + "targets", + "tld", + "vbox", + "vbox-prev", + "vbproj", + "vbproj.user", + "vcproj", + "vcproj.filters", + "vcxproj", + "vcxproj.filters", + "wsdl", + "xaml", + "xbl", + "xib", + "xlf", + "xliff", + "xml", + "xpdl", + "xsd", + "xul", + "ui" + ], + "patterns": [ + { + "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml", + "patterns": [ + { + "match": " ([a-zA-Z-]+)", + "name": "entity.other.attribute-name.xml" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.sgml.doctype.xml", + "patterns": [ + { + "include": "#internalSubset" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)()", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "punctuation.definition.tag.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "entity.name.tag.namespace.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + }, + "7": { + "name": "punctuation.definition.tag.xml" + } + }, + "name": "meta.tag.no-content.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + }, + { + "begin": "<%@", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java-props.embedded.xml", + "patterns": [ + { + "match": "page|include|taglib", + "name": "keyword.other.page-props.xml" + } + ] + }, + { + "begin": "<%[!=]?(?!--)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "(?!--)%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java.embedded.xml", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.unquoted.cdata.xml" + } + ], + "repository": { + "EntityDecl": { + "begin": "()", + "patterns": [ + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "bare-ampersand": { + "match": "&", + "name": "invalid.illegal.bad-ampersand.xml" + }, + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "entity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.xml" + }, + "internalSubset": { + "begin": "(\\[)", + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + } + }, + "end": "(\\])", + "name": "meta.internalsubset.xml", + "patterns": [ + { + "include": "#EntityDecl" + }, + { + "include": "#parameterEntity" + }, + { + "include": "#comments" + } + ] + }, + "parameterEntity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", + "name": "constant.character.parameter-entity.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "tagStuff": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)=" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "comments": { + "begin": "<[!%]--", + "captures": { + "0": { + "name": "punctuation.definition.comment.xml" + } + }, + "end": "--%?>", + "name": "comment.block.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/f461d428fb87040cb8a52d87d0b95151b9d3c0cc" +} diff --git a/extensions/continue/gui/textmate-syntaxes/xsl.json b/extensions/continue/gui/textmate-syntaxes/xsl.json new file mode 100644 index 000000000000..0daa90e13799 --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/xsl.json @@ -0,0 +1,90 @@ +{ + "scopeName": "text.xml.xsl", + "name": "XSL", + "fileTypes": ["xsl", "xslt"], + "patterns": [ + { + "begin": "(<)(xsl)((:))(template)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.namespace.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)", + "name": "meta.tag.xml.template", + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": " (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "include": "text.xml" + } + ], + "repository": { + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280" +} diff --git a/extensions/continue/gui/textmate-syntaxes/yaml.json b/extensions/continue/gui/textmate-syntaxes/yaml.json new file mode 100644 index 000000000000..97bc4355289f --- /dev/null +++ b/extensions/continue/gui/textmate-syntaxes/yaml.json @@ -0,0 +1,629 @@ +{ + "fileTypes": [ + "yaml", + "yml", + "rviz", + "reek", + "clang-format", + "yaml-tmlanguage", + "syntax", + "sublime-syntax" + ], + "firstLineMatch": "^%YAML( ?1.\\d+)?", + "keyEquivalent": "^~Y", + "name": "YAML", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + }, + { + "include": "#directive" + }, + { + "match": "^---", + "name": "entity.other.document.begin.yaml" + }, + { + "match": "^\\.{3}", + "name": "entity.other.document.end.yaml" + }, + { + "include": "#node" + } + ], + "repository": { + "block-collection": { + "patterns": [ + { + "include": "#block-sequence" + }, + { + "include": "#block-mapping" + } + ] + }, + "block-mapping": { + "patterns": [ + { + "include": "#block-pair" + } + ] + }, + "block-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#block-scalar" + }, + { + "include": "#block-collection" + }, + { + "include": "#flow-scalar-plain-out" + }, + { + "include": "#flow-node" + } + ] + }, + "block-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=\\?)|^ *(:)|(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.key-value.mapping.yaml" + }, + "2": { + "name": "invalid.illegal.expected-newline.yaml" + } + }, + "name": "meta.block-mapping.yaml", + "patterns": [ + { + "include": "#block-node" + } + ] + }, + { + "begin": "(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\\s\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + { + "match": ":(?=\\s|$)", + "name": "punctuation.separator.key-value.mapping.yaml" + } + ] + }, + "block-scalar": { + "begin": "(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.scalar.literal.yaml" + }, + "2": { + "name": "punctuation.definition.block.scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "support.other.chomping-indicator.yaml" + }, + "5": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": ".+", + "name": "invalid.illegal.expected-comment-or-newline.yaml" + } + ] + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "^([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "string.unquoted.block.yaml" + } + ] + }, + "block-sequence": { + "match": "(-)( |\\t|$)", + "name": "punctuation.definition.block.sequence.item.yaml" + }, + "comment": { + "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.yaml" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.yaml" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.yaml" + } + ] + }, + "directive": { + "begin": "^%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.directive.begin.yaml" + } + }, + "end": "(?=$|[ \\t]+($|#))", + "name": "meta.directive.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.directive.yaml.yaml" + }, + "2": { + "name": "constant.numeric.yaml-version.yaml" + } + }, + "match": "\\G(YAML)[ \\t]+(\\d+\\.\\d+)" + }, + { + "captures": { + "1": { + "name": "keyword.other.directive.tag.yaml" + }, + "2": { + "name": "storage.type.tag-handle.yaml" + }, + "3": { + "name": "support.type.tag-prefix.yaml" + } + }, + "match": "(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n " + }, + { + "captures": { + "1": { + "name": "support.other.directive.reserved.yaml" + }, + "2": { + "name": "string.unquoted.directive-name.yaml" + }, + "3": { + "name": "string.unquoted.directive-parameter.yaml" + } + }, + "match": "(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?" + }, + { + "match": "\\S+", + "name": "invalid.illegal.unrecognized.yaml" + } + ] + }, + "flow-alias": { + "captures": { + "1": { + "name": "keyword.control.flow.alias.yaml" + }, + "2": { + "name": "punctuation.definition.alias.yaml" + }, + "3": { + "name": "variable.other.alias.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?" + }, + "flow-collection": { + "patterns": [ + { + "include": "#flow-sequence" + }, + { + "include": "#flow-mapping" + } + ] + }, + "flow-mapping": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.mapping.begin.yaml" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.mapping.end.yaml" + } + }, + "name": "meta.flow-mapping.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.mapping.yaml" + }, + { + "include": "#flow-pair" + } + ] + }, + "flow-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-alias" + }, + { + "include": "#flow-collection" + }, + { + "include": "#flow-scalar" + } + ] + }, + "flow-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.explicit.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + { + "begin": "(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\\s\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "meta.flow-pair.key.yaml", + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "captures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.yaml", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + "flow-scalar": { + "patterns": [ + { + "include": "#flow-scalar-double-quoted" + }, + { + "include": "#flow-scalar-single-quoted" + }, + { + "include": "#flow-scalar-plain-in" + } + ] + }, + "flow-scalar-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.double.yaml", + "patterns": [ + { + "match": "\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})", + "name": "constant.character.escape.yaml" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.double-quoted.newline.yaml" + } + ] + }, + "flow-scalar-plain-in": { + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + "flow-scalar-plain-in-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n )\n " + } + ] + }, + "flow-scalar-plain-out": { + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + "flow-scalar-plain-out-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n )\n " + } + ] + }, + "flow-scalar-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "'(?!')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.single.yaml", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.single-quoted.yaml" + } + ] + }, + "flow-sequence": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.sequence.begin.yaml" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.sequence.end.yaml" + } + }, + "name": "meta.flow-sequence.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.sequence.yaml" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + } + ] + }, + "flow-value": { + "patterns": [ + { + "begin": "\\G(?![},\\]])", + "end": "(?=[},\\]])", + "name": "meta.flow-pair.value.yaml", + "patterns": [ + { + "include": "#flow-node" + } + ] + } + ] + }, + "node": { + "patterns": [ + { + "include": "#block-node" + } + ] + }, + "property": { + "begin": "(?=!|&)", + "end": "(?!\\G)", + "name": "meta.property.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.property.anchor.yaml" + }, + "2": { + "name": "punctuation.definition.anchor.yaml" + }, + "3": { + "name": "entity.name.type.anchor.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?" + }, + { + "match": "(?x)\n \\G\n (?:\n ! < (?: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ", + "name": "storage.type.tag-handle.yaml" + }, + { + "match": "\\S+", + "name": "invalid.illegal.tag-handle.yaml" + } + ] + }, + "prototype": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + } + ] + } + }, + "scopeName": "source.yaml", + "uuid": "686AD6AE-33F3-4493-9512-9E9FC1D5417F", + "version": "https://github.com/textmate/yaml.tmbundle/commit/9a4135db812815467828e467e1a57189e1ccdac9" +} diff --git a/extensions/continue/media/icon.png b/extensions/continue/media/icon.png new file mode 100644 index 000000000000..d8f9f16c59b4 Binary files /dev/null and b/extensions/continue/media/icon.png differ diff --git a/extensions/continue/media/move-chat-panel-right.md b/extensions/continue/media/move-chat-panel-right.md new file mode 100644 index 000000000000..73ab338f10cb --- /dev/null +++ b/extensions/continue/media/move-chat-panel-right.md @@ -0,0 +1,5 @@ +# Move Chat to the right sidebar + +### This will prevent the Chat panel from covering your file explorer + +![Move Continue to right sidebar](./move-to-right-sidebar.gif) diff --git a/extensions/continue/media/move-to-right-sidebar.gif b/extensions/continue/media/move-to-right-sidebar.gif new file mode 100644 index 000000000000..d21ea71a0164 Binary files /dev/null and b/extensions/continue/media/move-to-right-sidebar.gif differ diff --git a/extensions/continue/media/prompt.tmLanguage.json b/extensions/continue/media/prompt.tmLanguage.json new file mode 100644 index 000000000000..c1022d88299e --- /dev/null +++ b/extensions/continue/media/prompt.tmLanguage.json @@ -0,0 +1,64 @@ +{ + "name": "Prompt", + "scopeName": "source.prompt", + "patterns": [ + { + "include": "#at-references" + }, + { + "include": "#strings" + }, + { + "include": "#comments" + } + ], + "repository": { + "at-references": { + "patterns": [ + { + "name": "entity.name.type.prompt", + "match": "@\\S+" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.prompt", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.prompt", + "match": "\\\\." + } + ] + }, + { + "name": "string.quoted.single.prompt", + "begin": "'", + "end": "'", + "patterns": [ + { + "name": "constant.character.escape.prompt", + "match": "\\\\." + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.double-slash.prompt", + "match": "//.*$" + }, + { + "name": "comment.block.prompt", + "begin": "/\\*", + "end": "\\*/" + } + ] + } + } +} diff --git a/extensions/continue/media/readme.png b/extensions/continue/media/readme.png new file mode 100644 index 000000000000..64f65b845abb Binary files /dev/null and b/extensions/continue/media/readme.png differ diff --git a/extensions/continue/media/sidebar-icon.png b/extensions/continue/media/sidebar-icon.png new file mode 100644 index 000000000000..4f41d9dfd179 Binary files /dev/null and b/extensions/continue/media/sidebar-icon.png differ diff --git a/extensions/continue/models/README.md b/extensions/continue/models/README.md new file mode 100644 index 000000000000..23c735a99361 --- /dev/null +++ b/extensions/continue/models/README.md @@ -0,0 +1 @@ +all-MiniLM-L6-v2 is the sentence transformers model used with transformers.js to locally generate codebase embeddings. diff --git a/extensions/continue/models/all-MiniLM-L6-v2/README.md b/extensions/continue/models/all-MiniLM-L6-v2/README.md new file mode 100644 index 000000000000..2fe7dd1dd23c --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/README.md @@ -0,0 +1,48 @@ +--- +library_name: "transformers.js" +--- + +https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 with ONNX weights to be compatible with Transformers.js. + +## Usage (Transformers.js) + +If you haven't already, you can install the [Transformers.js](https://huggingface.co/docs/transformers.js) JavaScript library from [NPM](https://www.npmjs.com/package/@xenova/transformers) using: + +```bash +npm i @xenova/transformers +``` + +You can then use the model to compute embeddings like this: + +```js +import { pipeline } from "@xenova/transformers"; + +// Create a feature-extraction pipeline +const extractor = await pipeline( + "feature-extraction", + "Xenova/all-MiniLM-L6-v2", +); + +// Compute sentence embeddings +const sentences = ["This is an example sentence", "Each sentence is converted"]; +const output = await extractor(sentences, { pooling: "mean", normalize: true }); +console.log(output); +// Tensor { +// dims: [ 2, 384 ], +// type: 'float32', +// data: Float32Array(768) [ 0.04592696577310562, 0.07328180968761444, ... ], +// size: 768 +// } +``` + +You can convert this Tensor to a nested JavaScript array using `.tolist()`: + +```js +console.log(output.tolist()); +// [ +// [ 0.04592696577310562, 0.07328180968761444, 0.05400655046105385, ... ], +// [ 0.08188057690858841, 0.10760223120450974, -0.013241755776107311, ... ] +// ] +``` + +Note: Having a separate repo for ONNX weights is intended to be a temporary solution until WebML gains more traction. If you would like to make your models web-ready, we recommend converting to ONNX using [🤗 Optimum](https://huggingface.co/docs/optimum/index) and structuring your repo like this one (with ONNX weights located in a subfolder named `onnx`). diff --git a/extensions/continue/models/all-MiniLM-L6-v2/config.json b/extensions/continue/models/all-MiniLM-L6-v2/config.json new file mode 100644 index 000000000000..4addeb1692f2 --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/config.json @@ -0,0 +1,23 @@ +{ + "_name_or_path": "all-MiniLM-L6-v2", + "architectures": ["BertModel"], + "attention_probs_dropout_prob": 0.1, + "classifier_dropout": null, + "gradient_checkpointing": false, + "hidden_act": "gelu", + "hidden_dropout_prob": 0.1, + "hidden_size": 384, + "initializer_range": 0.02, + "intermediate_size": 1536, + "layer_norm_eps": 1e-12, + "max_position_embeddings": 512, + "model_type": "bert", + "num_attention_heads": 12, + "num_hidden_layers": 6, + "pad_token_id": 0, + "position_embedding_type": "absolute", + "transformers_version": "4.29.2", + "type_vocab_size": 2, + "use_cache": true, + "vocab_size": 30522 +} diff --git a/extensions/continue/models/all-MiniLM-L6-v2/onnx/model_quantized.onnx b/extensions/continue/models/all-MiniLM-L6-v2/onnx/model_quantized.onnx new file mode 100644 index 000000000000..712e070a96da Binary files /dev/null and b/extensions/continue/models/all-MiniLM-L6-v2/onnx/model_quantized.onnx differ diff --git a/extensions/continue/models/all-MiniLM-L6-v2/special_tokens_map.json b/extensions/continue/models/all-MiniLM-L6-v2/special_tokens_map.json new file mode 100644 index 000000000000..a8b3208c2884 --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/special_tokens_map.json @@ -0,0 +1,7 @@ +{ + "cls_token": "[CLS]", + "mask_token": "[MASK]", + "pad_token": "[PAD]", + "sep_token": "[SEP]", + "unk_token": "[UNK]" +} diff --git a/extensions/continue/models/all-MiniLM-L6-v2/tokenizer.json b/extensions/continue/models/all-MiniLM-L6-v2/tokenizer.json new file mode 100644 index 000000000000..619288fb6e46 --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/tokenizer.json @@ -0,0 +1,30678 @@ +{ + "version": "1.0", + "truncation": { + "direction": "Right", + "max_length": 128, + "strategy": "LongestFirst", + "stride": 0 + }, + "padding": { + "strategy": { + "Fixed": 128 + }, + "direction": "Right", + "pad_to_multiple_of": null, + "pad_id": 0, + "pad_type_id": 0, + "pad_token": "[PAD]" + }, + "added_tokens": [ + { + "id": 0, + "content": "[PAD]", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 100, + "content": "[UNK]", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 101, + "content": "[CLS]", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 102, + "content": "[SEP]", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 103, + "content": "[MASK]", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + } + ], + "normalizer": { + "type": "BertNormalizer", + "clean_text": true, + "handle_chinese_chars": true, + "strip_accents": null, + "lowercase": true + }, + "pre_tokenizer": { + "type": "BertPreTokenizer" + }, + "post_processor": { + "type": "TemplateProcessing", + "single": [ + { + "SpecialToken": { + "id": "[CLS]", + "type_id": 0 + } + }, + { + "Sequence": { + "id": "A", + "type_id": 0 + } + }, + { + "SpecialToken": { + "id": "[SEP]", + "type_id": 0 + } + } + ], + "pair": [ + { + "SpecialToken": { + "id": "[CLS]", + "type_id": 0 + } + }, + { + "Sequence": { + "id": "A", + "type_id": 0 + } + }, + { + "SpecialToken": { + "id": "[SEP]", + "type_id": 0 + } + }, + { + "Sequence": { + "id": "B", + "type_id": 1 + } + }, + { + "SpecialToken": { + "id": "[SEP]", + "type_id": 1 + } + } + ], + "special_tokens": { + "[CLS]": { + "id": "[CLS]", + "ids": [101], + "tokens": ["[CLS]"] + }, + "[SEP]": { + "id": "[SEP]", + "ids": [102], + "tokens": ["[SEP]"] + } + } + }, + "decoder": { + "type": "WordPiece", + "prefix": "##", + "cleanup": true + }, + "model": { + "type": "WordPiece", + "unk_token": "[UNK]", + "continuing_subword_prefix": "##", + "max_input_chars_per_word": 100, + "vocab": { + "[PAD]": 0, + "[unused0]": 1, + "[unused1]": 2, + "[unused2]": 3, + "[unused3]": 4, + "[unused4]": 5, + "[unused5]": 6, + "[unused6]": 7, + "[unused7]": 8, + "[unused8]": 9, + "[unused9]": 10, + "[unused10]": 11, + "[unused11]": 12, + "[unused12]": 13, + "[unused13]": 14, + "[unused14]": 15, + "[unused15]": 16, + "[unused16]": 17, + "[unused17]": 18, + "[unused18]": 19, + "[unused19]": 20, + "[unused20]": 21, + "[unused21]": 22, + "[unused22]": 23, + "[unused23]": 24, + "[unused24]": 25, + "[unused25]": 26, + "[unused26]": 27, + "[unused27]": 28, + "[unused28]": 29, + "[unused29]": 30, + "[unused30]": 31, + "[unused31]": 32, + "[unused32]": 33, + "[unused33]": 34, + "[unused34]": 35, + "[unused35]": 36, + "[unused36]": 37, + "[unused37]": 38, + "[unused38]": 39, + "[unused39]": 40, + "[unused40]": 41, + "[unused41]": 42, + "[unused42]": 43, + "[unused43]": 44, + "[unused44]": 45, + "[unused45]": 46, + "[unused46]": 47, + "[unused47]": 48, + "[unused48]": 49, + "[unused49]": 50, + "[unused50]": 51, + "[unused51]": 52, + "[unused52]": 53, + "[unused53]": 54, + "[unused54]": 55, + "[unused55]": 56, + "[unused56]": 57, + "[unused57]": 58, + "[unused58]": 59, + "[unused59]": 60, + "[unused60]": 61, + "[unused61]": 62, + "[unused62]": 63, + "[unused63]": 64, + "[unused64]": 65, + "[unused65]": 66, + "[unused66]": 67, + "[unused67]": 68, + "[unused68]": 69, + "[unused69]": 70, + "[unused70]": 71, + "[unused71]": 72, + "[unused72]": 73, + "[unused73]": 74, + "[unused74]": 75, + "[unused75]": 76, + "[unused76]": 77, + "[unused77]": 78, + "[unused78]": 79, + "[unused79]": 80, + "[unused80]": 81, + "[unused81]": 82, + "[unused82]": 83, + "[unused83]": 84, + "[unused84]": 85, + "[unused85]": 86, + "[unused86]": 87, + "[unused87]": 88, + "[unused88]": 89, + "[unused89]": 90, + "[unused90]": 91, + "[unused91]": 92, + "[unused92]": 93, + "[unused93]": 94, + "[unused94]": 95, + "[unused95]": 96, + "[unused96]": 97, + "[unused97]": 98, + "[unused98]": 99, + "[UNK]": 100, + "[CLS]": 101, + "[SEP]": 102, + "[MASK]": 103, + "[unused99]": 104, + "[unused100]": 105, + "[unused101]": 106, + "[unused102]": 107, + "[unused103]": 108, + "[unused104]": 109, + "[unused105]": 110, + "[unused106]": 111, + "[unused107]": 112, + "[unused108]": 113, + "[unused109]": 114, + "[unused110]": 115, + "[unused111]": 116, + "[unused112]": 117, + "[unused113]": 118, + "[unused114]": 119, + "[unused115]": 120, + "[unused116]": 121, + "[unused117]": 122, + "[unused118]": 123, + "[unused119]": 124, + "[unused120]": 125, + "[unused121]": 126, + "[unused122]": 127, + "[unused123]": 128, + "[unused124]": 129, + "[unused125]": 130, + "[unused126]": 131, + "[unused127]": 132, + "[unused128]": 133, + "[unused129]": 134, + "[unused130]": 135, + "[unused131]": 136, + "[unused132]": 137, + "[unused133]": 138, + "[unused134]": 139, + "[unused135]": 140, + "[unused136]": 141, + "[unused137]": 142, + "[unused138]": 143, + "[unused139]": 144, + "[unused140]": 145, + "[unused141]": 146, + "[unused142]": 147, + "[unused143]": 148, + "[unused144]": 149, + "[unused145]": 150, + "[unused146]": 151, + "[unused147]": 152, + "[unused148]": 153, + "[unused149]": 154, + "[unused150]": 155, + "[unused151]": 156, + "[unused152]": 157, + "[unused153]": 158, + "[unused154]": 159, + "[unused155]": 160, + "[unused156]": 161, + "[unused157]": 162, + "[unused158]": 163, + "[unused159]": 164, + "[unused160]": 165, + "[unused161]": 166, + "[unused162]": 167, + "[unused163]": 168, + "[unused164]": 169, + "[unused165]": 170, + "[unused166]": 171, + "[unused167]": 172, + "[unused168]": 173, + "[unused169]": 174, + "[unused170]": 175, + "[unused171]": 176, + "[unused172]": 177, + "[unused173]": 178, + "[unused174]": 179, + "[unused175]": 180, + "[unused176]": 181, + "[unused177]": 182, + "[unused178]": 183, + "[unused179]": 184, + "[unused180]": 185, + "[unused181]": 186, + "[unused182]": 187, + "[unused183]": 188, + "[unused184]": 189, + "[unused185]": 190, + "[unused186]": 191, + "[unused187]": 192, + "[unused188]": 193, + "[unused189]": 194, + "[unused190]": 195, + "[unused191]": 196, + "[unused192]": 197, + "[unused193]": 198, + "[unused194]": 199, + "[unused195]": 200, + "[unused196]": 201, + "[unused197]": 202, + "[unused198]": 203, + "[unused199]": 204, + "[unused200]": 205, + "[unused201]": 206, + "[unused202]": 207, + "[unused203]": 208, + "[unused204]": 209, + "[unused205]": 210, + "[unused206]": 211, + "[unused207]": 212, + "[unused208]": 213, + "[unused209]": 214, + "[unused210]": 215, + "[unused211]": 216, + "[unused212]": 217, + "[unused213]": 218, + "[unused214]": 219, + "[unused215]": 220, + "[unused216]": 221, + "[unused217]": 222, + "[unused218]": 223, + "[unused219]": 224, + "[unused220]": 225, + "[unused221]": 226, + "[unused222]": 227, + "[unused223]": 228, + "[unused224]": 229, + "[unused225]": 230, + "[unused226]": 231, + "[unused227]": 232, + "[unused228]": 233, + "[unused229]": 234, + "[unused230]": 235, + "[unused231]": 236, + "[unused232]": 237, + "[unused233]": 238, + "[unused234]": 239, + "[unused235]": 240, + "[unused236]": 241, + "[unused237]": 242, + "[unused238]": 243, + "[unused239]": 244, + "[unused240]": 245, + "[unused241]": 246, + "[unused242]": 247, + "[unused243]": 248, + "[unused244]": 249, + "[unused245]": 250, + "[unused246]": 251, + "[unused247]": 252, + "[unused248]": 253, + "[unused249]": 254, + "[unused250]": 255, + "[unused251]": 256, + "[unused252]": 257, + "[unused253]": 258, + "[unused254]": 259, + "[unused255]": 260, + "[unused256]": 261, + "[unused257]": 262, + "[unused258]": 263, + "[unused259]": 264, + "[unused260]": 265, + "[unused261]": 266, + "[unused262]": 267, + "[unused263]": 268, + "[unused264]": 269, + "[unused265]": 270, + "[unused266]": 271, + "[unused267]": 272, + "[unused268]": 273, + "[unused269]": 274, + "[unused270]": 275, + "[unused271]": 276, + "[unused272]": 277, + "[unused273]": 278, + "[unused274]": 279, + "[unused275]": 280, + "[unused276]": 281, + "[unused277]": 282, + "[unused278]": 283, + "[unused279]": 284, + "[unused280]": 285, + "[unused281]": 286, + "[unused282]": 287, + "[unused283]": 288, + "[unused284]": 289, + "[unused285]": 290, + "[unused286]": 291, + "[unused287]": 292, + "[unused288]": 293, + "[unused289]": 294, + "[unused290]": 295, + "[unused291]": 296, + "[unused292]": 297, + "[unused293]": 298, + "[unused294]": 299, + "[unused295]": 300, + "[unused296]": 301, + "[unused297]": 302, + "[unused298]": 303, + "[unused299]": 304, + "[unused300]": 305, + "[unused301]": 306, + "[unused302]": 307, + "[unused303]": 308, + "[unused304]": 309, + "[unused305]": 310, + "[unused306]": 311, + "[unused307]": 312, + "[unused308]": 313, + "[unused309]": 314, + "[unused310]": 315, + "[unused311]": 316, + "[unused312]": 317, + "[unused313]": 318, + "[unused314]": 319, + "[unused315]": 320, + "[unused316]": 321, + "[unused317]": 322, + "[unused318]": 323, + "[unused319]": 324, + "[unused320]": 325, + "[unused321]": 326, + "[unused322]": 327, + "[unused323]": 328, + "[unused324]": 329, + "[unused325]": 330, + "[unused326]": 331, + "[unused327]": 332, + "[unused328]": 333, + "[unused329]": 334, + "[unused330]": 335, + "[unused331]": 336, + "[unused332]": 337, + "[unused333]": 338, + "[unused334]": 339, + "[unused335]": 340, + "[unused336]": 341, + "[unused337]": 342, + "[unused338]": 343, + "[unused339]": 344, + "[unused340]": 345, + "[unused341]": 346, + "[unused342]": 347, + "[unused343]": 348, + "[unused344]": 349, + "[unused345]": 350, + "[unused346]": 351, + "[unused347]": 352, + "[unused348]": 353, + "[unused349]": 354, + "[unused350]": 355, + "[unused351]": 356, + "[unused352]": 357, + "[unused353]": 358, + "[unused354]": 359, + "[unused355]": 360, + "[unused356]": 361, + "[unused357]": 362, + "[unused358]": 363, + "[unused359]": 364, + "[unused360]": 365, + "[unused361]": 366, + "[unused362]": 367, + "[unused363]": 368, + "[unused364]": 369, + "[unused365]": 370, + "[unused366]": 371, + "[unused367]": 372, + "[unused368]": 373, + "[unused369]": 374, + "[unused370]": 375, + "[unused371]": 376, + "[unused372]": 377, + "[unused373]": 378, + "[unused374]": 379, + "[unused375]": 380, + "[unused376]": 381, + "[unused377]": 382, + "[unused378]": 383, + "[unused379]": 384, + "[unused380]": 385, + "[unused381]": 386, + "[unused382]": 387, + "[unused383]": 388, + "[unused384]": 389, + "[unused385]": 390, + "[unused386]": 391, + "[unused387]": 392, + "[unused388]": 393, + "[unused389]": 394, + "[unused390]": 395, + "[unused391]": 396, + "[unused392]": 397, + "[unused393]": 398, + "[unused394]": 399, + "[unused395]": 400, + "[unused396]": 401, + "[unused397]": 402, + "[unused398]": 403, + "[unused399]": 404, + "[unused400]": 405, + "[unused401]": 406, + "[unused402]": 407, + "[unused403]": 408, + "[unused404]": 409, + "[unused405]": 410, + "[unused406]": 411, + "[unused407]": 412, + "[unused408]": 413, + "[unused409]": 414, + "[unused410]": 415, + "[unused411]": 416, + "[unused412]": 417, + "[unused413]": 418, + "[unused414]": 419, + "[unused415]": 420, + "[unused416]": 421, + "[unused417]": 422, + "[unused418]": 423, + "[unused419]": 424, + "[unused420]": 425, + "[unused421]": 426, + "[unused422]": 427, + "[unused423]": 428, + "[unused424]": 429, + "[unused425]": 430, + "[unused426]": 431, + "[unused427]": 432, + "[unused428]": 433, + "[unused429]": 434, + "[unused430]": 435, + "[unused431]": 436, + "[unused432]": 437, + "[unused433]": 438, + "[unused434]": 439, + "[unused435]": 440, + "[unused436]": 441, + "[unused437]": 442, + "[unused438]": 443, + "[unused439]": 444, + "[unused440]": 445, + "[unused441]": 446, + "[unused442]": 447, + "[unused443]": 448, + "[unused444]": 449, + "[unused445]": 450, + "[unused446]": 451, + "[unused447]": 452, + "[unused448]": 453, + "[unused449]": 454, + "[unused450]": 455, + "[unused451]": 456, + "[unused452]": 457, + "[unused453]": 458, + "[unused454]": 459, + "[unused455]": 460, + "[unused456]": 461, + "[unused457]": 462, + "[unused458]": 463, + "[unused459]": 464, + "[unused460]": 465, + "[unused461]": 466, + "[unused462]": 467, + "[unused463]": 468, + "[unused464]": 469, + "[unused465]": 470, + "[unused466]": 471, + "[unused467]": 472, + "[unused468]": 473, + "[unused469]": 474, + "[unused470]": 475, + "[unused471]": 476, + "[unused472]": 477, + "[unused473]": 478, + "[unused474]": 479, + "[unused475]": 480, + "[unused476]": 481, + "[unused477]": 482, + "[unused478]": 483, + "[unused479]": 484, + "[unused480]": 485, + "[unused481]": 486, + "[unused482]": 487, + "[unused483]": 488, + "[unused484]": 489, + "[unused485]": 490, + "[unused486]": 491, + "[unused487]": 492, + "[unused488]": 493, + "[unused489]": 494, + "[unused490]": 495, + "[unused491]": 496, + "[unused492]": 497, + "[unused493]": 498, + "[unused494]": 499, + "[unused495]": 500, + "[unused496]": 501, + "[unused497]": 502, + "[unused498]": 503, + "[unused499]": 504, + "[unused500]": 505, + "[unused501]": 506, + "[unused502]": 507, + "[unused503]": 508, + "[unused504]": 509, + "[unused505]": 510, + "[unused506]": 511, + "[unused507]": 512, + "[unused508]": 513, + "[unused509]": 514, + "[unused510]": 515, + "[unused511]": 516, + "[unused512]": 517, + "[unused513]": 518, + "[unused514]": 519, + "[unused515]": 520, + "[unused516]": 521, + "[unused517]": 522, + "[unused518]": 523, + "[unused519]": 524, + "[unused520]": 525, + "[unused521]": 526, + "[unused522]": 527, + "[unused523]": 528, + "[unused524]": 529, + "[unused525]": 530, + "[unused526]": 531, + "[unused527]": 532, + "[unused528]": 533, + "[unused529]": 534, + "[unused530]": 535, + "[unused531]": 536, + "[unused532]": 537, + "[unused533]": 538, + "[unused534]": 539, + "[unused535]": 540, + "[unused536]": 541, + "[unused537]": 542, + "[unused538]": 543, + "[unused539]": 544, + "[unused540]": 545, + "[unused541]": 546, + "[unused542]": 547, + "[unused543]": 548, + "[unused544]": 549, + "[unused545]": 550, + "[unused546]": 551, + "[unused547]": 552, + "[unused548]": 553, + "[unused549]": 554, + "[unused550]": 555, + "[unused551]": 556, + "[unused552]": 557, + "[unused553]": 558, + "[unused554]": 559, + "[unused555]": 560, + "[unused556]": 561, + "[unused557]": 562, + "[unused558]": 563, + "[unused559]": 564, + "[unused560]": 565, + "[unused561]": 566, + "[unused562]": 567, + "[unused563]": 568, + "[unused564]": 569, + "[unused565]": 570, + "[unused566]": 571, + "[unused567]": 572, + "[unused568]": 573, + "[unused569]": 574, + "[unused570]": 575, + "[unused571]": 576, + "[unused572]": 577, + "[unused573]": 578, + "[unused574]": 579, + "[unused575]": 580, + "[unused576]": 581, + "[unused577]": 582, + "[unused578]": 583, + "[unused579]": 584, + "[unused580]": 585, + "[unused581]": 586, + "[unused582]": 587, + "[unused583]": 588, + "[unused584]": 589, + "[unused585]": 590, + "[unused586]": 591, + "[unused587]": 592, + "[unused588]": 593, + "[unused589]": 594, + "[unused590]": 595, + "[unused591]": 596, + "[unused592]": 597, + "[unused593]": 598, + "[unused594]": 599, + "[unused595]": 600, + "[unused596]": 601, + "[unused597]": 602, + "[unused598]": 603, + "[unused599]": 604, + "[unused600]": 605, + "[unused601]": 606, + "[unused602]": 607, + "[unused603]": 608, + "[unused604]": 609, + "[unused605]": 610, + "[unused606]": 611, + "[unused607]": 612, + "[unused608]": 613, + "[unused609]": 614, + "[unused610]": 615, + "[unused611]": 616, + "[unused612]": 617, + "[unused613]": 618, + "[unused614]": 619, + "[unused615]": 620, + "[unused616]": 621, + "[unused617]": 622, + "[unused618]": 623, + "[unused619]": 624, + "[unused620]": 625, + "[unused621]": 626, + "[unused622]": 627, + "[unused623]": 628, + "[unused624]": 629, + "[unused625]": 630, + "[unused626]": 631, + "[unused627]": 632, + "[unused628]": 633, + "[unused629]": 634, + "[unused630]": 635, + "[unused631]": 636, + "[unused632]": 637, + "[unused633]": 638, + "[unused634]": 639, + "[unused635]": 640, + "[unused636]": 641, + "[unused637]": 642, + "[unused638]": 643, + "[unused639]": 644, + "[unused640]": 645, + "[unused641]": 646, + "[unused642]": 647, + "[unused643]": 648, + "[unused644]": 649, + "[unused645]": 650, + "[unused646]": 651, + "[unused647]": 652, + "[unused648]": 653, + "[unused649]": 654, + "[unused650]": 655, + "[unused651]": 656, + "[unused652]": 657, + "[unused653]": 658, + "[unused654]": 659, + "[unused655]": 660, + "[unused656]": 661, + "[unused657]": 662, + "[unused658]": 663, + "[unused659]": 664, + "[unused660]": 665, + "[unused661]": 666, + "[unused662]": 667, + "[unused663]": 668, + "[unused664]": 669, + "[unused665]": 670, + "[unused666]": 671, + "[unused667]": 672, + "[unused668]": 673, + "[unused669]": 674, + "[unused670]": 675, + "[unused671]": 676, + "[unused672]": 677, + "[unused673]": 678, + "[unused674]": 679, + "[unused675]": 680, + "[unused676]": 681, + "[unused677]": 682, + "[unused678]": 683, + "[unused679]": 684, + "[unused680]": 685, + "[unused681]": 686, + "[unused682]": 687, + "[unused683]": 688, + "[unused684]": 689, + "[unused685]": 690, + "[unused686]": 691, + "[unused687]": 692, + "[unused688]": 693, + "[unused689]": 694, + "[unused690]": 695, + "[unused691]": 696, + "[unused692]": 697, + "[unused693]": 698, + "[unused694]": 699, + "[unused695]": 700, + "[unused696]": 701, + "[unused697]": 702, + "[unused698]": 703, + "[unused699]": 704, + "[unused700]": 705, + "[unused701]": 706, + "[unused702]": 707, + "[unused703]": 708, + "[unused704]": 709, + "[unused705]": 710, + "[unused706]": 711, + "[unused707]": 712, + "[unused708]": 713, + "[unused709]": 714, + "[unused710]": 715, + "[unused711]": 716, + "[unused712]": 717, + "[unused713]": 718, + "[unused714]": 719, + "[unused715]": 720, + "[unused716]": 721, + "[unused717]": 722, + "[unused718]": 723, + "[unused719]": 724, + "[unused720]": 725, + "[unused721]": 726, + "[unused722]": 727, + "[unused723]": 728, + "[unused724]": 729, + "[unused725]": 730, + "[unused726]": 731, + "[unused727]": 732, + "[unused728]": 733, + "[unused729]": 734, + "[unused730]": 735, + "[unused731]": 736, + "[unused732]": 737, + "[unused733]": 738, + "[unused734]": 739, + "[unused735]": 740, + "[unused736]": 741, + "[unused737]": 742, + "[unused738]": 743, + "[unused739]": 744, + "[unused740]": 745, + "[unused741]": 746, + "[unused742]": 747, + "[unused743]": 748, + "[unused744]": 749, + "[unused745]": 750, + "[unused746]": 751, + "[unused747]": 752, + "[unused748]": 753, + "[unused749]": 754, + "[unused750]": 755, + "[unused751]": 756, + "[unused752]": 757, + "[unused753]": 758, + "[unused754]": 759, + "[unused755]": 760, + "[unused756]": 761, + "[unused757]": 762, + "[unused758]": 763, + "[unused759]": 764, + "[unused760]": 765, + "[unused761]": 766, + "[unused762]": 767, + "[unused763]": 768, + "[unused764]": 769, + "[unused765]": 770, + "[unused766]": 771, + "[unused767]": 772, + "[unused768]": 773, + "[unused769]": 774, + "[unused770]": 775, + "[unused771]": 776, + "[unused772]": 777, + "[unused773]": 778, + "[unused774]": 779, + "[unused775]": 780, + "[unused776]": 781, + "[unused777]": 782, + "[unused778]": 783, + "[unused779]": 784, + "[unused780]": 785, + "[unused781]": 786, + "[unused782]": 787, + "[unused783]": 788, + "[unused784]": 789, + "[unused785]": 790, + "[unused786]": 791, + "[unused787]": 792, + "[unused788]": 793, + "[unused789]": 794, + "[unused790]": 795, + "[unused791]": 796, + "[unused792]": 797, + "[unused793]": 798, + "[unused794]": 799, + "[unused795]": 800, + "[unused796]": 801, + "[unused797]": 802, + "[unused798]": 803, + "[unused799]": 804, + "[unused800]": 805, + "[unused801]": 806, + "[unused802]": 807, + "[unused803]": 808, + "[unused804]": 809, + "[unused805]": 810, + "[unused806]": 811, + "[unused807]": 812, + "[unused808]": 813, + "[unused809]": 814, + "[unused810]": 815, + "[unused811]": 816, + "[unused812]": 817, + "[unused813]": 818, + "[unused814]": 819, + "[unused815]": 820, + "[unused816]": 821, + "[unused817]": 822, + "[unused818]": 823, + "[unused819]": 824, + "[unused820]": 825, + "[unused821]": 826, + "[unused822]": 827, + "[unused823]": 828, + "[unused824]": 829, + "[unused825]": 830, + "[unused826]": 831, + "[unused827]": 832, + "[unused828]": 833, + "[unused829]": 834, + "[unused830]": 835, + "[unused831]": 836, + "[unused832]": 837, + "[unused833]": 838, + "[unused834]": 839, + "[unused835]": 840, + "[unused836]": 841, + "[unused837]": 842, + "[unused838]": 843, + "[unused839]": 844, + "[unused840]": 845, + "[unused841]": 846, + "[unused842]": 847, + "[unused843]": 848, + "[unused844]": 849, + "[unused845]": 850, + "[unused846]": 851, + "[unused847]": 852, + "[unused848]": 853, + "[unused849]": 854, + "[unused850]": 855, + "[unused851]": 856, + "[unused852]": 857, + "[unused853]": 858, + "[unused854]": 859, + "[unused855]": 860, + "[unused856]": 861, + "[unused857]": 862, + "[unused858]": 863, + "[unused859]": 864, + "[unused860]": 865, + "[unused861]": 866, + "[unused862]": 867, + "[unused863]": 868, + "[unused864]": 869, + "[unused865]": 870, + "[unused866]": 871, + "[unused867]": 872, + "[unused868]": 873, + "[unused869]": 874, + "[unused870]": 875, + "[unused871]": 876, + "[unused872]": 877, + "[unused873]": 878, + "[unused874]": 879, + "[unused875]": 880, + "[unused876]": 881, + "[unused877]": 882, + "[unused878]": 883, + "[unused879]": 884, + "[unused880]": 885, + "[unused881]": 886, + "[unused882]": 887, + "[unused883]": 888, + "[unused884]": 889, + "[unused885]": 890, + "[unused886]": 891, + "[unused887]": 892, + "[unused888]": 893, + "[unused889]": 894, + "[unused890]": 895, + "[unused891]": 896, + "[unused892]": 897, + "[unused893]": 898, + "[unused894]": 899, + "[unused895]": 900, + "[unused896]": 901, + "[unused897]": 902, + "[unused898]": 903, + "[unused899]": 904, + "[unused900]": 905, + "[unused901]": 906, + "[unused902]": 907, + "[unused903]": 908, + "[unused904]": 909, + "[unused905]": 910, + "[unused906]": 911, + "[unused907]": 912, + "[unused908]": 913, + "[unused909]": 914, + "[unused910]": 915, + "[unused911]": 916, + "[unused912]": 917, + "[unused913]": 918, + "[unused914]": 919, + "[unused915]": 920, + "[unused916]": 921, + "[unused917]": 922, + "[unused918]": 923, + "[unused919]": 924, + "[unused920]": 925, + "[unused921]": 926, + "[unused922]": 927, + "[unused923]": 928, + "[unused924]": 929, + "[unused925]": 930, + "[unused926]": 931, + "[unused927]": 932, + "[unused928]": 933, + "[unused929]": 934, + "[unused930]": 935, + "[unused931]": 936, + "[unused932]": 937, + "[unused933]": 938, + "[unused934]": 939, + "[unused935]": 940, + "[unused936]": 941, + "[unused937]": 942, + "[unused938]": 943, + "[unused939]": 944, + "[unused940]": 945, + "[unused941]": 946, + "[unused942]": 947, + "[unused943]": 948, + "[unused944]": 949, + "[unused945]": 950, + "[unused946]": 951, + "[unused947]": 952, + "[unused948]": 953, + "[unused949]": 954, + "[unused950]": 955, + "[unused951]": 956, + "[unused952]": 957, + "[unused953]": 958, + "[unused954]": 959, + "[unused955]": 960, + "[unused956]": 961, + "[unused957]": 962, + "[unused958]": 963, + "[unused959]": 964, + "[unused960]": 965, + "[unused961]": 966, + "[unused962]": 967, + "[unused963]": 968, + "[unused964]": 969, + "[unused965]": 970, + "[unused966]": 971, + "[unused967]": 972, + "[unused968]": 973, + "[unused969]": 974, + "[unused970]": 975, + "[unused971]": 976, + "[unused972]": 977, + "[unused973]": 978, + "[unused974]": 979, + "[unused975]": 980, + "[unused976]": 981, + "[unused977]": 982, + "[unused978]": 983, + "[unused979]": 984, + "[unused980]": 985, + "[unused981]": 986, + "[unused982]": 987, + "[unused983]": 988, + "[unused984]": 989, + "[unused985]": 990, + "[unused986]": 991, + "[unused987]": 992, + "[unused988]": 993, + "[unused989]": 994, + "[unused990]": 995, + "[unused991]": 996, + "[unused992]": 997, + "[unused993]": 998, + "!": 999, + "\"": 1000, + "#": 1001, + "$": 1002, + "%": 1003, + "&": 1004, + "'": 1005, + "(": 1006, + ")": 1007, + "*": 1008, + "+": 1009, + ",": 1010, + "-": 1011, + ".": 1012, + "/": 1013, + "0": 1014, + "1": 1015, + "2": 1016, + "3": 1017, + "4": 1018, + "5": 1019, + "6": 1020, + "7": 1021, + "8": 1022, + "9": 1023, + ":": 1024, + ";": 1025, + "<": 1026, + "=": 1027, + ">": 1028, + "?": 1029, + "@": 1030, + "[": 1031, + "\\": 1032, + "]": 1033, + "^": 1034, + "_": 1035, + "`": 1036, + "a": 1037, + "b": 1038, + "c": 1039, + "d": 1040, + "e": 1041, + "f": 1042, + "g": 1043, + "h": 1044, + "i": 1045, + "j": 1046, + "k": 1047, + "l": 1048, + "m": 1049, + "n": 1050, + "o": 1051, + "p": 1052, + "q": 1053, + "r": 1054, + "s": 1055, + "t": 1056, + "u": 1057, + "v": 1058, + "w": 1059, + "x": 1060, + "y": 1061, + "z": 1062, + "{": 1063, + "|": 1064, + "}": 1065, + "~": 1066, + "¡": 1067, + "¢": 1068, + "£": 1069, + "¤": 1070, + "¥": 1071, + "¦": 1072, + "§": 1073, + "¨": 1074, + "©": 1075, + "ª": 1076, + "«": 1077, + "¬": 1078, + "®": 1079, + "°": 1080, + "±": 1081, + "²": 1082, + "³": 1083, + "´": 1084, + "µ": 1085, + "¶": 1086, + "·": 1087, + "¹": 1088, + "º": 1089, + "»": 1090, + "¼": 1091, + "½": 1092, + "¾": 1093, + "¿": 1094, + "×": 1095, + "ß": 1096, + "æ": 1097, + "ð": 1098, + "÷": 1099, + "ø": 1100, + "þ": 1101, + "đ": 1102, + "ħ": 1103, + "ı": 1104, + "ł": 1105, + "ŋ": 1106, + "œ": 1107, + "ƒ": 1108, + "ɐ": 1109, + "ɑ": 1110, + "ɒ": 1111, + "ɔ": 1112, + "ɕ": 1113, + "ə": 1114, + "ɛ": 1115, + "ɡ": 1116, + "ɣ": 1117, + "ɨ": 1118, + "ɪ": 1119, + "ɫ": 1120, + "ɬ": 1121, + "ɯ": 1122, + "ɲ": 1123, + "ɴ": 1124, + "ɹ": 1125, + "ɾ": 1126, + "ʀ": 1127, + "ʁ": 1128, + "ʂ": 1129, + "ʃ": 1130, + "ʉ": 1131, + "ʊ": 1132, + "ʋ": 1133, + "ʌ": 1134, + "ʎ": 1135, + "ʐ": 1136, + "ʑ": 1137, + "ʒ": 1138, + "ʔ": 1139, + "ʰ": 1140, + "ʲ": 1141, + "ʳ": 1142, + "ʷ": 1143, + "ʸ": 1144, + "ʻ": 1145, + "ʼ": 1146, + "ʾ": 1147, + "ʿ": 1148, + "ˈ": 1149, + "ː": 1150, + "ˡ": 1151, + "ˢ": 1152, + "ˣ": 1153, + "ˤ": 1154, + "α": 1155, + "β": 1156, + "γ": 1157, + "δ": 1158, + "ε": 1159, + "ζ": 1160, + "η": 1161, + "θ": 1162, + "ι": 1163, + "κ": 1164, + "λ": 1165, + "μ": 1166, + "ν": 1167, + "ξ": 1168, + "ο": 1169, + "π": 1170, + "ρ": 1171, + "ς": 1172, + "σ": 1173, + "τ": 1174, + "υ": 1175, + "φ": 1176, + "χ": 1177, + "ψ": 1178, + "ω": 1179, + "а": 1180, + "б": 1181, + "в": 1182, + "г": 1183, + "д": 1184, + "е": 1185, + "ж": 1186, + "з": 1187, + "и": 1188, + "к": 1189, + "л": 1190, + "м": 1191, + "н": 1192, + "о": 1193, + "п": 1194, + "р": 1195, + "с": 1196, + "т": 1197, + "у": 1198, + "ф": 1199, + "х": 1200, + "ц": 1201, + "ч": 1202, + "ш": 1203, + "щ": 1204, + "ъ": 1205, + "ы": 1206, + "ь": 1207, + "э": 1208, + "ю": 1209, + "я": 1210, + "ђ": 1211, + "є": 1212, + "і": 1213, + "ј": 1214, + "љ": 1215, + "њ": 1216, + "ћ": 1217, + "ӏ": 1218, + "ա": 1219, + "բ": 1220, + "գ": 1221, + "դ": 1222, + "ե": 1223, + "թ": 1224, + "ի": 1225, + "լ": 1226, + "կ": 1227, + "հ": 1228, + "մ": 1229, + "յ": 1230, + "ն": 1231, + "ո": 1232, + "պ": 1233, + "ս": 1234, + "վ": 1235, + "տ": 1236, + "ր": 1237, + "ւ": 1238, + "ք": 1239, + "־": 1240, + "א": 1241, + "ב": 1242, + "ג": 1243, + "ד": 1244, + "ה": 1245, + "ו": 1246, + "ז": 1247, + "ח": 1248, + "ט": 1249, + "י": 1250, + "ך": 1251, + "כ": 1252, + "ל": 1253, + "ם": 1254, + "מ": 1255, + "ן": 1256, + "נ": 1257, + "ס": 1258, + "ע": 1259, + "ף": 1260, + "פ": 1261, + "ץ": 1262, + "צ": 1263, + "ק": 1264, + "ר": 1265, + "ש": 1266, + "ת": 1267, + "،": 1268, + "ء": 1269, + "ا": 1270, + "ب": 1271, + "ة": 1272, + "ت": 1273, + "ث": 1274, + "ج": 1275, + "ح": 1276, + "خ": 1277, + "د": 1278, + "ذ": 1279, + "ر": 1280, + "ز": 1281, + "س": 1282, + "ش": 1283, + "ص": 1284, + "ض": 1285, + "ط": 1286, + "ظ": 1287, + "ع": 1288, + "غ": 1289, + "ـ": 1290, + "ف": 1291, + "ق": 1292, + "ك": 1293, + "ل": 1294, + "م": 1295, + "ن": 1296, + "ه": 1297, + "و": 1298, + "ى": 1299, + "ي": 1300, + "ٹ": 1301, + "پ": 1302, + "چ": 1303, + "ک": 1304, + "گ": 1305, + "ں": 1306, + "ھ": 1307, + "ہ": 1308, + "ی": 1309, + "ے": 1310, + "अ": 1311, + "आ": 1312, + "उ": 1313, + "ए": 1314, + "क": 1315, + "ख": 1316, + "ग": 1317, + "च": 1318, + "ज": 1319, + "ट": 1320, + "ड": 1321, + "ण": 1322, + "त": 1323, + "थ": 1324, + "द": 1325, + "ध": 1326, + "न": 1327, + "प": 1328, + "ब": 1329, + "भ": 1330, + "म": 1331, + "य": 1332, + "र": 1333, + "ल": 1334, + "व": 1335, + "श": 1336, + "ष": 1337, + "स": 1338, + "ह": 1339, + "ा": 1340, + "ि": 1341, + "ी": 1342, + "ो": 1343, + "।": 1344, + "॥": 1345, + "ং": 1346, + "অ": 1347, + "আ": 1348, + "ই": 1349, + "উ": 1350, + "এ": 1351, + "ও": 1352, + "ক": 1353, + "খ": 1354, + "গ": 1355, + "চ": 1356, + "ছ": 1357, + "জ": 1358, + "ট": 1359, + "ড": 1360, + "ণ": 1361, + "ত": 1362, + "থ": 1363, + "দ": 1364, + "ধ": 1365, + "ন": 1366, + "প": 1367, + "ব": 1368, + "ভ": 1369, + "ম": 1370, + "য": 1371, + "র": 1372, + "ল": 1373, + "শ": 1374, + "ষ": 1375, + "স": 1376, + "হ": 1377, + "া": 1378, + "ি": 1379, + "ী": 1380, + "ে": 1381, + "க": 1382, + "ச": 1383, + "ட": 1384, + "த": 1385, + "ந": 1386, + "ன": 1387, + "ப": 1388, + "ம": 1389, + "ய": 1390, + "ர": 1391, + "ல": 1392, + "ள": 1393, + "வ": 1394, + "ா": 1395, + "ி": 1396, + "ு": 1397, + "ே": 1398, + "ை": 1399, + "ನ": 1400, + "ರ": 1401, + "ಾ": 1402, + "ක": 1403, + "ය": 1404, + "ර": 1405, + "ල": 1406, + "ව": 1407, + "ා": 1408, + "ก": 1409, + "ง": 1410, + "ต": 1411, + "ท": 1412, + "น": 1413, + "พ": 1414, + "ม": 1415, + "ย": 1416, + "ร": 1417, + "ล": 1418, + "ว": 1419, + "ส": 1420, + "อ": 1421, + "า": 1422, + "เ": 1423, + "་": 1424, + "།": 1425, + "ག": 1426, + "ང": 1427, + "ད": 1428, + "ན": 1429, + "པ": 1430, + "བ": 1431, + "མ": 1432, + "འ": 1433, + "ར": 1434, + "ལ": 1435, + "ས": 1436, + "မ": 1437, + "ა": 1438, + "ბ": 1439, + "გ": 1440, + "დ": 1441, + "ე": 1442, + "ვ": 1443, + "თ": 1444, + "ი": 1445, + "კ": 1446, + "ლ": 1447, + "მ": 1448, + "ნ": 1449, + "ო": 1450, + "რ": 1451, + "ს": 1452, + "ტ": 1453, + "უ": 1454, + "ᄀ": 1455, + "ᄂ": 1456, + "ᄃ": 1457, + "ᄅ": 1458, + "ᄆ": 1459, + "ᄇ": 1460, + "ᄉ": 1461, + "ᄊ": 1462, + "ᄋ": 1463, + "ᄌ": 1464, + "ᄎ": 1465, + "ᄏ": 1466, + "ᄐ": 1467, + "ᄑ": 1468, + "ᄒ": 1469, + "ᅡ": 1470, + "ᅢ": 1471, + "ᅥ": 1472, + "ᅦ": 1473, + "ᅧ": 1474, + "ᅩ": 1475, + "ᅪ": 1476, + "ᅭ": 1477, + "ᅮ": 1478, + "ᅯ": 1479, + "ᅲ": 1480, + "ᅳ": 1481, + "ᅴ": 1482, + "ᅵ": 1483, + "ᆨ": 1484, + "ᆫ": 1485, + "ᆯ": 1486, + "ᆷ": 1487, + "ᆸ": 1488, + "ᆼ": 1489, + "ᴬ": 1490, + "ᴮ": 1491, + "ᴰ": 1492, + "ᴵ": 1493, + "ᴺ": 1494, + "ᵀ": 1495, + "ᵃ": 1496, + "ᵇ": 1497, + "ᵈ": 1498, + "ᵉ": 1499, + "ᵍ": 1500, + "ᵏ": 1501, + "ᵐ": 1502, + "ᵒ": 1503, + "ᵖ": 1504, + "ᵗ": 1505, + "ᵘ": 1506, + "ᵢ": 1507, + "ᵣ": 1508, + "ᵤ": 1509, + "ᵥ": 1510, + "ᶜ": 1511, + "ᶠ": 1512, + "‐": 1513, + "‑": 1514, + "‒": 1515, + "–": 1516, + "—": 1517, + "―": 1518, + "‖": 1519, + "‘": 1520, + "’": 1521, + "‚": 1522, + "“": 1523, + "”": 1524, + "„": 1525, + "†": 1526, + "‡": 1527, + "•": 1528, + "…": 1529, + "‰": 1530, + "′": 1531, + "″": 1532, + "›": 1533, + "‿": 1534, + "⁄": 1535, + "⁰": 1536, + "ⁱ": 1537, + "⁴": 1538, + "⁵": 1539, + "⁶": 1540, + "⁷": 1541, + "⁸": 1542, + "⁹": 1543, + "⁺": 1544, + "⁻": 1545, + "ⁿ": 1546, + "₀": 1547, + "₁": 1548, + "₂": 1549, + "₃": 1550, + "₄": 1551, + "₅": 1552, + "₆": 1553, + "₇": 1554, + "₈": 1555, + "₉": 1556, + "₊": 1557, + "₍": 1558, + "₎": 1559, + "ₐ": 1560, + "ₑ": 1561, + "ₒ": 1562, + "ₓ": 1563, + "ₕ": 1564, + "ₖ": 1565, + "ₗ": 1566, + "ₘ": 1567, + "ₙ": 1568, + "ₚ": 1569, + "ₛ": 1570, + "ₜ": 1571, + "₤": 1572, + "₩": 1573, + "€": 1574, + "₱": 1575, + "₹": 1576, + "ℓ": 1577, + "№": 1578, + "ℝ": 1579, + "™": 1580, + "⅓": 1581, + "⅔": 1582, + "←": 1583, + "↑": 1584, + "→": 1585, + "↓": 1586, + "↔": 1587, + "↦": 1588, + "⇄": 1589, + "⇌": 1590, + "⇒": 1591, + "∂": 1592, + "∅": 1593, + "∆": 1594, + "∇": 1595, + "∈": 1596, + "−": 1597, + "∗": 1598, + "∘": 1599, + "√": 1600, + "∞": 1601, + "∧": 1602, + "∨": 1603, + "∩": 1604, + "∪": 1605, + "≈": 1606, + "≡": 1607, + "≤": 1608, + "≥": 1609, + "⊂": 1610, + "⊆": 1611, + "⊕": 1612, + "⊗": 1613, + "⋅": 1614, + "─": 1615, + "│": 1616, + "■": 1617, + "▪": 1618, + "●": 1619, + "★": 1620, + "☆": 1621, + "☉": 1622, + "♠": 1623, + "♣": 1624, + "♥": 1625, + "♦": 1626, + "♭": 1627, + "♯": 1628, + "⟨": 1629, + "⟩": 1630, + "ⱼ": 1631, + "⺩": 1632, + "⺼": 1633, + "⽥": 1634, + "、": 1635, + "。": 1636, + "〈": 1637, + "〉": 1638, + "《": 1639, + "》": 1640, + "「": 1641, + "」": 1642, + "『": 1643, + "』": 1644, + "〜": 1645, + "あ": 1646, + "い": 1647, + "う": 1648, + "え": 1649, + "お": 1650, + "か": 1651, + "き": 1652, + "く": 1653, + "け": 1654, + "こ": 1655, + "さ": 1656, + "し": 1657, + "す": 1658, + "せ": 1659, + "そ": 1660, + "た": 1661, + "ち": 1662, + "っ": 1663, + "つ": 1664, + "て": 1665, + "と": 1666, + "な": 1667, + "に": 1668, + "ぬ": 1669, + "ね": 1670, + "の": 1671, + "は": 1672, + "ひ": 1673, + "ふ": 1674, + "へ": 1675, + "ほ": 1676, + "ま": 1677, + "み": 1678, + "む": 1679, + "め": 1680, + "も": 1681, + "や": 1682, + "ゆ": 1683, + "よ": 1684, + "ら": 1685, + "り": 1686, + "る": 1687, + "れ": 1688, + "ろ": 1689, + "を": 1690, + "ん": 1691, + "ァ": 1692, + "ア": 1693, + "ィ": 1694, + "イ": 1695, + "ウ": 1696, + "ェ": 1697, + "エ": 1698, + "オ": 1699, + "カ": 1700, + "キ": 1701, + "ク": 1702, + "ケ": 1703, + "コ": 1704, + "サ": 1705, + "シ": 1706, + "ス": 1707, + "セ": 1708, + "タ": 1709, + "チ": 1710, + "ッ": 1711, + "ツ": 1712, + "テ": 1713, + "ト": 1714, + "ナ": 1715, + "ニ": 1716, + "ノ": 1717, + "ハ": 1718, + "ヒ": 1719, + "フ": 1720, + "ヘ": 1721, + "ホ": 1722, + "マ": 1723, + "ミ": 1724, + "ム": 1725, + "メ": 1726, + "モ": 1727, + "ャ": 1728, + "ュ": 1729, + "ョ": 1730, + "ラ": 1731, + "リ": 1732, + "ル": 1733, + "レ": 1734, + "ロ": 1735, + "ワ": 1736, + "ン": 1737, + "・": 1738, + "ー": 1739, + "一": 1740, + "三": 1741, + "上": 1742, + "下": 1743, + "不": 1744, + "世": 1745, + "中": 1746, + "主": 1747, + "久": 1748, + "之": 1749, + "也": 1750, + "事": 1751, + "二": 1752, + "五": 1753, + "井": 1754, + "京": 1755, + "人": 1756, + "亻": 1757, + "仁": 1758, + "介": 1759, + "代": 1760, + "仮": 1761, + "伊": 1762, + "会": 1763, + "佐": 1764, + "侍": 1765, + "保": 1766, + "信": 1767, + "健": 1768, + "元": 1769, + "光": 1770, + "八": 1771, + "公": 1772, + "内": 1773, + "出": 1774, + "分": 1775, + "前": 1776, + "劉": 1777, + "力": 1778, + "加": 1779, + "勝": 1780, + "北": 1781, + "区": 1782, + "十": 1783, + "千": 1784, + "南": 1785, + "博": 1786, + "原": 1787, + "口": 1788, + "古": 1789, + "史": 1790, + "司": 1791, + "合": 1792, + "吉": 1793, + "同": 1794, + "名": 1795, + "和": 1796, + "囗": 1797, + "四": 1798, + "国": 1799, + "國": 1800, + "土": 1801, + "地": 1802, + "坂": 1803, + "城": 1804, + "堂": 1805, + "場": 1806, + "士": 1807, + "夏": 1808, + "外": 1809, + "大": 1810, + "天": 1811, + "太": 1812, + "夫": 1813, + "奈": 1814, + "女": 1815, + "子": 1816, + "学": 1817, + "宀": 1818, + "宇": 1819, + "安": 1820, + "宗": 1821, + "定": 1822, + "宣": 1823, + "宮": 1824, + "家": 1825, + "宿": 1826, + "寺": 1827, + "將": 1828, + "小": 1829, + "尚": 1830, + "山": 1831, + "岡": 1832, + "島": 1833, + "崎": 1834, + "川": 1835, + "州": 1836, + "巿": 1837, + "帝": 1838, + "平": 1839, + "年": 1840, + "幸": 1841, + "广": 1842, + "弘": 1843, + "張": 1844, + "彳": 1845, + "後": 1846, + "御": 1847, + "德": 1848, + "心": 1849, + "忄": 1850, + "志": 1851, + "忠": 1852, + "愛": 1853, + "成": 1854, + "我": 1855, + "戦": 1856, + "戸": 1857, + "手": 1858, + "扌": 1859, + "政": 1860, + "文": 1861, + "新": 1862, + "方": 1863, + "日": 1864, + "明": 1865, + "星": 1866, + "春": 1867, + "昭": 1868, + "智": 1869, + "曲": 1870, + "書": 1871, + "月": 1872, + "有": 1873, + "朝": 1874, + "木": 1875, + "本": 1876, + "李": 1877, + "村": 1878, + "東": 1879, + "松": 1880, + "林": 1881, + "森": 1882, + "楊": 1883, + "樹": 1884, + "橋": 1885, + "歌": 1886, + "止": 1887, + "正": 1888, + "武": 1889, + "比": 1890, + "氏": 1891, + "民": 1892, + "水": 1893, + "氵": 1894, + "氷": 1895, + "永": 1896, + "江": 1897, + "沢": 1898, + "河": 1899, + "治": 1900, + "法": 1901, + "海": 1902, + "清": 1903, + "漢": 1904, + "瀬": 1905, + "火": 1906, + "版": 1907, + "犬": 1908, + "王": 1909, + "生": 1910, + "田": 1911, + "男": 1912, + "疒": 1913, + "発": 1914, + "白": 1915, + "的": 1916, + "皇": 1917, + "目": 1918, + "相": 1919, + "省": 1920, + "真": 1921, + "石": 1922, + "示": 1923, + "社": 1924, + "神": 1925, + "福": 1926, + "禾": 1927, + "秀": 1928, + "秋": 1929, + "空": 1930, + "立": 1931, + "章": 1932, + "竹": 1933, + "糹": 1934, + "美": 1935, + "義": 1936, + "耳": 1937, + "良": 1938, + "艹": 1939, + "花": 1940, + "英": 1941, + "華": 1942, + "葉": 1943, + "藤": 1944, + "行": 1945, + "街": 1946, + "西": 1947, + "見": 1948, + "訁": 1949, + "語": 1950, + "谷": 1951, + "貝": 1952, + "貴": 1953, + "車": 1954, + "軍": 1955, + "辶": 1956, + "道": 1957, + "郎": 1958, + "郡": 1959, + "部": 1960, + "都": 1961, + "里": 1962, + "野": 1963, + "金": 1964, + "鈴": 1965, + "镇": 1966, + "長": 1967, + "門": 1968, + "間": 1969, + "阝": 1970, + "阿": 1971, + "陳": 1972, + "陽": 1973, + "雄": 1974, + "青": 1975, + "面": 1976, + "風": 1977, + "食": 1978, + "香": 1979, + "馬": 1980, + "高": 1981, + "龍": 1982, + "龸": 1983, + "fi": 1984, + "fl": 1985, + "!": 1986, + "(": 1987, + ")": 1988, + ",": 1989, + "-": 1990, + ".": 1991, + "/": 1992, + ":": 1993, + "?": 1994, + "~": 1995, + "the": 1996, + "of": 1997, + "and": 1998, + "in": 1999, + "to": 2000, + "was": 2001, + "he": 2002, + "is": 2003, + "as": 2004, + "for": 2005, + "on": 2006, + "with": 2007, + "that": 2008, + "it": 2009, + "his": 2010, + "by": 2011, + "at": 2012, + "from": 2013, + "her": 2014, + "##s": 2015, + "she": 2016, + "you": 2017, + "had": 2018, + "an": 2019, + "were": 2020, + "but": 2021, + "be": 2022, + "this": 2023, + "are": 2024, + "not": 2025, + "my": 2026, + "they": 2027, + "one": 2028, + "which": 2029, + "or": 2030, + "have": 2031, + "him": 2032, + "me": 2033, + "first": 2034, + "all": 2035, + "also": 2036, + "their": 2037, + "has": 2038, + "up": 2039, + "who": 2040, + "out": 2041, + "been": 2042, + "when": 2043, + "after": 2044, + "there": 2045, + "into": 2046, + "new": 2047, + "two": 2048, + "its": 2049, + "##a": 2050, + "time": 2051, + "would": 2052, + "no": 2053, + "what": 2054, + "about": 2055, + "said": 2056, + "we": 2057, + "over": 2058, + "then": 2059, + "other": 2060, + "so": 2061, + "more": 2062, + "##e": 2063, + "can": 2064, + "if": 2065, + "like": 2066, + "back": 2067, + "them": 2068, + "only": 2069, + "some": 2070, + "could": 2071, + "##i": 2072, + "where": 2073, + "just": 2074, + "##ing": 2075, + "during": 2076, + "before": 2077, + "##n": 2078, + "do": 2079, + "##o": 2080, + "made": 2081, + "school": 2082, + "through": 2083, + "than": 2084, + "now": 2085, + "years": 2086, + "most": 2087, + "world": 2088, + "may": 2089, + "between": 2090, + "down": 2091, + "well": 2092, + "three": 2093, + "##d": 2094, + "year": 2095, + "while": 2096, + "will": 2097, + "##ed": 2098, + "##r": 2099, + "##y": 2100, + "later": 2101, + "##t": 2102, + "city": 2103, + "under": 2104, + "around": 2105, + "did": 2106, + "such": 2107, + "being": 2108, + "used": 2109, + "state": 2110, + "people": 2111, + "part": 2112, + "know": 2113, + "against": 2114, + "your": 2115, + "many": 2116, + "second": 2117, + "university": 2118, + "both": 2119, + "national": 2120, + "##er": 2121, + "these": 2122, + "don": 2123, + "known": 2124, + "off": 2125, + "way": 2126, + "until": 2127, + "re": 2128, + "how": 2129, + "even": 2130, + "get": 2131, + "head": 2132, + "...": 2133, + "didn": 2134, + "##ly": 2135, + "team": 2136, + "american": 2137, + "because": 2138, + "de": 2139, + "##l": 2140, + "born": 2141, + "united": 2142, + "film": 2143, + "since": 2144, + "still": 2145, + "long": 2146, + "work": 2147, + "south": 2148, + "us": 2149, + "became": 2150, + "any": 2151, + "high": 2152, + "again": 2153, + "day": 2154, + "family": 2155, + "see": 2156, + "right": 2157, + "man": 2158, + "eyes": 2159, + "house": 2160, + "season": 2161, + "war": 2162, + "states": 2163, + "including": 2164, + "took": 2165, + "life": 2166, + "north": 2167, + "same": 2168, + "each": 2169, + "called": 2170, + "name": 2171, + "much": 2172, + "place": 2173, + "however": 2174, + "go": 2175, + "four": 2176, + "group": 2177, + "another": 2178, + "found": 2179, + "won": 2180, + "area": 2181, + "here": 2182, + "going": 2183, + "10": 2184, + "away": 2185, + "series": 2186, + "left": 2187, + "home": 2188, + "music": 2189, + "best": 2190, + "make": 2191, + "hand": 2192, + "number": 2193, + "company": 2194, + "several": 2195, + "never": 2196, + "last": 2197, + "john": 2198, + "000": 2199, + "very": 2200, + "album": 2201, + "take": 2202, + "end": 2203, + "good": 2204, + "too": 2205, + "following": 2206, + "released": 2207, + "game": 2208, + "played": 2209, + "little": 2210, + "began": 2211, + "district": 2212, + "##m": 2213, + "old": 2214, + "want": 2215, + "those": 2216, + "side": 2217, + "held": 2218, + "own": 2219, + "early": 2220, + "county": 2221, + "ll": 2222, + "league": 2223, + "use": 2224, + "west": 2225, + "##u": 2226, + "face": 2227, + "think": 2228, + "##es": 2229, + "2010": 2230, + "government": 2231, + "##h": 2232, + "march": 2233, + "came": 2234, + "small": 2235, + "general": 2236, + "town": 2237, + "june": 2238, + "##on": 2239, + "line": 2240, + "based": 2241, + "something": 2242, + "##k": 2243, + "september": 2244, + "thought": 2245, + "looked": 2246, + "along": 2247, + "international": 2248, + "2011": 2249, + "air": 2250, + "july": 2251, + "club": 2252, + "went": 2253, + "january": 2254, + "october": 2255, + "our": 2256, + "august": 2257, + "april": 2258, + "york": 2259, + "12": 2260, + "few": 2261, + "2012": 2262, + "2008": 2263, + "east": 2264, + "show": 2265, + "member": 2266, + "college": 2267, + "2009": 2268, + "father": 2269, + "public": 2270, + "##us": 2271, + "come": 2272, + "men": 2273, + "five": 2274, + "set": 2275, + "station": 2276, + "church": 2277, + "##c": 2278, + "next": 2279, + "former": 2280, + "november": 2281, + "room": 2282, + "party": 2283, + "located": 2284, + "december": 2285, + "2013": 2286, + "age": 2287, + "got": 2288, + "2007": 2289, + "##g": 2290, + "system": 2291, + "let": 2292, + "love": 2293, + "2006": 2294, + "though": 2295, + "every": 2296, + "2014": 2297, + "look": 2298, + "song": 2299, + "water": 2300, + "century": 2301, + "without": 2302, + "body": 2303, + "black": 2304, + "night": 2305, + "within": 2306, + "great": 2307, + "women": 2308, + "single": 2309, + "ve": 2310, + "building": 2311, + "large": 2312, + "population": 2313, + "river": 2314, + "named": 2315, + "band": 2316, + "white": 2317, + "started": 2318, + "##an": 2319, + "once": 2320, + "15": 2321, + "20": 2322, + "should": 2323, + "18": 2324, + "2015": 2325, + "service": 2326, + "top": 2327, + "built": 2328, + "british": 2329, + "open": 2330, + "death": 2331, + "king": 2332, + "moved": 2333, + "local": 2334, + "times": 2335, + "children": 2336, + "february": 2337, + "book": 2338, + "why": 2339, + "11": 2340, + "door": 2341, + "need": 2342, + "president": 2343, + "order": 2344, + "final": 2345, + "road": 2346, + "wasn": 2347, + "although": 2348, + "due": 2349, + "major": 2350, + "died": 2351, + "village": 2352, + "third": 2353, + "knew": 2354, + "2016": 2355, + "asked": 2356, + "turned": 2357, + "st": 2358, + "wanted": 2359, + "say": 2360, + "##p": 2361, + "together": 2362, + "received": 2363, + "main": 2364, + "son": 2365, + "served": 2366, + "different": 2367, + "##en": 2368, + "behind": 2369, + "himself": 2370, + "felt": 2371, + "members": 2372, + "power": 2373, + "football": 2374, + "law": 2375, + "voice": 2376, + "play": 2377, + "##in": 2378, + "near": 2379, + "park": 2380, + "history": 2381, + "30": 2382, + "having": 2383, + "2005": 2384, + "16": 2385, + "##man": 2386, + "saw": 2387, + "mother": 2388, + "##al": 2389, + "army": 2390, + "point": 2391, + "front": 2392, + "help": 2393, + "english": 2394, + "street": 2395, + "art": 2396, + "late": 2397, + "hands": 2398, + "games": 2399, + "award": 2400, + "##ia": 2401, + "young": 2402, + "14": 2403, + "put": 2404, + "published": 2405, + "country": 2406, + "division": 2407, + "across": 2408, + "told": 2409, + "13": 2410, + "often": 2411, + "ever": 2412, + "french": 2413, + "london": 2414, + "center": 2415, + "six": 2416, + "red": 2417, + "2017": 2418, + "led": 2419, + "days": 2420, + "include": 2421, + "light": 2422, + "25": 2423, + "find": 2424, + "tell": 2425, + "among": 2426, + "species": 2427, + "really": 2428, + "according": 2429, + "central": 2430, + "half": 2431, + "2004": 2432, + "form": 2433, + "original": 2434, + "gave": 2435, + "office": 2436, + "making": 2437, + "enough": 2438, + "lost": 2439, + "full": 2440, + "opened": 2441, + "must": 2442, + "included": 2443, + "live": 2444, + "given": 2445, + "german": 2446, + "player": 2447, + "run": 2448, + "business": 2449, + "woman": 2450, + "community": 2451, + "cup": 2452, + "might": 2453, + "million": 2454, + "land": 2455, + "2000": 2456, + "court": 2457, + "development": 2458, + "17": 2459, + "short": 2460, + "round": 2461, + "ii": 2462, + "km": 2463, + "seen": 2464, + "class": 2465, + "story": 2466, + "always": 2467, + "become": 2468, + "sure": 2469, + "research": 2470, + "almost": 2471, + "director": 2472, + "council": 2473, + "la": 2474, + "##2": 2475, + "career": 2476, + "things": 2477, + "using": 2478, + "island": 2479, + "##z": 2480, + "couldn": 2481, + "car": 2482, + "##is": 2483, + "24": 2484, + "close": 2485, + "force": 2486, + "##1": 2487, + "better": 2488, + "free": 2489, + "support": 2490, + "control": 2491, + "field": 2492, + "students": 2493, + "2003": 2494, + "education": 2495, + "married": 2496, + "##b": 2497, + "nothing": 2498, + "worked": 2499, + "others": 2500, + "record": 2501, + "big": 2502, + "inside": 2503, + "level": 2504, + "anything": 2505, + "continued": 2506, + "give": 2507, + "james": 2508, + "##3": 2509, + "military": 2510, + "established": 2511, + "non": 2512, + "returned": 2513, + "feel": 2514, + "does": 2515, + "title": 2516, + "written": 2517, + "thing": 2518, + "feet": 2519, + "william": 2520, + "far": 2521, + "co": 2522, + "association": 2523, + "hard": 2524, + "already": 2525, + "2002": 2526, + "##ra": 2527, + "championship": 2528, + "human": 2529, + "western": 2530, + "100": 2531, + "##na": 2532, + "department": 2533, + "hall": 2534, + "role": 2535, + "various": 2536, + "production": 2537, + "21": 2538, + "19": 2539, + "heart": 2540, + "2001": 2541, + "living": 2542, + "fire": 2543, + "version": 2544, + "##ers": 2545, + "##f": 2546, + "television": 2547, + "royal": 2548, + "##4": 2549, + "produced": 2550, + "working": 2551, + "act": 2552, + "case": 2553, + "society": 2554, + "region": 2555, + "present": 2556, + "radio": 2557, + "period": 2558, + "looking": 2559, + "least": 2560, + "total": 2561, + "keep": 2562, + "england": 2563, + "wife": 2564, + "program": 2565, + "per": 2566, + "brother": 2567, + "mind": 2568, + "special": 2569, + "22": 2570, + "##le": 2571, + "am": 2572, + "works": 2573, + "soon": 2574, + "##6": 2575, + "political": 2576, + "george": 2577, + "services": 2578, + "taken": 2579, + "created": 2580, + "##7": 2581, + "further": 2582, + "able": 2583, + "reached": 2584, + "david": 2585, + "union": 2586, + "joined": 2587, + "upon": 2588, + "done": 2589, + "important": 2590, + "social": 2591, + "information": 2592, + "either": 2593, + "##ic": 2594, + "##x": 2595, + "appeared": 2596, + "position": 2597, + "ground": 2598, + "lead": 2599, + "rock": 2600, + "dark": 2601, + "election": 2602, + "23": 2603, + "board": 2604, + "france": 2605, + "hair": 2606, + "course": 2607, + "arms": 2608, + "site": 2609, + "police": 2610, + "girl": 2611, + "instead": 2612, + "real": 2613, + "sound": 2614, + "##v": 2615, + "words": 2616, + "moment": 2617, + "##te": 2618, + "someone": 2619, + "##8": 2620, + "summer": 2621, + "project": 2622, + "announced": 2623, + "san": 2624, + "less": 2625, + "wrote": 2626, + "past": 2627, + "followed": 2628, + "##5": 2629, + "blue": 2630, + "founded": 2631, + "al": 2632, + "finally": 2633, + "india": 2634, + "taking": 2635, + "records": 2636, + "america": 2637, + "##ne": 2638, + "1999": 2639, + "design": 2640, + "considered": 2641, + "northern": 2642, + "god": 2643, + "stop": 2644, + "battle": 2645, + "toward": 2646, + "european": 2647, + "outside": 2648, + "described": 2649, + "track": 2650, + "today": 2651, + "playing": 2652, + "language": 2653, + "28": 2654, + "call": 2655, + "26": 2656, + "heard": 2657, + "professional": 2658, + "low": 2659, + "australia": 2660, + "miles": 2661, + "california": 2662, + "win": 2663, + "yet": 2664, + "green": 2665, + "##ie": 2666, + "trying": 2667, + "blood": 2668, + "##ton": 2669, + "southern": 2670, + "science": 2671, + "maybe": 2672, + "everything": 2673, + "match": 2674, + "square": 2675, + "27": 2676, + "mouth": 2677, + "video": 2678, + "race": 2679, + "recorded": 2680, + "leave": 2681, + "above": 2682, + "##9": 2683, + "daughter": 2684, + "points": 2685, + "space": 2686, + "1998": 2687, + "museum": 2688, + "change": 2689, + "middle": 2690, + "common": 2691, + "##0": 2692, + "move": 2693, + "tv": 2694, + "post": 2695, + "##ta": 2696, + "lake": 2697, + "seven": 2698, + "tried": 2699, + "elected": 2700, + "closed": 2701, + "ten": 2702, + "paul": 2703, + "minister": 2704, + "##th": 2705, + "months": 2706, + "start": 2707, + "chief": 2708, + "return": 2709, + "canada": 2710, + "person": 2711, + "sea": 2712, + "release": 2713, + "similar": 2714, + "modern": 2715, + "brought": 2716, + "rest": 2717, + "hit": 2718, + "formed": 2719, + "mr": 2720, + "##la": 2721, + "1997": 2722, + "floor": 2723, + "event": 2724, + "doing": 2725, + "thomas": 2726, + "1996": 2727, + "robert": 2728, + "care": 2729, + "killed": 2730, + "training": 2731, + "star": 2732, + "week": 2733, + "needed": 2734, + "turn": 2735, + "finished": 2736, + "railway": 2737, + "rather": 2738, + "news": 2739, + "health": 2740, + "sent": 2741, + "example": 2742, + "ran": 2743, + "term": 2744, + "michael": 2745, + "coming": 2746, + "currently": 2747, + "yes": 2748, + "forces": 2749, + "despite": 2750, + "gold": 2751, + "areas": 2752, + "50": 2753, + "stage": 2754, + "fact": 2755, + "29": 2756, + "dead": 2757, + "says": 2758, + "popular": 2759, + "2018": 2760, + "originally": 2761, + "germany": 2762, + "probably": 2763, + "developed": 2764, + "result": 2765, + "pulled": 2766, + "friend": 2767, + "stood": 2768, + "money": 2769, + "running": 2770, + "mi": 2771, + "signed": 2772, + "word": 2773, + "songs": 2774, + "child": 2775, + "eventually": 2776, + "met": 2777, + "tour": 2778, + "average": 2779, + "teams": 2780, + "minutes": 2781, + "festival": 2782, + "current": 2783, + "deep": 2784, + "kind": 2785, + "1995": 2786, + "decided": 2787, + "usually": 2788, + "eastern": 2789, + "seemed": 2790, + "##ness": 2791, + "episode": 2792, + "bed": 2793, + "added": 2794, + "table": 2795, + "indian": 2796, + "private": 2797, + "charles": 2798, + "route": 2799, + "available": 2800, + "idea": 2801, + "throughout": 2802, + "centre": 2803, + "addition": 2804, + "appointed": 2805, + "style": 2806, + "1994": 2807, + "books": 2808, + "eight": 2809, + "construction": 2810, + "press": 2811, + "mean": 2812, + "wall": 2813, + "friends": 2814, + "remained": 2815, + "schools": 2816, + "study": 2817, + "##ch": 2818, + "##um": 2819, + "institute": 2820, + "oh": 2821, + "chinese": 2822, + "sometimes": 2823, + "events": 2824, + "possible": 2825, + "1992": 2826, + "australian": 2827, + "type": 2828, + "brown": 2829, + "forward": 2830, + "talk": 2831, + "process": 2832, + "food": 2833, + "debut": 2834, + "seat": 2835, + "performance": 2836, + "committee": 2837, + "features": 2838, + "character": 2839, + "arts": 2840, + "herself": 2841, + "else": 2842, + "lot": 2843, + "strong": 2844, + "russian": 2845, + "range": 2846, + "hours": 2847, + "peter": 2848, + "arm": 2849, + "##da": 2850, + "morning": 2851, + "dr": 2852, + "sold": 2853, + "##ry": 2854, + "quickly": 2855, + "directed": 2856, + "1993": 2857, + "guitar": 2858, + "china": 2859, + "##w": 2860, + "31": 2861, + "list": 2862, + "##ma": 2863, + "performed": 2864, + "media": 2865, + "uk": 2866, + "players": 2867, + "smile": 2868, + "##rs": 2869, + "myself": 2870, + "40": 2871, + "placed": 2872, + "coach": 2873, + "province": 2874, + "towards": 2875, + "wouldn": 2876, + "leading": 2877, + "whole": 2878, + "boy": 2879, + "official": 2880, + "designed": 2881, + "grand": 2882, + "census": 2883, + "##el": 2884, + "europe": 2885, + "attack": 2886, + "japanese": 2887, + "henry": 2888, + "1991": 2889, + "##re": 2890, + "##os": 2891, + "cross": 2892, + "getting": 2893, + "alone": 2894, + "action": 2895, + "lower": 2896, + "network": 2897, + "wide": 2898, + "washington": 2899, + "japan": 2900, + "1990": 2901, + "hospital": 2902, + "believe": 2903, + "changed": 2904, + "sister": 2905, + "##ar": 2906, + "hold": 2907, + "gone": 2908, + "sir": 2909, + "hadn": 2910, + "ship": 2911, + "##ka": 2912, + "studies": 2913, + "academy": 2914, + "shot": 2915, + "rights": 2916, + "below": 2917, + "base": 2918, + "bad": 2919, + "involved": 2920, + "kept": 2921, + "largest": 2922, + "##ist": 2923, + "bank": 2924, + "future": 2925, + "especially": 2926, + "beginning": 2927, + "mark": 2928, + "movement": 2929, + "section": 2930, + "female": 2931, + "magazine": 2932, + "plan": 2933, + "professor": 2934, + "lord": 2935, + "longer": 2936, + "##ian": 2937, + "sat": 2938, + "walked": 2939, + "hill": 2940, + "actually": 2941, + "civil": 2942, + "energy": 2943, + "model": 2944, + "families": 2945, + "size": 2946, + "thus": 2947, + "aircraft": 2948, + "completed": 2949, + "includes": 2950, + "data": 2951, + "captain": 2952, + "##or": 2953, + "fight": 2954, + "vocals": 2955, + "featured": 2956, + "richard": 2957, + "bridge": 2958, + "fourth": 2959, + "1989": 2960, + "officer": 2961, + "stone": 2962, + "hear": 2963, + "##ism": 2964, + "means": 2965, + "medical": 2966, + "groups": 2967, + "management": 2968, + "self": 2969, + "lips": 2970, + "competition": 2971, + "entire": 2972, + "lived": 2973, + "technology": 2974, + "leaving": 2975, + "federal": 2976, + "tournament": 2977, + "bit": 2978, + "passed": 2979, + "hot": 2980, + "independent": 2981, + "awards": 2982, + "kingdom": 2983, + "mary": 2984, + "spent": 2985, + "fine": 2986, + "doesn": 2987, + "reported": 2988, + "##ling": 2989, + "jack": 2990, + "fall": 2991, + "raised": 2992, + "itself": 2993, + "stay": 2994, + "true": 2995, + "studio": 2996, + "1988": 2997, + "sports": 2998, + "replaced": 2999, + "paris": 3000, + "systems": 3001, + "saint": 3002, + "leader": 3003, + "theatre": 3004, + "whose": 3005, + "market": 3006, + "capital": 3007, + "parents": 3008, + "spanish": 3009, + "canadian": 3010, + "earth": 3011, + "##ity": 3012, + "cut": 3013, + "degree": 3014, + "writing": 3015, + "bay": 3016, + "christian": 3017, + "awarded": 3018, + "natural": 3019, + "higher": 3020, + "bill": 3021, + "##as": 3022, + "coast": 3023, + "provided": 3024, + "previous": 3025, + "senior": 3026, + "ft": 3027, + "valley": 3028, + "organization": 3029, + "stopped": 3030, + "onto": 3031, + "countries": 3032, + "parts": 3033, + "conference": 3034, + "queen": 3035, + "security": 3036, + "interest": 3037, + "saying": 3038, + "allowed": 3039, + "master": 3040, + "earlier": 3041, + "phone": 3042, + "matter": 3043, + "smith": 3044, + "winning": 3045, + "try": 3046, + "happened": 3047, + "moving": 3048, + "campaign": 3049, + "los": 3050, + "##ley": 3051, + "breath": 3052, + "nearly": 3053, + "mid": 3054, + "1987": 3055, + "certain": 3056, + "girls": 3057, + "date": 3058, + "italian": 3059, + "african": 3060, + "standing": 3061, + "fell": 3062, + "artist": 3063, + "##ted": 3064, + "shows": 3065, + "deal": 3066, + "mine": 3067, + "industry": 3068, + "1986": 3069, + "##ng": 3070, + "everyone": 3071, + "republic": 3072, + "provide": 3073, + "collection": 3074, + "library": 3075, + "student": 3076, + "##ville": 3077, + "primary": 3078, + "owned": 3079, + "older": 3080, + "via": 3081, + "heavy": 3082, + "1st": 3083, + "makes": 3084, + "##able": 3085, + "attention": 3086, + "anyone": 3087, + "africa": 3088, + "##ri": 3089, + "stated": 3090, + "length": 3091, + "ended": 3092, + "fingers": 3093, + "command": 3094, + "staff": 3095, + "skin": 3096, + "foreign": 3097, + "opening": 3098, + "governor": 3099, + "okay": 3100, + "medal": 3101, + "kill": 3102, + "sun": 3103, + "cover": 3104, + "job": 3105, + "1985": 3106, + "introduced": 3107, + "chest": 3108, + "hell": 3109, + "feeling": 3110, + "##ies": 3111, + "success": 3112, + "meet": 3113, + "reason": 3114, + "standard": 3115, + "meeting": 3116, + "novel": 3117, + "1984": 3118, + "trade": 3119, + "source": 3120, + "buildings": 3121, + "##land": 3122, + "rose": 3123, + "guy": 3124, + "goal": 3125, + "##ur": 3126, + "chapter": 3127, + "native": 3128, + "husband": 3129, + "previously": 3130, + "unit": 3131, + "limited": 3132, + "entered": 3133, + "weeks": 3134, + "producer": 3135, + "operations": 3136, + "mountain": 3137, + "takes": 3138, + "covered": 3139, + "forced": 3140, + "related": 3141, + "roman": 3142, + "complete": 3143, + "successful": 3144, + "key": 3145, + "texas": 3146, + "cold": 3147, + "##ya": 3148, + "channel": 3149, + "1980": 3150, + "traditional": 3151, + "films": 3152, + "dance": 3153, + "clear": 3154, + "approximately": 3155, + "500": 3156, + "nine": 3157, + "van": 3158, + "prince": 3159, + "question": 3160, + "active": 3161, + "tracks": 3162, + "ireland": 3163, + "regional": 3164, + "silver": 3165, + "author": 3166, + "personal": 3167, + "sense": 3168, + "operation": 3169, + "##ine": 3170, + "economic": 3171, + "1983": 3172, + "holding": 3173, + "twenty": 3174, + "isbn": 3175, + "additional": 3176, + "speed": 3177, + "hour": 3178, + "edition": 3179, + "regular": 3180, + "historic": 3181, + "places": 3182, + "whom": 3183, + "shook": 3184, + "movie": 3185, + "km²": 3186, + "secretary": 3187, + "prior": 3188, + "report": 3189, + "chicago": 3190, + "read": 3191, + "foundation": 3192, + "view": 3193, + "engine": 3194, + "scored": 3195, + "1982": 3196, + "units": 3197, + "ask": 3198, + "airport": 3199, + "property": 3200, + "ready": 3201, + "immediately": 3202, + "lady": 3203, + "month": 3204, + "listed": 3205, + "contract": 3206, + "##de": 3207, + "manager": 3208, + "themselves": 3209, + "lines": 3210, + "##ki": 3211, + "navy": 3212, + "writer": 3213, + "meant": 3214, + "##ts": 3215, + "runs": 3216, + "##ro": 3217, + "practice": 3218, + "championships": 3219, + "singer": 3220, + "glass": 3221, + "commission": 3222, + "required": 3223, + "forest": 3224, + "starting": 3225, + "culture": 3226, + "generally": 3227, + "giving": 3228, + "access": 3229, + "attended": 3230, + "test": 3231, + "couple": 3232, + "stand": 3233, + "catholic": 3234, + "martin": 3235, + "caught": 3236, + "executive": 3237, + "##less": 3238, + "eye": 3239, + "##ey": 3240, + "thinking": 3241, + "chair": 3242, + "quite": 3243, + "shoulder": 3244, + "1979": 3245, + "hope": 3246, + "decision": 3247, + "plays": 3248, + "defeated": 3249, + "municipality": 3250, + "whether": 3251, + "structure": 3252, + "offered": 3253, + "slowly": 3254, + "pain": 3255, + "ice": 3256, + "direction": 3257, + "##ion": 3258, + "paper": 3259, + "mission": 3260, + "1981": 3261, + "mostly": 3262, + "200": 3263, + "noted": 3264, + "individual": 3265, + "managed": 3266, + "nature": 3267, + "lives": 3268, + "plant": 3269, + "##ha": 3270, + "helped": 3271, + "except": 3272, + "studied": 3273, + "computer": 3274, + "figure": 3275, + "relationship": 3276, + "issue": 3277, + "significant": 3278, + "loss": 3279, + "die": 3280, + "smiled": 3281, + "gun": 3282, + "ago": 3283, + "highest": 3284, + "1972": 3285, + "##am": 3286, + "male": 3287, + "bring": 3288, + "goals": 3289, + "mexico": 3290, + "problem": 3291, + "distance": 3292, + "commercial": 3293, + "completely": 3294, + "location": 3295, + "annual": 3296, + "famous": 3297, + "drive": 3298, + "1976": 3299, + "neck": 3300, + "1978": 3301, + "surface": 3302, + "caused": 3303, + "italy": 3304, + "understand": 3305, + "greek": 3306, + "highway": 3307, + "wrong": 3308, + "hotel": 3309, + "comes": 3310, + "appearance": 3311, + "joseph": 3312, + "double": 3313, + "issues": 3314, + "musical": 3315, + "companies": 3316, + "castle": 3317, + "income": 3318, + "review": 3319, + "assembly": 3320, + "bass": 3321, + "initially": 3322, + "parliament": 3323, + "artists": 3324, + "experience": 3325, + "1974": 3326, + "particular": 3327, + "walk": 3328, + "foot": 3329, + "engineering": 3330, + "talking": 3331, + "window": 3332, + "dropped": 3333, + "##ter": 3334, + "miss": 3335, + "baby": 3336, + "boys": 3337, + "break": 3338, + "1975": 3339, + "stars": 3340, + "edge": 3341, + "remember": 3342, + "policy": 3343, + "carried": 3344, + "train": 3345, + "stadium": 3346, + "bar": 3347, + "sex": 3348, + "angeles": 3349, + "evidence": 3350, + "##ge": 3351, + "becoming": 3352, + "assistant": 3353, + "soviet": 3354, + "1977": 3355, + "upper": 3356, + "step": 3357, + "wing": 3358, + "1970": 3359, + "youth": 3360, + "financial": 3361, + "reach": 3362, + "##ll": 3363, + "actor": 3364, + "numerous": 3365, + "##se": 3366, + "##st": 3367, + "nodded": 3368, + "arrived": 3369, + "##ation": 3370, + "minute": 3371, + "##nt": 3372, + "believed": 3373, + "sorry": 3374, + "complex": 3375, + "beautiful": 3376, + "victory": 3377, + "associated": 3378, + "temple": 3379, + "1968": 3380, + "1973": 3381, + "chance": 3382, + "perhaps": 3383, + "metal": 3384, + "##son": 3385, + "1945": 3386, + "bishop": 3387, + "##et": 3388, + "lee": 3389, + "launched": 3390, + "particularly": 3391, + "tree": 3392, + "le": 3393, + "retired": 3394, + "subject": 3395, + "prize": 3396, + "contains": 3397, + "yeah": 3398, + "theory": 3399, + "empire": 3400, + "##ce": 3401, + "suddenly": 3402, + "waiting": 3403, + "trust": 3404, + "recording": 3405, + "##to": 3406, + "happy": 3407, + "terms": 3408, + "camp": 3409, + "champion": 3410, + "1971": 3411, + "religious": 3412, + "pass": 3413, + "zealand": 3414, + "names": 3415, + "2nd": 3416, + "port": 3417, + "ancient": 3418, + "tom": 3419, + "corner": 3420, + "represented": 3421, + "watch": 3422, + "legal": 3423, + "anti": 3424, + "justice": 3425, + "cause": 3426, + "watched": 3427, + "brothers": 3428, + "45": 3429, + "material": 3430, + "changes": 3431, + "simply": 3432, + "response": 3433, + "louis": 3434, + "fast": 3435, + "##ting": 3436, + "answer": 3437, + "60": 3438, + "historical": 3439, + "1969": 3440, + "stories": 3441, + "straight": 3442, + "create": 3443, + "feature": 3444, + "increased": 3445, + "rate": 3446, + "administration": 3447, + "virginia": 3448, + "el": 3449, + "activities": 3450, + "cultural": 3451, + "overall": 3452, + "winner": 3453, + "programs": 3454, + "basketball": 3455, + "legs": 3456, + "guard": 3457, + "beyond": 3458, + "cast": 3459, + "doctor": 3460, + "mm": 3461, + "flight": 3462, + "results": 3463, + "remains": 3464, + "cost": 3465, + "effect": 3466, + "winter": 3467, + "##ble": 3468, + "larger": 3469, + "islands": 3470, + "problems": 3471, + "chairman": 3472, + "grew": 3473, + "commander": 3474, + "isn": 3475, + "1967": 3476, + "pay": 3477, + "failed": 3478, + "selected": 3479, + "hurt": 3480, + "fort": 3481, + "box": 3482, + "regiment": 3483, + "majority": 3484, + "journal": 3485, + "35": 3486, + "edward": 3487, + "plans": 3488, + "##ke": 3489, + "##ni": 3490, + "shown": 3491, + "pretty": 3492, + "irish": 3493, + "characters": 3494, + "directly": 3495, + "scene": 3496, + "likely": 3497, + "operated": 3498, + "allow": 3499, + "spring": 3500, + "##j": 3501, + "junior": 3502, + "matches": 3503, + "looks": 3504, + "mike": 3505, + "houses": 3506, + "fellow": 3507, + "##tion": 3508, + "beach": 3509, + "marriage": 3510, + "##ham": 3511, + "##ive": 3512, + "rules": 3513, + "oil": 3514, + "65": 3515, + "florida": 3516, + "expected": 3517, + "nearby": 3518, + "congress": 3519, + "sam": 3520, + "peace": 3521, + "recent": 3522, + "iii": 3523, + "wait": 3524, + "subsequently": 3525, + "cell": 3526, + "##do": 3527, + "variety": 3528, + "serving": 3529, + "agreed": 3530, + "please": 3531, + "poor": 3532, + "joe": 3533, + "pacific": 3534, + "attempt": 3535, + "wood": 3536, + "democratic": 3537, + "piece": 3538, + "prime": 3539, + "##ca": 3540, + "rural": 3541, + "mile": 3542, + "touch": 3543, + "appears": 3544, + "township": 3545, + "1964": 3546, + "1966": 3547, + "soldiers": 3548, + "##men": 3549, + "##ized": 3550, + "1965": 3551, + "pennsylvania": 3552, + "closer": 3553, + "fighting": 3554, + "claimed": 3555, + "score": 3556, + "jones": 3557, + "physical": 3558, + "editor": 3559, + "##ous": 3560, + "filled": 3561, + "genus": 3562, + "specific": 3563, + "sitting": 3564, + "super": 3565, + "mom": 3566, + "##va": 3567, + "therefore": 3568, + "supported": 3569, + "status": 3570, + "fear": 3571, + "cases": 3572, + "store": 3573, + "meaning": 3574, + "wales": 3575, + "minor": 3576, + "spain": 3577, + "tower": 3578, + "focus": 3579, + "vice": 3580, + "frank": 3581, + "follow": 3582, + "parish": 3583, + "separate": 3584, + "golden": 3585, + "horse": 3586, + "fifth": 3587, + "remaining": 3588, + "branch": 3589, + "32": 3590, + "presented": 3591, + "stared": 3592, + "##id": 3593, + "uses": 3594, + "secret": 3595, + "forms": 3596, + "##co": 3597, + "baseball": 3598, + "exactly": 3599, + "##ck": 3600, + "choice": 3601, + "note": 3602, + "discovered": 3603, + "travel": 3604, + "composed": 3605, + "truth": 3606, + "russia": 3607, + "ball": 3608, + "color": 3609, + "kiss": 3610, + "dad": 3611, + "wind": 3612, + "continue": 3613, + "ring": 3614, + "referred": 3615, + "numbers": 3616, + "digital": 3617, + "greater": 3618, + "##ns": 3619, + "metres": 3620, + "slightly": 3621, + "direct": 3622, + "increase": 3623, + "1960": 3624, + "responsible": 3625, + "crew": 3626, + "rule": 3627, + "trees": 3628, + "troops": 3629, + "##no": 3630, + "broke": 3631, + "goes": 3632, + "individuals": 3633, + "hundred": 3634, + "weight": 3635, + "creek": 3636, + "sleep": 3637, + "memory": 3638, + "defense": 3639, + "provides": 3640, + "ordered": 3641, + "code": 3642, + "value": 3643, + "jewish": 3644, + "windows": 3645, + "1944": 3646, + "safe": 3647, + "judge": 3648, + "whatever": 3649, + "corps": 3650, + "realized": 3651, + "growing": 3652, + "pre": 3653, + "##ga": 3654, + "cities": 3655, + "alexander": 3656, + "gaze": 3657, + "lies": 3658, + "spread": 3659, + "scott": 3660, + "letter": 3661, + "showed": 3662, + "situation": 3663, + "mayor": 3664, + "transport": 3665, + "watching": 3666, + "workers": 3667, + "extended": 3668, + "##li": 3669, + "expression": 3670, + "normal": 3671, + "##ment": 3672, + "chart": 3673, + "multiple": 3674, + "border": 3675, + "##ba": 3676, + "host": 3677, + "##ner": 3678, + "daily": 3679, + "mrs": 3680, + "walls": 3681, + "piano": 3682, + "##ko": 3683, + "heat": 3684, + "cannot": 3685, + "##ate": 3686, + "earned": 3687, + "products": 3688, + "drama": 3689, + "era": 3690, + "authority": 3691, + "seasons": 3692, + "join": 3693, + "grade": 3694, + "##io": 3695, + "sign": 3696, + "difficult": 3697, + "machine": 3698, + "1963": 3699, + "territory": 3700, + "mainly": 3701, + "##wood": 3702, + "stations": 3703, + "squadron": 3704, + "1962": 3705, + "stepped": 3706, + "iron": 3707, + "19th": 3708, + "##led": 3709, + "serve": 3710, + "appear": 3711, + "sky": 3712, + "speak": 3713, + "broken": 3714, + "charge": 3715, + "knowledge": 3716, + "kilometres": 3717, + "removed": 3718, + "ships": 3719, + "article": 3720, + "campus": 3721, + "simple": 3722, + "##ty": 3723, + "pushed": 3724, + "britain": 3725, + "##ve": 3726, + "leaves": 3727, + "recently": 3728, + "cd": 3729, + "soft": 3730, + "boston": 3731, + "latter": 3732, + "easy": 3733, + "acquired": 3734, + "poland": 3735, + "##sa": 3736, + "quality": 3737, + "officers": 3738, + "presence": 3739, + "planned": 3740, + "nations": 3741, + "mass": 3742, + "broadcast": 3743, + "jean": 3744, + "share": 3745, + "image": 3746, + "influence": 3747, + "wild": 3748, + "offer": 3749, + "emperor": 3750, + "electric": 3751, + "reading": 3752, + "headed": 3753, + "ability": 3754, + "promoted": 3755, + "yellow": 3756, + "ministry": 3757, + "1942": 3758, + "throat": 3759, + "smaller": 3760, + "politician": 3761, + "##by": 3762, + "latin": 3763, + "spoke": 3764, + "cars": 3765, + "williams": 3766, + "males": 3767, + "lack": 3768, + "pop": 3769, + "80": 3770, + "##ier": 3771, + "acting": 3772, + "seeing": 3773, + "consists": 3774, + "##ti": 3775, + "estate": 3776, + "1961": 3777, + "pressure": 3778, + "johnson": 3779, + "newspaper": 3780, + "jr": 3781, + "chris": 3782, + "olympics": 3783, + "online": 3784, + "conditions": 3785, + "beat": 3786, + "elements": 3787, + "walking": 3788, + "vote": 3789, + "##field": 3790, + "needs": 3791, + "carolina": 3792, + "text": 3793, + "featuring": 3794, + "global": 3795, + "block": 3796, + "shirt": 3797, + "levels": 3798, + "francisco": 3799, + "purpose": 3800, + "females": 3801, + "et": 3802, + "dutch": 3803, + "duke": 3804, + "ahead": 3805, + "gas": 3806, + "twice": 3807, + "safety": 3808, + "serious": 3809, + "turning": 3810, + "highly": 3811, + "lieutenant": 3812, + "firm": 3813, + "maria": 3814, + "amount": 3815, + "mixed": 3816, + "daniel": 3817, + "proposed": 3818, + "perfect": 3819, + "agreement": 3820, + "affairs": 3821, + "3rd": 3822, + "seconds": 3823, + "contemporary": 3824, + "paid": 3825, + "1943": 3826, + "prison": 3827, + "save": 3828, + "kitchen": 3829, + "label": 3830, + "administrative": 3831, + "intended": 3832, + "constructed": 3833, + "academic": 3834, + "nice": 3835, + "teacher": 3836, + "races": 3837, + "1956": 3838, + "formerly": 3839, + "corporation": 3840, + "ben": 3841, + "nation": 3842, + "issued": 3843, + "shut": 3844, + "1958": 3845, + "drums": 3846, + "housing": 3847, + "victoria": 3848, + "seems": 3849, + "opera": 3850, + "1959": 3851, + "graduated": 3852, + "function": 3853, + "von": 3854, + "mentioned": 3855, + "picked": 3856, + "build": 3857, + "recognized": 3858, + "shortly": 3859, + "protection": 3860, + "picture": 3861, + "notable": 3862, + "exchange": 3863, + "elections": 3864, + "1980s": 3865, + "loved": 3866, + "percent": 3867, + "racing": 3868, + "fish": 3869, + "elizabeth": 3870, + "garden": 3871, + "volume": 3872, + "hockey": 3873, + "1941": 3874, + "beside": 3875, + "settled": 3876, + "##ford": 3877, + "1940": 3878, + "competed": 3879, + "replied": 3880, + "drew": 3881, + "1948": 3882, + "actress": 3883, + "marine": 3884, + "scotland": 3885, + "steel": 3886, + "glanced": 3887, + "farm": 3888, + "steve": 3889, + "1957": 3890, + "risk": 3891, + "tonight": 3892, + "positive": 3893, + "magic": 3894, + "singles": 3895, + "effects": 3896, + "gray": 3897, + "screen": 3898, + "dog": 3899, + "##ja": 3900, + "residents": 3901, + "bus": 3902, + "sides": 3903, + "none": 3904, + "secondary": 3905, + "literature": 3906, + "polish": 3907, + "destroyed": 3908, + "flying": 3909, + "founder": 3910, + "households": 3911, + "1939": 3912, + "lay": 3913, + "reserve": 3914, + "usa": 3915, + "gallery": 3916, + "##ler": 3917, + "1946": 3918, + "industrial": 3919, + "younger": 3920, + "approach": 3921, + "appearances": 3922, + "urban": 3923, + "ones": 3924, + "1950": 3925, + "finish": 3926, + "avenue": 3927, + "powerful": 3928, + "fully": 3929, + "growth": 3930, + "page": 3931, + "honor": 3932, + "jersey": 3933, + "projects": 3934, + "advanced": 3935, + "revealed": 3936, + "basic": 3937, + "90": 3938, + "infantry": 3939, + "pair": 3940, + "equipment": 3941, + "visit": 3942, + "33": 3943, + "evening": 3944, + "search": 3945, + "grant": 3946, + "effort": 3947, + "solo": 3948, + "treatment": 3949, + "buried": 3950, + "republican": 3951, + "primarily": 3952, + "bottom": 3953, + "owner": 3954, + "1970s": 3955, + "israel": 3956, + "gives": 3957, + "jim": 3958, + "dream": 3959, + "bob": 3960, + "remain": 3961, + "spot": 3962, + "70": 3963, + "notes": 3964, + "produce": 3965, + "champions": 3966, + "contact": 3967, + "ed": 3968, + "soul": 3969, + "accepted": 3970, + "ways": 3971, + "del": 3972, + "##ally": 3973, + "losing": 3974, + "split": 3975, + "price": 3976, + "capacity": 3977, + "basis": 3978, + "trial": 3979, + "questions": 3980, + "##ina": 3981, + "1955": 3982, + "20th": 3983, + "guess": 3984, + "officially": 3985, + "memorial": 3986, + "naval": 3987, + "initial": 3988, + "##ization": 3989, + "whispered": 3990, + "median": 3991, + "engineer": 3992, + "##ful": 3993, + "sydney": 3994, + "##go": 3995, + "columbia": 3996, + "strength": 3997, + "300": 3998, + "1952": 3999, + "tears": 4000, + "senate": 4001, + "00": 4002, + "card": 4003, + "asian": 4004, + "agent": 4005, + "1947": 4006, + "software": 4007, + "44": 4008, + "draw": 4009, + "warm": 4010, + "supposed": 4011, + "com": 4012, + "pro": 4013, + "##il": 4014, + "transferred": 4015, + "leaned": 4016, + "##at": 4017, + "candidate": 4018, + "escape": 4019, + "mountains": 4020, + "asia": 4021, + "potential": 4022, + "activity": 4023, + "entertainment": 4024, + "seem": 4025, + "traffic": 4026, + "jackson": 4027, + "murder": 4028, + "36": 4029, + "slow": 4030, + "product": 4031, + "orchestra": 4032, + "haven": 4033, + "agency": 4034, + "bbc": 4035, + "taught": 4036, + "website": 4037, + "comedy": 4038, + "unable": 4039, + "storm": 4040, + "planning": 4041, + "albums": 4042, + "rugby": 4043, + "environment": 4044, + "scientific": 4045, + "grabbed": 4046, + "protect": 4047, + "##hi": 4048, + "boat": 4049, + "typically": 4050, + "1954": 4051, + "1953": 4052, + "damage": 4053, + "principal": 4054, + "divided": 4055, + "dedicated": 4056, + "mount": 4057, + "ohio": 4058, + "##berg": 4059, + "pick": 4060, + "fought": 4061, + "driver": 4062, + "##der": 4063, + "empty": 4064, + "shoulders": 4065, + "sort": 4066, + "thank": 4067, + "berlin": 4068, + "prominent": 4069, + "account": 4070, + "freedom": 4071, + "necessary": 4072, + "efforts": 4073, + "alex": 4074, + "headquarters": 4075, + "follows": 4076, + "alongside": 4077, + "des": 4078, + "simon": 4079, + "andrew": 4080, + "suggested": 4081, + "operating": 4082, + "learning": 4083, + "steps": 4084, + "1949": 4085, + "sweet": 4086, + "technical": 4087, + "begin": 4088, + "easily": 4089, + "34": 4090, + "teeth": 4091, + "speaking": 4092, + "settlement": 4093, + "scale": 4094, + "##sh": 4095, + "renamed": 4096, + "ray": 4097, + "max": 4098, + "enemy": 4099, + "semi": 4100, + "joint": 4101, + "compared": 4102, + "##rd": 4103, + "scottish": 4104, + "leadership": 4105, + "analysis": 4106, + "offers": 4107, + "georgia": 4108, + "pieces": 4109, + "captured": 4110, + "animal": 4111, + "deputy": 4112, + "guest": 4113, + "organized": 4114, + "##lin": 4115, + "tony": 4116, + "combined": 4117, + "method": 4118, + "challenge": 4119, + "1960s": 4120, + "huge": 4121, + "wants": 4122, + "battalion": 4123, + "sons": 4124, + "rise": 4125, + "crime": 4126, + "types": 4127, + "facilities": 4128, + "telling": 4129, + "path": 4130, + "1951": 4131, + "platform": 4132, + "sit": 4133, + "1990s": 4134, + "##lo": 4135, + "tells": 4136, + "assigned": 4137, + "rich": 4138, + "pull": 4139, + "##ot": 4140, + "commonly": 4141, + "alive": 4142, + "##za": 4143, + "letters": 4144, + "concept": 4145, + "conducted": 4146, + "wearing": 4147, + "happen": 4148, + "bought": 4149, + "becomes": 4150, + "holy": 4151, + "gets": 4152, + "ocean": 4153, + "defeat": 4154, + "languages": 4155, + "purchased": 4156, + "coffee": 4157, + "occurred": 4158, + "titled": 4159, + "##q": 4160, + "declared": 4161, + "applied": 4162, + "sciences": 4163, + "concert": 4164, + "sounds": 4165, + "jazz": 4166, + "brain": 4167, + "##me": 4168, + "painting": 4169, + "fleet": 4170, + "tax": 4171, + "nick": 4172, + "##ius": 4173, + "michigan": 4174, + "count": 4175, + "animals": 4176, + "leaders": 4177, + "episodes": 4178, + "##line": 4179, + "content": 4180, + "##den": 4181, + "birth": 4182, + "##it": 4183, + "clubs": 4184, + "64": 4185, + "palace": 4186, + "critical": 4187, + "refused": 4188, + "fair": 4189, + "leg": 4190, + "laughed": 4191, + "returning": 4192, + "surrounding": 4193, + "participated": 4194, + "formation": 4195, + "lifted": 4196, + "pointed": 4197, + "connected": 4198, + "rome": 4199, + "medicine": 4200, + "laid": 4201, + "taylor": 4202, + "santa": 4203, + "powers": 4204, + "adam": 4205, + "tall": 4206, + "shared": 4207, + "focused": 4208, + "knowing": 4209, + "yards": 4210, + "entrance": 4211, + "falls": 4212, + "##wa": 4213, + "calling": 4214, + "##ad": 4215, + "sources": 4216, + "chosen": 4217, + "beneath": 4218, + "resources": 4219, + "yard": 4220, + "##ite": 4221, + "nominated": 4222, + "silence": 4223, + "zone": 4224, + "defined": 4225, + "##que": 4226, + "gained": 4227, + "thirty": 4228, + "38": 4229, + "bodies": 4230, + "moon": 4231, + "##ard": 4232, + "adopted": 4233, + "christmas": 4234, + "widely": 4235, + "register": 4236, + "apart": 4237, + "iran": 4238, + "premier": 4239, + "serves": 4240, + "du": 4241, + "unknown": 4242, + "parties": 4243, + "##les": 4244, + "generation": 4245, + "##ff": 4246, + "continues": 4247, + "quick": 4248, + "fields": 4249, + "brigade": 4250, + "quiet": 4251, + "teaching": 4252, + "clothes": 4253, + "impact": 4254, + "weapons": 4255, + "partner": 4256, + "flat": 4257, + "theater": 4258, + "supreme": 4259, + "1938": 4260, + "37": 4261, + "relations": 4262, + "##tor": 4263, + "plants": 4264, + "suffered": 4265, + "1936": 4266, + "wilson": 4267, + "kids": 4268, + "begins": 4269, + "##age": 4270, + "1918": 4271, + "seats": 4272, + "armed": 4273, + "internet": 4274, + "models": 4275, + "worth": 4276, + "laws": 4277, + "400": 4278, + "communities": 4279, + "classes": 4280, + "background": 4281, + "knows": 4282, + "thanks": 4283, + "quarter": 4284, + "reaching": 4285, + "humans": 4286, + "carry": 4287, + "killing": 4288, + "format": 4289, + "kong": 4290, + "hong": 4291, + "setting": 4292, + "75": 4293, + "architecture": 4294, + "disease": 4295, + "railroad": 4296, + "inc": 4297, + "possibly": 4298, + "wish": 4299, + "arthur": 4300, + "thoughts": 4301, + "harry": 4302, + "doors": 4303, + "density": 4304, + "##di": 4305, + "crowd": 4306, + "illinois": 4307, + "stomach": 4308, + "tone": 4309, + "unique": 4310, + "reports": 4311, + "anyway": 4312, + "##ir": 4313, + "liberal": 4314, + "der": 4315, + "vehicle": 4316, + "thick": 4317, + "dry": 4318, + "drug": 4319, + "faced": 4320, + "largely": 4321, + "facility": 4322, + "theme": 4323, + "holds": 4324, + "creation": 4325, + "strange": 4326, + "colonel": 4327, + "##mi": 4328, + "revolution": 4329, + "bell": 4330, + "politics": 4331, + "turns": 4332, + "silent": 4333, + "rail": 4334, + "relief": 4335, + "independence": 4336, + "combat": 4337, + "shape": 4338, + "write": 4339, + "determined": 4340, + "sales": 4341, + "learned": 4342, + "4th": 4343, + "finger": 4344, + "oxford": 4345, + "providing": 4346, + "1937": 4347, + "heritage": 4348, + "fiction": 4349, + "situated": 4350, + "designated": 4351, + "allowing": 4352, + "distribution": 4353, + "hosted": 4354, + "##est": 4355, + "sight": 4356, + "interview": 4357, + "estimated": 4358, + "reduced": 4359, + "##ria": 4360, + "toronto": 4361, + "footballer": 4362, + "keeping": 4363, + "guys": 4364, + "damn": 4365, + "claim": 4366, + "motion": 4367, + "sport": 4368, + "sixth": 4369, + "stayed": 4370, + "##ze": 4371, + "en": 4372, + "rear": 4373, + "receive": 4374, + "handed": 4375, + "twelve": 4376, + "dress": 4377, + "audience": 4378, + "granted": 4379, + "brazil": 4380, + "##well": 4381, + "spirit": 4382, + "##ated": 4383, + "noticed": 4384, + "etc": 4385, + "olympic": 4386, + "representative": 4387, + "eric": 4388, + "tight": 4389, + "trouble": 4390, + "reviews": 4391, + "drink": 4392, + "vampire": 4393, + "missing": 4394, + "roles": 4395, + "ranked": 4396, + "newly": 4397, + "household": 4398, + "finals": 4399, + "wave": 4400, + "critics": 4401, + "##ee": 4402, + "phase": 4403, + "massachusetts": 4404, + "pilot": 4405, + "unlike": 4406, + "philadelphia": 4407, + "bright": 4408, + "guns": 4409, + "crown": 4410, + "organizations": 4411, + "roof": 4412, + "42": 4413, + "respectively": 4414, + "clearly": 4415, + "tongue": 4416, + "marked": 4417, + "circle": 4418, + "fox": 4419, + "korea": 4420, + "bronze": 4421, + "brian": 4422, + "expanded": 4423, + "sexual": 4424, + "supply": 4425, + "yourself": 4426, + "inspired": 4427, + "labour": 4428, + "fc": 4429, + "##ah": 4430, + "reference": 4431, + "vision": 4432, + "draft": 4433, + "connection": 4434, + "brand": 4435, + "reasons": 4436, + "1935": 4437, + "classic": 4438, + "driving": 4439, + "trip": 4440, + "jesus": 4441, + "cells": 4442, + "entry": 4443, + "1920": 4444, + "neither": 4445, + "trail": 4446, + "claims": 4447, + "atlantic": 4448, + "orders": 4449, + "labor": 4450, + "nose": 4451, + "afraid": 4452, + "identified": 4453, + "intelligence": 4454, + "calls": 4455, + "cancer": 4456, + "attacked": 4457, + "passing": 4458, + "stephen": 4459, + "positions": 4460, + "imperial": 4461, + "grey": 4462, + "jason": 4463, + "39": 4464, + "sunday": 4465, + "48": 4466, + "swedish": 4467, + "avoid": 4468, + "extra": 4469, + "uncle": 4470, + "message": 4471, + "covers": 4472, + "allows": 4473, + "surprise": 4474, + "materials": 4475, + "fame": 4476, + "hunter": 4477, + "##ji": 4478, + "1930": 4479, + "citizens": 4480, + "figures": 4481, + "davis": 4482, + "environmental": 4483, + "confirmed": 4484, + "shit": 4485, + "titles": 4486, + "di": 4487, + "performing": 4488, + "difference": 4489, + "acts": 4490, + "attacks": 4491, + "##ov": 4492, + "existing": 4493, + "votes": 4494, + "opportunity": 4495, + "nor": 4496, + "shop": 4497, + "entirely": 4498, + "trains": 4499, + "opposite": 4500, + "pakistan": 4501, + "##pa": 4502, + "develop": 4503, + "resulted": 4504, + "representatives": 4505, + "actions": 4506, + "reality": 4507, + "pressed": 4508, + "##ish": 4509, + "barely": 4510, + "wine": 4511, + "conversation": 4512, + "faculty": 4513, + "northwest": 4514, + "ends": 4515, + "documentary": 4516, + "nuclear": 4517, + "stock": 4518, + "grace": 4519, + "sets": 4520, + "eat": 4521, + "alternative": 4522, + "##ps": 4523, + "bag": 4524, + "resulting": 4525, + "creating": 4526, + "surprised": 4527, + "cemetery": 4528, + "1919": 4529, + "drop": 4530, + "finding": 4531, + "sarah": 4532, + "cricket": 4533, + "streets": 4534, + "tradition": 4535, + "ride": 4536, + "1933": 4537, + "exhibition": 4538, + "target": 4539, + "ear": 4540, + "explained": 4541, + "rain": 4542, + "composer": 4543, + "injury": 4544, + "apartment": 4545, + "municipal": 4546, + "educational": 4547, + "occupied": 4548, + "netherlands": 4549, + "clean": 4550, + "billion": 4551, + "constitution": 4552, + "learn": 4553, + "1914": 4554, + "maximum": 4555, + "classical": 4556, + "francis": 4557, + "lose": 4558, + "opposition": 4559, + "jose": 4560, + "ontario": 4561, + "bear": 4562, + "core": 4563, + "hills": 4564, + "rolled": 4565, + "ending": 4566, + "drawn": 4567, + "permanent": 4568, + "fun": 4569, + "##tes": 4570, + "##lla": 4571, + "lewis": 4572, + "sites": 4573, + "chamber": 4574, + "ryan": 4575, + "##way": 4576, + "scoring": 4577, + "height": 4578, + "1934": 4579, + "##house": 4580, + "lyrics": 4581, + "staring": 4582, + "55": 4583, + "officials": 4584, + "1917": 4585, + "snow": 4586, + "oldest": 4587, + "##tic": 4588, + "orange": 4589, + "##ger": 4590, + "qualified": 4591, + "interior": 4592, + "apparently": 4593, + "succeeded": 4594, + "thousand": 4595, + "dinner": 4596, + "lights": 4597, + "existence": 4598, + "fans": 4599, + "heavily": 4600, + "41": 4601, + "greatest": 4602, + "conservative": 4603, + "send": 4604, + "bowl": 4605, + "plus": 4606, + "enter": 4607, + "catch": 4608, + "##un": 4609, + "economy": 4610, + "duty": 4611, + "1929": 4612, + "speech": 4613, + "authorities": 4614, + "princess": 4615, + "performances": 4616, + "versions": 4617, + "shall": 4618, + "graduate": 4619, + "pictures": 4620, + "effective": 4621, + "remembered": 4622, + "poetry": 4623, + "desk": 4624, + "crossed": 4625, + "starring": 4626, + "starts": 4627, + "passenger": 4628, + "sharp": 4629, + "##ant": 4630, + "acres": 4631, + "ass": 4632, + "weather": 4633, + "falling": 4634, + "rank": 4635, + "fund": 4636, + "supporting": 4637, + "check": 4638, + "adult": 4639, + "publishing": 4640, + "heads": 4641, + "cm": 4642, + "southeast": 4643, + "lane": 4644, + "##burg": 4645, + "application": 4646, + "bc": 4647, + "##ura": 4648, + "les": 4649, + "condition": 4650, + "transfer": 4651, + "prevent": 4652, + "display": 4653, + "ex": 4654, + "regions": 4655, + "earl": 4656, + "federation": 4657, + "cool": 4658, + "relatively": 4659, + "answered": 4660, + "besides": 4661, + "1928": 4662, + "obtained": 4663, + "portion": 4664, + "##town": 4665, + "mix": 4666, + "##ding": 4667, + "reaction": 4668, + "liked": 4669, + "dean": 4670, + "express": 4671, + "peak": 4672, + "1932": 4673, + "##tte": 4674, + "counter": 4675, + "religion": 4676, + "chain": 4677, + "rare": 4678, + "miller": 4679, + "convention": 4680, + "aid": 4681, + "lie": 4682, + "vehicles": 4683, + "mobile": 4684, + "perform": 4685, + "squad": 4686, + "wonder": 4687, + "lying": 4688, + "crazy": 4689, + "sword": 4690, + "##ping": 4691, + "attempted": 4692, + "centuries": 4693, + "weren": 4694, + "philosophy": 4695, + "category": 4696, + "##ize": 4697, + "anna": 4698, + "interested": 4699, + "47": 4700, + "sweden": 4701, + "wolf": 4702, + "frequently": 4703, + "abandoned": 4704, + "kg": 4705, + "literary": 4706, + "alliance": 4707, + "task": 4708, + "entitled": 4709, + "##ay": 4710, + "threw": 4711, + "promotion": 4712, + "factory": 4713, + "tiny": 4714, + "soccer": 4715, + "visited": 4716, + "matt": 4717, + "fm": 4718, + "achieved": 4719, + "52": 4720, + "defence": 4721, + "internal": 4722, + "persian": 4723, + "43": 4724, + "methods": 4725, + "##ging": 4726, + "arrested": 4727, + "otherwise": 4728, + "cambridge": 4729, + "programming": 4730, + "villages": 4731, + "elementary": 4732, + "districts": 4733, + "rooms": 4734, + "criminal": 4735, + "conflict": 4736, + "worry": 4737, + "trained": 4738, + "1931": 4739, + "attempts": 4740, + "waited": 4741, + "signal": 4742, + "bird": 4743, + "truck": 4744, + "subsequent": 4745, + "programme": 4746, + "##ol": 4747, + "ad": 4748, + "49": 4749, + "communist": 4750, + "details": 4751, + "faith": 4752, + "sector": 4753, + "patrick": 4754, + "carrying": 4755, + "laugh": 4756, + "##ss": 4757, + "controlled": 4758, + "korean": 4759, + "showing": 4760, + "origin": 4761, + "fuel": 4762, + "evil": 4763, + "1927": 4764, + "##ent": 4765, + "brief": 4766, + "identity": 4767, + "darkness": 4768, + "address": 4769, + "pool": 4770, + "missed": 4771, + "publication": 4772, + "web": 4773, + "planet": 4774, + "ian": 4775, + "anne": 4776, + "wings": 4777, + "invited": 4778, + "##tt": 4779, + "briefly": 4780, + "standards": 4781, + "kissed": 4782, + "##be": 4783, + "ideas": 4784, + "climate": 4785, + "causing": 4786, + "walter": 4787, + "worse": 4788, + "albert": 4789, + "articles": 4790, + "winners": 4791, + "desire": 4792, + "aged": 4793, + "northeast": 4794, + "dangerous": 4795, + "gate": 4796, + "doubt": 4797, + "1922": 4798, + "wooden": 4799, + "multi": 4800, + "##ky": 4801, + "poet": 4802, + "rising": 4803, + "funding": 4804, + "46": 4805, + "communications": 4806, + "communication": 4807, + "violence": 4808, + "copies": 4809, + "prepared": 4810, + "ford": 4811, + "investigation": 4812, + "skills": 4813, + "1924": 4814, + "pulling": 4815, + "electronic": 4816, + "##ak": 4817, + "##ial": 4818, + "##han": 4819, + "containing": 4820, + "ultimately": 4821, + "offices": 4822, + "singing": 4823, + "understanding": 4824, + "restaurant": 4825, + "tomorrow": 4826, + "fashion": 4827, + "christ": 4828, + "ward": 4829, + "da": 4830, + "pope": 4831, + "stands": 4832, + "5th": 4833, + "flow": 4834, + "studios": 4835, + "aired": 4836, + "commissioned": 4837, + "contained": 4838, + "exist": 4839, + "fresh": 4840, + "americans": 4841, + "##per": 4842, + "wrestling": 4843, + "approved": 4844, + "kid": 4845, + "employed": 4846, + "respect": 4847, + "suit": 4848, + "1925": 4849, + "angel": 4850, + "asking": 4851, + "increasing": 4852, + "frame": 4853, + "angry": 4854, + "selling": 4855, + "1950s": 4856, + "thin": 4857, + "finds": 4858, + "##nd": 4859, + "temperature": 4860, + "statement": 4861, + "ali": 4862, + "explain": 4863, + "inhabitants": 4864, + "towns": 4865, + "extensive": 4866, + "narrow": 4867, + "51": 4868, + "jane": 4869, + "flowers": 4870, + "images": 4871, + "promise": 4872, + "somewhere": 4873, + "object": 4874, + "fly": 4875, + "closely": 4876, + "##ls": 4877, + "1912": 4878, + "bureau": 4879, + "cape": 4880, + "1926": 4881, + "weekly": 4882, + "presidential": 4883, + "legislative": 4884, + "1921": 4885, + "##ai": 4886, + "##au": 4887, + "launch": 4888, + "founding": 4889, + "##ny": 4890, + "978": 4891, + "##ring": 4892, + "artillery": 4893, + "strike": 4894, + "un": 4895, + "institutions": 4896, + "roll": 4897, + "writers": 4898, + "landing": 4899, + "chose": 4900, + "kevin": 4901, + "anymore": 4902, + "pp": 4903, + "##ut": 4904, + "attorney": 4905, + "fit": 4906, + "dan": 4907, + "billboard": 4908, + "receiving": 4909, + "agricultural": 4910, + "breaking": 4911, + "sought": 4912, + "dave": 4913, + "admitted": 4914, + "lands": 4915, + "mexican": 4916, + "##bury": 4917, + "charlie": 4918, + "specifically": 4919, + "hole": 4920, + "iv": 4921, + "howard": 4922, + "credit": 4923, + "moscow": 4924, + "roads": 4925, + "accident": 4926, + "1923": 4927, + "proved": 4928, + "wear": 4929, + "struck": 4930, + "hey": 4931, + "guards": 4932, + "stuff": 4933, + "slid": 4934, + "expansion": 4935, + "1915": 4936, + "cat": 4937, + "anthony": 4938, + "##kin": 4939, + "melbourne": 4940, + "opposed": 4941, + "sub": 4942, + "southwest": 4943, + "architect": 4944, + "failure": 4945, + "plane": 4946, + "1916": 4947, + "##ron": 4948, + "map": 4949, + "camera": 4950, + "tank": 4951, + "listen": 4952, + "regarding": 4953, + "wet": 4954, + "introduction": 4955, + "metropolitan": 4956, + "link": 4957, + "ep": 4958, + "fighter": 4959, + "inch": 4960, + "grown": 4961, + "gene": 4962, + "anger": 4963, + "fixed": 4964, + "buy": 4965, + "dvd": 4966, + "khan": 4967, + "domestic": 4968, + "worldwide": 4969, + "chapel": 4970, + "mill": 4971, + "functions": 4972, + "examples": 4973, + "##head": 4974, + "developing": 4975, + "1910": 4976, + "turkey": 4977, + "hits": 4978, + "pocket": 4979, + "antonio": 4980, + "papers": 4981, + "grow": 4982, + "unless": 4983, + "circuit": 4984, + "18th": 4985, + "concerned": 4986, + "attached": 4987, + "journalist": 4988, + "selection": 4989, + "journey": 4990, + "converted": 4991, + "provincial": 4992, + "painted": 4993, + "hearing": 4994, + "aren": 4995, + "bands": 4996, + "negative": 4997, + "aside": 4998, + "wondered": 4999, + "knight": 5000, + "lap": 5001, + "survey": 5002, + "ma": 5003, + "##ow": 5004, + "noise": 5005, + "billy": 5006, + "##ium": 5007, + "shooting": 5008, + "guide": 5009, + "bedroom": 5010, + "priest": 5011, + "resistance": 5012, + "motor": 5013, + "homes": 5014, + "sounded": 5015, + "giant": 5016, + "##mer": 5017, + "150": 5018, + "scenes": 5019, + "equal": 5020, + "comic": 5021, + "patients": 5022, + "hidden": 5023, + "solid": 5024, + "actual": 5025, + "bringing": 5026, + "afternoon": 5027, + "touched": 5028, + "funds": 5029, + "wedding": 5030, + "consisted": 5031, + "marie": 5032, + "canal": 5033, + "sr": 5034, + "kim": 5035, + "treaty": 5036, + "turkish": 5037, + "recognition": 5038, + "residence": 5039, + "cathedral": 5040, + "broad": 5041, + "knees": 5042, + "incident": 5043, + "shaped": 5044, + "fired": 5045, + "norwegian": 5046, + "handle": 5047, + "cheek": 5048, + "contest": 5049, + "represent": 5050, + "##pe": 5051, + "representing": 5052, + "beauty": 5053, + "##sen": 5054, + "birds": 5055, + "advantage": 5056, + "emergency": 5057, + "wrapped": 5058, + "drawing": 5059, + "notice": 5060, + "pink": 5061, + "broadcasting": 5062, + "##ong": 5063, + "somehow": 5064, + "bachelor": 5065, + "seventh": 5066, + "collected": 5067, + "registered": 5068, + "establishment": 5069, + "alan": 5070, + "assumed": 5071, + "chemical": 5072, + "personnel": 5073, + "roger": 5074, + "retirement": 5075, + "jeff": 5076, + "portuguese": 5077, + "wore": 5078, + "tied": 5079, + "device": 5080, + "threat": 5081, + "progress": 5082, + "advance": 5083, + "##ised": 5084, + "banks": 5085, + "hired": 5086, + "manchester": 5087, + "nfl": 5088, + "teachers": 5089, + "structures": 5090, + "forever": 5091, + "##bo": 5092, + "tennis": 5093, + "helping": 5094, + "saturday": 5095, + "sale": 5096, + "applications": 5097, + "junction": 5098, + "hip": 5099, + "incorporated": 5100, + "neighborhood": 5101, + "dressed": 5102, + "ceremony": 5103, + "##ds": 5104, + "influenced": 5105, + "hers": 5106, + "visual": 5107, + "stairs": 5108, + "decades": 5109, + "inner": 5110, + "kansas": 5111, + "hung": 5112, + "hoped": 5113, + "gain": 5114, + "scheduled": 5115, + "downtown": 5116, + "engaged": 5117, + "austria": 5118, + "clock": 5119, + "norway": 5120, + "certainly": 5121, + "pale": 5122, + "protected": 5123, + "1913": 5124, + "victor": 5125, + "employees": 5126, + "plate": 5127, + "putting": 5128, + "surrounded": 5129, + "##ists": 5130, + "finishing": 5131, + "blues": 5132, + "tropical": 5133, + "##ries": 5134, + "minnesota": 5135, + "consider": 5136, + "philippines": 5137, + "accept": 5138, + "54": 5139, + "retrieved": 5140, + "1900": 5141, + "concern": 5142, + "anderson": 5143, + "properties": 5144, + "institution": 5145, + "gordon": 5146, + "successfully": 5147, + "vietnam": 5148, + "##dy": 5149, + "backing": 5150, + "outstanding": 5151, + "muslim": 5152, + "crossing": 5153, + "folk": 5154, + "producing": 5155, + "usual": 5156, + "demand": 5157, + "occurs": 5158, + "observed": 5159, + "lawyer": 5160, + "educated": 5161, + "##ana": 5162, + "kelly": 5163, + "string": 5164, + "pleasure": 5165, + "budget": 5166, + "items": 5167, + "quietly": 5168, + "colorado": 5169, + "philip": 5170, + "typical": 5171, + "##worth": 5172, + "derived": 5173, + "600": 5174, + "survived": 5175, + "asks": 5176, + "mental": 5177, + "##ide": 5178, + "56": 5179, + "jake": 5180, + "jews": 5181, + "distinguished": 5182, + "ltd": 5183, + "1911": 5184, + "sri": 5185, + "extremely": 5186, + "53": 5187, + "athletic": 5188, + "loud": 5189, + "thousands": 5190, + "worried": 5191, + "shadow": 5192, + "transportation": 5193, + "horses": 5194, + "weapon": 5195, + "arena": 5196, + "importance": 5197, + "users": 5198, + "tim": 5199, + "objects": 5200, + "contributed": 5201, + "dragon": 5202, + "douglas": 5203, + "aware": 5204, + "senator": 5205, + "johnny": 5206, + "jordan": 5207, + "sisters": 5208, + "engines": 5209, + "flag": 5210, + "investment": 5211, + "samuel": 5212, + "shock": 5213, + "capable": 5214, + "clark": 5215, + "row": 5216, + "wheel": 5217, + "refers": 5218, + "session": 5219, + "familiar": 5220, + "biggest": 5221, + "wins": 5222, + "hate": 5223, + "maintained": 5224, + "drove": 5225, + "hamilton": 5226, + "request": 5227, + "expressed": 5228, + "injured": 5229, + "underground": 5230, + "churches": 5231, + "walker": 5232, + "wars": 5233, + "tunnel": 5234, + "passes": 5235, + "stupid": 5236, + "agriculture": 5237, + "softly": 5238, + "cabinet": 5239, + "regarded": 5240, + "joining": 5241, + "indiana": 5242, + "##ea": 5243, + "##ms": 5244, + "push": 5245, + "dates": 5246, + "spend": 5247, + "behavior": 5248, + "woods": 5249, + "protein": 5250, + "gently": 5251, + "chase": 5252, + "morgan": 5253, + "mention": 5254, + "burning": 5255, + "wake": 5256, + "combination": 5257, + "occur": 5258, + "mirror": 5259, + "leads": 5260, + "jimmy": 5261, + "indeed": 5262, + "impossible": 5263, + "singapore": 5264, + "paintings": 5265, + "covering": 5266, + "##nes": 5267, + "soldier": 5268, + "locations": 5269, + "attendance": 5270, + "sell": 5271, + "historian": 5272, + "wisconsin": 5273, + "invasion": 5274, + "argued": 5275, + "painter": 5276, + "diego": 5277, + "changing": 5278, + "egypt": 5279, + "##don": 5280, + "experienced": 5281, + "inches": 5282, + "##ku": 5283, + "missouri": 5284, + "vol": 5285, + "grounds": 5286, + "spoken": 5287, + "switzerland": 5288, + "##gan": 5289, + "reform": 5290, + "rolling": 5291, + "ha": 5292, + "forget": 5293, + "massive": 5294, + "resigned": 5295, + "burned": 5296, + "allen": 5297, + "tennessee": 5298, + "locked": 5299, + "values": 5300, + "improved": 5301, + "##mo": 5302, + "wounded": 5303, + "universe": 5304, + "sick": 5305, + "dating": 5306, + "facing": 5307, + "pack": 5308, + "purchase": 5309, + "user": 5310, + "##pur": 5311, + "moments": 5312, + "##ul": 5313, + "merged": 5314, + "anniversary": 5315, + "1908": 5316, + "coal": 5317, + "brick": 5318, + "understood": 5319, + "causes": 5320, + "dynasty": 5321, + "queensland": 5322, + "establish": 5323, + "stores": 5324, + "crisis": 5325, + "promote": 5326, + "hoping": 5327, + "views": 5328, + "cards": 5329, + "referee": 5330, + "extension": 5331, + "##si": 5332, + "raise": 5333, + "arizona": 5334, + "improve": 5335, + "colonial": 5336, + "formal": 5337, + "charged": 5338, + "##rt": 5339, + "palm": 5340, + "lucky": 5341, + "hide": 5342, + "rescue": 5343, + "faces": 5344, + "95": 5345, + "feelings": 5346, + "candidates": 5347, + "juan": 5348, + "##ell": 5349, + "goods": 5350, + "6th": 5351, + "courses": 5352, + "weekend": 5353, + "59": 5354, + "luke": 5355, + "cash": 5356, + "fallen": 5357, + "##om": 5358, + "delivered": 5359, + "affected": 5360, + "installed": 5361, + "carefully": 5362, + "tries": 5363, + "swiss": 5364, + "hollywood": 5365, + "costs": 5366, + "lincoln": 5367, + "responsibility": 5368, + "##he": 5369, + "shore": 5370, + "file": 5371, + "proper": 5372, + "normally": 5373, + "maryland": 5374, + "assistance": 5375, + "jump": 5376, + "constant": 5377, + "offering": 5378, + "friendly": 5379, + "waters": 5380, + "persons": 5381, + "realize": 5382, + "contain": 5383, + "trophy": 5384, + "800": 5385, + "partnership": 5386, + "factor": 5387, + "58": 5388, + "musicians": 5389, + "cry": 5390, + "bound": 5391, + "oregon": 5392, + "indicated": 5393, + "hero": 5394, + "houston": 5395, + "medium": 5396, + "##ure": 5397, + "consisting": 5398, + "somewhat": 5399, + "##ara": 5400, + "57": 5401, + "cycle": 5402, + "##che": 5403, + "beer": 5404, + "moore": 5405, + "frederick": 5406, + "gotten": 5407, + "eleven": 5408, + "worst": 5409, + "weak": 5410, + "approached": 5411, + "arranged": 5412, + "chin": 5413, + "loan": 5414, + "universal": 5415, + "bond": 5416, + "fifteen": 5417, + "pattern": 5418, + "disappeared": 5419, + "##ney": 5420, + "translated": 5421, + "##zed": 5422, + "lip": 5423, + "arab": 5424, + "capture": 5425, + "interests": 5426, + "insurance": 5427, + "##chi": 5428, + "shifted": 5429, + "cave": 5430, + "prix": 5431, + "warning": 5432, + "sections": 5433, + "courts": 5434, + "coat": 5435, + "plot": 5436, + "smell": 5437, + "feed": 5438, + "golf": 5439, + "favorite": 5440, + "maintain": 5441, + "knife": 5442, + "vs": 5443, + "voted": 5444, + "degrees": 5445, + "finance": 5446, + "quebec": 5447, + "opinion": 5448, + "translation": 5449, + "manner": 5450, + "ruled": 5451, + "operate": 5452, + "productions": 5453, + "choose": 5454, + "musician": 5455, + "discovery": 5456, + "confused": 5457, + "tired": 5458, + "separated": 5459, + "stream": 5460, + "techniques": 5461, + "committed": 5462, + "attend": 5463, + "ranking": 5464, + "kings": 5465, + "throw": 5466, + "passengers": 5467, + "measure": 5468, + "horror": 5469, + "fan": 5470, + "mining": 5471, + "sand": 5472, + "danger": 5473, + "salt": 5474, + "calm": 5475, + "decade": 5476, + "dam": 5477, + "require": 5478, + "runner": 5479, + "##ik": 5480, + "rush": 5481, + "associate": 5482, + "greece": 5483, + "##ker": 5484, + "rivers": 5485, + "consecutive": 5486, + "matthew": 5487, + "##ski": 5488, + "sighed": 5489, + "sq": 5490, + "documents": 5491, + "steam": 5492, + "edited": 5493, + "closing": 5494, + "tie": 5495, + "accused": 5496, + "1905": 5497, + "##ini": 5498, + "islamic": 5499, + "distributed": 5500, + "directors": 5501, + "organisation": 5502, + "bruce": 5503, + "7th": 5504, + "breathing": 5505, + "mad": 5506, + "lit": 5507, + "arrival": 5508, + "concrete": 5509, + "taste": 5510, + "08": 5511, + "composition": 5512, + "shaking": 5513, + "faster": 5514, + "amateur": 5515, + "adjacent": 5516, + "stating": 5517, + "1906": 5518, + "twin": 5519, + "flew": 5520, + "##ran": 5521, + "tokyo": 5522, + "publications": 5523, + "##tone": 5524, + "obviously": 5525, + "ridge": 5526, + "storage": 5527, + "1907": 5528, + "carl": 5529, + "pages": 5530, + "concluded": 5531, + "desert": 5532, + "driven": 5533, + "universities": 5534, + "ages": 5535, + "terminal": 5536, + "sequence": 5537, + "borough": 5538, + "250": 5539, + "constituency": 5540, + "creative": 5541, + "cousin": 5542, + "economics": 5543, + "dreams": 5544, + "margaret": 5545, + "notably": 5546, + "reduce": 5547, + "montreal": 5548, + "mode": 5549, + "17th": 5550, + "ears": 5551, + "saved": 5552, + "jan": 5553, + "vocal": 5554, + "##ica": 5555, + "1909": 5556, + "andy": 5557, + "##jo": 5558, + "riding": 5559, + "roughly": 5560, + "threatened": 5561, + "##ise": 5562, + "meters": 5563, + "meanwhile": 5564, + "landed": 5565, + "compete": 5566, + "repeated": 5567, + "grass": 5568, + "czech": 5569, + "regularly": 5570, + "charges": 5571, + "tea": 5572, + "sudden": 5573, + "appeal": 5574, + "##ung": 5575, + "solution": 5576, + "describes": 5577, + "pierre": 5578, + "classification": 5579, + "glad": 5580, + "parking": 5581, + "##ning": 5582, + "belt": 5583, + "physics": 5584, + "99": 5585, + "rachel": 5586, + "add": 5587, + "hungarian": 5588, + "participate": 5589, + "expedition": 5590, + "damaged": 5591, + "gift": 5592, + "childhood": 5593, + "85": 5594, + "fifty": 5595, + "##red": 5596, + "mathematics": 5597, + "jumped": 5598, + "letting": 5599, + "defensive": 5600, + "mph": 5601, + "##ux": 5602, + "##gh": 5603, + "testing": 5604, + "##hip": 5605, + "hundreds": 5606, + "shoot": 5607, + "owners": 5608, + "matters": 5609, + "smoke": 5610, + "israeli": 5611, + "kentucky": 5612, + "dancing": 5613, + "mounted": 5614, + "grandfather": 5615, + "emma": 5616, + "designs": 5617, + "profit": 5618, + "argentina": 5619, + "##gs": 5620, + "truly": 5621, + "li": 5622, + "lawrence": 5623, + "cole": 5624, + "begun": 5625, + "detroit": 5626, + "willing": 5627, + "branches": 5628, + "smiling": 5629, + "decide": 5630, + "miami": 5631, + "enjoyed": 5632, + "recordings": 5633, + "##dale": 5634, + "poverty": 5635, + "ethnic": 5636, + "gay": 5637, + "##bi": 5638, + "gary": 5639, + "arabic": 5640, + "09": 5641, + "accompanied": 5642, + "##one": 5643, + "##ons": 5644, + "fishing": 5645, + "determine": 5646, + "residential": 5647, + "acid": 5648, + "##ary": 5649, + "alice": 5650, + "returns": 5651, + "starred": 5652, + "mail": 5653, + "##ang": 5654, + "jonathan": 5655, + "strategy": 5656, + "##ue": 5657, + "net": 5658, + "forty": 5659, + "cook": 5660, + "businesses": 5661, + "equivalent": 5662, + "commonwealth": 5663, + "distinct": 5664, + "ill": 5665, + "##cy": 5666, + "seriously": 5667, + "##ors": 5668, + "##ped": 5669, + "shift": 5670, + "harris": 5671, + "replace": 5672, + "rio": 5673, + "imagine": 5674, + "formula": 5675, + "ensure": 5676, + "##ber": 5677, + "additionally": 5678, + "scheme": 5679, + "conservation": 5680, + "occasionally": 5681, + "purposes": 5682, + "feels": 5683, + "favor": 5684, + "##and": 5685, + "##ore": 5686, + "1930s": 5687, + "contrast": 5688, + "hanging": 5689, + "hunt": 5690, + "movies": 5691, + "1904": 5692, + "instruments": 5693, + "victims": 5694, + "danish": 5695, + "christopher": 5696, + "busy": 5697, + "demon": 5698, + "sugar": 5699, + "earliest": 5700, + "colony": 5701, + "studying": 5702, + "balance": 5703, + "duties": 5704, + "##ks": 5705, + "belgium": 5706, + "slipped": 5707, + "carter": 5708, + "05": 5709, + "visible": 5710, + "stages": 5711, + "iraq": 5712, + "fifa": 5713, + "##im": 5714, + "commune": 5715, + "forming": 5716, + "zero": 5717, + "07": 5718, + "continuing": 5719, + "talked": 5720, + "counties": 5721, + "legend": 5722, + "bathroom": 5723, + "option": 5724, + "tail": 5725, + "clay": 5726, + "daughters": 5727, + "afterwards": 5728, + "severe": 5729, + "jaw": 5730, + "visitors": 5731, + "##ded": 5732, + "devices": 5733, + "aviation": 5734, + "russell": 5735, + "kate": 5736, + "##vi": 5737, + "entering": 5738, + "subjects": 5739, + "##ino": 5740, + "temporary": 5741, + "swimming": 5742, + "forth": 5743, + "smooth": 5744, + "ghost": 5745, + "audio": 5746, + "bush": 5747, + "operates": 5748, + "rocks": 5749, + "movements": 5750, + "signs": 5751, + "eddie": 5752, + "##tz": 5753, + "ann": 5754, + "voices": 5755, + "honorary": 5756, + "06": 5757, + "memories": 5758, + "dallas": 5759, + "pure": 5760, + "measures": 5761, + "racial": 5762, + "promised": 5763, + "66": 5764, + "harvard": 5765, + "ceo": 5766, + "16th": 5767, + "parliamentary": 5768, + "indicate": 5769, + "benefit": 5770, + "flesh": 5771, + "dublin": 5772, + "louisiana": 5773, + "1902": 5774, + "1901": 5775, + "patient": 5776, + "sleeping": 5777, + "1903": 5778, + "membership": 5779, + "coastal": 5780, + "medieval": 5781, + "wanting": 5782, + "element": 5783, + "scholars": 5784, + "rice": 5785, + "62": 5786, + "limit": 5787, + "survive": 5788, + "makeup": 5789, + "rating": 5790, + "definitely": 5791, + "collaboration": 5792, + "obvious": 5793, + "##tan": 5794, + "boss": 5795, + "ms": 5796, + "baron": 5797, + "birthday": 5798, + "linked": 5799, + "soil": 5800, + "diocese": 5801, + "##lan": 5802, + "ncaa": 5803, + "##mann": 5804, + "offensive": 5805, + "shell": 5806, + "shouldn": 5807, + "waist": 5808, + "##tus": 5809, + "plain": 5810, + "ross": 5811, + "organ": 5812, + "resolution": 5813, + "manufacturing": 5814, + "adding": 5815, + "relative": 5816, + "kennedy": 5817, + "98": 5818, + "whilst": 5819, + "moth": 5820, + "marketing": 5821, + "gardens": 5822, + "crash": 5823, + "72": 5824, + "heading": 5825, + "partners": 5826, + "credited": 5827, + "carlos": 5828, + "moves": 5829, + "cable": 5830, + "##zi": 5831, + "marshall": 5832, + "##out": 5833, + "depending": 5834, + "bottle": 5835, + "represents": 5836, + "rejected": 5837, + "responded": 5838, + "existed": 5839, + "04": 5840, + "jobs": 5841, + "denmark": 5842, + "lock": 5843, + "##ating": 5844, + "treated": 5845, + "graham": 5846, + "routes": 5847, + "talent": 5848, + "commissioner": 5849, + "drugs": 5850, + "secure": 5851, + "tests": 5852, + "reign": 5853, + "restored": 5854, + "photography": 5855, + "##gi": 5856, + "contributions": 5857, + "oklahoma": 5858, + "designer": 5859, + "disc": 5860, + "grin": 5861, + "seattle": 5862, + "robin": 5863, + "paused": 5864, + "atlanta": 5865, + "unusual": 5866, + "##gate": 5867, + "praised": 5868, + "las": 5869, + "laughing": 5870, + "satellite": 5871, + "hungary": 5872, + "visiting": 5873, + "##sky": 5874, + "interesting": 5875, + "factors": 5876, + "deck": 5877, + "poems": 5878, + "norman": 5879, + "##water": 5880, + "stuck": 5881, + "speaker": 5882, + "rifle": 5883, + "domain": 5884, + "premiered": 5885, + "##her": 5886, + "dc": 5887, + "comics": 5888, + "actors": 5889, + "01": 5890, + "reputation": 5891, + "eliminated": 5892, + "8th": 5893, + "ceiling": 5894, + "prisoners": 5895, + "script": 5896, + "##nce": 5897, + "leather": 5898, + "austin": 5899, + "mississippi": 5900, + "rapidly": 5901, + "admiral": 5902, + "parallel": 5903, + "charlotte": 5904, + "guilty": 5905, + "tools": 5906, + "gender": 5907, + "divisions": 5908, + "fruit": 5909, + "##bs": 5910, + "laboratory": 5911, + "nelson": 5912, + "fantasy": 5913, + "marry": 5914, + "rapid": 5915, + "aunt": 5916, + "tribe": 5917, + "requirements": 5918, + "aspects": 5919, + "suicide": 5920, + "amongst": 5921, + "adams": 5922, + "bone": 5923, + "ukraine": 5924, + "abc": 5925, + "kick": 5926, + "sees": 5927, + "edinburgh": 5928, + "clothing": 5929, + "column": 5930, + "rough": 5931, + "gods": 5932, + "hunting": 5933, + "broadway": 5934, + "gathered": 5935, + "concerns": 5936, + "##ek": 5937, + "spending": 5938, + "ty": 5939, + "12th": 5940, + "snapped": 5941, + "requires": 5942, + "solar": 5943, + "bones": 5944, + "cavalry": 5945, + "##tta": 5946, + "iowa": 5947, + "drinking": 5948, + "waste": 5949, + "index": 5950, + "franklin": 5951, + "charity": 5952, + "thompson": 5953, + "stewart": 5954, + "tip": 5955, + "flash": 5956, + "landscape": 5957, + "friday": 5958, + "enjoy": 5959, + "singh": 5960, + "poem": 5961, + "listening": 5962, + "##back": 5963, + "eighth": 5964, + "fred": 5965, + "differences": 5966, + "adapted": 5967, + "bomb": 5968, + "ukrainian": 5969, + "surgery": 5970, + "corporate": 5971, + "masters": 5972, + "anywhere": 5973, + "##more": 5974, + "waves": 5975, + "odd": 5976, + "sean": 5977, + "portugal": 5978, + "orleans": 5979, + "dick": 5980, + "debate": 5981, + "kent": 5982, + "eating": 5983, + "puerto": 5984, + "cleared": 5985, + "96": 5986, + "expect": 5987, + "cinema": 5988, + "97": 5989, + "guitarist": 5990, + "blocks": 5991, + "electrical": 5992, + "agree": 5993, + "involving": 5994, + "depth": 5995, + "dying": 5996, + "panel": 5997, + "struggle": 5998, + "##ged": 5999, + "peninsula": 6000, + "adults": 6001, + "novels": 6002, + "emerged": 6003, + "vienna": 6004, + "metro": 6005, + "debuted": 6006, + "shoes": 6007, + "tamil": 6008, + "songwriter": 6009, + "meets": 6010, + "prove": 6011, + "beating": 6012, + "instance": 6013, + "heaven": 6014, + "scared": 6015, + "sending": 6016, + "marks": 6017, + "artistic": 6018, + "passage": 6019, + "superior": 6020, + "03": 6021, + "significantly": 6022, + "shopping": 6023, + "##tive": 6024, + "retained": 6025, + "##izing": 6026, + "malaysia": 6027, + "technique": 6028, + "cheeks": 6029, + "##ola": 6030, + "warren": 6031, + "maintenance": 6032, + "destroy": 6033, + "extreme": 6034, + "allied": 6035, + "120": 6036, + "appearing": 6037, + "##yn": 6038, + "fill": 6039, + "advice": 6040, + "alabama": 6041, + "qualifying": 6042, + "policies": 6043, + "cleveland": 6044, + "hat": 6045, + "battery": 6046, + "smart": 6047, + "authors": 6048, + "10th": 6049, + "soundtrack": 6050, + "acted": 6051, + "dated": 6052, + "lb": 6053, + "glance": 6054, + "equipped": 6055, + "coalition": 6056, + "funny": 6057, + "outer": 6058, + "ambassador": 6059, + "roy": 6060, + "possibility": 6061, + "couples": 6062, + "campbell": 6063, + "dna": 6064, + "loose": 6065, + "ethan": 6066, + "supplies": 6067, + "1898": 6068, + "gonna": 6069, + "88": 6070, + "monster": 6071, + "##res": 6072, + "shake": 6073, + "agents": 6074, + "frequency": 6075, + "springs": 6076, + "dogs": 6077, + "practices": 6078, + "61": 6079, + "gang": 6080, + "plastic": 6081, + "easier": 6082, + "suggests": 6083, + "gulf": 6084, + "blade": 6085, + "exposed": 6086, + "colors": 6087, + "industries": 6088, + "markets": 6089, + "pan": 6090, + "nervous": 6091, + "electoral": 6092, + "charts": 6093, + "legislation": 6094, + "ownership": 6095, + "##idae": 6096, + "mac": 6097, + "appointment": 6098, + "shield": 6099, + "copy": 6100, + "assault": 6101, + "socialist": 6102, + "abbey": 6103, + "monument": 6104, + "license": 6105, + "throne": 6106, + "employment": 6107, + "jay": 6108, + "93": 6109, + "replacement": 6110, + "charter": 6111, + "cloud": 6112, + "powered": 6113, + "suffering": 6114, + "accounts": 6115, + "oak": 6116, + "connecticut": 6117, + "strongly": 6118, + "wright": 6119, + "colour": 6120, + "crystal": 6121, + "13th": 6122, + "context": 6123, + "welsh": 6124, + "networks": 6125, + "voiced": 6126, + "gabriel": 6127, + "jerry": 6128, + "##cing": 6129, + "forehead": 6130, + "mp": 6131, + "##ens": 6132, + "manage": 6133, + "schedule": 6134, + "totally": 6135, + "remix": 6136, + "##ii": 6137, + "forests": 6138, + "occupation": 6139, + "print": 6140, + "nicholas": 6141, + "brazilian": 6142, + "strategic": 6143, + "vampires": 6144, + "engineers": 6145, + "76": 6146, + "roots": 6147, + "seek": 6148, + "correct": 6149, + "instrumental": 6150, + "und": 6151, + "alfred": 6152, + "backed": 6153, + "hop": 6154, + "##des": 6155, + "stanley": 6156, + "robinson": 6157, + "traveled": 6158, + "wayne": 6159, + "welcome": 6160, + "austrian": 6161, + "achieve": 6162, + "67": 6163, + "exit": 6164, + "rates": 6165, + "1899": 6166, + "strip": 6167, + "whereas": 6168, + "##cs": 6169, + "sing": 6170, + "deeply": 6171, + "adventure": 6172, + "bobby": 6173, + "rick": 6174, + "jamie": 6175, + "careful": 6176, + "components": 6177, + "cap": 6178, + "useful": 6179, + "personality": 6180, + "knee": 6181, + "##shi": 6182, + "pushing": 6183, + "hosts": 6184, + "02": 6185, + "protest": 6186, + "ca": 6187, + "ottoman": 6188, + "symphony": 6189, + "##sis": 6190, + "63": 6191, + "boundary": 6192, + "1890": 6193, + "processes": 6194, + "considering": 6195, + "considerable": 6196, + "tons": 6197, + "##work": 6198, + "##ft": 6199, + "##nia": 6200, + "cooper": 6201, + "trading": 6202, + "dear": 6203, + "conduct": 6204, + "91": 6205, + "illegal": 6206, + "apple": 6207, + "revolutionary": 6208, + "holiday": 6209, + "definition": 6210, + "harder": 6211, + "##van": 6212, + "jacob": 6213, + "circumstances": 6214, + "destruction": 6215, + "##lle": 6216, + "popularity": 6217, + "grip": 6218, + "classified": 6219, + "liverpool": 6220, + "donald": 6221, + "baltimore": 6222, + "flows": 6223, + "seeking": 6224, + "honour": 6225, + "approval": 6226, + "92": 6227, + "mechanical": 6228, + "till": 6229, + "happening": 6230, + "statue": 6231, + "critic": 6232, + "increasingly": 6233, + "immediate": 6234, + "describe": 6235, + "commerce": 6236, + "stare": 6237, + "##ster": 6238, + "indonesia": 6239, + "meat": 6240, + "rounds": 6241, + "boats": 6242, + "baker": 6243, + "orthodox": 6244, + "depression": 6245, + "formally": 6246, + "worn": 6247, + "naked": 6248, + "claire": 6249, + "muttered": 6250, + "sentence": 6251, + "11th": 6252, + "emily": 6253, + "document": 6254, + "77": 6255, + "criticism": 6256, + "wished": 6257, + "vessel": 6258, + "spiritual": 6259, + "bent": 6260, + "virgin": 6261, + "parker": 6262, + "minimum": 6263, + "murray": 6264, + "lunch": 6265, + "danny": 6266, + "printed": 6267, + "compilation": 6268, + "keyboards": 6269, + "false": 6270, + "blow": 6271, + "belonged": 6272, + "68": 6273, + "raising": 6274, + "78": 6275, + "cutting": 6276, + "##board": 6277, + "pittsburgh": 6278, + "##up": 6279, + "9th": 6280, + "shadows": 6281, + "81": 6282, + "hated": 6283, + "indigenous": 6284, + "jon": 6285, + "15th": 6286, + "barry": 6287, + "scholar": 6288, + "ah": 6289, + "##zer": 6290, + "oliver": 6291, + "##gy": 6292, + "stick": 6293, + "susan": 6294, + "meetings": 6295, + "attracted": 6296, + "spell": 6297, + "romantic": 6298, + "##ver": 6299, + "ye": 6300, + "1895": 6301, + "photo": 6302, + "demanded": 6303, + "customers": 6304, + "##ac": 6305, + "1896": 6306, + "logan": 6307, + "revival": 6308, + "keys": 6309, + "modified": 6310, + "commanded": 6311, + "jeans": 6312, + "##ious": 6313, + "upset": 6314, + "raw": 6315, + "phil": 6316, + "detective": 6317, + "hiding": 6318, + "resident": 6319, + "vincent": 6320, + "##bly": 6321, + "experiences": 6322, + "diamond": 6323, + "defeating": 6324, + "coverage": 6325, + "lucas": 6326, + "external": 6327, + "parks": 6328, + "franchise": 6329, + "helen": 6330, + "bible": 6331, + "successor": 6332, + "percussion": 6333, + "celebrated": 6334, + "il": 6335, + "lift": 6336, + "profile": 6337, + "clan": 6338, + "romania": 6339, + "##ied": 6340, + "mills": 6341, + "##su": 6342, + "nobody": 6343, + "achievement": 6344, + "shrugged": 6345, + "fault": 6346, + "1897": 6347, + "rhythm": 6348, + "initiative": 6349, + "breakfast": 6350, + "carbon": 6351, + "700": 6352, + "69": 6353, + "lasted": 6354, + "violent": 6355, + "74": 6356, + "wound": 6357, + "ken": 6358, + "killer": 6359, + "gradually": 6360, + "filmed": 6361, + "°c": 6362, + "dollars": 6363, + "processing": 6364, + "94": 6365, + "remove": 6366, + "criticized": 6367, + "guests": 6368, + "sang": 6369, + "chemistry": 6370, + "##vin": 6371, + "legislature": 6372, + "disney": 6373, + "##bridge": 6374, + "uniform": 6375, + "escaped": 6376, + "integrated": 6377, + "proposal": 6378, + "purple": 6379, + "denied": 6380, + "liquid": 6381, + "karl": 6382, + "influential": 6383, + "morris": 6384, + "nights": 6385, + "stones": 6386, + "intense": 6387, + "experimental": 6388, + "twisted": 6389, + "71": 6390, + "84": 6391, + "##ld": 6392, + "pace": 6393, + "nazi": 6394, + "mitchell": 6395, + "ny": 6396, + "blind": 6397, + "reporter": 6398, + "newspapers": 6399, + "14th": 6400, + "centers": 6401, + "burn": 6402, + "basin": 6403, + "forgotten": 6404, + "surviving": 6405, + "filed": 6406, + "collections": 6407, + "monastery": 6408, + "losses": 6409, + "manual": 6410, + "couch": 6411, + "description": 6412, + "appropriate": 6413, + "merely": 6414, + "tag": 6415, + "missions": 6416, + "sebastian": 6417, + "restoration": 6418, + "replacing": 6419, + "triple": 6420, + "73": 6421, + "elder": 6422, + "julia": 6423, + "warriors": 6424, + "benjamin": 6425, + "julian": 6426, + "convinced": 6427, + "stronger": 6428, + "amazing": 6429, + "declined": 6430, + "versus": 6431, + "merchant": 6432, + "happens": 6433, + "output": 6434, + "finland": 6435, + "bare": 6436, + "barbara": 6437, + "absence": 6438, + "ignored": 6439, + "dawn": 6440, + "injuries": 6441, + "##port": 6442, + "producers": 6443, + "##ram": 6444, + "82": 6445, + "luis": 6446, + "##ities": 6447, + "kw": 6448, + "admit": 6449, + "expensive": 6450, + "electricity": 6451, + "nba": 6452, + "exception": 6453, + "symbol": 6454, + "##ving": 6455, + "ladies": 6456, + "shower": 6457, + "sheriff": 6458, + "characteristics": 6459, + "##je": 6460, + "aimed": 6461, + "button": 6462, + "ratio": 6463, + "effectively": 6464, + "summit": 6465, + "angle": 6466, + "jury": 6467, + "bears": 6468, + "foster": 6469, + "vessels": 6470, + "pants": 6471, + "executed": 6472, + "evans": 6473, + "dozen": 6474, + "advertising": 6475, + "kicked": 6476, + "patrol": 6477, + "1889": 6478, + "competitions": 6479, + "lifetime": 6480, + "principles": 6481, + "athletics": 6482, + "##logy": 6483, + "birmingham": 6484, + "sponsored": 6485, + "89": 6486, + "rob": 6487, + "nomination": 6488, + "1893": 6489, + "acoustic": 6490, + "##sm": 6491, + "creature": 6492, + "longest": 6493, + "##tra": 6494, + "credits": 6495, + "harbor": 6496, + "dust": 6497, + "josh": 6498, + "##so": 6499, + "territories": 6500, + "milk": 6501, + "infrastructure": 6502, + "completion": 6503, + "thailand": 6504, + "indians": 6505, + "leon": 6506, + "archbishop": 6507, + "##sy": 6508, + "assist": 6509, + "pitch": 6510, + "blake": 6511, + "arrangement": 6512, + "girlfriend": 6513, + "serbian": 6514, + "operational": 6515, + "hence": 6516, + "sad": 6517, + "scent": 6518, + "fur": 6519, + "dj": 6520, + "sessions": 6521, + "hp": 6522, + "refer": 6523, + "rarely": 6524, + "##ora": 6525, + "exists": 6526, + "1892": 6527, + "##ten": 6528, + "scientists": 6529, + "dirty": 6530, + "penalty": 6531, + "burst": 6532, + "portrait": 6533, + "seed": 6534, + "79": 6535, + "pole": 6536, + "limits": 6537, + "rival": 6538, + "1894": 6539, + "stable": 6540, + "alpha": 6541, + "grave": 6542, + "constitutional": 6543, + "alcohol": 6544, + "arrest": 6545, + "flower": 6546, + "mystery": 6547, + "devil": 6548, + "architectural": 6549, + "relationships": 6550, + "greatly": 6551, + "habitat": 6552, + "##istic": 6553, + "larry": 6554, + "progressive": 6555, + "remote": 6556, + "cotton": 6557, + "##ics": 6558, + "##ok": 6559, + "preserved": 6560, + "reaches": 6561, + "##ming": 6562, + "cited": 6563, + "86": 6564, + "vast": 6565, + "scholarship": 6566, + "decisions": 6567, + "cbs": 6568, + "joy": 6569, + "teach": 6570, + "1885": 6571, + "editions": 6572, + "knocked": 6573, + "eve": 6574, + "searching": 6575, + "partly": 6576, + "participation": 6577, + "gap": 6578, + "animated": 6579, + "fate": 6580, + "excellent": 6581, + "##ett": 6582, + "na": 6583, + "87": 6584, + "alternate": 6585, + "saints": 6586, + "youngest": 6587, + "##ily": 6588, + "climbed": 6589, + "##ita": 6590, + "##tors": 6591, + "suggest": 6592, + "##ct": 6593, + "discussion": 6594, + "staying": 6595, + "choir": 6596, + "lakes": 6597, + "jacket": 6598, + "revenue": 6599, + "nevertheless": 6600, + "peaked": 6601, + "instrument": 6602, + "wondering": 6603, + "annually": 6604, + "managing": 6605, + "neil": 6606, + "1891": 6607, + "signing": 6608, + "terry": 6609, + "##ice": 6610, + "apply": 6611, + "clinical": 6612, + "brooklyn": 6613, + "aim": 6614, + "catherine": 6615, + "fuck": 6616, + "farmers": 6617, + "figured": 6618, + "ninth": 6619, + "pride": 6620, + "hugh": 6621, + "evolution": 6622, + "ordinary": 6623, + "involvement": 6624, + "comfortable": 6625, + "shouted": 6626, + "tech": 6627, + "encouraged": 6628, + "taiwan": 6629, + "representation": 6630, + "sharing": 6631, + "##lia": 6632, + "##em": 6633, + "panic": 6634, + "exact": 6635, + "cargo": 6636, + "competing": 6637, + "fat": 6638, + "cried": 6639, + "83": 6640, + "1920s": 6641, + "occasions": 6642, + "pa": 6643, + "cabin": 6644, + "borders": 6645, + "utah": 6646, + "marcus": 6647, + "##isation": 6648, + "badly": 6649, + "muscles": 6650, + "##ance": 6651, + "victorian": 6652, + "transition": 6653, + "warner": 6654, + "bet": 6655, + "permission": 6656, + "##rin": 6657, + "slave": 6658, + "terrible": 6659, + "similarly": 6660, + "shares": 6661, + "seth": 6662, + "uefa": 6663, + "possession": 6664, + "medals": 6665, + "benefits": 6666, + "colleges": 6667, + "lowered": 6668, + "perfectly": 6669, + "mall": 6670, + "transit": 6671, + "##ye": 6672, + "##kar": 6673, + "publisher": 6674, + "##ened": 6675, + "harrison": 6676, + "deaths": 6677, + "elevation": 6678, + "##ae": 6679, + "asleep": 6680, + "machines": 6681, + "sigh": 6682, + "ash": 6683, + "hardly": 6684, + "argument": 6685, + "occasion": 6686, + "parent": 6687, + "leo": 6688, + "decline": 6689, + "1888": 6690, + "contribution": 6691, + "##ua": 6692, + "concentration": 6693, + "1000": 6694, + "opportunities": 6695, + "hispanic": 6696, + "guardian": 6697, + "extent": 6698, + "emotions": 6699, + "hips": 6700, + "mason": 6701, + "volumes": 6702, + "bloody": 6703, + "controversy": 6704, + "diameter": 6705, + "steady": 6706, + "mistake": 6707, + "phoenix": 6708, + "identify": 6709, + "violin": 6710, + "##sk": 6711, + "departure": 6712, + "richmond": 6713, + "spin": 6714, + "funeral": 6715, + "enemies": 6716, + "1864": 6717, + "gear": 6718, + "literally": 6719, + "connor": 6720, + "random": 6721, + "sergeant": 6722, + "grab": 6723, + "confusion": 6724, + "1865": 6725, + "transmission": 6726, + "informed": 6727, + "op": 6728, + "leaning": 6729, + "sacred": 6730, + "suspended": 6731, + "thinks": 6732, + "gates": 6733, + "portland": 6734, + "luck": 6735, + "agencies": 6736, + "yours": 6737, + "hull": 6738, + "expert": 6739, + "muscle": 6740, + "layer": 6741, + "practical": 6742, + "sculpture": 6743, + "jerusalem": 6744, + "latest": 6745, + "lloyd": 6746, + "statistics": 6747, + "deeper": 6748, + "recommended": 6749, + "warrior": 6750, + "arkansas": 6751, + "mess": 6752, + "supports": 6753, + "greg": 6754, + "eagle": 6755, + "1880": 6756, + "recovered": 6757, + "rated": 6758, + "concerts": 6759, + "rushed": 6760, + "##ano": 6761, + "stops": 6762, + "eggs": 6763, + "files": 6764, + "premiere": 6765, + "keith": 6766, + "##vo": 6767, + "delhi": 6768, + "turner": 6769, + "pit": 6770, + "affair": 6771, + "belief": 6772, + "paint": 6773, + "##zing": 6774, + "mate": 6775, + "##ach": 6776, + "##ev": 6777, + "victim": 6778, + "##ology": 6779, + "withdrew": 6780, + "bonus": 6781, + "styles": 6782, + "fled": 6783, + "##ud": 6784, + "glasgow": 6785, + "technologies": 6786, + "funded": 6787, + "nbc": 6788, + "adaptation": 6789, + "##ata": 6790, + "portrayed": 6791, + "cooperation": 6792, + "supporters": 6793, + "judges": 6794, + "bernard": 6795, + "justin": 6796, + "hallway": 6797, + "ralph": 6798, + "##ick": 6799, + "graduating": 6800, + "controversial": 6801, + "distant": 6802, + "continental": 6803, + "spider": 6804, + "bite": 6805, + "##ho": 6806, + "recognize": 6807, + "intention": 6808, + "mixing": 6809, + "##ese": 6810, + "egyptian": 6811, + "bow": 6812, + "tourism": 6813, + "suppose": 6814, + "claiming": 6815, + "tiger": 6816, + "dominated": 6817, + "participants": 6818, + "vi": 6819, + "##ru": 6820, + "nurse": 6821, + "partially": 6822, + "tape": 6823, + "##rum": 6824, + "psychology": 6825, + "##rn": 6826, + "essential": 6827, + "touring": 6828, + "duo": 6829, + "voting": 6830, + "civilian": 6831, + "emotional": 6832, + "channels": 6833, + "##king": 6834, + "apparent": 6835, + "hebrew": 6836, + "1887": 6837, + "tommy": 6838, + "carrier": 6839, + "intersection": 6840, + "beast": 6841, + "hudson": 6842, + "##gar": 6843, + "##zo": 6844, + "lab": 6845, + "nova": 6846, + "bench": 6847, + "discuss": 6848, + "costa": 6849, + "##ered": 6850, + "detailed": 6851, + "behalf": 6852, + "drivers": 6853, + "unfortunately": 6854, + "obtain": 6855, + "##lis": 6856, + "rocky": 6857, + "##dae": 6858, + "siege": 6859, + "friendship": 6860, + "honey": 6861, + "##rian": 6862, + "1861": 6863, + "amy": 6864, + "hang": 6865, + "posted": 6866, + "governments": 6867, + "collins": 6868, + "respond": 6869, + "wildlife": 6870, + "preferred": 6871, + "operator": 6872, + "##po": 6873, + "laura": 6874, + "pregnant": 6875, + "videos": 6876, + "dennis": 6877, + "suspected": 6878, + "boots": 6879, + "instantly": 6880, + "weird": 6881, + "automatic": 6882, + "businessman": 6883, + "alleged": 6884, + "placing": 6885, + "throwing": 6886, + "ph": 6887, + "mood": 6888, + "1862": 6889, + "perry": 6890, + "venue": 6891, + "jet": 6892, + "remainder": 6893, + "##lli": 6894, + "##ci": 6895, + "passion": 6896, + "biological": 6897, + "boyfriend": 6898, + "1863": 6899, + "dirt": 6900, + "buffalo": 6901, + "ron": 6902, + "segment": 6903, + "fa": 6904, + "abuse": 6905, + "##era": 6906, + "genre": 6907, + "thrown": 6908, + "stroke": 6909, + "colored": 6910, + "stress": 6911, + "exercise": 6912, + "displayed": 6913, + "##gen": 6914, + "struggled": 6915, + "##tti": 6916, + "abroad": 6917, + "dramatic": 6918, + "wonderful": 6919, + "thereafter": 6920, + "madrid": 6921, + "component": 6922, + "widespread": 6923, + "##sed": 6924, + "tale": 6925, + "citizen": 6926, + "todd": 6927, + "monday": 6928, + "1886": 6929, + "vancouver": 6930, + "overseas": 6931, + "forcing": 6932, + "crying": 6933, + "descent": 6934, + "##ris": 6935, + "discussed": 6936, + "substantial": 6937, + "ranks": 6938, + "regime": 6939, + "1870": 6940, + "provinces": 6941, + "switch": 6942, + "drum": 6943, + "zane": 6944, + "ted": 6945, + "tribes": 6946, + "proof": 6947, + "lp": 6948, + "cream": 6949, + "researchers": 6950, + "volunteer": 6951, + "manor": 6952, + "silk": 6953, + "milan": 6954, + "donated": 6955, + "allies": 6956, + "venture": 6957, + "principle": 6958, + "delivery": 6959, + "enterprise": 6960, + "##ves": 6961, + "##ans": 6962, + "bars": 6963, + "traditionally": 6964, + "witch": 6965, + "reminded": 6966, + "copper": 6967, + "##uk": 6968, + "pete": 6969, + "inter": 6970, + "links": 6971, + "colin": 6972, + "grinned": 6973, + "elsewhere": 6974, + "competitive": 6975, + "frequent": 6976, + "##oy": 6977, + "scream": 6978, + "##hu": 6979, + "tension": 6980, + "texts": 6981, + "submarine": 6982, + "finnish": 6983, + "defending": 6984, + "defend": 6985, + "pat": 6986, + "detail": 6987, + "1884": 6988, + "affiliated": 6989, + "stuart": 6990, + "themes": 6991, + "villa": 6992, + "periods": 6993, + "tool": 6994, + "belgian": 6995, + "ruling": 6996, + "crimes": 6997, + "answers": 6998, + "folded": 6999, + "licensed": 7000, + "resort": 7001, + "demolished": 7002, + "hans": 7003, + "lucy": 7004, + "1881": 7005, + "lion": 7006, + "traded": 7007, + "photographs": 7008, + "writes": 7009, + "craig": 7010, + "##fa": 7011, + "trials": 7012, + "generated": 7013, + "beth": 7014, + "noble": 7015, + "debt": 7016, + "percentage": 7017, + "yorkshire": 7018, + "erected": 7019, + "ss": 7020, + "viewed": 7021, + "grades": 7022, + "confidence": 7023, + "ceased": 7024, + "islam": 7025, + "telephone": 7026, + "retail": 7027, + "##ible": 7028, + "chile": 7029, + "m²": 7030, + "roberts": 7031, + "sixteen": 7032, + "##ich": 7033, + "commented": 7034, + "hampshire": 7035, + "innocent": 7036, + "dual": 7037, + "pounds": 7038, + "checked": 7039, + "regulations": 7040, + "afghanistan": 7041, + "sung": 7042, + "rico": 7043, + "liberty": 7044, + "assets": 7045, + "bigger": 7046, + "options": 7047, + "angels": 7048, + "relegated": 7049, + "tribute": 7050, + "wells": 7051, + "attending": 7052, + "leaf": 7053, + "##yan": 7054, + "butler": 7055, + "romanian": 7056, + "forum": 7057, + "monthly": 7058, + "lisa": 7059, + "patterns": 7060, + "gmina": 7061, + "##tory": 7062, + "madison": 7063, + "hurricane": 7064, + "rev": 7065, + "##ians": 7066, + "bristol": 7067, + "##ula": 7068, + "elite": 7069, + "valuable": 7070, + "disaster": 7071, + "democracy": 7072, + "awareness": 7073, + "germans": 7074, + "freyja": 7075, + "##ins": 7076, + "loop": 7077, + "absolutely": 7078, + "paying": 7079, + "populations": 7080, + "maine": 7081, + "sole": 7082, + "prayer": 7083, + "spencer": 7084, + "releases": 7085, + "doorway": 7086, + "bull": 7087, + "##ani": 7088, + "lover": 7089, + "midnight": 7090, + "conclusion": 7091, + "##sson": 7092, + "thirteen": 7093, + "lily": 7094, + "mediterranean": 7095, + "##lt": 7096, + "nhl": 7097, + "proud": 7098, + "sample": 7099, + "##hill": 7100, + "drummer": 7101, + "guinea": 7102, + "##ova": 7103, + "murphy": 7104, + "climb": 7105, + "##ston": 7106, + "instant": 7107, + "attributed": 7108, + "horn": 7109, + "ain": 7110, + "railways": 7111, + "steven": 7112, + "##ao": 7113, + "autumn": 7114, + "ferry": 7115, + "opponent": 7116, + "root": 7117, + "traveling": 7118, + "secured": 7119, + "corridor": 7120, + "stretched": 7121, + "tales": 7122, + "sheet": 7123, + "trinity": 7124, + "cattle": 7125, + "helps": 7126, + "indicates": 7127, + "manhattan": 7128, + "murdered": 7129, + "fitted": 7130, + "1882": 7131, + "gentle": 7132, + "grandmother": 7133, + "mines": 7134, + "shocked": 7135, + "vegas": 7136, + "produces": 7137, + "##light": 7138, + "caribbean": 7139, + "##ou": 7140, + "belong": 7141, + "continuous": 7142, + "desperate": 7143, + "drunk": 7144, + "historically": 7145, + "trio": 7146, + "waved": 7147, + "raf": 7148, + "dealing": 7149, + "nathan": 7150, + "bat": 7151, + "murmured": 7152, + "interrupted": 7153, + "residing": 7154, + "scientist": 7155, + "pioneer": 7156, + "harold": 7157, + "aaron": 7158, + "##net": 7159, + "delta": 7160, + "attempting": 7161, + "minority": 7162, + "mini": 7163, + "believes": 7164, + "chorus": 7165, + "tend": 7166, + "lots": 7167, + "eyed": 7168, + "indoor": 7169, + "load": 7170, + "shots": 7171, + "updated": 7172, + "jail": 7173, + "##llo": 7174, + "concerning": 7175, + "connecting": 7176, + "wealth": 7177, + "##ved": 7178, + "slaves": 7179, + "arrive": 7180, + "rangers": 7181, + "sufficient": 7182, + "rebuilt": 7183, + "##wick": 7184, + "cardinal": 7185, + "flood": 7186, + "muhammad": 7187, + "whenever": 7188, + "relation": 7189, + "runners": 7190, + "moral": 7191, + "repair": 7192, + "viewers": 7193, + "arriving": 7194, + "revenge": 7195, + "punk": 7196, + "assisted": 7197, + "bath": 7198, + "fairly": 7199, + "breathe": 7200, + "lists": 7201, + "innings": 7202, + "illustrated": 7203, + "whisper": 7204, + "nearest": 7205, + "voters": 7206, + "clinton": 7207, + "ties": 7208, + "ultimate": 7209, + "screamed": 7210, + "beijing": 7211, + "lions": 7212, + "andre": 7213, + "fictional": 7214, + "gathering": 7215, + "comfort": 7216, + "radar": 7217, + "suitable": 7218, + "dismissed": 7219, + "hms": 7220, + "ban": 7221, + "pine": 7222, + "wrist": 7223, + "atmosphere": 7224, + "voivodeship": 7225, + "bid": 7226, + "timber": 7227, + "##ned": 7228, + "##nan": 7229, + "giants": 7230, + "##ane": 7231, + "cameron": 7232, + "recovery": 7233, + "uss": 7234, + "identical": 7235, + "categories": 7236, + "switched": 7237, + "serbia": 7238, + "laughter": 7239, + "noah": 7240, + "ensemble": 7241, + "therapy": 7242, + "peoples": 7243, + "touching": 7244, + "##off": 7245, + "locally": 7246, + "pearl": 7247, + "platforms": 7248, + "everywhere": 7249, + "ballet": 7250, + "tables": 7251, + "lanka": 7252, + "herbert": 7253, + "outdoor": 7254, + "toured": 7255, + "derek": 7256, + "1883": 7257, + "spaces": 7258, + "contested": 7259, + "swept": 7260, + "1878": 7261, + "exclusive": 7262, + "slight": 7263, + "connections": 7264, + "##dra": 7265, + "winds": 7266, + "prisoner": 7267, + "collective": 7268, + "bangladesh": 7269, + "tube": 7270, + "publicly": 7271, + "wealthy": 7272, + "thai": 7273, + "##ys": 7274, + "isolated": 7275, + "select": 7276, + "##ric": 7277, + "insisted": 7278, + "pen": 7279, + "fortune": 7280, + "ticket": 7281, + "spotted": 7282, + "reportedly": 7283, + "animation": 7284, + "enforcement": 7285, + "tanks": 7286, + "110": 7287, + "decides": 7288, + "wider": 7289, + "lowest": 7290, + "owen": 7291, + "##time": 7292, + "nod": 7293, + "hitting": 7294, + "##hn": 7295, + "gregory": 7296, + "furthermore": 7297, + "magazines": 7298, + "fighters": 7299, + "solutions": 7300, + "##ery": 7301, + "pointing": 7302, + "requested": 7303, + "peru": 7304, + "reed": 7305, + "chancellor": 7306, + "knights": 7307, + "mask": 7308, + "worker": 7309, + "eldest": 7310, + "flames": 7311, + "reduction": 7312, + "1860": 7313, + "volunteers": 7314, + "##tis": 7315, + "reporting": 7316, + "##hl": 7317, + "wire": 7318, + "advisory": 7319, + "endemic": 7320, + "origins": 7321, + "settlers": 7322, + "pursue": 7323, + "knock": 7324, + "consumer": 7325, + "1876": 7326, + "eu": 7327, + "compound": 7328, + "creatures": 7329, + "mansion": 7330, + "sentenced": 7331, + "ivan": 7332, + "deployed": 7333, + "guitars": 7334, + "frowned": 7335, + "involves": 7336, + "mechanism": 7337, + "kilometers": 7338, + "perspective": 7339, + "shops": 7340, + "maps": 7341, + "terminus": 7342, + "duncan": 7343, + "alien": 7344, + "fist": 7345, + "bridges": 7346, + "##pers": 7347, + "heroes": 7348, + "fed": 7349, + "derby": 7350, + "swallowed": 7351, + "##ros": 7352, + "patent": 7353, + "sara": 7354, + "illness": 7355, + "characterized": 7356, + "adventures": 7357, + "slide": 7358, + "hawaii": 7359, + "jurisdiction": 7360, + "##op": 7361, + "organised": 7362, + "##side": 7363, + "adelaide": 7364, + "walks": 7365, + "biology": 7366, + "se": 7367, + "##ties": 7368, + "rogers": 7369, + "swing": 7370, + "tightly": 7371, + "boundaries": 7372, + "##rie": 7373, + "prepare": 7374, + "implementation": 7375, + "stolen": 7376, + "##sha": 7377, + "certified": 7378, + "colombia": 7379, + "edwards": 7380, + "garage": 7381, + "##mm": 7382, + "recalled": 7383, + "##ball": 7384, + "rage": 7385, + "harm": 7386, + "nigeria": 7387, + "breast": 7388, + "##ren": 7389, + "furniture": 7390, + "pupils": 7391, + "settle": 7392, + "##lus": 7393, + "cuba": 7394, + "balls": 7395, + "client": 7396, + "alaska": 7397, + "21st": 7398, + "linear": 7399, + "thrust": 7400, + "celebration": 7401, + "latino": 7402, + "genetic": 7403, + "terror": 7404, + "##cia": 7405, + "##ening": 7406, + "lightning": 7407, + "fee": 7408, + "witness": 7409, + "lodge": 7410, + "establishing": 7411, + "skull": 7412, + "##ique": 7413, + "earning": 7414, + "hood": 7415, + "##ei": 7416, + "rebellion": 7417, + "wang": 7418, + "sporting": 7419, + "warned": 7420, + "missile": 7421, + "devoted": 7422, + "activist": 7423, + "porch": 7424, + "worship": 7425, + "fourteen": 7426, + "package": 7427, + "1871": 7428, + "decorated": 7429, + "##shire": 7430, + "housed": 7431, + "##ock": 7432, + "chess": 7433, + "sailed": 7434, + "doctors": 7435, + "oscar": 7436, + "joan": 7437, + "treat": 7438, + "garcia": 7439, + "harbour": 7440, + "jeremy": 7441, + "##ire": 7442, + "traditions": 7443, + "dominant": 7444, + "jacques": 7445, + "##gon": 7446, + "##wan": 7447, + "relocated": 7448, + "1879": 7449, + "amendment": 7450, + "sized": 7451, + "companion": 7452, + "simultaneously": 7453, + "volleyball": 7454, + "spun": 7455, + "acre": 7456, + "increases": 7457, + "stopping": 7458, + "loves": 7459, + "belongs": 7460, + "affect": 7461, + "drafted": 7462, + "tossed": 7463, + "scout": 7464, + "battles": 7465, + "1875": 7466, + "filming": 7467, + "shoved": 7468, + "munich": 7469, + "tenure": 7470, + "vertical": 7471, + "romance": 7472, + "pc": 7473, + "##cher": 7474, + "argue": 7475, + "##ical": 7476, + "craft": 7477, + "ranging": 7478, + "www": 7479, + "opens": 7480, + "honest": 7481, + "tyler": 7482, + "yesterday": 7483, + "virtual": 7484, + "##let": 7485, + "muslims": 7486, + "reveal": 7487, + "snake": 7488, + "immigrants": 7489, + "radical": 7490, + "screaming": 7491, + "speakers": 7492, + "firing": 7493, + "saving": 7494, + "belonging": 7495, + "ease": 7496, + "lighting": 7497, + "prefecture": 7498, + "blame": 7499, + "farmer": 7500, + "hungry": 7501, + "grows": 7502, + "rubbed": 7503, + "beam": 7504, + "sur": 7505, + "subsidiary": 7506, + "##cha": 7507, + "armenian": 7508, + "sao": 7509, + "dropping": 7510, + "conventional": 7511, + "##fer": 7512, + "microsoft": 7513, + "reply": 7514, + "qualify": 7515, + "spots": 7516, + "1867": 7517, + "sweat": 7518, + "festivals": 7519, + "##ken": 7520, + "immigration": 7521, + "physician": 7522, + "discover": 7523, + "exposure": 7524, + "sandy": 7525, + "explanation": 7526, + "isaac": 7527, + "implemented": 7528, + "##fish": 7529, + "hart": 7530, + "initiated": 7531, + "connect": 7532, + "stakes": 7533, + "presents": 7534, + "heights": 7535, + "householder": 7536, + "pleased": 7537, + "tourist": 7538, + "regardless": 7539, + "slip": 7540, + "closest": 7541, + "##ction": 7542, + "surely": 7543, + "sultan": 7544, + "brings": 7545, + "riley": 7546, + "preparation": 7547, + "aboard": 7548, + "slammed": 7549, + "baptist": 7550, + "experiment": 7551, + "ongoing": 7552, + "interstate": 7553, + "organic": 7554, + "playoffs": 7555, + "##ika": 7556, + "1877": 7557, + "130": 7558, + "##tar": 7559, + "hindu": 7560, + "error": 7561, + "tours": 7562, + "tier": 7563, + "plenty": 7564, + "arrangements": 7565, + "talks": 7566, + "trapped": 7567, + "excited": 7568, + "sank": 7569, + "ho": 7570, + "athens": 7571, + "1872": 7572, + "denver": 7573, + "welfare": 7574, + "suburb": 7575, + "athletes": 7576, + "trick": 7577, + "diverse": 7578, + "belly": 7579, + "exclusively": 7580, + "yelled": 7581, + "1868": 7582, + "##med": 7583, + "conversion": 7584, + "##ette": 7585, + "1874": 7586, + "internationally": 7587, + "computers": 7588, + "conductor": 7589, + "abilities": 7590, + "sensitive": 7591, + "hello": 7592, + "dispute": 7593, + "measured": 7594, + "globe": 7595, + "rocket": 7596, + "prices": 7597, + "amsterdam": 7598, + "flights": 7599, + "tigers": 7600, + "inn": 7601, + "municipalities": 7602, + "emotion": 7603, + "references": 7604, + "3d": 7605, + "##mus": 7606, + "explains": 7607, + "airlines": 7608, + "manufactured": 7609, + "pm": 7610, + "archaeological": 7611, + "1873": 7612, + "interpretation": 7613, + "devon": 7614, + "comment": 7615, + "##ites": 7616, + "settlements": 7617, + "kissing": 7618, + "absolute": 7619, + "improvement": 7620, + "suite": 7621, + "impressed": 7622, + "barcelona": 7623, + "sullivan": 7624, + "jefferson": 7625, + "towers": 7626, + "jesse": 7627, + "julie": 7628, + "##tin": 7629, + "##lu": 7630, + "grandson": 7631, + "hi": 7632, + "gauge": 7633, + "regard": 7634, + "rings": 7635, + "interviews": 7636, + "trace": 7637, + "raymond": 7638, + "thumb": 7639, + "departments": 7640, + "burns": 7641, + "serial": 7642, + "bulgarian": 7643, + "scores": 7644, + "demonstrated": 7645, + "##ix": 7646, + "1866": 7647, + "kyle": 7648, + "alberta": 7649, + "underneath": 7650, + "romanized": 7651, + "##ward": 7652, + "relieved": 7653, + "acquisition": 7654, + "phrase": 7655, + "cliff": 7656, + "reveals": 7657, + "han": 7658, + "cuts": 7659, + "merger": 7660, + "custom": 7661, + "##dar": 7662, + "nee": 7663, + "gilbert": 7664, + "graduation": 7665, + "##nts": 7666, + "assessment": 7667, + "cafe": 7668, + "difficulty": 7669, + "demands": 7670, + "swung": 7671, + "democrat": 7672, + "jennifer": 7673, + "commons": 7674, + "1940s": 7675, + "grove": 7676, + "##yo": 7677, + "completing": 7678, + "focuses": 7679, + "sum": 7680, + "substitute": 7681, + "bearing": 7682, + "stretch": 7683, + "reception": 7684, + "##py": 7685, + "reflected": 7686, + "essentially": 7687, + "destination": 7688, + "pairs": 7689, + "##ched": 7690, + "survival": 7691, + "resource": 7692, + "##bach": 7693, + "promoting": 7694, + "doubles": 7695, + "messages": 7696, + "tear": 7697, + "##down": 7698, + "##fully": 7699, + "parade": 7700, + "florence": 7701, + "harvey": 7702, + "incumbent": 7703, + "partial": 7704, + "framework": 7705, + "900": 7706, + "pedro": 7707, + "frozen": 7708, + "procedure": 7709, + "olivia": 7710, + "controls": 7711, + "##mic": 7712, + "shelter": 7713, + "personally": 7714, + "temperatures": 7715, + "##od": 7716, + "brisbane": 7717, + "tested": 7718, + "sits": 7719, + "marble": 7720, + "comprehensive": 7721, + "oxygen": 7722, + "leonard": 7723, + "##kov": 7724, + "inaugural": 7725, + "iranian": 7726, + "referring": 7727, + "quarters": 7728, + "attitude": 7729, + "##ivity": 7730, + "mainstream": 7731, + "lined": 7732, + "mars": 7733, + "dakota": 7734, + "norfolk": 7735, + "unsuccessful": 7736, + "##°": 7737, + "explosion": 7738, + "helicopter": 7739, + "congressional": 7740, + "##sing": 7741, + "inspector": 7742, + "bitch": 7743, + "seal": 7744, + "departed": 7745, + "divine": 7746, + "##ters": 7747, + "coaching": 7748, + "examination": 7749, + "punishment": 7750, + "manufacturer": 7751, + "sink": 7752, + "columns": 7753, + "unincorporated": 7754, + "signals": 7755, + "nevada": 7756, + "squeezed": 7757, + "dylan": 7758, + "dining": 7759, + "photos": 7760, + "martial": 7761, + "manuel": 7762, + "eighteen": 7763, + "elevator": 7764, + "brushed": 7765, + "plates": 7766, + "ministers": 7767, + "ivy": 7768, + "congregation": 7769, + "##len": 7770, + "slept": 7771, + "specialized": 7772, + "taxes": 7773, + "curve": 7774, + "restricted": 7775, + "negotiations": 7776, + "likes": 7777, + "statistical": 7778, + "arnold": 7779, + "inspiration": 7780, + "execution": 7781, + "bold": 7782, + "intermediate": 7783, + "significance": 7784, + "margin": 7785, + "ruler": 7786, + "wheels": 7787, + "gothic": 7788, + "intellectual": 7789, + "dependent": 7790, + "listened": 7791, + "eligible": 7792, + "buses": 7793, + "widow": 7794, + "syria": 7795, + "earn": 7796, + "cincinnati": 7797, + "collapsed": 7798, + "recipient": 7799, + "secrets": 7800, + "accessible": 7801, + "philippine": 7802, + "maritime": 7803, + "goddess": 7804, + "clerk": 7805, + "surrender": 7806, + "breaks": 7807, + "playoff": 7808, + "database": 7809, + "##ified": 7810, + "##lon": 7811, + "ideal": 7812, + "beetle": 7813, + "aspect": 7814, + "soap": 7815, + "regulation": 7816, + "strings": 7817, + "expand": 7818, + "anglo": 7819, + "shorter": 7820, + "crosses": 7821, + "retreat": 7822, + "tough": 7823, + "coins": 7824, + "wallace": 7825, + "directions": 7826, + "pressing": 7827, + "##oon": 7828, + "shipping": 7829, + "locomotives": 7830, + "comparison": 7831, + "topics": 7832, + "nephew": 7833, + "##mes": 7834, + "distinction": 7835, + "honors": 7836, + "travelled": 7837, + "sierra": 7838, + "ibn": 7839, + "##over": 7840, + "fortress": 7841, + "sa": 7842, + "recognised": 7843, + "carved": 7844, + "1869": 7845, + "clients": 7846, + "##dan": 7847, + "intent": 7848, + "##mar": 7849, + "coaches": 7850, + "describing": 7851, + "bread": 7852, + "##ington": 7853, + "beaten": 7854, + "northwestern": 7855, + "##ona": 7856, + "merit": 7857, + "youtube": 7858, + "collapse": 7859, + "challenges": 7860, + "em": 7861, + "historians": 7862, + "objective": 7863, + "submitted": 7864, + "virus": 7865, + "attacking": 7866, + "drake": 7867, + "assume": 7868, + "##ere": 7869, + "diseases": 7870, + "marc": 7871, + "stem": 7872, + "leeds": 7873, + "##cus": 7874, + "##ab": 7875, + "farming": 7876, + "glasses": 7877, + "##lock": 7878, + "visits": 7879, + "nowhere": 7880, + "fellowship": 7881, + "relevant": 7882, + "carries": 7883, + "restaurants": 7884, + "experiments": 7885, + "101": 7886, + "constantly": 7887, + "bases": 7888, + "targets": 7889, + "shah": 7890, + "tenth": 7891, + "opponents": 7892, + "verse": 7893, + "territorial": 7894, + "##ira": 7895, + "writings": 7896, + "corruption": 7897, + "##hs": 7898, + "instruction": 7899, + "inherited": 7900, + "reverse": 7901, + "emphasis": 7902, + "##vic": 7903, + "employee": 7904, + "arch": 7905, + "keeps": 7906, + "rabbi": 7907, + "watson": 7908, + "payment": 7909, + "uh": 7910, + "##ala": 7911, + "nancy": 7912, + "##tre": 7913, + "venice": 7914, + "fastest": 7915, + "sexy": 7916, + "banned": 7917, + "adrian": 7918, + "properly": 7919, + "ruth": 7920, + "touchdown": 7921, + "dollar": 7922, + "boards": 7923, + "metre": 7924, + "circles": 7925, + "edges": 7926, + "favour": 7927, + "comments": 7928, + "ok": 7929, + "travels": 7930, + "liberation": 7931, + "scattered": 7932, + "firmly": 7933, + "##ular": 7934, + "holland": 7935, + "permitted": 7936, + "diesel": 7937, + "kenya": 7938, + "den": 7939, + "originated": 7940, + "##ral": 7941, + "demons": 7942, + "resumed": 7943, + "dragged": 7944, + "rider": 7945, + "##rus": 7946, + "servant": 7947, + "blinked": 7948, + "extend": 7949, + "torn": 7950, + "##ias": 7951, + "##sey": 7952, + "input": 7953, + "meal": 7954, + "everybody": 7955, + "cylinder": 7956, + "kinds": 7957, + "camps": 7958, + "##fe": 7959, + "bullet": 7960, + "logic": 7961, + "##wn": 7962, + "croatian": 7963, + "evolved": 7964, + "healthy": 7965, + "fool": 7966, + "chocolate": 7967, + "wise": 7968, + "preserve": 7969, + "pradesh": 7970, + "##ess": 7971, + "respective": 7972, + "1850": 7973, + "##ew": 7974, + "chicken": 7975, + "artificial": 7976, + "gross": 7977, + "corresponding": 7978, + "convicted": 7979, + "cage": 7980, + "caroline": 7981, + "dialogue": 7982, + "##dor": 7983, + "narrative": 7984, + "stranger": 7985, + "mario": 7986, + "br": 7987, + "christianity": 7988, + "failing": 7989, + "trent": 7990, + "commanding": 7991, + "buddhist": 7992, + "1848": 7993, + "maurice": 7994, + "focusing": 7995, + "yale": 7996, + "bike": 7997, + "altitude": 7998, + "##ering": 7999, + "mouse": 8000, + "revised": 8001, + "##sley": 8002, + "veteran": 8003, + "##ig": 8004, + "pulls": 8005, + "theology": 8006, + "crashed": 8007, + "campaigns": 8008, + "legion": 8009, + "##ability": 8010, + "drag": 8011, + "excellence": 8012, + "customer": 8013, + "cancelled": 8014, + "intensity": 8015, + "excuse": 8016, + "##lar": 8017, + "liga": 8018, + "participating": 8019, + "contributing": 8020, + "printing": 8021, + "##burn": 8022, + "variable": 8023, + "##rk": 8024, + "curious": 8025, + "bin": 8026, + "legacy": 8027, + "renaissance": 8028, + "##my": 8029, + "symptoms": 8030, + "binding": 8031, + "vocalist": 8032, + "dancer": 8033, + "##nie": 8034, + "grammar": 8035, + "gospel": 8036, + "democrats": 8037, + "ya": 8038, + "enters": 8039, + "sc": 8040, + "diplomatic": 8041, + "hitler": 8042, + "##ser": 8043, + "clouds": 8044, + "mathematical": 8045, + "quit": 8046, + "defended": 8047, + "oriented": 8048, + "##heim": 8049, + "fundamental": 8050, + "hardware": 8051, + "impressive": 8052, + "equally": 8053, + "convince": 8054, + "confederate": 8055, + "guilt": 8056, + "chuck": 8057, + "sliding": 8058, + "##ware": 8059, + "magnetic": 8060, + "narrowed": 8061, + "petersburg": 8062, + "bulgaria": 8063, + "otto": 8064, + "phd": 8065, + "skill": 8066, + "##ama": 8067, + "reader": 8068, + "hopes": 8069, + "pitcher": 8070, + "reservoir": 8071, + "hearts": 8072, + "automatically": 8073, + "expecting": 8074, + "mysterious": 8075, + "bennett": 8076, + "extensively": 8077, + "imagined": 8078, + "seeds": 8079, + "monitor": 8080, + "fix": 8081, + "##ative": 8082, + "journalism": 8083, + "struggling": 8084, + "signature": 8085, + "ranch": 8086, + "encounter": 8087, + "photographer": 8088, + "observation": 8089, + "protests": 8090, + "##pin": 8091, + "influences": 8092, + "##hr": 8093, + "calendar": 8094, + "##all": 8095, + "cruz": 8096, + "croatia": 8097, + "locomotive": 8098, + "hughes": 8099, + "naturally": 8100, + "shakespeare": 8101, + "basement": 8102, + "hook": 8103, + "uncredited": 8104, + "faded": 8105, + "theories": 8106, + "approaches": 8107, + "dare": 8108, + "phillips": 8109, + "filling": 8110, + "fury": 8111, + "obama": 8112, + "##ain": 8113, + "efficient": 8114, + "arc": 8115, + "deliver": 8116, + "min": 8117, + "raid": 8118, + "breeding": 8119, + "inducted": 8120, + "leagues": 8121, + "efficiency": 8122, + "axis": 8123, + "montana": 8124, + "eagles": 8125, + "##ked": 8126, + "supplied": 8127, + "instructions": 8128, + "karen": 8129, + "picking": 8130, + "indicating": 8131, + "trap": 8132, + "anchor": 8133, + "practically": 8134, + "christians": 8135, + "tomb": 8136, + "vary": 8137, + "occasional": 8138, + "electronics": 8139, + "lords": 8140, + "readers": 8141, + "newcastle": 8142, + "faint": 8143, + "innovation": 8144, + "collect": 8145, + "situations": 8146, + "engagement": 8147, + "160": 8148, + "claude": 8149, + "mixture": 8150, + "##feld": 8151, + "peer": 8152, + "tissue": 8153, + "logo": 8154, + "lean": 8155, + "##ration": 8156, + "°f": 8157, + "floors": 8158, + "##ven": 8159, + "architects": 8160, + "reducing": 8161, + "##our": 8162, + "##ments": 8163, + "rope": 8164, + "1859": 8165, + "ottawa": 8166, + "##har": 8167, + "samples": 8168, + "banking": 8169, + "declaration": 8170, + "proteins": 8171, + "resignation": 8172, + "francois": 8173, + "saudi": 8174, + "advocate": 8175, + "exhibited": 8176, + "armor": 8177, + "twins": 8178, + "divorce": 8179, + "##ras": 8180, + "abraham": 8181, + "reviewed": 8182, + "jo": 8183, + "temporarily": 8184, + "matrix": 8185, + "physically": 8186, + "pulse": 8187, + "curled": 8188, + "##ena": 8189, + "difficulties": 8190, + "bengal": 8191, + "usage": 8192, + "##ban": 8193, + "annie": 8194, + "riders": 8195, + "certificate": 8196, + "##pi": 8197, + "holes": 8198, + "warsaw": 8199, + "distinctive": 8200, + "jessica": 8201, + "##mon": 8202, + "mutual": 8203, + "1857": 8204, + "customs": 8205, + "circular": 8206, + "eugene": 8207, + "removal": 8208, + "loaded": 8209, + "mere": 8210, + "vulnerable": 8211, + "depicted": 8212, + "generations": 8213, + "dame": 8214, + "heir": 8215, + "enormous": 8216, + "lightly": 8217, + "climbing": 8218, + "pitched": 8219, + "lessons": 8220, + "pilots": 8221, + "nepal": 8222, + "ram": 8223, + "google": 8224, + "preparing": 8225, + "brad": 8226, + "louise": 8227, + "renowned": 8228, + "##₂": 8229, + "liam": 8230, + "##ably": 8231, + "plaza": 8232, + "shaw": 8233, + "sophie": 8234, + "brilliant": 8235, + "bills": 8236, + "##bar": 8237, + "##nik": 8238, + "fucking": 8239, + "mainland": 8240, + "server": 8241, + "pleasant": 8242, + "seized": 8243, + "veterans": 8244, + "jerked": 8245, + "fail": 8246, + "beta": 8247, + "brush": 8248, + "radiation": 8249, + "stored": 8250, + "warmth": 8251, + "southeastern": 8252, + "nate": 8253, + "sin": 8254, + "raced": 8255, + "berkeley": 8256, + "joke": 8257, + "athlete": 8258, + "designation": 8259, + "trunk": 8260, + "##low": 8261, + "roland": 8262, + "qualification": 8263, + "archives": 8264, + "heels": 8265, + "artwork": 8266, + "receives": 8267, + "judicial": 8268, + "reserves": 8269, + "##bed": 8270, + "woke": 8271, + "installation": 8272, + "abu": 8273, + "floating": 8274, + "fake": 8275, + "lesser": 8276, + "excitement": 8277, + "interface": 8278, + "concentrated": 8279, + "addressed": 8280, + "characteristic": 8281, + "amanda": 8282, + "saxophone": 8283, + "monk": 8284, + "auto": 8285, + "##bus": 8286, + "releasing": 8287, + "egg": 8288, + "dies": 8289, + "interaction": 8290, + "defender": 8291, + "ce": 8292, + "outbreak": 8293, + "glory": 8294, + "loving": 8295, + "##bert": 8296, + "sequel": 8297, + "consciousness": 8298, + "http": 8299, + "awake": 8300, + "ski": 8301, + "enrolled": 8302, + "##ress": 8303, + "handling": 8304, + "rookie": 8305, + "brow": 8306, + "somebody": 8307, + "biography": 8308, + "warfare": 8309, + "amounts": 8310, + "contracts": 8311, + "presentation": 8312, + "fabric": 8313, + "dissolved": 8314, + "challenged": 8315, + "meter": 8316, + "psychological": 8317, + "lt": 8318, + "elevated": 8319, + "rally": 8320, + "accurate": 8321, + "##tha": 8322, + "hospitals": 8323, + "undergraduate": 8324, + "specialist": 8325, + "venezuela": 8326, + "exhibit": 8327, + "shed": 8328, + "nursing": 8329, + "protestant": 8330, + "fluid": 8331, + "structural": 8332, + "footage": 8333, + "jared": 8334, + "consistent": 8335, + "prey": 8336, + "##ska": 8337, + "succession": 8338, + "reflect": 8339, + "exile": 8340, + "lebanon": 8341, + "wiped": 8342, + "suspect": 8343, + "shanghai": 8344, + "resting": 8345, + "integration": 8346, + "preservation": 8347, + "marvel": 8348, + "variant": 8349, + "pirates": 8350, + "sheep": 8351, + "rounded": 8352, + "capita": 8353, + "sailing": 8354, + "colonies": 8355, + "manuscript": 8356, + "deemed": 8357, + "variations": 8358, + "clarke": 8359, + "functional": 8360, + "emerging": 8361, + "boxing": 8362, + "relaxed": 8363, + "curse": 8364, + "azerbaijan": 8365, + "heavyweight": 8366, + "nickname": 8367, + "editorial": 8368, + "rang": 8369, + "grid": 8370, + "tightened": 8371, + "earthquake": 8372, + "flashed": 8373, + "miguel": 8374, + "rushing": 8375, + "##ches": 8376, + "improvements": 8377, + "boxes": 8378, + "brooks": 8379, + "180": 8380, + "consumption": 8381, + "molecular": 8382, + "felix": 8383, + "societies": 8384, + "repeatedly": 8385, + "variation": 8386, + "aids": 8387, + "civic": 8388, + "graphics": 8389, + "professionals": 8390, + "realm": 8391, + "autonomous": 8392, + "receiver": 8393, + "delayed": 8394, + "workshop": 8395, + "militia": 8396, + "chairs": 8397, + "trump": 8398, + "canyon": 8399, + "##point": 8400, + "harsh": 8401, + "extending": 8402, + "lovely": 8403, + "happiness": 8404, + "##jan": 8405, + "stake": 8406, + "eyebrows": 8407, + "embassy": 8408, + "wellington": 8409, + "hannah": 8410, + "##ella": 8411, + "sony": 8412, + "corners": 8413, + "bishops": 8414, + "swear": 8415, + "cloth": 8416, + "contents": 8417, + "xi": 8418, + "namely": 8419, + "commenced": 8420, + "1854": 8421, + "stanford": 8422, + "nashville": 8423, + "courage": 8424, + "graphic": 8425, + "commitment": 8426, + "garrison": 8427, + "##bin": 8428, + "hamlet": 8429, + "clearing": 8430, + "rebels": 8431, + "attraction": 8432, + "literacy": 8433, + "cooking": 8434, + "ruins": 8435, + "temples": 8436, + "jenny": 8437, + "humanity": 8438, + "celebrate": 8439, + "hasn": 8440, + "freight": 8441, + "sixty": 8442, + "rebel": 8443, + "bastard": 8444, + "##art": 8445, + "newton": 8446, + "##ada": 8447, + "deer": 8448, + "##ges": 8449, + "##ching": 8450, + "smiles": 8451, + "delaware": 8452, + "singers": 8453, + "##ets": 8454, + "approaching": 8455, + "assists": 8456, + "flame": 8457, + "##ph": 8458, + "boulevard": 8459, + "barrel": 8460, + "planted": 8461, + "##ome": 8462, + "pursuit": 8463, + "##sia": 8464, + "consequences": 8465, + "posts": 8466, + "shallow": 8467, + "invitation": 8468, + "rode": 8469, + "depot": 8470, + "ernest": 8471, + "kane": 8472, + "rod": 8473, + "concepts": 8474, + "preston": 8475, + "topic": 8476, + "chambers": 8477, + "striking": 8478, + "blast": 8479, + "arrives": 8480, + "descendants": 8481, + "montgomery": 8482, + "ranges": 8483, + "worlds": 8484, + "##lay": 8485, + "##ari": 8486, + "span": 8487, + "chaos": 8488, + "praise": 8489, + "##ag": 8490, + "fewer": 8491, + "1855": 8492, + "sanctuary": 8493, + "mud": 8494, + "fbi": 8495, + "##ions": 8496, + "programmes": 8497, + "maintaining": 8498, + "unity": 8499, + "harper": 8500, + "bore": 8501, + "handsome": 8502, + "closure": 8503, + "tournaments": 8504, + "thunder": 8505, + "nebraska": 8506, + "linda": 8507, + "facade": 8508, + "puts": 8509, + "satisfied": 8510, + "argentine": 8511, + "dale": 8512, + "cork": 8513, + "dome": 8514, + "panama": 8515, + "##yl": 8516, + "1858": 8517, + "tasks": 8518, + "experts": 8519, + "##ates": 8520, + "feeding": 8521, + "equation": 8522, + "##las": 8523, + "##ida": 8524, + "##tu": 8525, + "engage": 8526, + "bryan": 8527, + "##ax": 8528, + "um": 8529, + "quartet": 8530, + "melody": 8531, + "disbanded": 8532, + "sheffield": 8533, + "blocked": 8534, + "gasped": 8535, + "delay": 8536, + "kisses": 8537, + "maggie": 8538, + "connects": 8539, + "##non": 8540, + "sts": 8541, + "poured": 8542, + "creator": 8543, + "publishers": 8544, + "##we": 8545, + "guided": 8546, + "ellis": 8547, + "extinct": 8548, + "hug": 8549, + "gaining": 8550, + "##ord": 8551, + "complicated": 8552, + "##bility": 8553, + "poll": 8554, + "clenched": 8555, + "investigate": 8556, + "##use": 8557, + "thereby": 8558, + "quantum": 8559, + "spine": 8560, + "cdp": 8561, + "humor": 8562, + "kills": 8563, + "administered": 8564, + "semifinals": 8565, + "##du": 8566, + "encountered": 8567, + "ignore": 8568, + "##bu": 8569, + "commentary": 8570, + "##maker": 8571, + "bother": 8572, + "roosevelt": 8573, + "140": 8574, + "plains": 8575, + "halfway": 8576, + "flowing": 8577, + "cultures": 8578, + "crack": 8579, + "imprisoned": 8580, + "neighboring": 8581, + "airline": 8582, + "##ses": 8583, + "##view": 8584, + "##mate": 8585, + "##ec": 8586, + "gather": 8587, + "wolves": 8588, + "marathon": 8589, + "transformed": 8590, + "##ill": 8591, + "cruise": 8592, + "organisations": 8593, + "carol": 8594, + "punch": 8595, + "exhibitions": 8596, + "numbered": 8597, + "alarm": 8598, + "ratings": 8599, + "daddy": 8600, + "silently": 8601, + "##stein": 8602, + "queens": 8603, + "colours": 8604, + "impression": 8605, + "guidance": 8606, + "liu": 8607, + "tactical": 8608, + "##rat": 8609, + "marshal": 8610, + "della": 8611, + "arrow": 8612, + "##ings": 8613, + "rested": 8614, + "feared": 8615, + "tender": 8616, + "owns": 8617, + "bitter": 8618, + "advisor": 8619, + "escort": 8620, + "##ides": 8621, + "spare": 8622, + "farms": 8623, + "grants": 8624, + "##ene": 8625, + "dragons": 8626, + "encourage": 8627, + "colleagues": 8628, + "cameras": 8629, + "##und": 8630, + "sucked": 8631, + "pile": 8632, + "spirits": 8633, + "prague": 8634, + "statements": 8635, + "suspension": 8636, + "landmark": 8637, + "fence": 8638, + "torture": 8639, + "recreation": 8640, + "bags": 8641, + "permanently": 8642, + "survivors": 8643, + "pond": 8644, + "spy": 8645, + "predecessor": 8646, + "bombing": 8647, + "coup": 8648, + "##og": 8649, + "protecting": 8650, + "transformation": 8651, + "glow": 8652, + "##lands": 8653, + "##book": 8654, + "dug": 8655, + "priests": 8656, + "andrea": 8657, + "feat": 8658, + "barn": 8659, + "jumping": 8660, + "##chen": 8661, + "##ologist": 8662, + "##con": 8663, + "casualties": 8664, + "stern": 8665, + "auckland": 8666, + "pipe": 8667, + "serie": 8668, + "revealing": 8669, + "ba": 8670, + "##bel": 8671, + "trevor": 8672, + "mercy": 8673, + "spectrum": 8674, + "yang": 8675, + "consist": 8676, + "governing": 8677, + "collaborated": 8678, + "possessed": 8679, + "epic": 8680, + "comprises": 8681, + "blew": 8682, + "shane": 8683, + "##ack": 8684, + "lopez": 8685, + "honored": 8686, + "magical": 8687, + "sacrifice": 8688, + "judgment": 8689, + "perceived": 8690, + "hammer": 8691, + "mtv": 8692, + "baronet": 8693, + "tune": 8694, + "das": 8695, + "missionary": 8696, + "sheets": 8697, + "350": 8698, + "neutral": 8699, + "oral": 8700, + "threatening": 8701, + "attractive": 8702, + "shade": 8703, + "aims": 8704, + "seminary": 8705, + "##master": 8706, + "estates": 8707, + "1856": 8708, + "michel": 8709, + "wounds": 8710, + "refugees": 8711, + "manufacturers": 8712, + "##nic": 8713, + "mercury": 8714, + "syndrome": 8715, + "porter": 8716, + "##iya": 8717, + "##din": 8718, + "hamburg": 8719, + "identification": 8720, + "upstairs": 8721, + "purse": 8722, + "widened": 8723, + "pause": 8724, + "cared": 8725, + "breathed": 8726, + "affiliate": 8727, + "santiago": 8728, + "prevented": 8729, + "celtic": 8730, + "fisher": 8731, + "125": 8732, + "recruited": 8733, + "byzantine": 8734, + "reconstruction": 8735, + "farther": 8736, + "##mp": 8737, + "diet": 8738, + "sake": 8739, + "au": 8740, + "spite": 8741, + "sensation": 8742, + "##ert": 8743, + "blank": 8744, + "separation": 8745, + "105": 8746, + "##hon": 8747, + "vladimir": 8748, + "armies": 8749, + "anime": 8750, + "##lie": 8751, + "accommodate": 8752, + "orbit": 8753, + "cult": 8754, + "sofia": 8755, + "archive": 8756, + "##ify": 8757, + "##box": 8758, + "founders": 8759, + "sustained": 8760, + "disorder": 8761, + "honours": 8762, + "northeastern": 8763, + "mia": 8764, + "crops": 8765, + "violet": 8766, + "threats": 8767, + "blanket": 8768, + "fires": 8769, + "canton": 8770, + "followers": 8771, + "southwestern": 8772, + "prototype": 8773, + "voyage": 8774, + "assignment": 8775, + "altered": 8776, + "moderate": 8777, + "protocol": 8778, + "pistol": 8779, + "##eo": 8780, + "questioned": 8781, + "brass": 8782, + "lifting": 8783, + "1852": 8784, + "math": 8785, + "authored": 8786, + "##ual": 8787, + "doug": 8788, + "dimensional": 8789, + "dynamic": 8790, + "##san": 8791, + "1851": 8792, + "pronounced": 8793, + "grateful": 8794, + "quest": 8795, + "uncomfortable": 8796, + "boom": 8797, + "presidency": 8798, + "stevens": 8799, + "relating": 8800, + "politicians": 8801, + "chen": 8802, + "barrier": 8803, + "quinn": 8804, + "diana": 8805, + "mosque": 8806, + "tribal": 8807, + "cheese": 8808, + "palmer": 8809, + "portions": 8810, + "sometime": 8811, + "chester": 8812, + "treasure": 8813, + "wu": 8814, + "bend": 8815, + "download": 8816, + "millions": 8817, + "reforms": 8818, + "registration": 8819, + "##osa": 8820, + "consequently": 8821, + "monitoring": 8822, + "ate": 8823, + "preliminary": 8824, + "brandon": 8825, + "invented": 8826, + "ps": 8827, + "eaten": 8828, + "exterior": 8829, + "intervention": 8830, + "ports": 8831, + "documented": 8832, + "log": 8833, + "displays": 8834, + "lecture": 8835, + "sally": 8836, + "favourite": 8837, + "##itz": 8838, + "vermont": 8839, + "lo": 8840, + "invisible": 8841, + "isle": 8842, + "breed": 8843, + "##ator": 8844, + "journalists": 8845, + "relay": 8846, + "speaks": 8847, + "backward": 8848, + "explore": 8849, + "midfielder": 8850, + "actively": 8851, + "stefan": 8852, + "procedures": 8853, + "cannon": 8854, + "blond": 8855, + "kenneth": 8856, + "centered": 8857, + "servants": 8858, + "chains": 8859, + "libraries": 8860, + "malcolm": 8861, + "essex": 8862, + "henri": 8863, + "slavery": 8864, + "##hal": 8865, + "facts": 8866, + "fairy": 8867, + "coached": 8868, + "cassie": 8869, + "cats": 8870, + "washed": 8871, + "cop": 8872, + "##fi": 8873, + "announcement": 8874, + "item": 8875, + "2000s": 8876, + "vinyl": 8877, + "activated": 8878, + "marco": 8879, + "frontier": 8880, + "growled": 8881, + "curriculum": 8882, + "##das": 8883, + "loyal": 8884, + "accomplished": 8885, + "leslie": 8886, + "ritual": 8887, + "kenny": 8888, + "##00": 8889, + "vii": 8890, + "napoleon": 8891, + "hollow": 8892, + "hybrid": 8893, + "jungle": 8894, + "stationed": 8895, + "friedrich": 8896, + "counted": 8897, + "##ulated": 8898, + "platinum": 8899, + "theatrical": 8900, + "seated": 8901, + "col": 8902, + "rubber": 8903, + "glen": 8904, + "1840": 8905, + "diversity": 8906, + "healing": 8907, + "extends": 8908, + "id": 8909, + "provisions": 8910, + "administrator": 8911, + "columbus": 8912, + "##oe": 8913, + "tributary": 8914, + "te": 8915, + "assured": 8916, + "org": 8917, + "##uous": 8918, + "prestigious": 8919, + "examined": 8920, + "lectures": 8921, + "grammy": 8922, + "ronald": 8923, + "associations": 8924, + "bailey": 8925, + "allan": 8926, + "essays": 8927, + "flute": 8928, + "believing": 8929, + "consultant": 8930, + "proceedings": 8931, + "travelling": 8932, + "1853": 8933, + "kit": 8934, + "kerala": 8935, + "yugoslavia": 8936, + "buddy": 8937, + "methodist": 8938, + "##ith": 8939, + "burial": 8940, + "centres": 8941, + "batman": 8942, + "##nda": 8943, + "discontinued": 8944, + "bo": 8945, + "dock": 8946, + "stockholm": 8947, + "lungs": 8948, + "severely": 8949, + "##nk": 8950, + "citing": 8951, + "manga": 8952, + "##ugh": 8953, + "steal": 8954, + "mumbai": 8955, + "iraqi": 8956, + "robot": 8957, + "celebrity": 8958, + "bride": 8959, + "broadcasts": 8960, + "abolished": 8961, + "pot": 8962, + "joel": 8963, + "overhead": 8964, + "franz": 8965, + "packed": 8966, + "reconnaissance": 8967, + "johann": 8968, + "acknowledged": 8969, + "introduce": 8970, + "handled": 8971, + "doctorate": 8972, + "developments": 8973, + "drinks": 8974, + "alley": 8975, + "palestine": 8976, + "##nis": 8977, + "##aki": 8978, + "proceeded": 8979, + "recover": 8980, + "bradley": 8981, + "grain": 8982, + "patch": 8983, + "afford": 8984, + "infection": 8985, + "nationalist": 8986, + "legendary": 8987, + "##ath": 8988, + "interchange": 8989, + "virtually": 8990, + "gen": 8991, + "gravity": 8992, + "exploration": 8993, + "amber": 8994, + "vital": 8995, + "wishes": 8996, + "powell": 8997, + "doctrine": 8998, + "elbow": 8999, + "screenplay": 9000, + "##bird": 9001, + "contribute": 9002, + "indonesian": 9003, + "pet": 9004, + "creates": 9005, + "##com": 9006, + "enzyme": 9007, + "kylie": 9008, + "discipline": 9009, + "drops": 9010, + "manila": 9011, + "hunger": 9012, + "##ien": 9013, + "layers": 9014, + "suffer": 9015, + "fever": 9016, + "bits": 9017, + "monica": 9018, + "keyboard": 9019, + "manages": 9020, + "##hood": 9021, + "searched": 9022, + "appeals": 9023, + "##bad": 9024, + "testament": 9025, + "grande": 9026, + "reid": 9027, + "##war": 9028, + "beliefs": 9029, + "congo": 9030, + "##ification": 9031, + "##dia": 9032, + "si": 9033, + "requiring": 9034, + "##via": 9035, + "casey": 9036, + "1849": 9037, + "regret": 9038, + "streak": 9039, + "rape": 9040, + "depends": 9041, + "syrian": 9042, + "sprint": 9043, + "pound": 9044, + "tourists": 9045, + "upcoming": 9046, + "pub": 9047, + "##xi": 9048, + "tense": 9049, + "##els": 9050, + "practiced": 9051, + "echo": 9052, + "nationwide": 9053, + "guild": 9054, + "motorcycle": 9055, + "liz": 9056, + "##zar": 9057, + "chiefs": 9058, + "desired": 9059, + "elena": 9060, + "bye": 9061, + "precious": 9062, + "absorbed": 9063, + "relatives": 9064, + "booth": 9065, + "pianist": 9066, + "##mal": 9067, + "citizenship": 9068, + "exhausted": 9069, + "wilhelm": 9070, + "##ceae": 9071, + "##hed": 9072, + "noting": 9073, + "quarterback": 9074, + "urge": 9075, + "hectares": 9076, + "##gue": 9077, + "ace": 9078, + "holly": 9079, + "##tal": 9080, + "blonde": 9081, + "davies": 9082, + "parked": 9083, + "sustainable": 9084, + "stepping": 9085, + "twentieth": 9086, + "airfield": 9087, + "galaxy": 9088, + "nest": 9089, + "chip": 9090, + "##nell": 9091, + "tan": 9092, + "shaft": 9093, + "paulo": 9094, + "requirement": 9095, + "##zy": 9096, + "paradise": 9097, + "tobacco": 9098, + "trans": 9099, + "renewed": 9100, + "vietnamese": 9101, + "##cker": 9102, + "##ju": 9103, + "suggesting": 9104, + "catching": 9105, + "holmes": 9106, + "enjoying": 9107, + "md": 9108, + "trips": 9109, + "colt": 9110, + "holder": 9111, + "butterfly": 9112, + "nerve": 9113, + "reformed": 9114, + "cherry": 9115, + "bowling": 9116, + "trailer": 9117, + "carriage": 9118, + "goodbye": 9119, + "appreciate": 9120, + "toy": 9121, + "joshua": 9122, + "interactive": 9123, + "enabled": 9124, + "involve": 9125, + "##kan": 9126, + "collar": 9127, + "determination": 9128, + "bunch": 9129, + "facebook": 9130, + "recall": 9131, + "shorts": 9132, + "superintendent": 9133, + "episcopal": 9134, + "frustration": 9135, + "giovanni": 9136, + "nineteenth": 9137, + "laser": 9138, + "privately": 9139, + "array": 9140, + "circulation": 9141, + "##ovic": 9142, + "armstrong": 9143, + "deals": 9144, + "painful": 9145, + "permit": 9146, + "discrimination": 9147, + "##wi": 9148, + "aires": 9149, + "retiring": 9150, + "cottage": 9151, + "ni": 9152, + "##sta": 9153, + "horizon": 9154, + "ellen": 9155, + "jamaica": 9156, + "ripped": 9157, + "fernando": 9158, + "chapters": 9159, + "playstation": 9160, + "patron": 9161, + "lecturer": 9162, + "navigation": 9163, + "behaviour": 9164, + "genes": 9165, + "georgian": 9166, + "export": 9167, + "solomon": 9168, + "rivals": 9169, + "swift": 9170, + "seventeen": 9171, + "rodriguez": 9172, + "princeton": 9173, + "independently": 9174, + "sox": 9175, + "1847": 9176, + "arguing": 9177, + "entity": 9178, + "casting": 9179, + "hank": 9180, + "criteria": 9181, + "oakland": 9182, + "geographic": 9183, + "milwaukee": 9184, + "reflection": 9185, + "expanding": 9186, + "conquest": 9187, + "dubbed": 9188, + "##tv": 9189, + "halt": 9190, + "brave": 9191, + "brunswick": 9192, + "doi": 9193, + "arched": 9194, + "curtis": 9195, + "divorced": 9196, + "predominantly": 9197, + "somerset": 9198, + "streams": 9199, + "ugly": 9200, + "zoo": 9201, + "horrible": 9202, + "curved": 9203, + "buenos": 9204, + "fierce": 9205, + "dictionary": 9206, + "vector": 9207, + "theological": 9208, + "unions": 9209, + "handful": 9210, + "stability": 9211, + "chan": 9212, + "punjab": 9213, + "segments": 9214, + "##lly": 9215, + "altar": 9216, + "ignoring": 9217, + "gesture": 9218, + "monsters": 9219, + "pastor": 9220, + "##stone": 9221, + "thighs": 9222, + "unexpected": 9223, + "operators": 9224, + "abruptly": 9225, + "coin": 9226, + "compiled": 9227, + "associates": 9228, + "improving": 9229, + "migration": 9230, + "pin": 9231, + "##ose": 9232, + "compact": 9233, + "collegiate": 9234, + "reserved": 9235, + "##urs": 9236, + "quarterfinals": 9237, + "roster": 9238, + "restore": 9239, + "assembled": 9240, + "hurry": 9241, + "oval": 9242, + "##cies": 9243, + "1846": 9244, + "flags": 9245, + "martha": 9246, + "##del": 9247, + "victories": 9248, + "sharply": 9249, + "##rated": 9250, + "argues": 9251, + "deadly": 9252, + "neo": 9253, + "drawings": 9254, + "symbols": 9255, + "performer": 9256, + "##iel": 9257, + "griffin": 9258, + "restrictions": 9259, + "editing": 9260, + "andrews": 9261, + "java": 9262, + "journals": 9263, + "arabia": 9264, + "compositions": 9265, + "dee": 9266, + "pierce": 9267, + "removing": 9268, + "hindi": 9269, + "casino": 9270, + "runway": 9271, + "civilians": 9272, + "minds": 9273, + "nasa": 9274, + "hotels": 9275, + "##zation": 9276, + "refuge": 9277, + "rent": 9278, + "retain": 9279, + "potentially": 9280, + "conferences": 9281, + "suburban": 9282, + "conducting": 9283, + "##tto": 9284, + "##tions": 9285, + "##tle": 9286, + "descended": 9287, + "massacre": 9288, + "##cal": 9289, + "ammunition": 9290, + "terrain": 9291, + "fork": 9292, + "souls": 9293, + "counts": 9294, + "chelsea": 9295, + "durham": 9296, + "drives": 9297, + "cab": 9298, + "##bank": 9299, + "perth": 9300, + "realizing": 9301, + "palestinian": 9302, + "finn": 9303, + "simpson": 9304, + "##dal": 9305, + "betty": 9306, + "##ule": 9307, + "moreover": 9308, + "particles": 9309, + "cardinals": 9310, + "tent": 9311, + "evaluation": 9312, + "extraordinary": 9313, + "##oid": 9314, + "inscription": 9315, + "##works": 9316, + "wednesday": 9317, + "chloe": 9318, + "maintains": 9319, + "panels": 9320, + "ashley": 9321, + "trucks": 9322, + "##nation": 9323, + "cluster": 9324, + "sunlight": 9325, + "strikes": 9326, + "zhang": 9327, + "##wing": 9328, + "dialect": 9329, + "canon": 9330, + "##ap": 9331, + "tucked": 9332, + "##ws": 9333, + "collecting": 9334, + "##mas": 9335, + "##can": 9336, + "##sville": 9337, + "maker": 9338, + "quoted": 9339, + "evan": 9340, + "franco": 9341, + "aria": 9342, + "buying": 9343, + "cleaning": 9344, + "eva": 9345, + "closet": 9346, + "provision": 9347, + "apollo": 9348, + "clinic": 9349, + "rat": 9350, + "##ez": 9351, + "necessarily": 9352, + "ac": 9353, + "##gle": 9354, + "##ising": 9355, + "venues": 9356, + "flipped": 9357, + "cent": 9358, + "spreading": 9359, + "trustees": 9360, + "checking": 9361, + "authorized": 9362, + "##sco": 9363, + "disappointed": 9364, + "##ado": 9365, + "notion": 9366, + "duration": 9367, + "trumpet": 9368, + "hesitated": 9369, + "topped": 9370, + "brussels": 9371, + "rolls": 9372, + "theoretical": 9373, + "hint": 9374, + "define": 9375, + "aggressive": 9376, + "repeat": 9377, + "wash": 9378, + "peaceful": 9379, + "optical": 9380, + "width": 9381, + "allegedly": 9382, + "mcdonald": 9383, + "strict": 9384, + "copyright": 9385, + "##illa": 9386, + "investors": 9387, + "mar": 9388, + "jam": 9389, + "witnesses": 9390, + "sounding": 9391, + "miranda": 9392, + "michelle": 9393, + "privacy": 9394, + "hugo": 9395, + "harmony": 9396, + "##pp": 9397, + "valid": 9398, + "lynn": 9399, + "glared": 9400, + "nina": 9401, + "102": 9402, + "headquartered": 9403, + "diving": 9404, + "boarding": 9405, + "gibson": 9406, + "##ncy": 9407, + "albanian": 9408, + "marsh": 9409, + "routine": 9410, + "dealt": 9411, + "enhanced": 9412, + "er": 9413, + "intelligent": 9414, + "substance": 9415, + "targeted": 9416, + "enlisted": 9417, + "discovers": 9418, + "spinning": 9419, + "observations": 9420, + "pissed": 9421, + "smoking": 9422, + "rebecca": 9423, + "capitol": 9424, + "visa": 9425, + "varied": 9426, + "costume": 9427, + "seemingly": 9428, + "indies": 9429, + "compensation": 9430, + "surgeon": 9431, + "thursday": 9432, + "arsenal": 9433, + "westminster": 9434, + "suburbs": 9435, + "rid": 9436, + "anglican": 9437, + "##ridge": 9438, + "knots": 9439, + "foods": 9440, + "alumni": 9441, + "lighter": 9442, + "fraser": 9443, + "whoever": 9444, + "portal": 9445, + "scandal": 9446, + "##ray": 9447, + "gavin": 9448, + "advised": 9449, + "instructor": 9450, + "flooding": 9451, + "terrorist": 9452, + "##ale": 9453, + "teenage": 9454, + "interim": 9455, + "senses": 9456, + "duck": 9457, + "teen": 9458, + "thesis": 9459, + "abby": 9460, + "eager": 9461, + "overcome": 9462, + "##ile": 9463, + "newport": 9464, + "glenn": 9465, + "rises": 9466, + "shame": 9467, + "##cc": 9468, + "prompted": 9469, + "priority": 9470, + "forgot": 9471, + "bomber": 9472, + "nicolas": 9473, + "protective": 9474, + "360": 9475, + "cartoon": 9476, + "katherine": 9477, + "breeze": 9478, + "lonely": 9479, + "trusted": 9480, + "henderson": 9481, + "richardson": 9482, + "relax": 9483, + "banner": 9484, + "candy": 9485, + "palms": 9486, + "remarkable": 9487, + "##rio": 9488, + "legends": 9489, + "cricketer": 9490, + "essay": 9491, + "ordained": 9492, + "edmund": 9493, + "rifles": 9494, + "trigger": 9495, + "##uri": 9496, + "##away": 9497, + "sail": 9498, + "alert": 9499, + "1830": 9500, + "audiences": 9501, + "penn": 9502, + "sussex": 9503, + "siblings": 9504, + "pursued": 9505, + "indianapolis": 9506, + "resist": 9507, + "rosa": 9508, + "consequence": 9509, + "succeed": 9510, + "avoided": 9511, + "1845": 9512, + "##ulation": 9513, + "inland": 9514, + "##tie": 9515, + "##nna": 9516, + "counsel": 9517, + "profession": 9518, + "chronicle": 9519, + "hurried": 9520, + "##una": 9521, + "eyebrow": 9522, + "eventual": 9523, + "bleeding": 9524, + "innovative": 9525, + "cure": 9526, + "##dom": 9527, + "committees": 9528, + "accounting": 9529, + "con": 9530, + "scope": 9531, + "hardy": 9532, + "heather": 9533, + "tenor": 9534, + "gut": 9535, + "herald": 9536, + "codes": 9537, + "tore": 9538, + "scales": 9539, + "wagon": 9540, + "##oo": 9541, + "luxury": 9542, + "tin": 9543, + "prefer": 9544, + "fountain": 9545, + "triangle": 9546, + "bonds": 9547, + "darling": 9548, + "convoy": 9549, + "dried": 9550, + "traced": 9551, + "beings": 9552, + "troy": 9553, + "accidentally": 9554, + "slam": 9555, + "findings": 9556, + "smelled": 9557, + "joey": 9558, + "lawyers": 9559, + "outcome": 9560, + "steep": 9561, + "bosnia": 9562, + "configuration": 9563, + "shifting": 9564, + "toll": 9565, + "brook": 9566, + "performers": 9567, + "lobby": 9568, + "philosophical": 9569, + "construct": 9570, + "shrine": 9571, + "aggregate": 9572, + "boot": 9573, + "cox": 9574, + "phenomenon": 9575, + "savage": 9576, + "insane": 9577, + "solely": 9578, + "reynolds": 9579, + "lifestyle": 9580, + "##ima": 9581, + "nationally": 9582, + "holdings": 9583, + "consideration": 9584, + "enable": 9585, + "edgar": 9586, + "mo": 9587, + "mama": 9588, + "##tein": 9589, + "fights": 9590, + "relegation": 9591, + "chances": 9592, + "atomic": 9593, + "hub": 9594, + "conjunction": 9595, + "awkward": 9596, + "reactions": 9597, + "currency": 9598, + "finale": 9599, + "kumar": 9600, + "underwent": 9601, + "steering": 9602, + "elaborate": 9603, + "gifts": 9604, + "comprising": 9605, + "melissa": 9606, + "veins": 9607, + "reasonable": 9608, + "sunshine": 9609, + "chi": 9610, + "solve": 9611, + "trails": 9612, + "inhabited": 9613, + "elimination": 9614, + "ethics": 9615, + "huh": 9616, + "ana": 9617, + "molly": 9618, + "consent": 9619, + "apartments": 9620, + "layout": 9621, + "marines": 9622, + "##ces": 9623, + "hunters": 9624, + "bulk": 9625, + "##oma": 9626, + "hometown": 9627, + "##wall": 9628, + "##mont": 9629, + "cracked": 9630, + "reads": 9631, + "neighbouring": 9632, + "withdrawn": 9633, + "admission": 9634, + "wingspan": 9635, + "damned": 9636, + "anthology": 9637, + "lancashire": 9638, + "brands": 9639, + "batting": 9640, + "forgive": 9641, + "cuban": 9642, + "awful": 9643, + "##lyn": 9644, + "104": 9645, + "dimensions": 9646, + "imagination": 9647, + "##ade": 9648, + "dante": 9649, + "##ship": 9650, + "tracking": 9651, + "desperately": 9652, + "goalkeeper": 9653, + "##yne": 9654, + "groaned": 9655, + "workshops": 9656, + "confident": 9657, + "burton": 9658, + "gerald": 9659, + "milton": 9660, + "circus": 9661, + "uncertain": 9662, + "slope": 9663, + "copenhagen": 9664, + "sophia": 9665, + "fog": 9666, + "philosopher": 9667, + "portraits": 9668, + "accent": 9669, + "cycling": 9670, + "varying": 9671, + "gripped": 9672, + "larvae": 9673, + "garrett": 9674, + "specified": 9675, + "scotia": 9676, + "mature": 9677, + "luther": 9678, + "kurt": 9679, + "rap": 9680, + "##kes": 9681, + "aerial": 9682, + "750": 9683, + "ferdinand": 9684, + "heated": 9685, + "es": 9686, + "transported": 9687, + "##shan": 9688, + "safely": 9689, + "nonetheless": 9690, + "##orn": 9691, + "##gal": 9692, + "motors": 9693, + "demanding": 9694, + "##sburg": 9695, + "startled": 9696, + "##brook": 9697, + "ally": 9698, + "generate": 9699, + "caps": 9700, + "ghana": 9701, + "stained": 9702, + "demo": 9703, + "mentions": 9704, + "beds": 9705, + "ap": 9706, + "afterward": 9707, + "diary": 9708, + "##bling": 9709, + "utility": 9710, + "##iro": 9711, + "richards": 9712, + "1837": 9713, + "conspiracy": 9714, + "conscious": 9715, + "shining": 9716, + "footsteps": 9717, + "observer": 9718, + "cyprus": 9719, + "urged": 9720, + "loyalty": 9721, + "developer": 9722, + "probability": 9723, + "olive": 9724, + "upgraded": 9725, + "gym": 9726, + "miracle": 9727, + "insects": 9728, + "graves": 9729, + "1844": 9730, + "ourselves": 9731, + "hydrogen": 9732, + "amazon": 9733, + "katie": 9734, + "tickets": 9735, + "poets": 9736, + "##pm": 9737, + "planes": 9738, + "##pan": 9739, + "prevention": 9740, + "witnessed": 9741, + "dense": 9742, + "jin": 9743, + "randy": 9744, + "tang": 9745, + "warehouse": 9746, + "monroe": 9747, + "bang": 9748, + "archived": 9749, + "elderly": 9750, + "investigations": 9751, + "alec": 9752, + "granite": 9753, + "mineral": 9754, + "conflicts": 9755, + "controlling": 9756, + "aboriginal": 9757, + "carlo": 9758, + "##zu": 9759, + "mechanics": 9760, + "stan": 9761, + "stark": 9762, + "rhode": 9763, + "skirt": 9764, + "est": 9765, + "##berry": 9766, + "bombs": 9767, + "respected": 9768, + "##horn": 9769, + "imposed": 9770, + "limestone": 9771, + "deny": 9772, + "nominee": 9773, + "memphis": 9774, + "grabbing": 9775, + "disabled": 9776, + "##als": 9777, + "amusement": 9778, + "aa": 9779, + "frankfurt": 9780, + "corn": 9781, + "referendum": 9782, + "varies": 9783, + "slowed": 9784, + "disk": 9785, + "firms": 9786, + "unconscious": 9787, + "incredible": 9788, + "clue": 9789, + "sue": 9790, + "##zhou": 9791, + "twist": 9792, + "##cio": 9793, + "joins": 9794, + "idaho": 9795, + "chad": 9796, + "developers": 9797, + "computing": 9798, + "destroyer": 9799, + "103": 9800, + "mortal": 9801, + "tucker": 9802, + "kingston": 9803, + "choices": 9804, + "yu": 9805, + "carson": 9806, + "1800": 9807, + "os": 9808, + "whitney": 9809, + "geneva": 9810, + "pretend": 9811, + "dimension": 9812, + "staged": 9813, + "plateau": 9814, + "maya": 9815, + "##une": 9816, + "freestyle": 9817, + "##bc": 9818, + "rovers": 9819, + "hiv": 9820, + "##ids": 9821, + "tristan": 9822, + "classroom": 9823, + "prospect": 9824, + "##hus": 9825, + "honestly": 9826, + "diploma": 9827, + "lied": 9828, + "thermal": 9829, + "auxiliary": 9830, + "feast": 9831, + "unlikely": 9832, + "iata": 9833, + "##tel": 9834, + "morocco": 9835, + "pounding": 9836, + "treasury": 9837, + "lithuania": 9838, + "considerably": 9839, + "1841": 9840, + "dish": 9841, + "1812": 9842, + "geological": 9843, + "matching": 9844, + "stumbled": 9845, + "destroying": 9846, + "marched": 9847, + "brien": 9848, + "advances": 9849, + "cake": 9850, + "nicole": 9851, + "belle": 9852, + "settling": 9853, + "measuring": 9854, + "directing": 9855, + "##mie": 9856, + "tuesday": 9857, + "bassist": 9858, + "capabilities": 9859, + "stunned": 9860, + "fraud": 9861, + "torpedo": 9862, + "##list": 9863, + "##phone": 9864, + "anton": 9865, + "wisdom": 9866, + "surveillance": 9867, + "ruined": 9868, + "##ulate": 9869, + "lawsuit": 9870, + "healthcare": 9871, + "theorem": 9872, + "halls": 9873, + "trend": 9874, + "aka": 9875, + "horizontal": 9876, + "dozens": 9877, + "acquire": 9878, + "lasting": 9879, + "swim": 9880, + "hawk": 9881, + "gorgeous": 9882, + "fees": 9883, + "vicinity": 9884, + "decrease": 9885, + "adoption": 9886, + "tactics": 9887, + "##ography": 9888, + "pakistani": 9889, + "##ole": 9890, + "draws": 9891, + "##hall": 9892, + "willie": 9893, + "burke": 9894, + "heath": 9895, + "algorithm": 9896, + "integral": 9897, + "powder": 9898, + "elliott": 9899, + "brigadier": 9900, + "jackie": 9901, + "tate": 9902, + "varieties": 9903, + "darker": 9904, + "##cho": 9905, + "lately": 9906, + "cigarette": 9907, + "specimens": 9908, + "adds": 9909, + "##ree": 9910, + "##ensis": 9911, + "##inger": 9912, + "exploded": 9913, + "finalist": 9914, + "cia": 9915, + "murders": 9916, + "wilderness": 9917, + "arguments": 9918, + "nicknamed": 9919, + "acceptance": 9920, + "onwards": 9921, + "manufacture": 9922, + "robertson": 9923, + "jets": 9924, + "tampa": 9925, + "enterprises": 9926, + "blog": 9927, + "loudly": 9928, + "composers": 9929, + "nominations": 9930, + "1838": 9931, + "ai": 9932, + "malta": 9933, + "inquiry": 9934, + "automobile": 9935, + "hosting": 9936, + "viii": 9937, + "rays": 9938, + "tilted": 9939, + "grief": 9940, + "museums": 9941, + "strategies": 9942, + "furious": 9943, + "euro": 9944, + "equality": 9945, + "cohen": 9946, + "poison": 9947, + "surrey": 9948, + "wireless": 9949, + "governed": 9950, + "ridiculous": 9951, + "moses": 9952, + "##esh": 9953, + "##room": 9954, + "vanished": 9955, + "##ito": 9956, + "barnes": 9957, + "attract": 9958, + "morrison": 9959, + "istanbul": 9960, + "##iness": 9961, + "absent": 9962, + "rotation": 9963, + "petition": 9964, + "janet": 9965, + "##logical": 9966, + "satisfaction": 9967, + "custody": 9968, + "deliberately": 9969, + "observatory": 9970, + "comedian": 9971, + "surfaces": 9972, + "pinyin": 9973, + "novelist": 9974, + "strictly": 9975, + "canterbury": 9976, + "oslo": 9977, + "monks": 9978, + "embrace": 9979, + "ibm": 9980, + "jealous": 9981, + "photograph": 9982, + "continent": 9983, + "dorothy": 9984, + "marina": 9985, + "doc": 9986, + "excess": 9987, + "holden": 9988, + "allegations": 9989, + "explaining": 9990, + "stack": 9991, + "avoiding": 9992, + "lance": 9993, + "storyline": 9994, + "majesty": 9995, + "poorly": 9996, + "spike": 9997, + "dos": 9998, + "bradford": 9999, + "raven": 10000, + "travis": 10001, + "classics": 10002, + "proven": 10003, + "voltage": 10004, + "pillow": 10005, + "fists": 10006, + "butt": 10007, + "1842": 10008, + "interpreted": 10009, + "##car": 10010, + "1839": 10011, + "gage": 10012, + "telegraph": 10013, + "lens": 10014, + "promising": 10015, + "expelled": 10016, + "casual": 10017, + "collector": 10018, + "zones": 10019, + "##min": 10020, + "silly": 10021, + "nintendo": 10022, + "##kh": 10023, + "##bra": 10024, + "downstairs": 10025, + "chef": 10026, + "suspicious": 10027, + "afl": 10028, + "flies": 10029, + "vacant": 10030, + "uganda": 10031, + "pregnancy": 10032, + "condemned": 10033, + "lutheran": 10034, + "estimates": 10035, + "cheap": 10036, + "decree": 10037, + "saxon": 10038, + "proximity": 10039, + "stripped": 10040, + "idiot": 10041, + "deposits": 10042, + "contrary": 10043, + "presenter": 10044, + "magnus": 10045, + "glacier": 10046, + "im": 10047, + "offense": 10048, + "edwin": 10049, + "##ori": 10050, + "upright": 10051, + "##long": 10052, + "bolt": 10053, + "##ois": 10054, + "toss": 10055, + "geographical": 10056, + "##izes": 10057, + "environments": 10058, + "delicate": 10059, + "marking": 10060, + "abstract": 10061, + "xavier": 10062, + "nails": 10063, + "windsor": 10064, + "plantation": 10065, + "occurring": 10066, + "equity": 10067, + "saskatchewan": 10068, + "fears": 10069, + "drifted": 10070, + "sequences": 10071, + "vegetation": 10072, + "revolt": 10073, + "##stic": 10074, + "1843": 10075, + "sooner": 10076, + "fusion": 10077, + "opposing": 10078, + "nato": 10079, + "skating": 10080, + "1836": 10081, + "secretly": 10082, + "ruin": 10083, + "lease": 10084, + "##oc": 10085, + "edit": 10086, + "##nne": 10087, + "flora": 10088, + "anxiety": 10089, + "ruby": 10090, + "##ological": 10091, + "##mia": 10092, + "tel": 10093, + "bout": 10094, + "taxi": 10095, + "emmy": 10096, + "frost": 10097, + "rainbow": 10098, + "compounds": 10099, + "foundations": 10100, + "rainfall": 10101, + "assassination": 10102, + "nightmare": 10103, + "dominican": 10104, + "##win": 10105, + "achievements": 10106, + "deserve": 10107, + "orlando": 10108, + "intact": 10109, + "armenia": 10110, + "##nte": 10111, + "calgary": 10112, + "valentine": 10113, + "106": 10114, + "marion": 10115, + "proclaimed": 10116, + "theodore": 10117, + "bells": 10118, + "courtyard": 10119, + "thigh": 10120, + "gonzalez": 10121, + "console": 10122, + "troop": 10123, + "minimal": 10124, + "monte": 10125, + "everyday": 10126, + "##ence": 10127, + "##if": 10128, + "supporter": 10129, + "terrorism": 10130, + "buck": 10131, + "openly": 10132, + "presbyterian": 10133, + "activists": 10134, + "carpet": 10135, + "##iers": 10136, + "rubbing": 10137, + "uprising": 10138, + "##yi": 10139, + "cute": 10140, + "conceived": 10141, + "legally": 10142, + "##cht": 10143, + "millennium": 10144, + "cello": 10145, + "velocity": 10146, + "ji": 10147, + "rescued": 10148, + "cardiff": 10149, + "1835": 10150, + "rex": 10151, + "concentrate": 10152, + "senators": 10153, + "beard": 10154, + "rendered": 10155, + "glowing": 10156, + "battalions": 10157, + "scouts": 10158, + "competitors": 10159, + "sculptor": 10160, + "catalogue": 10161, + "arctic": 10162, + "ion": 10163, + "raja": 10164, + "bicycle": 10165, + "wow": 10166, + "glancing": 10167, + "lawn": 10168, + "##woman": 10169, + "gentleman": 10170, + "lighthouse": 10171, + "publish": 10172, + "predicted": 10173, + "calculated": 10174, + "##val": 10175, + "variants": 10176, + "##gne": 10177, + "strain": 10178, + "##ui": 10179, + "winston": 10180, + "deceased": 10181, + "##nus": 10182, + "touchdowns": 10183, + "brady": 10184, + "caleb": 10185, + "sinking": 10186, + "echoed": 10187, + "crush": 10188, + "hon": 10189, + "blessed": 10190, + "protagonist": 10191, + "hayes": 10192, + "endangered": 10193, + "magnitude": 10194, + "editors": 10195, + "##tine": 10196, + "estimate": 10197, + "responsibilities": 10198, + "##mel": 10199, + "backup": 10200, + "laying": 10201, + "consumed": 10202, + "sealed": 10203, + "zurich": 10204, + "lovers": 10205, + "frustrated": 10206, + "##eau": 10207, + "ahmed": 10208, + "kicking": 10209, + "mit": 10210, + "treasurer": 10211, + "1832": 10212, + "biblical": 10213, + "refuse": 10214, + "terrified": 10215, + "pump": 10216, + "agrees": 10217, + "genuine": 10218, + "imprisonment": 10219, + "refuses": 10220, + "plymouth": 10221, + "##hen": 10222, + "lou": 10223, + "##nen": 10224, + "tara": 10225, + "trembling": 10226, + "antarctic": 10227, + "ton": 10228, + "learns": 10229, + "##tas": 10230, + "crap": 10231, + "crucial": 10232, + "faction": 10233, + "atop": 10234, + "##borough": 10235, + "wrap": 10236, + "lancaster": 10237, + "odds": 10238, + "hopkins": 10239, + "erik": 10240, + "lyon": 10241, + "##eon": 10242, + "bros": 10243, + "##ode": 10244, + "snap": 10245, + "locality": 10246, + "tips": 10247, + "empress": 10248, + "crowned": 10249, + "cal": 10250, + "acclaimed": 10251, + "chuckled": 10252, + "##ory": 10253, + "clara": 10254, + "sends": 10255, + "mild": 10256, + "towel": 10257, + "##fl": 10258, + "##day": 10259, + "##а": 10260, + "wishing": 10261, + "assuming": 10262, + "interviewed": 10263, + "##bal": 10264, + "##die": 10265, + "interactions": 10266, + "eden": 10267, + "cups": 10268, + "helena": 10269, + "##lf": 10270, + "indie": 10271, + "beck": 10272, + "##fire": 10273, + "batteries": 10274, + "filipino": 10275, + "wizard": 10276, + "parted": 10277, + "##lam": 10278, + "traces": 10279, + "##born": 10280, + "rows": 10281, + "idol": 10282, + "albany": 10283, + "delegates": 10284, + "##ees": 10285, + "##sar": 10286, + "discussions": 10287, + "##ex": 10288, + "notre": 10289, + "instructed": 10290, + "belgrade": 10291, + "highways": 10292, + "suggestion": 10293, + "lauren": 10294, + "possess": 10295, + "orientation": 10296, + "alexandria": 10297, + "abdul": 10298, + "beats": 10299, + "salary": 10300, + "reunion": 10301, + "ludwig": 10302, + "alright": 10303, + "wagner": 10304, + "intimate": 10305, + "pockets": 10306, + "slovenia": 10307, + "hugged": 10308, + "brighton": 10309, + "merchants": 10310, + "cruel": 10311, + "stole": 10312, + "trek": 10313, + "slopes": 10314, + "repairs": 10315, + "enrollment": 10316, + "politically": 10317, + "underlying": 10318, + "promotional": 10319, + "counting": 10320, + "boeing": 10321, + "##bb": 10322, + "isabella": 10323, + "naming": 10324, + "##и": 10325, + "keen": 10326, + "bacteria": 10327, + "listing": 10328, + "separately": 10329, + "belfast": 10330, + "ussr": 10331, + "450": 10332, + "lithuanian": 10333, + "anybody": 10334, + "ribs": 10335, + "sphere": 10336, + "martinez": 10337, + "cock": 10338, + "embarrassed": 10339, + "proposals": 10340, + "fragments": 10341, + "nationals": 10342, + "##fs": 10343, + "##wski": 10344, + "premises": 10345, + "fin": 10346, + "1500": 10347, + "alpine": 10348, + "matched": 10349, + "freely": 10350, + "bounded": 10351, + "jace": 10352, + "sleeve": 10353, + "##af": 10354, + "gaming": 10355, + "pier": 10356, + "populated": 10357, + "evident": 10358, + "##like": 10359, + "frances": 10360, + "flooded": 10361, + "##dle": 10362, + "frightened": 10363, + "pour": 10364, + "trainer": 10365, + "framed": 10366, + "visitor": 10367, + "challenging": 10368, + "pig": 10369, + "wickets": 10370, + "##fold": 10371, + "infected": 10372, + "email": 10373, + "##pes": 10374, + "arose": 10375, + "##aw": 10376, + "reward": 10377, + "ecuador": 10378, + "oblast": 10379, + "vale": 10380, + "ch": 10381, + "shuttle": 10382, + "##usa": 10383, + "bach": 10384, + "rankings": 10385, + "forbidden": 10386, + "cornwall": 10387, + "accordance": 10388, + "salem": 10389, + "consumers": 10390, + "bruno": 10391, + "fantastic": 10392, + "toes": 10393, + "machinery": 10394, + "resolved": 10395, + "julius": 10396, + "remembering": 10397, + "propaganda": 10398, + "iceland": 10399, + "bombardment": 10400, + "tide": 10401, + "contacts": 10402, + "wives": 10403, + "##rah": 10404, + "concerto": 10405, + "macdonald": 10406, + "albania": 10407, + "implement": 10408, + "daisy": 10409, + "tapped": 10410, + "sudan": 10411, + "helmet": 10412, + "angela": 10413, + "mistress": 10414, + "##lic": 10415, + "crop": 10416, + "sunk": 10417, + "finest": 10418, + "##craft": 10419, + "hostile": 10420, + "##ute": 10421, + "##tsu": 10422, + "boxer": 10423, + "fr": 10424, + "paths": 10425, + "adjusted": 10426, + "habit": 10427, + "ballot": 10428, + "supervision": 10429, + "soprano": 10430, + "##zen": 10431, + "bullets": 10432, + "wicked": 10433, + "sunset": 10434, + "regiments": 10435, + "disappear": 10436, + "lamp": 10437, + "performs": 10438, + "app": 10439, + "##gia": 10440, + "##oa": 10441, + "rabbit": 10442, + "digging": 10443, + "incidents": 10444, + "entries": 10445, + "##cion": 10446, + "dishes": 10447, + "##oi": 10448, + "introducing": 10449, + "##ati": 10450, + "##fied": 10451, + "freshman": 10452, + "slot": 10453, + "jill": 10454, + "tackles": 10455, + "baroque": 10456, + "backs": 10457, + "##iest": 10458, + "lone": 10459, + "sponsor": 10460, + "destiny": 10461, + "altogether": 10462, + "convert": 10463, + "##aro": 10464, + "consensus": 10465, + "shapes": 10466, + "demonstration": 10467, + "basically": 10468, + "feminist": 10469, + "auction": 10470, + "artifacts": 10471, + "##bing": 10472, + "strongest": 10473, + "twitter": 10474, + "halifax": 10475, + "2019": 10476, + "allmusic": 10477, + "mighty": 10478, + "smallest": 10479, + "precise": 10480, + "alexandra": 10481, + "viola": 10482, + "##los": 10483, + "##ille": 10484, + "manuscripts": 10485, + "##illo": 10486, + "dancers": 10487, + "ari": 10488, + "managers": 10489, + "monuments": 10490, + "blades": 10491, + "barracks": 10492, + "springfield": 10493, + "maiden": 10494, + "consolidated": 10495, + "electron": 10496, + "##end": 10497, + "berry": 10498, + "airing": 10499, + "wheat": 10500, + "nobel": 10501, + "inclusion": 10502, + "blair": 10503, + "payments": 10504, + "geography": 10505, + "bee": 10506, + "cc": 10507, + "eleanor": 10508, + "react": 10509, + "##hurst": 10510, + "afc": 10511, + "manitoba": 10512, + "##yu": 10513, + "su": 10514, + "lineup": 10515, + "fitness": 10516, + "recreational": 10517, + "investments": 10518, + "airborne": 10519, + "disappointment": 10520, + "##dis": 10521, + "edmonton": 10522, + "viewing": 10523, + "##row": 10524, + "renovation": 10525, + "##cast": 10526, + "infant": 10527, + "bankruptcy": 10528, + "roses": 10529, + "aftermath": 10530, + "pavilion": 10531, + "##yer": 10532, + "carpenter": 10533, + "withdrawal": 10534, + "ladder": 10535, + "##hy": 10536, + "discussing": 10537, + "popped": 10538, + "reliable": 10539, + "agreements": 10540, + "rochester": 10541, + "##abad": 10542, + "curves": 10543, + "bombers": 10544, + "220": 10545, + "rao": 10546, + "reverend": 10547, + "decreased": 10548, + "choosing": 10549, + "107": 10550, + "stiff": 10551, + "consulting": 10552, + "naples": 10553, + "crawford": 10554, + "tracy": 10555, + "ka": 10556, + "ribbon": 10557, + "cops": 10558, + "##lee": 10559, + "crushed": 10560, + "deciding": 10561, + "unified": 10562, + "teenager": 10563, + "accepting": 10564, + "flagship": 10565, + "explorer": 10566, + "poles": 10567, + "sanchez": 10568, + "inspection": 10569, + "revived": 10570, + "skilled": 10571, + "induced": 10572, + "exchanged": 10573, + "flee": 10574, + "locals": 10575, + "tragedy": 10576, + "swallow": 10577, + "loading": 10578, + "hanna": 10579, + "demonstrate": 10580, + "##ela": 10581, + "salvador": 10582, + "flown": 10583, + "contestants": 10584, + "civilization": 10585, + "##ines": 10586, + "wanna": 10587, + "rhodes": 10588, + "fletcher": 10589, + "hector": 10590, + "knocking": 10591, + "considers": 10592, + "##ough": 10593, + "nash": 10594, + "mechanisms": 10595, + "sensed": 10596, + "mentally": 10597, + "walt": 10598, + "unclear": 10599, + "##eus": 10600, + "renovated": 10601, + "madame": 10602, + "##cks": 10603, + "crews": 10604, + "governmental": 10605, + "##hin": 10606, + "undertaken": 10607, + "monkey": 10608, + "##ben": 10609, + "##ato": 10610, + "fatal": 10611, + "armored": 10612, + "copa": 10613, + "caves": 10614, + "governance": 10615, + "grasp": 10616, + "perception": 10617, + "certification": 10618, + "froze": 10619, + "damp": 10620, + "tugged": 10621, + "wyoming": 10622, + "##rg": 10623, + "##ero": 10624, + "newman": 10625, + "##lor": 10626, + "nerves": 10627, + "curiosity": 10628, + "graph": 10629, + "115": 10630, + "##ami": 10631, + "withdraw": 10632, + "tunnels": 10633, + "dull": 10634, + "meredith": 10635, + "moss": 10636, + "exhibits": 10637, + "neighbors": 10638, + "communicate": 10639, + "accuracy": 10640, + "explored": 10641, + "raiders": 10642, + "republicans": 10643, + "secular": 10644, + "kat": 10645, + "superman": 10646, + "penny": 10647, + "criticised": 10648, + "##tch": 10649, + "freed": 10650, + "update": 10651, + "conviction": 10652, + "wade": 10653, + "ham": 10654, + "likewise": 10655, + "delegation": 10656, + "gotta": 10657, + "doll": 10658, + "promises": 10659, + "technological": 10660, + "myth": 10661, + "nationality": 10662, + "resolve": 10663, + "convent": 10664, + "##mark": 10665, + "sharon": 10666, + "dig": 10667, + "sip": 10668, + "coordinator": 10669, + "entrepreneur": 10670, + "fold": 10671, + "##dine": 10672, + "capability": 10673, + "councillor": 10674, + "synonym": 10675, + "blown": 10676, + "swan": 10677, + "cursed": 10678, + "1815": 10679, + "jonas": 10680, + "haired": 10681, + "sofa": 10682, + "canvas": 10683, + "keeper": 10684, + "rivalry": 10685, + "##hart": 10686, + "rapper": 10687, + "speedway": 10688, + "swords": 10689, + "postal": 10690, + "maxwell": 10691, + "estonia": 10692, + "potter": 10693, + "recurring": 10694, + "##nn": 10695, + "##ave": 10696, + "errors": 10697, + "##oni": 10698, + "cognitive": 10699, + "1834": 10700, + "##²": 10701, + "claws": 10702, + "nadu": 10703, + "roberto": 10704, + "bce": 10705, + "wrestler": 10706, + "ellie": 10707, + "##ations": 10708, + "infinite": 10709, + "ink": 10710, + "##tia": 10711, + "presumably": 10712, + "finite": 10713, + "staircase": 10714, + "108": 10715, + "noel": 10716, + "patricia": 10717, + "nacional": 10718, + "##cation": 10719, + "chill": 10720, + "eternal": 10721, + "tu": 10722, + "preventing": 10723, + "prussia": 10724, + "fossil": 10725, + "limbs": 10726, + "##logist": 10727, + "ernst": 10728, + "frog": 10729, + "perez": 10730, + "rene": 10731, + "##ace": 10732, + "pizza": 10733, + "prussian": 10734, + "##ios": 10735, + "##vy": 10736, + "molecules": 10737, + "regulatory": 10738, + "answering": 10739, + "opinions": 10740, + "sworn": 10741, + "lengths": 10742, + "supposedly": 10743, + "hypothesis": 10744, + "upward": 10745, + "habitats": 10746, + "seating": 10747, + "ancestors": 10748, + "drank": 10749, + "yield": 10750, + "hd": 10751, + "synthesis": 10752, + "researcher": 10753, + "modest": 10754, + "##var": 10755, + "mothers": 10756, + "peered": 10757, + "voluntary": 10758, + "homeland": 10759, + "##the": 10760, + "acclaim": 10761, + "##igan": 10762, + "static": 10763, + "valve": 10764, + "luxembourg": 10765, + "alto": 10766, + "carroll": 10767, + "fe": 10768, + "receptor": 10769, + "norton": 10770, + "ambulance": 10771, + "##tian": 10772, + "johnston": 10773, + "catholics": 10774, + "depicting": 10775, + "jointly": 10776, + "elephant": 10777, + "gloria": 10778, + "mentor": 10779, + "badge": 10780, + "ahmad": 10781, + "distinguish": 10782, + "remarked": 10783, + "councils": 10784, + "precisely": 10785, + "allison": 10786, + "advancing": 10787, + "detection": 10788, + "crowded": 10789, + "##10": 10790, + "cooperative": 10791, + "ankle": 10792, + "mercedes": 10793, + "dagger": 10794, + "surrendered": 10795, + "pollution": 10796, + "commit": 10797, + "subway": 10798, + "jeffrey": 10799, + "lesson": 10800, + "sculptures": 10801, + "provider": 10802, + "##fication": 10803, + "membrane": 10804, + "timothy": 10805, + "rectangular": 10806, + "fiscal": 10807, + "heating": 10808, + "teammate": 10809, + "basket": 10810, + "particle": 10811, + "anonymous": 10812, + "deployment": 10813, + "##ple": 10814, + "missiles": 10815, + "courthouse": 10816, + "proportion": 10817, + "shoe": 10818, + "sec": 10819, + "##ller": 10820, + "complaints": 10821, + "forbes": 10822, + "blacks": 10823, + "abandon": 10824, + "remind": 10825, + "sizes": 10826, + "overwhelming": 10827, + "autobiography": 10828, + "natalie": 10829, + "##awa": 10830, + "risks": 10831, + "contestant": 10832, + "countryside": 10833, + "babies": 10834, + "scorer": 10835, + "invaded": 10836, + "enclosed": 10837, + "proceed": 10838, + "hurling": 10839, + "disorders": 10840, + "##cu": 10841, + "reflecting": 10842, + "continuously": 10843, + "cruiser": 10844, + "graduates": 10845, + "freeway": 10846, + "investigated": 10847, + "ore": 10848, + "deserved": 10849, + "maid": 10850, + "blocking": 10851, + "phillip": 10852, + "jorge": 10853, + "shakes": 10854, + "dove": 10855, + "mann": 10856, + "variables": 10857, + "lacked": 10858, + "burden": 10859, + "accompanying": 10860, + "que": 10861, + "consistently": 10862, + "organizing": 10863, + "provisional": 10864, + "complained": 10865, + "endless": 10866, + "##rm": 10867, + "tubes": 10868, + "juice": 10869, + "georges": 10870, + "krishna": 10871, + "mick": 10872, + "labels": 10873, + "thriller": 10874, + "##uch": 10875, + "laps": 10876, + "arcade": 10877, + "sage": 10878, + "snail": 10879, + "##table": 10880, + "shannon": 10881, + "fi": 10882, + "laurence": 10883, + "seoul": 10884, + "vacation": 10885, + "presenting": 10886, + "hire": 10887, + "churchill": 10888, + "surprisingly": 10889, + "prohibited": 10890, + "savannah": 10891, + "technically": 10892, + "##oli": 10893, + "170": 10894, + "##lessly": 10895, + "testimony": 10896, + "suited": 10897, + "speeds": 10898, + "toys": 10899, + "romans": 10900, + "mlb": 10901, + "flowering": 10902, + "measurement": 10903, + "talented": 10904, + "kay": 10905, + "settings": 10906, + "charleston": 10907, + "expectations": 10908, + "shattered": 10909, + "achieving": 10910, + "triumph": 10911, + "ceremonies": 10912, + "portsmouth": 10913, + "lanes": 10914, + "mandatory": 10915, + "loser": 10916, + "stretching": 10917, + "cologne": 10918, + "realizes": 10919, + "seventy": 10920, + "cornell": 10921, + "careers": 10922, + "webb": 10923, + "##ulating": 10924, + "americas": 10925, + "budapest": 10926, + "ava": 10927, + "suspicion": 10928, + "##ison": 10929, + "yo": 10930, + "conrad": 10931, + "##hai": 10932, + "sterling": 10933, + "jessie": 10934, + "rector": 10935, + "##az": 10936, + "1831": 10937, + "transform": 10938, + "organize": 10939, + "loans": 10940, + "christine": 10941, + "volcanic": 10942, + "warrant": 10943, + "slender": 10944, + "summers": 10945, + "subfamily": 10946, + "newer": 10947, + "danced": 10948, + "dynamics": 10949, + "rhine": 10950, + "proceeds": 10951, + "heinrich": 10952, + "gastropod": 10953, + "commands": 10954, + "sings": 10955, + "facilitate": 10956, + "easter": 10957, + "ra": 10958, + "positioned": 10959, + "responses": 10960, + "expense": 10961, + "fruits": 10962, + "yanked": 10963, + "imported": 10964, + "25th": 10965, + "velvet": 10966, + "vic": 10967, + "primitive": 10968, + "tribune": 10969, + "baldwin": 10970, + "neighbourhood": 10971, + "donna": 10972, + "rip": 10973, + "hay": 10974, + "pr": 10975, + "##uro": 10976, + "1814": 10977, + "espn": 10978, + "welcomed": 10979, + "##aria": 10980, + "qualifier": 10981, + "glare": 10982, + "highland": 10983, + "timing": 10984, + "##cted": 10985, + "shells": 10986, + "eased": 10987, + "geometry": 10988, + "louder": 10989, + "exciting": 10990, + "slovakia": 10991, + "##sion": 10992, + "##iz": 10993, + "##lot": 10994, + "savings": 10995, + "prairie": 10996, + "##ques": 10997, + "marching": 10998, + "rafael": 10999, + "tonnes": 11000, + "##lled": 11001, + "curtain": 11002, + "preceding": 11003, + "shy": 11004, + "heal": 11005, + "greene": 11006, + "worthy": 11007, + "##pot": 11008, + "detachment": 11009, + "bury": 11010, + "sherman": 11011, + "##eck": 11012, + "reinforced": 11013, + "seeks": 11014, + "bottles": 11015, + "contracted": 11016, + "duchess": 11017, + "outfit": 11018, + "walsh": 11019, + "##sc": 11020, + "mickey": 11021, + "##ase": 11022, + "geoffrey": 11023, + "archer": 11024, + "squeeze": 11025, + "dawson": 11026, + "eliminate": 11027, + "invention": 11028, + "##enberg": 11029, + "neal": 11030, + "##eth": 11031, + "stance": 11032, + "dealer": 11033, + "coral": 11034, + "maple": 11035, + "retire": 11036, + "polo": 11037, + "simplified": 11038, + "##ht": 11039, + "1833": 11040, + "hid": 11041, + "watts": 11042, + "backwards": 11043, + "jules": 11044, + "##oke": 11045, + "genesis": 11046, + "mt": 11047, + "frames": 11048, + "rebounds": 11049, + "burma": 11050, + "woodland": 11051, + "moist": 11052, + "santos": 11053, + "whispers": 11054, + "drained": 11055, + "subspecies": 11056, + "##aa": 11057, + "streaming": 11058, + "ulster": 11059, + "burnt": 11060, + "correspondence": 11061, + "maternal": 11062, + "gerard": 11063, + "denis": 11064, + "stealing": 11065, + "##load": 11066, + "genius": 11067, + "duchy": 11068, + "##oria": 11069, + "inaugurated": 11070, + "momentum": 11071, + "suits": 11072, + "placement": 11073, + "sovereign": 11074, + "clause": 11075, + "thames": 11076, + "##hara": 11077, + "confederation": 11078, + "reservation": 11079, + "sketch": 11080, + "yankees": 11081, + "lets": 11082, + "rotten": 11083, + "charm": 11084, + "hal": 11085, + "verses": 11086, + "ultra": 11087, + "commercially": 11088, + "dot": 11089, + "salon": 11090, + "citation": 11091, + "adopt": 11092, + "winnipeg": 11093, + "mist": 11094, + "allocated": 11095, + "cairo": 11096, + "##boy": 11097, + "jenkins": 11098, + "interference": 11099, + "objectives": 11100, + "##wind": 11101, + "1820": 11102, + "portfolio": 11103, + "armoured": 11104, + "sectors": 11105, + "##eh": 11106, + "initiatives": 11107, + "##world": 11108, + "integrity": 11109, + "exercises": 11110, + "robe": 11111, + "tap": 11112, + "ab": 11113, + "gazed": 11114, + "##tones": 11115, + "distracted": 11116, + "rulers": 11117, + "111": 11118, + "favorable": 11119, + "jerome": 11120, + "tended": 11121, + "cart": 11122, + "factories": 11123, + "##eri": 11124, + "diplomat": 11125, + "valued": 11126, + "gravel": 11127, + "charitable": 11128, + "##try": 11129, + "calvin": 11130, + "exploring": 11131, + "chang": 11132, + "shepherd": 11133, + "terrace": 11134, + "pdf": 11135, + "pupil": 11136, + "##ural": 11137, + "reflects": 11138, + "ups": 11139, + "##rch": 11140, + "governors": 11141, + "shelf": 11142, + "depths": 11143, + "##nberg": 11144, + "trailed": 11145, + "crest": 11146, + "tackle": 11147, + "##nian": 11148, + "##ats": 11149, + "hatred": 11150, + "##kai": 11151, + "clare": 11152, + "makers": 11153, + "ethiopia": 11154, + "longtime": 11155, + "detected": 11156, + "embedded": 11157, + "lacking": 11158, + "slapped": 11159, + "rely": 11160, + "thomson": 11161, + "anticipation": 11162, + "iso": 11163, + "morton": 11164, + "successive": 11165, + "agnes": 11166, + "screenwriter": 11167, + "straightened": 11168, + "philippe": 11169, + "playwright": 11170, + "haunted": 11171, + "licence": 11172, + "iris": 11173, + "intentions": 11174, + "sutton": 11175, + "112": 11176, + "logical": 11177, + "correctly": 11178, + "##weight": 11179, + "branded": 11180, + "licked": 11181, + "tipped": 11182, + "silva": 11183, + "ricky": 11184, + "narrator": 11185, + "requests": 11186, + "##ents": 11187, + "greeted": 11188, + "supernatural": 11189, + "cow": 11190, + "##wald": 11191, + "lung": 11192, + "refusing": 11193, + "employer": 11194, + "strait": 11195, + "gaelic": 11196, + "liner": 11197, + "##piece": 11198, + "zoe": 11199, + "sabha": 11200, + "##mba": 11201, + "driveway": 11202, + "harvest": 11203, + "prints": 11204, + "bates": 11205, + "reluctantly": 11206, + "threshold": 11207, + "algebra": 11208, + "ira": 11209, + "wherever": 11210, + "coupled": 11211, + "240": 11212, + "assumption": 11213, + "picks": 11214, + "##air": 11215, + "designers": 11216, + "raids": 11217, + "gentlemen": 11218, + "##ean": 11219, + "roller": 11220, + "blowing": 11221, + "leipzig": 11222, + "locks": 11223, + "screw": 11224, + "dressing": 11225, + "strand": 11226, + "##lings": 11227, + "scar": 11228, + "dwarf": 11229, + "depicts": 11230, + "##nu": 11231, + "nods": 11232, + "##mine": 11233, + "differ": 11234, + "boris": 11235, + "##eur": 11236, + "yuan": 11237, + "flip": 11238, + "##gie": 11239, + "mob": 11240, + "invested": 11241, + "questioning": 11242, + "applying": 11243, + "##ture": 11244, + "shout": 11245, + "##sel": 11246, + "gameplay": 11247, + "blamed": 11248, + "illustrations": 11249, + "bothered": 11250, + "weakness": 11251, + "rehabilitation": 11252, + "##of": 11253, + "##zes": 11254, + "envelope": 11255, + "rumors": 11256, + "miners": 11257, + "leicester": 11258, + "subtle": 11259, + "kerry": 11260, + "##ico": 11261, + "ferguson": 11262, + "##fu": 11263, + "premiership": 11264, + "ne": 11265, + "##cat": 11266, + "bengali": 11267, + "prof": 11268, + "catches": 11269, + "remnants": 11270, + "dana": 11271, + "##rily": 11272, + "shouting": 11273, + "presidents": 11274, + "baltic": 11275, + "ought": 11276, + "ghosts": 11277, + "dances": 11278, + "sailors": 11279, + "shirley": 11280, + "fancy": 11281, + "dominic": 11282, + "##bie": 11283, + "madonna": 11284, + "##rick": 11285, + "bark": 11286, + "buttons": 11287, + "gymnasium": 11288, + "ashes": 11289, + "liver": 11290, + "toby": 11291, + "oath": 11292, + "providence": 11293, + "doyle": 11294, + "evangelical": 11295, + "nixon": 11296, + "cement": 11297, + "carnegie": 11298, + "embarked": 11299, + "hatch": 11300, + "surroundings": 11301, + "guarantee": 11302, + "needing": 11303, + "pirate": 11304, + "essence": 11305, + "##bee": 11306, + "filter": 11307, + "crane": 11308, + "hammond": 11309, + "projected": 11310, + "immune": 11311, + "percy": 11312, + "twelfth": 11313, + "##ult": 11314, + "regent": 11315, + "doctoral": 11316, + "damon": 11317, + "mikhail": 11318, + "##ichi": 11319, + "lu": 11320, + "critically": 11321, + "elect": 11322, + "realised": 11323, + "abortion": 11324, + "acute": 11325, + "screening": 11326, + "mythology": 11327, + "steadily": 11328, + "##fc": 11329, + "frown": 11330, + "nottingham": 11331, + "kirk": 11332, + "wa": 11333, + "minneapolis": 11334, + "##rra": 11335, + "module": 11336, + "algeria": 11337, + "mc": 11338, + "nautical": 11339, + "encounters": 11340, + "surprising": 11341, + "statues": 11342, + "availability": 11343, + "shirts": 11344, + "pie": 11345, + "alma": 11346, + "brows": 11347, + "munster": 11348, + "mack": 11349, + "soup": 11350, + "crater": 11351, + "tornado": 11352, + "sanskrit": 11353, + "cedar": 11354, + "explosive": 11355, + "bordered": 11356, + "dixon": 11357, + "planets": 11358, + "stamp": 11359, + "exam": 11360, + "happily": 11361, + "##bble": 11362, + "carriers": 11363, + "kidnapped": 11364, + "##vis": 11365, + "accommodation": 11366, + "emigrated": 11367, + "##met": 11368, + "knockout": 11369, + "correspondent": 11370, + "violation": 11371, + "profits": 11372, + "peaks": 11373, + "lang": 11374, + "specimen": 11375, + "agenda": 11376, + "ancestry": 11377, + "pottery": 11378, + "spelling": 11379, + "equations": 11380, + "obtaining": 11381, + "ki": 11382, + "linking": 11383, + "1825": 11384, + "debris": 11385, + "asylum": 11386, + "##20": 11387, + "buddhism": 11388, + "teddy": 11389, + "##ants": 11390, + "gazette": 11391, + "##nger": 11392, + "##sse": 11393, + "dental": 11394, + "eligibility": 11395, + "utc": 11396, + "fathers": 11397, + "averaged": 11398, + "zimbabwe": 11399, + "francesco": 11400, + "coloured": 11401, + "hissed": 11402, + "translator": 11403, + "lynch": 11404, + "mandate": 11405, + "humanities": 11406, + "mackenzie": 11407, + "uniforms": 11408, + "lin": 11409, + "##iana": 11410, + "##gio": 11411, + "asset": 11412, + "mhz": 11413, + "fitting": 11414, + "samantha": 11415, + "genera": 11416, + "wei": 11417, + "rim": 11418, + "beloved": 11419, + "shark": 11420, + "riot": 11421, + "entities": 11422, + "expressions": 11423, + "indo": 11424, + "carmen": 11425, + "slipping": 11426, + "owing": 11427, + "abbot": 11428, + "neighbor": 11429, + "sidney": 11430, + "##av": 11431, + "rats": 11432, + "recommendations": 11433, + "encouraging": 11434, + "squadrons": 11435, + "anticipated": 11436, + "commanders": 11437, + "conquered": 11438, + "##oto": 11439, + "donations": 11440, + "diagnosed": 11441, + "##mond": 11442, + "divide": 11443, + "##iva": 11444, + "guessed": 11445, + "decoration": 11446, + "vernon": 11447, + "auditorium": 11448, + "revelation": 11449, + "conversations": 11450, + "##kers": 11451, + "##power": 11452, + "herzegovina": 11453, + "dash": 11454, + "alike": 11455, + "protested": 11456, + "lateral": 11457, + "herman": 11458, + "accredited": 11459, + "mg": 11460, + "##gent": 11461, + "freeman": 11462, + "mel": 11463, + "fiji": 11464, + "crow": 11465, + "crimson": 11466, + "##rine": 11467, + "livestock": 11468, + "##pped": 11469, + "humanitarian": 11470, + "bored": 11471, + "oz": 11472, + "whip": 11473, + "##lene": 11474, + "##ali": 11475, + "legitimate": 11476, + "alter": 11477, + "grinning": 11478, + "spelled": 11479, + "anxious": 11480, + "oriental": 11481, + "wesley": 11482, + "##nin": 11483, + "##hole": 11484, + "carnival": 11485, + "controller": 11486, + "detect": 11487, + "##ssa": 11488, + "bowed": 11489, + "educator": 11490, + "kosovo": 11491, + "macedonia": 11492, + "##sin": 11493, + "occupy": 11494, + "mastering": 11495, + "stephanie": 11496, + "janeiro": 11497, + "para": 11498, + "unaware": 11499, + "nurses": 11500, + "noon": 11501, + "135": 11502, + "cam": 11503, + "hopefully": 11504, + "ranger": 11505, + "combine": 11506, + "sociology": 11507, + "polar": 11508, + "rica": 11509, + "##eer": 11510, + "neill": 11511, + "##sman": 11512, + "holocaust": 11513, + "##ip": 11514, + "doubled": 11515, + "lust": 11516, + "1828": 11517, + "109": 11518, + "decent": 11519, + "cooling": 11520, + "unveiled": 11521, + "##card": 11522, + "1829": 11523, + "nsw": 11524, + "homer": 11525, + "chapman": 11526, + "meyer": 11527, + "##gin": 11528, + "dive": 11529, + "mae": 11530, + "reagan": 11531, + "expertise": 11532, + "##gled": 11533, + "darwin": 11534, + "brooke": 11535, + "sided": 11536, + "prosecution": 11537, + "investigating": 11538, + "comprised": 11539, + "petroleum": 11540, + "genres": 11541, + "reluctant": 11542, + "differently": 11543, + "trilogy": 11544, + "johns": 11545, + "vegetables": 11546, + "corpse": 11547, + "highlighted": 11548, + "lounge": 11549, + "pension": 11550, + "unsuccessfully": 11551, + "elegant": 11552, + "aided": 11553, + "ivory": 11554, + "beatles": 11555, + "amelia": 11556, + "cain": 11557, + "dubai": 11558, + "sunny": 11559, + "immigrant": 11560, + "babe": 11561, + "click": 11562, + "##nder": 11563, + "underwater": 11564, + "pepper": 11565, + "combining": 11566, + "mumbled": 11567, + "atlas": 11568, + "horns": 11569, + "accessed": 11570, + "ballad": 11571, + "physicians": 11572, + "homeless": 11573, + "gestured": 11574, + "rpm": 11575, + "freak": 11576, + "louisville": 11577, + "corporations": 11578, + "patriots": 11579, + "prizes": 11580, + "rational": 11581, + "warn": 11582, + "modes": 11583, + "decorative": 11584, + "overnight": 11585, + "din": 11586, + "troubled": 11587, + "phantom": 11588, + "##ort": 11589, + "monarch": 11590, + "sheer": 11591, + "##dorf": 11592, + "generals": 11593, + "guidelines": 11594, + "organs": 11595, + "addresses": 11596, + "##zon": 11597, + "enhance": 11598, + "curling": 11599, + "parishes": 11600, + "cord": 11601, + "##kie": 11602, + "linux": 11603, + "caesar": 11604, + "deutsche": 11605, + "bavaria": 11606, + "##bia": 11607, + "coleman": 11608, + "cyclone": 11609, + "##eria": 11610, + "bacon": 11611, + "petty": 11612, + "##yama": 11613, + "##old": 11614, + "hampton": 11615, + "diagnosis": 11616, + "1824": 11617, + "throws": 11618, + "complexity": 11619, + "rita": 11620, + "disputed": 11621, + "##₃": 11622, + "pablo": 11623, + "##sch": 11624, + "marketed": 11625, + "trafficking": 11626, + "##ulus": 11627, + "examine": 11628, + "plague": 11629, + "formats": 11630, + "##oh": 11631, + "vault": 11632, + "faithful": 11633, + "##bourne": 11634, + "webster": 11635, + "##ox": 11636, + "highlights": 11637, + "##ient": 11638, + "##ann": 11639, + "phones": 11640, + "vacuum": 11641, + "sandwich": 11642, + "modeling": 11643, + "##gated": 11644, + "bolivia": 11645, + "clergy": 11646, + "qualities": 11647, + "isabel": 11648, + "##nas": 11649, + "##ars": 11650, + "wears": 11651, + "screams": 11652, + "reunited": 11653, + "annoyed": 11654, + "bra": 11655, + "##ancy": 11656, + "##rate": 11657, + "differential": 11658, + "transmitter": 11659, + "tattoo": 11660, + "container": 11661, + "poker": 11662, + "##och": 11663, + "excessive": 11664, + "resides": 11665, + "cowboys": 11666, + "##tum": 11667, + "augustus": 11668, + "trash": 11669, + "providers": 11670, + "statute": 11671, + "retreated": 11672, + "balcony": 11673, + "reversed": 11674, + "void": 11675, + "storey": 11676, + "preceded": 11677, + "masses": 11678, + "leap": 11679, + "laughs": 11680, + "neighborhoods": 11681, + "wards": 11682, + "schemes": 11683, + "falcon": 11684, + "santo": 11685, + "battlefield": 11686, + "pad": 11687, + "ronnie": 11688, + "thread": 11689, + "lesbian": 11690, + "venus": 11691, + "##dian": 11692, + "beg": 11693, + "sandstone": 11694, + "daylight": 11695, + "punched": 11696, + "gwen": 11697, + "analog": 11698, + "stroked": 11699, + "wwe": 11700, + "acceptable": 11701, + "measurements": 11702, + "dec": 11703, + "toxic": 11704, + "##kel": 11705, + "adequate": 11706, + "surgical": 11707, + "economist": 11708, + "parameters": 11709, + "varsity": 11710, + "##sberg": 11711, + "quantity": 11712, + "ella": 11713, + "##chy": 11714, + "##rton": 11715, + "countess": 11716, + "generating": 11717, + "precision": 11718, + "diamonds": 11719, + "expressway": 11720, + "ga": 11721, + "##ı": 11722, + "1821": 11723, + "uruguay": 11724, + "talents": 11725, + "galleries": 11726, + "expenses": 11727, + "scanned": 11728, + "colleague": 11729, + "outlets": 11730, + "ryder": 11731, + "lucien": 11732, + "##ila": 11733, + "paramount": 11734, + "##bon": 11735, + "syracuse": 11736, + "dim": 11737, + "fangs": 11738, + "gown": 11739, + "sweep": 11740, + "##sie": 11741, + "toyota": 11742, + "missionaries": 11743, + "websites": 11744, + "##nsis": 11745, + "sentences": 11746, + "adviser": 11747, + "val": 11748, + "trademark": 11749, + "spells": 11750, + "##plane": 11751, + "patience": 11752, + "starter": 11753, + "slim": 11754, + "##borg": 11755, + "toe": 11756, + "incredibly": 11757, + "shoots": 11758, + "elliot": 11759, + "nobility": 11760, + "##wyn": 11761, + "cowboy": 11762, + "endorsed": 11763, + "gardner": 11764, + "tendency": 11765, + "persuaded": 11766, + "organisms": 11767, + "emissions": 11768, + "kazakhstan": 11769, + "amused": 11770, + "boring": 11771, + "chips": 11772, + "themed": 11773, + "##hand": 11774, + "llc": 11775, + "constantinople": 11776, + "chasing": 11777, + "systematic": 11778, + "guatemala": 11779, + "borrowed": 11780, + "erin": 11781, + "carey": 11782, + "##hard": 11783, + "highlands": 11784, + "struggles": 11785, + "1810": 11786, + "##ifying": 11787, + "##ced": 11788, + "wong": 11789, + "exceptions": 11790, + "develops": 11791, + "enlarged": 11792, + "kindergarten": 11793, + "castro": 11794, + "##ern": 11795, + "##rina": 11796, + "leigh": 11797, + "zombie": 11798, + "juvenile": 11799, + "##most": 11800, + "consul": 11801, + "##nar": 11802, + "sailor": 11803, + "hyde": 11804, + "clarence": 11805, + "intensive": 11806, + "pinned": 11807, + "nasty": 11808, + "useless": 11809, + "jung": 11810, + "clayton": 11811, + "stuffed": 11812, + "exceptional": 11813, + "ix": 11814, + "apostolic": 11815, + "230": 11816, + "transactions": 11817, + "##dge": 11818, + "exempt": 11819, + "swinging": 11820, + "cove": 11821, + "religions": 11822, + "##ash": 11823, + "shields": 11824, + "dairy": 11825, + "bypass": 11826, + "190": 11827, + "pursuing": 11828, + "bug": 11829, + "joyce": 11830, + "bombay": 11831, + "chassis": 11832, + "southampton": 11833, + "chat": 11834, + "interact": 11835, + "redesignated": 11836, + "##pen": 11837, + "nascar": 11838, + "pray": 11839, + "salmon": 11840, + "rigid": 11841, + "regained": 11842, + "malaysian": 11843, + "grim": 11844, + "publicity": 11845, + "constituted": 11846, + "capturing": 11847, + "toilet": 11848, + "delegate": 11849, + "purely": 11850, + "tray": 11851, + "drift": 11852, + "loosely": 11853, + "striker": 11854, + "weakened": 11855, + "trinidad": 11856, + "mitch": 11857, + "itv": 11858, + "defines": 11859, + "transmitted": 11860, + "ming": 11861, + "scarlet": 11862, + "nodding": 11863, + "fitzgerald": 11864, + "fu": 11865, + "narrowly": 11866, + "sp": 11867, + "tooth": 11868, + "standings": 11869, + "virtue": 11870, + "##₁": 11871, + "##wara": 11872, + "##cting": 11873, + "chateau": 11874, + "gloves": 11875, + "lid": 11876, + "##nel": 11877, + "hurting": 11878, + "conservatory": 11879, + "##pel": 11880, + "sinclair": 11881, + "reopened": 11882, + "sympathy": 11883, + "nigerian": 11884, + "strode": 11885, + "advocated": 11886, + "optional": 11887, + "chronic": 11888, + "discharge": 11889, + "##rc": 11890, + "suck": 11891, + "compatible": 11892, + "laurel": 11893, + "stella": 11894, + "shi": 11895, + "fails": 11896, + "wage": 11897, + "dodge": 11898, + "128": 11899, + "informal": 11900, + "sorts": 11901, + "levi": 11902, + "buddha": 11903, + "villagers": 11904, + "##aka": 11905, + "chronicles": 11906, + "heavier": 11907, + "summoned": 11908, + "gateway": 11909, + "3000": 11910, + "eleventh": 11911, + "jewelry": 11912, + "translations": 11913, + "accordingly": 11914, + "seas": 11915, + "##ency": 11916, + "fiber": 11917, + "pyramid": 11918, + "cubic": 11919, + "dragging": 11920, + "##ista": 11921, + "caring": 11922, + "##ops": 11923, + "android": 11924, + "contacted": 11925, + "lunar": 11926, + "##dt": 11927, + "kai": 11928, + "lisbon": 11929, + "patted": 11930, + "1826": 11931, + "sacramento": 11932, + "theft": 11933, + "madagascar": 11934, + "subtropical": 11935, + "disputes": 11936, + "ta": 11937, + "holidays": 11938, + "piper": 11939, + "willow": 11940, + "mare": 11941, + "cane": 11942, + "itunes": 11943, + "newfoundland": 11944, + "benny": 11945, + "companions": 11946, + "dong": 11947, + "raj": 11948, + "observe": 11949, + "roar": 11950, + "charming": 11951, + "plaque": 11952, + "tibetan": 11953, + "fossils": 11954, + "enacted": 11955, + "manning": 11956, + "bubble": 11957, + "tina": 11958, + "tanzania": 11959, + "##eda": 11960, + "##hir": 11961, + "funk": 11962, + "swamp": 11963, + "deputies": 11964, + "cloak": 11965, + "ufc": 11966, + "scenario": 11967, + "par": 11968, + "scratch": 11969, + "metals": 11970, + "anthem": 11971, + "guru": 11972, + "engaging": 11973, + "specially": 11974, + "##boat": 11975, + "dialects": 11976, + "nineteen": 11977, + "cecil": 11978, + "duet": 11979, + "disability": 11980, + "messenger": 11981, + "unofficial": 11982, + "##lies": 11983, + "defunct": 11984, + "eds": 11985, + "moonlight": 11986, + "drainage": 11987, + "surname": 11988, + "puzzle": 11989, + "honda": 11990, + "switching": 11991, + "conservatives": 11992, + "mammals": 11993, + "knox": 11994, + "broadcaster": 11995, + "sidewalk": 11996, + "cope": 11997, + "##ried": 11998, + "benson": 11999, + "princes": 12000, + "peterson": 12001, + "##sal": 12002, + "bedford": 12003, + "sharks": 12004, + "eli": 12005, + "wreck": 12006, + "alberto": 12007, + "gasp": 12008, + "archaeology": 12009, + "lgbt": 12010, + "teaches": 12011, + "securities": 12012, + "madness": 12013, + "compromise": 12014, + "waving": 12015, + "coordination": 12016, + "davidson": 12017, + "visions": 12018, + "leased": 12019, + "possibilities": 12020, + "eighty": 12021, + "jun": 12022, + "fernandez": 12023, + "enthusiasm": 12024, + "assassin": 12025, + "sponsorship": 12026, + "reviewer": 12027, + "kingdoms": 12028, + "estonian": 12029, + "laboratories": 12030, + "##fy": 12031, + "##nal": 12032, + "applies": 12033, + "verb": 12034, + "celebrations": 12035, + "##zzo": 12036, + "rowing": 12037, + "lightweight": 12038, + "sadness": 12039, + "submit": 12040, + "mvp": 12041, + "balanced": 12042, + "dude": 12043, + "##vas": 12044, + "explicitly": 12045, + "metric": 12046, + "magnificent": 12047, + "mound": 12048, + "brett": 12049, + "mohammad": 12050, + "mistakes": 12051, + "irregular": 12052, + "##hing": 12053, + "##ass": 12054, + "sanders": 12055, + "betrayed": 12056, + "shipped": 12057, + "surge": 12058, + "##enburg": 12059, + "reporters": 12060, + "termed": 12061, + "georg": 12062, + "pity": 12063, + "verbal": 12064, + "bulls": 12065, + "abbreviated": 12066, + "enabling": 12067, + "appealed": 12068, + "##are": 12069, + "##atic": 12070, + "sicily": 12071, + "sting": 12072, + "heel": 12073, + "sweetheart": 12074, + "bart": 12075, + "spacecraft": 12076, + "brutal": 12077, + "monarchy": 12078, + "##tter": 12079, + "aberdeen": 12080, + "cameo": 12081, + "diane": 12082, + "##ub": 12083, + "survivor": 12084, + "clyde": 12085, + "##aries": 12086, + "complaint": 12087, + "##makers": 12088, + "clarinet": 12089, + "delicious": 12090, + "chilean": 12091, + "karnataka": 12092, + "coordinates": 12093, + "1818": 12094, + "panties": 12095, + "##rst": 12096, + "pretending": 12097, + "ar": 12098, + "dramatically": 12099, + "kiev": 12100, + "bella": 12101, + "tends": 12102, + "distances": 12103, + "113": 12104, + "catalog": 12105, + "launching": 12106, + "instances": 12107, + "telecommunications": 12108, + "portable": 12109, + "lindsay": 12110, + "vatican": 12111, + "##eim": 12112, + "angles": 12113, + "aliens": 12114, + "marker": 12115, + "stint": 12116, + "screens": 12117, + "bolton": 12118, + "##rne": 12119, + "judy": 12120, + "wool": 12121, + "benedict": 12122, + "plasma": 12123, + "europa": 12124, + "spark": 12125, + "imaging": 12126, + "filmmaker": 12127, + "swiftly": 12128, + "##een": 12129, + "contributor": 12130, + "##nor": 12131, + "opted": 12132, + "stamps": 12133, + "apologize": 12134, + "financing": 12135, + "butter": 12136, + "gideon": 12137, + "sophisticated": 12138, + "alignment": 12139, + "avery": 12140, + "chemicals": 12141, + "yearly": 12142, + "speculation": 12143, + "prominence": 12144, + "professionally": 12145, + "##ils": 12146, + "immortal": 12147, + "institutional": 12148, + "inception": 12149, + "wrists": 12150, + "identifying": 12151, + "tribunal": 12152, + "derives": 12153, + "gains": 12154, + "##wo": 12155, + "papal": 12156, + "preference": 12157, + "linguistic": 12158, + "vince": 12159, + "operative": 12160, + "brewery": 12161, + "##ont": 12162, + "unemployment": 12163, + "boyd": 12164, + "##ured": 12165, + "##outs": 12166, + "albeit": 12167, + "prophet": 12168, + "1813": 12169, + "bi": 12170, + "##rr": 12171, + "##face": 12172, + "##rad": 12173, + "quarterly": 12174, + "asteroid": 12175, + "cleaned": 12176, + "radius": 12177, + "temper": 12178, + "##llen": 12179, + "telugu": 12180, + "jerk": 12181, + "viscount": 12182, + "menu": 12183, + "##ote": 12184, + "glimpse": 12185, + "##aya": 12186, + "yacht": 12187, + "hawaiian": 12188, + "baden": 12189, + "##rl": 12190, + "laptop": 12191, + "readily": 12192, + "##gu": 12193, + "monetary": 12194, + "offshore": 12195, + "scots": 12196, + "watches": 12197, + "##yang": 12198, + "##arian": 12199, + "upgrade": 12200, + "needle": 12201, + "xbox": 12202, + "lea": 12203, + "encyclopedia": 12204, + "flank": 12205, + "fingertips": 12206, + "##pus": 12207, + "delight": 12208, + "teachings": 12209, + "confirm": 12210, + "roth": 12211, + "beaches": 12212, + "midway": 12213, + "winters": 12214, + "##iah": 12215, + "teasing": 12216, + "daytime": 12217, + "beverly": 12218, + "gambling": 12219, + "bonnie": 12220, + "##backs": 12221, + "regulated": 12222, + "clement": 12223, + "hermann": 12224, + "tricks": 12225, + "knot": 12226, + "##shing": 12227, + "##uring": 12228, + "##vre": 12229, + "detached": 12230, + "ecological": 12231, + "owed": 12232, + "specialty": 12233, + "byron": 12234, + "inventor": 12235, + "bats": 12236, + "stays": 12237, + "screened": 12238, + "unesco": 12239, + "midland": 12240, + "trim": 12241, + "affection": 12242, + "##ander": 12243, + "##rry": 12244, + "jess": 12245, + "thoroughly": 12246, + "feedback": 12247, + "##uma": 12248, + "chennai": 12249, + "strained": 12250, + "heartbeat": 12251, + "wrapping": 12252, + "overtime": 12253, + "pleaded": 12254, + "##sworth": 12255, + "mon": 12256, + "leisure": 12257, + "oclc": 12258, + "##tate": 12259, + "##ele": 12260, + "feathers": 12261, + "angelo": 12262, + "thirds": 12263, + "nuts": 12264, + "surveys": 12265, + "clever": 12266, + "gill": 12267, + "commentator": 12268, + "##dos": 12269, + "darren": 12270, + "rides": 12271, + "gibraltar": 12272, + "##nc": 12273, + "##mu": 12274, + "dissolution": 12275, + "dedication": 12276, + "shin": 12277, + "meals": 12278, + "saddle": 12279, + "elvis": 12280, + "reds": 12281, + "chaired": 12282, + "taller": 12283, + "appreciation": 12284, + "functioning": 12285, + "niece": 12286, + "favored": 12287, + "advocacy": 12288, + "robbie": 12289, + "criminals": 12290, + "suffolk": 12291, + "yugoslav": 12292, + "passport": 12293, + "constable": 12294, + "congressman": 12295, + "hastings": 12296, + "vera": 12297, + "##rov": 12298, + "consecrated": 12299, + "sparks": 12300, + "ecclesiastical": 12301, + "confined": 12302, + "##ovich": 12303, + "muller": 12304, + "floyd": 12305, + "nora": 12306, + "1822": 12307, + "paved": 12308, + "1827": 12309, + "cumberland": 12310, + "ned": 12311, + "saga": 12312, + "spiral": 12313, + "##flow": 12314, + "appreciated": 12315, + "yi": 12316, + "collaborative": 12317, + "treating": 12318, + "similarities": 12319, + "feminine": 12320, + "finishes": 12321, + "##ib": 12322, + "jade": 12323, + "import": 12324, + "##nse": 12325, + "##hot": 12326, + "champagne": 12327, + "mice": 12328, + "securing": 12329, + "celebrities": 12330, + "helsinki": 12331, + "attributes": 12332, + "##gos": 12333, + "cousins": 12334, + "phases": 12335, + "ache": 12336, + "lucia": 12337, + "gandhi": 12338, + "submission": 12339, + "vicar": 12340, + "spear": 12341, + "shine": 12342, + "tasmania": 12343, + "biting": 12344, + "detention": 12345, + "constitute": 12346, + "tighter": 12347, + "seasonal": 12348, + "##gus": 12349, + "terrestrial": 12350, + "matthews": 12351, + "##oka": 12352, + "effectiveness": 12353, + "parody": 12354, + "philharmonic": 12355, + "##onic": 12356, + "1816": 12357, + "strangers": 12358, + "encoded": 12359, + "consortium": 12360, + "guaranteed": 12361, + "regards": 12362, + "shifts": 12363, + "tortured": 12364, + "collision": 12365, + "supervisor": 12366, + "inform": 12367, + "broader": 12368, + "insight": 12369, + "theaters": 12370, + "armour": 12371, + "emeritus": 12372, + "blink": 12373, + "incorporates": 12374, + "mapping": 12375, + "##50": 12376, + "##ein": 12377, + "handball": 12378, + "flexible": 12379, + "##nta": 12380, + "substantially": 12381, + "generous": 12382, + "thief": 12383, + "##own": 12384, + "carr": 12385, + "loses": 12386, + "1793": 12387, + "prose": 12388, + "ucla": 12389, + "romeo": 12390, + "generic": 12391, + "metallic": 12392, + "realization": 12393, + "damages": 12394, + "mk": 12395, + "commissioners": 12396, + "zach": 12397, + "default": 12398, + "##ther": 12399, + "helicopters": 12400, + "lengthy": 12401, + "stems": 12402, + "spa": 12403, + "partnered": 12404, + "spectators": 12405, + "rogue": 12406, + "indication": 12407, + "penalties": 12408, + "teresa": 12409, + "1801": 12410, + "sen": 12411, + "##tric": 12412, + "dalton": 12413, + "##wich": 12414, + "irving": 12415, + "photographic": 12416, + "##vey": 12417, + "dell": 12418, + "deaf": 12419, + "peters": 12420, + "excluded": 12421, + "unsure": 12422, + "##vable": 12423, + "patterson": 12424, + "crawled": 12425, + "##zio": 12426, + "resided": 12427, + "whipped": 12428, + "latvia": 12429, + "slower": 12430, + "ecole": 12431, + "pipes": 12432, + "employers": 12433, + "maharashtra": 12434, + "comparable": 12435, + "va": 12436, + "textile": 12437, + "pageant": 12438, + "##gel": 12439, + "alphabet": 12440, + "binary": 12441, + "irrigation": 12442, + "chartered": 12443, + "choked": 12444, + "antoine": 12445, + "offs": 12446, + "waking": 12447, + "supplement": 12448, + "##wen": 12449, + "quantities": 12450, + "demolition": 12451, + "regain": 12452, + "locate": 12453, + "urdu": 12454, + "folks": 12455, + "alt": 12456, + "114": 12457, + "##mc": 12458, + "scary": 12459, + "andreas": 12460, + "whites": 12461, + "##ava": 12462, + "classrooms": 12463, + "mw": 12464, + "aesthetic": 12465, + "publishes": 12466, + "valleys": 12467, + "guides": 12468, + "cubs": 12469, + "johannes": 12470, + "bryant": 12471, + "conventions": 12472, + "affecting": 12473, + "##itt": 12474, + "drain": 12475, + "awesome": 12476, + "isolation": 12477, + "prosecutor": 12478, + "ambitious": 12479, + "apology": 12480, + "captive": 12481, + "downs": 12482, + "atmospheric": 12483, + "lorenzo": 12484, + "aisle": 12485, + "beef": 12486, + "foul": 12487, + "##onia": 12488, + "kidding": 12489, + "composite": 12490, + "disturbed": 12491, + "illusion": 12492, + "natives": 12493, + "##ffer": 12494, + "emi": 12495, + "rockets": 12496, + "riverside": 12497, + "wartime": 12498, + "painters": 12499, + "adolf": 12500, + "melted": 12501, + "##ail": 12502, + "uncertainty": 12503, + "simulation": 12504, + "hawks": 12505, + "progressed": 12506, + "meantime": 12507, + "builder": 12508, + "spray": 12509, + "breach": 12510, + "unhappy": 12511, + "regina": 12512, + "russians": 12513, + "##urg": 12514, + "determining": 12515, + "##tation": 12516, + "tram": 12517, + "1806": 12518, + "##quin": 12519, + "aging": 12520, + "##12": 12521, + "1823": 12522, + "garion": 12523, + "rented": 12524, + "mister": 12525, + "diaz": 12526, + "terminated": 12527, + "clip": 12528, + "1817": 12529, + "depend": 12530, + "nervously": 12531, + "disco": 12532, + "owe": 12533, + "defenders": 12534, + "shiva": 12535, + "notorious": 12536, + "disbelief": 12537, + "shiny": 12538, + "worcester": 12539, + "##gation": 12540, + "##yr": 12541, + "trailing": 12542, + "undertook": 12543, + "islander": 12544, + "belarus": 12545, + "limitations": 12546, + "watershed": 12547, + "fuller": 12548, + "overlooking": 12549, + "utilized": 12550, + "raphael": 12551, + "1819": 12552, + "synthetic": 12553, + "breakdown": 12554, + "klein": 12555, + "##nate": 12556, + "moaned": 12557, + "memoir": 12558, + "lamb": 12559, + "practicing": 12560, + "##erly": 12561, + "cellular": 12562, + "arrows": 12563, + "exotic": 12564, + "##graphy": 12565, + "witches": 12566, + "117": 12567, + "charted": 12568, + "rey": 12569, + "hut": 12570, + "hierarchy": 12571, + "subdivision": 12572, + "freshwater": 12573, + "giuseppe": 12574, + "aloud": 12575, + "reyes": 12576, + "qatar": 12577, + "marty": 12578, + "sideways": 12579, + "utterly": 12580, + "sexually": 12581, + "jude": 12582, + "prayers": 12583, + "mccarthy": 12584, + "softball": 12585, + "blend": 12586, + "damien": 12587, + "##gging": 12588, + "##metric": 12589, + "wholly": 12590, + "erupted": 12591, + "lebanese": 12592, + "negro": 12593, + "revenues": 12594, + "tasted": 12595, + "comparative": 12596, + "teamed": 12597, + "transaction": 12598, + "labeled": 12599, + "maori": 12600, + "sovereignty": 12601, + "parkway": 12602, + "trauma": 12603, + "gran": 12604, + "malay": 12605, + "121": 12606, + "advancement": 12607, + "descendant": 12608, + "2020": 12609, + "buzz": 12610, + "salvation": 12611, + "inventory": 12612, + "symbolic": 12613, + "##making": 12614, + "antarctica": 12615, + "mps": 12616, + "##gas": 12617, + "##bro": 12618, + "mohammed": 12619, + "myanmar": 12620, + "holt": 12621, + "submarines": 12622, + "tones": 12623, + "##lman": 12624, + "locker": 12625, + "patriarch": 12626, + "bangkok": 12627, + "emerson": 12628, + "remarks": 12629, + "predators": 12630, + "kin": 12631, + "afghan": 12632, + "confession": 12633, + "norwich": 12634, + "rental": 12635, + "emerge": 12636, + "advantages": 12637, + "##zel": 12638, + "rca": 12639, + "##hold": 12640, + "shortened": 12641, + "storms": 12642, + "aidan": 12643, + "##matic": 12644, + "autonomy": 12645, + "compliance": 12646, + "##quet": 12647, + "dudley": 12648, + "atp": 12649, + "##osis": 12650, + "1803": 12651, + "motto": 12652, + "documentation": 12653, + "summary": 12654, + "professors": 12655, + "spectacular": 12656, + "christina": 12657, + "archdiocese": 12658, + "flashing": 12659, + "innocence": 12660, + "remake": 12661, + "##dell": 12662, + "psychic": 12663, + "reef": 12664, + "scare": 12665, + "employ": 12666, + "rs": 12667, + "sticks": 12668, + "meg": 12669, + "gus": 12670, + "leans": 12671, + "##ude": 12672, + "accompany": 12673, + "bergen": 12674, + "tomas": 12675, + "##iko": 12676, + "doom": 12677, + "wages": 12678, + "pools": 12679, + "##nch": 12680, + "##bes": 12681, + "breasts": 12682, + "scholarly": 12683, + "alison": 12684, + "outline": 12685, + "brittany": 12686, + "breakthrough": 12687, + "willis": 12688, + "realistic": 12689, + "##cut": 12690, + "##boro": 12691, + "competitor": 12692, + "##stan": 12693, + "pike": 12694, + "picnic": 12695, + "icon": 12696, + "designing": 12697, + "commercials": 12698, + "washing": 12699, + "villain": 12700, + "skiing": 12701, + "micro": 12702, + "costumes": 12703, + "auburn": 12704, + "halted": 12705, + "executives": 12706, + "##hat": 12707, + "logistics": 12708, + "cycles": 12709, + "vowel": 12710, + "applicable": 12711, + "barrett": 12712, + "exclaimed": 12713, + "eurovision": 12714, + "eternity": 12715, + "ramon": 12716, + "##umi": 12717, + "##lls": 12718, + "modifications": 12719, + "sweeping": 12720, + "disgust": 12721, + "##uck": 12722, + "torch": 12723, + "aviv": 12724, + "ensuring": 12725, + "rude": 12726, + "dusty": 12727, + "sonic": 12728, + "donovan": 12729, + "outskirts": 12730, + "cu": 12731, + "pathway": 12732, + "##band": 12733, + "##gun": 12734, + "##lines": 12735, + "disciplines": 12736, + "acids": 12737, + "cadet": 12738, + "paired": 12739, + "##40": 12740, + "sketches": 12741, + "##sive": 12742, + "marriages": 12743, + "##⁺": 12744, + "folding": 12745, + "peers": 12746, + "slovak": 12747, + "implies": 12748, + "admired": 12749, + "##beck": 12750, + "1880s": 12751, + "leopold": 12752, + "instinct": 12753, + "attained": 12754, + "weston": 12755, + "megan": 12756, + "horace": 12757, + "##ination": 12758, + "dorsal": 12759, + "ingredients": 12760, + "evolutionary": 12761, + "##its": 12762, + "complications": 12763, + "deity": 12764, + "lethal": 12765, + "brushing": 12766, + "levy": 12767, + "deserted": 12768, + "institutes": 12769, + "posthumously": 12770, + "delivering": 12771, + "telescope": 12772, + "coronation": 12773, + "motivated": 12774, + "rapids": 12775, + "luc": 12776, + "flicked": 12777, + "pays": 12778, + "volcano": 12779, + "tanner": 12780, + "weighed": 12781, + "##nica": 12782, + "crowds": 12783, + "frankie": 12784, + "gifted": 12785, + "addressing": 12786, + "granddaughter": 12787, + "winding": 12788, + "##rna": 12789, + "constantine": 12790, + "gomez": 12791, + "##front": 12792, + "landscapes": 12793, + "rudolf": 12794, + "anthropology": 12795, + "slate": 12796, + "werewolf": 12797, + "##lio": 12798, + "astronomy": 12799, + "circa": 12800, + "rouge": 12801, + "dreaming": 12802, + "sack": 12803, + "knelt": 12804, + "drowned": 12805, + "naomi": 12806, + "prolific": 12807, + "tracked": 12808, + "freezing": 12809, + "herb": 12810, + "##dium": 12811, + "agony": 12812, + "randall": 12813, + "twisting": 12814, + "wendy": 12815, + "deposit": 12816, + "touches": 12817, + "vein": 12818, + "wheeler": 12819, + "##bbled": 12820, + "##bor": 12821, + "batted": 12822, + "retaining": 12823, + "tire": 12824, + "presently": 12825, + "compare": 12826, + "specification": 12827, + "daemon": 12828, + "nigel": 12829, + "##grave": 12830, + "merry": 12831, + "recommendation": 12832, + "czechoslovakia": 12833, + "sandra": 12834, + "ng": 12835, + "roma": 12836, + "##sts": 12837, + "lambert": 12838, + "inheritance": 12839, + "sheikh": 12840, + "winchester": 12841, + "cries": 12842, + "examining": 12843, + "##yle": 12844, + "comeback": 12845, + "cuisine": 12846, + "nave": 12847, + "##iv": 12848, + "ko": 12849, + "retrieve": 12850, + "tomatoes": 12851, + "barker": 12852, + "polished": 12853, + "defining": 12854, + "irene": 12855, + "lantern": 12856, + "personalities": 12857, + "begging": 12858, + "tract": 12859, + "swore": 12860, + "1809": 12861, + "175": 12862, + "##gic": 12863, + "omaha": 12864, + "brotherhood": 12865, + "##rley": 12866, + "haiti": 12867, + "##ots": 12868, + "exeter": 12869, + "##ete": 12870, + "##zia": 12871, + "steele": 12872, + "dumb": 12873, + "pearson": 12874, + "210": 12875, + "surveyed": 12876, + "elisabeth": 12877, + "trends": 12878, + "##ef": 12879, + "fritz": 12880, + "##rf": 12881, + "premium": 12882, + "bugs": 12883, + "fraction": 12884, + "calmly": 12885, + "viking": 12886, + "##birds": 12887, + "tug": 12888, + "inserted": 12889, + "unusually": 12890, + "##ield": 12891, + "confronted": 12892, + "distress": 12893, + "crashing": 12894, + "brent": 12895, + "turks": 12896, + "resign": 12897, + "##olo": 12898, + "cambodia": 12899, + "gabe": 12900, + "sauce": 12901, + "##kal": 12902, + "evelyn": 12903, + "116": 12904, + "extant": 12905, + "clusters": 12906, + "quarry": 12907, + "teenagers": 12908, + "luna": 12909, + "##lers": 12910, + "##ister": 12911, + "affiliation": 12912, + "drill": 12913, + "##ashi": 12914, + "panthers": 12915, + "scenic": 12916, + "libya": 12917, + "anita": 12918, + "strengthen": 12919, + "inscriptions": 12920, + "##cated": 12921, + "lace": 12922, + "sued": 12923, + "judith": 12924, + "riots": 12925, + "##uted": 12926, + "mint": 12927, + "##eta": 12928, + "preparations": 12929, + "midst": 12930, + "dub": 12931, + "challenger": 12932, + "##vich": 12933, + "mock": 12934, + "cf": 12935, + "displaced": 12936, + "wicket": 12937, + "breaths": 12938, + "enables": 12939, + "schmidt": 12940, + "analyst": 12941, + "##lum": 12942, + "ag": 12943, + "highlight": 12944, + "automotive": 12945, + "axe": 12946, + "josef": 12947, + "newark": 12948, + "sufficiently": 12949, + "resembles": 12950, + "50th": 12951, + "##pal": 12952, + "flushed": 12953, + "mum": 12954, + "traits": 12955, + "##ante": 12956, + "commodore": 12957, + "incomplete": 12958, + "warming": 12959, + "titular": 12960, + "ceremonial": 12961, + "ethical": 12962, + "118": 12963, + "celebrating": 12964, + "eighteenth": 12965, + "cao": 12966, + "lima": 12967, + "medalist": 12968, + "mobility": 12969, + "strips": 12970, + "snakes": 12971, + "##city": 12972, + "miniature": 12973, + "zagreb": 12974, + "barton": 12975, + "escapes": 12976, + "umbrella": 12977, + "automated": 12978, + "doubted": 12979, + "differs": 12980, + "cooled": 12981, + "georgetown": 12982, + "dresden": 12983, + "cooked": 12984, + "fade": 12985, + "wyatt": 12986, + "rna": 12987, + "jacobs": 12988, + "carlton": 12989, + "abundant": 12990, + "stereo": 12991, + "boost": 12992, + "madras": 12993, + "inning": 12994, + "##hia": 12995, + "spur": 12996, + "ip": 12997, + "malayalam": 12998, + "begged": 12999, + "osaka": 13000, + "groan": 13001, + "escaping": 13002, + "charging": 13003, + "dose": 13004, + "vista": 13005, + "##aj": 13006, + "bud": 13007, + "papa": 13008, + "communists": 13009, + "advocates": 13010, + "edged": 13011, + "tri": 13012, + "##cent": 13013, + "resemble": 13014, + "peaking": 13015, + "necklace": 13016, + "fried": 13017, + "montenegro": 13018, + "saxony": 13019, + "goose": 13020, + "glances": 13021, + "stuttgart": 13022, + "curator": 13023, + "recruit": 13024, + "grocery": 13025, + "sympathetic": 13026, + "##tting": 13027, + "##fort": 13028, + "127": 13029, + "lotus": 13030, + "randolph": 13031, + "ancestor": 13032, + "##rand": 13033, + "succeeding": 13034, + "jupiter": 13035, + "1798": 13036, + "macedonian": 13037, + "##heads": 13038, + "hiking": 13039, + "1808": 13040, + "handing": 13041, + "fischer": 13042, + "##itive": 13043, + "garbage": 13044, + "node": 13045, + "##pies": 13046, + "prone": 13047, + "singular": 13048, + "papua": 13049, + "inclined": 13050, + "attractions": 13051, + "italia": 13052, + "pouring": 13053, + "motioned": 13054, + "grandma": 13055, + "garnered": 13056, + "jacksonville": 13057, + "corp": 13058, + "ego": 13059, + "ringing": 13060, + "aluminum": 13061, + "##hausen": 13062, + "ordering": 13063, + "##foot": 13064, + "drawer": 13065, + "traders": 13066, + "synagogue": 13067, + "##play": 13068, + "##kawa": 13069, + "resistant": 13070, + "wandering": 13071, + "fragile": 13072, + "fiona": 13073, + "teased": 13074, + "var": 13075, + "hardcore": 13076, + "soaked": 13077, + "jubilee": 13078, + "decisive": 13079, + "exposition": 13080, + "mercer": 13081, + "poster": 13082, + "valencia": 13083, + "hale": 13084, + "kuwait": 13085, + "1811": 13086, + "##ises": 13087, + "##wr": 13088, + "##eed": 13089, + "tavern": 13090, + "gamma": 13091, + "122": 13092, + "johan": 13093, + "##uer": 13094, + "airways": 13095, + "amino": 13096, + "gil": 13097, + "##ury": 13098, + "vocational": 13099, + "domains": 13100, + "torres": 13101, + "##sp": 13102, + "generator": 13103, + "folklore": 13104, + "outcomes": 13105, + "##keeper": 13106, + "canberra": 13107, + "shooter": 13108, + "fl": 13109, + "beams": 13110, + "confrontation": 13111, + "##lling": 13112, + "##gram": 13113, + "feb": 13114, + "aligned": 13115, + "forestry": 13116, + "pipeline": 13117, + "jax": 13118, + "motorway": 13119, + "conception": 13120, + "decay": 13121, + "##tos": 13122, + "coffin": 13123, + "##cott": 13124, + "stalin": 13125, + "1805": 13126, + "escorted": 13127, + "minded": 13128, + "##nam": 13129, + "sitcom": 13130, + "purchasing": 13131, + "twilight": 13132, + "veronica": 13133, + "additions": 13134, + "passive": 13135, + "tensions": 13136, + "straw": 13137, + "123": 13138, + "frequencies": 13139, + "1804": 13140, + "refugee": 13141, + "cultivation": 13142, + "##iate": 13143, + "christie": 13144, + "clary": 13145, + "bulletin": 13146, + "crept": 13147, + "disposal": 13148, + "##rich": 13149, + "##zong": 13150, + "processor": 13151, + "crescent": 13152, + "##rol": 13153, + "bmw": 13154, + "emphasized": 13155, + "whale": 13156, + "nazis": 13157, + "aurora": 13158, + "##eng": 13159, + "dwelling": 13160, + "hauled": 13161, + "sponsors": 13162, + "toledo": 13163, + "mega": 13164, + "ideology": 13165, + "theatres": 13166, + "tessa": 13167, + "cerambycidae": 13168, + "saves": 13169, + "turtle": 13170, + "cone": 13171, + "suspects": 13172, + "kara": 13173, + "rusty": 13174, + "yelling": 13175, + "greeks": 13176, + "mozart": 13177, + "shades": 13178, + "cocked": 13179, + "participant": 13180, + "##tro": 13181, + "shire": 13182, + "spit": 13183, + "freeze": 13184, + "necessity": 13185, + "##cos": 13186, + "inmates": 13187, + "nielsen": 13188, + "councillors": 13189, + "loaned": 13190, + "uncommon": 13191, + "omar": 13192, + "peasants": 13193, + "botanical": 13194, + "offspring": 13195, + "daniels": 13196, + "formations": 13197, + "jokes": 13198, + "1794": 13199, + "pioneers": 13200, + "sigma": 13201, + "licensing": 13202, + "##sus": 13203, + "wheelchair": 13204, + "polite": 13205, + "1807": 13206, + "liquor": 13207, + "pratt": 13208, + "trustee": 13209, + "##uta": 13210, + "forewings": 13211, + "balloon": 13212, + "##zz": 13213, + "kilometre": 13214, + "camping": 13215, + "explicit": 13216, + "casually": 13217, + "shawn": 13218, + "foolish": 13219, + "teammates": 13220, + "nm": 13221, + "hassan": 13222, + "carrie": 13223, + "judged": 13224, + "satisfy": 13225, + "vanessa": 13226, + "knives": 13227, + "selective": 13228, + "cnn": 13229, + "flowed": 13230, + "##lice": 13231, + "eclipse": 13232, + "stressed": 13233, + "eliza": 13234, + "mathematician": 13235, + "cease": 13236, + "cultivated": 13237, + "##roy": 13238, + "commissions": 13239, + "browns": 13240, + "##ania": 13241, + "destroyers": 13242, + "sheridan": 13243, + "meadow": 13244, + "##rius": 13245, + "minerals": 13246, + "##cial": 13247, + "downstream": 13248, + "clash": 13249, + "gram": 13250, + "memoirs": 13251, + "ventures": 13252, + "baha": 13253, + "seymour": 13254, + "archie": 13255, + "midlands": 13256, + "edith": 13257, + "fare": 13258, + "flynn": 13259, + "invite": 13260, + "canceled": 13261, + "tiles": 13262, + "stabbed": 13263, + "boulder": 13264, + "incorporate": 13265, + "amended": 13266, + "camden": 13267, + "facial": 13268, + "mollusk": 13269, + "unreleased": 13270, + "descriptions": 13271, + "yoga": 13272, + "grabs": 13273, + "550": 13274, + "raises": 13275, + "ramp": 13276, + "shiver": 13277, + "##rose": 13278, + "coined": 13279, + "pioneering": 13280, + "tunes": 13281, + "qing": 13282, + "warwick": 13283, + "tops": 13284, + "119": 13285, + "melanie": 13286, + "giles": 13287, + "##rous": 13288, + "wandered": 13289, + "##inal": 13290, + "annexed": 13291, + "nov": 13292, + "30th": 13293, + "unnamed": 13294, + "##ished": 13295, + "organizational": 13296, + "airplane": 13297, + "normandy": 13298, + "stoke": 13299, + "whistle": 13300, + "blessing": 13301, + "violations": 13302, + "chased": 13303, + "holders": 13304, + "shotgun": 13305, + "##ctic": 13306, + "outlet": 13307, + "reactor": 13308, + "##vik": 13309, + "tires": 13310, + "tearing": 13311, + "shores": 13312, + "fortified": 13313, + "mascot": 13314, + "constituencies": 13315, + "nc": 13316, + "columnist": 13317, + "productive": 13318, + "tibet": 13319, + "##rta": 13320, + "lineage": 13321, + "hooked": 13322, + "oct": 13323, + "tapes": 13324, + "judging": 13325, + "cody": 13326, + "##gger": 13327, + "hansen": 13328, + "kashmir": 13329, + "triggered": 13330, + "##eva": 13331, + "solved": 13332, + "cliffs": 13333, + "##tree": 13334, + "resisted": 13335, + "anatomy": 13336, + "protesters": 13337, + "transparent": 13338, + "implied": 13339, + "##iga": 13340, + "injection": 13341, + "mattress": 13342, + "excluding": 13343, + "##mbo": 13344, + "defenses": 13345, + "helpless": 13346, + "devotion": 13347, + "##elli": 13348, + "growl": 13349, + "liberals": 13350, + "weber": 13351, + "phenomena": 13352, + "atoms": 13353, + "plug": 13354, + "##iff": 13355, + "mortality": 13356, + "apprentice": 13357, + "howe": 13358, + "convincing": 13359, + "aaa": 13360, + "swimmer": 13361, + "barber": 13362, + "leone": 13363, + "promptly": 13364, + "sodium": 13365, + "def": 13366, + "nowadays": 13367, + "arise": 13368, + "##oning": 13369, + "gloucester": 13370, + "corrected": 13371, + "dignity": 13372, + "norm": 13373, + "erie": 13374, + "##ders": 13375, + "elders": 13376, + "evacuated": 13377, + "sylvia": 13378, + "compression": 13379, + "##yar": 13380, + "hartford": 13381, + "pose": 13382, + "backpack": 13383, + "reasoning": 13384, + "accepts": 13385, + "24th": 13386, + "wipe": 13387, + "millimetres": 13388, + "marcel": 13389, + "##oda": 13390, + "dodgers": 13391, + "albion": 13392, + "1790": 13393, + "overwhelmed": 13394, + "aerospace": 13395, + "oaks": 13396, + "1795": 13397, + "showcase": 13398, + "acknowledge": 13399, + "recovering": 13400, + "nolan": 13401, + "ashe": 13402, + "hurts": 13403, + "geology": 13404, + "fashioned": 13405, + "disappearance": 13406, + "farewell": 13407, + "swollen": 13408, + "shrug": 13409, + "marquis": 13410, + "wimbledon": 13411, + "124": 13412, + "rue": 13413, + "1792": 13414, + "commemorate": 13415, + "reduces": 13416, + "experiencing": 13417, + "inevitable": 13418, + "calcutta": 13419, + "intel": 13420, + "##court": 13421, + "murderer": 13422, + "sticking": 13423, + "fisheries": 13424, + "imagery": 13425, + "bloom": 13426, + "280": 13427, + "brake": 13428, + "##inus": 13429, + "gustav": 13430, + "hesitation": 13431, + "memorable": 13432, + "po": 13433, + "viral": 13434, + "beans": 13435, + "accidents": 13436, + "tunisia": 13437, + "antenna": 13438, + "spilled": 13439, + "consort": 13440, + "treatments": 13441, + "aye": 13442, + "perimeter": 13443, + "##gard": 13444, + "donation": 13445, + "hostage": 13446, + "migrated": 13447, + "banker": 13448, + "addiction": 13449, + "apex": 13450, + "lil": 13451, + "trout": 13452, + "##ously": 13453, + "conscience": 13454, + "##nova": 13455, + "rams": 13456, + "sands": 13457, + "genome": 13458, + "passionate": 13459, + "troubles": 13460, + "##lets": 13461, + "##set": 13462, + "amid": 13463, + "##ibility": 13464, + "##ret": 13465, + "higgins": 13466, + "exceed": 13467, + "vikings": 13468, + "##vie": 13469, + "payne": 13470, + "##zan": 13471, + "muscular": 13472, + "##ste": 13473, + "defendant": 13474, + "sucking": 13475, + "##wal": 13476, + "ibrahim": 13477, + "fuselage": 13478, + "claudia": 13479, + "vfl": 13480, + "europeans": 13481, + "snails": 13482, + "interval": 13483, + "##garh": 13484, + "preparatory": 13485, + "statewide": 13486, + "tasked": 13487, + "lacrosse": 13488, + "viktor": 13489, + "##lation": 13490, + "angola": 13491, + "##hra": 13492, + "flint": 13493, + "implications": 13494, + "employs": 13495, + "teens": 13496, + "patrons": 13497, + "stall": 13498, + "weekends": 13499, + "barriers": 13500, + "scrambled": 13501, + "nucleus": 13502, + "tehran": 13503, + "jenna": 13504, + "parsons": 13505, + "lifelong": 13506, + "robots": 13507, + "displacement": 13508, + "5000": 13509, + "##bles": 13510, + "precipitation": 13511, + "##gt": 13512, + "knuckles": 13513, + "clutched": 13514, + "1802": 13515, + "marrying": 13516, + "ecology": 13517, + "marx": 13518, + "accusations": 13519, + "declare": 13520, + "scars": 13521, + "kolkata": 13522, + "mat": 13523, + "meadows": 13524, + "bermuda": 13525, + "skeleton": 13526, + "finalists": 13527, + "vintage": 13528, + "crawl": 13529, + "coordinate": 13530, + "affects": 13531, + "subjected": 13532, + "orchestral": 13533, + "mistaken": 13534, + "##tc": 13535, + "mirrors": 13536, + "dipped": 13537, + "relied": 13538, + "260": 13539, + "arches": 13540, + "candle": 13541, + "##nick": 13542, + "incorporating": 13543, + "wildly": 13544, + "fond": 13545, + "basilica": 13546, + "owl": 13547, + "fringe": 13548, + "rituals": 13549, + "whispering": 13550, + "stirred": 13551, + "feud": 13552, + "tertiary": 13553, + "slick": 13554, + "goat": 13555, + "honorable": 13556, + "whereby": 13557, + "skip": 13558, + "ricardo": 13559, + "stripes": 13560, + "parachute": 13561, + "adjoining": 13562, + "submerged": 13563, + "synthesizer": 13564, + "##gren": 13565, + "intend": 13566, + "positively": 13567, + "ninety": 13568, + "phi": 13569, + "beaver": 13570, + "partition": 13571, + "fellows": 13572, + "alexis": 13573, + "prohibition": 13574, + "carlisle": 13575, + "bizarre": 13576, + "fraternity": 13577, + "##bre": 13578, + "doubts": 13579, + "icy": 13580, + "cbc": 13581, + "aquatic": 13582, + "sneak": 13583, + "sonny": 13584, + "combines": 13585, + "airports": 13586, + "crude": 13587, + "supervised": 13588, + "spatial": 13589, + "merge": 13590, + "alfonso": 13591, + "##bic": 13592, + "corrupt": 13593, + "scan": 13594, + "undergo": 13595, + "##ams": 13596, + "disabilities": 13597, + "colombian": 13598, + "comparing": 13599, + "dolphins": 13600, + "perkins": 13601, + "##lish": 13602, + "reprinted": 13603, + "unanimous": 13604, + "bounced": 13605, + "hairs": 13606, + "underworld": 13607, + "midwest": 13608, + "semester": 13609, + "bucket": 13610, + "paperback": 13611, + "miniseries": 13612, + "coventry": 13613, + "demise": 13614, + "##leigh": 13615, + "demonstrations": 13616, + "sensor": 13617, + "rotating": 13618, + "yan": 13619, + "##hler": 13620, + "arrange": 13621, + "soils": 13622, + "##idge": 13623, + "hyderabad": 13624, + "labs": 13625, + "##dr": 13626, + "brakes": 13627, + "grandchildren": 13628, + "##nde": 13629, + "negotiated": 13630, + "rover": 13631, + "ferrari": 13632, + "continuation": 13633, + "directorate": 13634, + "augusta": 13635, + "stevenson": 13636, + "counterpart": 13637, + "gore": 13638, + "##rda": 13639, + "nursery": 13640, + "rican": 13641, + "ave": 13642, + "collectively": 13643, + "broadly": 13644, + "pastoral": 13645, + "repertoire": 13646, + "asserted": 13647, + "discovering": 13648, + "nordic": 13649, + "styled": 13650, + "fiba": 13651, + "cunningham": 13652, + "harley": 13653, + "middlesex": 13654, + "survives": 13655, + "tumor": 13656, + "tempo": 13657, + "zack": 13658, + "aiming": 13659, + "lok": 13660, + "urgent": 13661, + "##rade": 13662, + "##nto": 13663, + "devils": 13664, + "##ement": 13665, + "contractor": 13666, + "turin": 13667, + "##wl": 13668, + "##ool": 13669, + "bliss": 13670, + "repaired": 13671, + "simmons": 13672, + "moan": 13673, + "astronomical": 13674, + "cr": 13675, + "negotiate": 13676, + "lyric": 13677, + "1890s": 13678, + "lara": 13679, + "bred": 13680, + "clad": 13681, + "angus": 13682, + "pbs": 13683, + "##ience": 13684, + "engineered": 13685, + "posed": 13686, + "##lk": 13687, + "hernandez": 13688, + "possessions": 13689, + "elbows": 13690, + "psychiatric": 13691, + "strokes": 13692, + "confluence": 13693, + "electorate": 13694, + "lifts": 13695, + "campuses": 13696, + "lava": 13697, + "alps": 13698, + "##ep": 13699, + "##ution": 13700, + "##date": 13701, + "physicist": 13702, + "woody": 13703, + "##page": 13704, + "##ographic": 13705, + "##itis": 13706, + "juliet": 13707, + "reformation": 13708, + "sparhawk": 13709, + "320": 13710, + "complement": 13711, + "suppressed": 13712, + "jewel": 13713, + "##½": 13714, + "floated": 13715, + "##kas": 13716, + "continuity": 13717, + "sadly": 13718, + "##ische": 13719, + "inability": 13720, + "melting": 13721, + "scanning": 13722, + "paula": 13723, + "flour": 13724, + "judaism": 13725, + "safer": 13726, + "vague": 13727, + "##lm": 13728, + "solving": 13729, + "curb": 13730, + "##stown": 13731, + "financially": 13732, + "gable": 13733, + "bees": 13734, + "expired": 13735, + "miserable": 13736, + "cassidy": 13737, + "dominion": 13738, + "1789": 13739, + "cupped": 13740, + "145": 13741, + "robbery": 13742, + "facto": 13743, + "amos": 13744, + "warden": 13745, + "resume": 13746, + "tallest": 13747, + "marvin": 13748, + "ing": 13749, + "pounded": 13750, + "usd": 13751, + "declaring": 13752, + "gasoline": 13753, + "##aux": 13754, + "darkened": 13755, + "270": 13756, + "650": 13757, + "sophomore": 13758, + "##mere": 13759, + "erection": 13760, + "gossip": 13761, + "televised": 13762, + "risen": 13763, + "dial": 13764, + "##eu": 13765, + "pillars": 13766, + "##link": 13767, + "passages": 13768, + "profound": 13769, + "##tina": 13770, + "arabian": 13771, + "ashton": 13772, + "silicon": 13773, + "nail": 13774, + "##ead": 13775, + "##lated": 13776, + "##wer": 13777, + "##hardt": 13778, + "fleming": 13779, + "firearms": 13780, + "ducked": 13781, + "circuits": 13782, + "blows": 13783, + "waterloo": 13784, + "titans": 13785, + "##lina": 13786, + "atom": 13787, + "fireplace": 13788, + "cheshire": 13789, + "financed": 13790, + "activation": 13791, + "algorithms": 13792, + "##zzi": 13793, + "constituent": 13794, + "catcher": 13795, + "cherokee": 13796, + "partnerships": 13797, + "sexuality": 13798, + "platoon": 13799, + "tragic": 13800, + "vivian": 13801, + "guarded": 13802, + "whiskey": 13803, + "meditation": 13804, + "poetic": 13805, + "##late": 13806, + "##nga": 13807, + "##ake": 13808, + "porto": 13809, + "listeners": 13810, + "dominance": 13811, + "kendra": 13812, + "mona": 13813, + "chandler": 13814, + "factions": 13815, + "22nd": 13816, + "salisbury": 13817, + "attitudes": 13818, + "derivative": 13819, + "##ido": 13820, + "##haus": 13821, + "intake": 13822, + "paced": 13823, + "javier": 13824, + "illustrator": 13825, + "barrels": 13826, + "bias": 13827, + "cockpit": 13828, + "burnett": 13829, + "dreamed": 13830, + "ensuing": 13831, + "##anda": 13832, + "receptors": 13833, + "someday": 13834, + "hawkins": 13835, + "mattered": 13836, + "##lal": 13837, + "slavic": 13838, + "1799": 13839, + "jesuit": 13840, + "cameroon": 13841, + "wasted": 13842, + "tai": 13843, + "wax": 13844, + "lowering": 13845, + "victorious": 13846, + "freaking": 13847, + "outright": 13848, + "hancock": 13849, + "librarian": 13850, + "sensing": 13851, + "bald": 13852, + "calcium": 13853, + "myers": 13854, + "tablet": 13855, + "announcing": 13856, + "barack": 13857, + "shipyard": 13858, + "pharmaceutical": 13859, + "##uan": 13860, + "greenwich": 13861, + "flush": 13862, + "medley": 13863, + "patches": 13864, + "wolfgang": 13865, + "pt": 13866, + "speeches": 13867, + "acquiring": 13868, + "exams": 13869, + "nikolai": 13870, + "##gg": 13871, + "hayden": 13872, + "kannada": 13873, + "##type": 13874, + "reilly": 13875, + "##pt": 13876, + "waitress": 13877, + "abdomen": 13878, + "devastated": 13879, + "capped": 13880, + "pseudonym": 13881, + "pharmacy": 13882, + "fulfill": 13883, + "paraguay": 13884, + "1796": 13885, + "clicked": 13886, + "##trom": 13887, + "archipelago": 13888, + "syndicated": 13889, + "##hman": 13890, + "lumber": 13891, + "orgasm": 13892, + "rejection": 13893, + "clifford": 13894, + "lorraine": 13895, + "advent": 13896, + "mafia": 13897, + "rodney": 13898, + "brock": 13899, + "##ght": 13900, + "##used": 13901, + "##elia": 13902, + "cassette": 13903, + "chamberlain": 13904, + "despair": 13905, + "mongolia": 13906, + "sensors": 13907, + "developmental": 13908, + "upstream": 13909, + "##eg": 13910, + "##alis": 13911, + "spanning": 13912, + "165": 13913, + "trombone": 13914, + "basque": 13915, + "seeded": 13916, + "interred": 13917, + "renewable": 13918, + "rhys": 13919, + "leapt": 13920, + "revision": 13921, + "molecule": 13922, + "##ages": 13923, + "chord": 13924, + "vicious": 13925, + "nord": 13926, + "shivered": 13927, + "23rd": 13928, + "arlington": 13929, + "debts": 13930, + "corpus": 13931, + "sunrise": 13932, + "bays": 13933, + "blackburn": 13934, + "centimetres": 13935, + "##uded": 13936, + "shuddered": 13937, + "gm": 13938, + "strangely": 13939, + "gripping": 13940, + "cartoons": 13941, + "isabelle": 13942, + "orbital": 13943, + "##ppa": 13944, + "seals": 13945, + "proving": 13946, + "##lton": 13947, + "refusal": 13948, + "strengthened": 13949, + "bust": 13950, + "assisting": 13951, + "baghdad": 13952, + "batsman": 13953, + "portrayal": 13954, + "mara": 13955, + "pushes": 13956, + "spears": 13957, + "og": 13958, + "##cock": 13959, + "reside": 13960, + "nathaniel": 13961, + "brennan": 13962, + "1776": 13963, + "confirmation": 13964, + "caucus": 13965, + "##worthy": 13966, + "markings": 13967, + "yemen": 13968, + "nobles": 13969, + "ku": 13970, + "lazy": 13971, + "viewer": 13972, + "catalan": 13973, + "encompasses": 13974, + "sawyer": 13975, + "##fall": 13976, + "sparked": 13977, + "substances": 13978, + "patents": 13979, + "braves": 13980, + "arranger": 13981, + "evacuation": 13982, + "sergio": 13983, + "persuade": 13984, + "dover": 13985, + "tolerance": 13986, + "penguin": 13987, + "cum": 13988, + "jockey": 13989, + "insufficient": 13990, + "townships": 13991, + "occupying": 13992, + "declining": 13993, + "plural": 13994, + "processed": 13995, + "projection": 13996, + "puppet": 13997, + "flanders": 13998, + "introduces": 13999, + "liability": 14000, + "##yon": 14001, + "gymnastics": 14002, + "antwerp": 14003, + "taipei": 14004, + "hobart": 14005, + "candles": 14006, + "jeep": 14007, + "wes": 14008, + "observers": 14009, + "126": 14010, + "chaplain": 14011, + "bundle": 14012, + "glorious": 14013, + "##hine": 14014, + "hazel": 14015, + "flung": 14016, + "sol": 14017, + "excavations": 14018, + "dumped": 14019, + "stares": 14020, + "sh": 14021, + "bangalore": 14022, + "triangular": 14023, + "icelandic": 14024, + "intervals": 14025, + "expressing": 14026, + "turbine": 14027, + "##vers": 14028, + "songwriting": 14029, + "crafts": 14030, + "##igo": 14031, + "jasmine": 14032, + "ditch": 14033, + "rite": 14034, + "##ways": 14035, + "entertaining": 14036, + "comply": 14037, + "sorrow": 14038, + "wrestlers": 14039, + "basel": 14040, + "emirates": 14041, + "marian": 14042, + "rivera": 14043, + "helpful": 14044, + "##some": 14045, + "caution": 14046, + "downward": 14047, + "networking": 14048, + "##atory": 14049, + "##tered": 14050, + "darted": 14051, + "genocide": 14052, + "emergence": 14053, + "replies": 14054, + "specializing": 14055, + "spokesman": 14056, + "convenient": 14057, + "unlocked": 14058, + "fading": 14059, + "augustine": 14060, + "concentrations": 14061, + "resemblance": 14062, + "elijah": 14063, + "investigator": 14064, + "andhra": 14065, + "##uda": 14066, + "promotes": 14067, + "bean": 14068, + "##rrell": 14069, + "fleeing": 14070, + "wan": 14071, + "simone": 14072, + "announcer": 14073, + "##ame": 14074, + "##bby": 14075, + "lydia": 14076, + "weaver": 14077, + "132": 14078, + "residency": 14079, + "modification": 14080, + "##fest": 14081, + "stretches": 14082, + "##ast": 14083, + "alternatively": 14084, + "nat": 14085, + "lowe": 14086, + "lacks": 14087, + "##ented": 14088, + "pam": 14089, + "tile": 14090, + "concealed": 14091, + "inferior": 14092, + "abdullah": 14093, + "residences": 14094, + "tissues": 14095, + "vengeance": 14096, + "##ided": 14097, + "moisture": 14098, + "peculiar": 14099, + "groove": 14100, + "zip": 14101, + "bologna": 14102, + "jennings": 14103, + "ninja": 14104, + "oversaw": 14105, + "zombies": 14106, + "pumping": 14107, + "batch": 14108, + "livingston": 14109, + "emerald": 14110, + "installations": 14111, + "1797": 14112, + "peel": 14113, + "nitrogen": 14114, + "rama": 14115, + "##fying": 14116, + "##star": 14117, + "schooling": 14118, + "strands": 14119, + "responding": 14120, + "werner": 14121, + "##ost": 14122, + "lime": 14123, + "casa": 14124, + "accurately": 14125, + "targeting": 14126, + "##rod": 14127, + "underway": 14128, + "##uru": 14129, + "hemisphere": 14130, + "lester": 14131, + "##yard": 14132, + "occupies": 14133, + "2d": 14134, + "griffith": 14135, + "angrily": 14136, + "reorganized": 14137, + "##owing": 14138, + "courtney": 14139, + "deposited": 14140, + "##dd": 14141, + "##30": 14142, + "estadio": 14143, + "##ifies": 14144, + "dunn": 14145, + "exiled": 14146, + "##ying": 14147, + "checks": 14148, + "##combe": 14149, + "##о": 14150, + "##fly": 14151, + "successes": 14152, + "unexpectedly": 14153, + "blu": 14154, + "assessed": 14155, + "##flower": 14156, + "##ه": 14157, + "observing": 14158, + "sacked": 14159, + "spiders": 14160, + "kn": 14161, + "##tail": 14162, + "mu": 14163, + "nodes": 14164, + "prosperity": 14165, + "audrey": 14166, + "divisional": 14167, + "155": 14168, + "broncos": 14169, + "tangled": 14170, + "adjust": 14171, + "feeds": 14172, + "erosion": 14173, + "paolo": 14174, + "surf": 14175, + "directory": 14176, + "snatched": 14177, + "humid": 14178, + "admiralty": 14179, + "screwed": 14180, + "gt": 14181, + "reddish": 14182, + "##nese": 14183, + "modules": 14184, + "trench": 14185, + "lamps": 14186, + "bind": 14187, + "leah": 14188, + "bucks": 14189, + "competes": 14190, + "##nz": 14191, + "##form": 14192, + "transcription": 14193, + "##uc": 14194, + "isles": 14195, + "violently": 14196, + "clutching": 14197, + "pga": 14198, + "cyclist": 14199, + "inflation": 14200, + "flats": 14201, + "ragged": 14202, + "unnecessary": 14203, + "##hian": 14204, + "stubborn": 14205, + "coordinated": 14206, + "harriet": 14207, + "baba": 14208, + "disqualified": 14209, + "330": 14210, + "insect": 14211, + "wolfe": 14212, + "##fies": 14213, + "reinforcements": 14214, + "rocked": 14215, + "duel": 14216, + "winked": 14217, + "embraced": 14218, + "bricks": 14219, + "##raj": 14220, + "hiatus": 14221, + "defeats": 14222, + "pending": 14223, + "brightly": 14224, + "jealousy": 14225, + "##xton": 14226, + "##hm": 14227, + "##uki": 14228, + "lena": 14229, + "gdp": 14230, + "colorful": 14231, + "##dley": 14232, + "stein": 14233, + "kidney": 14234, + "##shu": 14235, + "underwear": 14236, + "wanderers": 14237, + "##haw": 14238, + "##icus": 14239, + "guardians": 14240, + "m³": 14241, + "roared": 14242, + "habits": 14243, + "##wise": 14244, + "permits": 14245, + "gp": 14246, + "uranium": 14247, + "punished": 14248, + "disguise": 14249, + "bundesliga": 14250, + "elise": 14251, + "dundee": 14252, + "erotic": 14253, + "partisan": 14254, + "pi": 14255, + "collectors": 14256, + "float": 14257, + "individually": 14258, + "rendering": 14259, + "behavioral": 14260, + "bucharest": 14261, + "ser": 14262, + "hare": 14263, + "valerie": 14264, + "corporal": 14265, + "nutrition": 14266, + "proportional": 14267, + "##isa": 14268, + "immense": 14269, + "##kis": 14270, + "pavement": 14271, + "##zie": 14272, + "##eld": 14273, + "sutherland": 14274, + "crouched": 14275, + "1775": 14276, + "##lp": 14277, + "suzuki": 14278, + "trades": 14279, + "endurance": 14280, + "operas": 14281, + "crosby": 14282, + "prayed": 14283, + "priory": 14284, + "rory": 14285, + "socially": 14286, + "##urn": 14287, + "gujarat": 14288, + "##pu": 14289, + "walton": 14290, + "cube": 14291, + "pasha": 14292, + "privilege": 14293, + "lennon": 14294, + "floods": 14295, + "thorne": 14296, + "waterfall": 14297, + "nipple": 14298, + "scouting": 14299, + "approve": 14300, + "##lov": 14301, + "minorities": 14302, + "voter": 14303, + "dwight": 14304, + "extensions": 14305, + "assure": 14306, + "ballroom": 14307, + "slap": 14308, + "dripping": 14309, + "privileges": 14310, + "rejoined": 14311, + "confessed": 14312, + "demonstrating": 14313, + "patriotic": 14314, + "yell": 14315, + "investor": 14316, + "##uth": 14317, + "pagan": 14318, + "slumped": 14319, + "squares": 14320, + "##cle": 14321, + "##kins": 14322, + "confront": 14323, + "bert": 14324, + "embarrassment": 14325, + "##aid": 14326, + "aston": 14327, + "urging": 14328, + "sweater": 14329, + "starr": 14330, + "yuri": 14331, + "brains": 14332, + "williamson": 14333, + "commuter": 14334, + "mortar": 14335, + "structured": 14336, + "selfish": 14337, + "exports": 14338, + "##jon": 14339, + "cds": 14340, + "##him": 14341, + "unfinished": 14342, + "##rre": 14343, + "mortgage": 14344, + "destinations": 14345, + "##nagar": 14346, + "canoe": 14347, + "solitary": 14348, + "buchanan": 14349, + "delays": 14350, + "magistrate": 14351, + "fk": 14352, + "##pling": 14353, + "motivation": 14354, + "##lier": 14355, + "##vier": 14356, + "recruiting": 14357, + "assess": 14358, + "##mouth": 14359, + "malik": 14360, + "antique": 14361, + "1791": 14362, + "pius": 14363, + "rahman": 14364, + "reich": 14365, + "tub": 14366, + "zhou": 14367, + "smashed": 14368, + "airs": 14369, + "galway": 14370, + "xii": 14371, + "conditioning": 14372, + "honduras": 14373, + "discharged": 14374, + "dexter": 14375, + "##pf": 14376, + "lionel": 14377, + "129": 14378, + "debates": 14379, + "lemon": 14380, + "tiffany": 14381, + "volunteered": 14382, + "dom": 14383, + "dioxide": 14384, + "procession": 14385, + "devi": 14386, + "sic": 14387, + "tremendous": 14388, + "advertisements": 14389, + "colts": 14390, + "transferring": 14391, + "verdict": 14392, + "hanover": 14393, + "decommissioned": 14394, + "utter": 14395, + "relate": 14396, + "pac": 14397, + "racism": 14398, + "##top": 14399, + "beacon": 14400, + "limp": 14401, + "similarity": 14402, + "terra": 14403, + "occurrence": 14404, + "ant": 14405, + "##how": 14406, + "becky": 14407, + "capt": 14408, + "updates": 14409, + "armament": 14410, + "richie": 14411, + "pal": 14412, + "##graph": 14413, + "halloween": 14414, + "mayo": 14415, + "##ssen": 14416, + "##bone": 14417, + "cara": 14418, + "serena": 14419, + "fcc": 14420, + "dolls": 14421, + "obligations": 14422, + "##dling": 14423, + "violated": 14424, + "lafayette": 14425, + "jakarta": 14426, + "exploitation": 14427, + "##ime": 14428, + "infamous": 14429, + "iconic": 14430, + "##lah": 14431, + "##park": 14432, + "kitty": 14433, + "moody": 14434, + "reginald": 14435, + "dread": 14436, + "spill": 14437, + "crystals": 14438, + "olivier": 14439, + "modeled": 14440, + "bluff": 14441, + "equilibrium": 14442, + "separating": 14443, + "notices": 14444, + "ordnance": 14445, + "extinction": 14446, + "onset": 14447, + "cosmic": 14448, + "attachment": 14449, + "sammy": 14450, + "expose": 14451, + "privy": 14452, + "anchored": 14453, + "##bil": 14454, + "abbott": 14455, + "admits": 14456, + "bending": 14457, + "baritone": 14458, + "emmanuel": 14459, + "policeman": 14460, + "vaughan": 14461, + "winged": 14462, + "climax": 14463, + "dresses": 14464, + "denny": 14465, + "polytechnic": 14466, + "mohamed": 14467, + "burmese": 14468, + "authentic": 14469, + "nikki": 14470, + "genetics": 14471, + "grandparents": 14472, + "homestead": 14473, + "gaza": 14474, + "postponed": 14475, + "metacritic": 14476, + "una": 14477, + "##sby": 14478, + "##bat": 14479, + "unstable": 14480, + "dissertation": 14481, + "##rial": 14482, + "##cian": 14483, + "curls": 14484, + "obscure": 14485, + "uncovered": 14486, + "bronx": 14487, + "praying": 14488, + "disappearing": 14489, + "##hoe": 14490, + "prehistoric": 14491, + "coke": 14492, + "turret": 14493, + "mutations": 14494, + "nonprofit": 14495, + "pits": 14496, + "monaco": 14497, + "##ي": 14498, + "##usion": 14499, + "prominently": 14500, + "dispatched": 14501, + "podium": 14502, + "##mir": 14503, + "uci": 14504, + "##uation": 14505, + "133": 14506, + "fortifications": 14507, + "birthplace": 14508, + "kendall": 14509, + "##lby": 14510, + "##oll": 14511, + "preacher": 14512, + "rack": 14513, + "goodman": 14514, + "##rman": 14515, + "persistent": 14516, + "##ott": 14517, + "countless": 14518, + "jaime": 14519, + "recorder": 14520, + "lexington": 14521, + "persecution": 14522, + "jumps": 14523, + "renewal": 14524, + "wagons": 14525, + "##11": 14526, + "crushing": 14527, + "##holder": 14528, + "decorations": 14529, + "##lake": 14530, + "abundance": 14531, + "wrath": 14532, + "laundry": 14533, + "£1": 14534, + "garde": 14535, + "##rp": 14536, + "jeanne": 14537, + "beetles": 14538, + "peasant": 14539, + "##sl": 14540, + "splitting": 14541, + "caste": 14542, + "sergei": 14543, + "##rer": 14544, + "##ema": 14545, + "scripts": 14546, + "##ively": 14547, + "rub": 14548, + "satellites": 14549, + "##vor": 14550, + "inscribed": 14551, + "verlag": 14552, + "scrapped": 14553, + "gale": 14554, + "packages": 14555, + "chick": 14556, + "potato": 14557, + "slogan": 14558, + "kathleen": 14559, + "arabs": 14560, + "##culture": 14561, + "counterparts": 14562, + "reminiscent": 14563, + "choral": 14564, + "##tead": 14565, + "rand": 14566, + "retains": 14567, + "bushes": 14568, + "dane": 14569, + "accomplish": 14570, + "courtesy": 14571, + "closes": 14572, + "##oth": 14573, + "slaughter": 14574, + "hague": 14575, + "krakow": 14576, + "lawson": 14577, + "tailed": 14578, + "elias": 14579, + "ginger": 14580, + "##ttes": 14581, + "canopy": 14582, + "betrayal": 14583, + "rebuilding": 14584, + "turf": 14585, + "##hof": 14586, + "frowning": 14587, + "allegiance": 14588, + "brigades": 14589, + "kicks": 14590, + "rebuild": 14591, + "polls": 14592, + "alias": 14593, + "nationalism": 14594, + "td": 14595, + "rowan": 14596, + "audition": 14597, + "bowie": 14598, + "fortunately": 14599, + "recognizes": 14600, + "harp": 14601, + "dillon": 14602, + "horrified": 14603, + "##oro": 14604, + "renault": 14605, + "##tics": 14606, + "ropes": 14607, + "##α": 14608, + "presumed": 14609, + "rewarded": 14610, + "infrared": 14611, + "wiping": 14612, + "accelerated": 14613, + "illustration": 14614, + "##rid": 14615, + "presses": 14616, + "practitioners": 14617, + "badminton": 14618, + "##iard": 14619, + "detained": 14620, + "##tera": 14621, + "recognizing": 14622, + "relates": 14623, + "misery": 14624, + "##sies": 14625, + "##tly": 14626, + "reproduction": 14627, + "piercing": 14628, + "potatoes": 14629, + "thornton": 14630, + "esther": 14631, + "manners": 14632, + "hbo": 14633, + "##aan": 14634, + "ours": 14635, + "bullshit": 14636, + "ernie": 14637, + "perennial": 14638, + "sensitivity": 14639, + "illuminated": 14640, + "rupert": 14641, + "##jin": 14642, + "##iss": 14643, + "##ear": 14644, + "rfc": 14645, + "nassau": 14646, + "##dock": 14647, + "staggered": 14648, + "socialism": 14649, + "##haven": 14650, + "appointments": 14651, + "nonsense": 14652, + "prestige": 14653, + "sharma": 14654, + "haul": 14655, + "##tical": 14656, + "solidarity": 14657, + "gps": 14658, + "##ook": 14659, + "##rata": 14660, + "igor": 14661, + "pedestrian": 14662, + "##uit": 14663, + "baxter": 14664, + "tenants": 14665, + "wires": 14666, + "medication": 14667, + "unlimited": 14668, + "guiding": 14669, + "impacts": 14670, + "diabetes": 14671, + "##rama": 14672, + "sasha": 14673, + "pas": 14674, + "clive": 14675, + "extraction": 14676, + "131": 14677, + "continually": 14678, + "constraints": 14679, + "##bilities": 14680, + "sonata": 14681, + "hunted": 14682, + "sixteenth": 14683, + "chu": 14684, + "planting": 14685, + "quote": 14686, + "mayer": 14687, + "pretended": 14688, + "abs": 14689, + "spat": 14690, + "##hua": 14691, + "ceramic": 14692, + "##cci": 14693, + "curtains": 14694, + "pigs": 14695, + "pitching": 14696, + "##dad": 14697, + "latvian": 14698, + "sore": 14699, + "dayton": 14700, + "##sted": 14701, + "##qi": 14702, + "patrols": 14703, + "slice": 14704, + "playground": 14705, + "##nted": 14706, + "shone": 14707, + "stool": 14708, + "apparatus": 14709, + "inadequate": 14710, + "mates": 14711, + "treason": 14712, + "##ija": 14713, + "desires": 14714, + "##liga": 14715, + "##croft": 14716, + "somalia": 14717, + "laurent": 14718, + "mir": 14719, + "leonardo": 14720, + "oracle": 14721, + "grape": 14722, + "obliged": 14723, + "chevrolet": 14724, + "thirteenth": 14725, + "stunning": 14726, + "enthusiastic": 14727, + "##ede": 14728, + "accounted": 14729, + "concludes": 14730, + "currents": 14731, + "basil": 14732, + "##kovic": 14733, + "drought": 14734, + "##rica": 14735, + "mai": 14736, + "##aire": 14737, + "shove": 14738, + "posting": 14739, + "##shed": 14740, + "pilgrimage": 14741, + "humorous": 14742, + "packing": 14743, + "fry": 14744, + "pencil": 14745, + "wines": 14746, + "smells": 14747, + "144": 14748, + "marilyn": 14749, + "aching": 14750, + "newest": 14751, + "clung": 14752, + "bon": 14753, + "neighbours": 14754, + "sanctioned": 14755, + "##pie": 14756, + "mug": 14757, + "##stock": 14758, + "drowning": 14759, + "##mma": 14760, + "hydraulic": 14761, + "##vil": 14762, + "hiring": 14763, + "reminder": 14764, + "lilly": 14765, + "investigators": 14766, + "##ncies": 14767, + "sour": 14768, + "##eous": 14769, + "compulsory": 14770, + "packet": 14771, + "##rion": 14772, + "##graphic": 14773, + "##elle": 14774, + "cannes": 14775, + "##inate": 14776, + "depressed": 14777, + "##rit": 14778, + "heroic": 14779, + "importantly": 14780, + "theresa": 14781, + "##tled": 14782, + "conway": 14783, + "saturn": 14784, + "marginal": 14785, + "rae": 14786, + "##xia": 14787, + "corresponds": 14788, + "royce": 14789, + "pact": 14790, + "jasper": 14791, + "explosives": 14792, + "packaging": 14793, + "aluminium": 14794, + "##ttered": 14795, + "denotes": 14796, + "rhythmic": 14797, + "spans": 14798, + "assignments": 14799, + "hereditary": 14800, + "outlined": 14801, + "originating": 14802, + "sundays": 14803, + "lad": 14804, + "reissued": 14805, + "greeting": 14806, + "beatrice": 14807, + "##dic": 14808, + "pillar": 14809, + "marcos": 14810, + "plots": 14811, + "handbook": 14812, + "alcoholic": 14813, + "judiciary": 14814, + "avant": 14815, + "slides": 14816, + "extract": 14817, + "masculine": 14818, + "blur": 14819, + "##eum": 14820, + "##force": 14821, + "homage": 14822, + "trembled": 14823, + "owens": 14824, + "hymn": 14825, + "trey": 14826, + "omega": 14827, + "signaling": 14828, + "socks": 14829, + "accumulated": 14830, + "reacted": 14831, + "attic": 14832, + "theo": 14833, + "lining": 14834, + "angie": 14835, + "distraction": 14836, + "primera": 14837, + "talbot": 14838, + "##key": 14839, + "1200": 14840, + "ti": 14841, + "creativity": 14842, + "billed": 14843, + "##hey": 14844, + "deacon": 14845, + "eduardo": 14846, + "identifies": 14847, + "proposition": 14848, + "dizzy": 14849, + "gunner": 14850, + "hogan": 14851, + "##yam": 14852, + "##pping": 14853, + "##hol": 14854, + "ja": 14855, + "##chan": 14856, + "jensen": 14857, + "reconstructed": 14858, + "##berger": 14859, + "clearance": 14860, + "darius": 14861, + "##nier": 14862, + "abe": 14863, + "harlem": 14864, + "plea": 14865, + "dei": 14866, + "circled": 14867, + "emotionally": 14868, + "notation": 14869, + "fascist": 14870, + "neville": 14871, + "exceeded": 14872, + "upwards": 14873, + "viable": 14874, + "ducks": 14875, + "##fo": 14876, + "workforce": 14877, + "racer": 14878, + "limiting": 14879, + "shri": 14880, + "##lson": 14881, + "possesses": 14882, + "1600": 14883, + "kerr": 14884, + "moths": 14885, + "devastating": 14886, + "laden": 14887, + "disturbing": 14888, + "locking": 14889, + "##cture": 14890, + "gal": 14891, + "fearing": 14892, + "accreditation": 14893, + "flavor": 14894, + "aide": 14895, + "1870s": 14896, + "mountainous": 14897, + "##baum": 14898, + "melt": 14899, + "##ures": 14900, + "motel": 14901, + "texture": 14902, + "servers": 14903, + "soda": 14904, + "##mb": 14905, + "herd": 14906, + "##nium": 14907, + "erect": 14908, + "puzzled": 14909, + "hum": 14910, + "peggy": 14911, + "examinations": 14912, + "gould": 14913, + "testified": 14914, + "geoff": 14915, + "ren": 14916, + "devised": 14917, + "sacks": 14918, + "##law": 14919, + "denial": 14920, + "posters": 14921, + "grunted": 14922, + "cesar": 14923, + "tutor": 14924, + "ec": 14925, + "gerry": 14926, + "offerings": 14927, + "byrne": 14928, + "falcons": 14929, + "combinations": 14930, + "ct": 14931, + "incoming": 14932, + "pardon": 14933, + "rocking": 14934, + "26th": 14935, + "avengers": 14936, + "flared": 14937, + "mankind": 14938, + "seller": 14939, + "uttar": 14940, + "loch": 14941, + "nadia": 14942, + "stroking": 14943, + "exposing": 14944, + "##hd": 14945, + "fertile": 14946, + "ancestral": 14947, + "instituted": 14948, + "##has": 14949, + "noises": 14950, + "prophecy": 14951, + "taxation": 14952, + "eminent": 14953, + "vivid": 14954, + "pol": 14955, + "##bol": 14956, + "dart": 14957, + "indirect": 14958, + "multimedia": 14959, + "notebook": 14960, + "upside": 14961, + "displaying": 14962, + "adrenaline": 14963, + "referenced": 14964, + "geometric": 14965, + "##iving": 14966, + "progression": 14967, + "##ddy": 14968, + "blunt": 14969, + "announce": 14970, + "##far": 14971, + "implementing": 14972, + "##lav": 14973, + "aggression": 14974, + "liaison": 14975, + "cooler": 14976, + "cares": 14977, + "headache": 14978, + "plantations": 14979, + "gorge": 14980, + "dots": 14981, + "impulse": 14982, + "thickness": 14983, + "ashamed": 14984, + "averaging": 14985, + "kathy": 14986, + "obligation": 14987, + "precursor": 14988, + "137": 14989, + "fowler": 14990, + "symmetry": 14991, + "thee": 14992, + "225": 14993, + "hears": 14994, + "##rai": 14995, + "undergoing": 14996, + "ads": 14997, + "butcher": 14998, + "bowler": 14999, + "##lip": 15000, + "cigarettes": 15001, + "subscription": 15002, + "goodness": 15003, + "##ically": 15004, + "browne": 15005, + "##hos": 15006, + "##tech": 15007, + "kyoto": 15008, + "donor": 15009, + "##erty": 15010, + "damaging": 15011, + "friction": 15012, + "drifting": 15013, + "expeditions": 15014, + "hardened": 15015, + "prostitution": 15016, + "152": 15017, + "fauna": 15018, + "blankets": 15019, + "claw": 15020, + "tossing": 15021, + "snarled": 15022, + "butterflies": 15023, + "recruits": 15024, + "investigative": 15025, + "coated": 15026, + "healed": 15027, + "138": 15028, + "communal": 15029, + "hai": 15030, + "xiii": 15031, + "academics": 15032, + "boone": 15033, + "psychologist": 15034, + "restless": 15035, + "lahore": 15036, + "stephens": 15037, + "mba": 15038, + "brendan": 15039, + "foreigners": 15040, + "printer": 15041, + "##pc": 15042, + "ached": 15043, + "explode": 15044, + "27th": 15045, + "deed": 15046, + "scratched": 15047, + "dared": 15048, + "##pole": 15049, + "cardiac": 15050, + "1780": 15051, + "okinawa": 15052, + "proto": 15053, + "commando": 15054, + "compelled": 15055, + "oddly": 15056, + "electrons": 15057, + "##base": 15058, + "replica": 15059, + "thanksgiving": 15060, + "##rist": 15061, + "sheila": 15062, + "deliberate": 15063, + "stafford": 15064, + "tidal": 15065, + "representations": 15066, + "hercules": 15067, + "ou": 15068, + "##path": 15069, + "##iated": 15070, + "kidnapping": 15071, + "lenses": 15072, + "##tling": 15073, + "deficit": 15074, + "samoa": 15075, + "mouths": 15076, + "consuming": 15077, + "computational": 15078, + "maze": 15079, + "granting": 15080, + "smirk": 15081, + "razor": 15082, + "fixture": 15083, + "ideals": 15084, + "inviting": 15085, + "aiden": 15086, + "nominal": 15087, + "##vs": 15088, + "issuing": 15089, + "julio": 15090, + "pitt": 15091, + "ramsey": 15092, + "docks": 15093, + "##oss": 15094, + "exhaust": 15095, + "##owed": 15096, + "bavarian": 15097, + "draped": 15098, + "anterior": 15099, + "mating": 15100, + "ethiopian": 15101, + "explores": 15102, + "noticing": 15103, + "##nton": 15104, + "discarded": 15105, + "convenience": 15106, + "hoffman": 15107, + "endowment": 15108, + "beasts": 15109, + "cartridge": 15110, + "mormon": 15111, + "paternal": 15112, + "probe": 15113, + "sleeves": 15114, + "interfere": 15115, + "lump": 15116, + "deadline": 15117, + "##rail": 15118, + "jenks": 15119, + "bulldogs": 15120, + "scrap": 15121, + "alternating": 15122, + "justified": 15123, + "reproductive": 15124, + "nam": 15125, + "seize": 15126, + "descending": 15127, + "secretariat": 15128, + "kirby": 15129, + "coupe": 15130, + "grouped": 15131, + "smash": 15132, + "panther": 15133, + "sedan": 15134, + "tapping": 15135, + "##18": 15136, + "lola": 15137, + "cheer": 15138, + "germanic": 15139, + "unfortunate": 15140, + "##eter": 15141, + "unrelated": 15142, + "##fan": 15143, + "subordinate": 15144, + "##sdale": 15145, + "suzanne": 15146, + "advertisement": 15147, + "##ility": 15148, + "horsepower": 15149, + "##lda": 15150, + "cautiously": 15151, + "discourse": 15152, + "luigi": 15153, + "##mans": 15154, + "##fields": 15155, + "noun": 15156, + "prevalent": 15157, + "mao": 15158, + "schneider": 15159, + "everett": 15160, + "surround": 15161, + "governorate": 15162, + "kira": 15163, + "##avia": 15164, + "westward": 15165, + "##take": 15166, + "misty": 15167, + "rails": 15168, + "sustainability": 15169, + "134": 15170, + "unused": 15171, + "##rating": 15172, + "packs": 15173, + "toast": 15174, + "unwilling": 15175, + "regulate": 15176, + "thy": 15177, + "suffrage": 15178, + "nile": 15179, + "awe": 15180, + "assam": 15181, + "definitions": 15182, + "travelers": 15183, + "affordable": 15184, + "##rb": 15185, + "conferred": 15186, + "sells": 15187, + "undefeated": 15188, + "beneficial": 15189, + "torso": 15190, + "basal": 15191, + "repeating": 15192, + "remixes": 15193, + "##pass": 15194, + "bahrain": 15195, + "cables": 15196, + "fang": 15197, + "##itated": 15198, + "excavated": 15199, + "numbering": 15200, + "statutory": 15201, + "##rey": 15202, + "deluxe": 15203, + "##lian": 15204, + "forested": 15205, + "ramirez": 15206, + "derbyshire": 15207, + "zeus": 15208, + "slamming": 15209, + "transfers": 15210, + "astronomer": 15211, + "banana": 15212, + "lottery": 15213, + "berg": 15214, + "histories": 15215, + "bamboo": 15216, + "##uchi": 15217, + "resurrection": 15218, + "posterior": 15219, + "bowls": 15220, + "vaguely": 15221, + "##thi": 15222, + "thou": 15223, + "preserving": 15224, + "tensed": 15225, + "offence": 15226, + "##inas": 15227, + "meyrick": 15228, + "callum": 15229, + "ridden": 15230, + "watt": 15231, + "langdon": 15232, + "tying": 15233, + "lowland": 15234, + "snorted": 15235, + "daring": 15236, + "truman": 15237, + "##hale": 15238, + "##girl": 15239, + "aura": 15240, + "overly": 15241, + "filing": 15242, + "weighing": 15243, + "goa": 15244, + "infections": 15245, + "philanthropist": 15246, + "saunders": 15247, + "eponymous": 15248, + "##owski": 15249, + "latitude": 15250, + "perspectives": 15251, + "reviewing": 15252, + "mets": 15253, + "commandant": 15254, + "radial": 15255, + "##kha": 15256, + "flashlight": 15257, + "reliability": 15258, + "koch": 15259, + "vowels": 15260, + "amazed": 15261, + "ada": 15262, + "elaine": 15263, + "supper": 15264, + "##rth": 15265, + "##encies": 15266, + "predator": 15267, + "debated": 15268, + "soviets": 15269, + "cola": 15270, + "##boards": 15271, + "##nah": 15272, + "compartment": 15273, + "crooked": 15274, + "arbitrary": 15275, + "fourteenth": 15276, + "##ctive": 15277, + "havana": 15278, + "majors": 15279, + "steelers": 15280, + "clips": 15281, + "profitable": 15282, + "ambush": 15283, + "exited": 15284, + "packers": 15285, + "##tile": 15286, + "nude": 15287, + "cracks": 15288, + "fungi": 15289, + "##е": 15290, + "limb": 15291, + "trousers": 15292, + "josie": 15293, + "shelby": 15294, + "tens": 15295, + "frederic": 15296, + "##ος": 15297, + "definite": 15298, + "smoothly": 15299, + "constellation": 15300, + "insult": 15301, + "baton": 15302, + "discs": 15303, + "lingering": 15304, + "##nco": 15305, + "conclusions": 15306, + "lent": 15307, + "staging": 15308, + "becker": 15309, + "grandpa": 15310, + "shaky": 15311, + "##tron": 15312, + "einstein": 15313, + "obstacles": 15314, + "sk": 15315, + "adverse": 15316, + "elle": 15317, + "economically": 15318, + "##moto": 15319, + "mccartney": 15320, + "thor": 15321, + "dismissal": 15322, + "motions": 15323, + "readings": 15324, + "nostrils": 15325, + "treatise": 15326, + "##pace": 15327, + "squeezing": 15328, + "evidently": 15329, + "prolonged": 15330, + "1783": 15331, + "venezuelan": 15332, + "je": 15333, + "marguerite": 15334, + "beirut": 15335, + "takeover": 15336, + "shareholders": 15337, + "##vent": 15338, + "denise": 15339, + "digit": 15340, + "airplay": 15341, + "norse": 15342, + "##bbling": 15343, + "imaginary": 15344, + "pills": 15345, + "hubert": 15346, + "blaze": 15347, + "vacated": 15348, + "eliminating": 15349, + "##ello": 15350, + "vine": 15351, + "mansfield": 15352, + "##tty": 15353, + "retrospective": 15354, + "barrow": 15355, + "borne": 15356, + "clutch": 15357, + "bail": 15358, + "forensic": 15359, + "weaving": 15360, + "##nett": 15361, + "##witz": 15362, + "desktop": 15363, + "citadel": 15364, + "promotions": 15365, + "worrying": 15366, + "dorset": 15367, + "ieee": 15368, + "subdivided": 15369, + "##iating": 15370, + "manned": 15371, + "expeditionary": 15372, + "pickup": 15373, + "synod": 15374, + "chuckle": 15375, + "185": 15376, + "barney": 15377, + "##rz": 15378, + "##ffin": 15379, + "functionality": 15380, + "karachi": 15381, + "litigation": 15382, + "meanings": 15383, + "uc": 15384, + "lick": 15385, + "turbo": 15386, + "anders": 15387, + "##ffed": 15388, + "execute": 15389, + "curl": 15390, + "oppose": 15391, + "ankles": 15392, + "typhoon": 15393, + "##د": 15394, + "##ache": 15395, + "##asia": 15396, + "linguistics": 15397, + "compassion": 15398, + "pressures": 15399, + "grazing": 15400, + "perfection": 15401, + "##iting": 15402, + "immunity": 15403, + "monopoly": 15404, + "muddy": 15405, + "backgrounds": 15406, + "136": 15407, + "namibia": 15408, + "francesca": 15409, + "monitors": 15410, + "attracting": 15411, + "stunt": 15412, + "tuition": 15413, + "##ии": 15414, + "vegetable": 15415, + "##mates": 15416, + "##quent": 15417, + "mgm": 15418, + "jen": 15419, + "complexes": 15420, + "forts": 15421, + "##ond": 15422, + "cellar": 15423, + "bites": 15424, + "seventeenth": 15425, + "royals": 15426, + "flemish": 15427, + "failures": 15428, + "mast": 15429, + "charities": 15430, + "##cular": 15431, + "peruvian": 15432, + "capitals": 15433, + "macmillan": 15434, + "ipswich": 15435, + "outward": 15436, + "frigate": 15437, + "postgraduate": 15438, + "folds": 15439, + "employing": 15440, + "##ouse": 15441, + "concurrently": 15442, + "fiery": 15443, + "##tai": 15444, + "contingent": 15445, + "nightmares": 15446, + "monumental": 15447, + "nicaragua": 15448, + "##kowski": 15449, + "lizard": 15450, + "mal": 15451, + "fielding": 15452, + "gig": 15453, + "reject": 15454, + "##pad": 15455, + "harding": 15456, + "##ipe": 15457, + "coastline": 15458, + "##cin": 15459, + "##nos": 15460, + "beethoven": 15461, + "humphrey": 15462, + "innovations": 15463, + "##tam": 15464, + "##nge": 15465, + "norris": 15466, + "doris": 15467, + "solicitor": 15468, + "huang": 15469, + "obey": 15470, + "141": 15471, + "##lc": 15472, + "niagara": 15473, + "##tton": 15474, + "shelves": 15475, + "aug": 15476, + "bourbon": 15477, + "curry": 15478, + "nightclub": 15479, + "specifications": 15480, + "hilton": 15481, + "##ndo": 15482, + "centennial": 15483, + "dispersed": 15484, + "worm": 15485, + "neglected": 15486, + "briggs": 15487, + "sm": 15488, + "font": 15489, + "kuala": 15490, + "uneasy": 15491, + "plc": 15492, + "##nstein": 15493, + "##bound": 15494, + "##aking": 15495, + "##burgh": 15496, + "awaiting": 15497, + "pronunciation": 15498, + "##bbed": 15499, + "##quest": 15500, + "eh": 15501, + "optimal": 15502, + "zhu": 15503, + "raped": 15504, + "greens": 15505, + "presided": 15506, + "brenda": 15507, + "worries": 15508, + "##life": 15509, + "venetian": 15510, + "marxist": 15511, + "turnout": 15512, + "##lius": 15513, + "refined": 15514, + "braced": 15515, + "sins": 15516, + "grasped": 15517, + "sunderland": 15518, + "nickel": 15519, + "speculated": 15520, + "lowell": 15521, + "cyrillic": 15522, + "communism": 15523, + "fundraising": 15524, + "resembling": 15525, + "colonists": 15526, + "mutant": 15527, + "freddie": 15528, + "usc": 15529, + "##mos": 15530, + "gratitude": 15531, + "##run": 15532, + "mural": 15533, + "##lous": 15534, + "chemist": 15535, + "wi": 15536, + "reminds": 15537, + "28th": 15538, + "steals": 15539, + "tess": 15540, + "pietro": 15541, + "##ingen": 15542, + "promoter": 15543, + "ri": 15544, + "microphone": 15545, + "honoured": 15546, + "rai": 15547, + "sant": 15548, + "##qui": 15549, + "feather": 15550, + "##nson": 15551, + "burlington": 15552, + "kurdish": 15553, + "terrorists": 15554, + "deborah": 15555, + "sickness": 15556, + "##wed": 15557, + "##eet": 15558, + "hazard": 15559, + "irritated": 15560, + "desperation": 15561, + "veil": 15562, + "clarity": 15563, + "##rik": 15564, + "jewels": 15565, + "xv": 15566, + "##gged": 15567, + "##ows": 15568, + "##cup": 15569, + "berkshire": 15570, + "unfair": 15571, + "mysteries": 15572, + "orchid": 15573, + "winced": 15574, + "exhaustion": 15575, + "renovations": 15576, + "stranded": 15577, + "obe": 15578, + "infinity": 15579, + "##nies": 15580, + "adapt": 15581, + "redevelopment": 15582, + "thanked": 15583, + "registry": 15584, + "olga": 15585, + "domingo": 15586, + "noir": 15587, + "tudor": 15588, + "ole": 15589, + "##atus": 15590, + "commenting": 15591, + "behaviors": 15592, + "##ais": 15593, + "crisp": 15594, + "pauline": 15595, + "probable": 15596, + "stirling": 15597, + "wigan": 15598, + "##bian": 15599, + "paralympics": 15600, + "panting": 15601, + "surpassed": 15602, + "##rew": 15603, + "luca": 15604, + "barred": 15605, + "pony": 15606, + "famed": 15607, + "##sters": 15608, + "cassandra": 15609, + "waiter": 15610, + "carolyn": 15611, + "exported": 15612, + "##orted": 15613, + "andres": 15614, + "destructive": 15615, + "deeds": 15616, + "jonah": 15617, + "castles": 15618, + "vacancy": 15619, + "suv": 15620, + "##glass": 15621, + "1788": 15622, + "orchard": 15623, + "yep": 15624, + "famine": 15625, + "belarusian": 15626, + "sprang": 15627, + "##forth": 15628, + "skinny": 15629, + "##mis": 15630, + "administrators": 15631, + "rotterdam": 15632, + "zambia": 15633, + "zhao": 15634, + "boiler": 15635, + "discoveries": 15636, + "##ride": 15637, + "##physics": 15638, + "lucius": 15639, + "disappointing": 15640, + "outreach": 15641, + "spoon": 15642, + "##frame": 15643, + "qualifications": 15644, + "unanimously": 15645, + "enjoys": 15646, + "regency": 15647, + "##iidae": 15648, + "stade": 15649, + "realism": 15650, + "veterinary": 15651, + "rodgers": 15652, + "dump": 15653, + "alain": 15654, + "chestnut": 15655, + "castile": 15656, + "censorship": 15657, + "rumble": 15658, + "gibbs": 15659, + "##itor": 15660, + "communion": 15661, + "reggae": 15662, + "inactivated": 15663, + "logs": 15664, + "loads": 15665, + "##houses": 15666, + "homosexual": 15667, + "##iano": 15668, + "ale": 15669, + "informs": 15670, + "##cas": 15671, + "phrases": 15672, + "plaster": 15673, + "linebacker": 15674, + "ambrose": 15675, + "kaiser": 15676, + "fascinated": 15677, + "850": 15678, + "limerick": 15679, + "recruitment": 15680, + "forge": 15681, + "mastered": 15682, + "##nding": 15683, + "leinster": 15684, + "rooted": 15685, + "threaten": 15686, + "##strom": 15687, + "borneo": 15688, + "##hes": 15689, + "suggestions": 15690, + "scholarships": 15691, + "propeller": 15692, + "documentaries": 15693, + "patronage": 15694, + "coats": 15695, + "constructing": 15696, + "invest": 15697, + "neurons": 15698, + "comet": 15699, + "entirety": 15700, + "shouts": 15701, + "identities": 15702, + "annoying": 15703, + "unchanged": 15704, + "wary": 15705, + "##antly": 15706, + "##ogy": 15707, + "neat": 15708, + "oversight": 15709, + "##kos": 15710, + "phillies": 15711, + "replay": 15712, + "constance": 15713, + "##kka": 15714, + "incarnation": 15715, + "humble": 15716, + "skies": 15717, + "minus": 15718, + "##acy": 15719, + "smithsonian": 15720, + "##chel": 15721, + "guerrilla": 15722, + "jar": 15723, + "cadets": 15724, + "##plate": 15725, + "surplus": 15726, + "audit": 15727, + "##aru": 15728, + "cracking": 15729, + "joanna": 15730, + "louisa": 15731, + "pacing": 15732, + "##lights": 15733, + "intentionally": 15734, + "##iri": 15735, + "diner": 15736, + "nwa": 15737, + "imprint": 15738, + "australians": 15739, + "tong": 15740, + "unprecedented": 15741, + "bunker": 15742, + "naive": 15743, + "specialists": 15744, + "ark": 15745, + "nichols": 15746, + "railing": 15747, + "leaked": 15748, + "pedal": 15749, + "##uka": 15750, + "shrub": 15751, + "longing": 15752, + "roofs": 15753, + "v8": 15754, + "captains": 15755, + "neural": 15756, + "tuned": 15757, + "##ntal": 15758, + "##jet": 15759, + "emission": 15760, + "medina": 15761, + "frantic": 15762, + "codex": 15763, + "definitive": 15764, + "sid": 15765, + "abolition": 15766, + "intensified": 15767, + "stocks": 15768, + "enrique": 15769, + "sustain": 15770, + "genoa": 15771, + "oxide": 15772, + "##written": 15773, + "clues": 15774, + "cha": 15775, + "##gers": 15776, + "tributaries": 15777, + "fragment": 15778, + "venom": 15779, + "##rity": 15780, + "##ente": 15781, + "##sca": 15782, + "muffled": 15783, + "vain": 15784, + "sire": 15785, + "laos": 15786, + "##ingly": 15787, + "##hana": 15788, + "hastily": 15789, + "snapping": 15790, + "surfaced": 15791, + "sentiment": 15792, + "motive": 15793, + "##oft": 15794, + "contests": 15795, + "approximate": 15796, + "mesa": 15797, + "luckily": 15798, + "dinosaur": 15799, + "exchanges": 15800, + "propelled": 15801, + "accord": 15802, + "bourne": 15803, + "relieve": 15804, + "tow": 15805, + "masks": 15806, + "offended": 15807, + "##ues": 15808, + "cynthia": 15809, + "##mmer": 15810, + "rains": 15811, + "bartender": 15812, + "zinc": 15813, + "reviewers": 15814, + "lois": 15815, + "##sai": 15816, + "legged": 15817, + "arrogant": 15818, + "rafe": 15819, + "rosie": 15820, + "comprise": 15821, + "handicap": 15822, + "blockade": 15823, + "inlet": 15824, + "lagoon": 15825, + "copied": 15826, + "drilling": 15827, + "shelley": 15828, + "petals": 15829, + "##inian": 15830, + "mandarin": 15831, + "obsolete": 15832, + "##inated": 15833, + "onward": 15834, + "arguably": 15835, + "productivity": 15836, + "cindy": 15837, + "praising": 15838, + "seldom": 15839, + "busch": 15840, + "discusses": 15841, + "raleigh": 15842, + "shortage": 15843, + "ranged": 15844, + "stanton": 15845, + "encouragement": 15846, + "firstly": 15847, + "conceded": 15848, + "overs": 15849, + "temporal": 15850, + "##uke": 15851, + "cbe": 15852, + "##bos": 15853, + "woo": 15854, + "certainty": 15855, + "pumps": 15856, + "##pton": 15857, + "stalked": 15858, + "##uli": 15859, + "lizzie": 15860, + "periodic": 15861, + "thieves": 15862, + "weaker": 15863, + "##night": 15864, + "gases": 15865, + "shoving": 15866, + "chooses": 15867, + "wc": 15868, + "##chemical": 15869, + "prompting": 15870, + "weights": 15871, + "##kill": 15872, + "robust": 15873, + "flanked": 15874, + "sticky": 15875, + "hu": 15876, + "tuberculosis": 15877, + "##eb": 15878, + "##eal": 15879, + "christchurch": 15880, + "resembled": 15881, + "wallet": 15882, + "reese": 15883, + "inappropriate": 15884, + "pictured": 15885, + "distract": 15886, + "fixing": 15887, + "fiddle": 15888, + "giggled": 15889, + "burger": 15890, + "heirs": 15891, + "hairy": 15892, + "mechanic": 15893, + "torque": 15894, + "apache": 15895, + "obsessed": 15896, + "chiefly": 15897, + "cheng": 15898, + "logging": 15899, + "##tag": 15900, + "extracted": 15901, + "meaningful": 15902, + "numb": 15903, + "##vsky": 15904, + "gloucestershire": 15905, + "reminding": 15906, + "##bay": 15907, + "unite": 15908, + "##lit": 15909, + "breeds": 15910, + "diminished": 15911, + "clown": 15912, + "glove": 15913, + "1860s": 15914, + "##ن": 15915, + "##ug": 15916, + "archibald": 15917, + "focal": 15918, + "freelance": 15919, + "sliced": 15920, + "depiction": 15921, + "##yk": 15922, + "organism": 15923, + "switches": 15924, + "sights": 15925, + "stray": 15926, + "crawling": 15927, + "##ril": 15928, + "lever": 15929, + "leningrad": 15930, + "interpretations": 15931, + "loops": 15932, + "anytime": 15933, + "reel": 15934, + "alicia": 15935, + "delighted": 15936, + "##ech": 15937, + "inhaled": 15938, + "xiv": 15939, + "suitcase": 15940, + "bernie": 15941, + "vega": 15942, + "licenses": 15943, + "northampton": 15944, + "exclusion": 15945, + "induction": 15946, + "monasteries": 15947, + "racecourse": 15948, + "homosexuality": 15949, + "##right": 15950, + "##sfield": 15951, + "##rky": 15952, + "dimitri": 15953, + "michele": 15954, + "alternatives": 15955, + "ions": 15956, + "commentators": 15957, + "genuinely": 15958, + "objected": 15959, + "pork": 15960, + "hospitality": 15961, + "fencing": 15962, + "stephan": 15963, + "warships": 15964, + "peripheral": 15965, + "wit": 15966, + "drunken": 15967, + "wrinkled": 15968, + "quentin": 15969, + "spends": 15970, + "departing": 15971, + "chung": 15972, + "numerical": 15973, + "spokesperson": 15974, + "##zone": 15975, + "johannesburg": 15976, + "caliber": 15977, + "killers": 15978, + "##udge": 15979, + "assumes": 15980, + "neatly": 15981, + "demographic": 15982, + "abigail": 15983, + "bloc": 15984, + "##vel": 15985, + "mounting": 15986, + "##lain": 15987, + "bentley": 15988, + "slightest": 15989, + "xu": 15990, + "recipients": 15991, + "##jk": 15992, + "merlin": 15993, + "##writer": 15994, + "seniors": 15995, + "prisons": 15996, + "blinking": 15997, + "hindwings": 15998, + "flickered": 15999, + "kappa": 16000, + "##hel": 16001, + "80s": 16002, + "strengthening": 16003, + "appealing": 16004, + "brewing": 16005, + "gypsy": 16006, + "mali": 16007, + "lashes": 16008, + "hulk": 16009, + "unpleasant": 16010, + "harassment": 16011, + "bio": 16012, + "treaties": 16013, + "predict": 16014, + "instrumentation": 16015, + "pulp": 16016, + "troupe": 16017, + "boiling": 16018, + "mantle": 16019, + "##ffe": 16020, + "ins": 16021, + "##vn": 16022, + "dividing": 16023, + "handles": 16024, + "verbs": 16025, + "##onal": 16026, + "coconut": 16027, + "senegal": 16028, + "340": 16029, + "thorough": 16030, + "gum": 16031, + "momentarily": 16032, + "##sto": 16033, + "cocaine": 16034, + "panicked": 16035, + "destined": 16036, + "##turing": 16037, + "teatro": 16038, + "denying": 16039, + "weary": 16040, + "captained": 16041, + "mans": 16042, + "##hawks": 16043, + "##code": 16044, + "wakefield": 16045, + "bollywood": 16046, + "thankfully": 16047, + "##16": 16048, + "cyril": 16049, + "##wu": 16050, + "amendments": 16051, + "##bahn": 16052, + "consultation": 16053, + "stud": 16054, + "reflections": 16055, + "kindness": 16056, + "1787": 16057, + "internally": 16058, + "##ovo": 16059, + "tex": 16060, + "mosaic": 16061, + "distribute": 16062, + "paddy": 16063, + "seeming": 16064, + "143": 16065, + "##hic": 16066, + "piers": 16067, + "##15": 16068, + "##mura": 16069, + "##verse": 16070, + "popularly": 16071, + "winger": 16072, + "kang": 16073, + "sentinel": 16074, + "mccoy": 16075, + "##anza": 16076, + "covenant": 16077, + "##bag": 16078, + "verge": 16079, + "fireworks": 16080, + "suppress": 16081, + "thrilled": 16082, + "dominate": 16083, + "##jar": 16084, + "swansea": 16085, + "##60": 16086, + "142": 16087, + "reconciliation": 16088, + "##ndi": 16089, + "stiffened": 16090, + "cue": 16091, + "dorian": 16092, + "##uf": 16093, + "damascus": 16094, + "amor": 16095, + "ida": 16096, + "foremost": 16097, + "##aga": 16098, + "porsche": 16099, + "unseen": 16100, + "dir": 16101, + "##had": 16102, + "##azi": 16103, + "stony": 16104, + "lexi": 16105, + "melodies": 16106, + "##nko": 16107, + "angular": 16108, + "integer": 16109, + "podcast": 16110, + "ants": 16111, + "inherent": 16112, + "jaws": 16113, + "justify": 16114, + "persona": 16115, + "##olved": 16116, + "josephine": 16117, + "##nr": 16118, + "##ressed": 16119, + "customary": 16120, + "flashes": 16121, + "gala": 16122, + "cyrus": 16123, + "glaring": 16124, + "backyard": 16125, + "ariel": 16126, + "physiology": 16127, + "greenland": 16128, + "html": 16129, + "stir": 16130, + "avon": 16131, + "atletico": 16132, + "finch": 16133, + "methodology": 16134, + "ked": 16135, + "##lent": 16136, + "mas": 16137, + "catholicism": 16138, + "townsend": 16139, + "branding": 16140, + "quincy": 16141, + "fits": 16142, + "containers": 16143, + "1777": 16144, + "ashore": 16145, + "aragon": 16146, + "##19": 16147, + "forearm": 16148, + "poisoning": 16149, + "##sd": 16150, + "adopting": 16151, + "conquer": 16152, + "grinding": 16153, + "amnesty": 16154, + "keller": 16155, + "finances": 16156, + "evaluate": 16157, + "forged": 16158, + "lankan": 16159, + "instincts": 16160, + "##uto": 16161, + "guam": 16162, + "bosnian": 16163, + "photographed": 16164, + "workplace": 16165, + "desirable": 16166, + "protector": 16167, + "##dog": 16168, + "allocation": 16169, + "intently": 16170, + "encourages": 16171, + "willy": 16172, + "##sten": 16173, + "bodyguard": 16174, + "electro": 16175, + "brighter": 16176, + "##ν": 16177, + "bihar": 16178, + "##chev": 16179, + "lasts": 16180, + "opener": 16181, + "amphibious": 16182, + "sal": 16183, + "verde": 16184, + "arte": 16185, + "##cope": 16186, + "captivity": 16187, + "vocabulary": 16188, + "yields": 16189, + "##tted": 16190, + "agreeing": 16191, + "desmond": 16192, + "pioneered": 16193, + "##chus": 16194, + "strap": 16195, + "campaigned": 16196, + "railroads": 16197, + "##ович": 16198, + "emblem": 16199, + "##dre": 16200, + "stormed": 16201, + "501": 16202, + "##ulous": 16203, + "marijuana": 16204, + "northumberland": 16205, + "##gn": 16206, + "##nath": 16207, + "bowen": 16208, + "landmarks": 16209, + "beaumont": 16210, + "##qua": 16211, + "danube": 16212, + "##bler": 16213, + "attorneys": 16214, + "th": 16215, + "ge": 16216, + "flyers": 16217, + "critique": 16218, + "villains": 16219, + "cass": 16220, + "mutation": 16221, + "acc": 16222, + "##0s": 16223, + "colombo": 16224, + "mckay": 16225, + "motif": 16226, + "sampling": 16227, + "concluding": 16228, + "syndicate": 16229, + "##rell": 16230, + "neon": 16231, + "stables": 16232, + "ds": 16233, + "warnings": 16234, + "clint": 16235, + "mourning": 16236, + "wilkinson": 16237, + "##tated": 16238, + "merrill": 16239, + "leopard": 16240, + "evenings": 16241, + "exhaled": 16242, + "emil": 16243, + "sonia": 16244, + "ezra": 16245, + "discrete": 16246, + "stove": 16247, + "farrell": 16248, + "fifteenth": 16249, + "prescribed": 16250, + "superhero": 16251, + "##rier": 16252, + "worms": 16253, + "helm": 16254, + "wren": 16255, + "##duction": 16256, + "##hc": 16257, + "expo": 16258, + "##rator": 16259, + "hq": 16260, + "unfamiliar": 16261, + "antony": 16262, + "prevents": 16263, + "acceleration": 16264, + "fiercely": 16265, + "mari": 16266, + "painfully": 16267, + "calculations": 16268, + "cheaper": 16269, + "ign": 16270, + "clifton": 16271, + "irvine": 16272, + "davenport": 16273, + "mozambique": 16274, + "##np": 16275, + "pierced": 16276, + "##evich": 16277, + "wonders": 16278, + "##wig": 16279, + "##cate": 16280, + "##iling": 16281, + "crusade": 16282, + "ware": 16283, + "##uel": 16284, + "enzymes": 16285, + "reasonably": 16286, + "mls": 16287, + "##coe": 16288, + "mater": 16289, + "ambition": 16290, + "bunny": 16291, + "eliot": 16292, + "kernel": 16293, + "##fin": 16294, + "asphalt": 16295, + "headmaster": 16296, + "torah": 16297, + "aden": 16298, + "lush": 16299, + "pins": 16300, + "waived": 16301, + "##care": 16302, + "##yas": 16303, + "joao": 16304, + "substrate": 16305, + "enforce": 16306, + "##grad": 16307, + "##ules": 16308, + "alvarez": 16309, + "selections": 16310, + "epidemic": 16311, + "tempted": 16312, + "##bit": 16313, + "bremen": 16314, + "translates": 16315, + "ensured": 16316, + "waterfront": 16317, + "29th": 16318, + "forrest": 16319, + "manny": 16320, + "malone": 16321, + "kramer": 16322, + "reigning": 16323, + "cookies": 16324, + "simpler": 16325, + "absorption": 16326, + "205": 16327, + "engraved": 16328, + "##ffy": 16329, + "evaluated": 16330, + "1778": 16331, + "haze": 16332, + "146": 16333, + "comforting": 16334, + "crossover": 16335, + "##abe": 16336, + "thorn": 16337, + "##rift": 16338, + "##imo": 16339, + "##pop": 16340, + "suppression": 16341, + "fatigue": 16342, + "cutter": 16343, + "##tr": 16344, + "201": 16345, + "wurttemberg": 16346, + "##orf": 16347, + "enforced": 16348, + "hovering": 16349, + "proprietary": 16350, + "gb": 16351, + "samurai": 16352, + "syllable": 16353, + "ascent": 16354, + "lacey": 16355, + "tick": 16356, + "lars": 16357, + "tractor": 16358, + "merchandise": 16359, + "rep": 16360, + "bouncing": 16361, + "defendants": 16362, + "##yre": 16363, + "huntington": 16364, + "##ground": 16365, + "##oko": 16366, + "standardized": 16367, + "##hor": 16368, + "##hima": 16369, + "assassinated": 16370, + "nu": 16371, + "predecessors": 16372, + "rainy": 16373, + "liar": 16374, + "assurance": 16375, + "lyrical": 16376, + "##uga": 16377, + "secondly": 16378, + "flattened": 16379, + "ios": 16380, + "parameter": 16381, + "undercover": 16382, + "##mity": 16383, + "bordeaux": 16384, + "punish": 16385, + "ridges": 16386, + "markers": 16387, + "exodus": 16388, + "inactive": 16389, + "hesitate": 16390, + "debbie": 16391, + "nyc": 16392, + "pledge": 16393, + "savoy": 16394, + "nagar": 16395, + "offset": 16396, + "organist": 16397, + "##tium": 16398, + "hesse": 16399, + "marin": 16400, + "converting": 16401, + "##iver": 16402, + "diagram": 16403, + "propulsion": 16404, + "pu": 16405, + "validity": 16406, + "reverted": 16407, + "supportive": 16408, + "##dc": 16409, + "ministries": 16410, + "clans": 16411, + "responds": 16412, + "proclamation": 16413, + "##inae": 16414, + "##ø": 16415, + "##rea": 16416, + "ein": 16417, + "pleading": 16418, + "patriot": 16419, + "sf": 16420, + "birch": 16421, + "islanders": 16422, + "strauss": 16423, + "hates": 16424, + "##dh": 16425, + "brandenburg": 16426, + "concession": 16427, + "rd": 16428, + "##ob": 16429, + "1900s": 16430, + "killings": 16431, + "textbook": 16432, + "antiquity": 16433, + "cinematography": 16434, + "wharf": 16435, + "embarrassing": 16436, + "setup": 16437, + "creed": 16438, + "farmland": 16439, + "inequality": 16440, + "centred": 16441, + "signatures": 16442, + "fallon": 16443, + "370": 16444, + "##ingham": 16445, + "##uts": 16446, + "ceylon": 16447, + "gazing": 16448, + "directive": 16449, + "laurie": 16450, + "##tern": 16451, + "globally": 16452, + "##uated": 16453, + "##dent": 16454, + "allah": 16455, + "excavation": 16456, + "threads": 16457, + "##cross": 16458, + "148": 16459, + "frantically": 16460, + "icc": 16461, + "utilize": 16462, + "determines": 16463, + "respiratory": 16464, + "thoughtful": 16465, + "receptions": 16466, + "##dicate": 16467, + "merging": 16468, + "chandra": 16469, + "seine": 16470, + "147": 16471, + "builders": 16472, + "builds": 16473, + "diagnostic": 16474, + "dev": 16475, + "visibility": 16476, + "goddamn": 16477, + "analyses": 16478, + "dhaka": 16479, + "cho": 16480, + "proves": 16481, + "chancel": 16482, + "concurrent": 16483, + "curiously": 16484, + "canadians": 16485, + "pumped": 16486, + "restoring": 16487, + "1850s": 16488, + "turtles": 16489, + "jaguar": 16490, + "sinister": 16491, + "spinal": 16492, + "traction": 16493, + "declan": 16494, + "vows": 16495, + "1784": 16496, + "glowed": 16497, + "capitalism": 16498, + "swirling": 16499, + "install": 16500, + "universidad": 16501, + "##lder": 16502, + "##oat": 16503, + "soloist": 16504, + "##genic": 16505, + "##oor": 16506, + "coincidence": 16507, + "beginnings": 16508, + "nissan": 16509, + "dip": 16510, + "resorts": 16511, + "caucasus": 16512, + "combustion": 16513, + "infectious": 16514, + "##eno": 16515, + "pigeon": 16516, + "serpent": 16517, + "##itating": 16518, + "conclude": 16519, + "masked": 16520, + "salad": 16521, + "jew": 16522, + "##gr": 16523, + "surreal": 16524, + "toni": 16525, + "##wc": 16526, + "harmonica": 16527, + "151": 16528, + "##gins": 16529, + "##etic": 16530, + "##coat": 16531, + "fishermen": 16532, + "intending": 16533, + "bravery": 16534, + "##wave": 16535, + "klaus": 16536, + "titan": 16537, + "wembley": 16538, + "taiwanese": 16539, + "ransom": 16540, + "40th": 16541, + "incorrect": 16542, + "hussein": 16543, + "eyelids": 16544, + "jp": 16545, + "cooke": 16546, + "dramas": 16547, + "utilities": 16548, + "##etta": 16549, + "##print": 16550, + "eisenhower": 16551, + "principally": 16552, + "granada": 16553, + "lana": 16554, + "##rak": 16555, + "openings": 16556, + "concord": 16557, + "##bl": 16558, + "bethany": 16559, + "connie": 16560, + "morality": 16561, + "sega": 16562, + "##mons": 16563, + "##nard": 16564, + "earnings": 16565, + "##kara": 16566, + "##cine": 16567, + "wii": 16568, + "communes": 16569, + "##rel": 16570, + "coma": 16571, + "composing": 16572, + "softened": 16573, + "severed": 16574, + "grapes": 16575, + "##17": 16576, + "nguyen": 16577, + "analyzed": 16578, + "warlord": 16579, + "hubbard": 16580, + "heavenly": 16581, + "behave": 16582, + "slovenian": 16583, + "##hit": 16584, + "##ony": 16585, + "hailed": 16586, + "filmmakers": 16587, + "trance": 16588, + "caldwell": 16589, + "skye": 16590, + "unrest": 16591, + "coward": 16592, + "likelihood": 16593, + "##aging": 16594, + "bern": 16595, + "sci": 16596, + "taliban": 16597, + "honolulu": 16598, + "propose": 16599, + "##wang": 16600, + "1700": 16601, + "browser": 16602, + "imagining": 16603, + "cobra": 16604, + "contributes": 16605, + "dukes": 16606, + "instinctively": 16607, + "conan": 16608, + "violinist": 16609, + "##ores": 16610, + "accessories": 16611, + "gradual": 16612, + "##amp": 16613, + "quotes": 16614, + "sioux": 16615, + "##dating": 16616, + "undertake": 16617, + "intercepted": 16618, + "sparkling": 16619, + "compressed": 16620, + "139": 16621, + "fungus": 16622, + "tombs": 16623, + "haley": 16624, + "imposing": 16625, + "rests": 16626, + "degradation": 16627, + "lincolnshire": 16628, + "retailers": 16629, + "wetlands": 16630, + "tulsa": 16631, + "distributor": 16632, + "dungeon": 16633, + "nun": 16634, + "greenhouse": 16635, + "convey": 16636, + "atlantis": 16637, + "aft": 16638, + "exits": 16639, + "oman": 16640, + "dresser": 16641, + "lyons": 16642, + "##sti": 16643, + "joking": 16644, + "eddy": 16645, + "judgement": 16646, + "omitted": 16647, + "digits": 16648, + "##cts": 16649, + "##game": 16650, + "juniors": 16651, + "##rae": 16652, + "cents": 16653, + "stricken": 16654, + "une": 16655, + "##ngo": 16656, + "wizards": 16657, + "weir": 16658, + "breton": 16659, + "nan": 16660, + "technician": 16661, + "fibers": 16662, + "liking": 16663, + "royalty": 16664, + "##cca": 16665, + "154": 16666, + "persia": 16667, + "terribly": 16668, + "magician": 16669, + "##rable": 16670, + "##unt": 16671, + "vance": 16672, + "cafeteria": 16673, + "booker": 16674, + "camille": 16675, + "warmer": 16676, + "##static": 16677, + "consume": 16678, + "cavern": 16679, + "gaps": 16680, + "compass": 16681, + "contemporaries": 16682, + "foyer": 16683, + "soothing": 16684, + "graveyard": 16685, + "maj": 16686, + "plunged": 16687, + "blush": 16688, + "##wear": 16689, + "cascade": 16690, + "demonstrates": 16691, + "ordinance": 16692, + "##nov": 16693, + "boyle": 16694, + "##lana": 16695, + "rockefeller": 16696, + "shaken": 16697, + "banjo": 16698, + "izzy": 16699, + "##ense": 16700, + "breathless": 16701, + "vines": 16702, + "##32": 16703, + "##eman": 16704, + "alterations": 16705, + "chromosome": 16706, + "dwellings": 16707, + "feudal": 16708, + "mole": 16709, + "153": 16710, + "catalonia": 16711, + "relics": 16712, + "tenant": 16713, + "mandated": 16714, + "##fm": 16715, + "fridge": 16716, + "hats": 16717, + "honesty": 16718, + "patented": 16719, + "raul": 16720, + "heap": 16721, + "cruisers": 16722, + "accusing": 16723, + "enlightenment": 16724, + "infants": 16725, + "wherein": 16726, + "chatham": 16727, + "contractors": 16728, + "zen": 16729, + "affinity": 16730, + "hc": 16731, + "osborne": 16732, + "piston": 16733, + "156": 16734, + "traps": 16735, + "maturity": 16736, + "##rana": 16737, + "lagos": 16738, + "##zal": 16739, + "peering": 16740, + "##nay": 16741, + "attendant": 16742, + "dealers": 16743, + "protocols": 16744, + "subset": 16745, + "prospects": 16746, + "biographical": 16747, + "##cre": 16748, + "artery": 16749, + "##zers": 16750, + "insignia": 16751, + "nuns": 16752, + "endured": 16753, + "##eration": 16754, + "recommend": 16755, + "schwartz": 16756, + "serbs": 16757, + "berger": 16758, + "cromwell": 16759, + "crossroads": 16760, + "##ctor": 16761, + "enduring": 16762, + "clasped": 16763, + "grounded": 16764, + "##bine": 16765, + "marseille": 16766, + "twitched": 16767, + "abel": 16768, + "choke": 16769, + "https": 16770, + "catalyst": 16771, + "moldova": 16772, + "italians": 16773, + "##tist": 16774, + "disastrous": 16775, + "wee": 16776, + "##oured": 16777, + "##nti": 16778, + "wwf": 16779, + "nope": 16780, + "##piration": 16781, + "##asa": 16782, + "expresses": 16783, + "thumbs": 16784, + "167": 16785, + "##nza": 16786, + "coca": 16787, + "1781": 16788, + "cheating": 16789, + "##ption": 16790, + "skipped": 16791, + "sensory": 16792, + "heidelberg": 16793, + "spies": 16794, + "satan": 16795, + "dangers": 16796, + "semifinal": 16797, + "202": 16798, + "bohemia": 16799, + "whitish": 16800, + "confusing": 16801, + "shipbuilding": 16802, + "relies": 16803, + "surgeons": 16804, + "landings": 16805, + "ravi": 16806, + "baku": 16807, + "moor": 16808, + "suffix": 16809, + "alejandro": 16810, + "##yana": 16811, + "litre": 16812, + "upheld": 16813, + "##unk": 16814, + "rajasthan": 16815, + "##rek": 16816, + "coaster": 16817, + "insists": 16818, + "posture": 16819, + "scenarios": 16820, + "etienne": 16821, + "favoured": 16822, + "appoint": 16823, + "transgender": 16824, + "elephants": 16825, + "poked": 16826, + "greenwood": 16827, + "defences": 16828, + "fulfilled": 16829, + "militant": 16830, + "somali": 16831, + "1758": 16832, + "chalk": 16833, + "potent": 16834, + "##ucci": 16835, + "migrants": 16836, + "wink": 16837, + "assistants": 16838, + "nos": 16839, + "restriction": 16840, + "activism": 16841, + "niger": 16842, + "##ario": 16843, + "colon": 16844, + "shaun": 16845, + "##sat": 16846, + "daphne": 16847, + "##erated": 16848, + "swam": 16849, + "congregations": 16850, + "reprise": 16851, + "considerations": 16852, + "magnet": 16853, + "playable": 16854, + "xvi": 16855, + "##р": 16856, + "overthrow": 16857, + "tobias": 16858, + "knob": 16859, + "chavez": 16860, + "coding": 16861, + "##mers": 16862, + "propped": 16863, + "katrina": 16864, + "orient": 16865, + "newcomer": 16866, + "##suke": 16867, + "temperate": 16868, + "##pool": 16869, + "farmhouse": 16870, + "interrogation": 16871, + "##vd": 16872, + "committing": 16873, + "##vert": 16874, + "forthcoming": 16875, + "strawberry": 16876, + "joaquin": 16877, + "macau": 16878, + "ponds": 16879, + "shocking": 16880, + "siberia": 16881, + "##cellular": 16882, + "chant": 16883, + "contributors": 16884, + "##nant": 16885, + "##ologists": 16886, + "sped": 16887, + "absorb": 16888, + "hail": 16889, + "1782": 16890, + "spared": 16891, + "##hore": 16892, + "barbados": 16893, + "karate": 16894, + "opus": 16895, + "originates": 16896, + "saul": 16897, + "##xie": 16898, + "evergreen": 16899, + "leaped": 16900, + "##rock": 16901, + "correlation": 16902, + "exaggerated": 16903, + "weekday": 16904, + "unification": 16905, + "bump": 16906, + "tracing": 16907, + "brig": 16908, + "afb": 16909, + "pathways": 16910, + "utilizing": 16911, + "##ners": 16912, + "mod": 16913, + "mb": 16914, + "disturbance": 16915, + "kneeling": 16916, + "##stad": 16917, + "##guchi": 16918, + "100th": 16919, + "pune": 16920, + "##thy": 16921, + "decreasing": 16922, + "168": 16923, + "manipulation": 16924, + "miriam": 16925, + "academia": 16926, + "ecosystem": 16927, + "occupational": 16928, + "rbi": 16929, + "##lem": 16930, + "rift": 16931, + "##14": 16932, + "rotary": 16933, + "stacked": 16934, + "incorporation": 16935, + "awakening": 16936, + "generators": 16937, + "guerrero": 16938, + "racist": 16939, + "##omy": 16940, + "cyber": 16941, + "derivatives": 16942, + "culminated": 16943, + "allie": 16944, + "annals": 16945, + "panzer": 16946, + "sainte": 16947, + "wikipedia": 16948, + "pops": 16949, + "zu": 16950, + "austro": 16951, + "##vate": 16952, + "algerian": 16953, + "politely": 16954, + "nicholson": 16955, + "mornings": 16956, + "educate": 16957, + "tastes": 16958, + "thrill": 16959, + "dartmouth": 16960, + "##gating": 16961, + "db": 16962, + "##jee": 16963, + "regan": 16964, + "differing": 16965, + "concentrating": 16966, + "choreography": 16967, + "divinity": 16968, + "##media": 16969, + "pledged": 16970, + "alexandre": 16971, + "routing": 16972, + "gregor": 16973, + "madeline": 16974, + "##idal": 16975, + "apocalypse": 16976, + "##hora": 16977, + "gunfire": 16978, + "culminating": 16979, + "elves": 16980, + "fined": 16981, + "liang": 16982, + "lam": 16983, + "programmed": 16984, + "tar": 16985, + "guessing": 16986, + "transparency": 16987, + "gabrielle": 16988, + "##gna": 16989, + "cancellation": 16990, + "flexibility": 16991, + "##lining": 16992, + "accession": 16993, + "shea": 16994, + "stronghold": 16995, + "nets": 16996, + "specializes": 16997, + "##rgan": 16998, + "abused": 16999, + "hasan": 17000, + "sgt": 17001, + "ling": 17002, + "exceeding": 17003, + "##₄": 17004, + "admiration": 17005, + "supermarket": 17006, + "##ark": 17007, + "photographers": 17008, + "specialised": 17009, + "tilt": 17010, + "resonance": 17011, + "hmm": 17012, + "perfume": 17013, + "380": 17014, + "sami": 17015, + "threatens": 17016, + "garland": 17017, + "botany": 17018, + "guarding": 17019, + "boiled": 17020, + "greet": 17021, + "puppy": 17022, + "russo": 17023, + "supplier": 17024, + "wilmington": 17025, + "vibrant": 17026, + "vijay": 17027, + "##bius": 17028, + "paralympic": 17029, + "grumbled": 17030, + "paige": 17031, + "faa": 17032, + "licking": 17033, + "margins": 17034, + "hurricanes": 17035, + "##gong": 17036, + "fest": 17037, + "grenade": 17038, + "ripping": 17039, + "##uz": 17040, + "counseling": 17041, + "weigh": 17042, + "##sian": 17043, + "needles": 17044, + "wiltshire": 17045, + "edison": 17046, + "costly": 17047, + "##not": 17048, + "fulton": 17049, + "tramway": 17050, + "redesigned": 17051, + "staffordshire": 17052, + "cache": 17053, + "gasping": 17054, + "watkins": 17055, + "sleepy": 17056, + "candidacy": 17057, + "##group": 17058, + "monkeys": 17059, + "timeline": 17060, + "throbbing": 17061, + "##bid": 17062, + "##sos": 17063, + "berth": 17064, + "uzbekistan": 17065, + "vanderbilt": 17066, + "bothering": 17067, + "overturned": 17068, + "ballots": 17069, + "gem": 17070, + "##iger": 17071, + "sunglasses": 17072, + "subscribers": 17073, + "hooker": 17074, + "compelling": 17075, + "ang": 17076, + "exceptionally": 17077, + "saloon": 17078, + "stab": 17079, + "##rdi": 17080, + "carla": 17081, + "terrifying": 17082, + "rom": 17083, + "##vision": 17084, + "coil": 17085, + "##oids": 17086, + "satisfying": 17087, + "vendors": 17088, + "31st": 17089, + "mackay": 17090, + "deities": 17091, + "overlooked": 17092, + "ambient": 17093, + "bahamas": 17094, + "felipe": 17095, + "olympia": 17096, + "whirled": 17097, + "botanist": 17098, + "advertised": 17099, + "tugging": 17100, + "##dden": 17101, + "disciples": 17102, + "morales": 17103, + "unionist": 17104, + "rites": 17105, + "foley": 17106, + "morse": 17107, + "motives": 17108, + "creepy": 17109, + "##₀": 17110, + "soo": 17111, + "##sz": 17112, + "bargain": 17113, + "highness": 17114, + "frightening": 17115, + "turnpike": 17116, + "tory": 17117, + "reorganization": 17118, + "##cer": 17119, + "depict": 17120, + "biographer": 17121, + "##walk": 17122, + "unopposed": 17123, + "manifesto": 17124, + "##gles": 17125, + "institut": 17126, + "emile": 17127, + "accidental": 17128, + "kapoor": 17129, + "##dam": 17130, + "kilkenny": 17131, + "cortex": 17132, + "lively": 17133, + "##13": 17134, + "romanesque": 17135, + "jain": 17136, + "shan": 17137, + "cannons": 17138, + "##ood": 17139, + "##ske": 17140, + "petrol": 17141, + "echoing": 17142, + "amalgamated": 17143, + "disappears": 17144, + "cautious": 17145, + "proposes": 17146, + "sanctions": 17147, + "trenton": 17148, + "##ر": 17149, + "flotilla": 17150, + "aus": 17151, + "contempt": 17152, + "tor": 17153, + "canary": 17154, + "cote": 17155, + "theirs": 17156, + "##hun": 17157, + "conceptual": 17158, + "deleted": 17159, + "fascinating": 17160, + "paso": 17161, + "blazing": 17162, + "elf": 17163, + "honourable": 17164, + "hutchinson": 17165, + "##eiro": 17166, + "##outh": 17167, + "##zin": 17168, + "surveyor": 17169, + "tee": 17170, + "amidst": 17171, + "wooded": 17172, + "reissue": 17173, + "intro": 17174, + "##ono": 17175, + "cobb": 17176, + "shelters": 17177, + "newsletter": 17178, + "hanson": 17179, + "brace": 17180, + "encoding": 17181, + "confiscated": 17182, + "dem": 17183, + "caravan": 17184, + "marino": 17185, + "scroll": 17186, + "melodic": 17187, + "cows": 17188, + "imam": 17189, + "##adi": 17190, + "##aneous": 17191, + "northward": 17192, + "searches": 17193, + "biodiversity": 17194, + "cora": 17195, + "310": 17196, + "roaring": 17197, + "##bers": 17198, + "connell": 17199, + "theologian": 17200, + "halo": 17201, + "compose": 17202, + "pathetic": 17203, + "unmarried": 17204, + "dynamo": 17205, + "##oot": 17206, + "az": 17207, + "calculation": 17208, + "toulouse": 17209, + "deserves": 17210, + "humour": 17211, + "nr": 17212, + "forgiveness": 17213, + "tam": 17214, + "undergone": 17215, + "martyr": 17216, + "pamela": 17217, + "myths": 17218, + "whore": 17219, + "counselor": 17220, + "hicks": 17221, + "290": 17222, + "heavens": 17223, + "battleship": 17224, + "electromagnetic": 17225, + "##bbs": 17226, + "stellar": 17227, + "establishments": 17228, + "presley": 17229, + "hopped": 17230, + "##chin": 17231, + "temptation": 17232, + "90s": 17233, + "wills": 17234, + "nas": 17235, + "##yuan": 17236, + "nhs": 17237, + "##nya": 17238, + "seminars": 17239, + "##yev": 17240, + "adaptations": 17241, + "gong": 17242, + "asher": 17243, + "lex": 17244, + "indicator": 17245, + "sikh": 17246, + "tobago": 17247, + "cites": 17248, + "goin": 17249, + "##yte": 17250, + "satirical": 17251, + "##gies": 17252, + "characterised": 17253, + "correspond": 17254, + "bubbles": 17255, + "lure": 17256, + "participates": 17257, + "##vid": 17258, + "eruption": 17259, + "skate": 17260, + "therapeutic": 17261, + "1785": 17262, + "canals": 17263, + "wholesale": 17264, + "defaulted": 17265, + "sac": 17266, + "460": 17267, + "petit": 17268, + "##zzled": 17269, + "virgil": 17270, + "leak": 17271, + "ravens": 17272, + "256": 17273, + "portraying": 17274, + "##yx": 17275, + "ghetto": 17276, + "creators": 17277, + "dams": 17278, + "portray": 17279, + "vicente": 17280, + "##rington": 17281, + "fae": 17282, + "namesake": 17283, + "bounty": 17284, + "##arium": 17285, + "joachim": 17286, + "##ota": 17287, + "##iser": 17288, + "aforementioned": 17289, + "axle": 17290, + "snout": 17291, + "depended": 17292, + "dismantled": 17293, + "reuben": 17294, + "480": 17295, + "##ibly": 17296, + "gallagher": 17297, + "##lau": 17298, + "##pd": 17299, + "earnest": 17300, + "##ieu": 17301, + "##iary": 17302, + "inflicted": 17303, + "objections": 17304, + "##llar": 17305, + "asa": 17306, + "gritted": 17307, + "##athy": 17308, + "jericho": 17309, + "##sea": 17310, + "##was": 17311, + "flick": 17312, + "underside": 17313, + "ceramics": 17314, + "undead": 17315, + "substituted": 17316, + "195": 17317, + "eastward": 17318, + "undoubtedly": 17319, + "wheeled": 17320, + "chimney": 17321, + "##iche": 17322, + "guinness": 17323, + "cb": 17324, + "##ager": 17325, + "siding": 17326, + "##bell": 17327, + "traitor": 17328, + "baptiste": 17329, + "disguised": 17330, + "inauguration": 17331, + "149": 17332, + "tipperary": 17333, + "choreographer": 17334, + "perched": 17335, + "warmed": 17336, + "stationary": 17337, + "eco": 17338, + "##ike": 17339, + "##ntes": 17340, + "bacterial": 17341, + "##aurus": 17342, + "flores": 17343, + "phosphate": 17344, + "##core": 17345, + "attacker": 17346, + "invaders": 17347, + "alvin": 17348, + "intersects": 17349, + "a1": 17350, + "indirectly": 17351, + "immigrated": 17352, + "businessmen": 17353, + "cornelius": 17354, + "valves": 17355, + "narrated": 17356, + "pill": 17357, + "sober": 17358, + "ul": 17359, + "nationale": 17360, + "monastic": 17361, + "applicants": 17362, + "scenery": 17363, + "##jack": 17364, + "161": 17365, + "motifs": 17366, + "constitutes": 17367, + "cpu": 17368, + "##osh": 17369, + "jurisdictions": 17370, + "sd": 17371, + "tuning": 17372, + "irritation": 17373, + "woven": 17374, + "##uddin": 17375, + "fertility": 17376, + "gao": 17377, + "##erie": 17378, + "antagonist": 17379, + "impatient": 17380, + "glacial": 17381, + "hides": 17382, + "boarded": 17383, + "denominations": 17384, + "interception": 17385, + "##jas": 17386, + "cookie": 17387, + "nicola": 17388, + "##tee": 17389, + "algebraic": 17390, + "marquess": 17391, + "bahn": 17392, + "parole": 17393, + "buyers": 17394, + "bait": 17395, + "turbines": 17396, + "paperwork": 17397, + "bestowed": 17398, + "natasha": 17399, + "renee": 17400, + "oceans": 17401, + "purchases": 17402, + "157": 17403, + "vaccine": 17404, + "215": 17405, + "##tock": 17406, + "fixtures": 17407, + "playhouse": 17408, + "integrate": 17409, + "jai": 17410, + "oswald": 17411, + "intellectuals": 17412, + "##cky": 17413, + "booked": 17414, + "nests": 17415, + "mortimer": 17416, + "##isi": 17417, + "obsession": 17418, + "sept": 17419, + "##gler": 17420, + "##sum": 17421, + "440": 17422, + "scrutiny": 17423, + "simultaneous": 17424, + "squinted": 17425, + "##shin": 17426, + "collects": 17427, + "oven": 17428, + "shankar": 17429, + "penned": 17430, + "remarkably": 17431, + "##я": 17432, + "slips": 17433, + "luggage": 17434, + "spectral": 17435, + "1786": 17436, + "collaborations": 17437, + "louie": 17438, + "consolidation": 17439, + "##ailed": 17440, + "##ivating": 17441, + "420": 17442, + "hoover": 17443, + "blackpool": 17444, + "harness": 17445, + "ignition": 17446, + "vest": 17447, + "tails": 17448, + "belmont": 17449, + "mongol": 17450, + "skinner": 17451, + "##nae": 17452, + "visually": 17453, + "mage": 17454, + "derry": 17455, + "##tism": 17456, + "##unce": 17457, + "stevie": 17458, + "transitional": 17459, + "##rdy": 17460, + "redskins": 17461, + "drying": 17462, + "prep": 17463, + "prospective": 17464, + "##21": 17465, + "annoyance": 17466, + "oversee": 17467, + "##loaded": 17468, + "fills": 17469, + "##books": 17470, + "##iki": 17471, + "announces": 17472, + "fda": 17473, + "scowled": 17474, + "respects": 17475, + "prasad": 17476, + "mystic": 17477, + "tucson": 17478, + "##vale": 17479, + "revue": 17480, + "springer": 17481, + "bankrupt": 17482, + "1772": 17483, + "aristotle": 17484, + "salvatore": 17485, + "habsburg": 17486, + "##geny": 17487, + "dal": 17488, + "natal": 17489, + "nut": 17490, + "pod": 17491, + "chewing": 17492, + "darts": 17493, + "moroccan": 17494, + "walkover": 17495, + "rosario": 17496, + "lenin": 17497, + "punjabi": 17498, + "##ße": 17499, + "grossed": 17500, + "scattering": 17501, + "wired": 17502, + "invasive": 17503, + "hui": 17504, + "polynomial": 17505, + "corridors": 17506, + "wakes": 17507, + "gina": 17508, + "portrays": 17509, + "##cratic": 17510, + "arid": 17511, + "retreating": 17512, + "erich": 17513, + "irwin": 17514, + "sniper": 17515, + "##dha": 17516, + "linen": 17517, + "lindsey": 17518, + "maneuver": 17519, + "butch": 17520, + "shutting": 17521, + "socio": 17522, + "bounce": 17523, + "commemorative": 17524, + "postseason": 17525, + "jeremiah": 17526, + "pines": 17527, + "275": 17528, + "mystical": 17529, + "beads": 17530, + "bp": 17531, + "abbas": 17532, + "furnace": 17533, + "bidding": 17534, + "consulted": 17535, + "assaulted": 17536, + "empirical": 17537, + "rubble": 17538, + "enclosure": 17539, + "sob": 17540, + "weakly": 17541, + "cancel": 17542, + "polly": 17543, + "yielded": 17544, + "##emann": 17545, + "curly": 17546, + "prediction": 17547, + "battered": 17548, + "70s": 17549, + "vhs": 17550, + "jacqueline": 17551, + "render": 17552, + "sails": 17553, + "barked": 17554, + "detailing": 17555, + "grayson": 17556, + "riga": 17557, + "sloane": 17558, + "raging": 17559, + "##yah": 17560, + "herbs": 17561, + "bravo": 17562, + "##athlon": 17563, + "alloy": 17564, + "giggle": 17565, + "imminent": 17566, + "suffers": 17567, + "assumptions": 17568, + "waltz": 17569, + "##itate": 17570, + "accomplishments": 17571, + "##ited": 17572, + "bathing": 17573, + "remixed": 17574, + "deception": 17575, + "prefix": 17576, + "##emia": 17577, + "deepest": 17578, + "##tier": 17579, + "##eis": 17580, + "balkan": 17581, + "frogs": 17582, + "##rong": 17583, + "slab": 17584, + "##pate": 17585, + "philosophers": 17586, + "peterborough": 17587, + "grains": 17588, + "imports": 17589, + "dickinson": 17590, + "rwanda": 17591, + "##atics": 17592, + "1774": 17593, + "dirk": 17594, + "lan": 17595, + "tablets": 17596, + "##rove": 17597, + "clone": 17598, + "##rice": 17599, + "caretaker": 17600, + "hostilities": 17601, + "mclean": 17602, + "##gre": 17603, + "regimental": 17604, + "treasures": 17605, + "norms": 17606, + "impose": 17607, + "tsar": 17608, + "tango": 17609, + "diplomacy": 17610, + "variously": 17611, + "complain": 17612, + "192": 17613, + "recognise": 17614, + "arrests": 17615, + "1779": 17616, + "celestial": 17617, + "pulitzer": 17618, + "##dus": 17619, + "bing": 17620, + "libretto": 17621, + "##moor": 17622, + "adele": 17623, + "splash": 17624, + "##rite": 17625, + "expectation": 17626, + "lds": 17627, + "confronts": 17628, + "##izer": 17629, + "spontaneous": 17630, + "harmful": 17631, + "wedge": 17632, + "entrepreneurs": 17633, + "buyer": 17634, + "##ope": 17635, + "bilingual": 17636, + "translate": 17637, + "rugged": 17638, + "conner": 17639, + "circulated": 17640, + "uae": 17641, + "eaton": 17642, + "##gra": 17643, + "##zzle": 17644, + "lingered": 17645, + "lockheed": 17646, + "vishnu": 17647, + "reelection": 17648, + "alonso": 17649, + "##oom": 17650, + "joints": 17651, + "yankee": 17652, + "headline": 17653, + "cooperate": 17654, + "heinz": 17655, + "laureate": 17656, + "invading": 17657, + "##sford": 17658, + "echoes": 17659, + "scandinavian": 17660, + "##dham": 17661, + "hugging": 17662, + "vitamin": 17663, + "salute": 17664, + "micah": 17665, + "hind": 17666, + "trader": 17667, + "##sper": 17668, + "radioactive": 17669, + "##ndra": 17670, + "militants": 17671, + "poisoned": 17672, + "ratified": 17673, + "remark": 17674, + "campeonato": 17675, + "deprived": 17676, + "wander": 17677, + "prop": 17678, + "##dong": 17679, + "outlook": 17680, + "##tani": 17681, + "##rix": 17682, + "##eye": 17683, + "chiang": 17684, + "darcy": 17685, + "##oping": 17686, + "mandolin": 17687, + "spice": 17688, + "statesman": 17689, + "babylon": 17690, + "182": 17691, + "walled": 17692, + "forgetting": 17693, + "afro": 17694, + "##cap": 17695, + "158": 17696, + "giorgio": 17697, + "buffer": 17698, + "##polis": 17699, + "planetary": 17700, + "##gis": 17701, + "overlap": 17702, + "terminals": 17703, + "kinda": 17704, + "centenary": 17705, + "##bir": 17706, + "arising": 17707, + "manipulate": 17708, + "elm": 17709, + "ke": 17710, + "1770": 17711, + "ak": 17712, + "##tad": 17713, + "chrysler": 17714, + "mapped": 17715, + "moose": 17716, + "pomeranian": 17717, + "quad": 17718, + "macarthur": 17719, + "assemblies": 17720, + "shoreline": 17721, + "recalls": 17722, + "stratford": 17723, + "##rted": 17724, + "noticeable": 17725, + "##evic": 17726, + "imp": 17727, + "##rita": 17728, + "##sque": 17729, + "accustomed": 17730, + "supplying": 17731, + "tents": 17732, + "disgusted": 17733, + "vogue": 17734, + "sipped": 17735, + "filters": 17736, + "khz": 17737, + "reno": 17738, + "selecting": 17739, + "luftwaffe": 17740, + "mcmahon": 17741, + "tyne": 17742, + "masterpiece": 17743, + "carriages": 17744, + "collided": 17745, + "dunes": 17746, + "exercised": 17747, + "flare": 17748, + "remembers": 17749, + "muzzle": 17750, + "##mobile": 17751, + "heck": 17752, + "##rson": 17753, + "burgess": 17754, + "lunged": 17755, + "middleton": 17756, + "boycott": 17757, + "bilateral": 17758, + "##sity": 17759, + "hazardous": 17760, + "lumpur": 17761, + "multiplayer": 17762, + "spotlight": 17763, + "jackets": 17764, + "goldman": 17765, + "liege": 17766, + "porcelain": 17767, + "rag": 17768, + "waterford": 17769, + "benz": 17770, + "attracts": 17771, + "hopeful": 17772, + "battling": 17773, + "ottomans": 17774, + "kensington": 17775, + "baked": 17776, + "hymns": 17777, + "cheyenne": 17778, + "lattice": 17779, + "levine": 17780, + "borrow": 17781, + "polymer": 17782, + "clashes": 17783, + "michaels": 17784, + "monitored": 17785, + "commitments": 17786, + "denounced": 17787, + "##25": 17788, + "##von": 17789, + "cavity": 17790, + "##oney": 17791, + "hobby": 17792, + "akin": 17793, + "##holders": 17794, + "futures": 17795, + "intricate": 17796, + "cornish": 17797, + "patty": 17798, + "##oned": 17799, + "illegally": 17800, + "dolphin": 17801, + "##lag": 17802, + "barlow": 17803, + "yellowish": 17804, + "maddie": 17805, + "apologized": 17806, + "luton": 17807, + "plagued": 17808, + "##puram": 17809, + "nana": 17810, + "##rds": 17811, + "sway": 17812, + "fanny": 17813, + "łodz": 17814, + "##rino": 17815, + "psi": 17816, + "suspicions": 17817, + "hanged": 17818, + "##eding": 17819, + "initiate": 17820, + "charlton": 17821, + "##por": 17822, + "nak": 17823, + "competent": 17824, + "235": 17825, + "analytical": 17826, + "annex": 17827, + "wardrobe": 17828, + "reservations": 17829, + "##rma": 17830, + "sect": 17831, + "162": 17832, + "fairfax": 17833, + "hedge": 17834, + "piled": 17835, + "buckingham": 17836, + "uneven": 17837, + "bauer": 17838, + "simplicity": 17839, + "snyder": 17840, + "interpret": 17841, + "accountability": 17842, + "donors": 17843, + "moderately": 17844, + "byrd": 17845, + "continents": 17846, + "##cite": 17847, + "##max": 17848, + "disciple": 17849, + "hr": 17850, + "jamaican": 17851, + "ping": 17852, + "nominees": 17853, + "##uss": 17854, + "mongolian": 17855, + "diver": 17856, + "attackers": 17857, + "eagerly": 17858, + "ideological": 17859, + "pillows": 17860, + "miracles": 17861, + "apartheid": 17862, + "revolver": 17863, + "sulfur": 17864, + "clinics": 17865, + "moran": 17866, + "163": 17867, + "##enko": 17868, + "ile": 17869, + "katy": 17870, + "rhetoric": 17871, + "##icated": 17872, + "chronology": 17873, + "recycling": 17874, + "##hrer": 17875, + "elongated": 17876, + "mughal": 17877, + "pascal": 17878, + "profiles": 17879, + "vibration": 17880, + "databases": 17881, + "domination": 17882, + "##fare": 17883, + "##rant": 17884, + "matthias": 17885, + "digest": 17886, + "rehearsal": 17887, + "polling": 17888, + "weiss": 17889, + "initiation": 17890, + "reeves": 17891, + "clinging": 17892, + "flourished": 17893, + "impress": 17894, + "ngo": 17895, + "##hoff": 17896, + "##ume": 17897, + "buckley": 17898, + "symposium": 17899, + "rhythms": 17900, + "weed": 17901, + "emphasize": 17902, + "transforming": 17903, + "##taking": 17904, + "##gence": 17905, + "##yman": 17906, + "accountant": 17907, + "analyze": 17908, + "flicker": 17909, + "foil": 17910, + "priesthood": 17911, + "voluntarily": 17912, + "decreases": 17913, + "##80": 17914, + "##hya": 17915, + "slater": 17916, + "sv": 17917, + "charting": 17918, + "mcgill": 17919, + "##lde": 17920, + "moreno": 17921, + "##iu": 17922, + "besieged": 17923, + "zur": 17924, + "robes": 17925, + "##phic": 17926, + "admitting": 17927, + "api": 17928, + "deported": 17929, + "turmoil": 17930, + "peyton": 17931, + "earthquakes": 17932, + "##ares": 17933, + "nationalists": 17934, + "beau": 17935, + "clair": 17936, + "brethren": 17937, + "interrupt": 17938, + "welch": 17939, + "curated": 17940, + "galerie": 17941, + "requesting": 17942, + "164": 17943, + "##ested": 17944, + "impending": 17945, + "steward": 17946, + "viper": 17947, + "##vina": 17948, + "complaining": 17949, + "beautifully": 17950, + "brandy": 17951, + "foam": 17952, + "nl": 17953, + "1660": 17954, + "##cake": 17955, + "alessandro": 17956, + "punches": 17957, + "laced": 17958, + "explanations": 17959, + "##lim": 17960, + "attribute": 17961, + "clit": 17962, + "reggie": 17963, + "discomfort": 17964, + "##cards": 17965, + "smoothed": 17966, + "whales": 17967, + "##cene": 17968, + "adler": 17969, + "countered": 17970, + "duffy": 17971, + "disciplinary": 17972, + "widening": 17973, + "recipe": 17974, + "reliance": 17975, + "conducts": 17976, + "goats": 17977, + "gradient": 17978, + "preaching": 17979, + "##shaw": 17980, + "matilda": 17981, + "quasi": 17982, + "striped": 17983, + "meridian": 17984, + "cannabis": 17985, + "cordoba": 17986, + "certificates": 17987, + "##agh": 17988, + "##tering": 17989, + "graffiti": 17990, + "hangs": 17991, + "pilgrims": 17992, + "repeats": 17993, + "##ych": 17994, + "revive": 17995, + "urine": 17996, + "etat": 17997, + "##hawk": 17998, + "fueled": 17999, + "belts": 18000, + "fuzzy": 18001, + "susceptible": 18002, + "##hang": 18003, + "mauritius": 18004, + "salle": 18005, + "sincere": 18006, + "beers": 18007, + "hooks": 18008, + "##cki": 18009, + "arbitration": 18010, + "entrusted": 18011, + "advise": 18012, + "sniffed": 18013, + "seminar": 18014, + "junk": 18015, + "donnell": 18016, + "processors": 18017, + "principality": 18018, + "strapped": 18019, + "celia": 18020, + "mendoza": 18021, + "everton": 18022, + "fortunes": 18023, + "prejudice": 18024, + "starving": 18025, + "reassigned": 18026, + "steamer": 18027, + "##lund": 18028, + "tuck": 18029, + "evenly": 18030, + "foreman": 18031, + "##ffen": 18032, + "dans": 18033, + "375": 18034, + "envisioned": 18035, + "slit": 18036, + "##xy": 18037, + "baseman": 18038, + "liberia": 18039, + "rosemary": 18040, + "##weed": 18041, + "electrified": 18042, + "periodically": 18043, + "potassium": 18044, + "stride": 18045, + "contexts": 18046, + "sperm": 18047, + "slade": 18048, + "mariners": 18049, + "influx": 18050, + "bianca": 18051, + "subcommittee": 18052, + "##rane": 18053, + "spilling": 18054, + "icao": 18055, + "estuary": 18056, + "##nock": 18057, + "delivers": 18058, + "iphone": 18059, + "##ulata": 18060, + "isa": 18061, + "mira": 18062, + "bohemian": 18063, + "dessert": 18064, + "##sbury": 18065, + "welcoming": 18066, + "proudly": 18067, + "slowing": 18068, + "##chs": 18069, + "musee": 18070, + "ascension": 18071, + "russ": 18072, + "##vian": 18073, + "waits": 18074, + "##psy": 18075, + "africans": 18076, + "exploit": 18077, + "##morphic": 18078, + "gov": 18079, + "eccentric": 18080, + "crab": 18081, + "peck": 18082, + "##ull": 18083, + "entrances": 18084, + "formidable": 18085, + "marketplace": 18086, + "groom": 18087, + "bolted": 18088, + "metabolism": 18089, + "patton": 18090, + "robbins": 18091, + "courier": 18092, + "payload": 18093, + "endure": 18094, + "##ifier": 18095, + "andes": 18096, + "refrigerator": 18097, + "##pr": 18098, + "ornate": 18099, + "##uca": 18100, + "ruthless": 18101, + "illegitimate": 18102, + "masonry": 18103, + "strasbourg": 18104, + "bikes": 18105, + "adobe": 18106, + "##³": 18107, + "apples": 18108, + "quintet": 18109, + "willingly": 18110, + "niche": 18111, + "bakery": 18112, + "corpses": 18113, + "energetic": 18114, + "##cliffe": 18115, + "##sser": 18116, + "##ards": 18117, + "177": 18118, + "centimeters": 18119, + "centro": 18120, + "fuscous": 18121, + "cretaceous": 18122, + "rancho": 18123, + "##yde": 18124, + "andrei": 18125, + "telecom": 18126, + "tottenham": 18127, + "oasis": 18128, + "ordination": 18129, + "vulnerability": 18130, + "presiding": 18131, + "corey": 18132, + "cp": 18133, + "penguins": 18134, + "sims": 18135, + "##pis": 18136, + "malawi": 18137, + "piss": 18138, + "##48": 18139, + "correction": 18140, + "##cked": 18141, + "##ffle": 18142, + "##ryn": 18143, + "countdown": 18144, + "detectives": 18145, + "psychiatrist": 18146, + "psychedelic": 18147, + "dinosaurs": 18148, + "blouse": 18149, + "##get": 18150, + "choi": 18151, + "vowed": 18152, + "##oz": 18153, + "randomly": 18154, + "##pol": 18155, + "49ers": 18156, + "scrub": 18157, + "blanche": 18158, + "bruins": 18159, + "dusseldorf": 18160, + "##using": 18161, + "unwanted": 18162, + "##ums": 18163, + "212": 18164, + "dominique": 18165, + "elevations": 18166, + "headlights": 18167, + "om": 18168, + "laguna": 18169, + "##oga": 18170, + "1750": 18171, + "famously": 18172, + "ignorance": 18173, + "shrewsbury": 18174, + "##aine": 18175, + "ajax": 18176, + "breuning": 18177, + "che": 18178, + "confederacy": 18179, + "greco": 18180, + "overhaul": 18181, + "##screen": 18182, + "paz": 18183, + "skirts": 18184, + "disagreement": 18185, + "cruelty": 18186, + "jagged": 18187, + "phoebe": 18188, + "shifter": 18189, + "hovered": 18190, + "viruses": 18191, + "##wes": 18192, + "mandy": 18193, + "##lined": 18194, + "##gc": 18195, + "landlord": 18196, + "squirrel": 18197, + "dashed": 18198, + "##ι": 18199, + "ornamental": 18200, + "gag": 18201, + "wally": 18202, + "grange": 18203, + "literal": 18204, + "spurs": 18205, + "undisclosed": 18206, + "proceeding": 18207, + "yin": 18208, + "##text": 18209, + "billie": 18210, + "orphan": 18211, + "spanned": 18212, + "humidity": 18213, + "indy": 18214, + "weighted": 18215, + "presentations": 18216, + "explosions": 18217, + "lucian": 18218, + "##tary": 18219, + "vaughn": 18220, + "hindus": 18221, + "##anga": 18222, + "##hell": 18223, + "psycho": 18224, + "171": 18225, + "daytona": 18226, + "protects": 18227, + "efficiently": 18228, + "rematch": 18229, + "sly": 18230, + "tandem": 18231, + "##oya": 18232, + "rebranded": 18233, + "impaired": 18234, + "hee": 18235, + "metropolis": 18236, + "peach": 18237, + "godfrey": 18238, + "diaspora": 18239, + "ethnicity": 18240, + "prosperous": 18241, + "gleaming": 18242, + "dar": 18243, + "grossing": 18244, + "playback": 18245, + "##rden": 18246, + "stripe": 18247, + "pistols": 18248, + "##tain": 18249, + "births": 18250, + "labelled": 18251, + "##cating": 18252, + "172": 18253, + "rudy": 18254, + "alba": 18255, + "##onne": 18256, + "aquarium": 18257, + "hostility": 18258, + "##gb": 18259, + "##tase": 18260, + "shudder": 18261, + "sumatra": 18262, + "hardest": 18263, + "lakers": 18264, + "consonant": 18265, + "creeping": 18266, + "demos": 18267, + "homicide": 18268, + "capsule": 18269, + "zeke": 18270, + "liberties": 18271, + "expulsion": 18272, + "pueblo": 18273, + "##comb": 18274, + "trait": 18275, + "transporting": 18276, + "##ddin": 18277, + "##neck": 18278, + "##yna": 18279, + "depart": 18280, + "gregg": 18281, + "mold": 18282, + "ledge": 18283, + "hangar": 18284, + "oldham": 18285, + "playboy": 18286, + "termination": 18287, + "analysts": 18288, + "gmbh": 18289, + "romero": 18290, + "##itic": 18291, + "insist": 18292, + "cradle": 18293, + "filthy": 18294, + "brightness": 18295, + "slash": 18296, + "shootout": 18297, + "deposed": 18298, + "bordering": 18299, + "##truct": 18300, + "isis": 18301, + "microwave": 18302, + "tumbled": 18303, + "sheltered": 18304, + "cathy": 18305, + "werewolves": 18306, + "messy": 18307, + "andersen": 18308, + "convex": 18309, + "clapped": 18310, + "clinched": 18311, + "satire": 18312, + "wasting": 18313, + "edo": 18314, + "vc": 18315, + "rufus": 18316, + "##jak": 18317, + "mont": 18318, + "##etti": 18319, + "poznan": 18320, + "##keeping": 18321, + "restructuring": 18322, + "transverse": 18323, + "##rland": 18324, + "azerbaijani": 18325, + "slovene": 18326, + "gestures": 18327, + "roommate": 18328, + "choking": 18329, + "shear": 18330, + "##quist": 18331, + "vanguard": 18332, + "oblivious": 18333, + "##hiro": 18334, + "disagreed": 18335, + "baptism": 18336, + "##lich": 18337, + "coliseum": 18338, + "##aceae": 18339, + "salvage": 18340, + "societe": 18341, + "cory": 18342, + "locke": 18343, + "relocation": 18344, + "relying": 18345, + "versailles": 18346, + "ahl": 18347, + "swelling": 18348, + "##elo": 18349, + "cheerful": 18350, + "##word": 18351, + "##edes": 18352, + "gin": 18353, + "sarajevo": 18354, + "obstacle": 18355, + "diverted": 18356, + "##nac": 18357, + "messed": 18358, + "thoroughbred": 18359, + "fluttered": 18360, + "utrecht": 18361, + "chewed": 18362, + "acquaintance": 18363, + "assassins": 18364, + "dispatch": 18365, + "mirza": 18366, + "##wart": 18367, + "nike": 18368, + "salzburg": 18369, + "swell": 18370, + "yen": 18371, + "##gee": 18372, + "idle": 18373, + "ligue": 18374, + "samson": 18375, + "##nds": 18376, + "##igh": 18377, + "playful": 18378, + "spawned": 18379, + "##cise": 18380, + "tease": 18381, + "##case": 18382, + "burgundy": 18383, + "##bot": 18384, + "stirring": 18385, + "skeptical": 18386, + "interceptions": 18387, + "marathi": 18388, + "##dies": 18389, + "bedrooms": 18390, + "aroused": 18391, + "pinch": 18392, + "##lik": 18393, + "preferences": 18394, + "tattoos": 18395, + "buster": 18396, + "digitally": 18397, + "projecting": 18398, + "rust": 18399, + "##ital": 18400, + "kitten": 18401, + "priorities": 18402, + "addison": 18403, + "pseudo": 18404, + "##guard": 18405, + "dusk": 18406, + "icons": 18407, + "sermon": 18408, + "##psis": 18409, + "##iba": 18410, + "bt": 18411, + "##lift": 18412, + "##xt": 18413, + "ju": 18414, + "truce": 18415, + "rink": 18416, + "##dah": 18417, + "##wy": 18418, + "defects": 18419, + "psychiatry": 18420, + "offences": 18421, + "calculate": 18422, + "glucose": 18423, + "##iful": 18424, + "##rized": 18425, + "##unda": 18426, + "francaise": 18427, + "##hari": 18428, + "richest": 18429, + "warwickshire": 18430, + "carly": 18431, + "1763": 18432, + "purity": 18433, + "redemption": 18434, + "lending": 18435, + "##cious": 18436, + "muse": 18437, + "bruises": 18438, + "cerebral": 18439, + "aero": 18440, + "carving": 18441, + "##name": 18442, + "preface": 18443, + "terminology": 18444, + "invade": 18445, + "monty": 18446, + "##int": 18447, + "anarchist": 18448, + "blurred": 18449, + "##iled": 18450, + "rossi": 18451, + "treats": 18452, + "guts": 18453, + "shu": 18454, + "foothills": 18455, + "ballads": 18456, + "undertaking": 18457, + "premise": 18458, + "cecilia": 18459, + "affiliates": 18460, + "blasted": 18461, + "conditional": 18462, + "wilder": 18463, + "minors": 18464, + "drone": 18465, + "rudolph": 18466, + "buffy": 18467, + "swallowing": 18468, + "horton": 18469, + "attested": 18470, + "##hop": 18471, + "rutherford": 18472, + "howell": 18473, + "primetime": 18474, + "livery": 18475, + "penal": 18476, + "##bis": 18477, + "minimize": 18478, + "hydro": 18479, + "wrecked": 18480, + "wrought": 18481, + "palazzo": 18482, + "##gling": 18483, + "cans": 18484, + "vernacular": 18485, + "friedman": 18486, + "nobleman": 18487, + "shale": 18488, + "walnut": 18489, + "danielle": 18490, + "##ection": 18491, + "##tley": 18492, + "sears": 18493, + "##kumar": 18494, + "chords": 18495, + "lend": 18496, + "flipping": 18497, + "streamed": 18498, + "por": 18499, + "dracula": 18500, + "gallons": 18501, + "sacrifices": 18502, + "gamble": 18503, + "orphanage": 18504, + "##iman": 18505, + "mckenzie": 18506, + "##gible": 18507, + "boxers": 18508, + "daly": 18509, + "##balls": 18510, + "##ان": 18511, + "208": 18512, + "##ific": 18513, + "##rative": 18514, + "##iq": 18515, + "exploited": 18516, + "slated": 18517, + "##uity": 18518, + "circling": 18519, + "hillary": 18520, + "pinched": 18521, + "goldberg": 18522, + "provost": 18523, + "campaigning": 18524, + "lim": 18525, + "piles": 18526, + "ironically": 18527, + "jong": 18528, + "mohan": 18529, + "successors": 18530, + "usaf": 18531, + "##tem": 18532, + "##ught": 18533, + "autobiographical": 18534, + "haute": 18535, + "preserves": 18536, + "##ending": 18537, + "acquitted": 18538, + "comparisons": 18539, + "203": 18540, + "hydroelectric": 18541, + "gangs": 18542, + "cypriot": 18543, + "torpedoes": 18544, + "rushes": 18545, + "chrome": 18546, + "derive": 18547, + "bumps": 18548, + "instability": 18549, + "fiat": 18550, + "pets": 18551, + "##mbe": 18552, + "silas": 18553, + "dye": 18554, + "reckless": 18555, + "settler": 18556, + "##itation": 18557, + "info": 18558, + "heats": 18559, + "##writing": 18560, + "176": 18561, + "canonical": 18562, + "maltese": 18563, + "fins": 18564, + "mushroom": 18565, + "stacy": 18566, + "aspen": 18567, + "avid": 18568, + "##kur": 18569, + "##loading": 18570, + "vickers": 18571, + "gaston": 18572, + "hillside": 18573, + "statutes": 18574, + "wilde": 18575, + "gail": 18576, + "kung": 18577, + "sabine": 18578, + "comfortably": 18579, + "motorcycles": 18580, + "##rgo": 18581, + "169": 18582, + "pneumonia": 18583, + "fetch": 18584, + "##sonic": 18585, + "axel": 18586, + "faintly": 18587, + "parallels": 18588, + "##oop": 18589, + "mclaren": 18590, + "spouse": 18591, + "compton": 18592, + "interdisciplinary": 18593, + "miner": 18594, + "##eni": 18595, + "181": 18596, + "clamped": 18597, + "##chal": 18598, + "##llah": 18599, + "separates": 18600, + "versa": 18601, + "##mler": 18602, + "scarborough": 18603, + "labrador": 18604, + "##lity": 18605, + "##osing": 18606, + "rutgers": 18607, + "hurdles": 18608, + "como": 18609, + "166": 18610, + "burt": 18611, + "divers": 18612, + "##100": 18613, + "wichita": 18614, + "cade": 18615, + "coincided": 18616, + "##erson": 18617, + "bruised": 18618, + "mla": 18619, + "##pper": 18620, + "vineyard": 18621, + "##ili": 18622, + "##brush": 18623, + "notch": 18624, + "mentioning": 18625, + "jase": 18626, + "hearted": 18627, + "kits": 18628, + "doe": 18629, + "##acle": 18630, + "pomerania": 18631, + "##ady": 18632, + "ronan": 18633, + "seizure": 18634, + "pavel": 18635, + "problematic": 18636, + "##zaki": 18637, + "domenico": 18638, + "##ulin": 18639, + "catering": 18640, + "penelope": 18641, + "dependence": 18642, + "parental": 18643, + "emilio": 18644, + "ministerial": 18645, + "atkinson": 18646, + "##bolic": 18647, + "clarkson": 18648, + "chargers": 18649, + "colby": 18650, + "grill": 18651, + "peeked": 18652, + "arises": 18653, + "summon": 18654, + "##aged": 18655, + "fools": 18656, + "##grapher": 18657, + "faculties": 18658, + "qaeda": 18659, + "##vial": 18660, + "garner": 18661, + "refurbished": 18662, + "##hwa": 18663, + "geelong": 18664, + "disasters": 18665, + "nudged": 18666, + "bs": 18667, + "shareholder": 18668, + "lori": 18669, + "algae": 18670, + "reinstated": 18671, + "rot": 18672, + "##ades": 18673, + "##nous": 18674, + "invites": 18675, + "stainless": 18676, + "183": 18677, + "inclusive": 18678, + "##itude": 18679, + "diocesan": 18680, + "til": 18681, + "##icz": 18682, + "denomination": 18683, + "##xa": 18684, + "benton": 18685, + "floral": 18686, + "registers": 18687, + "##ider": 18688, + "##erman": 18689, + "##kell": 18690, + "absurd": 18691, + "brunei": 18692, + "guangzhou": 18693, + "hitter": 18694, + "retaliation": 18695, + "##uled": 18696, + "##eve": 18697, + "blanc": 18698, + "nh": 18699, + "consistency": 18700, + "contamination": 18701, + "##eres": 18702, + "##rner": 18703, + "dire": 18704, + "palermo": 18705, + "broadcasters": 18706, + "diaries": 18707, + "inspire": 18708, + "vols": 18709, + "brewer": 18710, + "tightening": 18711, + "ky": 18712, + "mixtape": 18713, + "hormone": 18714, + "##tok": 18715, + "stokes": 18716, + "##color": 18717, + "##dly": 18718, + "##ssi": 18719, + "pg": 18720, + "##ometer": 18721, + "##lington": 18722, + "sanitation": 18723, + "##tility": 18724, + "intercontinental": 18725, + "apps": 18726, + "##adt": 18727, + "¹⁄₂": 18728, + "cylinders": 18729, + "economies": 18730, + "favourable": 18731, + "unison": 18732, + "croix": 18733, + "gertrude": 18734, + "odyssey": 18735, + "vanity": 18736, + "dangling": 18737, + "##logists": 18738, + "upgrades": 18739, + "dice": 18740, + "middleweight": 18741, + "practitioner": 18742, + "##ight": 18743, + "206": 18744, + "henrik": 18745, + "parlor": 18746, + "orion": 18747, + "angered": 18748, + "lac": 18749, + "python": 18750, + "blurted": 18751, + "##rri": 18752, + "sensual": 18753, + "intends": 18754, + "swings": 18755, + "angled": 18756, + "##phs": 18757, + "husky": 18758, + "attain": 18759, + "peerage": 18760, + "precinct": 18761, + "textiles": 18762, + "cheltenham": 18763, + "shuffled": 18764, + "dai": 18765, + "confess": 18766, + "tasting": 18767, + "bhutan": 18768, + "##riation": 18769, + "tyrone": 18770, + "segregation": 18771, + "abrupt": 18772, + "ruiz": 18773, + "##rish": 18774, + "smirked": 18775, + "blackwell": 18776, + "confidential": 18777, + "browning": 18778, + "amounted": 18779, + "##put": 18780, + "vase": 18781, + "scarce": 18782, + "fabulous": 18783, + "raided": 18784, + "staple": 18785, + "guyana": 18786, + "unemployed": 18787, + "glider": 18788, + "shay": 18789, + "##tow": 18790, + "carmine": 18791, + "troll": 18792, + "intervene": 18793, + "squash": 18794, + "superstar": 18795, + "##uce": 18796, + "cylindrical": 18797, + "len": 18798, + "roadway": 18799, + "researched": 18800, + "handy": 18801, + "##rium": 18802, + "##jana": 18803, + "meta": 18804, + "lao": 18805, + "declares": 18806, + "##rring": 18807, + "##tadt": 18808, + "##elin": 18809, + "##kova": 18810, + "willem": 18811, + "shrubs": 18812, + "napoleonic": 18813, + "realms": 18814, + "skater": 18815, + "qi": 18816, + "volkswagen": 18817, + "##ł": 18818, + "tad": 18819, + "hara": 18820, + "archaeologist": 18821, + "awkwardly": 18822, + "eerie": 18823, + "##kind": 18824, + "wiley": 18825, + "##heimer": 18826, + "##24": 18827, + "titus": 18828, + "organizers": 18829, + "cfl": 18830, + "crusaders": 18831, + "lama": 18832, + "usb": 18833, + "vent": 18834, + "enraged": 18835, + "thankful": 18836, + "occupants": 18837, + "maximilian": 18838, + "##gaard": 18839, + "possessing": 18840, + "textbooks": 18841, + "##oran": 18842, + "collaborator": 18843, + "quaker": 18844, + "##ulo": 18845, + "avalanche": 18846, + "mono": 18847, + "silky": 18848, + "straits": 18849, + "isaiah": 18850, + "mustang": 18851, + "surged": 18852, + "resolutions": 18853, + "potomac": 18854, + "descend": 18855, + "cl": 18856, + "kilograms": 18857, + "plato": 18858, + "strains": 18859, + "saturdays": 18860, + "##olin": 18861, + "bernstein": 18862, + "##ype": 18863, + "holstein": 18864, + "ponytail": 18865, + "##watch": 18866, + "belize": 18867, + "conversely": 18868, + "heroine": 18869, + "perpetual": 18870, + "##ylus": 18871, + "charcoal": 18872, + "piedmont": 18873, + "glee": 18874, + "negotiating": 18875, + "backdrop": 18876, + "prologue": 18877, + "##jah": 18878, + "##mmy": 18879, + "pasadena": 18880, + "climbs": 18881, + "ramos": 18882, + "sunni": 18883, + "##holm": 18884, + "##tner": 18885, + "##tri": 18886, + "anand": 18887, + "deficiency": 18888, + "hertfordshire": 18889, + "stout": 18890, + "##avi": 18891, + "aperture": 18892, + "orioles": 18893, + "##irs": 18894, + "doncaster": 18895, + "intrigued": 18896, + "bombed": 18897, + "coating": 18898, + "otis": 18899, + "##mat": 18900, + "cocktail": 18901, + "##jit": 18902, + "##eto": 18903, + "amir": 18904, + "arousal": 18905, + "sar": 18906, + "##proof": 18907, + "##act": 18908, + "##ories": 18909, + "dixie": 18910, + "pots": 18911, + "##bow": 18912, + "whereabouts": 18913, + "159": 18914, + "##fted": 18915, + "drains": 18916, + "bullying": 18917, + "cottages": 18918, + "scripture": 18919, + "coherent": 18920, + "fore": 18921, + "poe": 18922, + "appetite": 18923, + "##uration": 18924, + "sampled": 18925, + "##ators": 18926, + "##dp": 18927, + "derrick": 18928, + "rotor": 18929, + "jays": 18930, + "peacock": 18931, + "installment": 18932, + "##rro": 18933, + "advisors": 18934, + "##coming": 18935, + "rodeo": 18936, + "scotch": 18937, + "##mot": 18938, + "##db": 18939, + "##fen": 18940, + "##vant": 18941, + "ensued": 18942, + "rodrigo": 18943, + "dictatorship": 18944, + "martyrs": 18945, + "twenties": 18946, + "##н": 18947, + "towed": 18948, + "incidence": 18949, + "marta": 18950, + "rainforest": 18951, + "sai": 18952, + "scaled": 18953, + "##cles": 18954, + "oceanic": 18955, + "qualifiers": 18956, + "symphonic": 18957, + "mcbride": 18958, + "dislike": 18959, + "generalized": 18960, + "aubrey": 18961, + "colonization": 18962, + "##iation": 18963, + "##lion": 18964, + "##ssing": 18965, + "disliked": 18966, + "lublin": 18967, + "salesman": 18968, + "##ulates": 18969, + "spherical": 18970, + "whatsoever": 18971, + "sweating": 18972, + "avalon": 18973, + "contention": 18974, + "punt": 18975, + "severity": 18976, + "alderman": 18977, + "atari": 18978, + "##dina": 18979, + "##grant": 18980, + "##rop": 18981, + "scarf": 18982, + "seville": 18983, + "vertices": 18984, + "annexation": 18985, + "fairfield": 18986, + "fascination": 18987, + "inspiring": 18988, + "launches": 18989, + "palatinate": 18990, + "regretted": 18991, + "##rca": 18992, + "feral": 18993, + "##iom": 18994, + "elk": 18995, + "nap": 18996, + "olsen": 18997, + "reddy": 18998, + "yong": 18999, + "##leader": 19000, + "##iae": 19001, + "garment": 19002, + "transports": 19003, + "feng": 19004, + "gracie": 19005, + "outrage": 19006, + "viceroy": 19007, + "insides": 19008, + "##esis": 19009, + "breakup": 19010, + "grady": 19011, + "organizer": 19012, + "softer": 19013, + "grimaced": 19014, + "222": 19015, + "murals": 19016, + "galicia": 19017, + "arranging": 19018, + "vectors": 19019, + "##rsten": 19020, + "bas": 19021, + "##sb": 19022, + "##cens": 19023, + "sloan": 19024, + "##eka": 19025, + "bitten": 19026, + "ara": 19027, + "fender": 19028, + "nausea": 19029, + "bumped": 19030, + "kris": 19031, + "banquet": 19032, + "comrades": 19033, + "detector": 19034, + "persisted": 19035, + "##llan": 19036, + "adjustment": 19037, + "endowed": 19038, + "cinemas": 19039, + "##shot": 19040, + "sellers": 19041, + "##uman": 19042, + "peek": 19043, + "epa": 19044, + "kindly": 19045, + "neglect": 19046, + "simpsons": 19047, + "talon": 19048, + "mausoleum": 19049, + "runaway": 19050, + "hangul": 19051, + "lookout": 19052, + "##cic": 19053, + "rewards": 19054, + "coughed": 19055, + "acquainted": 19056, + "chloride": 19057, + "##ald": 19058, + "quicker": 19059, + "accordion": 19060, + "neolithic": 19061, + "##qa": 19062, + "artemis": 19063, + "coefficient": 19064, + "lenny": 19065, + "pandora": 19066, + "tx": 19067, + "##xed": 19068, + "ecstasy": 19069, + "litter": 19070, + "segunda": 19071, + "chairperson": 19072, + "gemma": 19073, + "hiss": 19074, + "rumor": 19075, + "vow": 19076, + "nasal": 19077, + "antioch": 19078, + "compensate": 19079, + "patiently": 19080, + "transformers": 19081, + "##eded": 19082, + "judo": 19083, + "morrow": 19084, + "penis": 19085, + "posthumous": 19086, + "philips": 19087, + "bandits": 19088, + "husbands": 19089, + "denote": 19090, + "flaming": 19091, + "##any": 19092, + "##phones": 19093, + "langley": 19094, + "yorker": 19095, + "1760": 19096, + "walters": 19097, + "##uo": 19098, + "##kle": 19099, + "gubernatorial": 19100, + "fatty": 19101, + "samsung": 19102, + "leroy": 19103, + "outlaw": 19104, + "##nine": 19105, + "unpublished": 19106, + "poole": 19107, + "jakob": 19108, + "##ᵢ": 19109, + "##ₙ": 19110, + "crete": 19111, + "distorted": 19112, + "superiority": 19113, + "##dhi": 19114, + "intercept": 19115, + "crust": 19116, + "mig": 19117, + "claus": 19118, + "crashes": 19119, + "positioning": 19120, + "188": 19121, + "stallion": 19122, + "301": 19123, + "frontal": 19124, + "armistice": 19125, + "##estinal": 19126, + "elton": 19127, + "aj": 19128, + "encompassing": 19129, + "camel": 19130, + "commemorated": 19131, + "malaria": 19132, + "woodward": 19133, + "calf": 19134, + "cigar": 19135, + "penetrate": 19136, + "##oso": 19137, + "willard": 19138, + "##rno": 19139, + "##uche": 19140, + "illustrate": 19141, + "amusing": 19142, + "convergence": 19143, + "noteworthy": 19144, + "##lma": 19145, + "##rva": 19146, + "journeys": 19147, + "realise": 19148, + "manfred": 19149, + "##sable": 19150, + "410": 19151, + "##vocation": 19152, + "hearings": 19153, + "fiance": 19154, + "##posed": 19155, + "educators": 19156, + "provoked": 19157, + "adjusting": 19158, + "##cturing": 19159, + "modular": 19160, + "stockton": 19161, + "paterson": 19162, + "vlad": 19163, + "rejects": 19164, + "electors": 19165, + "selena": 19166, + "maureen": 19167, + "##tres": 19168, + "uber": 19169, + "##rce": 19170, + "swirled": 19171, + "##num": 19172, + "proportions": 19173, + "nanny": 19174, + "pawn": 19175, + "naturalist": 19176, + "parma": 19177, + "apostles": 19178, + "awoke": 19179, + "ethel": 19180, + "wen": 19181, + "##bey": 19182, + "monsoon": 19183, + "overview": 19184, + "##inating": 19185, + "mccain": 19186, + "rendition": 19187, + "risky": 19188, + "adorned": 19189, + "##ih": 19190, + "equestrian": 19191, + "germain": 19192, + "nj": 19193, + "conspicuous": 19194, + "confirming": 19195, + "##yoshi": 19196, + "shivering": 19197, + "##imeter": 19198, + "milestone": 19199, + "rumours": 19200, + "flinched": 19201, + "bounds": 19202, + "smacked": 19203, + "token": 19204, + "##bei": 19205, + "lectured": 19206, + "automobiles": 19207, + "##shore": 19208, + "impacted": 19209, + "##iable": 19210, + "nouns": 19211, + "nero": 19212, + "##leaf": 19213, + "ismail": 19214, + "prostitute": 19215, + "trams": 19216, + "##lace": 19217, + "bridget": 19218, + "sud": 19219, + "stimulus": 19220, + "impressions": 19221, + "reins": 19222, + "revolves": 19223, + "##oud": 19224, + "##gned": 19225, + "giro": 19226, + "honeymoon": 19227, + "##swell": 19228, + "criterion": 19229, + "##sms": 19230, + "##uil": 19231, + "libyan": 19232, + "prefers": 19233, + "##osition": 19234, + "211": 19235, + "preview": 19236, + "sucks": 19237, + "accusation": 19238, + "bursts": 19239, + "metaphor": 19240, + "diffusion": 19241, + "tolerate": 19242, + "faye": 19243, + "betting": 19244, + "cinematographer": 19245, + "liturgical": 19246, + "specials": 19247, + "bitterly": 19248, + "humboldt": 19249, + "##ckle": 19250, + "flux": 19251, + "rattled": 19252, + "##itzer": 19253, + "archaeologists": 19254, + "odor": 19255, + "authorised": 19256, + "marshes": 19257, + "discretion": 19258, + "##ов": 19259, + "alarmed": 19260, + "archaic": 19261, + "inverse": 19262, + "##leton": 19263, + "explorers": 19264, + "##pine": 19265, + "drummond": 19266, + "tsunami": 19267, + "woodlands": 19268, + "##minate": 19269, + "##tland": 19270, + "booklet": 19271, + "insanity": 19272, + "owning": 19273, + "insert": 19274, + "crafted": 19275, + "calculus": 19276, + "##tore": 19277, + "receivers": 19278, + "##bt": 19279, + "stung": 19280, + "##eca": 19281, + "##nched": 19282, + "prevailing": 19283, + "travellers": 19284, + "eyeing": 19285, + "lila": 19286, + "graphs": 19287, + "##borne": 19288, + "178": 19289, + "julien": 19290, + "##won": 19291, + "morale": 19292, + "adaptive": 19293, + "therapist": 19294, + "erica": 19295, + "cw": 19296, + "libertarian": 19297, + "bowman": 19298, + "pitches": 19299, + "vita": 19300, + "##ional": 19301, + "crook": 19302, + "##ads": 19303, + "##entation": 19304, + "caledonia": 19305, + "mutiny": 19306, + "##sible": 19307, + "1840s": 19308, + "automation": 19309, + "##ß": 19310, + "flock": 19311, + "##pia": 19312, + "ironic": 19313, + "pathology": 19314, + "##imus": 19315, + "remarried": 19316, + "##22": 19317, + "joker": 19318, + "withstand": 19319, + "energies": 19320, + "##att": 19321, + "shropshire": 19322, + "hostages": 19323, + "madeleine": 19324, + "tentatively": 19325, + "conflicting": 19326, + "mateo": 19327, + "recipes": 19328, + "euros": 19329, + "ol": 19330, + "mercenaries": 19331, + "nico": 19332, + "##ndon": 19333, + "albuquerque": 19334, + "augmented": 19335, + "mythical": 19336, + "bel": 19337, + "freud": 19338, + "##child": 19339, + "cough": 19340, + "##lica": 19341, + "365": 19342, + "freddy": 19343, + "lillian": 19344, + "genetically": 19345, + "nuremberg": 19346, + "calder": 19347, + "209": 19348, + "bonn": 19349, + "outdoors": 19350, + "paste": 19351, + "suns": 19352, + "urgency": 19353, + "vin": 19354, + "restraint": 19355, + "tyson": 19356, + "##cera": 19357, + "##selle": 19358, + "barrage": 19359, + "bethlehem": 19360, + "kahn": 19361, + "##par": 19362, + "mounts": 19363, + "nippon": 19364, + "barony": 19365, + "happier": 19366, + "ryu": 19367, + "makeshift": 19368, + "sheldon": 19369, + "blushed": 19370, + "castillo": 19371, + "barking": 19372, + "listener": 19373, + "taped": 19374, + "bethel": 19375, + "fluent": 19376, + "headlines": 19377, + "pornography": 19378, + "rum": 19379, + "disclosure": 19380, + "sighing": 19381, + "mace": 19382, + "doubling": 19383, + "gunther": 19384, + "manly": 19385, + "##plex": 19386, + "rt": 19387, + "interventions": 19388, + "physiological": 19389, + "forwards": 19390, + "emerges": 19391, + "##tooth": 19392, + "##gny": 19393, + "compliment": 19394, + "rib": 19395, + "recession": 19396, + "visibly": 19397, + "barge": 19398, + "faults": 19399, + "connector": 19400, + "exquisite": 19401, + "prefect": 19402, + "##rlin": 19403, + "patio": 19404, + "##cured": 19405, + "elevators": 19406, + "brandt": 19407, + "italics": 19408, + "pena": 19409, + "173": 19410, + "wasp": 19411, + "satin": 19412, + "ea": 19413, + "botswana": 19414, + "graceful": 19415, + "respectable": 19416, + "##jima": 19417, + "##rter": 19418, + "##oic": 19419, + "franciscan": 19420, + "generates": 19421, + "##dl": 19422, + "alfredo": 19423, + "disgusting": 19424, + "##olate": 19425, + "##iously": 19426, + "sherwood": 19427, + "warns": 19428, + "cod": 19429, + "promo": 19430, + "cheryl": 19431, + "sino": 19432, + "##ة": 19433, + "##escu": 19434, + "twitch": 19435, + "##zhi": 19436, + "brownish": 19437, + "thom": 19438, + "ortiz": 19439, + "##dron": 19440, + "densely": 19441, + "##beat": 19442, + "carmel": 19443, + "reinforce": 19444, + "##bana": 19445, + "187": 19446, + "anastasia": 19447, + "downhill": 19448, + "vertex": 19449, + "contaminated": 19450, + "remembrance": 19451, + "harmonic": 19452, + "homework": 19453, + "##sol": 19454, + "fiancee": 19455, + "gears": 19456, + "olds": 19457, + "angelica": 19458, + "loft": 19459, + "ramsay": 19460, + "quiz": 19461, + "colliery": 19462, + "sevens": 19463, + "##cape": 19464, + "autism": 19465, + "##hil": 19466, + "walkway": 19467, + "##boats": 19468, + "ruben": 19469, + "abnormal": 19470, + "ounce": 19471, + "khmer": 19472, + "##bbe": 19473, + "zachary": 19474, + "bedside": 19475, + "morphology": 19476, + "punching": 19477, + "##olar": 19478, + "sparrow": 19479, + "convinces": 19480, + "##35": 19481, + "hewitt": 19482, + "queer": 19483, + "remastered": 19484, + "rods": 19485, + "mabel": 19486, + "solemn": 19487, + "notified": 19488, + "lyricist": 19489, + "symmetric": 19490, + "##xide": 19491, + "174": 19492, + "encore": 19493, + "passports": 19494, + "wildcats": 19495, + "##uni": 19496, + "baja": 19497, + "##pac": 19498, + "mildly": 19499, + "##ease": 19500, + "bleed": 19501, + "commodity": 19502, + "mounds": 19503, + "glossy": 19504, + "orchestras": 19505, + "##omo": 19506, + "damian": 19507, + "prelude": 19508, + "ambitions": 19509, + "##vet": 19510, + "awhile": 19511, + "remotely": 19512, + "##aud": 19513, + "asserts": 19514, + "imply": 19515, + "##iques": 19516, + "distinctly": 19517, + "modelling": 19518, + "remedy": 19519, + "##dded": 19520, + "windshield": 19521, + "dani": 19522, + "xiao": 19523, + "##endra": 19524, + "audible": 19525, + "powerplant": 19526, + "1300": 19527, + "invalid": 19528, + "elemental": 19529, + "acquisitions": 19530, + "##hala": 19531, + "immaculate": 19532, + "libby": 19533, + "plata": 19534, + "smuggling": 19535, + "ventilation": 19536, + "denoted": 19537, + "minh": 19538, + "##morphism": 19539, + "430": 19540, + "differed": 19541, + "dion": 19542, + "kelley": 19543, + "lore": 19544, + "mocking": 19545, + "sabbath": 19546, + "spikes": 19547, + "hygiene": 19548, + "drown": 19549, + "runoff": 19550, + "stylized": 19551, + "tally": 19552, + "liberated": 19553, + "aux": 19554, + "interpreter": 19555, + "righteous": 19556, + "aba": 19557, + "siren": 19558, + "reaper": 19559, + "pearce": 19560, + "millie": 19561, + "##cier": 19562, + "##yra": 19563, + "gaius": 19564, + "##iso": 19565, + "captures": 19566, + "##ttering": 19567, + "dorm": 19568, + "claudio": 19569, + "##sic": 19570, + "benches": 19571, + "knighted": 19572, + "blackness": 19573, + "##ored": 19574, + "discount": 19575, + "fumble": 19576, + "oxidation": 19577, + "routed": 19578, + "##ς": 19579, + "novak": 19580, + "perpendicular": 19581, + "spoiled": 19582, + "fracture": 19583, + "splits": 19584, + "##urt": 19585, + "pads": 19586, + "topology": 19587, + "##cats": 19588, + "axes": 19589, + "fortunate": 19590, + "offenders": 19591, + "protestants": 19592, + "esteem": 19593, + "221": 19594, + "broadband": 19595, + "convened": 19596, + "frankly": 19597, + "hound": 19598, + "prototypes": 19599, + "isil": 19600, + "facilitated": 19601, + "keel": 19602, + "##sher": 19603, + "sahara": 19604, + "awaited": 19605, + "bubba": 19606, + "orb": 19607, + "prosecutors": 19608, + "186": 19609, + "hem": 19610, + "520": 19611, + "##xing": 19612, + "relaxing": 19613, + "remnant": 19614, + "romney": 19615, + "sorted": 19616, + "slalom": 19617, + "stefano": 19618, + "ulrich": 19619, + "##active": 19620, + "exemption": 19621, + "folder": 19622, + "pauses": 19623, + "foliage": 19624, + "hitchcock": 19625, + "epithet": 19626, + "204": 19627, + "criticisms": 19628, + "##aca": 19629, + "ballistic": 19630, + "brody": 19631, + "hinduism": 19632, + "chaotic": 19633, + "youths": 19634, + "equals": 19635, + "##pala": 19636, + "pts": 19637, + "thicker": 19638, + "analogous": 19639, + "capitalist": 19640, + "improvised": 19641, + "overseeing": 19642, + "sinatra": 19643, + "ascended": 19644, + "beverage": 19645, + "##tl": 19646, + "straightforward": 19647, + "##kon": 19648, + "curran": 19649, + "##west": 19650, + "bois": 19651, + "325": 19652, + "induce": 19653, + "surveying": 19654, + "emperors": 19655, + "sax": 19656, + "unpopular": 19657, + "##kk": 19658, + "cartoonist": 19659, + "fused": 19660, + "##mble": 19661, + "unto": 19662, + "##yuki": 19663, + "localities": 19664, + "##cko": 19665, + "##ln": 19666, + "darlington": 19667, + "slain": 19668, + "academie": 19669, + "lobbying": 19670, + "sediment": 19671, + "puzzles": 19672, + "##grass": 19673, + "defiance": 19674, + "dickens": 19675, + "manifest": 19676, + "tongues": 19677, + "alumnus": 19678, + "arbor": 19679, + "coincide": 19680, + "184": 19681, + "appalachian": 19682, + "mustafa": 19683, + "examiner": 19684, + "cabaret": 19685, + "traumatic": 19686, + "yves": 19687, + "bracelet": 19688, + "draining": 19689, + "heroin": 19690, + "magnum": 19691, + "baths": 19692, + "odessa": 19693, + "consonants": 19694, + "mitsubishi": 19695, + "##gua": 19696, + "kellan": 19697, + "vaudeville": 19698, + "##fr": 19699, + "joked": 19700, + "null": 19701, + "straps": 19702, + "probation": 19703, + "##ław": 19704, + "ceded": 19705, + "interfaces": 19706, + "##pas": 19707, + "##zawa": 19708, + "blinding": 19709, + "viet": 19710, + "224": 19711, + "rothschild": 19712, + "museo": 19713, + "640": 19714, + "huddersfield": 19715, + "##vr": 19716, + "tactic": 19717, + "##storm": 19718, + "brackets": 19719, + "dazed": 19720, + "incorrectly": 19721, + "##vu": 19722, + "reg": 19723, + "glazed": 19724, + "fearful": 19725, + "manifold": 19726, + "benefited": 19727, + "irony": 19728, + "##sun": 19729, + "stumbling": 19730, + "##rte": 19731, + "willingness": 19732, + "balkans": 19733, + "mei": 19734, + "wraps": 19735, + "##aba": 19736, + "injected": 19737, + "##lea": 19738, + "gu": 19739, + "syed": 19740, + "harmless": 19741, + "##hammer": 19742, + "bray": 19743, + "takeoff": 19744, + "poppy": 19745, + "timor": 19746, + "cardboard": 19747, + "astronaut": 19748, + "purdue": 19749, + "weeping": 19750, + "southbound": 19751, + "cursing": 19752, + "stalls": 19753, + "diagonal": 19754, + "##neer": 19755, + "lamar": 19756, + "bryce": 19757, + "comte": 19758, + "weekdays": 19759, + "harrington": 19760, + "##uba": 19761, + "negatively": 19762, + "##see": 19763, + "lays": 19764, + "grouping": 19765, + "##cken": 19766, + "##henko": 19767, + "affirmed": 19768, + "halle": 19769, + "modernist": 19770, + "##lai": 19771, + "hodges": 19772, + "smelling": 19773, + "aristocratic": 19774, + "baptized": 19775, + "dismiss": 19776, + "justification": 19777, + "oilers": 19778, + "##now": 19779, + "coupling": 19780, + "qin": 19781, + "snack": 19782, + "healer": 19783, + "##qing": 19784, + "gardener": 19785, + "layla": 19786, + "battled": 19787, + "formulated": 19788, + "stephenson": 19789, + "gravitational": 19790, + "##gill": 19791, + "##jun": 19792, + "1768": 19793, + "granny": 19794, + "coordinating": 19795, + "suites": 19796, + "##cd": 19797, + "##ioned": 19798, + "monarchs": 19799, + "##cote": 19800, + "##hips": 19801, + "sep": 19802, + "blended": 19803, + "apr": 19804, + "barrister": 19805, + "deposition": 19806, + "fia": 19807, + "mina": 19808, + "policemen": 19809, + "paranoid": 19810, + "##pressed": 19811, + "churchyard": 19812, + "covert": 19813, + "crumpled": 19814, + "creep": 19815, + "abandoning": 19816, + "tr": 19817, + "transmit": 19818, + "conceal": 19819, + "barr": 19820, + "understands": 19821, + "readiness": 19822, + "spire": 19823, + "##cology": 19824, + "##enia": 19825, + "##erry": 19826, + "610": 19827, + "startling": 19828, + "unlock": 19829, + "vida": 19830, + "bowled": 19831, + "slots": 19832, + "##nat": 19833, + "##islav": 19834, + "spaced": 19835, + "trusting": 19836, + "admire": 19837, + "rig": 19838, + "##ink": 19839, + "slack": 19840, + "##70": 19841, + "mv": 19842, + "207": 19843, + "casualty": 19844, + "##wei": 19845, + "classmates": 19846, + "##odes": 19847, + "##rar": 19848, + "##rked": 19849, + "amherst": 19850, + "furnished": 19851, + "evolve": 19852, + "foundry": 19853, + "menace": 19854, + "mead": 19855, + "##lein": 19856, + "flu": 19857, + "wesleyan": 19858, + "##kled": 19859, + "monterey": 19860, + "webber": 19861, + "##vos": 19862, + "wil": 19863, + "##mith": 19864, + "##на": 19865, + "bartholomew": 19866, + "justices": 19867, + "restrained": 19868, + "##cke": 19869, + "amenities": 19870, + "191": 19871, + "mediated": 19872, + "sewage": 19873, + "trenches": 19874, + "ml": 19875, + "mainz": 19876, + "##thus": 19877, + "1800s": 19878, + "##cula": 19879, + "##inski": 19880, + "caine": 19881, + "bonding": 19882, + "213": 19883, + "converts": 19884, + "spheres": 19885, + "superseded": 19886, + "marianne": 19887, + "crypt": 19888, + "sweaty": 19889, + "ensign": 19890, + "historia": 19891, + "##br": 19892, + "spruce": 19893, + "##post": 19894, + "##ask": 19895, + "forks": 19896, + "thoughtfully": 19897, + "yukon": 19898, + "pamphlet": 19899, + "ames": 19900, + "##uter": 19901, + "karma": 19902, + "##yya": 19903, + "bryn": 19904, + "negotiation": 19905, + "sighs": 19906, + "incapable": 19907, + "##mbre": 19908, + "##ntial": 19909, + "actresses": 19910, + "taft": 19911, + "##mill": 19912, + "luce": 19913, + "prevailed": 19914, + "##amine": 19915, + "1773": 19916, + "motionless": 19917, + "envoy": 19918, + "testify": 19919, + "investing": 19920, + "sculpted": 19921, + "instructors": 19922, + "provence": 19923, + "kali": 19924, + "cullen": 19925, + "horseback": 19926, + "##while": 19927, + "goodwin": 19928, + "##jos": 19929, + "gaa": 19930, + "norte": 19931, + "##ldon": 19932, + "modify": 19933, + "wavelength": 19934, + "abd": 19935, + "214": 19936, + "skinned": 19937, + "sprinter": 19938, + "forecast": 19939, + "scheduling": 19940, + "marries": 19941, + "squared": 19942, + "tentative": 19943, + "##chman": 19944, + "boer": 19945, + "##isch": 19946, + "bolts": 19947, + "swap": 19948, + "fisherman": 19949, + "assyrian": 19950, + "impatiently": 19951, + "guthrie": 19952, + "martins": 19953, + "murdoch": 19954, + "194": 19955, + "tanya": 19956, + "nicely": 19957, + "dolly": 19958, + "lacy": 19959, + "med": 19960, + "##45": 19961, + "syn": 19962, + "decks": 19963, + "fashionable": 19964, + "millionaire": 19965, + "##ust": 19966, + "surfing": 19967, + "##ml": 19968, + "##ision": 19969, + "heaved": 19970, + "tammy": 19971, + "consulate": 19972, + "attendees": 19973, + "routinely": 19974, + "197": 19975, + "fuse": 19976, + "saxophonist": 19977, + "backseat": 19978, + "malaya": 19979, + "##lord": 19980, + "scowl": 19981, + "tau": 19982, + "##ishly": 19983, + "193": 19984, + "sighted": 19985, + "steaming": 19986, + "##rks": 19987, + "303": 19988, + "911": 19989, + "##holes": 19990, + "##hong": 19991, + "ching": 19992, + "##wife": 19993, + "bless": 19994, + "conserved": 19995, + "jurassic": 19996, + "stacey": 19997, + "unix": 19998, + "zion": 19999, + "chunk": 20000, + "rigorous": 20001, + "blaine": 20002, + "198": 20003, + "peabody": 20004, + "slayer": 20005, + "dismay": 20006, + "brewers": 20007, + "nz": 20008, + "##jer": 20009, + "det": 20010, + "##glia": 20011, + "glover": 20012, + "postwar": 20013, + "int": 20014, + "penetration": 20015, + "sylvester": 20016, + "imitation": 20017, + "vertically": 20018, + "airlift": 20019, + "heiress": 20020, + "knoxville": 20021, + "viva": 20022, + "##uin": 20023, + "390": 20024, + "macon": 20025, + "##rim": 20026, + "##fighter": 20027, + "##gonal": 20028, + "janice": 20029, + "##orescence": 20030, + "##wari": 20031, + "marius": 20032, + "belongings": 20033, + "leicestershire": 20034, + "196": 20035, + "blanco": 20036, + "inverted": 20037, + "preseason": 20038, + "sanity": 20039, + "sobbing": 20040, + "##due": 20041, + "##elt": 20042, + "##dled": 20043, + "collingwood": 20044, + "regeneration": 20045, + "flickering": 20046, + "shortest": 20047, + "##mount": 20048, + "##osi": 20049, + "feminism": 20050, + "##lat": 20051, + "sherlock": 20052, + "cabinets": 20053, + "fumbled": 20054, + "northbound": 20055, + "precedent": 20056, + "snaps": 20057, + "##mme": 20058, + "researching": 20059, + "##akes": 20060, + "guillaume": 20061, + "insights": 20062, + "manipulated": 20063, + "vapor": 20064, + "neighbour": 20065, + "sap": 20066, + "gangster": 20067, + "frey": 20068, + "f1": 20069, + "stalking": 20070, + "scarcely": 20071, + "callie": 20072, + "barnett": 20073, + "tendencies": 20074, + "audi": 20075, + "doomed": 20076, + "assessing": 20077, + "slung": 20078, + "panchayat": 20079, + "ambiguous": 20080, + "bartlett": 20081, + "##etto": 20082, + "distributing": 20083, + "violating": 20084, + "wolverhampton": 20085, + "##hetic": 20086, + "swami": 20087, + "histoire": 20088, + "##urus": 20089, + "liable": 20090, + "pounder": 20091, + "groin": 20092, + "hussain": 20093, + "larsen": 20094, + "popping": 20095, + "surprises": 20096, + "##atter": 20097, + "vie": 20098, + "curt": 20099, + "##station": 20100, + "mute": 20101, + "relocate": 20102, + "musicals": 20103, + "authorization": 20104, + "richter": 20105, + "##sef": 20106, + "immortality": 20107, + "tna": 20108, + "bombings": 20109, + "##press": 20110, + "deteriorated": 20111, + "yiddish": 20112, + "##acious": 20113, + "robbed": 20114, + "colchester": 20115, + "cs": 20116, + "pmid": 20117, + "ao": 20118, + "verified": 20119, + "balancing": 20120, + "apostle": 20121, + "swayed": 20122, + "recognizable": 20123, + "oxfordshire": 20124, + "retention": 20125, + "nottinghamshire": 20126, + "contender": 20127, + "judd": 20128, + "invitational": 20129, + "shrimp": 20130, + "uhf": 20131, + "##icient": 20132, + "cleaner": 20133, + "longitudinal": 20134, + "tanker": 20135, + "##mur": 20136, + "acronym": 20137, + "broker": 20138, + "koppen": 20139, + "sundance": 20140, + "suppliers": 20141, + "##gil": 20142, + "4000": 20143, + "clipped": 20144, + "fuels": 20145, + "petite": 20146, + "##anne": 20147, + "landslide": 20148, + "helene": 20149, + "diversion": 20150, + "populous": 20151, + "landowners": 20152, + "auspices": 20153, + "melville": 20154, + "quantitative": 20155, + "##xes": 20156, + "ferries": 20157, + "nicky": 20158, + "##llus": 20159, + "doo": 20160, + "haunting": 20161, + "roche": 20162, + "carver": 20163, + "downed": 20164, + "unavailable": 20165, + "##pathy": 20166, + "approximation": 20167, + "hiroshima": 20168, + "##hue": 20169, + "garfield": 20170, + "valle": 20171, + "comparatively": 20172, + "keyboardist": 20173, + "traveler": 20174, + "##eit": 20175, + "congestion": 20176, + "calculating": 20177, + "subsidiaries": 20178, + "##bate": 20179, + "serb": 20180, + "modernization": 20181, + "fairies": 20182, + "deepened": 20183, + "ville": 20184, + "averages": 20185, + "##lore": 20186, + "inflammatory": 20187, + "tonga": 20188, + "##itch": 20189, + "co₂": 20190, + "squads": 20191, + "##hea": 20192, + "gigantic": 20193, + "serum": 20194, + "enjoyment": 20195, + "retailer": 20196, + "verona": 20197, + "35th": 20198, + "cis": 20199, + "##phobic": 20200, + "magna": 20201, + "technicians": 20202, + "##vati": 20203, + "arithmetic": 20204, + "##sport": 20205, + "levin": 20206, + "##dation": 20207, + "amtrak": 20208, + "chow": 20209, + "sienna": 20210, + "##eyer": 20211, + "backstage": 20212, + "entrepreneurship": 20213, + "##otic": 20214, + "learnt": 20215, + "tao": 20216, + "##udy": 20217, + "worcestershire": 20218, + "formulation": 20219, + "baggage": 20220, + "hesitant": 20221, + "bali": 20222, + "sabotage": 20223, + "##kari": 20224, + "barren": 20225, + "enhancing": 20226, + "murmur": 20227, + "pl": 20228, + "freshly": 20229, + "putnam": 20230, + "syntax": 20231, + "aces": 20232, + "medicines": 20233, + "resentment": 20234, + "bandwidth": 20235, + "##sier": 20236, + "grins": 20237, + "chili": 20238, + "guido": 20239, + "##sei": 20240, + "framing": 20241, + "implying": 20242, + "gareth": 20243, + "lissa": 20244, + "genevieve": 20245, + "pertaining": 20246, + "admissions": 20247, + "geo": 20248, + "thorpe": 20249, + "proliferation": 20250, + "sato": 20251, + "bela": 20252, + "analyzing": 20253, + "parting": 20254, + "##gor": 20255, + "awakened": 20256, + "##isman": 20257, + "huddled": 20258, + "secrecy": 20259, + "##kling": 20260, + "hush": 20261, + "gentry": 20262, + "540": 20263, + "dungeons": 20264, + "##ego": 20265, + "coasts": 20266, + "##utz": 20267, + "sacrificed": 20268, + "##chule": 20269, + "landowner": 20270, + "mutually": 20271, + "prevalence": 20272, + "programmer": 20273, + "adolescent": 20274, + "disrupted": 20275, + "seaside": 20276, + "gee": 20277, + "trusts": 20278, + "vamp": 20279, + "georgie": 20280, + "##nesian": 20281, + "##iol": 20282, + "schedules": 20283, + "sindh": 20284, + "##market": 20285, + "etched": 20286, + "hm": 20287, + "sparse": 20288, + "bey": 20289, + "beaux": 20290, + "scratching": 20291, + "gliding": 20292, + "unidentified": 20293, + "216": 20294, + "collaborating": 20295, + "gems": 20296, + "jesuits": 20297, + "oro": 20298, + "accumulation": 20299, + "shaping": 20300, + "mbe": 20301, + "anal": 20302, + "##xin": 20303, + "231": 20304, + "enthusiasts": 20305, + "newscast": 20306, + "##egan": 20307, + "janata": 20308, + "dewey": 20309, + "parkinson": 20310, + "179": 20311, + "ankara": 20312, + "biennial": 20313, + "towering": 20314, + "dd": 20315, + "inconsistent": 20316, + "950": 20317, + "##chet": 20318, + "thriving": 20319, + "terminate": 20320, + "cabins": 20321, + "furiously": 20322, + "eats": 20323, + "advocating": 20324, + "donkey": 20325, + "marley": 20326, + "muster": 20327, + "phyllis": 20328, + "leiden": 20329, + "##user": 20330, + "grassland": 20331, + "glittering": 20332, + "iucn": 20333, + "loneliness": 20334, + "217": 20335, + "memorandum": 20336, + "armenians": 20337, + "##ddle": 20338, + "popularized": 20339, + "rhodesia": 20340, + "60s": 20341, + "lame": 20342, + "##illon": 20343, + "sans": 20344, + "bikini": 20345, + "header": 20346, + "orbits": 20347, + "##xx": 20348, + "##finger": 20349, + "##ulator": 20350, + "sharif": 20351, + "spines": 20352, + "biotechnology": 20353, + "strolled": 20354, + "naughty": 20355, + "yates": 20356, + "##wire": 20357, + "fremantle": 20358, + "milo": 20359, + "##mour": 20360, + "abducted": 20361, + "removes": 20362, + "##atin": 20363, + "humming": 20364, + "wonderland": 20365, + "##chrome": 20366, + "##ester": 20367, + "hume": 20368, + "pivotal": 20369, + "##rates": 20370, + "armand": 20371, + "grams": 20372, + "believers": 20373, + "elector": 20374, + "rte": 20375, + "apron": 20376, + "bis": 20377, + "scraped": 20378, + "##yria": 20379, + "endorsement": 20380, + "initials": 20381, + "##llation": 20382, + "eps": 20383, + "dotted": 20384, + "hints": 20385, + "buzzing": 20386, + "emigration": 20387, + "nearer": 20388, + "##tom": 20389, + "indicators": 20390, + "##ulu": 20391, + "coarse": 20392, + "neutron": 20393, + "protectorate": 20394, + "##uze": 20395, + "directional": 20396, + "exploits": 20397, + "pains": 20398, + "loire": 20399, + "1830s": 20400, + "proponents": 20401, + "guggenheim": 20402, + "rabbits": 20403, + "ritchie": 20404, + "305": 20405, + "hectare": 20406, + "inputs": 20407, + "hutton": 20408, + "##raz": 20409, + "verify": 20410, + "##ako": 20411, + "boilers": 20412, + "longitude": 20413, + "##lev": 20414, + "skeletal": 20415, + "yer": 20416, + "emilia": 20417, + "citrus": 20418, + "compromised": 20419, + "##gau": 20420, + "pokemon": 20421, + "prescription": 20422, + "paragraph": 20423, + "eduard": 20424, + "cadillac": 20425, + "attire": 20426, + "categorized": 20427, + "kenyan": 20428, + "weddings": 20429, + "charley": 20430, + "##bourg": 20431, + "entertain": 20432, + "monmouth": 20433, + "##lles": 20434, + "nutrients": 20435, + "davey": 20436, + "mesh": 20437, + "incentive": 20438, + "practised": 20439, + "ecosystems": 20440, + "kemp": 20441, + "subdued": 20442, + "overheard": 20443, + "##rya": 20444, + "bodily": 20445, + "maxim": 20446, + "##nius": 20447, + "apprenticeship": 20448, + "ursula": 20449, + "##fight": 20450, + "lodged": 20451, + "rug": 20452, + "silesian": 20453, + "unconstitutional": 20454, + "patel": 20455, + "inspected": 20456, + "coyote": 20457, + "unbeaten": 20458, + "##hak": 20459, + "34th": 20460, + "disruption": 20461, + "convict": 20462, + "parcel": 20463, + "##cl": 20464, + "##nham": 20465, + "collier": 20466, + "implicated": 20467, + "mallory": 20468, + "##iac": 20469, + "##lab": 20470, + "susannah": 20471, + "winkler": 20472, + "##rber": 20473, + "shia": 20474, + "phelps": 20475, + "sediments": 20476, + "graphical": 20477, + "robotic": 20478, + "##sner": 20479, + "adulthood": 20480, + "mart": 20481, + "smoked": 20482, + "##isto": 20483, + "kathryn": 20484, + "clarified": 20485, + "##aran": 20486, + "divides": 20487, + "convictions": 20488, + "oppression": 20489, + "pausing": 20490, + "burying": 20491, + "##mt": 20492, + "federico": 20493, + "mathias": 20494, + "eileen": 20495, + "##tana": 20496, + "kite": 20497, + "hunched": 20498, + "##acies": 20499, + "189": 20500, + "##atz": 20501, + "disadvantage": 20502, + "liza": 20503, + "kinetic": 20504, + "greedy": 20505, + "paradox": 20506, + "yokohama": 20507, + "dowager": 20508, + "trunks": 20509, + "ventured": 20510, + "##gement": 20511, + "gupta": 20512, + "vilnius": 20513, + "olaf": 20514, + "##thest": 20515, + "crimean": 20516, + "hopper": 20517, + "##ej": 20518, + "progressively": 20519, + "arturo": 20520, + "mouthed": 20521, + "arrondissement": 20522, + "##fusion": 20523, + "rubin": 20524, + "simulcast": 20525, + "oceania": 20526, + "##orum": 20527, + "##stra": 20528, + "##rred": 20529, + "busiest": 20530, + "intensely": 20531, + "navigator": 20532, + "cary": 20533, + "##vine": 20534, + "##hini": 20535, + "##bies": 20536, + "fife": 20537, + "rowe": 20538, + "rowland": 20539, + "posing": 20540, + "insurgents": 20541, + "shafts": 20542, + "lawsuits": 20543, + "activate": 20544, + "conor": 20545, + "inward": 20546, + "culturally": 20547, + "garlic": 20548, + "265": 20549, + "##eering": 20550, + "eclectic": 20551, + "##hui": 20552, + "##kee": 20553, + "##nl": 20554, + "furrowed": 20555, + "vargas": 20556, + "meteorological": 20557, + "rendezvous": 20558, + "##aus": 20559, + "culinary": 20560, + "commencement": 20561, + "##dition": 20562, + "quota": 20563, + "##notes": 20564, + "mommy": 20565, + "salaries": 20566, + "overlapping": 20567, + "mule": 20568, + "##iology": 20569, + "##mology": 20570, + "sums": 20571, + "wentworth": 20572, + "##isk": 20573, + "##zione": 20574, + "mainline": 20575, + "subgroup": 20576, + "##illy": 20577, + "hack": 20578, + "plaintiff": 20579, + "verdi": 20580, + "bulb": 20581, + "differentiation": 20582, + "engagements": 20583, + "multinational": 20584, + "supplemented": 20585, + "bertrand": 20586, + "caller": 20587, + "regis": 20588, + "##naire": 20589, + "##sler": 20590, + "##arts": 20591, + "##imated": 20592, + "blossom": 20593, + "propagation": 20594, + "kilometer": 20595, + "viaduct": 20596, + "vineyards": 20597, + "##uate": 20598, + "beckett": 20599, + "optimization": 20600, + "golfer": 20601, + "songwriters": 20602, + "seminal": 20603, + "semitic": 20604, + "thud": 20605, + "volatile": 20606, + "evolving": 20607, + "ridley": 20608, + "##wley": 20609, + "trivial": 20610, + "distributions": 20611, + "scandinavia": 20612, + "jiang": 20613, + "##ject": 20614, + "wrestled": 20615, + "insistence": 20616, + "##dio": 20617, + "emphasizes": 20618, + "napkin": 20619, + "##ods": 20620, + "adjunct": 20621, + "rhyme": 20622, + "##ricted": 20623, + "##eti": 20624, + "hopeless": 20625, + "surrounds": 20626, + "tremble": 20627, + "32nd": 20628, + "smoky": 20629, + "##ntly": 20630, + "oils": 20631, + "medicinal": 20632, + "padded": 20633, + "steer": 20634, + "wilkes": 20635, + "219": 20636, + "255": 20637, + "concessions": 20638, + "hue": 20639, + "uniquely": 20640, + "blinded": 20641, + "landon": 20642, + "yahoo": 20643, + "##lane": 20644, + "hendrix": 20645, + "commemorating": 20646, + "dex": 20647, + "specify": 20648, + "chicks": 20649, + "##ggio": 20650, + "intercity": 20651, + "1400": 20652, + "morley": 20653, + "##torm": 20654, + "highlighting": 20655, + "##oting": 20656, + "pang": 20657, + "oblique": 20658, + "stalled": 20659, + "##liner": 20660, + "flirting": 20661, + "newborn": 20662, + "1769": 20663, + "bishopric": 20664, + "shaved": 20665, + "232": 20666, + "currie": 20667, + "##ush": 20668, + "dharma": 20669, + "spartan": 20670, + "##ooped": 20671, + "favorites": 20672, + "smug": 20673, + "novella": 20674, + "sirens": 20675, + "abusive": 20676, + "creations": 20677, + "espana": 20678, + "##lage": 20679, + "paradigm": 20680, + "semiconductor": 20681, + "sheen": 20682, + "##rdo": 20683, + "##yen": 20684, + "##zak": 20685, + "nrl": 20686, + "renew": 20687, + "##pose": 20688, + "##tur": 20689, + "adjutant": 20690, + "marches": 20691, + "norma": 20692, + "##enity": 20693, + "ineffective": 20694, + "weimar": 20695, + "grunt": 20696, + "##gat": 20697, + "lordship": 20698, + "plotting": 20699, + "expenditure": 20700, + "infringement": 20701, + "lbs": 20702, + "refrain": 20703, + "av": 20704, + "mimi": 20705, + "mistakenly": 20706, + "postmaster": 20707, + "1771": 20708, + "##bara": 20709, + "ras": 20710, + "motorsports": 20711, + "tito": 20712, + "199": 20713, + "subjective": 20714, + "##zza": 20715, + "bully": 20716, + "stew": 20717, + "##kaya": 20718, + "prescott": 20719, + "1a": 20720, + "##raphic": 20721, + "##zam": 20722, + "bids": 20723, + "styling": 20724, + "paranormal": 20725, + "reeve": 20726, + "sneaking": 20727, + "exploding": 20728, + "katz": 20729, + "akbar": 20730, + "migrant": 20731, + "syllables": 20732, + "indefinitely": 20733, + "##ogical": 20734, + "destroys": 20735, + "replaces": 20736, + "applause": 20737, + "##phine": 20738, + "pest": 20739, + "##fide": 20740, + "218": 20741, + "articulated": 20742, + "bertie": 20743, + "##thing": 20744, + "##cars": 20745, + "##ptic": 20746, + "courtroom": 20747, + "crowley": 20748, + "aesthetics": 20749, + "cummings": 20750, + "tehsil": 20751, + "hormones": 20752, + "titanic": 20753, + "dangerously": 20754, + "##ibe": 20755, + "stadion": 20756, + "jaenelle": 20757, + "auguste": 20758, + "ciudad": 20759, + "##chu": 20760, + "mysore": 20761, + "partisans": 20762, + "##sio": 20763, + "lucan": 20764, + "philipp": 20765, + "##aly": 20766, + "debating": 20767, + "henley": 20768, + "interiors": 20769, + "##rano": 20770, + "##tious": 20771, + "homecoming": 20772, + "beyonce": 20773, + "usher": 20774, + "henrietta": 20775, + "prepares": 20776, + "weeds": 20777, + "##oman": 20778, + "ely": 20779, + "plucked": 20780, + "##pire": 20781, + "##dable": 20782, + "luxurious": 20783, + "##aq": 20784, + "artifact": 20785, + "password": 20786, + "pasture": 20787, + "juno": 20788, + "maddy": 20789, + "minsk": 20790, + "##dder": 20791, + "##ologies": 20792, + "##rone": 20793, + "assessments": 20794, + "martian": 20795, + "royalist": 20796, + "1765": 20797, + "examines": 20798, + "##mani": 20799, + "##rge": 20800, + "nino": 20801, + "223": 20802, + "parry": 20803, + "scooped": 20804, + "relativity": 20805, + "##eli": 20806, + "##uting": 20807, + "##cao": 20808, + "congregational": 20809, + "noisy": 20810, + "traverse": 20811, + "##agawa": 20812, + "strikeouts": 20813, + "nickelodeon": 20814, + "obituary": 20815, + "transylvania": 20816, + "binds": 20817, + "depictions": 20818, + "polk": 20819, + "trolley": 20820, + "##yed": 20821, + "##lard": 20822, + "breeders": 20823, + "##under": 20824, + "dryly": 20825, + "hokkaido": 20826, + "1762": 20827, + "strengths": 20828, + "stacks": 20829, + "bonaparte": 20830, + "connectivity": 20831, + "neared": 20832, + "prostitutes": 20833, + "stamped": 20834, + "anaheim": 20835, + "gutierrez": 20836, + "sinai": 20837, + "##zzling": 20838, + "bram": 20839, + "fresno": 20840, + "madhya": 20841, + "##86": 20842, + "proton": 20843, + "##lena": 20844, + "##llum": 20845, + "##phon": 20846, + "reelected": 20847, + "wanda": 20848, + "##anus": 20849, + "##lb": 20850, + "ample": 20851, + "distinguishing": 20852, + "##yler": 20853, + "grasping": 20854, + "sermons": 20855, + "tomato": 20856, + "bland": 20857, + "stimulation": 20858, + "avenues": 20859, + "##eux": 20860, + "spreads": 20861, + "scarlett": 20862, + "fern": 20863, + "pentagon": 20864, + "assert": 20865, + "baird": 20866, + "chesapeake": 20867, + "ir": 20868, + "calmed": 20869, + "distortion": 20870, + "fatalities": 20871, + "##olis": 20872, + "correctional": 20873, + "pricing": 20874, + "##astic": 20875, + "##gina": 20876, + "prom": 20877, + "dammit": 20878, + "ying": 20879, + "collaborate": 20880, + "##chia": 20881, + "welterweight": 20882, + "33rd": 20883, + "pointer": 20884, + "substitution": 20885, + "bonded": 20886, + "umpire": 20887, + "communicating": 20888, + "multitude": 20889, + "paddle": 20890, + "##obe": 20891, + "federally": 20892, + "intimacy": 20893, + "##insky": 20894, + "betray": 20895, + "ssr": 20896, + "##lett": 20897, + "##lean": 20898, + "##lves": 20899, + "##therapy": 20900, + "airbus": 20901, + "##tery": 20902, + "functioned": 20903, + "ud": 20904, + "bearer": 20905, + "biomedical": 20906, + "netflix": 20907, + "##hire": 20908, + "##nca": 20909, + "condom": 20910, + "brink": 20911, + "ik": 20912, + "##nical": 20913, + "macy": 20914, + "##bet": 20915, + "flap": 20916, + "gma": 20917, + "experimented": 20918, + "jelly": 20919, + "lavender": 20920, + "##icles": 20921, + "##ulia": 20922, + "munro": 20923, + "##mian": 20924, + "##tial": 20925, + "rye": 20926, + "##rle": 20927, + "60th": 20928, + "gigs": 20929, + "hottest": 20930, + "rotated": 20931, + "predictions": 20932, + "fuji": 20933, + "bu": 20934, + "##erence": 20935, + "##omi": 20936, + "barangay": 20937, + "##fulness": 20938, + "##sas": 20939, + "clocks": 20940, + "##rwood": 20941, + "##liness": 20942, + "cereal": 20943, + "roe": 20944, + "wight": 20945, + "decker": 20946, + "uttered": 20947, + "babu": 20948, + "onion": 20949, + "xml": 20950, + "forcibly": 20951, + "##df": 20952, + "petra": 20953, + "sarcasm": 20954, + "hartley": 20955, + "peeled": 20956, + "storytelling": 20957, + "##42": 20958, + "##xley": 20959, + "##ysis": 20960, + "##ffa": 20961, + "fibre": 20962, + "kiel": 20963, + "auditor": 20964, + "fig": 20965, + "harald": 20966, + "greenville": 20967, + "##berries": 20968, + "geographically": 20969, + "nell": 20970, + "quartz": 20971, + "##athic": 20972, + "cemeteries": 20973, + "##lr": 20974, + "crossings": 20975, + "nah": 20976, + "holloway": 20977, + "reptiles": 20978, + "chun": 20979, + "sichuan": 20980, + "snowy": 20981, + "660": 20982, + "corrections": 20983, + "##ivo": 20984, + "zheng": 20985, + "ambassadors": 20986, + "blacksmith": 20987, + "fielded": 20988, + "fluids": 20989, + "hardcover": 20990, + "turnover": 20991, + "medications": 20992, + "melvin": 20993, + "academies": 20994, + "##erton": 20995, + "ro": 20996, + "roach": 20997, + "absorbing": 20998, + "spaniards": 20999, + "colton": 21000, + "##founded": 21001, + "outsider": 21002, + "espionage": 21003, + "kelsey": 21004, + "245": 21005, + "edible": 21006, + "##ulf": 21007, + "dora": 21008, + "establishes": 21009, + "##sham": 21010, + "##tries": 21011, + "contracting": 21012, + "##tania": 21013, + "cinematic": 21014, + "costello": 21015, + "nesting": 21016, + "##uron": 21017, + "connolly": 21018, + "duff": 21019, + "##nology": 21020, + "mma": 21021, + "##mata": 21022, + "fergus": 21023, + "sexes": 21024, + "gi": 21025, + "optics": 21026, + "spectator": 21027, + "woodstock": 21028, + "banning": 21029, + "##hee": 21030, + "##fle": 21031, + "differentiate": 21032, + "outfielder": 21033, + "refinery": 21034, + "226": 21035, + "312": 21036, + "gerhard": 21037, + "horde": 21038, + "lair": 21039, + "drastically": 21040, + "##udi": 21041, + "landfall": 21042, + "##cheng": 21043, + "motorsport": 21044, + "odi": 21045, + "##achi": 21046, + "predominant": 21047, + "quay": 21048, + "skins": 21049, + "##ental": 21050, + "edna": 21051, + "harshly": 21052, + "complementary": 21053, + "murdering": 21054, + "##aves": 21055, + "wreckage": 21056, + "##90": 21057, + "ono": 21058, + "outstretched": 21059, + "lennox": 21060, + "munitions": 21061, + "galen": 21062, + "reconcile": 21063, + "470": 21064, + "scalp": 21065, + "bicycles": 21066, + "gillespie": 21067, + "questionable": 21068, + "rosenberg": 21069, + "guillermo": 21070, + "hostel": 21071, + "jarvis": 21072, + "kabul": 21073, + "volvo": 21074, + "opium": 21075, + "yd": 21076, + "##twined": 21077, + "abuses": 21078, + "decca": 21079, + "outpost": 21080, + "##cino": 21081, + "sensible": 21082, + "neutrality": 21083, + "##64": 21084, + "ponce": 21085, + "anchorage": 21086, + "atkins": 21087, + "turrets": 21088, + "inadvertently": 21089, + "disagree": 21090, + "libre": 21091, + "vodka": 21092, + "reassuring": 21093, + "weighs": 21094, + "##yal": 21095, + "glide": 21096, + "jumper": 21097, + "ceilings": 21098, + "repertory": 21099, + "outs": 21100, + "stain": 21101, + "##bial": 21102, + "envy": 21103, + "##ucible": 21104, + "smashing": 21105, + "heightened": 21106, + "policing": 21107, + "hyun": 21108, + "mixes": 21109, + "lai": 21110, + "prima": 21111, + "##ples": 21112, + "celeste": 21113, + "##bina": 21114, + "lucrative": 21115, + "intervened": 21116, + "kc": 21117, + "manually": 21118, + "##rned": 21119, + "stature": 21120, + "staffed": 21121, + "bun": 21122, + "bastards": 21123, + "nairobi": 21124, + "priced": 21125, + "##auer": 21126, + "thatcher": 21127, + "##kia": 21128, + "tripped": 21129, + "comune": 21130, + "##ogan": 21131, + "##pled": 21132, + "brasil": 21133, + "incentives": 21134, + "emanuel": 21135, + "hereford": 21136, + "musica": 21137, + "##kim": 21138, + "benedictine": 21139, + "biennale": 21140, + "##lani": 21141, + "eureka": 21142, + "gardiner": 21143, + "rb": 21144, + "knocks": 21145, + "sha": 21146, + "##ael": 21147, + "##elled": 21148, + "##onate": 21149, + "efficacy": 21150, + "ventura": 21151, + "masonic": 21152, + "sanford": 21153, + "maize": 21154, + "leverage": 21155, + "##feit": 21156, + "capacities": 21157, + "santana": 21158, + "##aur": 21159, + "novelty": 21160, + "vanilla": 21161, + "##cter": 21162, + "##tour": 21163, + "benin": 21164, + "##oir": 21165, + "##rain": 21166, + "neptune": 21167, + "drafting": 21168, + "tallinn": 21169, + "##cable": 21170, + "humiliation": 21171, + "##boarding": 21172, + "schleswig": 21173, + "fabian": 21174, + "bernardo": 21175, + "liturgy": 21176, + "spectacle": 21177, + "sweeney": 21178, + "pont": 21179, + "routledge": 21180, + "##tment": 21181, + "cosmos": 21182, + "ut": 21183, + "hilt": 21184, + "sleek": 21185, + "universally": 21186, + "##eville": 21187, + "##gawa": 21188, + "typed": 21189, + "##dry": 21190, + "favors": 21191, + "allegheny": 21192, + "glaciers": 21193, + "##rly": 21194, + "recalling": 21195, + "aziz": 21196, + "##log": 21197, + "parasite": 21198, + "requiem": 21199, + "auf": 21200, + "##berto": 21201, + "##llin": 21202, + "illumination": 21203, + "##breaker": 21204, + "##issa": 21205, + "festivities": 21206, + "bows": 21207, + "govern": 21208, + "vibe": 21209, + "vp": 21210, + "333": 21211, + "sprawled": 21212, + "larson": 21213, + "pilgrim": 21214, + "bwf": 21215, + "leaping": 21216, + "##rts": 21217, + "##ssel": 21218, + "alexei": 21219, + "greyhound": 21220, + "hoarse": 21221, + "##dler": 21222, + "##oration": 21223, + "seneca": 21224, + "##cule": 21225, + "gaping": 21226, + "##ulously": 21227, + "##pura": 21228, + "cinnamon": 21229, + "##gens": 21230, + "##rricular": 21231, + "craven": 21232, + "fantasies": 21233, + "houghton": 21234, + "engined": 21235, + "reigned": 21236, + "dictator": 21237, + "supervising": 21238, + "##oris": 21239, + "bogota": 21240, + "commentaries": 21241, + "unnatural": 21242, + "fingernails": 21243, + "spirituality": 21244, + "tighten": 21245, + "##tm": 21246, + "canadiens": 21247, + "protesting": 21248, + "intentional": 21249, + "cheers": 21250, + "sparta": 21251, + "##ytic": 21252, + "##iere": 21253, + "##zine": 21254, + "widen": 21255, + "belgarath": 21256, + "controllers": 21257, + "dodd": 21258, + "iaaf": 21259, + "navarre": 21260, + "##ication": 21261, + "defect": 21262, + "squire": 21263, + "steiner": 21264, + "whisky": 21265, + "##mins": 21266, + "560": 21267, + "inevitably": 21268, + "tome": 21269, + "##gold": 21270, + "chew": 21271, + "##uid": 21272, + "##lid": 21273, + "elastic": 21274, + "##aby": 21275, + "streaked": 21276, + "alliances": 21277, + "jailed": 21278, + "regal": 21279, + "##ined": 21280, + "##phy": 21281, + "czechoslovak": 21282, + "narration": 21283, + "absently": 21284, + "##uld": 21285, + "bluegrass": 21286, + "guangdong": 21287, + "quran": 21288, + "criticizing": 21289, + "hose": 21290, + "hari": 21291, + "##liest": 21292, + "##owa": 21293, + "skier": 21294, + "streaks": 21295, + "deploy": 21296, + "##lom": 21297, + "raft": 21298, + "bose": 21299, + "dialed": 21300, + "huff": 21301, + "##eira": 21302, + "haifa": 21303, + "simplest": 21304, + "bursting": 21305, + "endings": 21306, + "ib": 21307, + "sultanate": 21308, + "##titled": 21309, + "franks": 21310, + "whitman": 21311, + "ensures": 21312, + "sven": 21313, + "##ggs": 21314, + "collaborators": 21315, + "forster": 21316, + "organising": 21317, + "ui": 21318, + "banished": 21319, + "napier": 21320, + "injustice": 21321, + "teller": 21322, + "layered": 21323, + "thump": 21324, + "##otti": 21325, + "roc": 21326, + "battleships": 21327, + "evidenced": 21328, + "fugitive": 21329, + "sadie": 21330, + "robotics": 21331, + "##roud": 21332, + "equatorial": 21333, + "geologist": 21334, + "##iza": 21335, + "yielding": 21336, + "##bron": 21337, + "##sr": 21338, + "internationale": 21339, + "mecca": 21340, + "##diment": 21341, + "sbs": 21342, + "skyline": 21343, + "toad": 21344, + "uploaded": 21345, + "reflective": 21346, + "undrafted": 21347, + "lal": 21348, + "leafs": 21349, + "bayern": 21350, + "##dai": 21351, + "lakshmi": 21352, + "shortlisted": 21353, + "##stick": 21354, + "##wicz": 21355, + "camouflage": 21356, + "donate": 21357, + "af": 21358, + "christi": 21359, + "lau": 21360, + "##acio": 21361, + "disclosed": 21362, + "nemesis": 21363, + "1761": 21364, + "assemble": 21365, + "straining": 21366, + "northamptonshire": 21367, + "tal": 21368, + "##asi": 21369, + "bernardino": 21370, + "premature": 21371, + "heidi": 21372, + "42nd": 21373, + "coefficients": 21374, + "galactic": 21375, + "reproduce": 21376, + "buzzed": 21377, + "sensations": 21378, + "zionist": 21379, + "monsieur": 21380, + "myrtle": 21381, + "##eme": 21382, + "archery": 21383, + "strangled": 21384, + "musically": 21385, + "viewpoint": 21386, + "antiquities": 21387, + "bei": 21388, + "trailers": 21389, + "seahawks": 21390, + "cured": 21391, + "pee": 21392, + "preferring": 21393, + "tasmanian": 21394, + "lange": 21395, + "sul": 21396, + "##mail": 21397, + "##working": 21398, + "colder": 21399, + "overland": 21400, + "lucivar": 21401, + "massey": 21402, + "gatherings": 21403, + "haitian": 21404, + "##smith": 21405, + "disapproval": 21406, + "flaws": 21407, + "##cco": 21408, + "##enbach": 21409, + "1766": 21410, + "npr": 21411, + "##icular": 21412, + "boroughs": 21413, + "creole": 21414, + "forums": 21415, + "techno": 21416, + "1755": 21417, + "dent": 21418, + "abdominal": 21419, + "streetcar": 21420, + "##eson": 21421, + "##stream": 21422, + "procurement": 21423, + "gemini": 21424, + "predictable": 21425, + "##tya": 21426, + "acheron": 21427, + "christoph": 21428, + "feeder": 21429, + "fronts": 21430, + "vendor": 21431, + "bernhard": 21432, + "jammu": 21433, + "tumors": 21434, + "slang": 21435, + "##uber": 21436, + "goaltender": 21437, + "twists": 21438, + "curving": 21439, + "manson": 21440, + "vuelta": 21441, + "mer": 21442, + "peanut": 21443, + "confessions": 21444, + "pouch": 21445, + "unpredictable": 21446, + "allowance": 21447, + "theodor": 21448, + "vascular": 21449, + "##factory": 21450, + "bala": 21451, + "authenticity": 21452, + "metabolic": 21453, + "coughing": 21454, + "nanjing": 21455, + "##cea": 21456, + "pembroke": 21457, + "##bard": 21458, + "splendid": 21459, + "36th": 21460, + "ff": 21461, + "hourly": 21462, + "##ahu": 21463, + "elmer": 21464, + "handel": 21465, + "##ivate": 21466, + "awarding": 21467, + "thrusting": 21468, + "dl": 21469, + "experimentation": 21470, + "##hesion": 21471, + "##46": 21472, + "caressed": 21473, + "entertained": 21474, + "steak": 21475, + "##rangle": 21476, + "biologist": 21477, + "orphans": 21478, + "baroness": 21479, + "oyster": 21480, + "stepfather": 21481, + "##dridge": 21482, + "mirage": 21483, + "reefs": 21484, + "speeding": 21485, + "##31": 21486, + "barons": 21487, + "1764": 21488, + "227": 21489, + "inhabit": 21490, + "preached": 21491, + "repealed": 21492, + "##tral": 21493, + "honoring": 21494, + "boogie": 21495, + "captives": 21496, + "administer": 21497, + "johanna": 21498, + "##imate": 21499, + "gel": 21500, + "suspiciously": 21501, + "1767": 21502, + "sobs": 21503, + "##dington": 21504, + "backbone": 21505, + "hayward": 21506, + "garry": 21507, + "##folding": 21508, + "##nesia": 21509, + "maxi": 21510, + "##oof": 21511, + "##ppe": 21512, + "ellison": 21513, + "galileo": 21514, + "##stand": 21515, + "crimea": 21516, + "frenzy": 21517, + "amour": 21518, + "bumper": 21519, + "matrices": 21520, + "natalia": 21521, + "baking": 21522, + "garth": 21523, + "palestinians": 21524, + "##grove": 21525, + "smack": 21526, + "conveyed": 21527, + "ensembles": 21528, + "gardening": 21529, + "##manship": 21530, + "##rup": 21531, + "##stituting": 21532, + "1640": 21533, + "harvesting": 21534, + "topography": 21535, + "jing": 21536, + "shifters": 21537, + "dormitory": 21538, + "##carriage": 21539, + "##lston": 21540, + "ist": 21541, + "skulls": 21542, + "##stadt": 21543, + "dolores": 21544, + "jewellery": 21545, + "sarawak": 21546, + "##wai": 21547, + "##zier": 21548, + "fences": 21549, + "christy": 21550, + "confinement": 21551, + "tumbling": 21552, + "credibility": 21553, + "fir": 21554, + "stench": 21555, + "##bria": 21556, + "##plication": 21557, + "##nged": 21558, + "##sam": 21559, + "virtues": 21560, + "##belt": 21561, + "marjorie": 21562, + "pba": 21563, + "##eem": 21564, + "##made": 21565, + "celebrates": 21566, + "schooner": 21567, + "agitated": 21568, + "barley": 21569, + "fulfilling": 21570, + "anthropologist": 21571, + "##pro": 21572, + "restrict": 21573, + "novi": 21574, + "regulating": 21575, + "##nent": 21576, + "padres": 21577, + "##rani": 21578, + "##hesive": 21579, + "loyola": 21580, + "tabitha": 21581, + "milky": 21582, + "olson": 21583, + "proprietor": 21584, + "crambidae": 21585, + "guarantees": 21586, + "intercollegiate": 21587, + "ljubljana": 21588, + "hilda": 21589, + "##sko": 21590, + "ignorant": 21591, + "hooded": 21592, + "##lts": 21593, + "sardinia": 21594, + "##lidae": 21595, + "##vation": 21596, + "frontman": 21597, + "privileged": 21598, + "witchcraft": 21599, + "##gp": 21600, + "jammed": 21601, + "laude": 21602, + "poking": 21603, + "##than": 21604, + "bracket": 21605, + "amazement": 21606, + "yunnan": 21607, + "##erus": 21608, + "maharaja": 21609, + "linnaeus": 21610, + "264": 21611, + "commissioning": 21612, + "milano": 21613, + "peacefully": 21614, + "##logies": 21615, + "akira": 21616, + "rani": 21617, + "regulator": 21618, + "##36": 21619, + "grasses": 21620, + "##rance": 21621, + "luzon": 21622, + "crows": 21623, + "compiler": 21624, + "gretchen": 21625, + "seaman": 21626, + "edouard": 21627, + "tab": 21628, + "buccaneers": 21629, + "ellington": 21630, + "hamlets": 21631, + "whig": 21632, + "socialists": 21633, + "##anto": 21634, + "directorial": 21635, + "easton": 21636, + "mythological": 21637, + "##kr": 21638, + "##vary": 21639, + "rhineland": 21640, + "semantic": 21641, + "taut": 21642, + "dune": 21643, + "inventions": 21644, + "succeeds": 21645, + "##iter": 21646, + "replication": 21647, + "branched": 21648, + "##pired": 21649, + "jul": 21650, + "prosecuted": 21651, + "kangaroo": 21652, + "penetrated": 21653, + "##avian": 21654, + "middlesbrough": 21655, + "doses": 21656, + "bleak": 21657, + "madam": 21658, + "predatory": 21659, + "relentless": 21660, + "##vili": 21661, + "reluctance": 21662, + "##vir": 21663, + "hailey": 21664, + "crore": 21665, + "silvery": 21666, + "1759": 21667, + "monstrous": 21668, + "swimmers": 21669, + "transmissions": 21670, + "hawthorn": 21671, + "informing": 21672, + "##eral": 21673, + "toilets": 21674, + "caracas": 21675, + "crouch": 21676, + "kb": 21677, + "##sett": 21678, + "295": 21679, + "cartel": 21680, + "hadley": 21681, + "##aling": 21682, + "alexia": 21683, + "yvonne": 21684, + "##biology": 21685, + "cinderella": 21686, + "eton": 21687, + "superb": 21688, + "blizzard": 21689, + "stabbing": 21690, + "industrialist": 21691, + "maximus": 21692, + "##gm": 21693, + "##orus": 21694, + "groves": 21695, + "maud": 21696, + "clade": 21697, + "oversized": 21698, + "comedic": 21699, + "##bella": 21700, + "rosen": 21701, + "nomadic": 21702, + "fulham": 21703, + "montane": 21704, + "beverages": 21705, + "galaxies": 21706, + "redundant": 21707, + "swarm": 21708, + "##rot": 21709, + "##folia": 21710, + "##llis": 21711, + "buckinghamshire": 21712, + "fen": 21713, + "bearings": 21714, + "bahadur": 21715, + "##rom": 21716, + "gilles": 21717, + "phased": 21718, + "dynamite": 21719, + "faber": 21720, + "benoit": 21721, + "vip": 21722, + "##ount": 21723, + "##wd": 21724, + "booking": 21725, + "fractured": 21726, + "tailored": 21727, + "anya": 21728, + "spices": 21729, + "westwood": 21730, + "cairns": 21731, + "auditions": 21732, + "inflammation": 21733, + "steamed": 21734, + "##rocity": 21735, + "##acion": 21736, + "##urne": 21737, + "skyla": 21738, + "thereof": 21739, + "watford": 21740, + "torment": 21741, + "archdeacon": 21742, + "transforms": 21743, + "lulu": 21744, + "demeanor": 21745, + "fucked": 21746, + "serge": 21747, + "##sor": 21748, + "mckenna": 21749, + "minas": 21750, + "entertainer": 21751, + "##icide": 21752, + "caress": 21753, + "originate": 21754, + "residue": 21755, + "##sty": 21756, + "1740": 21757, + "##ilised": 21758, + "##org": 21759, + "beech": 21760, + "##wana": 21761, + "subsidies": 21762, + "##ghton": 21763, + "emptied": 21764, + "gladstone": 21765, + "ru": 21766, + "firefighters": 21767, + "voodoo": 21768, + "##rcle": 21769, + "het": 21770, + "nightingale": 21771, + "tamara": 21772, + "edmond": 21773, + "ingredient": 21774, + "weaknesses": 21775, + "silhouette": 21776, + "285": 21777, + "compatibility": 21778, + "withdrawing": 21779, + "hampson": 21780, + "##mona": 21781, + "anguish": 21782, + "giggling": 21783, + "##mber": 21784, + "bookstore": 21785, + "##jiang": 21786, + "southernmost": 21787, + "tilting": 21788, + "##vance": 21789, + "bai": 21790, + "economical": 21791, + "rf": 21792, + "briefcase": 21793, + "dreadful": 21794, + "hinted": 21795, + "projections": 21796, + "shattering": 21797, + "totaling": 21798, + "##rogate": 21799, + "analogue": 21800, + "indicted": 21801, + "periodical": 21802, + "fullback": 21803, + "##dman": 21804, + "haynes": 21805, + "##tenberg": 21806, + "##ffs": 21807, + "##ishment": 21808, + "1745": 21809, + "thirst": 21810, + "stumble": 21811, + "penang": 21812, + "vigorous": 21813, + "##ddling": 21814, + "##kor": 21815, + "##lium": 21816, + "octave": 21817, + "##ove": 21818, + "##enstein": 21819, + "##inen": 21820, + "##ones": 21821, + "siberian": 21822, + "##uti": 21823, + "cbn": 21824, + "repeal": 21825, + "swaying": 21826, + "##vington": 21827, + "khalid": 21828, + "tanaka": 21829, + "unicorn": 21830, + "otago": 21831, + "plastered": 21832, + "lobe": 21833, + "riddle": 21834, + "##rella": 21835, + "perch": 21836, + "##ishing": 21837, + "croydon": 21838, + "filtered": 21839, + "graeme": 21840, + "tripoli": 21841, + "##ossa": 21842, + "crocodile": 21843, + "##chers": 21844, + "sufi": 21845, + "mined": 21846, + "##tung": 21847, + "inferno": 21848, + "lsu": 21849, + "##phi": 21850, + "swelled": 21851, + "utilizes": 21852, + "£2": 21853, + "cale": 21854, + "periodicals": 21855, + "styx": 21856, + "hike": 21857, + "informally": 21858, + "coop": 21859, + "lund": 21860, + "##tidae": 21861, + "ala": 21862, + "hen": 21863, + "qui": 21864, + "transformations": 21865, + "disposed": 21866, + "sheath": 21867, + "chickens": 21868, + "##cade": 21869, + "fitzroy": 21870, + "sas": 21871, + "silesia": 21872, + "unacceptable": 21873, + "odisha": 21874, + "1650": 21875, + "sabrina": 21876, + "pe": 21877, + "spokane": 21878, + "ratios": 21879, + "athena": 21880, + "massage": 21881, + "shen": 21882, + "dilemma": 21883, + "##drum": 21884, + "##riz": 21885, + "##hul": 21886, + "corona": 21887, + "doubtful": 21888, + "niall": 21889, + "##pha": 21890, + "##bino": 21891, + "fines": 21892, + "cite": 21893, + "acknowledging": 21894, + "bangor": 21895, + "ballard": 21896, + "bathurst": 21897, + "##resh": 21898, + "huron": 21899, + "mustered": 21900, + "alzheimer": 21901, + "garments": 21902, + "kinase": 21903, + "tyre": 21904, + "warship": 21905, + "##cp": 21906, + "flashback": 21907, + "pulmonary": 21908, + "braun": 21909, + "cheat": 21910, + "kamal": 21911, + "cyclists": 21912, + "constructions": 21913, + "grenades": 21914, + "ndp": 21915, + "traveller": 21916, + "excuses": 21917, + "stomped": 21918, + "signalling": 21919, + "trimmed": 21920, + "futsal": 21921, + "mosques": 21922, + "relevance": 21923, + "##wine": 21924, + "wta": 21925, + "##23": 21926, + "##vah": 21927, + "##lter": 21928, + "hoc": 21929, + "##riding": 21930, + "optimistic": 21931, + "##´s": 21932, + "deco": 21933, + "sim": 21934, + "interacting": 21935, + "rejecting": 21936, + "moniker": 21937, + "waterways": 21938, + "##ieri": 21939, + "##oku": 21940, + "mayors": 21941, + "gdansk": 21942, + "outnumbered": 21943, + "pearls": 21944, + "##ended": 21945, + "##hampton": 21946, + "fairs": 21947, + "totals": 21948, + "dominating": 21949, + "262": 21950, + "notions": 21951, + "stairway": 21952, + "compiling": 21953, + "pursed": 21954, + "commodities": 21955, + "grease": 21956, + "yeast": 21957, + "##jong": 21958, + "carthage": 21959, + "griffiths": 21960, + "residual": 21961, + "amc": 21962, + "contraction": 21963, + "laird": 21964, + "sapphire": 21965, + "##marine": 21966, + "##ivated": 21967, + "amalgamation": 21968, + "dissolve": 21969, + "inclination": 21970, + "lyle": 21971, + "packaged": 21972, + "altitudes": 21973, + "suez": 21974, + "canons": 21975, + "graded": 21976, + "lurched": 21977, + "narrowing": 21978, + "boasts": 21979, + "guise": 21980, + "wed": 21981, + "enrico": 21982, + "##ovsky": 21983, + "rower": 21984, + "scarred": 21985, + "bree": 21986, + "cub": 21987, + "iberian": 21988, + "protagonists": 21989, + "bargaining": 21990, + "proposing": 21991, + "trainers": 21992, + "voyages": 21993, + "vans": 21994, + "fishes": 21995, + "##aea": 21996, + "##ivist": 21997, + "##verance": 21998, + "encryption": 21999, + "artworks": 22000, + "kazan": 22001, + "sabre": 22002, + "cleopatra": 22003, + "hepburn": 22004, + "rotting": 22005, + "supremacy": 22006, + "mecklenburg": 22007, + "##brate": 22008, + "burrows": 22009, + "hazards": 22010, + "outgoing": 22011, + "flair": 22012, + "organizes": 22013, + "##ctions": 22014, + "scorpion": 22015, + "##usions": 22016, + "boo": 22017, + "234": 22018, + "chevalier": 22019, + "dunedin": 22020, + "slapping": 22021, + "##34": 22022, + "ineligible": 22023, + "pensions": 22024, + "##38": 22025, + "##omic": 22026, + "manufactures": 22027, + "emails": 22028, + "bismarck": 22029, + "238": 22030, + "weakening": 22031, + "blackish": 22032, + "ding": 22033, + "mcgee": 22034, + "quo": 22035, + "##rling": 22036, + "northernmost": 22037, + "xx": 22038, + "manpower": 22039, + "greed": 22040, + "sampson": 22041, + "clicking": 22042, + "##ange": 22043, + "##horpe": 22044, + "##inations": 22045, + "##roving": 22046, + "torre": 22047, + "##eptive": 22048, + "##moral": 22049, + "symbolism": 22050, + "38th": 22051, + "asshole": 22052, + "meritorious": 22053, + "outfits": 22054, + "splashed": 22055, + "biographies": 22056, + "sprung": 22057, + "astros": 22058, + "##tale": 22059, + "302": 22060, + "737": 22061, + "filly": 22062, + "raoul": 22063, + "nw": 22064, + "tokugawa": 22065, + "linden": 22066, + "clubhouse": 22067, + "##apa": 22068, + "tracts": 22069, + "romano": 22070, + "##pio": 22071, + "putin": 22072, + "tags": 22073, + "##note": 22074, + "chained": 22075, + "dickson": 22076, + "gunshot": 22077, + "moe": 22078, + "gunn": 22079, + "rashid": 22080, + "##tails": 22081, + "zipper": 22082, + "##bas": 22083, + "##nea": 22084, + "contrasted": 22085, + "##ply": 22086, + "##udes": 22087, + "plum": 22088, + "pharaoh": 22089, + "##pile": 22090, + "aw": 22091, + "comedies": 22092, + "ingrid": 22093, + "sandwiches": 22094, + "subdivisions": 22095, + "1100": 22096, + "mariana": 22097, + "nokia": 22098, + "kamen": 22099, + "hz": 22100, + "delaney": 22101, + "veto": 22102, + "herring": 22103, + "##words": 22104, + "possessive": 22105, + "outlines": 22106, + "##roup": 22107, + "siemens": 22108, + "stairwell": 22109, + "rc": 22110, + "gallantry": 22111, + "messiah": 22112, + "palais": 22113, + "yells": 22114, + "233": 22115, + "zeppelin": 22116, + "##dm": 22117, + "bolivar": 22118, + "##cede": 22119, + "smackdown": 22120, + "mckinley": 22121, + "##mora": 22122, + "##yt": 22123, + "muted": 22124, + "geologic": 22125, + "finely": 22126, + "unitary": 22127, + "avatar": 22128, + "hamas": 22129, + "maynard": 22130, + "rees": 22131, + "bog": 22132, + "contrasting": 22133, + "##rut": 22134, + "liv": 22135, + "chico": 22136, + "disposition": 22137, + "pixel": 22138, + "##erate": 22139, + "becca": 22140, + "dmitry": 22141, + "yeshiva": 22142, + "narratives": 22143, + "##lva": 22144, + "##ulton": 22145, + "mercenary": 22146, + "sharpe": 22147, + "tempered": 22148, + "navigate": 22149, + "stealth": 22150, + "amassed": 22151, + "keynes": 22152, + "##lini": 22153, + "untouched": 22154, + "##rrie": 22155, + "havoc": 22156, + "lithium": 22157, + "##fighting": 22158, + "abyss": 22159, + "graf": 22160, + "southward": 22161, + "wolverine": 22162, + "balloons": 22163, + "implements": 22164, + "ngos": 22165, + "transitions": 22166, + "##icum": 22167, + "ambushed": 22168, + "concacaf": 22169, + "dormant": 22170, + "economists": 22171, + "##dim": 22172, + "costing": 22173, + "csi": 22174, + "rana": 22175, + "universite": 22176, + "boulders": 22177, + "verity": 22178, + "##llon": 22179, + "collin": 22180, + "mellon": 22181, + "misses": 22182, + "cypress": 22183, + "fluorescent": 22184, + "lifeless": 22185, + "spence": 22186, + "##ulla": 22187, + "crewe": 22188, + "shepard": 22189, + "pak": 22190, + "revelations": 22191, + "##م": 22192, + "jolly": 22193, + "gibbons": 22194, + "paw": 22195, + "##dro": 22196, + "##quel": 22197, + "freeing": 22198, + "##test": 22199, + "shack": 22200, + "fries": 22201, + "palatine": 22202, + "##51": 22203, + "##hiko": 22204, + "accompaniment": 22205, + "cruising": 22206, + "recycled": 22207, + "##aver": 22208, + "erwin": 22209, + "sorting": 22210, + "synthesizers": 22211, + "dyke": 22212, + "realities": 22213, + "sg": 22214, + "strides": 22215, + "enslaved": 22216, + "wetland": 22217, + "##ghan": 22218, + "competence": 22219, + "gunpowder": 22220, + "grassy": 22221, + "maroon": 22222, + "reactors": 22223, + "objection": 22224, + "##oms": 22225, + "carlson": 22226, + "gearbox": 22227, + "macintosh": 22228, + "radios": 22229, + "shelton": 22230, + "##sho": 22231, + "clergyman": 22232, + "prakash": 22233, + "254": 22234, + "mongols": 22235, + "trophies": 22236, + "oricon": 22237, + "228": 22238, + "stimuli": 22239, + "twenty20": 22240, + "cantonese": 22241, + "cortes": 22242, + "mirrored": 22243, + "##saurus": 22244, + "bhp": 22245, + "cristina": 22246, + "melancholy": 22247, + "##lating": 22248, + "enjoyable": 22249, + "nuevo": 22250, + "##wny": 22251, + "downfall": 22252, + "schumacher": 22253, + "##ind": 22254, + "banging": 22255, + "lausanne": 22256, + "rumbled": 22257, + "paramilitary": 22258, + "reflex": 22259, + "ax": 22260, + "amplitude": 22261, + "migratory": 22262, + "##gall": 22263, + "##ups": 22264, + "midi": 22265, + "barnard": 22266, + "lastly": 22267, + "sherry": 22268, + "##hp": 22269, + "##nall": 22270, + "keystone": 22271, + "##kra": 22272, + "carleton": 22273, + "slippery": 22274, + "##53": 22275, + "coloring": 22276, + "foe": 22277, + "socket": 22278, + "otter": 22279, + "##rgos": 22280, + "mats": 22281, + "##tose": 22282, + "consultants": 22283, + "bafta": 22284, + "bison": 22285, + "topping": 22286, + "##km": 22287, + "490": 22288, + "primal": 22289, + "abandonment": 22290, + "transplant": 22291, + "atoll": 22292, + "hideous": 22293, + "mort": 22294, + "pained": 22295, + "reproduced": 22296, + "tae": 22297, + "howling": 22298, + "##turn": 22299, + "unlawful": 22300, + "billionaire": 22301, + "hotter": 22302, + "poised": 22303, + "lansing": 22304, + "##chang": 22305, + "dinamo": 22306, + "retro": 22307, + "messing": 22308, + "nfc": 22309, + "domesday": 22310, + "##mina": 22311, + "blitz": 22312, + "timed": 22313, + "##athing": 22314, + "##kley": 22315, + "ascending": 22316, + "gesturing": 22317, + "##izations": 22318, + "signaled": 22319, + "tis": 22320, + "chinatown": 22321, + "mermaid": 22322, + "savanna": 22323, + "jameson": 22324, + "##aint": 22325, + "catalina": 22326, + "##pet": 22327, + "##hers": 22328, + "cochrane": 22329, + "cy": 22330, + "chatting": 22331, + "##kus": 22332, + "alerted": 22333, + "computation": 22334, + "mused": 22335, + "noelle": 22336, + "majestic": 22337, + "mohawk": 22338, + "campo": 22339, + "octagonal": 22340, + "##sant": 22341, + "##hend": 22342, + "241": 22343, + "aspiring": 22344, + "##mart": 22345, + "comprehend": 22346, + "iona": 22347, + "paralyzed": 22348, + "shimmering": 22349, + "swindon": 22350, + "rhone": 22351, + "##eley": 22352, + "reputed": 22353, + "configurations": 22354, + "pitchfork": 22355, + "agitation": 22356, + "francais": 22357, + "gillian": 22358, + "lipstick": 22359, + "##ilo": 22360, + "outsiders": 22361, + "pontifical": 22362, + "resisting": 22363, + "bitterness": 22364, + "sewer": 22365, + "rockies": 22366, + "##edd": 22367, + "##ucher": 22368, + "misleading": 22369, + "1756": 22370, + "exiting": 22371, + "galloway": 22372, + "##nging": 22373, + "risked": 22374, + "##heart": 22375, + "246": 22376, + "commemoration": 22377, + "schultz": 22378, + "##rka": 22379, + "integrating": 22380, + "##rsa": 22381, + "poses": 22382, + "shrieked": 22383, + "##weiler": 22384, + "guineas": 22385, + "gladys": 22386, + "jerking": 22387, + "owls": 22388, + "goldsmith": 22389, + "nightly": 22390, + "penetrating": 22391, + "##unced": 22392, + "lia": 22393, + "##33": 22394, + "ignited": 22395, + "betsy": 22396, + "##aring": 22397, + "##thorpe": 22398, + "follower": 22399, + "vigorously": 22400, + "##rave": 22401, + "coded": 22402, + "kiran": 22403, + "knit": 22404, + "zoology": 22405, + "tbilisi": 22406, + "##28": 22407, + "##bered": 22408, + "repository": 22409, + "govt": 22410, + "deciduous": 22411, + "dino": 22412, + "growling": 22413, + "##bba": 22414, + "enhancement": 22415, + "unleashed": 22416, + "chanting": 22417, + "pussy": 22418, + "biochemistry": 22419, + "##eric": 22420, + "kettle": 22421, + "repression": 22422, + "toxicity": 22423, + "nrhp": 22424, + "##arth": 22425, + "##kko": 22426, + "##bush": 22427, + "ernesto": 22428, + "commended": 22429, + "outspoken": 22430, + "242": 22431, + "mca": 22432, + "parchment": 22433, + "sms": 22434, + "kristen": 22435, + "##aton": 22436, + "bisexual": 22437, + "raked": 22438, + "glamour": 22439, + "navajo": 22440, + "a2": 22441, + "conditioned": 22442, + "showcased": 22443, + "##hma": 22444, + "spacious": 22445, + "youthful": 22446, + "##esa": 22447, + "usl": 22448, + "appliances": 22449, + "junta": 22450, + "brest": 22451, + "layne": 22452, + "conglomerate": 22453, + "enchanted": 22454, + "chao": 22455, + "loosened": 22456, + "picasso": 22457, + "circulating": 22458, + "inspect": 22459, + "montevideo": 22460, + "##centric": 22461, + "##kti": 22462, + "piazza": 22463, + "spurred": 22464, + "##aith": 22465, + "bari": 22466, + "freedoms": 22467, + "poultry": 22468, + "stamford": 22469, + "lieu": 22470, + "##ect": 22471, + "indigo": 22472, + "sarcastic": 22473, + "bahia": 22474, + "stump": 22475, + "attach": 22476, + "dvds": 22477, + "frankenstein": 22478, + "lille": 22479, + "approx": 22480, + "scriptures": 22481, + "pollen": 22482, + "##script": 22483, + "nmi": 22484, + "overseen": 22485, + "##ivism": 22486, + "tides": 22487, + "proponent": 22488, + "newmarket": 22489, + "inherit": 22490, + "milling": 22491, + "##erland": 22492, + "centralized": 22493, + "##rou": 22494, + "distributors": 22495, + "credentials": 22496, + "drawers": 22497, + "abbreviation": 22498, + "##lco": 22499, + "##xon": 22500, + "downing": 22501, + "uncomfortably": 22502, + "ripe": 22503, + "##oes": 22504, + "erase": 22505, + "franchises": 22506, + "##ever": 22507, + "populace": 22508, + "##bery": 22509, + "##khar": 22510, + "decomposition": 22511, + "pleas": 22512, + "##tet": 22513, + "daryl": 22514, + "sabah": 22515, + "##stle": 22516, + "##wide": 22517, + "fearless": 22518, + "genie": 22519, + "lesions": 22520, + "annette": 22521, + "##ogist": 22522, + "oboe": 22523, + "appendix": 22524, + "nair": 22525, + "dripped": 22526, + "petitioned": 22527, + "maclean": 22528, + "mosquito": 22529, + "parrot": 22530, + "rpg": 22531, + "hampered": 22532, + "1648": 22533, + "operatic": 22534, + "reservoirs": 22535, + "##tham": 22536, + "irrelevant": 22537, + "jolt": 22538, + "summarized": 22539, + "##fp": 22540, + "medallion": 22541, + "##taff": 22542, + "##−": 22543, + "clawed": 22544, + "harlow": 22545, + "narrower": 22546, + "goddard": 22547, + "marcia": 22548, + "bodied": 22549, + "fremont": 22550, + "suarez": 22551, + "altering": 22552, + "tempest": 22553, + "mussolini": 22554, + "porn": 22555, + "##isms": 22556, + "sweetly": 22557, + "oversees": 22558, + "walkers": 22559, + "solitude": 22560, + "grimly": 22561, + "shrines": 22562, + "hk": 22563, + "ich": 22564, + "supervisors": 22565, + "hostess": 22566, + "dietrich": 22567, + "legitimacy": 22568, + "brushes": 22569, + "expressive": 22570, + "##yp": 22571, + "dissipated": 22572, + "##rse": 22573, + "localized": 22574, + "systemic": 22575, + "##nikov": 22576, + "gettysburg": 22577, + "##js": 22578, + "##uaries": 22579, + "dialogues": 22580, + "muttering": 22581, + "251": 22582, + "housekeeper": 22583, + "sicilian": 22584, + "discouraged": 22585, + "##frey": 22586, + "beamed": 22587, + "kaladin": 22588, + "halftime": 22589, + "kidnap": 22590, + "##amo": 22591, + "##llet": 22592, + "1754": 22593, + "synonymous": 22594, + "depleted": 22595, + "instituto": 22596, + "insulin": 22597, + "reprised": 22598, + "##opsis": 22599, + "clashed": 22600, + "##ctric": 22601, + "interrupting": 22602, + "radcliffe": 22603, + "insisting": 22604, + "medici": 22605, + "1715": 22606, + "ejected": 22607, + "playfully": 22608, + "turbulent": 22609, + "##47": 22610, + "starvation": 22611, + "##rini": 22612, + "shipment": 22613, + "rebellious": 22614, + "petersen": 22615, + "verification": 22616, + "merits": 22617, + "##rified": 22618, + "cakes": 22619, + "##charged": 22620, + "1757": 22621, + "milford": 22622, + "shortages": 22623, + "spying": 22624, + "fidelity": 22625, + "##aker": 22626, + "emitted": 22627, + "storylines": 22628, + "harvested": 22629, + "seismic": 22630, + "##iform": 22631, + "cheung": 22632, + "kilda": 22633, + "theoretically": 22634, + "barbie": 22635, + "lynx": 22636, + "##rgy": 22637, + "##tius": 22638, + "goblin": 22639, + "mata": 22640, + "poisonous": 22641, + "##nburg": 22642, + "reactive": 22643, + "residues": 22644, + "obedience": 22645, + "##евич": 22646, + "conjecture": 22647, + "##rac": 22648, + "401": 22649, + "hating": 22650, + "sixties": 22651, + "kicker": 22652, + "moaning": 22653, + "motown": 22654, + "##bha": 22655, + "emancipation": 22656, + "neoclassical": 22657, + "##hering": 22658, + "consoles": 22659, + "ebert": 22660, + "professorship": 22661, + "##tures": 22662, + "sustaining": 22663, + "assaults": 22664, + "obeyed": 22665, + "affluent": 22666, + "incurred": 22667, + "tornadoes": 22668, + "##eber": 22669, + "##zow": 22670, + "emphasizing": 22671, + "highlanders": 22672, + "cheated": 22673, + "helmets": 22674, + "##ctus": 22675, + "internship": 22676, + "terence": 22677, + "bony": 22678, + "executions": 22679, + "legislators": 22680, + "berries": 22681, + "peninsular": 22682, + "tinged": 22683, + "##aco": 22684, + "1689": 22685, + "amplifier": 22686, + "corvette": 22687, + "ribbons": 22688, + "lavish": 22689, + "pennant": 22690, + "##lander": 22691, + "worthless": 22692, + "##chfield": 22693, + "##forms": 22694, + "mariano": 22695, + "pyrenees": 22696, + "expenditures": 22697, + "##icides": 22698, + "chesterfield": 22699, + "mandir": 22700, + "tailor": 22701, + "39th": 22702, + "sergey": 22703, + "nestled": 22704, + "willed": 22705, + "aristocracy": 22706, + "devotees": 22707, + "goodnight": 22708, + "raaf": 22709, + "rumored": 22710, + "weaponry": 22711, + "remy": 22712, + "appropriations": 22713, + "harcourt": 22714, + "burr": 22715, + "riaa": 22716, + "##lence": 22717, + "limitation": 22718, + "unnoticed": 22719, + "guo": 22720, + "soaking": 22721, + "swamps": 22722, + "##tica": 22723, + "collapsing": 22724, + "tatiana": 22725, + "descriptive": 22726, + "brigham": 22727, + "psalm": 22728, + "##chment": 22729, + "maddox": 22730, + "##lization": 22731, + "patti": 22732, + "caliph": 22733, + "##aja": 22734, + "akron": 22735, + "injuring": 22736, + "serra": 22737, + "##ganj": 22738, + "basins": 22739, + "##sari": 22740, + "astonished": 22741, + "launcher": 22742, + "##church": 22743, + "hilary": 22744, + "wilkins": 22745, + "sewing": 22746, + "##sf": 22747, + "stinging": 22748, + "##fia": 22749, + "##ncia": 22750, + "underwood": 22751, + "startup": 22752, + "##ition": 22753, + "compilations": 22754, + "vibrations": 22755, + "embankment": 22756, + "jurist": 22757, + "##nity": 22758, + "bard": 22759, + "juventus": 22760, + "groundwater": 22761, + "kern": 22762, + "palaces": 22763, + "helium": 22764, + "boca": 22765, + "cramped": 22766, + "marissa": 22767, + "soto": 22768, + "##worm": 22769, + "jae": 22770, + "princely": 22771, + "##ggy": 22772, + "faso": 22773, + "bazaar": 22774, + "warmly": 22775, + "##voking": 22776, + "229": 22777, + "pairing": 22778, + "##lite": 22779, + "##grate": 22780, + "##nets": 22781, + "wien": 22782, + "freaked": 22783, + "ulysses": 22784, + "rebirth": 22785, + "##alia": 22786, + "##rent": 22787, + "mummy": 22788, + "guzman": 22789, + "jimenez": 22790, + "stilled": 22791, + "##nitz": 22792, + "trajectory": 22793, + "tha": 22794, + "woken": 22795, + "archival": 22796, + "professions": 22797, + "##pts": 22798, + "##pta": 22799, + "hilly": 22800, + "shadowy": 22801, + "shrink": 22802, + "##bolt": 22803, + "norwood": 22804, + "glued": 22805, + "migrate": 22806, + "stereotypes": 22807, + "devoid": 22808, + "##pheus": 22809, + "625": 22810, + "evacuate": 22811, + "horrors": 22812, + "infancy": 22813, + "gotham": 22814, + "knowles": 22815, + "optic": 22816, + "downloaded": 22817, + "sachs": 22818, + "kingsley": 22819, + "parramatta": 22820, + "darryl": 22821, + "mor": 22822, + "##onale": 22823, + "shady": 22824, + "commence": 22825, + "confesses": 22826, + "kan": 22827, + "##meter": 22828, + "##placed": 22829, + "marlborough": 22830, + "roundabout": 22831, + "regents": 22832, + "frigates": 22833, + "io": 22834, + "##imating": 22835, + "gothenburg": 22836, + "revoked": 22837, + "carvings": 22838, + "clockwise": 22839, + "convertible": 22840, + "intruder": 22841, + "##sche": 22842, + "banged": 22843, + "##ogo": 22844, + "vicky": 22845, + "bourgeois": 22846, + "##mony": 22847, + "dupont": 22848, + "footing": 22849, + "##gum": 22850, + "pd": 22851, + "##real": 22852, + "buckle": 22853, + "yun": 22854, + "penthouse": 22855, + "sane": 22856, + "720": 22857, + "serviced": 22858, + "stakeholders": 22859, + "neumann": 22860, + "bb": 22861, + "##eers": 22862, + "comb": 22863, + "##gam": 22864, + "catchment": 22865, + "pinning": 22866, + "rallies": 22867, + "typing": 22868, + "##elles": 22869, + "forefront": 22870, + "freiburg": 22871, + "sweetie": 22872, + "giacomo": 22873, + "widowed": 22874, + "goodwill": 22875, + "worshipped": 22876, + "aspirations": 22877, + "midday": 22878, + "##vat": 22879, + "fishery": 22880, + "##trick": 22881, + "bournemouth": 22882, + "turk": 22883, + "243": 22884, + "hearth": 22885, + "ethanol": 22886, + "guadalajara": 22887, + "murmurs": 22888, + "sl": 22889, + "##uge": 22890, + "afforded": 22891, + "scripted": 22892, + "##hta": 22893, + "wah": 22894, + "##jn": 22895, + "coroner": 22896, + "translucent": 22897, + "252": 22898, + "memorials": 22899, + "puck": 22900, + "progresses": 22901, + "clumsy": 22902, + "##race": 22903, + "315": 22904, + "candace": 22905, + "recounted": 22906, + "##27": 22907, + "##slin": 22908, + "##uve": 22909, + "filtering": 22910, + "##mac": 22911, + "howl": 22912, + "strata": 22913, + "heron": 22914, + "leveled": 22915, + "##ays": 22916, + "dubious": 22917, + "##oja": 22918, + "##т": 22919, + "##wheel": 22920, + "citations": 22921, + "exhibiting": 22922, + "##laya": 22923, + "##mics": 22924, + "##pods": 22925, + "turkic": 22926, + "##lberg": 22927, + "injunction": 22928, + "##ennial": 22929, + "##mit": 22930, + "antibodies": 22931, + "##44": 22932, + "organise": 22933, + "##rigues": 22934, + "cardiovascular": 22935, + "cushion": 22936, + "inverness": 22937, + "##zquez": 22938, + "dia": 22939, + "cocoa": 22940, + "sibling": 22941, + "##tman": 22942, + "##roid": 22943, + "expanse": 22944, + "feasible": 22945, + "tunisian": 22946, + "algiers": 22947, + "##relli": 22948, + "rus": 22949, + "bloomberg": 22950, + "dso": 22951, + "westphalia": 22952, + "bro": 22953, + "tacoma": 22954, + "281": 22955, + "downloads": 22956, + "##ours": 22957, + "konrad": 22958, + "duran": 22959, + "##hdi": 22960, + "continuum": 22961, + "jett": 22962, + "compares": 22963, + "legislator": 22964, + "secession": 22965, + "##nable": 22966, + "##gues": 22967, + "##zuka": 22968, + "translating": 22969, + "reacher": 22970, + "##gley": 22971, + "##ła": 22972, + "aleppo": 22973, + "##agi": 22974, + "tc": 22975, + "orchards": 22976, + "trapping": 22977, + "linguist": 22978, + "versatile": 22979, + "drumming": 22980, + "postage": 22981, + "calhoun": 22982, + "superiors": 22983, + "##mx": 22984, + "barefoot": 22985, + "leary": 22986, + "##cis": 22987, + "ignacio": 22988, + "alfa": 22989, + "kaplan": 22990, + "##rogen": 22991, + "bratislava": 22992, + "mori": 22993, + "##vot": 22994, + "disturb": 22995, + "haas": 22996, + "313": 22997, + "cartridges": 22998, + "gilmore": 22999, + "radiated": 23000, + "salford": 23001, + "tunic": 23002, + "hades": 23003, + "##ulsive": 23004, + "archeological": 23005, + "delilah": 23006, + "magistrates": 23007, + "auditioned": 23008, + "brewster": 23009, + "charters": 23010, + "empowerment": 23011, + "blogs": 23012, + "cappella": 23013, + "dynasties": 23014, + "iroquois": 23015, + "whipping": 23016, + "##krishna": 23017, + "raceway": 23018, + "truths": 23019, + "myra": 23020, + "weaken": 23021, + "judah": 23022, + "mcgregor": 23023, + "##horse": 23024, + "mic": 23025, + "refueling": 23026, + "37th": 23027, + "burnley": 23028, + "bosses": 23029, + "markus": 23030, + "premio": 23031, + "query": 23032, + "##gga": 23033, + "dunbar": 23034, + "##economic": 23035, + "darkest": 23036, + "lyndon": 23037, + "sealing": 23038, + "commendation": 23039, + "reappeared": 23040, + "##mun": 23041, + "addicted": 23042, + "ezio": 23043, + "slaughtered": 23044, + "satisfactory": 23045, + "shuffle": 23046, + "##eves": 23047, + "##thic": 23048, + "##uj": 23049, + "fortification": 23050, + "warrington": 23051, + "##otto": 23052, + "resurrected": 23053, + "fargo": 23054, + "mane": 23055, + "##utable": 23056, + "##lei": 23057, + "##space": 23058, + "foreword": 23059, + "ox": 23060, + "##aris": 23061, + "##vern": 23062, + "abrams": 23063, + "hua": 23064, + "##mento": 23065, + "sakura": 23066, + "##alo": 23067, + "uv": 23068, + "sentimental": 23069, + "##skaya": 23070, + "midfield": 23071, + "##eses": 23072, + "sturdy": 23073, + "scrolls": 23074, + "macleod": 23075, + "##kyu": 23076, + "entropy": 23077, + "##lance": 23078, + "mitochondrial": 23079, + "cicero": 23080, + "excelled": 23081, + "thinner": 23082, + "convoys": 23083, + "perceive": 23084, + "##oslav": 23085, + "##urable": 23086, + "systematically": 23087, + "grind": 23088, + "burkina": 23089, + "287": 23090, + "##tagram": 23091, + "ops": 23092, + "##aman": 23093, + "guantanamo": 23094, + "##cloth": 23095, + "##tite": 23096, + "forcefully": 23097, + "wavy": 23098, + "##jou": 23099, + "pointless": 23100, + "##linger": 23101, + "##tze": 23102, + "layton": 23103, + "portico": 23104, + "superficial": 23105, + "clerical": 23106, + "outlaws": 23107, + "##hism": 23108, + "burials": 23109, + "muir": 23110, + "##inn": 23111, + "creditors": 23112, + "hauling": 23113, + "rattle": 23114, + "##leg": 23115, + "calais": 23116, + "monde": 23117, + "archers": 23118, + "reclaimed": 23119, + "dwell": 23120, + "wexford": 23121, + "hellenic": 23122, + "falsely": 23123, + "remorse": 23124, + "##tek": 23125, + "dough": 23126, + "furnishings": 23127, + "##uttered": 23128, + "gabon": 23129, + "neurological": 23130, + "novice": 23131, + "##igraphy": 23132, + "contemplated": 23133, + "pulpit": 23134, + "nightstand": 23135, + "saratoga": 23136, + "##istan": 23137, + "documenting": 23138, + "pulsing": 23139, + "taluk": 23140, + "##firmed": 23141, + "busted": 23142, + "marital": 23143, + "##rien": 23144, + "disagreements": 23145, + "wasps": 23146, + "##yes": 23147, + "hodge": 23148, + "mcdonnell": 23149, + "mimic": 23150, + "fran": 23151, + "pendant": 23152, + "dhabi": 23153, + "musa": 23154, + "##nington": 23155, + "congratulations": 23156, + "argent": 23157, + "darrell": 23158, + "concussion": 23159, + "losers": 23160, + "regrets": 23161, + "thessaloniki": 23162, + "reversal": 23163, + "donaldson": 23164, + "hardwood": 23165, + "thence": 23166, + "achilles": 23167, + "ritter": 23168, + "##eran": 23169, + "demonic": 23170, + "jurgen": 23171, + "prophets": 23172, + "goethe": 23173, + "eki": 23174, + "classmate": 23175, + "buff": 23176, + "##cking": 23177, + "yank": 23178, + "irrational": 23179, + "##inging": 23180, + "perished": 23181, + "seductive": 23182, + "qur": 23183, + "sourced": 23184, + "##crat": 23185, + "##typic": 23186, + "mustard": 23187, + "ravine": 23188, + "barre": 23189, + "horizontally": 23190, + "characterization": 23191, + "phylogenetic": 23192, + "boise": 23193, + "##dit": 23194, + "##runner": 23195, + "##tower": 23196, + "brutally": 23197, + "intercourse": 23198, + "seduce": 23199, + "##bbing": 23200, + "fay": 23201, + "ferris": 23202, + "ogden": 23203, + "amar": 23204, + "nik": 23205, + "unarmed": 23206, + "##inator": 23207, + "evaluating": 23208, + "kyrgyzstan": 23209, + "sweetness": 23210, + "##lford": 23211, + "##oki": 23212, + "mccormick": 23213, + "meiji": 23214, + "notoriety": 23215, + "stimulate": 23216, + "disrupt": 23217, + "figuring": 23218, + "instructional": 23219, + "mcgrath": 23220, + "##zoo": 23221, + "groundbreaking": 23222, + "##lto": 23223, + "flinch": 23224, + "khorasan": 23225, + "agrarian": 23226, + "bengals": 23227, + "mixer": 23228, + "radiating": 23229, + "##sov": 23230, + "ingram": 23231, + "pitchers": 23232, + "nad": 23233, + "tariff": 23234, + "##cript": 23235, + "tata": 23236, + "##codes": 23237, + "##emi": 23238, + "##ungen": 23239, + "appellate": 23240, + "lehigh": 23241, + "##bled": 23242, + "##giri": 23243, + "brawl": 23244, + "duct": 23245, + "texans": 23246, + "##ciation": 23247, + "##ropolis": 23248, + "skipper": 23249, + "speculative": 23250, + "vomit": 23251, + "doctrines": 23252, + "stresses": 23253, + "253": 23254, + "davy": 23255, + "graders": 23256, + "whitehead": 23257, + "jozef": 23258, + "timely": 23259, + "cumulative": 23260, + "haryana": 23261, + "paints": 23262, + "appropriately": 23263, + "boon": 23264, + "cactus": 23265, + "##ales": 23266, + "##pid": 23267, + "dow": 23268, + "legions": 23269, + "##pit": 23270, + "perceptions": 23271, + "1730": 23272, + "picturesque": 23273, + "##yse": 23274, + "periphery": 23275, + "rune": 23276, + "wr": 23277, + "##aha": 23278, + "celtics": 23279, + "sentencing": 23280, + "whoa": 23281, + "##erin": 23282, + "confirms": 23283, + "variance": 23284, + "425": 23285, + "moines": 23286, + "mathews": 23287, + "spade": 23288, + "rave": 23289, + "m1": 23290, + "fronted": 23291, + "fx": 23292, + "blending": 23293, + "alleging": 23294, + "reared": 23295, + "##gl": 23296, + "237": 23297, + "##paper": 23298, + "grassroots": 23299, + "eroded": 23300, + "##free": 23301, + "##physical": 23302, + "directs": 23303, + "ordeal": 23304, + "##sław": 23305, + "accelerate": 23306, + "hacker": 23307, + "rooftop": 23308, + "##inia": 23309, + "lev": 23310, + "buys": 23311, + "cebu": 23312, + "devote": 23313, + "##lce": 23314, + "specialising": 23315, + "##ulsion": 23316, + "choreographed": 23317, + "repetition": 23318, + "warehouses": 23319, + "##ryl": 23320, + "paisley": 23321, + "tuscany": 23322, + "analogy": 23323, + "sorcerer": 23324, + "hash": 23325, + "huts": 23326, + "shards": 23327, + "descends": 23328, + "exclude": 23329, + "nix": 23330, + "chaplin": 23331, + "gaga": 23332, + "ito": 23333, + "vane": 23334, + "##drich": 23335, + "causeway": 23336, + "misconduct": 23337, + "limo": 23338, + "orchestrated": 23339, + "glands": 23340, + "jana": 23341, + "##kot": 23342, + "u2": 23343, + "##mple": 23344, + "##sons": 23345, + "branching": 23346, + "contrasts": 23347, + "scoop": 23348, + "longed": 23349, + "##virus": 23350, + "chattanooga": 23351, + "##75": 23352, + "syrup": 23353, + "cornerstone": 23354, + "##tized": 23355, + "##mind": 23356, + "##iaceae": 23357, + "careless": 23358, + "precedence": 23359, + "frescoes": 23360, + "##uet": 23361, + "chilled": 23362, + "consult": 23363, + "modelled": 23364, + "snatch": 23365, + "peat": 23366, + "##thermal": 23367, + "caucasian": 23368, + "humane": 23369, + "relaxation": 23370, + "spins": 23371, + "temperance": 23372, + "##lbert": 23373, + "occupations": 23374, + "lambda": 23375, + "hybrids": 23376, + "moons": 23377, + "mp3": 23378, + "##oese": 23379, + "247": 23380, + "rolf": 23381, + "societal": 23382, + "yerevan": 23383, + "ness": 23384, + "##ssler": 23385, + "befriended": 23386, + "mechanized": 23387, + "nominate": 23388, + "trough": 23389, + "boasted": 23390, + "cues": 23391, + "seater": 23392, + "##hom": 23393, + "bends": 23394, + "##tangle": 23395, + "conductors": 23396, + "emptiness": 23397, + "##lmer": 23398, + "eurasian": 23399, + "adriatic": 23400, + "tian": 23401, + "##cie": 23402, + "anxiously": 23403, + "lark": 23404, + "propellers": 23405, + "chichester": 23406, + "jock": 23407, + "ev": 23408, + "2a": 23409, + "##holding": 23410, + "credible": 23411, + "recounts": 23412, + "tori": 23413, + "loyalist": 23414, + "abduction": 23415, + "##hoot": 23416, + "##redo": 23417, + "nepali": 23418, + "##mite": 23419, + "ventral": 23420, + "tempting": 23421, + "##ango": 23422, + "##crats": 23423, + "steered": 23424, + "##wice": 23425, + "javelin": 23426, + "dipping": 23427, + "laborers": 23428, + "prentice": 23429, + "looming": 23430, + "titanium": 23431, + "##ː": 23432, + "badges": 23433, + "emir": 23434, + "tensor": 23435, + "##ntation": 23436, + "egyptians": 23437, + "rash": 23438, + "denies": 23439, + "hawthorne": 23440, + "lombard": 23441, + "showers": 23442, + "wehrmacht": 23443, + "dietary": 23444, + "trojan": 23445, + "##reus": 23446, + "welles": 23447, + "executing": 23448, + "horseshoe": 23449, + "lifeboat": 23450, + "##lak": 23451, + "elsa": 23452, + "infirmary": 23453, + "nearing": 23454, + "roberta": 23455, + "boyer": 23456, + "mutter": 23457, + "trillion": 23458, + "joanne": 23459, + "##fine": 23460, + "##oked": 23461, + "sinks": 23462, + "vortex": 23463, + "uruguayan": 23464, + "clasp": 23465, + "sirius": 23466, + "##block": 23467, + "accelerator": 23468, + "prohibit": 23469, + "sunken": 23470, + "byu": 23471, + "chronological": 23472, + "diplomats": 23473, + "ochreous": 23474, + "510": 23475, + "symmetrical": 23476, + "1644": 23477, + "maia": 23478, + "##tology": 23479, + "salts": 23480, + "reigns": 23481, + "atrocities": 23482, + "##ия": 23483, + "hess": 23484, + "bared": 23485, + "issn": 23486, + "##vyn": 23487, + "cater": 23488, + "saturated": 23489, + "##cycle": 23490, + "##isse": 23491, + "sable": 23492, + "voyager": 23493, + "dyer": 23494, + "yusuf": 23495, + "##inge": 23496, + "fountains": 23497, + "wolff": 23498, + "##39": 23499, + "##nni": 23500, + "engraving": 23501, + "rollins": 23502, + "atheist": 23503, + "ominous": 23504, + "##ault": 23505, + "herr": 23506, + "chariot": 23507, + "martina": 23508, + "strung": 23509, + "##fell": 23510, + "##farlane": 23511, + "horrific": 23512, + "sahib": 23513, + "gazes": 23514, + "saetan": 23515, + "erased": 23516, + "ptolemy": 23517, + "##olic": 23518, + "flushing": 23519, + "lauderdale": 23520, + "analytic": 23521, + "##ices": 23522, + "530": 23523, + "navarro": 23524, + "beak": 23525, + "gorilla": 23526, + "herrera": 23527, + "broom": 23528, + "guadalupe": 23529, + "raiding": 23530, + "sykes": 23531, + "311": 23532, + "bsc": 23533, + "deliveries": 23534, + "1720": 23535, + "invasions": 23536, + "carmichael": 23537, + "tajikistan": 23538, + "thematic": 23539, + "ecumenical": 23540, + "sentiments": 23541, + "onstage": 23542, + "##rians": 23543, + "##brand": 23544, + "##sume": 23545, + "catastrophic": 23546, + "flanks": 23547, + "molten": 23548, + "##arns": 23549, + "waller": 23550, + "aimee": 23551, + "terminating": 23552, + "##icing": 23553, + "alternately": 23554, + "##oche": 23555, + "nehru": 23556, + "printers": 23557, + "outraged": 23558, + "##eving": 23559, + "empires": 23560, + "template": 23561, + "banners": 23562, + "repetitive": 23563, + "za": 23564, + "##oise": 23565, + "vegetarian": 23566, + "##tell": 23567, + "guiana": 23568, + "opt": 23569, + "cavendish": 23570, + "lucknow": 23571, + "synthesized": 23572, + "##hani": 23573, + "##mada": 23574, + "finalized": 23575, + "##ctable": 23576, + "fictitious": 23577, + "mayoral": 23578, + "unreliable": 23579, + "##enham": 23580, + "embracing": 23581, + "peppers": 23582, + "rbis": 23583, + "##chio": 23584, + "##neo": 23585, + "inhibition": 23586, + "slashed": 23587, + "togo": 23588, + "orderly": 23589, + "embroidered": 23590, + "safari": 23591, + "salty": 23592, + "236": 23593, + "barron": 23594, + "benito": 23595, + "totaled": 23596, + "##dak": 23597, + "pubs": 23598, + "simulated": 23599, + "caden": 23600, + "devin": 23601, + "tolkien": 23602, + "momma": 23603, + "welding": 23604, + "sesame": 23605, + "##ept": 23606, + "gottingen": 23607, + "hardness": 23608, + "630": 23609, + "shaman": 23610, + "temeraire": 23611, + "620": 23612, + "adequately": 23613, + "pediatric": 23614, + "##kit": 23615, + "ck": 23616, + "assertion": 23617, + "radicals": 23618, + "composure": 23619, + "cadence": 23620, + "seafood": 23621, + "beaufort": 23622, + "lazarus": 23623, + "mani": 23624, + "warily": 23625, + "cunning": 23626, + "kurdistan": 23627, + "249": 23628, + "cantata": 23629, + "##kir": 23630, + "ares": 23631, + "##41": 23632, + "##clusive": 23633, + "nape": 23634, + "townland": 23635, + "geared": 23636, + "insulted": 23637, + "flutter": 23638, + "boating": 23639, + "violate": 23640, + "draper": 23641, + "dumping": 23642, + "malmo": 23643, + "##hh": 23644, + "##romatic": 23645, + "firearm": 23646, + "alta": 23647, + "bono": 23648, + "obscured": 23649, + "##clave": 23650, + "exceeds": 23651, + "panorama": 23652, + "unbelievable": 23653, + "##train": 23654, + "preschool": 23655, + "##essed": 23656, + "disconnected": 23657, + "installing": 23658, + "rescuing": 23659, + "secretaries": 23660, + "accessibility": 23661, + "##castle": 23662, + "##drive": 23663, + "##ifice": 23664, + "##film": 23665, + "bouts": 23666, + "slug": 23667, + "waterway": 23668, + "mindanao": 23669, + "##buro": 23670, + "##ratic": 23671, + "halves": 23672, + "##ل": 23673, + "calming": 23674, + "liter": 23675, + "maternity": 23676, + "adorable": 23677, + "bragg": 23678, + "electrification": 23679, + "mcc": 23680, + "##dote": 23681, + "roxy": 23682, + "schizophrenia": 23683, + "##body": 23684, + "munoz": 23685, + "kaye": 23686, + "whaling": 23687, + "239": 23688, + "mil": 23689, + "tingling": 23690, + "tolerant": 23691, + "##ago": 23692, + "unconventional": 23693, + "volcanoes": 23694, + "##finder": 23695, + "deportivo": 23696, + "##llie": 23697, + "robson": 23698, + "kaufman": 23699, + "neuroscience": 23700, + "wai": 23701, + "deportation": 23702, + "masovian": 23703, + "scraping": 23704, + "converse": 23705, + "##bh": 23706, + "hacking": 23707, + "bulge": 23708, + "##oun": 23709, + "administratively": 23710, + "yao": 23711, + "580": 23712, + "amp": 23713, + "mammoth": 23714, + "booster": 23715, + "claremont": 23716, + "hooper": 23717, + "nomenclature": 23718, + "pursuits": 23719, + "mclaughlin": 23720, + "melinda": 23721, + "##sul": 23722, + "catfish": 23723, + "barclay": 23724, + "substrates": 23725, + "taxa": 23726, + "zee": 23727, + "originals": 23728, + "kimberly": 23729, + "packets": 23730, + "padma": 23731, + "##ality": 23732, + "borrowing": 23733, + "ostensibly": 23734, + "solvent": 23735, + "##bri": 23736, + "##genesis": 23737, + "##mist": 23738, + "lukas": 23739, + "shreveport": 23740, + "veracruz": 23741, + "##ь": 23742, + "##lou": 23743, + "##wives": 23744, + "cheney": 23745, + "tt": 23746, + "anatolia": 23747, + "hobbs": 23748, + "##zyn": 23749, + "cyclic": 23750, + "radiant": 23751, + "alistair": 23752, + "greenish": 23753, + "siena": 23754, + "dat": 23755, + "independents": 23756, + "##bation": 23757, + "conform": 23758, + "pieter": 23759, + "hyper": 23760, + "applicant": 23761, + "bradshaw": 23762, + "spores": 23763, + "telangana": 23764, + "vinci": 23765, + "inexpensive": 23766, + "nuclei": 23767, + "322": 23768, + "jang": 23769, + "nme": 23770, + "soho": 23771, + "spd": 23772, + "##ign": 23773, + "cradled": 23774, + "receptionist": 23775, + "pow": 23776, + "##43": 23777, + "##rika": 23778, + "fascism": 23779, + "##ifer": 23780, + "experimenting": 23781, + "##ading": 23782, + "##iec": 23783, + "##region": 23784, + "345": 23785, + "jocelyn": 23786, + "maris": 23787, + "stair": 23788, + "nocturnal": 23789, + "toro": 23790, + "constabulary": 23791, + "elgin": 23792, + "##kker": 23793, + "msc": 23794, + "##giving": 23795, + "##schen": 23796, + "##rase": 23797, + "doherty": 23798, + "doping": 23799, + "sarcastically": 23800, + "batter": 23801, + "maneuvers": 23802, + "##cano": 23803, + "##apple": 23804, + "##gai": 23805, + "##git": 23806, + "intrinsic": 23807, + "##nst": 23808, + "##stor": 23809, + "1753": 23810, + "showtime": 23811, + "cafes": 23812, + "gasps": 23813, + "lviv": 23814, + "ushered": 23815, + "##thed": 23816, + "fours": 23817, + "restart": 23818, + "astonishment": 23819, + "transmitting": 23820, + "flyer": 23821, + "shrugs": 23822, + "##sau": 23823, + "intriguing": 23824, + "cones": 23825, + "dictated": 23826, + "mushrooms": 23827, + "medial": 23828, + "##kovsky": 23829, + "##elman": 23830, + "escorting": 23831, + "gaped": 23832, + "##26": 23833, + "godfather": 23834, + "##door": 23835, + "##sell": 23836, + "djs": 23837, + "recaptured": 23838, + "timetable": 23839, + "vila": 23840, + "1710": 23841, + "3a": 23842, + "aerodrome": 23843, + "mortals": 23844, + "scientology": 23845, + "##orne": 23846, + "angelina": 23847, + "mag": 23848, + "convection": 23849, + "unpaid": 23850, + "insertion": 23851, + "intermittent": 23852, + "lego": 23853, + "##nated": 23854, + "endeavor": 23855, + "kota": 23856, + "pereira": 23857, + "##lz": 23858, + "304": 23859, + "bwv": 23860, + "glamorgan": 23861, + "insults": 23862, + "agatha": 23863, + "fey": 23864, + "##cend": 23865, + "fleetwood": 23866, + "mahogany": 23867, + "protruding": 23868, + "steamship": 23869, + "zeta": 23870, + "##arty": 23871, + "mcguire": 23872, + "suspense": 23873, + "##sphere": 23874, + "advising": 23875, + "urges": 23876, + "##wala": 23877, + "hurriedly": 23878, + "meteor": 23879, + "gilded": 23880, + "inline": 23881, + "arroyo": 23882, + "stalker": 23883, + "##oge": 23884, + "excitedly": 23885, + "revered": 23886, + "##cure": 23887, + "earle": 23888, + "introductory": 23889, + "##break": 23890, + "##ilde": 23891, + "mutants": 23892, + "puff": 23893, + "pulses": 23894, + "reinforcement": 23895, + "##haling": 23896, + "curses": 23897, + "lizards": 23898, + "stalk": 23899, + "correlated": 23900, + "##fixed": 23901, + "fallout": 23902, + "macquarie": 23903, + "##unas": 23904, + "bearded": 23905, + "denton": 23906, + "heaving": 23907, + "802": 23908, + "##ocation": 23909, + "winery": 23910, + "assign": 23911, + "dortmund": 23912, + "##lkirk": 23913, + "everest": 23914, + "invariant": 23915, + "charismatic": 23916, + "susie": 23917, + "##elling": 23918, + "bled": 23919, + "lesley": 23920, + "telegram": 23921, + "sumner": 23922, + "bk": 23923, + "##ogen": 23924, + "##к": 23925, + "wilcox": 23926, + "needy": 23927, + "colbert": 23928, + "duval": 23929, + "##iferous": 23930, + "##mbled": 23931, + "allotted": 23932, + "attends": 23933, + "imperative": 23934, + "##hita": 23935, + "replacements": 23936, + "hawker": 23937, + "##inda": 23938, + "insurgency": 23939, + "##zee": 23940, + "##eke": 23941, + "casts": 23942, + "##yla": 23943, + "680": 23944, + "ives": 23945, + "transitioned": 23946, + "##pack": 23947, + "##powering": 23948, + "authoritative": 23949, + "baylor": 23950, + "flex": 23951, + "cringed": 23952, + "plaintiffs": 23953, + "woodrow": 23954, + "##skie": 23955, + "drastic": 23956, + "ape": 23957, + "aroma": 23958, + "unfolded": 23959, + "commotion": 23960, + "nt": 23961, + "preoccupied": 23962, + "theta": 23963, + "routines": 23964, + "lasers": 23965, + "privatization": 23966, + "wand": 23967, + "domino": 23968, + "ek": 23969, + "clenching": 23970, + "nsa": 23971, + "strategically": 23972, + "showered": 23973, + "bile": 23974, + "handkerchief": 23975, + "pere": 23976, + "storing": 23977, + "christophe": 23978, + "insulting": 23979, + "316": 23980, + "nakamura": 23981, + "romani": 23982, + "asiatic": 23983, + "magdalena": 23984, + "palma": 23985, + "cruises": 23986, + "stripping": 23987, + "405": 23988, + "konstantin": 23989, + "soaring": 23990, + "##berman": 23991, + "colloquially": 23992, + "forerunner": 23993, + "havilland": 23994, + "incarcerated": 23995, + "parasites": 23996, + "sincerity": 23997, + "##utus": 23998, + "disks": 23999, + "plank": 24000, + "saigon": 24001, + "##ining": 24002, + "corbin": 24003, + "homo": 24004, + "ornaments": 24005, + "powerhouse": 24006, + "##tlement": 24007, + "chong": 24008, + "fastened": 24009, + "feasibility": 24010, + "idf": 24011, + "morphological": 24012, + "usable": 24013, + "##nish": 24014, + "##zuki": 24015, + "aqueduct": 24016, + "jaguars": 24017, + "keepers": 24018, + "##flies": 24019, + "aleksandr": 24020, + "faust": 24021, + "assigns": 24022, + "ewing": 24023, + "bacterium": 24024, + "hurled": 24025, + "tricky": 24026, + "hungarians": 24027, + "integers": 24028, + "wallis": 24029, + "321": 24030, + "yamaha": 24031, + "##isha": 24032, + "hushed": 24033, + "oblivion": 24034, + "aviator": 24035, + "evangelist": 24036, + "friars": 24037, + "##eller": 24038, + "monograph": 24039, + "ode": 24040, + "##nary": 24041, + "airplanes": 24042, + "labourers": 24043, + "charms": 24044, + "##nee": 24045, + "1661": 24046, + "hagen": 24047, + "tnt": 24048, + "rudder": 24049, + "fiesta": 24050, + "transcript": 24051, + "dorothea": 24052, + "ska": 24053, + "inhibitor": 24054, + "maccabi": 24055, + "retorted": 24056, + "raining": 24057, + "encompassed": 24058, + "clauses": 24059, + "menacing": 24060, + "1642": 24061, + "lineman": 24062, + "##gist": 24063, + "vamps": 24064, + "##ape": 24065, + "##dick": 24066, + "gloom": 24067, + "##rera": 24068, + "dealings": 24069, + "easing": 24070, + "seekers": 24071, + "##nut": 24072, + "##pment": 24073, + "helens": 24074, + "unmanned": 24075, + "##anu": 24076, + "##isson": 24077, + "basics": 24078, + "##amy": 24079, + "##ckman": 24080, + "adjustments": 24081, + "1688": 24082, + "brutality": 24083, + "horne": 24084, + "##zell": 24085, + "sui": 24086, + "##55": 24087, + "##mable": 24088, + "aggregator": 24089, + "##thal": 24090, + "rhino": 24091, + "##drick": 24092, + "##vira": 24093, + "counters": 24094, + "zoom": 24095, + "##01": 24096, + "##rting": 24097, + "mn": 24098, + "montenegrin": 24099, + "packard": 24100, + "##unciation": 24101, + "##♭": 24102, + "##kki": 24103, + "reclaim": 24104, + "scholastic": 24105, + "thugs": 24106, + "pulsed": 24107, + "##icia": 24108, + "syriac": 24109, + "quan": 24110, + "saddam": 24111, + "banda": 24112, + "kobe": 24113, + "blaming": 24114, + "buddies": 24115, + "dissent": 24116, + "##lusion": 24117, + "##usia": 24118, + "corbett": 24119, + "jaya": 24120, + "delle": 24121, + "erratic": 24122, + "lexie": 24123, + "##hesis": 24124, + "435": 24125, + "amiga": 24126, + "hermes": 24127, + "##pressing": 24128, + "##leen": 24129, + "chapels": 24130, + "gospels": 24131, + "jamal": 24132, + "##uating": 24133, + "compute": 24134, + "revolving": 24135, + "warp": 24136, + "##sso": 24137, + "##thes": 24138, + "armory": 24139, + "##eras": 24140, + "##gol": 24141, + "antrim": 24142, + "loki": 24143, + "##kow": 24144, + "##asian": 24145, + "##good": 24146, + "##zano": 24147, + "braid": 24148, + "handwriting": 24149, + "subdistrict": 24150, + "funky": 24151, + "pantheon": 24152, + "##iculate": 24153, + "concurrency": 24154, + "estimation": 24155, + "improper": 24156, + "juliana": 24157, + "##his": 24158, + "newcomers": 24159, + "johnstone": 24160, + "staten": 24161, + "communicated": 24162, + "##oco": 24163, + "##alle": 24164, + "sausage": 24165, + "stormy": 24166, + "##stered": 24167, + "##tters": 24168, + "superfamily": 24169, + "##grade": 24170, + "acidic": 24171, + "collateral": 24172, + "tabloid": 24173, + "##oped": 24174, + "##rza": 24175, + "bladder": 24176, + "austen": 24177, + "##ellant": 24178, + "mcgraw": 24179, + "##hay": 24180, + "hannibal": 24181, + "mein": 24182, + "aquino": 24183, + "lucifer": 24184, + "wo": 24185, + "badger": 24186, + "boar": 24187, + "cher": 24188, + "christensen": 24189, + "greenberg": 24190, + "interruption": 24191, + "##kken": 24192, + "jem": 24193, + "244": 24194, + "mocked": 24195, + "bottoms": 24196, + "cambridgeshire": 24197, + "##lide": 24198, + "sprawling": 24199, + "##bbly": 24200, + "eastwood": 24201, + "ghent": 24202, + "synth": 24203, + "##buck": 24204, + "advisers": 24205, + "##bah": 24206, + "nominally": 24207, + "hapoel": 24208, + "qu": 24209, + "daggers": 24210, + "estranged": 24211, + "fabricated": 24212, + "towels": 24213, + "vinnie": 24214, + "wcw": 24215, + "misunderstanding": 24216, + "anglia": 24217, + "nothin": 24218, + "unmistakable": 24219, + "##dust": 24220, + "##lova": 24221, + "chilly": 24222, + "marquette": 24223, + "truss": 24224, + "##edge": 24225, + "##erine": 24226, + "reece": 24227, + "##lty": 24228, + "##chemist": 24229, + "##connected": 24230, + "272": 24231, + "308": 24232, + "41st": 24233, + "bash": 24234, + "raion": 24235, + "waterfalls": 24236, + "##ump": 24237, + "##main": 24238, + "labyrinth": 24239, + "queue": 24240, + "theorist": 24241, + "##istle": 24242, + "bharatiya": 24243, + "flexed": 24244, + "soundtracks": 24245, + "rooney": 24246, + "leftist": 24247, + "patrolling": 24248, + "wharton": 24249, + "plainly": 24250, + "alleviate": 24251, + "eastman": 24252, + "schuster": 24253, + "topographic": 24254, + "engages": 24255, + "immensely": 24256, + "unbearable": 24257, + "fairchild": 24258, + "1620": 24259, + "dona": 24260, + "lurking": 24261, + "parisian": 24262, + "oliveira": 24263, + "ia": 24264, + "indictment": 24265, + "hahn": 24266, + "bangladeshi": 24267, + "##aster": 24268, + "vivo": 24269, + "##uming": 24270, + "##ential": 24271, + "antonia": 24272, + "expects": 24273, + "indoors": 24274, + "kildare": 24275, + "harlan": 24276, + "##logue": 24277, + "##ogenic": 24278, + "##sities": 24279, + "forgiven": 24280, + "##wat": 24281, + "childish": 24282, + "tavi": 24283, + "##mide": 24284, + "##orra": 24285, + "plausible": 24286, + "grimm": 24287, + "successively": 24288, + "scooted": 24289, + "##bola": 24290, + "##dget": 24291, + "##rith": 24292, + "spartans": 24293, + "emery": 24294, + "flatly": 24295, + "azure": 24296, + "epilogue": 24297, + "##wark": 24298, + "flourish": 24299, + "##iny": 24300, + "##tracted": 24301, + "##overs": 24302, + "##oshi": 24303, + "bestseller": 24304, + "distressed": 24305, + "receipt": 24306, + "spitting": 24307, + "hermit": 24308, + "topological": 24309, + "##cot": 24310, + "drilled": 24311, + "subunit": 24312, + "francs": 24313, + "##layer": 24314, + "eel": 24315, + "##fk": 24316, + "##itas": 24317, + "octopus": 24318, + "footprint": 24319, + "petitions": 24320, + "ufo": 24321, + "##say": 24322, + "##foil": 24323, + "interfering": 24324, + "leaking": 24325, + "palo": 24326, + "##metry": 24327, + "thistle": 24328, + "valiant": 24329, + "##pic": 24330, + "narayan": 24331, + "mcpherson": 24332, + "##fast": 24333, + "gonzales": 24334, + "##ym": 24335, + "##enne": 24336, + "dustin": 24337, + "novgorod": 24338, + "solos": 24339, + "##zman": 24340, + "doin": 24341, + "##raph": 24342, + "##patient": 24343, + "##meyer": 24344, + "soluble": 24345, + "ashland": 24346, + "cuffs": 24347, + "carole": 24348, + "pendleton": 24349, + "whistling": 24350, + "vassal": 24351, + "##river": 24352, + "deviation": 24353, + "revisited": 24354, + "constituents": 24355, + "rallied": 24356, + "rotate": 24357, + "loomed": 24358, + "##eil": 24359, + "##nting": 24360, + "amateurs": 24361, + "augsburg": 24362, + "auschwitz": 24363, + "crowns": 24364, + "skeletons": 24365, + "##cona": 24366, + "bonnet": 24367, + "257": 24368, + "dummy": 24369, + "globalization": 24370, + "simeon": 24371, + "sleeper": 24372, + "mandal": 24373, + "differentiated": 24374, + "##crow": 24375, + "##mare": 24376, + "milne": 24377, + "bundled": 24378, + "exasperated": 24379, + "talmud": 24380, + "owes": 24381, + "segregated": 24382, + "##feng": 24383, + "##uary": 24384, + "dentist": 24385, + "piracy": 24386, + "props": 24387, + "##rang": 24388, + "devlin": 24389, + "##torium": 24390, + "malicious": 24391, + "paws": 24392, + "##laid": 24393, + "dependency": 24394, + "##ergy": 24395, + "##fers": 24396, + "##enna": 24397, + "258": 24398, + "pistons": 24399, + "rourke": 24400, + "jed": 24401, + "grammatical": 24402, + "tres": 24403, + "maha": 24404, + "wig": 24405, + "512": 24406, + "ghostly": 24407, + "jayne": 24408, + "##achal": 24409, + "##creen": 24410, + "##ilis": 24411, + "##lins": 24412, + "##rence": 24413, + "designate": 24414, + "##with": 24415, + "arrogance": 24416, + "cambodian": 24417, + "clones": 24418, + "showdown": 24419, + "throttle": 24420, + "twain": 24421, + "##ception": 24422, + "lobes": 24423, + "metz": 24424, + "nagoya": 24425, + "335": 24426, + "braking": 24427, + "##furt": 24428, + "385": 24429, + "roaming": 24430, + "##minster": 24431, + "amin": 24432, + "crippled": 24433, + "##37": 24434, + "##llary": 24435, + "indifferent": 24436, + "hoffmann": 24437, + "idols": 24438, + "intimidating": 24439, + "1751": 24440, + "261": 24441, + "influenza": 24442, + "memo": 24443, + "onions": 24444, + "1748": 24445, + "bandage": 24446, + "consciously": 24447, + "##landa": 24448, + "##rage": 24449, + "clandestine": 24450, + "observes": 24451, + "swiped": 24452, + "tangle": 24453, + "##ener": 24454, + "##jected": 24455, + "##trum": 24456, + "##bill": 24457, + "##lta": 24458, + "hugs": 24459, + "congresses": 24460, + "josiah": 24461, + "spirited": 24462, + "##dek": 24463, + "humanist": 24464, + "managerial": 24465, + "filmmaking": 24466, + "inmate": 24467, + "rhymes": 24468, + "debuting": 24469, + "grimsby": 24470, + "ur": 24471, + "##laze": 24472, + "duplicate": 24473, + "vigor": 24474, + "##tf": 24475, + "republished": 24476, + "bolshevik": 24477, + "refurbishment": 24478, + "antibiotics": 24479, + "martini": 24480, + "methane": 24481, + "newscasts": 24482, + "royale": 24483, + "horizons": 24484, + "levant": 24485, + "iain": 24486, + "visas": 24487, + "##ischen": 24488, + "paler": 24489, + "##around": 24490, + "manifestation": 24491, + "snuck": 24492, + "alf": 24493, + "chop": 24494, + "futile": 24495, + "pedestal": 24496, + "rehab": 24497, + "##kat": 24498, + "bmg": 24499, + "kerman": 24500, + "res": 24501, + "fairbanks": 24502, + "jarrett": 24503, + "abstraction": 24504, + "saharan": 24505, + "##zek": 24506, + "1746": 24507, + "procedural": 24508, + "clearer": 24509, + "kincaid": 24510, + "sash": 24511, + "luciano": 24512, + "##ffey": 24513, + "crunch": 24514, + "helmut": 24515, + "##vara": 24516, + "revolutionaries": 24517, + "##tute": 24518, + "creamy": 24519, + "leach": 24520, + "##mmon": 24521, + "1747": 24522, + "permitting": 24523, + "nes": 24524, + "plight": 24525, + "wendell": 24526, + "##lese": 24527, + "contra": 24528, + "ts": 24529, + "clancy": 24530, + "ipa": 24531, + "mach": 24532, + "staples": 24533, + "autopsy": 24534, + "disturbances": 24535, + "nueva": 24536, + "karin": 24537, + "pontiac": 24538, + "##uding": 24539, + "proxy": 24540, + "venerable": 24541, + "haunt": 24542, + "leto": 24543, + "bergman": 24544, + "expands": 24545, + "##helm": 24546, + "wal": 24547, + "##pipe": 24548, + "canning": 24549, + "celine": 24550, + "cords": 24551, + "obesity": 24552, + "##enary": 24553, + "intrusion": 24554, + "planner": 24555, + "##phate": 24556, + "reasoned": 24557, + "sequencing": 24558, + "307": 24559, + "harrow": 24560, + "##chon": 24561, + "##dora": 24562, + "marred": 24563, + "mcintyre": 24564, + "repay": 24565, + "tarzan": 24566, + "darting": 24567, + "248": 24568, + "harrisburg": 24569, + "margarita": 24570, + "repulsed": 24571, + "##hur": 24572, + "##lding": 24573, + "belinda": 24574, + "hamburger": 24575, + "novo": 24576, + "compliant": 24577, + "runways": 24578, + "bingham": 24579, + "registrar": 24580, + "skyscraper": 24581, + "ic": 24582, + "cuthbert": 24583, + "improvisation": 24584, + "livelihood": 24585, + "##corp": 24586, + "##elial": 24587, + "admiring": 24588, + "##dened": 24589, + "sporadic": 24590, + "believer": 24591, + "casablanca": 24592, + "popcorn": 24593, + "##29": 24594, + "asha": 24595, + "shovel": 24596, + "##bek": 24597, + "##dice": 24598, + "coiled": 24599, + "tangible": 24600, + "##dez": 24601, + "casper": 24602, + "elsie": 24603, + "resin": 24604, + "tenderness": 24605, + "rectory": 24606, + "##ivision": 24607, + "avail": 24608, + "sonar": 24609, + "##mori": 24610, + "boutique": 24611, + "##dier": 24612, + "guerre": 24613, + "bathed": 24614, + "upbringing": 24615, + "vaulted": 24616, + "sandals": 24617, + "blessings": 24618, + "##naut": 24619, + "##utnant": 24620, + "1680": 24621, + "306": 24622, + "foxes": 24623, + "pia": 24624, + "corrosion": 24625, + "hesitantly": 24626, + "confederates": 24627, + "crystalline": 24628, + "footprints": 24629, + "shapiro": 24630, + "tirana": 24631, + "valentin": 24632, + "drones": 24633, + "45th": 24634, + "microscope": 24635, + "shipments": 24636, + "texted": 24637, + "inquisition": 24638, + "wry": 24639, + "guernsey": 24640, + "unauthorized": 24641, + "resigning": 24642, + "760": 24643, + "ripple": 24644, + "schubert": 24645, + "stu": 24646, + "reassure": 24647, + "felony": 24648, + "##ardo": 24649, + "brittle": 24650, + "koreans": 24651, + "##havan": 24652, + "##ives": 24653, + "dun": 24654, + "implicit": 24655, + "tyres": 24656, + "##aldi": 24657, + "##lth": 24658, + "magnolia": 24659, + "##ehan": 24660, + "##puri": 24661, + "##poulos": 24662, + "aggressively": 24663, + "fei": 24664, + "gr": 24665, + "familiarity": 24666, + "##poo": 24667, + "indicative": 24668, + "##trust": 24669, + "fundamentally": 24670, + "jimmie": 24671, + "overrun": 24672, + "395": 24673, + "anchors": 24674, + "moans": 24675, + "##opus": 24676, + "britannia": 24677, + "armagh": 24678, + "##ggle": 24679, + "purposely": 24680, + "seizing": 24681, + "##vao": 24682, + "bewildered": 24683, + "mundane": 24684, + "avoidance": 24685, + "cosmopolitan": 24686, + "geometridae": 24687, + "quartermaster": 24688, + "caf": 24689, + "415": 24690, + "chatter": 24691, + "engulfed": 24692, + "gleam": 24693, + "purge": 24694, + "##icate": 24695, + "juliette": 24696, + "jurisprudence": 24697, + "guerra": 24698, + "revisions": 24699, + "##bn": 24700, + "casimir": 24701, + "brew": 24702, + "##jm": 24703, + "1749": 24704, + "clapton": 24705, + "cloudy": 24706, + "conde": 24707, + "hermitage": 24708, + "278": 24709, + "simulations": 24710, + "torches": 24711, + "vincenzo": 24712, + "matteo": 24713, + "##rill": 24714, + "hidalgo": 24715, + "booming": 24716, + "westbound": 24717, + "accomplishment": 24718, + "tentacles": 24719, + "unaffected": 24720, + "##sius": 24721, + "annabelle": 24722, + "flopped": 24723, + "sloping": 24724, + "##litz": 24725, + "dreamer": 24726, + "interceptor": 24727, + "vu": 24728, + "##loh": 24729, + "consecration": 24730, + "copying": 24731, + "messaging": 24732, + "breaker": 24733, + "climates": 24734, + "hospitalized": 24735, + "1752": 24736, + "torino": 24737, + "afternoons": 24738, + "winfield": 24739, + "witnessing": 24740, + "##teacher": 24741, + "breakers": 24742, + "choirs": 24743, + "sawmill": 24744, + "coldly": 24745, + "##ege": 24746, + "sipping": 24747, + "haste": 24748, + "uninhabited": 24749, + "conical": 24750, + "bibliography": 24751, + "pamphlets": 24752, + "severn": 24753, + "edict": 24754, + "##oca": 24755, + "deux": 24756, + "illnesses": 24757, + "grips": 24758, + "##pl": 24759, + "rehearsals": 24760, + "sis": 24761, + "thinkers": 24762, + "tame": 24763, + "##keepers": 24764, + "1690": 24765, + "acacia": 24766, + "reformer": 24767, + "##osed": 24768, + "##rys": 24769, + "shuffling": 24770, + "##iring": 24771, + "##shima": 24772, + "eastbound": 24773, + "ionic": 24774, + "rhea": 24775, + "flees": 24776, + "littered": 24777, + "##oum": 24778, + "rocker": 24779, + "vomiting": 24780, + "groaning": 24781, + "champ": 24782, + "overwhelmingly": 24783, + "civilizations": 24784, + "paces": 24785, + "sloop": 24786, + "adoptive": 24787, + "##tish": 24788, + "skaters": 24789, + "##vres": 24790, + "aiding": 24791, + "mango": 24792, + "##joy": 24793, + "nikola": 24794, + "shriek": 24795, + "##ignon": 24796, + "pharmaceuticals": 24797, + "##mg": 24798, + "tuna": 24799, + "calvert": 24800, + "gustavo": 24801, + "stocked": 24802, + "yearbook": 24803, + "##urai": 24804, + "##mana": 24805, + "computed": 24806, + "subsp": 24807, + "riff": 24808, + "hanoi": 24809, + "kelvin": 24810, + "hamid": 24811, + "moors": 24812, + "pastures": 24813, + "summons": 24814, + "jihad": 24815, + "nectar": 24816, + "##ctors": 24817, + "bayou": 24818, + "untitled": 24819, + "pleasing": 24820, + "vastly": 24821, + "republics": 24822, + "intellect": 24823, + "##η": 24824, + "##ulio": 24825, + "##tou": 24826, + "crumbling": 24827, + "stylistic": 24828, + "sb": 24829, + "##ی": 24830, + "consolation": 24831, + "frequented": 24832, + "h₂o": 24833, + "walden": 24834, + "widows": 24835, + "##iens": 24836, + "404": 24837, + "##ignment": 24838, + "chunks": 24839, + "improves": 24840, + "288": 24841, + "grit": 24842, + "recited": 24843, + "##dev": 24844, + "snarl": 24845, + "sociological": 24846, + "##arte": 24847, + "##gul": 24848, + "inquired": 24849, + "##held": 24850, + "bruise": 24851, + "clube": 24852, + "consultancy": 24853, + "homogeneous": 24854, + "hornets": 24855, + "multiplication": 24856, + "pasta": 24857, + "prick": 24858, + "savior": 24859, + "##grin": 24860, + "##kou": 24861, + "##phile": 24862, + "yoon": 24863, + "##gara": 24864, + "grimes": 24865, + "vanishing": 24866, + "cheering": 24867, + "reacting": 24868, + "bn": 24869, + "distillery": 24870, + "##quisite": 24871, + "##vity": 24872, + "coe": 24873, + "dockyard": 24874, + "massif": 24875, + "##jord": 24876, + "escorts": 24877, + "voss": 24878, + "##valent": 24879, + "byte": 24880, + "chopped": 24881, + "hawke": 24882, + "illusions": 24883, + "workings": 24884, + "floats": 24885, + "##koto": 24886, + "##vac": 24887, + "kv": 24888, + "annapolis": 24889, + "madden": 24890, + "##onus": 24891, + "alvaro": 24892, + "noctuidae": 24893, + "##cum": 24894, + "##scopic": 24895, + "avenge": 24896, + "steamboat": 24897, + "forte": 24898, + "illustrates": 24899, + "erika": 24900, + "##trip": 24901, + "570": 24902, + "dew": 24903, + "nationalities": 24904, + "bran": 24905, + "manifested": 24906, + "thirsty": 24907, + "diversified": 24908, + "muscled": 24909, + "reborn": 24910, + "##standing": 24911, + "arson": 24912, + "##lessness": 24913, + "##dran": 24914, + "##logram": 24915, + "##boys": 24916, + "##kushima": 24917, + "##vious": 24918, + "willoughby": 24919, + "##phobia": 24920, + "286": 24921, + "alsace": 24922, + "dashboard": 24923, + "yuki": 24924, + "##chai": 24925, + "granville": 24926, + "myspace": 24927, + "publicized": 24928, + "tricked": 24929, + "##gang": 24930, + "adjective": 24931, + "##ater": 24932, + "relic": 24933, + "reorganisation": 24934, + "enthusiastically": 24935, + "indications": 24936, + "saxe": 24937, + "##lassified": 24938, + "consolidate": 24939, + "iec": 24940, + "padua": 24941, + "helplessly": 24942, + "ramps": 24943, + "renaming": 24944, + "regulars": 24945, + "pedestrians": 24946, + "accents": 24947, + "convicts": 24948, + "inaccurate": 24949, + "lowers": 24950, + "mana": 24951, + "##pati": 24952, + "barrie": 24953, + "bjp": 24954, + "outta": 24955, + "someplace": 24956, + "berwick": 24957, + "flanking": 24958, + "invoked": 24959, + "marrow": 24960, + "sparsely": 24961, + "excerpts": 24962, + "clothed": 24963, + "rei": 24964, + "##ginal": 24965, + "wept": 24966, + "##straße": 24967, + "##vish": 24968, + "alexa": 24969, + "excel": 24970, + "##ptive": 24971, + "membranes": 24972, + "aquitaine": 24973, + "creeks": 24974, + "cutler": 24975, + "sheppard": 24976, + "implementations": 24977, + "ns": 24978, + "##dur": 24979, + "fragrance": 24980, + "budge": 24981, + "concordia": 24982, + "magnesium": 24983, + "marcelo": 24984, + "##antes": 24985, + "gladly": 24986, + "vibrating": 24987, + "##rral": 24988, + "##ggles": 24989, + "montrose": 24990, + "##omba": 24991, + "lew": 24992, + "seamus": 24993, + "1630": 24994, + "cocky": 24995, + "##ament": 24996, + "##uen": 24997, + "bjorn": 24998, + "##rrick": 24999, + "fielder": 25000, + "fluttering": 25001, + "##lase": 25002, + "methyl": 25003, + "kimberley": 25004, + "mcdowell": 25005, + "reductions": 25006, + "barbed": 25007, + "##jic": 25008, + "##tonic": 25009, + "aeronautical": 25010, + "condensed": 25011, + "distracting": 25012, + "##promising": 25013, + "huffed": 25014, + "##cala": 25015, + "##sle": 25016, + "claudius": 25017, + "invincible": 25018, + "missy": 25019, + "pious": 25020, + "balthazar": 25021, + "ci": 25022, + "##lang": 25023, + "butte": 25024, + "combo": 25025, + "orson": 25026, + "##dication": 25027, + "myriad": 25028, + "1707": 25029, + "silenced": 25030, + "##fed": 25031, + "##rh": 25032, + "coco": 25033, + "netball": 25034, + "yourselves": 25035, + "##oza": 25036, + "clarify": 25037, + "heller": 25038, + "peg": 25039, + "durban": 25040, + "etudes": 25041, + "offender": 25042, + "roast": 25043, + "blackmail": 25044, + "curvature": 25045, + "##woods": 25046, + "vile": 25047, + "309": 25048, + "illicit": 25049, + "suriname": 25050, + "##linson": 25051, + "overture": 25052, + "1685": 25053, + "bubbling": 25054, + "gymnast": 25055, + "tucking": 25056, + "##mming": 25057, + "##ouin": 25058, + "maldives": 25059, + "##bala": 25060, + "gurney": 25061, + "##dda": 25062, + "##eased": 25063, + "##oides": 25064, + "backside": 25065, + "pinto": 25066, + "jars": 25067, + "racehorse": 25068, + "tending": 25069, + "##rdial": 25070, + "baronetcy": 25071, + "wiener": 25072, + "duly": 25073, + "##rke": 25074, + "barbarian": 25075, + "cupping": 25076, + "flawed": 25077, + "##thesis": 25078, + "bertha": 25079, + "pleistocene": 25080, + "puddle": 25081, + "swearing": 25082, + "##nob": 25083, + "##tically": 25084, + "fleeting": 25085, + "prostate": 25086, + "amulet": 25087, + "educating": 25088, + "##mined": 25089, + "##iti": 25090, + "##tler": 25091, + "75th": 25092, + "jens": 25093, + "respondents": 25094, + "analytics": 25095, + "cavaliers": 25096, + "papacy": 25097, + "raju": 25098, + "##iente": 25099, + "##ulum": 25100, + "##tip": 25101, + "funnel": 25102, + "271": 25103, + "disneyland": 25104, + "##lley": 25105, + "sociologist": 25106, + "##iam": 25107, + "2500": 25108, + "faulkner": 25109, + "louvre": 25110, + "menon": 25111, + "##dson": 25112, + "276": 25113, + "##ower": 25114, + "afterlife": 25115, + "mannheim": 25116, + "peptide": 25117, + "referees": 25118, + "comedians": 25119, + "meaningless": 25120, + "##anger": 25121, + "##laise": 25122, + "fabrics": 25123, + "hurley": 25124, + "renal": 25125, + "sleeps": 25126, + "##bour": 25127, + "##icle": 25128, + "breakout": 25129, + "kristin": 25130, + "roadside": 25131, + "animator": 25132, + "clover": 25133, + "disdain": 25134, + "unsafe": 25135, + "redesign": 25136, + "##urity": 25137, + "firth": 25138, + "barnsley": 25139, + "portage": 25140, + "reset": 25141, + "narrows": 25142, + "268": 25143, + "commandos": 25144, + "expansive": 25145, + "speechless": 25146, + "tubular": 25147, + "##lux": 25148, + "essendon": 25149, + "eyelashes": 25150, + "smashwords": 25151, + "##yad": 25152, + "##bang": 25153, + "##claim": 25154, + "craved": 25155, + "sprinted": 25156, + "chet": 25157, + "somme": 25158, + "astor": 25159, + "wrocław": 25160, + "orton": 25161, + "266": 25162, + "bane": 25163, + "##erving": 25164, + "##uing": 25165, + "mischief": 25166, + "##amps": 25167, + "##sund": 25168, + "scaling": 25169, + "terre": 25170, + "##xious": 25171, + "impairment": 25172, + "offenses": 25173, + "undermine": 25174, + "moi": 25175, + "soy": 25176, + "contiguous": 25177, + "arcadia": 25178, + "inuit": 25179, + "seam": 25180, + "##tops": 25181, + "macbeth": 25182, + "rebelled": 25183, + "##icative": 25184, + "##iot": 25185, + "590": 25186, + "elaborated": 25187, + "frs": 25188, + "uniformed": 25189, + "##dberg": 25190, + "259": 25191, + "powerless": 25192, + "priscilla": 25193, + "stimulated": 25194, + "980": 25195, + "qc": 25196, + "arboretum": 25197, + "frustrating": 25198, + "trieste": 25199, + "bullock": 25200, + "##nified": 25201, + "enriched": 25202, + "glistening": 25203, + "intern": 25204, + "##adia": 25205, + "locus": 25206, + "nouvelle": 25207, + "ollie": 25208, + "ike": 25209, + "lash": 25210, + "starboard": 25211, + "ee": 25212, + "tapestry": 25213, + "headlined": 25214, + "hove": 25215, + "rigged": 25216, + "##vite": 25217, + "pollock": 25218, + "##yme": 25219, + "thrive": 25220, + "clustered": 25221, + "cas": 25222, + "roi": 25223, + "gleamed": 25224, + "olympiad": 25225, + "##lino": 25226, + "pressured": 25227, + "regimes": 25228, + "##hosis": 25229, + "##lick": 25230, + "ripley": 25231, + "##ophone": 25232, + "kickoff": 25233, + "gallon": 25234, + "rockwell": 25235, + "##arable": 25236, + "crusader": 25237, + "glue": 25238, + "revolutions": 25239, + "scrambling": 25240, + "1714": 25241, + "grover": 25242, + "##jure": 25243, + "englishman": 25244, + "aztec": 25245, + "263": 25246, + "contemplating": 25247, + "coven": 25248, + "ipad": 25249, + "preach": 25250, + "triumphant": 25251, + "tufts": 25252, + "##esian": 25253, + "rotational": 25254, + "##phus": 25255, + "328": 25256, + "falkland": 25257, + "##brates": 25258, + "strewn": 25259, + "clarissa": 25260, + "rejoin": 25261, + "environmentally": 25262, + "glint": 25263, + "banded": 25264, + "drenched": 25265, + "moat": 25266, + "albanians": 25267, + "johor": 25268, + "rr": 25269, + "maestro": 25270, + "malley": 25271, + "nouveau": 25272, + "shaded": 25273, + "taxonomy": 25274, + "v6": 25275, + "adhere": 25276, + "bunk": 25277, + "airfields": 25278, + "##ritan": 25279, + "1741": 25280, + "encompass": 25281, + "remington": 25282, + "tran": 25283, + "##erative": 25284, + "amelie": 25285, + "mazda": 25286, + "friar": 25287, + "morals": 25288, + "passions": 25289, + "##zai": 25290, + "breadth": 25291, + "vis": 25292, + "##hae": 25293, + "argus": 25294, + "burnham": 25295, + "caressing": 25296, + "insider": 25297, + "rudd": 25298, + "##imov": 25299, + "##mini": 25300, + "##rso": 25301, + "italianate": 25302, + "murderous": 25303, + "textual": 25304, + "wainwright": 25305, + "armada": 25306, + "bam": 25307, + "weave": 25308, + "timer": 25309, + "##taken": 25310, + "##nh": 25311, + "fra": 25312, + "##crest": 25313, + "ardent": 25314, + "salazar": 25315, + "taps": 25316, + "tunis": 25317, + "##ntino": 25318, + "allegro": 25319, + "gland": 25320, + "philanthropic": 25321, + "##chester": 25322, + "implication": 25323, + "##optera": 25324, + "esq": 25325, + "judas": 25326, + "noticeably": 25327, + "wynn": 25328, + "##dara": 25329, + "inched": 25330, + "indexed": 25331, + "crises": 25332, + "villiers": 25333, + "bandit": 25334, + "royalties": 25335, + "patterned": 25336, + "cupboard": 25337, + "interspersed": 25338, + "accessory": 25339, + "isla": 25340, + "kendrick": 25341, + "entourage": 25342, + "stitches": 25343, + "##esthesia": 25344, + "headwaters": 25345, + "##ior": 25346, + "interlude": 25347, + "distraught": 25348, + "draught": 25349, + "1727": 25350, + "##basket": 25351, + "biased": 25352, + "sy": 25353, + "transient": 25354, + "triad": 25355, + "subgenus": 25356, + "adapting": 25357, + "kidd": 25358, + "shortstop": 25359, + "##umatic": 25360, + "dimly": 25361, + "spiked": 25362, + "mcleod": 25363, + "reprint": 25364, + "nellie": 25365, + "pretoria": 25366, + "windmill": 25367, + "##cek": 25368, + "singled": 25369, + "##mps": 25370, + "273": 25371, + "reunite": 25372, + "##orous": 25373, + "747": 25374, + "bankers": 25375, + "outlying": 25376, + "##omp": 25377, + "##ports": 25378, + "##tream": 25379, + "apologies": 25380, + "cosmetics": 25381, + "patsy": 25382, + "##deh": 25383, + "##ocks": 25384, + "##yson": 25385, + "bender": 25386, + "nantes": 25387, + "serene": 25388, + "##nad": 25389, + "lucha": 25390, + "mmm": 25391, + "323": 25392, + "##cius": 25393, + "##gli": 25394, + "cmll": 25395, + "coinage": 25396, + "nestor": 25397, + "juarez": 25398, + "##rook": 25399, + "smeared": 25400, + "sprayed": 25401, + "twitching": 25402, + "sterile": 25403, + "irina": 25404, + "embodied": 25405, + "juveniles": 25406, + "enveloped": 25407, + "miscellaneous": 25408, + "cancers": 25409, + "dq": 25410, + "gulped": 25411, + "luisa": 25412, + "crested": 25413, + "swat": 25414, + "donegal": 25415, + "ref": 25416, + "##anov": 25417, + "##acker": 25418, + "hearst": 25419, + "mercantile": 25420, + "##lika": 25421, + "doorbell": 25422, + "ua": 25423, + "vicki": 25424, + "##alla": 25425, + "##som": 25426, + "bilbao": 25427, + "psychologists": 25428, + "stryker": 25429, + "sw": 25430, + "horsemen": 25431, + "turkmenistan": 25432, + "wits": 25433, + "##national": 25434, + "anson": 25435, + "mathew": 25436, + "screenings": 25437, + "##umb": 25438, + "rihanna": 25439, + "##agne": 25440, + "##nessy": 25441, + "aisles": 25442, + "##iani": 25443, + "##osphere": 25444, + "hines": 25445, + "kenton": 25446, + "saskatoon": 25447, + "tasha": 25448, + "truncated": 25449, + "##champ": 25450, + "##itan": 25451, + "mildred": 25452, + "advises": 25453, + "fredrik": 25454, + "interpreting": 25455, + "inhibitors": 25456, + "##athi": 25457, + "spectroscopy": 25458, + "##hab": 25459, + "##kong": 25460, + "karim": 25461, + "panda": 25462, + "##oia": 25463, + "##nail": 25464, + "##vc": 25465, + "conqueror": 25466, + "kgb": 25467, + "leukemia": 25468, + "##dity": 25469, + "arrivals": 25470, + "cheered": 25471, + "pisa": 25472, + "phosphorus": 25473, + "shielded": 25474, + "##riated": 25475, + "mammal": 25476, + "unitarian": 25477, + "urgently": 25478, + "chopin": 25479, + "sanitary": 25480, + "##mission": 25481, + "spicy": 25482, + "drugged": 25483, + "hinges": 25484, + "##tort": 25485, + "tipping": 25486, + "trier": 25487, + "impoverished": 25488, + "westchester": 25489, + "##caster": 25490, + "267": 25491, + "epoch": 25492, + "nonstop": 25493, + "##gman": 25494, + "##khov": 25495, + "aromatic": 25496, + "centrally": 25497, + "cerro": 25498, + "##tively": 25499, + "##vio": 25500, + "billions": 25501, + "modulation": 25502, + "sedimentary": 25503, + "283": 25504, + "facilitating": 25505, + "outrageous": 25506, + "goldstein": 25507, + "##eak": 25508, + "##kt": 25509, + "ld": 25510, + "maitland": 25511, + "penultimate": 25512, + "pollard": 25513, + "##dance": 25514, + "fleets": 25515, + "spaceship": 25516, + "vertebrae": 25517, + "##nig": 25518, + "alcoholism": 25519, + "als": 25520, + "recital": 25521, + "##bham": 25522, + "##ference": 25523, + "##omics": 25524, + "m2": 25525, + "##bm": 25526, + "trois": 25527, + "##tropical": 25528, + "##в": 25529, + "commemorates": 25530, + "##meric": 25531, + "marge": 25532, + "##raction": 25533, + "1643": 25534, + "670": 25535, + "cosmetic": 25536, + "ravaged": 25537, + "##ige": 25538, + "catastrophe": 25539, + "eng": 25540, + "##shida": 25541, + "albrecht": 25542, + "arterial": 25543, + "bellamy": 25544, + "decor": 25545, + "harmon": 25546, + "##rde": 25547, + "bulbs": 25548, + "synchronized": 25549, + "vito": 25550, + "easiest": 25551, + "shetland": 25552, + "shielding": 25553, + "wnba": 25554, + "##glers": 25555, + "##ssar": 25556, + "##riam": 25557, + "brianna": 25558, + "cumbria": 25559, + "##aceous": 25560, + "##rard": 25561, + "cores": 25562, + "thayer": 25563, + "##nsk": 25564, + "brood": 25565, + "hilltop": 25566, + "luminous": 25567, + "carts": 25568, + "keynote": 25569, + "larkin": 25570, + "logos": 25571, + "##cta": 25572, + "##ا": 25573, + "##mund": 25574, + "##quay": 25575, + "lilith": 25576, + "tinted": 25577, + "277": 25578, + "wrestle": 25579, + "mobilization": 25580, + "##uses": 25581, + "sequential": 25582, + "siam": 25583, + "bloomfield": 25584, + "takahashi": 25585, + "274": 25586, + "##ieving": 25587, + "presenters": 25588, + "ringo": 25589, + "blazed": 25590, + "witty": 25591, + "##oven": 25592, + "##ignant": 25593, + "devastation": 25594, + "haydn": 25595, + "harmed": 25596, + "newt": 25597, + "therese": 25598, + "##peed": 25599, + "gershwin": 25600, + "molina": 25601, + "rabbis": 25602, + "sudanese": 25603, + "001": 25604, + "innate": 25605, + "restarted": 25606, + "##sack": 25607, + "##fus": 25608, + "slices": 25609, + "wb": 25610, + "##shah": 25611, + "enroll": 25612, + "hypothetical": 25613, + "hysterical": 25614, + "1743": 25615, + "fabio": 25616, + "indefinite": 25617, + "warped": 25618, + "##hg": 25619, + "exchanging": 25620, + "525": 25621, + "unsuitable": 25622, + "##sboro": 25623, + "gallo": 25624, + "1603": 25625, + "bret": 25626, + "cobalt": 25627, + "homemade": 25628, + "##hunter": 25629, + "mx": 25630, + "operatives": 25631, + "##dhar": 25632, + "terraces": 25633, + "durable": 25634, + "latch": 25635, + "pens": 25636, + "whorls": 25637, + "##ctuated": 25638, + "##eaux": 25639, + "billing": 25640, + "ligament": 25641, + "succumbed": 25642, + "##gly": 25643, + "regulators": 25644, + "spawn": 25645, + "##brick": 25646, + "##stead": 25647, + "filmfare": 25648, + "rochelle": 25649, + "##nzo": 25650, + "1725": 25651, + "circumstance": 25652, + "saber": 25653, + "supplements": 25654, + "##nsky": 25655, + "##tson": 25656, + "crowe": 25657, + "wellesley": 25658, + "carrot": 25659, + "##9th": 25660, + "##movable": 25661, + "primate": 25662, + "drury": 25663, + "sincerely": 25664, + "topical": 25665, + "##mad": 25666, + "##rao": 25667, + "callahan": 25668, + "kyiv": 25669, + "smarter": 25670, + "tits": 25671, + "undo": 25672, + "##yeh": 25673, + "announcements": 25674, + "anthologies": 25675, + "barrio": 25676, + "nebula": 25677, + "##islaus": 25678, + "##shaft": 25679, + "##tyn": 25680, + "bodyguards": 25681, + "2021": 25682, + "assassinate": 25683, + "barns": 25684, + "emmett": 25685, + "scully": 25686, + "##mah": 25687, + "##yd": 25688, + "##eland": 25689, + "##tino": 25690, + "##itarian": 25691, + "demoted": 25692, + "gorman": 25693, + "lashed": 25694, + "prized": 25695, + "adventist": 25696, + "writ": 25697, + "##gui": 25698, + "alla": 25699, + "invertebrates": 25700, + "##ausen": 25701, + "1641": 25702, + "amman": 25703, + "1742": 25704, + "align": 25705, + "healy": 25706, + "redistribution": 25707, + "##gf": 25708, + "##rize": 25709, + "insulation": 25710, + "##drop": 25711, + "adherents": 25712, + "hezbollah": 25713, + "vitro": 25714, + "ferns": 25715, + "yanking": 25716, + "269": 25717, + "php": 25718, + "registering": 25719, + "uppsala": 25720, + "cheerleading": 25721, + "confines": 25722, + "mischievous": 25723, + "tully": 25724, + "##ross": 25725, + "49th": 25726, + "docked": 25727, + "roam": 25728, + "stipulated": 25729, + "pumpkin": 25730, + "##bry": 25731, + "prompt": 25732, + "##ezer": 25733, + "blindly": 25734, + "shuddering": 25735, + "craftsmen": 25736, + "frail": 25737, + "scented": 25738, + "katharine": 25739, + "scramble": 25740, + "shaggy": 25741, + "sponge": 25742, + "helix": 25743, + "zaragoza": 25744, + "279": 25745, + "##52": 25746, + "43rd": 25747, + "backlash": 25748, + "fontaine": 25749, + "seizures": 25750, + "posse": 25751, + "cowan": 25752, + "nonfiction": 25753, + "telenovela": 25754, + "wwii": 25755, + "hammered": 25756, + "undone": 25757, + "##gpur": 25758, + "encircled": 25759, + "irs": 25760, + "##ivation": 25761, + "artefacts": 25762, + "oneself": 25763, + "searing": 25764, + "smallpox": 25765, + "##belle": 25766, + "##osaurus": 25767, + "shandong": 25768, + "breached": 25769, + "upland": 25770, + "blushing": 25771, + "rankin": 25772, + "infinitely": 25773, + "psyche": 25774, + "tolerated": 25775, + "docking": 25776, + "evicted": 25777, + "##col": 25778, + "unmarked": 25779, + "##lving": 25780, + "gnome": 25781, + "lettering": 25782, + "litres": 25783, + "musique": 25784, + "##oint": 25785, + "benevolent": 25786, + "##jal": 25787, + "blackened": 25788, + "##anna": 25789, + "mccall": 25790, + "racers": 25791, + "tingle": 25792, + "##ocene": 25793, + "##orestation": 25794, + "introductions": 25795, + "radically": 25796, + "292": 25797, + "##hiff": 25798, + "##باد": 25799, + "1610": 25800, + "1739": 25801, + "munchen": 25802, + "plead": 25803, + "##nka": 25804, + "condo": 25805, + "scissors": 25806, + "##sight": 25807, + "##tens": 25808, + "apprehension": 25809, + "##cey": 25810, + "##yin": 25811, + "hallmark": 25812, + "watering": 25813, + "formulas": 25814, + "sequels": 25815, + "##llas": 25816, + "aggravated": 25817, + "bae": 25818, + "commencing": 25819, + "##building": 25820, + "enfield": 25821, + "prohibits": 25822, + "marne": 25823, + "vedic": 25824, + "civilized": 25825, + "euclidean": 25826, + "jagger": 25827, + "beforehand": 25828, + "blasts": 25829, + "dumont": 25830, + "##arney": 25831, + "##nem": 25832, + "740": 25833, + "conversions": 25834, + "hierarchical": 25835, + "rios": 25836, + "simulator": 25837, + "##dya": 25838, + "##lellan": 25839, + "hedges": 25840, + "oleg": 25841, + "thrusts": 25842, + "shadowed": 25843, + "darby": 25844, + "maximize": 25845, + "1744": 25846, + "gregorian": 25847, + "##nded": 25848, + "##routed": 25849, + "sham": 25850, + "unspecified": 25851, + "##hog": 25852, + "emory": 25853, + "factual": 25854, + "##smo": 25855, + "##tp": 25856, + "fooled": 25857, + "##rger": 25858, + "ortega": 25859, + "wellness": 25860, + "marlon": 25861, + "##oton": 25862, + "##urance": 25863, + "casket": 25864, + "keating": 25865, + "ley": 25866, + "enclave": 25867, + "##ayan": 25868, + "char": 25869, + "influencing": 25870, + "jia": 25871, + "##chenko": 25872, + "412": 25873, + "ammonia": 25874, + "erebidae": 25875, + "incompatible": 25876, + "violins": 25877, + "cornered": 25878, + "##arat": 25879, + "grooves": 25880, + "astronauts": 25881, + "columbian": 25882, + "rampant": 25883, + "fabrication": 25884, + "kyushu": 25885, + "mahmud": 25886, + "vanish": 25887, + "##dern": 25888, + "mesopotamia": 25889, + "##lete": 25890, + "ict": 25891, + "##rgen": 25892, + "caspian": 25893, + "kenji": 25894, + "pitted": 25895, + "##vered": 25896, + "999": 25897, + "grimace": 25898, + "roanoke": 25899, + "tchaikovsky": 25900, + "twinned": 25901, + "##analysis": 25902, + "##awan": 25903, + "xinjiang": 25904, + "arias": 25905, + "clemson": 25906, + "kazakh": 25907, + "sizable": 25908, + "1662": 25909, + "##khand": 25910, + "##vard": 25911, + "plunge": 25912, + "tatum": 25913, + "vittorio": 25914, + "##nden": 25915, + "cholera": 25916, + "##dana": 25917, + "##oper": 25918, + "bracing": 25919, + "indifference": 25920, + "projectile": 25921, + "superliga": 25922, + "##chee": 25923, + "realises": 25924, + "upgrading": 25925, + "299": 25926, + "porte": 25927, + "retribution": 25928, + "##vies": 25929, + "nk": 25930, + "stil": 25931, + "##resses": 25932, + "ama": 25933, + "bureaucracy": 25934, + "blackberry": 25935, + "bosch": 25936, + "testosterone": 25937, + "collapses": 25938, + "greer": 25939, + "##pathic": 25940, + "ioc": 25941, + "fifties": 25942, + "malls": 25943, + "##erved": 25944, + "bao": 25945, + "baskets": 25946, + "adolescents": 25947, + "siegfried": 25948, + "##osity": 25949, + "##tosis": 25950, + "mantra": 25951, + "detecting": 25952, + "existent": 25953, + "fledgling": 25954, + "##cchi": 25955, + "dissatisfied": 25956, + "gan": 25957, + "telecommunication": 25958, + "mingled": 25959, + "sobbed": 25960, + "6000": 25961, + "controversies": 25962, + "outdated": 25963, + "taxis": 25964, + "##raus": 25965, + "fright": 25966, + "slams": 25967, + "##lham": 25968, + "##fect": 25969, + "##tten": 25970, + "detectors": 25971, + "fetal": 25972, + "tanned": 25973, + "##uw": 25974, + "fray": 25975, + "goth": 25976, + "olympian": 25977, + "skipping": 25978, + "mandates": 25979, + "scratches": 25980, + "sheng": 25981, + "unspoken": 25982, + "hyundai": 25983, + "tracey": 25984, + "hotspur": 25985, + "restrictive": 25986, + "##buch": 25987, + "americana": 25988, + "mundo": 25989, + "##bari": 25990, + "burroughs": 25991, + "diva": 25992, + "vulcan": 25993, + "##6th": 25994, + "distinctions": 25995, + "thumping": 25996, + "##ngen": 25997, + "mikey": 25998, + "sheds": 25999, + "fide": 26000, + "rescues": 26001, + "springsteen": 26002, + "vested": 26003, + "valuation": 26004, + "##ece": 26005, + "##ely": 26006, + "pinnacle": 26007, + "rake": 26008, + "sylvie": 26009, + "##edo": 26010, + "almond": 26011, + "quivering": 26012, + "##irus": 26013, + "alteration": 26014, + "faltered": 26015, + "##wad": 26016, + "51st": 26017, + "hydra": 26018, + "ticked": 26019, + "##kato": 26020, + "recommends": 26021, + "##dicated": 26022, + "antigua": 26023, + "arjun": 26024, + "stagecoach": 26025, + "wilfred": 26026, + "trickle": 26027, + "pronouns": 26028, + "##pon": 26029, + "aryan": 26030, + "nighttime": 26031, + "##anian": 26032, + "gall": 26033, + "pea": 26034, + "stitch": 26035, + "##hei": 26036, + "leung": 26037, + "milos": 26038, + "##dini": 26039, + "eritrea": 26040, + "nexus": 26041, + "starved": 26042, + "snowfall": 26043, + "kant": 26044, + "parasitic": 26045, + "cot": 26046, + "discus": 26047, + "hana": 26048, + "strikers": 26049, + "appleton": 26050, + "kitchens": 26051, + "##erina": 26052, + "##partisan": 26053, + "##itha": 26054, + "##vius": 26055, + "disclose": 26056, + "metis": 26057, + "##channel": 26058, + "1701": 26059, + "tesla": 26060, + "##vera": 26061, + "fitch": 26062, + "1735": 26063, + "blooded": 26064, + "##tila": 26065, + "decimal": 26066, + "##tang": 26067, + "##bai": 26068, + "cyclones": 26069, + "eun": 26070, + "bottled": 26071, + "peas": 26072, + "pensacola": 26073, + "basha": 26074, + "bolivian": 26075, + "crabs": 26076, + "boil": 26077, + "lanterns": 26078, + "partridge": 26079, + "roofed": 26080, + "1645": 26081, + "necks": 26082, + "##phila": 26083, + "opined": 26084, + "patting": 26085, + "##kla": 26086, + "##lland": 26087, + "chuckles": 26088, + "volta": 26089, + "whereupon": 26090, + "##nche": 26091, + "devout": 26092, + "euroleague": 26093, + "suicidal": 26094, + "##dee": 26095, + "inherently": 26096, + "involuntary": 26097, + "knitting": 26098, + "nasser": 26099, + "##hide": 26100, + "puppets": 26101, + "colourful": 26102, + "courageous": 26103, + "southend": 26104, + "stills": 26105, + "miraculous": 26106, + "hodgson": 26107, + "richer": 26108, + "rochdale": 26109, + "ethernet": 26110, + "greta": 26111, + "uniting": 26112, + "prism": 26113, + "umm": 26114, + "##haya": 26115, + "##itical": 26116, + "##utation": 26117, + "deterioration": 26118, + "pointe": 26119, + "prowess": 26120, + "##ropriation": 26121, + "lids": 26122, + "scranton": 26123, + "billings": 26124, + "subcontinent": 26125, + "##koff": 26126, + "##scope": 26127, + "brute": 26128, + "kellogg": 26129, + "psalms": 26130, + "degraded": 26131, + "##vez": 26132, + "stanisław": 26133, + "##ructured": 26134, + "ferreira": 26135, + "pun": 26136, + "astonishing": 26137, + "gunnar": 26138, + "##yat": 26139, + "arya": 26140, + "prc": 26141, + "gottfried": 26142, + "##tight": 26143, + "excursion": 26144, + "##ographer": 26145, + "dina": 26146, + "##quil": 26147, + "##nare": 26148, + "huffington": 26149, + "illustrious": 26150, + "wilbur": 26151, + "gundam": 26152, + "verandah": 26153, + "##zard": 26154, + "naacp": 26155, + "##odle": 26156, + "constructive": 26157, + "fjord": 26158, + "kade": 26159, + "##naud": 26160, + "generosity": 26161, + "thrilling": 26162, + "baseline": 26163, + "cayman": 26164, + "frankish": 26165, + "plastics": 26166, + "accommodations": 26167, + "zoological": 26168, + "##fting": 26169, + "cedric": 26170, + "qb": 26171, + "motorized": 26172, + "##dome": 26173, + "##otted": 26174, + "squealed": 26175, + "tackled": 26176, + "canucks": 26177, + "budgets": 26178, + "situ": 26179, + "asthma": 26180, + "dail": 26181, + "gabled": 26182, + "grasslands": 26183, + "whimpered": 26184, + "writhing": 26185, + "judgments": 26186, + "##65": 26187, + "minnie": 26188, + "pv": 26189, + "##carbon": 26190, + "bananas": 26191, + "grille": 26192, + "domes": 26193, + "monique": 26194, + "odin": 26195, + "maguire": 26196, + "markham": 26197, + "tierney": 26198, + "##estra": 26199, + "##chua": 26200, + "libel": 26201, + "poke": 26202, + "speedy": 26203, + "atrium": 26204, + "laval": 26205, + "notwithstanding": 26206, + "##edly": 26207, + "fai": 26208, + "kala": 26209, + "##sur": 26210, + "robb": 26211, + "##sma": 26212, + "listings": 26213, + "luz": 26214, + "supplementary": 26215, + "tianjin": 26216, + "##acing": 26217, + "enzo": 26218, + "jd": 26219, + "ric": 26220, + "scanner": 26221, + "croats": 26222, + "transcribed": 26223, + "##49": 26224, + "arden": 26225, + "cv": 26226, + "##hair": 26227, + "##raphy": 26228, + "##lver": 26229, + "##uy": 26230, + "357": 26231, + "seventies": 26232, + "staggering": 26233, + "alam": 26234, + "horticultural": 26235, + "hs": 26236, + "regression": 26237, + "timbers": 26238, + "blasting": 26239, + "##ounded": 26240, + "montagu": 26241, + "manipulating": 26242, + "##cit": 26243, + "catalytic": 26244, + "1550": 26245, + "troopers": 26246, + "##meo": 26247, + "condemnation": 26248, + "fitzpatrick": 26249, + "##oire": 26250, + "##roved": 26251, + "inexperienced": 26252, + "1670": 26253, + "castes": 26254, + "##lative": 26255, + "outing": 26256, + "314": 26257, + "dubois": 26258, + "flicking": 26259, + "quarrel": 26260, + "ste": 26261, + "learners": 26262, + "1625": 26263, + "iq": 26264, + "whistled": 26265, + "##class": 26266, + "282": 26267, + "classify": 26268, + "tariffs": 26269, + "temperament": 26270, + "355": 26271, + "folly": 26272, + "liszt": 26273, + "##yles": 26274, + "immersed": 26275, + "jordanian": 26276, + "ceasefire": 26277, + "apparel": 26278, + "extras": 26279, + "maru": 26280, + "fished": 26281, + "##bio": 26282, + "harta": 26283, + "stockport": 26284, + "assortment": 26285, + "craftsman": 26286, + "paralysis": 26287, + "transmitters": 26288, + "##cola": 26289, + "blindness": 26290, + "##wk": 26291, + "fatally": 26292, + "proficiency": 26293, + "solemnly": 26294, + "##orno": 26295, + "repairing": 26296, + "amore": 26297, + "groceries": 26298, + "ultraviolet": 26299, + "##chase": 26300, + "schoolhouse": 26301, + "##tua": 26302, + "resurgence": 26303, + "nailed": 26304, + "##otype": 26305, + "##×": 26306, + "ruse": 26307, + "saliva": 26308, + "diagrams": 26309, + "##tructing": 26310, + "albans": 26311, + "rann": 26312, + "thirties": 26313, + "1b": 26314, + "antennas": 26315, + "hilarious": 26316, + "cougars": 26317, + "paddington": 26318, + "stats": 26319, + "##eger": 26320, + "breakaway": 26321, + "ipod": 26322, + "reza": 26323, + "authorship": 26324, + "prohibiting": 26325, + "scoffed": 26326, + "##etz": 26327, + "##ttle": 26328, + "conscription": 26329, + "defected": 26330, + "trondheim": 26331, + "##fires": 26332, + "ivanov": 26333, + "keenan": 26334, + "##adan": 26335, + "##ciful": 26336, + "##fb": 26337, + "##slow": 26338, + "locating": 26339, + "##ials": 26340, + "##tford": 26341, + "cadiz": 26342, + "basalt": 26343, + "blankly": 26344, + "interned": 26345, + "rags": 26346, + "rattling": 26347, + "##tick": 26348, + "carpathian": 26349, + "reassured": 26350, + "sync": 26351, + "bum": 26352, + "guildford": 26353, + "iss": 26354, + "staunch": 26355, + "##onga": 26356, + "astronomers": 26357, + "sera": 26358, + "sofie": 26359, + "emergencies": 26360, + "susquehanna": 26361, + "##heard": 26362, + "duc": 26363, + "mastery": 26364, + "vh1": 26365, + "williamsburg": 26366, + "bayer": 26367, + "buckled": 26368, + "craving": 26369, + "##khan": 26370, + "##rdes": 26371, + "bloomington": 26372, + "##write": 26373, + "alton": 26374, + "barbecue": 26375, + "##bians": 26376, + "justine": 26377, + "##hri": 26378, + "##ndt": 26379, + "delightful": 26380, + "smartphone": 26381, + "newtown": 26382, + "photon": 26383, + "retrieval": 26384, + "peugeot": 26385, + "hissing": 26386, + "##monium": 26387, + "##orough": 26388, + "flavors": 26389, + "lighted": 26390, + "relaunched": 26391, + "tainted": 26392, + "##games": 26393, + "##lysis": 26394, + "anarchy": 26395, + "microscopic": 26396, + "hopping": 26397, + "adept": 26398, + "evade": 26399, + "evie": 26400, + "##beau": 26401, + "inhibit": 26402, + "sinn": 26403, + "adjustable": 26404, + "hurst": 26405, + "intuition": 26406, + "wilton": 26407, + "cisco": 26408, + "44th": 26409, + "lawful": 26410, + "lowlands": 26411, + "stockings": 26412, + "thierry": 26413, + "##dalen": 26414, + "##hila": 26415, + "##nai": 26416, + "fates": 26417, + "prank": 26418, + "tb": 26419, + "maison": 26420, + "lobbied": 26421, + "provocative": 26422, + "1724": 26423, + "4a": 26424, + "utopia": 26425, + "##qual": 26426, + "carbonate": 26427, + "gujarati": 26428, + "purcell": 26429, + "##rford": 26430, + "curtiss": 26431, + "##mei": 26432, + "overgrown": 26433, + "arenas": 26434, + "mediation": 26435, + "swallows": 26436, + "##rnik": 26437, + "respectful": 26438, + "turnbull": 26439, + "##hedron": 26440, + "##hope": 26441, + "alyssa": 26442, + "ozone": 26443, + "##ʻi": 26444, + "ami": 26445, + "gestapo": 26446, + "johansson": 26447, + "snooker": 26448, + "canteen": 26449, + "cuff": 26450, + "declines": 26451, + "empathy": 26452, + "stigma": 26453, + "##ags": 26454, + "##iner": 26455, + "##raine": 26456, + "taxpayers": 26457, + "gui": 26458, + "volga": 26459, + "##wright": 26460, + "##copic": 26461, + "lifespan": 26462, + "overcame": 26463, + "tattooed": 26464, + "enactment": 26465, + "giggles": 26466, + "##ador": 26467, + "##camp": 26468, + "barrington": 26469, + "bribe": 26470, + "obligatory": 26471, + "orbiting": 26472, + "peng": 26473, + "##enas": 26474, + "elusive": 26475, + "sucker": 26476, + "##vating": 26477, + "cong": 26478, + "hardship": 26479, + "empowered": 26480, + "anticipating": 26481, + "estrada": 26482, + "cryptic": 26483, + "greasy": 26484, + "detainees": 26485, + "planck": 26486, + "sudbury": 26487, + "plaid": 26488, + "dod": 26489, + "marriott": 26490, + "kayla": 26491, + "##ears": 26492, + "##vb": 26493, + "##zd": 26494, + "mortally": 26495, + "##hein": 26496, + "cognition": 26497, + "radha": 26498, + "319": 26499, + "liechtenstein": 26500, + "meade": 26501, + "richly": 26502, + "argyle": 26503, + "harpsichord": 26504, + "liberalism": 26505, + "trumpets": 26506, + "lauded": 26507, + "tyrant": 26508, + "salsa": 26509, + "tiled": 26510, + "lear": 26511, + "promoters": 26512, + "reused": 26513, + "slicing": 26514, + "trident": 26515, + "##chuk": 26516, + "##gami": 26517, + "##lka": 26518, + "cantor": 26519, + "checkpoint": 26520, + "##points": 26521, + "gaul": 26522, + "leger": 26523, + "mammalian": 26524, + "##tov": 26525, + "##aar": 26526, + "##schaft": 26527, + "doha": 26528, + "frenchman": 26529, + "nirvana": 26530, + "##vino": 26531, + "delgado": 26532, + "headlining": 26533, + "##eron": 26534, + "##iography": 26535, + "jug": 26536, + "tko": 26537, + "1649": 26538, + "naga": 26539, + "intersections": 26540, + "##jia": 26541, + "benfica": 26542, + "nawab": 26543, + "##suka": 26544, + "ashford": 26545, + "gulp": 26546, + "##deck": 26547, + "##vill": 26548, + "##rug": 26549, + "brentford": 26550, + "frazier": 26551, + "pleasures": 26552, + "dunne": 26553, + "potsdam": 26554, + "shenzhen": 26555, + "dentistry": 26556, + "##tec": 26557, + "flanagan": 26558, + "##dorff": 26559, + "##hear": 26560, + "chorale": 26561, + "dinah": 26562, + "prem": 26563, + "quezon": 26564, + "##rogated": 26565, + "relinquished": 26566, + "sutra": 26567, + "terri": 26568, + "##pani": 26569, + "flaps": 26570, + "##rissa": 26571, + "poly": 26572, + "##rnet": 26573, + "homme": 26574, + "aback": 26575, + "##eki": 26576, + "linger": 26577, + "womb": 26578, + "##kson": 26579, + "##lewood": 26580, + "doorstep": 26581, + "orthodoxy": 26582, + "threaded": 26583, + "westfield": 26584, + "##rval": 26585, + "dioceses": 26586, + "fridays": 26587, + "subsided": 26588, + "##gata": 26589, + "loyalists": 26590, + "##biotic": 26591, + "##ettes": 26592, + "letterman": 26593, + "lunatic": 26594, + "prelate": 26595, + "tenderly": 26596, + "invariably": 26597, + "souza": 26598, + "thug": 26599, + "winslow": 26600, + "##otide": 26601, + "furlongs": 26602, + "gogh": 26603, + "jeopardy": 26604, + "##runa": 26605, + "pegasus": 26606, + "##umble": 26607, + "humiliated": 26608, + "standalone": 26609, + "tagged": 26610, + "##roller": 26611, + "freshmen": 26612, + "klan": 26613, + "##bright": 26614, + "attaining": 26615, + "initiating": 26616, + "transatlantic": 26617, + "logged": 26618, + "viz": 26619, + "##uance": 26620, + "1723": 26621, + "combatants": 26622, + "intervening": 26623, + "stephane": 26624, + "chieftain": 26625, + "despised": 26626, + "grazed": 26627, + "317": 26628, + "cdc": 26629, + "galveston": 26630, + "godzilla": 26631, + "macro": 26632, + "simulate": 26633, + "##planes": 26634, + "parades": 26635, + "##esses": 26636, + "960": 26637, + "##ductive": 26638, + "##unes": 26639, + "equator": 26640, + "overdose": 26641, + "##cans": 26642, + "##hosh": 26643, + "##lifting": 26644, + "joshi": 26645, + "epstein": 26646, + "sonora": 26647, + "treacherous": 26648, + "aquatics": 26649, + "manchu": 26650, + "responsive": 26651, + "##sation": 26652, + "supervisory": 26653, + "##christ": 26654, + "##llins": 26655, + "##ibar": 26656, + "##balance": 26657, + "##uso": 26658, + "kimball": 26659, + "karlsruhe": 26660, + "mab": 26661, + "##emy": 26662, + "ignores": 26663, + "phonetic": 26664, + "reuters": 26665, + "spaghetti": 26666, + "820": 26667, + "almighty": 26668, + "danzig": 26669, + "rumbling": 26670, + "tombstone": 26671, + "designations": 26672, + "lured": 26673, + "outset": 26674, + "##felt": 26675, + "supermarkets": 26676, + "##wt": 26677, + "grupo": 26678, + "kei": 26679, + "kraft": 26680, + "susanna": 26681, + "##blood": 26682, + "comprehension": 26683, + "genealogy": 26684, + "##aghan": 26685, + "##verted": 26686, + "redding": 26687, + "##ythe": 26688, + "1722": 26689, + "bowing": 26690, + "##pore": 26691, + "##roi": 26692, + "lest": 26693, + "sharpened": 26694, + "fulbright": 26695, + "valkyrie": 26696, + "sikhs": 26697, + "##unds": 26698, + "swans": 26699, + "bouquet": 26700, + "merritt": 26701, + "##tage": 26702, + "##venting": 26703, + "commuted": 26704, + "redhead": 26705, + "clerks": 26706, + "leasing": 26707, + "cesare": 26708, + "dea": 26709, + "hazy": 26710, + "##vances": 26711, + "fledged": 26712, + "greenfield": 26713, + "servicemen": 26714, + "##gical": 26715, + "armando": 26716, + "blackout": 26717, + "dt": 26718, + "sagged": 26719, + "downloadable": 26720, + "intra": 26721, + "potion": 26722, + "pods": 26723, + "##4th": 26724, + "##mism": 26725, + "xp": 26726, + "attendants": 26727, + "gambia": 26728, + "stale": 26729, + "##ntine": 26730, + "plump": 26731, + "asteroids": 26732, + "rediscovered": 26733, + "buds": 26734, + "flea": 26735, + "hive": 26736, + "##neas": 26737, + "1737": 26738, + "classifications": 26739, + "debuts": 26740, + "##eles": 26741, + "olympus": 26742, + "scala": 26743, + "##eurs": 26744, + "##gno": 26745, + "##mute": 26746, + "hummed": 26747, + "sigismund": 26748, + "visuals": 26749, + "wiggled": 26750, + "await": 26751, + "pilasters": 26752, + "clench": 26753, + "sulfate": 26754, + "##ances": 26755, + "bellevue": 26756, + "enigma": 26757, + "trainee": 26758, + "snort": 26759, + "##sw": 26760, + "clouded": 26761, + "denim": 26762, + "##rank": 26763, + "##rder": 26764, + "churning": 26765, + "hartman": 26766, + "lodges": 26767, + "riches": 26768, + "sima": 26769, + "##missible": 26770, + "accountable": 26771, + "socrates": 26772, + "regulates": 26773, + "mueller": 26774, + "##cr": 26775, + "1702": 26776, + "avoids": 26777, + "solids": 26778, + "himalayas": 26779, + "nutrient": 26780, + "pup": 26781, + "##jevic": 26782, + "squat": 26783, + "fades": 26784, + "nec": 26785, + "##lates": 26786, + "##pina": 26787, + "##rona": 26788, + "##ου": 26789, + "privateer": 26790, + "tequila": 26791, + "##gative": 26792, + "##mpton": 26793, + "apt": 26794, + "hornet": 26795, + "immortals": 26796, + "##dou": 26797, + "asturias": 26798, + "cleansing": 26799, + "dario": 26800, + "##rries": 26801, + "##anta": 26802, + "etymology": 26803, + "servicing": 26804, + "zhejiang": 26805, + "##venor": 26806, + "##nx": 26807, + "horned": 26808, + "erasmus": 26809, + "rayon": 26810, + "relocating": 26811, + "£10": 26812, + "##bags": 26813, + "escalated": 26814, + "promenade": 26815, + "stubble": 26816, + "2010s": 26817, + "artisans": 26818, + "axial": 26819, + "liquids": 26820, + "mora": 26821, + "sho": 26822, + "yoo": 26823, + "##tsky": 26824, + "bundles": 26825, + "oldies": 26826, + "##nally": 26827, + "notification": 26828, + "bastion": 26829, + "##ths": 26830, + "sparkle": 26831, + "##lved": 26832, + "1728": 26833, + "leash": 26834, + "pathogen": 26835, + "highs": 26836, + "##hmi": 26837, + "immature": 26838, + "880": 26839, + "gonzaga": 26840, + "ignatius": 26841, + "mansions": 26842, + "monterrey": 26843, + "sweets": 26844, + "bryson": 26845, + "##loe": 26846, + "polled": 26847, + "regatta": 26848, + "brightest": 26849, + "pei": 26850, + "rosy": 26851, + "squid": 26852, + "hatfield": 26853, + "payroll": 26854, + "addict": 26855, + "meath": 26856, + "cornerback": 26857, + "heaviest": 26858, + "lodging": 26859, + "##mage": 26860, + "capcom": 26861, + "rippled": 26862, + "##sily": 26863, + "barnet": 26864, + "mayhem": 26865, + "ymca": 26866, + "snuggled": 26867, + "rousseau": 26868, + "##cute": 26869, + "blanchard": 26870, + "284": 26871, + "fragmented": 26872, + "leighton": 26873, + "chromosomes": 26874, + "risking": 26875, + "##md": 26876, + "##strel": 26877, + "##utter": 26878, + "corinne": 26879, + "coyotes": 26880, + "cynical": 26881, + "hiroshi": 26882, + "yeomanry": 26883, + "##ractive": 26884, + "ebook": 26885, + "grading": 26886, + "mandela": 26887, + "plume": 26888, + "agustin": 26889, + "magdalene": 26890, + "##rkin": 26891, + "bea": 26892, + "femme": 26893, + "trafford": 26894, + "##coll": 26895, + "##lun": 26896, + "##tance": 26897, + "52nd": 26898, + "fourier": 26899, + "upton": 26900, + "##mental": 26901, + "camilla": 26902, + "gust": 26903, + "iihf": 26904, + "islamabad": 26905, + "longevity": 26906, + "##kala": 26907, + "feldman": 26908, + "netting": 26909, + "##rization": 26910, + "endeavour": 26911, + "foraging": 26912, + "mfa": 26913, + "orr": 26914, + "##open": 26915, + "greyish": 26916, + "contradiction": 26917, + "graz": 26918, + "##ruff": 26919, + "handicapped": 26920, + "marlene": 26921, + "tweed": 26922, + "oaxaca": 26923, + "spp": 26924, + "campos": 26925, + "miocene": 26926, + "pri": 26927, + "configured": 26928, + "cooks": 26929, + "pluto": 26930, + "cozy": 26931, + "pornographic": 26932, + "##entes": 26933, + "70th": 26934, + "fairness": 26935, + "glided": 26936, + "jonny": 26937, + "lynne": 26938, + "rounding": 26939, + "sired": 26940, + "##emon": 26941, + "##nist": 26942, + "remade": 26943, + "uncover": 26944, + "##mack": 26945, + "complied": 26946, + "lei": 26947, + "newsweek": 26948, + "##jured": 26949, + "##parts": 26950, + "##enting": 26951, + "##pg": 26952, + "293": 26953, + "finer": 26954, + "guerrillas": 26955, + "athenian": 26956, + "deng": 26957, + "disused": 26958, + "stepmother": 26959, + "accuse": 26960, + "gingerly": 26961, + "seduction": 26962, + "521": 26963, + "confronting": 26964, + "##walker": 26965, + "##going": 26966, + "gora": 26967, + "nostalgia": 26968, + "sabres": 26969, + "virginity": 26970, + "wrenched": 26971, + "##minated": 26972, + "syndication": 26973, + "wielding": 26974, + "eyre": 26975, + "##56": 26976, + "##gnon": 26977, + "##igny": 26978, + "behaved": 26979, + "taxpayer": 26980, + "sweeps": 26981, + "##growth": 26982, + "childless": 26983, + "gallant": 26984, + "##ywood": 26985, + "amplified": 26986, + "geraldine": 26987, + "scrape": 26988, + "##ffi": 26989, + "babylonian": 26990, + "fresco": 26991, + "##rdan": 26992, + "##kney": 26993, + "##position": 26994, + "1718": 26995, + "restricting": 26996, + "tack": 26997, + "fukuoka": 26998, + "osborn": 26999, + "selector": 27000, + "partnering": 27001, + "##dlow": 27002, + "318": 27003, + "gnu": 27004, + "kia": 27005, + "tak": 27006, + "whitley": 27007, + "gables": 27008, + "##54": 27009, + "##mania": 27010, + "mri": 27011, + "softness": 27012, + "immersion": 27013, + "##bots": 27014, + "##evsky": 27015, + "1713": 27016, + "chilling": 27017, + "insignificant": 27018, + "pcs": 27019, + "##uis": 27020, + "elites": 27021, + "lina": 27022, + "purported": 27023, + "supplemental": 27024, + "teaming": 27025, + "##americana": 27026, + "##dding": 27027, + "##inton": 27028, + "proficient": 27029, + "rouen": 27030, + "##nage": 27031, + "##rret": 27032, + "niccolo": 27033, + "selects": 27034, + "##bread": 27035, + "fluffy": 27036, + "1621": 27037, + "gruff": 27038, + "knotted": 27039, + "mukherjee": 27040, + "polgara": 27041, + "thrash": 27042, + "nicholls": 27043, + "secluded": 27044, + "smoothing": 27045, + "thru": 27046, + "corsica": 27047, + "loaf": 27048, + "whitaker": 27049, + "inquiries": 27050, + "##rrier": 27051, + "##kam": 27052, + "indochina": 27053, + "289": 27054, + "marlins": 27055, + "myles": 27056, + "peking": 27057, + "##tea": 27058, + "extracts": 27059, + "pastry": 27060, + "superhuman": 27061, + "connacht": 27062, + "vogel": 27063, + "##ditional": 27064, + "##het": 27065, + "##udged": 27066, + "##lash": 27067, + "gloss": 27068, + "quarries": 27069, + "refit": 27070, + "teaser": 27071, + "##alic": 27072, + "##gaon": 27073, + "20s": 27074, + "materialized": 27075, + "sling": 27076, + "camped": 27077, + "pickering": 27078, + "tung": 27079, + "tracker": 27080, + "pursuant": 27081, + "##cide": 27082, + "cranes": 27083, + "soc": 27084, + "##cini": 27085, + "##typical": 27086, + "##viere": 27087, + "anhalt": 27088, + "overboard": 27089, + "workout": 27090, + "chores": 27091, + "fares": 27092, + "orphaned": 27093, + "stains": 27094, + "##logie": 27095, + "fenton": 27096, + "surpassing": 27097, + "joyah": 27098, + "triggers": 27099, + "##itte": 27100, + "grandmaster": 27101, + "##lass": 27102, + "##lists": 27103, + "clapping": 27104, + "fraudulent": 27105, + "ledger": 27106, + "nagasaki": 27107, + "##cor": 27108, + "##nosis": 27109, + "##tsa": 27110, + "eucalyptus": 27111, + "tun": 27112, + "##icio": 27113, + "##rney": 27114, + "##tara": 27115, + "dax": 27116, + "heroism": 27117, + "ina": 27118, + "wrexham": 27119, + "onboard": 27120, + "unsigned": 27121, + "##dates": 27122, + "moshe": 27123, + "galley": 27124, + "winnie": 27125, + "droplets": 27126, + "exiles": 27127, + "praises": 27128, + "watered": 27129, + "noodles": 27130, + "##aia": 27131, + "fein": 27132, + "adi": 27133, + "leland": 27134, + "multicultural": 27135, + "stink": 27136, + "bingo": 27137, + "comets": 27138, + "erskine": 27139, + "modernized": 27140, + "canned": 27141, + "constraint": 27142, + "domestically": 27143, + "chemotherapy": 27144, + "featherweight": 27145, + "stifled": 27146, + "##mum": 27147, + "darkly": 27148, + "irresistible": 27149, + "refreshing": 27150, + "hasty": 27151, + "isolate": 27152, + "##oys": 27153, + "kitchener": 27154, + "planners": 27155, + "##wehr": 27156, + "cages": 27157, + "yarn": 27158, + "implant": 27159, + "toulon": 27160, + "elects": 27161, + "childbirth": 27162, + "yue": 27163, + "##lind": 27164, + "##lone": 27165, + "cn": 27166, + "rightful": 27167, + "sportsman": 27168, + "junctions": 27169, + "remodeled": 27170, + "specifies": 27171, + "##rgh": 27172, + "291": 27173, + "##oons": 27174, + "complimented": 27175, + "##urgent": 27176, + "lister": 27177, + "ot": 27178, + "##logic": 27179, + "bequeathed": 27180, + "cheekbones": 27181, + "fontana": 27182, + "gabby": 27183, + "##dial": 27184, + "amadeus": 27185, + "corrugated": 27186, + "maverick": 27187, + "resented": 27188, + "triangles": 27189, + "##hered": 27190, + "##usly": 27191, + "nazareth": 27192, + "tyrol": 27193, + "1675": 27194, + "assent": 27195, + "poorer": 27196, + "sectional": 27197, + "aegean": 27198, + "##cous": 27199, + "296": 27200, + "nylon": 27201, + "ghanaian": 27202, + "##egorical": 27203, + "##weig": 27204, + "cushions": 27205, + "forbid": 27206, + "fusiliers": 27207, + "obstruction": 27208, + "somerville": 27209, + "##scia": 27210, + "dime": 27211, + "earrings": 27212, + "elliptical": 27213, + "leyte": 27214, + "oder": 27215, + "polymers": 27216, + "timmy": 27217, + "atm": 27218, + "midtown": 27219, + "piloted": 27220, + "settles": 27221, + "continual": 27222, + "externally": 27223, + "mayfield": 27224, + "##uh": 27225, + "enrichment": 27226, + "henson": 27227, + "keane": 27228, + "persians": 27229, + "1733": 27230, + "benji": 27231, + "braden": 27232, + "pep": 27233, + "324": 27234, + "##efe": 27235, + "contenders": 27236, + "pepsi": 27237, + "valet": 27238, + "##isches": 27239, + "298": 27240, + "##asse": 27241, + "##earing": 27242, + "goofy": 27243, + "stroll": 27244, + "##amen": 27245, + "authoritarian": 27246, + "occurrences": 27247, + "adversary": 27248, + "ahmedabad": 27249, + "tangent": 27250, + "toppled": 27251, + "dorchester": 27252, + "1672": 27253, + "modernism": 27254, + "marxism": 27255, + "islamist": 27256, + "charlemagne": 27257, + "exponential": 27258, + "racks": 27259, + "unicode": 27260, + "brunette": 27261, + "mbc": 27262, + "pic": 27263, + "skirmish": 27264, + "##bund": 27265, + "##lad": 27266, + "##powered": 27267, + "##yst": 27268, + "hoisted": 27269, + "messina": 27270, + "shatter": 27271, + "##ctum": 27272, + "jedi": 27273, + "vantage": 27274, + "##music": 27275, + "##neil": 27276, + "clemens": 27277, + "mahmoud": 27278, + "corrupted": 27279, + "authentication": 27280, + "lowry": 27281, + "nils": 27282, + "##washed": 27283, + "omnibus": 27284, + "wounding": 27285, + "jillian": 27286, + "##itors": 27287, + "##opped": 27288, + "serialized": 27289, + "narcotics": 27290, + "handheld": 27291, + "##arm": 27292, + "##plicity": 27293, + "intersecting": 27294, + "stimulating": 27295, + "##onis": 27296, + "crate": 27297, + "fellowships": 27298, + "hemingway": 27299, + "casinos": 27300, + "climatic": 27301, + "fordham": 27302, + "copeland": 27303, + "drip": 27304, + "beatty": 27305, + "leaflets": 27306, + "robber": 27307, + "brothel": 27308, + "madeira": 27309, + "##hedral": 27310, + "sphinx": 27311, + "ultrasound": 27312, + "##vana": 27313, + "valor": 27314, + "forbade": 27315, + "leonid": 27316, + "villas": 27317, + "##aldo": 27318, + "duane": 27319, + "marquez": 27320, + "##cytes": 27321, + "disadvantaged": 27322, + "forearms": 27323, + "kawasaki": 27324, + "reacts": 27325, + "consular": 27326, + "lax": 27327, + "uncles": 27328, + "uphold": 27329, + "##hopper": 27330, + "concepcion": 27331, + "dorsey": 27332, + "lass": 27333, + "##izan": 27334, + "arching": 27335, + "passageway": 27336, + "1708": 27337, + "researches": 27338, + "tia": 27339, + "internationals": 27340, + "##graphs": 27341, + "##opers": 27342, + "distinguishes": 27343, + "javanese": 27344, + "divert": 27345, + "##uven": 27346, + "plotted": 27347, + "##listic": 27348, + "##rwin": 27349, + "##erik": 27350, + "##tify": 27351, + "affirmative": 27352, + "signifies": 27353, + "validation": 27354, + "##bson": 27355, + "kari": 27356, + "felicity": 27357, + "georgina": 27358, + "zulu": 27359, + "##eros": 27360, + "##rained": 27361, + "##rath": 27362, + "overcoming": 27363, + "##dot": 27364, + "argyll": 27365, + "##rbin": 27366, + "1734": 27367, + "chiba": 27368, + "ratification": 27369, + "windy": 27370, + "earls": 27371, + "parapet": 27372, + "##marks": 27373, + "hunan": 27374, + "pristine": 27375, + "astrid": 27376, + "punta": 27377, + "##gart": 27378, + "brodie": 27379, + "##kota": 27380, + "##oder": 27381, + "malaga": 27382, + "minerva": 27383, + "rouse": 27384, + "##phonic": 27385, + "bellowed": 27386, + "pagoda": 27387, + "portals": 27388, + "reclamation": 27389, + "##gur": 27390, + "##odies": 27391, + "##⁄₄": 27392, + "parentheses": 27393, + "quoting": 27394, + "allergic": 27395, + "palette": 27396, + "showcases": 27397, + "benefactor": 27398, + "heartland": 27399, + "nonlinear": 27400, + "##tness": 27401, + "bladed": 27402, + "cheerfully": 27403, + "scans": 27404, + "##ety": 27405, + "##hone": 27406, + "1666": 27407, + "girlfriends": 27408, + "pedersen": 27409, + "hiram": 27410, + "sous": 27411, + "##liche": 27412, + "##nator": 27413, + "1683": 27414, + "##nery": 27415, + "##orio": 27416, + "##umen": 27417, + "bobo": 27418, + "primaries": 27419, + "smiley": 27420, + "##cb": 27421, + "unearthed": 27422, + "uniformly": 27423, + "fis": 27424, + "metadata": 27425, + "1635": 27426, + "ind": 27427, + "##oted": 27428, + "recoil": 27429, + "##titles": 27430, + "##tura": 27431, + "##ια": 27432, + "406": 27433, + "hilbert": 27434, + "jamestown": 27435, + "mcmillan": 27436, + "tulane": 27437, + "seychelles": 27438, + "##frid": 27439, + "antics": 27440, + "coli": 27441, + "fated": 27442, + "stucco": 27443, + "##grants": 27444, + "1654": 27445, + "bulky": 27446, + "accolades": 27447, + "arrays": 27448, + "caledonian": 27449, + "carnage": 27450, + "optimism": 27451, + "puebla": 27452, + "##tative": 27453, + "##cave": 27454, + "enforcing": 27455, + "rotherham": 27456, + "seo": 27457, + "dunlop": 27458, + "aeronautics": 27459, + "chimed": 27460, + "incline": 27461, + "zoning": 27462, + "archduke": 27463, + "hellenistic": 27464, + "##oses": 27465, + "##sions": 27466, + "candi": 27467, + "thong": 27468, + "##ople": 27469, + "magnate": 27470, + "rustic": 27471, + "##rsk": 27472, + "projective": 27473, + "slant": 27474, + "##offs": 27475, + "danes": 27476, + "hollis": 27477, + "vocalists": 27478, + "##ammed": 27479, + "congenital": 27480, + "contend": 27481, + "gesellschaft": 27482, + "##ocating": 27483, + "##pressive": 27484, + "douglass": 27485, + "quieter": 27486, + "##cm": 27487, + "##kshi": 27488, + "howled": 27489, + "salim": 27490, + "spontaneously": 27491, + "townsville": 27492, + "buena": 27493, + "southport": 27494, + "##bold": 27495, + "kato": 27496, + "1638": 27497, + "faerie": 27498, + "stiffly": 27499, + "##vus": 27500, + "##rled": 27501, + "297": 27502, + "flawless": 27503, + "realising": 27504, + "taboo": 27505, + "##7th": 27506, + "bytes": 27507, + "straightening": 27508, + "356": 27509, + "jena": 27510, + "##hid": 27511, + "##rmin": 27512, + "cartwright": 27513, + "berber": 27514, + "bertram": 27515, + "soloists": 27516, + "411": 27517, + "noses": 27518, + "417": 27519, + "coping": 27520, + "fission": 27521, + "hardin": 27522, + "inca": 27523, + "##cen": 27524, + "1717": 27525, + "mobilized": 27526, + "vhf": 27527, + "##raf": 27528, + "biscuits": 27529, + "curate": 27530, + "##85": 27531, + "##anial": 27532, + "331": 27533, + "gaunt": 27534, + "neighbourhoods": 27535, + "1540": 27536, + "##abas": 27537, + "blanca": 27538, + "bypassed": 27539, + "sockets": 27540, + "behold": 27541, + "coincidentally": 27542, + "##bane": 27543, + "nara": 27544, + "shave": 27545, + "splinter": 27546, + "terrific": 27547, + "##arion": 27548, + "##erian": 27549, + "commonplace": 27550, + "juris": 27551, + "redwood": 27552, + "waistband": 27553, + "boxed": 27554, + "caitlin": 27555, + "fingerprints": 27556, + "jennie": 27557, + "naturalized": 27558, + "##ired": 27559, + "balfour": 27560, + "craters": 27561, + "jody": 27562, + "bungalow": 27563, + "hugely": 27564, + "quilt": 27565, + "glitter": 27566, + "pigeons": 27567, + "undertaker": 27568, + "bulging": 27569, + "constrained": 27570, + "goo": 27571, + "##sil": 27572, + "##akh": 27573, + "assimilation": 27574, + "reworked": 27575, + "##person": 27576, + "persuasion": 27577, + "##pants": 27578, + "felicia": 27579, + "##cliff": 27580, + "##ulent": 27581, + "1732": 27582, + "explodes": 27583, + "##dun": 27584, + "##inium": 27585, + "##zic": 27586, + "lyman": 27587, + "vulture": 27588, + "hog": 27589, + "overlook": 27590, + "begs": 27591, + "northwards": 27592, + "ow": 27593, + "spoil": 27594, + "##urer": 27595, + "fatima": 27596, + "favorably": 27597, + "accumulate": 27598, + "sargent": 27599, + "sorority": 27600, + "corresponded": 27601, + "dispersal": 27602, + "kochi": 27603, + "toned": 27604, + "##imi": 27605, + "##lita": 27606, + "internacional": 27607, + "newfound": 27608, + "##agger": 27609, + "##lynn": 27610, + "##rigue": 27611, + "booths": 27612, + "peanuts": 27613, + "##eborg": 27614, + "medicare": 27615, + "muriel": 27616, + "nur": 27617, + "##uram": 27618, + "crates": 27619, + "millennia": 27620, + "pajamas": 27621, + "worsened": 27622, + "##breakers": 27623, + "jimi": 27624, + "vanuatu": 27625, + "yawned": 27626, + "##udeau": 27627, + "carousel": 27628, + "##hony": 27629, + "hurdle": 27630, + "##ccus": 27631, + "##mounted": 27632, + "##pod": 27633, + "rv": 27634, + "##eche": 27635, + "airship": 27636, + "ambiguity": 27637, + "compulsion": 27638, + "recapture": 27639, + "##claiming": 27640, + "arthritis": 27641, + "##osomal": 27642, + "1667": 27643, + "asserting": 27644, + "ngc": 27645, + "sniffing": 27646, + "dade": 27647, + "discontent": 27648, + "glendale": 27649, + "ported": 27650, + "##amina": 27651, + "defamation": 27652, + "rammed": 27653, + "##scent": 27654, + "fling": 27655, + "livingstone": 27656, + "##fleet": 27657, + "875": 27658, + "##ppy": 27659, + "apocalyptic": 27660, + "comrade": 27661, + "lcd": 27662, + "##lowe": 27663, + "cessna": 27664, + "eine": 27665, + "persecuted": 27666, + "subsistence": 27667, + "demi": 27668, + "hoop": 27669, + "reliefs": 27670, + "710": 27671, + "coptic": 27672, + "progressing": 27673, + "stemmed": 27674, + "perpetrators": 27675, + "1665": 27676, + "priestess": 27677, + "##nio": 27678, + "dobson": 27679, + "ebony": 27680, + "rooster": 27681, + "itf": 27682, + "tortricidae": 27683, + "##bbon": 27684, + "##jian": 27685, + "cleanup": 27686, + "##jean": 27687, + "##øy": 27688, + "1721": 27689, + "eighties": 27690, + "taxonomic": 27691, + "holiness": 27692, + "##hearted": 27693, + "##spar": 27694, + "antilles": 27695, + "showcasing": 27696, + "stabilized": 27697, + "##nb": 27698, + "gia": 27699, + "mascara": 27700, + "michelangelo": 27701, + "dawned": 27702, + "##uria": 27703, + "##vinsky": 27704, + "extinguished": 27705, + "fitz": 27706, + "grotesque": 27707, + "£100": 27708, + "##fera": 27709, + "##loid": 27710, + "##mous": 27711, + "barges": 27712, + "neue": 27713, + "throbbed": 27714, + "cipher": 27715, + "johnnie": 27716, + "##a1": 27717, + "##mpt": 27718, + "outburst": 27719, + "##swick": 27720, + "spearheaded": 27721, + "administrations": 27722, + "c1": 27723, + "heartbreak": 27724, + "pixels": 27725, + "pleasantly": 27726, + "##enay": 27727, + "lombardy": 27728, + "plush": 27729, + "##nsed": 27730, + "bobbie": 27731, + "##hly": 27732, + "reapers": 27733, + "tremor": 27734, + "xiang": 27735, + "minogue": 27736, + "substantive": 27737, + "hitch": 27738, + "barak": 27739, + "##wyl": 27740, + "kwan": 27741, + "##encia": 27742, + "910": 27743, + "obscene": 27744, + "elegance": 27745, + "indus": 27746, + "surfer": 27747, + "bribery": 27748, + "conserve": 27749, + "##hyllum": 27750, + "##masters": 27751, + "horatio": 27752, + "##fat": 27753, + "apes": 27754, + "rebound": 27755, + "psychotic": 27756, + "##pour": 27757, + "iteration": 27758, + "##mium": 27759, + "##vani": 27760, + "botanic": 27761, + "horribly": 27762, + "antiques": 27763, + "dispose": 27764, + "paxton": 27765, + "##hli": 27766, + "##wg": 27767, + "timeless": 27768, + "1704": 27769, + "disregard": 27770, + "engraver": 27771, + "hounds": 27772, + "##bau": 27773, + "##version": 27774, + "looted": 27775, + "uno": 27776, + "facilitates": 27777, + "groans": 27778, + "masjid": 27779, + "rutland": 27780, + "antibody": 27781, + "disqualification": 27782, + "decatur": 27783, + "footballers": 27784, + "quake": 27785, + "slacks": 27786, + "48th": 27787, + "rein": 27788, + "scribe": 27789, + "stabilize": 27790, + "commits": 27791, + "exemplary": 27792, + "tho": 27793, + "##hort": 27794, + "##chison": 27795, + "pantry": 27796, + "traversed": 27797, + "##hiti": 27798, + "disrepair": 27799, + "identifiable": 27800, + "vibrated": 27801, + "baccalaureate": 27802, + "##nnis": 27803, + "csa": 27804, + "interviewing": 27805, + "##iensis": 27806, + "##raße": 27807, + "greaves": 27808, + "wealthiest": 27809, + "343": 27810, + "classed": 27811, + "jogged": 27812, + "£5": 27813, + "##58": 27814, + "##atal": 27815, + "illuminating": 27816, + "knicks": 27817, + "respecting": 27818, + "##uno": 27819, + "scrubbed": 27820, + "##iji": 27821, + "##dles": 27822, + "kruger": 27823, + "moods": 27824, + "growls": 27825, + "raider": 27826, + "silvia": 27827, + "chefs": 27828, + "kam": 27829, + "vr": 27830, + "cree": 27831, + "percival": 27832, + "##terol": 27833, + "gunter": 27834, + "counterattack": 27835, + "defiant": 27836, + "henan": 27837, + "ze": 27838, + "##rasia": 27839, + "##riety": 27840, + "equivalence": 27841, + "submissions": 27842, + "##fra": 27843, + "##thor": 27844, + "bautista": 27845, + "mechanically": 27846, + "##heater": 27847, + "cornice": 27848, + "herbal": 27849, + "templar": 27850, + "##mering": 27851, + "outputs": 27852, + "ruining": 27853, + "ligand": 27854, + "renumbered": 27855, + "extravagant": 27856, + "mika": 27857, + "blockbuster": 27858, + "eta": 27859, + "insurrection": 27860, + "##ilia": 27861, + "darkening": 27862, + "ferocious": 27863, + "pianos": 27864, + "strife": 27865, + "kinship": 27866, + "##aer": 27867, + "melee": 27868, + "##anor": 27869, + "##iste": 27870, + "##may": 27871, + "##oue": 27872, + "decidedly": 27873, + "weep": 27874, + "##jad": 27875, + "##missive": 27876, + "##ppel": 27877, + "354": 27878, + "puget": 27879, + "unease": 27880, + "##gnant": 27881, + "1629": 27882, + "hammering": 27883, + "kassel": 27884, + "ob": 27885, + "wessex": 27886, + "##lga": 27887, + "bromwich": 27888, + "egan": 27889, + "paranoia": 27890, + "utilization": 27891, + "##atable": 27892, + "##idad": 27893, + "contradictory": 27894, + "provoke": 27895, + "##ols": 27896, + "##ouring": 27897, + "##tangled": 27898, + "knesset": 27899, + "##very": 27900, + "##lette": 27901, + "plumbing": 27902, + "##sden": 27903, + "##¹": 27904, + "greensboro": 27905, + "occult": 27906, + "sniff": 27907, + "338": 27908, + "zev": 27909, + "beaming": 27910, + "gamer": 27911, + "haggard": 27912, + "mahal": 27913, + "##olt": 27914, + "##pins": 27915, + "mendes": 27916, + "utmost": 27917, + "briefing": 27918, + "gunnery": 27919, + "##gut": 27920, + "##pher": 27921, + "##zh": 27922, + "##rok": 27923, + "1679": 27924, + "khalifa": 27925, + "sonya": 27926, + "##boot": 27927, + "principals": 27928, + "urbana": 27929, + "wiring": 27930, + "##liffe": 27931, + "##minating": 27932, + "##rrado": 27933, + "dahl": 27934, + "nyu": 27935, + "skepticism": 27936, + "np": 27937, + "townspeople": 27938, + "ithaca": 27939, + "lobster": 27940, + "somethin": 27941, + "##fur": 27942, + "##arina": 27943, + "##−1": 27944, + "freighter": 27945, + "zimmerman": 27946, + "biceps": 27947, + "contractual": 27948, + "##herton": 27949, + "amend": 27950, + "hurrying": 27951, + "subconscious": 27952, + "##anal": 27953, + "336": 27954, + "meng": 27955, + "clermont": 27956, + "spawning": 27957, + "##eia": 27958, + "##lub": 27959, + "dignitaries": 27960, + "impetus": 27961, + "snacks": 27962, + "spotting": 27963, + "twigs": 27964, + "##bilis": 27965, + "##cz": 27966, + "##ouk": 27967, + "libertadores": 27968, + "nic": 27969, + "skylar": 27970, + "##aina": 27971, + "##firm": 27972, + "gustave": 27973, + "asean": 27974, + "##anum": 27975, + "dieter": 27976, + "legislatures": 27977, + "flirt": 27978, + "bromley": 27979, + "trolls": 27980, + "umar": 27981, + "##bbies": 27982, + "##tyle": 27983, + "blah": 27984, + "parc": 27985, + "bridgeport": 27986, + "crank": 27987, + "negligence": 27988, + "##nction": 27989, + "46th": 27990, + "constantin": 27991, + "molded": 27992, + "bandages": 27993, + "seriousness": 27994, + "00pm": 27995, + "siegel": 27996, + "carpets": 27997, + "compartments": 27998, + "upbeat": 27999, + "statehood": 28000, + "##dner": 28001, + "##edging": 28002, + "marko": 28003, + "730": 28004, + "platt": 28005, + "##hane": 28006, + "paving": 28007, + "##iy": 28008, + "1738": 28009, + "abbess": 28010, + "impatience": 28011, + "limousine": 28012, + "nbl": 28013, + "##talk": 28014, + "441": 28015, + "lucille": 28016, + "mojo": 28017, + "nightfall": 28018, + "robbers": 28019, + "##nais": 28020, + "karel": 28021, + "brisk": 28022, + "calves": 28023, + "replicate": 28024, + "ascribed": 28025, + "telescopes": 28026, + "##olf": 28027, + "intimidated": 28028, + "##reen": 28029, + "ballast": 28030, + "specialization": 28031, + "##sit": 28032, + "aerodynamic": 28033, + "caliphate": 28034, + "rainer": 28035, + "visionary": 28036, + "##arded": 28037, + "epsilon": 28038, + "##aday": 28039, + "##onte": 28040, + "aggregation": 28041, + "auditory": 28042, + "boosted": 28043, + "reunification": 28044, + "kathmandu": 28045, + "loco": 28046, + "robyn": 28047, + "402": 28048, + "acknowledges": 28049, + "appointing": 28050, + "humanoid": 28051, + "newell": 28052, + "redeveloped": 28053, + "restraints": 28054, + "##tained": 28055, + "barbarians": 28056, + "chopper": 28057, + "1609": 28058, + "italiana": 28059, + "##lez": 28060, + "##lho": 28061, + "investigates": 28062, + "wrestlemania": 28063, + "##anies": 28064, + "##bib": 28065, + "690": 28066, + "##falls": 28067, + "creaked": 28068, + "dragoons": 28069, + "gravely": 28070, + "minions": 28071, + "stupidity": 28072, + "volley": 28073, + "##harat": 28074, + "##week": 28075, + "musik": 28076, + "##eries": 28077, + "##uously": 28078, + "fungal": 28079, + "massimo": 28080, + "semantics": 28081, + "malvern": 28082, + "##ahl": 28083, + "##pee": 28084, + "discourage": 28085, + "embryo": 28086, + "imperialism": 28087, + "1910s": 28088, + "profoundly": 28089, + "##ddled": 28090, + "jiangsu": 28091, + "sparkled": 28092, + "stat": 28093, + "##holz": 28094, + "sweatshirt": 28095, + "tobin": 28096, + "##iction": 28097, + "sneered": 28098, + "##cheon": 28099, + "##oit": 28100, + "brit": 28101, + "causal": 28102, + "smyth": 28103, + "##neuve": 28104, + "diffuse": 28105, + "perrin": 28106, + "silvio": 28107, + "##ipes": 28108, + "##recht": 28109, + "detonated": 28110, + "iqbal": 28111, + "selma": 28112, + "##nism": 28113, + "##zumi": 28114, + "roasted": 28115, + "##riders": 28116, + "tay": 28117, + "##ados": 28118, + "##mament": 28119, + "##mut": 28120, + "##rud": 28121, + "840": 28122, + "completes": 28123, + "nipples": 28124, + "cfa": 28125, + "flavour": 28126, + "hirsch": 28127, + "##laus": 28128, + "calderon": 28129, + "sneakers": 28130, + "moravian": 28131, + "##ksha": 28132, + "1622": 28133, + "rq": 28134, + "294": 28135, + "##imeters": 28136, + "bodo": 28137, + "##isance": 28138, + "##pre": 28139, + "##ronia": 28140, + "anatomical": 28141, + "excerpt": 28142, + "##lke": 28143, + "dh": 28144, + "kunst": 28145, + "##tablished": 28146, + "##scoe": 28147, + "biomass": 28148, + "panted": 28149, + "unharmed": 28150, + "gael": 28151, + "housemates": 28152, + "montpellier": 28153, + "##59": 28154, + "coa": 28155, + "rodents": 28156, + "tonic": 28157, + "hickory": 28158, + "singleton": 28159, + "##taro": 28160, + "451": 28161, + "1719": 28162, + "aldo": 28163, + "breaststroke": 28164, + "dempsey": 28165, + "och": 28166, + "rocco": 28167, + "##cuit": 28168, + "merton": 28169, + "dissemination": 28170, + "midsummer": 28171, + "serials": 28172, + "##idi": 28173, + "haji": 28174, + "polynomials": 28175, + "##rdon": 28176, + "gs": 28177, + "enoch": 28178, + "prematurely": 28179, + "shutter": 28180, + "taunton": 28181, + "£3": 28182, + "##grating": 28183, + "##inates": 28184, + "archangel": 28185, + "harassed": 28186, + "##asco": 28187, + "326": 28188, + "archway": 28189, + "dazzling": 28190, + "##ecin": 28191, + "1736": 28192, + "sumo": 28193, + "wat": 28194, + "##kovich": 28195, + "1086": 28196, + "honneur": 28197, + "##ently": 28198, + "##nostic": 28199, + "##ttal": 28200, + "##idon": 28201, + "1605": 28202, + "403": 28203, + "1716": 28204, + "blogger": 28205, + "rents": 28206, + "##gnan": 28207, + "hires": 28208, + "##ikh": 28209, + "##dant": 28210, + "howie": 28211, + "##rons": 28212, + "handler": 28213, + "retracted": 28214, + "shocks": 28215, + "1632": 28216, + "arun": 28217, + "duluth": 28218, + "kepler": 28219, + "trumpeter": 28220, + "##lary": 28221, + "peeking": 28222, + "seasoned": 28223, + "trooper": 28224, + "##mara": 28225, + "laszlo": 28226, + "##iciencies": 28227, + "##rti": 28228, + "heterosexual": 28229, + "##inatory": 28230, + "##ssion": 28231, + "indira": 28232, + "jogging": 28233, + "##inga": 28234, + "##lism": 28235, + "beit": 28236, + "dissatisfaction": 28237, + "malice": 28238, + "##ately": 28239, + "nedra": 28240, + "peeling": 28241, + "##rgeon": 28242, + "47th": 28243, + "stadiums": 28244, + "475": 28245, + "vertigo": 28246, + "##ains": 28247, + "iced": 28248, + "restroom": 28249, + "##plify": 28250, + "##tub": 28251, + "illustrating": 28252, + "pear": 28253, + "##chner": 28254, + "##sibility": 28255, + "inorganic": 28256, + "rappers": 28257, + "receipts": 28258, + "watery": 28259, + "##kura": 28260, + "lucinda": 28261, + "##oulos": 28262, + "reintroduced": 28263, + "##8th": 28264, + "##tched": 28265, + "gracefully": 28266, + "saxons": 28267, + "nutritional": 28268, + "wastewater": 28269, + "rained": 28270, + "favourites": 28271, + "bedrock": 28272, + "fisted": 28273, + "hallways": 28274, + "likeness": 28275, + "upscale": 28276, + "##lateral": 28277, + "1580": 28278, + "blinds": 28279, + "prequel": 28280, + "##pps": 28281, + "##tama": 28282, + "deter": 28283, + "humiliating": 28284, + "restraining": 28285, + "tn": 28286, + "vents": 28287, + "1659": 28288, + "laundering": 28289, + "recess": 28290, + "rosary": 28291, + "tractors": 28292, + "coulter": 28293, + "federer": 28294, + "##ifiers": 28295, + "##plin": 28296, + "persistence": 28297, + "##quitable": 28298, + "geschichte": 28299, + "pendulum": 28300, + "quakers": 28301, + "##beam": 28302, + "bassett": 28303, + "pictorial": 28304, + "buffet": 28305, + "koln": 28306, + "##sitor": 28307, + "drills": 28308, + "reciprocal": 28309, + "shooters": 28310, + "##57": 28311, + "##cton": 28312, + "##tees": 28313, + "converge": 28314, + "pip": 28315, + "dmitri": 28316, + "donnelly": 28317, + "yamamoto": 28318, + "aqua": 28319, + "azores": 28320, + "demographics": 28321, + "hypnotic": 28322, + "spitfire": 28323, + "suspend": 28324, + "wryly": 28325, + "roderick": 28326, + "##rran": 28327, + "sebastien": 28328, + "##asurable": 28329, + "mavericks": 28330, + "##fles": 28331, + "##200": 28332, + "himalayan": 28333, + "prodigy": 28334, + "##iance": 28335, + "transvaal": 28336, + "demonstrators": 28337, + "handcuffs": 28338, + "dodged": 28339, + "mcnamara": 28340, + "sublime": 28341, + "1726": 28342, + "crazed": 28343, + "##efined": 28344, + "##till": 28345, + "ivo": 28346, + "pondered": 28347, + "reconciled": 28348, + "shrill": 28349, + "sava": 28350, + "##duk": 28351, + "bal": 28352, + "cad": 28353, + "heresy": 28354, + "jaipur": 28355, + "goran": 28356, + "##nished": 28357, + "341": 28358, + "lux": 28359, + "shelly": 28360, + "whitehall": 28361, + "##hre": 28362, + "israelis": 28363, + "peacekeeping": 28364, + "##wled": 28365, + "1703": 28366, + "demetrius": 28367, + "ousted": 28368, + "##arians": 28369, + "##zos": 28370, + "beale": 28371, + "anwar": 28372, + "backstroke": 28373, + "raged": 28374, + "shrinking": 28375, + "cremated": 28376, + "##yck": 28377, + "benign": 28378, + "towing": 28379, + "wadi": 28380, + "darmstadt": 28381, + "landfill": 28382, + "parana": 28383, + "soothe": 28384, + "colleen": 28385, + "sidewalks": 28386, + "mayfair": 28387, + "tumble": 28388, + "hepatitis": 28389, + "ferrer": 28390, + "superstructure": 28391, + "##gingly": 28392, + "##urse": 28393, + "##wee": 28394, + "anthropological": 28395, + "translators": 28396, + "##mies": 28397, + "closeness": 28398, + "hooves": 28399, + "##pw": 28400, + "mondays": 28401, + "##roll": 28402, + "##vita": 28403, + "landscaping": 28404, + "##urized": 28405, + "purification": 28406, + "sock": 28407, + "thorns": 28408, + "thwarted": 28409, + "jalan": 28410, + "tiberius": 28411, + "##taka": 28412, + "saline": 28413, + "##rito": 28414, + "confidently": 28415, + "khyber": 28416, + "sculptors": 28417, + "##ij": 28418, + "brahms": 28419, + "hammersmith": 28420, + "inspectors": 28421, + "battista": 28422, + "fivb": 28423, + "fragmentation": 28424, + "hackney": 28425, + "##uls": 28426, + "arresting": 28427, + "exercising": 28428, + "antoinette": 28429, + "bedfordshire": 28430, + "##zily": 28431, + "dyed": 28432, + "##hema": 28433, + "1656": 28434, + "racetrack": 28435, + "variability": 28436, + "##tique": 28437, + "1655": 28438, + "austrians": 28439, + "deteriorating": 28440, + "madman": 28441, + "theorists": 28442, + "aix": 28443, + "lehman": 28444, + "weathered": 28445, + "1731": 28446, + "decreed": 28447, + "eruptions": 28448, + "1729": 28449, + "flaw": 28450, + "quinlan": 28451, + "sorbonne": 28452, + "flutes": 28453, + "nunez": 28454, + "1711": 28455, + "adored": 28456, + "downwards": 28457, + "fable": 28458, + "rasped": 28459, + "1712": 28460, + "moritz": 28461, + "mouthful": 28462, + "renegade": 28463, + "shivers": 28464, + "stunts": 28465, + "dysfunction": 28466, + "restrain": 28467, + "translit": 28468, + "327": 28469, + "pancakes": 28470, + "##avio": 28471, + "##cision": 28472, + "##tray": 28473, + "351": 28474, + "vial": 28475, + "##lden": 28476, + "bain": 28477, + "##maid": 28478, + "##oxide": 28479, + "chihuahua": 28480, + "malacca": 28481, + "vimes": 28482, + "##rba": 28483, + "##rnier": 28484, + "1664": 28485, + "donnie": 28486, + "plaques": 28487, + "##ually": 28488, + "337": 28489, + "bangs": 28490, + "floppy": 28491, + "huntsville": 28492, + "loretta": 28493, + "nikolay": 28494, + "##otte": 28495, + "eater": 28496, + "handgun": 28497, + "ubiquitous": 28498, + "##hett": 28499, + "eras": 28500, + "zodiac": 28501, + "1634": 28502, + "##omorphic": 28503, + "1820s": 28504, + "##zog": 28505, + "cochran": 28506, + "##bula": 28507, + "##lithic": 28508, + "warring": 28509, + "##rada": 28510, + "dalai": 28511, + "excused": 28512, + "blazers": 28513, + "mcconnell": 28514, + "reeling": 28515, + "bot": 28516, + "este": 28517, + "##abi": 28518, + "geese": 28519, + "hoax": 28520, + "taxon": 28521, + "##bla": 28522, + "guitarists": 28523, + "##icon": 28524, + "condemning": 28525, + "hunts": 28526, + "inversion": 28527, + "moffat": 28528, + "taekwondo": 28529, + "##lvis": 28530, + "1624": 28531, + "stammered": 28532, + "##rest": 28533, + "##rzy": 28534, + "sousa": 28535, + "fundraiser": 28536, + "marylebone": 28537, + "navigable": 28538, + "uptown": 28539, + "cabbage": 28540, + "daniela": 28541, + "salman": 28542, + "shitty": 28543, + "whimper": 28544, + "##kian": 28545, + "##utive": 28546, + "programmers": 28547, + "protections": 28548, + "rm": 28549, + "##rmi": 28550, + "##rued": 28551, + "forceful": 28552, + "##enes": 28553, + "fuss": 28554, + "##tao": 28555, + "##wash": 28556, + "brat": 28557, + "oppressive": 28558, + "reykjavik": 28559, + "spartak": 28560, + "ticking": 28561, + "##inkles": 28562, + "##kiewicz": 28563, + "adolph": 28564, + "horst": 28565, + "maui": 28566, + "protege": 28567, + "straighten": 28568, + "cpc": 28569, + "landau": 28570, + "concourse": 28571, + "clements": 28572, + "resultant": 28573, + "##ando": 28574, + "imaginative": 28575, + "joo": 28576, + "reactivated": 28577, + "##rem": 28578, + "##ffled": 28579, + "##uising": 28580, + "consultative": 28581, + "##guide": 28582, + "flop": 28583, + "kaitlyn": 28584, + "mergers": 28585, + "parenting": 28586, + "somber": 28587, + "##vron": 28588, + "supervise": 28589, + "vidhan": 28590, + "##imum": 28591, + "courtship": 28592, + "exemplified": 28593, + "harmonies": 28594, + "medallist": 28595, + "refining": 28596, + "##rrow": 28597, + "##ка": 28598, + "amara": 28599, + "##hum": 28600, + "780": 28601, + "goalscorer": 28602, + "sited": 28603, + "overshadowed": 28604, + "rohan": 28605, + "displeasure": 28606, + "secretive": 28607, + "multiplied": 28608, + "osman": 28609, + "##orth": 28610, + "engravings": 28611, + "padre": 28612, + "##kali": 28613, + "##veda": 28614, + "miniatures": 28615, + "mis": 28616, + "##yala": 28617, + "clap": 28618, + "pali": 28619, + "rook": 28620, + "##cana": 28621, + "1692": 28622, + "57th": 28623, + "antennae": 28624, + "astro": 28625, + "oskar": 28626, + "1628": 28627, + "bulldog": 28628, + "crotch": 28629, + "hackett": 28630, + "yucatan": 28631, + "##sure": 28632, + "amplifiers": 28633, + "brno": 28634, + "ferrara": 28635, + "migrating": 28636, + "##gree": 28637, + "thanking": 28638, + "turing": 28639, + "##eza": 28640, + "mccann": 28641, + "ting": 28642, + "andersson": 28643, + "onslaught": 28644, + "gaines": 28645, + "ganga": 28646, + "incense": 28647, + "standardization": 28648, + "##mation": 28649, + "sentai": 28650, + "scuba": 28651, + "stuffing": 28652, + "turquoise": 28653, + "waivers": 28654, + "alloys": 28655, + "##vitt": 28656, + "regaining": 28657, + "vaults": 28658, + "##clops": 28659, + "##gizing": 28660, + "digger": 28661, + "furry": 28662, + "memorabilia": 28663, + "probing": 28664, + "##iad": 28665, + "payton": 28666, + "rec": 28667, + "deutschland": 28668, + "filippo": 28669, + "opaque": 28670, + "seamen": 28671, + "zenith": 28672, + "afrikaans": 28673, + "##filtration": 28674, + "disciplined": 28675, + "inspirational": 28676, + "##merie": 28677, + "banco": 28678, + "confuse": 28679, + "grafton": 28680, + "tod": 28681, + "##dgets": 28682, + "championed": 28683, + "simi": 28684, + "anomaly": 28685, + "biplane": 28686, + "##ceptive": 28687, + "electrode": 28688, + "##para": 28689, + "1697": 28690, + "cleavage": 28691, + "crossbow": 28692, + "swirl": 28693, + "informant": 28694, + "##lars": 28695, + "##osta": 28696, + "afi": 28697, + "bonfire": 28698, + "spec": 28699, + "##oux": 28700, + "lakeside": 28701, + "slump": 28702, + "##culus": 28703, + "##lais": 28704, + "##qvist": 28705, + "##rrigan": 28706, + "1016": 28707, + "facades": 28708, + "borg": 28709, + "inwardly": 28710, + "cervical": 28711, + "xl": 28712, + "pointedly": 28713, + "050": 28714, + "stabilization": 28715, + "##odon": 28716, + "chests": 28717, + "1699": 28718, + "hacked": 28719, + "ctv": 28720, + "orthogonal": 28721, + "suzy": 28722, + "##lastic": 28723, + "gaulle": 28724, + "jacobite": 28725, + "rearview": 28726, + "##cam": 28727, + "##erted": 28728, + "ashby": 28729, + "##drik": 28730, + "##igate": 28731, + "##mise": 28732, + "##zbek": 28733, + "affectionately": 28734, + "canine": 28735, + "disperse": 28736, + "latham": 28737, + "##istles": 28738, + "##ivar": 28739, + "spielberg": 28740, + "##orin": 28741, + "##idium": 28742, + "ezekiel": 28743, + "cid": 28744, + "##sg": 28745, + "durga": 28746, + "middletown": 28747, + "##cina": 28748, + "customized": 28749, + "frontiers": 28750, + "harden": 28751, + "##etano": 28752, + "##zzy": 28753, + "1604": 28754, + "bolsheviks": 28755, + "##66": 28756, + "coloration": 28757, + "yoko": 28758, + "##bedo": 28759, + "briefs": 28760, + "slabs": 28761, + "debra": 28762, + "liquidation": 28763, + "plumage": 28764, + "##oin": 28765, + "blossoms": 28766, + "dementia": 28767, + "subsidy": 28768, + "1611": 28769, + "proctor": 28770, + "relational": 28771, + "jerseys": 28772, + "parochial": 28773, + "ter": 28774, + "##ici": 28775, + "esa": 28776, + "peshawar": 28777, + "cavalier": 28778, + "loren": 28779, + "cpi": 28780, + "idiots": 28781, + "shamrock": 28782, + "1646": 28783, + "dutton": 28784, + "malabar": 28785, + "mustache": 28786, + "##endez": 28787, + "##ocytes": 28788, + "referencing": 28789, + "terminates": 28790, + "marche": 28791, + "yarmouth": 28792, + "##sop": 28793, + "acton": 28794, + "mated": 28795, + "seton": 28796, + "subtly": 28797, + "baptised": 28798, + "beige": 28799, + "extremes": 28800, + "jolted": 28801, + "kristina": 28802, + "telecast": 28803, + "##actic": 28804, + "safeguard": 28805, + "waldo": 28806, + "##baldi": 28807, + "##bular": 28808, + "endeavors": 28809, + "sloppy": 28810, + "subterranean": 28811, + "##ensburg": 28812, + "##itung": 28813, + "delicately": 28814, + "pigment": 28815, + "tq": 28816, + "##scu": 28817, + "1626": 28818, + "##ound": 28819, + "collisions": 28820, + "coveted": 28821, + "herds": 28822, + "##personal": 28823, + "##meister": 28824, + "##nberger": 28825, + "chopra": 28826, + "##ricting": 28827, + "abnormalities": 28828, + "defective": 28829, + "galician": 28830, + "lucie": 28831, + "##dilly": 28832, + "alligator": 28833, + "likened": 28834, + "##genase": 28835, + "burundi": 28836, + "clears": 28837, + "complexion": 28838, + "derelict": 28839, + "deafening": 28840, + "diablo": 28841, + "fingered": 28842, + "champaign": 28843, + "dogg": 28844, + "enlist": 28845, + "isotope": 28846, + "labeling": 28847, + "mrna": 28848, + "##erre": 28849, + "brilliance": 28850, + "marvelous": 28851, + "##ayo": 28852, + "1652": 28853, + "crawley": 28854, + "ether": 28855, + "footed": 28856, + "dwellers": 28857, + "deserts": 28858, + "hamish": 28859, + "rubs": 28860, + "warlock": 28861, + "skimmed": 28862, + "##lizer": 28863, + "870": 28864, + "buick": 28865, + "embark": 28866, + "heraldic": 28867, + "irregularities": 28868, + "##ajan": 28869, + "kiara": 28870, + "##kulam": 28871, + "##ieg": 28872, + "antigen": 28873, + "kowalski": 28874, + "##lge": 28875, + "oakley": 28876, + "visitation": 28877, + "##mbit": 28878, + "vt": 28879, + "##suit": 28880, + "1570": 28881, + "murderers": 28882, + "##miento": 28883, + "##rites": 28884, + "chimneys": 28885, + "##sling": 28886, + "condemn": 28887, + "custer": 28888, + "exchequer": 28889, + "havre": 28890, + "##ghi": 28891, + "fluctuations": 28892, + "##rations": 28893, + "dfb": 28894, + "hendricks": 28895, + "vaccines": 28896, + "##tarian": 28897, + "nietzsche": 28898, + "biking": 28899, + "juicy": 28900, + "##duced": 28901, + "brooding": 28902, + "scrolling": 28903, + "selangor": 28904, + "##ragan": 28905, + "352": 28906, + "annum": 28907, + "boomed": 28908, + "seminole": 28909, + "sugarcane": 28910, + "##dna": 28911, + "departmental": 28912, + "dismissing": 28913, + "innsbruck": 28914, + "arteries": 28915, + "ashok": 28916, + "batavia": 28917, + "daze": 28918, + "kun": 28919, + "overtook": 28920, + "##rga": 28921, + "##tlan": 28922, + "beheaded": 28923, + "gaddafi": 28924, + "holm": 28925, + "electronically": 28926, + "faulty": 28927, + "galilee": 28928, + "fractures": 28929, + "kobayashi": 28930, + "##lized": 28931, + "gunmen": 28932, + "magma": 28933, + "aramaic": 28934, + "mala": 28935, + "eastenders": 28936, + "inference": 28937, + "messengers": 28938, + "bf": 28939, + "##qu": 28940, + "407": 28941, + "bathrooms": 28942, + "##vere": 28943, + "1658": 28944, + "flashbacks": 28945, + "ideally": 28946, + "misunderstood": 28947, + "##jali": 28948, + "##weather": 28949, + "mendez": 28950, + "##grounds": 28951, + "505": 28952, + "uncanny": 28953, + "##iii": 28954, + "1709": 28955, + "friendships": 28956, + "##nbc": 28957, + "sacrament": 28958, + "accommodated": 28959, + "reiterated": 28960, + "logistical": 28961, + "pebbles": 28962, + "thumped": 28963, + "##escence": 28964, + "administering": 28965, + "decrees": 28966, + "drafts": 28967, + "##flight": 28968, + "##cased": 28969, + "##tula": 28970, + "futuristic": 28971, + "picket": 28972, + "intimidation": 28973, + "winthrop": 28974, + "##fahan": 28975, + "interfered": 28976, + "339": 28977, + "afar": 28978, + "francoise": 28979, + "morally": 28980, + "uta": 28981, + "cochin": 28982, + "croft": 28983, + "dwarfs": 28984, + "##bruck": 28985, + "##dents": 28986, + "##nami": 28987, + "biker": 28988, + "##hner": 28989, + "##meral": 28990, + "nano": 28991, + "##isen": 28992, + "##ometric": 28993, + "##pres": 28994, + "##ан": 28995, + "brightened": 28996, + "meek": 28997, + "parcels": 28998, + "securely": 28999, + "gunners": 29000, + "##jhl": 29001, + "##zko": 29002, + "agile": 29003, + "hysteria": 29004, + "##lten": 29005, + "##rcus": 29006, + "bukit": 29007, + "champs": 29008, + "chevy": 29009, + "cuckoo": 29010, + "leith": 29011, + "sadler": 29012, + "theologians": 29013, + "welded": 29014, + "##section": 29015, + "1663": 29016, + "jj": 29017, + "plurality": 29018, + "xander": 29019, + "##rooms": 29020, + "##formed": 29021, + "shredded": 29022, + "temps": 29023, + "intimately": 29024, + "pau": 29025, + "tormented": 29026, + "##lok": 29027, + "##stellar": 29028, + "1618": 29029, + "charred": 29030, + "ems": 29031, + "essen": 29032, + "##mmel": 29033, + "alarms": 29034, + "spraying": 29035, + "ascot": 29036, + "blooms": 29037, + "twinkle": 29038, + "##abia": 29039, + "##apes": 29040, + "internment": 29041, + "obsidian": 29042, + "##chaft": 29043, + "snoop": 29044, + "##dav": 29045, + "##ooping": 29046, + "malibu": 29047, + "##tension": 29048, + "quiver": 29049, + "##itia": 29050, + "hays": 29051, + "mcintosh": 29052, + "travers": 29053, + "walsall": 29054, + "##ffie": 29055, + "1623": 29056, + "beverley": 29057, + "schwarz": 29058, + "plunging": 29059, + "structurally": 29060, + "m3": 29061, + "rosenthal": 29062, + "vikram": 29063, + "##tsk": 29064, + "770": 29065, + "ghz": 29066, + "##onda": 29067, + "##tiv": 29068, + "chalmers": 29069, + "groningen": 29070, + "pew": 29071, + "reckon": 29072, + "unicef": 29073, + "##rvis": 29074, + "55th": 29075, + "##gni": 29076, + "1651": 29077, + "sulawesi": 29078, + "avila": 29079, + "cai": 29080, + "metaphysical": 29081, + "screwing": 29082, + "turbulence": 29083, + "##mberg": 29084, + "augusto": 29085, + "samba": 29086, + "56th": 29087, + "baffled": 29088, + "momentary": 29089, + "toxin": 29090, + "##urian": 29091, + "##wani": 29092, + "aachen": 29093, + "condoms": 29094, + "dali": 29095, + "steppe": 29096, + "##3d": 29097, + "##app": 29098, + "##oed": 29099, + "##year": 29100, + "adolescence": 29101, + "dauphin": 29102, + "electrically": 29103, + "inaccessible": 29104, + "microscopy": 29105, + "nikita": 29106, + "##ega": 29107, + "atv": 29108, + "##cel": 29109, + "##enter": 29110, + "##oles": 29111, + "##oteric": 29112, + "##ы": 29113, + "accountants": 29114, + "punishments": 29115, + "wrongly": 29116, + "bribes": 29117, + "adventurous": 29118, + "clinch": 29119, + "flinders": 29120, + "southland": 29121, + "##hem": 29122, + "##kata": 29123, + "gough": 29124, + "##ciency": 29125, + "lads": 29126, + "soared": 29127, + "##ה": 29128, + "undergoes": 29129, + "deformation": 29130, + "outlawed": 29131, + "rubbish": 29132, + "##arus": 29133, + "##mussen": 29134, + "##nidae": 29135, + "##rzburg": 29136, + "arcs": 29137, + "##ingdon": 29138, + "##tituted": 29139, + "1695": 29140, + "wheelbase": 29141, + "wheeling": 29142, + "bombardier": 29143, + "campground": 29144, + "zebra": 29145, + "##lices": 29146, + "##oj": 29147, + "##bain": 29148, + "lullaby": 29149, + "##ecure": 29150, + "donetsk": 29151, + "wylie": 29152, + "grenada": 29153, + "##arding": 29154, + "##ης": 29155, + "squinting": 29156, + "eireann": 29157, + "opposes": 29158, + "##andra": 29159, + "maximal": 29160, + "runes": 29161, + "##broken": 29162, + "##cuting": 29163, + "##iface": 29164, + "##ror": 29165, + "##rosis": 29166, + "additive": 29167, + "britney": 29168, + "adultery": 29169, + "triggering": 29170, + "##drome": 29171, + "detrimental": 29172, + "aarhus": 29173, + "containment": 29174, + "jc": 29175, + "swapped": 29176, + "vichy": 29177, + "##ioms": 29178, + "madly": 29179, + "##oric": 29180, + "##rag": 29181, + "brant": 29182, + "##ckey": 29183, + "##trix": 29184, + "1560": 29185, + "1612": 29186, + "broughton": 29187, + "rustling": 29188, + "##stems": 29189, + "##uder": 29190, + "asbestos": 29191, + "mentoring": 29192, + "##nivorous": 29193, + "finley": 29194, + "leaps": 29195, + "##isan": 29196, + "apical": 29197, + "pry": 29198, + "slits": 29199, + "substitutes": 29200, + "##dict": 29201, + "intuitive": 29202, + "fantasia": 29203, + "insistent": 29204, + "unreasonable": 29205, + "##igen": 29206, + "##vna": 29207, + "domed": 29208, + "hannover": 29209, + "margot": 29210, + "ponder": 29211, + "##zziness": 29212, + "impromptu": 29213, + "jian": 29214, + "lc": 29215, + "rampage": 29216, + "stemming": 29217, + "##eft": 29218, + "andrey": 29219, + "gerais": 29220, + "whichever": 29221, + "amnesia": 29222, + "appropriated": 29223, + "anzac": 29224, + "clicks": 29225, + "modifying": 29226, + "ultimatum": 29227, + "cambrian": 29228, + "maids": 29229, + "verve": 29230, + "yellowstone": 29231, + "##mbs": 29232, + "conservatoire": 29233, + "##scribe": 29234, + "adherence": 29235, + "dinners": 29236, + "spectra": 29237, + "imperfect": 29238, + "mysteriously": 29239, + "sidekick": 29240, + "tatar": 29241, + "tuba": 29242, + "##aks": 29243, + "##ifolia": 29244, + "distrust": 29245, + "##athan": 29246, + "##zle": 29247, + "c2": 29248, + "ronin": 29249, + "zac": 29250, + "##pse": 29251, + "celaena": 29252, + "instrumentalist": 29253, + "scents": 29254, + "skopje": 29255, + "##mbling": 29256, + "comical": 29257, + "compensated": 29258, + "vidal": 29259, + "condor": 29260, + "intersect": 29261, + "jingle": 29262, + "wavelengths": 29263, + "##urrent": 29264, + "mcqueen": 29265, + "##izzly": 29266, + "carp": 29267, + "weasel": 29268, + "422": 29269, + "kanye": 29270, + "militias": 29271, + "postdoctoral": 29272, + "eugen": 29273, + "gunslinger": 29274, + "##ɛ": 29275, + "faux": 29276, + "hospice": 29277, + "##for": 29278, + "appalled": 29279, + "derivation": 29280, + "dwarves": 29281, + "##elis": 29282, + "dilapidated": 29283, + "##folk": 29284, + "astoria": 29285, + "philology": 29286, + "##lwyn": 29287, + "##otho": 29288, + "##saka": 29289, + "inducing": 29290, + "philanthropy": 29291, + "##bf": 29292, + "##itative": 29293, + "geek": 29294, + "markedly": 29295, + "sql": 29296, + "##yce": 29297, + "bessie": 29298, + "indices": 29299, + "rn": 29300, + "##flict": 29301, + "495": 29302, + "frowns": 29303, + "resolving": 29304, + "weightlifting": 29305, + "tugs": 29306, + "cleric": 29307, + "contentious": 29308, + "1653": 29309, + "mania": 29310, + "rms": 29311, + "##miya": 29312, + "##reate": 29313, + "##ruck": 29314, + "##tucket": 29315, + "bien": 29316, + "eels": 29317, + "marek": 29318, + "##ayton": 29319, + "##cence": 29320, + "discreet": 29321, + "unofficially": 29322, + "##ife": 29323, + "leaks": 29324, + "##bber": 29325, + "1705": 29326, + "332": 29327, + "dung": 29328, + "compressor": 29329, + "hillsborough": 29330, + "pandit": 29331, + "shillings": 29332, + "distal": 29333, + "##skin": 29334, + "381": 29335, + "##tat": 29336, + "##you": 29337, + "nosed": 29338, + "##nir": 29339, + "mangrove": 29340, + "undeveloped": 29341, + "##idia": 29342, + "textures": 29343, + "##inho": 29344, + "##500": 29345, + "##rise": 29346, + "ae": 29347, + "irritating": 29348, + "nay": 29349, + "amazingly": 29350, + "bancroft": 29351, + "apologetic": 29352, + "compassionate": 29353, + "kata": 29354, + "symphonies": 29355, + "##lovic": 29356, + "airspace": 29357, + "##lch": 29358, + "930": 29359, + "gifford": 29360, + "precautions": 29361, + "fulfillment": 29362, + "sevilla": 29363, + "vulgar": 29364, + "martinique": 29365, + "##urities": 29366, + "looting": 29367, + "piccolo": 29368, + "tidy": 29369, + "##dermott": 29370, + "quadrant": 29371, + "armchair": 29372, + "incomes": 29373, + "mathematicians": 29374, + "stampede": 29375, + "nilsson": 29376, + "##inking": 29377, + "##scan": 29378, + "foo": 29379, + "quarterfinal": 29380, + "##ostal": 29381, + "shang": 29382, + "shouldered": 29383, + "squirrels": 29384, + "##owe": 29385, + "344": 29386, + "vinegar": 29387, + "##bner": 29388, + "##rchy": 29389, + "##systems": 29390, + "delaying": 29391, + "##trics": 29392, + "ars": 29393, + "dwyer": 29394, + "rhapsody": 29395, + "sponsoring": 29396, + "##gration": 29397, + "bipolar": 29398, + "cinder": 29399, + "starters": 29400, + "##olio": 29401, + "##urst": 29402, + "421": 29403, + "signage": 29404, + "##nty": 29405, + "aground": 29406, + "figurative": 29407, + "mons": 29408, + "acquaintances": 29409, + "duets": 29410, + "erroneously": 29411, + "soyuz": 29412, + "elliptic": 29413, + "recreated": 29414, + "##cultural": 29415, + "##quette": 29416, + "##ssed": 29417, + "##tma": 29418, + "##zcz": 29419, + "moderator": 29420, + "scares": 29421, + "##itaire": 29422, + "##stones": 29423, + "##udence": 29424, + "juniper": 29425, + "sighting": 29426, + "##just": 29427, + "##nsen": 29428, + "britten": 29429, + "calabria": 29430, + "ry": 29431, + "bop": 29432, + "cramer": 29433, + "forsyth": 29434, + "stillness": 29435, + "##л": 29436, + "airmen": 29437, + "gathers": 29438, + "unfit": 29439, + "##umber": 29440, + "##upt": 29441, + "taunting": 29442, + "##rip": 29443, + "seeker": 29444, + "streamlined": 29445, + "##bution": 29446, + "holster": 29447, + "schumann": 29448, + "tread": 29449, + "vox": 29450, + "##gano": 29451, + "##onzo": 29452, + "strive": 29453, + "dil": 29454, + "reforming": 29455, + "covent": 29456, + "newbury": 29457, + "predicting": 29458, + "##orro": 29459, + "decorate": 29460, + "tre": 29461, + "##puted": 29462, + "andover": 29463, + "ie": 29464, + "asahi": 29465, + "dept": 29466, + "dunkirk": 29467, + "gills": 29468, + "##tori": 29469, + "buren": 29470, + "huskies": 29471, + "##stis": 29472, + "##stov": 29473, + "abstracts": 29474, + "bets": 29475, + "loosen": 29476, + "##opa": 29477, + "1682": 29478, + "yearning": 29479, + "##glio": 29480, + "##sir": 29481, + "berman": 29482, + "effortlessly": 29483, + "enamel": 29484, + "napoli": 29485, + "persist": 29486, + "##peration": 29487, + "##uez": 29488, + "attache": 29489, + "elisa": 29490, + "b1": 29491, + "invitations": 29492, + "##kic": 29493, + "accelerating": 29494, + "reindeer": 29495, + "boardwalk": 29496, + "clutches": 29497, + "nelly": 29498, + "polka": 29499, + "starbucks": 29500, + "##kei": 29501, + "adamant": 29502, + "huey": 29503, + "lough": 29504, + "unbroken": 29505, + "adventurer": 29506, + "embroidery": 29507, + "inspecting": 29508, + "stanza": 29509, + "##ducted": 29510, + "naia": 29511, + "taluka": 29512, + "##pone": 29513, + "##roids": 29514, + "chases": 29515, + "deprivation": 29516, + "florian": 29517, + "##jing": 29518, + "##ppet": 29519, + "earthly": 29520, + "##lib": 29521, + "##ssee": 29522, + "colossal": 29523, + "foreigner": 29524, + "vet": 29525, + "freaks": 29526, + "patrice": 29527, + "rosewood": 29528, + "triassic": 29529, + "upstate": 29530, + "##pkins": 29531, + "dominates": 29532, + "ata": 29533, + "chants": 29534, + "ks": 29535, + "vo": 29536, + "##400": 29537, + "##bley": 29538, + "##raya": 29539, + "##rmed": 29540, + "555": 29541, + "agra": 29542, + "infiltrate": 29543, + "##ailing": 29544, + "##ilation": 29545, + "##tzer": 29546, + "##uppe": 29547, + "##werk": 29548, + "binoculars": 29549, + "enthusiast": 29550, + "fujian": 29551, + "squeak": 29552, + "##avs": 29553, + "abolitionist": 29554, + "almeida": 29555, + "boredom": 29556, + "hampstead": 29557, + "marsden": 29558, + "rations": 29559, + "##ands": 29560, + "inflated": 29561, + "334": 29562, + "bonuses": 29563, + "rosalie": 29564, + "patna": 29565, + "##rco": 29566, + "329": 29567, + "detachments": 29568, + "penitentiary": 29569, + "54th": 29570, + "flourishing": 29571, + "woolf": 29572, + "##dion": 29573, + "##etched": 29574, + "papyrus": 29575, + "##lster": 29576, + "##nsor": 29577, + "##toy": 29578, + "bobbed": 29579, + "dismounted": 29580, + "endelle": 29581, + "inhuman": 29582, + "motorola": 29583, + "tbs": 29584, + "wince": 29585, + "wreath": 29586, + "##ticus": 29587, + "hideout": 29588, + "inspections": 29589, + "sanjay": 29590, + "disgrace": 29591, + "infused": 29592, + "pudding": 29593, + "stalks": 29594, + "##urbed": 29595, + "arsenic": 29596, + "leases": 29597, + "##hyl": 29598, + "##rrard": 29599, + "collarbone": 29600, + "##waite": 29601, + "##wil": 29602, + "dowry": 29603, + "##bant": 29604, + "##edance": 29605, + "genealogical": 29606, + "nitrate": 29607, + "salamanca": 29608, + "scandals": 29609, + "thyroid": 29610, + "necessitated": 29611, + "##!": 29612, + "##\"": 29613, + "###": 29614, + "##$": 29615, + "##%": 29616, + "##&": 29617, + "##'": 29618, + "##(": 29619, + "##)": 29620, + "##*": 29621, + "##+": 29622, + "##,": 29623, + "##-": 29624, + "##.": 29625, + "##/": 29626, + "##:": 29627, + "##;": 29628, + "##<": 29629, + "##=": 29630, + "##>": 29631, + "##?": 29632, + "##@": 29633, + "##[": 29634, + "##\\": 29635, + "##]": 29636, + "##^": 29637, + "##_": 29638, + "##`": 29639, + "##{": 29640, + "##|": 29641, + "##}": 29642, + "##~": 29643, + "##¡": 29644, + "##¢": 29645, + "##£": 29646, + "##¤": 29647, + "##¥": 29648, + "##¦": 29649, + "##§": 29650, + "##¨": 29651, + "##©": 29652, + "##ª": 29653, + "##«": 29654, + "##¬": 29655, + "##®": 29656, + "##±": 29657, + "##´": 29658, + "##µ": 29659, + "##¶": 29660, + "##·": 29661, + "##º": 29662, + "##»": 29663, + "##¼": 29664, + "##¾": 29665, + "##¿": 29666, + "##æ": 29667, + "##ð": 29668, + "##÷": 29669, + "##þ": 29670, + "##đ": 29671, + "##ħ": 29672, + "##ŋ": 29673, + "##œ": 29674, + "##ƒ": 29675, + "##ɐ": 29676, + "##ɑ": 29677, + "##ɒ": 29678, + "##ɔ": 29679, + "##ɕ": 29680, + "##ə": 29681, + "##ɡ": 29682, + "##ɣ": 29683, + "##ɨ": 29684, + "##ɪ": 29685, + "##ɫ": 29686, + "##ɬ": 29687, + "##ɯ": 29688, + "##ɲ": 29689, + "##ɴ": 29690, + "##ɹ": 29691, + "##ɾ": 29692, + "##ʀ": 29693, + "##ʁ": 29694, + "##ʂ": 29695, + "##ʃ": 29696, + "##ʉ": 29697, + "##ʊ": 29698, + "##ʋ": 29699, + "##ʌ": 29700, + "##ʎ": 29701, + "##ʐ": 29702, + "##ʑ": 29703, + "##ʒ": 29704, + "##ʔ": 29705, + "##ʰ": 29706, + "##ʲ": 29707, + "##ʳ": 29708, + "##ʷ": 29709, + "##ʸ": 29710, + "##ʻ": 29711, + "##ʼ": 29712, + "##ʾ": 29713, + "##ʿ": 29714, + "##ˈ": 29715, + "##ˡ": 29716, + "##ˢ": 29717, + "##ˣ": 29718, + "##ˤ": 29719, + "##β": 29720, + "##γ": 29721, + "##δ": 29722, + "##ε": 29723, + "##ζ": 29724, + "##θ": 29725, + "##κ": 29726, + "##λ": 29727, + "##μ": 29728, + "##ξ": 29729, + "##ο": 29730, + "##π": 29731, + "##ρ": 29732, + "##σ": 29733, + "##τ": 29734, + "##υ": 29735, + "##φ": 29736, + "##χ": 29737, + "##ψ": 29738, + "##ω": 29739, + "##б": 29740, + "##г": 29741, + "##д": 29742, + "##ж": 29743, + "##з": 29744, + "##м": 29745, + "##п": 29746, + "##с": 29747, + "##у": 29748, + "##ф": 29749, + "##х": 29750, + "##ц": 29751, + "##ч": 29752, + "##ш": 29753, + "##щ": 29754, + "##ъ": 29755, + "##э": 29756, + "##ю": 29757, + "##ђ": 29758, + "##є": 29759, + "##і": 29760, + "##ј": 29761, + "##љ": 29762, + "##њ": 29763, + "##ћ": 29764, + "##ӏ": 29765, + "##ա": 29766, + "##բ": 29767, + "##գ": 29768, + "##դ": 29769, + "##ե": 29770, + "##թ": 29771, + "##ի": 29772, + "##լ": 29773, + "##կ": 29774, + "##հ": 29775, + "##մ": 29776, + "##յ": 29777, + "##ն": 29778, + "##ո": 29779, + "##պ": 29780, + "##ս": 29781, + "##վ": 29782, + "##տ": 29783, + "##ր": 29784, + "##ւ": 29785, + "##ք": 29786, + "##־": 29787, + "##א": 29788, + "##ב": 29789, + "##ג": 29790, + "##ד": 29791, + "##ו": 29792, + "##ז": 29793, + "##ח": 29794, + "##ט": 29795, + "##י": 29796, + "##ך": 29797, + "##כ": 29798, + "##ל": 29799, + "##ם": 29800, + "##מ": 29801, + "##ן": 29802, + "##נ": 29803, + "##ס": 29804, + "##ע": 29805, + "##ף": 29806, + "##פ": 29807, + "##ץ": 29808, + "##צ": 29809, + "##ק": 29810, + "##ר": 29811, + "##ש": 29812, + "##ת": 29813, + "##،": 29814, + "##ء": 29815, + "##ب": 29816, + "##ت": 29817, + "##ث": 29818, + "##ج": 29819, + "##ح": 29820, + "##خ": 29821, + "##ذ": 29822, + "##ز": 29823, + "##س": 29824, + "##ش": 29825, + "##ص": 29826, + "##ض": 29827, + "##ط": 29828, + "##ظ": 29829, + "##ع": 29830, + "##غ": 29831, + "##ـ": 29832, + "##ف": 29833, + "##ق": 29834, + "##ك": 29835, + "##و": 29836, + "##ى": 29837, + "##ٹ": 29838, + "##پ": 29839, + "##چ": 29840, + "##ک": 29841, + "##گ": 29842, + "##ں": 29843, + "##ھ": 29844, + "##ہ": 29845, + "##ے": 29846, + "##अ": 29847, + "##आ": 29848, + "##उ": 29849, + "##ए": 29850, + "##क": 29851, + "##ख": 29852, + "##ग": 29853, + "##च": 29854, + "##ज": 29855, + "##ट": 29856, + "##ड": 29857, + "##ण": 29858, + "##त": 29859, + "##थ": 29860, + "##द": 29861, + "##ध": 29862, + "##न": 29863, + "##प": 29864, + "##ब": 29865, + "##भ": 29866, + "##म": 29867, + "##य": 29868, + "##र": 29869, + "##ल": 29870, + "##व": 29871, + "##श": 29872, + "##ष": 29873, + "##स": 29874, + "##ह": 29875, + "##ा": 29876, + "##ि": 29877, + "##ी": 29878, + "##ो": 29879, + "##।": 29880, + "##॥": 29881, + "##ং": 29882, + "##অ": 29883, + "##আ": 29884, + "##ই": 29885, + "##উ": 29886, + "##এ": 29887, + "##ও": 29888, + "##ক": 29889, + "##খ": 29890, + "##গ": 29891, + "##চ": 29892, + "##ছ": 29893, + "##জ": 29894, + "##ট": 29895, + "##ড": 29896, + "##ণ": 29897, + "##ত": 29898, + "##থ": 29899, + "##দ": 29900, + "##ধ": 29901, + "##ন": 29902, + "##প": 29903, + "##ব": 29904, + "##ভ": 29905, + "##ম": 29906, + "##য": 29907, + "##র": 29908, + "##ল": 29909, + "##শ": 29910, + "##ষ": 29911, + "##স": 29912, + "##হ": 29913, + "##া": 29914, + "##ি": 29915, + "##ী": 29916, + "##ে": 29917, + "##க": 29918, + "##ச": 29919, + "##ட": 29920, + "##த": 29921, + "##ந": 29922, + "##ன": 29923, + "##ப": 29924, + "##ம": 29925, + "##ய": 29926, + "##ர": 29927, + "##ல": 29928, + "##ள": 29929, + "##வ": 29930, + "##ா": 29931, + "##ி": 29932, + "##ு": 29933, + "##ே": 29934, + "##ை": 29935, + "##ನ": 29936, + "##ರ": 29937, + "##ಾ": 29938, + "##ක": 29939, + "##ය": 29940, + "##ර": 29941, + "##ල": 29942, + "##ව": 29943, + "##ා": 29944, + "##ก": 29945, + "##ง": 29946, + "##ต": 29947, + "##ท": 29948, + "##น": 29949, + "##พ": 29950, + "##ม": 29951, + "##ย": 29952, + "##ร": 29953, + "##ล": 29954, + "##ว": 29955, + "##ส": 29956, + "##อ": 29957, + "##า": 29958, + "##เ": 29959, + "##་": 29960, + "##།": 29961, + "##ག": 29962, + "##ང": 29963, + "##ད": 29964, + "##ན": 29965, + "##པ": 29966, + "##བ": 29967, + "##མ": 29968, + "##འ": 29969, + "##ར": 29970, + "##ལ": 29971, + "##ས": 29972, + "##မ": 29973, + "##ა": 29974, + "##ბ": 29975, + "##გ": 29976, + "##დ": 29977, + "##ე": 29978, + "##ვ": 29979, + "##თ": 29980, + "##ი": 29981, + "##კ": 29982, + "##ლ": 29983, + "##მ": 29984, + "##ნ": 29985, + "##ო": 29986, + "##რ": 29987, + "##ს": 29988, + "##ტ": 29989, + "##უ": 29990, + "##ᄀ": 29991, + "##ᄂ": 29992, + "##ᄃ": 29993, + "##ᄅ": 29994, + "##ᄆ": 29995, + "##ᄇ": 29996, + "##ᄉ": 29997, + "##ᄊ": 29998, + "##ᄋ": 29999, + "##ᄌ": 30000, + "##ᄎ": 30001, + "##ᄏ": 30002, + "##ᄐ": 30003, + "##ᄑ": 30004, + "##ᄒ": 30005, + "##ᅡ": 30006, + "##ᅢ": 30007, + "##ᅥ": 30008, + "##ᅦ": 30009, + "##ᅧ": 30010, + "##ᅩ": 30011, + "##ᅪ": 30012, + "##ᅭ": 30013, + "##ᅮ": 30014, + "##ᅯ": 30015, + "##ᅲ": 30016, + "##ᅳ": 30017, + "##ᅴ": 30018, + "##ᅵ": 30019, + "##ᆨ": 30020, + "##ᆫ": 30021, + "##ᆯ": 30022, + "##ᆷ": 30023, + "##ᆸ": 30024, + "##ᆼ": 30025, + "##ᴬ": 30026, + "##ᴮ": 30027, + "##ᴰ": 30028, + "##ᴵ": 30029, + "##ᴺ": 30030, + "##ᵀ": 30031, + "##ᵃ": 30032, + "##ᵇ": 30033, + "##ᵈ": 30034, + "##ᵉ": 30035, + "##ᵍ": 30036, + "##ᵏ": 30037, + "##ᵐ": 30038, + "##ᵒ": 30039, + "##ᵖ": 30040, + "##ᵗ": 30041, + "##ᵘ": 30042, + "##ᵣ": 30043, + "##ᵤ": 30044, + "##ᵥ": 30045, + "##ᶜ": 30046, + "##ᶠ": 30047, + "##‐": 30048, + "##‑": 30049, + "##‒": 30050, + "##–": 30051, + "##—": 30052, + "##―": 30053, + "##‖": 30054, + "##‘": 30055, + "##’": 30056, + "##‚": 30057, + "##“": 30058, + "##”": 30059, + "##„": 30060, + "##†": 30061, + "##‡": 30062, + "##•": 30063, + "##…": 30064, + "##‰": 30065, + "##′": 30066, + "##″": 30067, + "##›": 30068, + "##‿": 30069, + "##⁄": 30070, + "##⁰": 30071, + "##ⁱ": 30072, + "##⁴": 30073, + "##⁵": 30074, + "##⁶": 30075, + "##⁷": 30076, + "##⁸": 30077, + "##⁹": 30078, + "##⁻": 30079, + "##ⁿ": 30080, + "##₅": 30081, + "##₆": 30082, + "##₇": 30083, + "##₈": 30084, + "##₉": 30085, + "##₊": 30086, + "##₍": 30087, + "##₎": 30088, + "##ₐ": 30089, + "##ₑ": 30090, + "##ₒ": 30091, + "##ₓ": 30092, + "##ₕ": 30093, + "##ₖ": 30094, + "##ₗ": 30095, + "##ₘ": 30096, + "##ₚ": 30097, + "##ₛ": 30098, + "##ₜ": 30099, + "##₤": 30100, + "##₩": 30101, + "##€": 30102, + "##₱": 30103, + "##₹": 30104, + "##ℓ": 30105, + "##№": 30106, + "##ℝ": 30107, + "##™": 30108, + "##⅓": 30109, + "##⅔": 30110, + "##←": 30111, + "##↑": 30112, + "##→": 30113, + "##↓": 30114, + "##↔": 30115, + "##↦": 30116, + "##⇄": 30117, + "##⇌": 30118, + "##⇒": 30119, + "##∂": 30120, + "##∅": 30121, + "##∆": 30122, + "##∇": 30123, + "##∈": 30124, + "##∗": 30125, + "##∘": 30126, + "##√": 30127, + "##∞": 30128, + "##∧": 30129, + "##∨": 30130, + "##∩": 30131, + "##∪": 30132, + "##≈": 30133, + "##≡": 30134, + "##≤": 30135, + "##≥": 30136, + "##⊂": 30137, + "##⊆": 30138, + "##⊕": 30139, + "##⊗": 30140, + "##⋅": 30141, + "##─": 30142, + "##│": 30143, + "##■": 30144, + "##▪": 30145, + "##●": 30146, + "##★": 30147, + "##☆": 30148, + "##☉": 30149, + "##♠": 30150, + "##♣": 30151, + "##♥": 30152, + "##♦": 30153, + "##♯": 30154, + "##⟨": 30155, + "##⟩": 30156, + "##ⱼ": 30157, + "##⺩": 30158, + "##⺼": 30159, + "##⽥": 30160, + "##、": 30161, + "##。": 30162, + "##〈": 30163, + "##〉": 30164, + "##《": 30165, + "##》": 30166, + "##「": 30167, + "##」": 30168, + "##『": 30169, + "##』": 30170, + "##〜": 30171, + "##あ": 30172, + "##い": 30173, + "##う": 30174, + "##え": 30175, + "##お": 30176, + "##か": 30177, + "##き": 30178, + "##く": 30179, + "##け": 30180, + "##こ": 30181, + "##さ": 30182, + "##し": 30183, + "##す": 30184, + "##せ": 30185, + "##そ": 30186, + "##た": 30187, + "##ち": 30188, + "##っ": 30189, + "##つ": 30190, + "##て": 30191, + "##と": 30192, + "##な": 30193, + "##に": 30194, + "##ぬ": 30195, + "##ね": 30196, + "##の": 30197, + "##は": 30198, + "##ひ": 30199, + "##ふ": 30200, + "##へ": 30201, + "##ほ": 30202, + "##ま": 30203, + "##み": 30204, + "##む": 30205, + "##め": 30206, + "##も": 30207, + "##や": 30208, + "##ゆ": 30209, + "##よ": 30210, + "##ら": 30211, + "##り": 30212, + "##る": 30213, + "##れ": 30214, + "##ろ": 30215, + "##を": 30216, + "##ん": 30217, + "##ァ": 30218, + "##ア": 30219, + "##ィ": 30220, + "##イ": 30221, + "##ウ": 30222, + "##ェ": 30223, + "##エ": 30224, + "##オ": 30225, + "##カ": 30226, + "##キ": 30227, + "##ク": 30228, + "##ケ": 30229, + "##コ": 30230, + "##サ": 30231, + "##シ": 30232, + "##ス": 30233, + "##セ": 30234, + "##タ": 30235, + "##チ": 30236, + "##ッ": 30237, + "##ツ": 30238, + "##テ": 30239, + "##ト": 30240, + "##ナ": 30241, + "##ニ": 30242, + "##ノ": 30243, + "##ハ": 30244, + "##ヒ": 30245, + "##フ": 30246, + "##ヘ": 30247, + "##ホ": 30248, + "##マ": 30249, + "##ミ": 30250, + "##ム": 30251, + "##メ": 30252, + "##モ": 30253, + "##ャ": 30254, + "##ュ": 30255, + "##ョ": 30256, + "##ラ": 30257, + "##リ": 30258, + "##ル": 30259, + "##レ": 30260, + "##ロ": 30261, + "##ワ": 30262, + "##ン": 30263, + "##・": 30264, + "##ー": 30265, + "##一": 30266, + "##三": 30267, + "##上": 30268, + "##下": 30269, + "##不": 30270, + "##世": 30271, + "##中": 30272, + "##主": 30273, + "##久": 30274, + "##之": 30275, + "##也": 30276, + "##事": 30277, + "##二": 30278, + "##五": 30279, + "##井": 30280, + "##京": 30281, + "##人": 30282, + "##亻": 30283, + "##仁": 30284, + "##介": 30285, + "##代": 30286, + "##仮": 30287, + "##伊": 30288, + "##会": 30289, + "##佐": 30290, + "##侍": 30291, + "##保": 30292, + "##信": 30293, + "##健": 30294, + "##元": 30295, + "##光": 30296, + "##八": 30297, + "##公": 30298, + "##内": 30299, + "##出": 30300, + "##分": 30301, + "##前": 30302, + "##劉": 30303, + "##力": 30304, + "##加": 30305, + "##勝": 30306, + "##北": 30307, + "##区": 30308, + "##十": 30309, + "##千": 30310, + "##南": 30311, + "##博": 30312, + "##原": 30313, + "##口": 30314, + "##古": 30315, + "##史": 30316, + "##司": 30317, + "##合": 30318, + "##吉": 30319, + "##同": 30320, + "##名": 30321, + "##和": 30322, + "##囗": 30323, + "##四": 30324, + "##国": 30325, + "##國": 30326, + "##土": 30327, + "##地": 30328, + "##坂": 30329, + "##城": 30330, + "##堂": 30331, + "##場": 30332, + "##士": 30333, + "##夏": 30334, + "##外": 30335, + "##大": 30336, + "##天": 30337, + "##太": 30338, + "##夫": 30339, + "##奈": 30340, + "##女": 30341, + "##子": 30342, + "##学": 30343, + "##宀": 30344, + "##宇": 30345, + "##安": 30346, + "##宗": 30347, + "##定": 30348, + "##宣": 30349, + "##宮": 30350, + "##家": 30351, + "##宿": 30352, + "##寺": 30353, + "##將": 30354, + "##小": 30355, + "##尚": 30356, + "##山": 30357, + "##岡": 30358, + "##島": 30359, + "##崎": 30360, + "##川": 30361, + "##州": 30362, + "##巿": 30363, + "##帝": 30364, + "##平": 30365, + "##年": 30366, + "##幸": 30367, + "##广": 30368, + "##弘": 30369, + "##張": 30370, + "##彳": 30371, + "##後": 30372, + "##御": 30373, + "##德": 30374, + "##心": 30375, + "##忄": 30376, + "##志": 30377, + "##忠": 30378, + "##愛": 30379, + "##成": 30380, + "##我": 30381, + "##戦": 30382, + "##戸": 30383, + "##手": 30384, + "##扌": 30385, + "##政": 30386, + "##文": 30387, + "##新": 30388, + "##方": 30389, + "##日": 30390, + "##明": 30391, + "##星": 30392, + "##春": 30393, + "##昭": 30394, + "##智": 30395, + "##曲": 30396, + "##書": 30397, + "##月": 30398, + "##有": 30399, + "##朝": 30400, + "##木": 30401, + "##本": 30402, + "##李": 30403, + "##村": 30404, + "##東": 30405, + "##松": 30406, + "##林": 30407, + "##森": 30408, + "##楊": 30409, + "##樹": 30410, + "##橋": 30411, + "##歌": 30412, + "##止": 30413, + "##正": 30414, + "##武": 30415, + "##比": 30416, + "##氏": 30417, + "##民": 30418, + "##水": 30419, + "##氵": 30420, + "##氷": 30421, + "##永": 30422, + "##江": 30423, + "##沢": 30424, + "##河": 30425, + "##治": 30426, + "##法": 30427, + "##海": 30428, + "##清": 30429, + "##漢": 30430, + "##瀬": 30431, + "##火": 30432, + "##版": 30433, + "##犬": 30434, + "##王": 30435, + "##生": 30436, + "##田": 30437, + "##男": 30438, + "##疒": 30439, + "##発": 30440, + "##白": 30441, + "##的": 30442, + "##皇": 30443, + "##目": 30444, + "##相": 30445, + "##省": 30446, + "##真": 30447, + "##石": 30448, + "##示": 30449, + "##社": 30450, + "##神": 30451, + "##福": 30452, + "##禾": 30453, + "##秀": 30454, + "##秋": 30455, + "##空": 30456, + "##立": 30457, + "##章": 30458, + "##竹": 30459, + "##糹": 30460, + "##美": 30461, + "##義": 30462, + "##耳": 30463, + "##良": 30464, + "##艹": 30465, + "##花": 30466, + "##英": 30467, + "##華": 30468, + "##葉": 30469, + "##藤": 30470, + "##行": 30471, + "##街": 30472, + "##西": 30473, + "##見": 30474, + "##訁": 30475, + "##語": 30476, + "##谷": 30477, + "##貝": 30478, + "##貴": 30479, + "##車": 30480, + "##軍": 30481, + "##辶": 30482, + "##道": 30483, + "##郎": 30484, + "##郡": 30485, + "##部": 30486, + "##都": 30487, + "##里": 30488, + "##野": 30489, + "##金": 30490, + "##鈴": 30491, + "##镇": 30492, + "##長": 30493, + "##門": 30494, + "##間": 30495, + "##阝": 30496, + "##阿": 30497, + "##陳": 30498, + "##陽": 30499, + "##雄": 30500, + "##青": 30501, + "##面": 30502, + "##風": 30503, + "##食": 30504, + "##香": 30505, + "##馬": 30506, + "##高": 30507, + "##龍": 30508, + "##龸": 30509, + "##fi": 30510, + "##fl": 30511, + "##!": 30512, + "##(": 30513, + "##)": 30514, + "##,": 30515, + "##-": 30516, + "##.": 30517, + "##/": 30518, + "##:": 30519, + "##?": 30520, + "##~": 30521 + } + } +} diff --git a/extensions/continue/models/all-MiniLM-L6-v2/tokenizer_config.json b/extensions/continue/models/all-MiniLM-L6-v2/tokenizer_config.json new file mode 100644 index 000000000000..37fca74771bc --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/tokenizer_config.json @@ -0,0 +1,15 @@ +{ + "clean_up_tokenization_spaces": true, + "cls_token": "[CLS]", + "do_basic_tokenize": true, + "do_lower_case": true, + "mask_token": "[MASK]", + "model_max_length": 512, + "never_split": null, + "pad_token": "[PAD]", + "sep_token": "[SEP]", + "strip_accents": null, + "tokenize_chinese_chars": true, + "tokenizer_class": "BertTokenizer", + "unk_token": "[UNK]" +} diff --git a/extensions/continue/models/all-MiniLM-L6-v2/vocab.txt b/extensions/continue/models/all-MiniLM-L6-v2/vocab.txt new file mode 100644 index 000000000000..fb140275c155 --- /dev/null +++ b/extensions/continue/models/all-MiniLM-L6-v2/vocab.txt @@ -0,0 +1,30522 @@ +[PAD] +[unused0] +[unused1] +[unused2] +[unused3] +[unused4] +[unused5] +[unused6] +[unused7] +[unused8] +[unused9] +[unused10] +[unused11] +[unused12] +[unused13] +[unused14] +[unused15] +[unused16] +[unused17] +[unused18] +[unused19] +[unused20] +[unused21] +[unused22] +[unused23] +[unused24] +[unused25] +[unused26] +[unused27] +[unused28] +[unused29] +[unused30] +[unused31] +[unused32] +[unused33] +[unused34] +[unused35] +[unused36] +[unused37] +[unused38] +[unused39] +[unused40] +[unused41] +[unused42] +[unused43] +[unused44] +[unused45] +[unused46] +[unused47] +[unused48] +[unused49] +[unused50] +[unused51] +[unused52] +[unused53] +[unused54] +[unused55] +[unused56] +[unused57] +[unused58] +[unused59] +[unused60] +[unused61] +[unused62] +[unused63] +[unused64] +[unused65] +[unused66] +[unused67] +[unused68] +[unused69] +[unused70] +[unused71] +[unused72] +[unused73] +[unused74] +[unused75] +[unused76] +[unused77] +[unused78] +[unused79] +[unused80] +[unused81] +[unused82] +[unused83] +[unused84] +[unused85] +[unused86] +[unused87] +[unused88] +[unused89] +[unused90] +[unused91] +[unused92] +[unused93] +[unused94] +[unused95] +[unused96] +[unused97] +[unused98] +[UNK] +[CLS] +[SEP] +[MASK] +[unused99] +[unused100] +[unused101] +[unused102] +[unused103] +[unused104] +[unused105] +[unused106] +[unused107] +[unused108] +[unused109] +[unused110] +[unused111] +[unused112] +[unused113] +[unused114] +[unused115] +[unused116] +[unused117] +[unused118] +[unused119] +[unused120] +[unused121] +[unused122] +[unused123] +[unused124] +[unused125] +[unused126] +[unused127] +[unused128] +[unused129] +[unused130] +[unused131] +[unused132] +[unused133] +[unused134] +[unused135] +[unused136] +[unused137] +[unused138] +[unused139] +[unused140] +[unused141] +[unused142] +[unused143] +[unused144] +[unused145] +[unused146] +[unused147] +[unused148] +[unused149] +[unused150] +[unused151] +[unused152] +[unused153] +[unused154] +[unused155] +[unused156] +[unused157] +[unused158] +[unused159] +[unused160] +[unused161] +[unused162] +[unused163] +[unused164] +[unused165] +[unused166] +[unused167] +[unused168] +[unused169] +[unused170] +[unused171] +[unused172] +[unused173] +[unused174] +[unused175] +[unused176] +[unused177] +[unused178] +[unused179] +[unused180] +[unused181] +[unused182] +[unused183] +[unused184] +[unused185] +[unused186] +[unused187] +[unused188] +[unused189] +[unused190] +[unused191] +[unused192] +[unused193] +[unused194] +[unused195] +[unused196] +[unused197] +[unused198] +[unused199] +[unused200] +[unused201] +[unused202] +[unused203] +[unused204] +[unused205] +[unused206] +[unused207] +[unused208] +[unused209] +[unused210] +[unused211] +[unused212] +[unused213] +[unused214] +[unused215] +[unused216] +[unused217] +[unused218] +[unused219] +[unused220] +[unused221] +[unused222] +[unused223] +[unused224] +[unused225] +[unused226] +[unused227] +[unused228] +[unused229] +[unused230] +[unused231] +[unused232] +[unused233] +[unused234] +[unused235] +[unused236] +[unused237] +[unused238] +[unused239] +[unused240] +[unused241] +[unused242] +[unused243] +[unused244] +[unused245] +[unused246] +[unused247] +[unused248] +[unused249] +[unused250] +[unused251] +[unused252] +[unused253] +[unused254] +[unused255] +[unused256] +[unused257] +[unused258] +[unused259] +[unused260] +[unused261] +[unused262] +[unused263] +[unused264] +[unused265] +[unused266] +[unused267] +[unused268] +[unused269] +[unused270] +[unused271] +[unused272] +[unused273] +[unused274] +[unused275] +[unused276] +[unused277] +[unused278] +[unused279] +[unused280] +[unused281] +[unused282] +[unused283] +[unused284] +[unused285] +[unused286] +[unused287] +[unused288] +[unused289] +[unused290] +[unused291] +[unused292] +[unused293] +[unused294] +[unused295] +[unused296] +[unused297] +[unused298] +[unused299] +[unused300] +[unused301] +[unused302] +[unused303] +[unused304] +[unused305] +[unused306] +[unused307] +[unused308] +[unused309] +[unused310] +[unused311] +[unused312] +[unused313] +[unused314] +[unused315] +[unused316] +[unused317] +[unused318] +[unused319] +[unused320] +[unused321] +[unused322] +[unused323] +[unused324] +[unused325] +[unused326] +[unused327] +[unused328] +[unused329] +[unused330] +[unused331] +[unused332] +[unused333] +[unused334] +[unused335] +[unused336] +[unused337] +[unused338] +[unused339] +[unused340] +[unused341] +[unused342] +[unused343] +[unused344] +[unused345] +[unused346] +[unused347] +[unused348] +[unused349] +[unused350] +[unused351] +[unused352] +[unused353] +[unused354] +[unused355] +[unused356] +[unused357] +[unused358] +[unused359] +[unused360] +[unused361] +[unused362] +[unused363] +[unused364] +[unused365] +[unused366] +[unused367] +[unused368] +[unused369] +[unused370] +[unused371] +[unused372] +[unused373] +[unused374] +[unused375] +[unused376] +[unused377] +[unused378] +[unused379] +[unused380] +[unused381] +[unused382] +[unused383] +[unused384] +[unused385] +[unused386] +[unused387] +[unused388] +[unused389] +[unused390] +[unused391] +[unused392] +[unused393] +[unused394] +[unused395] +[unused396] +[unused397] +[unused398] +[unused399] +[unused400] +[unused401] +[unused402] +[unused403] +[unused404] +[unused405] +[unused406] +[unused407] +[unused408] +[unused409] +[unused410] +[unused411] +[unused412] +[unused413] +[unused414] +[unused415] +[unused416] +[unused417] +[unused418] +[unused419] +[unused420] +[unused421] +[unused422] +[unused423] +[unused424] +[unused425] +[unused426] +[unused427] +[unused428] +[unused429] +[unused430] +[unused431] +[unused432] +[unused433] +[unused434] +[unused435] +[unused436] +[unused437] +[unused438] +[unused439] +[unused440] +[unused441] +[unused442] +[unused443] +[unused444] +[unused445] +[unused446] +[unused447] +[unused448] +[unused449] +[unused450] +[unused451] +[unused452] +[unused453] +[unused454] +[unused455] +[unused456] +[unused457] +[unused458] +[unused459] +[unused460] +[unused461] +[unused462] +[unused463] +[unused464] +[unused465] +[unused466] +[unused467] +[unused468] +[unused469] +[unused470] +[unused471] +[unused472] +[unused473] +[unused474] +[unused475] +[unused476] +[unused477] +[unused478] +[unused479] +[unused480] +[unused481] +[unused482] +[unused483] +[unused484] +[unused485] +[unused486] +[unused487] +[unused488] +[unused489] +[unused490] +[unused491] +[unused492] +[unused493] +[unused494] +[unused495] +[unused496] +[unused497] +[unused498] +[unused499] +[unused500] +[unused501] +[unused502] +[unused503] +[unused504] +[unused505] +[unused506] +[unused507] +[unused508] +[unused509] +[unused510] +[unused511] +[unused512] +[unused513] +[unused514] +[unused515] +[unused516] +[unused517] +[unused518] +[unused519] +[unused520] +[unused521] +[unused522] +[unused523] +[unused524] +[unused525] +[unused526] +[unused527] +[unused528] +[unused529] +[unused530] +[unused531] +[unused532] +[unused533] +[unused534] +[unused535] +[unused536] +[unused537] +[unused538] +[unused539] +[unused540] +[unused541] +[unused542] +[unused543] +[unused544] +[unused545] +[unused546] +[unused547] +[unused548] +[unused549] +[unused550] +[unused551] +[unused552] +[unused553] +[unused554] +[unused555] +[unused556] +[unused557] +[unused558] +[unused559] +[unused560] +[unused561] +[unused562] +[unused563] +[unused564] +[unused565] +[unused566] +[unused567] +[unused568] +[unused569] +[unused570] +[unused571] +[unused572] +[unused573] +[unused574] +[unused575] +[unused576] +[unused577] +[unused578] +[unused579] +[unused580] +[unused581] +[unused582] +[unused583] +[unused584] +[unused585] +[unused586] +[unused587] +[unused588] +[unused589] +[unused590] +[unused591] +[unused592] +[unused593] +[unused594] +[unused595] +[unused596] +[unused597] +[unused598] +[unused599] +[unused600] +[unused601] +[unused602] +[unused603] +[unused604] +[unused605] +[unused606] +[unused607] +[unused608] +[unused609] +[unused610] +[unused611] +[unused612] +[unused613] +[unused614] +[unused615] +[unused616] +[unused617] +[unused618] +[unused619] +[unused620] +[unused621] +[unused622] +[unused623] +[unused624] +[unused625] +[unused626] +[unused627] +[unused628] +[unused629] +[unused630] +[unused631] +[unused632] +[unused633] +[unused634] +[unused635] +[unused636] +[unused637] +[unused638] +[unused639] +[unused640] +[unused641] +[unused642] +[unused643] +[unused644] +[unused645] +[unused646] +[unused647] +[unused648] +[unused649] +[unused650] +[unused651] +[unused652] +[unused653] +[unused654] +[unused655] +[unused656] +[unused657] +[unused658] +[unused659] +[unused660] +[unused661] +[unused662] +[unused663] +[unused664] +[unused665] +[unused666] +[unused667] +[unused668] +[unused669] +[unused670] +[unused671] +[unused672] +[unused673] +[unused674] +[unused675] +[unused676] +[unused677] +[unused678] +[unused679] +[unused680] +[unused681] +[unused682] +[unused683] +[unused684] +[unused685] +[unused686] +[unused687] +[unused688] +[unused689] +[unused690] +[unused691] +[unused692] +[unused693] +[unused694] +[unused695] +[unused696] +[unused697] +[unused698] +[unused699] +[unused700] +[unused701] +[unused702] +[unused703] +[unused704] +[unused705] +[unused706] +[unused707] +[unused708] +[unused709] +[unused710] +[unused711] +[unused712] +[unused713] +[unused714] +[unused715] +[unused716] +[unused717] +[unused718] +[unused719] +[unused720] +[unused721] +[unused722] +[unused723] +[unused724] +[unused725] +[unused726] +[unused727] +[unused728] +[unused729] +[unused730] +[unused731] +[unused732] +[unused733] +[unused734] +[unused735] +[unused736] +[unused737] +[unused738] +[unused739] +[unused740] +[unused741] +[unused742] +[unused743] +[unused744] +[unused745] +[unused746] +[unused747] +[unused748] +[unused749] +[unused750] +[unused751] +[unused752] +[unused753] +[unused754] +[unused755] +[unused756] +[unused757] +[unused758] +[unused759] +[unused760] +[unused761] +[unused762] +[unused763] +[unused764] +[unused765] +[unused766] +[unused767] +[unused768] +[unused769] +[unused770] +[unused771] +[unused772] +[unused773] +[unused774] +[unused775] +[unused776] +[unused777] +[unused778] +[unused779] +[unused780] +[unused781] +[unused782] +[unused783] +[unused784] +[unused785] +[unused786] +[unused787] +[unused788] +[unused789] +[unused790] +[unused791] +[unused792] +[unused793] +[unused794] +[unused795] +[unused796] +[unused797] +[unused798] +[unused799] +[unused800] +[unused801] +[unused802] +[unused803] +[unused804] +[unused805] +[unused806] +[unused807] +[unused808] +[unused809] +[unused810] +[unused811] +[unused812] +[unused813] +[unused814] +[unused815] +[unused816] +[unused817] +[unused818] +[unused819] +[unused820] +[unused821] +[unused822] +[unused823] +[unused824] +[unused825] +[unused826] +[unused827] +[unused828] +[unused829] +[unused830] +[unused831] +[unused832] +[unused833] +[unused834] +[unused835] +[unused836] +[unused837] +[unused838] +[unused839] +[unused840] +[unused841] +[unused842] +[unused843] +[unused844] +[unused845] +[unused846] +[unused847] +[unused848] +[unused849] +[unused850] +[unused851] +[unused852] +[unused853] +[unused854] +[unused855] +[unused856] +[unused857] +[unused858] +[unused859] +[unused860] +[unused861] +[unused862] +[unused863] +[unused864] +[unused865] +[unused866] +[unused867] +[unused868] +[unused869] +[unused870] +[unused871] +[unused872] +[unused873] +[unused874] +[unused875] +[unused876] +[unused877] +[unused878] +[unused879] +[unused880] +[unused881] +[unused882] +[unused883] +[unused884] +[unused885] +[unused886] +[unused887] +[unused888] +[unused889] +[unused890] +[unused891] +[unused892] +[unused893] +[unused894] +[unused895] +[unused896] +[unused897] +[unused898] +[unused899] +[unused900] +[unused901] +[unused902] +[unused903] +[unused904] +[unused905] +[unused906] +[unused907] +[unused908] +[unused909] +[unused910] +[unused911] +[unused912] +[unused913] +[unused914] +[unused915] +[unused916] +[unused917] +[unused918] +[unused919] +[unused920] +[unused921] +[unused922] +[unused923] +[unused924] +[unused925] +[unused926] +[unused927] +[unused928] +[unused929] +[unused930] +[unused931] +[unused932] +[unused933] +[unused934] +[unused935] +[unused936] +[unused937] +[unused938] +[unused939] +[unused940] +[unused941] +[unused942] +[unused943] +[unused944] +[unused945] +[unused946] +[unused947] +[unused948] +[unused949] +[unused950] +[unused951] +[unused952] +[unused953] +[unused954] +[unused955] +[unused956] +[unused957] +[unused958] +[unused959] +[unused960] +[unused961] +[unused962] +[unused963] +[unused964] +[unused965] +[unused966] +[unused967] +[unused968] +[unused969] +[unused970] +[unused971] +[unused972] +[unused973] +[unused974] +[unused975] +[unused976] +[unused977] +[unused978] +[unused979] +[unused980] +[unused981] +[unused982] +[unused983] +[unused984] +[unused985] +[unused986] +[unused987] +[unused988] +[unused989] +[unused990] +[unused991] +[unused992] +[unused993] +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +[ +\ +] +^ +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ +¡ +¢ +£ +¤ +¥ +¦ +§ +¨ +© +ª +« +¬ +® +° +± +² +³ +´ +µ +¶ +· +¹ +º +» +¼ +½ +¾ +¿ +× +ß +æ +ð +÷ +ø +þ +đ +ħ +ı +ł +ŋ +œ +ƒ +ɐ +ɑ +ɒ +ɔ +ɕ +ə +ɛ +ɡ +ɣ +ɨ +ɪ +ɫ +ɬ +ɯ +ɲ +ɴ +ɹ +ɾ +ʀ +ʁ +ʂ +ʃ +ʉ +ʊ +ʋ +ʌ +ʎ +ʐ +ʑ +ʒ +ʔ +ʰ +ʲ +ʳ +ʷ +ʸ +ʻ +ʼ +ʾ +ʿ +ˈ +ː +ˡ +ˢ +ˣ +ˤ +α +β +γ +δ +ε +ζ +η +θ +ι +κ +λ +μ +ν +ξ +ο +π +ρ +ς +σ +τ +υ +φ +χ +ψ +ω +а +б +в +г +д +е +ж +з +и +к +л +м +н +о +п +р +с +т +у +ф +х +ц +ч +ш +щ +ъ +ы +ь +э +ю +я +ђ +є +і +ј +љ +њ +ћ +ӏ +ա +բ +գ +դ +ե +թ +ի +լ +կ +հ +մ +յ +ն +ո +պ +ս +վ +տ +ր +ւ +ք +־ +א +ב +ג +ד +ה +ו +ז +ח +ט +י +ך +כ +ל +ם +מ +ן +נ +ס +ע +ף +פ +ץ +צ +ק +ר +ש +ת +، +ء +ا +ب +ة +ت +ث +ج +ح +خ +د +ذ +ر +ز +س +ش +ص +ض +ط +ظ +ع +غ +ـ +ف +ق +ك +ل +م +ن +ه +و +ى +ي +ٹ +پ +چ +ک +گ +ں +ھ +ہ +ی +ے +अ +आ +उ +ए +क +ख +ग +च +ज +ट +ड +ण +त +थ +द +ध +न +प +ब +भ +म +य +र +ल +व +श +ष +स +ह +ा +ि +ी +ो +। +॥ +ং +অ +আ +ই +উ +এ +ও +ক +খ +গ +চ +ছ +জ +ট +ড +ণ +ত +থ +দ +ধ +ন +প +ব +ভ +ম +য +র +ল +শ +ষ +স +হ +া +ি +ী +ে +க +ச +ட +த +ந +ன +ப +ம +ய +ர +ல +ள +வ +ா +ி +ு +ே +ை +ನ +ರ +ಾ +ක +ය +ර +ල +ව +ා +ก +ง +ต +ท +น +พ +ม +ย +ร +ล +ว +ส +อ +า +เ +་ +། +ག +ང +ད +ན +པ +བ +མ +འ +ར +ལ +ས +မ +ა +ბ +გ +დ +ე +ვ +თ +ი +კ +ლ +მ +ნ +ო +რ +ს +ტ +უ +ᄀ +ᄂ +ᄃ +ᄅ +ᄆ +ᄇ +ᄉ +ᄊ +ᄋ +ᄌ +ᄎ +ᄏ +ᄐ +ᄑ +ᄒ +ᅡ +ᅢ +ᅥ +ᅦ +ᅧ +ᅩ +ᅪ +ᅭ +ᅮ +ᅯ +ᅲ +ᅳ +ᅴ +ᅵ +ᆨ +ᆫ +ᆯ +ᆷ +ᆸ +ᆼ +ᴬ +ᴮ +ᴰ +ᴵ +ᴺ +ᵀ +ᵃ +ᵇ +ᵈ +ᵉ +ᵍ +ᵏ +ᵐ +ᵒ +ᵖ +ᵗ +ᵘ +ᵢ +ᵣ +ᵤ +ᵥ +ᶜ +ᶠ +‐ +‑ +‒ +– +— +― +‖ +‘ +’ +‚ +“ +” +„ +† +‡ +• +… +‰ +′ +″ +› +‿ +⁄ +⁰ +ⁱ +⁴ +⁵ +⁶ +⁷ +⁸ +⁹ +⁺ +⁻ +ⁿ +₀ +₁ +₂ +₃ +₄ +₅ +₆ +₇ +₈ +₉ +₊ +₍ +₎ +ₐ +ₑ +ₒ +ₓ +ₕ +ₖ +ₗ +ₘ +ₙ +ₚ +ₛ +ₜ +₤ +₩ +€ +₱ +₹ +ℓ +№ +ℝ +™ +⅓ +⅔ +← +↑ +→ +↓ +↔ +↦ +⇄ +⇌ +⇒ +∂ +∅ +∆ +∇ +∈ +− +∗ +∘ +√ +∞ +∧ +∨ +∩ +∪ +≈ +≡ +≤ +≥ +⊂ +⊆ +⊕ +⊗ +⋅ +─ +│ +■ +▪ +● +★ +☆ +☉ +♠ +♣ +♥ +♦ +♭ +♯ +⟨ +⟩ +ⱼ +⺩ +⺼ +⽥ +、 +。 +〈 +〉 +《 +》 +「 +」 +『 +』 +〜 +あ +い +う +え +お +か +き +く +け +こ +さ +し +す +せ +そ +た +ち +っ +つ +て +と +な +に +ぬ +ね +の +は +ひ +ふ +へ +ほ +ま +み +む +め +も +や +ゆ +よ +ら +り +る +れ +ろ +を +ん +ァ +ア +ィ +イ +ウ +ェ +エ +オ +カ +キ +ク +ケ +コ +サ +シ +ス +セ +タ +チ +ッ +ツ +テ +ト +ナ +ニ +ノ +ハ +ヒ +フ +ヘ +ホ +マ +ミ +ム +メ +モ +ャ +ュ +ョ +ラ +リ +ル +レ +ロ +ワ +ン +・ +ー +一 +三 +上 +下 +不 +世 +中 +主 +久 +之 +也 +事 +二 +五 +井 +京 +人 +亻 +仁 +介 +代 +仮 +伊 +会 +佐 +侍 +保 +信 +健 +元 +光 +八 +公 +内 +出 +分 +前 +劉 +力 +加 +勝 +北 +区 +十 +千 +南 +博 +原 +口 +古 +史 +司 +合 +吉 +同 +名 +和 +囗 +四 +国 +國 +土 +地 +坂 +城 +堂 +場 +士 +夏 +外 +大 +天 +太 +夫 +奈 +女 +子 +学 +宀 +宇 +安 +宗 +定 +宣 +宮 +家 +宿 +寺 +將 +小 +尚 +山 +岡 +島 +崎 +川 +州 +巿 +帝 +平 +年 +幸 +广 +弘 +張 +彳 +後 +御 +德 +心 +忄 +志 +忠 +愛 +成 +我 +戦 +戸 +手 +扌 +政 +文 +新 +方 +日 +明 +星 +春 +昭 +智 +曲 +書 +月 +有 +朝 +木 +本 +李 +村 +東 +松 +林 +森 +楊 +樹 +橋 +歌 +止 +正 +武 +比 +氏 +民 +水 +氵 +氷 +永 +江 +沢 +河 +治 +法 +海 +清 +漢 +瀬 +火 +版 +犬 +王 +生 +田 +男 +疒 +発 +白 +的 +皇 +目 +相 +省 +真 +石 +示 +社 +神 +福 +禾 +秀 +秋 +空 +立 +章 +竹 +糹 +美 +義 +耳 +良 +艹 +花 +英 +華 +葉 +藤 +行 +街 +西 +見 +訁 +語 +谷 +貝 +貴 +車 +軍 +辶 +道 +郎 +郡 +部 +都 +里 +野 +金 +鈴 +镇 +長 +門 +間 +阝 +阿 +陳 +陽 +雄 +青 +面 +風 +食 +香 +馬 +高 +龍 +龸 +fi +fl +! +( +) +, +- +. +/ +: +? +~ +the +of +and +in +to +was +he +is +as +for +on +with +that +it +his +by +at +from +her +##s +she +you +had +an +were +but +be +this +are +not +my +they +one +which +or +have +him +me +first +all +also +their +has +up +who +out +been +when +after +there +into +new +two +its +##a +time +would +no +what +about +said +we +over +then +other +so +more +##e +can +if +like +back +them +only +some +could +##i +where +just +##ing +during +before +##n +do +##o +made +school +through +than +now +years +most +world +may +between +down +well +three +##d +year +while +will +##ed +##r +##y +later +##t +city +under +around +did +such +being +used +state +people +part +know +against +your +many +second +university +both +national +##er +these +don +known +off +way +until +re +how +even +get +head +... +didn +##ly +team +american +because +de +##l +born +united +film +since +still +long +work +south +us +became +any +high +again +day +family +see +right +man +eyes +house +season +war +states +including +took +life +north +same +each +called +name +much +place +however +go +four +group +another +found +won +area +here +going +10 +away +series +left +home +music +best +make +hand +number +company +several +never +last +john +000 +very +album +take +end +good +too +following +released +game +played +little +began +district +##m +old +want +those +side +held +own +early +county +ll +league +use +west +##u +face +think +##es +2010 +government +##h +march +came +small +general +town +june +##on +line +based +something +##k +september +thought +looked +along +international +2011 +air +july +club +went +january +october +our +august +april +york +12 +few +2012 +2008 +east +show +member +college +2009 +father +public +##us +come +men +five +set +station +church +##c +next +former +november +room +party +located +december +2013 +age +got +2007 +##g +system +let +love +2006 +though +every +2014 +look +song +water +century +without +body +black +night +within +great +women +single +ve +building +large +population +river +named +band +white +started +##an +once +15 +20 +should +18 +2015 +service +top +built +british +open +death +king +moved +local +times +children +february +book +why +11 +door +need +president +order +final +road +wasn +although +due +major +died +village +third +knew +2016 +asked +turned +st +wanted +say +##p +together +received +main +son +served +different +##en +behind +himself +felt +members +power +football +law +voice +play +##in +near +park +history +30 +having +2005 +16 +##man +saw +mother +##al +army +point +front +help +english +street +art +late +hands +games +award +##ia +young +14 +put +published +country +division +across +told +13 +often +ever +french +london +center +six +red +2017 +led +days +include +light +25 +find +tell +among +species +really +according +central +half +2004 +form +original +gave +office +making +enough +lost +full +opened +must +included +live +given +german +player +run +business +woman +community +cup +might +million +land +2000 +court +development +17 +short +round +ii +km +seen +class +story +always +become +sure +research +almost +director +council +la +##2 +career +things +using +island +##z +couldn +car +##is +24 +close +force +##1 +better +free +support +control +field +students +2003 +education +married +##b +nothing +worked +others +record +big +inside +level +anything +continued +give +james +##3 +military +established +non +returned +feel +does +title +written +thing +feet +william +far +co +association +hard +already +2002 +##ra +championship +human +western +100 +##na +department +hall +role +various +production +21 +19 +heart +2001 +living +fire +version +##ers +##f +television +royal +##4 +produced +working +act +case +society +region +present +radio +period +looking +least +total +keep +england +wife +program +per +brother +mind +special +22 +##le +am +works +soon +##6 +political +george +services +taken +created +##7 +further +able +reached +david +union +joined +upon +done +important +social +information +either +##ic +##x +appeared +position +ground +lead +rock +dark +election +23 +board +france +hair +course +arms +site +police +girl +instead +real +sound +##v +words +moment +##te +someone +##8 +summer +project +announced +san +less +wrote +past +followed +##5 +blue +founded +al +finally +india +taking +records +america +##ne +1999 +design +considered +northern +god +stop +battle +toward +european +outside +described +track +today +playing +language +28 +call +26 +heard +professional +low +australia +miles +california +win +yet +green +##ie +trying +blood +##ton +southern +science +maybe +everything +match +square +27 +mouth +video +race +recorded +leave +above +##9 +daughter +points +space +1998 +museum +change +middle +common +##0 +move +tv +post +##ta +lake +seven +tried +elected +closed +ten +paul +minister +##th +months +start +chief +return +canada +person +sea +release +similar +modern +brought +rest +hit +formed +mr +##la +1997 +floor +event +doing +thomas +1996 +robert +care +killed +training +star +week +needed +turn +finished +railway +rather +news +health +sent +example +ran +term +michael +coming +currently +yes +forces +despite +gold +areas +50 +stage +fact +29 +dead +says +popular +2018 +originally +germany +probably +developed +result +pulled +friend +stood +money +running +mi +signed +word +songs +child +eventually +met +tour +average +teams +minutes +festival +current +deep +kind +1995 +decided +usually +eastern +seemed +##ness +episode +bed +added +table +indian +private +charles +route +available +idea +throughout +centre +addition +appointed +style +1994 +books +eight +construction +press +mean +wall +friends +remained +schools +study +##ch +##um +institute +oh +chinese +sometimes +events +possible +1992 +australian +type +brown +forward +talk +process +food +debut +seat +performance +committee +features +character +arts +herself +else +lot +strong +russian +range +hours +peter +arm +##da +morning +dr +sold +##ry +quickly +directed +1993 +guitar +china +##w +31 +list +##ma +performed +media +uk +players +smile +##rs +myself +40 +placed +coach +province +towards +wouldn +leading +whole +boy +official +designed +grand +census +##el +europe +attack +japanese +henry +1991 +##re +##os +cross +getting +alone +action +lower +network +wide +washington +japan +1990 +hospital +believe +changed +sister +##ar +hold +gone +sir +hadn +ship +##ka +studies +academy +shot +rights +below +base +bad +involved +kept +largest +##ist +bank +future +especially +beginning +mark +movement +section +female +magazine +plan +professor +lord +longer +##ian +sat +walked +hill +actually +civil +energy +model +families +size +thus +aircraft +completed +includes +data +captain +##or +fight +vocals +featured +richard +bridge +fourth +1989 +officer +stone +hear +##ism +means +medical +groups +management +self +lips +competition +entire +lived +technology +leaving +federal +tournament +bit +passed +hot +independent +awards +kingdom +mary +spent +fine +doesn +reported +##ling +jack +fall +raised +itself +stay +true +studio +1988 +sports +replaced +paris +systems +saint +leader +theatre +whose +market +capital +parents +spanish +canadian +earth +##ity +cut +degree +writing +bay +christian +awarded +natural +higher +bill +##as +coast +provided +previous +senior +ft +valley +organization +stopped +onto +countries +parts +conference +queen +security +interest +saying +allowed +master +earlier +phone +matter +smith +winning +try +happened +moving +campaign +los +##ley +breath +nearly +mid +1987 +certain +girls +date +italian +african +standing +fell +artist +##ted +shows +deal +mine +industry +1986 +##ng +everyone +republic +provide +collection +library +student +##ville +primary +owned +older +via +heavy +1st +makes +##able +attention +anyone +africa +##ri +stated +length +ended +fingers +command +staff +skin +foreign +opening +governor +okay +medal +kill +sun +cover +job +1985 +introduced +chest +hell +feeling +##ies +success +meet +reason +standard +meeting +novel +1984 +trade +source +buildings +##land +rose +guy +goal +##ur +chapter +native +husband +previously +unit +limited +entered +weeks +producer +operations +mountain +takes +covered +forced +related +roman +complete +successful +key +texas +cold +##ya +channel +1980 +traditional +films +dance +clear +approximately +500 +nine +van +prince +question +active +tracks +ireland +regional +silver +author +personal +sense +operation +##ine +economic +1983 +holding +twenty +isbn +additional +speed +hour +edition +regular +historic +places +whom +shook +movie +km² +secretary +prior +report +chicago +read +foundation +view +engine +scored +1982 +units +ask +airport +property +ready +immediately +lady +month +listed +contract +##de +manager +themselves +lines +##ki +navy +writer +meant +##ts +runs +##ro +practice +championships +singer +glass +commission +required +forest +starting +culture +generally +giving +access +attended +test +couple +stand +catholic +martin +caught +executive +##less +eye +##ey +thinking +chair +quite +shoulder +1979 +hope +decision +plays +defeated +municipality +whether +structure +offered +slowly +pain +ice +direction +##ion +paper +mission +1981 +mostly +200 +noted +individual +managed +nature +lives +plant +##ha +helped +except +studied +computer +figure +relationship +issue +significant +loss +die +smiled +gun +ago +highest +1972 +##am +male +bring +goals +mexico +problem +distance +commercial +completely +location +annual +famous +drive +1976 +neck +1978 +surface +caused +italy +understand +greek +highway +wrong +hotel +comes +appearance +joseph +double +issues +musical +companies +castle +income +review +assembly +bass +initially +parliament +artists +experience +1974 +particular +walk +foot +engineering +talking +window +dropped +##ter +miss +baby +boys +break +1975 +stars +edge +remember +policy +carried +train +stadium +bar +sex +angeles +evidence +##ge +becoming +assistant +soviet +1977 +upper +step +wing +1970 +youth +financial +reach +##ll +actor +numerous +##se +##st +nodded +arrived +##ation +minute +##nt +believed +sorry +complex +beautiful +victory +associated +temple +1968 +1973 +chance +perhaps +metal +##son +1945 +bishop +##et +lee +launched +particularly +tree +le +retired +subject +prize +contains +yeah +theory +empire +##ce +suddenly +waiting +trust +recording +##to +happy +terms +camp +champion +1971 +religious +pass +zealand +names +2nd +port +ancient +tom +corner +represented +watch +legal +anti +justice +cause +watched +brothers +45 +material +changes +simply +response +louis +fast +##ting +answer +60 +historical +1969 +stories +straight +create +feature +increased +rate +administration +virginia +el +activities +cultural +overall +winner +programs +basketball +legs +guard +beyond +cast +doctor +mm +flight +results +remains +cost +effect +winter +##ble +larger +islands +problems +chairman +grew +commander +isn +1967 +pay +failed +selected +hurt +fort +box +regiment +majority +journal +35 +edward +plans +##ke +##ni +shown +pretty +irish +characters +directly +scene +likely +operated +allow +spring +##j +junior +matches +looks +mike +houses +fellow +##tion +beach +marriage +##ham +##ive +rules +oil +65 +florida +expected +nearby +congress +sam +peace +recent +iii +wait +subsequently +cell +##do +variety +serving +agreed +please +poor +joe +pacific +attempt +wood +democratic +piece +prime +##ca +rural +mile +touch +appears +township +1964 +1966 +soldiers +##men +##ized +1965 +pennsylvania +closer +fighting +claimed +score +jones +physical +editor +##ous +filled +genus +specific +sitting +super +mom +##va +therefore +supported +status +fear +cases +store +meaning +wales +minor +spain +tower +focus +vice +frank +follow +parish +separate +golden +horse +fifth +remaining +branch +32 +presented +stared +##id +uses +secret +forms +##co +baseball +exactly +##ck +choice +note +discovered +travel +composed +truth +russia +ball +color +kiss +dad +wind +continue +ring +referred +numbers +digital +greater +##ns +metres +slightly +direct +increase +1960 +responsible +crew +rule +trees +troops +##no +broke +goes +individuals +hundred +weight +creek +sleep +memory +defense +provides +ordered +code +value +jewish +windows +1944 +safe +judge +whatever +corps +realized +growing +pre +##ga +cities +alexander +gaze +lies +spread +scott +letter +showed +situation +mayor +transport +watching +workers +extended +##li +expression +normal +##ment +chart +multiple +border +##ba +host +##ner +daily +mrs +walls +piano +##ko +heat +cannot +##ate +earned +products +drama +era +authority +seasons +join +grade +##io +sign +difficult +machine +1963 +territory +mainly +##wood +stations +squadron +1962 +stepped +iron +19th +##led +serve +appear +sky +speak +broken +charge +knowledge +kilometres +removed +ships +article +campus +simple +##ty +pushed +britain +##ve +leaves +recently +cd +soft +boston +latter +easy +acquired +poland +##sa +quality +officers +presence +planned +nations +mass +broadcast +jean +share +image +influence +wild +offer +emperor +electric +reading +headed +ability +promoted +yellow +ministry +1942 +throat +smaller +politician +##by +latin +spoke +cars +williams +males +lack +pop +80 +##ier +acting +seeing +consists +##ti +estate +1961 +pressure +johnson +newspaper +jr +chris +olympics +online +conditions +beat +elements +walking +vote +##field +needs +carolina +text +featuring +global +block +shirt +levels +francisco +purpose +females +et +dutch +duke +ahead +gas +twice +safety +serious +turning +highly +lieutenant +firm +maria +amount +mixed +daniel +proposed +perfect +agreement +affairs +3rd +seconds +contemporary +paid +1943 +prison +save +kitchen +label +administrative +intended +constructed +academic +nice +teacher +races +1956 +formerly +corporation +ben +nation +issued +shut +1958 +drums +housing +victoria +seems +opera +1959 +graduated +function +von +mentioned +picked +build +recognized +shortly +protection +picture +notable +exchange +elections +1980s +loved +percent +racing +fish +elizabeth +garden +volume +hockey +1941 +beside +settled +##ford +1940 +competed +replied +drew +1948 +actress +marine +scotland +steel +glanced +farm +steve +1957 +risk +tonight +positive +magic +singles +effects +gray +screen +dog +##ja +residents +bus +sides +none +secondary +literature +polish +destroyed +flying +founder +households +1939 +lay +reserve +usa +gallery +##ler +1946 +industrial +younger +approach +appearances +urban +ones +1950 +finish +avenue +powerful +fully +growth +page +honor +jersey +projects +advanced +revealed +basic +90 +infantry +pair +equipment +visit +33 +evening +search +grant +effort +solo +treatment +buried +republican +primarily +bottom +owner +1970s +israel +gives +jim +dream +bob +remain +spot +70 +notes +produce +champions +contact +ed +soul +accepted +ways +del +##ally +losing +split +price +capacity +basis +trial +questions +##ina +1955 +20th +guess +officially +memorial +naval +initial +##ization +whispered +median +engineer +##ful +sydney +##go +columbia +strength +300 +1952 +tears +senate +00 +card +asian +agent +1947 +software +44 +draw +warm +supposed +com +pro +##il +transferred +leaned +##at +candidate +escape +mountains +asia +potential +activity +entertainment +seem +traffic +jackson +murder +36 +slow +product +orchestra +haven +agency +bbc +taught +website +comedy +unable +storm +planning +albums +rugby +environment +scientific +grabbed +protect +##hi +boat +typically +1954 +1953 +damage +principal +divided +dedicated +mount +ohio +##berg +pick +fought +driver +##der +empty +shoulders +sort +thank +berlin +prominent +account +freedom +necessary +efforts +alex +headquarters +follows +alongside +des +simon +andrew +suggested +operating +learning +steps +1949 +sweet +technical +begin +easily +34 +teeth +speaking +settlement +scale +##sh +renamed +ray +max +enemy +semi +joint +compared +##rd +scottish +leadership +analysis +offers +georgia +pieces +captured +animal +deputy +guest +organized +##lin +tony +combined +method +challenge +1960s +huge +wants +battalion +sons +rise +crime +types +facilities +telling +path +1951 +platform +sit +1990s +##lo +tells +assigned +rich +pull +##ot +commonly +alive +##za +letters +concept +conducted +wearing +happen +bought +becomes +holy +gets +ocean +defeat +languages +purchased +coffee +occurred +titled +##q +declared +applied +sciences +concert +sounds +jazz +brain +##me +painting +fleet +tax +nick +##ius +michigan +count +animals +leaders +episodes +##line +content +##den +birth +##it +clubs +64 +palace +critical +refused +fair +leg +laughed +returning +surrounding +participated +formation +lifted +pointed +connected +rome +medicine +laid +taylor +santa +powers +adam +tall +shared +focused +knowing +yards +entrance +falls +##wa +calling +##ad +sources +chosen +beneath +resources +yard +##ite +nominated +silence +zone +defined +##que +gained +thirty +38 +bodies +moon +##ard +adopted +christmas +widely +register +apart +iran +premier +serves +du +unknown +parties +##les +generation +##ff +continues +quick +fields +brigade +quiet +teaching +clothes +impact +weapons +partner +flat +theater +supreme +1938 +37 +relations +##tor +plants +suffered +1936 +wilson +kids +begins +##age +1918 +seats +armed +internet +models +worth +laws +400 +communities +classes +background +knows +thanks +quarter +reaching +humans +carry +killing +format +kong +hong +setting +75 +architecture +disease +railroad +inc +possibly +wish +arthur +thoughts +harry +doors +density +##di +crowd +illinois +stomach +tone +unique +reports +anyway +##ir +liberal +der +vehicle +thick +dry +drug +faced +largely +facility +theme +holds +creation +strange +colonel +##mi +revolution +bell +politics +turns +silent +rail +relief +independence +combat +shape +write +determined +sales +learned +4th +finger +oxford +providing +1937 +heritage +fiction +situated +designated +allowing +distribution +hosted +##est +sight +interview +estimated +reduced +##ria +toronto +footballer +keeping +guys +damn +claim +motion +sport +sixth +stayed +##ze +en +rear +receive +handed +twelve +dress +audience +granted +brazil +##well +spirit +##ated +noticed +etc +olympic +representative +eric +tight +trouble +reviews +drink +vampire +missing +roles +ranked +newly +household +finals +wave +critics +##ee +phase +massachusetts +pilot +unlike +philadelphia +bright +guns +crown +organizations +roof +42 +respectively +clearly +tongue +marked +circle +fox +korea +bronze +brian +expanded +sexual +supply +yourself +inspired +labour +fc +##ah +reference +vision +draft +connection +brand +reasons +1935 +classic +driving +trip +jesus +cells +entry +1920 +neither +trail +claims +atlantic +orders +labor +nose +afraid +identified +intelligence +calls +cancer +attacked +passing +stephen +positions +imperial +grey +jason +39 +sunday +48 +swedish +avoid +extra +uncle +message +covers +allows +surprise +materials +fame +hunter +##ji +1930 +citizens +figures +davis +environmental +confirmed +shit +titles +di +performing +difference +acts +attacks +##ov +existing +votes +opportunity +nor +shop +entirely +trains +opposite +pakistan +##pa +develop +resulted +representatives +actions +reality +pressed +##ish +barely +wine +conversation +faculty +northwest +ends +documentary +nuclear +stock +grace +sets +eat +alternative +##ps +bag +resulting +creating +surprised +cemetery +1919 +drop +finding +sarah +cricket +streets +tradition +ride +1933 +exhibition +target +ear +explained +rain +composer +injury +apartment +municipal +educational +occupied +netherlands +clean +billion +constitution +learn +1914 +maximum +classical +francis +lose +opposition +jose +ontario +bear +core +hills +rolled +ending +drawn +permanent +fun +##tes +##lla +lewis +sites +chamber +ryan +##way +scoring +height +1934 +##house +lyrics +staring +55 +officials +1917 +snow +oldest +##tic +orange +##ger +qualified +interior +apparently +succeeded +thousand +dinner +lights +existence +fans +heavily +41 +greatest +conservative +send +bowl +plus +enter +catch +##un +economy +duty +1929 +speech +authorities +princess +performances +versions +shall +graduate +pictures +effective +remembered +poetry +desk +crossed +starring +starts +passenger +sharp +##ant +acres +ass +weather +falling +rank +fund +supporting +check +adult +publishing +heads +cm +southeast +lane +##burg +application +bc +##ura +les +condition +transfer +prevent +display +ex +regions +earl +federation +cool +relatively +answered +besides +1928 +obtained +portion +##town +mix +##ding +reaction +liked +dean +express +peak +1932 +##tte +counter +religion +chain +rare +miller +convention +aid +lie +vehicles +mobile +perform +squad +wonder +lying +crazy +sword +##ping +attempted +centuries +weren +philosophy +category +##ize +anna +interested +47 +sweden +wolf +frequently +abandoned +kg +literary +alliance +task +entitled +##ay +threw +promotion +factory +tiny +soccer +visited +matt +fm +achieved +52 +defence +internal +persian +43 +methods +##ging +arrested +otherwise +cambridge +programming +villages +elementary +districts +rooms +criminal +conflict +worry +trained +1931 +attempts +waited +signal +bird +truck +subsequent +programme +##ol +ad +49 +communist +details +faith +sector +patrick +carrying +laugh +##ss +controlled +korean +showing +origin +fuel +evil +1927 +##ent +brief +identity +darkness +address +pool +missed +publication +web +planet +ian +anne +wings +invited +##tt +briefly +standards +kissed +##be +ideas +climate +causing +walter +worse +albert +articles +winners +desire +aged +northeast +dangerous +gate +doubt +1922 +wooden +multi +##ky +poet +rising +funding +46 +communications +communication +violence +copies +prepared +ford +investigation +skills +1924 +pulling +electronic +##ak +##ial +##han +containing +ultimately +offices +singing +understanding +restaurant +tomorrow +fashion +christ +ward +da +pope +stands +5th +flow +studios +aired +commissioned +contained +exist +fresh +americans +##per +wrestling +approved +kid +employed +respect +suit +1925 +angel +asking +increasing +frame +angry +selling +1950s +thin +finds +##nd +temperature +statement +ali +explain +inhabitants +towns +extensive +narrow +51 +jane +flowers +images +promise +somewhere +object +fly +closely +##ls +1912 +bureau +cape +1926 +weekly +presidential +legislative +1921 +##ai +##au +launch +founding +##ny +978 +##ring +artillery +strike +un +institutions +roll +writers +landing +chose +kevin +anymore +pp +##ut +attorney +fit +dan +billboard +receiving +agricultural +breaking +sought +dave +admitted +lands +mexican +##bury +charlie +specifically +hole +iv +howard +credit +moscow +roads +accident +1923 +proved +wear +struck +hey +guards +stuff +slid +expansion +1915 +cat +anthony +##kin +melbourne +opposed +sub +southwest +architect +failure +plane +1916 +##ron +map +camera +tank +listen +regarding +wet +introduction +metropolitan +link +ep +fighter +inch +grown +gene +anger +fixed +buy +dvd +khan +domestic +worldwide +chapel +mill +functions +examples +##head +developing +1910 +turkey +hits +pocket +antonio +papers +grow +unless +circuit +18th +concerned +attached +journalist +selection +journey +converted +provincial +painted +hearing +aren +bands +negative +aside +wondered +knight +lap +survey +ma +##ow +noise +billy +##ium +shooting +guide +bedroom +priest +resistance +motor +homes +sounded +giant +##mer +150 +scenes +equal +comic +patients +hidden +solid +actual +bringing +afternoon +touched +funds +wedding +consisted +marie +canal +sr +kim +treaty +turkish +recognition +residence +cathedral +broad +knees +incident +shaped +fired +norwegian +handle +cheek +contest +represent +##pe +representing +beauty +##sen +birds +advantage +emergency +wrapped +drawing +notice +pink +broadcasting +##ong +somehow +bachelor +seventh +collected +registered +establishment +alan +assumed +chemical +personnel +roger +retirement +jeff +portuguese +wore +tied +device +threat +progress +advance +##ised +banks +hired +manchester +nfl +teachers +structures +forever +##bo +tennis +helping +saturday +sale +applications +junction +hip +incorporated +neighborhood +dressed +ceremony +##ds +influenced +hers +visual +stairs +decades +inner +kansas +hung +hoped +gain +scheduled +downtown +engaged +austria +clock +norway +certainly +pale +protected +1913 +victor +employees +plate +putting +surrounded +##ists +finishing +blues +tropical +##ries +minnesota +consider +philippines +accept +54 +retrieved +1900 +concern +anderson +properties +institution +gordon +successfully +vietnam +##dy +backing +outstanding +muslim +crossing +folk +producing +usual +demand +occurs +observed +lawyer +educated +##ana +kelly +string +pleasure +budget +items +quietly +colorado +philip +typical +##worth +derived +600 +survived +asks +mental +##ide +56 +jake +jews +distinguished +ltd +1911 +sri +extremely +53 +athletic +loud +thousands +worried +shadow +transportation +horses +weapon +arena +importance +users +tim +objects +contributed +dragon +douglas +aware +senator +johnny +jordan +sisters +engines +flag +investment +samuel +shock +capable +clark +row +wheel +refers +session +familiar +biggest +wins +hate +maintained +drove +hamilton +request +expressed +injured +underground +churches +walker +wars +tunnel +passes +stupid +agriculture +softly +cabinet +regarded +joining +indiana +##ea +##ms +push +dates +spend +behavior +woods +protein +gently +chase +morgan +mention +burning +wake +combination +occur +mirror +leads +jimmy +indeed +impossible +singapore +paintings +covering +##nes +soldier +locations +attendance +sell +historian +wisconsin +invasion +argued +painter +diego +changing +egypt +##don +experienced +inches +##ku +missouri +vol +grounds +spoken +switzerland +##gan +reform +rolling +ha +forget +massive +resigned +burned +allen +tennessee +locked +values +improved +##mo +wounded +universe +sick +dating +facing +pack +purchase +user +##pur +moments +##ul +merged +anniversary +1908 +coal +brick +understood +causes +dynasty +queensland +establish +stores +crisis +promote +hoping +views +cards +referee +extension +##si +raise +arizona +improve +colonial +formal +charged +##rt +palm +lucky +hide +rescue +faces +95 +feelings +candidates +juan +##ell +goods +6th +courses +weekend +59 +luke +cash +fallen +##om +delivered +affected +installed +carefully +tries +swiss +hollywood +costs +lincoln +responsibility +##he +shore +file +proper +normally +maryland +assistance +jump +constant +offering +friendly +waters +persons +realize +contain +trophy +800 +partnership +factor +58 +musicians +cry +bound +oregon +indicated +hero +houston +medium +##ure +consisting +somewhat +##ara +57 +cycle +##che +beer +moore +frederick +gotten +eleven +worst +weak +approached +arranged +chin +loan +universal +bond +fifteen +pattern +disappeared +##ney +translated +##zed +lip +arab +capture +interests +insurance +##chi +shifted +cave +prix +warning +sections +courts +coat +plot +smell +feed +golf +favorite +maintain +knife +vs +voted +degrees +finance +quebec +opinion +translation +manner +ruled +operate +productions +choose +musician +discovery +confused +tired +separated +stream +techniques +committed +attend +ranking +kings +throw +passengers +measure +horror +fan +mining +sand +danger +salt +calm +decade +dam +require +runner +##ik +rush +associate +greece +##ker +rivers +consecutive +matthew +##ski +sighed +sq +documents +steam +edited +closing +tie +accused +1905 +##ini +islamic +distributed +directors +organisation +bruce +7th +breathing +mad +lit +arrival +concrete +taste +08 +composition +shaking +faster +amateur +adjacent +stating +1906 +twin +flew +##ran +tokyo +publications +##tone +obviously +ridge +storage +1907 +carl +pages +concluded +desert +driven +universities +ages +terminal +sequence +borough +250 +constituency +creative +cousin +economics +dreams +margaret +notably +reduce +montreal +mode +17th +ears +saved +jan +vocal +##ica +1909 +andy +##jo +riding +roughly +threatened +##ise +meters +meanwhile +landed +compete +repeated +grass +czech +regularly +charges +tea +sudden +appeal +##ung +solution +describes +pierre +classification +glad +parking +##ning +belt +physics +99 +rachel +add +hungarian +participate +expedition +damaged +gift +childhood +85 +fifty +##red +mathematics +jumped +letting +defensive +mph +##ux +##gh +testing +##hip +hundreds +shoot +owners +matters +smoke +israeli +kentucky +dancing +mounted +grandfather +emma +designs +profit +argentina +##gs +truly +li +lawrence +cole +begun +detroit +willing +branches +smiling +decide +miami +enjoyed +recordings +##dale +poverty +ethnic +gay +##bi +gary +arabic +09 +accompanied +##one +##ons +fishing +determine +residential +acid +##ary +alice +returns +starred +mail +##ang +jonathan +strategy +##ue +net +forty +cook +businesses +equivalent +commonwealth +distinct +ill +##cy +seriously +##ors +##ped +shift +harris +replace +rio +imagine +formula +ensure +##ber +additionally +scheme +conservation +occasionally +purposes +feels +favor +##and +##ore +1930s +contrast +hanging +hunt +movies +1904 +instruments +victims +danish +christopher +busy +demon +sugar +earliest +colony +studying +balance +duties +##ks +belgium +slipped +carter +05 +visible +stages +iraq +fifa +##im +commune +forming +zero +07 +continuing +talked +counties +legend +bathroom +option +tail +clay +daughters +afterwards +severe +jaw +visitors +##ded +devices +aviation +russell +kate +##vi +entering +subjects +##ino +temporary +swimming +forth +smooth +ghost +audio +bush +operates +rocks +movements +signs +eddie +##tz +ann +voices +honorary +06 +memories +dallas +pure +measures +racial +promised +66 +harvard +ceo +16th +parliamentary +indicate +benefit +flesh +dublin +louisiana +1902 +1901 +patient +sleeping +1903 +membership +coastal +medieval +wanting +element +scholars +rice +62 +limit +survive +makeup +rating +definitely +collaboration +obvious +##tan +boss +ms +baron +birthday +linked +soil +diocese +##lan +ncaa +##mann +offensive +shell +shouldn +waist +##tus +plain +ross +organ +resolution +manufacturing +adding +relative +kennedy +98 +whilst +moth +marketing +gardens +crash +72 +heading +partners +credited +carlos +moves +cable +##zi +marshall +##out +depending +bottle +represents +rejected +responded +existed +04 +jobs +denmark +lock +##ating +treated +graham +routes +talent +commissioner +drugs +secure +tests +reign +restored +photography +##gi +contributions +oklahoma +designer +disc +grin +seattle +robin +paused +atlanta +unusual +##gate +praised +las +laughing +satellite +hungary +visiting +##sky +interesting +factors +deck +poems +norman +##water +stuck +speaker +rifle +domain +premiered +##her +dc +comics +actors +01 +reputation +eliminated +8th +ceiling +prisoners +script +##nce +leather +austin +mississippi +rapidly +admiral +parallel +charlotte +guilty +tools +gender +divisions +fruit +##bs +laboratory +nelson +fantasy +marry +rapid +aunt +tribe +requirements +aspects +suicide +amongst +adams +bone +ukraine +abc +kick +sees +edinburgh +clothing +column +rough +gods +hunting +broadway +gathered +concerns +##ek +spending +ty +12th +snapped +requires +solar +bones +cavalry +##tta +iowa +drinking +waste +index +franklin +charity +thompson +stewart +tip +flash +landscape +friday +enjoy +singh +poem +listening +##back +eighth +fred +differences +adapted +bomb +ukrainian +surgery +corporate +masters +anywhere +##more +waves +odd +sean +portugal +orleans +dick +debate +kent +eating +puerto +cleared +96 +expect +cinema +97 +guitarist +blocks +electrical +agree +involving +depth +dying +panel +struggle +##ged +peninsula +adults +novels +emerged +vienna +metro +debuted +shoes +tamil +songwriter +meets +prove +beating +instance +heaven +scared +sending +marks +artistic +passage +superior +03 +significantly +shopping +##tive +retained +##izing +malaysia +technique +cheeks +##ola +warren +maintenance +destroy +extreme +allied +120 +appearing +##yn +fill +advice +alabama +qualifying +policies +cleveland +hat +battery +smart +authors +10th +soundtrack +acted +dated +lb +glance +equipped +coalition +funny +outer +ambassador +roy +possibility +couples +campbell +dna +loose +ethan +supplies +1898 +gonna +88 +monster +##res +shake +agents +frequency +springs +dogs +practices +61 +gang +plastic +easier +suggests +gulf +blade +exposed +colors +industries +markets +pan +nervous +electoral +charts +legislation +ownership +##idae +mac +appointment +shield +copy +assault +socialist +abbey +monument +license +throne +employment +jay +93 +replacement +charter +cloud +powered +suffering +accounts +oak +connecticut +strongly +wright +colour +crystal +13th +context +welsh +networks +voiced +gabriel +jerry +##cing +forehead +mp +##ens +manage +schedule +totally +remix +##ii +forests +occupation +print +nicholas +brazilian +strategic +vampires +engineers +76 +roots +seek +correct +instrumental +und +alfred +backed +hop +##des +stanley +robinson +traveled +wayne +welcome +austrian +achieve +67 +exit +rates +1899 +strip +whereas +##cs +sing +deeply +adventure +bobby +rick +jamie +careful +components +cap +useful +personality +knee +##shi +pushing +hosts +02 +protest +ca +ottoman +symphony +##sis +63 +boundary +1890 +processes +considering +considerable +tons +##work +##ft +##nia +cooper +trading +dear +conduct +91 +illegal +apple +revolutionary +holiday +definition +harder +##van +jacob +circumstances +destruction +##lle +popularity +grip +classified +liverpool +donald +baltimore +flows +seeking +honour +approval +92 +mechanical +till +happening +statue +critic +increasingly +immediate +describe +commerce +stare +##ster +indonesia +meat +rounds +boats +baker +orthodox +depression +formally +worn +naked +claire +muttered +sentence +11th +emily +document +77 +criticism +wished +vessel +spiritual +bent +virgin +parker +minimum +murray +lunch +danny +printed +compilation +keyboards +false +blow +belonged +68 +raising +78 +cutting +##board +pittsburgh +##up +9th +shadows +81 +hated +indigenous +jon +15th +barry +scholar +ah +##zer +oliver +##gy +stick +susan +meetings +attracted +spell +romantic +##ver +ye +1895 +photo +demanded +customers +##ac +1896 +logan +revival +keys +modified +commanded +jeans +##ious +upset +raw +phil +detective +hiding +resident +vincent +##bly +experiences +diamond +defeating +coverage +lucas +external +parks +franchise +helen +bible +successor +percussion +celebrated +il +lift +profile +clan +romania +##ied +mills +##su +nobody +achievement +shrugged +fault +1897 +rhythm +initiative +breakfast +carbon +700 +69 +lasted +violent +74 +wound +ken +killer +gradually +filmed +°c +dollars +processing +94 +remove +criticized +guests +sang +chemistry +##vin +legislature +disney +##bridge +uniform +escaped +integrated +proposal +purple +denied +liquid +karl +influential +morris +nights +stones +intense +experimental +twisted +71 +84 +##ld +pace +nazi +mitchell +ny +blind +reporter +newspapers +14th +centers +burn +basin +forgotten +surviving +filed +collections +monastery +losses +manual +couch +description +appropriate +merely +tag +missions +sebastian +restoration +replacing +triple +73 +elder +julia +warriors +benjamin +julian +convinced +stronger +amazing +declined +versus +merchant +happens +output +finland +bare +barbara +absence +ignored +dawn +injuries +##port +producers +##ram +82 +luis +##ities +kw +admit +expensive +electricity +nba +exception +symbol +##ving +ladies +shower +sheriff +characteristics +##je +aimed +button +ratio +effectively +summit +angle +jury +bears +foster +vessels +pants +executed +evans +dozen +advertising +kicked +patrol +1889 +competitions +lifetime +principles +athletics +##logy +birmingham +sponsored +89 +rob +nomination +1893 +acoustic +##sm +creature +longest +##tra +credits +harbor +dust +josh +##so +territories +milk +infrastructure +completion +thailand +indians +leon +archbishop +##sy +assist +pitch +blake +arrangement +girlfriend +serbian +operational +hence +sad +scent +fur +dj +sessions +hp +refer +rarely +##ora +exists +1892 +##ten +scientists +dirty +penalty +burst +portrait +seed +79 +pole +limits +rival +1894 +stable +alpha +grave +constitutional +alcohol +arrest +flower +mystery +devil +architectural +relationships +greatly +habitat +##istic +larry +progressive +remote +cotton +##ics +##ok +preserved +reaches +##ming +cited +86 +vast +scholarship +decisions +cbs +joy +teach +1885 +editions +knocked +eve +searching +partly +participation +gap +animated +fate +excellent +##ett +na +87 +alternate +saints +youngest +##ily +climbed +##ita +##tors +suggest +##ct +discussion +staying +choir +lakes +jacket +revenue +nevertheless +peaked +instrument +wondering +annually +managing +neil +1891 +signing +terry +##ice +apply +clinical +brooklyn +aim +catherine +fuck +farmers +figured +ninth +pride +hugh +evolution +ordinary +involvement +comfortable +shouted +tech +encouraged +taiwan +representation +sharing +##lia +##em +panic +exact +cargo +competing +fat +cried +83 +1920s +occasions +pa +cabin +borders +utah +marcus +##isation +badly +muscles +##ance +victorian +transition +warner +bet +permission +##rin +slave +terrible +similarly +shares +seth +uefa +possession +medals +benefits +colleges +lowered +perfectly +mall +transit +##ye +##kar +publisher +##ened +harrison +deaths +elevation +##ae +asleep +machines +sigh +ash +hardly +argument +occasion +parent +leo +decline +1888 +contribution +##ua +concentration +1000 +opportunities +hispanic +guardian +extent +emotions +hips +mason +volumes +bloody +controversy +diameter +steady +mistake +phoenix +identify +violin +##sk +departure +richmond +spin +funeral +enemies +1864 +gear +literally +connor +random +sergeant +grab +confusion +1865 +transmission +informed +op +leaning +sacred +suspended +thinks +gates +portland +luck +agencies +yours +hull +expert +muscle +layer +practical +sculpture +jerusalem +latest +lloyd +statistics +deeper +recommended +warrior +arkansas +mess +supports +greg +eagle +1880 +recovered +rated +concerts +rushed +##ano +stops +eggs +files +premiere +keith +##vo +delhi +turner +pit +affair +belief +paint +##zing +mate +##ach +##ev +victim +##ology +withdrew +bonus +styles +fled +##ud +glasgow +technologies +funded +nbc +adaptation +##ata +portrayed +cooperation +supporters +judges +bernard +justin +hallway +ralph +##ick +graduating +controversial +distant +continental +spider +bite +##ho +recognize +intention +mixing +##ese +egyptian +bow +tourism +suppose +claiming +tiger +dominated +participants +vi +##ru +nurse +partially +tape +##rum +psychology +##rn +essential +touring +duo +voting +civilian +emotional +channels +##king +apparent +hebrew +1887 +tommy +carrier +intersection +beast +hudson +##gar +##zo +lab +nova +bench +discuss +costa +##ered +detailed +behalf +drivers +unfortunately +obtain +##lis +rocky +##dae +siege +friendship +honey +##rian +1861 +amy +hang +posted +governments +collins +respond +wildlife +preferred +operator +##po +laura +pregnant +videos +dennis +suspected +boots +instantly +weird +automatic +businessman +alleged +placing +throwing +ph +mood +1862 +perry +venue +jet +remainder +##lli +##ci +passion +biological +boyfriend +1863 +dirt +buffalo +ron +segment +fa +abuse +##era +genre +thrown +stroke +colored +stress +exercise +displayed +##gen +struggled +##tti +abroad +dramatic +wonderful +thereafter +madrid +component +widespread +##sed +tale +citizen +todd +monday +1886 +vancouver +overseas +forcing +crying +descent +##ris +discussed +substantial +ranks +regime +1870 +provinces +switch +drum +zane +ted +tribes +proof +lp +cream +researchers +volunteer +manor +silk +milan +donated +allies +venture +principle +delivery +enterprise +##ves +##ans +bars +traditionally +witch +reminded +copper +##uk +pete +inter +links +colin +grinned +elsewhere +competitive +frequent +##oy +scream +##hu +tension +texts +submarine +finnish +defending +defend +pat +detail +1884 +affiliated +stuart +themes +villa +periods +tool +belgian +ruling +crimes +answers +folded +licensed +resort +demolished +hans +lucy +1881 +lion +traded +photographs +writes +craig +##fa +trials +generated +beth +noble +debt +percentage +yorkshire +erected +ss +viewed +grades +confidence +ceased +islam +telephone +retail +##ible +chile +m² +roberts +sixteen +##ich +commented +hampshire +innocent +dual +pounds +checked +regulations +afghanistan +sung +rico +liberty +assets +bigger +options +angels +relegated +tribute +wells +attending +leaf +##yan +butler +romanian +forum +monthly +lisa +patterns +gmina +##tory +madison +hurricane +rev +##ians +bristol +##ula +elite +valuable +disaster +democracy +awareness +germans +freyja +##ins +loop +absolutely +paying +populations +maine +sole +prayer +spencer +releases +doorway +bull +##ani +lover +midnight +conclusion +##sson +thirteen +lily +mediterranean +##lt +nhl +proud +sample +##hill +drummer +guinea +##ova +murphy +climb +##ston +instant +attributed +horn +ain +railways +steven +##ao +autumn +ferry +opponent +root +traveling +secured +corridor +stretched +tales +sheet +trinity +cattle +helps +indicates +manhattan +murdered +fitted +1882 +gentle +grandmother +mines +shocked +vegas +produces +##light +caribbean +##ou +belong +continuous +desperate +drunk +historically +trio +waved +raf +dealing +nathan +bat +murmured +interrupted +residing +scientist +pioneer +harold +aaron +##net +delta +attempting +minority +mini +believes +chorus +tend +lots +eyed +indoor +load +shots +updated +jail +##llo +concerning +connecting +wealth +##ved +slaves +arrive +rangers +sufficient +rebuilt +##wick +cardinal +flood +muhammad +whenever +relation +runners +moral +repair +viewers +arriving +revenge +punk +assisted +bath +fairly +breathe +lists +innings +illustrated +whisper +nearest +voters +clinton +ties +ultimate +screamed +beijing +lions +andre +fictional +gathering +comfort +radar +suitable +dismissed +hms +ban +pine +wrist +atmosphere +voivodeship +bid +timber +##ned +##nan +giants +##ane +cameron +recovery +uss +identical +categories +switched +serbia +laughter +noah +ensemble +therapy +peoples +touching +##off +locally +pearl +platforms +everywhere +ballet +tables +lanka +herbert +outdoor +toured +derek +1883 +spaces +contested +swept +1878 +exclusive +slight +connections +##dra +winds +prisoner +collective +bangladesh +tube +publicly +wealthy +thai +##ys +isolated +select +##ric +insisted +pen +fortune +ticket +spotted +reportedly +animation +enforcement +tanks +110 +decides +wider +lowest +owen +##time +nod +hitting +##hn +gregory +furthermore +magazines +fighters +solutions +##ery +pointing +requested +peru +reed +chancellor +knights +mask +worker +eldest +flames +reduction +1860 +volunteers +##tis +reporting +##hl +wire +advisory +endemic +origins +settlers +pursue +knock +consumer +1876 +eu +compound +creatures +mansion +sentenced +ivan +deployed +guitars +frowned +involves +mechanism +kilometers +perspective +shops +maps +terminus +duncan +alien +fist +bridges +##pers +heroes +fed +derby +swallowed +##ros +patent +sara +illness +characterized +adventures +slide +hawaii +jurisdiction +##op +organised +##side +adelaide +walks +biology +se +##ties +rogers +swing +tightly +boundaries +##rie +prepare +implementation +stolen +##sha +certified +colombia +edwards +garage +##mm +recalled +##ball +rage +harm +nigeria +breast +##ren +furniture +pupils +settle +##lus +cuba +balls +client +alaska +21st +linear +thrust +celebration +latino +genetic +terror +##cia +##ening +lightning +fee +witness +lodge +establishing +skull +##ique +earning +hood +##ei +rebellion +wang +sporting +warned +missile +devoted +activist +porch +worship +fourteen +package +1871 +decorated +##shire +housed +##ock +chess +sailed +doctors +oscar +joan +treat +garcia +harbour +jeremy +##ire +traditions +dominant +jacques +##gon +##wan +relocated +1879 +amendment +sized +companion +simultaneously +volleyball +spun +acre +increases +stopping +loves +belongs +affect +drafted +tossed +scout +battles +1875 +filming +shoved +munich +tenure +vertical +romance +pc +##cher +argue +##ical +craft +ranging +www +opens +honest +tyler +yesterday +virtual +##let +muslims +reveal +snake +immigrants +radical +screaming +speakers +firing +saving +belonging +ease +lighting +prefecture +blame +farmer +hungry +grows +rubbed +beam +sur +subsidiary +##cha +armenian +sao +dropping +conventional +##fer +microsoft +reply +qualify +spots +1867 +sweat +festivals +##ken +immigration +physician +discover +exposure +sandy +explanation +isaac +implemented +##fish +hart +initiated +connect +stakes +presents +heights +householder +pleased +tourist +regardless +slip +closest +##ction +surely +sultan +brings +riley +preparation +aboard +slammed +baptist +experiment +ongoing +interstate +organic +playoffs +##ika +1877 +130 +##tar +hindu +error +tours +tier +plenty +arrangements +talks +trapped +excited +sank +ho +athens +1872 +denver +welfare +suburb +athletes +trick +diverse +belly +exclusively +yelled +1868 +##med +conversion +##ette +1874 +internationally +computers +conductor +abilities +sensitive +hello +dispute +measured +globe +rocket +prices +amsterdam +flights +tigers +inn +municipalities +emotion +references +3d +##mus +explains +airlines +manufactured +pm +archaeological +1873 +interpretation +devon +comment +##ites +settlements +kissing +absolute +improvement +suite +impressed +barcelona +sullivan +jefferson +towers +jesse +julie +##tin +##lu +grandson +hi +gauge +regard +rings +interviews +trace +raymond +thumb +departments +burns +serial +bulgarian +scores +demonstrated +##ix +1866 +kyle +alberta +underneath +romanized +##ward +relieved +acquisition +phrase +cliff +reveals +han +cuts +merger +custom +##dar +nee +gilbert +graduation +##nts +assessment +cafe +difficulty +demands +swung +democrat +jennifer +commons +1940s +grove +##yo +completing +focuses +sum +substitute +bearing +stretch +reception +##py +reflected +essentially +destination +pairs +##ched +survival +resource +##bach +promoting +doubles +messages +tear +##down +##fully +parade +florence +harvey +incumbent +partial +framework +900 +pedro +frozen +procedure +olivia +controls +##mic +shelter +personally +temperatures +##od +brisbane +tested +sits +marble +comprehensive +oxygen +leonard +##kov +inaugural +iranian +referring +quarters +attitude +##ivity +mainstream +lined +mars +dakota +norfolk +unsuccessful +##° +explosion +helicopter +congressional +##sing +inspector +bitch +seal +departed +divine +##ters +coaching +examination +punishment +manufacturer +sink +columns +unincorporated +signals +nevada +squeezed +dylan +dining +photos +martial +manuel +eighteen +elevator +brushed +plates +ministers +ivy +congregation +##len +slept +specialized +taxes +curve +restricted +negotiations +likes +statistical +arnold +inspiration +execution +bold +intermediate +significance +margin +ruler +wheels +gothic +intellectual +dependent +listened +eligible +buses +widow +syria +earn +cincinnati +collapsed +recipient +secrets +accessible +philippine +maritime +goddess +clerk +surrender +breaks +playoff +database +##ified +##lon +ideal +beetle +aspect +soap +regulation +strings +expand +anglo +shorter +crosses +retreat +tough +coins +wallace +directions +pressing +##oon +shipping +locomotives +comparison +topics +nephew +##mes +distinction +honors +travelled +sierra +ibn +##over +fortress +sa +recognised +carved +1869 +clients +##dan +intent +##mar +coaches +describing +bread +##ington +beaten +northwestern +##ona +merit +youtube +collapse +challenges +em +historians +objective +submitted +virus +attacking +drake +assume +##ere +diseases +marc +stem +leeds +##cus +##ab +farming +glasses +##lock +visits +nowhere +fellowship +relevant +carries +restaurants +experiments +101 +constantly +bases +targets +shah +tenth +opponents +verse +territorial +##ira +writings +corruption +##hs +instruction +inherited +reverse +emphasis +##vic +employee +arch +keeps +rabbi +watson +payment +uh +##ala +nancy +##tre +venice +fastest +sexy +banned +adrian +properly +ruth +touchdown +dollar +boards +metre +circles +edges +favour +comments +ok +travels +liberation +scattered +firmly +##ular +holland +permitted +diesel +kenya +den +originated +##ral +demons +resumed +dragged +rider +##rus +servant +blinked +extend +torn +##ias +##sey +input +meal +everybody +cylinder +kinds +camps +##fe +bullet +logic +##wn +croatian +evolved +healthy +fool +chocolate +wise +preserve +pradesh +##ess +respective +1850 +##ew +chicken +artificial +gross +corresponding +convicted +cage +caroline +dialogue +##dor +narrative +stranger +mario +br +christianity +failing +trent +commanding +buddhist +1848 +maurice +focusing +yale +bike +altitude +##ering +mouse +revised +##sley +veteran +##ig +pulls +theology +crashed +campaigns +legion +##ability +drag +excellence +customer +cancelled +intensity +excuse +##lar +liga +participating +contributing +printing +##burn +variable +##rk +curious +bin +legacy +renaissance +##my +symptoms +binding +vocalist +dancer +##nie +grammar +gospel +democrats +ya +enters +sc +diplomatic +hitler +##ser +clouds +mathematical +quit +defended +oriented +##heim +fundamental +hardware +impressive +equally +convince +confederate +guilt +chuck +sliding +##ware +magnetic +narrowed +petersburg +bulgaria +otto +phd +skill +##ama +reader +hopes +pitcher +reservoir +hearts +automatically +expecting +mysterious +bennett +extensively +imagined +seeds +monitor +fix +##ative +journalism +struggling +signature +ranch +encounter +photographer +observation +protests +##pin +influences +##hr +calendar +##all +cruz +croatia +locomotive +hughes +naturally +shakespeare +basement +hook +uncredited +faded +theories +approaches +dare +phillips +filling +fury +obama +##ain +efficient +arc +deliver +min +raid +breeding +inducted +leagues +efficiency +axis +montana +eagles +##ked +supplied +instructions +karen +picking +indicating +trap +anchor +practically +christians +tomb +vary +occasional +electronics +lords +readers +newcastle +faint +innovation +collect +situations +engagement +160 +claude +mixture +##feld +peer +tissue +logo +lean +##ration +°f +floors +##ven +architects +reducing +##our +##ments +rope +1859 +ottawa +##har +samples +banking +declaration +proteins +resignation +francois +saudi +advocate +exhibited +armor +twins +divorce +##ras +abraham +reviewed +jo +temporarily +matrix +physically +pulse +curled +##ena +difficulties +bengal +usage +##ban +annie +riders +certificate +##pi +holes +warsaw +distinctive +jessica +##mon +mutual +1857 +customs +circular +eugene +removal +loaded +mere +vulnerable +depicted +generations +dame +heir +enormous +lightly +climbing +pitched +lessons +pilots +nepal +ram +google +preparing +brad +louise +renowned +##₂ +liam +##ably +plaza +shaw +sophie +brilliant +bills +##bar +##nik +fucking +mainland +server +pleasant +seized +veterans +jerked +fail +beta +brush +radiation +stored +warmth +southeastern +nate +sin +raced +berkeley +joke +athlete +designation +trunk +##low +roland +qualification +archives +heels +artwork +receives +judicial +reserves +##bed +woke +installation +abu +floating +fake +lesser +excitement +interface +concentrated +addressed +characteristic +amanda +saxophone +monk +auto +##bus +releasing +egg +dies +interaction +defender +ce +outbreak +glory +loving +##bert +sequel +consciousness +http +awake +ski +enrolled +##ress +handling +rookie +brow +somebody +biography +warfare +amounts +contracts +presentation +fabric +dissolved +challenged +meter +psychological +lt +elevated +rally +accurate +##tha +hospitals +undergraduate +specialist +venezuela +exhibit +shed +nursing +protestant +fluid +structural +footage +jared +consistent +prey +##ska +succession +reflect +exile +lebanon +wiped +suspect +shanghai +resting +integration +preservation +marvel +variant +pirates +sheep +rounded +capita +sailing +colonies +manuscript +deemed +variations +clarke +functional +emerging +boxing +relaxed +curse +azerbaijan +heavyweight +nickname +editorial +rang +grid +tightened +earthquake +flashed +miguel +rushing +##ches +improvements +boxes +brooks +180 +consumption +molecular +felix +societies +repeatedly +variation +aids +civic +graphics +professionals +realm +autonomous +receiver +delayed +workshop +militia +chairs +trump +canyon +##point +harsh +extending +lovely +happiness +##jan +stake +eyebrows +embassy +wellington +hannah +##ella +sony +corners +bishops +swear +cloth +contents +xi +namely +commenced +1854 +stanford +nashville +courage +graphic +commitment +garrison +##bin +hamlet +clearing +rebels +attraction +literacy +cooking +ruins +temples +jenny +humanity +celebrate +hasn +freight +sixty +rebel +bastard +##art +newton +##ada +deer +##ges +##ching +smiles +delaware +singers +##ets +approaching +assists +flame +##ph +boulevard +barrel +planted +##ome +pursuit +##sia +consequences +posts +shallow +invitation +rode +depot +ernest +kane +rod +concepts +preston +topic +chambers +striking +blast +arrives +descendants +montgomery +ranges +worlds +##lay +##ari +span +chaos +praise +##ag +fewer +1855 +sanctuary +mud +fbi +##ions +programmes +maintaining +unity +harper +bore +handsome +closure +tournaments +thunder +nebraska +linda +facade +puts +satisfied +argentine +dale +cork +dome +panama +##yl +1858 +tasks +experts +##ates +feeding +equation +##las +##ida +##tu +engage +bryan +##ax +um +quartet +melody +disbanded +sheffield +blocked +gasped +delay +kisses +maggie +connects +##non +sts +poured +creator +publishers +##we +guided +ellis +extinct +hug +gaining +##ord +complicated +##bility +poll +clenched +investigate +##use +thereby +quantum +spine +cdp +humor +kills +administered +semifinals +##du +encountered +ignore +##bu +commentary +##maker +bother +roosevelt +140 +plains +halfway +flowing +cultures +crack +imprisoned +neighboring +airline +##ses +##view +##mate +##ec +gather +wolves +marathon +transformed +##ill +cruise +organisations +carol +punch +exhibitions +numbered +alarm +ratings +daddy +silently +##stein +queens +colours +impression +guidance +liu +tactical +##rat +marshal +della +arrow +##ings +rested +feared +tender +owns +bitter +advisor +escort +##ides +spare +farms +grants +##ene +dragons +encourage +colleagues +cameras +##und +sucked +pile +spirits +prague +statements +suspension +landmark +fence +torture +recreation +bags +permanently +survivors +pond +spy +predecessor +bombing +coup +##og +protecting +transformation +glow +##lands +##book +dug +priests +andrea +feat +barn +jumping +##chen +##ologist +##con +casualties +stern +auckland +pipe +serie +revealing +ba +##bel +trevor +mercy +spectrum +yang +consist +governing +collaborated +possessed +epic +comprises +blew +shane +##ack +lopez +honored +magical +sacrifice +judgment +perceived +hammer +mtv +baronet +tune +das +missionary +sheets +350 +neutral +oral +threatening +attractive +shade +aims +seminary +##master +estates +1856 +michel +wounds +refugees +manufacturers +##nic +mercury +syndrome +porter +##iya +##din +hamburg +identification +upstairs +purse +widened +pause +cared +breathed +affiliate +santiago +prevented +celtic +fisher +125 +recruited +byzantine +reconstruction +farther +##mp +diet +sake +au +spite +sensation +##ert +blank +separation +105 +##hon +vladimir +armies +anime +##lie +accommodate +orbit +cult +sofia +archive +##ify +##box +founders +sustained +disorder +honours +northeastern +mia +crops +violet +threats +blanket +fires +canton +followers +southwestern +prototype +voyage +assignment +altered +moderate +protocol +pistol +##eo +questioned +brass +lifting +1852 +math +authored +##ual +doug +dimensional +dynamic +##san +1851 +pronounced +grateful +quest +uncomfortable +boom +presidency +stevens +relating +politicians +chen +barrier +quinn +diana +mosque +tribal +cheese +palmer +portions +sometime +chester +treasure +wu +bend +download +millions +reforms +registration +##osa +consequently +monitoring +ate +preliminary +brandon +invented +ps +eaten +exterior +intervention +ports +documented +log +displays +lecture +sally +favourite +##itz +vermont +lo +invisible +isle +breed +##ator +journalists +relay +speaks +backward +explore +midfielder +actively +stefan +procedures +cannon +blond +kenneth +centered +servants +chains +libraries +malcolm +essex +henri +slavery +##hal +facts +fairy +coached +cassie +cats +washed +cop +##fi +announcement +item +2000s +vinyl +activated +marco +frontier +growled +curriculum +##das +loyal +accomplished +leslie +ritual +kenny +##00 +vii +napoleon +hollow +hybrid +jungle +stationed +friedrich +counted +##ulated +platinum +theatrical +seated +col +rubber +glen +1840 +diversity +healing +extends +id +provisions +administrator +columbus +##oe +tributary +te +assured +org +##uous +prestigious +examined +lectures +grammy +ronald +associations +bailey +allan +essays +flute +believing +consultant +proceedings +travelling +1853 +kit +kerala +yugoslavia +buddy +methodist +##ith +burial +centres +batman +##nda +discontinued +bo +dock +stockholm +lungs +severely +##nk +citing +manga +##ugh +steal +mumbai +iraqi +robot +celebrity +bride +broadcasts +abolished +pot +joel +overhead +franz +packed +reconnaissance +johann +acknowledged +introduce +handled +doctorate +developments +drinks +alley +palestine +##nis +##aki +proceeded +recover +bradley +grain +patch +afford +infection +nationalist +legendary +##ath +interchange +virtually +gen +gravity +exploration +amber +vital +wishes +powell +doctrine +elbow +screenplay +##bird +contribute +indonesian +pet +creates +##com +enzyme +kylie +discipline +drops +manila +hunger +##ien +layers +suffer +fever +bits +monica +keyboard +manages +##hood +searched +appeals +##bad +testament +grande +reid +##war +beliefs +congo +##ification +##dia +si +requiring +##via +casey +1849 +regret +streak +rape +depends +syrian +sprint +pound +tourists +upcoming +pub +##xi +tense +##els +practiced +echo +nationwide +guild +motorcycle +liz +##zar +chiefs +desired +elena +bye +precious +absorbed +relatives +booth +pianist +##mal +citizenship +exhausted +wilhelm +##ceae +##hed +noting +quarterback +urge +hectares +##gue +ace +holly +##tal +blonde +davies +parked +sustainable +stepping +twentieth +airfield +galaxy +nest +chip +##nell +tan +shaft +paulo +requirement +##zy +paradise +tobacco +trans +renewed +vietnamese +##cker +##ju +suggesting +catching +holmes +enjoying +md +trips +colt +holder +butterfly +nerve +reformed +cherry +bowling +trailer +carriage +goodbye +appreciate +toy +joshua +interactive +enabled +involve +##kan +collar +determination +bunch +facebook +recall +shorts +superintendent +episcopal +frustration +giovanni +nineteenth +laser +privately +array +circulation +##ovic +armstrong +deals +painful +permit +discrimination +##wi +aires +retiring +cottage +ni +##sta +horizon +ellen +jamaica +ripped +fernando +chapters +playstation +patron +lecturer +navigation +behaviour +genes +georgian +export +solomon +rivals +swift +seventeen +rodriguez +princeton +independently +sox +1847 +arguing +entity +casting +hank +criteria +oakland +geographic +milwaukee +reflection +expanding +conquest +dubbed +##tv +halt +brave +brunswick +doi +arched +curtis +divorced +predominantly +somerset +streams +ugly +zoo +horrible +curved +buenos +fierce +dictionary +vector +theological +unions +handful +stability +chan +punjab +segments +##lly +altar +ignoring +gesture +monsters +pastor +##stone +thighs +unexpected +operators +abruptly +coin +compiled +associates +improving +migration +pin +##ose +compact +collegiate +reserved +##urs +quarterfinals +roster +restore +assembled +hurry +oval +##cies +1846 +flags +martha +##del +victories +sharply +##rated +argues +deadly +neo +drawings +symbols +performer +##iel +griffin +restrictions +editing +andrews +java +journals +arabia +compositions +dee +pierce +removing +hindi +casino +runway +civilians +minds +nasa +hotels +##zation +refuge +rent +retain +potentially +conferences +suburban +conducting +##tto +##tions +##tle +descended +massacre +##cal +ammunition +terrain +fork +souls +counts +chelsea +durham +drives +cab +##bank +perth +realizing +palestinian +finn +simpson +##dal +betty +##ule +moreover +particles +cardinals +tent +evaluation +extraordinary +##oid +inscription +##works +wednesday +chloe +maintains +panels +ashley +trucks +##nation +cluster +sunlight +strikes +zhang +##wing +dialect +canon +##ap +tucked +##ws +collecting +##mas +##can +##sville +maker +quoted +evan +franco +aria +buying +cleaning +eva +closet +provision +apollo +clinic +rat +##ez +necessarily +ac +##gle +##ising +venues +flipped +cent +spreading +trustees +checking +authorized +##sco +disappointed +##ado +notion +duration +trumpet +hesitated +topped +brussels +rolls +theoretical +hint +define +aggressive +repeat +wash +peaceful +optical +width +allegedly +mcdonald +strict +copyright +##illa +investors +mar +jam +witnesses +sounding +miranda +michelle +privacy +hugo +harmony +##pp +valid +lynn +glared +nina +102 +headquartered +diving +boarding +gibson +##ncy +albanian +marsh +routine +dealt +enhanced +er +intelligent +substance +targeted +enlisted +discovers +spinning +observations +pissed +smoking +rebecca +capitol +visa +varied +costume +seemingly +indies +compensation +surgeon +thursday +arsenal +westminster +suburbs +rid +anglican +##ridge +knots +foods +alumni +lighter +fraser +whoever +portal +scandal +##ray +gavin +advised +instructor +flooding +terrorist +##ale +teenage +interim +senses +duck +teen +thesis +abby +eager +overcome +##ile +newport +glenn +rises +shame +##cc +prompted +priority +forgot +bomber +nicolas +protective +360 +cartoon +katherine +breeze +lonely +trusted +henderson +richardson +relax +banner +candy +palms +remarkable +##rio +legends +cricketer +essay +ordained +edmund +rifles +trigger +##uri +##away +sail +alert +1830 +audiences +penn +sussex +siblings +pursued +indianapolis +resist +rosa +consequence +succeed +avoided +1845 +##ulation +inland +##tie +##nna +counsel +profession +chronicle +hurried +##una +eyebrow +eventual +bleeding +innovative +cure +##dom +committees +accounting +con +scope +hardy +heather +tenor +gut +herald +codes +tore +scales +wagon +##oo +luxury +tin +prefer +fountain +triangle +bonds +darling +convoy +dried +traced +beings +troy +accidentally +slam +findings +smelled +joey +lawyers +outcome +steep +bosnia +configuration +shifting +toll +brook +performers +lobby +philosophical +construct +shrine +aggregate +boot +cox +phenomenon +savage +insane +solely +reynolds +lifestyle +##ima +nationally +holdings +consideration +enable +edgar +mo +mama +##tein +fights +relegation +chances +atomic +hub +conjunction +awkward +reactions +currency +finale +kumar +underwent +steering +elaborate +gifts +comprising +melissa +veins +reasonable +sunshine +chi +solve +trails +inhabited +elimination +ethics +huh +ana +molly +consent +apartments +layout +marines +##ces +hunters +bulk +##oma +hometown +##wall +##mont +cracked +reads +neighbouring +withdrawn +admission +wingspan +damned +anthology +lancashire +brands +batting +forgive +cuban +awful +##lyn +104 +dimensions +imagination +##ade +dante +##ship +tracking +desperately +goalkeeper +##yne +groaned +workshops +confident +burton +gerald +milton +circus +uncertain +slope +copenhagen +sophia +fog +philosopher +portraits +accent +cycling +varying +gripped +larvae +garrett +specified +scotia +mature +luther +kurt +rap +##kes +aerial +750 +ferdinand +heated +es +transported +##shan +safely +nonetheless +##orn +##gal +motors +demanding +##sburg +startled +##brook +ally +generate +caps +ghana +stained +demo +mentions +beds +ap +afterward +diary +##bling +utility +##iro +richards +1837 +conspiracy +conscious +shining +footsteps +observer +cyprus +urged +loyalty +developer +probability +olive +upgraded +gym +miracle +insects +graves +1844 +ourselves +hydrogen +amazon +katie +tickets +poets +##pm +planes +##pan +prevention +witnessed +dense +jin +randy +tang +warehouse +monroe +bang +archived +elderly +investigations +alec +granite +mineral +conflicts +controlling +aboriginal +carlo +##zu +mechanics +stan +stark +rhode +skirt +est +##berry +bombs +respected +##horn +imposed +limestone +deny +nominee +memphis +grabbing +disabled +##als +amusement +aa +frankfurt +corn +referendum +varies +slowed +disk +firms +unconscious +incredible +clue +sue +##zhou +twist +##cio +joins +idaho +chad +developers +computing +destroyer +103 +mortal +tucker +kingston +choices +yu +carson +1800 +os +whitney +geneva +pretend +dimension +staged +plateau +maya +##une +freestyle +##bc +rovers +hiv +##ids +tristan +classroom +prospect +##hus +honestly +diploma +lied +thermal +auxiliary +feast +unlikely +iata +##tel +morocco +pounding +treasury +lithuania +considerably +1841 +dish +1812 +geological +matching +stumbled +destroying +marched +brien +advances +cake +nicole +belle +settling +measuring +directing +##mie +tuesday +bassist +capabilities +stunned +fraud +torpedo +##list +##phone +anton +wisdom +surveillance +ruined +##ulate +lawsuit +healthcare +theorem +halls +trend +aka +horizontal +dozens +acquire +lasting +swim +hawk +gorgeous +fees +vicinity +decrease +adoption +tactics +##ography +pakistani +##ole +draws +##hall +willie +burke +heath +algorithm +integral +powder +elliott +brigadier +jackie +tate +varieties +darker +##cho +lately +cigarette +specimens +adds +##ree +##ensis +##inger +exploded +finalist +cia +murders +wilderness +arguments +nicknamed +acceptance +onwards +manufacture +robertson +jets +tampa +enterprises +blog +loudly +composers +nominations +1838 +ai +malta +inquiry +automobile +hosting +viii +rays +tilted +grief +museums +strategies +furious +euro +equality +cohen +poison +surrey +wireless +governed +ridiculous +moses +##esh +##room +vanished +##ito +barnes +attract +morrison +istanbul +##iness +absent +rotation +petition +janet +##logical +satisfaction +custody +deliberately +observatory +comedian +surfaces +pinyin +novelist +strictly +canterbury +oslo +monks +embrace +ibm +jealous +photograph +continent +dorothy +marina +doc +excess +holden +allegations +explaining +stack +avoiding +lance +storyline +majesty +poorly +spike +dos +bradford +raven +travis +classics +proven +voltage +pillow +fists +butt +1842 +interpreted +##car +1839 +gage +telegraph +lens +promising +expelled +casual +collector +zones +##min +silly +nintendo +##kh +##bra +downstairs +chef +suspicious +afl +flies +vacant +uganda +pregnancy +condemned +lutheran +estimates +cheap +decree +saxon +proximity +stripped +idiot +deposits +contrary +presenter +magnus +glacier +im +offense +edwin +##ori +upright +##long +bolt +##ois +toss +geographical +##izes +environments +delicate +marking +abstract +xavier +nails +windsor +plantation +occurring +equity +saskatchewan +fears +drifted +sequences +vegetation +revolt +##stic +1843 +sooner +fusion +opposing +nato +skating +1836 +secretly +ruin +lease +##oc +edit +##nne +flora +anxiety +ruby +##ological +##mia +tel +bout +taxi +emmy +frost +rainbow +compounds +foundations +rainfall +assassination +nightmare +dominican +##win +achievements +deserve +orlando +intact +armenia +##nte +calgary +valentine +106 +marion +proclaimed +theodore +bells +courtyard +thigh +gonzalez +console +troop +minimal +monte +everyday +##ence +##if +supporter +terrorism +buck +openly +presbyterian +activists +carpet +##iers +rubbing +uprising +##yi +cute +conceived +legally +##cht +millennium +cello +velocity +ji +rescued +cardiff +1835 +rex +concentrate +senators +beard +rendered +glowing +battalions +scouts +competitors +sculptor +catalogue +arctic +ion +raja +bicycle +wow +glancing +lawn +##woman +gentleman +lighthouse +publish +predicted +calculated +##val +variants +##gne +strain +##ui +winston +deceased +##nus +touchdowns +brady +caleb +sinking +echoed +crush +hon +blessed +protagonist +hayes +endangered +magnitude +editors +##tine +estimate +responsibilities +##mel +backup +laying +consumed +sealed +zurich +lovers +frustrated +##eau +ahmed +kicking +mit +treasurer +1832 +biblical +refuse +terrified +pump +agrees +genuine +imprisonment +refuses +plymouth +##hen +lou +##nen +tara +trembling +antarctic +ton +learns +##tas +crap +crucial +faction +atop +##borough +wrap +lancaster +odds +hopkins +erik +lyon +##eon +bros +##ode +snap +locality +tips +empress +crowned +cal +acclaimed +chuckled +##ory +clara +sends +mild +towel +##fl +##day +##а +wishing +assuming +interviewed +##bal +##die +interactions +eden +cups +helena +##lf +indie +beck +##fire +batteries +filipino +wizard +parted +##lam +traces +##born +rows +idol +albany +delegates +##ees +##sar +discussions +##ex +notre +instructed +belgrade +highways +suggestion +lauren +possess +orientation +alexandria +abdul +beats +salary +reunion +ludwig +alright +wagner +intimate +pockets +slovenia +hugged +brighton +merchants +cruel +stole +trek +slopes +repairs +enrollment +politically +underlying +promotional +counting +boeing +##bb +isabella +naming +##и +keen +bacteria +listing +separately +belfast +ussr +450 +lithuanian +anybody +ribs +sphere +martinez +cock +embarrassed +proposals +fragments +nationals +##fs +##wski +premises +fin +1500 +alpine +matched +freely +bounded +jace +sleeve +##af +gaming +pier +populated +evident +##like +frances +flooded +##dle +frightened +pour +trainer +framed +visitor +challenging +pig +wickets +##fold +infected +email +##pes +arose +##aw +reward +ecuador +oblast +vale +ch +shuttle +##usa +bach +rankings +forbidden +cornwall +accordance +salem +consumers +bruno +fantastic +toes +machinery +resolved +julius +remembering +propaganda +iceland +bombardment +tide +contacts +wives +##rah +concerto +macdonald +albania +implement +daisy +tapped +sudan +helmet +angela +mistress +##lic +crop +sunk +finest +##craft +hostile +##ute +##tsu +boxer +fr +paths +adjusted +habit +ballot +supervision +soprano +##zen +bullets +wicked +sunset +regiments +disappear +lamp +performs +app +##gia +##oa +rabbit +digging +incidents +entries +##cion +dishes +##oi +introducing +##ati +##fied +freshman +slot +jill +tackles +baroque +backs +##iest +lone +sponsor +destiny +altogether +convert +##aro +consensus +shapes +demonstration +basically +feminist +auction +artifacts +##bing +strongest +twitter +halifax +2019 +allmusic +mighty +smallest +precise +alexandra +viola +##los +##ille +manuscripts +##illo +dancers +ari +managers +monuments +blades +barracks +springfield +maiden +consolidated +electron +##end +berry +airing +wheat +nobel +inclusion +blair +payments +geography +bee +cc +eleanor +react +##hurst +afc +manitoba +##yu +su +lineup +fitness +recreational +investments +airborne +disappointment +##dis +edmonton +viewing +##row +renovation +##cast +infant +bankruptcy +roses +aftermath +pavilion +##yer +carpenter +withdrawal +ladder +##hy +discussing +popped +reliable +agreements +rochester +##abad +curves +bombers +220 +rao +reverend +decreased +choosing +107 +stiff +consulting +naples +crawford +tracy +ka +ribbon +cops +##lee +crushed +deciding +unified +teenager +accepting +flagship +explorer +poles +sanchez +inspection +revived +skilled +induced +exchanged +flee +locals +tragedy +swallow +loading +hanna +demonstrate +##ela +salvador +flown +contestants +civilization +##ines +wanna +rhodes +fletcher +hector +knocking +considers +##ough +nash +mechanisms +sensed +mentally +walt +unclear +##eus +renovated +madame +##cks +crews +governmental +##hin +undertaken +monkey +##ben +##ato +fatal +armored +copa +caves +governance +grasp +perception +certification +froze +damp +tugged +wyoming +##rg +##ero +newman +##lor +nerves +curiosity +graph +115 +##ami +withdraw +tunnels +dull +meredith +moss +exhibits +neighbors +communicate +accuracy +explored +raiders +republicans +secular +kat +superman +penny +criticised +##tch +freed +update +conviction +wade +ham +likewise +delegation +gotta +doll +promises +technological +myth +nationality +resolve +convent +##mark +sharon +dig +sip +coordinator +entrepreneur +fold +##dine +capability +councillor +synonym +blown +swan +cursed +1815 +jonas +haired +sofa +canvas +keeper +rivalry +##hart +rapper +speedway +swords +postal +maxwell +estonia +potter +recurring +##nn +##ave +errors +##oni +cognitive +1834 +##² +claws +nadu +roberto +bce +wrestler +ellie +##ations +infinite +ink +##tia +presumably +finite +staircase +108 +noel +patricia +nacional +##cation +chill +eternal +tu +preventing +prussia +fossil +limbs +##logist +ernst +frog +perez +rene +##ace +pizza +prussian +##ios +##vy +molecules +regulatory +answering +opinions +sworn +lengths +supposedly +hypothesis +upward +habitats +seating +ancestors +drank +yield +hd +synthesis +researcher +modest +##var +mothers +peered +voluntary +homeland +##the +acclaim +##igan +static +valve +luxembourg +alto +carroll +fe +receptor +norton +ambulance +##tian +johnston +catholics +depicting +jointly +elephant +gloria +mentor +badge +ahmad +distinguish +remarked +councils +precisely +allison +advancing +detection +crowded +##10 +cooperative +ankle +mercedes +dagger +surrendered +pollution +commit +subway +jeffrey +lesson +sculptures +provider +##fication +membrane +timothy +rectangular +fiscal +heating +teammate +basket +particle +anonymous +deployment +##ple +missiles +courthouse +proportion +shoe +sec +##ller +complaints +forbes +blacks +abandon +remind +sizes +overwhelming +autobiography +natalie +##awa +risks +contestant +countryside +babies +scorer +invaded +enclosed +proceed +hurling +disorders +##cu +reflecting +continuously +cruiser +graduates +freeway +investigated +ore +deserved +maid +blocking +phillip +jorge +shakes +dove +mann +variables +lacked +burden +accompanying +que +consistently +organizing +provisional +complained +endless +##rm +tubes +juice +georges +krishna +mick +labels +thriller +##uch +laps +arcade +sage +snail +##table +shannon +fi +laurence +seoul +vacation +presenting +hire +churchill +surprisingly +prohibited +savannah +technically +##oli +170 +##lessly +testimony +suited +speeds +toys +romans +mlb +flowering +measurement +talented +kay +settings +charleston +expectations +shattered +achieving +triumph +ceremonies +portsmouth +lanes +mandatory +loser +stretching +cologne +realizes +seventy +cornell +careers +webb +##ulating +americas +budapest +ava +suspicion +##ison +yo +conrad +##hai +sterling +jessie +rector +##az +1831 +transform +organize +loans +christine +volcanic +warrant +slender +summers +subfamily +newer +danced +dynamics +rhine +proceeds +heinrich +gastropod +commands +sings +facilitate +easter +ra +positioned +responses +expense +fruits +yanked +imported +25th +velvet +vic +primitive +tribune +baldwin +neighbourhood +donna +rip +hay +pr +##uro +1814 +espn +welcomed +##aria +qualifier +glare +highland +timing +##cted +shells +eased +geometry +louder +exciting +slovakia +##sion +##iz +##lot +savings +prairie +##ques +marching +rafael +tonnes +##lled +curtain +preceding +shy +heal +greene +worthy +##pot +detachment +bury +sherman +##eck +reinforced +seeks +bottles +contracted +duchess +outfit +walsh +##sc +mickey +##ase +geoffrey +archer +squeeze +dawson +eliminate +invention +##enberg +neal +##eth +stance +dealer +coral +maple +retire +polo +simplified +##ht +1833 +hid +watts +backwards +jules +##oke +genesis +mt +frames +rebounds +burma +woodland +moist +santos +whispers +drained +subspecies +##aa +streaming +ulster +burnt +correspondence +maternal +gerard +denis +stealing +##load +genius +duchy +##oria +inaugurated +momentum +suits +placement +sovereign +clause +thames +##hara +confederation +reservation +sketch +yankees +lets +rotten +charm +hal +verses +ultra +commercially +dot +salon +citation +adopt +winnipeg +mist +allocated +cairo +##boy +jenkins +interference +objectives +##wind +1820 +portfolio +armoured +sectors +##eh +initiatives +##world +integrity +exercises +robe +tap +ab +gazed +##tones +distracted +rulers +111 +favorable +jerome +tended +cart +factories +##eri +diplomat +valued +gravel +charitable +##try +calvin +exploring +chang +shepherd +terrace +pdf +pupil +##ural +reflects +ups +##rch +governors +shelf +depths +##nberg +trailed +crest +tackle +##nian +##ats +hatred +##kai +clare +makers +ethiopia +longtime +detected +embedded +lacking +slapped +rely +thomson +anticipation +iso +morton +successive +agnes +screenwriter +straightened +philippe +playwright +haunted +licence +iris +intentions +sutton +112 +logical +correctly +##weight +branded +licked +tipped +silva +ricky +narrator +requests +##ents +greeted +supernatural +cow +##wald +lung +refusing +employer +strait +gaelic +liner +##piece +zoe +sabha +##mba +driveway +harvest +prints +bates +reluctantly +threshold +algebra +ira +wherever +coupled +240 +assumption +picks +##air +designers +raids +gentlemen +##ean +roller +blowing +leipzig +locks +screw +dressing +strand +##lings +scar +dwarf +depicts +##nu +nods +##mine +differ +boris +##eur +yuan +flip +##gie +mob +invested +questioning +applying +##ture +shout +##sel +gameplay +blamed +illustrations +bothered +weakness +rehabilitation +##of +##zes +envelope +rumors +miners +leicester +subtle +kerry +##ico +ferguson +##fu +premiership +ne +##cat +bengali +prof +catches +remnants +dana +##rily +shouting +presidents +baltic +ought +ghosts +dances +sailors +shirley +fancy +dominic +##bie +madonna +##rick +bark +buttons +gymnasium +ashes +liver +toby +oath +providence +doyle +evangelical +nixon +cement +carnegie +embarked +hatch +surroundings +guarantee +needing +pirate +essence +##bee +filter +crane +hammond +projected +immune +percy +twelfth +##ult +regent +doctoral +damon +mikhail +##ichi +lu +critically +elect +realised +abortion +acute +screening +mythology +steadily +##fc +frown +nottingham +kirk +wa +minneapolis +##rra +module +algeria +mc +nautical +encounters +surprising +statues +availability +shirts +pie +alma +brows +munster +mack +soup +crater +tornado +sanskrit +cedar +explosive +bordered +dixon +planets +stamp +exam +happily +##bble +carriers +kidnapped +##vis +accommodation +emigrated +##met +knockout +correspondent +violation +profits +peaks +lang +specimen +agenda +ancestry +pottery +spelling +equations +obtaining +ki +linking +1825 +debris +asylum +##20 +buddhism +teddy +##ants +gazette +##nger +##sse +dental +eligibility +utc +fathers +averaged +zimbabwe +francesco +coloured +hissed +translator +lynch +mandate +humanities +mackenzie +uniforms +lin +##iana +##gio +asset +mhz +fitting +samantha +genera +wei +rim +beloved +shark +riot +entities +expressions +indo +carmen +slipping +owing +abbot +neighbor +sidney +##av +rats +recommendations +encouraging +squadrons +anticipated +commanders +conquered +##oto +donations +diagnosed +##mond +divide +##iva +guessed +decoration +vernon +auditorium +revelation +conversations +##kers +##power +herzegovina +dash +alike +protested +lateral +herman +accredited +mg +##gent +freeman +mel +fiji +crow +crimson +##rine +livestock +##pped +humanitarian +bored +oz +whip +##lene +##ali +legitimate +alter +grinning +spelled +anxious +oriental +wesley +##nin +##hole +carnival +controller +detect +##ssa +bowed +educator +kosovo +macedonia +##sin +occupy +mastering +stephanie +janeiro +para +unaware +nurses +noon +135 +cam +hopefully +ranger +combine +sociology +polar +rica +##eer +neill +##sman +holocaust +##ip +doubled +lust +1828 +109 +decent +cooling +unveiled +##card +1829 +nsw +homer +chapman +meyer +##gin +dive +mae +reagan +expertise +##gled +darwin +brooke +sided +prosecution +investigating +comprised +petroleum +genres +reluctant +differently +trilogy +johns +vegetables +corpse +highlighted +lounge +pension +unsuccessfully +elegant +aided +ivory +beatles +amelia +cain +dubai +sunny +immigrant +babe +click +##nder +underwater +pepper +combining +mumbled +atlas +horns +accessed +ballad +physicians +homeless +gestured +rpm +freak +louisville +corporations +patriots +prizes +rational +warn +modes +decorative +overnight +din +troubled +phantom +##ort +monarch +sheer +##dorf +generals +guidelines +organs +addresses +##zon +enhance +curling +parishes +cord +##kie +linux +caesar +deutsche +bavaria +##bia +coleman +cyclone +##eria +bacon +petty +##yama +##old +hampton +diagnosis +1824 +throws +complexity +rita +disputed +##₃ +pablo +##sch +marketed +trafficking +##ulus +examine +plague +formats +##oh +vault +faithful +##bourne +webster +##ox +highlights +##ient +##ann +phones +vacuum +sandwich +modeling +##gated +bolivia +clergy +qualities +isabel +##nas +##ars +wears +screams +reunited +annoyed +bra +##ancy +##rate +differential +transmitter +tattoo +container +poker +##och +excessive +resides +cowboys +##tum +augustus +trash +providers +statute +retreated +balcony +reversed +void +storey +preceded +masses +leap +laughs +neighborhoods +wards +schemes +falcon +santo +battlefield +pad +ronnie +thread +lesbian +venus +##dian +beg +sandstone +daylight +punched +gwen +analog +stroked +wwe +acceptable +measurements +dec +toxic +##kel +adequate +surgical +economist +parameters +varsity +##sberg +quantity +ella +##chy +##rton +countess +generating +precision +diamonds +expressway +ga +##ı +1821 +uruguay +talents +galleries +expenses +scanned +colleague +outlets +ryder +lucien +##ila +paramount +##bon +syracuse +dim +fangs +gown +sweep +##sie +toyota +missionaries +websites +##nsis +sentences +adviser +val +trademark +spells +##plane +patience +starter +slim +##borg +toe +incredibly +shoots +elliot +nobility +##wyn +cowboy +endorsed +gardner +tendency +persuaded +organisms +emissions +kazakhstan +amused +boring +chips +themed +##hand +llc +constantinople +chasing +systematic +guatemala +borrowed +erin +carey +##hard +highlands +struggles +1810 +##ifying +##ced +wong +exceptions +develops +enlarged +kindergarten +castro +##ern +##rina +leigh +zombie +juvenile +##most +consul +##nar +sailor +hyde +clarence +intensive +pinned +nasty +useless +jung +clayton +stuffed +exceptional +ix +apostolic +230 +transactions +##dge +exempt +swinging +cove +religions +##ash +shields +dairy +bypass +190 +pursuing +bug +joyce +bombay +chassis +southampton +chat +interact +redesignated +##pen +nascar +pray +salmon +rigid +regained +malaysian +grim +publicity +constituted +capturing +toilet +delegate +purely +tray +drift +loosely +striker +weakened +trinidad +mitch +itv +defines +transmitted +ming +scarlet +nodding +fitzgerald +fu +narrowly +sp +tooth +standings +virtue +##₁ +##wara +##cting +chateau +gloves +lid +##nel +hurting +conservatory +##pel +sinclair +reopened +sympathy +nigerian +strode +advocated +optional +chronic +discharge +##rc +suck +compatible +laurel +stella +shi +fails +wage +dodge +128 +informal +sorts +levi +buddha +villagers +##aka +chronicles +heavier +summoned +gateway +3000 +eleventh +jewelry +translations +accordingly +seas +##ency +fiber +pyramid +cubic +dragging +##ista +caring +##ops +android +contacted +lunar +##dt +kai +lisbon +patted +1826 +sacramento +theft +madagascar +subtropical +disputes +ta +holidays +piper +willow +mare +cane +itunes +newfoundland +benny +companions +dong +raj +observe +roar +charming +plaque +tibetan +fossils +enacted +manning +bubble +tina +tanzania +##eda +##hir +funk +swamp +deputies +cloak +ufc +scenario +par +scratch +metals +anthem +guru +engaging +specially +##boat +dialects +nineteen +cecil +duet +disability +messenger +unofficial +##lies +defunct +eds +moonlight +drainage +surname +puzzle +honda +switching +conservatives +mammals +knox +broadcaster +sidewalk +cope +##ried +benson +princes +peterson +##sal +bedford +sharks +eli +wreck +alberto +gasp +archaeology +lgbt +teaches +securities +madness +compromise +waving +coordination +davidson +visions +leased +possibilities +eighty +jun +fernandez +enthusiasm +assassin +sponsorship +reviewer +kingdoms +estonian +laboratories +##fy +##nal +applies +verb +celebrations +##zzo +rowing +lightweight +sadness +submit +mvp +balanced +dude +##vas +explicitly +metric +magnificent +mound +brett +mohammad +mistakes +irregular +##hing +##ass +sanders +betrayed +shipped +surge +##enburg +reporters +termed +georg +pity +verbal +bulls +abbreviated +enabling +appealed +##are +##atic +sicily +sting +heel +sweetheart +bart +spacecraft +brutal +monarchy +##tter +aberdeen +cameo +diane +##ub +survivor +clyde +##aries +complaint +##makers +clarinet +delicious +chilean +karnataka +coordinates +1818 +panties +##rst +pretending +ar +dramatically +kiev +bella +tends +distances +113 +catalog +launching +instances +telecommunications +portable +lindsay +vatican +##eim +angles +aliens +marker +stint +screens +bolton +##rne +judy +wool +benedict +plasma +europa +spark +imaging +filmmaker +swiftly +##een +contributor +##nor +opted +stamps +apologize +financing +butter +gideon +sophisticated +alignment +avery +chemicals +yearly +speculation +prominence +professionally +##ils +immortal +institutional +inception +wrists +identifying +tribunal +derives +gains +##wo +papal +preference +linguistic +vince +operative +brewery +##ont +unemployment +boyd +##ured +##outs +albeit +prophet +1813 +bi +##rr +##face +##rad +quarterly +asteroid +cleaned +radius +temper +##llen +telugu +jerk +viscount +menu +##ote +glimpse +##aya +yacht +hawaiian +baden +##rl +laptop +readily +##gu +monetary +offshore +scots +watches +##yang +##arian +upgrade +needle +xbox +lea +encyclopedia +flank +fingertips +##pus +delight +teachings +confirm +roth +beaches +midway +winters +##iah +teasing +daytime +beverly +gambling +bonnie +##backs +regulated +clement +hermann +tricks +knot +##shing +##uring +##vre +detached +ecological +owed +specialty +byron +inventor +bats +stays +screened +unesco +midland +trim +affection +##ander +##rry +jess +thoroughly +feedback +##uma +chennai +strained +heartbeat +wrapping +overtime +pleaded +##sworth +mon +leisure +oclc +##tate +##ele +feathers +angelo +thirds +nuts +surveys +clever +gill +commentator +##dos +darren +rides +gibraltar +##nc +##mu +dissolution +dedication +shin +meals +saddle +elvis +reds +chaired +taller +appreciation +functioning +niece +favored +advocacy +robbie +criminals +suffolk +yugoslav +passport +constable +congressman +hastings +vera +##rov +consecrated +sparks +ecclesiastical +confined +##ovich +muller +floyd +nora +1822 +paved +1827 +cumberland +ned +saga +spiral +##flow +appreciated +yi +collaborative +treating +similarities +feminine +finishes +##ib +jade +import +##nse +##hot +champagne +mice +securing +celebrities +helsinki +attributes +##gos +cousins +phases +ache +lucia +gandhi +submission +vicar +spear +shine +tasmania +biting +detention +constitute +tighter +seasonal +##gus +terrestrial +matthews +##oka +effectiveness +parody +philharmonic +##onic +1816 +strangers +encoded +consortium +guaranteed +regards +shifts +tortured +collision +supervisor +inform +broader +insight +theaters +armour +emeritus +blink +incorporates +mapping +##50 +##ein +handball +flexible +##nta +substantially +generous +thief +##own +carr +loses +1793 +prose +ucla +romeo +generic +metallic +realization +damages +mk +commissioners +zach +default +##ther +helicopters +lengthy +stems +spa +partnered +spectators +rogue +indication +penalties +teresa +1801 +sen +##tric +dalton +##wich +irving +photographic +##vey +dell +deaf +peters +excluded +unsure +##vable +patterson +crawled +##zio +resided +whipped +latvia +slower +ecole +pipes +employers +maharashtra +comparable +va +textile +pageant +##gel +alphabet +binary +irrigation +chartered +choked +antoine +offs +waking +supplement +##wen +quantities +demolition +regain +locate +urdu +folks +alt +114 +##mc +scary +andreas +whites +##ava +classrooms +mw +aesthetic +publishes +valleys +guides +cubs +johannes +bryant +conventions +affecting +##itt +drain +awesome +isolation +prosecutor +ambitious +apology +captive +downs +atmospheric +lorenzo +aisle +beef +foul +##onia +kidding +composite +disturbed +illusion +natives +##ffer +emi +rockets +riverside +wartime +painters +adolf +melted +##ail +uncertainty +simulation +hawks +progressed +meantime +builder +spray +breach +unhappy +regina +russians +##urg +determining +##tation +tram +1806 +##quin +aging +##12 +1823 +garion +rented +mister +diaz +terminated +clip +1817 +depend +nervously +disco +owe +defenders +shiva +notorious +disbelief +shiny +worcester +##gation +##yr +trailing +undertook +islander +belarus +limitations +watershed +fuller +overlooking +utilized +raphael +1819 +synthetic +breakdown +klein +##nate +moaned +memoir +lamb +practicing +##erly +cellular +arrows +exotic +##graphy +witches +117 +charted +rey +hut +hierarchy +subdivision +freshwater +giuseppe +aloud +reyes +qatar +marty +sideways +utterly +sexually +jude +prayers +mccarthy +softball +blend +damien +##gging +##metric +wholly +erupted +lebanese +negro +revenues +tasted +comparative +teamed +transaction +labeled +maori +sovereignty +parkway +trauma +gran +malay +121 +advancement +descendant +2020 +buzz +salvation +inventory +symbolic +##making +antarctica +mps +##gas +##bro +mohammed +myanmar +holt +submarines +tones +##lman +locker +patriarch +bangkok +emerson +remarks +predators +kin +afghan +confession +norwich +rental +emerge +advantages +##zel +rca +##hold +shortened +storms +aidan +##matic +autonomy +compliance +##quet +dudley +atp +##osis +1803 +motto +documentation +summary +professors +spectacular +christina +archdiocese +flashing +innocence +remake +##dell +psychic +reef +scare +employ +rs +sticks +meg +gus +leans +##ude +accompany +bergen +tomas +##iko +doom +wages +pools +##nch +##bes +breasts +scholarly +alison +outline +brittany +breakthrough +willis +realistic +##cut +##boro +competitor +##stan +pike +picnic +icon +designing +commercials +washing +villain +skiing +micro +costumes +auburn +halted +executives +##hat +logistics +cycles +vowel +applicable +barrett +exclaimed +eurovision +eternity +ramon +##umi +##lls +modifications +sweeping +disgust +##uck +torch +aviv +ensuring +rude +dusty +sonic +donovan +outskirts +cu +pathway +##band +##gun +##lines +disciplines +acids +cadet +paired +##40 +sketches +##sive +marriages +##⁺ +folding +peers +slovak +implies +admired +##beck +1880s +leopold +instinct +attained +weston +megan +horace +##ination +dorsal +ingredients +evolutionary +##its +complications +deity +lethal +brushing +levy +deserted +institutes +posthumously +delivering +telescope +coronation +motivated +rapids +luc +flicked +pays +volcano +tanner +weighed +##nica +crowds +frankie +gifted +addressing +granddaughter +winding +##rna +constantine +gomez +##front +landscapes +rudolf +anthropology +slate +werewolf +##lio +astronomy +circa +rouge +dreaming +sack +knelt +drowned +naomi +prolific +tracked +freezing +herb +##dium +agony +randall +twisting +wendy +deposit +touches +vein +wheeler +##bbled +##bor +batted +retaining +tire +presently +compare +specification +daemon +nigel +##grave +merry +recommendation +czechoslovakia +sandra +ng +roma +##sts +lambert +inheritance +sheikh +winchester +cries +examining +##yle +comeback +cuisine +nave +##iv +ko +retrieve +tomatoes +barker +polished +defining +irene +lantern +personalities +begging +tract +swore +1809 +175 +##gic +omaha +brotherhood +##rley +haiti +##ots +exeter +##ete +##zia +steele +dumb +pearson +210 +surveyed +elisabeth +trends +##ef +fritz +##rf +premium +bugs +fraction +calmly +viking +##birds +tug +inserted +unusually +##ield +confronted +distress +crashing +brent +turks +resign +##olo +cambodia +gabe +sauce +##kal +evelyn +116 +extant +clusters +quarry +teenagers +luna +##lers +##ister +affiliation +drill +##ashi +panthers +scenic +libya +anita +strengthen +inscriptions +##cated +lace +sued +judith +riots +##uted +mint +##eta +preparations +midst +dub +challenger +##vich +mock +cf +displaced +wicket +breaths +enables +schmidt +analyst +##lum +ag +highlight +automotive +axe +josef +newark +sufficiently +resembles +50th +##pal +flushed +mum +traits +##ante +commodore +incomplete +warming +titular +ceremonial +ethical +118 +celebrating +eighteenth +cao +lima +medalist +mobility +strips +snakes +##city +miniature +zagreb +barton +escapes +umbrella +automated +doubted +differs +cooled +georgetown +dresden +cooked +fade +wyatt +rna +jacobs +carlton +abundant +stereo +boost +madras +inning +##hia +spur +ip +malayalam +begged +osaka +groan +escaping +charging +dose +vista +##aj +bud +papa +communists +advocates +edged +tri +##cent +resemble +peaking +necklace +fried +montenegro +saxony +goose +glances +stuttgart +curator +recruit +grocery +sympathetic +##tting +##fort +127 +lotus +randolph +ancestor +##rand +succeeding +jupiter +1798 +macedonian +##heads +hiking +1808 +handing +fischer +##itive +garbage +node +##pies +prone +singular +papua +inclined +attractions +italia +pouring +motioned +grandma +garnered +jacksonville +corp +ego +ringing +aluminum +##hausen +ordering +##foot +drawer +traders +synagogue +##play +##kawa +resistant +wandering +fragile +fiona +teased +var +hardcore +soaked +jubilee +decisive +exposition +mercer +poster +valencia +hale +kuwait +1811 +##ises +##wr +##eed +tavern +gamma +122 +johan +##uer +airways +amino +gil +##ury +vocational +domains +torres +##sp +generator +folklore +outcomes +##keeper +canberra +shooter +fl +beams +confrontation +##lling +##gram +feb +aligned +forestry +pipeline +jax +motorway +conception +decay +##tos +coffin +##cott +stalin +1805 +escorted +minded +##nam +sitcom +purchasing +twilight +veronica +additions +passive +tensions +straw +123 +frequencies +1804 +refugee +cultivation +##iate +christie +clary +bulletin +crept +disposal +##rich +##zong +processor +crescent +##rol +bmw +emphasized +whale +nazis +aurora +##eng +dwelling +hauled +sponsors +toledo +mega +ideology +theatres +tessa +cerambycidae +saves +turtle +cone +suspects +kara +rusty +yelling +greeks +mozart +shades +cocked +participant +##tro +shire +spit +freeze +necessity +##cos +inmates +nielsen +councillors +loaned +uncommon +omar +peasants +botanical +offspring +daniels +formations +jokes +1794 +pioneers +sigma +licensing +##sus +wheelchair +polite +1807 +liquor +pratt +trustee +##uta +forewings +balloon +##zz +kilometre +camping +explicit +casually +shawn +foolish +teammates +nm +hassan +carrie +judged +satisfy +vanessa +knives +selective +cnn +flowed +##lice +eclipse +stressed +eliza +mathematician +cease +cultivated +##roy +commissions +browns +##ania +destroyers +sheridan +meadow +##rius +minerals +##cial +downstream +clash +gram +memoirs +ventures +baha +seymour +archie +midlands +edith +fare +flynn +invite +canceled +tiles +stabbed +boulder +incorporate +amended +camden +facial +mollusk +unreleased +descriptions +yoga +grabs +550 +raises +ramp +shiver +##rose +coined +pioneering +tunes +qing +warwick +tops +119 +melanie +giles +##rous +wandered +##inal +annexed +nov +30th +unnamed +##ished +organizational +airplane +normandy +stoke +whistle +blessing +violations +chased +holders +shotgun +##ctic +outlet +reactor +##vik +tires +tearing +shores +fortified +mascot +constituencies +nc +columnist +productive +tibet +##rta +lineage +hooked +oct +tapes +judging +cody +##gger +hansen +kashmir +triggered +##eva +solved +cliffs +##tree +resisted +anatomy +protesters +transparent +implied +##iga +injection +mattress +excluding +##mbo +defenses +helpless +devotion +##elli +growl +liberals +weber +phenomena +atoms +plug +##iff +mortality +apprentice +howe +convincing +aaa +swimmer +barber +leone +promptly +sodium +def +nowadays +arise +##oning +gloucester +corrected +dignity +norm +erie +##ders +elders +evacuated +sylvia +compression +##yar +hartford +pose +backpack +reasoning +accepts +24th +wipe +millimetres +marcel +##oda +dodgers +albion +1790 +overwhelmed +aerospace +oaks +1795 +showcase +acknowledge +recovering +nolan +ashe +hurts +geology +fashioned +disappearance +farewell +swollen +shrug +marquis +wimbledon +124 +rue +1792 +commemorate +reduces +experiencing +inevitable +calcutta +intel +##court +murderer +sticking +fisheries +imagery +bloom +280 +brake +##inus +gustav +hesitation +memorable +po +viral +beans +accidents +tunisia +antenna +spilled +consort +treatments +aye +perimeter +##gard +donation +hostage +migrated +banker +addiction +apex +lil +trout +##ously +conscience +##nova +rams +sands +genome +passionate +troubles +##lets +##set +amid +##ibility +##ret +higgins +exceed +vikings +##vie +payne +##zan +muscular +##ste +defendant +sucking +##wal +ibrahim +fuselage +claudia +vfl +europeans +snails +interval +##garh +preparatory +statewide +tasked +lacrosse +viktor +##lation +angola +##hra +flint +implications +employs +teens +patrons +stall +weekends +barriers +scrambled +nucleus +tehran +jenna +parsons +lifelong +robots +displacement +5000 +##bles +precipitation +##gt +knuckles +clutched +1802 +marrying +ecology +marx +accusations +declare +scars +kolkata +mat +meadows +bermuda +skeleton +finalists +vintage +crawl +coordinate +affects +subjected +orchestral +mistaken +##tc +mirrors +dipped +relied +260 +arches +candle +##nick +incorporating +wildly +fond +basilica +owl +fringe +rituals +whispering +stirred +feud +tertiary +slick +goat +honorable +whereby +skip +ricardo +stripes +parachute +adjoining +submerged +synthesizer +##gren +intend +positively +ninety +phi +beaver +partition +fellows +alexis +prohibition +carlisle +bizarre +fraternity +##bre +doubts +icy +cbc +aquatic +sneak +sonny +combines +airports +crude +supervised +spatial +merge +alfonso +##bic +corrupt +scan +undergo +##ams +disabilities +colombian +comparing +dolphins +perkins +##lish +reprinted +unanimous +bounced +hairs +underworld +midwest +semester +bucket +paperback +miniseries +coventry +demise +##leigh +demonstrations +sensor +rotating +yan +##hler +arrange +soils +##idge +hyderabad +labs +##dr +brakes +grandchildren +##nde +negotiated +rover +ferrari +continuation +directorate +augusta +stevenson +counterpart +gore +##rda +nursery +rican +ave +collectively +broadly +pastoral +repertoire +asserted +discovering +nordic +styled +fiba +cunningham +harley +middlesex +survives +tumor +tempo +zack +aiming +lok +urgent +##rade +##nto +devils +##ement +contractor +turin +##wl +##ool +bliss +repaired +simmons +moan +astronomical +cr +negotiate +lyric +1890s +lara +bred +clad +angus +pbs +##ience +engineered +posed +##lk +hernandez +possessions +elbows +psychiatric +strokes +confluence +electorate +lifts +campuses +lava +alps +##ep +##ution +##date +physicist +woody +##page +##ographic +##itis +juliet +reformation +sparhawk +320 +complement +suppressed +jewel +##½ +floated +##kas +continuity +sadly +##ische +inability +melting +scanning +paula +flour +judaism +safer +vague +##lm +solving +curb +##stown +financially +gable +bees +expired +miserable +cassidy +dominion +1789 +cupped +145 +robbery +facto +amos +warden +resume +tallest +marvin +ing +pounded +usd +declaring +gasoline +##aux +darkened +270 +650 +sophomore +##mere +erection +gossip +televised +risen +dial +##eu +pillars +##link +passages +profound +##tina +arabian +ashton +silicon +nail +##ead +##lated +##wer +##hardt +fleming +firearms +ducked +circuits +blows +waterloo +titans +##lina +atom +fireplace +cheshire +financed +activation +algorithms +##zzi +constituent +catcher +cherokee +partnerships +sexuality +platoon +tragic +vivian +guarded +whiskey +meditation +poetic +##late +##nga +##ake +porto +listeners +dominance +kendra +mona +chandler +factions +22nd +salisbury +attitudes +derivative +##ido +##haus +intake +paced +javier +illustrator +barrels +bias +cockpit +burnett +dreamed +ensuing +##anda +receptors +someday +hawkins +mattered +##lal +slavic +1799 +jesuit +cameroon +wasted +tai +wax +lowering +victorious +freaking +outright +hancock +librarian +sensing +bald +calcium +myers +tablet +announcing +barack +shipyard +pharmaceutical +##uan +greenwich +flush +medley +patches +wolfgang +pt +speeches +acquiring +exams +nikolai +##gg +hayden +kannada +##type +reilly +##pt +waitress +abdomen +devastated +capped +pseudonym +pharmacy +fulfill +paraguay +1796 +clicked +##trom +archipelago +syndicated +##hman +lumber +orgasm +rejection +clifford +lorraine +advent +mafia +rodney +brock +##ght +##used +##elia +cassette +chamberlain +despair +mongolia +sensors +developmental +upstream +##eg +##alis +spanning +165 +trombone +basque +seeded +interred +renewable +rhys +leapt +revision +molecule +##ages +chord +vicious +nord +shivered +23rd +arlington +debts +corpus +sunrise +bays +blackburn +centimetres +##uded +shuddered +gm +strangely +gripping +cartoons +isabelle +orbital +##ppa +seals +proving +##lton +refusal +strengthened +bust +assisting +baghdad +batsman +portrayal +mara +pushes +spears +og +##cock +reside +nathaniel +brennan +1776 +confirmation +caucus +##worthy +markings +yemen +nobles +ku +lazy +viewer +catalan +encompasses +sawyer +##fall +sparked +substances +patents +braves +arranger +evacuation +sergio +persuade +dover +tolerance +penguin +cum +jockey +insufficient +townships +occupying +declining +plural +processed +projection +puppet +flanders +introduces +liability +##yon +gymnastics +antwerp +taipei +hobart +candles +jeep +wes +observers +126 +chaplain +bundle +glorious +##hine +hazel +flung +sol +excavations +dumped +stares +sh +bangalore +triangular +icelandic +intervals +expressing +turbine +##vers +songwriting +crafts +##igo +jasmine +ditch +rite +##ways +entertaining +comply +sorrow +wrestlers +basel +emirates +marian +rivera +helpful +##some +caution +downward +networking +##atory +##tered +darted +genocide +emergence +replies +specializing +spokesman +convenient +unlocked +fading +augustine +concentrations +resemblance +elijah +investigator +andhra +##uda +promotes +bean +##rrell +fleeing +wan +simone +announcer +##ame +##bby +lydia +weaver +132 +residency +modification +##fest +stretches +##ast +alternatively +nat +lowe +lacks +##ented +pam +tile +concealed +inferior +abdullah +residences +tissues +vengeance +##ided +moisture +peculiar +groove +zip +bologna +jennings +ninja +oversaw +zombies +pumping +batch +livingston +emerald +installations +1797 +peel +nitrogen +rama +##fying +##star +schooling +strands +responding +werner +##ost +lime +casa +accurately +targeting +##rod +underway +##uru +hemisphere +lester +##yard +occupies +2d +griffith +angrily +reorganized +##owing +courtney +deposited +##dd +##30 +estadio +##ifies +dunn +exiled +##ying +checks +##combe +##о +##fly +successes +unexpectedly +blu +assessed +##flower +##ه +observing +sacked +spiders +kn +##tail +mu +nodes +prosperity +audrey +divisional +155 +broncos +tangled +adjust +feeds +erosion +paolo +surf +directory +snatched +humid +admiralty +screwed +gt +reddish +##nese +modules +trench +lamps +bind +leah +bucks +competes +##nz +##form +transcription +##uc +isles +violently +clutching +pga +cyclist +inflation +flats +ragged +unnecessary +##hian +stubborn +coordinated +harriet +baba +disqualified +330 +insect +wolfe +##fies +reinforcements +rocked +duel +winked +embraced +bricks +##raj +hiatus +defeats +pending +brightly +jealousy +##xton +##hm +##uki +lena +gdp +colorful +##dley +stein +kidney +##shu +underwear +wanderers +##haw +##icus +guardians +m³ +roared +habits +##wise +permits +gp +uranium +punished +disguise +bundesliga +elise +dundee +erotic +partisan +pi +collectors +float +individually +rendering +behavioral +bucharest +ser +hare +valerie +corporal +nutrition +proportional +##isa +immense +##kis +pavement +##zie +##eld +sutherland +crouched +1775 +##lp +suzuki +trades +endurance +operas +crosby +prayed +priory +rory +socially +##urn +gujarat +##pu +walton +cube +pasha +privilege +lennon +floods +thorne +waterfall +nipple +scouting +approve +##lov +minorities +voter +dwight +extensions +assure +ballroom +slap +dripping +privileges +rejoined +confessed +demonstrating +patriotic +yell +investor +##uth +pagan +slumped +squares +##cle +##kins +confront +bert +embarrassment +##aid +aston +urging +sweater +starr +yuri +brains +williamson +commuter +mortar +structured +selfish +exports +##jon +cds +##him +unfinished +##rre +mortgage +destinations +##nagar +canoe +solitary +buchanan +delays +magistrate +fk +##pling +motivation +##lier +##vier +recruiting +assess +##mouth +malik +antique +1791 +pius +rahman +reich +tub +zhou +smashed +airs +galway +xii +conditioning +honduras +discharged +dexter +##pf +lionel +129 +debates +lemon +tiffany +volunteered +dom +dioxide +procession +devi +sic +tremendous +advertisements +colts +transferring +verdict +hanover +decommissioned +utter +relate +pac +racism +##top +beacon +limp +similarity +terra +occurrence +ant +##how +becky +capt +updates +armament +richie +pal +##graph +halloween +mayo +##ssen +##bone +cara +serena +fcc +dolls +obligations +##dling +violated +lafayette +jakarta +exploitation +##ime +infamous +iconic +##lah +##park +kitty +moody +reginald +dread +spill +crystals +olivier +modeled +bluff +equilibrium +separating +notices +ordnance +extinction +onset +cosmic +attachment +sammy +expose +privy +anchored +##bil +abbott +admits +bending +baritone +emmanuel +policeman +vaughan +winged +climax +dresses +denny +polytechnic +mohamed +burmese +authentic +nikki +genetics +grandparents +homestead +gaza +postponed +metacritic +una +##sby +##bat +unstable +dissertation +##rial +##cian +curls +obscure +uncovered +bronx +praying +disappearing +##hoe +prehistoric +coke +turret +mutations +nonprofit +pits +monaco +##ي +##usion +prominently +dispatched +podium +##mir +uci +##uation +133 +fortifications +birthplace +kendall +##lby +##oll +preacher +rack +goodman +##rman +persistent +##ott +countless +jaime +recorder +lexington +persecution +jumps +renewal +wagons +##11 +crushing +##holder +decorations +##lake +abundance +wrath +laundry +£1 +garde +##rp +jeanne +beetles +peasant +##sl +splitting +caste +sergei +##rer +##ema +scripts +##ively +rub +satellites +##vor +inscribed +verlag +scrapped +gale +packages +chick +potato +slogan +kathleen +arabs +##culture +counterparts +reminiscent +choral +##tead +rand +retains +bushes +dane +accomplish +courtesy +closes +##oth +slaughter +hague +krakow +lawson +tailed +elias +ginger +##ttes +canopy +betrayal +rebuilding +turf +##hof +frowning +allegiance +brigades +kicks +rebuild +polls +alias +nationalism +td +rowan +audition +bowie +fortunately +recognizes +harp +dillon +horrified +##oro +renault +##tics +ropes +##α +presumed +rewarded +infrared +wiping +accelerated +illustration +##rid +presses +practitioners +badminton +##iard +detained +##tera +recognizing +relates +misery +##sies +##tly +reproduction +piercing +potatoes +thornton +esther +manners +hbo +##aan +ours +bullshit +ernie +perennial +sensitivity +illuminated +rupert +##jin +##iss +##ear +rfc +nassau +##dock +staggered +socialism +##haven +appointments +nonsense +prestige +sharma +haul +##tical +solidarity +gps +##ook +##rata +igor +pedestrian +##uit +baxter +tenants +wires +medication +unlimited +guiding +impacts +diabetes +##rama +sasha +pas +clive +extraction +131 +continually +constraints +##bilities +sonata +hunted +sixteenth +chu +planting +quote +mayer +pretended +abs +spat +##hua +ceramic +##cci +curtains +pigs +pitching +##dad +latvian +sore +dayton +##sted +##qi +patrols +slice +playground +##nted +shone +stool +apparatus +inadequate +mates +treason +##ija +desires +##liga +##croft +somalia +laurent +mir +leonardo +oracle +grape +obliged +chevrolet +thirteenth +stunning +enthusiastic +##ede +accounted +concludes +currents +basil +##kovic +drought +##rica +mai +##aire +shove +posting +##shed +pilgrimage +humorous +packing +fry +pencil +wines +smells +144 +marilyn +aching +newest +clung +bon +neighbours +sanctioned +##pie +mug +##stock +drowning +##mma +hydraulic +##vil +hiring +reminder +lilly +investigators +##ncies +sour +##eous +compulsory +packet +##rion +##graphic +##elle +cannes +##inate +depressed +##rit +heroic +importantly +theresa +##tled +conway +saturn +marginal +rae +##xia +corresponds +royce +pact +jasper +explosives +packaging +aluminium +##ttered +denotes +rhythmic +spans +assignments +hereditary +outlined +originating +sundays +lad +reissued +greeting +beatrice +##dic +pillar +marcos +plots +handbook +alcoholic +judiciary +avant +slides +extract +masculine +blur +##eum +##force +homage +trembled +owens +hymn +trey +omega +signaling +socks +accumulated +reacted +attic +theo +lining +angie +distraction +primera +talbot +##key +1200 +ti +creativity +billed +##hey +deacon +eduardo +identifies +proposition +dizzy +gunner +hogan +##yam +##pping +##hol +ja +##chan +jensen +reconstructed +##berger +clearance +darius +##nier +abe +harlem +plea +dei +circled +emotionally +notation +fascist +neville +exceeded +upwards +viable +ducks +##fo +workforce +racer +limiting +shri +##lson +possesses +1600 +kerr +moths +devastating +laden +disturbing +locking +##cture +gal +fearing +accreditation +flavor +aide +1870s +mountainous +##baum +melt +##ures +motel +texture +servers +soda +##mb +herd +##nium +erect +puzzled +hum +peggy +examinations +gould +testified +geoff +ren +devised +sacks +##law +denial +posters +grunted +cesar +tutor +ec +gerry +offerings +byrne +falcons +combinations +ct +incoming +pardon +rocking +26th +avengers +flared +mankind +seller +uttar +loch +nadia +stroking +exposing +##hd +fertile +ancestral +instituted +##has +noises +prophecy +taxation +eminent +vivid +pol +##bol +dart +indirect +multimedia +notebook +upside +displaying +adrenaline +referenced +geometric +##iving +progression +##ddy +blunt +announce +##far +implementing +##lav +aggression +liaison +cooler +cares +headache +plantations +gorge +dots +impulse +thickness +ashamed +averaging +kathy +obligation +precursor +137 +fowler +symmetry +thee +225 +hears +##rai +undergoing +ads +butcher +bowler +##lip +cigarettes +subscription +goodness +##ically +browne +##hos +##tech +kyoto +donor +##erty +damaging +friction +drifting +expeditions +hardened +prostitution +152 +fauna +blankets +claw +tossing +snarled +butterflies +recruits +investigative +coated +healed +138 +communal +hai +xiii +academics +boone +psychologist +restless +lahore +stephens +mba +brendan +foreigners +printer +##pc +ached +explode +27th +deed +scratched +dared +##pole +cardiac +1780 +okinawa +proto +commando +compelled +oddly +electrons +##base +replica +thanksgiving +##rist +sheila +deliberate +stafford +tidal +representations +hercules +ou +##path +##iated +kidnapping +lenses +##tling +deficit +samoa +mouths +consuming +computational +maze +granting +smirk +razor +fixture +ideals +inviting +aiden +nominal +##vs +issuing +julio +pitt +ramsey +docks +##oss +exhaust +##owed +bavarian +draped +anterior +mating +ethiopian +explores +noticing +##nton +discarded +convenience +hoffman +endowment +beasts +cartridge +mormon +paternal +probe +sleeves +interfere +lump +deadline +##rail +jenks +bulldogs +scrap +alternating +justified +reproductive +nam +seize +descending +secretariat +kirby +coupe +grouped +smash +panther +sedan +tapping +##18 +lola +cheer +germanic +unfortunate +##eter +unrelated +##fan +subordinate +##sdale +suzanne +advertisement +##ility +horsepower +##lda +cautiously +discourse +luigi +##mans +##fields +noun +prevalent +mao +schneider +everett +surround +governorate +kira +##avia +westward +##take +misty +rails +sustainability +134 +unused +##rating +packs +toast +unwilling +regulate +thy +suffrage +nile +awe +assam +definitions +travelers +affordable +##rb +conferred +sells +undefeated +beneficial +torso +basal +repeating +remixes +##pass +bahrain +cables +fang +##itated +excavated +numbering +statutory +##rey +deluxe +##lian +forested +ramirez +derbyshire +zeus +slamming +transfers +astronomer +banana +lottery +berg +histories +bamboo +##uchi +resurrection +posterior +bowls +vaguely +##thi +thou +preserving +tensed +offence +##inas +meyrick +callum +ridden +watt +langdon +tying +lowland +snorted +daring +truman +##hale +##girl +aura +overly +filing +weighing +goa +infections +philanthropist +saunders +eponymous +##owski +latitude +perspectives +reviewing +mets +commandant +radial +##kha +flashlight +reliability +koch +vowels +amazed +ada +elaine +supper +##rth +##encies +predator +debated +soviets +cola +##boards +##nah +compartment +crooked +arbitrary +fourteenth +##ctive +havana +majors +steelers +clips +profitable +ambush +exited +packers +##tile +nude +cracks +fungi +##е +limb +trousers +josie +shelby +tens +frederic +##ος +definite +smoothly +constellation +insult +baton +discs +lingering +##nco +conclusions +lent +staging +becker +grandpa +shaky +##tron +einstein +obstacles +sk +adverse +elle +economically +##moto +mccartney +thor +dismissal +motions +readings +nostrils +treatise +##pace +squeezing +evidently +prolonged +1783 +venezuelan +je +marguerite +beirut +takeover +shareholders +##vent +denise +digit +airplay +norse +##bbling +imaginary +pills +hubert +blaze +vacated +eliminating +##ello +vine +mansfield +##tty +retrospective +barrow +borne +clutch +bail +forensic +weaving +##nett +##witz +desktop +citadel +promotions +worrying +dorset +ieee +subdivided +##iating +manned +expeditionary +pickup +synod +chuckle +185 +barney +##rz +##ffin +functionality +karachi +litigation +meanings +uc +lick +turbo +anders +##ffed +execute +curl +oppose +ankles +typhoon +##د +##ache +##asia +linguistics +compassion +pressures +grazing +perfection +##iting +immunity +monopoly +muddy +backgrounds +136 +namibia +francesca +monitors +attracting +stunt +tuition +##ии +vegetable +##mates +##quent +mgm +jen +complexes +forts +##ond +cellar +bites +seventeenth +royals +flemish +failures +mast +charities +##cular +peruvian +capitals +macmillan +ipswich +outward +frigate +postgraduate +folds +employing +##ouse +concurrently +fiery +##tai +contingent +nightmares +monumental +nicaragua +##kowski +lizard +mal +fielding +gig +reject +##pad +harding +##ipe +coastline +##cin +##nos +beethoven +humphrey +innovations +##tam +##nge +norris +doris +solicitor +huang +obey +141 +##lc +niagara +##tton +shelves +aug +bourbon +curry +nightclub +specifications +hilton +##ndo +centennial +dispersed +worm +neglected +briggs +sm +font +kuala +uneasy +plc +##nstein +##bound +##aking +##burgh +awaiting +pronunciation +##bbed +##quest +eh +optimal +zhu +raped +greens +presided +brenda +worries +##life +venetian +marxist +turnout +##lius +refined +braced +sins +grasped +sunderland +nickel +speculated +lowell +cyrillic +communism +fundraising +resembling +colonists +mutant +freddie +usc +##mos +gratitude +##run +mural +##lous +chemist +wi +reminds +28th +steals +tess +pietro +##ingen +promoter +ri +microphone +honoured +rai +sant +##qui +feather +##nson +burlington +kurdish +terrorists +deborah +sickness +##wed +##eet +hazard +irritated +desperation +veil +clarity +##rik +jewels +xv +##gged +##ows +##cup +berkshire +unfair +mysteries +orchid +winced +exhaustion +renovations +stranded +obe +infinity +##nies +adapt +redevelopment +thanked +registry +olga +domingo +noir +tudor +ole +##atus +commenting +behaviors +##ais +crisp +pauline +probable +stirling +wigan +##bian +paralympics +panting +surpassed +##rew +luca +barred +pony +famed +##sters +cassandra +waiter +carolyn +exported +##orted +andres +destructive +deeds +jonah +castles +vacancy +suv +##glass +1788 +orchard +yep +famine +belarusian +sprang +##forth +skinny +##mis +administrators +rotterdam +zambia +zhao +boiler +discoveries +##ride +##physics +lucius +disappointing +outreach +spoon +##frame +qualifications +unanimously +enjoys +regency +##iidae +stade +realism +veterinary +rodgers +dump +alain +chestnut +castile +censorship +rumble +gibbs +##itor +communion +reggae +inactivated +logs +loads +##houses +homosexual +##iano +ale +informs +##cas +phrases +plaster +linebacker +ambrose +kaiser +fascinated +850 +limerick +recruitment +forge +mastered +##nding +leinster +rooted +threaten +##strom +borneo +##hes +suggestions +scholarships +propeller +documentaries +patronage +coats +constructing +invest +neurons +comet +entirety +shouts +identities +annoying +unchanged +wary +##antly +##ogy +neat +oversight +##kos +phillies +replay +constance +##kka +incarnation +humble +skies +minus +##acy +smithsonian +##chel +guerrilla +jar +cadets +##plate +surplus +audit +##aru +cracking +joanna +louisa +pacing +##lights +intentionally +##iri +diner +nwa +imprint +australians +tong +unprecedented +bunker +naive +specialists +ark +nichols +railing +leaked +pedal +##uka +shrub +longing +roofs +v8 +captains +neural +tuned +##ntal +##jet +emission +medina +frantic +codex +definitive +sid +abolition +intensified +stocks +enrique +sustain +genoa +oxide +##written +clues +cha +##gers +tributaries +fragment +venom +##rity +##ente +##sca +muffled +vain +sire +laos +##ingly +##hana +hastily +snapping +surfaced +sentiment +motive +##oft +contests +approximate +mesa +luckily +dinosaur +exchanges +propelled +accord +bourne +relieve +tow +masks +offended +##ues +cynthia +##mmer +rains +bartender +zinc +reviewers +lois +##sai +legged +arrogant +rafe +rosie +comprise +handicap +blockade +inlet +lagoon +copied +drilling +shelley +petals +##inian +mandarin +obsolete +##inated +onward +arguably +productivity +cindy +praising +seldom +busch +discusses +raleigh +shortage +ranged +stanton +encouragement +firstly +conceded +overs +temporal +##uke +cbe +##bos +woo +certainty +pumps +##pton +stalked +##uli +lizzie +periodic +thieves +weaker +##night +gases +shoving +chooses +wc +##chemical +prompting +weights +##kill +robust +flanked +sticky +hu +tuberculosis +##eb +##eal +christchurch +resembled +wallet +reese +inappropriate +pictured +distract +fixing +fiddle +giggled +burger +heirs +hairy +mechanic +torque +apache +obsessed +chiefly +cheng +logging +##tag +extracted +meaningful +numb +##vsky +gloucestershire +reminding +##bay +unite +##lit +breeds +diminished +clown +glove +1860s +##ن +##ug +archibald +focal +freelance +sliced +depiction +##yk +organism +switches +sights +stray +crawling +##ril +lever +leningrad +interpretations +loops +anytime +reel +alicia +delighted +##ech +inhaled +xiv +suitcase +bernie +vega +licenses +northampton +exclusion +induction +monasteries +racecourse +homosexuality +##right +##sfield +##rky +dimitri +michele +alternatives +ions +commentators +genuinely +objected +pork +hospitality +fencing +stephan +warships +peripheral +wit +drunken +wrinkled +quentin +spends +departing +chung +numerical +spokesperson +##zone +johannesburg +caliber +killers +##udge +assumes +neatly +demographic +abigail +bloc +##vel +mounting +##lain +bentley +slightest +xu +recipients +##jk +merlin +##writer +seniors +prisons +blinking +hindwings +flickered +kappa +##hel +80s +strengthening +appealing +brewing +gypsy +mali +lashes +hulk +unpleasant +harassment +bio +treaties +predict +instrumentation +pulp +troupe +boiling +mantle +##ffe +ins +##vn +dividing +handles +verbs +##onal +coconut +senegal +340 +thorough +gum +momentarily +##sto +cocaine +panicked +destined +##turing +teatro +denying +weary +captained +mans +##hawks +##code +wakefield +bollywood +thankfully +##16 +cyril +##wu +amendments +##bahn +consultation +stud +reflections +kindness +1787 +internally +##ovo +tex +mosaic +distribute +paddy +seeming +143 +##hic +piers +##15 +##mura +##verse +popularly +winger +kang +sentinel +mccoy +##anza +covenant +##bag +verge +fireworks +suppress +thrilled +dominate +##jar +swansea +##60 +142 +reconciliation +##ndi +stiffened +cue +dorian +##uf +damascus +amor +ida +foremost +##aga +porsche +unseen +dir +##had +##azi +stony +lexi +melodies +##nko +angular +integer +podcast +ants +inherent +jaws +justify +persona +##olved +josephine +##nr +##ressed +customary +flashes +gala +cyrus +glaring +backyard +ariel +physiology +greenland +html +stir +avon +atletico +finch +methodology +ked +##lent +mas +catholicism +townsend +branding +quincy +fits +containers +1777 +ashore +aragon +##19 +forearm +poisoning +##sd +adopting +conquer +grinding +amnesty +keller +finances +evaluate +forged +lankan +instincts +##uto +guam +bosnian +photographed +workplace +desirable +protector +##dog +allocation +intently +encourages +willy +##sten +bodyguard +electro +brighter +##ν +bihar +##chev +lasts +opener +amphibious +sal +verde +arte +##cope +captivity +vocabulary +yields +##tted +agreeing +desmond +pioneered +##chus +strap +campaigned +railroads +##ович +emblem +##dre +stormed +501 +##ulous +marijuana +northumberland +##gn +##nath +bowen +landmarks +beaumont +##qua +danube +##bler +attorneys +th +ge +flyers +critique +villains +cass +mutation +acc +##0s +colombo +mckay +motif +sampling +concluding +syndicate +##rell +neon +stables +ds +warnings +clint +mourning +wilkinson +##tated +merrill +leopard +evenings +exhaled +emil +sonia +ezra +discrete +stove +farrell +fifteenth +prescribed +superhero +##rier +worms +helm +wren +##duction +##hc +expo +##rator +hq +unfamiliar +antony +prevents +acceleration +fiercely +mari +painfully +calculations +cheaper +ign +clifton +irvine +davenport +mozambique +##np +pierced +##evich +wonders +##wig +##cate +##iling +crusade +ware +##uel +enzymes +reasonably +mls +##coe +mater +ambition +bunny +eliot +kernel +##fin +asphalt +headmaster +torah +aden +lush +pins +waived +##care +##yas +joao +substrate +enforce +##grad +##ules +alvarez +selections +epidemic +tempted +##bit +bremen +translates +ensured +waterfront +29th +forrest +manny +malone +kramer +reigning +cookies +simpler +absorption +205 +engraved +##ffy +evaluated +1778 +haze +146 +comforting +crossover +##abe +thorn +##rift +##imo +##pop +suppression +fatigue +cutter +##tr +201 +wurttemberg +##orf +enforced +hovering +proprietary +gb +samurai +syllable +ascent +lacey +tick +lars +tractor +merchandise +rep +bouncing +defendants +##yre +huntington +##ground +##oko +standardized +##hor +##hima +assassinated +nu +predecessors +rainy +liar +assurance +lyrical +##uga +secondly +flattened +ios +parameter +undercover +##mity +bordeaux +punish +ridges +markers +exodus +inactive +hesitate +debbie +nyc +pledge +savoy +nagar +offset +organist +##tium +hesse +marin +converting +##iver +diagram +propulsion +pu +validity +reverted +supportive +##dc +ministries +clans +responds +proclamation +##inae +##ø +##rea +ein +pleading +patriot +sf +birch +islanders +strauss +hates +##dh +brandenburg +concession +rd +##ob +1900s +killings +textbook +antiquity +cinematography +wharf +embarrassing +setup +creed +farmland +inequality +centred +signatures +fallon +370 +##ingham +##uts +ceylon +gazing +directive +laurie +##tern +globally +##uated +##dent +allah +excavation +threads +##cross +148 +frantically +icc +utilize +determines +respiratory +thoughtful +receptions +##dicate +merging +chandra +seine +147 +builders +builds +diagnostic +dev +visibility +goddamn +analyses +dhaka +cho +proves +chancel +concurrent +curiously +canadians +pumped +restoring +1850s +turtles +jaguar +sinister +spinal +traction +declan +vows +1784 +glowed +capitalism +swirling +install +universidad +##lder +##oat +soloist +##genic +##oor +coincidence +beginnings +nissan +dip +resorts +caucasus +combustion +infectious +##eno +pigeon +serpent +##itating +conclude +masked +salad +jew +##gr +surreal +toni +##wc +harmonica +151 +##gins +##etic +##coat +fishermen +intending +bravery +##wave +klaus +titan +wembley +taiwanese +ransom +40th +incorrect +hussein +eyelids +jp +cooke +dramas +utilities +##etta +##print +eisenhower +principally +granada +lana +##rak +openings +concord +##bl +bethany +connie +morality +sega +##mons +##nard +earnings +##kara +##cine +wii +communes +##rel +coma +composing +softened +severed +grapes +##17 +nguyen +analyzed +warlord +hubbard +heavenly +behave +slovenian +##hit +##ony +hailed +filmmakers +trance +caldwell +skye +unrest +coward +likelihood +##aging +bern +sci +taliban +honolulu +propose +##wang +1700 +browser +imagining +cobra +contributes +dukes +instinctively +conan +violinist +##ores +accessories +gradual +##amp +quotes +sioux +##dating +undertake +intercepted +sparkling +compressed +139 +fungus +tombs +haley +imposing +rests +degradation +lincolnshire +retailers +wetlands +tulsa +distributor +dungeon +nun +greenhouse +convey +atlantis +aft +exits +oman +dresser +lyons +##sti +joking +eddy +judgement +omitted +digits +##cts +##game +juniors +##rae +cents +stricken +une +##ngo +wizards +weir +breton +nan +technician +fibers +liking +royalty +##cca +154 +persia +terribly +magician +##rable +##unt +vance +cafeteria +booker +camille +warmer +##static +consume +cavern +gaps +compass +contemporaries +foyer +soothing +graveyard +maj +plunged +blush +##wear +cascade +demonstrates +ordinance +##nov +boyle +##lana +rockefeller +shaken +banjo +izzy +##ense +breathless +vines +##32 +##eman +alterations +chromosome +dwellings +feudal +mole +153 +catalonia +relics +tenant +mandated +##fm +fridge +hats +honesty +patented +raul +heap +cruisers +accusing +enlightenment +infants +wherein +chatham +contractors +zen +affinity +hc +osborne +piston +156 +traps +maturity +##rana +lagos +##zal +peering +##nay +attendant +dealers +protocols +subset +prospects +biographical +##cre +artery +##zers +insignia +nuns +endured +##eration +recommend +schwartz +serbs +berger +cromwell +crossroads +##ctor +enduring +clasped +grounded +##bine +marseille +twitched +abel +choke +https +catalyst +moldova +italians +##tist +disastrous +wee +##oured +##nti +wwf +nope +##piration +##asa +expresses +thumbs +167 +##nza +coca +1781 +cheating +##ption +skipped +sensory +heidelberg +spies +satan +dangers +semifinal +202 +bohemia +whitish +confusing +shipbuilding +relies +surgeons +landings +ravi +baku +moor +suffix +alejandro +##yana +litre +upheld +##unk +rajasthan +##rek +coaster +insists +posture +scenarios +etienne +favoured +appoint +transgender +elephants +poked +greenwood +defences +fulfilled +militant +somali +1758 +chalk +potent +##ucci +migrants +wink +assistants +nos +restriction +activism +niger +##ario +colon +shaun +##sat +daphne +##erated +swam +congregations +reprise +considerations +magnet +playable +xvi +##р +overthrow +tobias +knob +chavez +coding +##mers +propped +katrina +orient +newcomer +##suke +temperate +##pool +farmhouse +interrogation +##vd +committing +##vert +forthcoming +strawberry +joaquin +macau +ponds +shocking +siberia +##cellular +chant +contributors +##nant +##ologists +sped +absorb +hail +1782 +spared +##hore +barbados +karate +opus +originates +saul +##xie +evergreen +leaped +##rock +correlation +exaggerated +weekday +unification +bump +tracing +brig +afb +pathways +utilizing +##ners +mod +mb +disturbance +kneeling +##stad +##guchi +100th +pune +##thy +decreasing +168 +manipulation +miriam +academia +ecosystem +occupational +rbi +##lem +rift +##14 +rotary +stacked +incorporation +awakening +generators +guerrero +racist +##omy +cyber +derivatives +culminated +allie +annals +panzer +sainte +wikipedia +pops +zu +austro +##vate +algerian +politely +nicholson +mornings +educate +tastes +thrill +dartmouth +##gating +db +##jee +regan +differing +concentrating +choreography +divinity +##media +pledged +alexandre +routing +gregor +madeline +##idal +apocalypse +##hora +gunfire +culminating +elves +fined +liang +lam +programmed +tar +guessing +transparency +gabrielle +##gna +cancellation +flexibility +##lining +accession +shea +stronghold +nets +specializes +##rgan +abused +hasan +sgt +ling +exceeding +##₄ +admiration +supermarket +##ark +photographers +specialised +tilt +resonance +hmm +perfume +380 +sami +threatens +garland +botany +guarding +boiled +greet +puppy +russo +supplier +wilmington +vibrant +vijay +##bius +paralympic +grumbled +paige +faa +licking +margins +hurricanes +##gong +fest +grenade +ripping +##uz +counseling +weigh +##sian +needles +wiltshire +edison +costly +##not +fulton +tramway +redesigned +staffordshire +cache +gasping +watkins +sleepy +candidacy +##group +monkeys +timeline +throbbing +##bid +##sos +berth +uzbekistan +vanderbilt +bothering +overturned +ballots +gem +##iger +sunglasses +subscribers +hooker +compelling +ang +exceptionally +saloon +stab +##rdi +carla +terrifying +rom +##vision +coil +##oids +satisfying +vendors +31st +mackay +deities +overlooked +ambient +bahamas +felipe +olympia +whirled +botanist +advertised +tugging +##dden +disciples +morales +unionist +rites +foley +morse +motives +creepy +##₀ +soo +##sz +bargain +highness +frightening +turnpike +tory +reorganization +##cer +depict +biographer +##walk +unopposed +manifesto +##gles +institut +emile +accidental +kapoor +##dam +kilkenny +cortex +lively +##13 +romanesque +jain +shan +cannons +##ood +##ske +petrol +echoing +amalgamated +disappears +cautious +proposes +sanctions +trenton +##ر +flotilla +aus +contempt +tor +canary +cote +theirs +##hun +conceptual +deleted +fascinating +paso +blazing +elf +honourable +hutchinson +##eiro +##outh +##zin +surveyor +tee +amidst +wooded +reissue +intro +##ono +cobb +shelters +newsletter +hanson +brace +encoding +confiscated +dem +caravan +marino +scroll +melodic +cows +imam +##adi +##aneous +northward +searches +biodiversity +cora +310 +roaring +##bers +connell +theologian +halo +compose +pathetic +unmarried +dynamo +##oot +az +calculation +toulouse +deserves +humour +nr +forgiveness +tam +undergone +martyr +pamela +myths +whore +counselor +hicks +290 +heavens +battleship +electromagnetic +##bbs +stellar +establishments +presley +hopped +##chin +temptation +90s +wills +nas +##yuan +nhs +##nya +seminars +##yev +adaptations +gong +asher +lex +indicator +sikh +tobago +cites +goin +##yte +satirical +##gies +characterised +correspond +bubbles +lure +participates +##vid +eruption +skate +therapeutic +1785 +canals +wholesale +defaulted +sac +460 +petit +##zzled +virgil +leak +ravens +256 +portraying +##yx +ghetto +creators +dams +portray +vicente +##rington +fae +namesake +bounty +##arium +joachim +##ota +##iser +aforementioned +axle +snout +depended +dismantled +reuben +480 +##ibly +gallagher +##lau +##pd +earnest +##ieu +##iary +inflicted +objections +##llar +asa +gritted +##athy +jericho +##sea +##was +flick +underside +ceramics +undead +substituted +195 +eastward +undoubtedly +wheeled +chimney +##iche +guinness +cb +##ager +siding +##bell +traitor +baptiste +disguised +inauguration +149 +tipperary +choreographer +perched +warmed +stationary +eco +##ike +##ntes +bacterial +##aurus +flores +phosphate +##core +attacker +invaders +alvin +intersects +a1 +indirectly +immigrated +businessmen +cornelius +valves +narrated +pill +sober +ul +nationale +monastic +applicants +scenery +##jack +161 +motifs +constitutes +cpu +##osh +jurisdictions +sd +tuning +irritation +woven +##uddin +fertility +gao +##erie +antagonist +impatient +glacial +hides +boarded +denominations +interception +##jas +cookie +nicola +##tee +algebraic +marquess +bahn +parole +buyers +bait +turbines +paperwork +bestowed +natasha +renee +oceans +purchases +157 +vaccine +215 +##tock +fixtures +playhouse +integrate +jai +oswald +intellectuals +##cky +booked +nests +mortimer +##isi +obsession +sept +##gler +##sum +440 +scrutiny +simultaneous +squinted +##shin +collects +oven +shankar +penned +remarkably +##я +slips +luggage +spectral +1786 +collaborations +louie +consolidation +##ailed +##ivating +420 +hoover +blackpool +harness +ignition +vest +tails +belmont +mongol +skinner +##nae +visually +mage +derry +##tism +##unce +stevie +transitional +##rdy +redskins +drying +prep +prospective +##21 +annoyance +oversee +##loaded +fills +##books +##iki +announces +fda +scowled +respects +prasad +mystic +tucson +##vale +revue +springer +bankrupt +1772 +aristotle +salvatore +habsburg +##geny +dal +natal +nut +pod +chewing +darts +moroccan +walkover +rosario +lenin +punjabi +##ße +grossed +scattering +wired +invasive +hui +polynomial +corridors +wakes +gina +portrays +##cratic +arid +retreating +erich +irwin +sniper +##dha +linen +lindsey +maneuver +butch +shutting +socio +bounce +commemorative +postseason +jeremiah +pines +275 +mystical +beads +bp +abbas +furnace +bidding +consulted +assaulted +empirical +rubble +enclosure +sob +weakly +cancel +polly +yielded +##emann +curly +prediction +battered +70s +vhs +jacqueline +render +sails +barked +detailing +grayson +riga +sloane +raging +##yah +herbs +bravo +##athlon +alloy +giggle +imminent +suffers +assumptions +waltz +##itate +accomplishments +##ited +bathing +remixed +deception +prefix +##emia +deepest +##tier +##eis +balkan +frogs +##rong +slab +##pate +philosophers +peterborough +grains +imports +dickinson +rwanda +##atics +1774 +dirk +lan +tablets +##rove +clone +##rice +caretaker +hostilities +mclean +##gre +regimental +treasures +norms +impose +tsar +tango +diplomacy +variously +complain +192 +recognise +arrests +1779 +celestial +pulitzer +##dus +bing +libretto +##moor +adele +splash +##rite +expectation +lds +confronts +##izer +spontaneous +harmful +wedge +entrepreneurs +buyer +##ope +bilingual +translate +rugged +conner +circulated +uae +eaton +##gra +##zzle +lingered +lockheed +vishnu +reelection +alonso +##oom +joints +yankee +headline +cooperate +heinz +laureate +invading +##sford +echoes +scandinavian +##dham +hugging +vitamin +salute +micah +hind +trader +##sper +radioactive +##ndra +militants +poisoned +ratified +remark +campeonato +deprived +wander +prop +##dong +outlook +##tani +##rix +##eye +chiang +darcy +##oping +mandolin +spice +statesman +babylon +182 +walled +forgetting +afro +##cap +158 +giorgio +buffer +##polis +planetary +##gis +overlap +terminals +kinda +centenary +##bir +arising +manipulate +elm +ke +1770 +ak +##tad +chrysler +mapped +moose +pomeranian +quad +macarthur +assemblies +shoreline +recalls +stratford +##rted +noticeable +##evic +imp +##rita +##sque +accustomed +supplying +tents +disgusted +vogue +sipped +filters +khz +reno +selecting +luftwaffe +mcmahon +tyne +masterpiece +carriages +collided +dunes +exercised +flare +remembers +muzzle +##mobile +heck +##rson +burgess +lunged +middleton +boycott +bilateral +##sity +hazardous +lumpur +multiplayer +spotlight +jackets +goldman +liege +porcelain +rag +waterford +benz +attracts +hopeful +battling +ottomans +kensington +baked +hymns +cheyenne +lattice +levine +borrow +polymer +clashes +michaels +monitored +commitments +denounced +##25 +##von +cavity +##oney +hobby +akin +##holders +futures +intricate +cornish +patty +##oned +illegally +dolphin +##lag +barlow +yellowish +maddie +apologized +luton +plagued +##puram +nana +##rds +sway +fanny +łodz +##rino +psi +suspicions +hanged +##eding +initiate +charlton +##por +nak +competent +235 +analytical +annex +wardrobe +reservations +##rma +sect +162 +fairfax +hedge +piled +buckingham +uneven +bauer +simplicity +snyder +interpret +accountability +donors +moderately +byrd +continents +##cite +##max +disciple +hr +jamaican +ping +nominees +##uss +mongolian +diver +attackers +eagerly +ideological +pillows +miracles +apartheid +revolver +sulfur +clinics +moran +163 +##enko +ile +katy +rhetoric +##icated +chronology +recycling +##hrer +elongated +mughal +pascal +profiles +vibration +databases +domination +##fare +##rant +matthias +digest +rehearsal +polling +weiss +initiation +reeves +clinging +flourished +impress +ngo +##hoff +##ume +buckley +symposium +rhythms +weed +emphasize +transforming +##taking +##gence +##yman +accountant +analyze +flicker +foil +priesthood +voluntarily +decreases +##80 +##hya +slater +sv +charting +mcgill +##lde +moreno +##iu +besieged +zur +robes +##phic +admitting +api +deported +turmoil +peyton +earthquakes +##ares +nationalists +beau +clair +brethren +interrupt +welch +curated +galerie +requesting +164 +##ested +impending +steward +viper +##vina +complaining +beautifully +brandy +foam +nl +1660 +##cake +alessandro +punches +laced +explanations +##lim +attribute +clit +reggie +discomfort +##cards +smoothed +whales +##cene +adler +countered +duffy +disciplinary +widening +recipe +reliance +conducts +goats +gradient +preaching +##shaw +matilda +quasi +striped +meridian +cannabis +cordoba +certificates +##agh +##tering +graffiti +hangs +pilgrims +repeats +##ych +revive +urine +etat +##hawk +fueled +belts +fuzzy +susceptible +##hang +mauritius +salle +sincere +beers +hooks +##cki +arbitration +entrusted +advise +sniffed +seminar +junk +donnell +processors +principality +strapped +celia +mendoza +everton +fortunes +prejudice +starving +reassigned +steamer +##lund +tuck +evenly +foreman +##ffen +dans +375 +envisioned +slit +##xy +baseman +liberia +rosemary +##weed +electrified +periodically +potassium +stride +contexts +sperm +slade +mariners +influx +bianca +subcommittee +##rane +spilling +icao +estuary +##nock +delivers +iphone +##ulata +isa +mira +bohemian +dessert +##sbury +welcoming +proudly +slowing +##chs +musee +ascension +russ +##vian +waits +##psy +africans +exploit +##morphic +gov +eccentric +crab +peck +##ull +entrances +formidable +marketplace +groom +bolted +metabolism +patton +robbins +courier +payload +endure +##ifier +andes +refrigerator +##pr +ornate +##uca +ruthless +illegitimate +masonry +strasbourg +bikes +adobe +##³ +apples +quintet +willingly +niche +bakery +corpses +energetic +##cliffe +##sser +##ards +177 +centimeters +centro +fuscous +cretaceous +rancho +##yde +andrei +telecom +tottenham +oasis +ordination +vulnerability +presiding +corey +cp +penguins +sims +##pis +malawi +piss +##48 +correction +##cked +##ffle +##ryn +countdown +detectives +psychiatrist +psychedelic +dinosaurs +blouse +##get +choi +vowed +##oz +randomly +##pol +49ers +scrub +blanche +bruins +dusseldorf +##using +unwanted +##ums +212 +dominique +elevations +headlights +om +laguna +##oga +1750 +famously +ignorance +shrewsbury +##aine +ajax +breuning +che +confederacy +greco +overhaul +##screen +paz +skirts +disagreement +cruelty +jagged +phoebe +shifter +hovered +viruses +##wes +mandy +##lined +##gc +landlord +squirrel +dashed +##ι +ornamental +gag +wally +grange +literal +spurs +undisclosed +proceeding +yin +##text +billie +orphan +spanned +humidity +indy +weighted +presentations +explosions +lucian +##tary +vaughn +hindus +##anga +##hell +psycho +171 +daytona +protects +efficiently +rematch +sly +tandem +##oya +rebranded +impaired +hee +metropolis +peach +godfrey +diaspora +ethnicity +prosperous +gleaming +dar +grossing +playback +##rden +stripe +pistols +##tain +births +labelled +##cating +172 +rudy +alba +##onne +aquarium +hostility +##gb +##tase +shudder +sumatra +hardest +lakers +consonant +creeping +demos +homicide +capsule +zeke +liberties +expulsion +pueblo +##comb +trait +transporting +##ddin +##neck +##yna +depart +gregg +mold +ledge +hangar +oldham +playboy +termination +analysts +gmbh +romero +##itic +insist +cradle +filthy +brightness +slash +shootout +deposed +bordering +##truct +isis +microwave +tumbled +sheltered +cathy +werewolves +messy +andersen +convex +clapped +clinched +satire +wasting +edo +vc +rufus +##jak +mont +##etti +poznan +##keeping +restructuring +transverse +##rland +azerbaijani +slovene +gestures +roommate +choking +shear +##quist +vanguard +oblivious +##hiro +disagreed +baptism +##lich +coliseum +##aceae +salvage +societe +cory +locke +relocation +relying +versailles +ahl +swelling +##elo +cheerful +##word +##edes +gin +sarajevo +obstacle +diverted +##nac +messed +thoroughbred +fluttered +utrecht +chewed +acquaintance +assassins +dispatch +mirza +##wart +nike +salzburg +swell +yen +##gee +idle +ligue +samson +##nds +##igh +playful +spawned +##cise +tease +##case +burgundy +##bot +stirring +skeptical +interceptions +marathi +##dies +bedrooms +aroused +pinch +##lik +preferences +tattoos +buster +digitally +projecting +rust +##ital +kitten +priorities +addison +pseudo +##guard +dusk +icons +sermon +##psis +##iba +bt +##lift +##xt +ju +truce +rink +##dah +##wy +defects +psychiatry +offences +calculate +glucose +##iful +##rized +##unda +francaise +##hari +richest +warwickshire +carly +1763 +purity +redemption +lending +##cious +muse +bruises +cerebral +aero +carving +##name +preface +terminology +invade +monty +##int +anarchist +blurred +##iled +rossi +treats +guts +shu +foothills +ballads +undertaking +premise +cecilia +affiliates +blasted +conditional +wilder +minors +drone +rudolph +buffy +swallowing +horton +attested +##hop +rutherford +howell +primetime +livery +penal +##bis +minimize +hydro +wrecked +wrought +palazzo +##gling +cans +vernacular +friedman +nobleman +shale +walnut +danielle +##ection +##tley +sears +##kumar +chords +lend +flipping +streamed +por +dracula +gallons +sacrifices +gamble +orphanage +##iman +mckenzie +##gible +boxers +daly +##balls +##ان +208 +##ific +##rative +##iq +exploited +slated +##uity +circling +hillary +pinched +goldberg +provost +campaigning +lim +piles +ironically +jong +mohan +successors +usaf +##tem +##ught +autobiographical +haute +preserves +##ending +acquitted +comparisons +203 +hydroelectric +gangs +cypriot +torpedoes +rushes +chrome +derive +bumps +instability +fiat +pets +##mbe +silas +dye +reckless +settler +##itation +info +heats +##writing +176 +canonical +maltese +fins +mushroom +stacy +aspen +avid +##kur +##loading +vickers +gaston +hillside +statutes +wilde +gail +kung +sabine +comfortably +motorcycles +##rgo +169 +pneumonia +fetch +##sonic +axel +faintly +parallels +##oop +mclaren +spouse +compton +interdisciplinary +miner +##eni +181 +clamped +##chal +##llah +separates +versa +##mler +scarborough +labrador +##lity +##osing +rutgers +hurdles +como +166 +burt +divers +##100 +wichita +cade +coincided +##erson +bruised +mla +##pper +vineyard +##ili +##brush +notch +mentioning +jase +hearted +kits +doe +##acle +pomerania +##ady +ronan +seizure +pavel +problematic +##zaki +domenico +##ulin +catering +penelope +dependence +parental +emilio +ministerial +atkinson +##bolic +clarkson +chargers +colby +grill +peeked +arises +summon +##aged +fools +##grapher +faculties +qaeda +##vial +garner +refurbished +##hwa +geelong +disasters +nudged +bs +shareholder +lori +algae +reinstated +rot +##ades +##nous +invites +stainless +183 +inclusive +##itude +diocesan +til +##icz +denomination +##xa +benton +floral +registers +##ider +##erman +##kell +absurd +brunei +guangzhou +hitter +retaliation +##uled +##eve +blanc +nh +consistency +contamination +##eres +##rner +dire +palermo +broadcasters +diaries +inspire +vols +brewer +tightening +ky +mixtape +hormone +##tok +stokes +##color +##dly +##ssi +pg +##ometer +##lington +sanitation +##tility +intercontinental +apps +##adt +¹⁄₂ +cylinders +economies +favourable +unison +croix +gertrude +odyssey +vanity +dangling +##logists +upgrades +dice +middleweight +practitioner +##ight +206 +henrik +parlor +orion +angered +lac +python +blurted +##rri +sensual +intends +swings +angled +##phs +husky +attain +peerage +precinct +textiles +cheltenham +shuffled +dai +confess +tasting +bhutan +##riation +tyrone +segregation +abrupt +ruiz +##rish +smirked +blackwell +confidential +browning +amounted +##put +vase +scarce +fabulous +raided +staple +guyana +unemployed +glider +shay +##tow +carmine +troll +intervene +squash +superstar +##uce +cylindrical +len +roadway +researched +handy +##rium +##jana +meta +lao +declares +##rring +##tadt +##elin +##kova +willem +shrubs +napoleonic +realms +skater +qi +volkswagen +##ł +tad +hara +archaeologist +awkwardly +eerie +##kind +wiley +##heimer +##24 +titus +organizers +cfl +crusaders +lama +usb +vent +enraged +thankful +occupants +maximilian +##gaard +possessing +textbooks +##oran +collaborator +quaker +##ulo +avalanche +mono +silky +straits +isaiah +mustang +surged +resolutions +potomac +descend +cl +kilograms +plato +strains +saturdays +##olin +bernstein +##ype +holstein +ponytail +##watch +belize +conversely +heroine +perpetual +##ylus +charcoal +piedmont +glee +negotiating +backdrop +prologue +##jah +##mmy +pasadena +climbs +ramos +sunni +##holm +##tner +##tri +anand +deficiency +hertfordshire +stout +##avi +aperture +orioles +##irs +doncaster +intrigued +bombed +coating +otis +##mat +cocktail +##jit +##eto +amir +arousal +sar +##proof +##act +##ories +dixie +pots +##bow +whereabouts +159 +##fted +drains +bullying +cottages +scripture +coherent +fore +poe +appetite +##uration +sampled +##ators +##dp +derrick +rotor +jays +peacock +installment +##rro +advisors +##coming +rodeo +scotch +##mot +##db +##fen +##vant +ensued +rodrigo +dictatorship +martyrs +twenties +##н +towed +incidence +marta +rainforest +sai +scaled +##cles +oceanic +qualifiers +symphonic +mcbride +dislike +generalized +aubrey +colonization +##iation +##lion +##ssing +disliked +lublin +salesman +##ulates +spherical +whatsoever +sweating +avalon +contention +punt +severity +alderman +atari +##dina +##grant +##rop +scarf +seville +vertices +annexation +fairfield +fascination +inspiring +launches +palatinate +regretted +##rca +feral +##iom +elk +nap +olsen +reddy +yong +##leader +##iae +garment +transports +feng +gracie +outrage +viceroy +insides +##esis +breakup +grady +organizer +softer +grimaced +222 +murals +galicia +arranging +vectors +##rsten +bas +##sb +##cens +sloan +##eka +bitten +ara +fender +nausea +bumped +kris +banquet +comrades +detector +persisted +##llan +adjustment +endowed +cinemas +##shot +sellers +##uman +peek +epa +kindly +neglect +simpsons +talon +mausoleum +runaway +hangul +lookout +##cic +rewards +coughed +acquainted +chloride +##ald +quicker +accordion +neolithic +##qa +artemis +coefficient +lenny +pandora +tx +##xed +ecstasy +litter +segunda +chairperson +gemma +hiss +rumor +vow +nasal +antioch +compensate +patiently +transformers +##eded +judo +morrow +penis +posthumous +philips +bandits +husbands +denote +flaming +##any +##phones +langley +yorker +1760 +walters +##uo +##kle +gubernatorial +fatty +samsung +leroy +outlaw +##nine +unpublished +poole +jakob +##ᵢ +##ₙ +crete +distorted +superiority +##dhi +intercept +crust +mig +claus +crashes +positioning +188 +stallion +301 +frontal +armistice +##estinal +elton +aj +encompassing +camel +commemorated +malaria +woodward +calf +cigar +penetrate +##oso +willard +##rno +##uche +illustrate +amusing +convergence +noteworthy +##lma +##rva +journeys +realise +manfred +##sable +410 +##vocation +hearings +fiance +##posed +educators +provoked +adjusting +##cturing +modular +stockton +paterson +vlad +rejects +electors +selena +maureen +##tres +uber +##rce +swirled +##num +proportions +nanny +pawn +naturalist +parma +apostles +awoke +ethel +wen +##bey +monsoon +overview +##inating +mccain +rendition +risky +adorned +##ih +equestrian +germain +nj +conspicuous +confirming +##yoshi +shivering +##imeter +milestone +rumours +flinched +bounds +smacked +token +##bei +lectured +automobiles +##shore +impacted +##iable +nouns +nero +##leaf +ismail +prostitute +trams +##lace +bridget +sud +stimulus +impressions +reins +revolves +##oud +##gned +giro +honeymoon +##swell +criterion +##sms +##uil +libyan +prefers +##osition +211 +preview +sucks +accusation +bursts +metaphor +diffusion +tolerate +faye +betting +cinematographer +liturgical +specials +bitterly +humboldt +##ckle +flux +rattled +##itzer +archaeologists +odor +authorised +marshes +discretion +##ов +alarmed +archaic +inverse +##leton +explorers +##pine +drummond +tsunami +woodlands +##minate +##tland +booklet +insanity +owning +insert +crafted +calculus +##tore +receivers +##bt +stung +##eca +##nched +prevailing +travellers +eyeing +lila +graphs +##borne +178 +julien +##won +morale +adaptive +therapist +erica +cw +libertarian +bowman +pitches +vita +##ional +crook +##ads +##entation +caledonia +mutiny +##sible +1840s +automation +##ß +flock +##pia +ironic +pathology +##imus +remarried +##22 +joker +withstand +energies +##att +shropshire +hostages +madeleine +tentatively +conflicting +mateo +recipes +euros +ol +mercenaries +nico +##ndon +albuquerque +augmented +mythical +bel +freud +##child +cough +##lica +365 +freddy +lillian +genetically +nuremberg +calder +209 +bonn +outdoors +paste +suns +urgency +vin +restraint +tyson +##cera +##selle +barrage +bethlehem +kahn +##par +mounts +nippon +barony +happier +ryu +makeshift +sheldon +blushed +castillo +barking +listener +taped +bethel +fluent +headlines +pornography +rum +disclosure +sighing +mace +doubling +gunther +manly +##plex +rt +interventions +physiological +forwards +emerges +##tooth +##gny +compliment +rib +recession +visibly +barge +faults +connector +exquisite +prefect +##rlin +patio +##cured +elevators +brandt +italics +pena +173 +wasp +satin +ea +botswana +graceful +respectable +##jima +##rter +##oic +franciscan +generates +##dl +alfredo +disgusting +##olate +##iously +sherwood +warns +cod +promo +cheryl +sino +##ة +##escu +twitch +##zhi +brownish +thom +ortiz +##dron +densely +##beat +carmel +reinforce +##bana +187 +anastasia +downhill +vertex +contaminated +remembrance +harmonic +homework +##sol +fiancee +gears +olds +angelica +loft +ramsay +quiz +colliery +sevens +##cape +autism +##hil +walkway +##boats +ruben +abnormal +ounce +khmer +##bbe +zachary +bedside +morphology +punching +##olar +sparrow +convinces +##35 +hewitt +queer +remastered +rods +mabel +solemn +notified +lyricist +symmetric +##xide +174 +encore +passports +wildcats +##uni +baja +##pac +mildly +##ease +bleed +commodity +mounds +glossy +orchestras +##omo +damian +prelude +ambitions +##vet +awhile +remotely +##aud +asserts +imply +##iques +distinctly +modelling +remedy +##dded +windshield +dani +xiao +##endra +audible +powerplant +1300 +invalid +elemental +acquisitions +##hala +immaculate +libby +plata +smuggling +ventilation +denoted +minh +##morphism +430 +differed +dion +kelley +lore +mocking +sabbath +spikes +hygiene +drown +runoff +stylized +tally +liberated +aux +interpreter +righteous +aba +siren +reaper +pearce +millie +##cier +##yra +gaius +##iso +captures +##ttering +dorm +claudio +##sic +benches +knighted +blackness +##ored +discount +fumble +oxidation +routed +##ς +novak +perpendicular +spoiled +fracture +splits +##urt +pads +topology +##cats +axes +fortunate +offenders +protestants +esteem +221 +broadband +convened +frankly +hound +prototypes +isil +facilitated +keel +##sher +sahara +awaited +bubba +orb +prosecutors +186 +hem +520 +##xing +relaxing +remnant +romney +sorted +slalom +stefano +ulrich +##active +exemption +folder +pauses +foliage +hitchcock +epithet +204 +criticisms +##aca +ballistic +brody +hinduism +chaotic +youths +equals +##pala +pts +thicker +analogous +capitalist +improvised +overseeing +sinatra +ascended +beverage +##tl +straightforward +##kon +curran +##west +bois +325 +induce +surveying +emperors +sax +unpopular +##kk +cartoonist +fused +##mble +unto +##yuki +localities +##cko +##ln +darlington +slain +academie +lobbying +sediment +puzzles +##grass +defiance +dickens +manifest +tongues +alumnus +arbor +coincide +184 +appalachian +mustafa +examiner +cabaret +traumatic +yves +bracelet +draining +heroin +magnum +baths +odessa +consonants +mitsubishi +##gua +kellan +vaudeville +##fr +joked +null +straps +probation +##ław +ceded +interfaces +##pas +##zawa +blinding +viet +224 +rothschild +museo +640 +huddersfield +##vr +tactic +##storm +brackets +dazed +incorrectly +##vu +reg +glazed +fearful +manifold +benefited +irony +##sun +stumbling +##rte +willingness +balkans +mei +wraps +##aba +injected +##lea +gu +syed +harmless +##hammer +bray +takeoff +poppy +timor +cardboard +astronaut +purdue +weeping +southbound +cursing +stalls +diagonal +##neer +lamar +bryce +comte +weekdays +harrington +##uba +negatively +##see +lays +grouping +##cken +##henko +affirmed +halle +modernist +##lai +hodges +smelling +aristocratic +baptized +dismiss +justification +oilers +##now +coupling +qin +snack +healer +##qing +gardener +layla +battled +formulated +stephenson +gravitational +##gill +##jun +1768 +granny +coordinating +suites +##cd +##ioned +monarchs +##cote +##hips +sep +blended +apr +barrister +deposition +fia +mina +policemen +paranoid +##pressed +churchyard +covert +crumpled +creep +abandoning +tr +transmit +conceal +barr +understands +readiness +spire +##cology +##enia +##erry +610 +startling +unlock +vida +bowled +slots +##nat +##islav +spaced +trusting +admire +rig +##ink +slack +##70 +mv +207 +casualty +##wei +classmates +##odes +##rar +##rked +amherst +furnished +evolve +foundry +menace +mead +##lein +flu +wesleyan +##kled +monterey +webber +##vos +wil +##mith +##на +bartholomew +justices +restrained +##cke +amenities +191 +mediated +sewage +trenches +ml +mainz +##thus +1800s +##cula +##inski +caine +bonding +213 +converts +spheres +superseded +marianne +crypt +sweaty +ensign +historia +##br +spruce +##post +##ask +forks +thoughtfully +yukon +pamphlet +ames +##uter +karma +##yya +bryn +negotiation +sighs +incapable +##mbre +##ntial +actresses +taft +##mill +luce +prevailed +##amine +1773 +motionless +envoy +testify +investing +sculpted +instructors +provence +kali +cullen +horseback +##while +goodwin +##jos +gaa +norte +##ldon +modify +wavelength +abd +214 +skinned +sprinter +forecast +scheduling +marries +squared +tentative +##chman +boer +##isch +bolts +swap +fisherman +assyrian +impatiently +guthrie +martins +murdoch +194 +tanya +nicely +dolly +lacy +med +##45 +syn +decks +fashionable +millionaire +##ust +surfing +##ml +##ision +heaved +tammy +consulate +attendees +routinely +197 +fuse +saxophonist +backseat +malaya +##lord +scowl +tau +##ishly +193 +sighted +steaming +##rks +303 +911 +##holes +##hong +ching +##wife +bless +conserved +jurassic +stacey +unix +zion +chunk +rigorous +blaine +198 +peabody +slayer +dismay +brewers +nz +##jer +det +##glia +glover +postwar +int +penetration +sylvester +imitation +vertically +airlift +heiress +knoxville +viva +##uin +390 +macon +##rim +##fighter +##gonal +janice +##orescence +##wari +marius +belongings +leicestershire +196 +blanco +inverted +preseason +sanity +sobbing +##due +##elt +##dled +collingwood +regeneration +flickering +shortest +##mount +##osi +feminism +##lat +sherlock +cabinets +fumbled +northbound +precedent +snaps +##mme +researching +##akes +guillaume +insights +manipulated +vapor +neighbour +sap +gangster +frey +f1 +stalking +scarcely +callie +barnett +tendencies +audi +doomed +assessing +slung +panchayat +ambiguous +bartlett +##etto +distributing +violating +wolverhampton +##hetic +swami +histoire +##urus +liable +pounder +groin +hussain +larsen +popping +surprises +##atter +vie +curt +##station +mute +relocate +musicals +authorization +richter +##sef +immortality +tna +bombings +##press +deteriorated +yiddish +##acious +robbed +colchester +cs +pmid +ao +verified +balancing +apostle +swayed +recognizable +oxfordshire +retention +nottinghamshire +contender +judd +invitational +shrimp +uhf +##icient +cleaner +longitudinal +tanker +##mur +acronym +broker +koppen +sundance +suppliers +##gil +4000 +clipped +fuels +petite +##anne +landslide +helene +diversion +populous +landowners +auspices +melville +quantitative +##xes +ferries +nicky +##llus +doo +haunting +roche +carver +downed +unavailable +##pathy +approximation +hiroshima +##hue +garfield +valle +comparatively +keyboardist +traveler +##eit +congestion +calculating +subsidiaries +##bate +serb +modernization +fairies +deepened +ville +averages +##lore +inflammatory +tonga +##itch +co₂ +squads +##hea +gigantic +serum +enjoyment +retailer +verona +35th +cis +##phobic +magna +technicians +##vati +arithmetic +##sport +levin +##dation +amtrak +chow +sienna +##eyer +backstage +entrepreneurship +##otic +learnt +tao +##udy +worcestershire +formulation +baggage +hesitant +bali +sabotage +##kari +barren +enhancing +murmur +pl +freshly +putnam +syntax +aces +medicines +resentment +bandwidth +##sier +grins +chili +guido +##sei +framing +implying +gareth +lissa +genevieve +pertaining +admissions +geo +thorpe +proliferation +sato +bela +analyzing +parting +##gor +awakened +##isman +huddled +secrecy +##kling +hush +gentry +540 +dungeons +##ego +coasts +##utz +sacrificed +##chule +landowner +mutually +prevalence +programmer +adolescent +disrupted +seaside +gee +trusts +vamp +georgie +##nesian +##iol +schedules +sindh +##market +etched +hm +sparse +bey +beaux +scratching +gliding +unidentified +216 +collaborating +gems +jesuits +oro +accumulation +shaping +mbe +anal +##xin +231 +enthusiasts +newscast +##egan +janata +dewey +parkinson +179 +ankara +biennial +towering +dd +inconsistent +950 +##chet +thriving +terminate +cabins +furiously +eats +advocating +donkey +marley +muster +phyllis +leiden +##user +grassland +glittering +iucn +loneliness +217 +memorandum +armenians +##ddle +popularized +rhodesia +60s +lame +##illon +sans +bikini +header +orbits +##xx +##finger +##ulator +sharif +spines +biotechnology +strolled +naughty +yates +##wire +fremantle +milo +##mour +abducted +removes +##atin +humming +wonderland +##chrome +##ester +hume +pivotal +##rates +armand +grams +believers +elector +rte +apron +bis +scraped +##yria +endorsement +initials +##llation +eps +dotted +hints +buzzing +emigration +nearer +##tom +indicators +##ulu +coarse +neutron +protectorate +##uze +directional +exploits +pains +loire +1830s +proponents +guggenheim +rabbits +ritchie +305 +hectare +inputs +hutton +##raz +verify +##ako +boilers +longitude +##lev +skeletal +yer +emilia +citrus +compromised +##gau +pokemon +prescription +paragraph +eduard +cadillac +attire +categorized +kenyan +weddings +charley +##bourg +entertain +monmouth +##lles +nutrients +davey +mesh +incentive +practised +ecosystems +kemp +subdued +overheard +##rya +bodily +maxim +##nius +apprenticeship +ursula +##fight +lodged +rug +silesian +unconstitutional +patel +inspected +coyote +unbeaten +##hak +34th +disruption +convict +parcel +##cl +##nham +collier +implicated +mallory +##iac +##lab +susannah +winkler +##rber +shia +phelps +sediments +graphical +robotic +##sner +adulthood +mart +smoked +##isto +kathryn +clarified +##aran +divides +convictions +oppression +pausing +burying +##mt +federico +mathias +eileen +##tana +kite +hunched +##acies +189 +##atz +disadvantage +liza +kinetic +greedy +paradox +yokohama +dowager +trunks +ventured +##gement +gupta +vilnius +olaf +##thest +crimean +hopper +##ej +progressively +arturo +mouthed +arrondissement +##fusion +rubin +simulcast +oceania +##orum +##stra +##rred +busiest +intensely +navigator +cary +##vine +##hini +##bies +fife +rowe +rowland +posing +insurgents +shafts +lawsuits +activate +conor +inward +culturally +garlic +265 +##eering +eclectic +##hui +##kee +##nl +furrowed +vargas +meteorological +rendezvous +##aus +culinary +commencement +##dition +quota +##notes +mommy +salaries +overlapping +mule +##iology +##mology +sums +wentworth +##isk +##zione +mainline +subgroup +##illy +hack +plaintiff +verdi +bulb +differentiation +engagements +multinational +supplemented +bertrand +caller +regis +##naire +##sler +##arts +##imated +blossom +propagation +kilometer +viaduct +vineyards +##uate +beckett +optimization +golfer +songwriters +seminal +semitic +thud +volatile +evolving +ridley +##wley +trivial +distributions +scandinavia +jiang +##ject +wrestled +insistence +##dio +emphasizes +napkin +##ods +adjunct +rhyme +##ricted +##eti +hopeless +surrounds +tremble +32nd +smoky +##ntly +oils +medicinal +padded +steer +wilkes +219 +255 +concessions +hue +uniquely +blinded +landon +yahoo +##lane +hendrix +commemorating +dex +specify +chicks +##ggio +intercity +1400 +morley +##torm +highlighting +##oting +pang +oblique +stalled +##liner +flirting +newborn +1769 +bishopric +shaved +232 +currie +##ush +dharma +spartan +##ooped +favorites +smug +novella +sirens +abusive +creations +espana +##lage +paradigm +semiconductor +sheen +##rdo +##yen +##zak +nrl +renew +##pose +##tur +adjutant +marches +norma +##enity +ineffective +weimar +grunt +##gat +lordship +plotting +expenditure +infringement +lbs +refrain +av +mimi +mistakenly +postmaster +1771 +##bara +ras +motorsports +tito +199 +subjective +##zza +bully +stew +##kaya +prescott +1a +##raphic +##zam +bids +styling +paranormal +reeve +sneaking +exploding +katz +akbar +migrant +syllables +indefinitely +##ogical +destroys +replaces +applause +##phine +pest +##fide +218 +articulated +bertie +##thing +##cars +##ptic +courtroom +crowley +aesthetics +cummings +tehsil +hormones +titanic +dangerously +##ibe +stadion +jaenelle +auguste +ciudad +##chu +mysore +partisans +##sio +lucan +philipp +##aly +debating +henley +interiors +##rano +##tious +homecoming +beyonce +usher +henrietta +prepares +weeds +##oman +ely +plucked +##pire +##dable +luxurious +##aq +artifact +password +pasture +juno +maddy +minsk +##dder +##ologies +##rone +assessments +martian +royalist +1765 +examines +##mani +##rge +nino +223 +parry +scooped +relativity +##eli +##uting +##cao +congregational +noisy +traverse +##agawa +strikeouts +nickelodeon +obituary +transylvania +binds +depictions +polk +trolley +##yed +##lard +breeders +##under +dryly +hokkaido +1762 +strengths +stacks +bonaparte +connectivity +neared +prostitutes +stamped +anaheim +gutierrez +sinai +##zzling +bram +fresno +madhya +##86 +proton +##lena +##llum +##phon +reelected +wanda +##anus +##lb +ample +distinguishing +##yler +grasping +sermons +tomato +bland +stimulation +avenues +##eux +spreads +scarlett +fern +pentagon +assert +baird +chesapeake +ir +calmed +distortion +fatalities +##olis +correctional +pricing +##astic +##gina +prom +dammit +ying +collaborate +##chia +welterweight +33rd +pointer +substitution +bonded +umpire +communicating +multitude +paddle +##obe +federally +intimacy +##insky +betray +ssr +##lett +##lean +##lves +##therapy +airbus +##tery +functioned +ud +bearer +biomedical +netflix +##hire +##nca +condom +brink +ik +##nical +macy +##bet +flap +gma +experimented +jelly +lavender +##icles +##ulia +munro +##mian +##tial +rye +##rle +60th +gigs +hottest +rotated +predictions +fuji +bu +##erence +##omi +barangay +##fulness +##sas +clocks +##rwood +##liness +cereal +roe +wight +decker +uttered +babu +onion +xml +forcibly +##df +petra +sarcasm +hartley +peeled +storytelling +##42 +##xley +##ysis +##ffa +fibre +kiel +auditor +fig +harald +greenville +##berries +geographically +nell +quartz +##athic +cemeteries +##lr +crossings +nah +holloway +reptiles +chun +sichuan +snowy +660 +corrections +##ivo +zheng +ambassadors +blacksmith +fielded +fluids +hardcover +turnover +medications +melvin +academies +##erton +ro +roach +absorbing +spaniards +colton +##founded +outsider +espionage +kelsey +245 +edible +##ulf +dora +establishes +##sham +##tries +contracting +##tania +cinematic +costello +nesting +##uron +connolly +duff +##nology +mma +##mata +fergus +sexes +gi +optics +spectator +woodstock +banning +##hee +##fle +differentiate +outfielder +refinery +226 +312 +gerhard +horde +lair +drastically +##udi +landfall +##cheng +motorsport +odi +##achi +predominant +quay +skins +##ental +edna +harshly +complementary +murdering +##aves +wreckage +##90 +ono +outstretched +lennox +munitions +galen +reconcile +470 +scalp +bicycles +gillespie +questionable +rosenberg +guillermo +hostel +jarvis +kabul +volvo +opium +yd +##twined +abuses +decca +outpost +##cino +sensible +neutrality +##64 +ponce +anchorage +atkins +turrets +inadvertently +disagree +libre +vodka +reassuring +weighs +##yal +glide +jumper +ceilings +repertory +outs +stain +##bial +envy +##ucible +smashing +heightened +policing +hyun +mixes +lai +prima +##ples +celeste +##bina +lucrative +intervened +kc +manually +##rned +stature +staffed +bun +bastards +nairobi +priced +##auer +thatcher +##kia +tripped +comune +##ogan +##pled +brasil +incentives +emanuel +hereford +musica +##kim +benedictine +biennale +##lani +eureka +gardiner +rb +knocks +sha +##ael +##elled +##onate +efficacy +ventura +masonic +sanford +maize +leverage +##feit +capacities +santana +##aur +novelty +vanilla +##cter +##tour +benin +##oir +##rain +neptune +drafting +tallinn +##cable +humiliation +##boarding +schleswig +fabian +bernardo +liturgy +spectacle +sweeney +pont +routledge +##tment +cosmos +ut +hilt +sleek +universally +##eville +##gawa +typed +##dry +favors +allegheny +glaciers +##rly +recalling +aziz +##log +parasite +requiem +auf +##berto +##llin +illumination +##breaker +##issa +festivities +bows +govern +vibe +vp +333 +sprawled +larson +pilgrim +bwf +leaping +##rts +##ssel +alexei +greyhound +hoarse +##dler +##oration +seneca +##cule +gaping +##ulously +##pura +cinnamon +##gens +##rricular +craven +fantasies +houghton +engined +reigned +dictator +supervising +##oris +bogota +commentaries +unnatural +fingernails +spirituality +tighten +##tm +canadiens +protesting +intentional +cheers +sparta +##ytic +##iere +##zine +widen +belgarath +controllers +dodd +iaaf +navarre +##ication +defect +squire +steiner +whisky +##mins +560 +inevitably +tome +##gold +chew +##uid +##lid +elastic +##aby +streaked +alliances +jailed +regal +##ined +##phy +czechoslovak +narration +absently +##uld +bluegrass +guangdong +quran +criticizing +hose +hari +##liest +##owa +skier +streaks +deploy +##lom +raft +bose +dialed +huff +##eira +haifa +simplest +bursting +endings +ib +sultanate +##titled +franks +whitman +ensures +sven +##ggs +collaborators +forster +organising +ui +banished +napier +injustice +teller +layered +thump +##otti +roc +battleships +evidenced +fugitive +sadie +robotics +##roud +equatorial +geologist +##iza +yielding +##bron +##sr +internationale +mecca +##diment +sbs +skyline +toad +uploaded +reflective +undrafted +lal +leafs +bayern +##dai +lakshmi +shortlisted +##stick +##wicz +camouflage +donate +af +christi +lau +##acio +disclosed +nemesis +1761 +assemble +straining +northamptonshire +tal +##asi +bernardino +premature +heidi +42nd +coefficients +galactic +reproduce +buzzed +sensations +zionist +monsieur +myrtle +##eme +archery +strangled +musically +viewpoint +antiquities +bei +trailers +seahawks +cured +pee +preferring +tasmanian +lange +sul +##mail +##working +colder +overland +lucivar +massey +gatherings +haitian +##smith +disapproval +flaws +##cco +##enbach +1766 +npr +##icular +boroughs +creole +forums +techno +1755 +dent +abdominal +streetcar +##eson +##stream +procurement +gemini +predictable +##tya +acheron +christoph +feeder +fronts +vendor +bernhard +jammu +tumors +slang +##uber +goaltender +twists +curving +manson +vuelta +mer +peanut +confessions +pouch +unpredictable +allowance +theodor +vascular +##factory +bala +authenticity +metabolic +coughing +nanjing +##cea +pembroke +##bard +splendid +36th +ff +hourly +##ahu +elmer +handel +##ivate +awarding +thrusting +dl +experimentation +##hesion +##46 +caressed +entertained +steak +##rangle +biologist +orphans +baroness +oyster +stepfather +##dridge +mirage +reefs +speeding +##31 +barons +1764 +227 +inhabit +preached +repealed +##tral +honoring +boogie +captives +administer +johanna +##imate +gel +suspiciously +1767 +sobs +##dington +backbone +hayward +garry +##folding +##nesia +maxi +##oof +##ppe +ellison +galileo +##stand +crimea +frenzy +amour +bumper +matrices +natalia +baking +garth +palestinians +##grove +smack +conveyed +ensembles +gardening +##manship +##rup +##stituting +1640 +harvesting +topography +jing +shifters +dormitory +##carriage +##lston +ist +skulls +##stadt +dolores +jewellery +sarawak +##wai +##zier +fences +christy +confinement +tumbling +credibility +fir +stench +##bria +##plication +##nged +##sam +virtues +##belt +marjorie +pba +##eem +##made +celebrates +schooner +agitated +barley +fulfilling +anthropologist +##pro +restrict +novi +regulating +##nent +padres +##rani +##hesive +loyola +tabitha +milky +olson +proprietor +crambidae +guarantees +intercollegiate +ljubljana +hilda +##sko +ignorant +hooded +##lts +sardinia +##lidae +##vation +frontman +privileged +witchcraft +##gp +jammed +laude +poking +##than +bracket +amazement +yunnan +##erus +maharaja +linnaeus +264 +commissioning +milano +peacefully +##logies +akira +rani +regulator +##36 +grasses +##rance +luzon +crows +compiler +gretchen +seaman +edouard +tab +buccaneers +ellington +hamlets +whig +socialists +##anto +directorial +easton +mythological +##kr +##vary +rhineland +semantic +taut +dune +inventions +succeeds +##iter +replication +branched +##pired +jul +prosecuted +kangaroo +penetrated +##avian +middlesbrough +doses +bleak +madam +predatory +relentless +##vili +reluctance +##vir +hailey +crore +silvery +1759 +monstrous +swimmers +transmissions +hawthorn +informing +##eral +toilets +caracas +crouch +kb +##sett +295 +cartel +hadley +##aling +alexia +yvonne +##biology +cinderella +eton +superb +blizzard +stabbing +industrialist +maximus +##gm +##orus +groves +maud +clade +oversized +comedic +##bella +rosen +nomadic +fulham +montane +beverages +galaxies +redundant +swarm +##rot +##folia +##llis +buckinghamshire +fen +bearings +bahadur +##rom +gilles +phased +dynamite +faber +benoit +vip +##ount +##wd +booking +fractured +tailored +anya +spices +westwood +cairns +auditions +inflammation +steamed +##rocity +##acion +##urne +skyla +thereof +watford +torment +archdeacon +transforms +lulu +demeanor +fucked +serge +##sor +mckenna +minas +entertainer +##icide +caress +originate +residue +##sty +1740 +##ilised +##org +beech +##wana +subsidies +##ghton +emptied +gladstone +ru +firefighters +voodoo +##rcle +het +nightingale +tamara +edmond +ingredient +weaknesses +silhouette +285 +compatibility +withdrawing +hampson +##mona +anguish +giggling +##mber +bookstore +##jiang +southernmost +tilting +##vance +bai +economical +rf +briefcase +dreadful +hinted +projections +shattering +totaling +##rogate +analogue +indicted +periodical +fullback +##dman +haynes +##tenberg +##ffs +##ishment +1745 +thirst +stumble +penang +vigorous +##ddling +##kor +##lium +octave +##ove +##enstein +##inen +##ones +siberian +##uti +cbn +repeal +swaying +##vington +khalid +tanaka +unicorn +otago +plastered +lobe +riddle +##rella +perch +##ishing +croydon +filtered +graeme +tripoli +##ossa +crocodile +##chers +sufi +mined +##tung +inferno +lsu +##phi +swelled +utilizes +£2 +cale +periodicals +styx +hike +informally +coop +lund +##tidae +ala +hen +qui +transformations +disposed +sheath +chickens +##cade +fitzroy +sas +silesia +unacceptable +odisha +1650 +sabrina +pe +spokane +ratios +athena +massage +shen +dilemma +##drum +##riz +##hul +corona +doubtful +niall +##pha +##bino +fines +cite +acknowledging +bangor +ballard +bathurst +##resh +huron +mustered +alzheimer +garments +kinase +tyre +warship +##cp +flashback +pulmonary +braun +cheat +kamal +cyclists +constructions +grenades +ndp +traveller +excuses +stomped +signalling +trimmed +futsal +mosques +relevance +##wine +wta +##23 +##vah +##lter +hoc +##riding +optimistic +##´s +deco +sim +interacting +rejecting +moniker +waterways +##ieri +##oku +mayors +gdansk +outnumbered +pearls +##ended +##hampton +fairs +totals +dominating +262 +notions +stairway +compiling +pursed +commodities +grease +yeast +##jong +carthage +griffiths +residual +amc +contraction +laird +sapphire +##marine +##ivated +amalgamation +dissolve +inclination +lyle +packaged +altitudes +suez +canons +graded +lurched +narrowing +boasts +guise +wed +enrico +##ovsky +rower +scarred +bree +cub +iberian +protagonists +bargaining +proposing +trainers +voyages +vans +fishes +##aea +##ivist +##verance +encryption +artworks +kazan +sabre +cleopatra +hepburn +rotting +supremacy +mecklenburg +##brate +burrows +hazards +outgoing +flair +organizes +##ctions +scorpion +##usions +boo +234 +chevalier +dunedin +slapping +##34 +ineligible +pensions +##38 +##omic +manufactures +emails +bismarck +238 +weakening +blackish +ding +mcgee +quo +##rling +northernmost +xx +manpower +greed +sampson +clicking +##ange +##horpe +##inations +##roving +torre +##eptive +##moral +symbolism +38th +asshole +meritorious +outfits +splashed +biographies +sprung +astros +##tale +302 +737 +filly +raoul +nw +tokugawa +linden +clubhouse +##apa +tracts +romano +##pio +putin +tags +##note +chained +dickson +gunshot +moe +gunn +rashid +##tails +zipper +##bas +##nea +contrasted +##ply +##udes +plum +pharaoh +##pile +aw +comedies +ingrid +sandwiches +subdivisions +1100 +mariana +nokia +kamen +hz +delaney +veto +herring +##words +possessive +outlines +##roup +siemens +stairwell +rc +gallantry +messiah +palais +yells +233 +zeppelin +##dm +bolivar +##cede +smackdown +mckinley +##mora +##yt +muted +geologic +finely +unitary +avatar +hamas +maynard +rees +bog +contrasting +##rut +liv +chico +disposition +pixel +##erate +becca +dmitry +yeshiva +narratives +##lva +##ulton +mercenary +sharpe +tempered +navigate +stealth +amassed +keynes +##lini +untouched +##rrie +havoc +lithium +##fighting +abyss +graf +southward +wolverine +balloons +implements +ngos +transitions +##icum +ambushed +concacaf +dormant +economists +##dim +costing +csi +rana +universite +boulders +verity +##llon +collin +mellon +misses +cypress +fluorescent +lifeless +spence +##ulla +crewe +shepard +pak +revelations +##م +jolly +gibbons +paw +##dro +##quel +freeing +##test +shack +fries +palatine +##51 +##hiko +accompaniment +cruising +recycled +##aver +erwin +sorting +synthesizers +dyke +realities +sg +strides +enslaved +wetland +##ghan +competence +gunpowder +grassy +maroon +reactors +objection +##oms +carlson +gearbox +macintosh +radios +shelton +##sho +clergyman +prakash +254 +mongols +trophies +oricon +228 +stimuli +twenty20 +cantonese +cortes +mirrored +##saurus +bhp +cristina +melancholy +##lating +enjoyable +nuevo +##wny +downfall +schumacher +##ind +banging +lausanne +rumbled +paramilitary +reflex +ax +amplitude +migratory +##gall +##ups +midi +barnard +lastly +sherry +##hp +##nall +keystone +##kra +carleton +slippery +##53 +coloring +foe +socket +otter +##rgos +mats +##tose +consultants +bafta +bison +topping +##km +490 +primal +abandonment +transplant +atoll +hideous +mort +pained +reproduced +tae +howling +##turn +unlawful +billionaire +hotter +poised +lansing +##chang +dinamo +retro +messing +nfc +domesday +##mina +blitz +timed +##athing +##kley +ascending +gesturing +##izations +signaled +tis +chinatown +mermaid +savanna +jameson +##aint +catalina +##pet +##hers +cochrane +cy +chatting +##kus +alerted +computation +mused +noelle +majestic +mohawk +campo +octagonal +##sant +##hend +241 +aspiring +##mart +comprehend +iona +paralyzed +shimmering +swindon +rhone +##eley +reputed +configurations +pitchfork +agitation +francais +gillian +lipstick +##ilo +outsiders +pontifical +resisting +bitterness +sewer +rockies +##edd +##ucher +misleading +1756 +exiting +galloway +##nging +risked +##heart +246 +commemoration +schultz +##rka +integrating +##rsa +poses +shrieked +##weiler +guineas +gladys +jerking +owls +goldsmith +nightly +penetrating +##unced +lia +##33 +ignited +betsy +##aring +##thorpe +follower +vigorously +##rave +coded +kiran +knit +zoology +tbilisi +##28 +##bered +repository +govt +deciduous +dino +growling +##bba +enhancement +unleashed +chanting +pussy +biochemistry +##eric +kettle +repression +toxicity +nrhp +##arth +##kko +##bush +ernesto +commended +outspoken +242 +mca +parchment +sms +kristen +##aton +bisexual +raked +glamour +navajo +a2 +conditioned +showcased +##hma +spacious +youthful +##esa +usl +appliances +junta +brest +layne +conglomerate +enchanted +chao +loosened +picasso +circulating +inspect +montevideo +##centric +##kti +piazza +spurred +##aith +bari +freedoms +poultry +stamford +lieu +##ect +indigo +sarcastic +bahia +stump +attach +dvds +frankenstein +lille +approx +scriptures +pollen +##script +nmi +overseen +##ivism +tides +proponent +newmarket +inherit +milling +##erland +centralized +##rou +distributors +credentials +drawers +abbreviation +##lco +##xon +downing +uncomfortably +ripe +##oes +erase +franchises +##ever +populace +##bery +##khar +decomposition +pleas +##tet +daryl +sabah +##stle +##wide +fearless +genie +lesions +annette +##ogist +oboe +appendix +nair +dripped +petitioned +maclean +mosquito +parrot +rpg +hampered +1648 +operatic +reservoirs +##tham +irrelevant +jolt +summarized +##fp +medallion +##taff +##− +clawed +harlow +narrower +goddard +marcia +bodied +fremont +suarez +altering +tempest +mussolini +porn +##isms +sweetly +oversees +walkers +solitude +grimly +shrines +hk +ich +supervisors +hostess +dietrich +legitimacy +brushes +expressive +##yp +dissipated +##rse +localized +systemic +##nikov +gettysburg +##js +##uaries +dialogues +muttering +251 +housekeeper +sicilian +discouraged +##frey +beamed +kaladin +halftime +kidnap +##amo +##llet +1754 +synonymous +depleted +instituto +insulin +reprised +##opsis +clashed +##ctric +interrupting +radcliffe +insisting +medici +1715 +ejected +playfully +turbulent +##47 +starvation +##rini +shipment +rebellious +petersen +verification +merits +##rified +cakes +##charged +1757 +milford +shortages +spying +fidelity +##aker +emitted +storylines +harvested +seismic +##iform +cheung +kilda +theoretically +barbie +lynx +##rgy +##tius +goblin +mata +poisonous +##nburg +reactive +residues +obedience +##евич +conjecture +##rac +401 +hating +sixties +kicker +moaning +motown +##bha +emancipation +neoclassical +##hering +consoles +ebert +professorship +##tures +sustaining +assaults +obeyed +affluent +incurred +tornadoes +##eber +##zow +emphasizing +highlanders +cheated +helmets +##ctus +internship +terence +bony +executions +legislators +berries +peninsular +tinged +##aco +1689 +amplifier +corvette +ribbons +lavish +pennant +##lander +worthless +##chfield +##forms +mariano +pyrenees +expenditures +##icides +chesterfield +mandir +tailor +39th +sergey +nestled +willed +aristocracy +devotees +goodnight +raaf +rumored +weaponry +remy +appropriations +harcourt +burr +riaa +##lence +limitation +unnoticed +guo +soaking +swamps +##tica +collapsing +tatiana +descriptive +brigham +psalm +##chment +maddox +##lization +patti +caliph +##aja +akron +injuring +serra +##ganj +basins +##sari +astonished +launcher +##church +hilary +wilkins +sewing +##sf +stinging +##fia +##ncia +underwood +startup +##ition +compilations +vibrations +embankment +jurist +##nity +bard +juventus +groundwater +kern +palaces +helium +boca +cramped +marissa +soto +##worm +jae +princely +##ggy +faso +bazaar +warmly +##voking +229 +pairing +##lite +##grate +##nets +wien +freaked +ulysses +rebirth +##alia +##rent +mummy +guzman +jimenez +stilled +##nitz +trajectory +tha +woken +archival +professions +##pts +##pta +hilly +shadowy +shrink +##bolt +norwood +glued +migrate +stereotypes +devoid +##pheus +625 +evacuate +horrors +infancy +gotham +knowles +optic +downloaded +sachs +kingsley +parramatta +darryl +mor +##onale +shady +commence +confesses +kan +##meter +##placed +marlborough +roundabout +regents +frigates +io +##imating +gothenburg +revoked +carvings +clockwise +convertible +intruder +##sche +banged +##ogo +vicky +bourgeois +##mony +dupont +footing +##gum +pd +##real +buckle +yun +penthouse +sane +720 +serviced +stakeholders +neumann +bb +##eers +comb +##gam +catchment +pinning +rallies +typing +##elles +forefront +freiburg +sweetie +giacomo +widowed +goodwill +worshipped +aspirations +midday +##vat +fishery +##trick +bournemouth +turk +243 +hearth +ethanol +guadalajara +murmurs +sl +##uge +afforded +scripted +##hta +wah +##jn +coroner +translucent +252 +memorials +puck +progresses +clumsy +##race +315 +candace +recounted +##27 +##slin +##uve +filtering +##mac +howl +strata +heron +leveled +##ays +dubious +##oja +##т +##wheel +citations +exhibiting +##laya +##mics +##pods +turkic +##lberg +injunction +##ennial +##mit +antibodies +##44 +organise +##rigues +cardiovascular +cushion +inverness +##zquez +dia +cocoa +sibling +##tman +##roid +expanse +feasible +tunisian +algiers +##relli +rus +bloomberg +dso +westphalia +bro +tacoma +281 +downloads +##ours +konrad +duran +##hdi +continuum +jett +compares +legislator +secession +##nable +##gues +##zuka +translating +reacher +##gley +##ła +aleppo +##agi +tc +orchards +trapping +linguist +versatile +drumming +postage +calhoun +superiors +##mx +barefoot +leary +##cis +ignacio +alfa +kaplan +##rogen +bratislava +mori +##vot +disturb +haas +313 +cartridges +gilmore +radiated +salford +tunic +hades +##ulsive +archeological +delilah +magistrates +auditioned +brewster +charters +empowerment +blogs +cappella +dynasties +iroquois +whipping +##krishna +raceway +truths +myra +weaken +judah +mcgregor +##horse +mic +refueling +37th +burnley +bosses +markus +premio +query +##gga +dunbar +##economic +darkest +lyndon +sealing +commendation +reappeared +##mun +addicted +ezio +slaughtered +satisfactory +shuffle +##eves +##thic +##uj +fortification +warrington +##otto +resurrected +fargo +mane +##utable +##lei +##space +foreword +ox +##aris +##vern +abrams +hua +##mento +sakura +##alo +uv +sentimental +##skaya +midfield +##eses +sturdy +scrolls +macleod +##kyu +entropy +##lance +mitochondrial +cicero +excelled +thinner +convoys +perceive +##oslav +##urable +systematically +grind +burkina +287 +##tagram +ops +##aman +guantanamo +##cloth +##tite +forcefully +wavy +##jou +pointless +##linger +##tze +layton +portico +superficial +clerical +outlaws +##hism +burials +muir +##inn +creditors +hauling +rattle +##leg +calais +monde +archers +reclaimed +dwell +wexford +hellenic +falsely +remorse +##tek +dough +furnishings +##uttered +gabon +neurological +novice +##igraphy +contemplated +pulpit +nightstand +saratoga +##istan +documenting +pulsing +taluk +##firmed +busted +marital +##rien +disagreements +wasps +##yes +hodge +mcdonnell +mimic +fran +pendant +dhabi +musa +##nington +congratulations +argent +darrell +concussion +losers +regrets +thessaloniki +reversal +donaldson +hardwood +thence +achilles +ritter +##eran +demonic +jurgen +prophets +goethe +eki +classmate +buff +##cking +yank +irrational +##inging +perished +seductive +qur +sourced +##crat +##typic +mustard +ravine +barre +horizontally +characterization +phylogenetic +boise +##dit +##runner +##tower +brutally +intercourse +seduce +##bbing +fay +ferris +ogden +amar +nik +unarmed +##inator +evaluating +kyrgyzstan +sweetness +##lford +##oki +mccormick +meiji +notoriety +stimulate +disrupt +figuring +instructional +mcgrath +##zoo +groundbreaking +##lto +flinch +khorasan +agrarian +bengals +mixer +radiating +##sov +ingram +pitchers +nad +tariff +##cript +tata +##codes +##emi +##ungen +appellate +lehigh +##bled +##giri +brawl +duct +texans +##ciation +##ropolis +skipper +speculative +vomit +doctrines +stresses +253 +davy +graders +whitehead +jozef +timely +cumulative +haryana +paints +appropriately +boon +cactus +##ales +##pid +dow +legions +##pit +perceptions +1730 +picturesque +##yse +periphery +rune +wr +##aha +celtics +sentencing +whoa +##erin +confirms +variance +425 +moines +mathews +spade +rave +m1 +fronted +fx +blending +alleging +reared +##gl +237 +##paper +grassroots +eroded +##free +##physical +directs +ordeal +##sław +accelerate +hacker +rooftop +##inia +lev +buys +cebu +devote +##lce +specialising +##ulsion +choreographed +repetition +warehouses +##ryl +paisley +tuscany +analogy +sorcerer +hash +huts +shards +descends +exclude +nix +chaplin +gaga +ito +vane +##drich +causeway +misconduct +limo +orchestrated +glands +jana +##kot +u2 +##mple +##sons +branching +contrasts +scoop +longed +##virus +chattanooga +##75 +syrup +cornerstone +##tized +##mind +##iaceae +careless +precedence +frescoes +##uet +chilled +consult +modelled +snatch +peat +##thermal +caucasian +humane +relaxation +spins +temperance +##lbert +occupations +lambda +hybrids +moons +mp3 +##oese +247 +rolf +societal +yerevan +ness +##ssler +befriended +mechanized +nominate +trough +boasted +cues +seater +##hom +bends +##tangle +conductors +emptiness +##lmer +eurasian +adriatic +tian +##cie +anxiously +lark +propellers +chichester +jock +ev +2a +##holding +credible +recounts +tori +loyalist +abduction +##hoot +##redo +nepali +##mite +ventral +tempting +##ango +##crats +steered +##wice +javelin +dipping +laborers +prentice +looming +titanium +##ː +badges +emir +tensor +##ntation +egyptians +rash +denies +hawthorne +lombard +showers +wehrmacht +dietary +trojan +##reus +welles +executing +horseshoe +lifeboat +##lak +elsa +infirmary +nearing +roberta +boyer +mutter +trillion +joanne +##fine +##oked +sinks +vortex +uruguayan +clasp +sirius +##block +accelerator +prohibit +sunken +byu +chronological +diplomats +ochreous +510 +symmetrical +1644 +maia +##tology +salts +reigns +atrocities +##ия +hess +bared +issn +##vyn +cater +saturated +##cycle +##isse +sable +voyager +dyer +yusuf +##inge +fountains +wolff +##39 +##nni +engraving +rollins +atheist +ominous +##ault +herr +chariot +martina +strung +##fell +##farlane +horrific +sahib +gazes +saetan +erased +ptolemy +##olic +flushing +lauderdale +analytic +##ices +530 +navarro +beak +gorilla +herrera +broom +guadalupe +raiding +sykes +311 +bsc +deliveries +1720 +invasions +carmichael +tajikistan +thematic +ecumenical +sentiments +onstage +##rians +##brand +##sume +catastrophic +flanks +molten +##arns +waller +aimee +terminating +##icing +alternately +##oche +nehru +printers +outraged +##eving +empires +template +banners +repetitive +za +##oise +vegetarian +##tell +guiana +opt +cavendish +lucknow +synthesized +##hani +##mada +finalized +##ctable +fictitious +mayoral +unreliable +##enham +embracing +peppers +rbis +##chio +##neo +inhibition +slashed +togo +orderly +embroidered +safari +salty +236 +barron +benito +totaled +##dak +pubs +simulated +caden +devin +tolkien +momma +welding +sesame +##ept +gottingen +hardness +630 +shaman +temeraire +620 +adequately +pediatric +##kit +ck +assertion +radicals +composure +cadence +seafood +beaufort +lazarus +mani +warily +cunning +kurdistan +249 +cantata +##kir +ares +##41 +##clusive +nape +townland +geared +insulted +flutter +boating +violate +draper +dumping +malmo +##hh +##romatic +firearm +alta +bono +obscured +##clave +exceeds +panorama +unbelievable +##train +preschool +##essed +disconnected +installing +rescuing +secretaries +accessibility +##castle +##drive +##ifice +##film +bouts +slug +waterway +mindanao +##buro +##ratic +halves +##ل +calming +liter +maternity +adorable +bragg +electrification +mcc +##dote +roxy +schizophrenia +##body +munoz +kaye +whaling +239 +mil +tingling +tolerant +##ago +unconventional +volcanoes +##finder +deportivo +##llie +robson +kaufman +neuroscience +wai +deportation +masovian +scraping +converse +##bh +hacking +bulge +##oun +administratively +yao +580 +amp +mammoth +booster +claremont +hooper +nomenclature +pursuits +mclaughlin +melinda +##sul +catfish +barclay +substrates +taxa +zee +originals +kimberly +packets +padma +##ality +borrowing +ostensibly +solvent +##bri +##genesis +##mist +lukas +shreveport +veracruz +##ь +##lou +##wives +cheney +tt +anatolia +hobbs +##zyn +cyclic +radiant +alistair +greenish +siena +dat +independents +##bation +conform +pieter +hyper +applicant +bradshaw +spores +telangana +vinci +inexpensive +nuclei +322 +jang +nme +soho +spd +##ign +cradled +receptionist +pow +##43 +##rika +fascism +##ifer +experimenting +##ading +##iec +##region +345 +jocelyn +maris +stair +nocturnal +toro +constabulary +elgin +##kker +msc +##giving +##schen +##rase +doherty +doping +sarcastically +batter +maneuvers +##cano +##apple +##gai +##git +intrinsic +##nst +##stor +1753 +showtime +cafes +gasps +lviv +ushered +##thed +fours +restart +astonishment +transmitting +flyer +shrugs +##sau +intriguing +cones +dictated +mushrooms +medial +##kovsky +##elman +escorting +gaped +##26 +godfather +##door +##sell +djs +recaptured +timetable +vila +1710 +3a +aerodrome +mortals +scientology +##orne +angelina +mag +convection +unpaid +insertion +intermittent +lego +##nated +endeavor +kota +pereira +##lz +304 +bwv +glamorgan +insults +agatha +fey +##cend +fleetwood +mahogany +protruding +steamship +zeta +##arty +mcguire +suspense +##sphere +advising +urges +##wala +hurriedly +meteor +gilded +inline +arroyo +stalker +##oge +excitedly +revered +##cure +earle +introductory +##break +##ilde +mutants +puff +pulses +reinforcement +##haling +curses +lizards +stalk +correlated +##fixed +fallout +macquarie +##unas +bearded +denton +heaving +802 +##ocation +winery +assign +dortmund +##lkirk +everest +invariant +charismatic +susie +##elling +bled +lesley +telegram +sumner +bk +##ogen +##к +wilcox +needy +colbert +duval +##iferous +##mbled +allotted +attends +imperative +##hita +replacements +hawker +##inda +insurgency +##zee +##eke +casts +##yla +680 +ives +transitioned +##pack +##powering +authoritative +baylor +flex +cringed +plaintiffs +woodrow +##skie +drastic +ape +aroma +unfolded +commotion +nt +preoccupied +theta +routines +lasers +privatization +wand +domino +ek +clenching +nsa +strategically +showered +bile +handkerchief +pere +storing +christophe +insulting +316 +nakamura +romani +asiatic +magdalena +palma +cruises +stripping +405 +konstantin +soaring +##berman +colloquially +forerunner +havilland +incarcerated +parasites +sincerity +##utus +disks +plank +saigon +##ining +corbin +homo +ornaments +powerhouse +##tlement +chong +fastened +feasibility +idf +morphological +usable +##nish +##zuki +aqueduct +jaguars +keepers +##flies +aleksandr +faust +assigns +ewing +bacterium +hurled +tricky +hungarians +integers +wallis +321 +yamaha +##isha +hushed +oblivion +aviator +evangelist +friars +##eller +monograph +ode +##nary +airplanes +labourers +charms +##nee +1661 +hagen +tnt +rudder +fiesta +transcript +dorothea +ska +inhibitor +maccabi +retorted +raining +encompassed +clauses +menacing +1642 +lineman +##gist +vamps +##ape +##dick +gloom +##rera +dealings +easing +seekers +##nut +##pment +helens +unmanned +##anu +##isson +basics +##amy +##ckman +adjustments +1688 +brutality +horne +##zell +sui +##55 +##mable +aggregator +##thal +rhino +##drick +##vira +counters +zoom +##01 +##rting +mn +montenegrin +packard +##unciation +##♭ +##kki +reclaim +scholastic +thugs +pulsed +##icia +syriac +quan +saddam +banda +kobe +blaming +buddies +dissent +##lusion +##usia +corbett +jaya +delle +erratic +lexie +##hesis +435 +amiga +hermes +##pressing +##leen +chapels +gospels +jamal +##uating +compute +revolving +warp +##sso +##thes +armory +##eras +##gol +antrim +loki +##kow +##asian +##good +##zano +braid +handwriting +subdistrict +funky +pantheon +##iculate +concurrency +estimation +improper +juliana +##his +newcomers +johnstone +staten +communicated +##oco +##alle +sausage +stormy +##stered +##tters +superfamily +##grade +acidic +collateral +tabloid +##oped +##rza +bladder +austen +##ellant +mcgraw +##hay +hannibal +mein +aquino +lucifer +wo +badger +boar +cher +christensen +greenberg +interruption +##kken +jem +244 +mocked +bottoms +cambridgeshire +##lide +sprawling +##bbly +eastwood +ghent +synth +##buck +advisers +##bah +nominally +hapoel +qu +daggers +estranged +fabricated +towels +vinnie +wcw +misunderstanding +anglia +nothin +unmistakable +##dust +##lova +chilly +marquette +truss +##edge +##erine +reece +##lty +##chemist +##connected +272 +308 +41st +bash +raion +waterfalls +##ump +##main +labyrinth +queue +theorist +##istle +bharatiya +flexed +soundtracks +rooney +leftist +patrolling +wharton +plainly +alleviate +eastman +schuster +topographic +engages +immensely +unbearable +fairchild +1620 +dona +lurking +parisian +oliveira +ia +indictment +hahn +bangladeshi +##aster +vivo +##uming +##ential +antonia +expects +indoors +kildare +harlan +##logue +##ogenic +##sities +forgiven +##wat +childish +tavi +##mide +##orra +plausible +grimm +successively +scooted +##bola +##dget +##rith +spartans +emery +flatly +azure +epilogue +##wark +flourish +##iny +##tracted +##overs +##oshi +bestseller +distressed +receipt +spitting +hermit +topological +##cot +drilled +subunit +francs +##layer +eel +##fk +##itas +octopus +footprint +petitions +ufo +##say +##foil +interfering +leaking +palo +##metry +thistle +valiant +##pic +narayan +mcpherson +##fast +gonzales +##ym +##enne +dustin +novgorod +solos +##zman +doin +##raph +##patient +##meyer +soluble +ashland +cuffs +carole +pendleton +whistling +vassal +##river +deviation +revisited +constituents +rallied +rotate +loomed +##eil +##nting +amateurs +augsburg +auschwitz +crowns +skeletons +##cona +bonnet +257 +dummy +globalization +simeon +sleeper +mandal +differentiated +##crow +##mare +milne +bundled +exasperated +talmud +owes +segregated +##feng +##uary +dentist +piracy +props +##rang +devlin +##torium +malicious +paws +##laid +dependency +##ergy +##fers +##enna +258 +pistons +rourke +jed +grammatical +tres +maha +wig +512 +ghostly +jayne +##achal +##creen +##ilis +##lins +##rence +designate +##with +arrogance +cambodian +clones +showdown +throttle +twain +##ception +lobes +metz +nagoya +335 +braking +##furt +385 +roaming +##minster +amin +crippled +##37 +##llary +indifferent +hoffmann +idols +intimidating +1751 +261 +influenza +memo +onions +1748 +bandage +consciously +##landa +##rage +clandestine +observes +swiped +tangle +##ener +##jected +##trum +##bill +##lta +hugs +congresses +josiah +spirited +##dek +humanist +managerial +filmmaking +inmate +rhymes +debuting +grimsby +ur +##laze +duplicate +vigor +##tf +republished +bolshevik +refurbishment +antibiotics +martini +methane +newscasts +royale +horizons +levant +iain +visas +##ischen +paler +##around +manifestation +snuck +alf +chop +futile +pedestal +rehab +##kat +bmg +kerman +res +fairbanks +jarrett +abstraction +saharan +##zek +1746 +procedural +clearer +kincaid +sash +luciano +##ffey +crunch +helmut +##vara +revolutionaries +##tute +creamy +leach +##mmon +1747 +permitting +nes +plight +wendell +##lese +contra +ts +clancy +ipa +mach +staples +autopsy +disturbances +nueva +karin +pontiac +##uding +proxy +venerable +haunt +leto +bergman +expands +##helm +wal +##pipe +canning +celine +cords +obesity +##enary +intrusion +planner +##phate +reasoned +sequencing +307 +harrow +##chon +##dora +marred +mcintyre +repay +tarzan +darting +248 +harrisburg +margarita +repulsed +##hur +##lding +belinda +hamburger +novo +compliant +runways +bingham +registrar +skyscraper +ic +cuthbert +improvisation +livelihood +##corp +##elial +admiring +##dened +sporadic +believer +casablanca +popcorn +##29 +asha +shovel +##bek +##dice +coiled +tangible +##dez +casper +elsie +resin +tenderness +rectory +##ivision +avail +sonar +##mori +boutique +##dier +guerre +bathed +upbringing +vaulted +sandals +blessings +##naut +##utnant +1680 +306 +foxes +pia +corrosion +hesitantly +confederates +crystalline +footprints +shapiro +tirana +valentin +drones +45th +microscope +shipments +texted +inquisition +wry +guernsey +unauthorized +resigning +760 +ripple +schubert +stu +reassure +felony +##ardo +brittle +koreans +##havan +##ives +dun +implicit +tyres +##aldi +##lth +magnolia +##ehan +##puri +##poulos +aggressively +fei +gr +familiarity +##poo +indicative +##trust +fundamentally +jimmie +overrun +395 +anchors +moans +##opus +britannia +armagh +##ggle +purposely +seizing +##vao +bewildered +mundane +avoidance +cosmopolitan +geometridae +quartermaster +caf +415 +chatter +engulfed +gleam +purge +##icate +juliette +jurisprudence +guerra +revisions +##bn +casimir +brew +##jm +1749 +clapton +cloudy +conde +hermitage +278 +simulations +torches +vincenzo +matteo +##rill +hidalgo +booming +westbound +accomplishment +tentacles +unaffected +##sius +annabelle +flopped +sloping +##litz +dreamer +interceptor +vu +##loh +consecration +copying +messaging +breaker +climates +hospitalized +1752 +torino +afternoons +winfield +witnessing +##teacher +breakers +choirs +sawmill +coldly +##ege +sipping +haste +uninhabited +conical +bibliography +pamphlets +severn +edict +##oca +deux +illnesses +grips +##pl +rehearsals +sis +thinkers +tame +##keepers +1690 +acacia +reformer +##osed +##rys +shuffling +##iring +##shima +eastbound +ionic +rhea +flees +littered +##oum +rocker +vomiting +groaning +champ +overwhelmingly +civilizations +paces +sloop +adoptive +##tish +skaters +##vres +aiding +mango +##joy +nikola +shriek +##ignon +pharmaceuticals +##mg +tuna +calvert +gustavo +stocked +yearbook +##urai +##mana +computed +subsp +riff +hanoi +kelvin +hamid +moors +pastures +summons +jihad +nectar +##ctors +bayou +untitled +pleasing +vastly +republics +intellect +##η +##ulio +##tou +crumbling +stylistic +sb +##ی +consolation +frequented +h₂o +walden +widows +##iens +404 +##ignment +chunks +improves +288 +grit +recited +##dev +snarl +sociological +##arte +##gul +inquired +##held +bruise +clube +consultancy +homogeneous +hornets +multiplication +pasta +prick +savior +##grin +##kou +##phile +yoon +##gara +grimes +vanishing +cheering +reacting +bn +distillery +##quisite +##vity +coe +dockyard +massif +##jord +escorts +voss +##valent +byte +chopped +hawke +illusions +workings +floats +##koto +##vac +kv +annapolis +madden +##onus +alvaro +noctuidae +##cum +##scopic +avenge +steamboat +forte +illustrates +erika +##trip +570 +dew +nationalities +bran +manifested +thirsty +diversified +muscled +reborn +##standing +arson +##lessness +##dran +##logram +##boys +##kushima +##vious +willoughby +##phobia +286 +alsace +dashboard +yuki +##chai +granville +myspace +publicized +tricked +##gang +adjective +##ater +relic +reorganisation +enthusiastically +indications +saxe +##lassified +consolidate +iec +padua +helplessly +ramps +renaming +regulars +pedestrians +accents +convicts +inaccurate +lowers +mana +##pati +barrie +bjp +outta +someplace +berwick +flanking +invoked +marrow +sparsely +excerpts +clothed +rei +##ginal +wept +##straße +##vish +alexa +excel +##ptive +membranes +aquitaine +creeks +cutler +sheppard +implementations +ns +##dur +fragrance +budge +concordia +magnesium +marcelo +##antes +gladly +vibrating +##rral +##ggles +montrose +##omba +lew +seamus +1630 +cocky +##ament +##uen +bjorn +##rrick +fielder +fluttering +##lase +methyl +kimberley +mcdowell +reductions +barbed +##jic +##tonic +aeronautical +condensed +distracting +##promising +huffed +##cala +##sle +claudius +invincible +missy +pious +balthazar +ci +##lang +butte +combo +orson +##dication +myriad +1707 +silenced +##fed +##rh +coco +netball +yourselves +##oza +clarify +heller +peg +durban +etudes +offender +roast +blackmail +curvature +##woods +vile +309 +illicit +suriname +##linson +overture +1685 +bubbling +gymnast +tucking +##mming +##ouin +maldives +##bala +gurney +##dda +##eased +##oides +backside +pinto +jars +racehorse +tending +##rdial +baronetcy +wiener +duly +##rke +barbarian +cupping +flawed +##thesis +bertha +pleistocene +puddle +swearing +##nob +##tically +fleeting +prostate +amulet +educating +##mined +##iti +##tler +75th +jens +respondents +analytics +cavaliers +papacy +raju +##iente +##ulum +##tip +funnel +271 +disneyland +##lley +sociologist +##iam +2500 +faulkner +louvre +menon +##dson +276 +##ower +afterlife +mannheim +peptide +referees +comedians +meaningless +##anger +##laise +fabrics +hurley +renal +sleeps +##bour +##icle +breakout +kristin +roadside +animator +clover +disdain +unsafe +redesign +##urity +firth +barnsley +portage +reset +narrows +268 +commandos +expansive +speechless +tubular +##lux +essendon +eyelashes +smashwords +##yad +##bang +##claim +craved +sprinted +chet +somme +astor +wrocław +orton +266 +bane +##erving +##uing +mischief +##amps +##sund +scaling +terre +##xious +impairment +offenses +undermine +moi +soy +contiguous +arcadia +inuit +seam +##tops +macbeth +rebelled +##icative +##iot +590 +elaborated +frs +uniformed +##dberg +259 +powerless +priscilla +stimulated +980 +qc +arboretum +frustrating +trieste +bullock +##nified +enriched +glistening +intern +##adia +locus +nouvelle +ollie +ike +lash +starboard +ee +tapestry +headlined +hove +rigged +##vite +pollock +##yme +thrive +clustered +cas +roi +gleamed +olympiad +##lino +pressured +regimes +##hosis +##lick +ripley +##ophone +kickoff +gallon +rockwell +##arable +crusader +glue +revolutions +scrambling +1714 +grover +##jure +englishman +aztec +263 +contemplating +coven +ipad +preach +triumphant +tufts +##esian +rotational +##phus +328 +falkland +##brates +strewn +clarissa +rejoin +environmentally +glint +banded +drenched +moat +albanians +johor +rr +maestro +malley +nouveau +shaded +taxonomy +v6 +adhere +bunk +airfields +##ritan +1741 +encompass +remington +tran +##erative +amelie +mazda +friar +morals +passions +##zai +breadth +vis +##hae +argus +burnham +caressing +insider +rudd +##imov +##mini +##rso +italianate +murderous +textual +wainwright +armada +bam +weave +timer +##taken +##nh +fra +##crest +ardent +salazar +taps +tunis +##ntino +allegro +gland +philanthropic +##chester +implication +##optera +esq +judas +noticeably +wynn +##dara +inched +indexed +crises +villiers +bandit +royalties +patterned +cupboard +interspersed +accessory +isla +kendrick +entourage +stitches +##esthesia +headwaters +##ior +interlude +distraught +draught +1727 +##basket +biased +sy +transient +triad +subgenus +adapting +kidd +shortstop +##umatic +dimly +spiked +mcleod +reprint +nellie +pretoria +windmill +##cek +singled +##mps +273 +reunite +##orous +747 +bankers +outlying +##omp +##ports +##tream +apologies +cosmetics +patsy +##deh +##ocks +##yson +bender +nantes +serene +##nad +lucha +mmm +323 +##cius +##gli +cmll +coinage +nestor +juarez +##rook +smeared +sprayed +twitching +sterile +irina +embodied +juveniles +enveloped +miscellaneous +cancers +dq +gulped +luisa +crested +swat +donegal +ref +##anov +##acker +hearst +mercantile +##lika +doorbell +ua +vicki +##alla +##som +bilbao +psychologists +stryker +sw +horsemen +turkmenistan +wits +##national +anson +mathew +screenings +##umb +rihanna +##agne +##nessy +aisles +##iani +##osphere +hines +kenton +saskatoon +tasha +truncated +##champ +##itan +mildred +advises +fredrik +interpreting +inhibitors +##athi +spectroscopy +##hab +##kong +karim +panda +##oia +##nail +##vc +conqueror +kgb +leukemia +##dity +arrivals +cheered +pisa +phosphorus +shielded +##riated +mammal +unitarian +urgently +chopin +sanitary +##mission +spicy +drugged +hinges +##tort +tipping +trier +impoverished +westchester +##caster +267 +epoch +nonstop +##gman +##khov +aromatic +centrally +cerro +##tively +##vio +billions +modulation +sedimentary +283 +facilitating +outrageous +goldstein +##eak +##kt +ld +maitland +penultimate +pollard +##dance +fleets +spaceship +vertebrae +##nig +alcoholism +als +recital +##bham +##ference +##omics +m2 +##bm +trois +##tropical +##в +commemorates +##meric +marge +##raction +1643 +670 +cosmetic +ravaged +##ige +catastrophe +eng +##shida +albrecht +arterial +bellamy +decor +harmon +##rde +bulbs +synchronized +vito +easiest +shetland +shielding +wnba +##glers +##ssar +##riam +brianna +cumbria +##aceous +##rard +cores +thayer +##nsk +brood +hilltop +luminous +carts +keynote +larkin +logos +##cta +##ا +##mund +##quay +lilith +tinted +277 +wrestle +mobilization +##uses +sequential +siam +bloomfield +takahashi +274 +##ieving +presenters +ringo +blazed +witty +##oven +##ignant +devastation +haydn +harmed +newt +therese +##peed +gershwin +molina +rabbis +sudanese +001 +innate +restarted +##sack +##fus +slices +wb +##shah +enroll +hypothetical +hysterical +1743 +fabio +indefinite +warped +##hg +exchanging +525 +unsuitable +##sboro +gallo +1603 +bret +cobalt +homemade +##hunter +mx +operatives +##dhar +terraces +durable +latch +pens +whorls +##ctuated +##eaux +billing +ligament +succumbed +##gly +regulators +spawn +##brick +##stead +filmfare +rochelle +##nzo +1725 +circumstance +saber +supplements +##nsky +##tson +crowe +wellesley +carrot +##9th +##movable +primate +drury +sincerely +topical +##mad +##rao +callahan +kyiv +smarter +tits +undo +##yeh +announcements +anthologies +barrio +nebula +##islaus +##shaft +##tyn +bodyguards +2021 +assassinate +barns +emmett +scully +##mah +##yd +##eland +##tino +##itarian +demoted +gorman +lashed +prized +adventist +writ +##gui +alla +invertebrates +##ausen +1641 +amman +1742 +align +healy +redistribution +##gf +##rize +insulation +##drop +adherents +hezbollah +vitro +ferns +yanking +269 +php +registering +uppsala +cheerleading +confines +mischievous +tully +##ross +49th +docked +roam +stipulated +pumpkin +##bry +prompt +##ezer +blindly +shuddering +craftsmen +frail +scented +katharine +scramble +shaggy +sponge +helix +zaragoza +279 +##52 +43rd +backlash +fontaine +seizures +posse +cowan +nonfiction +telenovela +wwii +hammered +undone +##gpur +encircled +irs +##ivation +artefacts +oneself +searing +smallpox +##belle +##osaurus +shandong +breached +upland +blushing +rankin +infinitely +psyche +tolerated +docking +evicted +##col +unmarked +##lving +gnome +lettering +litres +musique +##oint +benevolent +##jal +blackened +##anna +mccall +racers +tingle +##ocene +##orestation +introductions +radically +292 +##hiff +##باد +1610 +1739 +munchen +plead +##nka +condo +scissors +##sight +##tens +apprehension +##cey +##yin +hallmark +watering +formulas +sequels +##llas +aggravated +bae +commencing +##building +enfield +prohibits +marne +vedic +civilized +euclidean +jagger +beforehand +blasts +dumont +##arney +##nem +740 +conversions +hierarchical +rios +simulator +##dya +##lellan +hedges +oleg +thrusts +shadowed +darby +maximize +1744 +gregorian +##nded +##routed +sham +unspecified +##hog +emory +factual +##smo +##tp +fooled +##rger +ortega +wellness +marlon +##oton +##urance +casket +keating +ley +enclave +##ayan +char +influencing +jia +##chenko +412 +ammonia +erebidae +incompatible +violins +cornered +##arat +grooves +astronauts +columbian +rampant +fabrication +kyushu +mahmud +vanish +##dern +mesopotamia +##lete +ict +##rgen +caspian +kenji +pitted +##vered +999 +grimace +roanoke +tchaikovsky +twinned +##analysis +##awan +xinjiang +arias +clemson +kazakh +sizable +1662 +##khand +##vard +plunge +tatum +vittorio +##nden +cholera +##dana +##oper +bracing +indifference +projectile +superliga +##chee +realises +upgrading +299 +porte +retribution +##vies +nk +stil +##resses +ama +bureaucracy +blackberry +bosch +testosterone +collapses +greer +##pathic +ioc +fifties +malls +##erved +bao +baskets +adolescents +siegfried +##osity +##tosis +mantra +detecting +existent +fledgling +##cchi +dissatisfied +gan +telecommunication +mingled +sobbed +6000 +controversies +outdated +taxis +##raus +fright +slams +##lham +##fect +##tten +detectors +fetal +tanned +##uw +fray +goth +olympian +skipping +mandates +scratches +sheng +unspoken +hyundai +tracey +hotspur +restrictive +##buch +americana +mundo +##bari +burroughs +diva +vulcan +##6th +distinctions +thumping +##ngen +mikey +sheds +fide +rescues +springsteen +vested +valuation +##ece +##ely +pinnacle +rake +sylvie +##edo +almond +quivering +##irus +alteration +faltered +##wad +51st +hydra +ticked +##kato +recommends +##dicated +antigua +arjun +stagecoach +wilfred +trickle +pronouns +##pon +aryan +nighttime +##anian +gall +pea +stitch +##hei +leung +milos +##dini +eritrea +nexus +starved +snowfall +kant +parasitic +cot +discus +hana +strikers +appleton +kitchens +##erina +##partisan +##itha +##vius +disclose +metis +##channel +1701 +tesla +##vera +fitch +1735 +blooded +##tila +decimal +##tang +##bai +cyclones +eun +bottled +peas +pensacola +basha +bolivian +crabs +boil +lanterns +partridge +roofed +1645 +necks +##phila +opined +patting +##kla +##lland +chuckles +volta +whereupon +##nche +devout +euroleague +suicidal +##dee +inherently +involuntary +knitting +nasser +##hide +puppets +colourful +courageous +southend +stills +miraculous +hodgson +richer +rochdale +ethernet +greta +uniting +prism +umm +##haya +##itical +##utation +deterioration +pointe +prowess +##ropriation +lids +scranton +billings +subcontinent +##koff +##scope +brute +kellogg +psalms +degraded +##vez +stanisław +##ructured +ferreira +pun +astonishing +gunnar +##yat +arya +prc +gottfried +##tight +excursion +##ographer +dina +##quil +##nare +huffington +illustrious +wilbur +gundam +verandah +##zard +naacp +##odle +constructive +fjord +kade +##naud +generosity +thrilling +baseline +cayman +frankish +plastics +accommodations +zoological +##fting +cedric +qb +motorized +##dome +##otted +squealed +tackled +canucks +budgets +situ +asthma +dail +gabled +grasslands +whimpered +writhing +judgments +##65 +minnie +pv +##carbon +bananas +grille +domes +monique +odin +maguire +markham +tierney +##estra +##chua +libel +poke +speedy +atrium +laval +notwithstanding +##edly +fai +kala +##sur +robb +##sma +listings +luz +supplementary +tianjin +##acing +enzo +jd +ric +scanner +croats +transcribed +##49 +arden +cv +##hair +##raphy +##lver +##uy +357 +seventies +staggering +alam +horticultural +hs +regression +timbers +blasting +##ounded +montagu +manipulating +##cit +catalytic +1550 +troopers +##meo +condemnation +fitzpatrick +##oire +##roved +inexperienced +1670 +castes +##lative +outing +314 +dubois +flicking +quarrel +ste +learners +1625 +iq +whistled +##class +282 +classify +tariffs +temperament +355 +folly +liszt +##yles +immersed +jordanian +ceasefire +apparel +extras +maru +fished +##bio +harta +stockport +assortment +craftsman +paralysis +transmitters +##cola +blindness +##wk +fatally +proficiency +solemnly +##orno +repairing +amore +groceries +ultraviolet +##chase +schoolhouse +##tua +resurgence +nailed +##otype +##× +ruse +saliva +diagrams +##tructing +albans +rann +thirties +1b +antennas +hilarious +cougars +paddington +stats +##eger +breakaway +ipod +reza +authorship +prohibiting +scoffed +##etz +##ttle +conscription +defected +trondheim +##fires +ivanov +keenan +##adan +##ciful +##fb +##slow +locating +##ials +##tford +cadiz +basalt +blankly +interned +rags +rattling +##tick +carpathian +reassured +sync +bum +guildford +iss +staunch +##onga +astronomers +sera +sofie +emergencies +susquehanna +##heard +duc +mastery +vh1 +williamsburg +bayer +buckled +craving +##khan +##rdes +bloomington +##write +alton +barbecue +##bians +justine +##hri +##ndt +delightful +smartphone +newtown +photon +retrieval +peugeot +hissing +##monium +##orough +flavors +lighted +relaunched +tainted +##games +##lysis +anarchy +microscopic +hopping +adept +evade +evie +##beau +inhibit +sinn +adjustable +hurst +intuition +wilton +cisco +44th +lawful +lowlands +stockings +thierry +##dalen +##hila +##nai +fates +prank +tb +maison +lobbied +provocative +1724 +4a +utopia +##qual +carbonate +gujarati +purcell +##rford +curtiss +##mei +overgrown +arenas +mediation +swallows +##rnik +respectful +turnbull +##hedron +##hope +alyssa +ozone +##ʻi +ami +gestapo +johansson +snooker +canteen +cuff +declines +empathy +stigma +##ags +##iner +##raine +taxpayers +gui +volga +##wright +##copic +lifespan +overcame +tattooed +enactment +giggles +##ador +##camp +barrington +bribe +obligatory +orbiting +peng +##enas +elusive +sucker +##vating +cong +hardship +empowered +anticipating +estrada +cryptic +greasy +detainees +planck +sudbury +plaid +dod +marriott +kayla +##ears +##vb +##zd +mortally +##hein +cognition +radha +319 +liechtenstein +meade +richly +argyle +harpsichord +liberalism +trumpets +lauded +tyrant +salsa +tiled +lear +promoters +reused +slicing +trident +##chuk +##gami +##lka +cantor +checkpoint +##points +gaul +leger +mammalian +##tov +##aar +##schaft +doha +frenchman +nirvana +##vino +delgado +headlining +##eron +##iography +jug +tko +1649 +naga +intersections +##jia +benfica +nawab +##suka +ashford +gulp +##deck +##vill +##rug +brentford +frazier +pleasures +dunne +potsdam +shenzhen +dentistry +##tec +flanagan +##dorff +##hear +chorale +dinah +prem +quezon +##rogated +relinquished +sutra +terri +##pani +flaps +##rissa +poly +##rnet +homme +aback +##eki +linger +womb +##kson +##lewood +doorstep +orthodoxy +threaded +westfield +##rval +dioceses +fridays +subsided +##gata +loyalists +##biotic +##ettes +letterman +lunatic +prelate +tenderly +invariably +souza +thug +winslow +##otide +furlongs +gogh +jeopardy +##runa +pegasus +##umble +humiliated +standalone +tagged +##roller +freshmen +klan +##bright +attaining +initiating +transatlantic +logged +viz +##uance +1723 +combatants +intervening +stephane +chieftain +despised +grazed +317 +cdc +galveston +godzilla +macro +simulate +##planes +parades +##esses +960 +##ductive +##unes +equator +overdose +##cans +##hosh +##lifting +joshi +epstein +sonora +treacherous +aquatics +manchu +responsive +##sation +supervisory +##christ +##llins +##ibar +##balance +##uso +kimball +karlsruhe +mab +##emy +ignores +phonetic +reuters +spaghetti +820 +almighty +danzig +rumbling +tombstone +designations +lured +outset +##felt +supermarkets +##wt +grupo +kei +kraft +susanna +##blood +comprehension +genealogy +##aghan +##verted +redding +##ythe +1722 +bowing +##pore +##roi +lest +sharpened +fulbright +valkyrie +sikhs +##unds +swans +bouquet +merritt +##tage +##venting +commuted +redhead +clerks +leasing +cesare +dea +hazy +##vances +fledged +greenfield +servicemen +##gical +armando +blackout +dt +sagged +downloadable +intra +potion +pods +##4th +##mism +xp +attendants +gambia +stale +##ntine +plump +asteroids +rediscovered +buds +flea +hive +##neas +1737 +classifications +debuts +##eles +olympus +scala +##eurs +##gno +##mute +hummed +sigismund +visuals +wiggled +await +pilasters +clench +sulfate +##ances +bellevue +enigma +trainee +snort +##sw +clouded +denim +##rank +##rder +churning +hartman +lodges +riches +sima +##missible +accountable +socrates +regulates +mueller +##cr +1702 +avoids +solids +himalayas +nutrient +pup +##jevic +squat +fades +nec +##lates +##pina +##rona +##ου +privateer +tequila +##gative +##mpton +apt +hornet +immortals +##dou +asturias +cleansing +dario +##rries +##anta +etymology +servicing +zhejiang +##venor +##nx +horned +erasmus +rayon +relocating +£10 +##bags +escalated +promenade +stubble +2010s +artisans +axial +liquids +mora +sho +yoo +##tsky +bundles +oldies +##nally +notification +bastion +##ths +sparkle +##lved +1728 +leash +pathogen +highs +##hmi +immature +880 +gonzaga +ignatius +mansions +monterrey +sweets +bryson +##loe +polled +regatta +brightest +pei +rosy +squid +hatfield +payroll +addict +meath +cornerback +heaviest +lodging +##mage +capcom +rippled +##sily +barnet +mayhem +ymca +snuggled +rousseau +##cute +blanchard +284 +fragmented +leighton +chromosomes +risking +##md +##strel +##utter +corinne +coyotes +cynical +hiroshi +yeomanry +##ractive +ebook +grading +mandela +plume +agustin +magdalene +##rkin +bea +femme +trafford +##coll +##lun +##tance +52nd +fourier +upton +##mental +camilla +gust +iihf +islamabad +longevity +##kala +feldman +netting +##rization +endeavour +foraging +mfa +orr +##open +greyish +contradiction +graz +##ruff +handicapped +marlene +tweed +oaxaca +spp +campos +miocene +pri +configured +cooks +pluto +cozy +pornographic +##entes +70th +fairness +glided +jonny +lynne +rounding +sired +##emon +##nist +remade +uncover +##mack +complied +lei +newsweek +##jured +##parts +##enting +##pg +293 +finer +guerrillas +athenian +deng +disused +stepmother +accuse +gingerly +seduction +521 +confronting +##walker +##going +gora +nostalgia +sabres +virginity +wrenched +##minated +syndication +wielding +eyre +##56 +##gnon +##igny +behaved +taxpayer +sweeps +##growth +childless +gallant +##ywood +amplified +geraldine +scrape +##ffi +babylonian +fresco +##rdan +##kney +##position +1718 +restricting +tack +fukuoka +osborn +selector +partnering +##dlow +318 +gnu +kia +tak +whitley +gables +##54 +##mania +mri +softness +immersion +##bots +##evsky +1713 +chilling +insignificant +pcs +##uis +elites +lina +purported +supplemental +teaming +##americana +##dding +##inton +proficient +rouen +##nage +##rret +niccolo +selects +##bread +fluffy +1621 +gruff +knotted +mukherjee +polgara +thrash +nicholls +secluded +smoothing +thru +corsica +loaf +whitaker +inquiries +##rrier +##kam +indochina +289 +marlins +myles +peking +##tea +extracts +pastry +superhuman +connacht +vogel +##ditional +##het +##udged +##lash +gloss +quarries +refit +teaser +##alic +##gaon +20s +materialized +sling +camped +pickering +tung +tracker +pursuant +##cide +cranes +soc +##cini +##typical +##viere +anhalt +overboard +workout +chores +fares +orphaned +stains +##logie +fenton +surpassing +joyah +triggers +##itte +grandmaster +##lass +##lists +clapping +fraudulent +ledger +nagasaki +##cor +##nosis +##tsa +eucalyptus +tun +##icio +##rney +##tara +dax +heroism +ina +wrexham +onboard +unsigned +##dates +moshe +galley +winnie +droplets +exiles +praises +watered +noodles +##aia +fein +adi +leland +multicultural +stink +bingo +comets +erskine +modernized +canned +constraint +domestically +chemotherapy +featherweight +stifled +##mum +darkly +irresistible +refreshing +hasty +isolate +##oys +kitchener +planners +##wehr +cages +yarn +implant +toulon +elects +childbirth +yue +##lind +##lone +cn +rightful +sportsman +junctions +remodeled +specifies +##rgh +291 +##oons +complimented +##urgent +lister +ot +##logic +bequeathed +cheekbones +fontana +gabby +##dial +amadeus +corrugated +maverick +resented +triangles +##hered +##usly +nazareth +tyrol +1675 +assent +poorer +sectional +aegean +##cous +296 +nylon +ghanaian +##egorical +##weig +cushions +forbid +fusiliers +obstruction +somerville +##scia +dime +earrings +elliptical +leyte +oder +polymers +timmy +atm +midtown +piloted +settles +continual +externally +mayfield +##uh +enrichment +henson +keane +persians +1733 +benji +braden +pep +324 +##efe +contenders +pepsi +valet +##isches +298 +##asse +##earing +goofy +stroll +##amen +authoritarian +occurrences +adversary +ahmedabad +tangent +toppled +dorchester +1672 +modernism +marxism +islamist +charlemagne +exponential +racks +unicode +brunette +mbc +pic +skirmish +##bund +##lad +##powered +##yst +hoisted +messina +shatter +##ctum +jedi +vantage +##music +##neil +clemens +mahmoud +corrupted +authentication +lowry +nils +##washed +omnibus +wounding +jillian +##itors +##opped +serialized +narcotics +handheld +##arm +##plicity +intersecting +stimulating +##onis +crate +fellowships +hemingway +casinos +climatic +fordham +copeland +drip +beatty +leaflets +robber +brothel +madeira +##hedral +sphinx +ultrasound +##vana +valor +forbade +leonid +villas +##aldo +duane +marquez +##cytes +disadvantaged +forearms +kawasaki +reacts +consular +lax +uncles +uphold +##hopper +concepcion +dorsey +lass +##izan +arching +passageway +1708 +researches +tia +internationals +##graphs +##opers +distinguishes +javanese +divert +##uven +plotted +##listic +##rwin +##erik +##tify +affirmative +signifies +validation +##bson +kari +felicity +georgina +zulu +##eros +##rained +##rath +overcoming +##dot +argyll +##rbin +1734 +chiba +ratification +windy +earls +parapet +##marks +hunan +pristine +astrid +punta +##gart +brodie +##kota +##oder +malaga +minerva +rouse +##phonic +bellowed +pagoda +portals +reclamation +##gur +##odies +##⁄₄ +parentheses +quoting +allergic +palette +showcases +benefactor +heartland +nonlinear +##tness +bladed +cheerfully +scans +##ety +##hone +1666 +girlfriends +pedersen +hiram +sous +##liche +##nator +1683 +##nery +##orio +##umen +bobo +primaries +smiley +##cb +unearthed +uniformly +fis +metadata +1635 +ind +##oted +recoil +##titles +##tura +##ια +406 +hilbert +jamestown +mcmillan +tulane +seychelles +##frid +antics +coli +fated +stucco +##grants +1654 +bulky +accolades +arrays +caledonian +carnage +optimism +puebla +##tative +##cave +enforcing +rotherham +seo +dunlop +aeronautics +chimed +incline +zoning +archduke +hellenistic +##oses +##sions +candi +thong +##ople +magnate +rustic +##rsk +projective +slant +##offs +danes +hollis +vocalists +##ammed +congenital +contend +gesellschaft +##ocating +##pressive +douglass +quieter +##cm +##kshi +howled +salim +spontaneously +townsville +buena +southport +##bold +kato +1638 +faerie +stiffly +##vus +##rled +297 +flawless +realising +taboo +##7th +bytes +straightening +356 +jena +##hid +##rmin +cartwright +berber +bertram +soloists +411 +noses +417 +coping +fission +hardin +inca +##cen +1717 +mobilized +vhf +##raf +biscuits +curate +##85 +##anial +331 +gaunt +neighbourhoods +1540 +##abas +blanca +bypassed +sockets +behold +coincidentally +##bane +nara +shave +splinter +terrific +##arion +##erian +commonplace +juris +redwood +waistband +boxed +caitlin +fingerprints +jennie +naturalized +##ired +balfour +craters +jody +bungalow +hugely +quilt +glitter +pigeons +undertaker +bulging +constrained +goo +##sil +##akh +assimilation +reworked +##person +persuasion +##pants +felicia +##cliff +##ulent +1732 +explodes +##dun +##inium +##zic +lyman +vulture +hog +overlook +begs +northwards +ow +spoil +##urer +fatima +favorably +accumulate +sargent +sorority +corresponded +dispersal +kochi +toned +##imi +##lita +internacional +newfound +##agger +##lynn +##rigue +booths +peanuts +##eborg +medicare +muriel +nur +##uram +crates +millennia +pajamas +worsened +##breakers +jimi +vanuatu +yawned +##udeau +carousel +##hony +hurdle +##ccus +##mounted +##pod +rv +##eche +airship +ambiguity +compulsion +recapture +##claiming +arthritis +##osomal +1667 +asserting +ngc +sniffing +dade +discontent +glendale +ported +##amina +defamation +rammed +##scent +fling +livingstone +##fleet +875 +##ppy +apocalyptic +comrade +lcd +##lowe +cessna +eine +persecuted +subsistence +demi +hoop +reliefs +710 +coptic +progressing +stemmed +perpetrators +1665 +priestess +##nio +dobson +ebony +rooster +itf +tortricidae +##bbon +##jian +cleanup +##jean +##øy +1721 +eighties +taxonomic +holiness +##hearted +##spar +antilles +showcasing +stabilized +##nb +gia +mascara +michelangelo +dawned +##uria +##vinsky +extinguished +fitz +grotesque +£100 +##fera +##loid +##mous +barges +neue +throbbed +cipher +johnnie +##a1 +##mpt +outburst +##swick +spearheaded +administrations +c1 +heartbreak +pixels +pleasantly +##enay +lombardy +plush +##nsed +bobbie +##hly +reapers +tremor +xiang +minogue +substantive +hitch +barak +##wyl +kwan +##encia +910 +obscene +elegance +indus +surfer +bribery +conserve +##hyllum +##masters +horatio +##fat +apes +rebound +psychotic +##pour +iteration +##mium +##vani +botanic +horribly +antiques +dispose +paxton +##hli +##wg +timeless +1704 +disregard +engraver +hounds +##bau +##version +looted +uno +facilitates +groans +masjid +rutland +antibody +disqualification +decatur +footballers +quake +slacks +48th +rein +scribe +stabilize +commits +exemplary +tho +##hort +##chison +pantry +traversed +##hiti +disrepair +identifiable +vibrated +baccalaureate +##nnis +csa +interviewing +##iensis +##raße +greaves +wealthiest +343 +classed +jogged +£5 +##58 +##atal +illuminating +knicks +respecting +##uno +scrubbed +##iji +##dles +kruger +moods +growls +raider +silvia +chefs +kam +vr +cree +percival +##terol +gunter +counterattack +defiant +henan +ze +##rasia +##riety +equivalence +submissions +##fra +##thor +bautista +mechanically +##heater +cornice +herbal +templar +##mering +outputs +ruining +ligand +renumbered +extravagant +mika +blockbuster +eta +insurrection +##ilia +darkening +ferocious +pianos +strife +kinship +##aer +melee +##anor +##iste +##may +##oue +decidedly +weep +##jad +##missive +##ppel +354 +puget +unease +##gnant +1629 +hammering +kassel +ob +wessex +##lga +bromwich +egan +paranoia +utilization +##atable +##idad +contradictory +provoke +##ols +##ouring +##tangled +knesset +##very +##lette +plumbing +##sden +##¹ +greensboro +occult +sniff +338 +zev +beaming +gamer +haggard +mahal +##olt +##pins +mendes +utmost +briefing +gunnery +##gut +##pher +##zh +##rok +1679 +khalifa +sonya +##boot +principals +urbana +wiring +##liffe +##minating +##rrado +dahl +nyu +skepticism +np +townspeople +ithaca +lobster +somethin +##fur +##arina +##−1 +freighter +zimmerman +biceps +contractual +##herton +amend +hurrying +subconscious +##anal +336 +meng +clermont +spawning +##eia +##lub +dignitaries +impetus +snacks +spotting +twigs +##bilis +##cz +##ouk +libertadores +nic +skylar +##aina +##firm +gustave +asean +##anum +dieter +legislatures +flirt +bromley +trolls +umar +##bbies +##tyle +blah +parc +bridgeport +crank +negligence +##nction +46th +constantin +molded +bandages +seriousness +00pm +siegel +carpets +compartments +upbeat +statehood +##dner +##edging +marko +730 +platt +##hane +paving +##iy +1738 +abbess +impatience +limousine +nbl +##talk +441 +lucille +mojo +nightfall +robbers +##nais +karel +brisk +calves +replicate +ascribed +telescopes +##olf +intimidated +##reen +ballast +specialization +##sit +aerodynamic +caliphate +rainer +visionary +##arded +epsilon +##aday +##onte +aggregation +auditory +boosted +reunification +kathmandu +loco +robyn +402 +acknowledges +appointing +humanoid +newell +redeveloped +restraints +##tained +barbarians +chopper +1609 +italiana +##lez +##lho +investigates +wrestlemania +##anies +##bib +690 +##falls +creaked +dragoons +gravely +minions +stupidity +volley +##harat +##week +musik +##eries +##uously +fungal +massimo +semantics +malvern +##ahl +##pee +discourage +embryo +imperialism +1910s +profoundly +##ddled +jiangsu +sparkled +stat +##holz +sweatshirt +tobin +##iction +sneered +##cheon +##oit +brit +causal +smyth +##neuve +diffuse +perrin +silvio +##ipes +##recht +detonated +iqbal +selma +##nism +##zumi +roasted +##riders +tay +##ados +##mament +##mut +##rud +840 +completes +nipples +cfa +flavour +hirsch +##laus +calderon +sneakers +moravian +##ksha +1622 +rq +294 +##imeters +bodo +##isance +##pre +##ronia +anatomical +excerpt +##lke +dh +kunst +##tablished +##scoe +biomass +panted +unharmed +gael +housemates +montpellier +##59 +coa +rodents +tonic +hickory +singleton +##taro +451 +1719 +aldo +breaststroke +dempsey +och +rocco +##cuit +merton +dissemination +midsummer +serials +##idi +haji +polynomials +##rdon +gs +enoch +prematurely +shutter +taunton +£3 +##grating +##inates +archangel +harassed +##asco +326 +archway +dazzling +##ecin +1736 +sumo +wat +##kovich +1086 +honneur +##ently +##nostic +##ttal +##idon +1605 +403 +1716 +blogger +rents +##gnan +hires +##ikh +##dant +howie +##rons +handler +retracted +shocks +1632 +arun +duluth +kepler +trumpeter +##lary +peeking +seasoned +trooper +##mara +laszlo +##iciencies +##rti +heterosexual +##inatory +##ssion +indira +jogging +##inga +##lism +beit +dissatisfaction +malice +##ately +nedra +peeling +##rgeon +47th +stadiums +475 +vertigo +##ains +iced +restroom +##plify +##tub +illustrating +pear +##chner +##sibility +inorganic +rappers +receipts +watery +##kura +lucinda +##oulos +reintroduced +##8th +##tched +gracefully +saxons +nutritional +wastewater +rained +favourites +bedrock +fisted +hallways +likeness +upscale +##lateral +1580 +blinds +prequel +##pps +##tama +deter +humiliating +restraining +tn +vents +1659 +laundering +recess +rosary +tractors +coulter +federer +##ifiers +##plin +persistence +##quitable +geschichte +pendulum +quakers +##beam +bassett +pictorial +buffet +koln +##sitor +drills +reciprocal +shooters +##57 +##cton +##tees +converge +pip +dmitri +donnelly +yamamoto +aqua +azores +demographics +hypnotic +spitfire +suspend +wryly +roderick +##rran +sebastien +##asurable +mavericks +##fles +##200 +himalayan +prodigy +##iance +transvaal +demonstrators +handcuffs +dodged +mcnamara +sublime +1726 +crazed +##efined +##till +ivo +pondered +reconciled +shrill +sava +##duk +bal +cad +heresy +jaipur +goran +##nished +341 +lux +shelly +whitehall +##hre +israelis +peacekeeping +##wled +1703 +demetrius +ousted +##arians +##zos +beale +anwar +backstroke +raged +shrinking +cremated +##yck +benign +towing +wadi +darmstadt +landfill +parana +soothe +colleen +sidewalks +mayfair +tumble +hepatitis +ferrer +superstructure +##gingly +##urse +##wee +anthropological +translators +##mies +closeness +hooves +##pw +mondays +##roll +##vita +landscaping +##urized +purification +sock +thorns +thwarted +jalan +tiberius +##taka +saline +##rito +confidently +khyber +sculptors +##ij +brahms +hammersmith +inspectors +battista +fivb +fragmentation +hackney +##uls +arresting +exercising +antoinette +bedfordshire +##zily +dyed +##hema +1656 +racetrack +variability +##tique +1655 +austrians +deteriorating +madman +theorists +aix +lehman +weathered +1731 +decreed +eruptions +1729 +flaw +quinlan +sorbonne +flutes +nunez +1711 +adored +downwards +fable +rasped +1712 +moritz +mouthful +renegade +shivers +stunts +dysfunction +restrain +translit +327 +pancakes +##avio +##cision +##tray +351 +vial +##lden +bain +##maid +##oxide +chihuahua +malacca +vimes +##rba +##rnier +1664 +donnie +plaques +##ually +337 +bangs +floppy +huntsville +loretta +nikolay +##otte +eater +handgun +ubiquitous +##hett +eras +zodiac +1634 +##omorphic +1820s +##zog +cochran +##bula +##lithic +warring +##rada +dalai +excused +blazers +mcconnell +reeling +bot +este +##abi +geese +hoax +taxon +##bla +guitarists +##icon +condemning +hunts +inversion +moffat +taekwondo +##lvis +1624 +stammered +##rest +##rzy +sousa +fundraiser +marylebone +navigable +uptown +cabbage +daniela +salman +shitty +whimper +##kian +##utive +programmers +protections +rm +##rmi +##rued +forceful +##enes +fuss +##tao +##wash +brat +oppressive +reykjavik +spartak +ticking +##inkles +##kiewicz +adolph +horst +maui +protege +straighten +cpc +landau +concourse +clements +resultant +##ando +imaginative +joo +reactivated +##rem +##ffled +##uising +consultative +##guide +flop +kaitlyn +mergers +parenting +somber +##vron +supervise +vidhan +##imum +courtship +exemplified +harmonies +medallist +refining +##rrow +##ка +amara +##hum +780 +goalscorer +sited +overshadowed +rohan +displeasure +secretive +multiplied +osman +##orth +engravings +padre +##kali +##veda +miniatures +mis +##yala +clap +pali +rook +##cana +1692 +57th +antennae +astro +oskar +1628 +bulldog +crotch +hackett +yucatan +##sure +amplifiers +brno +ferrara +migrating +##gree +thanking +turing +##eza +mccann +ting +andersson +onslaught +gaines +ganga +incense +standardization +##mation +sentai +scuba +stuffing +turquoise +waivers +alloys +##vitt +regaining +vaults +##clops +##gizing +digger +furry +memorabilia +probing +##iad +payton +rec +deutschland +filippo +opaque +seamen +zenith +afrikaans +##filtration +disciplined +inspirational +##merie +banco +confuse +grafton +tod +##dgets +championed +simi +anomaly +biplane +##ceptive +electrode +##para +1697 +cleavage +crossbow +swirl +informant +##lars +##osta +afi +bonfire +spec +##oux +lakeside +slump +##culus +##lais +##qvist +##rrigan +1016 +facades +borg +inwardly +cervical +xl +pointedly +050 +stabilization +##odon +chests +1699 +hacked +ctv +orthogonal +suzy +##lastic +gaulle +jacobite +rearview +##cam +##erted +ashby +##drik +##igate +##mise +##zbek +affectionately +canine +disperse +latham +##istles +##ivar +spielberg +##orin +##idium +ezekiel +cid +##sg +durga +middletown +##cina +customized +frontiers +harden +##etano +##zzy +1604 +bolsheviks +##66 +coloration +yoko +##bedo +briefs +slabs +debra +liquidation +plumage +##oin +blossoms +dementia +subsidy +1611 +proctor +relational +jerseys +parochial +ter +##ici +esa +peshawar +cavalier +loren +cpi +idiots +shamrock +1646 +dutton +malabar +mustache +##endez +##ocytes +referencing +terminates +marche +yarmouth +##sop +acton +mated +seton +subtly +baptised +beige +extremes +jolted +kristina +telecast +##actic +safeguard +waldo +##baldi +##bular +endeavors +sloppy +subterranean +##ensburg +##itung +delicately +pigment +tq +##scu +1626 +##ound +collisions +coveted +herds +##personal +##meister +##nberger +chopra +##ricting +abnormalities +defective +galician +lucie +##dilly +alligator +likened +##genase +burundi +clears +complexion +derelict +deafening +diablo +fingered +champaign +dogg +enlist +isotope +labeling +mrna +##erre +brilliance +marvelous +##ayo +1652 +crawley +ether +footed +dwellers +deserts +hamish +rubs +warlock +skimmed +##lizer +870 +buick +embark +heraldic +irregularities +##ajan +kiara +##kulam +##ieg +antigen +kowalski +##lge +oakley +visitation +##mbit +vt +##suit +1570 +murderers +##miento +##rites +chimneys +##sling +condemn +custer +exchequer +havre +##ghi +fluctuations +##rations +dfb +hendricks +vaccines +##tarian +nietzsche +biking +juicy +##duced +brooding +scrolling +selangor +##ragan +352 +annum +boomed +seminole +sugarcane +##dna +departmental +dismissing +innsbruck +arteries +ashok +batavia +daze +kun +overtook +##rga +##tlan +beheaded +gaddafi +holm +electronically +faulty +galilee +fractures +kobayashi +##lized +gunmen +magma +aramaic +mala +eastenders +inference +messengers +bf +##qu +407 +bathrooms +##vere +1658 +flashbacks +ideally +misunderstood +##jali +##weather +mendez +##grounds +505 +uncanny +##iii +1709 +friendships +##nbc +sacrament +accommodated +reiterated +logistical +pebbles +thumped +##escence +administering +decrees +drafts +##flight +##cased +##tula +futuristic +picket +intimidation +winthrop +##fahan +interfered +339 +afar +francoise +morally +uta +cochin +croft +dwarfs +##bruck +##dents +##nami +biker +##hner +##meral +nano +##isen +##ometric +##pres +##ан +brightened +meek +parcels +securely +gunners +##jhl +##zko +agile +hysteria +##lten +##rcus +bukit +champs +chevy +cuckoo +leith +sadler +theologians +welded +##section +1663 +jj +plurality +xander +##rooms +##formed +shredded +temps +intimately +pau +tormented +##lok +##stellar +1618 +charred +ems +essen +##mmel +alarms +spraying +ascot +blooms +twinkle +##abia +##apes +internment +obsidian +##chaft +snoop +##dav +##ooping +malibu +##tension +quiver +##itia +hays +mcintosh +travers +walsall +##ffie +1623 +beverley +schwarz +plunging +structurally +m3 +rosenthal +vikram +##tsk +770 +ghz +##onda +##tiv +chalmers +groningen +pew +reckon +unicef +##rvis +55th +##gni +1651 +sulawesi +avila +cai +metaphysical +screwing +turbulence +##mberg +augusto +samba +56th +baffled +momentary +toxin +##urian +##wani +aachen +condoms +dali +steppe +##3d +##app +##oed +##year +adolescence +dauphin +electrically +inaccessible +microscopy +nikita +##ega +atv +##cel +##enter +##oles +##oteric +##ы +accountants +punishments +wrongly +bribes +adventurous +clinch +flinders +southland +##hem +##kata +gough +##ciency +lads +soared +##ה +undergoes +deformation +outlawed +rubbish +##arus +##mussen +##nidae +##rzburg +arcs +##ingdon +##tituted +1695 +wheelbase +wheeling +bombardier +campground +zebra +##lices +##oj +##bain +lullaby +##ecure +donetsk +wylie +grenada +##arding +##ης +squinting +eireann +opposes +##andra +maximal +runes +##broken +##cuting +##iface +##ror +##rosis +additive +britney +adultery +triggering +##drome +detrimental +aarhus +containment +jc +swapped +vichy +##ioms +madly +##oric +##rag +brant +##ckey +##trix +1560 +1612 +broughton +rustling +##stems +##uder +asbestos +mentoring +##nivorous +finley +leaps +##isan +apical +pry +slits +substitutes +##dict +intuitive +fantasia +insistent +unreasonable +##igen +##vna +domed +hannover +margot +ponder +##zziness +impromptu +jian +lc +rampage +stemming +##eft +andrey +gerais +whichever +amnesia +appropriated +anzac +clicks +modifying +ultimatum +cambrian +maids +verve +yellowstone +##mbs +conservatoire +##scribe +adherence +dinners +spectra +imperfect +mysteriously +sidekick +tatar +tuba +##aks +##ifolia +distrust +##athan +##zle +c2 +ronin +zac +##pse +celaena +instrumentalist +scents +skopje +##mbling +comical +compensated +vidal +condor +intersect +jingle +wavelengths +##urrent +mcqueen +##izzly +carp +weasel +422 +kanye +militias +postdoctoral +eugen +gunslinger +##ɛ +faux +hospice +##for +appalled +derivation +dwarves +##elis +dilapidated +##folk +astoria +philology +##lwyn +##otho +##saka +inducing +philanthropy +##bf +##itative +geek +markedly +sql +##yce +bessie +indices +rn +##flict +495 +frowns +resolving +weightlifting +tugs +cleric +contentious +1653 +mania +rms +##miya +##reate +##ruck +##tucket +bien +eels +marek +##ayton +##cence +discreet +unofficially +##ife +leaks +##bber +1705 +332 +dung +compressor +hillsborough +pandit +shillings +distal +##skin +381 +##tat +##you +nosed +##nir +mangrove +undeveloped +##idia +textures +##inho +##500 +##rise +ae +irritating +nay +amazingly +bancroft +apologetic +compassionate +kata +symphonies +##lovic +airspace +##lch +930 +gifford +precautions +fulfillment +sevilla +vulgar +martinique +##urities +looting +piccolo +tidy +##dermott +quadrant +armchair +incomes +mathematicians +stampede +nilsson +##inking +##scan +foo +quarterfinal +##ostal +shang +shouldered +squirrels +##owe +344 +vinegar +##bner +##rchy +##systems +delaying +##trics +ars +dwyer +rhapsody +sponsoring +##gration +bipolar +cinder +starters +##olio +##urst +421 +signage +##nty +aground +figurative +mons +acquaintances +duets +erroneously +soyuz +elliptic +recreated +##cultural +##quette +##ssed +##tma +##zcz +moderator +scares +##itaire +##stones +##udence +juniper +sighting +##just +##nsen +britten +calabria +ry +bop +cramer +forsyth +stillness +##л +airmen +gathers +unfit +##umber +##upt +taunting +##rip +seeker +streamlined +##bution +holster +schumann +tread +vox +##gano +##onzo +strive +dil +reforming +covent +newbury +predicting +##orro +decorate +tre +##puted +andover +ie +asahi +dept +dunkirk +gills +##tori +buren +huskies +##stis +##stov +abstracts +bets +loosen +##opa +1682 +yearning +##glio +##sir +berman +effortlessly +enamel +napoli +persist +##peration +##uez +attache +elisa +b1 +invitations +##kic +accelerating +reindeer +boardwalk +clutches +nelly +polka +starbucks +##kei +adamant +huey +lough +unbroken +adventurer +embroidery +inspecting +stanza +##ducted +naia +taluka +##pone +##roids +chases +deprivation +florian +##jing +##ppet +earthly +##lib +##ssee +colossal +foreigner +vet +freaks +patrice +rosewood +triassic +upstate +##pkins +dominates +ata +chants +ks +vo +##400 +##bley +##raya +##rmed +555 +agra +infiltrate +##ailing +##ilation +##tzer +##uppe +##werk +binoculars +enthusiast +fujian +squeak +##avs +abolitionist +almeida +boredom +hampstead +marsden +rations +##ands +inflated +334 +bonuses +rosalie +patna +##rco +329 +detachments +penitentiary +54th +flourishing +woolf +##dion +##etched +papyrus +##lster +##nsor +##toy +bobbed +dismounted +endelle +inhuman +motorola +tbs +wince +wreath +##ticus +hideout +inspections +sanjay +disgrace +infused +pudding +stalks +##urbed +arsenic +leases +##hyl +##rrard +collarbone +##waite +##wil +dowry +##bant +##edance +genealogical +nitrate +salamanca +scandals +thyroid +necessitated +##! +##" +### +##$ +##% +##& +##' +##( +##) +##* +##+ +##, +##- +##. +##/ +##: +##; +##< +##= +##> +##? +##@ +##[ +##\ +##] +##^ +##_ +##` +##{ +##| +##} +##~ +##¡ +##¢ +##£ +##¤ +##¥ +##¦ +##§ +##¨ +##© +##ª +##« +##¬ +##® +##± +##´ +##µ +##¶ +##· +##º +##» +##¼ +##¾ +##¿ +##æ +##ð +##÷ +##þ +##đ +##ħ +##ŋ +##œ +##ƒ +##ɐ +##ɑ +##ɒ +##ɔ +##ɕ +##ə +##ɡ +##ɣ +##ɨ +##ɪ +##ɫ +##ɬ +##ɯ +##ɲ +##ɴ +##ɹ +##ɾ +##ʀ +##ʁ +##ʂ +##ʃ +##ʉ +##ʊ +##ʋ +##ʌ +##ʎ +##ʐ +##ʑ +##ʒ +##ʔ +##ʰ +##ʲ +##ʳ +##ʷ +##ʸ +##ʻ +##ʼ +##ʾ +##ʿ +##ˈ +##ˡ +##ˢ +##ˣ +##ˤ +##β +##γ +##δ +##ε +##ζ +##θ +##κ +##λ +##μ +##ξ +##ο +##π +##ρ +##σ +##τ +##υ +##φ +##χ +##ψ +##ω +##б +##г +##д +##ж +##з +##м +##п +##с +##у +##ф +##х +##ц +##ч +##ш +##щ +##ъ +##э +##ю +##ђ +##є +##і +##ј +##љ +##њ +##ћ +##ӏ +##ա +##բ +##գ +##դ +##ե +##թ +##ի +##լ +##կ +##հ +##մ +##յ +##ն +##ո +##պ +##ս +##վ +##տ +##ր +##ւ +##ք +##־ +##א +##ב +##ג +##ד +##ו +##ז +##ח +##ט +##י +##ך +##כ +##ל +##ם +##מ +##ן +##נ +##ס +##ע +##ף +##פ +##ץ +##צ +##ק +##ר +##ש +##ת +##، +##ء +##ب +##ت +##ث +##ج +##ح +##خ +##ذ +##ز +##س +##ش +##ص +##ض +##ط +##ظ +##ع +##غ +##ـ +##ف +##ق +##ك +##و +##ى +##ٹ +##پ +##چ +##ک +##گ +##ں +##ھ +##ہ +##ے +##अ +##आ +##उ +##ए +##क +##ख +##ग +##च +##ज +##ट +##ड +##ण +##त +##थ +##द +##ध +##न +##प +##ब +##भ +##म +##य +##र +##ल +##व +##श +##ष +##स +##ह +##ा +##ि +##ी +##ो +##। +##॥ +##ং +##অ +##আ +##ই +##উ +##এ +##ও +##ক +##খ +##গ +##চ +##ছ +##জ +##ট +##ড +##ণ +##ত +##থ +##দ +##ধ +##ন +##প +##ব +##ভ +##ম +##য +##র +##ল +##শ +##ষ +##স +##হ +##া +##ি +##ী +##ে +##க +##ச +##ட +##த +##ந +##ன +##ப +##ம +##ய +##ர +##ல +##ள +##வ +##ா +##ி +##ு +##ே +##ை +##ನ +##ರ +##ಾ +##ක +##ය +##ර +##ල +##ව +##ා +##ก +##ง +##ต +##ท +##น +##พ +##ม +##ย +##ร +##ล +##ว +##ส +##อ +##า +##เ +##་ +##། +##ག +##ང +##ད +##ན +##པ +##བ +##མ +##འ +##ར +##ལ +##ས +##မ +##ა +##ბ +##გ +##დ +##ე +##ვ +##თ +##ი +##კ +##ლ +##მ +##ნ +##ო +##რ +##ს +##ტ +##უ +##ᄀ +##ᄂ +##ᄃ +##ᄅ +##ᄆ +##ᄇ +##ᄉ +##ᄊ +##ᄋ +##ᄌ +##ᄎ +##ᄏ +##ᄐ +##ᄑ +##ᄒ +##ᅡ +##ᅢ +##ᅥ +##ᅦ +##ᅧ +##ᅩ +##ᅪ +##ᅭ +##ᅮ +##ᅯ +##ᅲ +##ᅳ +##ᅴ +##ᅵ +##ᆨ +##ᆫ +##ᆯ +##ᆷ +##ᆸ +##ᆼ +##ᴬ +##ᴮ +##ᴰ +##ᴵ +##ᴺ +##ᵀ +##ᵃ +##ᵇ +##ᵈ +##ᵉ +##ᵍ +##ᵏ +##ᵐ +##ᵒ +##ᵖ +##ᵗ +##ᵘ +##ᵣ +##ᵤ +##ᵥ +##ᶜ +##ᶠ +##‐ +##‑ +##‒ +##– +##— +##― +##‖ +##‘ +##’ +##‚ +##“ +##” +##„ +##† +##‡ +##• +##… +##‰ +##′ +##″ +##› +##‿ +##⁄ +##⁰ +##ⁱ +##⁴ +##⁵ +##⁶ +##⁷ +##⁸ +##⁹ +##⁻ +##ⁿ +##₅ +##₆ +##₇ +##₈ +##₉ +##₊ +##₍ +##₎ +##ₐ +##ₑ +##ₒ +##ₓ +##ₕ +##ₖ +##ₗ +##ₘ +##ₚ +##ₛ +##ₜ +##₤ +##₩ +##€ +##₱ +##₹ +##ℓ +##№ +##ℝ +##™ +##⅓ +##⅔ +##← +##↑ +##→ +##↓ +##↔ +##↦ +##⇄ +##⇌ +##⇒ +##∂ +##∅ +##∆ +##∇ +##∈ +##∗ +##∘ +##√ +##∞ +##∧ +##∨ +##∩ +##∪ +##≈ +##≡ +##≤ +##≥ +##⊂ +##⊆ +##⊕ +##⊗ +##⋅ +##─ +##│ +##■ +##▪ +##● +##★ +##☆ +##☉ +##♠ +##♣ +##♥ +##♦ +##♯ +##⟨ +##⟩ +##ⱼ +##⺩ +##⺼ +##⽥ +##、 +##。 +##〈 +##〉 +##《 +##》 +##「 +##」 +##『 +##』 +##〜 +##あ +##い +##う +##え +##お +##か +##き +##く +##け +##こ +##さ +##し +##す +##せ +##そ +##た +##ち +##っ +##つ +##て +##と +##な +##に +##ぬ +##ね +##の +##は +##ひ +##ふ +##へ +##ほ +##ま +##み +##む +##め +##も +##や +##ゆ +##よ +##ら +##り +##る +##れ +##ろ +##を +##ん +##ァ +##ア +##ィ +##イ +##ウ +##ェ +##エ +##オ +##カ +##キ +##ク +##ケ +##コ +##サ +##シ +##ス +##セ +##タ +##チ +##ッ +##ツ +##テ +##ト +##ナ +##ニ +##ノ +##ハ +##ヒ +##フ +##ヘ +##ホ +##マ +##ミ +##ム +##メ +##モ +##ャ +##ュ +##ョ +##ラ +##リ +##ル +##レ +##ロ +##ワ +##ン +##・ +##ー +##一 +##三 +##上 +##下 +##不 +##世 +##中 +##主 +##久 +##之 +##也 +##事 +##二 +##五 +##井 +##京 +##人 +##亻 +##仁 +##介 +##代 +##仮 +##伊 +##会 +##佐 +##侍 +##保 +##信 +##健 +##元 +##光 +##八 +##公 +##内 +##出 +##分 +##前 +##劉 +##力 +##加 +##勝 +##北 +##区 +##十 +##千 +##南 +##博 +##原 +##口 +##古 +##史 +##司 +##合 +##吉 +##同 +##名 +##和 +##囗 +##四 +##国 +##國 +##土 +##地 +##坂 +##城 +##堂 +##場 +##士 +##夏 +##外 +##大 +##天 +##太 +##夫 +##奈 +##女 +##子 +##学 +##宀 +##宇 +##安 +##宗 +##定 +##宣 +##宮 +##家 +##宿 +##寺 +##將 +##小 +##尚 +##山 +##岡 +##島 +##崎 +##川 +##州 +##巿 +##帝 +##平 +##年 +##幸 +##广 +##弘 +##張 +##彳 +##後 +##御 +##德 +##心 +##忄 +##志 +##忠 +##愛 +##成 +##我 +##戦 +##戸 +##手 +##扌 +##政 +##文 +##新 +##方 +##日 +##明 +##星 +##春 +##昭 +##智 +##曲 +##書 +##月 +##有 +##朝 +##木 +##本 +##李 +##村 +##東 +##松 +##林 +##森 +##楊 +##樹 +##橋 +##歌 +##止 +##正 +##武 +##比 +##氏 +##民 +##水 +##氵 +##氷 +##永 +##江 +##沢 +##河 +##治 +##法 +##海 +##清 +##漢 +##瀬 +##火 +##版 +##犬 +##王 +##生 +##田 +##男 +##疒 +##発 +##白 +##的 +##皇 +##目 +##相 +##省 +##真 +##石 +##示 +##社 +##神 +##福 +##禾 +##秀 +##秋 +##空 +##立 +##章 +##竹 +##糹 +##美 +##義 +##耳 +##良 +##艹 +##花 +##英 +##華 +##葉 +##藤 +##行 +##街 +##西 +##見 +##訁 +##語 +##谷 +##貝 +##貴 +##車 +##軍 +##辶 +##道 +##郎 +##郡 +##部 +##都 +##里 +##野 +##金 +##鈴 +##镇 +##長 +##門 +##間 +##阝 +##阿 +##陳 +##陽 +##雄 +##青 +##面 +##風 +##食 +##香 +##馬 +##高 +##龍 +##龸 +##fi +##fl +##! +##( +##) +##, +##- +##. +##/ +##: +##? +##~ diff --git a/extensions/continue/package.json b/extensions/continue/package.json new file mode 100644 index 000000000000..6805ea9c044d --- /dev/null +++ b/extensions/continue/package.json @@ -0,0 +1,786 @@ +{ + "name": "continue", + "icon": "media/icon.png", + "author": "Continue Dev, Inc", + "version": "1.3.33", + "repository": { + "type": "git", + "url": "https://github.com/continuedev/continue" + }, + "extensionKind": [ + "ui", + "workspace" + ], + "bugs": { + "url": "https://github.com/continuedev/continue/issues", + "email": "nate@continue.dev" + }, + "homepage": "https://continue.dev", + "qna": "https://github.com/continuedev/continue/issues/new/choose", + "license": "Apache-2.0", + "displayName": "Continue - open-source AI code agent", + "pricing": "Free", + "description": "The leading open-source AI code agent", + "publisher": "Continue", + "engines": { + "vscode": "^1.70.0", + "node": ">=20.19.0" + }, + "engine-strict": true, + "galleryBanner": { + "color": "#1E1E1E", + "theme": "dark" + }, + "categories": [ + "AI", + "Chat", + "Programming Languages", + "Education", + "Machine Learning", + "Snippets" + ], + "keywords": [ + "chatgpt", + "cline", + "roo", + "github", + "copilot", + "claude", + "mistral", + "codestral", + "ai" + ], + "activationEvents": [ + "onUri", + "onStartupFinished", + "onView:continueGUIView" + ], + "main": "./out/extension.js", + "contributes": { + "languages": [ + { + "filenames": [ + "config.json", + ".continuerc.json" + ], + "id": "jsonc" + }, + { + "id": "promptLanguage", + "extensions": [ + ".prompt" + ], + "aliases": [ + "Prompt Language" + ], + "configuration": "./prompt-file-language-configuration.json" + } + ], + "grammars": [ + { + "language": "promptLanguage", + "scopeName": "source.prompt", + "path": "./media/prompt.tmLanguage.json" + } + ], + "configuration": { + "title": "Continue", + "properties": { + "continue.telemetryEnabled": { + "type": "boolean", + "default": true, + "markdownDescription": "Continue collects anonymous usage data, cleaned of PII, to help us improve the product for our users. Read more at [continue.dev › Telemetry](https://docs.continue.dev/telemetry).", + "markdownDeprecationMessage": "This setting is deprecated and will be removed in a later version. Please use the _Telemetry > Allow Anonymous Telemetry_ setting in the extension's User Settings page.", + "deprecationMessage": "Please use the _Telemetry > Allow Anonymous Telemetry_ setting in the extension's User Settings page." + }, + "continue.showInlineTip": { + "type": "boolean", + "default": true, + "description": "Show inline suggestion to use the Continue keyboard shortcuts (e.g. \"Cmd/Ctrl L to select code, Cmd/Ctrl I to edit\")." + }, + "continue.disableQuickFix": { + "type": "boolean", + "default": false, + "description": "Disable the quick fix feature." + }, + "continue.enableQuickActions": { + "type": "boolean", + "default": false, + "markdownDescription": "Enable the experimental Quick Actions feature. Read our walkthrough to learn about configuration and how to share feedback: [continue.dev › Walkthrough: Quick Actions (experimental)](https://docs.continue.dev/customize/deep-dives/vscode-actions#quick-actions)" + }, + "continue.enableTabAutocomplete": { + "type": "boolean", + "default": true, + "markdownDescription": "Enable Continue's tab autocomplete feature. Read our walkthrough to learn about configuration and how to share feedback: [continue.dev › Walkthrough: Tab Autocomplete (beta)](https://docs.continue.dev/features/tab-autocomplete)" + }, + "continue.enableNextEdit": { + "type": "boolean", + "default": true, + "markdownDescription": "Enable Continue's next edit feature. Read our docs to learn about configuration and how to share feedback: [continue.dev › Features › Autocomplete › Next Edit (experimental)](https://docs.continue.dev/features/autocomplete/next-edit)" + }, + "continue.pauseTabAutocompleteOnBattery": { + "type": "boolean", + "default": false, + "markdownDescription": "Pause Continue's tab autocomplete feature when your battery is low." + }, + "continue.pauseCodebaseIndexOnStart": { + "type": "boolean", + "default": false, + "markdownDescription": "Pause Continue's codebase index on start." + }, + "continue.enableConsole": { + "type": "boolean", + "default": false, + "markdownDescription": "Enable a console to log and explore model inputs and outputs. It can be found in the bottom panel." + }, + "continue.remoteConfigServerUrl": { + "type": "string", + "default": null, + "markdownDescription": "If your team is set up to use shared configuration, enter the server URL here and your user token below to enable automatic syncing." + }, + "continue.userToken": { + "type": "string", + "default": null, + "markdownDescription": "If your team is set up to use shared configuration, enter your user token here and your server URL above to enable automatic syncing." + }, + "continue.remoteConfigSyncPeriod": { + "type": "number", + "default": 60, + "description": "The period of time in minutes between automatic syncs." + } + } + }, + "commands": [ + { + "command": "continue.applyCodeFromChat", + "category": "Continue", + "title": "Apply code from chat", + "group": "Continue" + }, + { + "command": "continue.acceptDiff", + "category": "Continue", + "title": "Accept Diff", + "group": "Continue" + }, + { + "command": "continue.rejectDiff", + "category": "Continue", + "title": "Reject Diff", + "group": "Continue", + "icon": "$(stop)" + }, + { + "command": "continue.acceptVerticalDiffBlock", + "category": "Continue", + "title": "Accept Vertical Diff Block", + "group": "Continue" + }, + { + "command": "continue.rejectVerticalDiffBlock", + "category": "Continue", + "title": "Reject Vertical Diff Block", + "group": "Continue" + }, + { + "command": "continue.focusEdit", + "category": "Continue", + "title": "Add to Edit", + "group": "Continue" + }, + { + "command": "continue.focusContinueInput", + "category": "Continue", + "title": "Add Highlighted Code to Context and Clear Chat", + "group": "Continue" + }, + { + "command": "continue.focusContinueInputWithoutClear", + "category": "Continue", + "title": "Add to Chat", + "group": "Continue" + }, + { + "command": "continue.debugTerminal", + "category": "Continue", + "title": "Debug Terminal", + "group": "Continue" + }, + { + "command": "continue.exitEditMode", + "category": "Continue", + "title": "Exit Edit Mode", + "group": "Continue" + }, + { + "command": "continue.openConfigPage", + "category": "Continue", + "title": "Open Settings", + "icon": "$(gear)", + "group": "Continue" + }, + { + "command": "continue.toggleTabAutocompleteEnabled", + "category": "Continue", + "title": "Toggle Autocomplete Enabled", + "group": "Continue" + }, + { + "command": "continue.forceAutocomplete", + "title": "Continue: Force Autocomplete", + "category": "Continue" + }, + { + "command": "continue.selectFilesAsContext", + "category": "Continue", + "title": "Select Files as Context", + "group": "Continue" + }, + { + "command": "continue.newSession", + "category": "Continue", + "title": "New Session", + "icon": "$(add)", + "group": "Continue" + }, + { + "command": "continue.shareSession", + "category": "Continue", + "title": "Share Current Chat Session as Markdown", + "group": "Continue" + }, + { + "command": "continue.viewHistory", + "category": "Continue", + "title": "View History", + "icon": "$(history)", + "group": "Continue" + }, + { + "command": "continue.viewLogs", + "category": "Continue", + "title": "View Logs", + "group": "Continue" + }, + { + "command": "continue.clearConsole", + "category": "Continue", + "title": "Clear Console", + "icon": "$(clear-all)", + "group": "Continue" + }, + { + "command": "continue.navigateTo", + "category": "Continue", + "title": "Navigate to a path", + "group": "Continue" + }, + { + "command": "continue.writeCommentsForCode", + "category": "Continue", + "title": "Write Comments for this Code", + "group": "Continue" + }, + { + "command": "continue.writeDocstringForCode", + "category": "Continue", + "title": "Write a Docstring for this Code", + "group": "Continue" + }, + { + "command": "continue.fixCode", + "category": "Continue", + "title": "Fix this Code", + "group": "Continue" + }, + { + "command": "continue.optimizeCode", + "category": "Continue", + "title": "Optimize this Code", + "group": "Continue" + }, + { + "command": "continue.fixGrammar", + "category": "Continue", + "title": "Fix Grammar / Spelling", + "group": "Continue" + }, + { + "command": "continue.codebaseForceReIndex", + "category": "Continue", + "title": "Codebase Force Re-Index", + "group": "Continue" + }, + { + "command": "continue.rebuildCodebaseIndex", + "category": "Continue", + "title": "Rebuild codebase index", + "group": "Continue" + }, + { + "command": "continue.docsIndex", + "category": "Continue", + "title": "Docs Index", + "group": "Continue" + }, + { + "command": "continue.docsReIndex", + "category": "Continue", + "title": "Docs Force Re-Index", + "group": "Continue" + }, + { + "command": "continue.focusContinueInput", + "category": "Continue", + "title": "Focus Continue Chat", + "group": "Continue" + }, + { + "command": "continue.enterEnterpriseLicenseKey", + "category": "Continue", + "title": "Enter Enterprise License Key", + "group": "Continue" + }, + { + "command": "continue.toggleNextEditEnabled", + "title": "Continue: Toggle Next Edit" + }, + { + "command": "continue.nextEditWindow.hideNextEditSuggestion", + "category": "Continue", + "title": "Hide Next Edit Suggestion" + }, + { + "command": "continue.nextEditWindow.acceptNextEditSuggestion", + "category": "Continue", + "title": "Accept Next Edit Suggestion" + }, + { + "command": "continue.forceNextEdit", + "category": "Continue", + "title": "Continue: Force Next Edit" + }, + { + "command": "continue.acceptJump", + "category": "Continue", + "title": "Continue: Accept Jump Suggestion" + }, + { + "command": "continue.rejectJump", + "category": "Continue", + "title": "Continue: Reject Jump Suggestion" + }, + { + "command": "continue.generateRule", + "category": "Continue", + "title": "Generate Rule", + "group": "Continue" + }, + { + "command": "continue.openInNewWindow", + "category": "Continue", + "title": "Open in new window", + "group": "Continue" + } + ], + "keybindings": [ + { + "command": "continue.focusContinueInput", + "mac": "cmd+l", + "key": "ctrl+l" + }, + { + "command": "continue.focusContinueInputWithoutClear", + "mac": "cmd+shift+l", + "key": "ctrl+shift+l" + }, + { + "command": "continue.acceptDiff", + "mac": "shift+cmd+enter", + "key": "shift+ctrl+enter", + "when": "continue.diffVisible" + }, + { + "command": "continue.rejectDiff", + "mac": "shift+cmd+backspace", + "key": "shift+ctrl+backspace", + "when": "continue.diffVisible" + }, + { + "command": "continue.rejectDiff", + "mac": "cmd+z", + "key": "ctrl+z", + "when": "continue.diffVisible" + }, + { + "command": "continue.quickEditHistoryUp", + "mac": "up", + "key": "up", + "when": "false && continue.quickEditHistoryFocused" + }, + { + "command": "continue.quickEditHistoryDown", + "mac": "down", + "key": "down", + "when": "false && continue.quickEditHistoryFocused" + }, + { + "command": "continue.acceptVerticalDiffBlock", + "mac": "alt+cmd+y", + "key": "alt+ctrl+y" + }, + { + "command": "continue.rejectVerticalDiffBlock", + "mac": "alt+cmd+n", + "key": "alt+ctrl+n" + }, + { + "command": "continue.focusEdit", + "title": "Edit code with natural language", + "mac": "cmd+i", + "key": "ctrl+i" + }, + { + "command": "continue.exitEditMode", + "mac": "escape", + "key": "escape", + "when": "continue.inEditMode && editorFocus" + }, + { + "command": "continue.debugTerminal", + "mac": "cmd+shift+r", + "key": "ctrl+shift+r" + }, + { + "command": "continue.openInNewWindow", + "mac": "cmd+k cmd+m", + "key": "ctrl+k ctrl+m", + "when": "!terminalFocus" + }, + { + "command": "continue.toggleTabAutocompleteEnabled", + "mac": "cmd+k cmd+a", + "key": "ctrl+k ctrl+a", + "when": "!terminalFocus" + }, + { + "command": "continue.forceAutocomplete", + "key": "ctrl+alt+space", + "mac": "cmd+alt+space", + "when": "editorTextFocus && !editorHasSelection && !editorReadOnly && !inSnippetMode" + }, + { + "command": "continue.applyCodeFromChat", + "mac": "alt+a", + "key": "alt+a" + }, + { + "command": "continue.toggleNextEditEnabled", + "key": "ctrl+k ctrl+n", + "mac": "cmd+k cmd+n", + "when": "editorTextFocus" + }, + { + "command": "continue.nextEditWindow.hideNextEditSuggestion", + "key": "escape", + "when": "editorTextFocus && nextEditWindowActive && !continue.jumpDecorationVisible" + }, + { + "command": "continue.nextEditWindow.acceptNextEditSuggestion", + "key": "tab", + "when": "editorTextFocus && nextEditWindowActive && !continue.jumpDecorationVisible" + }, + { + "command": "continue.acceptJump", + "key": "tab", + "when": "editorTextFocus && continue.jumpDecorationVisible" + }, + { + "command": "continue.rejectJump", + "key": "escape", + "when": "editorTextFocus && continue.jumpDecorationVisible" + } + ], + "submenus": [ + { + "id": "continue.continueSubMenu", + "label": "Continue" + } + ], + "menus": { + "commandPalette": [ + { + "command": "continue.focusContinueInput" + }, + { + "command": "continue.focusContinueInputWithoutClear" + }, + { + "command": "continue.debugTerminal" + }, + { + "command": "continue.newSession" + }, + { + "command": "continue.enterEnterpriseLicenseKey" + }, + { + "command": "continue.generateRule" + }, + { + "command": "continue.openInNewWindow" + } + ], + "editor/context": [ + { + "submenu": "continue.continueSubMenu", + "group": "0_acontinue" + } + ], + "editor/title/run": [ + { + "command": "continue.rejectDiff", + "group": "Continue", + "when": "continue.streamingDiff" + } + ], + "continue.continueSubMenu": [ + { + "command": "continue.focusContinueInputWithoutClear", + "group": "Continue" + }, + { + "command": "continue.focusEdit", + "group": "Continue", + "when": "!editorReadonly" + } + ], + "explorer/context": [ + { + "command": "continue.selectFilesAsContext", + "group": "1_debug@1" + } + ], + "view/title": [ + { + "command": "continue.newSession", + "group": "navigation@1", + "when": "view == continue.continueGUIView" + }, + { + "command": "continue.viewHistory", + "group": "navigation@2", + "when": "view == continue.continueGUIView" + }, + { + "command": "continue.openConfigPage", + "group": "navigation@4", + "when": "view == continue.continueGUIView" + }, + { + "command": "continue.clearConsole", + "group": "navigation@1", + "when": "view == continue.continueConsoleView" + } + ], + "editor/title": [ + { + "command": "continue.newSession", + "group": "navigation@1", + "when": "activeWebviewPanelId == continue.continueGUIView" + }, + { + "command": "continue.viewHistory", + "group": "navigation@2", + "when": "activeWebviewPanelId == continue.continueGUIView" + } + ], + "terminal/context": [ + { + "command": "continue.debugTerminal", + "group": "navigation@top" + } + ] + }, + "viewsContainers": { + "activitybar": [ + { + "id": "continue", + "title": "Continue", + "icon": "media/sidebar-icon.png" + } + ], + "panel": [ + { + "id": "continueConsole", + "title": "Continue Console", + "icon": "$(window)" + } + ] + }, + "views": { + "continue": [ + { + "type": "webview", + "id": "continue.continueGUIView", + "name": "Continue", + "icon": "media/sidebar-icon.png", + "visibility": "visible" + } + ], + "continueConsole": [ + { + "type": "webview", + "id": "continue.continueConsoleView", + "name": "Continue Console", + "icon": "$(window)", + "visibility": "visible", + "when": "config.continue.enableConsole" + } + ] + }, + "jsonValidation": [ + { + "fileMatch": "**/.continue*/config.json", + "url": "./config_schema.json" + }, + { + "fileMatch": ".continuerc.json", + "url": "./continue_rc_schema.json" + }, + { + "fileMatch": "**/config.yaml", + "url": "./config-yaml-schema.json" + } + ] + }, + "scripts": { + "esbuild-base": "node scripts/esbuild.js", + "vscode:prepublish": "npm run esbuild-base -- --minify", + "esbuild": "npm run esbuild-base -- --sourcemap", + "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch", + "esbuild-notify": "npm run esbuild-base -- --sourcemap --notify", + "esbuild:visualize": "esbuild-visualizer --metadata ./build/meta.json --filename ./build/stats.html --open", + "tsc": "tsc -p ./", + "tsc:check": "tsc -p ./ --noEmit", + "tsc-watch": "tsc -watch -p ./", + "rebuild": "electron-rebuild -v 19.1.8 node-pty", + "lint": "eslint src --ext ts", + "lint:fix": "eslint . --ext ts --fix", + "test": "vitest run", + "vitest": "vitest run", + "write-build-timestamp": "node scripts/write-build-timestamp.js", + "prepackage": "node scripts/prepackage.js", + "package": "node scripts/package.js", + "package-all": "node scripts/package-all.js", + "package:pre-release": "node scripts/package.js --pre-release", + "build:rust": "cargo-cp-artifact -ac sync sync.node -- cargo build --manifest-path ../../sync/Cargo.toml --message-format=json-render-diagnostics", + "build-debug:rust": "npm run build:rust --", + "build-release:rust": "npm run build:rust -- --release", + "e2e:compile": "tsc -p ./tsconfig.e2e.json", + "e2e:build": "npm --prefix ../../gui run build && npm run package", + "e2e:create-storage": "mkdir -p ./e2e/storage", + "e2e:get-chromedriver": "extest get-chromedriver --storage ./e2e/storage --code_version 1.95.0", + "e2e:get-vscode": "extest get-vscode --storage ./e2e/storage --code_version 1.95.0", + "e2e:sign-vscode": "codesign --entitlements entitlements.plist --deep --force -s - './e2e/storage/Visual Studio Code.app'", + "e2e:copy-vsix": "chmod +x ./e2e/get-latest-vsix.sh && bash ./e2e/get-latest-vsix.sh", + "e2e:install-vsix": "extest install-vsix -f ./e2e/vsix/continue.vsix --extensions_dir ./e2e/.test-extensions --storage ./e2e/storage", + "e2e:install-extensions": "extest install-from-marketplace ms-vscode-remote.remote-ssh --extensions_dir ./e2e/.test-extensions --storage ./e2e/storage && extest install-from-marketplace ms-vscode-remote.remote-containers --extensions_dir ./e2e/.test-extensions --storage ./e2e/storage && extest install-from-marketplace ms-vscode-remote.remote-wsl --extensions_dir ./e2e/.test-extensions --storage ./e2e/storage", + "e2e:test": "NODE_ENV=e2e extest run-tests ${TEST_FILE:-'./e2e/_output/tests/*.test.js'} --code_settings settings.json --extensions_dir ./e2e/.test-extensions --storage ./e2e/storage", + "e2e:clean": "rm -rf ./e2e/_output ./e2e/storage", + "e2e:all": "npm run e2e:build && npm run e2e:compile && npm run e2e:create-storage && npm run e2e:get-chromedriver && npm run e2e:get-vscode && npm run e2e:sign-vscode && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test && npm run e2e:clean", + "e2e:all-non-mac": "npm run e2e:build && npm run e2e:compile && npm run e2e:create-storage && npm run e2e:get-chromedriver && npm run e2e:get-vscode && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test && npm run e2e:clean", + "e2e:recompile-extension": "npm run package && npm run e2e:compile && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test && npm run e2e:clean", + "e2e:rebuild-gui": "rm -rf gui && cp -r ../../gui/dist gui && npm run package && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test && npm run e2e:clean", + "e2e:quick": "npm run e2e:compile && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test && npm run e2e:clean", + "e2e:ci:download": "npm run e2e:create-storage && npm run e2e:get-chromedriver && npm run e2e:get-vscode", + "e2e:ci:run": "npm run e2e:compile && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue npm run e2e:test", + "e2e:ci:run-yaml": "npm run e2e:compile && npm run e2e:copy-vsix && npm run e2e:install-vsix && npm run e2e:install-extensions && CONTINUE_GLOBAL_DIR=e2e/test-continue-yaml npm run e2e:test" + }, + "devDependencies": { + "@biomejs/biome": "1.6.4", + "@nestjs/common": "^11.0.16", + "@openapitools/openapi-generator-cli": "^2.23.1", + "@types/chai": "^5.0.1", + "@types/cors": "^2.8.17", + "@types/express": "^4.17.21", + "@types/follow-redirects": "^1.14.4", + "@types/mocha": "^10.0.10", + "@types/node": "16.x", + "@types/node-fetch": "^2.6.12", + "@types/react-dom": "^18.2.4", + "@types/request": "^2.48.8", + "@types/uuid": "^10.0.0", + "@types/vscode": "1.70", + "@types/ws": "^8.5.4", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@vscode/vsce": "^2.22.0", + "cargo-cp-artifact": "^0.1", + "chai": "^4.5.0", + "esbuild": "^0.17.19", + "esbuild-visualizer": "^0.6.0", + "eslint": "^8.28.0", + "json-schema-to-typescript": "^12.0.0", + "ovsx": "^0.8.3", + "rimraf": "^5.0.5", + "typescript": "^5.6.3", + "vite": "^4.5.14", + "vscode-extension-tester": "^8.14.1" + }, + "dependencies": { + "@continuedev/config-types": "file:../../packages/config-types", + "@continuedev/fetch": "file:../../packages/fetch", + "@electron/rebuild": "^3.7.2", + "@reduxjs/toolkit": "^1.9.3", + "@vscode/ripgrep": "^1.15.9", + "axios": "^1.13.1", + "core": "file:../../core", + "cors": "^2.8.5", + "dbinfoz": "^0.14.0", + "diff": "^7.0.0", + "downshift": "^7.6.0", + "express": "^4.18.2", + "fkill": "^8.1.0", + "follow-redirects": "^1.15.4", + "handlebars": "^4.7.8", + "highlight.js": "^11.7.0", + "highlightable": "^1.3.0-beta.0", + "http-proxy": "^1.18.1", + "http-proxy-agent": "^7.0.0", + "http-proxy-middleware": "^2.0.9", + "https-proxy-agent": "^7.0.2", + "ignore": "^5.3.0", + "jsdom": "^24.0.0", + "lru-cache": "^11.2.4", + "minisearch": "^7.0.0", + "mocha": "^11.7.5", + "monaco-editor": "^0.55.1", + "monaco-vscode-textmate-theme-converter": "^0.1.7", + "ncp": "^2.0.0", + "node-fetch": "^3.3.2", + "node-machine-id": "^1.1.12", + "posthog-node": "^3.6.3", + "react-markdown": "^8.0.7", + "react-redux": "^8.0.5", + "read-last-lines": "^1.8.0", + "request": "^2.88.2", + "socket.io-client": "^4.7.2", + "strip-ansi": "^7.1.0", + "svg-builder": "^2.0.0", + "systeminformation": "^5.30.0", + "tailwindcss": "^3.3.2", + "undici": "^6.21.3", + "uuid": "^9.0.1", + "uuidv4": "^6.2.13", + "vectordb": "0.4.20", + "vitest": "^3.1.4", + "vscode-languageclient": "^8.0.2", + "ws": "^8.19.0", + "yarn": "^1.22.21" + }, + "overrides": { + "vitest": { + "@types/node": "^16.18.119" + } + } +} diff --git a/extensions/continue/rules.md b/extensions/continue/rules.md new file mode 100644 index 000000000000..5a1108c0563d --- /dev/null +++ b/extensions/continue/rules.md @@ -0,0 +1,6 @@ +The `extensions/vscode` folder contains code for the "Continue" VS Code Extension. Continue is a coding extension which extends IDE functionality with AI. +Core IDE functionality, such as reading files, is implemented using the `VSCodeIDE` class. Code to enable editing/diff streaming into the editor, code suggestion autocompletion, and more can also be found in this directory. +Shared code that has abstract logic for the extension is in `core/`. Avoid importing code from `core/` directly where possible. Core is designed to be bundalable as a binary. Use `core.invoke` to send messages to the + +- see `core/protocol/core.ts` for a list of commands VS Code can post/request to Core +- see `core/portocol/ide.ts` for a list of commands/message types core can post/request to VS Code diff --git a/extensions/continue/settings.json b/extensions/continue/settings.json new file mode 100644 index 000000000000..aa3f1688764a --- /dev/null +++ b/extensions/continue/settings.json @@ -0,0 +1,8 @@ +{ + "typescript.updateImportsOnFileMove.enabled": "always", + "workbench.editor.enablePreview": true, + "git.autoRepositoryDetection": false, + "terminal.integrated.sendKeybindingsToShell": true, + "workbench.remoteIndicator.showExtensionRecommendations": false, + "extensions.ignoreRecommendations": true +} diff --git a/extensions/continue/tag-qry/tree-sitter-c-tags.scm b/extensions/continue/tag-qry/tree-sitter-c-tags.scm new file mode 100644 index 000000000000..1035aa2247be --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-c-tags.scm @@ -0,0 +1,9 @@ +(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class + +(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class + +(function_declarator declarator: (identifier) @name.definition.function) @definition.function + +(type_definition declarator: (type_identifier) @name.definition.type) @definition.type + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type diff --git a/extensions/continue/tag-qry/tree-sitter-c_sharp-tags.scm b/extensions/continue/tag-qry/tree-sitter-c_sharp-tags.scm new file mode 100644 index 000000000000..58e9199a46d0 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-c_sharp-tags.scm @@ -0,0 +1,46 @@ +(class_declaration + name: (identifier) @name.definition.class + ) @definition.class + +(class_declaration + bases: (base_list (_) @name.reference.class) + ) @reference.class + +(interface_declaration + name: (identifier) @name.definition.interface + ) @definition.interface + +(interface_declaration + bases: (base_list (_) @name.reference.interface) + ) @reference.interface + +(method_declaration + name: (identifier) @name.definition.method + ) @definition.method + +(object_creation_expression + type: (identifier) @name.reference.class + ) @reference.class + +(type_parameter_constraints_clause + target: (identifier) @name.reference.class + ) @reference.class + +(type_constraint + type: (identifier) @name.reference.class + ) @reference.class + +(variable_declaration + type: (identifier) @name.reference.class + ) @reference.class + +(invocation_expression + function: + (member_access_expression + name: (identifier) @name.reference.send + ) +) @reference.send + +(namespace_declaration + name: (identifier) @name.definition.module +) @definition.module diff --git a/extensions/continue/tag-qry/tree-sitter-cpp-tags.scm b/extensions/continue/tag-qry/tree-sitter-cpp-tags.scm new file mode 100644 index 000000000000..7a7ad0b99d47 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-cpp-tags.scm @@ -0,0 +1,15 @@ +(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class + +(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class + +(function_declarator declarator: (identifier) @name.definition.function) @definition.function + +(function_declarator declarator: (field_identifier) @name.definition.function) @definition.function + +(function_declarator declarator: (qualified_identifier scope: (namespace_identifier) @scope name: (identifier) @name.definition.method)) @definition.method + +(type_definition declarator: (type_identifier) @name.definition.type) @definition.type + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type + +(class_specifier name: (type_identifier) @name.definition.class) @definition.class diff --git a/extensions/continue/tag-qry/tree-sitter-elisp-tags.scm b/extensions/continue/tag-qry/tree-sitter-elisp-tags.scm new file mode 100644 index 000000000000..743c8d8a84ca --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-elisp-tags.scm @@ -0,0 +1,8 @@ +;; defun/defsubst +(function_definition name: (symbol) @name.definition.function) @definition.function + +;; Treat macros as function definitions for the sake of TAGS. +(macro_definition name: (symbol) @name.definition.function) @definition.function + +;; Match function calls +(list (symbol) @name.reference.function) @reference.function diff --git a/extensions/continue/tag-qry/tree-sitter-elixir-tags.scm b/extensions/continue/tag-qry/tree-sitter-elixir-tags.scm new file mode 100644 index 000000000000..9eb39d95d85b --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-elixir-tags.scm @@ -0,0 +1,54 @@ +; Definitions + +; * modules and protocols +(call + target: (identifier) @ignore + (arguments (alias) @name.definition.module) + (#match? @ignore "^(defmodule|defprotocol)$")) @definition.module + +; * functions/macros +(call + target: (identifier) @ignore + (arguments + [ + ; zero-arity functions with no parentheses + (identifier) @name.definition.function + ; regular function clause + (call target: (identifier) @name.definition.function) + ; function clause with a guard clause + (binary_operator + left: (call target: (identifier) @name.definition.function) + operator: "when") + ]) + (#match? @ignore "^(def|defp|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp)$")) @definition.function + +; References + +; ignore calls to kernel/special-forms keywords +(call + target: (identifier) @ignore + (#match? @ignore "^(def|defp|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp|defmodule|defprotocol|defimpl|defstruct|defexception|defoverridable|alias|case|cond|else|for|if|import|quote|raise|receive|require|reraise|super|throw|try|unless|unquote|unquote_splicing|use|with)$")) + +; ignore module attributes +(unary_operator + operator: "@" + operand: (call + target: (identifier) @ignore)) + +; * function call +(call + target: [ + ; local + (identifier) @name.reference.call + ; remote + (dot + right: (identifier) @name.reference.call) + ]) @reference.call + +; * pipe into function call +(binary_operator + operator: "|>" + right: (identifier) @name.reference.call) @reference.call + +; * modules +(alias) @name.reference.module @reference.module diff --git a/extensions/continue/tag-qry/tree-sitter-elm-tags.scm b/extensions/continue/tag-qry/tree-sitter-elm-tags.scm new file mode 100644 index 000000000000..ad15d5e6780e --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-elm-tags.scm @@ -0,0 +1,19 @@ +(value_declaration (function_declaration_left (lower_case_identifier) @name.definition.function)) @definition.function + +(function_call_expr (value_expr (value_qid) @name.reference.function)) @reference.function +(exposed_value (lower_case_identifier) @name.reference.function)) @reference.function +(type_annotation ((lower_case_identifier) @name.reference.function) (colon)) @reference.function + +(type_declaration ((upper_case_identifier) @name.definition.type) ) @definition.type + +(type_ref (upper_case_qid (upper_case_identifier) @name.reference.type)) @reference.type +(exposed_type (upper_case_identifier) @name.reference.type)) @reference.type + +(type_declaration (union_variant (upper_case_identifier) @name.definition.union)) @definition.union + +(value_expr (upper_case_qid (upper_case_identifier) @name.reference.union)) @reference.union + + +(module_declaration + (upper_case_qid (upper_case_identifier)) @name.definition.module +) @definition.module diff --git a/extensions/continue/tag-qry/tree-sitter-go-tags.scm b/extensions/continue/tag-qry/tree-sitter-go-tags.scm new file mode 100644 index 000000000000..a32d03aa7007 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-go-tags.scm @@ -0,0 +1,30 @@ +( + (comment)* @doc + . + (function_declaration + name: (identifier) @name.definition.function) @definition.function + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.function) +) + +( + (comment)* @doc + . + (method_declaration + name: (field_identifier) @name.definition.method) @definition.method + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.method) +) + +(call_expression + function: [ + (identifier) @name.reference.call + (parenthesized_expression (identifier) @name.reference.call) + (selector_expression field: (field_identifier) @name.reference.call) + (parenthesized_expression (selector_expression field: (field_identifier) @name.reference.call)) + ]) @reference.call + +(type_spec + name: (type_identifier) @name.definition.type) @definition.type + +(type_identifier) @name.reference.type @reference.type diff --git a/extensions/continue/tag-qry/tree-sitter-java-tags.scm b/extensions/continue/tag-qry/tree-sitter-java-tags.scm new file mode 100644 index 000000000000..3b7290d461c1 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-java-tags.scm @@ -0,0 +1,20 @@ +(class_declaration + name: (identifier) @name.definition.class) @definition.class + +(method_declaration + name: (identifier) @name.definition.method) @definition.method + +(method_invocation + name: (identifier) @name.reference.call + arguments: (argument_list) @reference.call) + +(interface_declaration + name: (identifier) @name.definition.interface) @definition.interface + +(type_list + (type_identifier) @name.reference.implementation) @reference.implementation + +(object_creation_expression + type: (type_identifier) @name.reference.class) @reference.class + +(superclass (type_identifier) @name.reference.class) @reference.class diff --git a/extensions/continue/tag-qry/tree-sitter-javascript-tags.scm b/extensions/continue/tag-qry/tree-sitter-javascript-tags.scm new file mode 100644 index 000000000000..3bc55c5c58cd --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-javascript-tags.scm @@ -0,0 +1,88 @@ +( + (comment)* @doc + . + (method_definition + name: (property_identifier) @name.definition.method) @definition.method + (#not-eq? @name.definition.method "constructor") + (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$") + (#select-adjacent! @doc @definition.method) +) + +( + (comment)* @doc + . + [ + (class + name: (_) @name.definition.class) + (class_declaration + name: (_) @name.definition.class) + ] @definition.class + (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$") + (#select-adjacent! @doc @definition.class) +) + +( + (comment)* @doc + . + [ + (function + name: (identifier) @name.definition.function) + (function_declaration + name: (identifier) @name.definition.function) + (generator_function + name: (identifier) @name.definition.function) + (generator_function_declaration + name: (identifier) @name.definition.function) + ] @definition.function + (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$") + (#select-adjacent! @doc @definition.function) +) + +( + (comment)* @doc + . + (lexical_declaration + (variable_declarator + name: (identifier) @name.definition.function + value: [(arrow_function) (function)]) @definition.function) + (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$") + (#select-adjacent! @doc @definition.function) +) + +( + (comment)* @doc + . + (variable_declaration + (variable_declarator + name: (identifier) @name.definition.function + value: [(arrow_function) (function)]) @definition.function) + (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$") + (#select-adjacent! @doc @definition.function) +) + +(assignment_expression + left: [ + (identifier) @name.definition.function + (member_expression + property: (property_identifier) @name.definition.function) + ] + right: [(arrow_function) (function)] +) @definition.function + +(pair + key: (property_identifier) @name.definition.function + value: [(arrow_function) (function)]) @definition.function + +( + (call_expression + function: (identifier) @name.reference.call) @reference.call + (#not-match? @name.reference.call "^(require)$") +) + +(call_expression + function: (member_expression + property: (property_identifier) @name.reference.call) + arguments: (_) @reference.call) + +(new_expression + constructor: (_) @name.reference.class) @reference.class diff --git a/extensions/continue/tag-qry/tree-sitter-ocaml-tags.scm b/extensions/continue/tag-qry/tree-sitter-ocaml-tags.scm new file mode 100644 index 000000000000..1799f8acf2d2 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-ocaml-tags.scm @@ -0,0 +1,116 @@ +; Modules +;-------- + +( + (comment)? @doc . + (module_definition (module_binding (module_name) @name.definition.module) @definition.module) + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +(module_path (module_name) @name.reference.module) @reference.module + +; Modules types +;-------------- + +( + (comment)? @doc . + (module_type_definition (module_type_name) @name.definition.interface) @definition.interface + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +(module_type_path (module_type_name) @name.reference.implementation) @reference.implementation + +; Functions +;---------- + +( + (comment)? @doc . + (value_definition + [ + (let_binding + pattern: (value_name) @name.definition.function + (parameter)) + (let_binding + pattern: (value_name) @name.definition.function + body: [(fun_expression) (function_expression)]) + ] @definition.function + ) + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +( + (comment)? @doc . + (external (value_name) @name.definition.function) @definition.function + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +(application_expression + function: (value_path (value_name) @name.reference.call)) @reference.call + +(infix_expression + left: (value_path (value_name) @name.reference.call) + (infix_operator) @reference.call + (#eq? @reference.call "@@")) + +(infix_expression + (infix_operator) @reference.call + right: (value_path (value_name) @name.reference.call) + (#eq? @reference.call "|>")) + +; Operator +;--------- + +( + (comment)? @doc . + (value_definition + (let_binding + pattern: (parenthesized_operator [ + (prefix_operator) + (infix_operator) + (hash_operator) + (indexing_operator) + (let_operator) + (and_operator) + (match_operator) + ] @name.definition.function)) @definition.function) + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +[ + (prefix_operator) + (sign_operator) + (infix_operator) + (hash_operator) + (indexing_operator) + (let_operator) + (and_operator) + (match_operator) +] @name.reference.call @reference.call + +; Classes +;-------- + +( + (comment)? @doc . + [ + (class_definition (class_binding (class_name) @name.definition.class) @definition.class) + (class_type_definition (class_type_binding (class_type_name) @name.definition.class) @definition.class) + ] + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +[ + (class_path (class_name) @name.reference.class) + (class_type_path (class_type_name) @name.reference.class) +] @reference.class + +; Methods +;-------- + +( + (comment)? @doc . + (method_definition (method_name) @name.definition.method) @definition.method + (#strip! @doc "^\\(\\*\\*?\\s*|\\s\\*\\)$") +) + +(method_invocation (method_name) @name.reference.call) @reference.call diff --git a/extensions/continue/tag-qry/tree-sitter-php-tags.scm b/extensions/continue/tag-qry/tree-sitter-php-tags.scm new file mode 100644 index 000000000000..61c86fcbe5c3 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-php-tags.scm @@ -0,0 +1,26 @@ +(class_declaration + name: (name) @name.definition.class) @definition.class + +(function_definition + name: (name) @name.definition.function) @definition.function + +(method_declaration + name: (name) @name.definition.function) @definition.function + +(object_creation_expression + [ + (qualified_name (name) @name.reference.class) + (variable_name (name) @name.reference.class) + ]) @reference.class + +(function_call_expression + function: [ + (qualified_name (name) @name.reference.call) + (variable_name (name)) @name.reference.call + ]) @reference.call + +(scoped_call_expression + name: (name) @name.reference.call) @reference.call + +(member_call_expression + name: (name) @name.reference.call) @reference.call diff --git a/extensions/continue/tag-qry/tree-sitter-python-tags.scm b/extensions/continue/tag-qry/tree-sitter-python-tags.scm new file mode 100644 index 000000000000..3be5bed9fefc --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-python-tags.scm @@ -0,0 +1,12 @@ +(class_definition + name: (identifier) @name.definition.class) @definition.class + +(function_definition + name: (identifier) @name.definition.function) @definition.function + +(call + function: [ + (identifier) @name.reference.call + (attribute + attribute: (identifier) @name.reference.call) + ]) @reference.call diff --git a/extensions/continue/tag-qry/tree-sitter-ql-tags.scm b/extensions/continue/tag-qry/tree-sitter-ql-tags.scm new file mode 100644 index 000000000000..3164aa25a485 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-ql-tags.scm @@ -0,0 +1,26 @@ +(classlessPredicate + name: (predicateName) @name.definition.function) @definition.function + +(memberPredicate + name: (predicateName) @name.definition.method) @definition.method + +(aritylessPredicateExpr + name: (literalId) @name.reference.call) @reference.call + +(module + name: (moduleName) @name.definition.module) @definition.module + +(dataclass + name: (className) @name.definition.class) @definition.class + +(datatype + name: (className) @name.definition.class) @definition.class + +(datatypeBranch + name: (className) @name.definition.class) @definition.class + +(qualifiedRhs + name: (predicateName) @name.reference.call) @reference.call + +(typeExpr + name: (className) @name.reference.type) @reference.type diff --git a/extensions/continue/tag-qry/tree-sitter-ruby-tags.scm b/extensions/continue/tag-qry/tree-sitter-ruby-tags.scm new file mode 100644 index 000000000000..79e71d2d646e --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-ruby-tags.scm @@ -0,0 +1,64 @@ +; Method definitions + +( + (comment)* @doc + . + [ + (method + name: (_) @name.definition.method) @definition.method + (singleton_method + name: (_) @name.definition.method) @definition.method + ] + (#strip! @doc "^#\\s*") + (#select-adjacent! @doc @definition.method) +) + +(alias + name: (_) @name.definition.method) @definition.method + +(setter + (identifier) @ignore) + +; Class definitions + +( + (comment)* @doc + . + [ + (class + name: [ + (constant) @name.definition.class + (scope_resolution + name: (_) @name.definition.class) + ]) @definition.class + (singleton_class + value: [ + (constant) @name.definition.class + (scope_resolution + name: (_) @name.definition.class) + ]) @definition.class + ] + (#strip! @doc "^#\\s*") + (#select-adjacent! @doc @definition.class) +) + +; Module definitions + +( + (module + name: [ + (constant) @name.definition.module + (scope_resolution + name: (_) @name.definition.module) + ]) @definition.module +) + +; Calls + +(call method: (identifier) @name.reference.call) @reference.call + +( + [(identifier) (constant)] @name.reference.call @reference.call + (#is-not? local) + (#not-match? @name.reference.call "^(lambda|load|require|require_relative|__FILE__|__LINE__)$") +) diff --git a/extensions/continue/tag-qry/tree-sitter-rust-tags.scm b/extensions/continue/tag-qry/tree-sitter-rust-tags.scm new file mode 100644 index 000000000000..dadfa7acb6f0 --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-rust-tags.scm @@ -0,0 +1,60 @@ +; ADT definitions + +(struct_item + name: (type_identifier) @name.definition.class) @definition.class + +(enum_item + name: (type_identifier) @name.definition.class) @definition.class + +(union_item + name: (type_identifier) @name.definition.class) @definition.class + +; type aliases + +(type_item + name: (type_identifier) @name.definition.class) @definition.class + +; method definitions + +(declaration_list + (function_item + name: (identifier) @name.definition.method)) @definition.method + +; function definitions + +(function_item + name: (identifier) @name.definition.function) @definition.function + +; trait definitions +(trait_item + name: (type_identifier) @name.definition.interface) @definition.interface + +; module definitions +(mod_item + name: (identifier) @name.definition.module) @definition.module + +; macro definitions + +(macro_definition + name: (identifier) @name.definition.macro) @definition.macro + +; references + +(call_expression + function: (identifier) @name.reference.call) @reference.call + +(call_expression + function: (field_expression + field: (field_identifier) @name.reference.call)) @reference.call + +(macro_invocation + macro: (identifier) @name.reference.call) @reference.call + +; implementations + +(impl_item + trait: (type_identifier) @name.reference.implementation) @reference.implementation + +(impl_item + type: (type_identifier) @name.reference.implementation + !trait) @reference.implementation diff --git a/extensions/continue/tag-qry/tree-sitter-typescript-tags.scm b/extensions/continue/tag-qry/tree-sitter-typescript-tags.scm new file mode 100644 index 000000000000..b1ab874dd28e --- /dev/null +++ b/extensions/continue/tag-qry/tree-sitter-typescript-tags.scm @@ -0,0 +1,23 @@ +(function_signature + name: (identifier) @name.definition.function) @definition.function + +(method_signature + name: (property_identifier) @name.definition.method) @definition.method + +(abstract_method_signature + name: (property_identifier) @name.definition.method) @definition.method + +(abstract_class_declaration + name: (type_identifier) @name.definition.class) @definition.class + +(module + name: (identifier) @name.definition.module) @definition.module + +(interface_declaration + name: (type_identifier) @name.definition.interface) @definition.interface + +(type_annotation + (type_identifier) @name.reference.type) @reference.type + +(new_expression + constructor: (identifier) @name.reference.class) @reference.class diff --git a/extensions/continue/textmate-syntaxes/ASPVBnet.plist b/extensions/continue/textmate-syntaxes/ASPVBnet.plist new file mode 100644 index 000000000000..4616ec627b1e --- /dev/null +++ b/extensions/continue/textmate-syntaxes/ASPVBnet.plist @@ -0,0 +1,372 @@ + + + + + comment + Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com + fileTypes + + vb + + keyEquivalent + ^~A + name + ASP vb.NET + patterns + + + match + \n + name + meta.ending-space + + + include + #round-brackets + + + begin + ^(?=\t) + end + (?=[^\t]) + name + meta.leading-space + patterns + + + captures + + 1 + + name + meta.odd-tab.tabs + + 2 + + name + meta.even-tab.tabs + + + match + (\t)(\t)? + + + + + begin + ^(?= ) + end + (?=[^ ]) + name + meta.leading-space + patterns + + + captures + + 1 + + name + meta.odd-tab.spaces + + 2 + + name + meta.even-tab.spaces + + + match + ( )( )? + + + + + captures + + 1 + + name + storage.type.function.asp + + 2 + + name + entity.name.function.asp + + 3 + + name + punctuation.definition.parameters.asp + + 4 + + name + variable.parameter.function.asp + + 5 + + name + punctuation.definition.parameters.asp + + + match + ^\s*((?i:function|sub))\s*([a-zA-Z_]\w*)\s*(\()([^)]*)(\)).*\n? + name + meta.function.asp + + + begin + (^[ \t]+)?(?=') + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.asp + + + end + (?!\G) + patterns + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.comment.asp + + + end + \n + name + comment.line.apostrophe.asp + + + + + match + (?i:\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\b) + name + keyword.control.asp + + + match + (?i:\b(Mod|And|Not|Or|Xor|as)\b) + name + keyword.operator.asp + + + captures + + 1 + + name + storage.type.asp + + 2 + + name + variable.other.bfeac.asp + + 3 + + name + meta.separator.comma.asp + + + match + (?i:(dim)\s*(?:(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)\s*(,?))) + name + variable.other.dim.asp + + + match + (?i:\s*\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End sub|End Function|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\b\s*) + name + storage.type.asp + + + match + (?i:\b(Private|Public|Default)\b) + name + storage.modifier.asp + + + match + (?i:\s*\b(Empty|False|Nothing|Null|True)\b) + name + constant.language.asp + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.asp + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.asp + + + name + string.quoted.double.asp + patterns + + + match + "" + name + constant.character.escape.apostrophe.asp + + + + + captures + + 1 + + name + punctuation.definition.variable.asp + + + match + (\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b\s* + name + variable.other.asp + + + match + (?i:\b(Application|ObjectContext|Request|Response|Server|Session)\b) + name + support.class.asp + + + match + (?i:\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\b) + name + support.class.collection.asp + + + match + (?i:\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\b) + name + support.constant.asp + + + match + (?i:\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\b) + name + support.function.asp + + + match + (?i:\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\b) + name + support.function.event.asp + + + match + (?i:(?<=as )(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)) + name + support.type.vb.asp + + + match + (?i:\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\b) + name + support.function.vb.asp + + + match + -?\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b + name + constant.numeric.asp + + + match + (?i:\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\b) + name + support.type.vb.asp + + + captures + + 1 + + name + entity.name.function.asp + + + match + (?i:(\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\b)(?=\(\)?)) + name + support.function.asp + + + match + (?i:((?<=(\+|=|-|\&|\\|/|<|>|\(|,))\s*\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\b(?!(\(|\.))|\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\b(?=\s*(\+|=|-|\&|\\|/|<|>|\(|\))))) + name + variable.other.asp + + + match + !|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^=|\b(in|instanceof|new|delete|typeof|void)\b + name + keyword.operator.js + + + repository + + round-brackets + + begin + \( + beginCaptures + + 0 + + name + punctuation.section.round-brackets.begin.asp + + + end + \) + endCaptures + + 0 + + name + punctuation.section.round-brackets.end.asp + + + name + meta.round-brackets + patterns + + + include + $self + + + + + scopeName + source.asp.vb.net + uuid + 7F9C9343-D48E-4E7D-BFE8-F680714DCD3E + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/Batch File.tmLanguage b/extensions/continue/textmate-syntaxes/Batch File.tmLanguage new file mode 100644 index 000000000000..499096364044 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/Batch File.tmLanguage @@ -0,0 +1,169 @@ + + + + + uuid + E07EC438-7B75-4437-8AA1-DA94C1E6EACC + patterns + + + name + keyword.command.dosbatch + match + \b(?i)(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\b + + + name + keyword.control.statement.dosbatch + match + \b(?i)(?:goto|call|exit)\b + + + name + keyword.control.conditional.if.dosbatch + match + \b(?i)if\s+((not)\s+)(exist|defined|errorlevel|cmdextversion)\b + + + name + keyword.control.conditional.dosbatch + match + \b(?i)(?:if|else)\b + + + name + keyword.control.repeat.dosbatch + match + \b(?i)for\b + + + name + keyword.operator.dosbatch + match + \b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\b + + + name + comment.line.rem.dosbatch + match + \b(?i)rem(?:$|\s.*$) + + + name + comment.line.colons.dosbatch + match + \s*:\s*:.*$ + + + captures + + 1 + + name + variable.parameter.function.begin.shell + + + name + variable.parameter.function.dosbatch + match + (?i)(%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?\d + + + captures + + 1 + + name + variable.parameter.loop.begin.shell + + + name + variable.parameter.loop.dosbatch + match + (?i)(%%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?[a-z] + + + captures + + 1 + + name + variable.other.parsetime.begin.shell + + 2 + + name + variable.other.parsetime.end.shell + + + name + variable.other.parsetime.dosbatch + match + (%)[^%]+(%) + + + captures + + 1 + + name + variable.other.delayed.begin.shell + + 2 + + name + variable.other.delayed.end.shell + + + name + variable.other.delayed.dosbatch + match + (!)[^!]+(!) + + + begin + " + endCaptures + + 0 + + name + punctuation.definition.string.end.shell + + + beginCaptures + + 0 + + name + punctuation.definition.string.begin.shell + + + name + string.quoted.double.dosbatch + end + "|$ + + + name + keyword.operator.pipe.dosbatch + match + [|] + + + name + keyword.operator.redirect.shell + match + &>|\d*>&\d*|\d*(>>|>|<)|\d*<&|\d*<> + + + name + Batch File + scopeName + source.dosbatch + fileTypes + + bat + + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/Clojure.tmLanguage b/extensions/continue/textmate-syntaxes/Clojure.tmLanguage new file mode 100644 index 000000000000..bf864640fd16 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/Clojure.tmLanguage @@ -0,0 +1,440 @@ + + + + + fileTypes + + clj + cljs + clojure + + foldingStartMarker + \(\s*$ + foldingStopMarker + ^\s*\) + keyEquivalent + ^~C + name + Clojure + patterns + + + include + #comment + + + include + #shebang-comment + + + include + #qouted-sexp + + + include + #sexp + + + include + #keyfn + + + include + #string + + + include + #vector + + + include + #set + + + include + #map + + + include + #regexp + + + include + #var + + + include + #constants + + + include + #symbol + + + include + #whitespace + + + repository + + comment + + captures + + 1 + + name + punctuation.definition.comment.clojure + + + match + (;).*$\n? + name + comment.line.semicolon.clojure + + constants + + patterns + + + match + (nil)(?=(\s|\)|\]|\})) + name + constant.language.nil.clojure + + + match + (true|false) + name + constant.language.boolean.clojure + + + match + (\d+/\d+) + name + constant.numeric.ratio.clojure + + + match + (\d+r\d+) + name + constant.numeric.arbitrary-radix.clojure + + + match + (0x\d+) + name + constant.numeric.hexidecimal.clojure + + + match + (0\d+) + name + constant.numeric.octal.clojure + + + match + (\d+) + name + constant.numeric.decimal.clojure + + + match + (?<=(\s|\(|\[|\{)):[a-zA-Z0-9\#\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\})) + name + constant.keyword.clojure + + + + keyfn + + patterns + + + match + (?<=(\s|\(|\[|\{))(if(-[-a-z\?]*)?|when(-[-a-z]*)?|for(-[-a-z]*)?|cond|do|let(-[-a-z\?]*)?|binding|loop|recur|fn|throw[a-z\-]*|try|catch|finally|([a-z]*case))(?=(\s|\)|\]|\})) + name + storage.control.clojure + + + match + (?<=(\s|\(|\[|\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[a-z\-]*))(?=(\s|\)|\]|\})) + name + keyword.control.clojure + + + + map + + begin + (\{) + end + (\}) + name + meta.map.clojure + patterns + + + include + $self + + + + qouted-sexp + + begin + (['``]\() + beginCaptures + + 1 + + name + punctuation.section.expression.begin.clojure + + + end + (\))(\n)? + endCaptures + + 1 + + name + punctuation.section.expression.end.clojure + + 2 + + name + meta.after-expression.clojure + + + name + meta.qouted-expression.clojure + patterns + + + include + $self + + + + regexp + + begin + #\" + end + \" + name + string.regexp.clojure + patterns + + + include + #regexp_escaped_char + + + + regexp_escaped_char + + match + \\(\") + name + string.regexp.clojure + + set + + begin + (\#\{) + end + (\}) + name + meta.set.clojure + patterns + + + include + $self + + + + sexp + + begin + (\() + beginCaptures + + 1 + + name + punctuation.section.expression.begin.clojure + + + end + (\))(\n)? + endCaptures + + 1 + + name + punctuation.section.expression.end.clojure + + 2 + + name + meta.after-expression.clojure + + + name + meta.expression.clojure + patterns + + + begin + (?<=\()(ns|def|def-|defn|defn-|defvar|defvar-|defmacro|defmacro-|deftest)\s+(.+?)(?=\s) + beginCaptures + + 1 + + name + keyword.control.clojure + + 2 + + name + entity.global.clojure + + + end + (?=\)) + name + meta.definition.global.clojure + patterns + + + include + $self + + + + + include + $self + + + + shebang-comment + + captures + + 1 + + name + punctuation.definition.comment.shebang.clojure + + + match + ^(\#!).*$\n? + name + comment.line.semicolon.clojure + + string + + begin + (") + beginCaptures + + 1 + + name + punctuation.definition.string.begin.clojure + + + end + (") + endCaptures + + 1 + + name + punctuation.definition.string.end.clojure + + + name + string.quoted.double.clojure + patterns + + + match + \\. + name + constant.character.escape.clojure + + + + symbol + + patterns + + + match + (\w[\w\d]+) + name + meta.symbol.clojure + + + + var + + match + (?<=(\s|\(|\[|\{)\#)'[a-zA-Z0-9\.\-\_\:\+\=\>\<\/\!\?\*]+(?=(\s|\)|\]|\})) + name + meta.var.clojure + + vector + + begin + (\[) + end + (\]) + name + meta.vector.clojure + patterns + + + include + $self + + + + whitespace + + match + \s+$ + name + invalid.trailing-whitespace + + + scopeName + source.clojure + smartTypingPairs + + + " + " + + + ( + ) + + + { + } + + + [ + ] + + + uuid + 6A87759F-F746-4E84-B788-965B46363202 + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/Dockerfile.tmLanguage b/extensions/continue/textmate-syntaxes/Dockerfile.tmLanguage new file mode 100644 index 000000000000..ea224eb838d8 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/Dockerfile.tmLanguage @@ -0,0 +1,143 @@ + + + + + fileTypes + + Dockerfile + + name + Dockerfile + patterns + + + captures + + 1 + + name + keyword.control.dockerfile + + 2 + + name + keyword.other.special-method.dockerfile + + + match + ^\s*(?:(ONBUILD)\s+)?(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|VOLUME|USER|WORKDIR|COPY|LABEL|STOPSIGNAL|ARG)\s + + + captures + + 1 + + name + keyword.operator.dockerfile + + 2 + + name + keyword.other.special-method.dockerfile + + + match + ^\s*(?:(ONBUILD)\s+)?(CMD|ENTRYPOINT)\s + + + begin + " + beginCaptures + + 1 + + name + punctuation.definition.string.begin.dockerfile + + + end + " + endCaptures + + 1 + + name + punctuation.definition.string.end.dockerfile + + + name + string.quoted.double.dockerfile + patterns + + + match + \\. + name + constant.character.escaped.dockerfile + + + + + begin + ' + beginCaptures + + 1 + + name + punctuation.definition.string.begin.dockerfile + + + end + ' + endCaptures + + 1 + + name + punctuation.definition.string.end.dockerfile + + + name + string.quoted.single.dockerfile + patterns + + + match + \\. + name + constant.character.escaped.dockerfile + + + + + captures + + 1 + + name + punctuation.whitespace.comment.leading.dockerfile + + 2 + + name + comment.line.number-sign.dockerfile + + 3 + + name + punctuation.definition.comment.dockerfile + + + comment + comment.line + match + ^(\s*)((#).*$\n?) + + + scopeName + source.dockerfile + uuid + a39d8795-59d2-49af-aa00-fe74ee29576e + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/Groovy.tmLanguage b/extensions/continue/textmate-syntaxes/Groovy.tmLanguage new file mode 100644 index 000000000000..e8973140a57f --- /dev/null +++ b/extensions/continue/textmate-syntaxes/Groovy.tmLanguage @@ -0,0 +1,2145 @@ + + + + + fileTypes + + groovy + gvy + + foldingStartMarker + (\{\s*$|^\s*// \{\{\{) + foldingStopMarker + ^\s*(\}|// \}\}\}$) + keyEquivalent + ^~G + name + Groovy + patterns + + + captures + + 1 + + name + punctuation.definition.comment.groovy + + + match + ^(#!).+$\n + name + comment.line.hashbang.groovy + + + captures + + 1 + + name + keyword.other.package.groovy + + 2 + + name + storage.modifier.package.groovy + + 3 + + name + punctuation.terminator.groovy + + + match + ^\s*(package)\b(?:\s*([^ ;$]+)\s*(;)?)? + name + meta.package.groovy + + + begin + (import static)\b\s* + beginCaptures + + 1 + + name + keyword.other.import.static.groovy + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + storage.modifier.import.groovy + + 3 + + name + punctuation.terminator.groovy + + + contentName + storage.modifier.import.groovy + end + \s*(?:$|(?=%>)(;)) + endCaptures + + 1 + + name + punctuation.terminator.groovy + + + name + meta.import.groovy + patterns + + + match + \. + name + punctuation.separator.groovy + + + match + \s + name + invalid.illegal.character_not_allowed_here.groovy + + + + + begin + (import)\b\s* + beginCaptures + + 1 + + name + keyword.other.import.groovy + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + storage.modifier.import.groovy + + 3 + + name + punctuation.terminator.groovy + + + contentName + storage.modifier.import.groovy + end + \s*(?:$|(?=%>)|(;)) + endCaptures + + 1 + + name + punctuation.terminator.groovy + + + name + meta.import.groovy + patterns + + + match + \. + name + punctuation.separator.groovy + + + match + \s + name + invalid.illegal.character_not_allowed_here.groovy + + + + + captures + + 1 + + name + keyword.other.import.groovy + + 2 + + name + keyword.other.import.static.groovy + + 3 + + name + storage.modifier.import.groovy + + 4 + + name + punctuation.terminator.groovy + + + match + ^\s*(import)(?:\s+(static)\s+)\b(?:\s*([^ ;$]+)\s*(;)?)? + name + meta.import.groovy + + + include + #groovy + + + repository + + annotations + + patterns + + + begin + (?<!\.)(@[^ (]+)(\() + beginCaptures + + 1 + + name + storage.type.annotation.groovy + + 2 + + name + punctuation.definition.annotation-arguments.begin.groovy + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.annotation-arguments.end.groovy + + + name + meta.declaration.annotation.groovy + patterns + + + captures + + 1 + + name + constant.other.key.groovy + + 2 + + name + keyword.operator.assignment.groovy + + + match + (\w*)\s*(=) + + + include + #values + + + match + , + name + punctuation.definition.seperator.groovy + + + + + match + (?<!\.)@\S+ + name + storage.type.annotation.groovy + + + + anonymous-classes-and-new + + begin + \bnew\b + beginCaptures + + 0 + + name + keyword.control.new.groovy + + + end + (?<=\)|\])(?!\s*{)|(?<=})|(?=[;])|$ + patterns + + + begin + (\w+)\s*(?=\[) + beginCaptures + + 1 + + name + storage.type.groovy + + + end + }|(?=\s*(?:,|;|\)))|$ + patterns + + + begin + \[ + end + \] + patterns + + + include + #groovy + + + + + begin + { + end + (?=}) + patterns + + + include + #groovy + + + + + + + begin + (?=\w.*\(?) + end + (?<=\))|$ + patterns + + + include + #object-types + + + begin + \( + beginCaptures + + 1 + + name + storage.type.groovy + + + end + \) + patterns + + + include + #groovy + + + + + + + begin + { + end + } + name + meta.inner-class.groovy + patterns + + + include + #class-body + + + + + + braces + + begin + \{ + end + \} + patterns + + + include + #groovy-code + + + + class + + begin + (?=\w?[\w\s]*(?:class|(?:@)?interface|enum)\s+\w+) + end + } + endCaptures + + 0 + + name + punctuation.section.class.end.groovy + + + name + meta.definition.class.groovy + patterns + + + include + #storage-modifiers + + + include + #comments + + + captures + + 1 + + name + storage.modifier.groovy + + 2 + + name + entity.name.type.class.groovy + + + match + (class|(?:@)?interface|enum)\s+(\w+) + name + meta.class.identifier.groovy + + + begin + extends + beginCaptures + + 0 + + name + storage.modifier.extends.groovy + + + end + (?={|implements) + name + meta.definition.class.inherited.classes.groovy + patterns + + + include + #object-types-inherited + + + include + #comments + + + + + begin + (implements)\s + beginCaptures + + 1 + + name + storage.modifier.implements.groovy + + + end + (?=\s*extends|\{) + name + meta.definition.class.implemented.interfaces.groovy + patterns + + + include + #object-types-inherited + + + include + #comments + + + + + begin + { + end + (?=}) + name + meta.class.body.groovy + patterns + + + include + #class-body + + + + + + class-body + + patterns + + + include + #enum-values + + + include + #constructors + + + include + #groovy + + + + closures + + begin + \{(?=.*?->) + end + \} + patterns + + + begin + (?<=\{)(?=[^\}]*?->) + end + -> + endCaptures + + 0 + + name + keyword.operator.groovy + + + patterns + + + begin + (?!->) + end + (?=->) + name + meta.closure.parameters.groovy + patterns + + + begin + (?!,|->) + end + (?=,|->) + name + meta.closure.parameter.groovy + patterns + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + (?=,|->) + name + meta.parameter.default.groovy + patterns + + + include + #groovy-code + + + + + include + #parameters + + + + + + + + + begin + (?=[^}]) + end + (?=\}) + patterns + + + include + #groovy-code + + + + + + comment-block + + begin + /\* + captures + + 0 + + name + punctuation.definition.comment.groovy + + + end + \*/ + name + comment.block.groovy + + comments + + patterns + + + captures + + 0 + + name + punctuation.definition.comment.groovy + + + match + /\*\*/ + name + comment.block.empty.groovy + + + include + text.html.javadoc + + + include + #comment-block + + + captures + + 1 + + name + punctuation.definition.comment.groovy + + + match + (//).*$\n? + name + comment.line.double-slash.groovy + + + + constants + + patterns + + + match + \b([A-Z][A-Z0-9_]+)\b + name + constant.other.groovy + + + match + \b(true|false|null)\b + name + constant.language.groovy + + + + constructors + + applyEndPatternLast + 1 + begin + (?<=;|^)(?=\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\s+)*[A-Z]\w*\() + end + } + patterns + + + include + #method-content + + + + enum-values + + patterns + + + begin + (?<=;|^)\s*\b([A-Z0-9_]+)(?=\s*(?:,|;|}|\(|$)) + beginCaptures + + 1 + + name + constant.enum.name.groovy + + + end + ,|;|(?=})|^(?!\s*\w+\s*(?:,|$)) + patterns + + + begin + \( + end + \) + name + meta.enum.value.groovy + patterns + + + match + , + name + punctuation.definition.seperator.parameter.groovy + + + include + #groovy-code + + + + + + + + groovy + + patterns + + + include + #comments + + + include + #class + + + include + #variables + + + include + #methods + + + include + #annotations + + + include + #groovy-code + + + + groovy-code + + patterns + + + include + #groovy-code-minus-map-keys + + + include + #map-keys + + + + groovy-code-minus-map-keys + + comment + In some situations, maps can't be declared without enclosing []'s, + therefore we create a collection of everything but that + patterns + + + include + #comments + + + include + #annotations + + + include + #support-functions + + + include + #keyword-language + + + include + #values + + + include + #anonymous-classes-and-new + + + include + #keyword-operator + + + include + #types + + + include + #storage-modifiers + + + include + #parens + + + include + #closures + + + include + #braces + + + + keyword + + patterns + + + include + #keyword-operator + + + include + #keyword-language + + + + keyword-language + + patterns + + + match + \b(try|catch|finally|throw)\b + name + keyword.control.exception.groovy + + + match + \b((?<!\.)(?:return|break|continue|default|do|while|for|switch|if|else))\b + name + keyword.control.groovy + + + begin + \bcase\b + beginCaptures + + 0 + + name + keyword.control.groovy + + + end + : + endCaptures + + 0 + + name + punctuation.definition.case-terminator.groovy + + + name + meta.case.groovy + patterns + + + include + #groovy-code-minus-map-keys + + + + + begin + \b(assert)\s + beginCaptures + + 1 + + name + keyword.control.assert.groovy + + + end + $|;|} + name + meta.declaration.assertion.groovy + patterns + + + match + : + name + keyword.operator.assert.expression-seperator.groovy + + + include + #groovy-code-minus-map-keys + + + + + match + \b(throws)\b + name + keyword.other.throws.groovy + + + + keyword-operator + + patterns + + + match + \b(as)\b + name + keyword.operator.as.groovy + + + match + \b(in)\b + name + keyword.operator.in.groovy + + + match + \?\: + name + keyword.operator.elvis.groovy + + + match + \*\: + name + keyword.operator.spreadmap.groovy + + + match + \.\. + name + keyword.operator.range.groovy + + + match + \-> + name + keyword.operator.arrow.groovy + + + match + << + name + keyword.operator.leftshift.groovy + + + match + (?<=\S)\.(?=\S) + name + keyword.operator.navigation.groovy + + + match + (?<=\S)\?\.(?=\S) + name + keyword.operator.safe-navigation.groovy + + + begin + \? + beginCaptures + + 0 + + name + keyword.operator.ternary.groovy + + + end + (?=$|\)|}|]) + name + meta.evaluation.ternary.groovy + patterns + + + match + : + name + keyword.operator.ternary.expression-seperator.groovy + + + include + #groovy-code-minus-map-keys + + + + + match + ==~ + name + keyword.operator.match.groovy + + + match + =~ + name + keyword.operator.find.groovy + + + match + \b(instanceof)\b + name + keyword.operator.instanceof.groovy + + + match + (===|==|!=|<=|>=|<=>|<>|<|>|<<) + name + keyword.operator.comparison.groovy + + + match + = + name + keyword.operator.assignment.groovy + + + match + (\-\-|\+\+) + name + keyword.operator.increment-decrement.groovy + + + match + (\-|\+|\*|\/|%) + name + keyword.operator.arithmetic.groovy + + + match + (!|&&|\|\|) + name + keyword.operator.logical.groovy + + + + language-variables + + patterns + + + match + \b(this|super)\b + name + variable.language.groovy + + + + map-keys + + patterns + + + captures + + 1 + + name + constant.other.key.groovy + + 2 + + name + punctuation.definition.seperator.key-value.groovy + + + match + (\w+)\s*(:) + + + + method-call + + begin + ([\w$]+)(\() + beginCaptures + + 1 + + name + meta.method.groovy + + 2 + + name + punctuation.definition.method-parameters.begin.groovy + + + end + \) + endCaptures + + 0 + + name + punctuation.definition.method-parameters.end.groovy + + + name + meta.method-call.groovy + patterns + + + match + , + name + punctuation.definition.seperator.parameter.groovy + + + include + #groovy-code + + + + method-content + + patterns + + + match + \s + + + include + #annotations + + + begin + (?=(?:\w|<)[^\(]*\s+(?:[\w$]|<)+\s*\() + end + (?=[\w$]+\s*\() + name + meta.method.return-type.java + patterns + + + include + #storage-modifiers + + + include + #types + + + + + begin + ([\w$]+)\s*\( + beginCaptures + + 1 + + name + entity.name.function.java + + + end + \) + name + meta.definition.method.signature.java + patterns + + + begin + (?=[^)]) + end + (?=\)) + name + meta.method.parameters.groovy + patterns + + + begin + (?=[^,)]) + end + (?=,|\)) + name + meta.method.parameter.groovy + patterns + + + match + , + name + punctuation.definition.separator.groovy + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + (?=,|\)) + name + meta.parameter.default.groovy + patterns + + + include + #groovy-code + + + + + include + #parameters + + + + + + + + + begin + (?=<) + end + (?=\s) + name + meta.method.paramerised-type.groovy + patterns + + + begin + < + end + > + name + storage.type.parameters.groovy + patterns + + + include + #types + + + match + , + name + punctuation.definition.seperator.groovy + + + + + + + begin + throws + beginCaptures + + 0 + + name + storage.modifier.groovy + + + end + (?={|;)|^(?=\s*(?:[^{\s]|$)) + name + meta.throwables.groovy + patterns + + + include + #object-types + + + + + begin + { + end + (?=}) + name + meta.method.body.java + patterns + + + include + #groovy-code + + + + + + methods + + applyEndPatternLast + 1 + begin + (?x:(?<=;|^|{)(?=\s* + (?: + (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier + | + (?:def) + | + (?: + (?: + (?:void|boolean|byte|char|short|int|float|long|double) + | + (?:@?(?:[a-zA-Z]\w*\.)*[A-Z]+\w*) # object type + ) + [\[\]]* + (?:<.*>)? + ) + + ) + \s+ + ([^=]+\s+)?\w+\s*\( + )) + end + }|(?=[^{]) + name + meta.definition.method.groovy + patterns + + + include + #method-content + + + + nest_curly + + begin + \{ + captures + + 0 + + name + punctuation.section.scope.groovy + + + end + \} + patterns + + + include + #nest_curly + + + + numbers + + patterns + + + match + ((0(x|X)[0-9a-fA-F]*)|(\+|-)?\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\b + name + constant.numeric.groovy + + + + object-types + + patterns + + + begin + \b((?:[a-z]\w*\.)*(?:[A-Z]+\w*[a-z]+\w*|UR[LI]))< + end + >|[^\w\s,\?<\[\]] + name + storage.type.generic.groovy + patterns + + + include + #object-types + + + begin + < + comment + This is just to support <>'s with no actual type prefix + end + >|[^\w\s,\[\]<] + name + storage.type.generic.groovy + + + + + begin + \b((?:[a-z]\w*\.)*[A-Z]+\w*[a-z]+\w*)(?=\[) + end + (?=[^\]\s]) + name + storage.type.object.array.groovy + patterns + + + begin + \[ + end + \] + patterns + + + include + #groovy + + + + + + + match + \b(?:[a-zA-Z]\w*\.)*(?:[A-Z]+\w*[a-z]+\w*|UR[LI])\b + name + storage.type.groovy + + + + object-types-inherited + + patterns + + + begin + \b((?:[a-zA-Z]\w*\.)*[A-Z]+\w*[a-z]+\w*)< + end + >|[^\w\s,\?<\[\]] + name + entity.other.inherited-class.groovy + patterns + + + include + #object-types-inherited + + + begin + < + comment + This is just to support <>'s with no actual type prefix + end + >|[^\w\s,\[\]<] + name + storage.type.generic.groovy + + + + + captures + + 1 + + name + keyword.operator.dereference.groovy + + + match + \b(?:[a-zA-Z]\w*(\.))*[A-Z]+\w*[a-z]+\w*\b + name + entity.other.inherited-class.groovy + + + + parameters + + patterns + + + include + #annotations + + + include + #storage-modifiers + + + include + #types + + + match + \w+ + name + variable.parameter.method.groovy + + + + parens + + begin + \( + end + \) + patterns + + + include + #groovy-code + + + + primitive-arrays + + patterns + + + match + \b(?:void|boolean|byte|char|short|int|float|long|double)(\[\])*\b + name + storage.type.primitive.array.groovy + + + + primitive-types + + patterns + + + match + \b(?:void|boolean|byte|char|short|int|float|long|double)\b + name + storage.type.primitive.groovy + + + + regexp + + patterns + + + begin + /(?=[^/]+/([^>]|$)) + beginCaptures + + 0 + + name + punctuation.definition.string.regexp.begin.groovy + + + end + / + endCaptures + + 0 + + name + punctuation.definition.string.regexp.end.groovy + + + name + string.regexp.groovy + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + + begin + ~" + beginCaptures + + 0 + + name + punctuation.definition.string.regexp.begin.groovy + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.regexp.end.groovy + + + name + string.regexp.compiled.groovy + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + + + storage-modifiers + + patterns + + + match + \b(private|protected|public)\b + name + storage.modifier.access-control.groovy + + + match + \b(static)\b + name + storage.modifier.static.groovy + + + match + \b(final)\b + name + storage.modifier.final.groovy + + + match + \b(native|synchronized|abstract|threadsafe|transient)\b + name + storage.modifier.other.groovy + + + + string-quoted-double + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.double.groovy + patterns + + + include + #string-quoted-double-contents + + + + string-quoted-double-contents + + patterns + + + match + \\. + name + constant.character.escape.groovy + + + applyEndPatternLast + 1 + begin + \$\w + end + (?=\W) + name + variable.other.interpolated.groovy + patterns + + + match + \w + name + variable.other.interpolated.groovy + + + match + \. + name + keyword.other.dereference.groovy + + + + + begin + \$\{ + captures + + 0 + + name + punctuation.section.embedded.groovy + + + end + \} + name + source.groovy.embedded.source + patterns + + + include + #nest_curly + + + + + + string-quoted-double-multiline + + begin + """ + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + """ + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.double.multiline.groovy + patterns + + + include + #string-quoted-double-contents + + + + string-quoted-single + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.single.groovy + patterns + + + include + #string-quoted-single-contents + + + + string-quoted-single-contents + + patterns + + + match + \\. + name + constant.character.escape.groovy + + + + string-quoted-single-multiline + + begin + ''' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.groovy + + + end + ''' + endCaptures + + 0 + + name + punctuation.definition.string.end.groovy + + + name + string.quoted.single.multiline.groovy + patterns + + + include + #string-quoted-single-contents + + + + strings + + patterns + + + include + #string-quoted-double-multiline + + + include + #string-quoted-single-multiline + + + include + #string-quoted-double + + + include + #string-quoted-single + + + include + #regexp + + + + structures + + begin + \[ + beginCaptures + + 0 + + name + punctuation.definition.structure.begin.groovy + + + end + \] + endCaptures + + 0 + + name + punctuation.definition.structure.end.groovy + + + name + meta.structure.groovy + patterns + + + include + #groovy-code + + + match + , + name + punctuation.definition.separator.groovy + + + + support-functions + + patterns + + + match + (?x)\b(?:sprintf|print(?:f|ln)?)\b + name + support.function.print.groovy + + + match + (?x)\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same| + Null)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length| + ArrayEquals)))\b + name + support.function.testing.groovy + + + + types + + patterns + + + match + \b(def)\b + name + storage.type.def.groovy + + + include + #primitive-types + + + include + #primitive-arrays + + + include + #object-types + + + + values + + patterns + + + include + #language-variables + + + include + #strings + + + include + #numbers + + + include + #constants + + + include + #types + + + include + #structures + + + include + #method-call + + + + variables + + applyEndPatternLast + 1 + patterns + + + begin + (?x:(?= + (?: + (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier + | + (?:def) + | + (?:void|boolean|byte|char|short|int|float|long|double) + | + (?:(?:[a-z]\w*\.)*[A-Z]+\w*) # object type + ) + \s+ + [\w\d_<>\[\],\s]+ + (?:=|$) + + )) + end + ;|$ + name + meta.definition.variable.groovy + patterns + + + match + \s + + + captures + + 1 + + name + constant.variable.groovy + + + match + ([A-Z_0-9]+)\s+(?=\=) + + + captures + + 1 + + name + meta.definition.variable.name.groovy + + + match + (\w[^\s,]*)\s+(?=\=) + + + begin + = + beginCaptures + + 0 + + name + keyword.operator.assignment.groovy + + + end + $ + patterns + + + include + #groovy-code + + + + + captures + + 1 + + name + meta.definition.variable.name.groovy + + + match + (\w[^\s=]*)(?=\s*($|;)) + + + include + #groovy-code + + + + + + + scopeName + source.groovy + uuid + B3A64888-EBBB-4436-8D9E-F1169C5D7613 + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/Handlebars.json b/extensions/continue/textmate-syntaxes/Handlebars.json new file mode 100644 index 000000000000..222ce2960251 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/Handlebars.json @@ -0,0 +1,854 @@ +{ + "name": "Handlebars", + "repository": { + "html_tags": { + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>(<)/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "meta.scope.between-tag-pair.html" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "meta.tag.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml.html", + "patterns": [ + { + "include": "#tag_generic_attribute" + }, + { + "include": "#string" + } + ] + }, + { + "begin": " + + + (^|\G)(?!\s*$|#|[ ]{0,3}((([*_][ ]{0,2}\2){2,}[ \t]*$\n?)|([*+-]([ ]{1,3}|\t)))|\s*\[.+?\]:|>) + + raw_block + + begin + (^|\G)([ ]{4}|\t) + name + markup.raw.block.markdown + while + (^|\G)([ ]{4}|\t) + + fenced_code_block_css + + begin + (^|\G)\s*([`~]{3,})\s*(css|css.erb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.css + + + + fenced_code_block_basic + + begin + (^|\G)\s*([`~]{3,})\s*(html|htm|shtml|xhtml|inc|tmpl|tpl)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.html.basic + + + + fenced_code_block_ini + + begin + (^|\G)\s*([`~]{3,})\s*(ini|conf)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ini + + + + fenced_code_block_java + + begin + (^|\G)\s*([`~]{3,})\s*(java|bsh)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.java + + + + fenced_code_block_lua + + begin + (^|\G)\s*([`~]{3,})\s*(lua)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.lua + + + + fenced_code_block_makefile + + begin + (^|\G)\s*([`~]{3,})\s*(Makefile|makefile|GNUmakefile|OCamlMakefile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.makefile + + + + fenced_code_block_perl + + begin + (^|\G)\s*([`~]{3,})\s*(perl|pl|pm|pod|t|PL|psgi|vcl)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.perl + + + + fenced_code_block_r + + begin + (^|\G)\s*([`~]{3,})\s*(R|r|s|S|Rprofile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.r + + + + fenced_code_block_ruby + + begin + (^|\G)\s*([`~]{3,})\s*(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ruby + + + + fenced_code_block_php + + begin + (^|\G)\s*([`~]{3,})\s*(php|php3|php4|php5|phpt|phtml|aw|ctp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.html.php + + + + fenced_code_block_sql + + begin + (^|\G)\s*([`~]{3,})\s*(sql|ddl|dml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.sql + + + + fenced_code_block_vs_net + + begin + (^|\G)\s*([`~]{3,})\s*(vb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.asp.vb.net + + + + fenced_code_block_xml + + begin + (^|\G)\s*([`~]{3,})\s*(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.xml + + + + fenced_code_block_xsl + + begin + (^|\G)\s*([`~]{3,})\s*(xsl|xslt)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.xml.xsl + + + + fenced_code_block_yaml + + begin + (^|\G)\s*([`~]{3,})\s*(yaml|yml)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.yaml + + + + fenced_code_block_dosbatch + + begin + (^|\G)\s*([`~]{3,})\s*(bat|batch)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.dosbatch + + + + fenced_code_block_clojure + + begin + (^|\G)\s*([`~]{3,})\s*(clj|cljs|clojure)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.clojure + + + + fenced_code_block_coffee + + begin + (^|\G)\s*([`~]{3,})\s*(coffee|Cakefile|coffee.erb)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.coffee + + + + fenced_code_block_c + + begin + (^|\G)\s*([`~]{3,})\s*(c|h)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.c + + + + fenced_code_block_diff + + begin + (^|\G)\s*([`~]{3,})\s*(patch|diff|rej)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.diff + + + + fenced_code_block_dockerfile + + begin + (^|\G)\s*([`~]{3,})\s*(dockerfile|Dockerfile)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.dockerfile + + + + fenced_code_block_git_commit + + begin + (^|\G)\s*([`~]{3,})\s*(COMMIT_EDITMSG|MERGE_MSG)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.git-commit + + + + fenced_code_block_git_rebase + + begin + (^|\G)\s*([`~]{3,})\s*(git-rebase-todo)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.git-rebase + + + + fenced_code_block_groovy + + begin + (^|\G)\s*([`~]{3,})\s*(groovy|gvy)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.groovy + + + + fenced_code_block_jade + + begin + (^|\G)\s*([`~]{3,})\s*(jade)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + text.jade + + + + fenced_code_block_js + + begin + (^|\G)\s*([`~]{3,})\s*(js|jsx|javascript)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.js + + + + fenced_code_block_js_regexp + + begin + (^|\G)\s*([`~]{3,})\s*(regexp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.js.regexp + + + + fenced_code_block_json + + begin + (^|\G)\s*([`~]{3,})\s*(json|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.json + + + + fenced_code_block_less + + begin + (^|\G)\s*([`~]{3,})\s*(less)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.css.less + + + + fenced_code_block_objc + + begin + (^|\G)\s*([`~]{3,})\s*(objectivec|mm|objc|obj-c|m|h)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.objc + + + + fenced_code_block_perl6 + + begin + (^|\G)\s*([`~]{3,})\s*(perl6|p6|pl6|pm6|nqp)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.perl.6 + + + + fenced_code_block_powershell + + begin + (^|\G)\s*([`~]{3,})\s*(powershell|ps1|psm1|psd1)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.powershell + + + + fenced_code_block_python + + begin + (^|\G)\s*([`~]{3,})\s*(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.python + + + + fenced_code_block_regexp_python + + begin + (^|\G)\s*([`~]{3,})\s*(re)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.regexp.python + + + + fenced_code_block_shell + + begin + (^|\G)\s*([`~]{3,})\s*(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.shell + + + + fenced_code_block_ts + + begin + (^|\G)\s*([`~]{3,})\s*(typescript|ts)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.ts + + + + fenced_code_block_tsx + + begin + (^|\G)\s*([`~]{3,})\s*(tsx)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)[ ]{0,3}(\2)\s*\n + patterns + + + include + source.tsx + + + + fenced_code_block_csharp + + begin + (^|\G)\s*([`~]{3,})\s*(cs|csharp|c#)\s*$ + name + markup.fenced_code.block.markdown + end + (^|\G)(\2)\n + patterns + + + include + source.cs + + + + separator + + match + (^|\G)[ ]{0,3}([*-_])([ ]{0,2}\2){2,}[ \t]*$\n? + name + meta.separator.markdown + + + + inline + + patterns + + + include + #ampersand + + + include + #bracket + + + include + #bold + + + include + #italic + + + include + #raw + + + include + #escape + + + include + #image-inline + + + include + #image-ref + + + include + #link-email + + + include + #link-inet + + + include + #link-inline + + + include + #link-ref + + + include + #link-ref-literal + + + repository + + ampersand + + comment + + Markdown will convert this for us. We match it so that the + HTML grammar will not mark it up as invalid. + + match + &(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);) + name + meta.other.valid-ampersand.markdown + + bold + + begin + (?x) + (\*\*|__)(?=\S) # Open + (?= + ( + <[^>]*+> # HTML tags + | (?<raw>`+)([^`]|(?!(?<!`)\k<raw>(?!`))`)*+\k<raw> + # Raw + | \\[\\`*_{}\[\]()#.!+\->]?+ # Escapes + | \[ + ( + (?<square> # Named group + [^\[\]\\] # Match most chars + | \\. # Escaped chars + | \[ \g<square>*+ \] # Nested brackets + )*+ + \] + ( + ( # Reference Link + [ ]? # Optional space + \[[^\]]*+\] # Ref name + ) + | ( # Inline Link + \( # Opening paren + [ \t]*+ # Optional whtiespace + <?(.*?)>? # URL + [ \t]*+ # Optional whtiespace + ( # Optional Title + (?<title>['"]) + (.*?) + \k<title> + )? + \) + ) + ) + ) + | (?!(?<=\S)\1). # Everything besides + # style closer + )++ + (?<=\S)\1 # Close + ) + + captures + + 1 + + name + punctuation.definition.bold.markdown + + + end + (?<=\S)(\1) + name + markup.bold.markdown + patterns + + + applyEndPatternLast + 1 + begin + (?=<[^>]*?>) + end + (?<=>) + patterns + + + include + text.html.basic + + + + + include + #escape + + + include + #ampersand + + + include + #bracket + + + include + #raw + + + include + #italic + + + include + #image-inline + + + include + #link-inline + + + include + #link-inet + + + include + #link-email + + + include + #image-ref + + + include + #link-ref-literal + + + include + #link-ref + + + + bracket + + comment + + Markdown will convert this for us. We match it so that the + HTML grammar will not mark it up as invalid. + + match + <(?![a-z/?\$!]) + name + meta.other.valid-bracket.markdown + + escape + + match + \\[-`*_#+.!(){}\[\]\\>] + name + constant.character.escape.markdown + + image-inline + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 10 + + name + string.other.link.description.title.markdown + + 11 + + name + punctuation.definition.string.markdown + + 12 + + name + punctuation.definition.string.markdown + + 13 + + name + string.other.link.description.title.markdown + + 14 + + name + punctuation.definition.string.markdown + + 15 + + name + punctuation.definition.string.markdown + + 16 + + name + punctuation.definition.metadata.markdown + + 2 + + name + string.other.link.description.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + invalid.illegal.whitespace.markdown + + 6 + + name + punctuation.definition.metadata.markdown + + 7 + + name + punctuation.definition.link.markdown + + 8 + + name + markup.underline.link.image.markdown + + 9 + + name + punctuation.definition.link.markdown + + + match + (?x: + (\!\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\]) + # Match the link text. + ([ ])? # Space not allowed + (\() # Opening paren for url + (<?)(\S+?)(>?) # The url + [ \t]* # Optional whitespace + (?: + ((\().+?(\))) # Match title in parens… + | ((").+?(")) # or in quotes. + )? # Title is optional + \s* # Optional whitespace + (\)) + ) + name + meta.image.inline.markdown + + image-ref + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.description.markdown + + 4 + + name + punctuation.definition.string.begin.markdown + + 5 + + name + punctuation.definition.constant.markdown + + 6 + + name + constant.other.reference.link.markdown + + 7 + + name + punctuation.definition.constant.markdown + + + match + (\!\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\]) + name + meta.image.reference.markdown + + italic + + begin + (?x) + (\*|_)(?=\S) # Open + (?= + ( + <[^>]*+> # HTML tags + | (?<raw>`+)([^`]|(?!(?<!`)\k<raw>(?!`))`)*+\k<raw> + # Raw + | \\[\\`*_{}\[\]()#.!+\->]?+ # Escapes + | \[ + ( + (?<square> # Named group + [^\[\]\\] # Match most chars + | \\. # Escaped chars + | \[ \g<square>*+ \] # Nested brackets + )*+ + \] + ( + ( # Reference Link + [ ]? # Optional space + \[[^\]]*+\] # Ref name + ) + | ( # Inline Link + \( # Opening paren + [ \t]*+ # Optional whtiespace + <?(.*?)>? # URL + [ \t]*+ # Optional whtiespace + ( # Optional Title + (?<title>['"]) + (.*?) + \k<title> + )? + \) + ) + ) + ) + | \1\1 # Must be bold closer + | (?!(?<=\S)\1). # Everything besides + # style closer + )++ + (?<=\S)\1 # Close + ) + + captures + + 1 + + name + punctuation.definition.italic.markdown + + + end + (?<=\S)(\1)((?!\1)|(?=\1\1)) + name + markup.italic.markdown + patterns + + + applyEndPatternLast + 1 + begin + (?=<[^>]*?>) + end + (?<=>) + patterns + + + include + text.html.basic + + + + + include + #escape + + + include + #ampersand + + + include + #bracket + + + include + #raw + + + include + #bold + + + include + #image-inline + + + include + #link-inline + + + include + #link-inet + + + include + #link-email + + + include + #image-ref + + + include + #link-ref-literal + + + include + #link-ref + + + + link-email + + captures + + 1 + + name + punctuation.definition.link.markdown + + 2 + + name + markup.underline.link.markdown + + 4 + + name + punctuation.definition.link.markdown + + + match + (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>) + name + meta.link.email.lt-gt.markdown + + link-inet + + captures + + 1 + + name + punctuation.definition.link.markdown + + 2 + + name + markup.underline.link.markdown + + 3 + + name + punctuation.definition.link.markdown + + + match + (<)((?:https?|ftp)://.*?)(>) + name + meta.link.inet.markdown + + link-inline + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 10 + + name + string.other.link.description.title.markdown + + 11 + + name + punctuation.definition.string.begin.markdown + + 12 + + name + punctuation.definition.string.end.markdown + + 13 + + name + string.other.link.description.title.markdown + + 14 + + name + punctuation.definition.string.begin.markdown + + 15 + + name + punctuation.definition.string.end.markdown + + 16 + + name + punctuation.definition.metadata.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + invalid.illegal.whitespace.markdown + + 6 + + name + punctuation.definition.metadata.markdown + + 7 + + name + punctuation.definition.link.markdown + + 8 + + name + markup.underline.link.markdown + + 9 + + name + punctuation.definition.link.markdown + + + match + (?x: + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\]) + # Match the link text. + ([ ])? # Space not allowed + (\() # Opening paren for url + (<?)(.*?)(>?) # The url + [ \t]* # Optional whitespace + (?: + ((\().+?(\))) # Match title in parens… + | ((").+?(")) # or in quotes. + )? # Title is optional + \s* # Optional whitespace + (\)) + ) + name + meta.link.inline.markdown + + link-ref + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + punctuation.definition.constant.begin.markdown + + 6 + + name + constant.other.reference.link.markdown + + 7 + + name + punctuation.definition.constant.end.markdown + + + match + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\]) + name + meta.link.reference.markdown + + link-ref-literal + + captures + + 1 + + name + punctuation.definition.string.begin.markdown + + 2 + + name + string.other.link.title.markdown + + 4 + + name + punctuation.definition.string.end.markdown + + 5 + + name + punctuation.definition.constant.begin.markdown + + 6 + + name + punctuation.definition.constant.end.markdown + + + match + (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\]) + name + meta.link.reference.literal.markdown + + raw + + captures + + 1 + + name + punctuation.definition.raw.markdown + + 3 + + name + punctuation.definition.raw.markdown + + + match + (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1) + name + markup.inline.raw.markdown + + + + + scopeName + text.html.markdown + uuid + 0A1D9874-B448-11D9-BD50-000D93B6E43C + + diff --git a/extensions/continue/textmate-syntaxes/php.json b/extensions/continue/textmate-syntaxes/php.json new file mode 100644 index 000000000000..7bbcb167979a --- /dev/null +++ b/extensions/continue/textmate-syntaxes/php.json @@ -0,0 +1,2638 @@ +{ + "scopeName": "text.html.php", + "name": "PHP", + "fileTypes": [ + "aw", + "ctp", + "inc", + "install", + "module", + "php", + "php_cs", + "php3", + "php4", + "php5", + "phpt", + "phtml", + "profile" + ], + "firstLineMatch": "^#!.*(?))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.php" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.php" + } + }, + "patterns": [ + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.metatag.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.metatag.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + } + }, + "name": "meta.embedded.line.php", + "patterns": [ + { + "captures": { + "1": { + "name": "source.php" + }, + "2": { + "name": "punctuation.section.embedded.end.php" + }, + "3": { + "name": "source.php" + } + }, + "match": "\\G(\\s*)((\\?))(?=>)", + "name": "meta.special.empty-tag.php" + }, + { + "begin": "\\G", + "contentName": "source.php", + "end": "(\\?)(?=>)", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + } + }, + "patterns": [ + { + "include": "text.html.basic" + } + ], + "repository": { + "class-builtin": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Diff\\\\(Memory|Base|DOM|File)|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection|mmandCursor)|ursor(Exception)?|lient)|Timestamp|I(n(sertBatch|t(32|64))|d)|D(B(Ref)?|eleteBatch|ate)|UpdateBatch|Pool|Write(Batch|ConcernException)|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(ync(ReaderWriter|Mutex|Semaphore|Event)|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(RTime\\\\(StopWatch|PerformanceCounter)|ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Ya(f_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|r_(Server(_Exception)?|C(oncurrent_Client|lient(_Exception)?)))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|ll(ectable|ator))|URLFile|a(chingIterator|llbackFilterIterator))|T(hread(ed)?|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tl(RuleBasedBreakIterator|BreakIterator|C(odePointBreakIterator|alendar)|TimeZone|Iterator|DateFormatter|PartsIterator)|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|Z(MQ(Socket|Context|Device|Poll)?|ipArchive)|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(I(nterface|mmutable)|Zone)?|Interval|Period))|U(n(derflowException|expectedValueException)|Converter)|JsonSerializable|finfo|P(har(Data|FileInfo)?|ool|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|ent(B(uffer(Event)?|ase)|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|F(il(terIterator|esystemIterator)|ANNConnection)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b", + "name": "support.class.builtin.php" + } + ] + }, + "class-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "begin": "(?=[\\\\a-zA-Z_])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?:#@\\+)?\\s*$", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "comment": "This now only highlights a docblock if the first line contains only /**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n\t\t\t\t\t\t\t\t- Now matches /**#@+ too - used for docblock templates: http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate", + "end": "\\*/", + "name": "comment.block.documentation.phpdoc.php", + "patterns": [ + { + "include": "#php_doc" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "name": "comment.block.php" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.double-slash.php" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.number-sign.php" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "begin": "(?xi)(?=\n\t\t\t (\n\t\t\t (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)|\n\t\t\t ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n\t\t\t )\n\t\t\t [^a-z_0-9\\\\])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "constant.other.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])", + "end": "(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])", + "patterns": [ + { + "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", + "name": "constant.language.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b", + "name": "support.constant.core.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b", + "name": "support.constant.std.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b", + "name": "support.constant.ext.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b", + "name": "support.constant.parser-token.php" + }, + { + "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\n \t\t\t\tHowever, if there is no constant defined with the given name then a notice\n \t\t\t\tis generated and the constant is assumed to have the value of its name.", + "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*", + "name": "constant.other.php" + } + ] + } + ] + }, + "function-arguments": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?xi)\n\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "support.function.construct.php" + }, + "7": { + "name": "punctuation.definition.array.begin.php" + } + }, + "contentName": "meta.array.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.function.argument.array.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "constant.language.php" + }, + "7": { + "name": "punctuation.section.array.begin.php" + }, + "8": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "9": { + "name": "punctuation.section.array.end.php" + }, + "10": { + "name": "invalid.illegal.non-null-typehinted.php" + } + }, + "match": "(?xi)\n\t\t\t\t\t\t\t\\s*(array|callable) # Typehint\n\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\\s*((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|(\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment\n\t\t\t\t\t\t\t", + "name": "meta.function.argument.array.php" + }, + { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z_0-9]*\\s*&?\\s*(?:\\.\\.\\.)?\\$)", + "end": "(?=,|\\)|/[/*]|\\#|$)", + "name": "meta.function.argument.typehinted.php", + "patterns": [ + { + "include": "#class-name" + }, + { + "captures": { + "1": { + "name": "support.class.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "constant.language.php" + }, + "7": { + "name": "invalid.illegal.non-null-typehinted.php" + } + }, + "match": "(?xi)\n \t\t\t\t\t\t\t\\s*([a-z_][a-z_0-9]*)? # Typehinted class name\n \t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n \t\t\t\t\t\t\t\\s*(((?:\\.\\.\\.)?\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n \t\t\t\t\t\t\t(?:\n \t\t\t\t\t\t\t\t\\s*(?:(=)\\s*(?:(null)|((?:\\S*?\\(\\))|(?:\\S*?))))\t# A default value\n \t\t\t\t\t\t\t)?\n \t\t\t\t\t\t\t\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t " + } + ] + }, + { + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?:\\s*(&))?\\s*(((?:\\.\\.\\.)?\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.argument.no-default.php" + }, + { + "begin": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\s*(=)\\s*)\\s*(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))?", + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.assignment.php" + }, + "5": { + "name": "punctuation.section.array.begin.php" + }, + "6": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "7": { + "name": "punctuation.section.array.end.php" + } + }, + "end": "(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.argument.default.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()", + "comment": "Functions in a user-defined namespace (overrides any built-ins)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "include": "#user-function-call" + } + ] + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + }, + { + "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "comment": "Root namespace function calls (built-in or user)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "match": "(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()", + "name": "support.function.construct.php" + }, + { + "include": "#support" + }, + { + "include": "#user-function-call" + } + ] + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "(?=<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "injections": { + "*": { + "patterns": [ + { + "include": "#interpolation" + } + ] + } + }, + "name": "string.unquoted.heredoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + }, + { + "begin": "(?=<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.heredoc.nowdoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + } + ], + "repository": { + "heredoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*(['\"]?)(HTML)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "text.html", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(XML)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "text.xml", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(SQL)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.sql", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(JAVASCRIPT)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.js", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(JSON)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.json", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(CSS)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "source.css", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)(REGEX)(\\2)\\s*$\\n?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "contentName": "string.regexp.heredoc.php", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", + "end": "$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(<<<)\\s*(['\"]?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\2)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + } + }, + "end": "^(\\3)\\b", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + } + } + ] + } + } + }, + "instantiation": { + "begin": "(?i)(new)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.new.php" + } + }, + "end": "(?i)(?=[^$a-z0-9_\\\\])", + "patterns": [ + { + "match": "(parent|static|self)(?=[^a-z0-9_])", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation": { + "comment": "http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing", + "patterns": [ + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.numeric.octal.php" + }, + { + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.numeric.hex.php" + }, + { + "match": "\\\\[enrt\\\\\\$\\\"]", + "name": "constant.character.escape.php" + }, + { + "begin": "(\\{)(?=\\$.*?\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#variable-name" + } + ] + }, + "invoke-call": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + }, + "2": { + "name": "variable.other.php" + } + }, + "match": "(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()", + "name": "meta.function-call.invoke.php" + }, + "language": { + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\{", + "name": "punctuation.section.scope.begin.php" + }, + { + "match": "\\}", + "name": "punctuation.section.scope.end.php" + }, + { + "begin": "(?i)^\\s*(interface)\\s+([a-z0-9_]+)\\s*(extends)?\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.interface.php" + }, + "2": { + "name": "entity.name.type.interface.php" + }, + "3": { + "name": "storage.modifier.extends.php" + } + }, + "end": "((?:[a-zA-Z0-9_]+\\s*,\\s*)*)([a-zA-Z0-9_]+)?\\s*(?:(?=\\{)|$)", + "endCaptures": { + "1": { + "patterns": [ + { + "match": "[a-zA-Z0-9_]+", + "name": "entity.other.inherited-class.php" + }, + { + "match": ",", + "name": "punctuation.separator.classes.php" + } + ] + }, + "2": { + "name": "entity.other.inherited-class.php" + } + }, + "name": "meta.interface.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?i)^\\s*(trait)\\s+([a-z0-9_]+)", + "beginCaptures": { + "1": { + "name": "storage.type.trait.php" + }, + "2": { + "name": "entity.name.type.trait.php" + } + }, + "end": "(?=[{])", + "name": "meta.trait.php", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\b\\s+(?=([a-z0-9_\\\\]+\\s*($|[;{]|(\\/[\\/*])))|$)", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.php" + } + }, + "contentName": "entity.name.type.namespace.php", + "end": "(?i)(?=\\s*$|[^a-z0-9_\\\\])", + "name": "meta.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + { + "begin": "(?i)\\s*\\b(use)\\s+(?:((const)|(function))\\s+)?", + "beginCaptures": { + "1": { + "name": "keyword.other.use.php" + }, + "3": { + "name": "storage.type.const.php" + }, + "4": { + "name": "storage.type.function.php" + } + }, + "end": "(?=;|(?:^\\s*$))", + "name": "meta.use.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)\\s*(?=[a-z_0-9\\\\])", + "end": "(?xi)(?:\n \t\t\t (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))\n \t\t\t |(?=,|;|$)\n \t\t\t )", + "endCaptures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "name": "support.other.namespace.use-as.php" + } + }, + "patterns": [ + { + "include": "#class-builtin" + }, + { + "begin": "(?i)\\s*(?=[\\\\a-z_0-9])", + "end": "$|(?=[\\s,;])", + "name": "support.other.namespace.use.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + ] + }, + { + "match": "\\s*,\\s*" + } + ] + }, + { + "begin": "(?i)^\\s*(abstract|final)?\\s*(class)\\s+([a-z0-9_]+)\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.abstract.php" + }, + "2": { + "name": "storage.type.class.php" + }, + "3": { + "name": "entity.name.type.class.php" + } + }, + "end": "(?=[;{])", + "name": "meta.class.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?=[^a-z_0-9\\\\])", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + }, + { + "begin": "(?i)(implements)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.php" + } + }, + "end": "(?i)(?=[;{])", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(?=[a-z0-9_\\\\]+)", + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.php" + } + }, + "match": "\\s*\\b((break|c(ase|ontinue)|d(e(clare|fault)|ie|o)|e(lse(if)?|nd(declare|for(each)?|if|switch|while)|xit)|for(each)?|if|return|switch|use|while|yield))\\b" + }, + { + "begin": "(?i)\\b((?:require|include)(?:_once)?)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.php" + } + }, + "end": "(?=\\s|;|$)", + "name": "meta.include.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\b(catch)\\b\\s*\\(\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.php" + } + }, + "end": "([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*\\)", + "endCaptures": { + "1": { + "name": "support.class.exception.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "name": "meta.catch.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "match": "\\b(catch|try|throw|exception|finally)\\b", + "name": "keyword.control.exception.php" + }, + { + "begin": "(?i)\\b(function)\\s*(&\\s*)?(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.php" + }, + "2": { + "name": "storage.modifier.reference.php" + } + }, + "end": "(?=\\{)", + "name": "meta.function.closure.php", + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "contentName": "meta.function.arguments.php", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "begin": "(?i)(use)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.function.use.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", + "name": "meta.function.closure.use.php" + } + ] + } + ] + }, + { + "begin": "(?x)\\s*\n\t\t\t\t\t ((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n\t\t\t\t (function)\n\t\t\t\t (?:\\s+|(\\s*&\\s*))\n\t\t\t\t (?:\n\t\t\t\t (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n\t\t\t\t |([a-zA-Z0-9_]+)\n\t\t\t\t )\n\t\t\t\t \\s*\n\t\t\t\t (\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected|static", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "support.function.magic.php" + }, + "5": { + "name": "entity.name.function.php" + }, + "6": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "contentName": "meta.function.arguments.php", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "name": "meta.function.php", + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "include": "#invoke-call" + }, + { + "begin": "(?xi)\\s*(?=\n\t\t\t\t [a-z_0-9$\\\\]+(::)\n (?:\n \t\t\t\t ([a-z_][a-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?\n\t\t\t\t )", + "end": "(?x)(::)\n (?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.static.php" + }, + "3": { + "name": "variable.other.class.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "match": "(self|static|parent)\\b", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + }, + "3": { + "name": "punctuation.definition.array.end.php" + } + }, + "match": "(array)(\\()(\\))", + "name": "meta.array.empty.php" + }, + { + "begin": "(array)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.php" + } + }, + "match": "(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset)\\s*\\)" + }, + { + "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object)\\b", + "name": "storage.type.php" + }, + { + "match": "(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\\b", + "name": "storage.modifier.php" + }, + { + "include": "#object" + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "include": "#heredoc" + }, + { + "match": "\\.=?", + "name": "keyword.operator.string.php" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "captures": { + "1": { + "name": "keyword.operator.assignment.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "storage.modifier.reference.php" + } + }, + "match": "(?:(\\=)(&))|(&(?=[$A-Za-z_]))" + }, + { + "match": "(@)", + "name": "keyword.operator.error-control.php" + }, + { + "match": "(===|==|!==|!=|<>)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "(<=|>=|<|>)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "(\\-\\-|\\+\\+)", + "name": "keyword.operator.increment-decrement.php" + }, + { + "match": "(\\-|\\+|\\*|/|%)", + "name": "keyword.operator.arithmetic.php" + }, + { + "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", + "name": "keyword.operator.logical.php" + }, + { + "include": "#function-call" + }, + { + "match": "<<|>>|~|\\^|&|\\|", + "name": "keyword.operator.bitwise.php" + }, + { + "begin": "(?i)\\b(instanceof)\\b\\s+(?=[\\\\$a-z_])", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.php" + } + }, + "end": "(?=[^\\\\$A-Za-z_0-9])", + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#numbers" + }, + { + "include": "#instantiation" + }, + { + "captures": { + "1": { + "name": "keyword.control.goto.php" + }, + "2": { + "name": "support.other.php" + } + }, + "match": "(?i)(goto)\\s+([a-z_][a-z_0-9]*)" + }, + { + "captures": { + "1": { + "name": "entity.name.goto-label.php" + } + }, + "match": "(?i)^\\s*([a-z_][a-z_0-9]*)\\s*:" + }, + { + "include": "#string-backtick" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "namespace": { + "begin": "(?i)(?:(namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", + "beginCaptures": { + "1": { + "name": "variable.language.namespace.php" + }, + "2": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", + "name": "support.other.namespace.php", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)" + } + ] + }, + "numbers": { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", + "name": "constant.numeric.php" + }, + "object": { + "patterns": [ + { + "begin": "(->)(\\$?\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.object.php" + }, + "3": { + "name": "variable.other.property.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)(->)\n \t\t\t\t(?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#string-backtick" + }, + { + "include": "#variables" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "&(?=\\s*\\$)", + "name": "storage.modifier.reference.php" + }, + { + "begin": "(array)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + { + "include": "#instantiation" + }, + { + "begin": "(?xi)\\s*(?=\n\t\t\t\t [a-z_0-9\\\\]+(::)\n \t\t\t\t ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n\t\t\t\t )", + "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "include": "#class-name" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "php_doc": { + "patterns": [ + { + "comment": "PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character", + "match": "^(?!\\s*\\*).*$\\n?", + "name": "invalid.illegal.missing-asterisk.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "3": { + "name": "storage.modifier.php" + }, + "4": { + "name": "invalid.illegal.wrong-access-type.phpdoc.php" + } + }, + "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "2": { + "name": "markup.underline.link.php" + } + }, + "match": "(@xlink)\\s+(.+)\\s*$" + }, + { + "match": "\\@(a(pi|bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|method|p(roperty(\\-read|\\-write|)|ackage|aram)|return|s(ee|ince|ource|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b", + "name": "keyword.other.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "match": "\\{(@(link)).+?\\}", + "name": "meta.tag.inline.phpdoc.php" + } + ] + }, + "regex-double-quoted": { + "begin": "(?x)\"/ (?= (\\\\.|[^\"/])++/[imsxeADSUXu]*\" )", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.double-quoted.php", + "patterns": [ + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "include": "#interpolation" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "regex-single-quoted": { + "begin": "(?x)'/ (?= ( \\\\ (?: \\\\ (?: \\\\ [\\\\']? | [^'] ) | . ) | [^'/] )++/[imsxeADSUXu]*' )", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.single-quoted.php", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#single_quote_regex_escape" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "include": "#single_quote_regex_escape" + } + ], + "repository": { + "single_quote_regex_escape": { + "comment": "Support both PHP string and regex escaping", + "match": "(?x) \\\\ (?: \\\\ (?: \\\\ [\\\\']? | [^'] ) | . )", + "name": "constant.character.escape.php" + } + } + }, + "sql-string-double-quoted": { + "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.sql.php", + "patterns": [ + { + "match": "#(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\\"`']", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "'(?=((\\\\')|[^'\"])*(\"|$))", + "name": "string.quoted.single.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + "sql-string-single-quoted": { + "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.sql.php", + "patterns": [ + { + "match": "#(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\'`\"]", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`'])*('|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "\"(?=((\\\\\")|[^\"'])*('|$))", + "name": "string.quoted.double.unclosed.sql" + }, + { + "include": "source.sql" + } + ] + }, + "string-backtick": { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.interpolated.php", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.php" + }, + { + "include": "#interpolation" + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "comment": "This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes", + "contentName": "meta.string-contents.quoted.double.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "meta.string-contents.quoted.single.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.php", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.php" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#regex-double-quoted" + }, + { + "include": "#sql-string-double-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#regex-single-quoted" + }, + { + "include": "#sql-string-single-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b", + "name": "support.function.apc.php" + }, + { + "match": "(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey(_exists)?|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|lumn|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b", + "name": "support.function.array.php" + }, + { + "match": "(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b", + "name": "support.function.basic_functions.php" + }, + { + "match": "(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b", + "name": "support.function.bcmath.php" + }, + { + "match": "(?i)\\bblenc_encrypt\\b", + "name": "support.function.blenc.php" + }, + { + "match": "(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b", + "name": "support.function.bz2.php" + }, + { + "match": "(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b", + "name": "support.function.calendar.php" + }, + { + "match": "(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b", + "name": "support.function.classobj.php" + }, + { + "match": "(?i)\\b(com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b", + "name": "support.function.com.php" + }, + { + "match": "(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b", + "name": "support.function.ctype.php" + }, + { + "match": "(?i)\\bcurl_(s(hare_(setopt|close|init)|trerror|etopt(_array)?)|c(opy_handle|lose)|init|unescape|pause|e(scape|rr(no|or)|xec)|version|file_create|reset|getinfo|multi_(s(trerror|e(topt|lect))|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b", + "name": "support.function.curl.php" + }, + { + "match": "(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_(immutable(_from_format)?|from_format))?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b", + "name": "support.function.datetime.php" + }, + { + "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b", + "name": "support.function.dba.php" + }, + { + "match": "(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b", + "name": "support.function.dbx.php" + }, + { + "match": "(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b", + "name": "support.function.dir.php" + }, + { + "match": "(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b", + "name": "support.function.eio.php" + }, + { + "match": "(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b", + "name": "support.function.enchant.php" + }, + { + "match": "(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b", + "name": "support.function.ereg.php" + }, + { + "match": "(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b", + "name": "support.function.errorfunc.php" + }, + { + "match": "(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b", + "name": "support.function.exec.php" + }, + { + "match": "(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b", + "name": "support.function.exif.php" + }, + { + "match": "(?i)\\bfann_(s(huffle_train_data|cale_(train(_data)?|input(_train_data)?|output(_train_data)?)|ubset_train_data|et_(s(caling_params|arprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift))|ca(scade_(num_candidate_groups|candidate_(stagnation_epochs|change_fraction|limit)|output_(stagnation_epochs|change_fraction)|weight_multiplier|activation_(steepnesses|functions)|m(in_(cand_epochs|out_epochs)|ax_(cand_epochs|out_epochs)))|llback)|train(ing_algorithm|_(stop_function|error_function))|input_scaling_params|output_scaling_params|error_log|quickprop_(decay|mu)|weight(_array)?|learning_(rate|momentum)|activation_(steepness(_(hidden|output|layer))?|function(_(hidden|output|layer))?)|rprop_(increase_factor|de(crease_factor|lta_(zero|m(in|ax))))|bit_fail_limit)|ave(_train)?)|num_(input_train_data|output_train_data)|c(opy|lear_scaling_params|ascadetrain_on_(data|file)|reate_(s(hortcut(_array)?|tandard(_array)?|parse(_array)?)|train(_from_callback)?|from_file))|t(est(_data)?|rain(_(on_(data|file)|epoch))?)|init_weights|d(uplicate_train_data|es(cale_(train|input|output)|troy(_train)?))|print_error|length_train_data|r(un|e(set_(MSE|err(str|no))|ad_train_from_file)|andomize_weights)|get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|n(um_(input|output|layers)|etwork_type)|MSE|c(onnection_(array|rate)|ascade_(num_candidate(s|_groups)|candidate_(stagnation_epochs|change_fraction|limit)|output_(stagnation_epochs|change_fraction)|weight_multiplier|activation_(steepnesses(_count)?|functions(_count)?)|m(in_(cand_epochs|out_epochs)|ax_(cand_epochs|out_epochs))))|t(otal_(neurons|connections)|rain(ing_algorithm|_(stop_function|error_function)))|err(str|no)|quickprop_(decay|mu)|l(earning_(rate|momentum)|ayer_array)|activation_(steepness|function)|rprop_(increase_factor|de(crease_factor|lta_(zero|m(in|ax))))|bi(t_fail(_limit)?|as_array))|merge_train_data)\\b", + "name": "support.function.fann.php" + }, + { + "match": "(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b", + "name": "support.function.file.php" + }, + { + "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", + "name": "support.function.fileinfo.php" + }, + { + "match": "(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b", + "name": "support.function.filter.php" + }, + { + "match": "(?i)\\bfastcgi_finish_request\\b", + "name": "support.function.fpm.php" + }, + { + "match": "(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b", + "name": "support.function.funchand.php" + }, + { + "match": "(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b", + "name": "support.function.gettext.php" + }, + { + "match": "(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|i(n(tval|it|vert)|mport)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|export|fact|legendre|a(nd|dd|bs)|r(oot(rem)?|andom(_(range|bits))?)|gcd(ext)?|xor|m(od|ul))\\b", + "name": "support.function.gmp.php" + }, + { + "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|equals|fi(nal|le)|algos))?\\b", + "name": "support.function.hash.php" + }, + { + "match": "(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b", + "name": "support.function.http.php" + }, + { + "match": "(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", + "name": "support.function.iconv.php" + }, + { + "match": "(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b", + "name": "support.function.iisfunc.php" + }, + { + "match": "(?i)\\b(i(ptc(parse|embed)|mage(s(y|cale|tring(up)?|et(style|t(hickness|ile)|interpolation|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|r(op(auto)?|eate(truecolor|from(string|jpeg|png|w(ebp|bmp)|g(if|d(2(part)?)?)|x(pm|bm)))?))|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alette(copy|totruecolor))|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width)|lip)|w(ebp|bmp)|l(ine|oadfont|ayereffect)|a(ntialias|ffine(matrix(concat|get))?|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b", + "name": "support.function.image.php" + }, + { + "match": "(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|cli_(set_process_title|get_process_title)|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b", + "name": "support.function.info.php" + }, + { + "match": "(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b", + "name": "support.function.interbase.php" + }, + { + "match": "(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl(cal_get_error_(code|message)|tz_get_error_(code|message)|_(is_failure|error_name|get_error_(code|message)))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|c(ompose|anonicalize)|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b", + "name": "support.function.intl.php" + }, + { + "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", + "name": "support.function.json.php" + }, + { + "match": "(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(scape|rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify(_batch)?|_(del|add|replace))|bind)\\b", + "name": "support.function.ldap.php" + }, + { + "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", + "name": "support.function.libxml.php" + }, + { + "match": "(?i)\\b(ezmlm_hash|mail)\\b", + "name": "support.function.mail.php" + }, + { + "match": "(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b", + "name": "support.function.math.php" + }, + { + "match": "(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b", + "name": "support.function.mbstring.php" + }, + { + "match": "(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b", + "name": "support.function.mcrypt.php" + }, + { + "match": "(?i)\\bmemcache_debug\\b", + "name": "support.function.memcache.php" + }, + { + "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", + "name": "support.function.mhash.php" + }, + { + "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", + "name": "support.function.mongo.php" + }, + { + "match": "(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b", + "name": "support.function.mysql.php" + }, + { + "match": "(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query|avepoint)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|lease_savepoint|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|links_stats|metadata)|m(ore_results|ulti_query|aster_query)|b(ind_(param|result)|egin_transaction))\\b", + "name": "support.function.mysqli.php" + }, + { + "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", + "name": "support.function.mysqlnd-memcache.php" + }, + { + "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", + "name": "support.function.mysqlnd-ms.php" + }, + { + "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b", + "name": "support.function.mysqlnd-qc.php" + }, + { + "match": "(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b", + "name": "support.function.mysqlnd-uh.php" + }, + { + "match": "(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b", + "name": "support.function.network.php" + }, + { + "match": "(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b", + "name": "support.function.nsapi.php" + }, + { + "match": "(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|get_implicit_resultset|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b", + "name": "support.function.oci8.php" + }, + { + "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", + "name": "support.function.opcache.php" + }, + { + "match": "(?i)\\bopenssl_(s(ign|pki_(new|export(_challenge)?|verify)|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt)|bkdf2)|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(c(ipher_methods|ert_locations)|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|f(ingerprint|ree)|read))\\b", + "name": "support.function.openssl.php" + }, + { + "match": "(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b", + "name": "support.function.output.php" + }, + { + "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", + "name": "support.function.password.php" + }, + { + "match": "(?i)\\bpcntl_(s(trerror|ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|e(rrno|xec)|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|get(_last_error|priority))\\b", + "name": "support.function.pcntl.php" + }, + { + "match": "(?i)\\bpg_(s(ocket|e(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect))|host|num_(fields|rows)|c(o(n(sume_input|nect(ion_(status|reset|busy)|_poll)?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|lush|ree_result)|l(o_(seek|c(lose|reate)|t(ell|runcate)|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b", + "name": "support.function.pgsql.php" + }, + { + "match": "(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b", + "name": "support.function.php_apache.php" + }, + { + "match": "(?i)\\bdom_import_simplexml\\b", + "name": "support.function.php_dom.php" + }, + { + "match": "(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b", + "name": "support.function.php_ftp.php" + }, + { + "match": "(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b", + "name": "support.function.php_imap.php" + }, + { + "match": "(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b", + "name": "support.function.php_mssql.php" + }, + { + "match": "(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b", + "name": "support.function.php_odbc.php" + }, + { + "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", + "name": "support.function.php_pcre.php" + }, + { + "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", + "name": "support.function.php_spl.php" + }, + { + "match": "(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b", + "name": "support.function.php_zip.php" + }, + { + "match": "(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b", + "name": "support.function.posix.php" + }, + { + "match": "(?i)\\bset(threadtitle|proctitle)\\b", + "name": "support.function.proctitle.php" + }, + { + "match": "(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b", + "name": "support.function.pspell.php" + }, + { + "match": "(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b", + "name": "support.function.readline.php" + }, + { + "match": "(?i)\\brecode(_(string|file))?\\b", + "name": "support.function.recode.php" + }, + { + "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport))\\b", + "name": "support.function.rrd.php" + }, + { + "match": "(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b", + "name": "support.function.sem.php" + }, + { + "match": "(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|abort|re(set|g(ister(_shutdown)?|enerate_id))|get_cookie_params|module_name)\\b", + "name": "support.function.session.php" + }, + { + "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", + "name": "support.function.shmop.php" + }, + { + "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", + "name": "support.function.simplexml.php" + }, + { + "match": "(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b", + "name": "support.function.snmp.php" + }, + { + "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", + "name": "support.function.soap.php" + }, + { + "match": "(?i)\\bsocket_(s(hutdown|trerror|e(nd(to|msg)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?|msg_space)|import_stream|write|l(isten|ast_error)|accept|re(cv(from|msg)?|ad)|get(sockname|_option|peername)|bind)\\b", + "name": "support.function.sockets.php" + }, + { + "match": "(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b", + "name": "support.function.sqlite.php" + }, + { + "match": "(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b", + "name": "support.function.sqlsrv.php" + }, + { + "match": "(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b", + "name": "support.function.stats.php" + }, + { + "match": "(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b", + "name": "support.function.streamsfuncs.php" + }, + { + "match": "(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b", + "name": "support.function.string.php" + }, + { + "match": "(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b", + "name": "support.function.sybase.php" + }, + { + "match": "(?i)\\b(taint|is_tainted|untaint)\\b", + "name": "support.function.taint.php" + }, + { + "match": "(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b", + "name": "support.function.tidy.php" + }, + { + "match": "(?i)\\btoken_(name|get_all)\\b", + "name": "support.function.tokenizer.php" + }, + { + "match": "(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b", + "name": "support.function.trader.php" + }, + { + "match": "(?i)\\buopz_(co(py|mpose)|implement|overload|delete|undefine|extend|f(unction|lags)|re(store|name|define)|backup)\\b", + "name": "support.function.uopz.php" + }, + { + "match": "(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b", + "name": "support.function.url.php" + }, + { + "match": "(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b", + "name": "support.function.var.php" + }, + { + "match": "(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b", + "name": "support.function.wddx.php" + }, + { + "match": "(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b", + "name": "support.function.xhprof.php" + }, + { + "match": "(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b", + "name": "support.function.xml.php" + }, + { + "match": "(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b", + "name": "support.function.xmlrpc.php" + }, + { + "match": "(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b", + "name": "support.function.xmlwriter.php" + }, + { + "match": "(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b", + "name": "support.function.zlib.php" + }, + { + "match": "(?i)\\bis_int(eger)?\\b", + "name": "support.function.alias.php" + } + ] + }, + "user-function-call": { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", + "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "var_basic": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)\n \t\t\t (\\$+)[a-zA-Z_\\x{7f}-\\x{ff}]\n \t\t\t [a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b", + "name": "variable.other.php" + } + ] + }, + "var_global": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", + "name": "variable.other.global.php" + }, + "var_global_safer": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", + "name": "variable.other.global.safer.php" + }, + "variable-name": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.class.php" + }, + "5": { + "name": "variable.other.property.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "name": "constant.numeric.index.php" + }, + "8": { + "name": "variable.other.index.php" + }, + "9": { + "name": "punctuation.definition.variable.php" + }, + "10": { + "name": "string.unquoted.index.php" + }, + "11": { + "name": "punctuation.section.array.end.php" + } + }, + "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar", + "match": "(?x)\n\t\t\t\t\t\t((\\$)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)(\\g)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g)|(\\w+))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "comment": "Simple syntax with braces: \"foo${bar}baz\"", + "match": "(?x)\n\t\t\t\t\t\t((\\$\\{)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\t\t\t\t\t\t" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "include": "#var_basic" + }, + { + "begin": "(\\$\\{)(?=.*?\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + } +} diff --git a/extensions/continue/textmate-syntaxes/properties.plist b/extensions/continue/textmate-syntaxes/properties.plist new file mode 100644 index 000000000000..11436566bd5a --- /dev/null +++ b/extensions/continue/textmate-syntaxes/properties.plist @@ -0,0 +1,181 @@ + + + + + fileTypes + + ini + conf + + keyEquivalent + ^~I + name + Ini + patterns + + + begin + (^[ \t]+)?(?=#) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.ini + + + end + (?!\G) + patterns + + + begin + # + beginCaptures + + 0 + + name + punctuation.definition.comment.ini + + + end + \n + name + comment.line.number-sign.ini + + + + + begin + (^[ \t]+)?(?=;) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.ini + + + end + (?!\G) + patterns + + + begin + ; + beginCaptures + + 0 + + name + punctuation.definition.comment.ini + + + end + \n + name + comment.line.semicolon.ini + + + + + captures + + 1 + + name + keyword.other.definition.ini + + 2 + + name + punctuation.separator.key-value.ini + + + match + \b([a-zA-Z0-9_.-]+)\b\s*(=) + + + captures + + 1 + + name + punctuation.definition.entity.ini + + 3 + + name + punctuation.definition.entity.ini + + + match + ^(\[)(.*?)(\]) + name + entity.name.section.group-title.ini + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.ini + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.ini + + + name + string.quoted.single.ini + patterns + + + match + \\. + name + constant.character.escape.ini + + + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.ini + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.ini + + + name + string.quoted.double.ini + + + scopeName + source.properties + uuid + 77DC23B6-8A90-11D9-BAA4-000A9584EC8C + + \ No newline at end of file diff --git a/extensions/continue/textmate-syntaxes/rust.json b/extensions/continue/textmate-syntaxes/rust.json new file mode 100644 index 000000000000..ab76ac521b73 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/rust.json @@ -0,0 +1,593 @@ +{ + "name": "Rust", + "scopeName": "source.rust", + "fileTypes": ["rs"], + "repository": { + "block_doc_comment": { + "comment": "Block documentation comment", + "name": "comment.block.documentation.rust", + "begin": "/\\*[\\*!](?![\\*/])", + "end": "\\*/", + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + } + ] + }, + "block_comment": { + "comment": "Block comment", + "name": "comment.block.rust", + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + } + ] + }, + "line_doc_comment": { + "comment": "Single-line documentation comment", + "name": "comment.line.documentation.rust", + "begin": "//[!/](?=[^/])", + "end": "$" + }, + "line_comment": { + "comment": "Single-line comment", + "name": "comment.line.double-slash.rust", + "begin": "//", + "end": "$" + }, + "escaped_character": { + "name": "constant.character.escape.rust", + "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)" + }, + "string_literal": { + "comment": "Double-quote string literal", + "name": "string.quoted.double.rust", + "begin": "b?\"", + "end": "\"", + "patterns": [ + { + "include": "#escaped_character" + } + ] + }, + "raw_string_literal": { + "comment": "Raw double-quote string literal", + "name": "string.quoted.double.raw.rust", + "begin": "b?r(#*)\"", + "end": "\"\\1" + }, + "sigils": { + "comment": "Sigil", + "name": "keyword.operator.sigil.rust", + "match": "[&*](?=[a-zA-Z0-9_\\(\\[\\|\\\"]+)" + }, + "self": { + "comment": "Self variable", + "name": "variable.language.rust", + "match": "\\bself\\b" + }, + "mut": { + "comment": "Mutable storage modifier", + "name": "storage.modifier.mut.rust", + "match": "\\bmut\\b" + }, + "box": { + "comment": "Box storage modifier", + "name": "storage.modifier.box.rust", + "match": "\\bbox\\b" + }, + "const": { + "comment": "Const storage modifier", + "name": "storage.modifier.const.rust", + "match": "\\bconst\\b" + }, + "pub": { + "comment": "Visibility modifier", + "name": "storage.modifier.visibility.rust", + "match": "\\bpub\\b" + }, + "lifetime": { + "comment": "Named lifetime", + "name": "storage.modifier.lifetime.rust", + "match": "'([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "captures": { + "1": { + "name": "entity.name.lifetime.rust" + } + } + }, + "ref_lifetime": { + "comment": "Reference with named lifetime", + "match": "&('([a-zA-Z_][a-zA-Z0-9_]*))\\b", + "captures": { + "1": { + "name": "storage.modifier.lifetime.rust" + }, + "2": { + "name": "entity.name.lifetime.rust" + } + } + }, + "core_types": { + "comment": "Built-in/core type", + "name": "storage.type.core.rust", + "match": "\\b(bool|char|usize|isize|u8|u16|u32|u64|i8|i16|i32|i64|f32|f64|str|Self|Option|Result)\\b" + }, + "core_vars": { + "comment": "Core type variant", + "name": "support.constant.core.rust", + "match": "\\b(Some|None|Ok|Err)\\b" + }, + "core_marker": { + "comment": "Core trait (marker)", + "name": "support.type.marker.rust", + "match": "\\b(Copy|Send|Sized|Sync)\\b" + }, + "core_traits": { + "comment": "Core trait", + "name": "support.type.core.rust", + "match": "\\b(Drop|Fn|FnMut|FnOnce|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator)\\b" + }, + "where": { + "comment": "Where clause", + "name": "keyword.other.rust", + "match": "\\bwhere\\b" + }, + "std_types": { + "comment": "Standard library type", + "name": "storage.class.std.rust", + "match": "\\b(Box|String|Vec|Path|PathBuf)\\b" + }, + "std_traits": { + "comment": "Standard library trait", + "name": "support.type.std.rust", + "match": "\\b(ToOwned|ToString)\\b" + }, + "type_params": { + "comment": "Type parameters", + "name": "meta.type_params.rust", + "begin": "<(?![=<])", + "end": ">", + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + } + ] + } + }, + "patterns": [ + { + "include": "#block_doc_comment" + }, + { + "include": "#block_comment" + }, + { + "include": "#line_doc_comment" + }, + { + "include": "#line_comment" + }, + { + "comment": "Attribute", + "name": "meta.attribute.rust", + "begin": "#\\!?\\[", + "end": "\\]", + "patterns": [ + { + "include": "#string_literal" + } + ] + }, + { + "comment": "Single-quote string literal (character)", + "name": "string.quoted.single.rust", + "match": "b?'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'" + }, + { + "include": "#string_literal" + }, + { + "include": "#raw_string_literal" + }, + { + "comment": "Floating point literal (fraction)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (exponent)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (typed)", + "name": "constant.numeric.float.rust", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b" + }, + { + "comment": "Integer literal (decimal)", + "name": "constant.numeric.integer.decimal.rust", + "match": "\\b[0-9][0-9_]*([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (hexadecimal)", + "name": "constant.numeric.integer.hexadecimal.rust", + "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (octal)", + "name": "constant.numeric.integer.octal.rust", + "match": "\\b0o[0-7_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Integer literal (binary)", + "name": "constant.numeric.integer.binary.rust", + "match": "\\b0b[01_]+([ui](8|16|32|64|s|size))?\\b" + }, + { + "comment": "Static storage modifier", + "name": "storage.modifier.static.rust", + "match": "\\bstatic\\b" + }, + { + "comment": "Boolean constant", + "name": "constant.language.boolean.rust", + "match": "\\b(true|false)\\b" + }, + { + "comment": "Control keyword", + "name": "keyword.control.rust", + "match": "\\b(break|continue|else|if|in|for|loop|match|return|while)\\b" + }, + { + "comment": "Keyword", + "name": "keyword.other.rust", + "match": "\\b(crate|extern|mod|let|proc|ref|use|super|as|where|move)\\b" + }, + { + "comment": "Unsafe code keyword", + "name": "keyword.other.unsafe.rust", + "match": "\\bunsafe\\b" + }, + { + "include": "#sigils" + }, + { + "include": "#self" + }, + { + "include": "#mut" + }, + { + "include": "#box" + }, + { + "include": "#lifetime" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#const" + }, + { + "include": "#pub" + }, + { + "comment": "Miscellaneous operator", + "name": "keyword.operator.misc.rust", + "match": "(=>|::|\\bas\\b)" + }, + { + "comment": "Comparison operator", + "name": "keyword.operator.comparison.rust", + "match": "(&&|\\|\\||==|!=)" + }, + { + "comment": "Assignment operator", + "name": "keyword.operator.assignment.rust", + "match": "(\\+=|-=|/=|\\*=|%=|\\^=|&=|\\|=|<<=|>>=|=)" + }, + { + "comment": "Arithmetic operator", + "name": "keyword.operator.arithmetic.rust", + "match": "(!|\\+|-|/|\\*|%|\\^|&|\\||<<|>>)" + }, + { + "comment": "Comparison operator (second group because of regex precedence)", + "name": "keyword.operator.comparison.rust", + "match": "(<=|>=|<|>)" + }, + { + "include": "#core_types" + }, + { + "include": "#core_vars" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "comment": "Built-in macro", + "name": "support.function.builtin.rust", + "match": "\\b(macro_rules|format_args|env|option_env|concat_idents|concat|log_syntax|line|column|file|stringify|include|include_str|include_bytes|module_path|asm|cfg|trace_macros)!" + }, + { + "comment": "Core macro", + "name": "support.function.core.rust", + "match": "\\b(panic|assert|assert_eq|debug_assert|debug_assert_eq|try|write|writeln|unreachable|unimplemented)!" + }, + { + "comment": "Standard library macro", + "name": "support.function.std.rust", + "match": "\\b(format|print|println|select|vec)!" + }, + { + "comment": "Logging macro", + "name": "support.function.log.rust", + "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!" + }, + { + "comment": "Invokation of a macro", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]", + "captures": { + "1": { + "name": "entity.name.function.macro.rust" + } + } + }, + { + "comment": "Function call", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(", + "captures": { + "1": { + "name": "entity.name.function.rust" + } + } + }, + { + "comment": "Function definition", + "begin": "\\b(fn)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": "[\\{;]", + "beginCaptures": { + "1": { + "name": "keyword.other.fn.rust" + }, + "2": { + "name": "entity.name.function.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#self" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "include": "#const" + }, + { + "include": "#where" + } + ] + }, + { + "comment": "Type declaration", + "begin": "\\b(enum|struct|trait)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": "[\\{\\(;]", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "entity.name.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "include": "#core_types" + }, + { + "include": "#pub" + }, + { + "include": "#where" + } + ] + }, + { + "comment": "Type alias", + "begin": "\\b(type)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "end": ";", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "entity.name.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + } + ] + }, + { + "comment": "Implementation", + "begin": "\\b(impl)\\b", + "end": "\\{", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + } + }, + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#sigils" + }, + { + "include": "#mut" + }, + { + "include": "#ref_lifetime" + }, + { + "include": "#core_types" + }, + { + "include": "#core_marker" + }, + { + "include": "#core_traits" + }, + { + "include": "#std_types" + }, + { + "include": "#std_traits" + }, + { + "include": "#type_params" + }, + { + "name": "storage.type.rust", + "match": "\\bfor\\b" + }, + { + "include": "#where" + } + ] + } + ] +} diff --git a/extensions/continue/textmate-syntaxes/scss.json b/extensions/continue/textmate-syntaxes/scss.json new file mode 100644 index 000000000000..d0726548d76c --- /dev/null +++ b/extensions/continue/textmate-syntaxes/scss.json @@ -0,0 +1,1667 @@ +{ + "scopeName": "source.css.scss", + "name": "SCSS", + "fileTypes": ["scss", "css.scss", "css.scss.erb", "scss.erb"], + "patterns": [ + { + "include": "#variable_setting" + }, + { + "include": "#at_rule_include" + }, + { + "include": "#at_rule_import" + }, + { + "include": "#general" + }, + { + "include": "#flow_control" + }, + { + "include": "#rules" + }, + { + "include": "#property_list" + }, + { + "include": "#at_rule_mixin" + }, + { + "include": "#at_rule_media" + }, + { + "include": "#at_rule_function" + }, + { + "include": "#at_rule_charset" + }, + { + "include": "#at_rule_option" + }, + { + "include": "#at_rule_namespace" + }, + { + "include": "#at_rule_fontface" + }, + { + "include": "#at_rule_page" + }, + { + "include": "#at_rule_keyframes" + }, + { + "include": "#at_rule_at_root" + }, + { + "include": "#at_rule_supports" + } + ], + "repository": { + "at_rule__": { + "comment": "Note how all @rules are prefixed." + }, + "at_rule_charset": { + "begin": "\\s*((@)charset\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "comment": "Charset", + "end": "\\s*((?=;|$))", + "name": "meta.at-rule.charset.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + "at_rule_content": { + "begin": "\\s*((@)content\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.content.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.content.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_each": { + "begin": "\\s*((@)each\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.each.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=}))", + "name": "meta.at-rule.each.scss", + "patterns": [ + { + "match": "\\b(in|,)\\b", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_else": { + "begin": "\\s*((@)else(\\s*(if)?))\\s*", + "captures": { + "1": { + "name": "keyword.control.else.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.else.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_extend": { + "begin": "\\s*((@)extend\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.import.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_fontface": { + "patterns": [ + { + "begin": "^\\s*((@)font-face\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.fontface.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.fontface.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + } + ] + }, + "at_rule_for": { + "begin": "\\s*((@)for\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.for.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.for.scss", + "patterns": [ + { + "match": "(==|!=|<=|>=|<|>|from|to|through)", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_function": { + "patterns": [ + { + "begin": "\\s*((@)function\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Function with Attributes", + "end": "\\s*(?={)", + "name": "meta.at-rule.function.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Simple Function", + "match": "\\s*((@)function\\b)\\s*", + "name": "meta.at-rule.function.scss" + } + ] + }, + "at_rule_if": { + "begin": "\\s*((@)if\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.if.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.if.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_import": { + "begin": "\\s*((@)import\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;)|(?=}))", + "name": "meta.at-rule.import.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#functions" + }, + { + "include": "#comment_line" + } + ] + }, + "at_rule_include": { + "patterns": [ + { + "begin": "(?<=@include)\\s+([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.scss" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.include.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@include)\\s+([\\w-]+)", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "entity.name.function.scss" + } + } + }, + { + "match": "((@)include)\\b", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "keyword.control.at-rule.include.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + } + } + ] + }, + "at_rule_keyframes": { + "begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.keyframes.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?<=})", + "name": "meta.at-rule.keyframes.scss", + "patterns": [ + { + "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + } + }, + { + "begin": "(?<=@keyframes)\\s+(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(?<=@keyframes)\\s+(')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.keyframes.begin.scss" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.keyframes.end.scss" + } + }, + "patterns": [ + { + "match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)", + "name": "entity.other.attribute-name.scss" + }, + { + "include": "#flow_control" + }, + { + "include": "#interpolation" + }, + { + "include": "#property_list" + }, + { + "include": "#rules" + } + ] + } + ] + }, + "at_rule_media": { + "patterns": [ + { + "begin": "^\\s*((@)media\\b)\\s*", + "end": "\\s*(?={)", + "captures": { + "1": { + "name": "keyword.control.at-rule.media.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.media.scss", + "patterns": [ + { + "match": "\\b(only)\\b", + "name": "keyword.control.operator" + }, + { + "include": "#media_features" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + }, + { + "include": "#conditional_operators" + }, + { + "include": "#media_types" + }, + { + "include": "#property_names" + } + ] + } + ] + }, + "at_rule_mixin": { + "patterns": [ + { + "begin": "(?<=@mixin)\\s+([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.scss" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.mixin.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@mixin)\\s+([\\w-]+)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + }, + { + "match": "((@)mixin)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.mixin.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + } + ] + }, + "at_rule_namespace": { + "patterns": [ + { + "begin": "(?<=@namespace)\\s+(?=url)", + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "begin": "(?<=@namespace)\\s+([\\w-]*)", + "captures": { + "1": { + "name": "entity.name.namespace-prefix.scss" + } + }, + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "match": "((@)namespace)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.namespace.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.namespace.scss" + } + ] + }, + "at_rule_option": { + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "comment": "Option", + "match": "^\\s*((@)option\\b)\\s*", + "name": "meta.at-rule.option.scss" + }, + "at_rule_page": { + "patterns": [ + { + "begin": "^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)", + "captures": { + "1": { + "name": "keyword.control.at-rule.page.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "comment": "Page with Attributes", + "end": "\\s*(?={)", + "name": "meta.at-rule.page.scss" + } + ] + }, + "at_rule_return": { + "begin": "\\s*((@)(return)\\b)", + "captures": { + "1": { + "name": "keyword.control.return.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.at-rule.return.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_at_root": { + "begin": "\\s*((@)(at-root))(\\s+|$)", + "end": "\\s*(?={)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.at-root.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.at-root.scss", + "patterns": [ + { + "include": "#function_attributes" + }, + { + "include": "#functions" + }, + { + "include": "#selectors" + } + ] + }, + "at_rule_supports": { + "begin": "(?<=^|\\s)(@)supports\\b", + "captures": { + "0": { + "name": "keyword.control.at-rule.supports.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?={)|$", + "name": "meta.at-rule.supports.scss", + "patterns": [ + { + "include": "#logical_operators" + }, + { + "include": "#properties" + }, + { + "match": "\\(", + "name": "punctuation.definition.condition.begin.bracket.round.scss" + }, + { + "match": "\\)", + "name": "punctuation.definition.condition.end.bracket.round.scss" + } + ] + }, + "at_rule_warn": { + "begin": "\\s*((@)(warn|debug|error)\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.warn.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.warn.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_double" + }, + { + "include": "#string_single" + } + ] + }, + "at_rule_while": { + "begin": "\\s*((@)while\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.while.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=})", + "name": "meta.at-rule.while.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "comment_block": { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "name": "comment.block.scss" + }, + "comment_line": { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\n", + "name": "comment.line.scss" + }, + "constant_color": { + "comment": "http://www.w3.org/TR/css3-color/#svg-color", + "match": "\\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|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|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|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)\\b", + "name": "support.constant.color.w3c-standard-color-name.scss" + }, + "constant_default": { + "match": "!default", + "name": "keyword.other.default.scss" + }, + "constant_deprecated_color": { + "comment": "These colours are deprecated from CSS color module level 3 http://www.w3.org/TR/css3-color/#css2-system", + "match": "\\b(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\\b", + "name": "invalid.deprecated.color.system.css.scss" + }, + "constant_font": { + "match": "(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)", + "name": "support.constant.font-name.scss" + }, + "constant_functions": { + "begin": "([\\w-]+)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.scss" + }, + "2": { + "name": "punctuation.section.function.scss" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.scss" + } + }, + "patterns": [ + { + "include": "#parameters" + } + ] + }, + "constant_hex": { + "captures": { + "1": { + "name": "punctuation.definition.constant.scss" + } + }, + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b", + "name": "constant.numeric.color.hex-value.scss" + }, + "constant_important": { + "match": "!important", + "name": "keyword.other.important.scss" + }, + "constant_mathematical_symbols": { + "match": "\\b(\\+|-|\\*|/)\\b", + "name": "support.constant.mathematical-symbols.scss" + }, + "constant_number": { + "match": "(\\b([0-9]+(\\.[0-9]+)?)|\\B\\.[0-9]+)(?=\\s*(ch|cm|deg|dpi|dpcm|dppx|em|ex|grad|in|mm|mozmm|ms|pc|pt|px|rad|rem|turn|s|vh|vmin|vmax|vw|\\b))", + "name": "constant.numeric.scss" + }, + "constant_optional": { + "match": "!optional", + "name": "keyword.other.optional.scss" + }, + "constant_property_value": { + "match": "\\b(absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|border-box|break-all|break-word|butt|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|column-reverse|column|contain|content-box|cover|crosshair|currentColor|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in-out|ease-in|ease-out|ease|ellipsis|fill|fixed|flex-end|flex-start|flex|georgian|grid|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline-flex|inline-grid|inline-table|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|landscape|left|lighter|line-edge|line-through|line|linear|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|manipulation|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|null|oblique|outset|outside|overline|pan-(x|y|left|right|up|down)|pointer|portrait|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|right|ridge|round|row-resize|row-reverse|row|rtl|ruby-base-container|ruby-base|ruby-text-container|ruby-text|ruby|s-resize|scale-down|scroll|se-resize|separate|small-caps|solid|space-around|space-between|square|static|step-end|step-start|stretch|strict|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|wrap|wrap-reverse|zero|true|false|vertical|horizontal)\\b", + "name": "support.constant.property-value.scss" + }, + "constant_rgb": { + "match": "(?x)\n(?=|<|>", + "name": "keyword.operator.comparison.scss" + }, + "logical_operators": { + "match": "\\b(not\\b|or\\b|and\\b)", + "name": "keyword.operator.logical.scss" + }, + "map": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.map.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.map.end.bracket.round.scss" + } + }, + "name": "meta.set.variable.map.scss", + "patterns": [ + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "match": "\\b([\\w-]+)\\s*(:)", + "captures": { + "1": { + "name": "support.type.map.key.scss" + }, + "2": { + "name": "punctuation.separator.key-value.scss" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + }, + { + "include": "#map" + } + ] + }, + "media_attributes": { + "patterns": [ + { + "match": ":", + "name": "punctuation.separator.key-value.scss" + }, + { + "include": "#general" + }, + { + "include": "#property_name" + }, + { + "include": "#property_values" + }, + { + "comment": "We even have error highlighting <3", + "match": "[={}\\?@]", + "name": "invalid.illegal.scss" + } + ] + }, + "media_features": { + "patterns": [ + { + "match": "\\b(min-device-aspect-ratio|max-device-aspect-ratio|device-aspect-ratio|min-aspect-ratio|max-aspect-ratio|aspect-ratio|min-device-height|max-device-height|device-height|min-device-width|max-device-width|device-width|min-monochrome|max-monochrome|monochrome|min-color-index|max-color-index|color-index|min-color|max-color|color|orientation|scan|min-resolution|max-resolution|resolution|grid|min-width|max-width|width)\\b", + "name": "support.type.property-name.media.css" + } + ] + }, + "media_types": { + "patterns": [ + { + "match": "\\b(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)\\b", + "name": "support.constant.media.css" + } + ] + }, + "operators": { + "match": "[-+*/](?!\\s*[-+*/])", + "name": "keyword.operator.css" + }, + "parameters": { + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "#comment_block" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.scss" + } + }, + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "[^'\",) \\t]+", + "name": "variable.parameter.url.scss" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + } + ] + }, + "properties": { + "patterns": [ + { + "begin": "(?(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(])", + "name": "meta.attribute-selector.scss" + }, + "selector_class": { + "begin": "(\\.)(?=[\\w-]|#{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "end": "(?![\\w-]|(#{))", + "name": "entity.other.attribute-name.class.css", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "selector_entities": { + "match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|ellipse|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line(?!-)|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object(?!-)|ol|optgroup|option|output|p|param|path|picture|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|text(?!-)|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b", + "name": "entity.name.tag.scss" + }, + "selector_custom": { + "match": "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)", + "name": "entity.name.tag.custom.scss" + }, + "selector_id": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.id.css" + }, + "selector_placeholder": { + "captures": { + "1": { + "name": "punctuation.definition.entity.scss" + } + }, + "match": "(%)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.placeholder.scss" + }, + "parent_selector_suffix": { + "match": "(?<=&)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.parent-selector-suffix.scss" + }, + "selector_pseudo_class": { + "patterns": [ + { + "begin": "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.definition.pseudo-class.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.pseudo-class.end.bracket.round.css" + } + }, + "patterns": [ + { + "match": "\\d+", + "name": "constant.numeric.scss" + }, + { + "match": "(?<=\\d)n\\b|\\b(n|even|odd)\\b", + "name": "constant.other.scss" + }, + { + "match": "\\w+", + "name": "invalid.illegal.scss" + } + ] + }, + { + "match": "(?x)\n(:)\\b\n(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|\nindeterminate|root|first-child|last-child|first-of-type|last-of-type|\nonly-child|only-of-type|empty|not|valid|invalid)\\b", + "captures": { + "0": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "1": { + "name": "punctuation.definition.entity.css" + } + } + } + ] + }, + "selector_pseudo_element": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:+)((-(moz|webkit|ms)-)?(after|before|first-letter|first-line|selection))\\b", + "name": "entity.other.attribute-name.pseudo-element.css" + }, + "selectors": { + "comment": "Stuff for Selectors.", + "patterns": [ + { + "include": "#selector_entities" + }, + { + "include": "#selector_custom" + }, + { + "include": "#selector_class" + }, + { + "include": "#selector_id" + }, + { + "include": "#selector_pseudo_class" + }, + { + "include": "#tag_wildcard" + }, + { + "include": "#tag_parent_reference" + }, + { + "include": "#selector_pseudo_element" + }, + { + "include": "#selector_attribute" + }, + { + "include": "#selector_placeholder" + }, + { + "include": "#parent_selector_suffix" + } + ] + }, + "string_double": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "string_single": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "tag_parent_reference": { + "match": "&", + "name": "entity.name.tag.reference.scss" + }, + "tag_wildcard": { + "match": "\\*", + "name": "entity.name.tag.wildcard.scss" + }, + "variable": { + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#interpolation" + } + ] + }, + "variable_setting": { + "begin": "\\s*(\\$[A-Za-z0-9_-]+\\b)\\s*(:)\\s*", + "captures": { + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.separator.key-value.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.set.variable.scss", + "patterns": [ + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "include": "#map" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + } + ] + }, + "variables": { + "match": "\\$[A-Za-z0-9_-]+\\b", + "name": "variable.scss" + } + }, + "version": "https://github.com/atom/language-sass/commit/b0417d1412a9169562f637133099fe2bb841a735" +} diff --git a/extensions/continue/textmate-syntaxes/shaderlab.json b/extensions/continue/textmate-syntaxes/shaderlab.json new file mode 100644 index 000000000000..e230ab23f54d --- /dev/null +++ b/extensions/continue/textmate-syntaxes/shaderlab.json @@ -0,0 +1,131 @@ +{ + "scopeName": "source.shaderlab", + "name": "ShaderLab", + "fileTypes": ["shader"], + "patterns": [ + { + "match": "\\b([0-9]+\\.?[0-9]*)\\b", + "name": "constant.numeric.shaderlab" + }, + { + "match": "\\b(Shader|Properties|Category|SubShader|Tags|Pass)\\b", + "name": "support.class.shaderlab" + }, + { + "match": "\\b(CGPROGRAM|ENDCG)\\b", + "name": "support.class.shaderlab" + }, + { + "match": "\\b(Dependency|Fallback)\\b", + "name": "support.variable.shaderlab" + }, + { + "match": "^\\s*\\[(HideInInspector)\\]", + "name": "keyword.shaderlab" + }, + { + "match": "\\b(_\\w+)\\b", + "name": "support.variable.input.shaderlab" + }, + { + "match": "\\b(uv(2)*_\\w+|viewDir|COLOR|screenPos|worldPos|worldRefl|worldNormal|worldRefl|worldNormal)\\b", + "name": "support.variable.input.shaderlab" + }, + { + "match": "\\b(Albedo|Normal|Emission|Specular|Gloss|Alpha)\\b", + "name": "support.variable.output.shaderlab" + }, + { + "match": "\\b(appdata_(base|tan|full|img)|SurfaceOutput)\\b", + "name": "support.variable.structure.shaderlab" + }, + { + "match": "\\b(UNITY_MATRIX_(MVP|MV|V|P|VP|T_MV|IT_MV|TEXTURE0|TEXTURE1|TEXTURE2|TEXTURE3)|_Object2World|_World2Object|_WorldSpaceCameraPos|unity_Scale)\\b", + "name": "support.variable.transformation.shaderlab" + }, + { + "match": "\\b(_ModelLightColor[0-9]|_SpecularLightColor[0-9]|_ObjectSpaceLightPos|_Light2World|_World2Light|_Object2Light)\\b", + "name": "support.variable.lighting.shaderlab" + }, + { + "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime|_ProjectionParams|_ScreenParams)\\b", + "name": "support.variable.other.shaderlab" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#functions" + }, + { + "include": "#cg" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "begin": "//", + "end": "$", + "name": "comment.line.double-slash.shaderlab" + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.line.block.shaderlab" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.shaderlab" + } + ] + }, + "functions": { + "patterns": [ + { + "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)" + } + ] + } + ] + } + ] + }, + "escaped-char": { + "patterns": [ + { + "name": "constant.character.escape.swift", + "match": "\\\\[0\\\\tnr\"']" + }, + { + "name": "constant.character.escape.swift", + "match": "\\\\(x\\h{2}|u\\h{4}|U\\h{8})" + }, + { + "name": "invalid.illegal.constant.character.escape.swift", + "match": "\\\\[^uxU]" + } + ] + }, + "identifier": { + "match": "(?x) (? \\g \\g? | ` \\g \\g? ` ){0} (? [ a-z A-Z ] | [ \\u00A8 \\u00AA \\u00AD \\u00AF \\u00B2-\\u00B5 \\u00B7-\\u00BA ] | [ \\u00BC-\\u00BE \\u00C0-\\u00D6 \\u00D8-\\u00F6 \\u00F8-\\u00FF ] | [ \\u0100-\\u02FF \\u0370-\\u167F \\u1681-\\u180D \\u180F-\\u1DBF ] | [ \\u1E00-\\u1FFF ] | [ \\u200B-\\u200D \\u202A-\\u202E \\u203F-\\u2040 \\u2054 \\u2060-\\u206F ] | [ \\u2070-\\u20CF \\u2100-\\u218F \\u2460-\\u24FF \\u2776-\\u2793 ] | [ \\u2C00-\\u2DFF \\u2E80-\\u2FFF ] | [ \\u3004-\\u3007 \\u3021-\\u302F \\u3031-\\u303F \\u3040-\\uD7FF ] | [ \\uF900-\\uFD3D \\uFD40-\\uFDCF \\uFDF0-\\uFE1F \\uFE30-\\uFE44 ] | [ \\uFE47-\\uFFFD ] | [ \\u10000-\\u1FFFD \\u20000-\\u2FFFD \\u30000-\\u3FFFD \\u40000-\\u4FFFD ] | [ \\u50000-\\u5FFFD \\u60000-\\u6FFFD \\u70000-\\u7FFFD \\u80000-\\u8FFFD ] | [ \\u90000-\\u9FFFD \\uA0000-\\uAFFFD \\uB0000-\\uBFFFD \\uC0000-\\uCFFFD ] | [ \\uD0000-\\uDFFFD \\uE0000-\\uEFFFD ] ){0} (? \\d | [ \\u0300-\\u036F \\u1DC0-\\u1DFF \\u20D0-\\u20FF \\uFE20-\\uFE2F ] | \\g ){0} (? \\g \\g? ){0} (? (?) \\$ \\d+ (?!\\g) (?# FIXME) ){0} \\g | \\g", + "captures": { + "5": { + "name": "variable.other.positional.swift" + } + } + }, + "literal": { + "patterns": [ + { + "include": "#literal-number" + }, + { + "include": "#literal-string" + }, + { + "include": "#literal-boolean" + } + ] + }, + "literal-number": { + "name": "constant.numeric.swift", + "match": "(?x) (?### INTEGER ###) (? \\g | \\g | \\g | \\g ){0} (?### BINARY ###) (? 0b \\g \\g? ){0} (? [0-1] ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### OCTAL ###) (? 0o \\g \\g? ){0} (? [0-7] ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### DECIMAL ###) (? \\g \\g? ){0} (? \\d ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### HEXADECIMAL ###) (? 0x \\g \\g? ){0} (? \\h ){0} (? \\g | _ ){0} (? \\g \\g? ){0} (?### FLOATING POINT ###) (? \\g \\g? \\g? | \\g \\g? \\g ){0} (? \\. \\g ){0} (? \\g \\g? \\g ){0} (? \\. \\g? ){0} (? \\g \\g? \\g ){0} (? [eE] ){0} (? [pP] ){0} (? [+-] ){0} (?!0[box]) \\g | \\g" + }, + "literal-string": { + "name": "string.quoted.double.swift", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + } + }, + "patterns": [ + { + "include": "#quoted-text" + } + ] + }, + "literal-boolean": { + "match": "\\b(true|false)\\b(?![?!])", + "name": "constant.language.boolean.swift" + }, + "operator": { + "patterns": [ + { + "include": "#operator-character" + } + ] + }, + "operator-character": { + "name": "keyword.operator.swift", + "match": "[\\/=\\-+!*%<>&|^~.]" + }, + "quoted-text": { + "patterns": [ + { + "name": "meta.embedded.line.swift", + "contentName": "source.swift", + "begin": "\\\\\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#escaped-char" + } + ] + }, + "function": { + "name": "meta.function.swift", + "begin": "(func) \\s*", + "end": "(?=\\{|#)|;|$", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + } + }, + "comment": "match regular function like: func myFunc(...)", + "patterns": [ + { + "begin": "([a-zA-Z_0-9]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "comment": "match regular function like: func myFunc(...)", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + } + }, + { + "name": "meta.return-type.swift", + "match": "((->)\\s*([^\\{]+))", + "captures": { + "2": { + "name": "punctuation.function.swift" + }, + "3": { + "name": "entity.name.type.class.swift" + } + } + } + ] + }, + "whitespace": { + "match": "(?x) [ \\u0020 (?# space) \\u000A (?# line-feed) \\u000D (?# carriage-return) \\u0009 (?# horizontal-tab) \\u000B (?# vertical-tab) \\u000C (?# form-feed) \\u0000 (?# null) ]" + }, + "attribute": { + "name": "storage.type.attribute.swift", + "begin": "@", + "end": " " + } + } +} diff --git a/extensions/continue/textmate-syntaxes/xml.json b/extensions/continue/textmate-syntaxes/xml.json new file mode 100644 index 000000000000..51bff2fb61ed --- /dev/null +++ b/extensions/continue/textmate-syntaxes/xml.json @@ -0,0 +1,426 @@ +{ + "scopeName": "text.xml", + "name": "XML", + "fileTypes": [ + "atom", + "axml", + "bpmn", + "config", + "cpt", + "csl", + "csproj", + "csproj.user", + "dae", + "dia", + "dita", + "ditamap", + "dtml", + "fodg", + "fodp", + "fods", + "fodt", + "fsproj", + "fxml", + "glade", + "gpx", + "graphml", + "icls", + "iml", + "isml", + "jmx", + "jsp", + "launch", + "menu", + "mxml", + "nuspec", + "opml", + "owl", + "pom", + "ppj", + "proj", + "pt", + "pubxml", + "pubxml.user", + "rdf", + "rng", + "rss", + "shproj", + "storyboard", + "svg", + "targets", + "tld", + "vbox", + "vbox-prev", + "vbproj", + "vbproj.user", + "vcproj", + "vcproj.filters", + "vcxproj", + "vcxproj.filters", + "wsdl", + "xaml", + "xbl", + "xib", + "xlf", + "xliff", + "xml", + "xpdl", + "xsd", + "xul", + "ui" + ], + "patterns": [ + { + "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml", + "patterns": [ + { + "match": " ([a-zA-Z-]+)", + "name": "entity.other.attribute-name.xml" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.sgml.doctype.xml", + "patterns": [ + { + "include": "#internalSubset" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)()", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "punctuation.definition.tag.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "entity.name.tag.namespace.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + }, + "7": { + "name": "punctuation.definition.tag.xml" + } + }, + "name": "meta.tag.no-content.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "begin": "()", + "name": "meta.tag.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + }, + { + "begin": "<%@", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java-props.embedded.xml", + "patterns": [ + { + "match": "page|include|taglib", + "name": "keyword.other.page-props.xml" + } + ] + }, + { + "begin": "<%[!=]?(?!--)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "(?!--)%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java.embedded.xml", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.unquoted.cdata.xml" + } + ], + "repository": { + "EntityDecl": { + "begin": "()", + "patterns": [ + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "bare-ampersand": { + "match": "&", + "name": "invalid.illegal.bad-ampersand.xml" + }, + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "entity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.xml" + }, + "internalSubset": { + "begin": "(\\[)", + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + } + }, + "end": "(\\])", + "name": "meta.internalsubset.xml", + "patterns": [ + { + "include": "#EntityDecl" + }, + { + "include": "#parameterEntity" + }, + { + "include": "#comments" + } + ] + }, + "parameterEntity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", + "name": "constant.character.parameter-entity.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "tagStuff": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)=" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "comments": { + "begin": "<[!%]--", + "captures": { + "0": { + "name": "punctuation.definition.comment.xml" + } + }, + "end": "--%?>", + "name": "comment.block.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/f461d428fb87040cb8a52d87d0b95151b9d3c0cc" +} diff --git a/extensions/continue/textmate-syntaxes/xsl.json b/extensions/continue/textmate-syntaxes/xsl.json new file mode 100644 index 000000000000..0daa90e13799 --- /dev/null +++ b/extensions/continue/textmate-syntaxes/xsl.json @@ -0,0 +1,90 @@ +{ + "scopeName": "text.xml.xsl", + "name": "XSL", + "fileTypes": ["xsl", "xslt"], + "patterns": [ + { + "begin": "(<)(xsl)((:))(template)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.namespace.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)", + "name": "meta.tag.xml.template", + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": " (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "include": "text.xml" + } + ], + "repository": { + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml" + } + }, + "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280" +} diff --git a/extensions/continue/textmate-syntaxes/yaml.json b/extensions/continue/textmate-syntaxes/yaml.json new file mode 100644 index 000000000000..97bc4355289f --- /dev/null +++ b/extensions/continue/textmate-syntaxes/yaml.json @@ -0,0 +1,629 @@ +{ + "fileTypes": [ + "yaml", + "yml", + "rviz", + "reek", + "clang-format", + "yaml-tmlanguage", + "syntax", + "sublime-syntax" + ], + "firstLineMatch": "^%YAML( ?1.\\d+)?", + "keyEquivalent": "^~Y", + "name": "YAML", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + }, + { + "include": "#directive" + }, + { + "match": "^---", + "name": "entity.other.document.begin.yaml" + }, + { + "match": "^\\.{3}", + "name": "entity.other.document.end.yaml" + }, + { + "include": "#node" + } + ], + "repository": { + "block-collection": { + "patterns": [ + { + "include": "#block-sequence" + }, + { + "include": "#block-mapping" + } + ] + }, + "block-mapping": { + "patterns": [ + { + "include": "#block-pair" + } + ] + }, + "block-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#block-scalar" + }, + { + "include": "#block-collection" + }, + { + "include": "#flow-scalar-plain-out" + }, + { + "include": "#flow-node" + } + ] + }, + "block-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=\\?)|^ *(:)|(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.key-value.mapping.yaml" + }, + "2": { + "name": "invalid.illegal.expected-newline.yaml" + } + }, + "name": "meta.block-mapping.yaml", + "patterns": [ + { + "include": "#block-node" + } + ] + }, + { + "begin": "(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\\s\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + { + "match": ":(?=\\s|$)", + "name": "punctuation.separator.key-value.mapping.yaml" + } + ] + }, + "block-scalar": { + "begin": "(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.scalar.literal.yaml" + }, + "2": { + "name": "punctuation.definition.block.scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "support.other.chomping-indicator.yaml" + }, + "5": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": ".+", + "name": "invalid.illegal.expected-comment-or-newline.yaml" + } + ] + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "^([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "string.unquoted.block.yaml" + } + ] + }, + "block-sequence": { + "match": "(-)( |\\t|$)", + "name": "punctuation.definition.block.sequence.item.yaml" + }, + "comment": { + "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.yaml" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.yaml" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.yaml" + } + ] + }, + "directive": { + "begin": "^%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.directive.begin.yaml" + } + }, + "end": "(?=$|[ \\t]+($|#))", + "name": "meta.directive.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.directive.yaml.yaml" + }, + "2": { + "name": "constant.numeric.yaml-version.yaml" + } + }, + "match": "\\G(YAML)[ \\t]+(\\d+\\.\\d+)" + }, + { + "captures": { + "1": { + "name": "keyword.other.directive.tag.yaml" + }, + "2": { + "name": "storage.type.tag-handle.yaml" + }, + "3": { + "name": "support.type.tag-prefix.yaml" + } + }, + "match": "(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n " + }, + { + "captures": { + "1": { + "name": "support.other.directive.reserved.yaml" + }, + "2": { + "name": "string.unquoted.directive-name.yaml" + }, + "3": { + "name": "string.unquoted.directive-parameter.yaml" + } + }, + "match": "(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?" + }, + { + "match": "\\S+", + "name": "invalid.illegal.unrecognized.yaml" + } + ] + }, + "flow-alias": { + "captures": { + "1": { + "name": "keyword.control.flow.alias.yaml" + }, + "2": { + "name": "punctuation.definition.alias.yaml" + }, + "3": { + "name": "variable.other.alias.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?" + }, + "flow-collection": { + "patterns": [ + { + "include": "#flow-sequence" + }, + { + "include": "#flow-mapping" + } + ] + }, + "flow-mapping": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.mapping.begin.yaml" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.mapping.end.yaml" + } + }, + "name": "meta.flow-mapping.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.mapping.yaml" + }, + { + "include": "#flow-pair" + } + ] + }, + "flow-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-alias" + }, + { + "include": "#flow-collection" + }, + { + "include": "#flow-scalar" + } + ] + }, + "flow-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.explicit.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + { + "begin": "(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\\s\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "meta.flow-pair.key.yaml", + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "captures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.yaml", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + "flow-scalar": { + "patterns": [ + { + "include": "#flow-scalar-double-quoted" + }, + { + "include": "#flow-scalar-single-quoted" + }, + { + "include": "#flow-scalar-plain-in" + } + ] + }, + "flow-scalar-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.double.yaml", + "patterns": [ + { + "match": "\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})", + "name": "constant.character.escape.yaml" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.double-quoted.newline.yaml" + } + ] + }, + "flow-scalar-plain-in": { + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + "flow-scalar-plain-in-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n | \\s* : [\\[\\]{},]\n | [\\[\\]{},]\n )\n )\n " + } + ] + }, + "flow-scalar-plain-out": { + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + "flow-scalar-plain-out-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : \\s\n )\n )\n " + } + ] + }, + "flow-scalar-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "'(?!')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.single.yaml", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.single-quoted.yaml" + } + ] + }, + "flow-sequence": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.sequence.begin.yaml" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.sequence.end.yaml" + } + }, + "name": "meta.flow-sequence.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.sequence.yaml" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + } + ] + }, + "flow-value": { + "patterns": [ + { + "begin": "\\G(?![},\\]])", + "end": "(?=[},\\]])", + "name": "meta.flow-pair.value.yaml", + "patterns": [ + { + "include": "#flow-node" + } + ] + } + ] + }, + "node": { + "patterns": [ + { + "include": "#block-node" + } + ] + }, + "property": { + "begin": "(?=!|&)", + "end": "(?!\\G)", + "name": "meta.property.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.property.anchor.yaml" + }, + "2": { + "name": "punctuation.definition.anchor.yaml" + }, + "3": { + "name": "entity.name.type.anchor.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?" + }, + { + "match": "(?x)\n \\G\n (?:\n ! < (?: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %\\p{XDigit}{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ", + "name": "storage.type.tag-handle.yaml" + }, + { + "match": "\\S+", + "name": "invalid.illegal.tag-handle.yaml" + } + ] + }, + "prototype": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + } + ] + } + }, + "scopeName": "source.yaml", + "uuid": "686AD6AE-33F3-4493-9512-9E9FC1D5417F", + "version": "https://github.com/textmate/yaml.tmbundle/commit/9a4135db812815467828e467e1a57189e1ccdac9" +} diff --git a/extensions/continue/tree-sitter/code-snippet-queries/c.scm b/extensions/continue/tree-sitter/code-snippet-queries/c.scm new file mode 100644 index 000000000000..ff3cb6dc2983 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/c.scm @@ -0,0 +1,9 @@ +(function_definition declarator: (function_declarator (identifier) @name)) @definition.function + +(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class + +(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class + +(type_definition declarator: (type_identifier) @name ) @definition + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type diff --git a/extensions/continue/tree-sitter/code-snippet-queries/c_sharp.scm b/extensions/continue/tree-sitter/code-snippet-queries/c_sharp.scm new file mode 100644 index 000000000000..d3334b9bdae8 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/c_sharp.scm @@ -0,0 +1,23 @@ +(class_declaration + name: (identifier) @name.definition.class + ) @definition.class + +(class_declaration + bases: (base_list (_) @name.reference.class) + ) @reference.class + +(interface_declaration + name: (identifier) @name.definition.interface + ) @definition.interface + +(interface_declaration + bases: (base_list (_) @name.reference.interface) + ) @reference.interface + +(method_declaration + name: (identifier) @name.definition.method + ) @definition.method + +(namespace_declaration + name: (identifier) @name.definition.module +) @definition.module diff --git a/extensions/continue/tree-sitter/code-snippet-queries/cpp.scm b/extensions/continue/tree-sitter/code-snippet-queries/cpp.scm new file mode 100644 index 000000000000..ed2154aca744 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/cpp.scm @@ -0,0 +1,7 @@ +(function_definition declarator: (function_declarator) @name.definition.function) @definition.function + +(type_definition declarator: (type_identifier) @name.definition.type) @definition.type + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type + +(class_specifier name: (type_identifier) @name.definition.class) @definition.class diff --git a/extensions/continue/tree-sitter/code-snippet-queries/elisp.scm b/extensions/continue/tree-sitter/code-snippet-queries/elisp.scm new file mode 100644 index 000000000000..0c9bc51e9e1c --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/elisp.scm @@ -0,0 +1,6 @@ +;; defun/defsubst +(function_definition name: (symbol) @name.definition.function) @definition.function + +;; Treat macros as function definitions for the sake of TAGS. +(macro_definition name: (symbol) @name.definition.function) @definition.function + diff --git a/extensions/continue/tree-sitter/code-snippet-queries/elixir.scm b/extensions/continue/tree-sitter/code-snippet-queries/elixir.scm new file mode 100644 index 000000000000..e43215bb3cf7 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/elixir.scm @@ -0,0 +1,26 @@ +; Definitions + +; * modules and protocols +(call + target: (identifier) @ignore + (arguments (alias) @name.definition.module) + (#match? @ignore "^(defmodule|defprotocol)$")) @definition.module + +; * functions/macros +(call + target: (identifier) @ignore + (arguments + [ + ; zero-arity functions with no parentheses + (identifier) @name.definition.function + ; regular function clause + (call target: (identifier) @name.definition.function) + ; function clause with a guard clause + (binary_operator + left: (call target: (identifier) @name.definition.function) + operator: "when") + ]) + (#match? @ignore "^(def|defp|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp)$")) @definition.function + +; * modules +(alias) @name.reference.module @reference.module diff --git a/extensions/continue/tree-sitter/code-snippet-queries/go.scm b/extensions/continue/tree-sitter/code-snippet-queries/go.scm new file mode 100644 index 000000000000..bac6266056a4 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/go.scm @@ -0,0 +1,27 @@ +( + (comment)* @comment + . + (function_declaration + name: (identifier) @name.definition.function + parameters: (_) @parameters + result: (_)? @return_type + ) @definition.function + (#strip! @comment "^//\\s*") + (#set-adjacent! @comment @definition.function) +) + +( + (comment)* @comment + . + (method_declaration + receiver: (_) @receiver + name: (field_identifier) @name.definition.method + parameters: (_) @parameters + result: (_)? @return_type + ) @definition.method + (#strip! @comment "^//\\s*") + (#set-adjacent! @comment @definition.method) +) + +(type_spec + name: (type_identifier) @name.definition.type) @definition.type \ No newline at end of file diff --git a/extensions/continue/tree-sitter/code-snippet-queries/java.scm b/extensions/continue/tree-sitter/code-snippet-queries/java.scm new file mode 100644 index 000000000000..8b8b90a19831 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/java.scm @@ -0,0 +1,15 @@ +(class_declaration + name: (_) @name.definition.class + interfaces: (_) @interfaces +) @definition.class + + +(method_declaration + type: (_) @return_type + name: (_) @name.definition.method + parameters: (_) @parameters +) @definition.method + +(interface_declaration + name: (_) @name.definition.interface +) @definition.interface diff --git a/extensions/continue/tree-sitter/code-snippet-queries/javascript.scm b/extensions/continue/tree-sitter/code-snippet-queries/javascript.scm new file mode 100644 index 000000000000..ec9bf4531343 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/javascript.scm @@ -0,0 +1,22 @@ +( + (comment)? @comment . + (class_declaration + name: (_) @name + ) @definition +) + +( + (comment)? @comment . + (function_declaration + name: (_) @name + parameters: (_) @parameters + ) @definition +) + +( + (comment)? @comment . + (method_definition + name: (_) @name + parameters: (_) @parameters + ) @definition +) diff --git a/extensions/continue/tree-sitter/code-snippet-queries/ocaml.scm b/extensions/continue/tree-sitter/code-snippet-queries/ocaml.scm new file mode 100644 index 000000000000..9040cad330bf --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/ocaml.scm @@ -0,0 +1,12 @@ +(value_definition + (let_binding + pattern: (_) @name) +) @definition + +(module_type_definition + name: (_) @name) @definition + +(class_definition + (class_binding + name: (_) @name) +) @definition \ No newline at end of file diff --git a/extensions/continue/tree-sitter/code-snippet-queries/php.scm b/extensions/continue/tree-sitter/code-snippet-queries/php.scm new file mode 100644 index 000000000000..4240ecef50df --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/php.scm @@ -0,0 +1,8 @@ +(class_declaration + name: (name) @name) @definition + +(function_definition + name: (name) @name) @definition + +(method_declaration + name: (name) @name) @definition diff --git a/extensions/continue/tree-sitter/code-snippet-queries/python.scm b/extensions/continue/tree-sitter/code-snippet-queries/python.scm new file mode 100644 index 000000000000..235a953dfdc2 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/python.scm @@ -0,0 +1,7 @@ +(class_definition + name: (_) @name) @definition + +(function_definition + name: (_) @name + parameters: (_) @parameters +) @definition diff --git a/extensions/continue/tree-sitter/code-snippet-queries/ql.scm b/extensions/continue/tree-sitter/code-snippet-queries/ql.scm new file mode 100644 index 000000000000..3164aa25a485 --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/ql.scm @@ -0,0 +1,26 @@ +(classlessPredicate + name: (predicateName) @name.definition.function) @definition.function + +(memberPredicate + name: (predicateName) @name.definition.method) @definition.method + +(aritylessPredicateExpr + name: (literalId) @name.reference.call) @reference.call + +(module + name: (moduleName) @name.definition.module) @definition.module + +(dataclass + name: (className) @name.definition.class) @definition.class + +(datatype + name: (className) @name.definition.class) @definition.class + +(datatypeBranch + name: (className) @name.definition.class) @definition.class + +(qualifiedRhs + name: (predicateName) @name.reference.call) @reference.call + +(typeExpr + name: (className) @name.reference.type) @reference.type diff --git a/extensions/continue/tree-sitter/code-snippet-queries/ruby.scm b/extensions/continue/tree-sitter/code-snippet-queries/ruby.scm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/extensions/continue/tree-sitter/code-snippet-queries/rust.scm b/extensions/continue/tree-sitter/code-snippet-queries/rust.scm new file mode 100644 index 000000000000..4eda6b166c7c --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/rust.scm @@ -0,0 +1,11 @@ +(function_item + name: (_) @name + parameters: (_) @parameters + return_type: (_)? @return_type +) @definition + +(struct_item + name: (_) @name) @definition + +(impl_item + type: (_) @name) @definition diff --git a/extensions/continue/tree-sitter/code-snippet-queries/typescript.scm b/extensions/continue/tree-sitter/code-snippet-queries/typescript.scm new file mode 100644 index 000000000000..a0bcb2f2f75d --- /dev/null +++ b/extensions/continue/tree-sitter/code-snippet-queries/typescript.scm @@ -0,0 +1,28 @@ +( + (comment)? @comment . + (class_declaration + name: (_) @name + ) @definition +) + +( + (comment)? @comment . + (function_declaration + name: (_) @name + parameters: (_) @parameters + ) @definition +) + +( + (comment)? @comment . + (method_definition + name: (_) @name + parameters: (_) @parameters + ) @definition +) + +( + (comment)? @comment . + (interface_declaration + name: (_) @name) @definition +) diff --git a/extensions/continue/tree-sitter/import-queries/cpp.scm b/extensions/continue/tree-sitter/import-queries/cpp.scm new file mode 100644 index 000000000000..c740cf7622d2 --- /dev/null +++ b/extensions/continue/tree-sitter/import-queries/cpp.scm @@ -0,0 +1,9 @@ +(using_declaration + (qualified_identifier + (identifier) @a)) + +(namespace_alias_definition + (nested_namespace_specifier) @b) + +(preproc_include + (system_lib_string) @c) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/import-queries/java.scm b/extensions/continue/tree-sitter/import-queries/java.scm new file mode 100644 index 000000000000..51920eda7c71 --- /dev/null +++ b/extensions/continue/tree-sitter/import-queries/java.scm @@ -0,0 +1,3 @@ +(import_declaration + (scoped_identifier + (identifier) @import)) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/import-queries/python.scm b/extensions/continue/tree-sitter/import-queries/python.scm new file mode 100644 index 000000000000..dedaf23aaa9c --- /dev/null +++ b/extensions/continue/tree-sitter/import-queries/python.scm @@ -0,0 +1,8 @@ +(import_from_statement + (dotted_name) ; skip the first (this is the module) + (dotted_name + (identifier) @importa)) + +(import_statement + (dotted_name + (identifier) @importb )) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/import-queries/typescript.scm b/extensions/continue/tree-sitter/import-queries/typescript.scm new file mode 100644 index 000000000000..19a4d024abe6 --- /dev/null +++ b/extensions/continue/tree-sitter/import-queries/typescript.scm @@ -0,0 +1,9 @@ +(import_statement + (import_clause + (named_imports + (import_specifier + (identifier) @import)))) + +(import_statement + (import_clause + (identifier) @import )) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/cpp/function_definition.scm b/extensions/continue/tree-sitter/root-path-context-queries/cpp/function_definition.scm new file mode 100644 index 000000000000..2610f5393c07 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/cpp/function_definition.scm @@ -0,0 +1,13 @@ +(function_definition + (function_declarator + (parameter_list + (parameter_declaration + (type_identifier) @a + ) + ) + ) +) + +(function_definition + (type_identifier) @b +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/go/function_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/go/function_declaration.scm new file mode 100644 index 000000000000..482f50841408 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/go/function_declaration.scm @@ -0,0 +1,12 @@ +( + (function_declaration + (parameter_list + (parameter_declaration + type: (_) @param_type + )* + ) + ; Optional return type node before the block + ([_] @return_type)? + (block) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/java/method_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/java/method_declaration.scm new file mode 100644 index 000000000000..ff77555c7355 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/java/method_declaration.scm @@ -0,0 +1,13 @@ +; Method parameters +(method_declaration + (formal_parameters + (formal_parameter + (type_identifier) @a + ) + ) +) + +; Return type +(method_declaration + (type_identifier) @b +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/php/class_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/php/class_declaration.scm new file mode 100644 index 000000000000..5e9a9c13e0da --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/php/class_declaration.scm @@ -0,0 +1,13 @@ +( + (class_declaration + (base_clause + (name) @superclass) + ) +) + +( + (class_declaration + (class_interface_clause + (name) @interface) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/php/function_definition.scm b/extensions/continue/tree-sitter/root-path-context-queries/php/function_definition.scm new file mode 100644 index 000000000000..3f9303ae146c --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/php/function_definition.scm @@ -0,0 +1,10 @@ +( + (function_definition + parameters: (formal_parameters + (simple_parameter + type: (named_type) @param_type + )* + ) + return_type: (named_type) @return_type + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/php/method_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/php/method_declaration.scm new file mode 100644 index 000000000000..825324e01449 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/php/method_declaration.scm @@ -0,0 +1,10 @@ +( + (method_declaration + (formal_parameters + (simple_parameter + type: (named_type) @param_type + )* + ) + return_type: (named_type) @return_type + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/python/class_definition.scm b/extensions/continue/tree-sitter/root-path-context-queries/python/class_definition.scm new file mode 100644 index 000000000000..61fdb29ec359 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/python/class_definition.scm @@ -0,0 +1,24 @@ +; Match superclass identifiers in a simple inheritance +(class_definition + superclasses: (argument_list + (identifier) @catch) + (#not-match? @catch "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; Match the value of a keyword argument in class inheritance +(class_definition + superclasses: (argument_list + (keyword_argument + (_) + (identifier) @catch)) + (#not-match? @catch "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; Match identifiers within subscripts in class inheritance +(class_definition + superclasses: (argument_list + (subscript + (identifier) @catch + )) + (#not-match? @catch "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/python/function_definition.scm b/extensions/continue/tree-sitter/root-path-context-queries/python/function_definition.scm new file mode 100644 index 000000000000..535882bfa969 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/python/function_definition.scm @@ -0,0 +1,60 @@ +; When the type is a simple identifier: +(function_definition + parameters: (parameters + (typed_parameter + type: (type + (identifier) @type_identifier))) + + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; When the type is a generic type with one identifier +(function_definition + parameters: (parameters + (typed_parameter + type: (type + (generic_type + (identifier) @type_identifier)))) + + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; When the generic type has type parameters with one identifier +(function_definition + parameters: (parameters + (typed_parameter + type: (type + (generic_type + (identifier) + (type_parameter + (type + (identifier) @type_identifier)))))) + + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; When the return type is a simple identifier +(function_definition + return_type: (type + (identifier) @type_identifier) + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; When the return type is a generic type with one identifier +(function_definition + return_type: (type + (generic_type + (identifier) @type_identifier)) + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) + +; When the generic type has type parameters with one identifier +(function_definition + return_type: (type + (generic_type + (identifier) + (type_parameter + (type + (identifier) @type_identifier)))) + (#not-match? @type_identifier "^(str|int|float|bool|list|dict|tuple|set|frozenset|complex|bytes|bytearray|memoryview|range|slice|object|type|NoneType|List|Dict|Tuple|Set|FrozenSet|Union|Optional|Any|Callable|Iterable|Iterator|Generator|Coroutine|AsyncIterable|AsyncIterator|Awaitable|ContextManager|Pattern|Match|TypeVar|Generic|Sequence|Mapping|MutableMapping|MutableSequence|ByteString|Reversible|Sized|Container|Collection|AbstractSet|MutableSet|KeysView|ItemsView|ValuesView|Hashable|Sized|SupportsInt|SupportsFloat|SupportsComplex|SupportsBytes|SupportsAbs|SupportsRound|ChainMap|Counter|OrderedDict|defaultdict|deque|namedtuple|TypedDict)$") +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/typescript/arrow_function.scm b/extensions/continue/tree-sitter/root-path-context-queries/typescript/arrow_function.scm new file mode 100644 index 000000000000..159ff63f6a97 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/typescript/arrow_function.scm @@ -0,0 +1,77 @@ +; Pattern for return type with direct type_identifier +( + (arrow_function + (type_annotation + (type_identifier) @return_type + ) + ) +) + +; Pattern for return type with one level of nesting +( + (arrow_function + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) +) + +; Pattern for return type with two levels of nesting +( + (arrow_function + (type_annotation + (_ + (_ + (type_identifier) @return_type + ) + ) + ) + ) +) + +; Pattern for parameters with direct type_identifier +( + (arrow_function + (formal_parameters + (_ + (type_annotation + (type_identifier) @param_type + ) + ) + ) + ) +) + +; Pattern for parameters with one level of nesting +( + (arrow_function + (formal_parameters + (_ + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) +) + +; Pattern for parameters with two levels of nesting +( + (arrow_function + (formal_parameters + (_ + (type_annotation + (_ + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/typescript/class_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/typescript/class_declaration.scm new file mode 100644 index 000000000000..d164b05a801a --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/typescript/class_declaration.scm @@ -0,0 +1,45 @@ +; Match a class declaration that extends a base class +; Returns: +; @base-class: The identifier of the base class being extended +; @generic_argument: The type identifier of the generic argument, if present +(class_declaration + (class_heritage + (extends_clause + (identifier) @base-class + (type_arguments + (type_identifier) @generic_argument + )? + ) + ) +) + +; Match a class declaration that implements an interface +; Returns: +; @interface: The type identifier of the interface being implemented +( + (class_declaration + (class_heritage + (implements_clause + (type_identifier) @interface + ) + ) + ) +) + +; Match a class declaration that implements a generic interface +; Returns: +; @interface: The type identifier of the generic interface being implemented +; @generic_argument: The type identifier of the generic argument +( + class_declaration + (class_heritage + (implements_clause + (generic_type + (type_identifier) @interface + (type_arguments + (type_identifier) @generic_argument + ) + ) + ) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/typescript/function_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/typescript/function_declaration.scm new file mode 100644 index 000000000000..52b62f9bdf06 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/typescript/function_declaration.scm @@ -0,0 +1,77 @@ +; Pattern for return type with direct type_identifier +( + (function_declaration + (type_annotation + (type_identifier) @return_type + ) + ) +) + +; Pattern for return type with one level of nesting +( + (function_declaration + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) +) + +; Pattern for return type with two levels of nesting +( + (function_declaration + (type_annotation + (_ + (_ + (type_identifier) @return_type + ) + ) + ) + ) +) + +; Pattern for parameters with direct type_identifier +( + (function_declaration + (formal_parameters + (_ + (type_annotation + (type_identifier) @param_type + ) + ) + ) + ) +) + +; Pattern for parameters with one level of nesting +( + (function_declaration + (formal_parameters + (_ + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) +) + +; Pattern for parameters with two levels of nesting +( + (function_declaration + (formal_parameters + (_ + (type_annotation + (_ + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/typescript/generator_function_declaration.scm b/extensions/continue/tree-sitter/root-path-context-queries/typescript/generator_function_declaration.scm new file mode 100644 index 000000000000..b6417f45ca71 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/typescript/generator_function_declaration.scm @@ -0,0 +1,77 @@ +; Pattern for return type with direct type_identifier +( + (generator_function_declaration + (type_annotation + (type_identifier) @return_type + ) + ) +) + +; Pattern for return type with one level of nesting +( + (generator_function_declaration + (type_annotation + (_ + (type_identifier) @return_type + ) + ) + ) +) + +; Pattern for return type with two levels of nesting +( + (generator_function_declaration + (type_annotation + (_ + (_ + (type_identifier) @return_type + ) + ) + ) + ) +) + +; Pattern for parameters with direct type_identifier +( + (generator_function_declaration + (formal_parameters + (_ + (type_annotation + (type_identifier) @param_type + ) + ) + ) + ) +) + +; Pattern for parameters with one level of nesting +( + (generator_function_declaration + (formal_parameters + (_ + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) +) + +; Pattern for parameters with two levels of nesting +( + (generator_function_declaration + (formal_parameters + (_ + (type_annotation + (_ + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/root-path-context-queries/typescript/method_definition.scm b/extensions/continue/tree-sitter/root-path-context-queries/typescript/method_definition.scm new file mode 100644 index 000000000000..d5d4c3724e04 --- /dev/null +++ b/extensions/continue/tree-sitter/root-path-context-queries/typescript/method_definition.scm @@ -0,0 +1,77 @@ +; Pattern for return type with direct type_identifier +( + (method_definition + (type_annotation + (type_identifier) @return_type + ) + ) +) + +; Pattern for return type with one level of nesting +( + (method_definition + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) +) + +; Pattern for return type with two levels of nesting +( + (method_definition + (type_annotation + (_ + (_ + (type_identifier) @param_type + ) + ) + ) + ) +) + +; Pattern for parameters with direct type_identifier +( + (method_definition + (formal_parameters + (_ + (type_annotation + (type_identifier) @param_type + ) + ) + ) + ) +) + +; Pattern for parameters with one level of nesting +( + (method_definition + (formal_parameters + (_ + (type_annotation + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) +) + +; Pattern for parameters with two levels of nesting +( + (method_definition + (formal_parameters + (_ + (type_annotation + (_ + (_ + (type_identifier) @param_type + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/extensions/continue/tree-sitter/static-context-queries/hole-queries/typescript.scm b/extensions/continue/tree-sitter/static-context-queries/hole-queries/typescript.scm new file mode 100644 index 000000000000..02de34466016 --- /dev/null +++ b/extensions/continue/tree-sitter/static-context-queries/hole-queries/typescript.scm @@ -0,0 +1,59 @@ +;; Capture the variable/function name +(variable_declarator + name: (identifier) @function.name + type: (type_annotation + (function_type) @function.type)) + +;; Capture the full parameter list +(function_type + parameters: (formal_parameters) @function.params) + +;; Capture the type identifiers used in the parameters +(formal_parameters + (required_parameter + type: (type_annotation + (type_identifier) @param.type)) + (required_parameter + type: (type_annotation + (type_identifier) @param.type))) + +;; Capture the return type of the function +(function_type + return_type: (type_identifier) @return.type) + +;; Capture any parse errors (e.g., the `@`) +(ERROR) @error.node + +;; Capture the entire function declaration line +(lexical_declaration) @function.decl + +;; Matches import declarations like: import { A, B } from "module"; +(import_statement + (import_clause + (named_imports + (import_specifier + name: (identifier) @import.name))) + source: (string) @import.source) + +;; Capture standalone function declarations +(function_declaration + name: (identifier) @function.name) @function.decl + +;; Capture the function signature including parameters and return type +(function_declaration + parameters: (formal_parameters) @function.params + return_type: (type_annotation)? @function.type) + +;; For function expressions or arrow functions +(function_type + parameters: (formal_parameters) @function.params) @function.decl + +;; For arrow functions +(arrow_function + parameters: (formal_parameters) @function.params) @function.decl + +;; For function signatures without a body (like in your example) +(function_signature + name: (identifier) @function.name + parameters: (formal_parameters) @function.params + return_type: (type_annotation)? @function.type) @function.decl diff --git a/extensions/continue/tree-sitter/static-context-queries/relevant-headers-queries/typescript-get-toplevel-headers.scm b/extensions/continue/tree-sitter/static-context-queries/relevant-headers-queries/typescript-get-toplevel-headers.scm new file mode 100644 index 000000000000..02b0bda77249 --- /dev/null +++ b/extensions/continue/tree-sitter/static-context-queries/relevant-headers-queries/typescript-get-toplevel-headers.scm @@ -0,0 +1,22 @@ +;; Match top-level `var`, `let`, or `const` declarations +(lexical_declaration + (variable_declarator + name: (identifier) @top.var.name + type: (type_annotation + (_) @top.var.type))) @top.var.decl + +(variable_declaration + (variable_declarator + name: (identifier) @top.var.name + type: (type_annotation + (_) @top.var.type))) @top.var.decl + +;; Match function declarations +(function_declaration + name: (identifier) @top.fn.name + parameters: (formal_parameters + (required_parameter + pattern: (identifier) @top.fn.param.name + type: (type_annotation (_) @top.fn.param.type)))* + + return_type: (type_annotation (_) @top.fn.type)?) @top.fn.decl diff --git a/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-extract-identifiers.scm b/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-extract-identifiers.scm new file mode 100644 index 000000000000..b5051cb7751b --- /dev/null +++ b/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-extract-identifiers.scm @@ -0,0 +1,10 @@ +;; Capture the type alias name (left-hand side) +; (type_alias_declaration +; name: (type_identifier) @type.name) + +;; Capture all identifiers on the right-hand side (value), recursively +; (type_alias_declaration +; value: (_) @type.value) + +;; Match all identifiers inside the type value — deeply nested +(type_identifier) @type.identifier diff --git a/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-find-typedecl-given-typeidentifier.scm b/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-find-typedecl-given-typeidentifier.scm new file mode 100644 index 000000000000..b26180e05c6f --- /dev/null +++ b/extensions/continue/tree-sitter/static-context-queries/relevant-types-queries/typescript-find-typedecl-given-typeidentifier.scm @@ -0,0 +1,11 @@ +(type_alias_declaration + name: (type_identifier) @type.identifier + value: (_) @type.value) + +(interface_declaration + name: (type_identifier) @type.identifier + body: (_) @type.value) + +(enum_declaration + name: (type_identifier) @type.identifier + body: (_) @type.value) diff --git a/extensions/continue/tsconfig.e2e.json b/extensions/continue/tsconfig.e2e.json new file mode 100644 index 000000000000..256b67025f5e --- /dev/null +++ b/extensions/continue/tsconfig.e2e.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "target": "ES2022", + "outDir": "e2e/_output", + "sourceMap": true, + "strict": true, + "rootDir": "e2e", + "resolveJsonModule": true, + "skipLibCheck": true + }, + "exclude": [ + "node_modules", + ".vscode-test", + "e2e/resources/**", + ".test-extensions" + ], + "include": ["e2e"] +} diff --git a/extensions/hypno-native-browser/package-lock.json b/extensions/hypno-native-browser/package-lock.json new file mode 100644 index 000000000000..c66cec0689ac --- /dev/null +++ b/extensions/hypno-native-browser/package-lock.json @@ -0,0 +1,25 @@ +{ + "name": "hypno-native-browser", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hypno-native-browser", + "version": "1.0.0", + "devDependencies": { + "@types/vscode": "^1.70.0" + }, + "engines": { + "vscode": "^1.70.0" + } + }, + "node_modules/@types/vscode": { + "version": "1.109.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.109.0.tgz", + "integrity": "sha512-0Pf95rnwEIwDbmXGC08r0B4TQhAbsHQ5UyTIgVgoieDe4cOnf92usuR5dEczb6bTKEp7ziZH4TV1TRGPPCExtw==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/extensions/hypno-native-browser/package.json b/extensions/hypno-native-browser/package.json new file mode 100644 index 000000000000..414a208c57c6 --- /dev/null +++ b/extensions/hypno-native-browser/package.json @@ -0,0 +1,25 @@ +{ + "name": "hypno-native-browser", + "displayName": "Hypno Native Browser", + "description": "Native Browser Overlay for Hypno", + "version": "1.0.0", + "publisher": "hypno", + "engines": { + "vscode": "^1.70.0" + }, + "main": "./out/extension", + "activationEvents": [ + "onCommand:hypno.openBrowser" + ], + "contributes": { + "commands": [ + { + "command": "hypno.openBrowser", + "title": "Hypno: Open Native Browser" + } + ] + }, + "devDependencies": { + "@types/vscode": "^1.70.0" + } +} diff --git a/extensions/hypno-native-browser/src/extension.ts b/extensions/hypno-native-browser/src/extension.ts new file mode 100644 index 000000000000..f5a86bdcf7cf --- /dev/null +++ b/extensions/hypno-native-browser/src/extension.ts @@ -0,0 +1,263 @@ +import * as vscode from 'vscode'; + +export function activate(context: vscode.ExtensionContext) { + let currentPanel: vscode.WebviewPanel | undefined = undefined; + + const openBrowserCommand = vscode.commands.registerCommand('hypno.openBrowser', async () => { + if (currentPanel) { + currentPanel.reveal(vscode.ViewColumn.Active); + return; + } + + currentPanel = vscode.window.createWebviewPanel( + 'hypno.browser', + 'Native Browser', + vscode.ViewColumn.Active, + { enableScripts: true, retainContextWhenHidden: true } + ); + + currentPanel.webview.html = getHtmlForWebview(currentPanel.webview); + + // Notify Main process to show/hide + currentPanel.onDidChangeViewState((e) => { + if (e.webviewPanel.active) { + vscode.commands.executeCommand('_hypno.showBrowser'); + } else { + vscode.commands.executeCommand('_hypno.hideBrowser'); + } + }); + + currentPanel.onDidDispose(() => { + vscode.commands.executeCommand('_hypno.hideBrowser'); + currentPanel = undefined; + }); + + // Handle messages from Webview (actions and bounds) + currentPanel.webview.onDidReceiveMessage((message: any) => { + if (message.command === 'updateBounds') { + vscode.commands.executeCommand('_hypno.updateBrowserBounds', message.bounds); + } else if (message.command === 'browserAction') { + vscode.commands.executeCommand('_hypno.browserAction', message.action); + } + }); + + // Show initially with a default URL + vscode.commands.executeCommand('_hypno.showBrowser', { url: 'https://google.com' }); + }); + + context.subscriptions.push(openBrowserCommand); + + // Phase 3: Handle element selected from Native Browser + context.subscriptions.push( + vscode.commands.registerCommand('hypno.browser.onElementSelected', async (data: any) => { + let markdown = ''; + + if (data.html) { + markdown += `\`\`\`html\n${data.html}\n\`\`\`\n\n`; + } + + if (data.css && Object.keys(data.css).length > 0) { + markdown += `**Computed Styles:**\n\`\`\`css\n`; + for (const [prop, value] of Object.entries(data.css)) { + markdown += `${prop}: ${value};\n`; + } + markdown += `\`\`\`\n`; + } + + const tagName = data.tagName || 'element'; + let identifier = ''; + if (data.id) { + identifier = `#${data.id}`; + } else if (data.className) { + const firstClass = data.className.split(/\s+/)[0]; + if (firstClass) identifier = `.${firstClass}`; + } + + const safeIdentifier = identifier.replace(/[^a-zA-Z0-9#.-]/g, '_'); + const fileName = `${tagName}${safeIdentifier}.md`; + + try { + const os = require('os'); + const path = require('path'); + const fs = require('fs/promises'); + + const tempFilePath = path.join(os.tmpdir(), fileName); + await fs.writeFile(tempFilePath, markdown, 'utf-8'); + const fileUri = vscode.Uri.file(tempFilePath); + + await vscode.commands.executeCommand('continue.selectFilesAsContext', fileUri, [fileUri]); + + // Add the tag to the clipboard so it gets pasted into the input alongside the file context + // Using backticks formats it as an inline code block, giving it chip-like styling + await vscode.env.clipboard.writeText(`\`<${tagName}/>\` `); + + setTimeout(() => { + vscode.commands.executeCommand('editor.action.clipboardPasteAction'); + }, 600); + } catch (e) { + console.error('Failed to write element temp file and inject to Continue: ', e); + } + }) + ); + + // Phase 2: Handle URL updates from Main Process + context.subscriptions.push( + vscode.commands.registerCommand('hypno.browser.onNavigate', (url: string) => { + if (currentPanel) { + currentPanel.webview.postMessage({ command: 'updateUrl', url }); + } + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('hypno.browser.onLoadingState', (isLoading: boolean) => { + if (currentPanel) { + currentPanel.webview.postMessage({ command: 'updateLoadingState', isLoading }); + } + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('hypno.browser.onInspectDisabled', () => { + if (currentPanel) { + currentPanel.webview.postMessage({ command: 'inspectDisabled' }); + } + }) + ); +} + +function getHtmlForWebview(_webview: vscode.Webview): string { + return ` + + + + + + + + + +
    + + + + + + +
    +
    +
    + + + + + `; +} diff --git a/extensions/hypno-native-browser/tsconfig.json b/extensions/hypno-native-browser/tsconfig.json new file mode 100644 index 000000000000..3692794b088e --- /dev/null +++ b/extensions/hypno-native-browser/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es2020", + "outDir": "out", + "lib": [ + "es2020", + "DOM" + ], + "skipLibCheck": true, + "sourceMap": true, + "rootDir": "src", + "strict": true + }, + "exclude": [ + "node_modules", + ".vscode-test" + ] +} diff --git a/extensions/hypno-themes/hypno-themes-1.0.0.vsix b/extensions/hypno-themes/hypno-themes-1.0.0.vsix new file mode 100644 index 000000000000..4a3adfbe8bce Binary files /dev/null and b/extensions/hypno-themes/hypno-themes-1.0.0.vsix differ diff --git a/extensions/hypno-themes/package.json b/extensions/hypno-themes/package.json new file mode 100644 index 000000000000..672a93a2733c --- /dev/null +++ b/extensions/hypno-themes/package.json @@ -0,0 +1,29 @@ +{ + "name": "hypno-themes", + "displayName": "Hypno Default Themes", + "description": "Default dark and light themes for Hypno Editor", + "version": "1.0.0", + "publisher": "hypno", + "engines": { + "vscode": "^1.99.0" + }, + "contributes": { + "themes": [ + { + "label": "Hypno Dark", + "uiTheme": "vs-dark", + "path": "./themes/hypno-dark.json" + }, + { + "label": "Hypno Dark Midnight", + "uiTheme": "vs-dark", + "path": "./themes/hypno-dark-midnight.json" + }, + { + "label": "Hypno Light", + "uiTheme": "vs", + "path": "./themes/hypno-light.json" + } + ] + } +} diff --git a/extensions/hypno-themes/themes/hypno-dark-midnight.json b/extensions/hypno-themes/themes/hypno-dark-midnight.json new file mode 100644 index 000000000000..5c2136a6bc7c --- /dev/null +++ b/extensions/hypno-themes/themes/hypno-dark-midnight.json @@ -0,0 +1,770 @@ +{ + "name": "Hypno Dark Midnight", + "colors": { + "activityBar.background": "#191c22", + "activityBar.foreground": "#7b88a1", + "activityBarBadge.background": "#88c0d0", + "activityBarBadge.foreground": "#1d2128", + "badge.background": "#88c0d0", + "badge.foreground": "#1d2128", + "breadcrumb.activeSelectionForeground": "#d8dee9", + "breadcrumb.background": "#1e2127", + "breadcrumb.foreground": "#7b88a199", + "breadcrumbPicker.background": "#191c22", + "button.background": "#88c0d0", + "button.foreground": "#191c22", + "button.hoverBackground": "#98d5e7", + "button.secondaryBackground": "#434c5e", + "button.secondaryForeground": "#d8dee9", + "button.secondaryHoverBackground": "#4c566a", + "debugExceptionWidget.background": "#4c566a", + "debugExceptionWidget.border": "#191c22", + "debugToolBar.background": "#20242c", + "diffEditor.insertedTextBackground": "#a3be8c22", + "diffEditor.removedTextBackground": "#bf616a22", + "dropdown.background": "#191c22", + "dropdown.border": "#272c36", + "dropdown.foreground": "#d8dee9", + "editor.background": "#1e2127", + "editor.findMatchBackground": "#88c0d066", + "editor.findMatchHighlightBackground": "#88c0d033", + "editor.findRangeHighlightBackground": "#88c0d033", + "editor.foreground": "#7b88a1", + "editor.hoverHighlightBackground": "#20242c", + "editor.inactiveSelectionBackground": "#434c5e77", + "editor.lineHighlightBackground": "#434c5e33", + "editor.lineHighlightBorder": "#272930", + "editor.rangeHighlightBackground": "#434c5e52", + "editor.selectionBackground": "#434c5e99", + "editor.selectionHighlightBackground": "#434c5ecc", + "editor.snippetFinalTabstopHighlightBorder": "#7b88a1", + "editor.snippetTabstopHighlightBackground": "#7b88a155", + "editor.wordHighlightBackground": "#81a1c166", + "editor.wordHighlightStrongBackground": "#81a1c199", + "editorBracketMatch.background": "#191c2200", + "editorBracketMatch.border": "#88c0d055", + "editorCodeLens.foreground": "#4c566a", + "editorCursor.foreground": "#d8dee9", + "editorError.border": "#bf616a00", + "editorError.foreground": "#bf616a", + "editorGroup.border": "#ffffff0d", + "editorGroup.dropBackground": "#272c3699", + "editorGroup.emptyBackground": "#191c22", + "editorGroupHeader.noTabsBackground": "#191c22", + "editorGroupHeader.tabsBackground": "#191c22", + "editorGroupHeader.tabsBorder": "#ffffff0d", + "editorGutter.addedBackground": "#a3be8c", + "editorGutter.background": "#1e2127", + "editorGutter.deletedBackground": "#bf616a", + "editorGutter.modifiedBackground": "#ebcb8b", + "editorHoverWidget.background": "#20242c", + "editorHoverWidget.border": "#272c36", + "editorIndentGuide.activeBackground": "#4c566a", + "editorIndentGuide.background": "#434c5eb3", + "editorInlayHint.background": "#00000000", + "editorInlayHint.foreground": "#4c566a", + "editorInlayHint.parameterBackground": "#00000000", + "editorInlayHint.parameterForeground": "#4c566a", + "editorInlayHint.typeBackground": "#00000000", + "editorInlayHint.typeForeground": "#4c566a", + "editorLineNumber.activeForeground": "#687692", + "editorLineNumber.foreground": "#4c566a", + "editorLink.activeForeground": "#88c0d0", + "editorMarkerNavigation.background": "#5e81acc0", + "editorMarkerNavigationError.background": "#bf616ac0", + "editorMarkerNavigationWarning.background": "#ebcb8bc0", + "editorOverviewRuler.addedForeground": "#a3be8c99", + "editorOverviewRuler.border": "#00000000", + "editorOverviewRuler.bracketMatchForeground": "#00000000", + "editorOverviewRuler.commonContentForeground": "#bf616a", + "editorOverviewRuler.currentContentForeground": "#bf616a", + "editorOverviewRuler.deletedForeground": "#bf616a99", + "editorOverviewRuler.errorForeground": "#bf616a", + "editorOverviewRuler.findMatchForeground": "#00000000", + "editorOverviewRuler.incomingContentForeground": "#bf616a", + "editorOverviewRuler.infoForeground": "#00000000", + "editorOverviewRuler.modifiedForeground": "#ebcb8b99", + "editorOverviewRuler.rangeHighlightForeground": "#00000000", + "editorOverviewRuler.selectionHighlightForeground": "#00000000", + "editorOverviewRuler.warningForeground": "#ebcb8b", + "editorOverviewRuler.wordHighlightForeground": "#00000000", + "editorOverviewRuler.wordHighlightStrongForeground": "#00000000", + "editorRuler.foreground": "#434c5e", + "editorSuggestWidget.background": "#191c22", + "editorSuggestWidget.border": "#272c36", + "editorSuggestWidget.foreground": "#d8dee9", + "editorSuggestWidget.highlightForeground": "#88c0d0", + "editorSuggestWidget.selectedBackground": "#434c5e", + "editorWarning.border": "#ebcb8b00", + "editorWarning.foreground": "#ebcb8b", + "editorWhitespace.foreground": "#4c566ab3", + "editorWidget.background": "#191c22", + "editorWidget.resizeBorder": "#88c0d0", + "errorForeground": "#bf616a", + "extensionButton.prominentBackground": "#434c5e", + "extensionButton.prominentForeground": "#d8dee9", + "extensionButton.prominentHoverBackground": "#4c566a", + "focusBorder": "#00000000", + "foreground": "#7b88a1", + "gitDecoration.addedResourceForeground": "#a3be8c", + "gitDecoration.deletedResourceForeground": "#bf616a", + "gitDecoration.ignoredResourceForeground": "#4b5163", + "gitDecoration.modifiedResourceForeground": "#ebcb8b", + "gitDecoration.untrackedResourceForeground": "#88c0d0", + "gitlens.trailingLineForegroundColor": "#6c7d8f99", + "input.background": "#1e2129", + "input.border": "#272c36", + "input.foreground": "#d8dee9", + "input.placeholderForeground": "#4c4f57", + "inputOption.activeBorder": "#88c0d0", + "inputValidation.errorBackground": "#bf616a", + "inputValidation.errorBorder": "#bf616a", + "inputValidation.infoBackground": "#81a1c1", + "inputValidation.infoBorder": "#81a1c1", + "inputValidation.infoForeground": "#2e3440", + "inputValidation.warningBackground": "#d08770", + "inputValidation.warningBorder": "#d08770", + "list.activeSelectionBackground": "#21242b", + "list.activeSelectionForeground": "#eceff4", + "list.deemphasizedForeground": "#7c818e", + "list.dropBackground": "#88c0d099", + "list.errorForeground": "#bf616a", + "list.focusBackground": "#434c5e", + "list.focusForeground": "#d8dee9", + "list.highlightForeground": "#88c0d0", + "list.hoverBackground": "#272c3699", + "list.hoverForeground": "#eceff4", + "list.inactiveSelectionBackground": "#21242b", + "list.inactiveSelectionForeground": "#eceff4", + "list.invalidItemForeground": "#7c818e", + "list.warningForeground": "#ebcb8b", + "menu.background": "#191c22", + "menu.foreground": "#7b88a1", + "menu.separatorBackground": "#7b88a1", + "menubar.selectionBackground": "#7b88a133", + "merge.border": "#272c3600", + "merge.currentContentBackground": "#81a1c14d", + "merge.currentHeaderBackground": "#81a1c166", + "merge.incomingContentBackground": "#8fbcbb4d", + "merge.incomingHeaderBackground": "#8fbcbb66", + "notificationLink.foreground": "#88c0d0", + "notifications.background": "#191c22", + "notifications.foreground": "#d8dee9", + "panel.background": "#191c22", + "panel.border": "#ffffff0d", + "panelTitle.activeBorder": "#ffffff00", + "panelTitle.activeForeground": "#ffffff", + "panelTitle.inactiveForeground": "#7b88a1", + "peekView.border": "#4c566a", + "peekViewEditor.background": "#191c22", + "peekViewEditor.matchHighlightBackground": "#88c0d0cc", + "peekViewEditorGutter.background": "#191c22", + "peekViewResult.background": "#191c22", + "peekViewResult.fileForeground": "#88c0d0", + "peekViewResult.lineForeground": "#d8dee966", + "peekViewResult.matchHighlightBackground": "#88c0d0cc", + "peekViewResult.selectionBackground": "#434c5e", + "peekViewResult.selectionForeground": "#d8dee9", + "peekViewTitle.background": "#272c36", + "peekViewTitleDescription.foreground": "#d8dee9", + "peekViewTitleLabel.foreground": "#88c0d0", + "pickerGroup.border": "#272c3600", + "pickerGroup.foreground": "#d8dee9", + "progressBar.background": "#88c0d0", + "scrollbar.shadow": "#00000000", + "scrollbarSlider.activeBackground": "#434c5e55", + "scrollbarSlider.background": "#434c5e55", + "scrollbarSlider.hoverBackground": "#434c5e55", + "selection.background": "#88c0d033", + "sideBar.background": "#191c22", + "sideBar.border": "#ffffff0d", + "sideBar.foreground": "#7c818e", + "sideBarSectionHeader.background": "#191c22", + "sideBarSectionHeader.foreground": "#4b5163", + "sideBarTitle.foreground": "#7b88a1", + "statusBar.background": "#191c22", + "statusBar.border": "#ffffff0d", + "statusBar.debuggingBackground": "#434c5e", + "statusBar.debuggingForeground": "#d8dee9", + "statusBar.foreground": "#4b5163", + "statusBar.noFolderBackground": "#191c22", + "statusBar.noFolderForeground": "#d8dee9", + "statusBarItem.activeBackground": "#4c566a", + "statusBarItem.hoverBackground": "#434c5e", + "statusBarItem.prominentBackground": "#272c36", + "statusBarItem.prominentHoverBackground": "#434c5e", + "tab.activeBackground": "#1e2127", + "tab.activeBorder": "#1e2127", + "tab.activeBorderTop": "#ffffff00", + "tab.activeForeground": "#d8dee9", + "tab.border": "#ffffff0d", + "tab.hoverBackground": "#88c0d000", + "tab.inactiveBackground": "#191c22", + "tab.inactiveForeground": "#4b5163", + "tab.unfocusedActiveBorder": "#88c0d000", + "tab.unfocusedActiveForeground": "#d8dee999", + "tab.unfocusedHoverBackground": "#272c36b3", + "tab.unfocusedHoverBorder": "#88c0d000", + "tab.unfocusedInactiveForeground": "#d8dee966", + "terminal.ansiBlack": "#272c36", + "terminal.ansiBlue": "#81a1c1", + "terminal.ansiBrightBlack": "#4c566a", + "terminal.ansiBrightBlue": "#81a1c1", + "terminal.ansiBrightCyan": "#8fbcbb", + "terminal.ansiBrightGreen": "#a3be8c", + "terminal.ansiBrightMagenta": "#b48ead", + "terminal.ansiBrightRed": "#bf616a", + "terminal.ansiBrightWhite": "#eceff4", + "terminal.ansiBrightYellow": "#ebcb8b", + "terminal.ansiCyan": "#88c0d0", + "terminal.ansiGreen": "#a3be8c", + "terminal.ansiMagenta": "#7d7c9b", + "terminal.ansiRed": "#bf616a", + "terminal.ansiWhite": "#e5e9f0", + "terminal.ansiYellow": "#ebcb8b", + "terminal.background": "#191c22", + "terminal.foreground": "#d8dee9", + "terminal.selectionBackground": "#434c5e55", + "terminalCursor.background": "#8fbcbb22", + "terminalCursor.foreground": "#8fbcbb", + "textLink.activeForeground": "#8fbcbb", + "textLink.foreground": "#8fbcbb", + "textPreformat.foreground": "#8fbcbb", + "textSeparator.foreground": "#8fbcbb", + "titleBar.activeBackground": "#191c22", + "titleBar.activeForeground": "#4b5163", + "titleBar.border": "#ffffff0d", + "titleBar.inactiveBackground": "#191c22", + "titleBar.inactiveForeground": "#7b88a199", + "tree.indentGuidesStroke": "#7b88a155", + "walkThrough.embeddedEditorBackground": "#191c22", + "widget.shadow": "#00000066" + }, + "tokenColors": [ + { "scope": "emphasis", "settings": { "fontStyle": "italic" } }, + { "scope": "strong", "settings": { "fontStyle": "bold" } }, + { + "scope": "comment", + "settings": { "foreground": "#8597BCA6", "fontStyle": "italic" } + }, + { "scope": "constant.character", "settings": { "foreground": "#EBCB8B" } }, + { + "scope": "constant.character.escape", + "settings": { "foreground": "#EBCB8B" } + }, + { "scope": "constant.language", "settings": { "foreground": "#81A1C1" } }, + { "scope": "constant.numeric", "settings": { "foreground": "#B48EAD" } }, + { + "scope": "constant.language.boolean.true", + "settings": { "foreground": "#B48EAD" } + }, + { + "scope": "constant.language.boolean.false", + "settings": { "foreground": "#B48EAD" } + }, + { + "scope": "constant.language.undefined", + "settings": { "foreground": "#7D7C9B" } + }, + { + "scope": "constant.language.null", + "settings": { "foreground": "#7D7C9B" } + }, + { "scope": "constant.regexp", "settings": { "foreground": "#EBCB8B" } }, + { + "scope": ["entity.name.class", "entity.name.type.class"], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "entity.name.function", + "settings": { "foreground": "#88C0D0" } + }, + { "scope": "entity.name.tag", "settings": { "foreground": "#81A1C1" } }, + { + "scope": "entity.other.attribute-name", + "settings": { "foreground": "#8FBCBB", "fontStyle": "italic" } + }, + { + "scope": "entity.other.inherited-class", + "settings": { "foreground": "#8FBCBB", "fontStyle": "bold" } + }, + { "scope": "invalid.deprecated", "settings": { "foreground": "#EBCB8B" } }, + { "scope": "invalid.illegal", "settings": { "foreground": "#BF616A" } }, + { "scope": "keyword", "settings": { "foreground": "#81A1C1" } }, + { "scope": "keyword.operator", "settings": { "foreground": "#81A1C1" } }, + { "scope": "keyword.other.new", "settings": { "foreground": "#81A1C1" } }, + { "scope": "markup.bold", "settings": { "fontStyle": "bold" } }, + { "scope": "markup.changed", "settings": { "foreground": "#EBCB8B" } }, + { + "scope": ["markup.deleted", "punctuation.definition.deleted"], + "settings": { "foreground": "#BF616A" } + }, + { "scope": ["markup.inserted"], "settings": { "foreground": "#A3BE8C" } }, + { "scope": "meta.preprocessor", "settings": { "foreground": "#5E81AC" } }, + { "scope": "punctuation", "settings": { "foreground": "#ECEFF4" } }, + { + "scope": [ + "punctuation.definition.method-parameters", + "punctuation.definition.function-parameters", + "punctuation.definition.parameters" + ], + "settings": { "foreground": "#ECEFF4" } + }, + { + "scope": "punctuation.definition.tag", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "punctuation.definition.comment", + "punctuation.end.definition.comment", + "punctuation.start.definition.comment" + ], + "settings": { "foreground": "#4C566A" } + }, + { + "scope": ["punctuation.definition.inserted"], + "settings": { "foreground": "#A3BE8C" } + }, + { + "scope": ["punctuation.definition.deleted"], + "settings": { "foreground": "#BF616A" } + }, + { "scope": "punctuation.section", "settings": { "foreground": "#ECEFF4" } }, + { + "scope": [ + "punctuation.section.embedded.begin", + "punctuation.section.embedded.end" + ], + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "punctuation.terminator", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "punctuation.definition.variable", + "settings": { "foreground": "#81A1C1" } + }, + { "scope": "storage", "settings": { "foreground": "#81A1C1" } }, + { "scope": "string", "settings": { "foreground": "#A3BE8C" } }, + { "scope": "string.regexp", "settings": { "foreground": "#EBCB8B" } }, + { "scope": "support.class", "settings": { "foreground": "#8FBCBB" } }, + { "scope": "support.constant", "settings": { "foreground": "#81A1C1" } }, + { "scope": "support.function", "settings": { "foreground": "#88C0D0" } }, + { + "scope": "support.function.construct", + "settings": { "foreground": "#81A1C1" } + }, + { "scope": "support.type", "settings": { "foreground": "#8FBCBB" } }, + { + "scope": "support.type.exception", + "settings": { "foreground": "#8FBCBB" } + }, + { "scope": "token.debug-token", "settings": { "foreground": "#B48EAD" } }, + { "scope": "token.error-token", "settings": { "foreground": "#BF616A" } }, + { "scope": "token.info-token", "settings": { "foreground": "#88C0D0" } }, + { "scope": "token.warn-token", "settings": { "foreground": "#EBCB8B" } }, + { "scope": "variable.other", "settings": { "foreground": "#D8DEE9" } }, + { "scope": "variable.language", "settings": { "foreground": "#81A1C1" } }, + { "scope": "variable.parameter", "settings": { "foreground": "#D8DEE9" } }, + { + "scope": "punctuation.separator.pointer-access.c", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "source.c meta.preprocessor.include", + "source.c string.quoted.other.lt-gt.include" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": [ + "source.cpp keyword.control.directive.conditional", + "source.cpp punctuation.definition.directive", + "source.c keyword.control.directive.conditional", + "source.c punctuation.definition.directive" + ], + "settings": { "foreground": "#5E81AC", "fontStyle": "bold" } + }, + { + "scope": "source.css constant.other.color.rgb-value", + "settings": { "foreground": "#B48EAD" } + }, + { + "scope": "source.css meta.property-value", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": [ + "source.css keyword.control.at-rule.media", + "source.css keyword.control.at-rule.media punctuation.definition.keyword" + ], + "settings": { "foreground": "#D08770" } + }, + { + "scope": "source.css punctuation.definition.keyword", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.css support.type.property-name", + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": "source.diff meta.diff.range.context", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.diff meta.diff.header.from-file", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.diff punctuation.definition.from-file", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.diff punctuation.definition.range", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.diff punctuation.definition.separator", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.go constant.other.placeholder.go", + "settings": { "foreground": "#EBCB8B" } + }, + { + "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.java constant.other", + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": "source.java keyword.other.documentation", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java keyword.other.documentation.author.javadoc", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": [ + "source.java keyword.other.documentation.directive", + "source.java keyword.other.documentation.custom" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java keyword.other.documentation.see.javadoc", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java meta.method-call meta.method", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": [ + "source.java meta.tag.template.link.javadoc", + "source.java string.other.link.title.javadoc" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java meta.tag.template.value.javadoc", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": "source.java punctuation.definition.keyword.javadoc", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": [ + "source.java punctuation.definition.tag.begin.javadoc", + "source.java punctuation.definition.tag.end.javadoc" + ], + "settings": { "foreground": "#4C566A" } + }, + { + "scope": "source.java storage.modifier.import", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java storage.modifier.package", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java storage.type", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java storage.type.annotation", + "settings": { "foreground": "#D08770" } + }, + { + "scope": "source.java storage.type.generic", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.java storage.type.primitive", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "source.js punctuation.decorator", + "source.js meta.decorator variable.other.readwrite", + "source.js meta.decorator entity.name.function" + ], + "settings": { "foreground": "#D08770" } + }, + { + "scope": "source.js meta.object-literal.key", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": "source.js storage.type.class.jsdoc", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.js string.template punctuation.definition.template-expression", + "settings": { "foreground": "#5E81AC" } + }, + { + "scope": [ + "source.js string.template meta.template.expression support.variable.property", + "source.js string.template meta.template.expression variable.other.object" + ], + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": "source.js support.type.primitive", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "variable.language.this.js", + "settings": { "foreground": "#B48EAD", "fontStyle": "italic" } + }, + { + "scope": "meta.tag.js entity.name.tag.js support.class.component.js", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.js meta.var.expr variable.other.object", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "source.js variable.other.readwrite.alias", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "text.html.basic constant.character.entity.html", + "settings": { "foreground": "#EBCB8B" } + }, + { + "scope": "text.html.basic constant.other.inline-data", + "settings": { "foreground": "#D08770", "fontStyle": "italic" } + }, + { + "scope": "text.html.basic meta.tag.sgml.doctype", + "settings": { "foreground": "#5E81AC" } + }, + { + "scope": "text.html.basic punctuation.definition.entity", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.properties entity.name.section.group-title.ini", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": "source.properties punctuation.separator.key-value.ini", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": ["text.html.markdown markup.fenced_code.block"], + "settings": { "foreground": "#7B88A1" } + }, + { + "scope": [ + "text.html.markdown markup.fenced_code.block punctuation.definition" + ], + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": "fenced_code.block.language", + "settings": { "foreground": "#D8DEE9" } + }, + { "scope": "markup.heading", "settings": { "foreground": "#88C0D0" } }, + { + "scope": [ + "text.html.markdown markup.inline.raw", + "text.html.markdown markup.inline.raw punctuation.definition.raw" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "text.html.markdown markup.italic", + "settings": { "fontStyle": "italic" } + }, + { + "scope": "text.html.markdown markup.underline.link", + "settings": { "fontStyle": "underline" } + }, + { + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "text.html.markdown beginning.punctuation.definition.quote", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "text.html.markdown markup.quote", + "settings": { "foreground": "#4C566A", "fontStyle": "italic" } + }, + { + "scope": "text.html.markdown punctuation.definition.heading", + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "text.html.markdown punctuation.definition.constant", + "text.html.markdown punctuation.definition.string" + ], + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "text.html.markdown constant.other.reference.link", + "text.html.markdown string.other.link.description", + "text.html.markdown string.other.link.title" + ], + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": [ + "source.php meta.function-call", + "source.php meta.function-call.object" + ], + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": [ + "source.python entity.name.function.decorator", + "source.python meta.function.decorator support.type" + ], + "settings": { "foreground": "#D08770" } + }, + { + "scope": [ + "source.python meta.function-call", + "source.python meta.function-call.generic" + ], + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": "source.python support.type", + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": ["source.python variable.parameter.function.language"], + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": [ + "source.python meta.function.parameters variable.parameter.function.language.special.self" + ], + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": [ + "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", + "source.css.scss punctuation.definition.interpolation.end.bracket.curly" + ], + "settings": { "foreground": "#81A1C1" } + }, + { + "scope": "source.css.scss variable.interpolation", + "settings": { "foreground": "#D8DEE9", "fontStyle": "italic" } + }, + { + "scope": [ + "source.ts punctuation.decorator", + "source.ts meta.decorator variable.other.readwrite", + "source.ts meta.decorator entity.name.function", + "source.tsx punctuation.decorator", + "source.tsx meta.decorator variable.other.readwrite", + "source.tsx meta.decorator entity.name.function" + ], + "settings": { "foreground": "#D08770" } + }, + { + "scope": [ + "source.ts meta.object-literal.key", + "source.tsx meta.object-literal.key" + ], + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": [ + "source.ts meta.object-literal.key entity.name.function", + "source.tsx meta.object-literal.key entity.name.function" + ], + "settings": { "foreground": "#88C0D0" } + }, + { + "scope": [ + "source.ts support.class", + "source.ts support.type", + "source.ts entity.name.type", + "source.ts entity.name.class", + "source.tsx support.class", + "source.tsx support.type", + "source.tsx entity.name.type", + "source.tsx entity.name.class" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": [ + "source.ts support.constant.math", + "source.ts support.constant.dom", + "source.ts support.constant.json", + "source.tsx support.constant.math", + "source.tsx support.constant.dom", + "source.tsx support.constant.json" + ], + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": ["source.ts support.variable", "source.tsx support.variable"], + "settings": { "foreground": "#D8DEE9" } + }, + { + "scope": "text.xml entity.name.tag.namespace", + "settings": { "foreground": "#8FBCBB" } + }, + { + "scope": "text.xml keyword.other.doctype", + "settings": { "foreground": "#5E81AC" } + }, + { + "scope": "text.xml meta.tag.preprocessor entity.name.tag", + "settings": { "foreground": "#5E81AC" } + }, + { + "scope": [ + "text.xml string.unquoted.cdata", + "text.xml string.unquoted.cdata punctuation.definition.string" + ], + "settings": { "foreground": "#D08770", "fontStyle": "italic" } + }, + { + "scope": "source.yaml entity.name.tag", + "settings": { "foreground": "#8FBCBB" } + } + ] +} diff --git a/extensions/hypno-themes/themes/hypno-dark.json b/extensions/hypno-themes/themes/hypno-dark.json new file mode 100644 index 000000000000..251cf4c727c6 --- /dev/null +++ b/extensions/hypno-themes/themes/hypno-dark.json @@ -0,0 +1,1526 @@ +{ + "name": "Hypno Dark", + "colors": { + "debugExceptionWidget.border": "#141414", + "errorForeground": "#E34671", + "focusBorder": "#E4E4E426", + "foreground": "#E4E4E4EB", + "selection.background": "#E4E4E430", + "widget.shadow": "#00000066", + "activityBar.background": "#141414", + "activityBar.foreground": "#E4E4E48D", + "activityBarBadge.background": "#88C0D0", + "activityBarBadge.foreground": "#141414", + "badge.background": "#88C0D0", + "badge.foreground": "#141414", + "breadcrumb.activeSelectionForeground": "#E4E4E4EB", + "breadcrumb.background": "#181818", + "breadcrumb.foreground": "#E4E4E48D", + "breadcrumbPicker.background": "#141414", + "button.background": "#81A1C1", + "button.foreground": "#191c22", + "button.hoverBackground": "#87A6C4", + "button.secondaryBackground": "#626262", + "button.secondaryForeground": "#E4E4E4EB", + "button.secondaryHoverBackground": "#818181", + "debugExceptionWidget.background": "#181818", + "debugToolBar.background": "#141414", + "charts.green": "#3FA266", + "charts.red": "#E34671", + "charts.yellow": "#F1B467", + "diffEditor.insertedTextBackground": "#3FA26622", + "diffEditor.insertedLineBackground": "#3FA26633", + "diffEditor.removedTextBackground": "#B8004922", + "diffEditor.removedLineBackground": "#B8004933", + "diffEditor.diagonalFill": "#E4E4E413", + "editorGutter.addedBackground": "#3FA266", + "editorGutter.deletedBackground": "#E34671", + "editorGutter.modifiedBackground": "#D2943E", + "editorGutter.background": "#181818", + "editorOverviewRuler.addedForeground": "#3FA26684", + "editorOverviewRuler.deletedForeground": "#E3467184", + "editorOverviewRuler.modifiedForeground": "#B9790084", + "editorOverviewRuler.errorForeground": "#B80049", + "editorOverviewRuler.border": "#00000000", + "editorOverviewRuler.findMatchForeground": "#E4E4E411", + "gitDecoration.addedResourceForeground": "#70B489", + "gitDecoration.deletedResourceForeground": "#FC6B83", + "gitDecoration.ignoredResourceForeground": "#E4E4E45E", + "gitDecoration.modifiedResourceForeground": "#F1B467", + "gitDecoration.untrackedResourceForeground": "#88C0D0", + "dropdown.background": "#181818", + "dropdown.border": "#E4E4E413", + "dropdown.foreground": "#E4E4E4EB", + "editor.background": "#181818", + "editor.foreground": "#E4E4E4EB", + "editor.findMatchBackground": "#88C0D066", + "editor.findMatchHighlightBackground": "#88C0D044", + "editor.findRangeHighlightBackground": "#E4E4E411", + "editor.hoverHighlightBackground": "#E4E4E41E", + "editor.inactiveSelectionBackground": "#40404077", + "editor.lineHighlightBackground": "#262626", + "editor.lineHighlightBorder": "#262626", + "editor.rangeHighlightBackground": "#40404052", + "editor.selectionBackground": "#40404099", + "editor.selectionHighlightBackground": "#404040CC", + "editor.snippetFinalTabstopHighlightBorder": "#CCCCCC", + "editor.snippetTabstopHighlightBackground": "#CCCCCC55", + "editor.wordHighlightBackground": "#E4E4E41E", + "editor.wordHighlightStrongBackground": "#E4E4E430", + "editorBracketMatch.background": "#E4E4E41E", + "editorBracketMatch.border": "#14141400", + "editorCodeLens.foreground": "#E4E4E442", + "editorCursor.foreground": "#E4E4E4EB", + "editorError.border": "#E3467100", + "editorError.foreground": "#E34671", + "editorGroup.border": "#E4E4E413", + "editorGroup.dropBackground": "#E4E4E411", + "editorGroup.emptyBackground": "#141414", + "editorGroupHeader.noTabsBackground": "#141414", + "editorGroupHeader.tabsBackground": "#141414", + "editorGroupHeader.tabsBorder": "#E4E4E413", + "editorHoverWidget.foreground": "#E4E4E4EB", + "editorHoverWidget.background": "#181818", + "editorHoverWidget.border": "#E4E4E413", + "editorIndentGuide.activeBackground1": "#E4E4E430", + "editorIndentGuide.background1": "#E4E4E413", + "editorInlayHint.background": "#00000000", + "editorInlayHint.foreground": "#E4E4E442", + "editorInlayHint.parameterBackground": "#00000000", + "editorInlayHint.parameterForeground": "#E4E4E442", + "editorInlayHint.typeBackground": "#00000000", + "editorInlayHint.typeForeground": "#E4E4E442", + "editorLineNumber.activeForeground": "#E4E4E4EB", + "editorLineNumber.foreground": "#E4E4E442", + "editorLink.activeForeground": "#E4E4E4EB", + "editorMarkerNavigation.background": "#ffffff70", + "editorMarkerNavigationError.background": "#E34671C0", + "editorMarkerNavigationWarning.background": "#CCCCCC", + "editorRuler.foreground": "#E4E4E442", + "editorSuggestWidget.background": "#141414", + "editorSuggestWidget.border": "#E4E4E413", + "editorSuggestWidget.foreground": "#E4E4E4EB", + "editorSuggestWidget.highlightForeground": "#E4E4E4EB", + "editorSuggestWidget.selectedBackground": "#343434", + "editorWarning.border": "#E4E4E400", + "editorWarning.foreground": "#F1B467", + "editorWhitespace.foreground": "#505050B3", + "editorWidget.background": "#141414", + "editorWidget.resizeBorder": "#E4E4E426", + "extensionButton.prominentBackground": "#626262", + "extensionButton.prominentForeground": "#E4E4E4EB", + "extensionButton.prominentHoverBackground": "#818181", + "gitlens.trailingLineForegroundColor": "#E4E4E48D", + "input.background": "#1c1c1c", + "input.border": "#E4E4E413", + "input.foreground": "#E4E4E4EB", + "input.placeholderForeground": "#E4E4E45E", + "inputOption.activeBorder": "#E4E4E400", + "inputOption.activeBackground": "#E4E4E41E", + "inputValidation.errorBackground": "#141414", + "inputValidation.errorBorder": "#E34671", + "inputValidation.errorForeground": "#FC6B83", + "inputValidation.infoBackground": "#141414", + "inputValidation.infoBorder": "#88C0D0", + "inputValidation.infoForeground": "#88C0D0", + "inputValidation.warningBackground": "#141414", + "inputValidation.warningBorder": "#D2943E", + "inputValidation.warningForeground": "#F1B467", + "list.activeSelectionBackground": "#E4E4E41E", + "list.activeSelectionForeground": "#E4E4E4EB", + "list.inactiveSelectionBackground": "#E4E4E411", + "list.inactiveSelectionForeground": "#E4E4E4EB", + "list.deemphasizedForeground": "#E4E4E48D", + "list.dropBackground": "#E4E4E411", + "list.errorForeground": "#FC6B83", + "list.focusBackground": "#E4E4E41E", + "list.focusForeground": "#E4E4E4EB", + "list.highlightForeground": "#88C0D0", + "list.hoverBackground": "#E4E4E411", + "list.hoverForeground": "#E4E4E4EB", + "list.invalidItemForeground": "#E4E4E45E", + "list.warningForeground": "#F1B467", + "menu.background": "#141414", + "menu.foreground": "#E4E4E4EB", + "menu.separatorBackground": "#E4E4E413", + "menubar.selectionBackground": "#E4E4E411", + "menu.border": "#E4E4E413", + "merge.border": "#2A2A2A00", + "merge.currentContentBackground": "#88C0D04D", + "merge.currentHeaderBackground": "#88C0D066", + "merge.incomingContentBackground": "#3FA2664D", + "merge.incomingHeaderBackground": "#3FA26666", + "notificationLink.foreground": "#88C0D0", + "notifications.background": "#141414", + "notifications.foreground": "#E4E4E4EB", + "panel.background": "#141414", + "panel.border": "#E4E4E413", + "panelTitle.activeBorder": "#E4E4E400", + "panelTitle.activeForeground": "#E4E4E4EB", + "panelTitle.inactiveForeground": "#E4E4E48D", + "peekView.border": "#E4E4E442", + "peekViewEditor.background": "#141414", + "peekViewEditor.matchHighlightBackground": "#88C0D044", + "peekViewEditorGutter.background": "#141414", + "peekViewResult.background": "#141414", + "peekViewResult.fileForeground": "#E4E4E4EB", + "peekViewResult.lineForeground": "#E4E4E48D", + "peekViewResult.matchHighlightBackground": "#88C0D044", + "peekViewResult.selectionBackground": "#343434", + "peekViewResult.selectionForeground": "#E4E4E4EB", + "peekViewTitle.background": "#242424", + "peekViewTitleDescription.foreground": "#E4E4E4EB", + "peekViewTitleLabel.foreground": "#E4E4E4EB", + "pickerGroup.border": "#E4E4E41C", + "pickerGroup.foreground": "#E4E4E4EB", + "progressBar.background": "#3FA266", + "scrollbar.shadow": "#00000000", + "scrollbarSlider.activeBackground": "#E4E4E41E", + "scrollbarSlider.background": "#E4E4E411", + "scrollbarSlider.hoverBackground": "#E4E4E41E", + "sideBar.background": "#141414", + "sideBar.border": "#E4E4E413", + "sideBar.foreground": "#E4E4E48D", + "sideBarSectionHeader.background": "#141414", + "sideBarSectionHeader.foreground": "#E4E4E442", + "sideBarTitle.foreground": "#E4E4E48D", + "statusBar.foreground": "#E4E4E45E", + "statusBar.background": "#141414", + "statusBar.border": "#E4E4E413", + "statusBar.debuggingBackground": "#E4E4E41C", + "statusBar.debuggingForeground": "#E4E4E4EB", + "statusBar.noFolderBackground": "#141414", + "statusBar.noFolderForeground": "#E4E4E4EB", + "statusBarItem.activeBackground": "#E4E4E41E", + "statusBarItem.hoverBackground": "#E4E4E411", + "statusBarItem.prominentBackground": "#E4E4E411", + "statusBarItem.prominentHoverBackground": "#E4E4E41E", + "statusBarItem.remoteBackground": "#141414", + "statusBarItem.remoteForeground": "#E4E4E48D", + "tab.activeBackground": "#181818", + "tab.activeBorder": "#181818", + "tab.activeBorderTop": "#E4E4E400", + "tab.activeForeground": "#E4E4E4EB", + "tab.border": "#E4E4E413", + "tab.hoverBackground": "#E4E4E400", + "tab.inactiveBackground": "#141414", + "tab.inactiveForeground": "#E4E4E442", + "tab.unfocusedActiveBorder": "#181818", + "tab.unfocusedActiveForeground": "#E4E4E48D", + "tab.unfocusedHoverBackground": "#2A2A2AB3", + "tab.unfocusedHoverBorder": "#88C0D000", + "tab.unfocusedInactiveForeground": "#E4E4E48D", + "terminal.ansiBlack": "#242424", + "terminal.ansiBlue": "#81A1C1", + "terminal.ansiBrightBlack": "#E4E4E442", + "terminal.ansiBrightBlue": "#87A6C4", + "terminal.ansiBrightCyan": "#88C0D0", + "terminal.ansiBrightGreen": "#70B489", + "terminal.ansiBrightMagenta": "#B48EAD", + "terminal.ansiBrightRed": "#FC6B83", + "terminal.ansiBrightWhite": "#E4E4E4", + "terminal.ansiBrightYellow": "#F1B467", + "terminal.ansiCyan": "#88C0D0", + "terminal.ansiGreen": "#3FA266", + "terminal.ansiMagenta": "#B48EAD", + "terminal.ansiRed": "#FC6B83", + "terminal.ansiWhite": "#E4E4E4", + "terminal.ansiYellow": "#D2943E", + "terminal.background": "#141414", + "terminal.foreground": "#E4E4E4EB", + "terminal.selectionBackground": "#E4E4E41E", + "terminalCursor.background": "#141414", + "terminalCursor.foreground": "#E4E4E4EB", + "textLink.activeForeground": "#87A6C4", + "textLink.foreground": "#81A1C1", + "textPreformat.foreground": "#88C0D0", + "textSeparator.foreground": "#88C0D0", + "titleBar.activeBackground": "#141414", + "titleBar.activeForeground": "#E4E4E484", + "titleBar.border": "#E4E4E413", + "titleBar.inactiveBackground": "#141414", + "titleBar.inactiveForeground": "#E4E4E45E", + "tree.indentGuidesStroke": "#E4E4E430", + "tree.inactiveIndentGuidesStroke": "#E4E4E413", + "walkThrough.embeddedEditorBackground": "#141414", + "minimapGutter.addedBackground": "#3FA266", + "minimapGutter.modifiedBackground": "#D2943E", + "minimapGutter.deletedBackground": "#E34671", + "minimap.findMatchHighlight": "#88C0D044", + "minimap.selectionHighlight": "#E4E4E411", + "minimap.errorHighlight": "#CD2A4F", + "minimap.warningHighlight": "#ea7620", + "minimap.background": "#181818" + }, + "semanticHighlighting": true, + "semanticTokenColors": { + "enumMember": { "foreground": "#d6d6dd" }, + "variable.constant": { "foreground": "#82D2CE" }, + "variable.defaultLibrary": { "foreground": "#d6d6dd" }, + "variable.defaultLibrary.globalScope": { "foreground": "#CCCCCC" }, + "class.typeHint": "#82d2ce", + "variable.declaration.readonly:cpp": "#CCCCCC", + "variable.declaration.readonly:c": "#CCCCCC", + "variable.readonly:cpp": "#CCCCCC", + "variable.readonly:c": "#CCCCCC", + "method.declaration": { "foreground": "#efb080", "fontStyle": "bold" }, + "entity.name.function": { "foreground": "#EBC88D" }, + "function.builtin": "#82d2ce", + "class.builtin": "#82d2ce", + "class.declaration:python": "#87c3ff", + "support.variable.property": "#AAA0FA", + "class.decorator.builtin:python": "#a8cc7c", + "function.declaration": { "foreground": "#efb080", "fontStyle": "bold" }, + "operatorOverload": "#CCCCCC", + "memberOperatorOverload": "#CCCCCC", + "namespace:cpp": "#87c3ff", + "variable.global:cpp": "#a8cc7c", + "variable.global:c": "#a8cc7c", + "type:cpp": "#87c3ff", + "function": "#ebc88d", + "function:cpp": { "foreground": "#E4E4E4EB", "fontStyle": "bold" }, + "class:python": { "foreground": "#ebc88d", "fontStyle": "" }, + "*.decorator:python": { "foreground": "#a8cc7c", "fontStyle": "" }, + "method:python": { "foreground": "#ebc88d", "fontStyle": "" }, + "method:cpp": { "foreground": "#87c3ff", "fontStyle": "" }, + "selfParameter": "#cc7c8a", + "macro": "#a8cc7c", + "property:cpp": "#AAA0FA", + "variable:javascript": "#CCCCCC", + "property.declaration:cpp": "#AAA0FA", + "property.declaration:c": "#AAA0FA", + "type:c": "#87c3ff", + "function:c": { "foreground": "#E4E4E4EB", "fontStyle": "bold" }, + "property:c": "#AAA0FA", + "function:cmake": "#87c3ff", + "builtinConstant.readonly.builtin:python": "#82d2ce" + }, + "tokenColors": [ + { + "name": "Python: Binary String (Single-Quoted)", + "scope": "string.quoted.binary.single.python", + "settings": { "foreground": "#a8cc7c" } + }, + { + "name": "C++: Boolean Literals", + "scope": ["constant.language.false.cpp", "constant.language.true.cpp"], + "settings": { "foreground": "#82d2ce" } + }, + { + "name": "Unison: Punctuation", + "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Control Directive", + "scope": "keyword.control.directive", + "settings": { "foreground": "#a8cc7c" } + }, + { + "name": "Python: Ellipsis", + "scope": "constant.other.ellipsis.python", + "settings": { "foreground": "#CCCCCC" } + }, + { + "name": "Haskell: Generic Type Variable", + "scope": "variable.other.generic-type.haskell", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "HTML: Tag Punctuation", + "scope": "punctuation.definition.tag", + "settings": { "foreground": "#A4A4A4" } + }, + { + "name": "Haskell: Storage Type", + "scope": "storage.type.haskell", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Python: Magic Variable", + "scope": "support.variable.magic.python", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Python: Parameter Punctuation", + "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Python: Self Parameter", + "scope": "variable.parameter.function.language.special.self.python", + "settings": { "foreground": "#efb080" } + }, + { + "name": "C++: This", + "scope": "variable.language.this.cpp", + "settings": { "foreground": "#82d2ce" } + }, + { + "name": "Rust: Lifetime Modifier", + "scope": "storage.modifier.lifetime.rust", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Rust: Standard Function", + "scope": "support.function.std.rust", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Rust: Lifetime Name", + "scope": "entity.name.lifetime.rust", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Rust: Language Variable", + "scope": "variable.language.rust", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Support Constant: Edge", + "scope": "support.constant.edge", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "RegExp: Quantifier Operator", + "scope": "keyword.operator.quantifier.regexp", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Strings", + "scope": [ + "string", + "punctuation.definition.string.begin", + "punctuation.definition.string.end" + ], + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Text", + "scope": "variable.parameter.function", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Comment Markup Link", + "scope": "comment markup.link", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Diff: Changed", + "scope": "markup.changed.diff", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Diff: Header", + "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Diff: Inserted", + "scope": "markup.inserted.diff", + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Diff: Deleted", + "scope": "markup.deleted.diff", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C/C++: Function", + "scope": "meta.function.c,meta.function.cpp", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C/C++: Block Punctuation", + "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JavaScript/TypeScript: Key-Value Separator", + "scope": "punctuation.separator.key-value", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JavaScript/TypeScript: Import Operator", + "scope": "keyword.operator.expression.import", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "JavaScript/TypeScript: Math", + "scope": "support.constant.math", + "settings": { "foreground": "#efb080" } + }, + { + "name": "JavaScript/TypeScript: Math Property", + "scope": "support.constant.property.math", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "JavaScript/TypeScript: Constant Variable", + "scope": "variable.other.constant", + "settings": { "foreground": "#AAA0FA" } + }, + { + "name": "Java: Types", + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Java: Source", + "scope": "source.java", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Java: Punctuation and Blocks", + "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Java: Method Meta", + "scope": "meta.method.java", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Java: Modifiers and Types", + "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Java: Instanceof Operator", + "scope": "keyword.operator.instanceof.java", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Java: Variable Name", + "scope": "meta.definition.variable.name.java", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Logical Operators", + "scope": "keyword.operator.logical", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Bitwise Operators", + "scope": "keyword.operator.bitwise", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Arithmetic Operators", + "scope": [ + "keyword.operator.arithmetic", + "keyword.operator.comparison", + "keyword.operator.decrement", + "keyword.operator.increment", + "keyword.operator.relational" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Channel Operator", + "scope": "keyword.operator.channel", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "CSS/SCSS/LESS Operators", + "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "CSS: Standard Color Name", + "scope": [ + "support.constant.color.w3c-standard-color-name.css", + "support.constant.color.w3c-standard-color-name.scss" + ], + "settings": { "foreground": "#f8c762" } + }, + { + "name": "CSS: Comma", + "scope": "punctuation.separator.list.comma.css", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Module: Type Name", + "scope": [ + "entity.name.type.module", + "support.module.node", + "support.type.object.module" + ], + "settings": { "foreground": "#efb080" } + }, + { + "name": "JavaScript: Variable (Read/Write)", + "scope": "meta.object-literal.key,support.variable.object.process,support.variable.object.node", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "variable.other.readwrite", + "scope": "variable.other.readwrite", + "settings": { "foreground": "#87C3FF" } + }, + { + "name": "support.variable.property", + "scope": [ + "support.variable.property", + "variable.other.property", + "variable.other.property.ts", + "meta.definition.property.ts" + ], + "settings": { "foreground": "#AAA0FA" } + }, + { + "name": "JSON: Constants", + "scope": "support.constant.json", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Special Operators", + "scope": [ + "keyword.operator.expression.instanceof", + "keyword.operator.new", + "keyword.operator.ternary", + "keyword.operator.optional", + "keyword.operator.expression.keyof", + "keyword.operator.expression.delete", + "keyword.operator.expression.in", + "keyword.operator.expression.of", + "keyword.operator.expression.typeof", + "keyword.operator.expression.void" + ], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "JavaScript/TypeScript: Console Object", + "scope": "support.type.object.console", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JavaScript/TypeScript: Process Property", + "scope": "support.variable.property.process", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "JavaScript: Console Function", + "scope": "entity.name.function.js,support.function.console.js", + "settings": { "foreground": "#ebc88d" } + }, + { + "name": "keyword.operator.misc.rust", + "scope": "keyword.operator.misc.rust", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "keyword.operator.sigil.rust", + "scope": "keyword.operator.sigil.rust", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Operator: Delete", + "scope": "keyword.operator.delete", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "DOM: Object", + "scope": "support.type.object.dom", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "DOM: Variable/Property", + "scope": "support.variable.dom,support.variable.property.dom", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C operator assignment", + "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Punctuation: Delimiter", + "scope": "punctuation.separator.delimiter", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C/C++: Other Punctuation", + "scope": "punctuation.separator.c,punctuation.separator.cpp", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "C/C++: POSIX-Reserved Type", + "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C/C++: sizeof Operator", + "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Python: Types", + "scope": "support.type.python", + "settings": { "foreground": "#82d2ce" } + }, + { + "name": "Python: Logical Operators", + "scope": "keyword.operator.logical.python", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Python: Function Parameters", + "scope": [ + "variable.parameter.function.python", + "variable.parameter.function.language.python" + ], + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Python: Block Punctuation", + "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Python: Function Call (Generic)", + "scope": "meta.function-call.generic.python", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Python: String Placeholder", + "scope": "constant.character.format.placeholder.other.python", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Operators (All)", + "scope": "keyword.operator", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Compound Assignment Operators", + "scope": "keyword.operator.assignment.compound", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Compound Assignment Operators js/ts", + "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Keywords (All)", + "scope": "keyword", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Namespaces", + "scope": "entity.name.namespace", + "settings": { "foreground": "#CCCCCC" } + }, + { + "name": "Variables (All)", + "scope": ["variable", "variable.c"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Language Variables", + "scope": "variable.language", + "settings": { "foreground": "#CC7C8A" } + }, + { + "name": "Java: Variables", + "scope": "token.variable.parameter.java", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Java: Imports", + "scope": "import.storage.java", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Java: Package Keyword", + "scope": "token.package.keyword", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Java: Package Identifier", + "scope": "token.package", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Functions (All)", + "scope": [ + "entity.name.function", + "meta.require", + "support.function", + "variable.function" + ], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Namespaces (All)", + "scope": "entity.name.type.namespace", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Classes (All)", + "scope": "support.class, entity.name.type.class", + "settings": { "foreground": "#87c3ff" } + }, + { + "name": "Class Name", + "scope": [ + "entity.name.class", + "variable.other.class.js", + "variable.other.class.ts", + "entity.name.class.identifier.namespace.type" + ], + "settings": { "foreground": "#efb080" } + }, + { + "name": "PHP: Class Name", + "scope": "variable.other.class.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Type Name", + "scope": "entity.name.type", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Keyword Control", + "scope": "keyword.control.directive.include.cpp", + "settings": { "foreground": "#a8cc7c" } + }, + { + "name": "Control Elements", + "scope": "control.elements, keyword.operator.less", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Methods", + "scope": "keyword.other.special-method", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Storage", + "scope": ["storage", "token.storage"], + "settings": { "foreground": "#82d2ce" } + }, + { + "scope": ["storage.modifier.reference", "storage.modifier.pointer"], + "settings": { "foreground": "#CCCCCC" } + }, + { + "name": "Java Storage", + "scope": "token.storage.type.java", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Support", + "scope": "support.function", + "settings": { "foreground": "#efb080" } + }, + { + "name": "CSS: Property Name", + "scope": "meta.property-name.css", + "settings": { "foreground": "#87c3ff" } + }, + { + "name": "Meta: Tag", + "scope": "meta.tag", + "settings": { "foreground": "#fad075" } + }, + { + "name": "Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Constant other symbol", + "scope": "constant.other.symbol", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Integers", + "scope": "constant.numeric", + "settings": { "foreground": "#ebc88d" } + }, + { + "name": "CSS: Color Constant", + "scope": "constant.other.color", + "settings": { "foreground": "#ebc88d" } + }, + { + "name": "Constants", + "scope": "punctuation.definition.constant", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Vue: Tags", + "scope": [ + "entity.name.tag.template", + "entity.name.tag.script", + "entity.name.tag.style" + ], + "settings": { "foreground": "#AAA0FA" } + }, + { + "name": "HTML: Tag", + "scope": ["entity.name.tag.html"], + "settings": { "foreground": "#87c3ff" } + }, + { + "name": "css property value", + "scope": "meta.property-value.css", + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Attributes", + "scope": "entity.other.attribute-name", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Attribute IDs", + "scope": "entity.other.attribute-name.id", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "CSS: Attribute Class", + "scope": "entity.other.attribute-name.class.css", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Selector", + "scope": "meta.selector", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Headings", + "scope": "markup.heading", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Headings", + "scope": "markup.heading punctuation.definition.heading, entity.name.section", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Units", + "scope": "keyword.other.unit", + "settings": { "foreground": "#ebc88d" } + }, + { + "name": "Markdown: Bold Text", + "scope": "markup.bold,todo.bold", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Markdown: Bold Punctuation", + "scope": "punctuation.definition.bold", + "settings": { "foreground": "#efb080" } + }, + { + "name": "Markdown: Italic", + "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Markdown: Emphasis", + "scope": "emphasis md", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Markdown: Headings", + "scope": "entity.name.section.markdown", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: Heading Punctuation", + "scope": "punctuation.definition.heading.markdown", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: Setext Headings", + "scope": "markup.heading.setext", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: Bold Punctuation", + "scope": "punctuation.definition.bold.markdown", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Markdown: Inline Raw", + "scope": "markup.inline.raw.markdown, markup.inline.raw.string.markdown", + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Markdown: List Punctuation", + "scope": [ + "punctuation.definition.list.begin.markdown", + "punctuation.definition.list.markdown", + "beginning.punctuation.definition.list.markdown" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: String Punctuation", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.metadata.markdown" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: Metadata Punctuation", + "scope": "punctuation.definition.metadata.markdown", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Markdown: Underline Link and Image", + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Markdown: Link Title and Description", + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Regular Expressions", + "scope": "string.regexp", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Escape Characters", + "scope": "constant.character.escape", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Embedded", + "scope": "variable.interpolation", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Embedded", + "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Invalid", + "scope": "invalid.illegal, invalid.illegal.bad-ampersand.html, invalid.broken, invalid.deprecated, invalid.unimplemented", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Source Json Meta Structure Dictionary Json > String Quoted Json", + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String", + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation", + "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json", + "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JSON: Property Name", + "scope": "support.type.property-name.json", + "settings": { "foreground": "#82d2ce" } + }, + { + "name": "Laravel Blade Tag and @", + "scope": [ + "entity.name.tag.laravel-blade", + "support.constant.laravel-blade" + ], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "PHP: Use Statement", + "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php", + "settings": { "foreground": "#efb080" } + }, + { + "name": "PHP: Error Suppression", + "scope": "keyword.operator.error-control.php", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "PHP: Instanceof Operator", + "scope": "keyword.operator.type.php", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "PHP: Array Index Begin (Double-Quoted)", + "scope": "punctuation.section.array.begin.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "PHP: Array Index End (Double-Quoted)", + "scope": "punctuation.section.array.end.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "PHP: Illegal Non-Null Typehinted", + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { "foreground": "#F14C4C" } + }, + { + "name": "PHP: Types", + "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", + "settings": { "foreground": "#efb080" } + }, + { + "name": "PHP: Function Call", + "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "PHP: Function/Block Punctuation", + "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Rust: Core Constants", + "scope": "support.constant.core.rust", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "PHP: Constants", + "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "PHP Goto", + "scope": "entity.name.goto-label.php,support.other.php", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "PHP Logical/Bitwise Operator", + "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "PHP Regexp Operator", + "scope": "keyword.operator.regexp.php", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "PHP Comparison", + "scope": "keyword.operator.comparison.php", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "PHP Heredoc/Nowdoc", + "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Python Decorator", + "scope": [ + "meta.function.decorator.python", + "punctuation.definition.decorator.python", + "entity.name.function.decorator.python" + ], + "settings": { "foreground": "#a8cc7c" } + }, + { + "name": "Python: Decorator Support", + "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Function: Braces", + "scope": "function.brace", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Parameter Function", + "scope": [ + "function.parameter", + "function.parameter.ruby", + "function.parameter.cs" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Ruby: Symbol", + "scope": "constant.language.symbol.ruby", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "RGB Value", + "scope": "rgb-value", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "RGB Value (Inline)", + "scope": "inline-color-decoration rgb-value", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "RGB Value (Less)", + "scope": "less rgb-value", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Sass: Selector", + "scope": "selector.sass", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "TypeScript: Primitive/Builtin Types", + "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Block Scope", + "scope": "block.scope.end,block.scope.begin", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "C#: Storage Type", + "scope": "storage.type.cs", + "settings": { "foreground": "#efb080" } + }, + { + "name": "C#: Local Variable", + "scope": "entity.name.variable.local.cs", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Diagnostics: Info", + "scope": "token.info-token", + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Diagnostics: Warning", + "scope": "token.warn-token", + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Diagnostics: Error", + "scope": "token.error-token", + "settings": { "foreground": "#F14C4C" } + }, + { + "name": "Diagnostics: Debug", + "scope": "token.debug-token", + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Import module JS", + "scope": ["keyword.operator.module"], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "JS Flowtype", + "scope": ["support.type.type.flowtype"], + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "JS Flow", + "scope": ["support.type.primitive"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "JS Class Prop", + "scope": ["meta.property.object"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JS Func Parameter", + "scope": ["variable.parameter.function.js"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JS Template Literal Punctuation", + "scope": [ + "keyword.other.template.begin", + "keyword.other.template.end", + "keyword.other.substitution.begin", + "keyword.other.substitution.end" + ], + "settings": { "foreground": "#e394dc" } + }, + { + "name": "js operator.assignment", + "scope": ["keyword.operator.assignment"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Go: Assignment Operators", + "scope": ["keyword.operator.assignment.go"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Go: Arithmetic and Address Operators", + "scope": [ + "keyword.operator.arithmetic.go", + "keyword.operator.address.go" + ], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Go package name", + "scope": ["entity.name.package.go"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "elm prelude", + "scope": ["support.type.prelude.elm"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "elm constant", + "scope": ["support.constant.elm"], + "settings": { "foreground": "#f8c762" } + }, + { + "name": "template literal", + "scope": ["punctuation.quasi.element"], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "html/pug (jade) escaped characters and entities", + "scope": ["constant.character.entity"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour", + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Clojure globals", + "scope": ["entity.global.clojure"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Clojure symbols", + "scope": ["meta.symbol.clojure"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Clojure constants", + "scope": ["constant.keyword.clojure"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "CoffeeScript Function Argument", + "scope": ["meta.arguments.coffee", "variable.parameter.function.coffee"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Ini Default Text", + "scope": ["source.ini"], + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Makefile prerequisities", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Makefile text colour", + "scope": ["source.makefile"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Groovy import names", + "scope": ["storage.modifier.import.groovy"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Groovy Methods", + "scope": ["meta.method.groovy"], + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Groovy Variables", + "scope": ["meta.definition.variable.name.groovy"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Groovy Inheritance", + "scope": ["meta.definition.class.inherited.classes.groovy"], + "settings": { "foreground": "#e394dc" } + }, + { + "name": "HLSL Semantic", + "scope": ["support.variable.semantic.hlsl"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "HLSL Types", + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "SQL Variables", + "scope": ["text.variable", "text.bracketed"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Swift/VB ASP: Types", + "scope": ["support.type.swift", "support.type.vb.asp"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Xi: Heading 1 (Keyword)", + "scope": ["entity.name.function.xi"], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Xi: Heading 2 (Callable)", + "scope": ["entity.name.class.xi"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Xi: Heading 3 (Property)", + "scope": ["constant.character.character-class.regexp.xi"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Xi: Heading 4 (Type/Class/Interface)", + "scope": ["constant.regexp.xi"], + "settings": { "foreground": "#82D2CE" } + }, + { + "name": "Xi: Heading 5 (Enums/Preprocessor/Constant/Decorator)", + "scope": ["keyword.control.xi"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Xi: Heading 6 (Number)", + "scope": ["invalid.xi"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Xi: String", + "scope": ["beginning.punctuation.definition.quote.markdown.xi"], + "settings": { "foreground": "#e394dc" } + }, + { + "name": "Xi: Markdown List Punctuation", + "scope": ["beginning.punctuation.definition.list.markdown.xi"], + "settings": { "foreground": "#E4E4E45E" } + }, + { + "name": "Xi: Link Character", + "scope": ["constant.character.xi"], + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Xi: Accent", + "scope": ["accent.xi"], + "settings": { "foreground": "#aaa0fa" } + }, + { + "name": "Xi: Wikiword", + "scope": ["wikiword.xi"], + "settings": { "foreground": "#f8c762" } + }, + { + "name": "Xi: Language Operators", + "scope": ["constant.other.color.rgb-value.xi"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Xi: Dimmed Elements", + "scope": ["punctuation.definition.tag.xi"], + "settings": { "foreground": "#E4E4E45E" } + }, + { + "name": "C#/C++: Labels and Scope Resolution", + "scope": [ + "entity.name.label.cs", + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { "foreground": "#efb080" } + }, + { + "name": "Markdown: Setext Headers (CS)", + "scope": [ + "entity.name.label.cs", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "meta.brace.square", + "scope": "meta.brace.square", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Comment", + "scope": "comment, punctuation.definition.comment, comment.line.double-slash, comment.block.documentation", + "settings": { "fontStyle": "italic", "foreground": "#E4E4E45E" } + }, + { + "name": "Markdown: Quote", + "scope": "markup.quote.markdown", + "settings": { "foreground": "#E4E4E45E" } + }, + { + "name": "punctuation.definition.block.sequence.item.yaml", + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "Elixir: Symbol", + "scope": ["constant.language.symbol.elixir"], + "settings": { "foreground": "#d6d6dd" } + }, + { + "name": "JavaScript/TypeScript: Italic", + "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", + "settings": { "fontStyle": "italic" } + }, + { + "name": "Python Keyword Control", + "scope": "keyword.control.import.python,keyword.control.flow.python", + "settings": { "fontStyle": "italic" } + }, + { + "name": "markup.italic.markdown", + "scope": "markup.italic.markdown", + "settings": { "fontStyle": "italic" } + } + ] +} diff --git a/extensions/hypno-themes/themes/hypno-light.json b/extensions/hypno-themes/themes/hypno-light.json new file mode 100644 index 000000000000..ca08e761481b --- /dev/null +++ b/extensions/hypno-themes/themes/hypno-light.json @@ -0,0 +1,1131 @@ +{ + "name": "Hypno Light", + "colors": { + "debugExceptionWidget.border": "#F3F3F3", + "descriptionForeground": "#141414AD", + "errorForeground": "#CF2D56", + "focusBorder": "#14141426", + "foreground": "#141414EB", + "icon.foreground": "#1414145E", + "sash.hoverBorder": "#1414141C", + "selection.background": "#14141411", + "widget.border": "#1414141C", + "widget.shadow": "#1414141E", + "activityBar.background": "#F3F3F3", + "activityBar.foreground": "#141414AD", + "activityBarBadge.background": "#206595", + "activityBarBadge.foreground": "#F3F3F3", + "badge.background": "#F3F3F3", + "badge.foreground": "#1414148D", + "breadcrumb.activeSelectionForeground": "#141414AD", + "breadcrumb.background": "#FCFCFC", + "breadcrumb.foreground": "#141414AD", + "breadcrumb.focusForeground": "#141414EB", + "breadcrumbPicker.background": "#F3F3F3", + "button.background": "#3C7CAB", + "button.foreground": "#FCFCFC", + "button.hoverBackground": "#055180", + "button.secondaryBackground": "#1414141E", + "button.secondaryForeground": "#141414EB", + "button.secondaryHoverBackground": "#14141430", + "charts.foreground": "#141414AD", + "charts.lines": "#141414AD", + "charts.red": "#E75E78", + "charts.blue": "#6299C3", + "charts.yellow": "#C08532", + "charts.orange": "#DB704B", + "charts.green": "#55A583", + "charts.purple": "#9E94D5", + "chart.line": "#14141413", + "chart.axis": "#14141413", + "chart.guide": "#141414AD", + "commandCenter.foreground": "#141414AD", + "commandCenter.background": "#14141411", + "commandCenter.border": "#14141413", + "commandCenter.activeForeground": "#141414AD", + "commandCenter.activeBorder": "#1414141C", + "commandCenter.activeBackground": "#1414141E", + "commandCenter.inactiveForeground": "#1414147A", + "commandCenter.inactiveBorder": "#14141413", + "commandCenter.debuggingBackground": "#1414141E", + "debugExceptionWidget.background": "#FCFCFC", + "debugToolBar.background": "#F3F3F3", + "diffEditor.insertedLineBackground": "#1F8A651F", + "diffEditor.insertedTextBackground": "#1F8A6524", + "diffEditor.removedLineBackground": "#CF2D5614", + "diffEditor.removedTextBackground": "#CF2D561F", + "diffEditor.unchangedCodeBackground": "#FCFCFC00", + "dropdown.background": "#FCFCFC", + "dropdown.border": "#14141413", + "dropdown.foreground": "#141414EB", + "editor.background": "#FCFCFC", + "editor.foreground": "#141414EB", + "editor.findMatchBackground": "#6F9BA65C", + "editor.findMatchHighlightBackground": "#6F9BA62E", + "editor.findRangeHighlightBackground": "#14141411", + "editor.hoverHighlightBackground": "#1414141E", + "editor.inactiveSelectionBackground": "#14141411", + "editor.lineHighlightBackground": "#EDEDED", + "editor.lineHighlightBorder": "#EDEDED", + "editor.rangeHighlightBackground": "#6F9BA629", + "editor.selectionBackground": "#1414141E", + "editor.selectionHighlightBackground": "#14141411", + "editor.snippetFinalTabstopHighlightBorder": "#1414141C", + "editor.snippetTabstopHighlightBackground": "#1414141E", + "editor.wordHighlightBackground": "#1414141E", + "editor.wordHighlightStrongBackground": "#1414140A", + "editorBracketMatch.background": "#1414141E", + "editorBracketMatch.border": "#FCFCFC00", + "editorBracketHighlight.foreground1": "#055180", + "editorBracketHighlight.foreground2": "#3C7CAB", + "editorBracketHighlight.foreground3": "#6299C3", + "editorBracketHighlight.foreground4": "#A02673", + "editorBracketHighlight.foreground5": "#D06BA6", + "editorBracketHighlight.foreground6": "#DEA0C3", + "editorBracketHighlight.unexpectedBracket.foreground": "#CF2D56", + "editorCodeLens.foreground": "#141414AD", + "editorCursor.foreground": "#141414EB", + "editorError.border": "#CF2D5600", + "editorError.foreground": "#CF2D56", + "editorGroup.border": "#14141413", + "editorGroup.dropBackground": "#14141411", + "editorGroup.emptyBackground": "#F3F3F3", + "editorGroupHeader.noTabsBackground": "#F3F3F3", + "editorGroupHeader.tabsBackground": "#F3F3F3", + "editorGroupHeader.tabsBorder": "#14141413", + "editorGutter.addedBackground": "#1F8A65", + "editorGutter.background": "#FCFCFC", + "editorGutter.deletedBackground": "#CF2D56", + "editorGutter.modifiedBackground": "#C08532", + "editorHoverWidget.background": "#FCFCFC", + "editorHoverWidget.foreground": "#141414EB", + "editorHoverWidget.border": "#1414141C", + "editorIndentGuide.activeBackground1": "#14141426", + "editorIndentGuide.background1": "#14141413", + "editorInlayHint.background": "#FCFCFC00", + "editorInlayHint.foreground": "#141414AD", + "editorInlayHint.parameterBackground": "#FCFCFC00", + "editorInlayHint.parameterForeground": "#1414147A", + "editorInlayHint.typeBackground": "#FCFCFC00", + "editorInlayHint.typeForeground": "#1414147A", + "editorLineNumber.activeForeground": "#141414AD", + "editorLineNumber.foreground": "#1414147A", + "editorLink.activeForeground": "#141414EB", + "editorMarkerNavigation.background": "#14141461", + "editorMarkerNavigationError.background": "#CF2D56C0", + "editorMarkerNavigationWarning.background": "#141414AD", + "editorOverviewRuler.border": "#FCFCFC00", + "editorRuler.foreground": "#14141426", + "editorSuggestWidget.background": "#F3F3F3", + "editorSuggestWidget.border": "#14141413", + "editorSuggestWidget.foreground": "#141414AD", + "editorSuggestWidget.highlightForeground": "#141414EB", + "editorSuggestWidget.selectedBackground": "#14141411", + "editorUnnecessaryCode.opacity": "#0000007F", + "editorWarning.border": "#FCFCFC00", + "editorWarning.foreground": "#DB704B", + "editorWhitespace.foreground": "#1414145E", + "editorWidget.background": "#F3F3F3", + "editorWidget.foreground": "#141414AD", + "editorWidget.resizeBorder": "#14141426", + "editorStickyScroll.border": "#14141413", + "extensionButton.prominentBackground": "#14141411", + "extensionButton.prominentForeground": "#FCFCFC", + "extensionButton.prominentHoverBackground": "#1414141E", + "gitDecoration.addedResourceForeground": "#1F8A65", + "gitDecoration.deletedResourceForeground": "#CF2D56", + "gitDecoration.ignoredResourceForeground": "#1414147A", + "gitDecoration.modifiedResourceForeground": "#C08532", + "gitDecoration.untrackedResourceForeground": "#4C7F8C", + "git.blame.editorDecorationForeground": "#141414AD", + "gitlens.trailingLineForegroundColor": "#1414147A", + "input.background": "#FCFCFC", + "input.border": "#14141426", + "input.foreground": "#141414EB", + "input.placeholderForeground": "#1414147A", + "inputOption.activeBorder": "#14141400", + "inputOption.activeBackground": "#1414141E", + "inputValidation.errorBackground": "#FFD0D6", + "inputValidation.errorBorder": "#E75E78", + "inputValidation.errorForeground": "#CF2D56", + "inputValidation.infoBackground": "#D2E1E5", + "inputValidation.infoBorder": "#6F9BA6", + "inputValidation.infoForeground": "#4C7F8C", + "inputValidation.warningBackground": "#F0DAC1", + "inputValidation.warningBorder": "#C08532", + "inputValidation.warningForeground": "#A16900", + "list.activeSelectionBackground": "#14141411", + "list.activeSelectionForeground": "#141414EB", + "list.inactiveSelectionBackground": "#14141411", + "list.inactiveSelectionForeground": "#141414EB", + "list.deemphasizedForeground": "#141414AD", + "list.dropBackground": "#14141411", + "list.errorForeground": "#CF2D56", + "list.focusBackground": "#1414141E", + "list.focusForeground": "#141414EB", + "list.highlightForeground": "#6F9BA6", + "list.hoverBackground": "#14141411", + "list.hoverForeground": "#141414EB", + "list.invalidItemForeground": "#1414147A", + "list.warningForeground": "#C34A14", + "menu.background": "#F3F3F3", + "menu.foreground": "#141414AD", + "menu.separatorBackground": "#14141413", + "menubar.selectionBackground": "#14141411", + "merge.border": "#FCFCFC00", + "merge.currentContentBackground": "#9E94D55C", + "merge.currentHeaderBackground": "#9E94D57A", + "merge.incomingContentBackground": "#6F9BA65C", + "merge.incomingHeaderBackground": "#6F9BA67A", + "notificationLink.foreground": "#6F9BA6", + "notifications.background": "#F3F3F3", + "notifications.foreground": "#141414EB", + "notifications.border": "#14141413", + "notificationsErrorIcon.foreground": "#CF2D56", + "notificationsInfoIcon.foreground": "#206595", + "notificationsWarningIcon.foreground": "#DB704B", + "panel.background": "#F3F3F3", + "panel.border": "#14141413", + "panelStickyScroll.border": "#14141413", + "panelTitle.activeBorder": "#0B0B2D00", + "panelTitle.activeForeground": "#141414EB", + "panelTitle.inactiveForeground": "#141414AD", + "peekView.border": "#1414141C", + "peekViewEditor.background": "#F3F3F3", + "peekViewEditor.matchHighlightBackground": "#6F9BA62E", + "peekViewEditorGutter.background": "#F3F3F3", + "peekViewResult.background": "#F3F3F3", + "peekViewResult.fileForeground": "#141414EB", + "peekViewResult.lineForeground": "#14141461", + "peekViewResult.matchHighlightBackground": "#6F9BA62E", + "peekViewResult.selectionBackground": "#F3F3F3", + "peekViewResult.selectionForeground": "#141414EB", + "peekViewTitle.background": "#F3F3F3", + "peekViewTitleDescription.foreground": "#141414AD", + "peekViewTitleLabel.foreground": "#141414EB", + "pickerGroup.border": "#1414141C", + "pickerGroup.foreground": "#141414EB", + "progressBar.background": "#1F8A65", + "scrollbar.shadow": "#14141411", + "scrollbarSlider.activeBackground": "#14141430", + "scrollbarSlider.background": "#1414141E", + "scrollbarSlider.hoverBackground": "#14141430", + "sideBar.background": "#F3F3F3", + "sideBar.border": "#14141413", + "sideBar.foreground": "#141414AD", + "sideBarSectionHeader.background": "#F3F3F3", + "sideBarSectionHeader.foreground": "#141414AD", + "sideBarTitle.foreground": "#141414AD", + "sideBarStickyScroll.border": "#14141413", + "statusBar.foreground": "#1414147A", + "statusBar.background": "#F3F3F3", + "statusBar.border": "#14141413", + "statusBar.debuggingBackground": "#F3F3F3", + "statusBar.debuggingForeground": "#1414147A", + "statusBar.noFolderBackground": "#F3F3F3", + "statusBar.noFolderForeground": "#1414147A", + "statusBarItem.activeBackground": "#1414141E", + "statusBarItem.hoverBackground": "#14141411", + "statusBarItem.prominentBackground": "#14141411", + "statusBarItem.prominentHoverBackground": "#1414141E", + "statusBarItem.remoteBackground": "#F3F3F3", + "statusBarItem.remoteForeground": "#141414AD", + "tab.activeBackground": "#FCFCFC", + "tab.activeBorder": "#FCFCFC", + "tab.activeBorderTop": "#FCFCFC00", + "tab.activeForeground": "#141414EB", + "tab.border": "#1414141C", + "tab.hoverBackground": "#14141411", + "tab.inactiveBackground": "#F3F3F3", + "tab.inactiveForeground": "#141414AD", + "tab.unfocusedActiveBorder": "#FCFCFC", + "tab.unfocusedActiveForeground": "#141414AD", + "tab.unfocusedHoverBackground": "#14141400", + "tab.unfocusedHoverBorder": "#14141413", + "tab.unfocusedInactiveForeground": "#141414AD", + "terminal.ansiBlack": "#141414EB", + "terminal.ansiBlue": "#3C7CAB", + "terminal.ansiBrightBlack": "#141414AD", + "terminal.ansiBrightBlue": "#6299C3", + "terminal.ansiBrightCyan": "#6F9BA6", + "terminal.ansiBrightGreen": "#55A583", + "terminal.ansiBrightMagenta": "#D06BA6", + "terminal.ansiBrightRed": "#E75E78", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBrightYellow": "#C08532", + "terminal.ansiCyan": "#4C7F8C", + "terminal.ansiGreen": "#1F8A65", + "terminal.ansiMagenta": "#B8448B", + "terminal.ansiRed": "#CF2D56", + "terminal.ansiWhite": "#FCFCFC", + "terminal.ansiYellow": "#A16900", + "terminal.background": "#F3F3F3", + "terminal.foreground": "#141414EB", + "terminal.selectionBackground": "#1414141E", + "terminalCursor.background": "#F3F3F3", + "terminalCursor.foreground": "#141414EB", + "terminalStickyScroll.border": "#14141413", + "textLink.activeForeground": "#3C7CAB", + "textLink.foreground": "#3C7CAB", + "textPreformat.foreground": "#6F9BA6", + "textSeparator.foreground": "#6F9BA6", + "titleBar.activeBackground": "#F3F3F3", + "titleBar.activeForeground": "#1414148D", + "titleBar.border": "#14141413", + "titleBar.inactiveBackground": "#F3F3F3", + "titleBar.inactiveForeground": "#1414145E", + "tree.indentGuidesStroke": "#14141426", + "tree.inactiveIndentGuidesStroke": "#14141413", + "walkThrough.embeddedEditorBackground": "#F3F3F3", + "minimapGutter.addedBackground": "#96C2AC", + "minimapGutter.modifiedBackground": "#C08532", + "minimapGutter.deletedBackground": "#EE9BA6", + "minimap.background": "#FCFCFC", + "minimap.selectionHighlight": "#14141411", + "minimap.selectionOccurrenceHighlight": "#14141411", + "minimap.findMatchHighlight": "#6F9BA65C", + "minimap.errorHighlight": "#CF2D56", + "minimap.warningHighlight": "#C08532", + "minimap.foregroundOpacity": "#141414EB", + "minimapSlider.background": "#1414140A", + "minimapSlider.hoverBackground": "#14141411", + "minimapSlider.activeBackground": "#1414141E" + }, + "semanticHighlighting": true, + "semanticTokenColors": { + "variable.constant": { "foreground": "#206595" }, + "variable.defaultLibrary.globalScope": { "foreground": "#141414AD" }, + "variable.global": { "foreground": "#1F8A65" }, + "variable.declaration.readonly": { "foreground": "#206595" }, + "variable.readonly": { "foreground": "#206595" }, + "function": { "foreground": "#DB704B" }, + "function.builtin": { "foreground": "#6F9BA6" }, + "function.declaration": { "foreground": "#DB704B" }, + "method.declaration": { "foreground": "#DB704B" }, + "function:cmake": { "foreground": "#206595" }, + "method": { "foreground": "#DB704B" }, + "class.builtin": { "foreground": "#6F9BA6" }, + "class.typeHint": { "foreground": "#6F9BA6" }, + "enumMember": { "foreground": "#141414EB" }, + "type": { "foreground": "#206595" }, + "namespace": { "foreground": "#206595" }, + "class": { "foreground": "#206595" }, + "class.declaration": { "foreground": "#206595" }, + "property": { "foreground": "#6049B3" }, + "property.declaration": { "foreground": "#6049B3" }, + "selfParameter": { "foreground": "#B8448B" }, + "*.decorator:python": { "foreground": "#1F8A65" }, + "class.decorator.builtin:python": { "foreground": "#1F8A65" }, + "builtinConstant.readonly.builtin:python": { "foreground": "#6F9BA6" }, + "operatorOverload": { "foreground": "#141414AD" }, + "memberOperatorOverload": { "foreground": "#141414AD" }, + "macro": { "foreground": "#1F8A65" } + }, + "tokenColors": [ + { + "name": "Comments", + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { "foreground": "#141414AD", "fontStyle": "italic" } + }, + { + "name": "Strings", + "scope": ["string", "string punctuation.section.embedded source"], + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "String Punctuation", + "scope": "punctuation.definition.string.begin,punctuation.definition.string.end", + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "Variables in Strings", + "scope": "string variable", + "settings": { "foreground": "#206595" } + }, + { + "name": "String interpolation delimiters", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Regular Expressions", + "scope": ["source.regexp", "string.regexp"], + "settings": { "foreground": "#3C7CAB" } + }, + { + "name": "Regex Escape Characters", + "scope": "string.regexp constant.character.escape", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Regex Operators", + "scope": [ + "keyword.operator.quantifier.regexp", + "keyword.operator.negation.regexp", + "keyword.operator.alternation.regexp", + "keyword.operator.or.regexp", + "keyword.control.anchor.regexp" + ], + "settings": { "foreground": "#A33900" } + }, + { + "name": "Regex Punctuation", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Character Constants & Placeholders", + "scope": ["constant.other.placeholder", "constant.character"], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Constants & Language Variables", + "scope": [ + "constant", + "entity.name.constant", + "variable.other.constant", + "variable.language" + ], + "settings": { "foreground": "#206595" } + }, + { + "name": "Integers", + "scope": "constant.numeric", + "settings": { "foreground": "#B8448B" } + }, + { + "name": "Support Constants", + "scope": "support.constant", + "settings": { "foreground": "#206595" } + }, + { + "name": "Language variables", + "scope": "variable.language", + "settings": { "foreground": "#CF2D56" } + }, + { + "name": "Support Variables", + "scope": "support.variable", + "settings": { "foreground": "#206595" } + }, + { + "name": "Variables (Readwrite)", + "scope": "variable.other.readwrite", + "settings": { "foreground": "#206595" } + }, + { + "name": "Keywords", + "scope": "keyword", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Storage Types & Modifiers", + "scope": ["storage", "storage.type"], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Control Directives", + "scope": "keyword.control.directive", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Function Names (Implementations)", + "scope": "entity.name.function", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Functions (Implementations)", + "scope": ["meta.require", "support.function", "variable.function"], + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Special Methods", + "scope": "keyword.other.special-method", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Export Default Entities", + "scope": "meta.export.default", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Classes", + "scope": "support.class, entity.name.type.class, entity.name.type.namespace, entity.name.type, entity.name.namespace", + "settings": { "foreground": "#206595" } + }, + { + "name": "Class name", + "scope": "entity.name.class", + "settings": { "foreground": "#206595" } + }, + { + "name": "Assignment Operators", + "scope": [ + "keyword.operator.assignment", + "keyword.operator.assignment.compound", + "keyword.operator.assignment.c", + "keyword.operator.assignment.cpp", + "keyword.operator.assignment.go", + "keyword.operator.assignment.java", + "keyword.operator.assignment.js", + "keyword.operator.assignment.ts", + "keyword.operator.assignment.python" + ], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Comparison Operators", + "scope": [ + "keyword.operator.comparison", + "keyword.operator.relational", + "keyword.operator.comparison.c", + "keyword.operator.comparison.cpp", + "keyword.operator.comparison.java", + "keyword.operator.comparison.js", + "keyword.operator.comparison.ts", + "keyword.operator.comparison.python" + ], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Arithmetic Operators", + "scope": [ + "keyword.operator.arithmetic", + "keyword.operator.increment", + "keyword.operator.decrement", + "keyword.operator.arithmetic.c", + "keyword.operator.increment.c", + "keyword.operator.decrement.c", + "keyword.operator.arithmetic.cpp", + "keyword.operator.increment.cpp", + "keyword.operator.decrement.cpp", + "keyword.operator.arithmetic.go", + "keyword.operator.arithmetic.java", + "keyword.operator.arithmetic.js", + "keyword.operator.arithmetic.ts", + "keyword.operator.arithmetic.python" + ], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Bitwise Operators", + "scope": [ + "keyword.operator.bitwise", + "keyword.operator.bitwise.shift", + "keyword.operator.bitwise.shift.c", + "keyword.operator.bitwise.shift.cpp", + "keyword.operator.bitwise.java", + "keyword.operator.bitwise.js", + "keyword.operator.bitwise.ts", + "keyword.operator.bitwise.python" + ], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Logical Operators", + "scope": [ + "keyword.operator.logical", + "keyword.operator.logical.python", + "keyword.operator.logical.java", + "keyword.operator.logical.js", + "keyword.operator.logical.ts", + "keyword.operator.logical.c", + "keyword.operator.logical.cpp" + ], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Special Operators", + "scope": [ + "keyword.operator.new", + "keyword.operator.delete", + "keyword.operator.typeof", + "keyword.operator.instanceof", + "keyword.operator.in", + "keyword.operator.of", + "keyword.operator.sizeof", + "keyword.operator.address", + "keyword.operator.ternary", + "keyword.operator.optional", + "keyword.operator.expression.instanceof", + "keyword.operator.expression.typeof", + "keyword.operator.expression.delete", + "keyword.operator.expression.in", + "keyword.operator.expression.of", + "keyword.operator.expression.void", + "keyword.operator.expression.keyof", + "keyword.operator.sizeof.c", + "keyword.operator.sizeof.cpp", + "keyword.operator.address.go", + "keyword.operator.module", + "keyword.operator.instanceof.java", + "keyword.operator.less", + "keyword.operator.c", + "keyword.operator.cpp" + ], + "settings": { "foreground": "#206595" } + }, + { + "name": "HTML/XML Tags & Components", + "scope": ["entity.name.tag", "support.class.component"], + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "HTML Tags", + "scope": ["entity.name.tag.html"], + "settings": { "foreground": "#206595" } + }, + { + "name": "HTML/XML Tag Punctuation", + "scope": [ + "punctuation.definition.tag.begin.html", + "punctuation.definition.tag.end.html", + "punctuation.definition.tag.begin.xml", + "punctuation.definition.tag.end.xml", + "punctuation.definition.tag" + ], + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Attributes", + "scope": "entity.other.attribute-name", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Attribute IDs", + "scope": "entity.other.attribute-name.id", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "CSS Class Names", + "scope": "entity.other.attribute-name.class.css", + "settings": { "foreground": "#206595" } + }, + { + "name": "CSS Property Names", + "scope": "support.type.property-name.css", + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "CSS Property Values", + "scope": "meta.property-value.css", + "settings": { "foreground": "#055180" } + }, + { + "name": "CSS Selectors", + "scope": "meta.selector", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "CSS Units", + "scope": "keyword.other.unit", + "settings": { "foreground": "#D06BA6" } + }, + { + "name": "CSS Color Values", + "scope": "constant.other.color", + "settings": { "foreground": "#B8448B" } + }, + { + "name": "CSS Hex Color Hashtag", + "scope": "punctuation.definition.constant.css", + "settings": { "foreground": "#D06BA6" } + }, + { + "name": "Storage Keywords (JS/TS)", + "scope": "storage, storage.type", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "JS/TS Modules", + "scope": "support.module.node,support.type.object.module", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Module Type Names", + "scope": "entity.name.type.module", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "JS/TS JSON Constants", + "scope": "support.constant.json", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "JS/TS Process Properties", + "scope": "support.variable.property.process", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "JS DOM Variables & Properties", + "scope": "support.variable.dom,support.variable.property.dom", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Flow Type Annotations", + "scope": ["support.type.type.flowtype"], + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Flow Primitive Types", + "scope": ["support.type.primitive"], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "JS Object Properties", + "scope": ["meta.property.object"], + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Properties", + "scope": [ + "support.variable.property", + "variable.other.property", + "variable.other.property.ts", + "meta.definition.property.ts" + ], + "settings": { "foreground": "#6049B3" } + }, + { + "name": "JS Template Literal Begin", + "scope": ["keyword.other.template.begin"], + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "JS Template Literal End", + "scope": ["keyword.other.template.end"], + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "JS Template Substitution Begin", + "scope": ["keyword.other.substitution.begin"], + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "JS Template Substitution End", + "scope": ["keyword.other.substitution.end"], + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "Python Decorators", + "scope": [ + "meta.function.decorator.python", + "punctuation.definition.decorator.python", + "entity.name.function.decorator.python" + ], + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Python Types", + "scope": "support.type.python", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "Python Binary String", + "scope": "string.quoted.binary.single.python", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Python Ellipsis", + "scope": "constant.other.ellipsis.python", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Python Magic Variables", + "scope": "support.variable.magic.python", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Python Punctuation", + "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Python self Parameter", + "scope": "variable.parameter.function.language.special.self.python", + "settings": { "foreground": "#B8448B" } + }, + { + "name": "Python Language Parameters", + "scope": "variable.parameter.function.language.python", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Python Function Parameters", + "scope": "variable.parameter.function.python", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Python Block Punctuation", + "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Python Function Calls", + "scope": "meta.function-call.generic.python", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Python Format Placeholders", + "scope": "constant.character.format.placeholder.other.python", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Python Keyword Control", + "scope": "keyword.control.import.python,keyword.control.flow.python", + "settings": { "fontStyle": "italic" } + }, + { + "name": "C/C++ Types", + "scope": [ + "storage.type.c", + "storage.type.cpp", + "support.type.posix-reserved.c", + "support.type.posix-reserved.cpp" + ], + "settings": { "foreground": "#206595" } + }, + { + "name": "C++ Boolean Constants", + "scope": ["constant.language.false.cpp", "constant.language.true.cpp"], + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "C++ this Keyword", + "scope": "variable.language.this.cpp", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "Reference & Pointer Modifiers", + "scope": ["storage.modifier.reference", "storage.modifier.pointer"], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Variables", + "scope": "variable.c", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Keyword Control", + "scope": "keyword.control.directive.include.cpp", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "C/C++ Separator Punctuation", + "scope": "punctuation.separator.c,punctuation.separator.cpp", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "Java Package & Import Modifiers", + "scope": [ + "storage.modifier.package", + "storage.modifier.import", + "storage.type.java" + ], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Java Variables", + "scope": "variable.parameter.java", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Java Imports", + "scope": "storage.modifier.import.java", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Java Types & Arrays", + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { "foreground": "#206595" } + }, + { + "name": "Java Source", + "scope": "source.java", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Java Imports & Generics", + "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Java Storage", + "scope": "storage.type.java", + "settings": { "foreground": "#206595" } + }, + { + "name": "JSON Property Names", + "scope": "support.type.property-name.json", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation", + "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", + "settings": { "foreground": "#9E94D5" } + }, + { + "name": "Markdown Headings", + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { "foreground": "#206595" } + }, + { + "name": "Markdown Headings", + "scope": [ + "entity.name.section.markdown", + "punctuation.definition.heading.markdown", + "markup.heading.setext" + ], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Markdown Quotes", + "scope": "markup.quote", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Markdown Italic", + "scope": "markup.italic", + "settings": { "fontStyle": "italic" } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold", + "settings": { "fontStyle": "bold" } + }, + { + "name": "Markdown Underline", + "scope": ["markup.underline"], + "settings": { "fontStyle": "underline" } + }, + { + "name": "Markdown Strikethrough", + "scope": ["markup.strikethrough", "punctuation.definition.strikethrough"], + "settings": { "foreground": "#1414147A", "fontStyle": "strikethrough" } + }, + { + "name": "Markdown Inline Code", + "scope": "markup.inline.raw", + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Markdown Links", + "scope": [ + "markup.underline.link.markdown", + "markup.underline.link.image.markdown" + ], + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Markdown Heading Punctuation", + "scope": "markup.heading punctuation.definition.heading, entity.name.section", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "punctuation.definition.list.begin.markdown", + "scope": "punctuation.definition.list.begin.markdown", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "[VSCODE-CUSTOM] Markdown List Punctuation Definition", + "scope": "punctuation.definition.list.markdown", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.metadata.markdown" + ], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "beginning.punctuation.definition.list.markdown", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Underline Link/Image", + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { "foreground": "#206595" } + }, + { + "name": "Markdown Link Title/Description", + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Punctuation", + "scope": "punctuation.definition.bold, punctuation.definition.italic, punctuation.definition.underline", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Diff - Deleted", + "scope": [ + "markup.deleted", + "meta.diff.header.from-file", + "punctuation.definition.deleted" + ], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Diff - Inserted", + "scope": [ + "markup.inserted", + "meta.diff.header.to-file", + "punctuation.definition.inserted" + ], + "settings": { "foreground": "#1F8A65" } + }, + { + "name": "Diff - Changed", + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Diff - Ignored/Untracked", + "scope": ["markup.ignored", "markup.untracked"], + "settings": { "foreground": "#1414147A" } + }, + { + "name": "Diff - Range", + "scope": "meta.diff.range", + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Diff - Header", + "scope": "meta.diff.header", + "settings": { "foreground": "#206595" } + }, + { + "name": "Vue Template Tags", + "scope": [ + "entity.name.tag.template", + "entity.name.tag.script", + "entity.name.tag.style" + ], + "settings": { "foreground": "#6049B3" } + }, + { + "name": "Go Package Names", + "scope": ["entity.name.package.go"], + "settings": { "foreground": "#B3003F" } + }, + { + "name": "punctuation.definition.block.sequence.item.yaml", + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { "foreground": "#141414EB" } + }, + { + "scope": ["constant.language.symbol.elixir"], + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Invalid", + "scope": [ + "invalid.broken", + "invalid.deprecated", + "invalid.illegal", + "invalid.unimplemented" + ], + "settings": { "fontStyle": "italic", "foreground": "#B3003F" } + }, + { + "name": "Carriage Return", + "scope": "carriage-return", + "settings": { "fontStyle": "italic underline", "foreground": "#1414140A" } + }, + { + "name": "Error Messages", + "scope": "message.error", + "settings": { "foreground": "#B3003F" } + }, + { + "name": "Module References", + "scope": "meta.module-reference", + "settings": { "foreground": "#206595" } + }, + { + "name": "Escape Characters", + "scope": "constant.character.escape", + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Embedded", + "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "Meta Separator", + "scope": "meta.separator", + "settings": { "foreground": "#206595" } + }, + { + "name": "Meta Output", + "scope": "meta.output", + "settings": { "foreground": "#206595" } + }, + { + "name": "Links", + "scope": ["constant.other.reference.link"], + "settings": { "foreground": "#206595" } + }, + { + "name": "Control Elements", + "scope": "control.elements", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Constants", + "scope": "punctuation.definition.constant", + "settings": { "foreground": "#DB704B" } + }, + { + "name": "Meta tag", + "scope": "meta.tag", + "settings": { "foreground": "#C08532" } + }, + { + "name": "Delimiter Punctuation", + "scope": "punctuation.separator.delimiter", + "settings": { "foreground": "#141414EB" } + }, + { + "name": "Edge Constants", + "scope": "support.constant.edge", + "settings": { "foreground": "#6F9BA6" } + }, + { + "name": "Bracket Highlighter", + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { "foreground": "#141414AD" } + }, + { + "name": "Bracket Highlighter - Unmatched", + "scope": "brackethighlighter.unmatched", + "settings": { "foreground": "#B3003F" } + } + ] +} diff --git a/extensions/symbols/symbols-0.0.18.vsix b/extensions/symbols/symbols-0.0.18.vsix new file mode 100644 index 000000000000..2110793fb809 Binary files /dev/null and b/extensions/symbols/symbols-0.0.18.vsix differ diff --git a/product.json b/product.json index b939424b68c2..4f889702dc83 100644 --- a/product.json +++ b/product.json @@ -36,7 +36,37 @@ "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "itemUrl": "https://marketplace.visualstudio.com/items" }, - "builtInExtensions": [], + "builtInExtensions": [ + { + "name": "hypno.hypno-themes", + "version": "1.0.0", + "sha256": "4512ee686ec903b430e209666f0577e153f4313455acad7d28de3f8468bc4053", + "vsix": "./extensions/hypno-themes/hypno-themes-1.0.0.vsix", + "metadata": { + "id": "hypno-themes-builtin", + "publisherId": { "publisherId": "hypno", "publisherName": "Hypno", "displayName": "Hypno", "flags": "verified" }, + "publisherDisplayName": "Hypno" + } + }, + { + "name": "miguelsolorio.symbols", + "version": "0.0.25", + "repo": "https://github.com/miguelsolorio/vscode-symbols", + "metadata": { + "id": "miguelsolorio-symbols-builtin", + "publisherId": { + "publisherId": "miguelsolorio", + "publisherName": "miguelsolorio", + "displayName": "Miguel Solorio", + "flags": "verified" + }, + "publisherDisplayName": "Miguel Solorio" + } + } + ], + "extensionAllowedProposedApi": [ + "Continue.continue" + ], "linkProtectionTrustedDomains": [ "https://voideditor.com", "https://voideditor.dev", diff --git a/scripts/build-macos.sh b/scripts/build-macos.sh new file mode 100755 index 000000000000..b9d3e2f005ff --- /dev/null +++ b/scripts/build-macos.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -e +cd "$(dirname "$0")/.." + +echo "Building Void/Hypno for macOS (ARM64)..." +npm run gulp vscode-darwin-arm64-min + +echo "Build complete." +echo "The built application can typically be found in the parent directory (e.g. '../VSCode-darwin-arm64')." diff --git a/scripts/hypno.sh b/scripts/hypno.sh new file mode 100755 index 000000000000..f177169845b4 --- /dev/null +++ b/scripts/hypno.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +# This script provides an easy way to run and build Hypno for various platforms. +# It wraps the inner core npm/gulp scripts. + +set -e + +# Change to the root of the repo +cd "$(dirname "$0")/.." + +echo "==========================================" +echo " HYPNO DEVELOPER CLI " +echo "==========================================" +echo "" +echo "Please select an action:" +echo " 1) Run locally (Development Mode)" +echo " 2) Build for macOS (ARM64)" +echo " 3) Build for macOS (x64)" +echo " 4) Build for Windows (x64)" +echo " 5) Build for Linux (x64)" +echo " q) Quit" +echo "" + +read -p "Enter choice [1-5, or q]: " choice + +case $choice in + 1) + echo "Starting local development mode..." + echo "Tip: Make sure you have another terminal open running 'npm run watch'" + ./scripts/code.sh + ;; + 2) + echo "Building for macOS ARM64 (Apple Silicon)..." + npm run gulp vscode-darwin-arm64-min + echo "Build complete. Check the parent directory (e.g., ../VSCode-darwin-arm64)." + ;; + 3) + echo "Building for macOS x64 (Intel)..." + npm run gulp vscode-darwin-x64-min + echo "Build complete. Check the parent directory (e.g., ../VSCode-darwin-x64)." + ;; + 4) + echo "Building for Windows x64..." + npm run gulp vscode-win32-x64-min + echo "Build complete. Check the parent directory (e.g., ../VSCode-win32-x64)." + ;; + 5) + echo "Building for Linux x64..." + npm run gulp vscode-linux-x64-min + echo "Build complete. Check the parent directory (e.g., ../VSCode-linux-x64)." + ;; + q|Q) + echo "Exiting." + exit 0 + ;; + *) + echo "Invalid choice. Exiting." + exit 1 + ;; +esac diff --git a/src/vs/code/electron-main/hypno-browser-preload.js b/src/vs/code/electron-main/hypno-browser-preload.js new file mode 100644 index 000000000000..8081c495f9f2 --- /dev/null +++ b/src/vs/code/electron-main/hypno-browser-preload.js @@ -0,0 +1,271 @@ +const { contextBridge, ipcRenderer } = require('electron'); + +let isInspectMode = false; +let inspectStyle = null; +let overlayWrapper = null; +let overlayBox = null; +let overlayBadge = null; +let hoveredElement = null; +let isTrackingMouse = false; + +function createOverlay() { + if (overlayWrapper) return; + + overlayWrapper = document.createElement('div'); + overlayWrapper.id = 'hypno-inspector-overlay'; + Object.assign(overlayWrapper.style, { + position: 'fixed', + pointerEvents: 'none', + zIndex: '2147483647', // Max z-index + display: 'none' + }); + + overlayBox = document.createElement('div'); + overlayBox.className = 'hypno-box'; + Object.assign(overlayBox.style, { + width: '100%', + height: '100%', + backgroundColor: 'rgba(59, 130, 246, 0.2)', // Tailwind blue-500 @ 20% + // border: '2px solid rgba(59, 130, 246, 0.8)', + border: '2px dashed rgba(59, 130, 246, 0.8)', + borderRadius: '8px', + boxSizing: 'border-box', + pointerEvents: 'none', + boxShadow: '0 4px 12px rgba(59, 130, 246, 0.3)', + // backdropFilter: 'blur(1px)' // Subtle glassmorphism on inspected item + }); + + overlayBadge = document.createElement('div'); + overlayBadge.id = 'hypno-inspector-badge'; + Object.assign(overlayBadge.style, { + position: 'absolute', + bottom: '100%', + right: '-2px', + backgroundColor: 'rgba(59, 130, 246, 1)', + color: 'white', + padding: '4px 8px', // slightly thicker padding + fontSize: '12px', + fontWeight: '600', + fontFamily: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace', + borderTopLeftRadius: '6px', + borderTopRightRadius: '6px', + whiteSpace: 'nowrap', + pointerEvents: 'none', + boxShadow: '0 -2px 8px rgba(59, 130, 246, 0.4)' + }); + + overlayWrapper.appendChild(overlayBox); + overlayWrapper.appendChild(overlayBadge); + document.body.appendChild(overlayWrapper); + + const styleId = 'hypno-inspector-animations'; + if (!document.getElementById(styleId)) { + const animStyle = document.createElement('style'); + animStyle.id = styleId; + animStyle.textContent = ` + @keyframes hypnoPulse { + 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); } + 70% { box-shadow: 0 0 0 8px rgba(59, 130, 246, 0); } + 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } + } + #hypno-inspector-overlay .hypno-box { + animation: hypnoPulse 2s infinite; + } + `; + document.head.appendChild(animStyle); + } +} + +function removeOverlay() { + if (overlayWrapper) { + overlayWrapper.remove(); + overlayWrapper = null; + overlayBox = null; + overlayBadge = null; + } + const animStyle = document.getElementById('hypno-inspector-animations'); + if (animStyle) animStyle.remove(); +} + +function updateOverlayPosition(clientX, clientY) { + if (!isInspectMode || !overlayWrapper) { + isTrackingMouse = false; + return; + } + + const el = document.elementFromPoint(clientX, clientY); + if (!el || el === hoveredElement || el === overlayWrapper || el.id === 'hypno-inspector-overlay') { + isTrackingMouse = false; + return; + } + + hoveredElement = el; + + overlayWrapper.style.display = 'block'; + + // Add transition AFTER the first display unhide, so it doesn't animate from 0,0 + if (!overlayWrapper.style.transition) { + requestAnimationFrame(() => { + if (overlayWrapper) overlayWrapper.style.transition = 'all 0.15s cubic-bezier(0.2, 0.8, 0.2, 1)'; + }); + } + + const rect = el.getBoundingClientRect(); + + overlayWrapper.style.left = `${rect.left}px`; + overlayWrapper.style.top = `${rect.top}px`; + overlayWrapper.style.width = `${rect.width}px`; + overlayWrapper.style.height = `${rect.height}px`; + overlayBadge.innerText = el.tagName.toLowerCase(); + + isTrackingMouse = false; +} + +const onMouseMove = (e) => { + if (!isInspectMode) return; + if (!isTrackingMouse) { + isTrackingMouse = true; + const clientX = e.clientX; + const clientY = e.clientY; + requestAnimationFrame(() => updateOverlayPosition(clientX, clientY)); + } +}; + +ipcRenderer.on('hypno-toggle-inspect', () => { + isInspectMode = !isInspectMode; + if (isInspectMode) { + inspectStyle = document.createElement('style'); + inspectStyle.textContent = '* { cursor: crosshair !important; }'; + document.head.appendChild(inspectStyle); + createOverlay(); + window.addEventListener('mousemove', onMouseMove, { capture: true, passive: true }); + } else { + if (inspectStyle) inspectStyle.remove(); + removeOverlay(); + window.removeEventListener('mousemove', onMouseMove, { capture: true }); + } +}); + +window.addEventListener('keydown', (e) => { + if (e.key === 'Escape' && isInspectMode) { + isInspectMode = false; + if (inspectStyle) inspectStyle.remove(); + removeOverlay(); + window.removeEventListener('mousemove', onMouseMove, { capture: true }); + ipcRenderer.send('vscode:hypno-browser-inspect-disabled'); + } +}); + +// Phase 2: The Cleaner Recursive Function +function cleanElement(node) { + if (node.nodeType === Node.TEXT_NODE) { + let text = node.textContent; + if (text && text.trim().length > 0) { + if (text.length > 500) text = text.substring(0, 500) + '...'; + return document.createTextNode(text); + } + return null; + } + + if (node.nodeType !== Node.ELEMENT_NODE) return null; + + const clone = node.cloneNode(false); // shallow clone + + // Remove React noise and useless attributes + const attrsToRemove = []; + for (let i = 0; i < clone.attributes.length; i++) { + const attr = clone.attributes[i]; + if (attr.name.startsWith('data-react') || attr.name.startsWith('data-v-')) { + attrsToRemove.push(attr.name); + } + } + attrsToRemove.forEach(attr => clone.removeAttribute(attr)); + + if (clone.tagName.toLowerCase() === 'svg') { + clone.innerHTML = '...'; // Nuke massive inner paths + return clone; + } + + for (let i = 0; i < node.childNodes.length; i++) { + const child = node.childNodes[i]; + const cleanedChild = cleanElement(child); + if (cleanedChild) clone.appendChild(cleanedChild); + } + + return clone; +} + +function getRelevantStyles(el) { + const styles = window.getComputedStyle(el); + const relevant = {}; + const layoutProps = [ + 'display', 'flex-direction', 'justify-content', 'align-items', 'gap', + 'grid-template-columns', 'grid-template-rows', + 'position', 'top', 'right', 'bottom', 'left', + 'width', 'height', 'max-width', 'max-height', 'min-width', 'min-height', + 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', + 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', + 'box-sizing', 'overflow-x', 'overflow-y' + ]; + const typographyProps = [ + 'color', 'background-color', 'font-size', 'font-weight', 'line-height', + 'text-align', 'letter-spacing', 'border-radius', 'border', 'opacity' + ]; + + for (const prop of [...layoutProps, ...typographyProps]) { + const val = styles.getPropertyValue(prop); + if (val && val !== 'none' && val !== '0px' && val !== 'normal' && val !== 'auto' && val !== 'rgba(0, 0, 0, 0)') { + relevant[prop] = val; + } + } + return relevant; +} + +const blockEvent = (e) => { + if ((e.altKey && e.button === 0) || (isInspectMode && e.button === 0)) { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + } +}; + +window.addEventListener('mousedown', blockEvent, { capture: true, passive: false }); +window.addEventListener('mouseup', blockEvent, { capture: true, passive: false }); +window.addEventListener('pointerdown', blockEvent, { capture: true, passive: false }); +window.addEventListener('pointerup', blockEvent, { capture: true, passive: false }); +window.addEventListener('dblclick', blockEvent, { capture: true, passive: false }); + +window.addEventListener('click', (e) => { + // Alt + Left Click OR Inspect Mode + Left Click + if ((e.altKey && e.button === 0) || (isInspectMode && e.button === 0)) { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + + if (isInspectMode) { + isInspectMode = false; + if (inspectStyle) inspectStyle.remove(); + removeOverlay(); + window.removeEventListener('mousemove', onMouseMove, { capture: true }); + ipcRenderer.send('vscode:hypno-browser-inspect-disabled'); + } + + const el = e.target; + if (!el) return; + + // Extract a clean version of the target element + const cleanedClone = cleanElement(el); + let html = cleanedClone ? cleanedClone.outerHTML : ''; + + const data = { + html: html, + css: getRelevantStyles(el), + tagName: el.tagName.toLowerCase(), + id: el.id || '', + className: el.className && typeof el.className === 'string' ? el.className.trim() : '', + url: window.location.href + }; + + ipcRenderer.send('vscode:hypno-browser-click', data); + } +}, { capture: true, passive: false }); diff --git a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts index bcfce8495e95..a2d24afdadd8 100644 --- a/src/vs/platform/windows/electron-main/windowImpl.ts +++ b/src/vs/platform/windows/electron-main/windowImpl.ts @@ -3,7 +3,9 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import electron, { BrowserWindowConstructorOptions } from 'electron'; +import electron, { BrowserWindowConstructorOptions, WebContentsView } from 'electron'; +import * as path from 'path'; +import { fileURLToPath } from 'url'; import { DeferredPromise, RunOnceScheduler, timeout, Delayer } from '../../../base/common/async.js'; import { CancellationToken } from '../../../base/common/cancellation.js'; import { toErrorMessage } from '../../../base/common/errorMessage.js'; @@ -495,6 +497,58 @@ export class CodeWindow extends BaseWindow implements ICodeWindow { protected override _win: electron.BrowserWindow; + private _hypnoBrowserView?: WebContentsView; + + private _getHypnoBrowserView(): WebContentsView { + if (!this._hypnoBrowserView) { + const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const preloadPath = path.join(__dirname, '../../../code/electron-main/hypno-browser-preload.js'); + + this._hypnoBrowserView = new WebContentsView({ + webPreferences: { + preload: preloadPath, + contextIsolation: true, + nodeIntegration: false + } + }); + + this._win.contentView.addChildView(this._hypnoBrowserView); + this._hypnoBrowserView.setVisible(false); + + // Handle browser-to-ide data flow (Phase 4 integration) + this._hypnoBrowserView.webContents.on('ipc-message', (event, channel, ...args) => { + if (channel === 'vscode:hypno-browser-click') { + this._win.webContents.send('vscode:hypno-forward-to-continue', args[0]); + } else if (channel === 'vscode:hypno-browser-inspect-disabled') { + this._win.webContents.send('vscode:hypno-browser-inspect-disabled'); + } + }); + + // Navigation control + this._hypnoBrowserView.webContents.setWindowOpenHandler(({ url }) => { + this._hypnoBrowserView?.webContents.loadURL(url); + return { action: 'deny' }; + }); + + this._hypnoBrowserView.webContents.removeAllListeners('will-navigate'); + + this._hypnoBrowserView.webContents.on('did-navigate', (event, url) => { + this._win.webContents.send('vscode:hypno-browser-navigated', url); + }); + this._hypnoBrowserView.webContents.on('did-navigate-in-page', (event, url) => { + this._win.webContents.send('vscode:hypno-browser-navigated', url); + }); + + this._hypnoBrowserView.webContents.on('did-start-loading', () => { + this._win.webContents.send('vscode:hypno-browser-loading-state', true); + }); + this._hypnoBrowserView.webContents.on('did-stop-loading', () => { + this._win.webContents.send('vscode:hypno-browser-loading-state', false); + }); + } + return this._hypnoBrowserView; + } + get backupPath(): string | undefined { return this._config?.backupPath; } get openedWorkspace(): IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | undefined { return this._config?.workspace; } @@ -737,6 +791,65 @@ export class CodeWindow extends BaseWindow implements ICodeWindow { cb({ cancel: false, requestHeaders: Object.assign(details.requestHeaders, headers) }); }); + + // Hypno Native Browser IPC Handlers + electron.ipcMain.on('vscode:hypno-browser-command', (event, message) => { + if (event.sender !== this._win.webContents) return; + + const view = this._getHypnoBrowserView(); + switch (message.type) { + case 'show': + if (message.url) view.webContents.loadURL(message.url); + view.setVisible(true); + break; + case 'hide': + view.setVisible(false); + break; + case 'setBounds': + if (message.bounds) { + // === Hypno Native Browser Positioning Offsets === + const offsetX = 0; + const offsetY = 0; + + view.setBounds({ + x: Math.round(message.bounds.x + offsetX), + y: Math.round(message.bounds.y + offsetY), + width: Math.round(message.bounds.width), + height: Math.round(message.bounds.height) + }); + } + break; + case 'action': + if (message.action) { + switch (message.action.type) { + case 'go-back': + if (view.webContents.canGoBack()) view.webContents.goBack(); + break; + case 'go-forward': + if (view.webContents.canGoForward()) view.webContents.goForward(); + break; + case 'reload': + view.webContents.reload(); + break; + case 'load-url': { + let targetUrl = message.action.url; + if (!targetUrl.startsWith('http://') && !targetUrl.startsWith('https://')) { + targetUrl = 'https://' + targetUrl; + } + view.webContents.loadURL(targetUrl); + break; + } + case 'inspect': + view.webContents.send('hypno-toggle-inspect'); + break; + case 'open-external': + import('electron').then(electron => electron.shell.openExternal(message.action.url)); + break; + } + } + break; + } + }); } private marketplaceHeadersPromise: Promise | undefined; diff --git a/src/vs/workbench/contrib/hypno/electron-sandbox/hypno.contribution.ts b/src/vs/workbench/contrib/hypno/electron-sandbox/hypno.contribution.ts new file mode 100644 index 000000000000..ae6e685d2c20 --- /dev/null +++ b/src/vs/workbench/contrib/hypno/electron-sandbox/hypno.contribution.ts @@ -0,0 +1,96 @@ +import { CommandsRegistry } from '../../../../platform/commands/common/commands.js'; +import { ipcRenderer } from '../../../../base/parts/sandbox/electron-sandbox/globals.js'; +import { mainWindow } from '../../../../base/browser/window.js'; + +let trackingInterval: any = null; +let lastBoundsStr = ''; + +function startTracking() { + if (trackingInterval) mainWindow.clearInterval(trackingInterval); + trackingInterval = mainWindow.setInterval(() => { + const iframes = Array.from(mainWindow.document.querySelectorAll('iframe')); + let activeIframe: HTMLIFrameElement | null = null; + let maxArea = 0; + + for (const iframe of iframes) { + const rect = iframe.getBoundingClientRect(); + const area = rect.width * rect.height; + if (rect.width > 50 && rect.height > 50 && iframe.style.visibility !== 'hidden' && iframe.style.display !== 'none') { + const isEditor = iframe.closest('.part.editor') !== null; + const weight = isEditor ? area * 2 : area; + if (weight > maxArea) { + maxArea = weight; + activeIframe = iframe; + } + } + } + + if (activeIframe) { + const rect = activeIframe.getBoundingClientRect(); + const bounds = { + x: Math.round(rect.left), + y: Math.round(rect.top + 40), // 40px offset for the address bar + width: Math.round(rect.width), + height: Math.round(rect.height - 40) + }; + const boundsStr = JSON.stringify(bounds); + if (boundsStr !== lastBoundsStr) { + lastBoundsStr = boundsStr; + ipcRenderer.send('vscode:hypno-browser-command', { type: 'setBounds', bounds }); + } + } else { + if (lastBoundsStr !== 'hidden') { + lastBoundsStr = 'hidden'; + ipcRenderer.send('vscode:hypno-browser-command', { type: 'hide' }); + } + } + }, 16); +} + +function stopTracking() { + if (trackingInterval) { + mainWindow.clearInterval(trackingInterval); + trackingInterval = null; + } + lastBoundsStr = ''; +} + +// Register internal commands to bridge Extension Host ↔ Main Process +CommandsRegistry.registerCommand('_hypno.showBrowser', (_accessor, args) => { + ipcRenderer.send('vscode:hypno-browser-command', { type: 'show', ...args }); + startTracking(); +}); + +CommandsRegistry.registerCommand('_hypno.hideBrowser', () => { + ipcRenderer.send('vscode:hypno-browser-command', { type: 'hide' }); + stopTracking(); +}); + +CommandsRegistry.registerCommand('_hypno.updateBrowserBounds', (_accessor, _bounds) => { + // Let the polling loop take care of it +}); + +// Phase 2: Forward Webview Actions (go-back, load-url, etc.) +CommandsRegistry.registerCommand('_hypno.browserAction', (_accessor, action) => { + ipcRenderer.send('vscode:hypno-browser-command', { type: 'action', action }); +}); + +// Phase 3: Listen for element selection from the Main Process → forward to Extension Host Continues +ipcRenderer.on('vscode:hypno-forward-to-continue', (_event: unknown, data: any) => { + CommandsRegistry.getCommand('hypno.browser.onElementSelected')?.handler(undefined as any, data); +}); + +// Phase 2: Listen for URL changes from the Main Process → forward to Extension Host Address Bar +ipcRenderer.on('vscode:hypno-browser-navigated', (_event: unknown, url: string) => { + CommandsRegistry.getCommand('hypno.browser.onNavigate')?.handler(undefined as any, url); +}); + +// Phase 4: Listen for loading states +ipcRenderer.on('vscode:hypno-browser-loading-state', (_event: unknown, isLoading: boolean) => { + CommandsRegistry.getCommand('hypno.browser.onLoadingState')?.handler(undefined as any, isLoading); +}); + +// Phase 4: Listen for inspect mode auto-disable +ipcRenderer.on('vscode:hypno-browser-inspect-disabled', () => { + CommandsRegistry.getCommand('hypno.browser.onInspectDisabled')?.handler(undefined as any); +}); diff --git a/src/vs/workbench/contrib/orkide/browser/react/out/diff/index.js b/src/vs/workbench/contrib/orkide/browser/react/out/diff/index.js new file mode 100644 index 000000000000..88c8a4a10e41 --- /dev/null +++ b/src/vs/workbench/contrib/orkide/browser/react/out/diff/index.js @@ -0,0 +1,553 @@ +// ../../../../../../../node_modules/diff/lib/index.mjs +function Diff() { +} +Diff.prototype = { + diff: function diff(oldString, newString) { + var _options$timeout; + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + var self = this; + function done(value) { + value = self.postProcess(value, options); + if (callback) { + setTimeout(function() { + callback(value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString, options); + newString = this.castInput(newString, options); + oldString = this.removeEmpty(this.tokenize(oldString, options)); + newString = this.removeEmpty(this.tokenize(newString, options)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength != null) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var maxExecutionTime = (_options$timeout = options.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : Infinity; + var abortAfterTimestamp = Date.now() + maxExecutionTime; + var bestPath = [{ + oldPos: -1, + lastComponent: void 0 + }]; + var newPos = this.extractCommon(bestPath[0], newString, oldString, 0, options); + if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) { + return done(buildValues(self, bestPath[0].lastComponent, newString, oldString, self.useLongestToken)); + } + var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity; + function execEditLength() { + for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) { + var basePath = void 0; + var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1]; + if (removePath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = false; + if (addPath) { + var addPathNewPos = addPath.oldPos - diagonalPath; + canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen; + } + var canRemove = removePath && removePath.oldPos + 1 < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) { + basePath = self.addToPath(addPath, true, false, 0, options); + } else { + basePath = self.addToPath(removePath, false, true, 1, options); + } + newPos = self.extractCommon(basePath, newString, oldString, diagonalPath, options); + if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) { + return done(buildValues(self, basePath.lastComponent, newString, oldString, self.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + if (basePath.oldPos + 1 >= oldLen) { + maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1); + } + if (newPos + 1 >= newLen) { + minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1); + } + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + addToPath: function addToPath(path, added, removed, oldPosInc, options) { + var last = path.lastComponent; + if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) { + return { + oldPos: path.oldPos + oldPosInc, + lastComponent: { + count: last.count + 1, + added, + removed, + previousComponent: last.previousComponent + } + }; + } else { + return { + oldPos: path.oldPos + oldPosInc, + lastComponent: { + count: 1, + added, + removed, + previousComponent: last + } + }; + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath, options) { + var newLen = newString.length, oldLen = oldString.length, oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldString[oldPos + 1], newString[newPos + 1], options)) { + newPos++; + oldPos++; + commonCount++; + if (options.oneChangePerToken) { + basePath.lastComponent = { + count: 1, + previousComponent: basePath.lastComponent, + added: false, + removed: false + }; + } + } + if (commonCount && !options.oneChangePerToken) { + basePath.lastComponent = { + count: commonCount, + previousComponent: basePath.lastComponent, + added: false, + removed: false + }; + } + basePath.oldPos = oldPos; + return newPos; + }, + equals: function equals(left, right, options) { + if (options.comparator) { + return options.comparator(left, right); + } else { + return left === right || options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return Array.from(value); + }, + join: function join(chars) { + return chars.join(""); + }, + postProcess: function postProcess(changeObjects) { + return changeObjects; + } +}; +function buildValues(diff2, lastComponent, newString, oldString, useLongestToken) { + var components = []; + var nextComponent; + while (lastComponent) { + components.push(lastComponent); + nextComponent = lastComponent.previousComponent; + delete lastComponent.previousComponent; + lastComponent = nextComponent; + } + components.reverse(); + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff2.join(value); + } else { + component.value = diff2.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff2.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + } + } + return components; +} +function longestCommonPrefix(str1, str2) { + var i; + for (i = 0; i < str1.length && i < str2.length; i++) { + if (str1[i] != str2[i]) { + return str1.slice(0, i); + } + } + return str1.slice(0, i); +} +function longestCommonSuffix(str1, str2) { + var i; + if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) { + return ""; + } + for (i = 0; i < str1.length && i < str2.length; i++) { + if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) { + return str1.slice(-i); + } + } + return str1.slice(-i); +} +function replacePrefix(string, oldPrefix, newPrefix) { + if (string.slice(0, oldPrefix.length) != oldPrefix) { + throw Error("string ".concat(JSON.stringify(string), " doesn't start with prefix ").concat(JSON.stringify(oldPrefix), "; this is a bug")); + } + return newPrefix + string.slice(oldPrefix.length); +} +function replaceSuffix(string, oldSuffix, newSuffix) { + if (!oldSuffix) { + return string + newSuffix; + } + if (string.slice(-oldSuffix.length) != oldSuffix) { + throw Error("string ".concat(JSON.stringify(string), " doesn't end with suffix ").concat(JSON.stringify(oldSuffix), "; this is a bug")); + } + return string.slice(0, -oldSuffix.length) + newSuffix; +} +function removePrefix(string, oldPrefix) { + return replacePrefix(string, oldPrefix, ""); +} +function removeSuffix(string, oldSuffix) { + return replaceSuffix(string, oldSuffix, ""); +} +function maximumOverlap(string1, string2) { + return string2.slice(0, overlapCount(string1, string2)); +} +function overlapCount(a, b) { + var startA = 0; + if (a.length > b.length) { + startA = a.length - b.length; + } + var endB = b.length; + if (a.length < b.length) { + endB = a.length; + } + var map = Array(endB); + var k = 0; + map[0] = 0; + for (var j = 1; j < endB; j++) { + if (b[j] == b[k]) { + map[j] = map[k]; + } else { + map[j] = k; + } + while (k > 0 && b[j] != b[k]) { + k = map[k]; + } + if (b[j] == b[k]) { + k++; + } + } + k = 0; + for (var i = startA; i < a.length; i++) { + while (k > 0 && a[i] != b[k]) { + k = map[k]; + } + if (a[i] == b[k]) { + k++; + } + } + return k; +} +var extendedWordChars = "a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}"; +var tokenizeIncludingWhitespace = new RegExp("[".concat(extendedWordChars, "]+|\\s+|[^").concat(extendedWordChars, "]"), "ug"); +var wordDiff = new Diff(); +wordDiff.equals = function(left, right, options) { + if (options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left.trim() === right.trim(); +}; +wordDiff.tokenize = function(value) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var parts; + if (options.intlSegmenter) { + if (options.intlSegmenter.resolvedOptions().granularity != "word") { + throw new Error('The segmenter passed must have a granularity of "word"'); + } + parts = Array.from(options.intlSegmenter.segment(value), function(segment) { + return segment.segment; + }); + } else { + parts = value.match(tokenizeIncludingWhitespace) || []; + } + var tokens = []; + var prevPart = null; + parts.forEach(function(part) { + if (/\s/.test(part)) { + if (prevPart == null) { + tokens.push(part); + } else { + tokens.push(tokens.pop() + part); + } + } else if (/\s/.test(prevPart)) { + if (tokens[tokens.length - 1] == prevPart) { + tokens.push(tokens.pop() + part); + } else { + tokens.push(prevPart + part); + } + } else { + tokens.push(part); + } + prevPart = part; + }); + return tokens; +}; +wordDiff.join = function(tokens) { + return tokens.map(function(token, i) { + if (i == 0) { + return token; + } else { + return token.replace(/^\s+/, ""); + } + }).join(""); +}; +wordDiff.postProcess = function(changes, options) { + if (!changes || options.oneChangePerToken) { + return changes; + } + var lastKeep = null; + var insertion = null; + var deletion = null; + changes.forEach(function(change) { + if (change.added) { + insertion = change; + } else if (change.removed) { + deletion = change; + } else { + if (insertion || deletion) { + dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change); + } + lastKeep = change; + insertion = null; + deletion = null; + } + }); + if (insertion || deletion) { + dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null); + } + return changes; +}; +function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep) { + if (deletion && insertion) { + var oldWsPrefix = deletion.value.match(/^\s*/)[0]; + var oldWsSuffix = deletion.value.match(/\s*$/)[0]; + var newWsPrefix = insertion.value.match(/^\s*/)[0]; + var newWsSuffix = insertion.value.match(/\s*$/)[0]; + if (startKeep) { + var commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix); + startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix); + deletion.value = removePrefix(deletion.value, commonWsPrefix); + insertion.value = removePrefix(insertion.value, commonWsPrefix); + } + if (endKeep) { + var commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix); + endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix); + deletion.value = removeSuffix(deletion.value, commonWsSuffix); + insertion.value = removeSuffix(insertion.value, commonWsSuffix); + } + } else if (insertion) { + if (startKeep) { + insertion.value = insertion.value.replace(/^\s*/, ""); + } + if (endKeep) { + endKeep.value = endKeep.value.replace(/^\s*/, ""); + } + } else if (startKeep && endKeep) { + var newWsFull = endKeep.value.match(/^\s*/)[0], delWsStart = deletion.value.match(/^\s*/)[0], delWsEnd = deletion.value.match(/\s*$/)[0]; + var newWsStart = longestCommonPrefix(newWsFull, delWsStart); + deletion.value = removePrefix(deletion.value, newWsStart); + var newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd); + deletion.value = removeSuffix(deletion.value, newWsEnd); + endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd); + startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length)); + } else if (endKeep) { + var endKeepWsPrefix = endKeep.value.match(/^\s*/)[0]; + var deletionWsSuffix = deletion.value.match(/\s*$/)[0]; + var overlap = maximumOverlap(deletionWsSuffix, endKeepWsPrefix); + deletion.value = removeSuffix(deletion.value, overlap); + } else if (startKeep) { + var startKeepWsSuffix = startKeep.value.match(/\s*$/)[0]; + var deletionWsPrefix = deletion.value.match(/^\s*/)[0]; + var _overlap = maximumOverlap(startKeepWsSuffix, deletionWsPrefix); + deletion.value = removePrefix(deletion.value, _overlap); + } +} +var wordWithSpaceDiff = new Diff(); +wordWithSpaceDiff.tokenize = function(value) { + var regex = new RegExp("(\\r?\\n)|[".concat(extendedWordChars, "]+|[^\\S\\n\\r]+|[^").concat(extendedWordChars, "]"), "ug"); + return value.match(regex) || []; +}; +var lineDiff = new Diff(); +lineDiff.tokenize = function(value, options) { + if (options.stripTrailingCr) { + value = value.replace(/\r\n/g, "\n"); + } + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + retLines.push(line); + } + } + return retLines; +}; +lineDiff.equals = function(left, right, options) { + if (options.ignoreWhitespace) { + if (!options.newlineIsToken || !left.includes("\n")) { + left = left.trim(); + } + if (!options.newlineIsToken || !right.includes("\n")) { + right = right.trim(); + } + } else if (options.ignoreNewlineAtEof && !options.newlineIsToken) { + if (left.endsWith("\n")) { + left = left.slice(0, -1); + } + if (right.endsWith("\n")) { + right = right.slice(0, -1); + } + } + return Diff.prototype.equals.call(this, left, right, options); +}; +function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); +} +var sentenceDiff = new Diff(); +sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff = new Diff(); +cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); +} +var jsonDiff = new Diff(); +jsonDiff.useLongestToken = true; +jsonDiff.tokenize = lineDiff.tokenize; +jsonDiff.castInput = function(value, options) { + var undefinedReplacement = options.undefinedReplacement, _options$stringifyRep = options.stringifyReplacer, stringifyReplacer = _options$stringifyRep === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _options$stringifyRep; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff.equals = function(left, right, options) { + return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options); +}; +function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if ("[object Array]" === Object.prototype.toString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, _key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff = new Diff(); +arrayDiff.tokenize = function(value) { + return value.slice(); +}; +arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; +}; + +export { diffLines }; diff --git a/src/vs/workbench/contrib/orkide/browser/react/out/quick-edit-tsx/index.js b/src/vs/workbench/contrib/orkide/browser/react/out/quick-edit-tsx/index.js new file mode 100644 index 000000000000..75f497899d83 --- /dev/null +++ b/src/vs/workbench/contrib/orkide/browser/react/out/quick-edit-tsx/index.js @@ -0,0 +1,25666 @@ +import '../../../../../../../base/common/lifecycle.js'; +import { ColorScheme } from '../../../../../../../platform/theme/common/theme.js'; +import { IExplorerService } from '../../../../../../../workbench/contrib/files/browser/files.js'; +import { IModelService } from '../../../../../../../editor/common/services/model.js'; +import { IClipboardService } from '../../../../../../../platform/clipboard/common/clipboardService.js'; +import { IContextMenuService, IContextViewService } from '../../../../../../../platform/contextview/browser/contextView.js'; +import { IFileService } from '../../../../../../../platform/files/common/files.js'; +import { IHoverService } from '../../../../../../../platform/hover/browser/hover.js'; +import { IThemeService } from '../../../../../../../platform/theme/common/themeService.js'; +import { ILLMMessageService } from '../../../../common/sendLLMMessageService.js'; +import { IRefreshModelService } from '../../../../../../../workbench/contrib/void/common/refreshModelService.js'; +import { IVoidSettingsService, modelFilterOfFeatureName } from '../../../../../../../workbench/contrib/void/common/voidSettingsService.js'; +import { IExtensionTransferService } from '../../../../../../../workbench/contrib/void/browser/extensionTransferService.js'; +import { IInstantiationService } from '../../../../../../../platform/instantiation/common/instantiation.js'; +import { ICodeEditorService } from '../../../../../../../editor/browser/services/codeEditorService.js'; +import { ICommandService } from '../../../../../../../platform/commands/common/commands.js'; +import { IContextKeyService } from '../../../../../../../platform/contextkey/common/contextkey.js'; +import { INotificationService } from '../../../../../../../platform/notification/common/notification.js'; +import { IAccessibilityService } from '../../../../../../../platform/accessibility/common/accessibility.js'; +import { ILanguageConfigurationService } from '../../../../../../../editor/common/languages/languageConfigurationRegistry.js'; +import { ILanguageFeaturesService } from '../../../../../../../editor/common/services/languageFeatures.js'; +import { ILanguageDetectionService } from '../../../../../../services/languageDetection/common/languageDetectionWorkerService.js'; +import { IKeybindingService } from '../../../../../../../platform/keybinding/common/keybinding.js'; +import { IEnvironmentService } from '../../../../../../../platform/environment/common/environment.js'; +import { IConfigurationService } from '../../../../../../../platform/configuration/common/configuration.js'; +import { IPathService } from '../../../../../../../workbench/services/path/common/pathService.js'; +import { IMetricsService } from '../../../../../../../workbench/contrib/void/common/metricsService.js'; +import { IChatThreadService } from '../../../chatThreadService.js'; +import { ITerminalToolService } from '../../../terminalToolService.js'; +import { ILanguageService } from '../../../../../../../editor/common/languages/language.js'; +import { IVoidModelService } from '../../../../common/voidModelService.js'; +import { IWorkspaceContextService } from '../../../../../../../platform/workspace/common/workspace.js'; +import { IVoidCommandBarService } from '../../../voidCommandBarService.js'; +import { INativeHostService } from '../../../../../../../platform/native/common/native.js'; +import { IEditCodeService } from '../../../editCodeServiceInterface.js'; +import { IToolsService } from '../../../toolsService.js'; +import { IConvertToLLMMessageService } from '../../../convertToLLMMessageService.js'; +import { ITerminalService } from '../../../../../terminal/browser/terminal.js'; +import { ISearchService } from '../../../../../../services/search/common/search.js'; +import { IExtensionManagementService } from '../../../../../../../platform/extensionManagement/common/extensionManagement.js'; +import { IMCPService } from '../../../../common/mcpService.js'; +import { IStorageService } from '../../../../../../../platform/storage/common/storage.js'; +import '../../../../common/storageKeys.js'; +import { ScrollType } from '../../../../../../../editor/common/editorCommon.js'; +import '../../../../common/helpers/languageHelpers.js'; +import '../../../../common/voidSettingsTypes.js'; +import { URI } from '../../../../../../../base/common/uri.js'; +import '../../../../../../../base/common/path.js'; +import '../../../../common/helpers/util.js'; +import '../../../../../../../base/browser/ui/inputbox/inputBox.js'; +import '../../../../../../../platform/theme/browser/defaultStyles.js'; +import '../../../../../../../base/browser/ui/selectBox/selectBox.js'; +import '../../../../../../../base/browser/ui/toggle/toggle.js'; +import '../../../../../../../editor/browser/widget/codeEditor/codeEditorWidget.js'; +import { asCssVariable } from '../../../../../../../platform/theme/common/colorUtils.js'; +import { inputForeground, inputBackground } from '../../../../../../../platform/theme/common/colorRegistry.js'; +import '../../../../../../../editor/browser/widget/diffEditor/diffEditorWidget.js'; +import '../../../../common/helpers/extractCodeFromResult.js'; +import '../../../../common/sendLLMMessageTypes.js'; +import { isFeatureNameDisabled, modelSelectionsEqual } from '../../../../../../../workbench/contrib/void/common/voidSettingsTypes.js'; +import { VOID_OPEN_SETTINGS_ACTION_ID } from '../../../voidSettingsPane.js'; +import { VOID_CTRL_K_ACTION_ID } from '../../../actionIDs.js'; +import { getModelCapabilities, getIsReasoningEnabledState } from '../../../../common/modelCapabilities.js'; +import '../../../../common/toolsServiceTypes.js'; +import '../../../../common/prompt/prompts.js'; +import '../../../../common/helpers/systemInfo.js'; +import '../../../../../../../base/common/severity.js'; +import '../../../../common/mcpServiceTypes.js'; + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// ../../../../../../../node_modules/scheduler/cjs/scheduler.development.js +var require_scheduler_development = __commonJS({ + "../../../../../../../node_modules/scheduler/cjs/scheduler.development.js"(exports) { + (function() { + function performWorkUntilDeadline() { + needsPaint = false; + if (isMessageLoopRunning) { + var currentTime = exports.unstable_now(); + startTime = currentTime; + var hasMoreWork = true; + try { + a: { + isHostCallbackScheduled = false; + isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1); + isPerformingWork = true; + var previousPriorityLevel = currentPriorityLevel; + try { + b: { + advanceTimers(currentTime); + for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) { + var callback = currentTask.callback; + if ("function" === typeof callback) { + currentTask.callback = null; + currentPriorityLevel = currentTask.priorityLevel; + var continuationCallback = callback( + currentTask.expirationTime <= currentTime + ); + currentTime = exports.unstable_now(); + if ("function" === typeof continuationCallback) { + currentTask.callback = continuationCallback; + advanceTimers(currentTime); + hasMoreWork = true; + break b; + } + currentTask === peek(taskQueue) && pop(taskQueue); + advanceTimers(currentTime); + } else pop(taskQueue); + currentTask = peek(taskQueue); + } + if (null !== currentTask) hasMoreWork = true; + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + hasMoreWork = false; + } + } + break a; + } finally { + currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false; + } + hasMoreWork = void 0; + } + } finally { + hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false; + } + } + } + function push(heap, node) { + var index3 = heap.length; + heap.push(node); + a: for (; 0 < index3; ) { + var parentIndex = index3 - 1 >>> 1, parent = heap[parentIndex]; + if (0 < compare(parent, node)) + heap[parentIndex] = node, heap[index3] = parent, index3 = parentIndex; + else break a; + } + } + function peek(heap) { + return 0 === heap.length ? null : heap[0]; + } + function pop(heap) { + if (0 === heap.length) return null; + var first = heap[0], last = heap.pop(); + if (last !== first) { + heap[0] = last; + a: for (var index3 = 0, length = heap.length, halfLength = length >>> 1; index3 < halfLength; ) { + var leftIndex = 2 * (index3 + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex]; + if (0 > compare(left, last)) + rightIndex < length && 0 > compare(right, left) ? (heap[index3] = right, heap[rightIndex] = last, index3 = rightIndex) : (heap[index3] = left, heap[leftIndex] = last, index3 = leftIndex); + else if (rightIndex < length && 0 > compare(right, last)) + heap[index3] = right, heap[rightIndex] = last, index3 = rightIndex; + else break a; + } + } + return first; + } + function compare(a, b) { + var diff = a.sortIndex - b.sortIndex; + return 0 !== diff ? diff : a.id - b.id; + } + function advanceTimers(currentTime) { + for (var timer = peek(timerQueue); null !== timer; ) { + if (null === timer.callback) pop(timerQueue); + else if (timer.startTime <= currentTime) + pop(timerQueue), timer.sortIndex = timer.expirationTime, push(taskQueue, timer); + else break; + timer = peek(timerQueue); + } + } + function handleTimeout(currentTime) { + isHostTimeoutScheduled = false; + advanceTimers(currentTime); + if (!isHostCallbackScheduled) + if (null !== peek(taskQueue)) + isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()); + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + } + } + function shouldYieldToHost() { + return needsPaint ? true : exports.unstable_now() - startTime < frameInterval ? false : true; + } + function requestHostTimeout(callback, ms) { + taskTimeoutID = localSetTimeout(function() { + callback(exports.unstable_now()); + }, ms); + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + exports.unstable_now = void 0; + if ("object" === typeof performance && "function" === typeof performance.now) { + var localPerformance = performance; + exports.unstable_now = function() { + return localPerformance.now(); + }; + } else { + var localDate = Date, initialTime = localDate.now(); + exports.unstable_now = function() { + return localDate.now() - initialTime; + }; + } + var taskQueue = [], timerQueue = [], taskIdCounter = 1, currentTask = null, currentPriorityLevel = 3, isPerformingWork = false, isHostCallbackScheduled = false, isHostTimeoutScheduled = false, needsPaint = false, localSetTimeout = "function" === typeof setTimeout ? setTimeout : null, localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null, localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null, isMessageLoopRunning = false, taskTimeoutID = -1, frameInterval = 5, startTime = -1; + if ("function" === typeof localSetImmediate) + var schedulePerformWorkUntilDeadline = function() { + localSetImmediate(performWorkUntilDeadline); + }; + else if ("undefined" !== typeof MessageChannel) { + var channel = new MessageChannel(), port = channel.port2; + channel.port1.onmessage = performWorkUntilDeadline; + schedulePerformWorkUntilDeadline = function() { + port.postMessage(null); + }; + } else + schedulePerformWorkUntilDeadline = function() { + localSetTimeout(performWorkUntilDeadline, 0); + }; + exports.unstable_IdlePriority = 5; + exports.unstable_ImmediatePriority = 1; + exports.unstable_LowPriority = 4; + exports.unstable_NormalPriority = 3; + exports.unstable_Profiling = null; + exports.unstable_UserBlockingPriority = 2; + exports.unstable_cancelCallback = function(task) { + task.callback = null; + }; + exports.unstable_forceFrameRate = function(fps) { + 0 > fps || 125 < fps ? console.error( + "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported" + ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5; + }; + exports.unstable_getCurrentPriorityLevel = function() { + return currentPriorityLevel; + }; + exports.unstable_next = function(eventHandler) { + switch (currentPriorityLevel) { + case 1: + case 2: + case 3: + var priorityLevel = 3; + break; + default: + priorityLevel = currentPriorityLevel; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports.unstable_requestPaint = function() { + needsPaint = true; + }; + exports.unstable_runWithPriority = function(priorityLevel, eventHandler) { + switch (priorityLevel) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + priorityLevel = 3; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports.unstable_scheduleCallback = function(priorityLevel, callback, options2) { + var currentTime = exports.unstable_now(); + "object" === typeof options2 && null !== options2 ? (options2 = options2.delay, options2 = "number" === typeof options2 && 0 < options2 ? currentTime + options2 : currentTime) : options2 = currentTime; + switch (priorityLevel) { + case 1: + var timeout = -1; + break; + case 2: + timeout = 250; + break; + case 5: + timeout = 1073741823; + break; + case 4: + timeout = 1e4; + break; + default: + timeout = 5e3; + } + timeout = options2 + timeout; + priorityLevel = { + id: taskIdCounter++, + callback, + priorityLevel, + startTime: options2, + expirationTime: timeout, + sortIndex: -1 + }; + options2 > currentTime ? (priorityLevel.sortIndex = options2, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options2 - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()))); + return priorityLevel; + }; + exports.unstable_shouldYield = shouldYieldToHost; + exports.unstable_wrapCallback = function(callback) { + var parentPriorityLevel = currentPriorityLevel; + return function() { + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = parentPriorityLevel; + try { + return callback.apply(this, arguments); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + }; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/scheduler/index.js +var require_scheduler = __commonJS({ + "../../../../../../../node_modules/scheduler/index.js"(exports, module) { + { + module.exports = require_scheduler_development(); + } + } +}); + +// ../../../../../../../node_modules/react/cjs/react.development.js +var require_react_development = __commonJS({ + "../../../../../../../node_modules/react/cjs/react.development.js"(exports, module) { + (function() { + function defineDeprecationWarning(methodName, info) { + Object.defineProperty(Component2.prototype, methodName, { + get: function() { + console.warn( + "%s(...) is deprecated in plain JavaScript React classes. %s", + info[0], + info[1] + ); + } + }); + } + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) + return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + function warnNoop(publicInstance, callerName) { + publicInstance = (publicInstance = publicInstance.constructor) && (publicInstance.displayName || publicInstance.name) || "ReactClass"; + var warningKey = publicInstance + "." + callerName; + didWarnStateUpdateForUnmountedComponent[warningKey] || (console.error( + "Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", + callerName, + publicInstance + ), didWarnStateUpdateForUnmountedComponent[warningKey] = true); + } + function Component2(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function ComponentDummy() { + } + function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function testStringCoercion(value) { + return "" + value; + } + function checkKeyStringCoercion(value) { + try { + testStringCoercion(value); + var JSCompiler_inline_result = false; + } catch (e) { + JSCompiler_inline_result = true; + } + if (JSCompiler_inline_result) { + JSCompiler_inline_result = console; + var JSCompiler_temp_const = JSCompiler_inline_result.error; + var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; + JSCompiler_temp_const.call( + JSCompiler_inline_result, + "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", + JSCompiler_inline_result$jscomp$0 + ); + return testStringCoercion(value); + } + } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch ("number" === typeof type.tag && console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return (type.displayName || "Context") + ".Provider"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + function getTaskName(type) { + if (type === REACT_FRAGMENT_TYPE) return "<>"; + if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) + return "<...>"; + try { + var name = getComponentNameFromType(type); + return name ? "<" + name + ">" : "<...>"; + } catch (x) { + return "<...>"; + } + } + function getOwner() { + var dispatcher = ReactSharedInternals.A; + return null === dispatcher ? null : dispatcher.getOwner(); + } + function UnknownOwner() { + return Error("react-stack-top-frame"); + } + function hasValidKey(config) { + if (hasOwnProperty.call(config, "key")) { + var getter = Object.getOwnPropertyDescriptor(config, "key").get; + if (getter && getter.isReactWarning) return false; + } + return void 0 !== config.key; + } + function defineKeyPropWarningGetter(props, displayName) { + function warnAboutAccessingKey() { + specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error( + "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", + displayName + )); + } + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + function elementRefGetterWithDeprecationWarning() { + var componentName = getComponentNameFromType(this.type); + didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error( + "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release." + )); + componentName = this.props.ref; + return void 0 !== componentName ? componentName : null; + } + function ReactElement(type, key, self, source, owner, props, debugStack, debugTask) { + self = props.ref; + type = { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + props, + _owner: owner + }; + null !== (void 0 !== self ? self : null) ? Object.defineProperty(type, "ref", { + enumerable: false, + get: elementRefGetterWithDeprecationWarning + }) : Object.defineProperty(type, "ref", { enumerable: false, value: null }); + type._store = {}; + Object.defineProperty(type._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: 0 + }); + Object.defineProperty(type, "_debugInfo", { + configurable: false, + enumerable: false, + writable: true, + value: null + }); + Object.defineProperty(type, "_debugStack", { + configurable: false, + enumerable: false, + writable: true, + value: debugStack + }); + Object.defineProperty(type, "_debugTask", { + configurable: false, + enumerable: false, + writable: true, + value: debugTask + }); + Object.freeze && (Object.freeze(type.props), Object.freeze(type)); + return type; + } + function cloneAndReplaceKey(oldElement, newKey) { + newKey = ReactElement( + oldElement.type, + newKey, + void 0, + void 0, + oldElement._owner, + oldElement.props, + oldElement._debugStack, + oldElement._debugTask + ); + oldElement._store && (newKey._store.validated = oldElement._store.validated); + return newKey; + } + function isValidElement(object) { + return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE; + } + function escape2(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return "$" + key.replace(/[=:]/g, function(match) { + return escaperLookup[match]; + }); + } + function getElementKey(element, index3) { + return "object" === typeof element && null !== element && null != element.key ? (checkKeyStringCoercion(element.key), escape2("" + element.key)) : index3.toString(36); + } + function noop$1() { + } + function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ("string" === typeof thenable.status ? thenable.then(noop$1, noop$1) : (thenable.status = "pending", thenable.then( + function(fulfilledValue) { + "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue); + }, + function(error2) { + "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error2); + } + )), thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = false; + if (null === children) invokeCallback = true; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = true; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + break; + case REACT_LAZY_TYPE: + return invokeCallback = children._init, mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ); + } + } + if (invokeCallback) { + invokeCallback = children; + callback = callback(invokeCallback); + var childKey = "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar; + isArrayImpl(callback) ? (escapedPrefix = "", null != childKey && (escapedPrefix = childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c) { + return c; + })) : null != callback && (isValidElement(callback) && (null != callback.key && (invokeCallback && invokeCallback.key === callback.key || checkKeyStringCoercion(callback.key)), escapedPrefix = cloneAndReplaceKey( + callback, + escapedPrefix + (null == callback.key || invokeCallback && invokeCallback.key === callback.key ? "" : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + childKey + ), "" !== nameSoFar && null != invokeCallback && isValidElement(invokeCallback) && null == invokeCallback.key && invokeCallback._store && !invokeCallback._store.validated && (escapedPrefix._store.validated = 2), callback = escapedPrefix), array.push(callback)); + return 1; + } + invokeCallback = 0; + childKey = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + nameSoFar = children[i], type = childKey + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if (i = getIteratorFn(children), "function" === typeof i) + for (i === children.entries && (didWarnAboutMaps || console.warn( + "Using Maps as children is not supported. Use an array of keyed ReactElements instead." + ), didWarnAboutMaps = true), children = i.call(children), i = 0; !(nameSoFar = children.next()).done; ) + nameSoFar = nameSoFar.value, type = childKey + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; + } + function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], count2 = 0; + mapIntoArray(children, result, "", "", function(child) { + return func.call(context, child, count2++); + }); + return result; + } + function lazyInitializer(payload) { + if (-1 === payload._status) { + var ctor = payload._result; + ctor = ctor(); + ctor.then( + function(moduleObject) { + if (0 === payload._status || -1 === payload._status) + payload._status = 1, payload._result = moduleObject; + }, + function(error2) { + if (0 === payload._status || -1 === payload._status) + payload._status = 2, payload._result = error2; + } + ); + -1 === payload._status && (payload._status = 0, payload._result = ctor); + } + if (1 === payload._status) + return ctor = payload._result, void 0 === ctor && console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?", + ctor + ), "default" in ctor || console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", + ctor + ), ctor.default; + throw payload._result; + } + function resolveDispatcher() { + var dispatcher = ReactSharedInternals.H; + null === dispatcher && console.error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return dispatcher; + } + function noop() { + } + function enqueueTask(task) { + if (null === enqueueTaskImpl) + try { + var requireString = ("require" + Math.random()).slice(0, 7); + enqueueTaskImpl = (module && module[requireString]).call( + module, + "timers" + ).setImmediate; + } catch (_err) { + enqueueTaskImpl = function(callback) { + false === didWarnAboutMessageChannel && (didWarnAboutMessageChannel = true, "undefined" === typeof MessageChannel && console.error( + "This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning." + )); + var channel = new MessageChannel(); + channel.port1.onmessage = callback; + channel.port2.postMessage(void 0); + }; + } + return enqueueTaskImpl(task); + } + function aggregateErrors(errors) { + return 1 < errors.length && "function" === typeof AggregateError ? new AggregateError(errors) : errors[0]; + } + function popActScope(prevActQueue, prevActScopeDepth) { + prevActScopeDepth !== actScopeDepth - 1 && console.error( + "You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. " + ); + actScopeDepth = prevActScopeDepth; + } + function recursivelyFlushAsyncActWork(returnValue, resolve, reject) { + var queue = ReactSharedInternals.actQueue; + if (null !== queue) + if (0 !== queue.length) + try { + flushActQueue(queue); + enqueueTask(function() { + return recursivelyFlushAsyncActWork(returnValue, resolve, reject); + }); + return; + } catch (error2) { + ReactSharedInternals.thrownErrors.push(error2); + } + else ReactSharedInternals.actQueue = null; + 0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) : resolve(returnValue); + } + function flushActQueue(queue) { + if (!isFlushing) { + isFlushing = true; + var i = 0; + try { + for (; i < queue.length; i++) { + var callback = queue[i]; + do { + ReactSharedInternals.didUsePromise = false; + var continuation = callback(false); + if (null !== continuation) { + if (ReactSharedInternals.didUsePromise) { + queue[i] = callback; + queue.splice(0, i); + return; + } + callback = continuation; + } else break; + } while (1); + } + queue.length = 0; + } catch (error2) { + queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error2); + } finally { + isFlushing = false; + } + } + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"); + var REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, didWarnStateUpdateForUnmountedComponent = {}, ReactNoopUpdateQueue = { + isMounted: function() { + return false; + }, + enqueueForceUpdate: function(publicInstance) { + warnNoop(publicInstance, "forceUpdate"); + }, + enqueueReplaceState: function(publicInstance) { + warnNoop(publicInstance, "replaceState"); + }, + enqueueSetState: function(publicInstance) { + warnNoop(publicInstance, "setState"); + } + }, assign = Object.assign, emptyObject = {}; + Object.freeze(emptyObject); + Component2.prototype.isReactComponent = {}; + Component2.prototype.setState = function(partialState, callback) { + if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component2.prototype.forceUpdate = function(callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + var deprecatedAPIs = { + isMounted: [ + "isMounted", + "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks." + ], + replaceState: [ + "replaceState", + "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)." + ] + }, fnName; + for (fnName in deprecatedAPIs) + deprecatedAPIs.hasOwnProperty(fnName) && defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + ComponentDummy.prototype = Component2.prototype; + deprecatedAPIs = PureComponent.prototype = new ComponentDummy(); + deprecatedAPIs.constructor = PureComponent; + assign(deprecatedAPIs, Component2.prototype); + deprecatedAPIs.isPureReactComponent = true; + var isArrayImpl = Array.isArray, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = { + H: null, + A: null, + T: null, + S: null, + V: null, + actQueue: null, + isBatchingLegacy: false, + didScheduleLegacyUpdate: false, + didUsePromise: false, + thrownErrors: [], + getCurrentStack: null, + recentlyCreatedOwnerStacks: 0 + }, hasOwnProperty = Object.prototype.hasOwnProperty, createTask = console.createTask ? console.createTask : function() { + return null; + }; + deprecatedAPIs = { + "react-stack-bottom-frame": function(callStackForError) { + return callStackForError(); + } + }; + var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime; + var didWarnAboutElementRef = {}; + var unknownOwnerDebugStack = deprecatedAPIs["react-stack-bottom-frame"].bind(deprecatedAPIs, UnknownOwner)(); + var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner)); + var didWarnAboutMaps = false, userProvidedKeyEscapeRegex = /\/+/g, reportGlobalError = "function" === typeof reportError ? reportError : function(error2) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error2 && null !== error2 && "string" === typeof error2.message ? String(error2.message) : String(error2), + error: error2 + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error2); + return; + } + console.error(error2); + }, didWarnAboutMessageChannel = false, enqueueTaskImpl = null, actScopeDepth = 0, didWarnNoAwaitAct = false, isFlushing = false, queueSeveralMicrotasks = "function" === typeof queueMicrotask ? function(callback) { + queueMicrotask(function() { + return queueMicrotask(callback); + }); + } : enqueueTask; + deprecatedAPIs = Object.freeze({ + __proto__: null, + c: function(size4) { + return resolveDispatcher().useMemoCache(size4); + } + }); + exports.Children = { + map: mapChildren, + forEach: function(children, forEachFunc, forEachContext) { + mapChildren( + children, + function() { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function(children) { + var n = 0; + mapChildren(children, function() { + n++; + }); + return n; + }, + toArray: function(children) { + return mapChildren(children, function(child) { + return child; + }) || []; + }, + only: function(children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; + exports.Component = Component2; + exports.Fragment = REACT_FRAGMENT_TYPE; + exports.Profiler = REACT_PROFILER_TYPE; + exports.PureComponent = PureComponent; + exports.StrictMode = REACT_STRICT_MODE_TYPE; + exports.Suspense = REACT_SUSPENSE_TYPE; + exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals; + exports.__COMPILER_RUNTIME = deprecatedAPIs; + exports.act = function(callback) { + var prevActQueue = ReactSharedInternals.actQueue, prevActScopeDepth = actScopeDepth; + actScopeDepth++; + var queue = ReactSharedInternals.actQueue = null !== prevActQueue ? prevActQueue : [], didAwaitActCall = false; + try { + var result = callback(); + } catch (error2) { + ReactSharedInternals.thrownErrors.push(error2); + } + if (0 < ReactSharedInternals.thrownErrors.length) + throw popActScope(prevActQueue, prevActScopeDepth), callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback; + if (null !== result && "object" === typeof result && "function" === typeof result.then) { + var thenable = result; + queueSeveralMicrotasks(function() { + didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error( + "You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);" + )); + }); + return { + then: function(resolve, reject) { + didAwaitActCall = true; + thenable.then( + function(returnValue) { + popActScope(prevActQueue, prevActScopeDepth); + if (0 === prevActScopeDepth) { + try { + flushActQueue(queue), enqueueTask(function() { + return recursivelyFlushAsyncActWork( + returnValue, + resolve, + reject + ); + }); + } catch (error$0) { + ReactSharedInternals.thrownErrors.push(error$0); + } + if (0 < ReactSharedInternals.thrownErrors.length) { + var _thrownError = aggregateErrors( + ReactSharedInternals.thrownErrors + ); + ReactSharedInternals.thrownErrors.length = 0; + reject(_thrownError); + } + } else resolve(returnValue); + }, + function(error2) { + popActScope(prevActQueue, prevActScopeDepth); + 0 < ReactSharedInternals.thrownErrors.length ? (error2 = aggregateErrors( + ReactSharedInternals.thrownErrors + ), ReactSharedInternals.thrownErrors.length = 0, reject(error2)) : reject(error2); + } + ); + } + }; + } + var returnValue$jscomp$0 = result; + popActScope(prevActQueue, prevActScopeDepth); + 0 === prevActScopeDepth && (flushActQueue(queue), 0 !== queue.length && queueSeveralMicrotasks(function() { + didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error( + "A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)" + )); + }), ReactSharedInternals.actQueue = null); + if (0 < ReactSharedInternals.thrownErrors.length) + throw callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback; + return { + then: function(resolve, reject) { + didAwaitActCall = true; + 0 === prevActScopeDepth ? (ReactSharedInternals.actQueue = queue, enqueueTask(function() { + return recursivelyFlushAsyncActWork( + returnValue$jscomp$0, + resolve, + reject + ); + })) : resolve(returnValue$jscomp$0); + } + }; + }; + exports.cache = function(fn) { + return function() { + return fn.apply(null, arguments); + }; + }; + exports.captureOwnerStack = function() { + var getCurrentStack = ReactSharedInternals.getCurrentStack; + return null === getCurrentStack ? null : getCurrentStack(); + }; + exports.cloneElement = function(element, config, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + element + "." + ); + var props = assign({}, element.props), key = element.key, owner = element._owner; + if (null != config) { + var JSCompiler_inline_result; + a: { + if (hasOwnProperty.call(config, "ref") && (JSCompiler_inline_result = Object.getOwnPropertyDescriptor( + config, + "ref" + ).get) && JSCompiler_inline_result.isReactWarning) { + JSCompiler_inline_result = false; + break a; + } + JSCompiler_inline_result = void 0 !== config.ref; + } + JSCompiler_inline_result && (owner = getOwner()); + hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key); + for (propName in config) + !hasOwnProperty.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]); + } + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + JSCompiler_inline_result = Array(propName); + for (var i = 0; i < propName; i++) + JSCompiler_inline_result[i] = arguments[i + 2]; + props.children = JSCompiler_inline_result; + } + props = ReactElement( + element.type, + key, + void 0, + void 0, + owner, + props, + element._debugStack, + element._debugTask + ); + for (key = 2; key < arguments.length; key++) + owner = arguments[key], isValidElement(owner) && owner._store && (owner._store.validated = 1); + return props; + }; + exports.createContext = function(defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + defaultValue._currentRenderer = null; + defaultValue._currentRenderer2 = null; + return defaultValue; + }; + exports.createElement = function(type, config, children) { + for (var i = 2; i < arguments.length; i++) { + var node = arguments[i]; + isValidElement(node) && node._store && (node._store.validated = 1); + } + i = {}; + node = null; + if (null != config) + for (propName in didWarnAboutOldJSXRuntime || !("__self" in config) || "key" in config || (didWarnAboutOldJSXRuntime = true, console.warn( + "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform" + )), hasValidKey(config) && (checkKeyStringCoercion(config.key), node = "" + config.key), config) + hasOwnProperty.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (i[propName] = config[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) i.children = children; + else if (1 < childrenLength) { + for (var childArray = Array(childrenLength), _i = 0; _i < childrenLength; _i++) + childArray[_i] = arguments[_i + 2]; + Object.freeze && Object.freeze(childArray); + i.children = childArray; + } + if (type && type.defaultProps) + for (propName in childrenLength = type.defaultProps, childrenLength) + void 0 === i[propName] && (i[propName] = childrenLength[propName]); + node && defineKeyPropWarningGetter( + i, + "function" === typeof type ? type.displayName || type.name || "Unknown" : type + ); + var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++; + return ReactElement( + type, + node, + void 0, + void 0, + getOwner(), + i, + propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack, + propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask + ); + }; + exports.createRef = function() { + var refObject = { current: null }; + Object.seal(refObject); + return refObject; + }; + exports.forwardRef = function(render) { + null != render && render.$$typeof === REACT_MEMO_TYPE ? console.error( + "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))." + ) : "function" !== typeof render ? console.error( + "forwardRef requires a render function but was given %s.", + null === render ? "null" : typeof render + ) : 0 !== render.length && 2 !== render.length && console.error( + "forwardRef render functions accept exactly two parameters: props and ref. %s", + 1 === render.length ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined." + ); + null != render && null != render.defaultProps && console.error( + "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?" + ); + var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render }, ownName; + Object.defineProperty(elementType, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + render.name || render.displayName || (Object.defineProperty(render, "name", { value: name }), render.displayName = name); + } + }); + return elementType; + }; + exports.isValidElement = isValidElement; + exports.lazy = function(ctor) { + return { + $$typeof: REACT_LAZY_TYPE, + _payload: { _status: -1, _result: ctor }, + _init: lazyInitializer + }; + }; + exports.memo = function(type, compare) { + null == type && console.error( + "memo: The first argument must be a component. Instead received: %s", + null === type ? "null" : typeof type + ); + compare = { + $$typeof: REACT_MEMO_TYPE, + type, + compare: void 0 === compare ? null : compare + }; + var ownName; + Object.defineProperty(compare, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + type.name || type.displayName || (Object.defineProperty(type, "name", { value: name }), type.displayName = name); + } + }); + return compare; + }; + exports.startTransition = function(scope) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + currentTransition._updatedFibers = /* @__PURE__ */ new Set(); + try { + var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop, reportGlobalError); + } catch (error2) { + reportGlobalError(error2); + } finally { + null === prevTransition && currentTransition._updatedFibers && (scope = currentTransition._updatedFibers.size, currentTransition._updatedFibers.clear(), 10 < scope && console.warn( + "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table." + )), ReactSharedInternals.T = prevTransition; + } + }; + exports.unstable_useCacheRefresh = function() { + return resolveDispatcher().useCacheRefresh(); + }; + exports.use = function(usable) { + return resolveDispatcher().use(usable); + }; + exports.useActionState = function(action, initialState, permalink) { + return resolveDispatcher().useActionState( + action, + initialState, + permalink + ); + }; + exports.useCallback = function(callback, deps) { + return resolveDispatcher().useCallback(callback, deps); + }; + exports.useContext = function(Context) { + var dispatcher = resolveDispatcher(); + Context.$$typeof === REACT_CONSUMER_TYPE && console.error( + "Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?" + ); + return dispatcher.useContext(Context); + }; + exports.useDebugValue = function(value, formatterFn) { + return resolveDispatcher().useDebugValue(value, formatterFn); + }; + exports.useDeferredValue = function(value, initialValue) { + return resolveDispatcher().useDeferredValue(value, initialValue); + }; + exports.useEffect = function(create, createDeps, update) { + null == create && console.warn( + "React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + var dispatcher = resolveDispatcher(); + if ("function" === typeof update) + throw Error( + "useEffect CRUD overload is not enabled in this build of React." + ); + return dispatcher.useEffect(create, createDeps); + }; + exports.useId = function() { + return resolveDispatcher().useId(); + }; + exports.useImperativeHandle = function(ref, create, deps) { + return resolveDispatcher().useImperativeHandle(ref, create, deps); + }; + exports.useInsertionEffect = function(create, deps) { + null == create && console.warn( + "React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useInsertionEffect(create, deps); + }; + exports.useLayoutEffect = function(create, deps) { + null == create && console.warn( + "React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useLayoutEffect(create, deps); + }; + exports.useMemo = function(create, deps) { + return resolveDispatcher().useMemo(create, deps); + }; + exports.useOptimistic = function(passthrough, reducer) { + return resolveDispatcher().useOptimistic(passthrough, reducer); + }; + exports.useReducer = function(reducer, initialArg, init) { + return resolveDispatcher().useReducer(reducer, initialArg, init); + }; + exports.useRef = function(initialValue) { + return resolveDispatcher().useRef(initialValue); + }; + exports.useState = function(initialState) { + return resolveDispatcher().useState(initialState); + }; + exports.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) { + return resolveDispatcher().useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); + }; + exports.useTransition = function() { + return resolveDispatcher().useTransition(); + }; + exports.version = "19.1.0"; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/react/index.js +var require_react = __commonJS({ + "../../../../../../../node_modules/react/index.js"(exports, module) { + { + module.exports = require_react_development(); + } + } +}); + +// ../../../../../../../node_modules/react-dom/cjs/react-dom.development.js +var require_react_dom_development = __commonJS({ + "../../../../../../../node_modules/react-dom/cjs/react-dom.development.js"(exports) { + (function() { + function noop() { + } + function testStringCoercion(value) { + return "" + value; + } + function createPortal$1(children, containerInfo, implementation) { + var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + try { + testStringCoercion(key); + var JSCompiler_inline_result = false; + } catch (e) { + JSCompiler_inline_result = true; + } + JSCompiler_inline_result && (console.error( + "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", + "function" === typeof Symbol && Symbol.toStringTag && key[Symbol.toStringTag] || key.constructor.name || "Object" + ), testStringCoercion(key)); + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children, + containerInfo, + implementation + }; + } + function getCrossOriginStringAs(as, input) { + if ("font" === as) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; + } + function getValueDescriptorExpectingObjectForWarning(thing) { + return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : 'something with type "' + typeof thing + '"'; + } + function getValueDescriptorExpectingEnumForWarning(thing) { + return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : "string" === typeof thing ? JSON.stringify(thing) : "number" === typeof thing ? "`" + thing + "`" : 'something with type "' + typeof thing + '"'; + } + function resolveDispatcher() { + var dispatcher = ReactSharedInternals.H; + null === dispatcher && console.error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return dispatcher; + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + var React12 = require_react(), Internals = { + d: { + f: noop, + r: function() { + throw Error( + "Invalid form element. requestFormReset must be passed a form that was rendered by React." + ); + }, + D: noop, + C: noop, + L: noop, + m: noop, + X: noop, + S: noop, + M: noop + }, + p: 0, + findDOMNode: null + }, REACT_PORTAL_TYPE = Symbol.for("react.portal"), ReactSharedInternals = React12.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + "function" === typeof Map && null != Map.prototype && "function" === typeof Map.prototype.forEach && "function" === typeof Set && null != Set.prototype && "function" === typeof Set.prototype.clear && "function" === typeof Set.prototype.forEach || console.error( + "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills" + ); + exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals; + exports.createPortal = function(children, container) { + var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType) + throw Error("Target container is not a DOM element."); + return createPortal$1(children, container, null, key); + }; + exports.flushSync = function(fn) { + var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p; + try { + if (ReactSharedInternals.T = null, Internals.p = 2, fn) + return fn(); + } finally { + ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f() && console.error( + "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task." + ); + } + }; + exports.preconnect = function(href, options2) { + "string" === typeof href && href ? null != options2 && "object" !== typeof options2 ? console.error( + "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.", + getValueDescriptorExpectingEnumForWarning(options2) + ) : null != options2 && "string" !== typeof options2.crossOrigin && console.error( + "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.", + getValueDescriptorExpectingObjectForWarning(options2.crossOrigin) + ) : console.error( + "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + "string" === typeof href && (options2 ? (options2 = options2.crossOrigin, options2 = "string" === typeof options2 ? "use-credentials" === options2 ? options2 : "" : void 0) : options2 = null, Internals.d.C(href, options2)); + }; + exports.prefetchDNS = function(href) { + if ("string" !== typeof href || !href) + console.error( + "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + else if (1 < arguments.length) { + var options2 = arguments[1]; + "object" === typeof options2 && options2.hasOwnProperty("crossOrigin") ? console.error( + "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.", + getValueDescriptorExpectingEnumForWarning(options2) + ) : console.error( + "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.", + getValueDescriptorExpectingEnumForWarning(options2) + ); + } + "string" === typeof href && Internals.d.D(href); + }; + exports.preinit = function(href, options2) { + "string" === typeof href && href ? null == options2 || "object" !== typeof options2 ? console.error( + "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.", + getValueDescriptorExpectingEnumForWarning(options2) + ) : "style" !== options2.as && "script" !== options2.as && console.error( + 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".', + getValueDescriptorExpectingEnumForWarning(options2.as) + ) : console.error( + "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + if ("string" === typeof href && options2 && "string" === typeof options2.as) { + var as = options2.as, crossOrigin = getCrossOriginStringAs(as, options2.crossOrigin), integrity = "string" === typeof options2.integrity ? options2.integrity : void 0, fetchPriority = "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0; + "style" === as ? Internals.d.S( + href, + "string" === typeof options2.precedence ? options2.precedence : void 0, + { + crossOrigin, + integrity, + fetchPriority + } + ) : "script" === as && Internals.d.X(href, { + crossOrigin, + integrity, + fetchPriority, + nonce: "string" === typeof options2.nonce ? options2.nonce : void 0 + }); + } + }; + exports.preinitModule = function(href, options2) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + void 0 !== options2 && "object" !== typeof options2 ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options2) + "." : options2 && "as" in options2 && "script" !== options2.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingEnumForWarning(options2.as) + "."); + if (encountered) + console.error( + "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s", + encountered + ); + else + switch (encountered = options2 && "string" === typeof options2.as ? options2.as : "script", encountered) { + case "script": + break; + default: + encountered = getValueDescriptorExpectingEnumForWarning(encountered), console.error( + 'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)', + encountered, + href + ); + } + if ("string" === typeof href) + if ("object" === typeof options2 && null !== options2) { + if (null == options2.as || "script" === options2.as) + encountered = getCrossOriginStringAs( + options2.as, + options2.crossOrigin + ), Internals.d.M(href, { + crossOrigin: encountered, + integrity: "string" === typeof options2.integrity ? options2.integrity : void 0, + nonce: "string" === typeof options2.nonce ? options2.nonce : void 0 + }); + } else null == options2 && Internals.d.M(href); + }; + exports.preload = function(href, options2) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + null == options2 || "object" !== typeof options2 ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options2) + "." : "string" === typeof options2.as && options2.as || (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options2.as) + "."); + encountered && console.error( + 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `` tag.%s', + encountered + ); + if ("string" === typeof href && "object" === typeof options2 && null !== options2 && "string" === typeof options2.as) { + encountered = options2.as; + var crossOrigin = getCrossOriginStringAs( + encountered, + options2.crossOrigin + ); + Internals.d.L(href, encountered, { + crossOrigin, + integrity: "string" === typeof options2.integrity ? options2.integrity : void 0, + nonce: "string" === typeof options2.nonce ? options2.nonce : void 0, + type: "string" === typeof options2.type ? options2.type : void 0, + fetchPriority: "string" === typeof options2.fetchPriority ? options2.fetchPriority : void 0, + referrerPolicy: "string" === typeof options2.referrerPolicy ? options2.referrerPolicy : void 0, + imageSrcSet: "string" === typeof options2.imageSrcSet ? options2.imageSrcSet : void 0, + imageSizes: "string" === typeof options2.imageSizes ? options2.imageSizes : void 0, + media: "string" === typeof options2.media ? options2.media : void 0 + }); + } + }; + exports.preloadModule = function(href, options2) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + void 0 !== options2 && "object" !== typeof options2 ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options2) + "." : options2 && "as" in options2 && "string" !== typeof options2.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options2.as) + "."); + encountered && console.error( + 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s', + encountered + ); + "string" === typeof href && (options2 ? (encountered = getCrossOriginStringAs( + options2.as, + options2.crossOrigin + ), Internals.d.m(href, { + as: "string" === typeof options2.as && "script" !== options2.as ? options2.as : void 0, + crossOrigin: encountered, + integrity: "string" === typeof options2.integrity ? options2.integrity : void 0 + })) : Internals.d.m(href)); + }; + exports.requestFormReset = function(form) { + Internals.d.r(form); + }; + exports.unstable_batchedUpdates = function(fn, a) { + return fn(a); + }; + exports.useFormState = function(action, initialState, permalink) { + return resolveDispatcher().useFormState(action, initialState, permalink); + }; + exports.useFormStatus = function() { + return resolveDispatcher().useHostTransitionStatus(); + }; + exports.version = "19.1.0"; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/react-dom/index.js +var require_react_dom = __commonJS({ + "../../../../../../../node_modules/react-dom/index.js"(exports, module) { + { + module.exports = require_react_dom_development(); + } + } +}); + +// ../../../../../../../node_modules/react-dom/cjs/react-dom-client.development.js +var require_react_dom_client_development = __commonJS({ + "../../../../../../../node_modules/react-dom/cjs/react-dom-client.development.js"(exports) { + (function() { + function findHook(fiber, id) { + for (fiber = fiber.memoizedState; null !== fiber && 0 < id; ) + fiber = fiber.next, id--; + return fiber; + } + function copyWithSetImpl(obj, path, index3, value) { + if (index3 >= path.length) return value; + var key = path[index3], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + updated[key] = copyWithSetImpl(obj[key], path, index3 + 1, value); + return updated; + } + function copyWithRename(obj, oldPath, newPath) { + if (oldPath.length !== newPath.length) + console.warn("copyWithRename() expects paths of the same length"); + else { + for (var i = 0; i < newPath.length - 1; i++) + if (oldPath[i] !== newPath[i]) { + console.warn( + "copyWithRename() expects paths to be the same except for the deepest key" + ); + return; + } + return copyWithRenameImpl(obj, oldPath, newPath, 0); + } + } + function copyWithRenameImpl(obj, oldPath, newPath, index3) { + var oldKey = oldPath[index3], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + index3 + 1 === oldPath.length ? (updated[newPath[index3]] = updated[oldKey], isArrayImpl(updated) ? updated.splice(oldKey, 1) : delete updated[oldKey]) : updated[oldKey] = copyWithRenameImpl( + obj[oldKey], + oldPath, + newPath, + index3 + 1 + ); + return updated; + } + function copyWithDeleteImpl(obj, path, index3) { + var key = path[index3], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + if (index3 + 1 === path.length) + return isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key], updated; + updated[key] = copyWithDeleteImpl(obj[key], path, index3 + 1); + return updated; + } + function shouldSuspendImpl() { + return false; + } + function shouldErrorImpl() { + return null; + } + function warnForMissingKey() { + } + function warnInvalidHookAccess() { + console.error( + "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks" + ); + } + function warnInvalidContextAccess() { + console.error( + "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()." + ); + } + function noop$2() { + } + function setToSortedString(set) { + var array = []; + set.forEach(function(value) { + array.push(value); + }); + return array.sort().join(", "); + } + function createFiber(tag2, pendingProps, key, mode) { + return new FiberNode(tag2, pendingProps, key, mode); + } + function scheduleRoot(root2, element) { + root2.context === emptyContextObject && (updateContainerImpl(root2.current, 2, element, root2, null, null), flushSyncWork$1()); + } + function scheduleRefresh(root2, update) { + if (null !== resolveFamily) { + var staleFamilies = update.staleFamilies; + update = update.updatedFamilies; + flushPendingEffects(); + scheduleFibersWithFamiliesRecursively( + root2.current, + update, + staleFamilies + ); + flushSyncWork$1(); + } + } + function setRefreshHandler(handler) { + resolveFamily = handler; + } + function isValidContainer(node) { + return !(!node || 1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType); + } + function getNearestMountedFiber(fiber) { + var node = fiber, nearestMounted = fiber; + if (fiber.alternate) for (; node.return; ) node = node.return; + else { + fiber = node; + do + node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; + while (fiber); + } + return 3 === node.tag ? nearestMounted : null; + } + function getSuspenseInstanceFromFiber(fiber) { + if (13 === fiber.tag) { + var suspenseState = fiber.memoizedState; + null === suspenseState && (fiber = fiber.alternate, null !== fiber && (suspenseState = fiber.memoizedState)); + if (null !== suspenseState) return suspenseState.dehydrated; + } + return null; + } + function assertIsMounted(fiber) { + if (getNearestMountedFiber(fiber) !== fiber) + throw Error("Unable to find node on an unmounted component."); + } + function findCurrentFiberUsingSlowPath(fiber) { + var alternate = fiber.alternate; + if (!alternate) { + alternate = getNearestMountedFiber(fiber); + if (null === alternate) + throw Error("Unable to find node on an unmounted component."); + return alternate !== fiber ? null : fiber; + } + for (var a = fiber, b = alternate; ; ) { + var parentA = a.return; + if (null === parentA) break; + var parentB = parentA.alternate; + if (null === parentB) { + b = parentA.return; + if (null !== b) { + a = b; + continue; + } + break; + } + if (parentA.child === parentB.child) { + for (parentB = parentA.child; parentB; ) { + if (parentB === a) return assertIsMounted(parentA), fiber; + if (parentB === b) return assertIsMounted(parentA), alternate; + parentB = parentB.sibling; + } + throw Error("Unable to find node on an unmounted component."); + } + if (a.return !== b.return) a = parentA, b = parentB; + else { + for (var didFindChild = false, _child = parentA.child; _child; ) { + if (_child === a) { + didFindChild = true; + a = parentA; + b = parentB; + break; + } + if (_child === b) { + didFindChild = true; + b = parentA; + a = parentB; + break; + } + _child = _child.sibling; + } + if (!didFindChild) { + for (_child = parentB.child; _child; ) { + if (_child === a) { + didFindChild = true; + a = parentB; + b = parentA; + break; + } + if (_child === b) { + didFindChild = true; + b = parentB; + a = parentA; + break; + } + _child = _child.sibling; + } + if (!didFindChild) + throw Error( + "Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue." + ); + } + } + if (a.alternate !== b) + throw Error( + "Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue." + ); + } + if (3 !== a.tag) + throw Error("Unable to find node on an unmounted component."); + return a.stateNode.current === a ? fiber : alternate; + } + function findCurrentHostFiberImpl(node) { + var tag2 = node.tag; + if (5 === tag2 || 26 === tag2 || 27 === tag2 || 6 === tag2) return node; + for (node = node.child; null !== node; ) { + tag2 = findCurrentHostFiberImpl(node); + if (null !== tag2) return tag2; + node = node.sibling; + } + return null; + } + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) + return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch ("number" === typeof type.tag && console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return (type.displayName || "Context") + ".Provider"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + function getComponentNameFromOwner(owner) { + return "number" === typeof owner.tag ? getComponentNameFromFiber(owner) : "string" === typeof owner.name ? owner.name : null; + } + function getComponentNameFromFiber(fiber) { + var type = fiber.type; + switch (fiber.tag) { + case 31: + return "Activity"; + case 24: + return "Cache"; + case 9: + return (type._context.displayName || "Context") + ".Consumer"; + case 10: + return (type.displayName || "Context") + ".Provider"; + case 18: + return "DehydratedFragment"; + case 11: + return fiber = type.render, fiber = fiber.displayName || fiber.name || "", type.displayName || ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef"); + case 7: + return "Fragment"; + case 26: + case 27: + case 5: + return type; + case 4: + return "Portal"; + case 3: + return "Root"; + case 6: + return "Text"; + case 16: + return getComponentNameFromType(type); + case 8: + return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode"; + case 22: + return "Offscreen"; + case 12: + return "Profiler"; + case 21: + return "Scope"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 25: + return "TracingMarker"; + case 1: + case 0: + case 14: + case 15: + if ("function" === typeof type) + return type.displayName || type.name || null; + if ("string" === typeof type) return type; + break; + case 29: + type = fiber._debugInfo; + if (null != type) { + for (var i = type.length - 1; 0 <= i; i--) + if ("string" === typeof type[i].name) return type[i].name; + } + if (null !== fiber.return) + return getComponentNameFromFiber(fiber.return); + } + return null; + } + function createCursor(defaultValue) { + return { current: defaultValue }; + } + function pop(cursor, fiber) { + 0 > index$jscomp$0 ? console.error("Unexpected pop.") : (fiber !== fiberStack[index$jscomp$0] && console.error("Unexpected Fiber popped."), cursor.current = valueStack[index$jscomp$0], valueStack[index$jscomp$0] = null, fiberStack[index$jscomp$0] = null, index$jscomp$0--); + } + function push(cursor, value, fiber) { + index$jscomp$0++; + valueStack[index$jscomp$0] = cursor.current; + fiberStack[index$jscomp$0] = fiber; + cursor.current = value; + } + function requiredContext(c) { + null === c && console.error( + "Expected host context to exist. This error is likely caused by a bug in React. Please file an issue." + ); + return c; + } + function pushHostContainer(fiber, nextRootInstance) { + push(rootInstanceStackCursor, nextRootInstance, fiber); + push(contextFiberStackCursor, fiber, fiber); + push(contextStackCursor, null, fiber); + var nextRootContext = nextRootInstance.nodeType; + switch (nextRootContext) { + case 9: + case 11: + nextRootContext = 9 === nextRootContext ? "#document" : "#fragment"; + nextRootInstance = (nextRootInstance = nextRootInstance.documentElement) ? (nextRootInstance = nextRootInstance.namespaceURI) ? getOwnHostContext(nextRootInstance) : HostContextNamespaceNone : HostContextNamespaceNone; + break; + default: + if (nextRootContext = nextRootInstance.tagName, nextRootInstance = nextRootInstance.namespaceURI) + nextRootInstance = getOwnHostContext(nextRootInstance), nextRootInstance = getChildHostContextProd( + nextRootInstance, + nextRootContext + ); + else + switch (nextRootContext) { + case "svg": + nextRootInstance = HostContextNamespaceSvg; + break; + case "math": + nextRootInstance = HostContextNamespaceMath; + break; + default: + nextRootInstance = HostContextNamespaceNone; + } + } + nextRootContext = nextRootContext.toLowerCase(); + nextRootContext = updatedAncestorInfoDev(null, nextRootContext); + nextRootContext = { + context: nextRootInstance, + ancestorInfo: nextRootContext + }; + pop(contextStackCursor, fiber); + push(contextStackCursor, nextRootContext, fiber); + } + function popHostContainer(fiber) { + pop(contextStackCursor, fiber); + pop(contextFiberStackCursor, fiber); + pop(rootInstanceStackCursor, fiber); + } + function getHostContext() { + return requiredContext(contextStackCursor.current); + } + function pushHostContext(fiber) { + null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber, fiber); + var context = requiredContext(contextStackCursor.current); + var type = fiber.type; + var nextContext = getChildHostContextProd(context.context, type); + type = updatedAncestorInfoDev(context.ancestorInfo, type); + nextContext = { context: nextContext, ancestorInfo: type }; + context !== nextContext && (push(contextFiberStackCursor, fiber, fiber), push(contextStackCursor, nextContext, fiber)); + } + function popHostContext(fiber) { + contextFiberStackCursor.current === fiber && (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber)); + hostTransitionProviderCursor.current === fiber && (pop(hostTransitionProviderCursor, fiber), HostTransitionContext._currentValue = NotPendingTransition); + } + function typeName(value) { + return "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; + } + function willCoercionThrow(value) { + try { + return testStringCoercion(value), false; + } catch (e) { + return true; + } + } + function testStringCoercion(value) { + return "" + value; + } + function checkAttributeStringCoercion(value, attributeName) { + if (willCoercionThrow(value)) + return console.error( + "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.", + attributeName, + typeName(value) + ), testStringCoercion(value); + } + function checkCSSPropertyStringCoercion(value, propName) { + if (willCoercionThrow(value)) + return console.error( + "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.", + propName, + typeName(value) + ), testStringCoercion(value); + } + function checkFormFieldValueStringCoercion(value) { + if (willCoercionThrow(value)) + return console.error( + "Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.", + typeName(value) + ), testStringCoercion(value); + } + function injectInternals(internals) { + if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return false; + var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__; + if (hook.isDisabled) return true; + if (!hook.supportsFiber) + return console.error( + "The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools" + ), true; + try { + rendererID = hook.inject(internals), injectedHook = hook; + } catch (err) { + console.error("React instrumentation encountered an error: %s.", err); + } + return hook.checkDCE ? true : false; + } + function setIsStrictModeForDevtools(newIsStrictMode) { + "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode); + if (injectedHook && "function" === typeof injectedHook.setStrictMode) + try { + injectedHook.setStrictMode(rendererID, newIsStrictMode); + } catch (err) { + hasLoggedError || (hasLoggedError = true, console.error( + "React instrumentation encountered an error: %s", + err + )); + } + } + function injectProfilingHooks(profilingHooks) { + injectedProfilingHooks = profilingHooks; + } + function markCommitStopped() { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markCommitStopped && injectedProfilingHooks.markCommitStopped(); + } + function markComponentRenderStarted(fiber) { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markComponentRenderStarted && injectedProfilingHooks.markComponentRenderStarted(fiber); + } + function markComponentRenderStopped() { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markComponentRenderStopped && injectedProfilingHooks.markComponentRenderStopped(); + } + function markRenderStarted(lanes) { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markRenderStarted && injectedProfilingHooks.markRenderStarted(lanes); + } + function markRenderStopped() { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markRenderStopped && injectedProfilingHooks.markRenderStopped(); + } + function markStateUpdateScheduled(fiber, lane) { + null !== injectedProfilingHooks && "function" === typeof injectedProfilingHooks.markStateUpdateScheduled && injectedProfilingHooks.markStateUpdateScheduled(fiber, lane); + } + function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; + } + function getLabelForLane(lane) { + if (lane & 1) return "SyncHydrationLane"; + if (lane & 2) return "Sync"; + if (lane & 4) return "InputContinuousHydration"; + if (lane & 8) return "InputContinuous"; + if (lane & 16) return "DefaultHydration"; + if (lane & 32) return "Default"; + if (lane & 128) return "TransitionHydration"; + if (lane & 4194048) return "Transition"; + if (lane & 62914560) return "Retry"; + if (lane & 67108864) return "SelectiveHydration"; + if (lane & 134217728) return "IdleHydration"; + if (lane & 268435456) return "Idle"; + if (lane & 536870912) return "Offscreen"; + if (lane & 1073741824) return "Deferred"; + } + function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + switch (lanes & -lanes) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + return 64; + case 128: + return 128; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return lanes & 4194048; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return lanes & 62914560; + case 67108864: + return 67108864; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 0; + default: + return console.error( + "Should have found matching lanes. This is a bug in React." + ), lanes; + } + } + function getNextLanes(root2, wipLanes, rootHasPendingCommit) { + var pendingLanes = root2.pendingLanes; + if (0 === pendingLanes) return 0; + var nextLanes = 0, suspendedLanes = root2.suspendedLanes, pingedLanes = root2.pingedLanes; + root2 = root2.warmLanes; + var nonIdlePendingLanes = pendingLanes & 134217727; + 0 !== nonIdlePendingLanes ? (pendingLanes = nonIdlePendingLanes & ~suspendedLanes, 0 !== pendingLanes ? nextLanes = getHighestPriorityLanes(pendingLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = nonIdlePendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))))) : (nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = pendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))); + return 0 === nextLanes ? 0 : 0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, rootHasPendingCommit = wipLanes & -wipLanes, suspendedLanes >= rootHasPendingCommit || 32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)) ? wipLanes : nextLanes; + } + function checkIfRootIsPrerendering(root2, renderLanes2) { + return 0 === (root2.pendingLanes & ~(root2.suspendedLanes & ~root2.pingedLanes) & renderLanes2); + } + function computeExpirationTime(lane, currentTime) { + switch (lane) { + case 1: + case 2: + case 4: + case 8: + case 64: + return currentTime + 250; + case 16: + case 32: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return currentTime + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return -1; + case 67108864: + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return console.error( + "Should have found matching lanes. This is a bug in React." + ), -1; + } + } + function claimNextTransitionLane() { + var lane = nextTransitionLane; + nextTransitionLane <<= 1; + 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256); + return lane; + } + function claimNextRetryLane() { + var lane = nextRetryLane; + nextRetryLane <<= 1; + 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304); + return lane; + } + function createLaneMap(initial) { + for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); + return laneMap; + } + function markRootUpdated$1(root2, updateLane) { + root2.pendingLanes |= updateLane; + 268435456 !== updateLane && (root2.suspendedLanes = 0, root2.pingedLanes = 0, root2.warmLanes = 0); + } + function markRootFinished(root2, finishedLanes, remainingLanes, spawnedLane, updatedLanes, suspendedRetryLanes) { + var previouslyPendingLanes = root2.pendingLanes; + root2.pendingLanes = remainingLanes; + root2.suspendedLanes = 0; + root2.pingedLanes = 0; + root2.warmLanes = 0; + root2.expiredLanes &= remainingLanes; + root2.entangledLanes &= remainingLanes; + root2.errorRecoveryDisabledLanes &= remainingLanes; + root2.shellSuspendCounter = 0; + var entanglements = root2.entanglements, expirationTimes = root2.expirationTimes, hiddenUpdates = root2.hiddenUpdates; + for (remainingLanes = previouslyPendingLanes & ~remainingLanes; 0 < remainingLanes; ) { + var index3 = 31 - clz32(remainingLanes), lane = 1 << index3; + entanglements[index3] = 0; + expirationTimes[index3] = -1; + var hiddenUpdatesForLane = hiddenUpdates[index3]; + if (null !== hiddenUpdatesForLane) + for (hiddenUpdates[index3] = null, index3 = 0; index3 < hiddenUpdatesForLane.length; index3++) { + var update = hiddenUpdatesForLane[index3]; + null !== update && (update.lane &= -536870913); + } + remainingLanes &= ~lane; + } + 0 !== spawnedLane && markSpawnedDeferredLane(root2, spawnedLane, 0); + 0 !== suspendedRetryLanes && 0 === updatedLanes && 0 !== root2.tag && (root2.suspendedLanes |= suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes)); + } + function markSpawnedDeferredLane(root2, spawnedLane, entangledLanes) { + root2.pendingLanes |= spawnedLane; + root2.suspendedLanes &= ~spawnedLane; + var spawnedLaneIndex = 31 - clz32(spawnedLane); + root2.entangledLanes |= spawnedLane; + root2.entanglements[spawnedLaneIndex] = root2.entanglements[spawnedLaneIndex] | 1073741824 | entangledLanes & 4194090; + } + function markRootEntangled(root2, entangledLanes) { + var rootEntangledLanes = root2.entangledLanes |= entangledLanes; + for (root2 = root2.entanglements; rootEntangledLanes; ) { + var index3 = 31 - clz32(rootEntangledLanes), lane = 1 << index3; + lane & entangledLanes | root2[index3] & entangledLanes && (root2[index3] |= entangledLanes); + rootEntangledLanes &= ~lane; + } + } + function getBumpedLaneForHydrationByLane(lane) { + switch (lane) { + case 2: + lane = 1; + break; + case 8: + lane = 4; + break; + case 32: + lane = 16; + break; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + lane = 128; + break; + case 268435456: + lane = 134217728; + break; + default: + lane = 0; + } + return lane; + } + function addFiberToLanesMap(root2, fiber, lanes) { + if (isDevToolsPresent) + for (root2 = root2.pendingUpdatersLaneMap; 0 < lanes; ) { + var index3 = 31 - clz32(lanes), lane = 1 << index3; + root2[index3].add(fiber); + lanes &= ~lane; + } + } + function movePendingFibersToMemoized(root2, lanes) { + if (isDevToolsPresent) + for (var pendingUpdatersLaneMap = root2.pendingUpdatersLaneMap, memoizedUpdaters = root2.memoizedUpdaters; 0 < lanes; ) { + var index3 = 31 - clz32(lanes); + root2 = 1 << index3; + index3 = pendingUpdatersLaneMap[index3]; + 0 < index3.size && (index3.forEach(function(fiber) { + var alternate = fiber.alternate; + null !== alternate && memoizedUpdaters.has(alternate) || memoizedUpdaters.add(fiber); + }), index3.clear()); + lanes &= ~root2; + } + } + function lanesToEventPriority(lanes) { + lanes &= -lanes; + return DiscreteEventPriority < lanes ? ContinuousEventPriority < lanes ? 0 !== (lanes & 134217727) ? DefaultEventPriority : IdleEventPriority : ContinuousEventPriority : DiscreteEventPriority; + } + function resolveUpdatePriority() { + var updatePriority = ReactDOMSharedInternals.p; + if (0 !== updatePriority) return updatePriority; + updatePriority = window.event; + return void 0 === updatePriority ? DefaultEventPriority : getEventPriority(updatePriority.type); + } + function runWithPriority(priority, fn) { + var previousPriority = ReactDOMSharedInternals.p; + try { + return ReactDOMSharedInternals.p = priority, fn(); + } finally { + ReactDOMSharedInternals.p = previousPriority; + } + } + function detachDeletedInstance(node) { + delete node[internalInstanceKey]; + delete node[internalPropsKey]; + delete node[internalEventHandlersKey]; + delete node[internalEventHandlerListenersKey]; + delete node[internalEventHandlesSetKey]; + } + function getClosestInstanceFromNode(targetNode) { + var targetInst = targetNode[internalInstanceKey]; + if (targetInst) return targetInst; + for (var parentNode = targetNode.parentNode; parentNode; ) { + if (targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey]) { + parentNode = targetInst.alternate; + if (null !== targetInst.child || null !== parentNode && null !== parentNode.child) + for (targetNode = getParentSuspenseInstance(targetNode); null !== targetNode; ) { + if (parentNode = targetNode[internalInstanceKey]) + return parentNode; + targetNode = getParentSuspenseInstance(targetNode); + } + return targetInst; + } + targetNode = parentNode; + parentNode = targetNode.parentNode; + } + return null; + } + function getInstanceFromNode(node) { + if (node = node[internalInstanceKey] || node[internalContainerInstanceKey]) { + var tag2 = node.tag; + if (5 === tag2 || 6 === tag2 || 13 === tag2 || 26 === tag2 || 27 === tag2 || 3 === tag2) + return node; + } + return null; + } + function getNodeFromInstance(inst) { + var tag2 = inst.tag; + if (5 === tag2 || 26 === tag2 || 27 === tag2 || 6 === tag2) + return inst.stateNode; + throw Error("getNodeFromInstance: Invalid argument."); + } + function getResourcesFromRoot(root2) { + var resources = root2[internalRootNodeResourcesKey]; + resources || (resources = root2[internalRootNodeResourcesKey] = { hoistableStyles: /* @__PURE__ */ new Map(), hoistableScripts: /* @__PURE__ */ new Map() }); + return resources; + } + function markNodeAsHoistable(node) { + node[internalHoistableMarker] = true; + } + function registerTwoPhaseEvent(registrationName, dependencies) { + registerDirectEvent(registrationName, dependencies); + registerDirectEvent(registrationName + "Capture", dependencies); + } + function registerDirectEvent(registrationName, dependencies) { + registrationNameDependencies[registrationName] && console.error( + "EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", + registrationName + ); + registrationNameDependencies[registrationName] = dependencies; + var lowerCasedName = registrationName.toLowerCase(); + possibleRegistrationNames[lowerCasedName] = registrationName; + "onDoubleClick" === registrationName && (possibleRegistrationNames.ondblclick = registrationName); + for (registrationName = 0; registrationName < dependencies.length; registrationName++) + allNativeEvents.add(dependencies[registrationName]); + } + function checkControlledValueProps(tagName, props) { + hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || null == props.value || ("select" === tagName ? console.error( + "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`." + ) : console.error( + "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`." + )); + props.onChange || props.readOnly || props.disabled || null == props.checked || console.error( + "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`." + ); + } + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return true; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) + return false; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return validatedAttributeNameCache[attributeName] = true; + illegalAttributeNameCache[attributeName] = true; + console.error("Invalid attribute name: `%s`", attributeName); + return false; + } + function getValueForAttributeOnCustomComponent(node, name, expected) { + if (isAttributeNameSafe(name)) { + if (!node.hasAttribute(name)) { + switch (typeof expected) { + case "symbol": + case "object": + return expected; + case "function": + return expected; + case "boolean": + if (false === expected) return expected; + } + return void 0 === expected ? void 0 : null; + } + node = node.getAttribute(name); + if ("" === node && true === expected) return true; + checkAttributeStringCoercion(expected, name); + return node === "" + expected ? expected : node; + } + } + function setValueForAttribute(node, name, value) { + if (isAttributeNameSafe(name)) + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + node.removeAttribute(name); + return; + case "boolean": + var prefix2 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix2 && "aria-" !== prefix2) { + node.removeAttribute(name); + return; + } + } + checkAttributeStringCoercion(value, name); + node.setAttribute(name, "" + value); + } + } + function setValueForKnownAttribute(node, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + checkAttributeStringCoercion(value, name); + node.setAttribute(name, "" + value); + } + } + function setValueForNamespacedAttribute(node, namespace, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + checkAttributeStringCoercion(value, name); + node.setAttributeNS(namespace, name, "" + value); + } + } + function disabledLog() { + } + function disableLogs() { + if (0 === disabledDepth) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + function reenableLogs() { + disabledDepth--; + if (0 === disabledDepth) { + var props = { configurable: true, enumerable: true, writable: true }; + Object.defineProperties(console, { + log: assign({}, props, { value: prevLog }), + info: assign({}, props, { value: prevInfo }), + warn: assign({}, props, { value: prevWarn }), + error: assign({}, props, { value: prevError }), + group: assign({}, props, { value: prevGroup }), + groupCollapsed: assign({}, props, { value: prevGroupCollapsed }), + groupEnd: assign({}, props, { value: prevGroupEnd }) + }); + } + 0 > disabledDepth && console.error( + "disabledDepth fell below zero. This is a bug in React. Please file an issue." + ); + } + function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + suffix = -1 < x.stack.indexOf("\n at") ? " ()" : -1 < x.stack.indexOf("@") ? "@unknown:0:0" : ""; + } + return "\n" + prefix + name + suffix; + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + var frame = componentFrameCache.get(fn); + if (void 0 !== frame) return frame; + reentry = true; + frame = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var previousDispatcher2 = null; + previousDispatcher2 = ReactSharedInternals.H; + ReactSharedInternals.H = null; + disableLogs(); + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function() { + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$0) { + control = x$0; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$1) { + control = x$1; + } + (Fake = fn()) && "function" === typeof Fake.catch && Fake.catch(function() { + }); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && namePropDescriptor.configurable && Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), controlLines = controlStack.split("\n"); + for (_RunInRootFrame$Deter = namePropDescriptor = 0; namePropDescriptor < sampleLines.length && !sampleLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); ) + namePropDescriptor++; + for (; _RunInRootFrame$Deter < controlLines.length && !controlLines[_RunInRootFrame$Deter].includes( + "DetermineComponentFrameRoot" + ); ) + _RunInRootFrame$Deter++; + if (namePropDescriptor === sampleLines.length || _RunInRootFrame$Deter === controlLines.length) + for (namePropDescriptor = sampleLines.length - 1, _RunInRootFrame$Deter = controlLines.length - 1; 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter && sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]; ) + _RunInRootFrame$Deter--; + for (; 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter; namePropDescriptor--, _RunInRootFrame$Deter--) + if (sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]) { + if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) { + do + if (namePropDescriptor--, _RunInRootFrame$Deter--, 0 > _RunInRootFrame$Deter || sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]) { + var _frame = "\n" + sampleLines[namePropDescriptor].replace( + " at new ", + " at " + ); + fn.displayName && _frame.includes("") && (_frame = _frame.replace("", fn.displayName)); + "function" === typeof fn && componentFrameCache.set(fn, _frame); + return _frame; + } + while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter); + } + break; + } + } + } finally { + reentry = false, ReactSharedInternals.H = previousDispatcher2, reenableLogs(), Error.prepareStackTrace = frame; + } + sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "") ? describeBuiltInComponentFrame(sampleLines) : ""; + "function" === typeof fn && componentFrameCache.set(fn, sampleLines); + return sampleLines; + } + function formatOwnerStack(error2) { + var prevPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + error2 = error2.stack; + Error.prepareStackTrace = prevPrepareStackTrace; + error2.startsWith("Error: react-stack-top-frame\n") && (error2 = error2.slice(29)); + prevPrepareStackTrace = error2.indexOf("\n"); + -1 !== prevPrepareStackTrace && (error2 = error2.slice(prevPrepareStackTrace + 1)); + prevPrepareStackTrace = error2.indexOf("react-stack-bottom-frame"); + -1 !== prevPrepareStackTrace && (prevPrepareStackTrace = error2.lastIndexOf( + "\n", + prevPrepareStackTrace + )); + if (-1 !== prevPrepareStackTrace) + error2 = error2.slice(0, prevPrepareStackTrace); + else return ""; + return error2; + } + function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeNativeComponentFrame(fiber.type, false); + case 11: + return describeNativeComponentFrame(fiber.type.render, false); + case 1: + return describeNativeComponentFrame(fiber.type, true); + case 31: + return describeBuiltInComponentFrame("Activity"); + default: + return ""; + } + } + function getStackByFiberInDevAndProd(workInProgress2) { + try { + var info = ""; + do { + info += describeFiber(workInProgress2); + var debugInfo = workInProgress2._debugInfo; + if (debugInfo) + for (var i = debugInfo.length - 1; 0 <= i; i--) { + var entry = debugInfo[i]; + if ("string" === typeof entry.name) { + var JSCompiler_temp_const = info, env = entry.env; + var JSCompiler_inline_result = describeBuiltInComponentFrame( + entry.name + (env ? " [" + env + "]" : "") + ); + info = JSCompiler_temp_const + JSCompiler_inline_result; + } + } + workInProgress2 = workInProgress2.return; + } while (workInProgress2); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + function describeFunctionComponentFrameWithoutLineNumber(fn) { + return (fn = fn ? fn.displayName || fn.name : "") ? describeBuiltInComponentFrame(fn) : ""; + } + function getCurrentFiberOwnerNameInDevOrNull() { + if (null === current) return null; + var owner = current._debugOwner; + return null != owner ? getComponentNameFromOwner(owner) : null; + } + function getCurrentFiberStackInDev() { + if (null === current) return ""; + var workInProgress2 = current; + try { + var info = ""; + 6 === workInProgress2.tag && (workInProgress2 = workInProgress2.return); + switch (workInProgress2.tag) { + case 26: + case 27: + case 5: + info += describeBuiltInComponentFrame(workInProgress2.type); + break; + case 13: + info += describeBuiltInComponentFrame("Suspense"); + break; + case 19: + info += describeBuiltInComponentFrame("SuspenseList"); + break; + case 31: + info += describeBuiltInComponentFrame("Activity"); + break; + case 30: + case 0: + case 15: + case 1: + workInProgress2._debugOwner || "" !== info || (info += describeFunctionComponentFrameWithoutLineNumber( + workInProgress2.type + )); + break; + case 11: + workInProgress2._debugOwner || "" !== info || (info += describeFunctionComponentFrameWithoutLineNumber( + workInProgress2.type.render + )); + } + for (; workInProgress2; ) + if ("number" === typeof workInProgress2.tag) { + var fiber = workInProgress2; + workInProgress2 = fiber._debugOwner; + var debugStack = fiber._debugStack; + workInProgress2 && debugStack && ("string" !== typeof debugStack && (fiber._debugStack = debugStack = formatOwnerStack(debugStack)), "" !== debugStack && (info += "\n" + debugStack)); + } else if (null != workInProgress2.debugStack) { + var ownerStack = workInProgress2.debugStack; + (workInProgress2 = workInProgress2.owner) && ownerStack && (info += "\n" + formatOwnerStack(ownerStack)); + } else break; + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = "\nError generating stack: " + x.message + "\n" + x.stack; + } + return JSCompiler_inline_result; + } + function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) { + var previousFiber = current; + setCurrentFiber(fiber); + try { + return null !== fiber && fiber._debugTask ? fiber._debugTask.run( + callback.bind(null, arg0, arg1, arg2, arg3, arg4) + ) : callback(arg0, arg1, arg2, arg3, arg4); + } finally { + setCurrentFiber(previousFiber); + } + throw Error( + "runWithFiberInDEV should never be called in production. This is a bug in React." + ); + } + function setCurrentFiber(fiber) { + ReactSharedInternals.getCurrentStack = null === fiber ? null : getCurrentFiberStackInDev; + isRendering = false; + current = fiber; + } + function getToStringValue(value) { + switch (typeof value) { + case "bigint": + case "boolean": + case "number": + case "string": + case "undefined": + return value; + case "object": + return checkFormFieldValueStringCoercion(value), value; + default: + return ""; + } + } + function isCheckable(elem) { + var type = elem.type; + return (elem = elem.nodeName) && "input" === elem.toLowerCase() && ("checkbox" === type || "radio" === type); + } + function trackValueOnNode(node) { + var valueField = isCheckable(node) ? "checked" : "value", descriptor = Object.getOwnPropertyDescriptor( + node.constructor.prototype, + valueField + ); + checkFormFieldValueStringCoercion(node[valueField]); + var currentValue = "" + node[valueField]; + if (!node.hasOwnProperty(valueField) && "undefined" !== typeof descriptor && "function" === typeof descriptor.get && "function" === typeof descriptor.set) { + var get = descriptor.get, set = descriptor.set; + Object.defineProperty(node, valueField, { + configurable: true, + get: function() { + return get.call(this); + }, + set: function(value) { + checkFormFieldValueStringCoercion(value); + currentValue = "" + value; + set.call(this, value); + } + }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable + }); + return { + getValue: function() { + return currentValue; + }, + setValue: function(value) { + checkFormFieldValueStringCoercion(value); + currentValue = "" + value; + }, + stopTracking: function() { + node._valueTracker = null; + delete node[valueField]; + } + }; + } + } + function track(node) { + node._valueTracker || (node._valueTracker = trackValueOnNode(node)); + } + function updateValueIfChanged(node) { + if (!node) return false; + var tracker = node._valueTracker; + if (!tracker) return true; + var lastValue = tracker.getValue(); + var value = ""; + node && (value = isCheckable(node) ? node.checked ? "true" : "false" : node.value); + node = value; + return node !== lastValue ? (tracker.setValue(node), true) : false; + } + function getActiveElement(doc) { + doc = doc || ("undefined" !== typeof document ? document : void 0); + if ("undefined" === typeof doc) return null; + try { + return doc.activeElement || doc.body; + } catch (e) { + return doc.body; + } + } + function escapeSelectorAttributeValueInsideDoubleQuotes(value) { + return value.replace( + escapeSelectorAttributeValueInsideDoubleQuotesRegex, + function(ch) { + return "\\" + ch.charCodeAt(0).toString(16) + " "; + } + ); + } + function validateInputProps(element, props) { + void 0 === props.checked || void 0 === props.defaultChecked || didWarnCheckedDefaultChecked || (console.error( + "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components", + getCurrentFiberOwnerNameInDevOrNull() || "A component", + props.type + ), didWarnCheckedDefaultChecked = true); + void 0 === props.value || void 0 === props.defaultValue || didWarnValueDefaultValue$1 || (console.error( + "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components", + getCurrentFiberOwnerNameInDevOrNull() || "A component", + props.type + ), didWarnValueDefaultValue$1 = true); + } + function updateInput(element, value, defaultValue, lastDefaultValue, checked, defaultChecked, type, name) { + element.name = ""; + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type ? (checkAttributeStringCoercion(type, "type"), element.type = type) : element.removeAttribute("type"); + if (null != value) + if ("number" === type) { + if (0 === value && "" === element.value || element.value != value) + element.value = "" + getToStringValue(value); + } else + element.value !== "" + getToStringValue(value) && (element.value = "" + getToStringValue(value)); + else + "submit" !== type && "reset" !== type || element.removeAttribute("value"); + null != value ? setDefaultValue(element, type, getToStringValue(value)) : null != defaultValue ? setDefaultValue(element, type, getToStringValue(defaultValue)) : null != lastDefaultValue && element.removeAttribute("value"); + null == checked && null != defaultChecked && (element.defaultChecked = !!defaultChecked); + null != checked && (element.checked = checked && "function" !== typeof checked && "symbol" !== typeof checked); + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name ? (checkAttributeStringCoercion(name, "name"), element.name = "" + getToStringValue(name)) : element.removeAttribute("name"); + } + function initInput(element, value, defaultValue, checked, defaultChecked, type, name, isHydrating2) { + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type && (checkAttributeStringCoercion(type, "type"), element.type = type); + if (null != value || null != defaultValue) { + if (!("submit" !== type && "reset" !== type || void 0 !== value && null !== value)) + return; + defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + value = null != value ? "" + getToStringValue(value) : defaultValue; + isHydrating2 || value === element.value || (element.value = value); + element.defaultValue = value; + } + checked = null != checked ? checked : defaultChecked; + checked = "function" !== typeof checked && "symbol" !== typeof checked && !!checked; + element.checked = isHydrating2 ? element.checked : !!checked; + element.defaultChecked = !!checked; + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name && (checkAttributeStringCoercion(name, "name"), element.name = name); + } + function setDefaultValue(node, type, value) { + "number" === type && getActiveElement(node.ownerDocument) === node || node.defaultValue === "" + value || (node.defaultValue = "" + value); + } + function validateOptionProps(element, props) { + null == props.value && ("object" === typeof props.children && null !== props.children ? React12.Children.forEach(props.children, function(child) { + null == child || "string" === typeof child || "number" === typeof child || "bigint" === typeof child || didWarnInvalidChild || (didWarnInvalidChild = true, console.error( + "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to